diff -Nrcpad gcc-4.0.2/gcc/testsuite/ChangeLog gcc-4.1.0/gcc/testsuite/ChangeLog
*** gcc-4.0.2/gcc/testsuite/ChangeLog	Wed Sep 21 03:57:21 2005
--- gcc-4.1.0/gcc/testsuite/ChangeLog	Tue Feb 28 08:27:59 2006
***************
*** 1,6 ****
! 2005-09-20  Release Manager
  
! 	* GCC 4.0.2 released.
  
  2005-09-16  Joseph S. Myers  <joseph@codesourcery.com>
  
--- 1,3429 ----
! 2006-02-28  Release Manager
  
! 	* GCC 4.1.0 released.
! 
! 2006-02-23  Mark Mitchell  <mark@codesourcery.com>
! 
! 	Backport:
! 	2006-02-21  Jakub Jelinek  <jakub@redhat.com>
! 	PR middle-end/26379
! 	* gcc.target/i386/mmx-7.c: New test.
! 
! 2006-02-23  Mark Mitchell  <mark@codesourcery.com>
! 
! 	Backport:
! 	2006-02-22  H.J. Lu  <hongjiu.lu@intel.com>
! 	PR target/25603
! 	* gfortran.dg/pr25603.f: New testcase.
! 
! 2006-02-19  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/26201
! 	* gfortran.dg/convert_1.f90: New.
! 
! 2006-02-19  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/26334
! 	* gcc.dg/20060218-1.c: Moved to...
! 	* gcc.target/i386/20060218-1.c: ... here.  New test.
! 
! 2006-02-18  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/26266
! 	* g++.dg/template/static22.C: New test.
! 	* g++.dg/template/static23.C: New test.
! 	* g++.dg/template/static24.C: New test.
! 	* g++.dg/template/non-dependent13.C: New test.
! 
! 2006-02-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/26334
! 	* gcc.c-torture/compile/20060217-1.c: New test.
! 	* gcc.dg/20060218-1.c: New test.
! 
! 2006-02-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/26300
! 	* gcc.c-torture/compile/20060215-1.c: New test.
! 
! 2006-02-14  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/25806
! 	* gfortran.dg/ret_pointer_2.f90: New test.
! 
! 2006-02-14  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/24685
! 	* gfortran.dg/large_real_kind_form_io_2.f90: New test.
! 
! 2006-02-14  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	PR target/26141
! 	* g++.dg/expr/stdarg2.C: New test.
! 
! 2006-02-14  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	PR inline-asm/16194
! 	* gcc.dg/pr16194.c: New test.
! 
! 2006-02-14  Richard Guenther  <rguenther@suse.de>
! 
! 	PR tree-optimization/26258
! 	* gcc.dg/torture/pr26258.c: New testcase.
! 
! 2006-02-13  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/26074
! 	PR fortran/25103
! 	* gfortran.dg/module_parameter_array_refs_1.f90: New test.
! 	* gfortran.dg/bad_automatic_objects_1.f90: New test.
! 	* gfortran.dg/automatic_module_variable.f90: Change error message.
! 
! 	PR fortran/20861
! 	* gfortran.dg/internal_dummy_1.f90: New test.
! 
! 	PR fortran/20871
! 	* gfortran.dg/elemental_non_intrinsic_dummy_1.f90: New test.
! 
! 
! 	PR fortran/25083
! 	* gfortran.dg/uncommon_block_data_1.f90: New test.
! 	* gfortran.dg/equiv_constraint_7.f90: Correct non-compliance of test
! 	with standard.
! 
! 	PR fortran/25088
! 	* gfortran.dg/typed_subroutine_1.f90: New test.
! 
! 2006-02-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/26092
! 	* gcc.c-torture/compile/20060208-1.c: New test.
! 
! 2006-02-13  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/26038
! 	* gfortran.dg/allocate_char_star_scalar_1.f90: New test.
! 
! 	PR fortran/25059
! 	* gfortran.dg/impure_assignment_1.f90: New test.
! 
! 	PR fortran/25070
! 	* gfortran.dg/assumed_shape_ranks_1.f90: New test.
! 
! 2006-02-11  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	Backport r110819 and r110840 from the trunk
! 	PR fortran/14771
! 	* gfortran.dg/parens_1.f90: New.
! 	* gfortran.dg/parens_2.f90: New.
! 	* gfortran.dg/parens_3.f90: New.
! 	* gfortran.dg/parens_4.f90: New.
! 	* gfortran.dg/parens_5.f90: New.
! 
! 2006-02-10  Bernhard Fischer  <rep.nop@aon.at>
! 
! 	PR fortran/25756
! 	* gfortran.dg/label_3.f90: New test.
! 
! 2006-02-10  Steven G. Kargl  <kargls@comcast.net>
!         
! 	PR fortran/20858
! 	gfortran.dg/null_1.f90: New test.
! 
! 2006-02-09  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
! 
! 	* ada/acats/run_acats: Use portable variant of "$@".
! 
! 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/25251
! 	* gfortran.dg/assign_7.f: New test.
! 
! 2006-02-09  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* gcc.c-torture/compile/volatile-1.c: New test.
! 
! 2006-02-09  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 26180
! 	* gcc.dg/tree-ssa/pr26180.c: New test.
! 
! 2005-02-08  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/23815
! 	* unf_io_convert_4.f90:  New test.
! 
! 2006-02-08  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/25577
! 	* gfortran.dg/mvbits_1.f90: New.
! 
! 2006-02-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/26071
! 	* g++.dg/other/virtual2.C: New test.
! 
! 	PR c++/26070
! 	* g++.dg/other/virtual1.C: New test.
! 
! 2006-02-06  Janis Johnson  <janis187@us.ibm.com
! 
! 	Backport from mainline
! 	2005-12-28  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
!                                                                                 
! 	* lib/gfortran-dg.exp: Remove trailing whitespace.
! 
! 	2005-12-06  Janis Johnson  <janis187@us.ibm.com>
!                                                                                 
! 	* lib/gcc-dg.exp (cleanup-dump): Remove options from test name.
! 
! 	2005-12-01  Uros Bizjak  <uros@kss-loka.si>
!                                                                                 
! 	* lib/gcov.exp (clean-gcov): Also remove $base.h.gcov files.
! 
! 2006-02-04  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR fortran/26039
! 	PR fortran/25046
! 	* maxval_maxloc_conformance_1.f90:  New test.
! 
! 2006-02-03  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/24958
! 	* gfortran.dg/nullify_2.f90
! 
! 	PR fortran/20845
! 	* gfortran.dg/char_result_11.f90: Add SAVE.
! 	* gfortran.dg/der_pointer_4.f90: Ditto.
! 	* gfortran.dg/used_dummy_types_5.f90
! 	* gfortran.dg/default_initialization.f90: New test.
! 
! 2006-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/26001
! 	* gfortran.dg/data_char_2.f90: New.
! 
! 2006-02-03  Alan Modra  <amodra@bigpond.net.au>
! 
! 	* gcc.target/powerpc/pr25960.c: New test.
! 
! 2006-01-31  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25342
! 	* g++.gd/template/partial4.C: New test.
! 
! 2006-01-30  Carlos O'Donell  <carlos@codesourcery.com>
! 
! 	* gcc.dg/unsigned-long-compare.c: New test.
! 
! 2005-01-31  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/24266
! 	* gfortran.dg/arrayio_derived_2.f90: New.
! 
! 2006-01-30  Steve Ellcey  <sje@cup.hp.com>
! 
! 	PR testsuite/25318
! 	* lib/target-supports.exp (check_effective_target_freorder):
! 	Check to see if target supports -freorder-blocks-and-partition.
! 	* g++.dg/other/pr22003.C: Use "dg-require-effective-target freorder"
! 	instead of "dg-require-named-sections".
! 
! 2006-01-30  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	PR target/14798:
! 	* gcc.dg/pragma-isr.c: Added target sh[1234ble]*-*-*.
! 	* gcc.dg/pragma-isr2.c, gcc.dg/pragma-isr-trapa.c: New tests.
! 	* gcc.dg/pragma-isr-trapa2.c: Likewise.
! 	* gcc.dg/pragma-isr-nosave_low_regs.c: Likewise.
! 	* gcc.dg/pragma-isr-trap_exit.c: Likewise.
! 	* gcc.dg/attr-isr.c, gcc.dg/attr-isr-trapa.c: Likewise.
! 	* gcc.dg/attr-isr-trap_exit.c: Likewise.
! 	* gcc.dg/attr-isr-nosave_low_regs.c: Likewise.
! 
! 2006-01-30  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/18578
! 	PR fortran/18579
! 	PR fortran/20857
! 	PR fortran/20885
! 	* gfortran.dg/intent_out_1.f90: New test.
! 
! 	PR fortran/17911
! 	* gfortran.dg/procedure_lvalue.f90: New test.
! 
! 	PR fortran/20895
! 	PR fortran/25030
! 	* gfortran.dg/char_pointer_assign_2.f90: New test.
! 	* gfortran.dg/char_result_1.f90: Correct unequal charlen pointer
! 	assignment to be consistent with standard.
! 	* gfortran.dg/char_result_2.f90: The same.
! 	* gfortran.dg/char_result_8.f90: The same.
! 
! 2006-01-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR fortran/25835
! 	* gfortran.dg/read_eof.f90: Delete, renamed.
! 	* gfortran.dg/read_eof_1.f90: Rename from read_eof.f90.
! 	* gfortran.dg/read_eof_2.f90: New test.
! 	* gfortran.dg/read_eof_3.f90: New test.
! 	
! 2006-01-28  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	PR target/25706
! 	* gcc.dg/torture/pr25706-1.c: New test.
! 
! 	PR target/25718
! 	* gcc.dg/torture/pr25718-1.c: New test.
! 
! 	PR target/25947
! 	* gcc.dg/torture/pr25947-1.c: New test.
! 
! 2006-01-28  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25999
! 	* g++.dg/ext/pragmaweak1.C: New test.
! 
! 	PR c++/25855
! 	* g++.dg/template/spec29.C: New test.
! 	* g++.dg/template/crash39.C: Tweak error markers.
! 
! 2005-01-27  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/25124
! 	PR fortran/25625
! 	* gfortran.dg/internal_references_1.f90: New test.
! 
! 	PR fortran/25901
! 	* gfortran.dg/internal references_2.f90: New test.
! 
! 	PR fortran/20881
! 	PR fortran/23308
! 	PR fortran/25538
! 	PR fortran/25710
! 	* gfortran.dg/global_references_1.f90: New test.
! 	* gfortran.dg/g77/19990905-1.f: Restore the error that
! 	there is a clash between the common block name and
! 	the name of a subroutine reference.
! 
! 	PR fortran/25964
! 	* gfortran.dg/global_references_2.f90: New test.
! 
! 	PR fortran/24276
! 	* gfortran.dg/aliasing_dummy_1.f90: New test.
! 
! 	PR fortran/25084
! 	PR fortran/20852
! 	PR fortran/25085
! 	PR fortran/25086
! 	* gfortran.dg/assumed_charlen_function_1.f90: New test.
! 	* gfortran.dg/assumed_charlen_function_3.f90: New test.
! 
! 	PR fortran/25416
! 	* gfortran.dg/assumed_charlen_function_2.f90: New test.
! 
! 	PR fortran/25964
! 	* gfortran.dg/assumed_size_refs_3.f90: New test.
! 
! 2005-01-27  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/25716
! 	* gfortran.dg/char_result_11.f90: Make it sensitive to PR
! 	25716 on 32-bit systems too.
! 
! 2006-01-26  Steve Ellcey  <sje@cup.hp.com>
! 
! 	PR testsuite/24962
! 	* gcc.target/ia64/20030811-1.c: Change 'long' to 'long long'.
! 
! 2006-01-26  Laurent GUERBY <laurent@guerby.net>
! 
!         PR ada/21317
!         * ada/acats/support/impdef.a: Add One_Long_Second.
!         * ada/acats/tests/c9/c94025.a: Use One_Long_Second.
!         * ada/acats/tests/c9/c94026.a: Likewise.
!         * ada/acats/tests/c9/c97305c.ada: Likewise.
!         * ada/acats/tests/c9/c99004a.ada: Likewise.
! 
! 2006-01-26  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	PR c/25892
! 	* gcc.dg/Wpointer-sign.c: New.
! 	* gcc.dg/Wpointer-sign-Wall.c: New.
! 	* gcc.dg/Wpointer-sign-Wall-no.c: New.
! 	* gcc.dg/Wpointer-sign-pedantic.c: New.
! 	* gcc.dg/Wpointer-sign-pedantic-no.c: New.
! 	* gcc.dg/conv-2.c: Use -Wpointer-sign.
! 
! 2006-01-26  Paul Brook  <paul@codesourcery.com>
! 
! 	* gcc.dg/compat/struct-layout-1.exp: Pass -e to generator program
! 	on short-enum targets.
! 	* gcc.dg/compat/struct-layout-1_generate.c (short_enums): New
! 	variable.
! 	(generate_fields): Use short_enums.
! 	(main): Set short_enums.  Document -e.
! 	* g++.dg/compat/struct-layout-1.exp: Pass -e to generator program
! 	on short-enum targets.
! 	* g++.dg/compat/struct-layout-1_generate.c (short_enums): New
! 	variable.
! 	(generate_fields): Use short_enums.
! 	(main): Set short_enums.  Document -e.
! 	* lib/target-supports.exp (check_effective_target_short_enums): New.
! 
! 2006-01-25  Tobias Schlüter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/18540
! 	* gfortran.dg/goto_1.f: New.
! 
! 2006-01-25  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR testsuite/25590
! 	* gcc.dg/tree-ssa/gen-vect-11.c: Add -fwrapv.
! 
! 2006-01-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/25552
! 	* g++.dg/parse/dtor8.C: New test.
! 
! 2006-01-23  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	PR ada/20548
! 	* ada/acats/norun.lst: Add c52103x, c52104x and c52104y.
! 	* ada/acats/stackcheck.lst: New file, add c52103x, c52104x and c52104y.
! 	* ada/acats/run_all.sh: Pass -fstack-check for tests in stackcheck.lst.
! 
! 2006-01-23  Richard Guenther  <rguenther@suse.de>
! 	Steven Bosscher <stevenb.gcc@gmail.com>
! 
! 	PR rtl-optimization/24626
! 	* gcc.dg/torture/pr24626-1.c: New testcase.
! 	* gcc.dg/torture/pr24626-2.c: Likewise.
! 	* gcc.dg/torture/pr24626-3.c: Likewise.
! 	* gcc.dg/torture/pr24626-4.c: Likewise.
! 
! 2006-01-23  Steven Bosscher  <stevenb.gcc@gmail.com>
! 	Jan Hubicka  <jh@suse.cz>
! 	Richard Guenther  <rguenther@suse.de>
! 
! 	PR rtl-optimization/25654
! 	* gcc.dg/torture/pr25654.c: New testcase.
! 	* gcc.target/i386/pr25654.c: Likewise.
! 
! 2005-01-23  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	Fix regression in testing of admissability of attributes.
! 	* gfortran.dg/intent_used_1.f90: New test.
! 
! 2006-01-21  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25895
! 	* g++.dg/inherit/conv2.C: New test.
! 
! 	PR c++/25856
! 	* g++.dg/parse/dtor7.C: New test.
! 
! 	PR c++/25858
! 	* g++.dg/template/crash44.C: New test.
! 
! 2006-01-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR fortran/25697
! 	* gfortran.dg/read_eof.f90: New test.
! 
! 2006-01-19  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/22136
! 	* g++.dg/template/using10.C: New test.
! 	* g++.dg/temlpate/using11.C: Likewise.
! 	* g++.dg/inherit/using5.C: Tweak error messages.
! 
! 2006-01-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/25854
! 	* g++.dg/template/spec28.C: New test.
! 
! 2006-01-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/16829
! 	* g++.dg/other/default2.C: New test.
! 	* g++.dg/other/default3.C: New test.
! 
! 2006-01-19  Richard Sandiford  <richard@codesourcery.com>
! 
! 	PR c/25805
! 	* gcc.dg/pr25805.c: New file.
! 
! 2006-01-18  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25836
! 	* g++.dg/template/init6.C: New test.
! 
! 2006-01-18  Paul Thomas  <pault@gcc.gnu.org>
! 	    Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/20869
! 	* gfortran.dg/intrinsic_external_1.f90: New test.
! 
! 	PR fortran/20875.
! 	* gfortran.dg/elemental_pointer_1.f90: New test.
! 
! 	PR fortran/25024
! 	* gfortran.dg/external_procedures_1.f90: New test.
! 
! 	PR fortran/25785
! 	gfortran.dg/assumed_present.f90: New test.
! 
! 2006-01-18  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* g++.dg/parse/lookup5.C: New test.
! 
! 2006-01-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR fortran/25631
! 	* gfortran.dg/fmt_tl.f: New test.
! 
! 2006-01-17  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* g++.dg/abi/mangle25.C: Fix dg-do line, add a closing brace.
! 
! 2006-01-17  Andreas Jaeger  <aj@suse.de>
! 	    Janis Johnson <janis187@us.ibm.com>
! 
! 	* g++.dg/abi/mangle25.C: Run always on ia64 but only on x86/x86-64
! 	in 64-bit.
! 
! 2006-01-17  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c/25682
! 	* gcc.dg/pr25682.c: New test.
! 	* g++.dg/parse/array-size2.C: New test.
! 
! 2006-01-16  Ian Lance Taylor  <ian@airs.com>
! 
! 	* consistency.vlad: Remove entire directory, 1652 files.
! 
! 2006-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
! 
!         PR testsuite/25777
!         * ada/acats/run_acats (LD_LIBRARY_PATH): Add BASE
!         to LD_LIBRARY_PATH.
! 
! 2006-01-16  Steven Bosscher  <stevenb.gcc@gmail.com>
! 	Richard Guenther  <rguenther@suse.de>
! 
! 	PR rtl-optimization/24257
! 	* gcc.dg/torture/pr24257.c: New testcase.
! 
! 2006-01-15  Andreas Jaeger  <aj@suse.de>
! 
! 	* g++.dg/abi/mangle25.C: Only run on 64-bit systems since 32-bit
! 	x86 does not have __float128.
! 
! 2006-01-14  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25663
! 	* g++.dg/template/ctor6.C: New test.
! 
! 2006-01-14  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/22146
! 	* gfortran.dg/elemental_subroutine_1.f90: New test.
! 	* gfortran.dg/elemental_subroutine_2.f90: New test.
! 
! 	PR fortran/25029
! 	PR fortran/21256
! 	* gfortran.dg/assumed_size_refs_1.f90: New test.
! 
! 	PR fortran/20868
! 	PR fortran/20870
! 	* gfortran.dg/assumed_size_refs_2.f90: New test.
! 	* gfortran.dg/initialization_1.f90: Change warning message.
! 	* gfortran.dg/pr15140.f90: Add bound to assumed size reference.
! 
! 2006-01-13  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	* gcc.c-torture/compile/pr25310.c: Disable test on 16-bit targets.
! 
! 2006-01-13  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/24365
! 	* g++.dg/opt/complex5.C: New test.
! 
! 2006-01-12  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/24824
! 	* g++.dg/debug/dwarf2-1.C: New.
! 
! 2006-01-11  H.J. Lu  <hongjiu.lu@intel.com>
! 
! 	PR testsuite/25728
! 	* lib/gcov.exp (verify-lines): Add "close $fd".
! 
! 2006-01-11  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/25386
! 	* g++.dg/ext/packed3.C: Add expected packed error.
! 
! 2006-01-10  Bernhard Fischer  <rep.nop@aon.at>
! 
! 	PR fortran/25486
! 	* gfortran.dg/literal_character_constant_1_x.F: New test.
! 	* gfortran.dg/literal_character_constant_1_y.F: Ditto.
! 	* gfortran.dg/literal_character_constant_1_z.F: Ditto.
! 	* gfortran.dg/literal_character_constant_1.inc: Helper for new tests.
! 
! 2006-01-11  Paolo Bonzini  <bonzini@gnu.org>
!         
!         PR tree-optimization/23109
!         PR tree-optimization/23948
!         PR tree-optimization/24123
! 
!         * gcc.dg/tree-ssa/recip-3.c, gcc.dg/tree-ssa/recip-4.c,
!         gcc.dg/tree-ssa/recip-5.c, gcc.dg/tree-ssa/recip-6.c,
!         gcc.dg/tree-ssa/recip-7.c, gcc.dg/tree-ssa/pr23109.c,
!         g++.dg/tree-ssa/pr23948.C: New testcases.
!         * gcc.dg/tree-ssa/recip-2.c, gcc.dg/tree-ssa/pr23234.c: Provide
! 	three divisions in order to do the optimization.
! 
! 2006-01-11  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/25730
! 	* gfortran.dg/used_types_1.f90: New test.
! 
! 2006-01-10  Jan Beulich  <jbeulich@novell.com>
! 
! 	* lib/target-supports.exp (check_visibility_available): Simplify test
! 	for *-*-netware*.
! 	(check_profiling_available): Fail for *-*-netware*.
! 	* g++.old-deja/g++.law/profile1.C: Remove dg-bogus for *-*-netware*.
! 	* gcc.dg/20021014-1.c: Likewise.
! 	* gcc.dg/nest.c: Likewise.
! 
! 2006-01-10   David Billinghurst  (David.Billinghurst@riotinto.com)
! 
! 	* lib/fortran-torture.exp: Catch remaining uses of
! 	remote_file build delete.
! 	
! 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	fortran/24936
! 	* gfortran.dg/forall_3.f90: New test.
! 
! 2006-01-09  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR fortran/21977
! 	* gfortran.dg/nesting_2.f90: New test.
! 	* gfortran.dg/nesting_3.f90: New test.
! 
! 2005-01-09  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/25093
! 	* gfortran.dg/private_type_4.f90: New.
! 
! 2006-01-09  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR tree-optimization/25125
! 	* gcc.dg/vect/vect-7.c, gcc.dg/vect/vect-reduc-2char.c,
! 	gcc.dg/vect/vect-reduc-2short.c: XFAIL.
! 	* gcc.c-torture/execute/pr25125.c: New.
! 
! 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
! 
! 	PR fortran/12456
! 	* gfortran.dg/single_char_string.f90: New test.
! 
! 2006-01-09  Feng Wang  <fengwang@nudt.edu.cn>
! 
! 	* gfortran.dg/ichar2.f90: New test.
! 
! 2005-01-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR fortran/25598
! 	* gfortran.dg/backspace_3.f: New test.
! 	* gfortran.dg/backspace_4.f: New test.
! 
! 2005-01-07  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR fortran/24268
! 	* gfortran.dg/fmt_white.f: Update test.
! 
! 2006-01-06  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/25101
! 	* gfortran.dg/forall_2.f90: New test.
! 
! 	PR fortran/24640
! 	* gfortran.dg/label_2.f90: New test.
! 
! 2006-01-05  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/23675
! 	gfortran.dg/char_result_11.f90: New.
! 
! 2006-01-04  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24782
! 	* g++.dg/parse/access9.C: New test.
! 	* g++.dg/tc1/dr52.C: Tweak error markers.
! 
! 2006-01-04  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* g++.dg/other/i386-2.C: New test.
! 
! 	PR target/25554
! 	* gcc.c-torture/compile/20051228-1.c: New test.
! 
! 	PR c/25559
! 	* gcc.dg/pr25559.c: New test.
! 
! 2006-01-03  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25492
! 	* g++.dg/lookup/friend9.C: New test.
! 
! 	PR c++/25625
! 	* g++.dg/template/repo5.C: New test.
! 
! 2006-01-03  Richard Guenther  <rguenther@suse.de>
! 
! 	PR c/25183
! 	* gcc.dg/torture/pr25183.c: New testcase.
! 
! 2006-01-02  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25635
! 	* g++.dg/parse/operator6.C: New test.
! 
! 	PR c++/25637
! 	* g++.dg/parse/error29.C: New test.
! 
! 	PR c++/25638
! 	* g++.dg/parse/dtor6.C: New test.
! 
! 	PR c++/25633
! 	* g++.dg/parse/ctor3.C: New test.
! 
! 	PR c++/25634
! 	* g++.dg/template/class3.C: New test.
! 
! 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	* g++.dg/lookup/using12.C: Tighten error marker.
! 
! 2006-01-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	* g++.dg/other/friend4.C: New test.
! 
! 2005-12-28  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25419
! 	* gfortran.dg/comma.f: New test.
! 
! 2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25550
! 	* gfortran.dg/endfile.f: New test.
! 
! 2005-12-31  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25139
! 	* gfortran.dg/backspace_2.f: New test.
! 
! 2006-01-01  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/25294
! 	* gcc.dg/pragma-pack-3.c: New test.
! 	* g++.dg/parse/pragma3.C: New test.
! 
! 2005-12-31  Steven G. Kargl <kargls@comcast.net>
! 
! 	PR fortran/25106
! 	PR fortran/25055
! 	* gfortran.dg/label_1.f90: New test.
! 
! 2005-12-30  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
! 
! 	PR middle-end/24827
! 	* gcc.dg/attr-weakref-1.c: Skip test on hppa*-*-hpux*.
! 
! 2005-12-30  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	PR testsuite/25214
! 	* gcc.target/i386/local2.c: Skip if ilp32 and -fpic/-fpic.
! 
! 2005-12-30  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/22607
! 	* gfortran-dg/pure_byref_3.f90: New.
! 
! 	fortran/PR 25396
! 	* gfortran.dg/userdef_operator_1.f90: New.
! 
! 2005-12-30  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* g++.old-deja/g++.other/comdat5.C: Gate on target fpic.
! 
! 2005-12-29  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/25532
! 	*gfortran.dg/host_used_types_1.f90: New test. Check that host
! 	associated derived type components of derived types are
! 	properly declared in contained procedures.
! 
! 2005-12-27  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* g++.dg/rtti/tinfo1.C: Scan for ".global" also.
! 
! 	PR testsuite/25442
! 	* gcc.dg/ipa/ipa-1.c, gcc.dg/ipa/ipa-2.c, gcc.dg/ipa/ipa-3.c,
! 	gcc.dg/ipa/ipa-4.c, gcc.dg/ipa/ipa-5.c: Skip if -fpic/-fPIC.
! 
! 	PR testsuite/25441
! 	* gcc.dg/pr23911.c: Make test variable static.
! 
! 	PR testsuite/25444
! 	* gcc.dg/tree-ssa/pr14841.c: Likewise.
! 
! 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/23172
! 	* g++.dg/ext/complit4.C: New test.
! 
! 	PR c++/25417
! 	* g++.dg/ext/complit5.C: Likewise.
! 
! 2005-12-26  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25439
! 	* g++.dg/parse/crash17.C: Adjust error markers.
! 	* g++.dg/template/error20.C: New test.
! 
! 2005-12-26  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/20889
! 	* gfortran.dg/pointer_component_type_1.f90: New test.
! 
! 	PR fortran/25018
! 	* gfortran.dg/initialization_1.f90: New test.
! 	* gfortran.dg/enum_5.f90: Change dg-error to new message.
! 	* gfortran.dg/g77/980616-0.f: The same.
! 
! 	PR fortran/19362
! 	PR fortran/20244
! 	PR fortran/20864
! 	PR fortran/25391
! 	* gfortran.dg/used_dummy_types_1.f90: New test.
! 	* gfortran.dg/used_dummy_types_2.f90: New test.
! 	* gfortran.dg/used_dummy_types_3.f90: New test.
! 	* gfortran.dg/used_dummy_types_4.f90: New test.
! 	* gfortran.dg/used_dummy_types_5.f90: New test.
! 
! 	PR fortran/23152
! 	* gfortran.dg/namelist_use.f90: Add trap for warning on NAMELIST
! 	group already being USE associated.
! 	* gfortran.dg/assumed_shape_nml.f90: New test.
! 	* gfortran.dg/assumed_size_nml.f90: New test.
! 
! 	PR fortran/20862
! 	PR fortran/25053
! 	PR fortran/25063
! 	PR fortran/25064
! 	PR fortran/25066
! 	PR fortran/25067
! 	PR fortran/25068
! 	PR fortran/25307
! 	* gfortran.dg/io_constraints_1.f90: New test.
! 	* gfortran.dg/io_constraints_1.f90: New test.
! 	* gfortran.dg/iostat_3.f90: Change wording of warning.
! 	* gfortran.dg/g77/19981216-0.f:  the same.
! 
! 2005-12-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/18990
! 	* gfortran.dg/der_charlen_1.f90: New.
! 
! 2005-12-24  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/23171
! 	* g++.dg/opt/init1.C: New test.
! 
! 2005-12-23  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24671
! 	* g++.dg/template/sfinae3.C: New test.
! 
! 2005-12-23  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR rtl-optimization/21041
! 	* gcc.dg/pr21041.c: New test.
! 
! 2005-12-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/25005
! 	* g++.dg/opt/pr25005.C: New test.
! 
! 2005-12-22  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25369
! 	* g++.dg/template/ptrmem16.C: New test.
! 
! 2005-12-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25307
! 	* gfortran.dg/list_read_5.f90: New test.
! 
! 2005-12-23  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/25432
! 	* gcc.c-torture/compile/20051216-1.c: New test.
! 
! 	PR objc/25328
! 	* objc/execute/pr25328.m: New test.
! 
! 2005-12-22  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25364
! 	* g++.dg/template/call4.C: New test.
! 
! 2005-12-22  Paul Brook  <paul@codesourcery.com>
! 
! 	* gcc.dg/weak/typeof-2.c: Skip assembly test on m68k.
! 
! 2005-12-22  Paul Brook  <paul@codesourcery.com>
! 
! 	* gcc.dg/tree-ssa/loop-1.c: Look for jump/branch on m68k.
! 
! 2005-12-22  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/25513
! 	* gcc.c-torture/compile/pr25513.c: New test.
! 
! 2005-12-22  Steven G. Kargl  <kargls@comcast.net>
! 
! 	* Finishing committing the last commit.
! 
! 2005-12-22  Steven G. Kargl  <kargls@comcast.net>
! 
! 	* gfortran.dg/assign_1.f90: Fix nonstandard declarations.
! 	* gfortran.dg/common_4.f90: Ditto.
! 	* gfortran.dg/direct_io_3.f90: Ditto.
! 	* gfortran.dg/e_d_fmt.f90: Ditto.
! 	* gfortran.dg/entry_4.f90: Ditto.
! 	* gfortran.dg/equiv_constraint_2.f90: Ditto.
! 	* gfortran.dg/f2c_2.f90: Ditto.
! 	* gfortran.dg/fmt_read_bz_bn.f90: Ditto.
! 	* gfortran.dg/ftell_1.f90: Ditto.
! 	* gfortran.dg/ftell_2.f90: Ditto.
! 	* gfortran.dg/g77/19981216-0.f: Ditto.
! 	* gfortran.dg/g77/19990305-0.f: Ditto.
! 	* gfortran.dg/g77/19990313-0.f: Ditto.
! 	* gfortran.dg/g77/19990313-1.f: Ditto.
! 	* gfortran.dg/g77/19990313-2.f: Ditto.
! 	* gfortran.dg/g77/19990313-3.f: Ditto.
! 	* gfortran.dg/g77/19990502-1.f: Ditto.
! 	* gfortran.dg/g77/19990905-2.f: Ditto.
! 	* gfortran.dg/g77/20000629-1.f: Ditto.
! 	* gfortran.dg/g77/20010426.f: Ditto.
! 	* gfortran.dg/g77/20010519-1.f: Ditto.
! 	* gfortran.dg/g77/20020307-1.f: Ditto.
! 	* gfortran.dg/g77/8485.f: Ditto.
! 	* gfortran.dg/g77/947.f: Ditto.
! 	* gfortran.dg/g77/970125-0.f: Ditto.
! 	* gfortran.dg/g77/990115-1.f: Ditto.
! 	* gfortran.dg/g77/alpha1.f: Ditto.
! 	* gfortran.dg/g77/cabs.f: Ditto.
! 	* gfortran.dg/g77/dcomplex.f: Ditto.
! 	* gfortran.dg/g77/erfc.f: Ditto.
! 	* gfortran.dg/g77/f90-intrinsic-bit.f: Ditto.
! 	* gfortran.dg/g77/f90-intrinsic-mathematical.f: Ditto.
! 	* gfortran.dg/g77/f90-intrinsic-numeric.f: Ditto.
! 	* gfortran.dg/g77/int8421.f: Ditto.
! 	* gfortran.dg/g77/intrinsic-unix-bessel.f: Ditto.
! 	* gfortran.dg/g77_intrinsics_funcs.f: Ditto.
! 	* gfortran.dg/g77_intrinsics_sub.f: Ditto.
! 	* gfortran.dg/gnu_logical_1.F
! 	* gfortran.dg/hollerith.f90: Ditto.
! 	* gfortran.dg/hollerith2.f90: Ditto.
! 	* gfortran.dg/hollerith_f95.f90: Ditto.
! 	* gfortran.dg/hollerith_legacy.f90: Ditto.
! 	* gfortran.dg/imag_1.f: Ditto.
! 	* gfortran.dg/imag_2.f: Ditto.
! 	* gfortran.dg/logint-1.f: Ditto.
! 	* gfortran.dg/logint-2.f: Ditto.
! 	* gfortran.dg/logint-3.f: Ditto.
! 	* gfortran.dg/malloc_free_1.f90: Ditto.
! 	* gfortran.dg/modulo_1.f90: Ditto.
! 	* gfortran.dg/namelist_11.f: Ditto.
! 	* gfortran.dg/namelist_12.f: Ditto.
! 	* gfortran.dg/namelist_14.f90: Ditto.
! 	* gfortran.dg/nested_modules_1.f90: Ditto.
! 	* gfortran.dg/pr17143.f90: Ditto.
! 	* gfortran.dg/pr23095.f: Ditto.
! 	* gfortran.dg/read_float_1.f90: Ditto.
! 	* gfortran.dg/recursive_statement_functions.f90: Ditto.
! 	* gfortran.dg/scale_1.f90: Ditto.
! 	* gfortran.dg/secnds.f: Ditto.
! 	* gfortran.dg/select_5.f90: Ditto.
! 	* gfortran.dg/spread_scalar_source.f90: Ditto.
! 	* gfortran.dg/unf_io_convert_1.f90: Ditto.
! 
! 
! 2005-12-21  Paul Brook  <paul@codesourcery.com>
! 
! 	* gcc.dg/pr19340.c: Skip on m68k targets.
! 
! 2005-12-21  Steven Bosscher  <stevenb@suse.de>
! 
! 	PR rtl-optimization/25196
! 	* gcc.dg/pr25196.c: New test.
! 
! 2005-12-21  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/25423
! 	gfortran.dg/where_nested_1.f90: New.
! 
! 2005-12-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR fortran/24268
! 	* gfortran.dg/fmt_white.f: New test.
! 
! 2005-12-20  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25463
! 	* gfortran.dg/advance.f90: New test.
! 
! 2005-12-20  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/25458
! 	* gfortran.dg/chkbits.f90: New test.
! 
! 2005-12-20  Richard Guenther  <rguenther@suse.de>
! 
! 	PR middle-end/24306
! 	* gcc.target/i386/pr24306.c
! 
! 2005-12-20  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/21228
! 	* g++.dg/warn/Wunreachable-code-2.C: New test.
! 
! 2005-12-19  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24278
! 	* g++.dg/template/ctor5.C: New test.
! 
! 2005-12-19  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24915
! 	* g++.dg/template/overload8.C: New test.
! 
! 2005-12-19  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/20552
! 	* g++.dg/ext/typeof10.C: New test.
! 
! 2005-12-18  Andreas Krebbel  <krebbel1@de.ibm.com>
! 
! 	* gcc.dg/20051201-1.c: New test.
! 
! 2005-12-17  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25264
! 	PR libgfortran/25349
! 	* gfortran.dg/tl_editing.f90: Added additional checks.
! 	* gfortran.dg/t_editing.f: New test.
! 	* gfortran.dg/write_padding.f90: New test
! 
! 2005-12-16  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/25039
! 	* gfortran.dg/read_comma.f: New test.
! 
! 2005-12-16  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	PR testsuite/25215
! 	* gcc.dg/20050503-1.c: Skip on x86 ilp32 with -fpic/-fPIC.
! 
! 2005-12-14  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/18197
! 	* gfortran.dg/dummy_functions_1.f90: New.
! 
! 2005-12-16  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/24899
! 	* gcc.c-torture/execute/20051215-1.c: New test.
! 
! 2005-12-16  Andreas Krebbel  <krebbel1@de.ibm.com>
! 
! 	PR 24823
! 	* gfortran.dg/pr24823.f: New test.
! 
! 2005-12-14  Jeff Law  <law@redhat.com>
! 
! 	PR tree-optimization/23838
! 	* gcc.dg/tree-ssa/ssa-dse-8.c: New test.
! 
! 2005-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* g++.dg/rtti/repo1.C: Call cleanup-repo-files.
! 	* gcc.dg/20050330-2.c: Call cleanup-coverage-files.
! 
! 2005-12-14  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR rtl-optimization/25310
! 	* gcc.c-torture/compile/pr25310.c: New test.
! 
! 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR debug/25023
! 	* gcc.dg/pr25023.c: New test.
! 
! 2005-12-14  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/25078
! 	gfortran.dg/equiv_5.f90:  New test.
! 
! 2005-12-14  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* g++.old-deja/g++.brendan/redecl1.C,
! 	g++.old-deja/g++.eh/inline1.C, g++.old-deja/g++.ns/crash2.C,
! 	g++.old-deja/g++.ns/template7.C, g++.old-deja/g++.oliva/ns3.C,
! 	g++.old-deja/g++.oliva/typeof1.C,
! 	g++.old-deja/g++.other/crash16.C,
! 	g++.old-deja/g++.other/crash34.C,
! 	g++.old-deja/g++.other/lookup5.C, g++.old-deja/g++.pt/crash65.C,
! 	g++.old-deja/g++.pt/decl2.C, g++.old-deja/g++.pt/explicit76.C,
! 	g++.old-deja/g++.pt/memtemp85.C, g++.old-deja/g++.pt/memtemp86.C,
! 	g++.old-deja/g++.pt/memtemp87.C, g++.old-deja/g++.pt/memtemp88.C,
! 	g++.old-deja/g++.pt/memtemp91.C, g++.old-deja/g++.pt/spec14.C,
! 	g++.old-deja/g++.pt/static10.C, treelang/compile/exit.tree:
! 	Remove xfail.
! 
! 2005-12-14  Kean Johnston  <jkj@sco.com>
!             Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* gcc.dg/sibcall-6.c: Skip in -fPIC mode on X86 ilp32.
! 	* gcc.target/i386/20020523-1.c: Ditto.
! 	* gcc.target/i386/tailcall-1.c: Ditto.
! 	* gcc.target/i386/ssetype-3.c: Make magic* static to work with -fPIC.
! 	* gcc.target/i386/ssetype-5.c: Ditto.
! 
! 2005-12-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/25254
! 	PR target/24188
! 	* gcc.target/i386/pr25254.c: New test.
! 	* gfortran.dg/PR24188.f: New test.
! 
! 2005-12-13  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* g++.old-deja/g++.oliva/stkalign.C: Remove xfail.
! 
! 2005-12-13  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR fortran/23815
! 	* gfortran.dg/unf_io_convert_1.f90:  New test.
! 	* gfortran.dg/unf_io_convert_2.f90:  New test.
! 	* gfortran.dg/unf_io_convert_3.f90:  New test.
! 
! 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR debug/25023
! 	PR target/25293
! 	* gcc.target/i386/pr25293.c: New test.
! 
! 2005-12-13  Petr Machata  <machata@post.cz>
! 
! 	PR c++/24907
! 	* g++.dg/parse/comma2.C: New test.
! 
! 2005-12-13  Mark Mitchell  <mark@codesourcery.com>
! 	    Jakub Jelinek  <jakub@redhat.com>
! 
! 	* g++.dg/compat/struct-layout-1.exp: Do not link with libiberty.
! 	* g++.dg/compat/struct-layout-1_generate.c (config.h): Do not include.
! 	(limits.h): Include unconditionally.
! 	(stdlib.h): Likewise.
! 	(hashtab.h): Do not include.
! 	(getopt.h): Likewise.
! 	(stddef.h): Include.
! 	(hashval_t): Define.
! 	(struct entry): Add "next" field.
! 	(HASH_SIZE): New macro.
! 	(hash_table): New variable.
! 	(switchfiles): Do not use xmalloc.
! 	(mix): New macro.
! 	(iterative_hash): New function.
! 	(hasht): Remove.
! 	(e_exists): New function.
! 	(e_insert): Likewise.
! 	(output): Use, instead of libiberty hashtable functions.
! 	(main): Do not use getopt.  Do not call htab_create.
! 
! 2005-12-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/25331
! 	* gcc.dg/compat/struct-layout-1_generate.c (subfield): Don't
! 	put atal* and atpaal* attributes on array elements.
! 	(generate_fields): Revert 2005-10-07 and 2005-10-11 changes.
! 	* g++.dg/compat/struct-layout-1_generate.c (subfield): Don't
! 	put atal* and atpaal* attributes on array elements.
! 	(generate_fields): Don't prevent atal* attribute on ETYPE_ARRAY.
! 
! 2005-12-12  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	PR testsuite/20772
! 	* g++.old-deja/g++.eh/tmpl2.C: Remove xfail.
! 	* gcc.dg/asm-b.c: Fix typo.
! 	* gcc.dg/torture/pr20314-2.c: Test on i?86 lp64.
! 	* gcc.dg/tree-ssa/stdarg-2.c, gcc.dg/tree-ssa/stdarg-3.c,
! 	gcc.dg/tree-ssa/stdarg-4.c, gcc.dg/tree-ssa/stdarg-5.c: Test on
! 	i?86 lp64 and x86_64 ilp32.
! 	* gcc.target/i386/amd64-abi-1.c, gcc.target/i386/pr23943.c: Test
! 	on i?86 lp64.
! 	* gfortran.dg/g77/20010216-1.f: Test on x86_64 ilp32.
! 
! 2005-12-12  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25300
! 	* g++.dg/template/inherit.C: Do not use a generic error message.
! 
! 2005-12-11  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25337
! 	* g++.dg/template/defarg7.C: New test.
! 
! 2005-12-11  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
! 
! 	PR testsuite/25167
! 	PR testsuite/24478
! 	* gcc.dg/weak/weak-14.c: Add dg-require-alias.
! 
! 2005-12-10  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/25010
! 	* g++.dg/opt/inline10.C: New test.
! 
! 2005-12-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	PR testsuite/20772
! 	* g++.dg/abi/mangle24.C, g++.dg/abi/mangle25.C,
! 	g++.dg/ext/vector2.C, g++.dg/opt/longbranch2.C, g++.dg/opt/mmx1.C,
! 	g++.dg/opt/reg-stack4.C, gcc.dg/20020108-1.c, gcc.dg/20020122-2.c,
! 	gcc.dg/20020122-3.c, gcc.dg/20020206-1.c, gcc.dg/20020310-1.c,
! 	gcc.dg/20020411-1.c, gcc.dg/20020418-2.c, gcc.dg/20020426-2.c,
! 	gcc.dg/20020517-1.c, gcc.dg/20030204-1.c, gcc.dg/20030826-2.c,
! 	gcc.dg/20031202-1.c, gcc.dg/format/unnamed-1.c, gcc.dg/setjmp-2.c,
! 	gcc.dg/short-compare-1.c, gcc.dg/short-compare-2.c,
! 	gcc.dg/tls/opt-1.c, gcc.dg/tls/opt-2.c, gcc.dg/unroll-1.c,
! 	gcc.target/i386/20030926-1.c: Merge i?86 and x86_64 cases.
! 
! 	* gcc.dg/tls/opt-1.c: Require effective target fpic.
! 
! 2005-12-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	PR testsuite/20772
! 	* g++.old-deja/g++.pt/asm1.C, gcc.c-torture/compile/20000804-1.c,
! 	gcc.target/i386/asm-3.c, gcc.target/i386/clobbers.c: Use ilp32 in
! 	dg-skip-if target selector.
! 
! 	PR testsuite/20772
! 	* g++.dg/eh/simd-1.C, g++.dg/eh/simd-2.C, g++.dg/opt/inline9.C,
! 	gcc.dg/20020418-1.c, gcc.dg/20031102-1.c, gcc.dg/ia64-sync-1.c,
! 	gcc.dg/ia64-sync-2.c, gcc.dg/ia64-sync-3.c, gcc.dg/ia64-sync-4.c,
! 	gcc.dg/ifcvt-fabs-1.c, gcc.dg/loop-3.c, gcc.dg/nested-calls-1.c,
! 	gcc.dg/pr20017.c, gcc.dg/smod-1.c, gcc.dg/sync-2.c,
! 	gcc.dg/tls/opt-3.c, gcc.dg/torture/badshift.c: Add x86_64 cases
! 	and/or merge with i?86 cases.
! 
! 	* gcc.dg/tls/opt-3.c: Require effective target fpic.
! 
! 	PR testsuite/20772
! 	* g++.dg/opt/life1.C, g++.old-deja/g++.abi/aggregates.C,
! 	g++.old-deja/g++.abi/align.C, g++.old-deja/g++.abi/bitfields.C,
! 	g++.old-deja/g++.law/weak.C, g++.old-deja/g++.pt/asm2.C,
! 	gcc.dg/20000724-1.c, gcc.dg/pragma-align.c: Also test on
! 	x86_64-*-linux*.
! 
! 2005-12-09  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR target/25311
! 	* gcc.c-torture/compile/pr25311.c: New test.
! 
! 2005-12-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/19317
! 	* g++.dg/opt/pr19317-1.C: New test.
! 	* g++.dg/opt/pr19317-2.C: New test.
! 	* g++.dg/opt/pr19317-3.C: New test.
! 
! 	PR target/19005
! 	* gcc.c-torture/execute/pr19005.c: New test.
! 
! 	PR target/17828
! 	* g++.old-deja/g++.other/comdat5.C: New test.
! 	* g++.old-deja/g++.other/comdat5-aux.cc: New file.
! 
! 	* g++.dg/compat/struct-layout-1.exp: New file.
! 	* g++.dg/compat/struct-layout-1.h: New.
! 	* g++.dg/compat/struct-layout-1_generate.c: New.
! 	* g++.dg/compat/struct-layout-1_x1.h: New.
! 	* g++.dg/compat/struct-layout-1_x2.h: New.
! 	* g++.dg/compat/struct-layout-1_y1.h: New.
! 	* g++.dg/compat/struct-layout-1_y2.h: New.
! 
! 	* gcc.dg/20050330-2.c: New test.
! 
! 2005-12-08  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/25292
! 	* gfortran.dg/associated_1.f90: New.
! 
! 2005-12-08  Richard Guenther  <rguenther@suse.de>
! 
! 	Backport from mainline
! 	2005-11-28  Richard Guenther  <rguenther@suse.de>
! 
! 	* gcc.dg/alias-9.c: New testcase.
! 	* g++.dg/warn/Wstrict-aliasing-7.C: Likewise.
! 
! 	2005-11-24  Richard Guenther  <rguenther@suse.de>
! 		Dirk Mueller <dmueller@suse.de>
! 
! 	PR c++/14024
! 	* g++.dg/warn/Wstrict-aliasing-1.C: New testcase.
! 	* g++.dg/warn/Wstrict-aliasing-2.C: Likewise.
! 	* g++.dg/warn/Wstrict-aliasing-3.C: Likewise.
! 	* g++.dg/warn/Wstrict-aliasing-4.C: Likewise.
! 	* g++.dg/warn/Wstrict-aliasing-5.C: Likewise.
! 	* g++.dg/warn/Wstrict-aliasing-6.C: Likewise.
! 
! 2005-12-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* gfortran.dg/vect/vect-5.f90: Expect alignment forcing only on
! 	ILP32 vect_no_align platforms.
! 
! 2005-12-08  Andreas Krebbel  <krebbel1@de.ibm.com>
!             Jakub Jelinek  <jakub@redhat.com>
! 
!         PR target/25268
! 	* gcc.c-torture/compile/20051207-1.c: New test.
! 
! 2005-12-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	PR testsuite/20772
! 	* g++.dg/other/i386-1.C, gcc.c-torture/execute/990413-2.x,
! 	gcc.dg/torture/pr18582-1.c,
! 	gcc.target/i386/attributes-error.c: Also test on x86_64.
! 
! 	* gcc.dg/pr18928-1.c: Test on all targets supporting pic.
! 
! 2005-12-07  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/19397
! 	* g++.dg/template/typedef3.C: New test.
! 
! 	PR c++/19762
! 	PR c++/19764
! 	* g++.dg/template/dtor3.C: Fix error markers.
! 
! 2005-12-07  Adrian Straetling  <straetling@de.ibm.com>
! 
! 	* lib/target-supports.exp (check_effective_target_sync_char_short):
! 	Add s390*.
! 
! 2005-12-07  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/15809
! 	*  gfortran.dg/auto_char_dummy_array.f90: New test.
! 
! 2005-12-05  Janis Johnson  <janis187@us.ibm.com>
! 
! 	PR testsuite/25247
! 	* lib/target-supports-dg.exp (dg-skip-if): Fix target selector for
! 	use in selector expressions.
! 	(dg-xfail-if): Ditto.
! 	* gcc.test-framework/dg-dot-run-sif-exp-P.c: New test.
! 	* gcc.test-framework/dg-dot-run-sif-exp-U.c: New test.
! 	* gcc.test-framework/dg-dot-run-xif-exp-P.c: New test.
! 	* gcc.test-framework/dg-dot-run-xif-exp-XP.c: New test.
! 	* gcc.test-framework/test-framework.exp: Skip generated tests if
! 	CHECK_TEST_FRAMEWORK is not 1.
! 
! 2005-12-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	PR tree-optimization/24963
! 	* gcc.dg/vect/vect-62.c: Remove outdated dg-line.
! 
! 	PR target/24108
! 	* gcc.dg/vect/vect-76.c: Do not XFAIL on vect_no_align platforms.
! 
! 	PR target/18580
! 	* gcc.dg/vect/vect-reduc-1char.c: XFAIL on vect_no_int_max platforms.
! 	* gcc.dg/vect/vect-reduc-2short.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-1short.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-2char.c: Likewise.
! 
! 2005-12-05  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc.target/i386/movq-2.c: Add -mtune=pentium4 to
! 	dg-options.
! 
! 2005-12-04  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.dg/20041106-1.c, gcc.dg/20030321-1.c, gcc.dg/pr17112-1.c,
! 	gcc.dg/pr17112-1.c, g++.dg/other/packed1.C,
! 	g++.dg/other/crash-4.C, g++.dg/ext/packed8.C: Match "attribute
! 	ignored" warnings when "packing" is the same as the ABI layout.
! 
! 2005-12-02  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24173
! 	* g++.dg/template/friend40.C: New test.
! 
! 2005-12-02  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR target/25199
! 	* gcc.target/i386/movq-2.c: New test.
! 	* gcc.target/i386/movq.c: Remove target i?86, instead add
! 	dg-require-effective-target ilp32.
! 
! 2005-12-02  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	* gfortran.dg/ftell_1.f90: Modify testcase so that it doesn't
! 	fail on CRLF platforms.
! 	* gfortran.dg/ftell_2.f90: Likewise.
! 	* gfortran.dg/modulo_1.f90: New test.
! 
! 2005-12-02  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/24103
! 	* g++.dg/other/default1.C: New test.
! 
! 2005-12-02  Uros Bizjak  <uros@kss-loka.si>
! 
! 	PR target/24475
! 	* lib/target-supports.exp (check_effective_target_tls): New.
! 	(check_effective_target_tls_runtime): New.
! 	* gcc.dg/tls/tls.exp, g++.dg/tls/tls.exp: Remove check
! 	for TLS support.
! 	* gcc.dg/tls/opt-1.c, gcc.dg/tls/opt-2.c, gcc.dg/tls/opt-3.c,
! 	gcc.dg/tls/opt-4.c, gcc.dg/tls/opt-5.c, gcc.dg/tls/opt-6.c,
! 	gcc.dg/tls/opt-7.c, gcc.dg/tls/opt-8.c, gcc.dg/tls/opt-9.c,
! 	gcc.dg/tls/opt-10.c, gcc.dg/tls/diag-1.c, gcc.dg/tls/diag-2.c,
! 	gcc.dg/tls/diag-3.c, gcc.dg/tls/diag-4.c, gcc.dg/tls/diag-5.c,
! 	gcc.dg/tls/alias-1.c, gcc.dg/tls/alpha-1.c, gcc.dg/tls/asm-1.c,
! 	gcc.dg/tls/debug-1.c, gcc.dg/tls/init-1.c, gcc.dg/tls/nonpic-1.c,
! 	gcc.dg/tls/pic-1.c, gcc.dg/tls/section-1.c, gcc.dg/tls/struct-1.c,
! 	gcc.dg/tls/trivial.c, g++.dg/tls/diag-1.C, g++.dg/tls/diag-2.C,
! 	g++.dg/tls/diag-3.C, g++.dg/tls/diag-4.C, g++.dg/tls/init-1.C,
! 	g++.dg/tls/init-2.C, g++.dg/tls/trivial.C: Require
! 	effective-target TLS.
! 	* gcc.dg/tls/pr24428-2.c, gcc.dg/tls/pr24428.c, gcc.dg/tls/opt-11.c, 
! 	g++.dg/tls/static-1a.cc, g++.dg/tls/static-1.C: Require
! 	effective-target TLS runtime.
! 
! 2005-12-01  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	* gfortran.dg/pr24489.f90: Delete, replaced by read_eor.f90.
! 	* gfortran.dg/pr24584.f90: Delete, replaced by namelist_empty.f90. 
! 
! 2005-12-01  Bernhard Fischer  <rep.nop@aon.at>
! 
! 	PR fortran/21302
! 	* gfortran.dg/line_length_1.f: New test.
! 	* gfortran.dg/line_length_2.f90: Ditto.
! 
! 2005-11-30  Dale Johannesen  <dalej@apple.com>
! 
! 	PR rtl-opt/24930
! 	* gcc.c-torture/compile/pr24930.c:  New.
! 
! 2005-11-30  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24223
! 	* gfortran.dg/substring_equivalence.f90: New test.
! 
! 	PR fortran/24705
! 	* gfortran.dg/auto_internal_assumed.f90: New test.
! 
! 2005-11-30  Jeff Law  <law@redhat.com>
! 
! 	* g++.old-deja/g++.law/pr25000.C: New test.
! 
! 2005-11-30  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc.dg/tls/opt-11.c: New test.
! 
! 2005-11-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.dg/open_access_1.f90: New test.
! 
! 2005-11-29  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* gcc.dg/charset/builtin2.c: New test.
! 
! 2005-11-28  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc.dg/compat/struct-layout-1_generate.c: Add -w option
! 	on mmix-*-* for *_[xy].c.
! 
! 2005-11-28  Kean Johnston  <jkj@sco.com>
! 
! 	(Back-ported from HEAD)
! 	* g++.dg/opt/range-test-1.C: Prevent re-inclusion of system
! 	headers.
! 	* g++.old-deja/g++.law/profile1.C: No longer expect fail on OSR5.
! 	* gcc.c-torture/compile/20000804-1.c: Skip if using -fPIC on X86.
! 	* gcc.target/i386/asm-3.c: Ditto.
! 	* gcc.target/i386/clobbers.c: Ditto.
! 	* gcc.dg/tree-ssa/ssa-dce-2.c: Make t() static and prototype it.
! 	* gcc.target/i386/cmov1.c: Make magic* static so it matches the
! 	test regexp. Correct prototypes.
! 	* gcc.target/i386/mul.c: Ditto.
! 	* gcc.target/i386/ssetype-1.c: Ditto.
! 	* gcc.dg/20040813-1.c: Skip on SVR5 systems.
! 	* gcc.c-torture/execute/builtins/strlen-3.c: Declare variables as
! 	static so the test works with -fPIC mode too. Based on comment in
! 	PR19231 by Pinski.
! 	* gcc.dg/nest.c: No longer fail on SCO systems as it has -pg again.
! 
! 2005-11-27  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/24917
! 	* gfortran.dg/boz_6.f90: New test.
! 
! 2005-11-26  Janne Blomqvist  <jb@gcc.gnu.org>
! 
! 	PR libgfortran/24945
! 	* gfortran.dg/open_status_2.f90: New test.
! 	
! 2005-11-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* gcc.c-torture/execute/builtins/fprintf.c,
! 	gcc.c-torture/execute/builtins/fputs-lib.c,
! 	gcc.c-torture/execute/builtins/fputs.c,
! 	gcc.c-torture/execute/builtins/lib/fprintf.c,
! 	gcc.c-torture/execute/builtins/lib/printf.c,
! 	gcc.c-torture/execute/builtins/printf.c: Test the unlocked style.
! 
! 2005-11-23  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* g++.dg/other/i386-1.C: Pass if CPU has no SSE2 support.
! 
! 2005-11-23  Alan Modra  <amodra@bigpond.net.au>
! 
! 	* gcc.target/powerpc/altivec-consts.c (vspltisb): Use int val.
! 	(vspltish, vspltisw): Likewise.
! 
! 2005-11-22  Jerry DeLisle  <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/24794
! 	* gfortran.dg/namelist_12.f: Fix quotes.
! 	* gfortran.dg/namelist_13.f90: Fix quotes.
! 	* gfortran.dg/namelist_14.f90: Fix quotes.
! 	* gfortran.dg/namelist_15.f90: Fix quotes.
! 	* gfortran.dg/namelist_use.f90: Fix quotes.
! 	* gfortran.dg/namelist_use_only.f90: Fix quotes.
! 	* gfortran.dg/namelist_21.f90: New test.
! 	* gfortran.dg/namelist_22.f90: New test.
! 
! 2005-11-22  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR target/23435
! 	* gcc.c-torture/compile/pr23435.c: New.
! 
! 2005-11-21  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR fortran/24774
! 	* gfortran.dg/inquire_9.f90: New test.
! 
! 	PR fortran/21647
! 	* gfortran.fortran-torture/execute/inquire_5.f90: New test.
! 
! 2005-11-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	PR libfortran/24432
! 	* lib/target-supports.exp (check_effective_target_fortran_large_real):
! 	Check that 'cos' is supported.
! 
! 2005-11-21  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR middle-end/20583
! 	* gcc.c-torture/compile/pr20583.c: New.
! 
! 2005-11-20  Ian Lance Taylor  <ian@airs.com>
! 
! 	PR rtl-optimization/24883
! 	* gcc.c-torture/compile/pr24883.c: New test.
! 
! 2005-11-20  Janne Blomqvist  <jb@gcc.gnu.org>
! 
! 	PR fortran/24862
! 	* gfortran.dg/arrayio_derived_1.f90: New test.
! 
! 2005-11-19  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	PR middle-end/24912
! 	* gcc.dg/torture/pr24912-1.c: New test.
! 
! 2005-11-19  Hans-Peter Nilsson  <hp@bitrange.com>
! 
! 	* gcc.dg/fold-overflow-1.c: Adjust for float output for mmix-*-*.
! 
! 2005-11-18  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/8355
! 	* g++.dg/template/friend39.C: New test.
! 
! 2005-11-18  James E Wilson  <wilson@specifix.com>
! 
! 	* gcc.dg/builtin-strstr.c: New.
! 
! 2005-11-18  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.target/ia64/20010423-1.c, gcc.target/ia64/20020313-1.c,
! 	gcc.target/ia64/20020326-1.c, gcc.target/ia64/20030225-2.c,
! 	gcc.target/ia64/20030405-1.c, gcc.target/ia64/20030811-1.c,
! 	gcc.target/ia64/20040303-1.c: Move from gcc.dg/.
! 	* gcc.target/ia64/asm-1.c, gcc.target/ia64/float80-1.c,
! 	gcc.target/ia64/float80-2.c, gcc.target/ia64/got-1.c,
! 	gcc.target/ia64/postinc-1.c, gcc.target/ia64/types-1.c,
! 	gcc.target/ia64/types-2.c, gcc.target/ia64/visibility-1.c,
! 	gcc.target/ia64/visibility-2.c: Move from gcc.dg/, with 
! 	renaming to remove initial "ia64-".
! 
! 2005-11-18  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* ada/acats/run_all.sh (target_run): Revert 2005-11-17 patch.
! 
! 2005-11-18  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* g++.dg/cpp/string-2.C: New test.
! 
! 2005-11-18  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/loop-14.c: New test.
! 
! 2005-11-17  James A. Morrison  <phython@gcc.gnu.org>
!             Michael Chamberlain <michael@chamberlain.net.au>
! 
! 	* ada/acats/run_all.sh (target_run): Kill long running tests.
! 
! 2005-11-17  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
! 
! 	* gcc.dg/cleanup-8.c: Enable test on hppa*-*-hpux*.
! 	* gcc.dg/cleanup-9.c: Likewise.
! 	* gcc.dg/cleanup-10.c: Likewise.
! 	* gcc.dg/cleanup-11.c: Likewise.
! 
! 2005-11-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR fortran/24892
! 	* gfortran.dg/open_access_append_1.f90: New test.
! 	* gfortran.dg/open_access_append_2.f90: New test.
! 
! 2005-11-16  Richard Guenther  <rguenther@suse.de>
! 
! 	PR middle-end/24851
! 	* gcc.c-torture/execute/pr24851.c: New testcase.
! 
! 2005-11-16  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc.dg/fold-overflow-1.c: New test.
! 
! 2005-11-16  Daniel Jacobowitz  <dan@codesourcery.com>
! 
! 	* gcc.dg/cleanup-5.c, gcc.dg/cleanup-8.c, gcc.dg/cleanup-9.c,
! 	gcc.dg/cleanup-10.c, gcc.dg/cleanup-11.c: Update for ARM EABI.
! 
! 2005-11-16  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	* g++.dg/eh/forced1.C: Adjust to cope with ARM EABI
! 	structures.
! 	* g++.dg/eh/forced2.C: Likewise.
! 	* g++.dg/eh/forced3.C: Likewise.
! 	* g++.dg/eh/forced4.C: Likewise.
! 
! 2005-11-11  Mike Stump  <mrs@apple.com>
! 
! 	* g++.old-deja/g++.mike/unused.C: Add.
! 
! 2005-11-15  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24667
! 	* g++.dg/warn/Wcast-qual1.C: New test.
! 
! 2005-11-15  Jan Hubicka  <jh@suse.cz>
! 
! 	* gcc.dg/winline-5.c: Add large-unit-insns limit.
! 
! 2005-11-14  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* g++.dg/eh/simd-2.C: XFAIL on AIX and SPE.
! 
! 2005-11-14  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 24840
! 	* gcc.dg/tree-ssa/pr24840.c: New test.
! 
! 2005-11-14  Janis Johnson  <janis187@us.ibm.com>
! 
! 	PR testsuite/24841
! 	* gcc.dg/attr-weakref-1.c: Rearrange test directives.
! 
! 2005-11-14  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.c-torture/execute/20051113-1.c:  New.
! 
! 2005-11-14  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24687
! 	* g++.dg/template/crash43.C: New test. 
! 
! 2005-11-14  Daniel Jacobowitz  <dan@codesourcery.com>
! 
! 	* gcc.c-torture/unsorted/unsorted.exp: Sort tests before running them.
! 
! 2005-11-13  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24817
! 	* g++.dg/eh/spec8.C: New test.
! 
! 2005-11-14  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.dg/pack-test-1.c: Gate on ! default_packed.
! 
! 2005-11-13  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/20293
! 	* g++.dg/parse/ambig4.C: New test.
! 	* g++.dg/tc1/dr101.C: Adjust error markers.
! 	* g++.dg/lookup/strong-using-2.C: Likewise.
! 	* g++.dg/lookup/ambig5.C: Likewise.
! 	* g++.dg/lookup/ambig4.C: Likewise.
! 	* g++.dg/parse/crash22.C: Likewise.
! 
! 2005-11-14  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.dg/pr19340.c: Skip for mmix-*-* and cris-*-*.
! 
! 2005-11-13  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc.dg/nested-calls-1.c: New test.
! 
! 2005-11-13  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	* gfortran.dg/complex_intrinsic_1.f90: New test.
! 	* gfortran.dg/complex_intrinsic_2.f90: New test.
! 	* gfortran.dg/fgetc_1.f90: New test.
! 	* gfortran.dg/fgetc_2.f90: New test.
! 	* gfortran.dg/fgetc_3.f90: New test.
! 	* gfortran.dg/ftell_1.f90: New test.
! 	* gfortran.dg/ftell_2.f90: New test.
! 	* gfortran.dg/gnu_logical_1.F: New test.
! 	* gfortran.dg/gnu_logical_2.f90: New test.
! 
! 2005-11-13  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/24820
! 	* testsuite/gcc.dg/pr24820.c: New test.
! 
! 2005-11-13  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/loop-2.c: Fix outcome.
! 	* gcc.dg/tree-ssa/loop-3.c: Change type of loop control
! 	variable.
! 
! 2005-11-12  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
! 
! 	testsuite/24614
! 	* gcc.dg/nested-func-4.c: Add dg-options for hppa*-*-hpux*.
! 
! 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.target/cris/cris.exp: New file.
! 	* gcc.target/cris/rld-legit1.c: New test.
! 	* gcc.target/cris/rld-legit2.c: New test.
! 
! 2005-11-12  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/24780
! 	* g++.dg/opt/pr24780.C: New test.
! 
! 	PR c++/24761
! 	* g++.dg/template/asm1.C: New test.
! 
! 2005-11-12  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR libgfortran/24787
! 	* gfortran.dg/scan_1.f90: New test.
! 
! 2005-11-12  Jan Hubicka  <jh@suse.cz>
! 
! 	* gcc.target/i386/minmax-1.c: New.
! 	* gcc.target/i386/minmax-2.c: New.
! 
! 2005-11-12  Kaz Kojima  <kkojima@gcc.gnu.org>
! 
! 	* gcc.dg/pr24445.c: Fix for 64-bit targets.
! 
! 2005-11-11  Daniel Jacobowitz  <dan@codesourcery.com>
! 
! 	* gcc.c-torture/execute/20051110-1.c,
! 	gcc.c-torture/execute/20051110-2.c: New tests.
! 
! 2005-11-12  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	PR middle-end/24750
! 	* gcc.dg/torture/pr24750-1.c, gcc.target/cris/torture/pr24750-2.c:
!         New tests.
! 
! 2005-11-11  Andreas Tobler  <a.tobler@schweiz.ch>
! 
! 	* lib/target-libpath.exp (get_shlib_extension): New proc.
! 	* lib/g++.exp (g++_link_flags): Add flags in case of shared only build.
! 	* lib/gfortran.exp (gfortran_link_flags): Likewise.
! 	* lib/objc.exp (objc_target_compile): Likewise.
! 	* lib/obj-c++.exp (obj-c++_link_flags): Likewise. Fix multilib libgcc
! 	detection.
! 
! 2005-11-11  Andreas Tobler  <a.tobler@schweiz.ch>
! 
! 	* gfortran.dg/static_linking_1.f: Fix static_libgfortran processing.
! 
! 	* lib/target-supports.exp (check_effective_target_static_libgfortran):
! 	Add -static to additional_flags and pass it to target_compile.
! 
! 2005-11-11  Jerry DeLisle <jvdelisle@gcc.gnu.org>
! 
! 	PR libgfortran/24719
! 	gfortran.dg/read_noadvance.f90: New test.
! 	
! 	PR libgfortran/24699
! 	gfortran.dg/fmt_t_2.f90: New test.
! 	
! 	PR libgfortran/24785
! 	gfortran.dg/read_x_eor.f90: New test.
! 	
! 	PR libgfortran/24584
! 	gfortran.dg/namelist_empty.f90: Rename test.
! 
! 	PR libgfortran/24489
! 	gfortran/read_eor.f90: Rename test.
! 
! 2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/15976
! 	* gfortran.dg/automatic_module_variable.f90: New test.
! 
! 2005-11-11  Kaz Kojima  <kkojima@gcc.gnu.org>
! 
! 	PR target/24445
! 	* gcc.dg/pr24445.c: New test.
! 
! 2005-11-10  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24655
! 	PR fortran/24755
! 	* gfortran.dg/recursive_statement_functions.f90: Add statement 
! 	functions using inline intrinsic functions and parameters to test
! 	that they no longer seg-fault.
! 
! 	PR fortran/24409
! 	gfortran.dg/nested_modules_4.f90: New test.
! 	gfortran.dg/nested_modules_5.f90: New test.
! 
! 2005-11-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/24643
! 	* gfortran.dg/implicit_6.f90, gfortran.dg/implicit_7.f90: New.
! 
! 2005-11-10  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	* gcc.dg/attr-weakref-1.c: Add exit (0) to avoid spurious
! 	failures.
! 
! 2005-11-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* gcc.dg/sparc-getcontext-1.c: New test.
! 
! 2005-11-09  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc.dg/ifcvt-fabs-1.c: New test.
! 
! 2005-11-09  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	PR other/4372
! 	* gcc.dg/attr-weakref-1.c, gcc.dg/attr-weakref-1a.c: New test.
! 	* g++.old-deja/g++.abi/vtable2.C: Use weakref instead of alias.
! 
! 2005-11-09  Richard Guenther  <rguenther@suse.de>
! 
! 	PR tree-optimization/24716
! 	* gcc.c-torture/execute/pr24716.c: New testcase.
! 
! 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
! 
! 	* gcc.dg/pr24624.c: Disable for non S/390 targets.
! 
! 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
! 	
!         PR 24624
! 	* gcc.dg/pr24624.c: Testcase added.
! 	
! 2005-11-09  Andreas Krebbel  <krebbel1@de.ibm.com>
! 
! 	PR 24623
! 	* g++.dg/other/pr24623.C: Testcase added.
! 
! 2005-11-09  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/22607
! 	* gfortran-dg/pure_byref_1.f90: New.
! 	* gfortran-dg/pure_byref_2.f90: New.
! 
! 2005-11-09  Uros Bizjak  <uros@kss-loka.si>
! 
! 	PR c/24101
! 	* gcc.dg/pr24101-1.i, gcc.dg/pr24101-2.i: New tests.
! 	* gcc.dg/dg.exp: Run main loop also for *.i files.
! 
! 2005-11-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/19450
! 	* g++.dg/tls/diag-3.C: New test.
! 	* g++.dg/tls/diag-4.C: New test.
! 	* g++.dg/tls/static-1.C: New test.
! 	* g++.dg/tls/static-1a.cc: New file.
! 
! 2005-11-08  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 23046
! 	* g++.dg/tree-ssa/pr23046.C: New test.
! 
! 2005-11-08  Devang Patel <dpatel@apple.com>
! 
! 	PR tree-optimization/23115
! 	* gcc.dg/tree-ssa/pr23115.c: New.
! 	
! 2005-11-08  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* g++.dg/ext/altivec-{1-13}.C: XFAIL on AIX and SPE.
! 	* gcc.target/powerpc/pr16155.c: Same.
! 	* gcc.target/powerpc/altivec-1.c: Same.
! 	* gcc.target/powerpc/altivec-2.c: Same.
! 	* gcc.target/powerpc/altivec-3.c: Same.
! 	* gcc.target/powerpc/altivec-5.c: Same.
! 	* gcc.target/powerpc/altivec-11.c: Same.
! 	* gcc.target/powerpc/altivec-12.c: Same.
! 	* gcc.target/powerpc/altivec-14.c: Same.
! 	* gcc.target/powerpc/altivec-22.c: Same.
! 	* gcc.target/powerpc/altivec-consts.c: Same.
! 	* gcc.target/powerpc/altivec-pr22085.c: Same.
! 	* gcc.target/powerpc/altivec-splat.c: Same.
! 	* gcc.target/powerpc/altivec-varargs-1.c: Same.
! 	* gcc.target/powerpc/altivec-vec-merge.c: Same.
! 	* gcc.target/powerpc/darwin-longlong.c: Same.
! 
! 2005-11-08  Uros Bizjak  <uros@kss-loka.si>
! 
! 	PR target/19340
! 	* gcc.dg/pr19340.c: New test.
! 
! 2005-11-07  Ian Lance Taylor  <ian@airs.com>
! 
! 	PR rtl-optimization/24683
! 	* gcc.dg/pr24683.c: New test.
! 
! 2005-11-07  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.dg/pr24225.c: Add cleanup-coverage-files.
! 	* gcc.dg/vect/pr24300.c: Add cleanup-tree-dump.
! 
! 2005-11-07  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.target/i386/pr23376.c: Compile with -mmmx.
! 
! 2005-11-07  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	* g++.dg/abi/empty6.C (B): Align to twice pointer size.
! 
! 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
! 
! 	PR target/24230
! 
!         * gcc.target/powerpc/altivec-consts.c,
!         gcc.target/powerpc/altivec-splat.c: New testcase.
! 
! 2005-11-07  Paolo Bonzini  <bonzini@gnu.org>
! 
! 	PR c/24599
! 
!         * gcc.dg/overflow-2.c: New testcase.
! 
! 2005-11-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR rtl-optimization/23567
! 	* gcc.c-torture/execute/20051104-1.c: New test.
! 
! 2005-11-06  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24534
! 	gfortran.dg/private_type_2.f90: Modified to check that case with
! 	PRIVATE declaration within derived type is accepted.
! 
! 	PR fortran/20838
! 	gfortran.dg/pointer_assign_1.f90: New test.
! 
! 	PR fortran/20840
! 	* gfortran.dg/arrayio_0.f90: New test.
! 
! 	PR fortran/17737
! 	gfortran.dg/data_initialized.f90: New test.
! 	gfortran.dg/data_constraints_1.f90: New test.
! 	gfortran.dg/data_constraints_2.f90: New test.
! 
! 2005-11-06  Janne Blomqvist <jb@gcc.gnu.org>
! 
! 	PR fortran/24174
! 	PR fortran/24305
! 	* testsuite/gfortran.dg/large_real_kind_form_io_1.f90: New file.	
! 
! 2005-11-06  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 24670
! 	* gcc.dg/tree-ssa/pr24670.c: New test.
! 
! 2005-11-05  Ian Lance Taylor  <ian@airs.com>
! 
! 	PR target/22432
! 	* gcc.target/i386/pr22432.c: New test.
! 
! 2005-11-05  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.target/alpha/asm-1.c: Move from gcc.dg/asm-5.c.
! 	* gcc.target/alpha/cix-1.c, gcc.target/alpha/cix-2.c,
! 	gcc.target/alpha/max-1.c, gcc.target/alpha/max-2.c,
! 	gcc.target/alpha/base-1.c, gcc.target/alpha/base-2.c: Move
! 	from gcc.dg/alpha-*.
! 	* gcc.target/alpha/980217-1.c, gcc.target/alpha/20011018-1.c,
! 	gcc.target/alpha/20000715-1.c: Move from gcc.dg/.
! 
! 2005-11-05  Andreas Jaeger  <aj@suse.de>
! 
! 	* gcc.target/i386/20020523-2.c: Fix path for i386-cpuid.h.
! 
! 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	PR target/23424
! 	* gcc.dg/torture/pr23424-1.c: New test.
! 
! 2005-11-04  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.target/i386/20000609-1.c, gcc.target/i386/20000614-1.c,
! 	gcc.target/i386/20000614-2.c, gcc.target/i386/20000720-1.c,
! 	gcc.target/i386/20000807-1.c, gcc.target/i386/20000904-1.c,
! 	gcc.target/i386/20001127-1.c, gcc.target/i386/20010202-1.c,
! 	gcc.target/i386/20010520-1.c, gcc.target/i386/20011009-1.c,
! 	gcc.target/i386/20011029-2.c, gcc.target/i386/20011107-1.c,
! 	gcc.target/i386/20011119-1.c, gcc.target/i386/20020201-3.c,
! 	gcc.target/i386/20020218-1.c, gcc.target/i386/20020224-1.c,
! 	gcc.target/i386/20020426-1.c, gcc.target/i386/20020523-1.c,
! 	gcc.target/i386/20020523-2.c, gcc.target/i386/20020531-1.c,
! 	gcc.target/i386/20020616-1.c, gcc.target/i386/20020729-1.c,
! 	gcc.target/i386/20030217-1.c, gcc.target/i386/20030926-1.c,
! 	gcc.target/i386/20040112-1.c, gcc.target/i386/20050113-1.c,
! 	gcc.target/i386/980211-1.c, gcc.target/i386/980226-1.c,
! 	gcc.target/i386/980414-1.c, gcc.target/i386/980520-1.c,
! 	gcc.target/i386/980709-1.c, gcc.target/i386/990117-1.c,
! 	gcc.target/i386/990130-1.c, gcc.target/i386/990213-2.c,
! 	gcc.target/i386/990214-1.c, gcc.target/i386/990424-1.c,
! 	gcc.target/i386/990524-1.c, gcc.target/i386/991129-1.c,
! 	gcc.target/i386/991209-1.c, gcc.target/i386/991214-1.c,
! 	gcc.target/i386/991230-1.c, gcc.target/i386/pr12092-1.c,
! 	gcc.target/i386/pr14289-1.c, gcc.target/i386/pr18614-1.c,
! 	gcc.target/i386/pr19236-1.c, gcc.target/i386/pr20204.c,
! 	gcc.target/i386/pr23943.c, gcc.target/i386/pr9771-1.c:
! 	Move from gcc.dg/.
! 	* gcc.target/i386/387-1.c, gcc.target/i386/387-2.c,
! 	gcc.target/i386/387-3.c, gcc.target/i386/387-4.c,
! 	gcc.target/i386/387-5.c, gcc.target/i386/387-6.c,
! 	gcc.target/i386/387-7.c, gcc.target/i386/387-8.c,
! 	gcc.target/i386/3dnow-1.c, gcc.target/i386/3dnow-2.c,
! 	gcc.target/i386/3dnowA-1.c, gcc.target/i386/3dnowA-2.c,
! 	gcc.target/i386/asm-2.c, gcc.target/i386/asm-3.c,
! 	gcc.target/i386/asm-4.c, gcc.target/i386/bitfield1.c,
! 	gcc.target/i386/bitfield2.c, gcc.target/i386/bitfield3.c,
! 	gcc.target/i386/cadd.c, gcc.target/i386/call-1.c,
! 	gcc.target/i386/clobbers.c, gcc.target/i386/cmov1.c,
! 	gcc.target/i386/cmov2.c, gcc.target/i386/cmov3.c,
! 	gcc.target/i386/cmov4.c, gcc.target/i386/cmov5.c,
! 	gcc.target/i386/cvt-1.c, gcc.target/i386/fastcall-1.c,
! 	gcc.target/i386/fpcvt-1.c, gcc.target/i386/fpcvt-2.c,
! 	gcc.target/i386/fpcvt-3.c, gcc.target/i386/fpcvt-4.c,
! 	gcc.target/i386/lea.c, gcc.target/i386/local.c,
! 	gcc.target/i386/local2.c, gcc.target/i386/loop-1.c,
! 	gcc.target/i386/loop-2.c, gcc.target/i386/loop-3.c,
! 	gcc.target/i386/memset-1.c, gcc.target/i386/mmx-1.c,
! 	gcc.target/i386/mmx-2.c, gcc.target/i386/mmx-3.c,
! 	gcc.target/i386/mmx-4.c, gcc.target/i386/mmx-5.c,
! 	gcc.target/i386/mmx-6.c, gcc.target/i386/mul.c,
! 	gcc.target/i386/pentium4-not-mull.c, gcc.target/i386/pic-1.c,
! 	gcc.target/i386/regparm.c, gcc.target/i386/rotate-1.c,
! 	gcc.target/i386/sibcall-5.c, gcc.target/i386/signbit-1.c,
! 	gcc.target/i386/signbit-2.c, gcc.target/i386/signbit-3.c,
! 	gcc.target/i386/sse-10.c, gcc.target/i386/sse-11.c,
! 	gcc.target/i386/sse-12.c, gcc.target/i386/sse-5.c,
! 	gcc.target/i386/sse-6.c, gcc.target/i386/sse-7.c,
! 	gcc.target/i386/sse-8.c, gcc.target/i386/sse-9.c,
! 	gcc.target/i386/sse-vect-types.c, gcc.target/i386/ssefn-1.c,
! 	gcc.target/i386/ssefn-2.c, gcc.target/i386/ssefn-3.c,
! 	gcc.target/i386/ssefn-4.c, gcc.target/i386/ssefp-1.c,
! 	gcc.target/i386/ssefp-2.c, gcc.target/i386/ssetype-1.c,
! 	gcc.target/i386/ssetype-2.c, gcc.target/i386/ssetype-3.c,
! 	gcc.target/i386/ssetype-4.c, gcc.target/i386/ssetype-5.c,
! 	gcc.target/i386/unroll-1.c, gcc.target/i386/volatile-1.c,
! 	gcc.target/i386/xorps.c:  Move from gcc.dg/i386-*.
! 	* gcc.target/i386/pr23376.c: Move from gcc.target/x86_64/pr23376.c.
! 	* gcc.target/i386/asm-5.c: Move from gcc.dg/asm-1.c.
! 	* gcc.target/i386/sse-13.c: Move from gcc.dg/i386-sse-1.c.
! 	* gcc.target/i386/sse-14.c: Move from gcc.dg/i386-sse-2.c.
! 	* gcc.target/i386/sse-15.c: Move from gcc.dg/i386-sse-3.c.
! 	* gcc.target/i386/sse-16.c: Move from gcc.dg/i386-sse-4.c.
! 
! 2005-11-04  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 24627
! 	* gcc.dg/tree-ssa/pr24627.c: New test.
! 
! 2005-11-04 Paul Brook  <paul@codesourcery.com>
! 
! 	* gcc.dg/tls/opt-10.c: New test.
! 
! 2005-11-04  Andreas Jaeger  <aj@suse.de>
! 
! 	* gcc.dg/format/unnamed-1.c: Add -msse for x86 compilation to
! 	avoid extra warnings.
! 
! 2005-11-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/22298
! 	* gcc/testsuite/lib/target-supports.exp
! 	(check_effective_target_static_libgfortran): New
! 	static_libgfortran effective target.
! 	* gcc/testsuite/gfortran.dg/static_linking_1.f: New test.
! 	* gcc/testsuite/gfortran.dg/static_linking_1.c: New file.
! 
! 2005-11-04  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.dg/pr24615.c: Guard test with { target fpic }.
! 
! 2005-11-03  Josh Conner  <jconner@apple.com>
! 
! 	PR c++/19989
! 	g++.dg/ext/array2.C: New test.
! 	g++.dg/template/dependent-name3.C: New test.
! 	g++.dg/template/dependent-name4.C: New test.
! 	g++.dg/template/sfinae2.C: New test.
! 
! 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR preprocessor/22042
! 	* gcc.dg/cpp/strify4.c: New test.
! 
! 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	PR c++/17964
! 	* g++.dg/cpp/string-1.C: New test.
! 
! 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* gcc.target/powerpc: New directory.
! 	* gcc.target/powerpc/powerpc.exp: New file.
! 	* gcc.dg/20020118-1.c, gcc.dg/20030218-1.c, gcc.dg/20030505.c,
! 	gcc.dg/20040121-1.c, gcc.dg/20040622-1.c, gcc.dg/20041111-1.c,
! 	gcc.dg/20050603-1.c, gcc.dg/20050603-3.c, gcc.dg/20050830-1.c,
! 	gcc.dg/980827-1.c, gcc.dg/altivec-1.c, gcc.dg/altivec-10.c,
! 	gcc.dg/altivec-11.c, gcc.dg/altivec-12.c, gcc.dg/altivec-13.c,
! 	gcc.dg/altivec-14.c, gcc.dg/altivec-15.c, gcc.dg/altivec-16.c,
! 	gcc.dg/altivec-17.c, gcc.dg/altivec-18.c, gcc.dg/altivec-19.c,
! 	gcc.dg/altivec-2.c, gcc.dg/altivec-20.c, gcc.dg/altivec-21.c,
! 	gcc.dg/altivec-22.c, gcc.dg/altivec-3.c, gcc.dg/altivec-4.c,
! 	gcc.dg/altivec-5.c, gcc.dg/altivec-6.c, gcc.dg/altivec-7.c,
! 	gcc.dg/altivec-8.c, gcc.dg/altivec-9.c, gcc.dg/altivec-pr22085.c,
! 	gcc.dg/altivec-types-1.c, gcc.dg/altivec-types-2.c,
! 	gcc.dg/altivec-types-3.c, gcc.dg/altivec-types-4.c,
! 	gcc.dg/altivec-varargs-1.c, gcc.dg/altivec-vec-merge.c,
! 	gcc.dg/altivec_check.h, gcc.dg/compress-float-ppc-pic.c,
! 	gcc.dg/compress-float-ppc.c, gcc.dg/darwin-abi-1.c,
! 	gcc.dg/darwin-abi-2.c, gcc.dg/darwin-bool-1.c,
! 	gcc.dg/darwin-bool-2.c, gcc.dg/darwin-longdouble.c,
! 	gcc.dg/darwin-longlong.c, gcc.dg/darwin-misaligned.c,
! 	gcc.dg/doloop-1.c, gcc.dg/macho-lo-sum.c, gcc.dg/ppc-and-1.c,
! 	gcc.dg/ppc-bitfield1.c, gcc.dg/ppc-compare-1.c, gcc.dg/ppc-eabi.c,
! 	gcc.dg/ppc-fmadd-1.c, gcc.dg/ppc-fmadd-2.c, gcc.dg/ppc-fmadd-3.c,
! 	gcc.dg/ppc-fsel-1.c, gcc.dg/ppc-fsel-2.c, gcc.dg/ppc-fsel-3.c,
! 	gcc.dg/ppc-ldstruct.c, gcc.dg/ppc-mov-1.c, gcc.dg/ppc-sdata-1.c,
! 	gcc.dg/ppc-sdata-2.c, gcc.dg/ppc-spe.c, gcc.dg/ppc-spe64-1.c,
! 	gcc.dg/ppc-stackalign-1.c, gcc.dg/ppc-stfiwx.c,
! 	gcc.dg/ppc-vector-memcpy.c, gcc.dg/ppc-vector-memset.c,
! 	gcc.dg/ppc64-abi-1.c, gcc.dg/ppc64-abi-2.c, gcc.dg/ppc64-abi-3.c,
! 	gcc.dg/ppc64-toc.c, gcc.dg/pr16155.c, gcc.dg/pr16286.c,
! 	gcc.dg/pr18096-1.c, gcc.dg/rs6000-fpint-2.c,
! 	gcc.dg/rs6000-fpint.c, gcc.dg/rs6000-ldouble-1.c,
! 	gcc.dg/rs6000-ldouble-2.c, gcc.dg/rs6000-power2-1.c,
! 	gcc.dg/rs6000-power2-2.c, gcc.dg/spe1.c,
! 	gcc.dg/stabs-attrib-vect-darwin.c: Move to gcc.target/powerpc.
! 
! 2005-11-03  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/21627
! 	* g++.dg/warn/inline2.C: New test.
! 
! 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/23155
! 	* g++.dg/ext/c99struct1.C: New test.
! 	* gcc.dg/union-cast-1.c: New test.
! 	* gcc.dg/union-cast-2.c: New test.
! 	* gcc.dg/union-cast-3.c: New test.
! 
! 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/24589
! 	* gcc.c-torture/execute/zero-struct-2.c: New test.
! 
! 2005-11-03  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR c++/24582
! 	* g++.dg/init/switch1.C: New test.
! 
! 2005-11-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* gcc.dg/delay-slot-1.c: New test.
! 
! 2005-11-03  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR target/24620
! 	* gcc.dg/pr24620.c: New test.
! 
! 2005-11-03  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	PR c/24329
! 	* gcc.dg/format/unnamed-1.c: New test.
! 
! 2005-11-02  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/22434
! 	* g++.dg/expr/cond8.C: New test.
! 
! 	PR c++/24560
! 	* g++.dg/parse/dot1.C: New test.
! 
! 2005-11-02  Jan Hubicka  <jh@suse.cz>
! 
! 	PR target/23303
! 	* gcc.dg/i386-lea.c: New test
! 
! 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR target/24615
! 	* gcc.dg/pr24615.c: New test.
! 
! 2005-11-02  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR target/24600
! 	* gcc.dg/pr24600.c: New test.
! 
! 2005-11-02  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/19253
! 	* g++.dg/parse/typename8.C: Compile with -w -fpermissive.
! 	* g++.dg/parse/typename9.C: New test.
! 	* g++/dg/parse/typename10.C: Likewise.
! 
! 2005-11-02  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR fortran/18157
! 	* gfortran.fortran-torture/compile/defined_type_1.f90: New test.
! 	* gfortran.fortran-torture/compile/defined_type_2.f90: New test.
! 	* gfortran.fortran-torture/compile/defined_type_3.f90: New test.
! 
! 2005-11-02  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24569
! 	* g++.dg/debug/static1.C: New test.
! 
! 2005-11-02  Josh Conner  <jconner@apple.com>
! 
! 	* g++.dg/crash38.C: moved into proper directory...
! 	* g++.dg/template/crash42.C: ...here
! 
! 2005-11-02  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	PR target/18338
! 	* gcc.dg/bitfld-4.c, g++.dg/abi/bitfield4.C: Gate on
! 	pcc_bitfield_type_matters || default_packed.
! 
! 	* lib/target-supports.exp
! 	(check_effective_target_pcc_bitfield_type_matters): New proc.
! 	* gcc.dg/bitfld-3.c: Gate on target pcc_bitfield_type_matters.
! 
! 	PR testsuite/23304
! 	* lib/target-supports.exp (check_effective_default_packed): New proc.
! 	* g++.dg/ext/packed3.C, g++.dg/ext/packed8.C, g++.dg/other/crash-4.C:
! 	Gate expected errors on target ! default_packed.
! 	* g++.dg/ext/packed4.C: Gate on target ! default_packed.
! 
! 2005-11-02  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	* gfortran.fortran-torture/execute/entry_9.f90: Revert previous
! 	change (r106358).
! 
! 2005-11-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/24008
! 	* gfortran.dg/entry_5.f90: New.
! 	* gfortran.fortran-torture/execute/entry_9.f90: Fix syntax error.
! 
! 2005-11-01  Bob Wilson  <bob.wilson@acm.org>
! 
! 	* gcc.dg/intmax_t-1.c: Disable for xtensa-*-elf*.
! 
! 2005-11-01  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/21565
! 	gfortran.dg/namelist_blockdata.f90: New test.
! 
! 	PR fortran/18737
! 	gfortran.dg/external_implicit_none.f90: New test.
! 
! 	PR fortran/14994
! 	* gfortran.dg/secnds.f: New test.
! 
! 2005-10-31  Jan Hubicka  <jh@suse.cz>
! 
! 	PR target/20928
! 	* gcc.c-torture/compile/pr20928.c: New test.
! 
! 2005-10-31  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/23492
! 	* gcc.c-torture/compile/zero-strct-5.c: New test.
! 
! 2005-10-31  Jerry DeLisle  <jvdelisle@verizon.net>
! 
!         PR libgfortran/24584
!         * gfortran.dg/pr24584.f90: New test.
! 
! 2005-10-28  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/18883
! 	* gfortran.dg/char_result_9.f90: New.
! 	* gfortran.dg/char_result_10.f90: New.
! 
! 2005-10-30  Jan Hubicka  <jh@suse.cz>
! 
! 	* g++.dg/tree-ssa/pr24172.C: New testcase.
! 
! 2005-10-30  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	* gfortran.dg/enum_10.f90, gfortran.dg/enum_10.c: New test.
! 
! 2005-10-30  Gaurav Gautam  <gauravga@noida.hcltech.com>
! 
! 	* gfortran.dg/enum_1.f90, gfortran.dg/enum_2.f90,
! 	gfortran.dg/enum_3.f90, gfortran.dg/enum_4.f90,
! 	gfortran.dg/enum_5.f90, gfortran.dg/enum_6.f90,
! 	gfortran.dg/enum_7.f90, gfortran.dg/enum_8.f90,
! 	gfortran.dg/enum_9.f90,
! 	gfortran.fortran-torture/compile/enum_1.f90,
! 	gfortran.fortran-torture/execute/enum_1.f90,
! 	gfortran.fortran-torture/execute/enum_2.f90,
! 	gfortran.fortran-torture/execute/enum_3.f90,
! 	gfortran.fortran-torture/execute/enum_4.f90: New tests.
! 
! 2005-10-30  Hans-Peter Nilsson  <hp@bitrange.com>
! 
! 	PR target/18482
! 	* gcc.dg/compat/struct-layout-1_generate.c (switchfiles, main):
! 	For mmix-*-*, pass with dg-options an additional -mno-base-addresses.
! 
! 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/20179
! 	* gfortran.dg/mixed_io_1.f90: New test.
! 	* gfortran.dg/mixed_io_1.c: New file.
! 
! 2005-10-30  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	* gfortran.dg/malloc_free_1.f90: New test.
! 
! 2005-10-29  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.dg/nested-func-4.c: Require profiling -pg.
! 
! 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR C++/23229
! 	* g++.dg/warn/main-2.C: New test.
! 
! 2005-10-28  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/24545
! 	* gfortran.dg/interface_2.f90: new test.
! 
! 2005-10-28  Josh Conner  <jconner@apple.com>
! 
! 	PR c++/22153
! 	* g++.dg/template/crash38.C: New test.
! 	* g++.dg/parse/explicit1.C: Change expected errors.
! 
! 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR C++/23426
! 	* g++.dg/other/large-size-array.C: New test.
! 
! 2005-10-28  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/24362
! 	* g++.dg/opt/complex4.C: New test.
! 
! 2005-10-25  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc.dg/nested-func-4.c: New test.
! 
! 2005-10-26  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24158
! 	gfortran.dg/derived_recursion.f90: New test.
! 	gfortran.dg/implicit_actual.f90: New test.
! 
! 2005-10-25  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	PR middle-end/24295, PR testsuite/24477
! 	* g++.old-deja/g++.abi/vtable2.C: Require alias for now.  Will be
! 	removed when weakref hits the tree.
! 
! 2005-10-25  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.dg/cray_pointers_4.f90: New test.
! 
! 	* gfortran.dg/cray_pointers_5.f90: New test.
! 
! 2005-10-25  Feng Wang  <fengwang@nudt.edu.cn>
! 
! 	PR fortran/22290
! 	* gfortran.dg/assign_5.f90: New test.
! 	* gfortran.dg/assign_6.f: New test.
! 
! 2005-10-25  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* g++.dg/other/i386-1.C: Include i386-cpuid.h.  Pass if
! 	CPU has no SSE support.
! 
! 2005-10-24  Jerry DeLisle  <jvdelisle@verizon.net>
! 
!         PR libgfortran/24224
!         * gfortran.dg/arrayio_1.f90: Update attribution.
!         * gfortran.dg/arrayio_2.f90: Update attribution.
!         * gfortran.dg/arrayio_3.f90: Update attribution.
!         * gfortran.dg/arrayio_4.f90: Update test conditions.
!         * gfortran.dg/arrayio_5.f90: Update attribution.
!         * gfortran.dg/arrayio_6.f90: New test.
!         * gfortran.dg/arrayio_7.f90: New test.
! 
! 2005-10-24  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/loop-9.c: Prevent matching "leave".
! 
! 2005-10-24  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	* gfortran.dg/namelist_char_only.f90: Add missing newline at end.
! 
! 2005-10-24  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24416
! 	* gfortran.dg/namelist_char_only.f90: New test.
! 
! 2005-10-24  Asher Langton  <langton2@llnl.gov>
! 
! 	PR fortran/17031
! 	PR fortran/22282
! 	* gfortran.dg/cray_pointers_1.f90: New test.
! 	* gfortran.dg/cray_pointers_2.f90: New test.
! 	* gfortran.dg/cray_pointers_3.f90: New test.
! 	* gfortran.dg/loc_1.f90: New test.
! 	* gfortran.dg/loc_2.f90: New test.
! 
! 2005-10-24  Steven Bosscher  <stevenb@suse.de>
! 
! 	* gcc.dg/pr24225.c: New test.
! 
! 2005-10-24  Asher Langton  <langton2@llnl.gov>
! 
! 	* gfortran.dg/dup_save_1.f90: New test.
! 	* gfortran.dg/dup_save_2.f90: New test.
! 
! 2005-10-24  Paul Brook  <paul@codesourcery.com>
! 
! 	PR 24107
! 	* gcc.dg/20050922-1.c: Provide definition of uint32_t without using
! 	stdint.h.
! 
! 2005-10-23  Jerry DeLisle  <jvdelisle@verizon.net>
! 
! 	PR libgfortran/24489
! 	* gfortran.dg/pr24489.f90: New test.
! 
! 2005-10-23  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR fortran/23635
! 	* gfortran.dg/ichar_1.f90: Add tests for derived types.
! 
! 2005-10-23  Hans-Peter Nilsson  <hp@bitrange.com>
! 
! 	PR target/18911
! 	* g++.dg/init/array16.C: Skip for mmix-*-*.
! 
! 2005-10-23  Asher Langton  <langton2@llnl.gov>
! 
! 	* gfortran.dg/byte_1.f90: New test.
! 	* gfortran.dg/byte_2.f90: New test.
! 
! 2005-10-23  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* gcc.dg/attr-alias-3.c: XFAIL on AIX.
! 
! 2005-10-23  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/18022
! 	* gfortran.dg/assign_func_dtcomp_1.f90: New test.
! 
! 	PR fortran/24311
! 	* gfortran.dg/merge_char_const.f90: New test.
! 
! 	PR fortran/24384
! 	* gfortran.dg/spread_scalar_source.f90: New test.
! 
! 2005-10-22  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* g++.old-deja/g++.jason/thunk2.C: Guard test with { target fpic }.
! 
! 	* gcc.dg/tree-ssa/20040204-1.c: Adjust XFAIL for CRIS and MMIX.
! 	* gcc.dg/tree-ssa/loop-1.c: Adjust "call foo"-scanning for CRIS.
! 
! 	* gcc.dg/weak/typeof-2.c: Adjust for CRIS keeping baz3 in a register.
! 
! 2005-10-22  Erik Edelmann  <eedelman@gcc.gnu.org>
! 
! 	PR fortran/24426
! 	* gfortran.dg/der_pointer_4.f90: New.
! 
! 2005-10-22  David Ayers  <d.ayers@inode.at>
! 
! 	* obj-c++.dg/except-1.mm: Simplify.
! 
! 2005-10-21  David Ayers  <d.ayers@inode.at>
! 
! 	* obj-c++.dg/except-1.mm: Generalize for both Objective-C runtimes.
! 
! 2005-10-21  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.dg/assumed_dummy_2.f90: New test.
! 
! 2005-10-21  James E Wilson  <wilson@specifix.com>
! 
! 	PR preprocessor/15220
! 	* gcc.misc-tests/mg-2.c, gcc.misc-tests/mg-2.exp: New.
! 
! 2005-10-21  Eric Botcazou  <ebotcazou@adacore.com>
! 
! 	* gcc.c-torture/execute/20051021-1.c: New test.
! 
! 2005-10-21  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24260
! 	* g++.dg/ext/tmplattr1.C: New test.
! 
! 2005-10-21  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24440
! 	* gfortran.dg/assumed_size_dt_dummy.f90: Add test for scalar case.
! 
! 2005-10-20  Geoffrey Keating  <geoffk@apple.com>
! 
! 	* obj-c++.dg/except-1.mm: New.
! 
! 	* obj-c++.dg/stubify-2.mm: Update the name of the RTL dump file.
! 
! 2005-10-21  Alan Modra  <amodra@bigpond.net.au>
! 
! 	* g++.dg/warn/Wconversion1.C: Use -fsigned-char.
! 
! 2005-10-20  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	PR middle-end/24295
! 	* g++.old-deja/g++.abi/vtable2.C: Do not introduce external
! 	declarations with the same names as thunks' alias targets, use
! 	aliases instead.
! 	* gcc.dg/attr-alias-3.c: New test.
! 	* gcc.dg/weak/weak-14.c, gcc.dg/weak/weak-14a.c: New test.
! 
! 2005-10-20  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/22618
! 	* g++.dg/parse/access8.C: New test.
! 
! 2005-10-20  Richard Guenther  <rguenther@suse.de>
! 
! 	PR c++/24439
! 	* g++.dg/tree-ssa/pr24439.C: New testcase.
! 
! 2005-10-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* g++.dg/opt/delay-slot-1.C: New test.
! 
! 2005-10-20  Erik Edelmann  <erik.edelmann@iki.fi>
! 
! 	PR fortran/21625
! 	* gfortran.fg/der_init_1.f90: New.
! 
! 2005-10-19  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	* gcc.dg/20050824-1.c (f): Clobber %r13 and %r14 only on s390x.
! 
! 2005-10-19  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/21908
! 	* g++.dg/parse/error28.C: New test.
! 
! 2005-10-19  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* gcc.dg/profile-generate-2.c: New test.
! 
! 2005-10-18  Danny Smith  <dannysmith@users.sourceforge.net>
! 
! 	PR target/23589
! 	* g++.dg/ext/dllimport11.C: New.
! 
! 2005-10-18  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/22293
! 	* g++.dg/other/friend3.C: New test.
! 
! 2005-10-18  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/23293
! 	* g++.dg/template/error19.C: New test.
! 
! 2005-10-18  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/21383
! 	* g++.dg/overload/koenig2.C: New.
! 
! 	PR c++/23118
! 	* g++.dg/overload/error2.C: New.
! 
! 	PR c++/22604
! 	* g++.dg/inherit/covariant14.C: New.
! 
! 2005-10-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/23440
! 	* g++.dg/parse/for1.C: New test.
! 
! 2005-10-17  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/23446
! 	* gfortran.dg/host_dummy_index_1.f90: New test.
! 
! 	PR fortran/21459
! 	* gfortran.dg/automatic_char_len_2.f90: New test.
! 
! 	PR fortran/20866
! 	* gfortran.dg/recursive_statement_functions.f90: New test.
! 
! 	PR fortran/20853
! 	* gfortran.dg/assumed_size_dt_dummy.f90: New test.
! 
! 	PR fortran/20849
! 	* gfortran.dg/external_initializer.f90: New test.
! 
! 	PR fortran/20837
! 	* non_module_public.f90: New test.
! 
! 2005-10-17  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/24386
! 	* g++.dg/template/overload7.C: New.
! 
! 	PR c++/22551
! 	* g++.dg/other/switch2.C: Remove expected warnings.
! 
! 	PR c++/21353
! 	* g++.dg/template/defarg6.C: New.
! 
! 2005-10-17  Uros Bizjak  <uros@kss-loka.si>
! 
! 	PR target/24315
! 	* gcc.target/i386/pr24315.c: New test.
! 
! 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24389
! 	* g++.dg/template/static21.C: New test.
! 	* g++.dg/template/static21-a.cc: Likewise.
! 
! 2005-10-16  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR c++/23959
! 	* g++.dg/warn/Wswitch-default-1.C: New test.
! 	* g++.dg/warn/Wswitch-default-2.C: New test.
! 
! 2005-10-16  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/22173
! 	* g++.dg/parse/template18.C: New test.
! 	* g++.dg/template/nontype15.C: Likewise.
! 
! 2005-10-16  Erik Edelmann  <erik.edelmann@iki.fi>
! 
! 	PR fortran/22273
! 	* gfortran.dg/spec_expr_2.f90: New.
! 
! 2005-10-16  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* g++.dg/debug/debug3.C, g++.dg/ext/visibility/noPLT.C,
! 	g++.dg/opt/vt1.C, g++.old-deja/g++.other/local-alloc1.C,
! 	gcc.dg/20001009-1.c, gcc.dg/20010912-1.c, gcc.dg/20020122-4.c,
! 	gcc.dg/20020415-1.c, gcc.dg/20020430-1.c, gcc.dg/20021018-1.c,
! 	gcc.dg/20021023-1.c, gcc.dg/20021029-1.c, gcc.dg/20021116-1.c,
! 	gcc.dg/20030120-1.c, gcc.dg/20030213-1.c, gcc.dg/20030225-1.c,
! 	gcc.dg/20030702-1.c, gcc.dg/20030708-1.c, gcc.dg/20040311-2.c,
! 	gcc.dg/inline-2.c: Guard test with { target fpic }.  Remove
! 	previous target-specific skips and warning-message matches where
! 	applicable.
! 
! 2005-10-15  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/21347
! 	* g++.dg/warn/Wctor-dtor.C: New test.
! 
! 2005-10-14  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c/23439
! 	* gcc.dg/for-1.c: New test.
! 
! 2005-10-14  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/19565
! 	* g++.dg/warn/Wconversion1.C: New test.
! 	* g++.dg/ext/packed4.C: Compile with -w.
! 	* g++.dg/opt/20050511-1.C: Likewise.
! 	* g++.old-deja/g++.other/warn4.C: Compiler with -Wconversion.
! 
! 2005-10-14  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.dg/boz_5.f90: New test.
! 
! 2005-10-14  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/22551
! 	* g++.dg/other/switch2.C: New.
! 
! 	PR c++/23984
! 	* g++.dg/init/ctor7.C: New.
! 
! 2005-10-13  David Edelsohn  <edelsohn@gnu.org>
! 
! 	PR c++/23730
! 	* g++.dg/parse/crash32.C: New test.
! 
! 2005-10-13  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/20721
! 	* g++.dg/init/goto2.C: New test.
! 
! 	PR c++/22464
! 	* g++.dg/template/crash/41.C: New test.
! 
! 	PR c++/22180
! 	* g++.dg/template/crash40.C: New test.
! 
! 	PR c++/23694
! 	* g++.dg/parse/friend5.C: New test.
! 
! 	PR c++/23307
! 	* g++.dg/template/crash38.C: New test.
! 
! 	PR c++/22352
! 	* g++.dg/template/friend38.C: New test.
! 
! 	PR c++/22405
! 	* g++.dg/template/crash39.C: New test.
! 
! 2005-10-13  Hans-Peter Nilsson  <hp@bitrange.com>
! 
! 	* gcc.dg/debug/dwarf2/dwarf-char1.c,
! 	gcc.dg/debug/dwarf2/dwarf-char2.c,
! 	gcc.dg/debug/dwarf2/dwarf-char3.c: Skip for mmix-*-*
! 
! 	* gcc.dg/intmax_t-1.c: Remove mmix-*-* from dg-error statement.
! 
! 2005-10-12  Danny Smith  <dannysmith@users.sourceforge.net>
! 
! 	* gcc.dg/dll-2.c: Add tests for warnings.
! 	* gcc.dg/dll-3.c: Likewise.
! 	* gcc.dg/dll-4.c: Likewise.
! 
! 	* g++.dg/ext/dllimport1.C: Adjust tests for warnings.
! 	* g++.dg/ext/dllimport2.C: Likewise.
! 	* g++.dg/ext/dllimport3.C: Likewise.
! 	* g++.dg/ext/dllimport7.C: Likewise.
! 	* g++.dg/ext/dllimport8.C: Likewise.
! 	* g++.dg/ext/dllimport9.C: Likewise.
! 
! 2005-10-10  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24092
! 	* gfortran.dg/derived_pointer_recursion.f90: New test.
! 
! 2005-10-12  Adrian Straetling <straetling@de.ibm.com>
! 
! 	* gcc.c-torture/execute/20051012-1.c: New test.
! 
! 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/18082
! 	* gfortran.dg/automatic_char_len_1.f90: New test.
! 
! 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/20847
! 	* gfortran.dg/save_common.f90: New test.
! 
! 	PR fortran/20856
! 	* gfortran.dg/save_result.f90: New test.
! 
! 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/21592
! 	* g++.dg/template/dependent-expr1.C: Add new expected error.
! 	* g++.dg/template/dependent-expr2.C: Adjust error text.
! 	* g++.dg/template/overload6.C: New.
! 
! 	PR c++/23797
! 	* g++.dg/other/typename8.C: New.
! 
! 	PR c++/21117
! 	* g++.dg/other/return1.C: New.
! 
! 2005-10-12  Paolo Bonzini  <bonzini@gnu.org>
! 
! 	PR c++/24052
! 	* g++.dg/ext/label5.C: New.
! 
! 2005-10-12  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/19964
! 	* g++.dg/parse/crash31.C: New.
! 
! 2005-10-12  Razya Ladelsky <razya@il.ibm.com>
! 
!         * g++.dg/ipa/ipa-1.c: New test.
!         * g++.dg/ipa/ipa-2.c: New test.
!         * g++.dg/ipa/ipa-3.c: New test.
!         * g++.dg/ipa/ipa-4.c: New test.
!         * g++.dg/ipa/ipa-5.c: New test.
!         * g++.dg/ipa/ipa.exp: New file.
! 
! 2005-10-12  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/24207
! 	* gfortran.dg/private_type_3.f90: New test.
! 
! 2005-10-11  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/20786
! 	gfortran.dg/aint_anint_1.f90: New test.
! 
! 2005-10-11  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR libgfortran/24313
! 	gfortran.dg/csqrt.f: New test.
! 
! 2005-10-11  Ian Lance Taylor  <ian@airs.com>
! 
! 	PR c++/8057
! 	* g++.dg/warn/noeffect7.C: New test.
! 	* g++.dg/warn/noeffect2.C: Instantiate templates.
! 	* g++.dg/warn/noeffect4.C: Instantiate template.  Add new error
! 	and warning.
! 
! 2005-10-11  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/21089
! 	* g++.dg/init/float1.C: New test.
! 
! 	PR c++/24277
! 	* g++.dg/init/member1.C: Tweak error markers.
! 
! 2005-10-11  Janis Johnson  <janis187@us.ibm.com>
! 
! 	PR testsuite/24281
! 	* gcc.dg/compat/struct-layout-1_generator.c (generate_fields):
! 	Check for null pointer.
! 
! 2005-10-11  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/21369
! 	* g++.dg/parse/ret-type3.C: New test.
! 
! 2005-10-11  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/23946
! 	* gcc.c-torture/compile/pr23946.c: New test.
! 
! 2005-10-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* g++.dg/opt/mmx2.C: New test.
! 
! 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24277
! 	* g++.dg/template/static20.C: New test.
! 
! 	PR c++/24302
! 	* g++.dg/warn/Wunused-12.C: New test.
! 
! 	PR c++/23437
! 	* g++.dg/template/arg4.C: New test.
! 
! 2005-10-10  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* gcc.dg/ucnid-2.c: XFAIL on Solaris.
! 	* gcc.dg/ucnid-3.c: Likewise.
! 	* gcc.dg/ucnid-4.c: Likewise.
! 	* gcc.dg/tree-ssa/gen-vect-25.c (main): Return a value.
! 	* g++.dg/other/ucnid-1.C: Likewise.
! 	* gcc.dg/sparc-frame-1.c: New test.
! 
! 2005-10-10  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/24139
! 	* g++.dg/template/spec27.C: New test.
! 
! 	PR c++/24275
! 	* g++.dg/template/static19.C: New test.
! 
! 2005-10-09  Eric Botcazou  <ebotcazou@libertysurf.fr>
! 
! 	* gcc.dg/20050922-1.c: Skip on Solaris 2.5.1 to 9.
! 	* g++.dg/warn/miss-format-1.C: XFAIL vscanf test on Solaris 2.5.1 to 8.
! 
! 2005-10-07  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR target/24136
! 	* gfortran.fortran-torture/compile/pr24136.f: New test.
! 
! 2005-10-08  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	PR c++/22172
! 	* g++.dg/parse/crash30.C: New test.
! 
! 2005-10-07  Richard Guenther  <rguenther@suse.de>
! 
! 	PR middle-end/24227
! 	* gcc.c-torture/compile/pr24227.c: New testcase.
! 
! 2005-10-07  Steve Ellcey  <sje@cup.hp.com>
! 
! 	* gcc.dg/compat/struct-layout-1_generate.c (generate_fields):
! 	Do not put aligned attributes on array elements.
! 
! 2005-10-07  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	PR testsuite/23611, PR testsuite/23615
! 	* obj-c++.dg/bitfield-3.mm: Include standard headers instead of
! 	writing prototypes of library functions by hand.
! 	* obj-c++.dg/bitfield-4.mm: Likewise.
! 	* obj-c++.dg/const-str-4.mm: Likewise.
! 	* obj-c++.dg/encode-4.mm: Likewise.
! 	* obj-c++.dg/encode-5.mm: Likewise.
! 	* obj-c++.dg/encode-6.mm: Likewise.
! 	* obj-c++.dg/gnu-runtime-3.mm: Likewise.
! 	* obj-c++.dg/method-10.mm: Likewise.
! 	* obj-c++.dg/method-17.mm: Likewise.
! 	* obj-c++.dg/method-19.mm: Likewise.
! 	* obj-c++.dg/try-catch-2.mm: Likewise.
! 
! 2005-10-06  Richard Henderson  <rth@redhat.com>
! 
! 	PR 24236
! 	* gcc.dg/i386-sse-10.c: Add -fno-omit-frame-pointer.
! 
! 2005-10-06  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.c-torture/execute/20030125-1.c:  Correct.
! 
! 2005-10-06  Richard Guenther  <rguenther@suse.de>
! 
! 	PR tree-optimization/24238
! 	* g++.dg/tree-ssa/pr24238.C: New testcase.
! 
! 2005-10-07  Erik Edelmann  <erik.edelmann@iki.fi>
! 
! 	PR 18568
! 	* gfortran.dg/der_pointer_3.f90: New test.
! 
! 2005-10-05  Devang Patel  <dpatel@apple.com>
! 
! 	PR Debug/23205
! 	* g++.dg/other/PR23205.C: New.
! 
! 2005-10-05  Richard Henderson  <rth@redhat.com>
! 
! 	PR target/23602
! 	* g++.dg/eh/omit-frame-pointer.C: Remove i?86 specific options.
! 	* g++.dg/eh/omit-frame-pointer2.C: Likewise.
! 
! 2005-10-05  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.c-torture/execute/float-floor.c:  New.
! 
! 2005-10-05  Paolo Bonzini  <bonzini@gnu.org>
! 
! 	PR tree-optimization/21419
! 	PR tree-optimization/24146
! 	PR tree-optimization/24151
! 
! 	* g++.dg/ext/asm7.C: New.
! 	* g++.dg/ext/asm8.C: New.
! 	* gcc.dg/asm-1.c: Compile on all targets.
! 	* gcc.dg/asm-pr24146.c: New.
! 	* gcc.dg/pr21419.c: Adjust error messages.
! 
! 2005-10-05  Richard Guenther  <rguenther@suse.de>
! 
! 	PR fortran/24176
! 	* gfortran.fortran-torture/compile/empty.f90: New testcase.
! 
! 2005-10-05  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/23513
! 	* g++.dg/template/spec22.C: Robustify test.
! 	* g++.dg/template/spec26.C: New.
! 
! 2005-10-05  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.dg/vect/vect-shift-1.c: Include tree-vect.h header. Check
! 	if target supports vector instructions.
! 
! 2005-10-04  Geoffrey Keating  <geoffk@apple.com>
! 
! 	* gcc.dg/builtins-config.h: Only PowerPC Mac OS shipped without
! 	C99 functions.
! 
! 2005-10-04  Janis Johnson  <janis187@us.ibm.com>
! 
! 	* lib/target-supports.exp (check_effective_target_fortran_large_real,
! 	check_effective_target_fortran_large_int): Replace cached result
! 	when target changes.
! 
! 2005-10-04  Devang Patel  <dpatel@apple.com>
! 
! 	* gcc.dg/i386-sse-vect-types.c: New.
! 
! 2005-10-04  Ian Lance Taylor  <ian@airs.com>
! 
! 	PR preprocessor/13726
! 	* gcc.dg/cpp/cmdlne-dI-C.c: New test.
! 	* gcc.dg/cpp/cmdlne-dI-C.h: New file.
! 
! 2005-10-04  Richard Guenther  <rguenther@suse.de>
! 
! 	PR c/23576
! 	* gcc.dg/noncompile/pr23576.c: New testcase.
! 
! 2005-10-04  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR middle-end/23125
! 	* gcc.dg/register-var-3.c: New test.
! 
! 2005-10-04  Steven Bosscher  <stevenb@suse.de>
! 
! 	* gcc.dg/pr23049.c: New test.
! 
! 	* gcc.dg/ucnid-4.c: Fix test.
! 
! 2005-10-03  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 23445
! 	* gcc.c-torture/compile/pr23445.c: New test.
! 
! 2005-10-03  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	* g++.dg/overload/unknown1.C: New.
! 
! 2005-10-03  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/17775
! 	* g++.dg/template/repo4.C: New test.
! 
! 2005-10-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/19308
! 	* gfortran.dg/large_real_kind_2.F90: New test.
! 	* gfortran.dg/large_integer_kind_2.f90: New test.
! 
! 2005-10-03  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* lib/target-supports.exp (check_effective_target_vect_shift):
! 	Implement with result caching. Add i?86, x86_64 and ia64 targets.
! 	(check_effective_target_vect_condition): Fix copy-n-pasto.
! 
! 	* gcc.dg/vect/pr22480.c : Enable for effective-target vect_shift.
! 	* gcc.dg/vect/vect-shift-1.c: Remove XFAIL for i?86 and x86_64
! 	targets.
! 
! 2005-10-02  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/22621
! 	* g++.dg/template/overload5.C : New test.
! 
! 	PR c++/23840
! 	* g++.dg/expr/stdarg1.C: New test.
! 
! 2005-10-02  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 24142
! 	* gcc.c-torture/execute/pr24142.c: New test.
! 
! 2005-10-01  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 24141
! 	* gcc.c-torture/execute/pr24141.c: New test.
! 
! 2005-10-01  James A. Morrison  <phython@gcc.gnu.org>
! 	    Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 23604
! 	* gcc.c-torture/execute/pr23604.c: New test.
! 
! 2005-10-01  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/16404
! 	PR fortran/20835
! 	PR fortran/20890
! 	PR fortran/20899
! 	PR fortran/20900
! 	PR fortran/20901
! 	PR fortran/20902
! 	gfortran.dg/equiv_constraint_1.f90: New test.
! 	gfortran.dg/equiv_constraint_2.f90: New test.
! 	gfortran.dg/equiv_constraint_3.f90: New test.
! 	gfortran.dg/equiv_constraint_4.f90: New test.
! 	gfortran.dg/equiv_constraint_5.f90: New test.
! 	gfortran.dg/equiv_constraint_6.f90: New test.
! 	gfortran.dg/equiv_constraint_7.f90: New test.
! 	gfortran.dg/equiv_constraint_8.f90: New test.
! 	gfortran.dg/private_type_1.f90: New test.
! 	gfortran.dg/private_type_2.f90: New test.
! 	gfortran.dg/g77/980628-2.f, 980628-3.f, 980628-9.f,
! 	980628-10.f: Assert std=gnu to permit mixing of
! 	types in equivalence statements.
! 
! 2005-09-30  Janne Blomqvist <jblomqvi@cc.hut.fi>
! 
! 	PR 24112
! 	* gfortran.dg/open_status_1.f90: New.
! 
! 2005-09-30  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.dg/vect/fast-math-vect-reduc-7.c: Clean up temp files.
! 	* gcc.dg/vect/pr22480.c: Clean up temp files.
! 	* gcc.dg/vect/pr23831.c: Clean up temp files.
! 	* gcc.dg/vect/pr23816-1.c: Require effective-target vect_condition.
! 	Clean up temp files.
! 	* gcc.dg/vect/pr23816-2.c: Require effective-target vect_condition.
! 	Clean up temp files.
! 
! 	* gcc.dg/20050309-1.c: Clean up temp files.
! 	* gcc.dg/20050325-1.c: Clean up temp files.
! 
! 2005-09-30  Uros Bizjak  <uros@kss-loka.si>
! 
! 	PR tree-optimization/24059
! 	* gcc.dg/vect/pr24059.c : New test.
! 
! 2005-09-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/24109
! 	* gcc.c-torture/execute/20050929-1.c: New test.
! 
! 2005-09-29  Steven Bosscher  <stevenb@suse.de>
! 
! 	* gcc.dg/tree-ssa/ssa-ccp-11.c: Fix the test case and un-xfail.
! 
! 2005-09-29  Paolo Bonzini  <bonzini@gnu.org>
! 
! 	PR c/21419
! 	* gcc.dg/pr21419.c: New test.
! 
! 2005-09-29  Steven Bosscher  <stevenb@suse.de>
! 
! 	* gcc.dg/pr23911.c: New test.
! 
! 2005-09-28  Mark Mitchell  <mark@codesourcery.com>
! 
! 	* g++.dg/opt/pr19650.C: Use -w -fpermissive.
! 
! 	PR c++/16782
! 	* g++.dg/parse/qualified4.C: New test.
! 	* g++.old-deja/g++.law/static-mem5.C: Use -w -fpermissive.
! 	* g++.old-deja/g++.mike/p8154.C: Likewise.
! 
! 2005-09-27  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/22147
! 	* g++.dg/template/friend37.C: New test.
! 	* g++.dg/parse/crash28.C: Adjust error markers.
! 
! 2005-09-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR fortran/18518
! 	* gfortran.fortran-torture/execute/save_2.f90: New decl.
! 
! 2005-09-27  Devang Patel  <dpatel@apple.com>
! 
! 	PR tree-optimization/23625
! 	* gcc.dg/pr23625.c: New test.
! 
! 2005-09-27  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.target/i386/pr22585.c: Run on 32-bit x86 only.
! 	* gcc.target/i386/builtin-apply-mmx.c: Run on 32-bit x86 only.
! 
! 2005-09-26  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR fortran/23677
! 	* gfortran.fortran-torture/execute/save_1.f90: New test.
! 	* gfortran.dg/save_1.f90: New test.
! 
! 2005-09-26  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.target/i386/builtin-apply-mmx.c: New test.
! 
! 	PR target/22576
! 	* gcc.target/i386/pr22576.c: New test.
! 
! 	PR target/22585
! 	* gcc.target/i386/pr22585.c: New test.
! 
! 	PR target/23268
! 	* gcc.target/i386/pr23268.c: New test.
! 
! 	PR middle-end/23831
! 	* gcc.dg/vect/pr23831.c: New test.
! 
! 	PR target/24055
! 	* gcc.target/i386/pr24055.c: New test.
! 
! 2005-09-25  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR tree-optimization/23960
! 	* gcc.c-torture/compile/pr23960.c: New.
! 
! 2005-09-23  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/16861
! 	* gfortran.dg/nested_modules_3.f90: New.
! 
! 2005-09-22 Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/24005
! 	gfortran.dg/interface_1.f90: New test.
! 
! 2005-09-22  Erik Edelmann  <erik.edelmann@iki.fi>
! 	Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/23843
! 	* gfortran.dg/der_io_2.f90, gfortran.dg/der_io_3.f90: New test.
! 
! 2005-09-22  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/23516
! 	* gfortran.dg/imag_1.f: New test.
! 	* gfortran.dg/imag_2.f: Ditto.
! 
! 2005-09-22  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	* gcc.dg/intmax_t-1.c: Remove sh*-*-elf from dg-error statement.
! 
! 2005-09-22  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/21983
! 	* g++.dg/warn/pr21983.C: New test.
! 
! 2005-09-21  Mark Mitchell  <mark@codesourcery.com>
! 
! 	PR c++/23993
! 	* g++.dg/template/array14.C: New test.
! 
! 2005-09-21  Erik Edelmann  <erik.edelmann@iki.fi>
! 
! 	PR fortran/19929
! 	* gfortran.dg/der_ptr_component_1.f90: New test.
! 
! 2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/23965
! 	* g++.dg/template/error1.C: Reject "no matching function" message.
! 
! 2005-09-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/17609
! 	* g++.dg/lookup/error1.C: New test.
! 
! 2005-09-21  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gcc.dg/vect/vect-dv-2.c: Change loop bound and restore original
! 	functionality of the testcase.
! 
! 2005-09-20  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.dg/vect/vect-22.c: Require vect_float.
! 	* gcc.dg/vect/vect-91.c: XFAIL if vect_no_int_add.
! 
! 2005-09-20  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* g++.dg/cpp/ucnid-1.C, g++.dg/cpp/normalize-1.C,
! 	g++.dg/other/ucnid-1.C, gcc.dg/cpp/normalize-1.c,
! 	gcc.dg/cpp/normalize-2.c, gcc.dg/cpp/normalize-3.c,
! 	gcc.dg/cpp/normalize-4.c, gcc.dg/cpp/ucnid-1.c,
! 	gcc.dg/cpp/ucnid-2.c, gcc.dg/cpp/ucnid-3.c, gcc.dg/cpp/ucnid-4.c,
! 	gcc.dg/cpp/ucnid-5.c, gcc.dg/cpp/ucnid-7.c,gcc.dg/ucnid-1.c,
! 	gcc.dg/ucnid-2.c, gcc.dg/ucnid-3.c, gcc.dg/ucnid-4.c,
! 	gcc.dg/ucnid-5.c, gcc.dg/ucnid-6.c: Add -fextended-identifiers.
! 	* gcc.dg/cpp/ucnid-8.c: New test.
! 
! 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR tree-optimization/23929
! 	* gcc.c-torture/compile/pr23929.c: New test.
! 
! 2005-09-20  Daniel Berlin  <dberlin@dberlin.org>
! 
! 	* gcc.dg/vect/vect-dv-2.c: Expect same alignment message only
! 	for one loop.
! 
! 2005-09-20  Steve Ellcey  <sje@cup.hp.com>
! 
! 	PR testsuite/23186
! 	* g++.dg/other/pr22003.C: Require named sections.
! 
! 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR c++/23947
! 	* g++.dg/rtti/crash3.C: New test.
! 
! 	PR tree-optimization/23818
! 	* gcc.dg/pr23818.c: New test.
! 
! 2005-09-20  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/23420
! 	* gfortran.dg/print_fmt_4.f: New.
! 
! 2005-09-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR fortran/23663
! 	* gfortran.fortran-torture/execute/entry_11.f90: New test.
! 
! 2005-09-20  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gcc.dg/vect/vect-40.c: Remove pointers to "aligned types".
! 	Use pointers to local alignable arrays instead. Added comments.
! 	* gcc.dg/vect/vect-46.c: Likewise.
! 	* gcc.dg/vect/vect-48.c: Likewise.
! 	* gcc.dg/vect/vect-49.c: Likewise.
! 	* gcc.dg/vect/vect-52.c: Likewise.
! 	* gcc.dg/vect/vect-53.c: Likewise.
! 	* gcc.dg/vect/vect-54.c: Likewise.
! 	* gcc.dg/vect/vect-56.c: Likewise.
! 	* gcc.dg/vect/vect-57.c: Likewise.
! 	* gcc.dg/vect/vect-58.c: Likewise.
! 	* gcc.dg/vect/vect-60.c: Likewise.
! 	* gcc.dg/vect/vect-61.c: Likewise.
! 
! 	* gcc.dg/vect/vect-42.c: Remove pointers to "aligned types".
! 	The test is no longer vectorizable on vect_no_align targets.
! 	* gcc.dg/vect/vect-43.c: Likewsie.
! 
! 	* gcc.dg/vect/vect-44.c: Added comments.
! 	* gcc.dg/vect/vect-45.c: Added comments.
! 	* gcc.dg/vect/vect-50.c: Added comments.
! 	* gcc.dg/vect/vect-51.c: Added comments.
! 
! 	* gcc.dg/vect/vect-95.c: Use aligned arrays instead of arrays to
! 	aligned type.
! 	* gcc.dg/vect/Os-vect-95.c: Likewise.
! 
! 	* gcc.dg/vect/vect-41.c: Test removed.
! 	* gcc.dg/vect/vect-47.c: Test removed.
! 	* gcc.dg/vect/vect-55.c: Test removed.
! 	* gcc.dg/vect/vect-59.c: Test removed.
! 
! 2005-09-20  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gcc.dg/vect/pr16105.c: Replace "aligned types" with regular types.
! 	No longer vectorizable on vect_no_align targets.
! 	* gcc.dg/vect/pr20122.c: Likewise.
! 	* gcc.dg/vect/vect-74.c: Likewise.
! 	* gcc.dg/vect/vect-75.c: Likewise.
! 	* gcc.dg/vect/vect-76.c: Likewise.
! 
! 	* gcc.dg/vect/vect-37.c: Replace "aligned types" with regular types.
! 	Will not be vectorizable on vect_no_align targets once aliasing issues
! 	are resolved.
! 	* gcc.dg/vect/vect-79.c: Likewise.
! 
! 	* gcc.dg/vect/vect-77.c: Replace "aligned types" with regular types.
! 	* gcc.dg/vect/vect-78.c: Likewise.
! 	* gcc.dg/vect/vect-97.c: Likewise.
! 
! 2005-09-19  Steven Bosscher  <stevenb@suse.de>
! 
! 	* gcc.dg/pr23943.c: New test.
! 
! 2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/19181
! 	* gfortran.dg/derived_pointer_null_1.f90: New test.
! 
! 2005-09-18  Richard Guenther  <rguenther@suse.de>
! 
! 	PR middle-end/23944
! 	* gcc.c-torture/compile/pr23944.c: New testcase.
! 
! 2005-09-18  Erik Edelmann  <erik.edelmann@iki.fi>
! 
! 	PR fortran/15975
! 	* gfortran.dg/der_pointer_2.f90: New test.
! 
! 2005-09-18  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/16861
! 	* gfortran.dg/nested_modules_2.f90: New test.
! 
! 2005-09-17  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/18368
! 	* g++.dg/other/semicolon.C: New test.
  
  2005-09-16  Joseph S. Myers  <joseph@codesourcery.com>
  
***************
*** 12,23 ****
  	PR c++/23914
  	* g++.dg/template/static18.C: New test.
  
- 2005-09-16  Mark Mitchell  <mark@codesourcery.com>
- 
  	PR c++/21514
  	* g++.dg/template/crash19.C: Remove dg-error marker.
  	* g++.dg/template/local4.C: New test.
  
  2005-09-15  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23896
--- 3435,3449 ----
  	PR c++/23914
  	* g++.dg/template/static18.C: New test.
  
  	PR c++/21514
  	* g++.dg/template/crash19.C: Remove dg-error marker.
  	* g++.dg/template/local4.C: New test.
  
+ 2005-09-16  Paul Brook  <paul@codesourcery.com>
+ 
+ 	PR fortran/23906
+ 	* gfortran.dg/dependency_1.f90: New test.
+ 
  2005-09-15  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23896
***************
*** 28,62 ****
  	PR c++/23139
  	* g++.dg/warn/huge-val1.C: New test.
  
  2005-09-13  Paul Thomas  <pault@gcc.gnu.org>
  
  	PR fortran/19358
  	* gfortran.fortran-torture/assumed_dummy_1.f90: New test.
  
  2005-09-13  Bastian Blank <waldi@debian.org>
  
  	PR c++/16171
! 	* g++.dg/abi/mangle26.C: New test. 
! 	* g++.dg/abi/mangle27.C: New test. 
! 	* g++.dg/abi/mangle28.C: New test. 
! 	* g++.dg/abi/mangle29.C: New test. 
! 
! 2005-09-13  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23839
  	* g++.dg/parse/register1.C: New test.
  
  	PR c++/23842
  	* g++.dg/template/access16.C: New test.
  
  2005-09-12  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23841
  	* g++.dg/parse/template17.C: New test.
  
  	PR c++/23789
  	* g++.dg/template/nontype14.C: New test.
  
  2005-09-11  Richard Henderson  <rth@redhat.com>
  
  	* g++.dg/other/error8.C: Update expected diagnostic text.
--- 3454,3610 ----
  	PR c++/23139
  	* g++.dg/warn/huge-val1.C: New test.
  
+ 2005-09-15  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	PR c++/13140
+ 	* g++.dg/parse/class2.C: New test.
+ 	* g++.dg/template/explicit8.C: Likewise.
+ 	* g++.dg/template/spec25.C: Likewise.
+ 
+ 2005-09-14  Josh Conner  <jconner@apple.com>
+ 
+ 	PR middle-end/23584
+ 	* gcc.dg/pr23584.c: New test.
+ 
+ 2005-09-14  Jerry DeLisle  <jvdelisle@verizon.net>
+ 
+ 	PR fortran/21875 Internal Unit Array I/O, NIST
+ 	* gfortran.dg/arrayio_1.f90: New test.
+ 	* gfortran.dg/arrayio_1.f90: New test.
+ 	* gfortran.dg/arrayio_1.f90: New test.
+ 	* gfortran.dg/arrayio_1.f90: New test.
+ 	* gfortran.dg/arrayio_1.f90: New test.
+ 
+ 2005-09-14  Uros Bizjak  <uros@kss-loka.si>
+ 
+ 	PR middle-end/22480
+ 	* gcc.dg/vect/pr22480.c: New test.
+ 
  2005-09-13  Paul Thomas  <pault@gcc.gnu.org>
  
  	PR fortran/19358
  	* gfortran.fortran-torture/assumed_dummy_1.f90: New test.
  
+ 2005-09-13 Josh Conner <jconner@apple.com>
+ 
+ 	PR c++/23180
+ 	* g++.dg/init/struct2.C: New test.
+ 	* g++.dg/init/struct3.C: New test.
+ 
+ 2005-09-13  Janis Johnson  <janis187@us.ibm.com>
+ 
+ 	* gcc.dg/pr15784-4.c, gcc.dg/pr20130-1.c, gcc.dg/ucnid-6.c:
+ 	Clean up temp files.
+ 	* gcc.dg/tree-ssa/20030821-1.c, gcc.dg/tree-ssa/20040514-2.c,
+ 	gcc.dg/tree-ssa/builtin-fprintf-1.c,
+ 	gcc.dg/tree-ssa/builtin-fprintf-chk-1.c,
+ 	gcc.dg/tree-ssa/builtin-printf-1.c,
+ 	gcc.dg/tree-ssa/builtin-printf-chk-1.c,
+ 	gcc.dg/tree-ssa/builtin-vfprintf-1.c,
+ 	gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c,
+ 	gcc.dg/tree-ssa/builtin-vprintf-1.c,
+ 	gcc.dg/tree-ssa/builtin-vprintf-chk-1.c, gcc.dg/tree-ssa/ltrans-8.c,
+ 	gcc.dg/tree-ssa/pr19055-2.c, gcc.dg/tree-ssa/pr19055.c,
+ 	gcc.dg/tree-ssa/pr21985.c: Clean up dump files.
+ 	* gcc.dg/vect/fast-math-vect-reduc-5.c, gcc.dg/vect/pr22506.c,
+ 	gcc.dg/vect/trapv-vect-reduc-4.c, gcc.dg/vect/vect-116.c,
+ 	gcc.dg/vect/vect-reduc-6.c, gcc.dg/vect/vect-reduc-7.c,
+ 	gcc.dg/vect/vect-reduc-8.c, gcc.dg/vect/vect-reduc-9.c,
+ 	gcc.dg/vect/vect-shift-1.c: Clean up .vect files.
+ 
+ 2005-09-13  Josh Conner  <jconner@apple.com>
+ 
+ 	* lib/gcc-dg.exp: Load scanipa.exp.
+ 	(cleanup-dump): New procedure.
+ 	(cleanup-rtl-dump, cleanup-tree-dump, cleanup-ipa-dump): Use it.
+ 	* lib/scandump.exp: New file.
+ 	* lib/scantree.exp: Use it.
+ 	* lib/scanipa.exp: New file.
+ 
+ 2005-09-13  Erik Edelmann  <erik.edelmann@iki.fi>
+ 
+ 	PR fortran/17740
+ 	* gfortran.dg/generic_4.f90: New test.
+ 
+ 2005-09-13  Uros Bizjak  <uros@kss-loka.si>
+ 
+ 	PR target/23816
+ 	* gcc.target/i386/pr23816-1.c: New test.
+ 	* gcc.target/i386/pr23816-2.c: New test.
+ 
+ 
  2005-09-13  Bastian Blank <waldi@debian.org>
  
  	PR c++/16171
! 	* g++.dg/abi/mangle26.C: New test.
! 	* g++.dg/abi/mangle27.C: New test.
! 	* g++.dg/abi/mangle28.C: New test.
! 	* g++.dg/abi/mangle29.C: New test.
  
  	PR c++/23839
  	* g++.dg/parse/register1.C: New test.
  
+ 2005-09-13  Mark Mitchell  <mark@codesourcery.com>
+ 
  	PR c++/23842
  	* g++.dg/template/access16.C: New test.
  
+ 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	* gfortran.dg/char_pack_2.f90: Increase the vector size.
+ 
+ 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR fortran/18899
+ 	* gfortran.dg/shape_2.f90: New test.
+ 
+ 2005-09-13  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR target/19269
+ 	* gfortran.dg/char_associated_1.f90, gfortran.dg/char_cshift_1.f90,
+ 	* gfortran.dg/char_cshift_2.f90, gfortran.dg/char_eoshift_1.f90,
+ 	* gfortran.dg/char_eoshift_2.f90, gfortran.dg/char_eoshift_3.f90,
+ 	* gfortran.dg/char_eoshift_4.f90, gfortran.dg/char_pack_1.f90,
+ 	* gfortran.dg/char_pack_2.f90, gfortran.dg/char_reshape_1.f90,
+ 	* gfortran.dg/char_spread_1.f90, gfortran.dg/char_transpoe_1.f90,
+ 	* gfortran.dg/char_unpack_1.f90, gfortran.dg/char_unpack_2.f90: New
+ 	tests.
+ 
  2005-09-12  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23841
  	* g++.dg/parse/template17.C: New test.
  
+ 2005-09-12  Mark Mitchell  <mark@codesourcery.com>
+ 
  	PR c++/23789
  	* g++.dg/template/nontype14.C: New test.
  
+ 2005-09-12  Ian Lance Taylor  <ian@airs.com>
+ 
+ 	PR g++/7874
+ 	* g++.dg/lookup/friend7.C: New test.
+ 	* g++.dg/lookup/friend8.C: New test.
+ 	* g++.dg/parse/defarg4.C: Add a parameter to the friend function,
+ 	so that it will be found via argument dependent lookup.
+ 	* g++.old-deja/g++.brendan/crash56.C: Don't expect errors for
+ 	friend functions which will no longer be found.
+ 	* g++.old-deja/g++.jason/friend.C: Add a parameter to the friend
+ 	function g, so that it will be found via argument dependent
+ 	lookup.
+ 	* g++.old-deja/g++.jason/scoping15.C: Use -ffriend-injection.
+ 	* g++.old-deja/g++.mike/net43.C: Likewise.
+ 
+ 2005-09-12  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	PR c++/23691
+ 	* g++.dg/template/static16.C: New test.
+ 
+ 2005-09-12  Josh Conner  <jconner@apple.com>
+ 
+ 	PR middle-end/23237
+ 	* gcc.c-torture/compile/pr23237.c: New test.
+ 
  2005-09-11  Richard Henderson  <rth@redhat.com>
  
  	* g++.dg/other/error8.C: Update expected diagnostic text.
***************
*** 66,80 ****
--- 3614,3681 ----
  	PR libfortran/19872
  	* gfortran.dg/overwrite_1.f: New test.
  
+ 2005-09-09  Josh Conner  <jconner@apple.com>
+ 
+ 	* g++.dg/init/pr23180-1.C: Removed.
+ 	* g++.dg/init/pr23180-2.C: Removed.
+ 
+ 2005-09-09  David Daney <ddaney@avtrex.com>
+ 
+ 	* gcc.c-torture/execute/20010124-1.c:  Removed and split into two new
+ 	files which are ...
+ 	* gcc.c-torture/execute/builtins/20010124-1: ... here and ...
+ 	* gcc.c-torture/execute/builtins/20010124-1-lib.c: ... here.
+ 
  2005-09-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	* gfortran.dg/iostat_2.f90: New test.
  
+ 2005-09-09  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	PR c++/22252
+ 	* g++.dg/ext/interface1.C: New test.
+ 	* g++.dg/ext/interface1.h: Likewise.
+ 	* g++.dg/ext/interface1a.cc: Likewise.
+ 
+ 2005-09-09  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	* gfortran.dg/iomsg_1.f90:  New test case.
+ 
  2005-09-09  Richard Guenther  <rguenther@suse.de>
  
  	PR c++/23624
  	* g++.dg/tree-ssa/pr23624.C: New testcase.
  
+ 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR fortran/19239
+ 	* gfortran.dg/vector_subscript_1.f90,
+ 	* gfortran.dg/vector_subscript_2.f90: New tests.
+ 
+ 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR fortran/21104
+ 	* gfortran.dg/array_alloc_1.f90,
+ 	* gfortran.dg/array_alloc_2.f90,
+ 	* gfortran.dg/array_alloc_3.f90: New tests.
+ 
+ 2005-09-09  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR fortran/12840
+ 	* gfortran.dg/array_constructor_6.f90
+ 	* gfortran.dg/array_constructor_7.f90
+ 	* gfortran.dg/array_constructor_8.f90
+ 	* gfortran.dg/array_constructor_9.f90
+ 	* gfortran.dg/array_constructor_10.f90
+ 	* gfortran.dg/array_constructor_11.f90
+ 	* gfortran.dg/array_constructor_12.f90: New tests.
+ 
+ 2005-09-08  Josh Conner  <jconner@apple.com>
+ 
+ 	PR c++/23180
+ 	* g++.dg/init/pr23180-1.C: New test.
+ 	* g++.dg/init/pr23180-2.C: New test.
+ 
  2005-09-09  Paul Thomas  <pault@gcc.gnu.org>
  
  	PR fortran/18878
***************
*** 91,97 ****
  	* gfortran.dg/common_equivalence_2.f: New.
  	* gfortran.dg/common_equivalence_3.f: New.
  	* gfortran.dg/contained_equivalence_1.f90: New.
! 	* gfortran.dg/module_blank_common.f90: New. 
  	* gfortran.dg/module_commons_1.f90: New.
  	* gfortran.dg/module_equivalence_1.f90: New.
  	* gfortran.dg/nested_modules_1.f90: New.
--- 3692,3698 ----
  	* gfortran.dg/common_equivalence_2.f: New.
  	* gfortran.dg/common_equivalence_3.f: New.
  	* gfortran.dg/contained_equivalence_1.f90: New.
! 	* gfortran.dg/module_blank_common.f90: New.
  	* gfortran.dg/module_commons_1.f90: New.
  	* gfortran.dg/module_equivalence_1.f90: New.
  	* gfortran.dg/nested_modules_1.f90: New.
***************
*** 99,132 ****
  	equivalences and add comment to connect the test with
  	the PR.
  
! 2005-09-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	Remove unintentionally added file:
! 	* gfortran.dg/f2c_6.f90: Remove.
  
! 2005-09-08  Craig Rodrigues  <rodrigc@gcc.gnu.org>
  
! 	Backport from mainline:
! 	2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
! 	* gcc.dg/Wredundant-decls-2.c: New test to check that
! 	-Wredundant-decls does not issue warning for a variable 
! 	definition following a declaration.
  
! 2005-09-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	PR fortran/23765
! 	* gfortran.dg/common_6.f90: New test.
  
! 2005-09-08  Mark Mitchell  <mark@codesourcery.com>
  
! 	PR c++/23691
! 	* g++.dg/template/static16.C: New test.
  
! 2005-09-08  Richard Guenther  <rguenther@suse.de>
! 	Zdenek Dvorak  <rakdver@gcc.gnu.org>
  
! 	PR tree-optimization/22348
! 	* gcc.c-torture/execute/pr22348.c: New testcase.
  
  2005-09-07  Thomas Koenig  <Thomas.Koenig@online.de>
  
--- 3700,3755 ----
  	equivalences and add comment to connect the test with
  	the PR.
  
! 2005-09-08  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	PR fortran/23765
! 	* gfortran.dg/common_6.f90: New test.
  
! 2005-09-08  Richard Sandiford  <richard@codesourcery.com>
  
! 	PR fortran/15326
! 	* gfortran.dg/char_result_1.f90,
! 	* gfortran.dg/char_result_2.f90,
! 	* gfortran.dg/char_result_3.f90,
! 	* gfortran.dg/char_result_4.f90,
! 	* gfortran.dg/char_result_5.f90,
! 	* gfortran.dg/char_result_6.f90,
! 	* gfortran.dg/char_result_7.f90,
! 	* gfortran.dg/char_result_8.f90: New tests.
  
! 2005-09-08  Richard Sandiford  <richard@codesourcery.com>
  
! 	PR fortran/19928
! 	* gfortran.dg/pr19928-1.f90, gfortran.dg/pr19928-2.f90: New tests.
  
! 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR obj-c++/16816
! 	* obj-c++.dg/selector-5.mm: New test.
! 	* obj-c++.dg/selector-6.mm: New test.
  
! 2005-09-08  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR objc/20574
! 	PR objc/19324
! 	* objc.dg/error-1.m: New test.
! 
! 2005-09-07  Richard Sandiford  <richard@codesourcery.com>
! 
! 	PR fortran/23373
! 	* gfortran.fortran-torture/execute/pr23373-1.f90,
! 	* gfortran.fortran-torture/execute/pr23373-1.f90: New tests.
! 
! 2005-09-07  Jerry DeLisle  <jvdelisle@verizon.net>
! 
! 	PR libfortran/23760
! 	* gfortran.dg/g77/1832.f: Remove long string in write statement
! 	to allow the test to pass on correct list directed output with
! 	prepended space.
! 
! 2005-09-07  James E Wilson  <wilson@specifix.com>
! 
! 	* gcc.dg/intmax_t-1.c: Disable for xscale*-*-elf*.
  
  2005-09-07  Thomas Koenig  <Thomas.Koenig@online.de>
  
***************
*** 138,143 ****
--- 3761,3771 ----
  	PR fortran/20848
  	* gfortran.dg/parameter+save.f90:  New test case.
  
+ 2005-09-06  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR fortran/19269
+ 	* gfortran.fortran-torture/execute/pr19269-1.f90: New test.
+ 
  2005-09-06  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c/23075
***************
*** 147,157 ****
  	PR target/22362
  	* gcc.target/i386/pr22362.c: New test.
  
- 	PR c++/23056
- 	* g++.dg/opt/pr23056.C: New test.
- 
  	PR rtl-optimization/23098
! 	* gcc.target/i386/pr23098.c: New test.
  
  	* gcc.dg/debug/dwarf2/dwarf-char1.c: Further regex fixes.
  	* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
--- 3775,3782 ----
  	PR target/22362
  	* gcc.target/i386/pr22362.c: New test.
  
  	PR rtl-optimization/23098
! 	* gcc.target/i386/pr23098.c: Add dg-require-effective-target ilp32.
  
  	* gcc.dg/debug/dwarf2/dwarf-char1.c: Further regex fixes.
  	* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
***************
*** 164,169 ****
--- 3789,3815 ----
  	PR c++/9782
  	* g++.dg/init/new15.C: New test.
  
+ 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
+ 
+ 	* gcc.dg/vect/Os-vect-95.c: New test.
+ 	* gcc.dg/vect/vect-95.c: Same.
+ 
+ 2005-09-06  Keith Besaw  <kbesaw@us.ibm.com>
+ 
+ 	* gcc.dg/vect/vect-29.c: Update xfail testing.
+ 	* gcc.dg/vect/vect-44.c: Same.
+ 	* gcc.dg/vect/vect-48.c: Same.
+ 	* gcc.dg/vect/vect-50.c: Same.
+ 	* gcc.dg/vect/vect-72.c: Same.
+ 	* gcc.dg/vect/vect-77.c: Same.
+ 	* gcc.dg/vect/vect-78.c: Same.
+ 	* gcc.dg/vect/vect-80.c: Same.
+ 	* gcc.dg/vect/vect-96.c: Same.
+ 	* gcc.dg/vect/vect-100.c: Same.
+ 	* gcc.dg/vect/vect-exp: Add default flags for Os-vect-*.
+ 	* gfortran.dg/vect/vect-2.f90: Update xfail testing.
+ 	* gfortran.dg/vect/vect-5.f90: Same.
+ 
  2005-09-06  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.dg/debug/dwarf2/dwarf-char1.c: Accept more assembler comment
***************
*** 171,198 ****
  	* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
  	* gcc.dg/debug/dwarf2/dwarf-char3.c: Likewise.
  
! 2005-09-05  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	PR c/23161
! 	PR c/23165
! 	* gcc.dg/pr23165.c: New test.
! 
! 2005-09-05  James A. Morrison  <phython@gcc.gnu.org>
  
! 	PR c++/23225
! 	* g++.dg/parse/crash27.C: New test.
  
  2005-09-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23667
  	* g++.dg/template/static15.C: New test.
  
- 2005-09-05  Mark Mitchell  <mark@codesourcery.com>
- 
  	PR c++/21440
  	* g++.dg/ext/stmtexpr5.C: New test.
  	* g++.dg/ext/stmtexpr6.C: Likewise.
  
  2005-09-04  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/23321
--- 3817,3845 ----
  	* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
  	* gcc.dg/debug/dwarf2/dwarf-char3.c: Likewise.
  
! 	PR c++/23056
! 	* g++.dg/opt/pr23056.C: New test.
  
! 	PR rtl-optimization/23098
! 	* gcc.target/i386/pr23098.c: New test.
  
  2005-09-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23667
  	* g++.dg/template/static15.C: New test.
  
  	PR c++/21440
  	* g++.dg/ext/stmtexpr5.C: New test.
  	* g++.dg/ext/stmtexpr6.C: Likewise.
  
+ 2005-09-05  J"orn Rennecke <joern.rennecke@st.com>
+ 
+ 	* gcc.dg/pr21255-1.c: Match different pattern for sh64.
+ 
+ 	* gcc.dg/debug/dwarf2/dwarf-char1.c: Allow '!' comment character.
+ 	* gcc.dg/debug/dwarf2/dwarf-char2.c: Likewise.
+ 	* gcc.dg/debug/dwarf2/dwarf-char3.c: Likewise.
+ 
  2005-09-04  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/23321
***************
*** 210,226 ****
  	* gfortran.dg/print_fmt_1.f90, gfortran.dg/print_fmt_2.f90
  	gfortran.dg/print_fmt_3.f90: New test.
  
- 2005-09-03  Richard Guenther  <rguenther@suse.de>
- 	    Andrew Pinski  <pinskia@gcc.gnu.org>
- 	    Serge Belyshev  <belyshev@depni.sinp.msu.ru>
- 
- 	PR tree-optimization/23326
- 	* g++.dg/tree-ssa/pr23326.C: New testcase.
- 
  2005-09-03  Jakub Jelinek  <jakub@redhat.com>
  
  	* gfortran.dg/fmt_t_1.f90: New test.
  
  	PR rtl-optimization/23454
  	* g++.dg/opt/pr23454.C: New test.
  
--- 3857,3868 ----
  	* gfortran.dg/print_fmt_1.f90, gfortran.dg/print_fmt_2.f90
  	gfortran.dg/print_fmt_3.f90: New test.
  
  2005-09-03  Jakub Jelinek  <jakub@redhat.com>
  
  	* gfortran.dg/fmt_t_1.f90: New test.
  
+ 2005-09-03  Jakub Jelinek  <jakub@redhat.com>
+ 
  	PR rtl-optimization/23454
  	* g++.dg/opt/pr23454.C: New test.
  
***************
*** 229,244 ****
  	PR c++/23699
  	* g++.dg/ext/static1.C: New test.
  
  2005-09-02  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21687
  	* g++.dg/other/gc3.C: New test.
  
! 2005-09-02  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23167
  	* g++.dg/expr/volatile1.C: New test.
  
  2005-09-02  Richard Sandiford  <richard@codesourcery.com>
  
  	PR c/22061
--- 3871,3901 ----
  	PR c++/23699
  	* g++.dg/ext/static1.C: New test.
  
+ 2005-09-02  Richard Henderson  <rth@redhat.com>
+ 
+ 	* gcc.c-torture/execute/frame-address.c (check_fa_mid): Avoid
+ 	tail call to check_fa_work.
+ 
  2005-09-02  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21687
  	* g++.dg/other/gc3.C: New test.
  
! 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* gcc.dg/20030711-1.c: Include stddef.h and stdio.h.
! 	* gcc.dg/20050826-1.c: Likewise.
! 
! 2005-08-31  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23167
  	* g++.dg/expr/volatile1.C: New test.
  
+ 2005-09-02  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR middle-end/23547
+ 	* gcc.dg/pr23547.c: New test.
+ 
  2005-09-02  Richard Sandiford  <richard@codesourcery.com>
  
  	PR c/22061
***************
*** 247,252 ****
--- 3904,3915 ----
  	* gcc.c-torture/execute/pr22061-3.c,
  	* gcc.c-torture/execute/pr22061-4.c: New tests.
  
+ 2005-09-01  Craig Rodrigues  <rodrigc@gcc.gnu.org>
+ 
+ 	* gcc.dg/Wredundant-decls-2.c: New test to check that
+ 	-Wredundant-decls does not issue warning for a variable
+ 	definition following a declaration.
+ 
  2005-09-01  Jakub Jelinek  <jakub@redhat.com>
  
  	PR debug/7241
***************
*** 263,270 ****
  	* gcc.dg/debug/dwarf2/dwarf-uninit.c: Likewise.
  	* gcc.dg/debug/dwarf2/dwarf2-macro.c: Likewise.
  
! 	PR rtl-optimization/23478
!         * g++.dg/opt/pr23478.C: New test.
  
  2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
--- 3926,3961 ----
  	* gcc.dg/debug/dwarf2/dwarf-uninit.c: Likewise.
  	* gcc.dg/debug/dwarf2/dwarf2-macro.c: Likewise.
  
! 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR objc/23306
! 	* objc.dg/image-info.m: Remove "objc_module_info" check part of the
! 	scan-assmbler.
! 
! 2005-08-31  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	PR target/21255
! 	* gcc.dg/pr21255-1.c: New test.
! 	* gcc.dg/pr21255-2-mb.c: Likewise.
! 	* gcc.dg/pr21255-2-ml.c: Likewise.
! 	* gcc.dg/pr21255-3.c: Likewise.
! 	* gcc.dg/pr21255-4.c: Likewise.
! 
! 2005-08-31  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.dg/20050830-1.c:  New.
! 
! 2005-08-31  Josh Conner  <jconner@apple.com>
! 
! 	* g++.dg/ext/packed8.C: Add -mstructure-size-boundary=8 to
! 	command-line options for arm-*-* targets.
! 	* g++.dg/init/array16.C: Likewise.
! 	* g++.dg/other/crash-4.C: Likewise.
! 
! 2005-08-31  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR obj-c++/23640
! 	* obj-c++.dg/gnu-runtime-3.mm: New test.
  
  2005-08-31  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
***************
*** 278,283 ****
--- 3969,3995 ----
  	PR c++/23639
  	* g++.dg/template/ttp5.C: Adjust error markers.
  
+ 2005-08-30  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR testsuite/23609
+ 	* lib/obj-c++.exp: Include target-libpath.exp.
+ 	(obj-c++_link_flags): Look for the GNU libobjc library
+ 	and set the library path to include it.
+ 	Don't manually set LD_LIBRARY_PATH (etc.) but call
+ 	set_ld_library_path_env_vars instead.
+ 	(obj-c++_target_compile): Don't set library path or
+ 	linker flags because they are already set correctly
+ 	in obj-c++_link_flags.
+ 
+ 2005-08-30  Josh Conner  <jconner@apple.com>
+ 
+ 	* gcc.dg/builtin-stringop-chk-1.c: Add -mstructure-size-boundary=8
+ 	to command-line options for arm-*-* targets.
+ 
+ 2005-08-30  Geoffrey Keating  <geoffk@apple.com>
+ 
+ 	* g++.dg/other/i386-1.C: New.
+ 
  2005-08-30  Jakub Jelinek  <jakub@redhat.com>
  
  	PR preprocessor/20348
***************
*** 294,306 ****
  2005-08-29  Jerry DeLisle  <jvdelisle@verizon.net>
  
  	* gfortran.fortran-torture/execute/intrinsic_count.f90:
! 	Fix array dimension to avoid correct end-of-file error. 
  
  2005-08-29  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/23598
  	* gfortran.dg/iostat_1.f90:  New test.
  
  2005-08-28  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23099
--- 4006,4023 ----
  2005-08-29  Jerry DeLisle  <jvdelisle@verizon.net>
  
  	* gfortran.fortran-torture/execute/intrinsic_count.f90:
! 	Fix array dimension to avoid correct end-of-file error.
  
  2005-08-29  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/23598
  	* gfortran.dg/iostat_1.f90:  New test.
  
+ 2005-08-28  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR middle-end/23408
+ 	* gcc.dg/pr23408.c: New test.
+ 
  2005-08-28  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/23099
***************
*** 309,318 ****
  	* g++.dg/template/static13.C: New test.
  	* g++.dg/template/static14.C: Likewise.
  
! 2005-08-29  Richard Guenther  <rguenther@suse.de>
  
  	PR testsuite/23607
! 	* gcc.target/i386/pr23575.c: Modify to work on x86_64.
  
  2005-08-28  Jakub Jelinek  <jakub@redhat.com>
  
--- 4026,4044 ----
  	* g++.dg/template/static13.C: New test.
  	* g++.dg/template/static14.C: Likewise.
  
! 2005-08-29  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc.target/i386/pr23575.c: Use -msse2 instead of
! 	-march=pentium4, remove ilp32 requirement.
! 
! 	PR middle-end/23484
! 	* gcc.c-torture/execute/builtins/pr23484-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/pr23484-chk-lib.c: New file.
! 
! 2005-08-29  Andreas Jaeger  <aj@suse.de>
  
  	PR testsuite/23607
! 	* gcc.target/i386/pr23575.c: Run only on 32-bit x86.
  
  2005-08-28  Jakub Jelinek  <jakub@redhat.com>
  
***************
*** 320,336 ****
  	* gcc.c-torture/execute/20050316-3.c: New test.
  	* gcc.dg/torture/pr16104-1.c: New test.
  
! 2005-08-27  Dale Johannesen  <dalej@apple.com>
  
! 	* gcc.dg/20030711-1.c:  Modify to work on Darwin.
! 	* gcc.dg/20050826-1.c:  New.
  
  2005-08-27  Richard Guenther  <rguenther@suse.de>
  
  	PR target/23575
  	* gcc.target/i386/pr23575.c: New testcase.
  
! 2005-08-27  Jakub Jelinek  <jakub@redhat.com>
  
  	PR rtl-optimization/23561
  	* gcc.c-torture/execute/20050826-1.c: New test.
--- 4046,4062 ----
  	* gcc.c-torture/execute/20050316-3.c: New test.
  	* gcc.dg/torture/pr16104-1.c: New test.
  
! 2005-08-27  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR middle-end/23463
! 	* gcc.c-torture/execute/zero-struct-1.c: New test.
  
  2005-08-27  Richard Guenther  <rguenther@suse.de>
  
  	PR target/23575
  	* gcc.target/i386/pr23575.c: New testcase.
  
! 2005-08-26  Jakub Jelinek  <jakub@redhat.com>
  
  	PR rtl-optimization/23561
  	* gcc.c-torture/execute/20050826-1.c: New test.
***************
*** 338,348 ****
  	PR rtl-opt/23560
  	* gcc.c-torture/execute/20050826-2.c: New test.
  
  2005-08-26  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/19004
  	* g++.dg/template/nontype13.C: New test.
! 	
  	PR c++/23491
  	* g++.dg/init/new14.C: New test.
  	* g++.dg/expr/anew1.C: Do not XFAIL.
--- 4064,4079 ----
  	PR rtl-opt/23560
  	* gcc.c-torture/execute/20050826-2.c: New test.
  
+ 2005-08-26  Dale Johannesen  <dalej@apple.com>
+ 
+ 	* gcc.dg/20030711-1.c:  Modify to work on Darwin.
+ 	* gcc.dg/20050826-1.c:  New.
+ 
  2005-08-26  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/19004
  	* g++.dg/template/nontype13.C: New test.
! 
  	PR c++/23491
  	* g++.dg/init/new14.C: New test.
  	* g++.dg/expr/anew1.C: Do not XFAIL.
***************
*** 359,384 ****
  	PR fortran/20363
  	* gfortran.dg/named_interface.f90: New.
  
  2005-08-25  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/20817
  	* g++.old-deja/g++.benjamin/13908.C: Robustify expected error.
  
  2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
  
  	PR tree-optimization/23546
! 	* gcc.dg/tree-ssa/pr23546.c: New.
  
  2005-08-24  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/22454
  	* g++.dg/parse/crash29.C: New.
  
  2005-08-23  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/23044
  	* g++.dg/template/instantiate8.C: New.
  
  2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
  
  	PR c/18715
--- 4090,4158 ----
  	PR fortran/20363
  	* gfortran.dg/named_interface.f90: New.
  
+ 2005-08-26  Maciej W. Rozycki  <macro@linux-mips.org>
+ 
+ 	* gcc.c-torture/execute/frame-address.c: New test.
+ 
  2005-08-25  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/20817
  	* g++.old-deja/g++.benjamin/13908.C: Robustify expected error.
  
+ 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
+ 
+ 	* gcc.dg/vect/vect-52.c: Increase b[] and c[] size by one.
+ 
+ 2005-08-25  Alan Modra  <amodra@bigpond.net.au>
+ 
+ 	* gcc.dg/20020103-1.c: Scan for LC[0-9], not LC.
+ 	* gcc.dg/altivec-22.c: Rename from..
+ 	* gcc.dg/altivec-nomfcr.c: ..this.
+ 
  2005-08-24  Paolo Bonzini  <bonzini@gnu.org>
  
  	PR tree-optimization/23546
! 	* gcc.dg/tree-ssa/pr23546.c: New test.
! 
! 2005-08-24  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR fortran/17758
! 	* gfortran.dg/nonreturning_statements.f90: New test.
  
  2005-08-24  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/22454
  	* g++.dg/parse/crash29.C: New.
  
+ 2005-08-23  DJ Delorie  <dj@redhat.com>
+ 
+ 	* gcc.c-torture/execute/stdarg-2.c (main): Make sure long
+ 	constants have the L suffix.
+ 
  2005-08-23  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/23044
  	* g++.dg/template/instantiate8.C: New.
  
+ 2005-08-23  J"orn Rennecke <joern.rennecke@st.com>
+ 
+ 	PR middle-end/23467
+ 	* gcc.c-torture/execute/pr23467.c: New test.
+ 
+ 2005-08-23  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR tree-optimization/22043
+ 	* gcc.c-torture/execute/20050613-1.c: New test.
+ 
+ 2005-08-23  Ben Elliston  <bje@au.ibm.com>
+ 
+ 	* gcc.c-torture/execute/ieee/ieee.exp: Load gcc-dg.exp library.
+ 
+ 2005-08-22  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/23478
+ 	* g++.dg/opt/pr23478.C: New test.
+ 
  2005-08-22  Andrew Pinski  <pinskia@physics.uc.edu>
  
  	PR c/18715
***************
*** 394,412 ****
  	PR c++/23089
  	* g++.dg/other/incomplete1.C: New test.
  
  2005-08-21  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.target/i386/sse-4.c: New test.
  
! 2005-08-20  Andrew Pinski  <pinskia@physics.uc.edu>
  
  	PR middle-end/20624
  	* g++.dg/warn/Wreturn-3.C: New test
  
! 2005-08-18  Paolo Bonzini  <bonzini@gcc.gnu.org>
  
! 	PR c/21562
! 	* gcc.c-torture/compile/pr21562.c: New.
  
  2005-08-16  Ian Lance Taylor  <ian@airs.com>
  
--- 4168,4240 ----
  	PR c++/23089
  	* g++.dg/other/incomplete1.C: New test.
  
+ 2005-08-22  Ira Rosen  <irar@il.ibm.com>
+ 
+ 	* gcc.dg/vect/vect-22.c: Add test for float. All four loops
+ 	are vectorizable.
+ 
+ 2005-08-21  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+ 
+ 	* d_lines_1.f, d_lines_2.f, d_lines_3.f, d_lines_4.f,
+ 	d_lines_5.f: New.
+ 
  2005-08-21  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.target/i386/sse-4.c: New test.
  
! 2005-08-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
! 
! 	PR testsuite/23239
! 	* gcc.dg/tree-prof/val-prof-5.c: Fix scan-tree-dump regexp.
! 
! 2005-08-20  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc.dg/20050811-1.c: New test.
! 	* gcc.dg/20050811-2.c: New test.
! 
! 2005-08-20  Richard Earnshaw  <richard.earnshaw@arm.com>
! 
! 	* gcc.dg/arm-eabi1.c (main): Exit with 0 on success.
! 
! 2005-08-19  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 23476
! 	* gcc.c-torture/compile/pr23476.c: New test.
! 
! 2005-08-19  Devang Patel  <dpatel@apple.com>
! 
! 	PR tree-optimization/23048
! 	* gcc.dg/tree-ssa/pr23048.c: New test.
! 
! 2005-08-19  Andrew Pinski  <pinskia@physics.uc.edu>
  
  	PR middle-end/20624
  	* g++.dg/warn/Wreturn-3.C: New test
  
! 2005-08-18  Dorit Nuzman  <dorit@il.ibm.com>
  
! 	PR tree-optimization/22228
! 	* g++.dg/vect/pr22543.cc: New test.
! 
! 2005-08-17  Steven Bosscher  <stevenb@suse.de>
! 
! 	PR tree-optimization/21574
! 	* gcc.dg/tree-ssa/pr21574.c: New test.
! 
! 2005-08-16  James E Wilson  <wilson@specifix.com>
! 
! 	* gcc.dg/large-size-array.c (DIM): Use USHRT_MAX not USHORT_MAX.
! 
! 2005-08-16  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/23402
! 	* gcc.c-torture/compile/zero-strct-3.c: New test.
! 	* gcc.c-torture/compile/zero-strct-4.c: New test.
! 
! 2005-08-16  Steven Bosscher  <stevenb@suse.de>
! 
! 	PR target/23376
! 	* gcc.target/x86_64/pr23376.c: New test.
  
  2005-08-16  Ian Lance Taylor  <ian@airs.com>
  
***************
*** 415,423 ****
--- 4243,4297 ----
  
  2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>
  
+ 	* gfortran.dg/inquire-complex.f90:  Correct mangled testcase.
+ 
+ 2005-08-16  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
  	PR libfortran/23428
  	* gfortran.dg/inquire-complex.f90:  New test case.
  
+ 2005-08-16  James E Wilson  <wilson@specifix.com>
+ 
+ 	PR tree-optimization/21105
+ 	* gcc.dg/large-size-array.c: New.
+ 
+ 2005-08-16  Dorit Nuzman  <dorit@il.ibm.com>
+ 
+ 	* gcc.dg/vect/vect-40: Use aligned arrays instead of arrays to aligned
+ 	type.
+ 	* gcc.dg/vect/vect-41: Likewise.
+ 	* gcc.dg/vect/vect-42: Likewise.
+ 	* gcc.dg/vect/vect-43: Likewise.
+ 	* gcc.dg/vect/vect-44: Likewise.
+ 	* gcc.dg/vect/vect-46: Likewise.
+ 	* gcc.dg/vect/vect-47: Likewise.
+ 	* gcc.dg/vect/vect-48: Likewise.
+ 	* gcc.dg/vect/vect-52: Likewise.
+ 	* gcc.dg/vect/vect-53: Likewise.
+ 	* gcc.dg/vect/vect-54: Likewise.
+ 	* gcc.dg/vect/vect-55: Likewise.
+ 	* gcc.dg/vect/vect-56: Likewise.
+ 	* gcc.dg/vect/vect-57: Likewise.
+ 	* gcc.dg/vect/vect-58: Likewise.
+ 	* gcc.dg/vect/vect-59: Likewise.
+ 	* gcc.dg/vect/vect-60: Likewise.
+ 	* gcc.dg/vect/vect-61: Likewise.
+ 	* gcc.dg/vect/vect-85: Likewise.
+ 	* gcc.dg/vect/vect-87: Likewise.
+ 	* gcc.dg/vect/vect-88: Likewise.
+ 	* gcc.dg/vect/vect-93.c: Likewise.
+ 	* gcc.dg/vect/vect-74: Likewise, and also added documentation.
+ 	* gcc.dg/vect/vect-75: Likewise.
+ 	* gcc.dg/vect/vect-76: Likewise.
+ 	* gcc.dg/vect/vect-77: Likewise.
+ 	* gcc.dg/vect/vect-78: Likewise.
+ 	* gcc.dg/vect/vect-80: Likewise.
+ 	* gcc.dg/vect/vect-35: Likewise, and also check that the test wasn't
+         vectorized for the expected reason, rather than checking how alignment
+         was handled.
+ 	* gcc.dg/vect/vect-92.c: Use aligned arrays instead of arrays to aligned
+         type and also instead of aligned pointers. Added documentation.
+ 
  2005-08-16  Feng Wang  <fengwang@nudt.edu.cn>
  
  	* gfortran.dg/power.f90: New test.
***************
*** 427,432 ****
--- 4301,4319 ----
  	PR rtl-optimization/23299
  	* g++.dg/opt/pr23299.C: New test.
  
+ 2005-08-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
+ 
+ 	* gcc.dg/special/weak-1.c: xfail 32-bit hppa*-*-hpux*.
+ 
+ 2005-08-15  Fariborz Jahanian <fjahanian@apple.com>
+ 
+ 	* g++.dg/template/local6.C: New test.
+ 
+ 2005-08-14  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* execute/exceptions/finally-1.m: Check that the catch and finally are
+ 	being called.  Also add a "return 0;" at the end of main.
+ 
  2005-08-14 Paul Thomas  <pault@gcc.gnu.org>
  
  	PR fortran/21432.
***************
*** 435,440 ****
--- 4322,4372 ----
  	* gfortran.dg/namelist_print_2.f: New test to check that PRINT
  	namelist generates error with -std=f95.
  
+ 2005-08-14  Ira Rosen  <irar@il.ibm.com>
+ 
+ 	PR tree-optimization/23119
+ 	* gcc.dg/vect/vect-105.c: Add xfail for no_align targets.
+ 
+ 2005-08-13  Marcin Koziej  <creep@desk.pl>
+             Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR libobjc/22492
+ 	* execute/exceptions/finally-1.m: New test.
+ 
+ 2005-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* objc/execute/exceptions/exceptions.exp: New exp for the exceptions
+ 	testsuite.
+ 	* objc/execute/exceptions/trivial.m: New test.
+ 	* objc.dg/try-catch-11.m: Move to ...
+ 	* objc/execute/exceptions/foward-1.m: Here.
+ 	* objc.dg/try-catch-2.m: Move to ...
+ 	* objc/execute/exceptions/catchall-1.m: Here.
+ 	* objc.dg/try-catch-8.m: Move to ...
+ 	* objc/execute/exceptions/local-variables-1.m: Here.
+ 
+ 2005-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* objc.dg/nested-func-1.m: Move to ...
+ 	* objc/execute/nested-func-1.m: Here.
+ 
+ 2005-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* lib/objc.exp (objc_target_compile): Check for -fgnu-runtime
+ 	in ${options} instead of [target_info name].
+ 	* lib/obj-c++.exp (objc_target_compile): Likewise.
+ 
+ 2005-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* objc.dg/stubify-2.m: Correct the name of the rtl dump file.
+ 
+ 2005-08-13  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	part of PR testsuite/23348
+ 	* lib/objc-torture.exp: Add -fgnu-runtime and/or -fnext-runtime to each
+ 	of the torture options.
+ 	* objc/compile/trivial.m: New test.
+ 
  2005-08-12  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	* gfortran.dg/eoshift.f90:  Correct format.
***************
*** 444,463 ****
  	* gfortran.fortran-torture/execute/character_passing.f90:
  	Fix comment typo.
  
! 2005-08-12  Nathan Sidwell  <nathan@codesourcery.com>
! 	    Giovanni Bajo  <giovannibajo@libero.it>
! 	PR c++/21799
! 	PR c++/8271
  
! 	* g++.dg/template/unify8.C: New.
! 	* g++.dg/template/unify9.C: New.
  	* g++.dg/template/unify10.C: New.
  
  2005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
  	PR c++/23266
  	* g++.dg/inherit/pure1.C: New test.
  
  2005-08-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  	    Steven Bosscher  <stevenb@suse.de>
  
--- 4376,4398 ----
  	* gfortran.fortran-torture/execute/character_passing.f90:
  	Fix comment typo.
  
! 2005-08-12  Giovanni Bajo  <giovannibajo@libero.it>
  
! 	PR c++/8271
  	* g++.dg/template/unify10.C: New.
  
+ 2005-08-11  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	* g++.dg/parse/pr22514.C: Move to...
+ 	* g++.dg/debug/pr22514.C: here.
+ 
  2005-08-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
  	PR c++/23266
  	* g++.dg/inherit/pure1.C: New test.
  
+ 	* ChangeLog: Fix typos.
+ 
  2005-08-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  	    Steven Bosscher  <stevenb@suse.de>
  
***************
*** 468,478 ****
--- 4403,4432 ----
  	PR c++/23219
  	* g++.dg/parse/crash28.C: New.
  
+ 2005-08-11  Richard Guenther  <rguenther@suse.de>
+ 
+ 	PR target/23289
+ 	* gcc.target/i386/tailcall-1.c: New testcase.
+ 
+ 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	* gcc.dg/vect/vect-67.c: Un-xfail.
+ 
+ 2005-08-10  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	PR c++/23225
+ 	* g++.dg/testsuite/parse/crash27.C: new test.
+ 
  2005-08-10  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/22143
  	* gfortran.dg/shift-kind.f90:  New testcase.
  
+ 2005-08-10  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	* gcc.dg/arm-eabi1.c: Test aeabi_idiv, __aeabi_uidiv, __aeabi_uread4,
+ 	__aeabi_uread8, __aeabi_uwrite4 and __aeabi_uwrite8.
+ 
  2005-08-10  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
  	PR c++/20646
***************
*** 485,492 ****
  
  2005-08-09  Thomas Koenig  <Thomas.Koenig@online.de>
  
!         * gfortran/fortran.torture/execute/character_passing.f90:
!         Fix types for LSAME.
  
  2005-08-08  Josh Conner  <jconner@apple.com>
  
--- 4439,4464 ----
  
  2005-08-09  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	* gfortran/fortran.torture/execute/character_passing.f90:
! 	Fix types for LSAME.
! 
! 2005-08-09  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gcc.dg/vect/vect-reduc-1char.c: Reverse last change - change
! 	input data back to what it was originally.
! 
! 2005-08-09  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* objc.dg/try-catch-8.m: Enable for all targets.
! 
! 2005-08-09  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* gcc.dg/pr23165.c: New test.
! 
! 2005-08-09  Steven Bosscher  <stevenb@suse.de>
! 
! 	PR tree-optimization/23234
! 	* gcc.dg/tree-ssa/pr23234.c: New test.
  
  2005-08-08  Josh Conner  <jconner@apple.com>
  
***************
*** 498,503 ****
--- 4470,4481 ----
  	PR c++/22508
  	* g++.dg/init/new13.C: New test.
  
+ 2005-08-08  Nathan Sidwell  <nathan@codesourcery.com>
+ 
+ 	PR c++/21166
+ 	* g++.dg/other/crash-4.C: Adjust
+ 	* g++/dg/ext/packed9.C: New.
+ 
  2005-08-08  Richard Sandiford  <richard@codesourcery.com>
  
  	PR middle-end/21964
***************
*** 508,518 ****
--- 4486,4517 ----
  	PR c/22458
  	* gcc.dg/pr22458-1.c: New test.
  
+ 2005-08-07  Janne Blomqvist <jblomqvi@cc.hut.fi>
+             Steven G. Kargl <kargls@comcast.net>
+ 
+ 	PR fortran/22390
+ 	* gfortran.dg/flush_1.f90: New test.
+ 
  2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
  	PR c++/23191
  	* g++.dg/template/eh2.C: New test.
  
+ 2005-08-06  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+ 
+ 	PR c++/19498
+ 	* g++.dg/template/instantiate7.C: New test.
+ 
+ 2005-08-06  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/23113
+ 	* gcc.dg/Wunused-value-1.c: New test.
+ 
+ 2005-08-06  Richard Sandiford  <richard@codesourcery.com>
+ 
+ 	PR rtl-optimization/23233
+ 	* gcc.c-torture/compile/pr23233-1.c: New test.
+ 
  2005-08-06  Jakub Jelinek  <jakub@redhat.com>
  
  	PR fortran/18833
***************
*** 523,533 ****
  	* gfortran.fortran-torture/execute/equiv_3.f90: New test.
  	* gfortran.fortran-torture/execute/equiv_4.f90: New test.
  
! 2005-08-05  Paul Thomas  <pault@gcc.gnu.org>
  
! 	PR fortran/22010
! 	* gfortran.dg/namelist_use.f90: New.
! 	* gfortran.dg/namelist_use_only.f90: New.
  
  2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
--- 4522,4576 ----
  	* gfortran.fortran-torture/execute/equiv_3.f90: New test.
  	* gfortran.fortran-torture/execute/equiv_4.f90: New test.
  
! 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* gcc.c-torture/execute/vrp-5.c: New test.
! 	* gcc.c-torture/execute/vrp-6.c: New test.
! 	* gcc.dg/tree-ssa/vrp21.c: New test.
! 
! 2005-08-05  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* g++.dg/parse/pr22514.C: New test.
! 
! 2005-08-05  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	* gcc.dg/intmax_t-1.c: Extend dg-error to cover sh*-*-elf targets.
! 
! 	* gcc.dg/tree-ssa/loop-1.c: For sh*-*-*, look for function calls
! 	instead of constant loads / pool entries.
! 
! 2005-08-05  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* gcc.dg/torture/builtin-wctype-1.c: Use __WINT_TYPE__ for
! 	TEST_TO_WCTYPE.
! 
! 2005-08-04  Danny Smith  <dannysmith@users.sourceforge.net>
! 
! 	* gcc.dg/torture/builtin-wctype-1.c: Use __WCHAR_TYPE__ and
! 	__WINT_TYPE__ in generated prototypes if possible.
! 
! 2005-08-04  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 22037
! 	* g++.dg/tree-ssa/pr22037.C:
! 
! 2005-08-04  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.dg/tree-ssa/update-cunroll.c: Fix mistakes in
! 	scan-tree-dump-times directive.
! 
! 2005-08-04  Jan Hubicka  <jh@suse.cz>
! 
! 	* gcov-1.C: Fix switch counts.
! 	* gcov-4b.c: Likewise.
! 
! 2005-08-03  Jeff Law  <law@redhat.com>
! 
! 	* g++.dg/tree-ssa/pr14814.C: xfail test for &this count.
! 
! 2005-08-03  J"orn Rennecke <joern.rennecke@st.com>
! 
! 	* gcc.c-torture/execute/pr23135.c: New test.
  
  2005-08-03  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
***************
*** 540,555 ****
  	PR target/18582
  	* testsuite/gcc.dg/torture/pr18582-1.c: New test.
  
  2005-08-02  Diego Novillo  <dnovillo@redhat.com>
  
! 	PR 23192
! 	* gcc.dg/pr23192.c: New test.
  
  2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
  
  	PR c/22311
  	* gcc.dg/pr22311-1.c : New test.
  
  2005-07-31  Richard Sandiford  <richard@codesourcery.com>
  
  	PR target/20621
--- 4583,4641 ----
  	PR target/18582
  	* testsuite/gcc.dg/torture/pr18582-1.c: New test.
  
+ 2005-08-03  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* update-conroll.c: New testcase.
+ 	* update-conroll-2.c: New testcase.
+ 
+ 2005-08-02  David Edelsohn  <edelsohn@gnu.org>
+ 
+ 	* gfortran.dg/constant_substring.f: New test.
+ 	* gfortran.dg/pr22491.f: New test.
+ 
+ 2005-08-02  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* update-threading.c: Replace by the proper one.
+ 
  2005-08-02  Diego Novillo  <dnovillo@redhat.com>
  
! 	PR 23164
! 	* g++.dg/tree-ssa/pr23164.C: New test.
! 
! 2005-08-02  Diego Novillo  <dnovillo@redhat.com>
! 
! 	* gcc.dg/tree-ssa/pr23192.c: New test.
! 
! 2005-08-02  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* gcc.c-torture/execute/vrp-4.c: New test.
! 
! 2005-08-02  Jan Hubicka  <jh@suse.cz>
! 
! 	* update-threading.c: New test.
! 
! 2005-08-01  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* gcc.c-torture/compile/20050801-1.c: New test.
! 	* gcc.c-torture/compile/20050801-2.c: New test.
! 
! 2005-08-01  Jan Hubicka  <jh@suse.cz>
! 
! 	* val-prof-5.c: New test.
  
  2005-08-01  Joseph S. Myers  <joseph@codesourcery.com>
  
  	PR c/22311
  	* gcc.dg/pr22311-1.c : New test.
  
+ 2005-07-31  Steven Bosscher  <stevenb@suse.de>
+ 
+ 	PR target/23095
+ 	* gfortran.dg/pr23095.f: New test.
+ 
+ 	PR c++/22003
+ 	* g++.dg/other/pr22003.C: New test.
+ 
  2005-07-31  Richard Sandiford  <richard@codesourcery.com>
  
  	PR target/20621
***************
*** 557,572 ****
  
  2005-07-30  Thomas Koenig  <Thomas.Koenig@online.de>
  
- 	Backport from mainline:
- 	PR libfortran/20074
- 	PR libfortran/20436
- 	PR libfortran/21108
- 	* gfortran.dg/nested_reshape.f90:  Actually commit.
- 	* gfortran.dg/reshape-alloc.f90:  Actually commit.
- 	* gfortran.dg/reshape.f90:  Actually commit.
- 
- 2005-07-30  Thomas Koenig  <Thomas.Koenig@online.de>
- 
  	* gfortran.dg/comma_format_extension_4.f:  Adjust length
  	of string for format.
  	* gfortran.dg/der_array_io_1.f:  Replace illegal internal
--- 4643,4648 ----
***************
*** 574,600 ****
  	* gfortran.dg/der_array_io_2.f:  Likewise.
  	* gfortran.dg/der_array_io_3.f:  Likewise.
  
! 2005-07-30 Paul Thomas  <pault@gcc.gnu.org>
  
! 	PR fortran/22570 and related issues.
  	* gfortran.dg/x_slash_1.f: New test.
  
  2005-07-29  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	* gfortran.dg/matmul_1.f90:  Correct LHS of matmul test (it
  	used to have the wrong bounds).
  
  
  2005-07-28  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22545
  	* g++.dg/expr/ptrmem7.C: New test.
  
  2005-07-28  Richard Sandiford  <richard@codesourcery.com>
  
  	PR c/20187
  	* gcc.c-torture/execute/pr20187-1.c: New test.
  
  2005-07-28  Jakub Jelinek  <jakub@redhat.com>
  
  	PR target/21149
--- 4650,4747 ----
  	* gfortran.dg/der_array_io_2.f:  Likewise.
  	* gfortran.dg/der_array_io_3.f:  Likewise.
  
! 2005-07-30  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* gcc.dg/fold-abs-4.c: new test.
! 
! 2005-07-30  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/22570 an related issues.
  	* gfortran.dg/x_slash_1.f: New test.
  
+ 2005-07-30  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/23143
+ 	* gcc.dg/parm-forwdecl-1.c, gcc.dg/parm-forwdecl-2.c,
+ 	gcc.dg/parm-forwdecl-3.c, gcc.dg/parm-forwdecl-4.c: New tests.
+ 
+ 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/529
+ 	* gcc.dg/Wshadow-3.c: New test.
+ 
  2005-07-29  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	* gfortran.dg/matmul_1.f90:  Correct LHS of matmul test (it
  	used to have the wrong bounds).
  
+ 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/21720
+ 	* gcc.dg/hex-round-1.c: Test more cases.
+ 	* gcc.dg/hex-round-2.c: New test.
+ 
+ 2005-07-29  Diego Novillo  <dnovillo@redhat.com>
+ 
+ 	PR 22550
+ 	* g++.dg/tree-ssa/pr22550.C: New test.
+ 
+ 2005-07-29  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	* gcc.dg/tree-ssa/vrp19.c: New test.
+ 	* gcc.dg/tree-ssa-vrp20.c: New test.
+ 
+ 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/22240
+ 	* gcc.dg/transparent-union-4.c: New test.
+ 
+ 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/22192
+ 	* gcc.dg/c99-vla-2.c: New test.
+ 
+ 2005-07-29  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/21720
+ 	* gcc.dg/hex-round-1.c: New test.
+ 
+ 2005-07-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* inliner-1.c: Do not dump everything.
+ 	* tree-prof.exp: Do not pass -ftree-based-profiling.
+ 	* bprob.exp: Likewise.
+ 
+ 	* gcc.dg/tree-prof/update-loopch.c: Fix thinkos.
  
  2005-07-28  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22545
  	* g++.dg/expr/ptrmem7.C: New test.
  
+ 2005-07-28  Mike Stump  <mrs@apple.com>
+ 
+ 	* g++.old-deja/g++.mike/visibility-1.C: New test.
+ 
  2005-07-28  Richard Sandiford  <richard@codesourcery.com>
  
  	PR c/20187
  	* gcc.c-torture/execute/pr20187-1.c: New test.
  
+ 2005-07-28  Jeff Law  <law@redhat.com>
+ 
+ 	* gcc.dg/tree-ssa/vrp17.c: Update expected output.
+ 	* gcc.dg/tree-ssa/vrp18.c: New test.
+ 
+ 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
+ 
+ 	* gcc.dg/vect/vect-reduc-1char.c: Fix data to fit in char.
+ 
+ 2005-07-28  Dorit Nuzman  <dorit@il.ibm.com>
+ 
+ 	PR tree-optimization/22506
+ 	* gcc.dg/vect/ps22506.c: New test.
+ 
  2005-07-28  Jakub Jelinek  <jakub@redhat.com>
  
  	PR target/21149
***************
*** 602,621 ****
--- 4749,4884 ----
  
  2005-07-28  Richard Sandiford  <richard@codesourcery.com>
  
+ 	* gcc.target/mips/mips32-dsp.c: Use -march=mips32 instead of -mips32.
+ 	* gcc.target/mips/mips32-dsp-type.c: Likewise.
+ 
+ 2005-07-28  Richard Sandiford  <richard@codesourcery.com>
+ 
  	PR c/22589
  	* gcc.c-torture/compile/pr22589-1.c: New test.
  
+ 2005-07-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* update-loopch.c: New testcase.
+ 
+ 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	PR rtl-optimization/23047
+ 	* gcc.c-torture/execute/pr23047.c: New test.
+ 	* gcc.c-torture/execute/pr23047.x: New.
+ 
+ 2005-07-27  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	PR tree-optimization/22493
+ 	* gcc.c-torture/execute/pr22493-1.c: New test.
+ 	* gcc.c-torture/execute/pr22493-1.x: New.
+ 	* gcc.c-torture/execute/vrp-1.c: New test.
+ 	* gcc.c-torture/execute/vrp-2.c: New test.
+ 	* gcc.c-torture/execute/vrp-2.c: New test.
+ 
+ 2005-07-27  Aldy Hernandez  <aldyh@redhat.com>
+ 
+ 	* gcc.target/frv/all-builtin-read8.c: Delete.
+ 	* gcc.target/frv/all-builtin-read16.c: Delete.
+ 	* gcc.target/frv/all-builtin-read32.c: Delete.
+ 	* gcc.target/frv/all-builtin-read64.c: Delete.
+ 	* gcc.target/frv/all-builtin-write8.c: Delete.
+ 	* gcc.target/frv/all-builtin-write16.c: Delete.
+ 	* gcc.target/frv/all-builtin-write32.c: Delete.
+ 	* gcc.target/frv/all-builtin-write64.c: Delete.
+ 	* gcc.target/frv/all-read-write-1.c: New.
+ 
+ 2005-07-27  Jeff Law  <law@redhat.com>
+ 
+         * gcc.c-torture/execute/pr22630.c: New test.
+ 
+ 2005-07-27  Dorit Nuzman  <dorit@il.ibm.com>
+ 
+ 	PR tree-optimization/23073
+ 	* gcc.dg/vect/nodump-pr23073.c: New test.
+ 	* gcc.dg/vect/vect.exp: Allow running some tests without dump flags.
+ 
+ 2005-07-27  Zdenek Dvorak  <dvorakz@suse.cz>
+ 
+ 	PR tree-optimize/22348
+ 	* gcc.c-torture/execute/pr22348.c: New.
+ 
+ 2005-07-27  Richard Guenther  <rguenther@suse.de>
+ 
+ 	* gcc.dg/tree-ssa/salias-1.c: New testcase.
+ 
  2005-07-27  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
  	PR fortran/22503
  	* gfortran.dg/logical_comp.f90: New test.
  
+ 2005-07-27  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* inliner-1.c: Add cleanup of dumps.
+ 	* val-prof-*.c: Likewise.
+ 	* update-tailcall.c: New.
+ 
  2005-07-26  Diego Novillo  <dnovillo@redhat.com>
  
  	PR 22591
  	* gcc.dg/tree-ssa/pr22591.c: New test.
  	* gcc.dg/tree-ssa/20030807-7.c: XFAIL everywhere.
  
+ 2005-07-26  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR libobjc/22606
+ 	* objc.dg/try-catch-11.m: New test.
+ 
+ 2005-07-26  Richard Guenther  <rguenther@suse.de>
+ 
+ 	PR tree-optimization/22486
+ 	* gcc.dg/tree-ssa/upcast-1.c: New testcase.
+ 
+ 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR tree-opt/22484
+ 	* testsuite/g++.dg/opt/loop2.C: New test.
+ 
+ 2005-07-25  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* gcc.dg/tree-ssa/reassoc-3.c: New test.
+ 	* gcc.dg/tree-ssa/reassoc-4.c: New test.
+ 
+ 2005-07-25  Adam Nemet  <anemet@lnxw.com>
+ 
+         * lib/profopt.exp (profopt-execute): Check for profiling data
+         files on the target.
+ 
+ 2005-07-25  Richard Guenther  <rguenther@gcc.gnu.org>
+ 
+ 	* gcc.dg/tree-ssa/flatten-1.c: Use longer function names
+ 	for matching of asm labels.
+ 
+ 2005-07-25  Richard Guenther  <rguenther@suse.de>
+ 
+ 	* gcc.dg/tree-ssa/20050719-1.c: Add return 0;.
+ 
+ 2005-07-25  Richard Guenther  <rguenther@suse.de>
+ 
+ 	PR testsuite/22624
+ 	* gcc.dg/tree-ssa/flatten-2.c: Fix label patterns.
+ 
+ 2005-07-25  Ira Rosen  <irar@il.ibm.com>
+ 
+ 	* gcc.dg/vect/vect.exp: Change verbosity level to 4.
+ 	* gfortran.dg/vect/vect.exp, g++.dg/vect/vect.exp: Likewise.
+ 	* gcc.dg/vect/pr20122.c: Add vectorizable version of the loop.
+ 	* gcc.dg/vect/vect-100.c: New test.
+ 	* gcc.dg/vect/vect-101.c, gcc.dg/vect/vect-102.c,
+ 	gcc.dg/vect/vect-103.c, gcc.dg/vect/vect-104.c,
+ 	gcc.dg/vect/vect-105.c, gcc.dg/vect/vect-115.c: Likewise.
+ 	* gcc.dg/vect/vect-116.c: Renamed (from vect-100.c).
+ 	* gcc.dg/vect/vect-43.c: Add vectorizable version of the loop.
+ 	* gcc.dg/vect/vect-91.c: Now 3 loops are vectorizable.
+ 	* gfortran.dg/vect/vect-4.f90: Now vectorizable.
+ 	* gfortran.dg/vect/pr19049.f90: New testcase.
+ 	* g++.dg/vect/pr21218.cc, gcc.dg/tree-ssa/ltrans-8.c: Likewise.
+ 
  2005-07-25  Jakub Jelinek  <jakub@redhat.com>
  
  	* gcc.c-torture/execute/20050713-1.c: New test.
***************
*** 623,637 ****
  	PR fortran/20063
  	* gfortran.fortran-torture/execute/data_4.f90: New test.
  
  2005-07-25  Feng Wang  <fengwang@nudt.edu.cn>
  
! 	* gfortran.dg/pr15332.f: Fix dejagnu command.
! 	* gfortran.dg/reshape_rank7.f90: Ditto.
  
  2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>
  
          * gfortran.fortran-torture/execute/nan_inf_fmt.f90: Revise test to
!         include case of field width of zero. 
  
  2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>
  
--- 4886,4909 ----
  	PR fortran/20063
  	* gfortran.fortran-torture/execute/data_4.f90: New test.
  
+ 	PR middle-end/20303
+ 	* gcc.dg/visibility-d.c: New test.
+ 
  2005-07-25  Feng Wang  <fengwang@nudt.edu.cn>
  
! 	* gfortran.dg/reshape_rank7.f90: Fix dejagnu commands.
! 	* gfortran.dg/underflow.f90: Ditto.
! 
! 2005-07-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* g++.dg/warn/miss-format-1.C, g++.dg/warn/miss-format-2.C,
! 	g++.dg/warn/miss-format-3.C, g++.dg/warn/miss-format-4.C,
! 	g++.dg/warn/miss-format-5.C, g++.dg/warn/miss-format-6.C: New.
  
  2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>
  
          * gfortran.fortran-torture/execute/nan_inf_fmt.f90: Revise test to
!         include case of field width of zero.
  
  2005-07-23  Jerry DeLisle  <jvdelisle@verizon.net>
  
***************
*** 639,712 ****
          * gfortran.dg/fmt_read_bz_bn.f90: Revised test to include case
          with trailing blanks on normal formatted read.
  
! 2005-07-23 Paul Thomas <pault@gcc.gnu.org>
  
! 	* gfortran.dg/io_invalid_1.f90: Match test case to modified error
! 	message.
  
  2005-07-22  Mark Mitchell  <mark@codesourcery.com>
  
  	PR debug/21828
  	* gcc.dg/debug/dwarf2/dwarf-uninit.c: New test.
  
! 2005-07-22 Paul Thomas  <pault@gcc.gnu.org>
  
! 	PR fortran/16940
! 	* gfortran.dg/module_interface.f90: New test.
  
  2005-07-21  Janis Johnson  <janis187@us.ibm.com>
  
  	* gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix.
  
  2005-07-21  Richard Sandiford  <richard@codesourcery.com>
  
  	PR rtl-optimization/22167
  	* g++.dg/opt/pr22167.C: New test.
  
! 2005-07-19  Steve Ellcey  <sje@cup.hp.com>
  
! 	Backport from mainline.
! 	PR testsuite/21969
! 	* gcc.dg/torture/pr21817.c: Use -fno-common for hppa*-*-* targets.
  
! 2005-07-19  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline.
! 	PR libfortran/21593
! 	gfortran.dg/dev_null.f90:  Remove targets.
  
! 2005-07-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	PR fortran/20842
! 	* gfortran.dg/io_invalid_1.f90: New test.
  
! 2005-07-18  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline.
! 	PR libfortran/21333
! 	* gfortran.fortran-torture/execute/in-pack.f90:  New test.
  
  2005-07-18  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22263
  	* g++.dg/template/explicit7.C: New test.
  
  2005-07-17  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22139
  	* g++.dg/template/friend36.C: New test.
  
! 2005-07-17  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline.
! 	PR libfortran/21480
! 	* gfortran.dg/reshape-complex.f90:  Add a test for a packed
! 	complex array.
  
! 2005-07-16  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR fortran/13257
! 	* comma_format_extension_[1234].f: New tests.
  
  2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
  
--- 4911,5106 ----
          * gfortran.dg/fmt_read_bz_bn.f90: Revised test to include case
          with trailing blanks on normal formatted read.
  
! 2005-07-23  Chao-ying Fu  <fu@mips.com>
  
! 	* gcc.target/mips/mips32-dsp-type.c: New test.
! 	* gcc.target/mips/mips32-dsp.c: New test.
! 
! 2005-07-23  Oyvind Harboe  <oyvind.harboe@zylin.com>
! 
! 	PR testsuite/21073
! 	* g++.old-deja/g++.mike/p3060d.C: Fix type of VoidObjMemberFunc.
! 
! 	PR testsuite/20454
! 	* gcc.dg/20001117-1.c: Fix type of __cyg_profile_func_enter
! 	and __cyg_profile_func_exit.
! 
! 2005-07-22  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* gfortran.dg/comma_format_extension_3.f: Fix typo.
! 	* gfortran.dg/comma_format_extension_4.f: Same.
! 	* gfortran.dg/pr15332.f: Same.
! 	* gfortran.dg/pr21730.f: Same.
! 
! 2005-07-22  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* g++.dg/opt/vrp2.C: Fix testcase.
! 
! 	PR tree-opt/22625
! 	* g++.dg/opt/vrp2.C: New test.
  
  2005-07-22  Mark Mitchell  <mark@codesourcery.com>
  
  	PR debug/21828
  	* gcc.dg/debug/dwarf2/dwarf-uninit.c: New test.
  
! 2005-07-22  Diego Novillo  <dnovillo@redhat.com>
  
! 	* gcc.dg/tree-ssa/20050719-1.c: New test.
! 
! 2005-07-22  Bernd Schmidt  <bernd.schmidt@analog.com>
! 
! 	* gcc.dg/bfin-longcall-1.c: New file.
! 	* gcc.dg/bfin-longcall-2.c: New file.
  
  2005-07-21  Janis Johnson  <janis187@us.ibm.com>
  
  	* gcc.c-torture/compile/20050721-1.c: New test for 3.4 fix.
  
+ 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR middle-end/19055
+ 	* gcc.dg/tree-ssa/pr19055.c: New test.
+ 	* gcc.dg/tree-ssa/pr19055-2.c: New test.
+ 
+ 2005-07-21  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR C++/22358
+ 	* g++.dg/other/pr22358.C: New test.
+ 
+ 2005-07-21  Douglas Gregor  <doug.gregor@gmail.com>
+ 
+ 	PR c++/2922
+ 	* g++.dg/lookup/two-stage5.C: New test from bug comments.
+ 
+ 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+ 
+ 	PR c++/15938
+ 	* g++.dg/init/union2.C: New test.
+ 
+ 2005-07-21  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+ 
+ 	PR c/22393
+ 	* gcc.dg/complex-4.c: New test.
+ 
+ 2005-07-21  Richard Guenther  <rguenther@suse.de>
+ 
+ 	PR testsuite/22522
+ 	* gcc.dg/tree-ssa/flatten-1.c: Use correct regexp for
+ 	scanning for asm labels.
+ 	* gcc.dg/tree-ssa/flatten-2.c: Likewise.
+ 
+ 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	PR target/22085
+ 	* gcc.dg/altivec-pr22085.c: New.
+ 
+ 2005-07-21  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	PR tree-optimization/19210
+         * gcc.dg/tree-ssa/pr19210-1.c: New.
+         * gcc.dg/tree-ssa/pr19210-2.c: New.
+ 
  2005-07-21  Richard Sandiford  <richard@codesourcery.com>
  
  	PR rtl-optimization/22167
  	* g++.dg/opt/pr22167.C: New test.
  
! 2005-07-20  Douglas Gregor <doug.gregor@gmail.com>
  
! 	PR c++/2922
! 	* g++.dg/lookup/two-stage2.C: New.
! 	* g++.dg/lookup/two-stage3.C: New.
! 	* g++.dg/lookup/two-stage4.C: New. Illustrates how we have not yet
! 	fixed two-stage name lookup for operators.
! 	* g++.dg/template/call3.C: Compiler now produces an appropriate
! 	error message.
! 	* g++.dg/template/crash37.C: Compiler now describes bla() on line
! 	14 as a candidate.
! 	* g++.dg/template/ptrmem4.C: Compiler produces different error
! 	message.
! 	* g++.old-deja/g++.other/pmf3.C: Compiler now describes
! 	connect_to_method as a candidate.
  
! 2005-07-20  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* gcc.dg/fold-alloc-1.c: New test.
  
! 2005-07-20  Kazu Hirata  <kazu@codesourcery.com>
  
! 	* gcc.dg/20020312-2.c, gcc.dg/sibcall-3.c, gcc.dg/sibcall-4.c,
! 	gcc.dg/cpp/assert4.c: Don't mention obsolete ports.
  
! 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* gcc.dg/fold-abs-1.c: New test.
! 	* gcc.dg/fold-abs-2.c: New test.
! 	* gcc.dg/fold-abs-3.c: New test.
! 
! 2005-07-20  Giovanni Bajo  <giovannibajo@libero.it>
! 
! 	Make CONSTRUCTOR use VEC to store initializers.
! 	* g++.dg/ext/complit3.C: Check for specific error messages.
! 	* g++.dg/init/brace2.C: Update error message.
! 	* g++.dg/warn/Wbraces2.C: Likewise.
! 
! 2005-07-19 Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/16940
! 	* gfortran.dg/module_interface_1.f90: New test.
! 
! 2005-07-19  Danny Berlin <dberlin@dberlin.org>
! 	    Kenneth Zadeck <zadeck@naturalbridge.com>
! 
! 	* gcc.dg/tree-ssa/sra-2.c: Changed back to -O1 and added xfail.
! 
! 2005-07-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* gcc.dg/format/miss-1.c, gcc.dg/format/miss-2.c: Don't
! 	specify -Wformat for these tests.
! 	* gcc.dg/format/miss-3.c, gcc.dg/format/miss-4.c,
! 	gcc.dg/format/miss-5.c, gcc.dg/format/miss-6.c: New.
! 	* gcc.dg/format/opt-6.c: Delete.
! 
! 2005-07-18  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* gcc.dg/tree-ssa/sra-2.c: Pass --param sra-max-structure-size.
! 	* gcc.dg/tree-ssa/sra-3.c: Likewise.
! 
! 2005-07-18  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* gcc.dg/tree-ssa/alias-2.c: New test.
  
  2005-07-18  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22263
  	* g++.dg/template/explicit7.C: New test.
  
+ 2005-07-17  Jerry DeLisle  <jvdelisle@verizon.net>
+ 
+ 	* gfortran.fortran-torture/execute/nan_inf_fmt.f90: Change case of field
+ 	width of 8 to +Inf and -Inf.
+ 
  2005-07-17  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22139
  	* g++.dg/template/friend36.C: New test.
  
! 2005-07-16  David Edelsohn  <edelsohn@gnu.org>
  
! 	PR fortran/21730
! 	* gfortran.dg/pr21730.f: New test.
  
! 2005-07-16  Danny Berlin <dberlin@dberlin.org>
! 	    Kenneth Zadeck <zadeck@naturalbridge.com>
  
! 	* gcc.dg/tree-ssa/ssa-dce-2.c: Changed dg-options to run at -O2
! 	since pure const detection cannot run at -O1 in c compiler.
! 	* gcc.dg/tree-ssa/20030714-1.c Changed scanning patterns because we
! 	can now optimize this case properly.
! 	* gcc.dg/tree-ssa/sra-2.c: Changed to -O3 and removed xfail
! 	because we now pass.
! 	* gcc.dg/vect/vect-92.c: Removed out of bounds array access.
  
  2005-07-16  Joseph S. Myers  <joseph@codesourcery.com>
  
***************
*** 718,767 ****
  	PR c++/22204
  	* g++.dg/rtti/repo1.C: New test.
  
! 2005-07-15  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline.
! 	PR libfortran/21926
! 	PR libfortran/18857
! 	* gfortran.fortran-torture/execute/intrinsic_matmul.f90:
! 	Test case where the return array has lowest stride one,
! 	but isn't packed.
! 	* gfortran.dg/matmul_1.f90: New test.
  
  2005-07-15  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22132
  	* g++.dg/expr/cast4.C: New test.
  
! 2005-07-15 Paul Brook  <paul@codesourcery.com>
! 
! 	Backport form mainline.
! 	2005-06-22 Paul Brook  <paul@codesourcery.com>
! 	PR fortran/21034
! 	* gfortran.dg/auto_save_1.f90: New test.
! 
! 2005-07-14  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	Backport from mainline:
! 	PR libfortran/21594
! 	PR libfortran/22144
! 	PR libfortran/22142
! 	* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
! 	Add test cases where the shift length is greater than the
! 	array length.
! 	Add test cases for PR 22142 for eoshift1 and eoshift3.
! 	* gfortran.dg/shift-alloc.f90:  New testcase.
! 
! 2005-07-14  Paul Thomas  <pault@gcc.gnu.org>
  
! 	PR libfortran/16435
! 	* gfortran.dg/tl_editting.f90: New.
! 	* gfortran.dg/g77/f77-edit-x-out.f: Remove XFAIL.
  
! 2005-07-14  Paul Thomas  <pault@gcc.gnu.org>
  
! 	* gfortran.dg/past_eor.f90: New.
! 	* gfortran.dg/complex_read.f90: New.
  
  2005-07-14  Jakub Jelinek  <jakub@redhat.com>
  
--- 5112,5136 ----
  	PR c++/22204
  	* g++.dg/rtti/repo1.C: New test.
  
! 2005-07-15  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR middle-end/22398
! 	* gcc.c-torture/compile/pr22398.c: New test.
  
  2005-07-15  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/22132
  	* g++.dg/expr/cast4.C: New test.
  
! 2005-07-15  Richard Guenther  <rguenther@suse.de>
  
! 	* gcc.dg/tree-ssa/flatten-1.c: New testcase.
! 	* gcc.dg/tree-ssa/flatten-2.c: Likewise.
  
! 2005-07-15  Steven Bosscher  <stevenb@suse.de>
  
! 	PR tree-optimization/22230
! 	* gcc.dg/tree-ssa/pr22230.c: New test.
  
  2005-07-14  Jakub Jelinek  <jakub@redhat.com>
  
***************
*** 772,818 ****
  	* gfortran.dg/g77/cpp5.h: New file.
  	* gfortran.dg/g77/cpp5inc.h: New file.
  
  2005-07-14  Steven G. Kargl  <kargls@comcast.net>
  
  	* gfortran.dg/char_array_constructor.f90: New test.
  
  2005-07-13  Jeff Law  <law@redhat.com>
  
  	* gcc.dg/tree-ssa/pr22051-2.c: Tweak expected output to allow
  	additional casts.
  
! 	* gcc.dg/tree-ssa/pr22321.c: New test.
  
! 2005-07-12  Nathan Sidwell  <nathan@codesourcery.com>
  
! 	PR c++/20637
! 	* g++.dg/inherit/using4.C: New.
! 	* g++.dg/overload/error1.C: Adjust expected errors.
! 	* g++.old-deja/g++.benjamin/warn02.C: Likewise.
! 	* g++.old-deja/g++.brendan/arm2.C: Likewise.
! 	* g++.old-deja/g++.other/redecl2.C: Likewise.
! 	* g++.old-deja/g++.other/redecl4.C: Likewise.
! 	* g++.old-deja/g++.pt/memtemp78.C: Likewise.
  
! 	PR c++/20678
! 	* g++.dg/other/crash-4.C: New.
  
! 	PR 21903
! 	* g++.dg/parse/defarg9.C: New.
  
! 	PR c++/21929
! 	* g++.dg/parse/crash26.C: New.
! 	
! 	PR c++/20789
! 	* g++.dg/init/member1.C: New.
  
! 	PR c++/20746
! 	* g++.dg/abi/covariant5.C: New.
  
! 2005-07-12  Feng Wang  <fengwang@nudt.edu.cn>
  
- 	Backport from the mainline:
- 	2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
  	PR fortran/16531
  	PR fortran/15966
  	PR fortran/18781
--- 5141,5318 ----
  	* gfortran.dg/g77/cpp5.h: New file.
  	* gfortran.dg/g77/cpp5inc.h: New file.
  
+ 2005-07-12  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR libfortran/16435
+ 	* gfortran.dg/tl_editting.f90: New.
+ 	* gfortran.dg/g77/f77-edit-x-out.f: Remove XFAIL.
+ 
  2005-07-14  Steven G. Kargl  <kargls@comcast.net>
  
  	* gfortran.dg/char_array_constructor.f90: New test.
  
+ 2005-07-13  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	* gfortran.dg/past_eor.f90: New.
+ 	* gfortran.dg/complex_read.f90: New.
+ 
  2005-07-13  Jeff Law  <law@redhat.com>
  
  	* gcc.dg/tree-ssa/pr22051-2.c: Tweak expected output to allow
  	additional casts.
  
! 	* gcc.dg/tree-ssa/pr22321.c: New test
  
! 2005-07-13  Paolo Bonzini  <bonzini@gnu.org>
  
! 	PR tree-optimization/21921
! 	* gcc.dg/tree-ssa/pr21921.c: New.
  
! 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
  
! 	PR tree-optimizatio/22442
! 	* gcc.dg/tree-ssa/loop-11.c: New test.
  
! 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR tree-opt/21840
! 	* gcc.c-torture/compile/pr21840.c: New test.
  
! 2005-07-12  Jan Hubicka  <jh@suse.cz>
! 
! 	* gcc.c-torture/compile/pr22379.c: New test.
! 
! 2005-07-11  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/21593
! 	gfortran.dg/dev_null.f90:  Remove outdated comment about
! 	PR libfortran/21593.
! 
! 
! 2005-07-12  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.target/i386/compress-float-sse.c:  New.
! 	* gcc.target/i386/compress-float-sse-pic.c:  New.
! 	* gcc.target/i386/compress-float-387.c:  New.
! 	* gcc.target/i386/compress-float-387-pic.c:  New.
! 	* gcc.dg/compress-float-ppc.c:  New.
! 	* gcc.dg/compress-float-ppc-pic.c:  New.
! 
! 2005-07-12  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/21593
! 	gfortran.dg/dev_null.f90:  Remove targets.
! 
! 2005-07-12  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/22335
! 	* gcc.dg/pr22335-1.c: New test.
! 	* gcc.dg/pr22335-2.c: New test.
! 
! 2005-07-12  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/20172
! 	* g++.dg/template/nontype12.C : New test.
! 
! 2005-07-12  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/loop-10.c: New test.
! 
! 2005-07-11  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	* gcc.c-torture/execute/20020720-1.x: Remove.
! 
! 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.fortran-torture/execute/forall_7.f90: New test.
! 
! 2005-07-10  Richard Sandiford  <richard@codesourcery.com>
! 
! 	* gcc.target/mips/mips.exp (is_gp32_flag): New procedure.
! 	(dg-mips-options): Use it.
! 
! 2005-07-09  Diego Novillo  <dnovillo@redhat.com>
! 
! 	* gcc.dg/tree-ssa/pta-fp.c: Use -fdump-tree-alias1.
! 
! 2005-07-09  Richard Henderson  <rth@redhat.com>
! 
! 	* lib/target-supports.exp (check_effective_target_sync_char_short):
! 	Add alpha.
! 
! 2005-07-09  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/22217
! 	* gfortran.dg/negative-z-descriptor.f90:  New test.
! 
! 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/22329
! 	* gcc.dg/pr22329.c: New test.
! 
! 2005-07-08  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR tree-optimization/20139
! 	* gcc.dg/tree-ssa/pr20139.c: New.
! 
! 2005-07-08  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/22356
! 	* testsuite/gcc.dg/pr22356-1.c: New test.
! 
! 2005-07-08  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/21799
! 	* g++.dg/template/unify8.C: New.
! 	* g++.dg/template/unify9.C: New.
! 
! 2005-07-08  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.fortran-torture/execute/entry_10.f90: New test.
! 
! 2005-07-07  Geoffrey Keating  <geoffk@apple.com>
! 
! 	* gcc.dg/darwin-version-1.c: New.
! 	* gcc.dg/builtins-18.c: On Darwin, needs -mmacosx-version-min=10.3.
! 	* gcc.dg/builtins-20.c: Likewise.
! 	* gcc.dg/builtins-53.c: Likewise.
! 	* gcc.dg/torture/builtins-convert-1.c: Likewise.
! 	* gcc.dg/torture/builtins-convert-2.c: Likewise.
! 	* gcc.dg/torture/builtins-convert-3.c: Likewise.
! 	* gcc.dg/torture/builtins-power-1.c: Likewise.
! 	* gcc.dg/builtins-config.h: Complain if macosx-version-min not set
! 	on Darwin.
! 
! 2005-07-07  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/vrp17.c: Simplify.  Remove dependency on
! 	argument evaluation order.
! 
! 2005-07-07  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/21594
! 	* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
! 	Add test cases where the shift length is greater than the
! 	array length.
! 
! 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/proto-lossage-6.mm: New.
! 	* objc.dg/proto-lossage-6.m: New.
! 
! 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/gnu-runtime-2.mm: Compile, do not run.
! 	* objc.dg/gnu-runtime-2.m: Likewise.
! 
! 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.dg/longline.f: New test.
! 
! 	* gfortran.dg/badline.f: New test.
! 
! 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
  
  	PR fortran/16531
  	PR fortran/15966
  	PR fortran/18781
***************
*** 824,945 ****
  	* gfortran.dg/hollerith_legacy.f90: New.
  	* gfortran.dg/g77/cpp4.F: New. Port from g77.
  
! 2005-07-11  Jeff Law  <law@redhat.com>
  
! 	* gcc.dg/tree.ssa/pr22051-1.c: Remove dg-cleanup markers.  It
! 	is not supported in the GCC 4.0 dg testsuite infrastructure. 
! 	* gcc.dg/tree.ssa/pr22051-2.c: Remove dg-cleanup markers.  It
! 	is not supported in the GCC 4.0 dg testsuite infrastructure. 
  
! 	* gcc.dg/tree.ssa/pr22051-1.c: New test.
! 	* gcc.dg/tree.ssa/pr22051-2.c: New test.
  
! 2005-07-11  Aldy Hernandez  <aldyh@redhat.com>
  
!         Backport from mainline:
!         2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
  
!         * gcc.dg/simd-1.c: Update error messages.
!         * gcc.dg/simd-1b.c: Re-enable tests.  Update error messages.
!         * gcc.dg/simd-2.c: Update error messages.
!         * gcc.dg/simd-4.c: New.
  
! 2005-07-11  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
! 	PR c++/20563
! 	* g++.dg/ext/label4.C: New test.
  
! 2005-07-11  Feng Wang  <fengwang@nudt.edu.cn>
  
! 	Backport from the mainline:
! 	2005-06-01  Roger Sayle  <roger@eyesopen.com>
! 	* gfortran.dg/logint-1.f: New test case.
! 	* gfortran.dg/logint-2.f: Likewise.
! 	* gfortran.dg/logint-3.f: Likewise.
  
! 2005-07-11  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gfortran.fortran-torture/execute/forall_7.f90: New test.
  
! 2005-07-10  Feng Wang  <fengwang@nudt.edu.cn>
  
! 	* gfortran.dg/simplify_modulo.f90: New.
  
! 	PR fortran/22327
! 	* gfortran.dg/array_constructor_5.f90: New test.
  
! 2005-07-09  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gcc.dg/20050620-1.c: New test.
  
! 	* gfortran.fortran-torture/execute/entry_10.f90: New test.
  
! 	* gfortran.dg/longline.f: New test.
  
! 	* gfortran.dg/badline.f: New test.
  
! 	* gfortran.fortran-torture/execute/entry_9.f90: New test.
  
! 	* gfortran.dg/altreturn_1.f90: New test.
  
! 2005-07-08  Steven G. Kargl <kargls@comcast.net>
  
!  	PR fortran/17792
! 	PR fortran/21375
! 	* gfortran.dg/deallocate_stat.f90:  New test.
  
- 	PR fortran/19926
- 	* gfortran.dg/pr19926.f90: New test.
  
! 	PR fortran/21257
! 	* gfortran.dg/duplicate_labels.f90: New test.
  
! 2005-07-08  Steven G. Kargl <kargls@comcast.net>
  
  	* gfortran.dg/dev_null.f90: Run test only on linux and solaris.
  
! 2005-07-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
  
  	PR c/21911
  	* gcc.dg/format/sentinel-1.c: Update.  Fix execl* calls.
  
! 2005-07-08  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	PR c/22308
! 	* gcc.dg/pr22308-1.c: New test.
  
! 2005-07-08  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	PR c/22013
! 	PR c/22098
! 	* gcc.c-torture/compile/pr22013-1.c,
! 	gcc.c-torture/execute/pr22098-1.c,
! 	gcc.c-torture/execute/pr22098-2.c,
! 	gcc.c-torture/execute/pr22098-3.c: New tests.
  
! 2005-07-07  Release Manager
  
! 	* GCC 4.0.1 released.
  
  2005-06-24  Mark Mitchell  <mark@codesourcery.com>
  
  	PR 22171
  	* gcc.dg/tree-ssa/pr22171.c: New test.
  
! 2005-06-23  Mark Mitchell  <mark@codesourcery.com>
  
! 	Backport:
! 	2005-06-19  Richard Henderson  <rth@redhat.com>
! 	* gcc.dg/tree-ssa/pr21985.c: Use size_t.
! 	2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
! 	PR middle-end/21985
! 	* gcc.dg/tree-ssa/pr21985.c: New test.
  
! 2005-06-19  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	* gfortran.dg/backslash_1.f90: New test.
  	* gfortran.dg/backslash_2.f90: New test.
  
  2005-06-20  Jan Beulich  <jbeulich@novell.com>
  
  	* g++.old-deja/g++.jason/thunk2.C: On NetWare, also account for
--- 5324,5774 ----
  	* gfortran.dg/hollerith_legacy.f90: New.
  	* gfortran.dg/g77/cpp4.F: New. Port from g77.
  
! 2005-07-07  Ziemowit Laski  <zlaski@apple.com>
  
! 	PR objc/22274
! 	* obj-c++.dg/gnu-runtime-[1-2].mm: New.
! 	* objc.dg/gnu-runtime-2.m: New.
  
! 2005-07-06  Jeff Law  <law@redhat.com>
  
! 	* gcc.dg/tree-ssa/vrp17.c: New test.
  
! 2005-07-07  Feng Wang  <fengwang@nudt.edu.cn>
  
! 	PR fortran/22327
! 	* gfortran.dg/array_constructor_5.f90: New test.
  
! 2005-07-07  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gfortran.fortran-torture/execute/entry_9.f90: New test.
  
! 2005-07-06  Fariborz Jahanian <fjahanian@apple.com>
  
! 	* gcc.dg/20030324-1.c: Remove -fforce-mem option.
! 	* gcc.dg/980816-1.c: Ditto.
  
! 2005-07-06  Jeff Law  <law@redhat.com>
  
! 	* gcc.c-torture/compile/pr21356.c: New test.
  
! 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	PR c/22013
! 	PR c/22098
! 	* gcc.c-torture/compile/pr22013-1.c,
! 	gcc.c-torture/execute/pr22098-1.c,
! 	gcc.c-torture/execute/pr22098-2.c,
! 	gcc.c-torture/execute/pr22098-3.c: New tests.
  
! 2005-07-05  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	PR c/22308
! 	* gcc.dg/pr22308-1.c: New test.
  
! 2005-07-05  Kazu Hirata  <kazu@codesourcery.com>
  
! 	* gcc.dg/compare1.c: Add -fno-short-enums.  Don't skip on any
! 	target.
! 	* gcc.dg/compare9.c: Use -fshort-enums instead of
! 	-fno-short-enums.  Change the last test to dg-bogus.
  
! 2005-07-04  Kazu Hirata  <kazu@codesourcery.com>
  
! 	* gcc.dg/compare1.c: Skip on arm*-*-eabi* arm*-*-symbianelf*.
! 	* gcc.dg/compare9.c: New.
  
! 2005-07-04  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	* gfortran.dg/io_invalid_1.f90: Fix expected error message.
  
! 2005-07-03  Andrew Pinski  <pinskia@physics.uc.edu>
  
! 	PR testsuite/22288
! 	* gcc.dg/tree-ssa/pr14490-[1-4].c: Escape "+".
  
  
! 2005-07-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
  
! 	* gcc.dg/format/gcc_gfc-1.c: New.
! 
! 2005-07-03  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	* pr14490-[1-4].c: Fix typos scan-tree-dump-times so they now pass.
! 
! 2005-07-03  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR fortran/20842
! 	* gfortran.dg/io_invalid_1.f90: New test.
! 
! 2005-07-03  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* gcc.dg/format/gcc_diag-1.c: Update.
! 
! 2005-07-02  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/pr22051-1.c: New test.
! 	* gcc.dg/tree-ssa/pr22051-2.c: New test.
! 
! 2005-07-02  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* gcc.dg/format/gcc_diag-1.c: Update.
! 
! 2005-07-01  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR tree-opt/22269
! 	* gcc.c-torture/compile/pr22269.c: New test.
! 
! 2005-06-30  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 21584
! 	PR 22219
! 	* g++.dg/tree-ssa/pr21584-1.C: New test.
! 	* g++.dg/tree-ssa/pr21584-2.C: New test.
! 
! 2005-06-30  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/try-catch-11.mm: New.
! 	* objc.dg/try-catch-10.m: New.
! 
! 2005-06-29  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* g++.dg/other/ucnid-1.C: xfail on AIX.
! 
! 2005-06-29  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 22234
! 	* gcc.dg/20050629-1.c: New test.
! 
! 2005-06-29  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/const-str-1[0-1].mm: New.
! 	* objc.dg/const-str-1[0-1].m: New.
! 
! 2005-05-29  Richard Henderson  <rth@redhat.com>
! 
! 	* lib/target-supports.exp (check_effective_target_vect_no_int_max):
! 	Rename from check_effective_target_vect_no_max.
! 	(check_effective_target_vect_no_int_add): New.
! 	* gcc.dg/vect/vect-13.c: Use vect_no_int_max.
! 	* gcc.dg/vect/vect-91.c: Use vect_no_int_add.
! 	* gcc.dg/vect/vect-reduc-3.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-1.c: Use both.
! 	* gcc.dg/vect/vect-reduc-2.c: Likewise.
! 
! 2005-05-29  Richard Henderson  <rth@redhat.com>
! 
! 	* lib/target-supports.exp (check_effective_target_vect_no_max):
! 	Remove i386 and x86_64.
! 
! 2005-06-29  Steve Ellcey  <sje@cup.hp.com>
! 
! 	PR testsuite/21969
! 	* gcc.dg/torture/pr21817.c: Use -fno-common for hppa*-*-* targets.
! 
! 2005-06-29  Steve Ellcey  <sje@cup.hp.com>
! 
! 	PR middle-end/21969
! 	* gcc.dg/vect/pr21969.c: New test.
! 
! 2005-06-28  Eric Christopher  <echristo@redhat.com>
! 
! 	PR c/22052
! 	PR c/21975
! 	* gcc.dg/inline1.c: New test.
! 	* gcc.dg/inline2.c: Ditto.
! 	* gcc.dg/inline3.c: Ditto.
! 	* gcc.dg/inline4.c: Ditto.
! 	* gcc.dg/inline5.c: Ditto.
! 
! 2005-06-28  Thomas Koenig  <Thomas.Koenig@online.de>
! 
!         PR libfortran/22142
! 	* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
! 	Add testcase also testing eoshift1 for PR 22142.
! 
! 2005-06-28  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.dg/tree-ssa/20030708-1.c: Remove static from test function.
! 	* gcc.dg/tree-ssa/20030709-1.c, gcc.dg/tree-ssa/20030714-1.c,
! 	gcc.dg/tree-ssa/20030807-1.c, gcc.dg/tree-ssa/20030807-5.c,
! 	gcc.dg/tree-ssa/20030807-8.c, gcc.dg/tree-ssa/20030815-1.c,
! 	gcc.dg/tree-ssa/20030922-2.c: Likewise.
! 
! 2005-06-28  Thomas Koenig  <Thomas.Koenig@online.de>
! 
!         PR libfortran/22142
! 	* gfortran.fortran-torture/execute/intrinsic_eoshift.f90:
! 	Add testcase for PR 22142.
! 
! 2005-06-28  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* g++.dg/ext/fpreg1.C, gcc.target/ia64/fpreg-1.c,
! 	gcc.target/ia64/fpreg-2.c: New tests.
! 
! 2005-06-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	* gfortran.dg/dev_null.f90: Run test only on linux and solaris.
  
! 2005-06-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/22170
! 	* gfortran.dg/slash_1.f90: New test.
! 
! 2005-06-27  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.dg/vect/vect-reduc-1.c: Adjust test to properly validate MIN.
! 	* gcc.dg/vect/vect-reduc-1char.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-1short.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-2.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-2char.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-2short.c: Likewise.
! 
! 2005-06-27  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.dg/vect/vect-reduc-1short.c: Remove XFAIL.
! 	* gcc.dg/vect/vect-reduc-2char.c: Remove XFAIL.
! 
! 2005-06-27  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/proto-lossage-5.mm: New.
! 	* objc.dg/proto-lossage-5.m: New.
! 
! 2005-06-27  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 21959
! 	* gcc.dg/tree-ssa/pr21959.c: New test.
! 
! 2005-06-27  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gcc.c-torture/execute/builtins/lib/main.c (abort): Add prototype.
! 	* gcc.c-torture/execute/builtins/lib/strncat.c (strncat): Avoid
! 	testing uninitialized var.
! 
! 	* gcc.c-torture/execute/builtins/chk.h: New.
! 	* gcc.c-torture/execute/builtins/lib/chk.c: New.
! 	* gcc.c-torture/execute/builtins/memcpy-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/memcpy-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/memmove-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/memmove-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/mempcpy-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/mempcpy-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/memset-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/memset-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/snprintf-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/snprintf-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/sprintf-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/sprintf-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/stpcpy-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/stpcpy-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/strcat-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/strcat-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/strcpy-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/strcpy-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/strncat-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/strncat-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/strncpy-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/strncpy-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/vsnprintf-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/vsnprintf-chk-lib.c: New.
! 	* gcc.c-torture/execute/builtins/vsprintf-chk.c: New test.
! 	* gcc.c-torture/execute/builtins/vsprintf-chk-lib.c: New.
! 	* gcc.dg/builtin-object-size-1.c: New test.
! 	* gcc.dg/builtin-object-size-2.c: New test.
! 	* gcc.dg/builtin-object-size-3.c: New test.
! 	* gcc.dg/builtin-object-size-4.c: New test.
! 	* gcc.dg/builtin-object-size-5.c: New test.
! 	* gcc.dg/builtin-stringop-chk-1.c: New test.
! 	* gcc.dg/builtin-stringop-chk-2.c: New test.
! 	* gcc.dg/tree-ssa/builtin-fprintf-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-fprintf-chk-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-printf-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-printf-chk-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-vfprintf-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-vprintf-1.c: New test.
! 	* gcc.dg/tree-ssa/builtin-vprintf-chk-1.c: New test.
! 	* gcc.c-torture/execute/printf-1.c: New test.
! 	* gcc.c-torture/execute/fprintf-1.c: New test.
! 	* gcc.c-torture/execute/vprintf-1.c: New test.
! 	* gcc.c-torture/execute/vfprintf-1.c: New test.
! 	* gcc.c-torture/execute/printf-chk-1.c: New test.
! 	* gcc.c-torture/execute/fprintf-chk-1.c: New test.
! 	* gcc.c-torture/execute/vprintf-chk-1.c: New test.
! 	* gcc.c-torture/execute/vfprintf-chk-1.c: New test.
! 
! 2005-06-27  Michael Matz  <matz@suse.de>
! 
! 	* gcc.target/x86_64/abi/test_struct_returning.c: Adjust as return
! 	slot is not merged if address escapes.
! 
! 2005-06-26  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
  
  	PR c/21911
  	* gcc.dg/format/sentinel-1.c: Update.  Fix execl* calls.
  
! 2005-06-26  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/17965
! 	* gcc.c-torture/compile/20050622-1.c: New test.
  
! 	PR middle-end/22028
! 	* gcc.dg/20050620-1.c: New test.
  
! 2005-06-26  Kazu Hirata  <kazu@codesourcery.com>
  
! 	PR tree-optimization/22026
! 	* gcc.dg/tree-ssa/pr22026.c: New.
  
! 2005-06-25  Thomas Koenig <Thomas.Koenig@online.de>
! 
! 	PR libfortran/22144
! 	* gfortran.dg/shift-alloc.f90:  New testcase.
! 
! 2005-06-25  Kelley Cook  <kcook@gcc.gnu.org>
! 
! 	* all files: Update FSF address in copyright headers.
! 
! 2005-06-22  Jan Hubicka  <jh@suse.cz>
! 
! 	* wholeprogram-1.c: New testcase.
! 	* wholeprogram-2.c: New testcase.
  
  2005-06-24  Mark Mitchell  <mark@codesourcery.com>
  
  	PR 22171
  	* gcc.dg/tree-ssa/pr22171.c: New test.
  
! 2005-06-24  Feng Wang  <fengwang@nudt.edu.cn>
  
! 	* gfortran.dg/simplify_modulo.f90: New.
  
! 2005-06-24  Jan Hubicka  <jh@suse.cz>
! 
! 	* gcc.dg/tree-ssa/20040210-1.c: Fix for unit-at-a-time
! 
! 2005-06-23  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/proto-lossage-[1-4].mm: New.
! 
! 2005-06-23  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/typedef-alias-1.mm: New.
! 	* objc.dg/typedef-alias-1.m: New.
! 
! 2005-06-23  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/vrp16.c: New test.
! 
! 2005-06-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	* lib/target-supports.exp: Add
! 	check_effective_target_fortran_large_real and
! 	check_effective_target_fortran_large_int to check for
! 	corresponding effective targets.
! 	* gfortran.dg/large_integer_kind_1.f90: New test.
! 	* gfortran.dg/large_real_kind_1.f90: New test.
! 
! 2005-06-23  Kazu Hirata  <kazu@codesourcery.com>
! 
! 	PR tree-optimization/22117
! 	* gcc.dg/tree-ssa/pr22117.c: New.
! 
! 2005-06-23  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	PR testsuite/22123
! 	* gcc.dg/fold-mod-1.c: Accept fffffff8 as well.
! 
! 2005-06-23  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* gcc.dg/rs6000-fpint-2.c: Only compile on Darwin and Linux.
! 
! 2005-06-23  David Billinghurst  <David.Billinghurst@riotinto.com>
! 
! 	* gfortran.dg/f2c_4.f90:  Add tests for complex functions
! 	* gfortran.dg/f2c_4.c: Likewise
! 
! 2005-06-22 Paul Brook  <paul@codesourcery.com>
! 
! 	PR fortran/21034
! 	* gfortran.dg/auto_save_1.f90: New test.
! 
! 2005-06-22  Michael Matz  <matz@suse.de>
! 
! 	* gcc.target/x86-64/abi: New directory.
! 	* gcc.target/x86-64/abi/abi-x86_64.exp: New testsuite.
! 	* gcc.target/x86-64/abi/README.gcc: New file.
! 	* gcc.target/x86-64/abi/{args.h,defines.h,macros.h}: New headers.
! 	* gcc.target/x86-64/abi/asm-support.s: New file.
! 	* gcc.target/x86_64/abi/test_3_element_struct_and_unions.c: New test.
! 	* gcc.target/x86_64/abi/test_basic_alignment.c: New test.
! 	* gcc.target/x86_64/abi/test_basic_array_size_and_align.c: New test.
! 	* gcc.target/x86_64/abi/test_basic_returning.c: New test.
! 	* gcc.target/x86_64/abi/test_basic_sizes.c: New test.
! 	* gcc.target/x86_64/abi/test_basic_struct_size_and_align.c: New test.
! 	* gcc.target/x86_64/abi/test_basic_union_size_and_align.c: New test.
! 	* gcc.target/x86_64/abi/test_bitfields.c: New test.
! 	* gcc.target/x86_64/abi/test_complex_returning.c: New test.
! 	* gcc.target/x86_64/abi/test_passing_floats.c: New test.
! 	* gcc.target/x86_64/abi/test_passing_integers.c: New test.
! 	* gcc.target/x86_64/abi/test_passing_structs_and_unions.c: New test.
! 	* gcc.target/x86_64/abi/test_passing_structs.c: New test.
! 	* gcc.target/x86_64/abi/test_passing_unions.c: New test.
! 	* gcc.target/x86_64/abi/test_struct_returning.c: New test.
! 	* gcc.target/x86_64/abi/test_varargs.c: New test.
! 
! 2005-06-21  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* g++.dg/abi/mangle24.C, g++.dg/abi/mangle25.C: Pass -mmmx for
! 	32-bit i?86 and x86_64.
! 
! 2005-06-21  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/const-str-[1-9].mm: New tests.
! 
! 2005-06-21  Paul Thomas  <pault@gcc.gnu.org>
! 
! 	PR fortran/22010
! 	* gfortran.dg/namelist_use.f90: New.
! 	* gfortran.dg/namelist_use_only.f90: New.
! 
! 2005-06-21  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/vrp15.c: New test.
! 
! 2005-06-21  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* lib/target-supports.exp (check_effective_target_vect_reduction):
! 	Remove.
! 	* gcc.dg/vect/vect.exp: Run tests with additional flags separately.
! 	* gcc.dg/vect/vect-reduc-1.c: Vectorizable on all relevant platforms -
! 	remove vect_reduction target keyword. Also avoid two returns in main.
! 	* gcc.dg/vect/vect-reduc-3.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-2.c: Likewise. Also initialize diff to 0.
! 	* gcc.dg/vect/vect-reduc-1short.c: New test.
! 	* gcc.dg/vect/vect-reduc-1char.c: New test.
! 	* gcc.dg/vect/vect-reduc-2short.c: New test.
! 	* gcc.dg/vect/vect-reduc-2char.c: New test.
! 	* gcc.dg/vect/vect-reduc-6.c: New test.
! 	* gcc.dg/vect/trapv-vect-reduc-4.c: New test.
! 	* gcc.dg/vect/fast-math-vect-reduc-5.c: New test.
! 	* gcc.dg/vect/fast-math-vect-reduc-7.c: New test
! 
! 2005-06-21  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 	Paul Thomas  <pault@gcc.gnu.org>
! 
! 	* gfortran.dg/func_derived_2.f90, gfortran.dg/func_derived_3.f90:
! 	New tests.
! 
! 2005-06-20  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	* gfortran.dg/backslash_1.f90: New test.
  	* gfortran.dg/backslash_2.f90: New test.
  
+ 2005-06-20  Steven G. Kargl  <kargls@comcast.net>
+ 
+ 	* gfortran.dg/duplicate_labels.f90: New test.
+ 
  2005-06-20  Jan Beulich  <jbeulich@novell.com>
  
  	* g++.old-deja/g++.jason/thunk2.C: On NetWare, also account for
***************
*** 947,1062 ****
  	* g++.old-deja/g++.other/store-expr1.C: Likewise.
  	* gcc.dg/20050321-2.c: xfail for NetWare.
  
! 2005-06-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	* gfortran.dg/pr17229.f: Take care of the new obsolescence
! 	warning for arithmetic IF statements.
  
! 2005-06-17  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/21850
! 	* gcc.c-torture/execute/20050607-1.c: New test.
  
! 2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	PR libfortran/19216
! 	* gfortran.dg/pr19216.f: Add test.
  
  2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	PR libfortran/19155
! 	* gfortran.dg/pr19155.f: Add test.
  
  2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/16436
  	* gfortran.dg/g77/f77-edit-t-in.f: Not XFAIL-ed any more.
  
! 2005-06-14  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR tree-optimization/22043
! 	* gcc.c-torture/execute/20050613-1.c: New test.
  
! 2005-06-14  Zdenek Dvorak  <dvorakz@suse.cz>
  
! 	* gcc.dg/tree-ssa/pr21171.c: Fix.
  
  2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	* gfortran.dg/f2c_7.f90: New test.
  
! 2005-06-08  Zdenek Dvorak  <dvorakz@suse.cz>
  
! 	PR tree-optimization/21171
! 	* gcc.dg/tree-ssa/pr21171.c: New test.
  
  2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
  
  	* gcc.dg/tls/debug-1.c: New test.
  
! 2005-06-05  Jakub Jelinek  <jakub@redhat.com>
  
! 	Backport from the mainline:
! 	2005-04-17 Paul Thomas <pault@gcc.gnu.org>
  
! 	PR libfortran/12884 gfortran.dg/pr12884.f: New test
! 	PR libfortran/17285 gfortran.dg/pr17285.f90: New test
! 	PR libfortran/17472, 18396, 18209 gfortran.dg/pr17472.f: New test
! 	PR libfortran/18122, 18591 gfortran.dg/pr18122.f90: New test
! 	PR libfortran/18210 gfortran.dg/pr18210.f90: New test
! 	PR libfortran/18392 gfortran.dg/pr18392.f90: New test
! 	PR libfortran/19467 gfortran.dg/pr19467.f90: New test
! 	PR libfortran/19657 gfortran.dg/pr19657.f90: New test
! 	* gfortran.dg/namelist_1.f90: Correct comment (PUBLIC and PRIVATE wrong way round).
! 	* gfortran.dg/namelist_2.f90: Variables with INTENT(IN) cannot be in namelists. New test
! 	* gfortran.dg/namelist_3.f90: Pointers cannot be in namelists. New test
! 	* gfortran.dg/namelist_11.f: Tests reals and qualifiers in namelist. New test
! 	* gfortran.dg/namelist_12.f: Tests integers and qualifiers in namelist. New test
! 	* gfortran.dg/namelist_13.f90: Tests derived types in namelist. New test
! 	* gfortran.dg/namelist_14.f90: Tests trans-io.c namelist support. New test
! 	* gfortran.dg/namelist_15.f90: Tests arrays of derived types in namelist. New test
! 	* gfortran.dg/namelist_16.f90: Tests complex in namelist. New test
! 	* gfortran.dg/namelist_17.f90: Tests logical in namelist. New test
! 	* gfortran.dg/namelist_18.f90: Tests charcter delimiters in namelist. New test
! 	* gfortran.dg/namelist_19.f90: Tests namelist errors. New test
! 	* gfortran.dg/namelist_20.f90: Tests negative bounds for explicit arrays. New test
  
  2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/21912
  	* gfortran.dg/array_constructor_4.f90: New test.
- 	
- 	* gfortran.dg/forall_1.f90: Set previously uninitialized variable.
  
  2005-06-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21619
  	* g++.dg/ext/builtin9.C: New test.
  
! 2005-06-05  Paul Thomas  <pault@gcc.gnu.org>
  
! 	* gfortran.dg/char_initialiser_actual.f90:
! 	Test character initialisers as actual arguments.
! 	* gfortran.dg/char_pointer_comp_assign.f90:
! 	Test character pointer structure component assignments.
! 	* gfortran.dg/char_array_structure_constructor.f90:
! 	Test character components in structure constructors.
! 	* gfortran.dg/char_pointer_assign.f90:
! 	Test character-pointer assignments and pointer assignments.
! 	* gfortran.dg/char_pointer_dummy.f90:
! 	Test character-pointer dummy arguments.
! 	* gfortran.dg/char_pointer_func.f90:
! 	Test character-pointer function returns.
! 	* gfortran.dg/char_pointer_dependency.f90:
! 	Test character-pointer functions with dependencies.
  
  2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/19195
  	* gfortran.dg/debug_1.f90: New test.
  
! 	PR fortran/16898
! 	* gfortran.dg/ret_pointer_1.f90: Un-XFAIL.
  
  2005-06-04  Erik Edelmann  <erik.edelmann@iki.fi>
  
--- 5776,6153 ----
  	* g++.old-deja/g++.other/store-expr1.C: Likewise.
  	* gcc.dg/20050321-2.c: xfail for NetWare.
  
! 2005-06-20  Andreas Jaeger  <aj@suse.de>
  
! 	* gcc.target/i386/sseregparm-1.c, gcc.target/i386/sseregparm-2.c,
! 	gcc.target/i386/fastcall-sseregparm.c,
! 	gcc.target/i386/regparm-stdcall.c: Run only on 32-bit x86.
  
! 2005-06-19  Richard Henderson  <rth@redhat.com>
  
! 	* gcc.dg/tree-ssa/pr21985.c: Use size_t.
  
! 2005-06-19  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	* g++.dg/abi/mangle24.C, g++.dg/abi/mangle25.C: New tests.
! 
! 2005-06-19  Aldy Hernandez  <aldyh@redhat.com>
! 
! 	PR c++/22115
! 	* g++.dg/conversion/simd2.C: Change expected error message.
! 
! 2005-06-18  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gcc.dg/vect/vect-reduc-1.c: Add cleanup-tree-dump.
! 	* gcc.dg/vect/vect-reduc-2.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-3.c: Likewise.
! 
! 2005-06-18  James A Morrison  <phython@gcc.gnu.org>
! 
! 	* gcc.dg/fold-mod-1.c: New test.
! 
! 2005-06-18  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/19926
! 	* gfortran.dg/pr19926.f90: New test.
! 
! 2005-06-18  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* lib/target-supports.exp (check_effective_target_vect_reduction): New.
! 	* gcc.dg/vect/vect-reduc-1.c: Now vectorizable for vect_reduction
! 	targets.
! 	* gcc.dg/vect/vect-reduc-2.c: Likewise.
! 	* gcc.dg/vect/vect-reduc-3.c: Likewise.
! 
! 2005-06-18  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* gcc.target/ia64/float80-varargs-1.c: New test.
! 
! 2005-06-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR tree-opt/22035
! 	* gfortran.dg/f2c_6.f90: New test.
! 
! 2005-06-17  Geoffrey Keating  <geoffk@apple.com>
! 
! 	PR c++/17413
! 	* g++.dg/template/local5.C: New.
! 
! 2005-06-17  Richard Henderson  <rth@redhat.com>
! 
! 	* gcc.dg/sync-2.c (do_qi): Cast negative results to char.
! 
! 2005-06-07  David Billinghurst  <David.Billinghurst@riotinto.com>
! 
! 	PR testsuite/21945
! 	* lib/gcc-dg.exp (gcc-dg-test-1): Catch error if file can't be deleted.
! 
! 2005-06-15  Giovanni Bajo  <giovannibajo@libero.it>
! 
! 	* gcc.dg/vect/vect-dv-2.c, gcc.dg/vect/vect-ifcvt-2.c,
! 	gcc.dg/vect/vect-ifcvt-3.c, gcc.dg/vect/vect-ifcvt-4.c,
! 	gcc.dg/vect/vect-ifcvt-5.c, gcc.dg/vect/vect-ifcvt-6.c,
! 	gcc.dg/vect/vect-ifcvt-7.c, gcc.dg/vect/vect-ifcvt-9.c: Call
! 	check_vect to verify the presence of hardware vector support.
! 
! 2005-06-16  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	PR testsuite/22056
! 	* gcc.dg/pr14796-2.c: Accept -34359738368 and -800000000.
  
  2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	PR libfortran/19216
! 	* gfortran.dg/pr19216.f: Add correct space between brackets and
! 	dg directive.
  
  2005-06-17  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/16436
  	* gfortran.dg/g77/f77-edit-t-in.f: Not XFAIL-ed any more.
  
! 2005-06-16  Richard Guenther  <rguenth@gcc.gnu.org>
  
! 	* gcc.target/i386/attributes-error.c: New testcase.
! 	* gcc.target/i386/fastcall-sseregparm.c: Likewise.
! 	* gcc.target/i386/regparm-stdcall.c: Likewise.
! 	* gcc.target/i386/sseregparm-1.c: Likewise.
! 	* gcc.target/i386/sseregparm-2.c: Likewise.
  
! 2005-06-16  Nathan Sidwell  <nathan@codesourcery.com>
  
! 	* g++.dg/rtti/crash2.C: New.
! 
! 2005-06-15  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* gcc.dg/noncompile/20040203-3.c: Update expected message.
! 
! 2005-06-15  David Ung  <davidu@mips.com>
! 
! 	* gcc.target/mips/mips16e-extends.c: New test for testing the
! 	generation of MIPS16e zeb/zeh, seb/seh instructions.
! 
! 2005-06-15  Diego Novillo  <dnovillo@redhat.com>
! 
! 	PR 22018
! 	* gcc.dg/tree-ssa/vrp13.c: Add multiplication tests.
! 	* gcc.dg/tree-ssa/pr22018.c: New test.
! 
! 2005-06-15  Aldy Hernandez  <aldyh@redhat.com>
! 
! 	* gcc.dg/simd-1.c: Update error messages.
! 	* gcc.dg/simd-1b.c: Re-enable tests.  Update error messages.
! 	* gcc.dg/simd-2.c: Update error messages.
! 	* gcc.dg/simd-4.c: New.
! 
! 2005-06-15  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/20678
! 	* g++.dg/other/crash-4.C: New.
! 
! 2005-06-14  Devang Patel  <dpatel@apple.com>
! 
! 	* gcc.dg/vect/vect-ifcvt-1.c: Remove.
! 
! 2005-06-14  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/21929
! 	* g++.dg/parse/crash11.C: Update
! 
! 2005-06-13  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/20030807-10.c: VRP is now expected to
! 	perform the desired transformations.
! 	* gcc.dg/tree-ssa/20030806-6.c: Similarly.
! 	* gcc.dg/tree-ssa/20040514-2.c: Similarly.
! 
! 2005-06-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	PR fortran/22038
! 	* gfortran.dg/forall_1.f90: Un-XFAIL.
! 
! 2005-06-13  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/21929
! 	* g++.dg/parse/crash26.C: New.
! 
! 	PR c++/20789
! 	* g++.dg/init/member1.C: New.
! 
! 2005-06-13  Jakub Jelinek  <jakub@redhat.com>
! 
! 	* gfortran.dg/altreturn_1.f90: New test.
! 
! 2005-06-13  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	PR middle-end/21985
! 	* gcc.dg/tree-ssa/pr21985.c: New test.
! 
! 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* ggcc.dg/pr14796-1.c: Add tests for (X << C) >> C.
! 
! 2005-06-12  Roger Sayle  <roger@eyesopen.com>
! 
! 	PR c++/21930
! 	* g++.dg/other/error10.C: New test case.
! 
! 2005-06-12  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/19155
! 	* gfortran.dg/pr19155.f: Add test.
  
  2005-06-12  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	* gfortran.dg/f2c_7.f90: New test.
  
! 	* gfortran.dg/forall_1.f90: XFAILed.
  
! 2005-06-12  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* gcc.dg/pr14796-1.c: New.
! 	* gcc.dg/pr14796-2.c: New.
! 
! 2005-06-11  Steven G. Kargl  <kargls@comcast.net>
! 
! 	PR fortran/17792
! 	PR fortran/21375
! 	* gfortran.dg/deallocate_stat.f90:  New test.
! 
! 2005-06-11  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	* gfortran.fortran-torture/execute/in-pack.f90:  New test.
! 
! 2005-06-10  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gfortran.dg/vect/vect-4.f90: Update comments. Only one unaligned
! 	access will be generated when this loop is vectorized. Test that
! 	accesses with same alignment were detected.
! 	* gcc.dg/vect/vect-dv-2.c: Remove "vect_no_align" from xfail.
! 	Test that accesses with same alignment were detected.
! 	* gcc.dg/vect/vect-ifcvt-1.c: Likewise.
! 	* gcc.dg/vect/vect-91.c: New test. Test that accesses with same
! 	alignment were detected.
! 
! 2005-06-10  Aldy Hernandez  <aldyh@redhat.com>
! 
! 	PR c++/10611
! 	* g++.dg/conversion/simd2.C: New.
! 
! 2005-06-09  Gabriel Dos Reis  <gdr@integrable-solutions.net>
! 
! 	* gcc.dg/Wcxx-compat-1.c: New.
! 
! 2005-06-09  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/21480
! 	* gfortran.dg/reshape-complex.f90:  Add a test for a packed
! 	complex array.
! 
! 2005-06-09  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	* gcc.dg/alias-8.c: New.
! 
! 2005-06-08  Joseph S. Myers  <joseph@codesourcery.com>
! 
! 	* gcc.dg/format/cmn_err-1.c: Update.
! 
! 2005-06-08  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	PR target/20666
! 	* gcc.target/sparc/fexpand-2.c: New.
! 	* gcc.target/sparc/fpmerge-2.c: New.
! 	* gcc.target/sparc/fpmul-2.c: New.
! 	* gcc.target/sparc/noresult.c: New.
! 	* gcc.target/sparc/pdist-2.c: New.
! 	* gcc.target/sparc/pdist-3.c: New.
! 
! 2005-06-08  Alex V. Breger  <atrus.ru@atrus.ru>
! 
! 	PR testsuite/21702
! 	* gcc.target/i386/i386.exp: Fix comment typo.
! 
! 2005-06-08  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/19497
! 	* g++.dg/inherit/using5.C: New.
! 	* g++.dg/inherit/using6.C: New.
! 
! 2005-06-08  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/19894
! 	* g++.dg/template/ptrmem15.C: New test.
! 
! 	PR c++/20563
! 	* g++.dg/ext/label4.C: New test.
  
  2005-06-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
  
  	* gcc.dg/tls/debug-1.c: New test.
  
! 2005-06-07  Dale Johannesen  <dalej@apple.com>
  
! 	* gcc.target/i386/movq.c:  New.
  
! 2005-06-07  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.dg/20050607-1.c:  New.
! 
! 2005-06-07  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR middle-end/21850
! 	* gcc.c-torture/execute/20050607-1.c: New test.
! 
! 2005-06-07  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/21926
! 	* gfortran.fortran-torture/execute/intrinsic_matmul.f90:
! 	Test case where the return array has lowest stride one,
! 	but isn't packed.
! 
! 2005-06-07  Adrian Straetling  <straetling@de.ibm.com>
! 
! 	* lib/target-supports.exp (check_effective_target_sync_int_long):
! 	Add s390 and s390x targets.
! 
! 2005-06-07  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/loop-2.c: Update outcome.
! 	* gcc.dg/tree-ssa/loop-3.c: Update outcome.
! 	* gcc.dg/tree-ssa/loop-4.c: Update outcome.
! 	* gcc.dg/tree-ssa/loop-9.c: New test.
! 
! 2005-06-07  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	* g++.dg/parse/defarg10.C: New.
! 
! 2005-06-06  Jakub Jelinek  <jakub@redhat.com>
! 
! 	PR regression/21897
! 	* gcc.c-torture/execute/20050604-1.c: New test.
! 
! 2005-06-06  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR 21903
! 	* g++.dg/parse/defarg9.C: New.
! 
! 	PR c++/20637
! 	* g++.dg/inherit/using4.C: New.
! 	* g++.dg/overload/error1.C: Adjust expected errors.
! 	* g++.old-deja/g++.benjamin/warn02.C: Likewise.
! 	* g++.old-deja/g++.brendan/arm2.C: Likewise.
! 	* g++.old-deja/g++.other/redecl2.C: Likewise.
! 	* g++.old-deja/g++.other/redecl4.C: Likewise.
! 	* g++.old-deja/g++.pt/memtemp78.C: Likewise.
! 
! 2005-06-05  David Billinghurst  <David.Billinghurst@riotinto.com>
! 
! 	* gfortran.dg/f2c_5.f90: Add -w to dg-options
! 
! 2005-06-05  David Billinghurst  <David.Billinghurst@riotinto.com>
! 
! 	* lib/gfortran.exp (gfortran_target_compile): Call
! 	dg-additional-files-options
! 	* gfortran.dg/f2c_4.f90: New file
! 	* gfortran.dg/f2c_4.c: New file
! 	* gfortran.dg/f2c_5.f90: New file
! 	* gfortran.dg/f2c_5.c: New file
  
  2005-06-05  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
+ 	* gfortran.dg/forall_1.f90: Set previously uninitialized variable.
+ 
  	PR fortran/21912
  	* gfortran.dg/array_constructor_4.f90: New test.
  
  2005-06-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21619
  	* g++.dg/ext/builtin9.C: New test.
  
! 2005-06-05  Dale Johannesen  <dalej@apple.com>
  
! 	* gcc.c-torture/execute/20050603-1.c:  Move to gcc.dg.
! 	* gcc.c-torture/execute/20050603-2.c:  Ditto.
! 
! 2005-06-05  Dorit Nuzman  <dorit@il.ibm.com>
! 
! 	* gcc.dg/vect/vect-62: Check that second loop is not vectorized.
! 	* gcc.dg/vect/vect-reduc-1.c: New.
! 	* gcc.dg/vect/vect-reduc-2.c: New.
! 	* gcc.dg/vect/vect-reduc-3.c: New.
! 
! 2005-06-04  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.c-torture/execute/20050603-1.c:  New.
! 	* gcc.c-torture/execute/20050603-2.c:  New.
! 	* gcc.dg/20050603-3.c:  New.
  
  2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/19195
  	* gfortran.dg/debug_1.f90: New test.
  
! 	* gfortran.dg/forall_1.f90: New test.
  
  2005-06-04  Erik Edelmann  <erik.edelmann@iki.fi>
  
***************
*** 1064,1070 ****
  
  2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	* gfortran.dg/forall_1.f90: New test.
  
  2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
  
--- 6155,6165 ----
  
  2005-06-04  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	* gfortran.dg/ret_pointer_1.f90: Un-XFAIL.
! 
! 2005-06-04  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* g++.dg/opt/crossjump1.C: Gate -fPIC usage on target fpic.
  
  2005-06-04  Joseph S. Myers  <joseph@codesourcery.com>
  
***************
*** 1076,1086 ****
--- 6171,6220 ----
  	PR c++/21853
  	* g++.dg/expr/static_cast6.C: New test.
  
+ 2005-06-03  Diego Novillo  <dnovillo@redhat.com>
+ 
+ 	* gcc.dg/tree-ssa/vrp14.c: New test.
+ 
  2005-06-03  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21336
  	* g++.dg/template/new2.C: New test.
  
+ 2005-06-03  Josh Conner  <jconner@apple.com>
+ 
+ 	* gcc.dg/ppc-vector-memcpy.c (foo): Use non-zero values for
+ 	all entries in initializer.
+ 
+ 2005-06-03  Richard Guenther  <rguenth@gcc.gnu.org>
+ 
+ 	PR middle-end/21858
+ 	* gcc.dg/pr21858.c: New testcase.
+ 
+ 2005-06-03  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	PR tree-optimization/21292
+ 
+ 	* lib/target-supports.exp (check_effective_target_vect_cmdline_needed):
+ 	New.
+ 	* gcc.dg/tree-ssa/gen-vect-11.c, gcc.dg/tree-ssa/gen-vect-11a.c,
+ 	gcc.dg/tree-ssa/gen-vect-11b.c, gcc.dg/tree-ssa/gen-vect-11c.c,
+ 	gcc.dg/tree-ssa/gen-vect-2.c, gcc.dg/tree-ssa/gen-vect-25.c,
+ 	gcc.dg/tree-ssa/gen-vect-26.c, gcc.dg/tree-ssa/gen-vect-28.c,
+ 	gcc.dg/tree-ssa/gen-vect-32.c: Require it.
+ 
+ 2005-06-02  Richard Henderson  <rth@redhat.com>
+ 
+ 	* gcc.dg/sync-2.c: Use -march=i486 for i386.
+ 
+ 2005-06-02  Richard Guenther  <rguenth@gcc.gnu.org>
+ 
+ 	* gcc.dg/wtypequal.c: New testcase.
+ 
+ 2005-06-02  Diego Novillo  <dnovillo@redhat.com>
+ 
+ 	PR 21582
+ 	* gcc.dg/tree-ssa/pr21582.c: New test.
+ 
  2005-06-02  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/21280
***************
*** 1093,1112 ****
  	* g++.old-deja/g++.pt/assign1.C: Likewise.
  	* g++.old-deja/g++.pt/crash20.C: Likewise.
  
  	PR c++/21151
  	* g++.dg/pch/local-1.C: New.
  	* g++.dg/pch/local-1.Hs: New.
  
! 2005-06-01  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	* gfortran.dg/f2c_1.f90, gfortran.dg/f2c_2.f90,
! 	gfortran.dg/f2c_3.f90, gfortran.dg/func_result_2.f90:
! 	New tests.
  
! 2005-06-01  Nathan Sidwell  <nathan@codesourcery.com>
  
! 	PR c++/20350
! 	* g++.dg/template/spec24.C: New.
  
  2005-06-01  Jakub Jelinek  <jakub@redhat.com>
  
--- 6227,6283 ----
  	* g++.old-deja/g++.pt/assign1.C: Likewise.
  	* g++.old-deja/g++.pt/crash20.C: Likewise.
  
+ 2005-06-02  Dorit Nuzman  <dorit@il.ibm.com>
+ 
+ 	PR tree-optimization/21734
+ 	* g++.dg/vect/pr21734_1.cc: New.
+ 	* g++.dg/vect/pr21734_2.cc: New.
+ 
+ 2005-06-02  Nathan Sidwell  <nathan@codesourcery.com>
+ 
+ 	PR c++/20350
+ 	* g++.dg/template/spec24.C: New.
+ 
  	PR c++/21151
  	* g++.dg/pch/local-1.C: New.
  	* g++.dg/pch/local-1.Hs: New.
  
! 2005-06-01  Diego Novillo  <dnovillo@redhat.com>
  
! 	PR 14341, PR 21332, PR 20701, PR 21086, PR 21090
! 	PR 21289, PR 21348, PR 21367, PR 21368, PR 21458.
! 	* gcc.dg/tree-ssa/pr14341.c: New test.
! 	* gcc.dg/tree-ssa/pr14841.c: New test.
! 	* gcc.dg/tree-ssa/pr20701.c: New test.
! 	* gcc.dg/tree-ssa/pr21086.c: New test.
! 	* gcc.dg/tree-ssa/pr21090.c: New test.
! 	* gcc.dg/tree-ssa/pr21332.c: New test.
! 	* gcc.dg/tree-ssa/pr21458.c: New test.
! 	* gcc.dg/tree-ssa/pr21658.c: New test.
! 	* gcc.dg/tree-ssa/vrp01.c: New test.
! 	* gcc.dg/tree-ssa/vrp02.c: New test.
! 	* gcc.dg/tree-ssa/vrp03.c: New test.
! 	* gcc.dg/tree-ssa/vrp04.c: New test.
! 	* gcc.dg/tree-ssa/vrp05.c: New test.
! 	* gcc.dg/tree-ssa/vrp06.c: New test.
! 	* gcc.dg/tree-ssa/vrp07.c: New test.
! 	* gcc.dg/tree-ssa/vrp08.c: New test.
! 	* gcc.dg/tree-ssa/vrp09.c: New test.
! 	* gcc.dg/tree-ssa/vrp10.c: New test.
! 	* gcc.dg/tree-ssa/vrp11.c: New test.
! 	* gcc.dg/tree-ssa/vrp12.c: New test.
! 	* gcc.dg/tree-ssa/vrp13.c: New test.
  
! 2005-06-01  Alexandre Oliva  <aoliva@redhat.com>
  
! 	PR 21029
! 	* gcc.dg/tree-ssa/pr21029.c: New test.
! 
! 2005-06-01  Roger Sayle  <roger@eyesopen.com>
! 
! 	* gfortran.dg/logint-1.f: New test case.
! 	* gfortran.dg/logint-2.f: Likewise.
! 	* gfortran.dg/logint-3.f: Likewise.
  
  2005-06-01  Jakub Jelinek  <jakub@redhat.com>
  
***************
*** 1120,1130 ****
  	* gfortran.dg/implicit_5.f90: New test.
  
  2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
!  
  	PR fortran/20883
  	* gfortran/assign_4.f90: New test.
  	* gfortran/assign_2.f90: Change compile to run.
  
  2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
  
  	PR tree-optimization/21817
--- 6291,6307 ----
  	* gfortran.dg/implicit_5.f90: New test.
  
  2005-06-01  Feng Wang  <fengwang@nudt.edu.cn>
! 
  	PR fortran/20883
  	* gfortran/assign_4.f90: New test.
  	* gfortran/assign_2.f90: Change compile to run.
  
+ 2005-05-31  Geoffrey Keating  <geoffk@geoffk.org>
+ 
+ 	* lib/target-supports.exp
+ 	(check_effective_target_sync_char_short): New.
+ 	* gcc.dg/sync-2.c: New.
+ 
  2005-05-31  Zdenek Dvorak  <dvorakz@suse.cz>
  
  	PR tree-optimization/21817
***************
*** 1135,1151 ****
  	PR c++/21165
  	* g++.dg/template/init5.C: New.
  
  2005-05-31  Andrew pinski  <pinskia@physics.uc.edu>
  
  	PR middle-end/20931
  	* g++.dg/opt/pr20931.C: New test.
  
! 2005-05-29  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21784
  	* g++.dg/lookup/using14.C: New test.
  
! 2005-05-29  Steven G. Kargl
  
  	PR fortran/20846
  	* gfortran.dg/inquire_8.f90: New test.
--- 6312,6402 ----
  	PR c++/21165
  	* g++.dg/template/init5.C: New.
  
+ 2005-05-31  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	* gfortran.dg/char_initialiser_actual.f90:
+ 	Test character initialisers as actual arguments.
+ 	* gfortran.dg/char_pointer_comp_assign.f90:
+ 	Test character pointer structure component assignments.
+ 	* gfortran.dg/char_array_structure_constructor.f90:
+ 	Test character components in structure constructors.
+ 
  2005-05-31  Andrew pinski  <pinskia@physics.uc.edu>
  
  	PR middle-end/20931
  	* g++.dg/opt/pr20931.C: New test.
  
! 2005-05-31  Andreas Jaeger  <aj@suse.de>
! 
! 	PR testsuite/20772
! 	* g++.dg/abi/dtor1.C, g++.dg/abi/empty10.C, g++.dg/abi/layout3.C,
! 	g++.dg/eh/simd-2.C, g++.dg/opt/cse2.C,
! 	g++.old-deja/g++.ext/asmspec1.C,
! 	g++.old-deja/g++.other/regstack.C,
! 	gcc.dg/20000614-1.c, gcc.dg/20000807-1.c, gcc.dg/20000904-1.c,
! 	gcc.dg/20001127-1.c, gcc.dg/20010202-1.c, gcc.dg/20010520-1.c,
! 	gcc.dg/20011009-1.c, gcc.dg/20011029-2.c, gcc.dg/20020224-1.c,
! 	gcc.dg/20020531-1.c, gcc.dg/20020616-1.c, gcc.dg/980226-1.c,
! 	gcc.dg/980414-1.c, gcc.dg/980520-1.c, gcc.dg/980709-1.c,
! 	gcc.dg/990117-1.c, gcc.dg/990130-1.c, gcc.dg/990213-2.c,
! 	gcc.dg/990214-1.c, gcc.dg/991129-1.c, gcc.dg/991209-1.c,
! 	gcc.dg/991214-1.c, gcc.dg/asm-1.c, gcc.dg/attr-returns_twice-1.c,
! 	gcc.dg/clobbers.c, gcc.dg/i386-387-7.c, gcc.dg/i386-387-8.c,
! 	gcc.dg/i386-3dnowA-1.c, gcc.dg/i386-3dnowA-2.c, gcc.dg/i386-asm-1.c
! 	gcc.dg/i386-asm-2.c, gcc.dg/i386-asm-3.c, gcc.dg/i386-bitfield3.c
! 	gcc.dg/i386-call-1.c, gcc.dg/i386-memset-1.c,
! 	gcc.dg/i386-signbit-3.c, gcc.dg/i386-ssefn-1.c,
! 	gcc.dg/i386-ssefn-2.c, gcc.dg/i386-ssefn-3.c, gcc.dg/i386-ssefn-4.c
! 	gcc.dg/i386-volatile-1.c, gcc.dg/i386-xorps.c, gcc.dg/pr12092-1.c
! 	gcc.dg/pr14289-1.c, gcc.dg/pr19236-1.c, gcc.dg/pr20204.c,
! 	gcc.dg/pr9771-1.c, gcc.dg/register-var-1.c,
! 	gcc.dg/sibcall-5.c, gcc.dg/charset/asm3.c,
! 	gcc.dg/cpp/trad/num-sign.c: Run tests also on x86_64.
! 
! 2005-05-31  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/foldaddr-1.c: New test.
! 
! 2005-05-30  Paolo Carlini  <pcarlini@suse.de>
! 
! 	PR middle-end/21743
! 	* gcc.dg/builtins-1.c: Activate disabled clog test.
! 	* gcc.dg/torture/builtin-attr-1.c: Likewise.
! 
! 2005-05-29 Paul Thomas  <pault@gcc.gnu.org>
! 
! 	* gfortran.dg/char_pointer_assign.f90:
! 	Test character-pointer assignments and pointer assignments.
! 	* gfortran.dg/char_pointer_dummy.f90:
! 	Test character-pointer dummy arguments.
! 	* gfortran.dg/char_pointer_func.f90:
! 	Test character-pointer function returns.
! 	* gfortran.dg/char_pointer_dependency.f90:
! 	Test character-pointer functions with dependencies.
! 
! 2005-05-30  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21784
  	* g++.dg/lookup/using14.C: New test.
  
! 2005-05-30  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	* gcc.dg/c99-math-double-1.c, gcc.dg/c99-math-float-1.c,
! 	gcc.dg/c99-math-long-double-1.c, gcc.dg/c99-math.h: Remove
! 	trailing ^M.
! 
! 2005-05-29  Geoffrey Keating  <geoffk@apple.com>
! 
! 	PR c++/17413
! 	* g++.dg/template/local5.C: New.
! 
! 	PR target/21761
! 	* gcc.c-torture/compile/pr21761.c: New.
! 
! 	* g++.old-deja/g++.eh/badalloc1.C: Make XFAIL only on darwin
! 	before darwin8.
! 
! 2005-05-30  Steven G. Kargl
  
  	PR fortran/20846
  	* gfortran.dg/inquire_8.f90: New test.
***************
*** 1162,1180 ****
  
  2005-05-28  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21340
  	* g++.dg/init/ctor6.C: New test.
  
  2005-05-27  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21614
  	* g++.dg/expr/ptrmem6.C: New test.
  	* g++.dg/expr/ptrmem6a.C: Likewise.
  
! 2005-05-27  Richard Guenther  <rguenth@gcc.gnu.org>
  
! 	PR middle-end/21595
! 	* g++.dg/tree-ssa/builtin1.C: New testcase.
  
  2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
  
--- 6413,6450 ----
  
  2005-05-28  Mark Mitchell  <mark@codesourcery.com>
  
+ 	PR c++/21210
+ 	* g++.dg/ext/complex1.C: New test.
+ 
  	PR c++/21340
  	* g++.dg/init/ctor6.C: New test.
  
+ 2005-05-29  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* gcc.c-torture/compile/pr21562.c: New.
+ 
+ 2005-05-28  Steven G. Kargl <kargls@comcast.net>
+ 
+ 	* gfortran.dg/subnormal_1.f90: New test.
+ 
+ 2005-05-28  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* tree-prof.exp: Fix comment.
+ 	* value-prof-1.c: New.
+ 	* value-prof-2.c: New.
+ 	* value-prof-3.c: New.
+ 	* value-prof-4.c: New.
+ 
  2005-05-27  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21614
  	* g++.dg/expr/ptrmem6.C: New test.
  	* g++.dg/expr/ptrmem6a.C: Likewise.
  
! 2005-05-27  Kazu Hirata  <kazu@cs.umass.edu>
  
! 	PR tree-optimization/21658
! 	* gcc.dg/tree-ssa/pr21658.c: New.
  
  2005-05-27  Nathan Sidwell  <nathan@codesourcery.com>
  
***************
*** 1184,1238 ****
  	PR c++/21681
  	* g++.dg/parse/template16.C: New.
  
  2005-05-26  Andreas Jaeger  <aj@suse.de>
  
  	* gcc.c-torture/execute/ieee/ieee.exp: Set float-store for 32-bit
  	x86-64 compilation.
  
  2005-05-26  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/17283
  	* gfortran.fortran-torture/execute/intrinsic_unpack.f90:
  	Test callee-allocated memory with write statements.
  
! 2005-05-25  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR middle-end/21492
! 	* g++.dg/opt/crossjump1.C: New test.
  
  2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
  
  	* gcc.dg/20050524-1.c: New test.
  
! 2005-05-25  Eric Botcazou  <ebotcazou@libertysurf.fr>
  
! 	PR target/21412
! 	* gcc.dg/tls/opt-9.c: XFAIL on SPARC.
  
! 2005-05-25  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline:
! 	PR libfortran/18495
! 	* gfortran.fortran-torture/execute/intrinsic_spread.f90:
! 	Test callee-allocated version of return array with a write
! 	statement.
! 	Test spread with a temporary with another write statement.
  
! 2005-04-23  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline:
! 	PR libfortran/21075
! 	* gfortran.dg/reshape_rank7.f90: New test.
  
! 2005-05-21  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline:
! 	PR libfortran/20074
! 	PR libfortran/20436
! 	PR libfortran/21108
! 	* gfortran.dg/nested_reshape.f90: new test
! 	* gfortran.dg/reshape-alloc.f90: new test
! 	* gfortran.dg/reshape.f90: new test
  
  2004-05-21  Andrew Pinski  <pinskia@physics.uc.edu>
  
--- 6454,6765 ----
  	PR c++/21681
  	* g++.dg/parse/template16.C: New.
  
+ 2005-05-27  Andreas Jaeger  <aj@suse.de>
+ 
+ 	* gcc.dg/setjmp-2.c: Only run in 32-bit.
+ 
+ 	* gcc.dg/i386-sse-8.c: Run test on all archs.
+ 
+ 2005-05-26  Mike Stump  <mrs@apple.com>
+ 
+ 	* objc.dg/isa-field-1.m: Only run on darwin.
+ 	* objc.dg/lookup-1.m: Likewise.
+ 	* objc.dg/try-catch-8.m: Likewise.
+ 
+ 2005-05-26  Roger Sayle  <roger@eyesopen.com>
+ 
+ 	PR tree-optimization/9814
+ 	* gcc.dg/pr9814-1.c: New test case.
+ 
+ 2005-05-26  Ziemowit Laski  <zlaski@apple.com>
+ 
+ 	* objc.dg/comp-types-8.m, objc.dg/encode-6.m,
+ 	objc.dg/extra-semi.m, objc.dg/fix-and-continue-2.m,
+ 	objc.dg/isa-field-1.m, objc.dg/lookup-1.m, objc.dg/method-15.m,
+ 	objc.dg/method-16.m, objc.dg/method-17.m, objc.dg/method-18.m,
+ 	objc.dg/method-19.m, objc.dg/next-runtime-1.m,
+ 	objc.dg/no-extra-load.m, objc.dg/pragma-1.m, objc.dg/stubify-1.m,
+ 	objc.dg/stubify-2.m, objc.dg/super-class-4.m,
+ 	objc.dg/super-dealloc-1.m, objc.dg/super-dealloc-2.m,
+ 	objc.dg/try-catch-6.m, objc.dg/try-catch-7.m,
+ 	objc.dg/try-catch-8.m: New.
+ 
+ 2005-05-26  Janis Johnson  <janis187@us.ibm.com>
+ 
+ 	* lib/obj-c++.exp (obj-c++_target_compile): Declare global variable,
+ 	remove extraneous semicolons.
+ 
+ 2005-05-26  Ziemowit Laski  <zlaski@apple.com>
+ 
+ 	* obj-c++.dg/comp-types-12.mm: New.
+ 	* objc.dg/comp-types-11.m: New.
+ 	* objc.dg/selector-4.m: New.
+ 
+ 2005-05-26  Andreas Jaeger  <aj@suse.de>
+ 
+ 	PR testsuite/20772
+ 	* g++.old-deja/g++.ext/attrib1.C, g++.old-deja/g++.ext/attrib2.C,
+ 	g++.old-deja/g++.ext/attrib3.C,
+ 	g++.old-deja/g++.other/store-expr1.C,
+ 	g++.old-deja/g++.other/store-expr2.C, g++.dg/opt/longbranch2.C,
+ 	gcc.dg/20000609-1.c, gcc.dg/20000720-1.c, gcc.dg/20011107-1.c,
+ 	gcc.dg/20011119-1.c, gcc.dg/20020108-1.c, gcc.dg/20020122-2.c,
+ 	gcc.dg/20020122-3.c, gcc.dg/20020201-3.c, gcc.dg/20020206-1.c,
+ 	gcc.dg/20020218-1.c, gcc.dg/20020310-1.c, gcc.dg/20020411-1.c,
+ 	gcc.dg/20020418-2.c, gcc.dg/20020426-1.c, gcc.dg/20020426-2.c,
+ 	gcc.dg/20020517-1.c, gcc.dg/20020523-1.c, gcc.dg/20020523-2.c,
+ 	gcc.dg/20020729-1.c, gcc.dg/20030204-1.c, gcc.dg/20030826-2.c,
+ 	gcc.dg/20030926-1.c, gcc.dg/20031202-1.c, gcc.dg/980312-1.c,
+ 	gcc.dg/980313-1.c, gcc.dg/990424-1.c, gcc.dg/990524-1.c,
+ 	gcc.dg/991230-1.c, gcc.dg/i386-387-1.c, gcc.dg/i386-387-2.c,
+ 	gcc.dg/i386-387-3.c, gcc.dg/i386-387-4.c, gcc.dg/i386-387-5.c,
+ 	gcc.dg/i386-387-6.c, gcc.dg/i386-bitfield1.c,
+ 	gcc.dg/i386-bitfield2.c, gcc.dg/i386-loop-1.c,
+ 	gcc.dg/i386-loop-2.c, gcc.dg/i386-loop-3.c, gcc.dg/i386-pic-1.c,
+ 	gcc.dg/i386-regparm.c, gcc.dg/i386-signbit-1.c,
+ 	gcc.dg/i386-signbit-2.c, gcc.dg/i386-sse-5.c, gcc.dg/i386-sse-8.c,
+ 	gcc.dg/i386-unroll-1.c, gcc.dg/tls/opt-1.c, gcc.dg/tls/opt-2.c,
+ 	gcc.dg/unroll-1.c: Handle 32-bit x86-64 compilation.
+ 
  2005-05-26  Andreas Jaeger  <aj@suse.de>
  
  	* gcc.c-torture/execute/ieee/ieee.exp: Set float-store for 32-bit
  	x86-64 compilation.
  
+ 2005-05-26  Andreas Jaeger  <aj@suse.de>
+ 
+         PR testsuite/20772
+ 	* gfortran.dg/promotion.f90, gcc.misc-tests/i386-pf-3dnow-1.c,
+ 	gcc.misc-tests/i386-pf-athlon-1.c,
+ 	gcc.misc-tests/i386-pf-none-1.c, gcc.misc-tests/i386-pf-sse-1.c,
+ 	g++.dg/opt/mmx1.C, g++.dg/other/big-struct.C,
+ 	g++.dg/abi/bitfield3.C, g++.dg/abi/bitfield8.C,
+ 	g++.dg/abi/bitfield9.C, g++.dg/abi/empty7.C, g++.dg/abi/empty9.C,
+ 	g++.dg/abi/layout4.C, g++.dg/abi/thunk1.C, g++.dg/abi/thunk2.C,
+ 	g++.dg/abi/vbase11.C, g++.dg/abi/vthunk2.C, g++.dg/abi/vthunk3.C,
+ 	g++.dg/ext/attrib8.C: Run also on x86_64 compiling 32-bit x86
+ 	programs.
+ 
+ 	* g++.dg/opt/reg-stack4.C, g++.dg/eh/simd-1.C, g++.dg/eh/simd-1.C,
+ 	gcc.dg/setjmp-2.c, gcc.dg/short-compare-1.c,
+ 	gcc.dg/short-compare-2.c, gcc.target/i386/asm-1.c: Handle 32-bit
+ 	x86-64 compilation.
+ 
+ 	* g++.dg/warn/register-var-1.C, g++.dg/charset/asm2.c: Run also on
+ 	x86_64.
+ 
+ 	* gcc.dg/i386-pentium4-not-mull.c: Change option handling to use
+ 	effective-target ilp32.
+ 
+ 2005-05-26  David Ung  <davidu@mips.com>
+ 
+ 	* gcc.target/mips/ext_ins.c: New test for testing the generation
+ 	of MIPS32/64 rev 2 ext/ins instructions.
+ 
+ 2005-05-26  Andreas Jaeger  <aj@suse.de>
+ 
+ 	* treelang/compile/unsigned.tree: Use gimple instead of
+ 	nonexisting generic dump.
+ 
+ 2005-05-26  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	* gcc.dg/vect/vect-7.c: Remove xfail for alpha.
+ 
+ 2005-05-26  Andreas Jaeger  <aj@suse.de>
+ 
+ 	* gcc.dg/tree-ssa/ssa-pre-14.c (foo): Use correct type for strlen.
+ 
  2005-05-26  Thomas Koenig  <Thomas.Koenig@online.de>
  
  	PR libfortran/17283
  	* gfortran.fortran-torture/execute/intrinsic_unpack.f90:
  	Test callee-allocated memory with write statements.
  
! 2005-05-25  Roger Sayle  <roger@eyesopen.com>
  
! 	PR middle-end/21709
! 	* gcc.dg/pr21709-1.c: New test case.
! 
! 2005-05-25  Ziemowit Laski  <zlaski@apple.com>
! 	    Mike Stump  <mrs@apple.com>
! 
! 	* objc/execute/next_mapping.h: Update for C++.
! 
! 	* obj-c++.dg/selector-1.mm: Move to...
! 	* obj-c++.dg/selector-4.mm: here...
! 
! 	* obj-c++.dg/basic.mm: New.
! 	* obj-c++.dg/comp-types-1.mm: New.
! 	* obj-c++.dg/cxx-class-1.mm: New.
! 	* obj-c++.dg/cxx-ivars-1.mm: New.
! 	* obj-c++.dg/cxx-ivars-2.mm: New.
! 	* obj-c++.dg/cxx-ivars-3.mm: New.
! 	* obj-c++.dg/cxx-scope-1.mm: New.
! 	* obj-c++.dg/cxx-scope-2.mm: New.
! 	* obj-c++.dg/defs.mm: New.
! 	* obj-c++.dg/empty-private-1.mm: New.
! 	* obj-c++.dg/encode-1.mm: New.
! 	* obj-c++.dg/encode-2.mm: New.
! 	* obj-c++.dg/encode-3.mm: New.
! 	* obj-c++.dg/extern-c-1.mm: New.
! 	* obj-c++.dg/extra-semi.mm: New.
! 	* obj-c++.dg/fix-and-continue-2.mm: New.
! 	* obj-c++.dg/isa-field-1.mm: New.
! 	* obj-c++.dg/ivar-list-semi.mm: New.
! 	* obj-c++.dg/local-decl-1.mm: New.
! 	* obj-c++.dg/lookup-1.mm: New.
! 	* obj-c++.dg/lookup-2.mm: New.
! 	* obj-c++.dg/method-1.mm: New.
! 	* obj-c++.dg/method-2.mm: New.
! 	* obj-c++.dg/method-3.mm: New.
! 	* obj-c++.dg/method-4.mm: New.
! 	* obj-c++.dg/method-5.mm: New.
! 	* obj-c++.dg/method-6.mm: New.
! 	* obj-c++.dg/method-7.mm: New.
! 	* obj-c++.dg/no-extra-load.mm: New.
! 	* obj-c++.dg/overload-1.mm: New.
! 	* obj-c++.dg/pragma-1.mm: New.
! 	* obj-c++.dg/pragma-2.mm: New.
! 	* obj-c++.dg/private-1.mm: New.
! 	* obj-c++.dg/private-2.mm: New.
! 	* obj-c++.dg/proto-qual-1.mm: New.
! 	* obj-c++.dg/qual-types-1.mm: New.
! 	* obj-c++.dg/stubify-1.mm: New.
! 	* obj-c++.dg/stubify-2.mm: New.
! 	* obj-c++.dg/super-class-1.mm: New.
! 	* obj-c++.dg/super-class-2.mm: New.
! 	* obj-c++.dg/super-dealloc-1.mm: New.
! 	* obj-c++.dg/super-dealloc-2.mm: New.
! 	* obj-c++.dg/template-1.mm: New.
! 	* obj-c++.dg/template-2.mm: New.
! 	* obj-c++.dg/template-3.mm: New.
! 	* obj-c++.dg/template-4.mm: New.
! 	* obj-c++.dg/template-5.mm: New.
! 	* obj-c++.dg/template-6.mm: New.
! 	* obj-c++.dg/try-catch-1.mm: New.
! 	* obj-c++.dg/try-catch-2.mm: New.
! 	* obj-c++.dg/try-catch-3.mm: New.
! 	* obj-c++.dg/try-catch-4.mm: New.
! 	* obj-c++.dg/try-catch-5.mm: New.
! 	* obj-c++.dg/try-catch-6.mm: New.
! 	* obj-c++.dg/try-catch-7.mm: New.
! 	* obj-c++.dg/try-catch-8.mm: New.
! 	* obj-c++.dg/try-catch-9.mm: New.
! 	* obj-c++.dg/va-meth-1.mm: New.
! 
! 2005-05-25  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/selector-1.mm: New.
! 	* obj-c++.dg/selector-2.mm: New.
! 
! 2005-05-25  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/selector-3.mm: New.
! 	* objc.dg/selector-3.m: New.
! 
! 2005-05-25  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* objc.dg/selector-2.m: Remove "-fgnu-runtime"; be flexible
! 	about where warning appears.
! 
! 2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
! 
! 	* gcc.dg/tree-ssa/stdarg-2.c: Add tests for s390*-*-linux* targets.
! 	* gcc.dg/tree-ssa/stdarg-3.c: Likewise.
! 	* gcc.dg/tree-ssa/stdarg-4.c: Likewise.
! 	* gcc.dg/tree-ssa/stdarg-5.c: Likewise.
  
  2005-05-25  Ulrich Weigand  <uweigand@de.ibm.com>
  
  	* gcc.dg/20050524-1.c: New test.
  
! 2005-05-25  Jan Hubicka  <jh@suse.cz>
  
! 	* gcc.dg/tree-prof/inliner-1.c: New.
  
! 2005-05-25  Janis Johnson  <janis187@us.ibm.com>
  
! 	* gcc.dg/tree-prof: New directory.
! 	* gcc.dg/tree-prof/tree-prof.exp: New.
  
! 2005-05-25  DJ Delorie  <dj@redhat.com>
  
! 	* gcc.dg/Wattributes-1.c: New.
! 	* gcc.dg/Wattributes-2.c: New.
! 	* gcc.dg/Wattributes-3.c: New.
  
! 20005-05-24  Janis Johnson  <janis187@us.ibm.com>
  
! 	PR tree-optimization/19833
! 	* gcc.dg/uninit-4.c: Remove xfail.
! 	* gcc.dg/uninit-9.c: Ditto.
! 
! 2005-05-24  Ziemowit Laski  <zlaski@apple.com>
! 
! 	* obj-c++.dg/bitfield-[1-5].mm: New.
! 	* obj-c++.dg/class-protocol-1.mm: New.
! 	* obj-c++.dg/comp-types-1[0-1].mm: New.
! 	* obj-c++.dg/comp-types-[2-9].mm: New.
! 	* obj-c++.dg/encode-[4-8].mm: New.
! 	* obj-c++.dg/layout-1.mm: New.
! 	* obj-c++.dg/method-1[0-9].mm: New.
! 	* obj-c++.dg/method-2[0-1].mm: New.
! 	* obj-c++.dg/method-[8-9].mm: New.
! 	* obj-c++.dg/objc-gc-3.mm: New.
! 	* obj-c++.dg/try-catch-10.mm: New.
! 	* objc.dg/bitfield-5.m: New.
! 	* objc.dg/comp-types-10.m: New.
! 	* objc.dg/comp-types-9.m: New.
! 	* objc.dg/layout-1.m: New.
! 	* objc.dg/objc-gc-4.m: New.
! 	* objc.dg/try-catch-9.m: New.
! 	* objc.dg/class-protocol-1.m: Tweak diagnostics.
! 	* objc.dg/comp-types-1.m: Likewise.
! 	* objc.dg/comp-types-[5-6].m: Likewise.
! 	* objc.dg/method-9.m: Likewise.
! 
! 2005-05-24  Janis Johnson  <janis187@us.ibm.com>
! 
! 	* gcc.dg/altivec-vec-merge.c: Make test usable on GNU/Linux targets
! 	and on hardware without VMX support.
! 
! 	* gcc.dg/altivec-vec-merge.c: Renamed from ppc-vec-merge.c.
! 
! 	* gcc.dg/ppc64-abi-2.c: Remove code that is now invalid.
! 
! 	* lib/profopt.exp (dg-final-generate, dg-final-use,
! 	profopt-final-code, profopt-get-options): New.
! 	(profopt-execute): Process test directives.
! 
! 	* lib/gcc-dg.exp (cleanup-ipa-dump): New.
! 	(cleanup-coverage-files, cleanup-repo-files, cleanup-rtl-dump,
! 	cleanup-tree-dump, cleanup-saved-temps): Update comments.
! 
! 2005-05-24  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR C++/21645
! 	* g++.dg/init/ctor5.C: New test.
! 
! 2005-05-24  Ira Rosen  <irar@il.ibm.com>
! 
! 	* gcc.dg/vect/vect-none.c: Split into vect-106.c, vect-107.c,
! 	vect-108.c, vect-109.c, vect-110.c, vect-111.c, vect-112.c,
! 	vect-113.c, vect-114.c.
! 
! 2005-05-23  Adam Nemet  <anemet@lnxw.com>
! 
! 	* gcc.dg/const-elim-1.c: Remove xfails.
! 
! 2005-05-23  Jeff Law  <law@redhat.com>
! 
! 	* gcc.c-torture/compile/pr21638.c: New test.
! 	* gcc.c-torture/compile/20050520-1.c: New test.
! 
! 2005-05-23  Nick Clifton  <nickc@redhat.com>
! 
! 	* gcc.c-torture/execute/20020720-1.x: Fix m32r target selector to
! 	be a proper triple, ie: m32r*-*-*.
! 	* g++.old-deja/g++.jason/thunk3.C: Likewise.
  
  2004-05-21  Andrew Pinski  <pinskia@physics.uc.edu>
  
***************
*** 1241,1295 ****
  	* gcc.c-torture/compile/pr21293.c: New test.
  	* gcc.c-torture/execute/pr21331.c: New test.
  
! 2005-05-20  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline:
! 	PR libfortran/19106
! 	* gfortran.fortran-torture/execute/intrinsic_mmloc.f90:
! 	Add tests with mask generated by expression.
! 	* gfortran.fortran-torture/execute/intrinsic_mmval.f90:  Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_product.f90:  Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_sum.f90:  Likewise.
  
! 	PR libfortran/19014
! 	* gfortran.fortran-torture/execute/intrinsic_anyall.f90:
! 	Added test for callee-allocated arrays with write statements.
! 	* gfortran.fortran-torture/execute/intrinsic_count.f90: Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_mmloc.f90: Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
  
  
! 2005-05-20  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
  
! 	Friend class name lookup 5/n
! 	PR c++/1016
! 	* g++.dg/lookup/hidden-class1.C: New test.
! 	* g++.dg/lookup/hidden-class2.C: Likewise.
! 	* g++.dg/lookup/hidden-class3.C: Likewise.
! 	* g++.dg/lookup/hidden-class4.C: Likewise.
! 	* g++.dg/lookup/hidden-class5.C: Likewise.
! 	* g++.dg/lookup/hidden-class6.C: Likewise.
! 	* g++.dg/lookup/hidden-class7.C: Likewise.
! 	* g++.dg/lookup/hidden-class8.C: Likewise.
! 	* g++.dg/lookup/hidden-class9.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class1.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class2.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class3.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class4.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class5.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class6.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class7.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class8.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class9.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class10.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class11.C: Likewise.
  
! 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	PR libfortran/21127
! 	* gfortran.dg/reshape-complex.f90:  New test.
  
  2005-05-19  Jakub Jelinek  <jakub@redhat.com>
  
--- 6768,6801 ----
  	* gcc.c-torture/compile/pr21293.c: New test.
  	* gcc.c-torture/execute/pr21331.c: New test.
  
! 2004-05-20  Richard Henderson  <rth@redhat.com>
  
! 	* g++.dg/other/stdarg3.C: Spell "hpux*" correctly.
  
! 2005-05-20  Ziemowit Laski  <zlaski@apple.com>
  
+ 	* obj-c++-dg.exp: Add.
+ 	* obj-c++.exp: Add.
+ 	* obj-c++.dg/dg.exp: Add.
  
! 2005-05-20  Kazuhiro Inaoka <inaoka.kazuhiro@renesas.com>
  
! 	* g++.old-deja/g++.jason/thunk3.C: XFAIL on m32r*-*.
! 	* gcc.c-torture/execute/20020720-1.x: Add xfail for m32r*-*.
  
! 2005-05-20  Bjoern Haase <bjoern.m.haase@web.de>
  
! 	* gcc.c-torture/execute/20020720-1.x: Add xfail for avr-*-*.
! 
! 2004-05-19  Richard Henderson  <rth@redhat.com>
! 
! 	* g++.dg/other/stdarg3.C: Only use -mlp64 for hpux.
! 
! 2005-05-19  Janis Johnson  <janis187@us.ibm.com>
! 
! 	* gcc.dg/altivec-21.c: Use dg-error only for ilp32.
! 
! 	* gcc.dg/vect/vect-dv-2.c: Remove dg-do directive.
  
  2005-05-19  Jakub Jelinek  <jakub@redhat.com>
  
***************
*** 1304,1330 ****
--- 6810,6883 ----
  	* gcc.dg/c99-math-double-1.c: Likewise.
  	* gcc.dg/c99-math-long-double-1.c: Likewise.
  
+ 2005-05-18  Richard Henderson  <rth@redhat.com>
+ 
+ 	* gcc.dg/tree-ssa/20031015-1.c: Expect one V_MUST_DEF.
+ 
+ 2005-05-18  Devang Patel  <dpatel@apple.com>
+ 
+ 	* g++.dg/opt/20050511-1.C: New test.
+ 
+ 2005-05-18  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	PR libfortran/21127
+ 	* gfortran.dg/reshape-complex.f90:  New test.
+ 
+ 2005-05-18  Erik Edelmann  <erik.edelmann@iki.fi>
+ 
+ 	* gfortran.dg/array_constructor_1.f90: New test.
+ 	* gfortran.dg/array_constructor_2.f90: New test.
+ 
  2005-05-18  Feng Wang  <fengwang@nudt.edu.cn>
  
  	PR fortran/20954
  	* gfortran.dg/pr20954.f: New test.
  
+ 2005-05-17  Mike Stump  <mrs@apple.com>
+ 
+ 	Yet more Objective-C++...
+ 
+ 	* objc.dg/method-5.m: Update.
+ 	* objc.dg/method-6.m: Update.
+ 	* objc.dg/method-7.m: Update.
+ 	* objc.dg/method-9.m: Update.
+ 	* objc.dg/try-catch-2.m: Update.
+ 
  2005-05-17  Mark Mitchell  <mark@codesourcery.com>
  
  	* gcc.dg/compat/struct-layout-1_generate.c (iterative_hash):
  	Remove little-endian optimizations.
  
+ 2005-05-17  Jeff Law  <law@redhat.com>
+ 
+ 	* g++.dg/tree-ssa/pr14814.C: New test.
+ 	* gcc.dg/tree-ssa/pr14814.C: New test.
+ 	* gcc.dg/tree-ssa/pr17141-1.C: New test.
+ 	* gcc.dg/tree-ssa/pr17141-2.C: New test.
+ 
  2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
  
  	* gcc.dg/compat/generate-random.c: Do not include
  	libiberty.h.
  	* gcc.dg/compat/generate-random_r.c: Likewise.
  
+ 2005-05-17  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	* gcc.dg/fold-div-1.c, gcc.dg/recip-1.c, gcc.dg/recip-2.c: New.
+ 
+ 2005-05-17  Richard Guenther  <rguenth@gcc.gnu.org>
+ 
+ 	PR middle-end/21595
+ 	* g++.dg/tree-ssa/builtin1.C: New testcase.
+ 
  2005-05-17  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/21454
  	* g++.dg/opt/const4.C: New test.
  
+ 	PR middle-end/21492
+ 	* g++.dg/opt/crossjump1.C: New test.
+ 
  	PR tree-optimization/21610
  	* gcc.c-torture/compile/20050516-1.c: New test.
  
***************
*** 1334,1339 ****
--- 6887,6897 ----
  	* gfortran.fortran-torture/execute/where_7.f90: New test.
  	* gfortran.fortran-torture/execute/where_8.f90: New test.
  
+ 2005-05-16  Richard Henderson  <rth@redhat.com>
+ 
+ 	* lib/target-supports.exp (check_effective_target_vect_int_mul): Add
+ 	i?86 and x86_64.
+ 
  2005-05-16  Mark Mitchell  <mark@codesourcery.com>
  
  	* gcc.dg/compat/generate-random.c (config.h): Do not include.
***************
*** 1378,1425 ****
  	PR fortran/17432
  	* gfortran.dg/assign_4.f: New test.
  
  2005-05-13  Julian Brown  <julian@codesourcery.com>
  
  	* gcc.c-torture/execute/20041218-2.c: Add __attribute__((packed)).
  	* gcc.dg/intmax_t-1.c: Disable on *arm*-*-*elf*.
  
! 2005-05-12  Nathan Sidwell  <nathan@codesourcery.com>
  
! 	* g++.dg/template/spec23.C: Fix dg-error text.
  
  2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/21260
  	* gfortran.dg/hollerith_1.f90: New test.
  
! 2005-05-11  James A. Morrison  <phython@gcc.gnu.org>
  
! 	PR middle-end/21085
! 	* gcc.dg/pr21085.c: New test.
  
  2005-05-11  Bud Davis  <bdavis@gfortran.org>
  
  	* gfortran.dg/dev_null.f90: New test.
  
  2005-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/21471
  	* gfortran.dg/append-1.f90: New test.
  
! 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	* gfortran.dg/return_1.f90: New test.
  
! 2005-05-10  Nathan Sidwell  <nathan@codesourcery.com>
  
! 	PR c++/20723
! 	* g++.dg/template/spec22.C: New.
! 	* g++.dg/template/spec23.C: New.
  
! 	PR c++/19203, DR 214
! 	* g++.dg/parse/ambig3.C: Not ambiguous.
! 	* g++.dg/template/spec20.C: New.
! 	* g++.dg/template/spec21.C: New.
  
  2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
  
--- 6936,7033 ----
  	PR fortran/17432
  	* gfortran.dg/assign_4.f: New test.
  
+ 2005-05-14  Kazu Hirata  <kazu@cs.umass.edu>
+ 
+ 	PR tree-optimization/21563
+ 	* gcc.dg/tree-ssa/pr21563.c: New.
+ 
+ 2005-05-14  Jan Hubicka  <jh@suse.cz>
+ 
+ 	* gcc.dg/noreturn-7.c: Allow control reaches warning.
+ 
+ 2005-05-14  Richard Guenther  <rguenth@gcc.gnu.org>
+ 
+ 	* g++.dg/tree-ssa/tmmti-2.C: New testcase.
+ 
  2005-05-13  Julian Brown  <julian@codesourcery.com>
  
  	* gcc.c-torture/execute/20041218-2.c: Add __attribute__((packed)).
  	* gcc.dg/intmax_t-1.c: Disable on *arm*-*-*elf*.
  
! 2005-05-13  Jan Hubicka  <jh@suse.cz>
  
! 	* gcc.dg/builtins-43.c: Use gimple dump instead of generic.
! 	* gcc.dg/fold-xor-?.c: Likewise.
! 	* gcc.dg/pr15784-?.c: Likewise.
! 	* gcc.dg/pr20922-?.c: Likewise.
! 	* gcc.dg/tree-ssa/20050128-1.c: Likewise.
! 	* gcc.dg/tree-ssa/pr17598.c: Likewise.
! 	* gcc.dg/tree-ssa/pr20470.c: Likewise.
  
  2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/21260
  	* gfortran.dg/hollerith_1.f90: New test.
  
! 2005-05-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	* gfortran.dg/func_result_2.f90: New test.
  
  2005-05-11  Bud Davis  <bdavis@gfortran.org>
  
  	* gfortran.dg/dev_null.f90: New test.
  
+ 2005-05-11  Richard Earnshaw  <richard.earnshaw@arm.com>
+ 
+ 	* gcc.dg/arm-vfp1.c: Revert last change.
+ 
+ 2005-05-11  Richard Guenther  <rguenth@gcc.gnu.org>
+ 
+ 	PR middle-end/19807
+ 	PR tree-optimization/19639
+ 	* g++.dg/tree-ssa/pr19807.C: New testcase.
+ 
  2005-05-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/21471
  	* gfortran.dg/append-1.f90: New test.
  
! 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
  
! 	* gcc.dg/pr18501.c: XFAIL.
! 	* gcc.dg/tree-ssa/loop-4.c: Fix expected pattern.
! 	* gcc.dg/tree-ssa/pr20913.c: Change to link-time test.
! 	* gcc.dg/tree-ssa/ssa-ccp-2.c: Change to a .optimized scan.
! 	* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
! 	* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
! 	* gcc.dg/tree-ssa/ssa-dom-ccp-1.c: Likewise.
! 	* gcc.dg/tree-ssa/ssa-pre-7.c: Change to a .fre scan.
! 	* gcc.dg/tree-ssa/ssa-pre-8.c: Likewise.
  
! 2005-05-10  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
! 	PR fortran/20178
! 	* gfortran.dg/f2c_1.f90, gfortran.dg/f2c_2.f90,
! 	gfortran.dg/f2c_3.f90: New tests.
  
! 	* gfortran.dg/return_1.f90: Fix dg annotation.
! 
! 2005-05-10  Diego Novillo  <dnovillo@redhat.com>
! 
! 	* gcc.c-torture/compile/20050510-1.c: New test.
! 
! 2005-05-10  Mark Mitchell  <mark@codesourcery.com>
! 
! 	* gcc.dg/arm-vfp1.c: Remove test for fnegs.
! 
! 2005-05-10  Bob Wilson  <bob.wilson@acm.org>
! 
! 	* gcc.dg/const-elim-1.c: Remove xfail for xtensa-*-*.
! 
! 2005-05-10  Gabor Loki <loki@gcc.gnu.org>
! 
! 	PR c/17913
! 	* gcc.c-torture/compile/pr17913.c: Computed jump test for PR17913
  
  2005-05-10  Joseph S. Myers  <joseph@codesourcery.com>
  
***************
*** 1427,1442 ****
  	* gcc.dg/redecl-11.c, gcc.dg/redecl-12.c, gcc.dg/redecl-13.c,
  	gcc.dg/redecl-14.c, gcc.dg/redecl-15.c: New tests.
  
  2005-05-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/19155
  	* gfortran.dg/pr19155.f: New test.
  
! 2005-05-06  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline:
! 	PR libfortran/18958
! 	* gfortran.dg/eoshift.f90:  New test case.
  
  2005-05-06  Mark Mitchell  <mark@codesourcery.com>
  
--- 7035,7085 ----
  	* gcc.dg/redecl-11.c, gcc.dg/redecl-12.c, gcc.dg/redecl-13.c,
  	gcc.dg/redecl-14.c, gcc.dg/redecl-15.c: New tests.
  
+ 2005-05-10  Ben Elliston  <bje@au.ibm.com>
+ 
+ 	PR debug/16676
+ 	* gcc.dg/debug/pr16676.c: New test.
+ 
+ 2005-05-10  Kazu Hirata  <kazu@cs.umass.edu>
+ 
+ 	PR testsuite/21443
+ 	* gcc.dg/tree-ssa/20030731-2.c, gcc.dg/tree-ssa/20030917-1.c,
+ 	gcc.dg/tree-ssa/20030917-3.c, gcc.dg/tree-ssa/ssa-ccp-1.c,
+ 	gcc.dg/tree-ssa/ssa-ccp-2.c, gcc.dg/tree-ssa/ssa-ccp-3.c,
+ 	gcc.dg/tree-ssa/ssa-ccp-7.c, gcc.dg/tree-ssa/ssa-ccp-9.c:
+ 	Change -O1 to -O2.
+ 	* gcc.dg/tree-ssa/20040721-1.c: Change -O1 to -O2.  Add
+ 	-fno-tree-dominator-opts.
+ 
+ 2005-05-09  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+ 
+ 	* gfortran.dg/return_1.f90: New test.
+ 
+ 2005-05-09  J"orn Rennecke  <joern.rennecke@st.com>
+ 
+ 	* gcc.dg/pr15784-3.c: Add -fno-finite-math-only option.
+ 
+ 	* gcc.dg/20021029-1.c: For sh64*-*-*, add -mpt-fixed.
+ 
+ 2005-05-09  Nathan Sidwell  <nathan@codesourcery.com>
+ 
+ 	PR c++/21427
+ 	* g++.dg/inherit/covariant13.C: New.
+ 
  2005-05-09  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/19155
  	* gfortran.dg/pr19155.f: New test.
  
! 2005-05-08  Roger Sayle  <roger@eyesopen.com>
  
! 	PR inline-asm/8788
! 	* gcc.dg/pr8788-1.c: New testcase.
! 
! 2005-05-08  Richard Sandiford  <rsandifo@redhat.com>
! 
! 	PR target/21416
! 	* gcc.target/mips/fpcmp-[12].c: New tests.
  
  2005-05-06  Mark Mitchell  <mark@codesourcery.com>
  
***************
*** 1447,1469 ****
  	(check_fork_available): Likewise.
  	(check_mkfifo_available): Likewise.
  
! 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
  
! 	PR rtl-optimization/21330
! 	* gcc.c-torture/execute/20050502-1.c: New test.
  
  	PR c++/20961
  	* g++.dg/ext/weak3.C: New test.
  
- 2005-05-05  Jeff Law  <law@redhat.com>
- 
- 	* gcc.c-torture/compile/pr21380.c: New test.
- 
  2005-05-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21352
  	* g++.dg/template/crash37.C: New test.
  
  2005-05-04  Jakub Jelinek  <jakub@redhat.com>
  
  	PR middle-end/21265
--- 7090,7128 ----
  	(check_fork_available): Likewise.
  	(check_mkfifo_available): Likewise.
  
! 2005-05-06  Jeff Law  <law@redhat.com>
  
! 	* gcc.c-torture/compile/pr21380.c: New test.
! 
! 2005-05-06  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/20961
  	* g++.dg/ext/weak3.C: New test.
  
  2005-05-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21352
  	* g++.dg/template/crash37.C: New test.
  
+ 2005-05-05  Paul Brook  <paul@codesourcery.com>
+ 
+ 	* gcc.dg/arm-g2.c: Use effective-target arm32.
+ 	* gcc.dg/arm-mmx-1.c: Ditto.
+ 	* gcc.dg/arm-scd42-2.c: Ditto.
+ 	* gcc.dg/arm-vfp1.c: Ditto.
+ 	* lib/target-supports.exp (check_effective_target_arm32): New
+ 	function.
+ 
+ 2005-05-04  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	PR libfortran/21354
+ 	gfortran.dg/in_pack_rank7.f90:  New test.
+ 
+ 2005-05-03  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR middle-end/15618
+ 	* gcc.dg/tree-ssa/bool-[1-9].c: New tests.
+ 
  2005-05-04  Jakub Jelinek  <jakub@redhat.com>
  
  	PR middle-end/21265
***************
*** 1472,1510 ****
  	PR rtl-optimization/21239
  	* gcc.dg/i386-sse-11.c: New test.
  
  	PR target/21297
  	* gcc.c-torture/execute/20050502-2.c: New test.
  
! 2005-05-03  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	Backport from mainline:
! 	* eor_handling_1.f90: New test case.
! 	* eor_handling_2.f90: New test case.
! 	* eor_handling_3.f90: New test case.
! 	* eor_handling_4.f90: New test case.
! 	* eor_handling_5.f90: New test case.
! 	* noadv_size.f90: New test case.
! 	* pad_no.f90: New test case.
  
! 2005-05-02  Mark Mitchell  <mark@codesourcery.com>
  
! 	Backport:
! 	2005-03-25  Mark Mitchell  <mark@codesourcery.com>
! 	* lib/g++.exp (g++_link_flags): Use gcc-set-multilib-library-path.
! 	(g++_init): Make sure that CXXFLAGS is set.
! 	* lib/gcc-defs.exp (gcc-set-multilib-library-path): New function.
! 	* lib/gcc-dg.exp: Use gcc-set-multilib-library-path.
! 	* lib/gfortran.exp (gfortran_link_flags): Likewise.
! 	* lib/objc.exp (objc_init): Likewise.
! 	* lib/treelang.exp (treelang_init): Likewise.
! 	2005-03-23  Mark Mitchell  <mark@codesourcery.com>
! 	* lib/target-supports.exp (check_iconv_available): Default
! 	libiconv to -liconv, if there is no definition.
  
! 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
  
! 	PR target/16888
! 	* gcc.target/i386/asm-1.c: New test.
  
  2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
  
--- 7131,7175 ----
  	PR rtl-optimization/21239
  	* gcc.dg/i386-sse-11.c: New test.
  
+ 2005-05-03  Alexandre Oliva  <aoliva@redhat.com>
+ 
+ 	PR target/16888
+ 	* gcc.target/i386/asm-1.c: New test.
+ 
+ 2005-05-03  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR rtl-optimization/21330
+ 	* gcc.c-torture/execute/20050502-1.c: New test.
+ 
  	PR target/21297
  	* gcc.c-torture/execute/20050502-2.c: New test.
  
! 2005-05-03  Uros Bizjak  <uros@kss-loka.si>
  
! 	PR middle-end/21282
! 	* gcc.dg/pr21282.c: New.
  
! 2005-05-03  David Billinghurst  <David.Billinghurst@riotinto.com>
  
! 	* gcc.dg/vect/pr20122.c:  Clean up .vect file.
! 	* gcc.dg/vect/vect-92.c: Likewise
! 	* gcc.dg/vect/vect-93.c: Likewise
! 	* gcc.dg/vect/vect-dv-1.c: Likewise
! 	* gcc.dg/vect/vect-dv-2.c: Likewise
! 	* gcc.dg/vect/vect-ifcvt-10.c: Likewise
  
! 2005-05-03  David Billinghurst  <David.Billinghurst@riotinto.com>
  
! 	* gfortran.dg/vect/vect-1.f90:  Clean up .vect file.
! 	* gfortran.dg/vect/vect-2.f90:  Likewise
! 	* gfortran.dg/vect/vect-3.f90:  Likewise
! 	* gfortran.dg/vect/vect-4.f90:  Likewise
! 	* gfortran.dg/vect/vect-5.f90:  Likewise
! 
! 2005-05-02  Geoffrey Keating  <geoffk@apple.com>
! 
! 	PR target/20813
! 	* gcc.dg/rs6000-fpint-2.c: New.
  
  2005-05-02  Joseph S. Myers  <joseph@codesourcery.com>
  
***************
*** 1514,1533 ****
  	gcc.dg/pr15698-4.c, gcc.dg/pr15698-5.c, gcc.dg/pr15698-6.c,
  	gcc.dg/pr15698-7.c, pr15698-8.c: New tests.
  
  2005-05-02  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/15875
  	* g++.dg/template/ptrmem14.C: New test.
  
! 2005-05-01  Michael Matz  <matz@suse.de>
  
  	PR c++/19542
  	* g++.dg/warn/sentinel.C: New testcase for __null sentinels added.
  
! 2005-04-29  Michael Matz  <matz@suse.de>
  
  	* gcc.dg/inline-mcpy.c: New test.
  
  2005-04-29  Jakub Jelinek  <jakub@redhat.com>
  
  	PR fortran/13082
--- 7179,7240 ----
  	gcc.dg/pr15698-4.c, gcc.dg/pr15698-5.c, gcc.dg/pr15698-6.c,
  	gcc.dg/pr15698-7.c, pr15698-8.c: New tests.
  
+ 2005-05-02  Kazu Hirata  <kazu@cs.umass.edu>
+ 
+ 	PR tree-optimization/21294
+ 	* gcc.dg/tree-ssa/pr21294.c: New.
+ 
+ 2005-05-02  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	* gcc.dg/altivec-3.c (vec_store): Do not use the old
+ 	__builtin_altivec_st_internal_4si built-in.
+ 
  2005-05-02  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/15875
  	* g++.dg/template/ptrmem14.C: New test.
  
! 2005-05-02  Paul Brook  <paul@codesourcery.com>
! 
! 	* gcc.c-torture/execute/20000523-1.c: Fix bytes/bits thinko.
! 
! 2005-05-02  Michael Matz  <matz@suse.de>
  
  	PR c++/19542
  	* g++.dg/warn/sentinel.C: New testcase for __null sentinels added.
  
! 2005-05-01  Mark Mitchell  <mark@codesourcery.com>
! 
! 	* g++.dg/cpp/weak.C: New test.
! 
! 2005-05-01  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/loop-8.c: New test.
! 
! 2005-04-30  Michael Maty  <matz@suse.de>
  
  	* gcc.dg/inline-mcpy.c: New test.
  
+ 2005-04-30  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	PR libfortran/18958
+ 	* gfortran.dg/eoshift.f90:  New test case.
+ 
+ 2005-04-30  Paul Thomas  <pault@gcc.gnu.org>
+ 
+ 	PR libfortran/18857
+ 	* gfortran.dg/matmul_1.f90: New test.
+ 
+ 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
+ 
+ 	PR tree-optimization/21030
+ 	* gcc.dg/tree-ssa/pr21030.c: New.
+ 
+ 2005-04-29  Devang Patel  <dpatel@apple.com>
+ 
+ 	PR tree-optimization/21272
+ 	* gcc.dg/vect/vect-ifcvt-10.c: New test.
+ 
  2005-04-29  Jakub Jelinek  <jakub@redhat.com>
  
  	PR fortran/13082
***************
*** 1545,1564 ****
  
  	* gfortran.fortran-torture/execute/entry_8.f90: New test.
  
- 2005-04-29  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
- 
- 	PR fortran/16861
- 	* gfortran.dg/pr16861.f90: New test.
- 
  2005-04-29  Paul Brook   <paul@codesourcery.com>
  
  	* gfortran.dg/entry_3.f90: New test.
  
! 2004-04-29  David Billinghurst (David.Billinghurst@riotinto.com)
  
  	* lib/fortran-torture.exp (fortran-torture.exp): Catch
  	error if file cannot be deleted.
  
  2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR fortran/20865
--- 7252,7291 ----
  
  	* gfortran.fortran-torture/execute/entry_8.f90: New test.
  
  2005-04-29  Paul Brook   <paul@codesourcery.com>
  
  	* gfortran.dg/entry_3.f90: New test.
  
! 2005-04-29  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	* gfortran.dg/implicit_4.f90: New test.
! 
! 2005-04-28  Bob Wilson  <bob.wilson@acm.org>
! 
! 	* lib/target-supports.exp (check_profiling_available): Return
! 	false for xtensa-*-elf.
! 
! 2005-04-29  David Billinghurst (David.Billinghurst@riotinto.com)
  
  	* lib/fortran-torture.exp (fortran-torture.exp): Catch
  	error if file cannot be deleted.
  
+ 2005-04-28  Kazu Hirata  <kazu@cs.umass.edu>
+ 
+ 	* g++.dg/tree-ssa/pr18178.C, gcc.dg/tree-ssa/20030821-1.c,
+ 	gcc.dg/tree-ssa/20050314-1.c, gcc.dg/tree-ssa/alias-1.c,
+ 	gcc.dg/tree-ssa/phi-opt-1.c, gcc.dg/tree-ssa/phi-opt-2.c,
+ 	gcc.dg/tree-ssa/phi-opt-3.c, gcc.dg/tree-ssa/phi-opt-4.c,
+ 	gcc.dg/tree-ssa/phi-opt-5.c, gcc.dg/tree-ssa/pr18133-1.c,
+ 	gcc.dg/tree-ssa/pr18133-2.c, gcc.dg/tree-ssa/pr18134.c,
+ 	gcc.dg/tree-ssa/pr20470.c, gcc.dg/tree-ssa/pr20657.c,
+ 	gcc.dg/tree-ssa/pr20702.c, gcc.dg/tree-ssa/pr20913.c,
+ 	gcc.dg/tree-ssa/pr21001.c, gcc.dg/tree-ssa/stdarg-1.c,
+ 	gcc.dg/tree-ssa/stdarg-2.c, gcc.dg/tree-ssa/stdarg-3.c,
+ 	gcc.dg/tree-ssa/stdarg-4.c, gcc.dg/tree-ssa/stdarg-5.c,
+ 	gcc.dg/tree-ssa/structopt-1.c, gcc.dg/tree-ssa/structopt-2.c,
+ 	gcc.dg/tree-ssa/structopt-3.c: Use cleanup-tree-dump.
+ 
  2005-04-28  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR fortran/20865
***************
*** 1573,1588 ****
  	PR c/21159
  	* gcc.dg/void-cast-1.c: New test.
  
! 2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	PR libfortran/20950
! 	* gfortran.dg/pr20950.f: New test.
  
  2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR fortran/21177
  	* gfortran.dg/pr21177.f90: New test.
  
  2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
  
  	PR c/21213
--- 7300,7330 ----
  	PR c/21159
  	* gcc.dg/void-cast-1.c: New test.
  
! 2005-04-27  Paolo Bonzini  <bonzini@gnu.org>
  
! 	* gcc.dg/tree-ssa/gen-vect-25.c: Make more portable.
  
  2005-04-27  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR fortran/21177
  	* gfortran.dg/pr21177.f90: New test.
  
+ 2005-04-27  Zdenek Dvorak  <dvorakz@suse.cz>
+ 
+ 	PR tree-optimization/21171
+ 	* gcc.dg/tree-ssa/pr21171.c: New test.
+ 
+ 2004-04-27  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	* gcc.dg/tree-ssa/gen-vect-11.c, gcc.dg/tree-ssa/gen-vect-11a.c,
+ 	gcc.dg/tree-ssa/gen-vect-11b.c, gcc.dg/tree-ssa/gen-vect-11c.c,
+ 	gcc.dg/tree-ssa/gen-vect-2.c, gcc.dg/tree-ssa/gen-vect-25.c,
+ 	gcc.dg/tree-ssa/gen-vect-26.c, gcc.dg/tree-ssa/gen-vect-28.c,
+ 	gcc.dg/tree-ssa/gen-vect-32.c: New.
+ 	* gcc.dg/vect/vect-82.c, gcc.dg/vect/vect-83.c: Fix dg-final.
+ 	* gcc.dg/vect/vect-82_64.c, gcc.dg/vect/vect-83_64.c: Remove xfail,
+ 	don't run on PPC32.
+ 
  2005-04-27  Joseph S. Myers  <joseph@codesourcery.com>
  
  	PR c/21213
***************
*** 1598,1607 ****
  	gcc.dg/format/gcc_diag-6.c, gcc.dg/format/gcc_diag-7.c ,
  	gcc.dg/format/gcc_diag-8.c, gcc.dg/format/gcc_diag-9.c: New tests.
  
! 2005-04-25  Alexandre Oliva  <aoliva@redhat.com>
  
! 	PR c++/21087
! 	* g++.dg/lookup/builtin2.C: New test.
  
  2005-04-25  Paul Brook  <paul@codesourcery.com>
  	Steven G. Kargl  <kargls@comcast.net>
--- 7340,7382 ----
  	gcc.dg/format/gcc_diag-6.c, gcc.dg/format/gcc_diag-7.c ,
  	gcc.dg/format/gcc_diag-8.c, gcc.dg/format/gcc_diag-9.c: New tests.
  
! 2005-04-26  Jeff Law  <law@redhat.com>
  
! 	* gcc.gc/tree-ssa/ssa-dce-1.c: New test.
! 	* gcc.gc/tree-ssa/ssa-dce-2.c: New test.
! 	* gcc.gc/tree-ssa/ssa-dce-3.c: New test.
! 	* gcc.gc/tree-ssa/ssa-dce-4.c: New test.
! 	* gcc.gc/tree-ssa/ssa-dce-5.c: New test.
! 	* gcc.gc/tree-ssa/ssa-dce-6.c: New test.
! 	* gcc.gc/tree-ssa/ssa-dce-7.c: New test.
! 
! 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
! 
! 	PR tree-optimization/17598
! 	* gcc.dg/tree-ssa/pr17598.c: New testcase.
! 
! 2005-04-25  Mike Stump  <mrs@apple.com>
! 
! 	* objc.dg/fix-and-continue-1.m: Add.
! 
! 2005-04-25  Roger Sayle  <roger@eyesopen.com>
! 
! 	PR c++/20995
! 	* g++.dg/opt/pr20995-1.C: New test case.
! 
! 2005-04-25  Devang Patel <dpatel@apple.com>
! 
! 	* gcc.dg/stabs-attrib-vect-darwin.c: New test.
! 
! 2005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR testsuite/21062
! 	* g++.dg/opt/alias2.C (printf): Correct the prototype.
! 
! 2005-04-25  Andrew Pinski  <pinskia@physics.uc.edu>
! 
! 	PR C++/21188
! 	* g++.dg/opt/rtti2.C: New test.
  
  2005-04-25  Paul Brook  <paul@codesourcery.com>
  	Steven G. Kargl  <kargls@comcast.net>
***************
*** 1609,1717 ****
  	PR fortran/20879
  	* gfortran.dg/ichar_1.f90: New file.
  
  2005-04-24  Per Bothner  <per@bothner.com>
  	    Devang Patel  <dpatel@apple.com>
  
  	PR preprocessor/20907
  	* gcc.dg/cpp/very-long-comment.c: New test.
  
- 2005-04-24  Laurent GUERBY  <laurent@guerby.net>
- 
- 	* ada/acats/run_all.sh: Use sync when executable not present.
- 
  2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/20059
  	* gfortran.dg/common_5.f: New test.
  
! 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
  
! 	* gcc.dg/compat/struct-layout-1_generate.c: In arrays avoid types
! 	where sizeof (type) < __alignof__ (type).
! 	* gcc.dg/compat/struct-layout-1.h: Likewise.
  
! 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
  
! 	PR gfortran/14569
! 	* gfortran.dg/wtruncate.f: New testcase.
! 	* gfortran.dg/wtruncate.f90: New testcase.
  
  2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
  
  	PR c/12913
  	* gcc.dg/c99-vla-jump-1.c, gcc.dg/c99-vla-jump-2.c,
  	gcc.dg/c99-vla-jump-3.c, gcc.dg/c99-vla-jump-4.c,
  	gcc.dg/c99-vla-jump-5.c: New tests.
  
! 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	* gcc.dg/weak/weak-13.c: New test.
  
! 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.
--- 7384,7938 ----
  	PR fortran/20879
  	* gfortran.dg/ichar_1.f90: New file.
  
+ 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
+ 
+ 	PR middle-end/20991
+ 	* g++.dg/opt/pr20991.C: New test.
+ 
+ 	* gcc.dg/compat/struct-layout-1_generate.c: In arrays avoid types
+ 	where sizeof (type) < __alignof__ (type).
+ 	* gcc.dg/compat/struct-layout-1.h: Likewise.
+ 
  2005-04-24  Per Bothner  <per@bothner.com>
  	    Devang Patel  <dpatel@apple.com>
  
  	PR preprocessor/20907
  	* gcc.dg/cpp/very-long-comment.c: New test.
  
  2005-04-24  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
  	PR fortran/20059
  	* gfortran.dg/common_5.f: New test.
  
! 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
  
! 	PR middle-end/21082
! 	* g++.dg/tree-ssa/pr21082.C: New testcase.
  
! 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
  
! 	* gcc.dg/vect/vect-99.c: New test.
! 
! 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
! 
! 	* gcc.dg/tree-ssa/ltrans-4.c: Fix typo in dg-options.
! 
! 2005-04-22  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/uninit-5.c: Remove xfails.
! 	* gcc.dg/tree-ssa/20030711-1.c:Reduce the number of
! 	conditionals and loads.
! 
! 2005-04-22  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/20074
! 	PR libfortran/20436
! 	PR libfortran/21108
! 	* gfortran.dg/nested_reshape.f90: new test
! 	* gfortran.dg/reshape-alloc.f90: new test
! 	* gfortran.dg/reshape.f90: new test
! 
! 2005-04-22  Mark Mitchell  <mark@codesourcery.com>
! 
! 	* gcc.dg/arm-vfp1.c: Remove -ffast-math.
! 
! 	* gcc.dg/arm-vfp1.c: New test.
! 
! 2005-04-22  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	PR c++/21087
! 	* g++.dg/lookup/builtin2.C: New test.
  
  2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
  
+ 	* gcc.dg/weak/weak-13.c: New test.
+ 
+ 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
+ 
+ 	* lib/target-supports.exp (check_effective_target_sync_int_long):
+ 	Add powerpc*.
+ 
+ 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
+ 
+ 	* gcc.target/mips/branch-1.c: New test.
+ 
+ 2005-04-21  Richard Henderson  <rth@redhat.com>
+ 
+ 	* gcc.dg/vect/vect-85.c: Don't xfail on alpha.
+ 	* gcc.dg/vect/vect-86.c: Likewise.
+ 	* gcc.dg/vect/vect-87.c: Likewise.
+ 	* gcc.dg/vect/vect-88.c: Likewise.
+ 
+ 2005-04-21  Devang Patel  <dpatel@apple.com>
+ 
+ 	PR optimization/20994
+ 	* gcc.dg/tree-ssa/ifc-3.c: New test.
+ 
+ 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
+ 
  	PR c/12913
  	* gcc.dg/c99-vla-jump-1.c, gcc.dg/c99-vla-jump-2.c,
  	gcc.dg/c99-vla-jump-3.c, gcc.dg/c99-vla-jump-4.c,
  	gcc.dg/c99-vla-jump-5.c: New tests.
  
! 2005-04-19  Richard Henderson  <rth@redhat.com>
  
! 	* lib/target-supports.exp (check_effective_target_vect_int_mult):
! 	Fix typo in exists check.
! 	(check_effective_target_sync_int_long): New.
! 	* gcc.dg/ia64-sync-1.c: Enable for all effective-target sync_int_long.
! 	* gcc.dg/ia64-sync-2.c: Likewise.
! 	* gcc.dg/ia64-sync-3.c: Likewise.
! 	* gcc.dg/ia64-sync-4.c: Likewise.
  
! 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* gcc.dg/fold-xor-1.c: New test.
! 	* gcc.dg/fold-xor-2.c: New test.
  
! 2005-04-19  James E. Wilson  <wilson@specifixinc.com>
  
! 	PR target/20670
! 	* g++.dg/eh/fp-regs.C: New test.
  
! 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	* gcc.dg/Wint-to-pointer-cast-1.c,
! 	gcc.dg/Wint-to-pointer-cast-2.c, gcc.dg/Wint-to-pointer-cast-3.c,
! 	gcc.dg/Wpointer-to-int-cast-1.c, gcc.dg/Wpointer-to-int-cast-2.c,
! 	gcc.dg/Wpointer-to-int-cast-3.c: New tests.
  
! 2005-04-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	PR fortran/16861
! 	* gfortran.dg/pr16861.f90: New test.
! 
! 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* gcc.dg/pr21085.c: New test.
! 
! 2005-04-18  Richard Sandiford  <rsandifo@redhat.com>
! 
! 	* gcc.target/mips/mips.exp: Minor formatting.  Call setup_mips_tests.
! 	(setup_mips_tests, dg-mips-options): New procedures.
! 	* gcc.target/mips/asm-1.c, gcc.target/mips/fix-vr4130-1.c,
! 	* gcc.target/mips/fix-vr4130-2.c, gcc.target/mips/fix-vr4130-3.c
! 	* gcc.target/mips/fix-vr4130-4.c, gcc.target/mips/mips-3d-1.c,
! 	* gcc.target/mips/mips-3d-2.c, gcc.target/mips/mips-3d-3.c,
! 	* gcc.target/mips/mips-3d-4.c, gcc.target/mips/mips-3d-5.c,
! 	* gcc.target/mips/mips-3d-6.c, gcc.target/mips/mips-3d-7.c,
! 	* gcc.target/mips/mips-3d-8.c, gcc.target/mips/mips-3d-9.c,
! 	* gcc.target/mips/mips-3d-2.c, gcc.target/mips/mips-3d-3.c,
! 	* gcc.target/mips/mips-ps-1.c, gcc.target/mips/mips-ps-2.c,
! 	* gcc.target/mips/mips-ps-3.c, gcc.target/mips/mips-ps-4.c,
! 	* gcc.target/mips/mips-ps-type.c, gcc.target/mips/sb1-1.c: Use
! 	dg-mips-options instead of dg-options.  Remove now-redundant
! 	preprocessor guards.
! 	* gcc.dg/mips-args-1.c, gcc.dg/mips-args-2.c, gcc.dg/mips-args-3.c,
! 	* gcc.dg/mips-movcc-1.c, gcc.dg/mips-movcc-2.c, gcc.dg/mips-movcc-3.c,
! 	* gcc.dg/mips-nmadd-1.c, gcc.dg/mips-nmadd-2.c, gcc.dg/mips-rsqrt-1.c,
! 	* gcc.dg/mips-rsqrt-2.c, gcc.dg/mips-rsqrt-3.c, gcc.dg/vr-mult-1.c,
! 	* gcc.dg/vr-mult-2.c: Delete.
! 	* gcc.target/mips/args-1.c, gcc.target/mips/args-2.c,
! 	* gcc.target/mips/args-3.c, gcc.target/mips/movcc-1.c,
! 	* gcc.target/mips/movcc-2.c, gcc.target/mips/movcc-3.c,
! 	* gcc.target/mips/nmadd-1.c, gcc.target/mips/nmadd-2.c,
! 	* gcc.target/mips/rsqrt-1.c, gcc.target/mips/rsqrt-2.c,
! 	* gcc.target/mips/rsqrt-3.c, gcc.target/mips/vr-mult-1.c,
! 	* gcc.target/mips/vr-mult-2.c: New tests, based on the old gcc.dg ones.
! 
! 2005-04-18  Laurent GUERBY  <laurent@guerby.net>
! 
! 	* ada/acats/run_all.sh: Use sync when executable not present.
! 
! 2005-04-18  Devang Patel  <dpatel@apple.com>
! 
! 	* gcc.dg/vect/vect-11.c: Require effective target vect_int_mult.
! 	* gcc.dg/vect/vect-11a.c: New.
! 	* gcc.dg/vect/vect-none.c: Update.
! 	* lib/target-supports.exp (check_effective_target_vect_int_mult): New.
! 
! 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	PR tree-optimization/20922
! 	* gcc.dg/pr20922-1.c: New test.
! 	* gcc.dg/pr20922-2.c: New test.
! 	* gcc.dg/pr20922-3.c: New test.
! 	* gcc.dg/pr20922-4.c: New test.
! 	* gcc.dg/pr20922-5.c: New test.
! 	* gcc.dg/pr20922-6.c: New test.
! 
! 2005-04-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/20950
! 	* gfortran.dg/pr20950.f: New test.
! 
! 2005-04-18  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/19216
! 	* gfortran.dg/pr19216.f: New test.
! 
! 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	PR tree-optimization/21001
! 	* gcc.dg/tree-ssa/pr21001.c: New.
! 
! 2005-04-17  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/21075
! 	* gfortran.dg/reshape_rank7.f90: New test.
! 
! 2005-04-17 Paul Thomas <pault@gcc.gnu.org>
! 
! 	PR libfortran/12884 gfortran.dg/pr12884.f: New test
! 	PR libfortran/17285 gfortran.dg/pr17285.f90: New test
! 	PR libfortran/17472, 18396, 18209 gfortran.dg/pr17472.f: New test
! 	PR libfortran/18122, 18591 gfortran.dg/pr18122.f90: New test
! 	PR libfortran/18210 gfortran.dg/pr18210.f90: New test
! 	PR libfortran/18392 gfortran.dg/pr18392.f90: New test
! 	PR libfortran/19467 gfortran.dg/pr19467.f90: New test
! 	PR libfortran/19657 gfortran.dg/pr19657.f90: New test
! 	* gfortran.dg/namelist_1.f90: Correct comment (PUBLIC and PRIVATE wrong way round).
! 	* gfortran.dg/namelist_2.f90: Variables with INTENT(IN) cannot be in namelists. New test
! 	* gfortran.dg/namelist_3.f90: Pointers cannot be in namelists. New test
! 	* gfortran.dg/namelist_11.f: Tests reals and qualifiers in namelist. New test
! 	* gfortran.dg/namelist_12.f: Tests integers and qualifiers in namelist. New test
! 	* gfortran.dg/namelist_13.f90: Tests derived types in namelist. New test
! 	* gfortran.dg/namelist_14.f90: Tests trans-io.c namelist support. New test
! 	* gfortran.dg/namelist_15.f90: Tests arrays of derived types in namelist. New test
! 	* gfortran.dg/namelist_16.f90: Tests complex in namelist. New test
! 	* gfortran.dg/namelist_17.f90: Tests logical in namelist. New test
! 	* gfortran.dg/namelist_18.f90: Tests charcter delimiters in namelist. New test
! 	* gfortran.dg/namelist_19.f90: Tests namelist errors. New test
! 	* gfortran.dg/namelist_20.f90: Tests negative bounds for explicit arrays. New test
! 
! 2005-04-17  Richard Guenther  <rguenth@gcc.gnu.org>
! 
! 	* gfortran.dg/wtruncate.f: New testcase.
! 	* gfortran.dg/wtruncate.f90: New testcase.
  
  2005-04-16  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/21025
! 	* typeck.c (cxx_sizeof_or_alignof_type): Check whether the type to
! 	which sizeof/alignof is dependent, rather than just whether we are
! 	processing_template_decl.
! 
! 2005-04-15  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	* gfortran.fortran-torture/execute/intrinsic_spread.f90:
! 	corrected typo where the wrong variables had been compared.
! 
! 2005-04-15  Thomas Koenig  <Thomas.Koenig@online.de>
! 
! 	PR libfortran/18495
! 	* gfortran.fortran-torture/execute/intrinsic_spread.f90:
! 	Test callee-allocated version of return array with a write
! 	statement.
! 	Test spread with a temporary with another write statement.
! 
! 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	PR tree-optimization/21031
! 	* gcc.dg/tree-ssa/pr21031.c: New.
! 
! 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
! 
! 	PR tree-optimization/21004
! 	* gcc.dg/builtins-53.c: Include builtins-config.h.
! 	Check floorf, ceilf, floorl and ceill transformations
! 	only when HAVE_C99_RUNTIME is defined.
! 
! 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	PR middle-end/20739
! 	* gcc.dg/tree-ssa/pr20739.c: New test.
! 
! 2005-04-14  Mike Stump  <mrs@apple.com>
! 
! 	* gcc.dg/Foundation.framework/empty: New.
! 	* gcc.dg/framework-2.c: New.
! 
! 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	PR tree-optimization/21021
! 	* gcc.c-torture/compile/pr21021.c: New.
! 
! 2005-04-14  Janis Johnson  <janis187@us.ibm.com
! 
! 	PR testsuite/21010
! 	* gcc.dg/vect/vect-ifcvt-1.c: Remove dg-do, add cleanup.
! 	* gcc.dg/vect/vect-ifcvt-2.c: Ditto.
! 	* gcc.dg/vect/vect-ifcvt-3.c: Ditto.
! 	* gcc.dg/vect/vect-ifcvt-4.c: Ditto.
! 	* gcc.dg/vect/vect-ifcvt-5.c: Ditto.
! 	* gcc.dg/vect/vect-ifcvt-6.c: Ditto.
! 	* gcc.dg/vect/vect-ifcvt-7.c: Ditto.
! 	* gcc.dg/vect/vect-ifcvt-9.c: Ditto.
! 
! 2005-04-14  Richard Henderson  <rth@redhat.com>
! 
! 	* lib/target-supports.exp (check_effective_target_vect_condition):
! 	Add ia64, i?86, and x86_64.
! 
! 2005-04-14  Steven G. Kargl  <kargls@comcast.net>
! 
! 	* gfortran.dg/underflow.f90: Use tiny(x)/huge(x).
! 
! 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	PR tree-optimization/20657
! 	* gcc.dg/tree-ssa/pr20657.c: New.
! 
! 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.dg/builtins-53.c: Also check (int)trunc* and
! 	(long long int)trunc*.
  
  2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
  
  	PR target/20927
  	* gcc.dg/pr20927.c: New test.
  
! 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
  
! 	* gcc.dg/torture/pr19683-1.c: Guard with #ifndef __mips16.
! 	* gcc.target/mips/asm-1.c: Likewise.
! 
! 2005-04-13  Dale Johannesen  <dalej@apple.com>
! 
! 	* objc.dg/objc-fast-4.m:  New.
! 
! 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.target/cris/torture/cris-torture.exp: New driver in new
! 	directory.
! 	* gcc.target/cris/torture/no-pro-epi-1.c: New test.
! 
! 2005-04-13  David Edelsohn  <edelsohn@gnu.org>
! 
! 	* gcc.dg/ucnid-[23456].c: XFAIL on AIX.
! 	* gcc.dg/ppc-vector-memcpy.c: XFAIL on AIX and SPE.
! 	* gcc.dg/ppc-vector-memset.c: XFAIL on AIX and SPE.
! 
! 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	PR tree-optimization/20913
! 	* gcc.dg/tree-ssa/pr20913.c: New.
! 
! 	PR tree-optimization/20702
! 	* gcc.dg/tree-ssa/pr20702.c: New.
! 
! 2005-04-13  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
! 
! 	PR c++/13744
! 	* g++.dg/inherit/local3.C: New test.
! 
! 2005-04-12  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/20050412-1.c: New test.
  
  2005-04-13  Thomas Koenig  <Thomas.Koenig@online.de>
  
! 	PR libfortran/19016
! 	* gfortran.fortran-torture/execute/intrinsic_mmloc.f90:
! 	Add tests with mask generated by expression.
! 	* gfortran.fortran-torture/execute/intrinsic_mmval.f90:  Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_product.f90:  Likewise.
! 	* gfortran.fortran-torture/execute/intrinsic_sum.f90:  Likewise.
  
  2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
  
  	PR middle-end/20917
  	* gcc.dg/20050409-1.c: New test.
  
+ 2005-04-12  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* gcc.dg/tree-ssa/alias-1.c: Fix spelling of optimized.
+ 
+ 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	* target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
+ 	(TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
+ 	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
+ 	(TARGET_CXX): Adjust accordingly.
+ 	* target.h (struct gcc_target): Remove epxort_class_data.  Add
+ 	determine_class_data_visibility and class_data_always_comdat.
+ 	* doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
+ 	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
+ 	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
+ 	* config/arm/arm.c (arm_cxx_export_class_data): Remove.
+ 	(arm_cxx_determine_class_data_visibility): New.
+ 	(arm_cxx_class_data_always_comdat): Likewise.
+ 	(TARGET_CXX_EXPORT_CLASS_DATA): Remove.
+ 	(TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
+ 	(TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
+ 	* config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
+ 	* config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
+ 	Define.
+ 
+ 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	* lib/wrapper.exp (${tool}_maybe_build_wrapper): Don't unset gluefile.
+ 
+ 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
+ 
+ 	* gcc.dg/i386-darwin-fpmath.c: New.
+ 
+ 2004-04-11  Devang Patel  <dpatel@apple.com>
+ 
+         * lib/target-supports.exp (check_effective_target_vect_condition): New.
+         * gcc.dg/vect/vect-ifcvt-1.c: New test.
+         * gcc.dg/vect/vect-ifcvt-2.c: New test.
+         * gcc.dg/vect/vect-ifcvt-3.c: New test.
+         * gcc.dg/vect/vect-ifcvt-4.c: New test.
+         * gcc.dg/vect/vect-ifcvt-5.c: New test.
+         * gcc.dg/vect/vect-ifcvt-6.c: New test.
+         * gcc.dg/vect/vect-ifcvt-7.c: New test.
+         * gcc.dg/vect/vect-none.c: Now one loop is vectorized.
+ 
+ 2004-04-11  Devang Patel  <dpatel@apple.com>
+ 
+         * gcc.dg/vect/vect-dv-1.c: New test.
+         * gcc.dg/vect/vect-dv-2.c: New test.
+ 
+ 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
+ 
+ 	PR tree-optimization/20933
+ 	* gcc.dg/tree-ssa/pr20933.c: New test.
+ 
+ 2005-04-11  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+ 
+ 	* gfortran.dg/fold_nearest.f90: New test.
+ 
+ 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	* gcc.dg/tree-ssa/alias-1.c: New test.
+ 
+ 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
+ 
+ 	PR tree-optimization/20920
+ 	* g++.dg/tree-ssa/pr20920.C: New test.
+ 
+ 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
+ 
+ 	* gcc.dg/builtins-53.c: Also check (int)ceil* and
+ 	(long long int)ceil*.
+ 
  2005-04-10  Mark Mitchell  <mark@codesourcery.com>
  
  	* g++.dg/warn/Wdtor1.C: Declare template in system header with
  	explicit C++ linkage.
  
+ 2005-04-10  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+ 
+ 	* gfortran.dg/pr17229.f: Take care of the new obsolescence
+ 	warning for arithmetic IF statements.
+ 
+ 2005-04-10  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	* eor_handling_1.f90: New test case.
+ 	* eor_handling_2.f90: New test case.
+ 	* eor_handling_3.f90: New test case.
+ 	* eor_handling_4.f90: New test case.
+ 	* eor_handling_5.f90: New test case.
+ 	* noadv_size.f90: New test case.
+ 	* pad_no.f90: New test case.
+ 
+ 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
+ 
+ 	* gcc.c-torture/execute/20050410-1.c: New test.
+ 
+ 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
+ 
+ 	* gcc.dg/pr20126.c: New.
+ 
+ 2005-04-09  Bud Davis  <bdavis@gfortran.org>
+             Steven G. Kargl <kargls@comcast.net>
+ 
+ 	* gfortran.dg/PR19872.f: New test.
+ 
+ 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
+ 
+ 	* gfortran.dg/nint_1.f90:  Fix dg-do directive
+ 
+ 2005-04-09  Steven G. Kargl  <kargls@comcast.net>
+ 
+ 	* gfortran.dg/nint_1.f90: New test.
+ 
+ 2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	* gfortran.fortran-torture/execute/intrinsic_anyall.f90:
+ 	Added test for callee-allocated arrays with write statements.
+ 	* gfortran.fortran-torture/execute/intrinsic_count.f90: Likewise.
+ 	* gfortran.fortran-torture/execute/intrinsic_mmloc.f90: Likewise.
+ 	* gfortran.fortran-torture/execute/intrinsic_mmval.f90: Likewise.
+ 	* gfortran.fortran-torture/execute/intrinsic_product.f90: Likewise.
+ 	* gfortran.fortran-torture/execute/intrinsic_sum.f90: Likewise.
+ 
+ 2005-04-09  Thomas Koenig  <Thomas.Koenig@online.de>
+ 
+ 	PR libfortran/20163
+ 	* gfortran.dg/open-options-blanks.f:  New test.
+ 
+ 2005-04-09  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR fortran/13257
+ 	* gfortran.dg/comma_format_extension_[1234].f: New tests.
+ 
  2005-04-09  Jakub Jelinek  <jakub@redhat.com>
  
+ 	* gcc.dg/tree-ssa/stdarg-1.c: New test.
+ 	* gcc.dg/tree-ssa/stdarg-2.c: New test.
+ 	* gcc.dg/tree-ssa/stdarg-3.c: New test.
+ 	* gcc.dg/tree-ssa/stdarg-4.c: New test.
+ 	* gcc.dg/tree-ssa/stdarg-5.c: New test.
+ 	* gcc.c-torture/execute/stdarg-4.c: New test.
+ 
+ 	* gcc.dg/vmx/varargs-1.c (f1, f2, f3): Add missing va_end.
+ 
  	PR target/20795
  	* g++.dg/abi/param2.C: New test.
  
+ 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
+ 
+ 	* gcc.dg/builtins-53.c: Also check lceil* and llceil*.
+ 
+ 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
+ 
+ 	* gcc.dg/builtins-53.c: New test.
+ 
+ 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
+ 
+ 	* g++.dg/tree-ssa/pr18178.C: New test.
+ 	* gcc.c-torture/execute/20030216-1.x: Ignore at -O1.
+ 	* gcc.c-torture/execute/20041019-1.c: New test.
+ 	* gcc.dg/tree-ssa/20041008-1.c: New test.
+ 	* gcc.dg/tree-ssa/ssa-ccp-12.c: New test.
+ 	* gcc.dg/tree-ssa/20030731-2.c: Update to use -fdump-tree-store_ccp.
+ 	* gcc.dg/tree-ssa/20030917-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/20030917-3.c: Likewise.
+ 	* gcc.dg/tree-ssa/20040721-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-ccp-1.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-ccp-2.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-ccp-3.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-ccp-7.c: Likewise.
+ 	* gcc.dg/tree-ssa/ssa-ccp-9.c: Likewise.
+ 
+ 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR rtl-optimization/20466
+ 	* gcc.c-torture/execute/pr20466-1.c: New test.
+ 
  2005-04-08  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/20905
  	* g++.dg/parse/cond2.C: New test.
  
  	PR c++/20145
  	* g++.dg/warn/Wdtor1.C: New test.
  
! 2005-04-06  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR fortran/17229
  	* gfortran.dg/pr17229.f: New test.
***************
*** 1726,1734 ****
  	* 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>
  
--- 7947,7963 ----
  	* gfortran.dg/eor_1.f90:  Fix dg-do run line
  	* gfortran.dg/open_new.f90:  Fix dg-do run line
  
! 2005-04-07  Hans-Peter Nilsson  <hp@axis.com>
  
! 	* lib/target-supports.exp (get_compiler_messages): Support
! 	optional arguments, the fourth being compiler options.
! 	(check_effective_target_fpic): New proc.
! 	* gcc.dg/20050321-2.c: Restrict to target fpic.
! 
! 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* gcc.dg/15443-1.c: New test.
! 	* gcc.dg/15443-2.c: Likewise.
  
  2005-04-06  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
***************
*** 1752,1757 ****
--- 7981,8017 ----
  	PR c++/20212
  	* g++.dg/warn/Wunused-11.C: New test.
  
+ 2005-04-06  Bernd Schmidt  <bernd.schmidt@analog.com>
+ 
+ 	* gcc.c-torture/execute/20020720-1.x: Disable on bfin*-*.
+ 
+ 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
+ 
+ 	* gfortran.dg/vect/vect-5.f90: xfail for lp64.
+ 
+ 2005-04-05  Mark Mitchell  <mark@codesourcery.com>
+ 
+ 	PR c++/20734
+ 	* g++.dg/template/ptrmem13.C: New test.
+ 
+ 2005-04-05  Per Bothner  <per@bothner.com>
+ 
+ 	* lib/gcc.exp: Always add -fno-show-column, for now.
+ 
+ 2005-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR testsuite/20767
+ 	* gcc.dg/tree-ssa/ssa-pre-8.c (foo): Use __SIZE_TYPE__ instead
+ 	of plain old "unsigned int" for the type of "i".  Makes this test
+ 	64bit clean.
+ 
+ 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
+ 
+ 	* gcc.dg/i386-ssefn-1.c: New test.
+ 	* gcc.dg/i386-ssefn-2.c: New test.
+ 	* gcc.dg/i386-ssefn-3.c: New test.
+ 	* gcc.dg/i386-ssefn-4.c: New test.
+ 
  2005-04-05  Jakub Jelinek  <jakub@redhat.com>
  
  	PR tree-optimization/20076
***************
*** 1761,1784 ****
  	* 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>
  
--- 8021,8039 ----
  	* gcc.dg/cpp/macspace1.c: New test.
  	* gcc.dg/cpp/macspace2.c: New test.
  
  2005-04-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
! 	* gfortran.dg/pr20755.f: Fixed bad format.
  
  2005-04-05  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/20763
  	* g++.dg/ext/attrib21.C: New test.
  
! 2004-04-05  Devang Patel  <dpatel@apple.com>
  
! 	* lib/target-supports.exp (check_effective_target_vect_shif): New.
! 	* gcc.dg/vect/vect-shift-1.c: New test.
  
  2005-04-05  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
***************
*** 1794,1814 ****
  
  	* 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.
--- 8049,8061 ----
  
  	* gfortran.dg/backspace.f, gfortran.dg/g77_intrinsics_funcs.f,
  	gfortran.dg/g77_intrinsics_sub.f, gfortran.dg/negative_unit.f,
! 	gfortran.dg/pr18025.f90, gfortran.dg/g77/12002.f: Correct dejagnu
! 	syntax.
  
  2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
  
  	* gcc.c-torture/compile/20040323-1.c (_rtld_global): Set to 1.
  
  2005-04-04  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
  
  	* gcc.c-torture/compile/20011119-1.c: Require weak and alias support.
***************
*** 1820,1825 ****
--- 8067,8080 ----
  	PR c++/20679
  	* g++.dg/template/overload4.C: New test.
  
+ 2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
+ 
+ 	PR c++/20746
+ 	* g++.dg/abi/covariant5.C: New.
+ 
+ 	PR debug/20505
+ 	* g++.dg/debug/const2.C: New.
+ 
  2005-04-04  Jakub Jelinek  <jakub@redhat.com>
  
  	PR rtl-optimization/16104
***************
*** 1827,1841 ****
  
  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
--- 8082,8106 ----
  
  2005-04-04  Nathan Sidwell  <nathan@codesourcery.com>
  
! 	* g++.dg/template/spec23.C: Fix dg-error text.
  
! 2005-04-03  Alexandre Oliva  <aoliva@redhat.com>
  
! 	PR c++/19199
! 	* g++.dg/expr/lval2.C: New.
  
! 2005-04-03  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* gcc.dg/nonnull-3.c: Also test __builtin_stpncpy,
! 	__builtin_strcasecmp and __builtin_strncasecmp.
! 
! 2005-04-03  Nathan Sidwell  <nathan@codesourcery.com>
! 
! 	PR c++/20723
! 	* g++.dg/template/spec22.C: New.
! 	* g++.dg/template/spec23.C: New.
! 
! 2005-04-03  Dale Ranta  <dir@lanl.gov>
              Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/20068
***************
*** 1858,1863 ****
--- 8123,8132 ----
  	PR rtl-optimization/20290
  	* gcc.c-torture/execute/loop-ivopts-2.c: New.
  
+ 2005-04-02  Geoffrey Keating  <geoffk@apple.com>
+ 
+ 	* gcc.dg/rs6000-fpint.c: New.
+ 
  2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
  
  	* gcc.dg/old-style-then-proto-1.c: New test.
***************
*** 1867,1877 ****
--- 8136,8212 ----
  	* gfortran.fortran-torture/execute/backspace.f90: Check
  	after backspace and read was incorrect.
  
+ 2005-04-01  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+ 
+ 	* gcc.c-torture/execute/builtins/strcat.c: Check the result
+ 	buffer past the terminating NUL using memcmp.
+ 	* gcc.c-torture/execute/builtins/strncat.c: Likewise.
+ 	* gcc.c-torture/execute/builtins/strncpy.c: Likewise.
+ 
+ 	* gcc.c-torture/execute/builtins/strncmp-2.c: Also test x86_64.
+ 	Fix unused/uninitialized variable warnings.
+ 
+ 	* gcc.c-torture/execute/builtins/lib/strncat.c: Fix uninitialized var.
+ 	* gcc.c-torture/execute/builtins/lib/strpbrk.c: Fix discarded const.
+ 	* gcc.c-torture/execute/builtins/strlen-3.c: Fix uninitialized var.
+ 	* gcc.c-torture/execute/builtins/strncmp.c: Delete unused var.
+ 
+ 	* gcc.c-torture/execute/builtins/abs-1-lib.c,
+ 	gcc.c-torture/execute/builtins/fputs-lib.c,
+ 	gcc.c-torture/execute/builtins/lib/fprintf.c,
+ 	gcc.c-torture/execute/builtins/lib/main.c,
+ 	gcc.c-torture/execute/builtins/lib/memcmp.c,
+ 	gcc.c-torture/execute/builtins/lib/memmove.c,
+ 	gcc.c-torture/execute/builtins/lib/mempcpy.c,
+ 	gcc.c-torture/execute/builtins/lib/memset.c,
+ 	gcc.c-torture/execute/builtins/lib/printf.c,
+ 	gcc.c-torture/execute/builtins/lib/sprintf.c,
+ 	gcc.c-torture/execute/builtins/lib/stpcpy.c,
+ 	gcc.c-torture/execute/builtins/lib/strchr.c,
+ 	gcc.c-torture/execute/builtins/lib/strcmp.c,
+ 	gcc.c-torture/execute/builtins/lib/strcpy.c,
+ 	gcc.c-torture/execute/builtins/lib/strcspn.c,
+ 	gcc.c-torture/execute/builtins/lib/strlen.c,
+ 	gcc.c-torture/execute/builtins/lib/strncat.c,
+ 	gcc.c-torture/execute/builtins/lib/strncmp.c,
+ 	gcc.c-torture/execute/builtins/lib/strncpy.c,
+ 	gcc.c-torture/execute/builtins/lib/strrchr.c,
+ 	gcc.c-torture/execute/builtins/lib/strspn.c,
+ 	gcc.c-torture/execute/builtins/lib/strstr.c,
+ 	gcc.c-torture/execute/builtins/memops-asm-lib.c,
+ 	gcc.c-torture/execute/builtins/strlen-2.c,
+ 	gcc.c-torture/execute/builtins/strstr-asm-lib.c: Add missing
+ 	prototypes.
+ 
+ 2005-04-01  Danny Smith  <dannysmith@users.sourceforge.net>
+ 
+ 	* g++.dg/ext/selectany1.C: New file. Test for linkonce sections.
+ 	* g++.dg/ext/selectany2.C: New file. Test for errors with invalid
+ 	selectany usage.
+ 
  2005-04-01  Jakub Jelinek  <jakub@redhat.com>
  
  	PR c++/19406
  	* g++.dg/debug/using1.C: New test.
  
+ 2005-04-01  Hans-Peter Nilsson  <hp@axis.com>
+ 
+ 	PR middle-end/20524
+ 	* gcc.dg/alias-7.c: Prefix asm-declared name with
+ 	__USER_LABEL_PREFIX__.
+ 
+ 2005-03-31  J"orn Rennecke <joern.rennecke@st.com>
+ 
+ 	Fix fallout from PR middle-end/15700:
+ 	* gcc.c-torture/compile/20011119-1.c: Take
+ 	__USER_LABEL_PREFIX__ into account.
+ 	* gcc.c-torture/compile/20011119-2.c: Likewise.
+ 
+ 2005-03-31  Gabriel Dos Reis  <gdr@integrable-solutions.net>
+ 
+ 	PR c++/18644
+ 	* g++.old-deja/g++.jason/warning9.C (struct A, main): Adjust
+ 
  2005-04-01  Joseph S. Myers  <joseph@codesourcery.com>
  
  	PR c/17855
***************
*** 1879,1894 ****
  	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>
  
--- 8214,8421 ----
  	gcc.c-torture/compile/struct-non-lval-2.c,
  	gcc.c-torture/compile/struct-non-lval-3.c: New tests.
  
+ 2005-03-31  Janis Johnson  <janis187@us.ibm.com>
+ 
+ 	* gcc.dg/tls/tls.exp: Remove temporary file.
+ 	* g++.dg/tls/tls.exp: Ditto.
+ 	* lib/file-format.exp: Ditto.
+ 	* g++.dg/special/ecos.exp: Ditto.
+ 
+ 	* lib/profopt.exp: Treat prof_ext as a list.
+ 	* gcc.misc-tests/bprob.exp: Ditto.
+ 	* g++.dg/bprob/bprob.exp: Ditto.
+ 
+ 	* g++.dg/opt/nothrow1.C: Use cleanup-tree-dump.
+ 	g++.dg/tree-ssa/empty-1.C, g++.dg/tree-ssa/nothrow-1.C,
+ 	g++.dg/tree-ssa/pointer-reference-alias.C,
+ 	g++.dg/tree-ssa/pr15791-3.C, g++.dg/tree-ssa/pr15791-4.C,
+ 	g++.dg/tree-ssa/pr15791-5.C, g++.dg/tree-ssa/ssa-cast-1.C
+ 	g++.dg/tree-ssa/ssa-sra-1.C, g++.dg/tree-ssa/ssa-sra-2.C: Ditto
+ 	g++.dg/vect/pr19951.cc: Ditto.
+ 	* gcc.dg/builtins-43.c, gcc.dg/builtins-44.c, gcc.dg/builtins-45.c,
+ 	gcc.dg/builtins-47.c: Ditto.
+ 	* gcc.dg/pr15784-1.c, gcc.dg/pr15784-2.c, gcc.dg/pr15784-3.c,
+ 	gcc.dg/pr20115-1.c: Ditto.
+ 	* gcc.dg/tree-ssa/20030530-2.c,
+ 	gcc.dg/tree-ssa/20030611-1.c, gcc.dg/tree-ssa/20030703-1.c,
+ 	gcc.dg/tree-ssa/20030703-2.c, gcc.dg/tree-ssa/20030708-1.c,
+ 	gcc.dg/tree-ssa/20030709-1.c, gcc.dg/tree-ssa/20030709-2.c,
+ 	gcc.dg/tree-ssa/20030709-3.c, gcc.dg/tree-ssa/20030710-1.c,
+ 	gcc.dg/tree-ssa/20030711-1.c, gcc.dg/tree-ssa/20030711-2.c,
+ 	gcc.dg/tree-ssa/20030711-3.c, gcc.dg/tree-ssa/20030714-1.c,
+ 	gcc.dg/tree-ssa/20030714-2.c, gcc.dg/tree-ssa/20030728-1.c,
+ 	gcc.dg/tree-ssa/20030729-1.c, gcc.dg/tree-ssa/20030730-1.c,
+ 	gcc.dg/tree-ssa/20030730-2.c, gcc.dg/tree-ssa/20030731-1.c,
+ 	gcc.dg/tree-ssa/20030731-2.c, gcc.dg/tree-ssa/20030807-1.c,
+ 	gcc.dg/tree-ssa/20030807-10.c, gcc.dg/tree-ssa/20030807-11.c,
+ 	gcc.dg/tree-ssa/20030807-2.c, gcc.dg/tree-ssa/20030807-3.c,
+ 	gcc.dg/tree-ssa/20030807-5.c, gcc.dg/tree-ssa/20030807-6.c,
+ 	gcc.dg/tree-ssa/20030807-7.c, gcc.dg/tree-ssa/20030807-8.c,
+ 	gcc.dg/tree-ssa/20030807-9.c, gcc.dg/tree-ssa/20030808-1.c,
+ 	gcc.dg/tree-ssa/20030814-1.c, gcc.dg/tree-ssa/20030814-2.c,
+ 	gcc.dg/tree-ssa/20030814-3.c, gcc.dg/tree-ssa/20030814-4.c,
+ 	gcc.dg/tree-ssa/20030814-5.c, gcc.dg/tree-ssa/20030814-6.c,
+ 	gcc.dg/tree-ssa/20030814-7.c, gcc.dg/tree-ssa/20030815-1.c,
+ 	gcc.dg/tree-ssa/20030824-1.c,
+ 	gcc.dg/tree-ssa/20030824-2.c, gcc.dg/tree-ssa/20030825-1.c,
+ 	gcc.dg/tree-ssa/20030907-1.c, gcc.dg/tree-ssa/20030917-1.c,
+ 	gcc.dg/tree-ssa/20030917-3.c, gcc.dg/tree-ssa/20030922-1.c,
+ 	gcc.dg/tree-ssa/20030922-2.c, gcc.dg/tree-ssa/20031015-1.c,
+ 	gcc.dg/tree-ssa/20031021-1.c, gcc.dg/tree-ssa/20031022-1.c,
+ 	gcc.dg/tree-ssa/20031106-1.c, gcc.dg/tree-ssa/20031106-2.c,
+ 	gcc.dg/tree-ssa/20031106-3.c, gcc.dg/tree-ssa/20031106-4.c,
+ 	gcc.dg/tree-ssa/20031106-5.c, gcc.dg/tree-ssa/20031106-6.c,
+ 	gcc.dg/tree-ssa/20031216-1.c, gcc.dg/tree-ssa/20040204-1.c,
+ 	gcc.dg/tree-ssa/20040210-1.c, gcc.dg/tree-ssa/20040211-1.c,
+ 	gcc.dg/tree-ssa/20040216-1.c, gcc.dg/tree-ssa/20040305-1.c,
+ 	gcc.dg/tree-ssa/20040430-1.c, gcc.dg/tree-ssa/20040513-1.c,
+ 	gcc.dg/tree-ssa/20040513-2.c, gcc.dg/tree-ssa/20040514-1.c,
+ 	gcc.dg/tree-ssa/20040514-2.c, gcc.dg/tree-ssa/20040517-1.c,
+ 	gcc.dg/tree-ssa/20040518-1.c, gcc.dg/tree-ssa/20040518-2.c,
+ 	gcc.dg/tree-ssa/20040615-1.c, gcc.dg/tree-ssa/20040624-1.c,
+ 	gcc.dg/tree-ssa/20040703-1.c, gcc.dg/tree-ssa/20040721-1.c,
+ 	gcc.dg/tree-ssa/20040729-1.c, gcc.dg/tree-ssa/20040911-1.c,
+ 	gcc.dg/tree-ssa/20041002-1.c, gcc.dg/tree-ssa/20041122-1.c,
+ 	gcc.dg/tree-ssa/20050128-1.c, gcc.dg/tree-ssa/20050215-1.c,
+ 	gcc.dg/tree-ssa/asm-1.c, gcc.dg/tree-ssa/asm-2.c,
+ 	gcc.dg/tree-ssa/asm-3.c, gcc.dg/tree-ssa/cfgcleanup-1.c,
+ 	gcc.dg/tree-ssa/complex-1.c, gcc.dg/tree-ssa/complex-2.c,
+ 	gcc.dg/tree-ssa/copy-headers.c, gcc.dg/tree-ssa/ifc-20040816-1.c,
+ 	gcc.dg/tree-ssa/ifc-20040816-2.c, gcc.dg/tree-ssa/inline_asm-1.c,
+ 	gcc.dg/tree-ssa/inline_asm-2.c, gcc.dg/tree-ssa/loop-1.c,
+ 	gcc.dg/tree-ssa/loop-2.c, gcc.dg/tree-ssa/loop-3.c,
+ 	gcc.dg/tree-ssa/loop-4.c, gcc.dg/tree-ssa/loop-5.c,
+ 	gcc.dg/tree-ssa/loop-6.c, gcc.dg/tree-ssa/loop-7.c,
+ 	gcc.dg/tree-ssa/ltrans-1.c, gcc.dg/tree-ssa/ltrans-2.c,
+ 	gcc.dg/tree-ssa/ltrans-3.c, gcc.dg/tree-ssa/ltrans-4.c,
+ 	gcc.dg/tree-ssa/ltrans-5.c, gcc.dg/tree-ssa/pr15349.c,
+ 	gcc.dg/tree-ssa/pr15791-3.c, gcc.dg/tree-ssa/pr15791-4.c,
+ 	gcc.dg/tree-ssa/pr15791-5.c, gcc.dg/tree-ssa/pr16721.c,
+ 	gcc.dg/tree-ssa/pr19633.c, gcc.dg/tree-ssa/sra-1.c,
+ 	gcc.dg/tree-ssa/sra-2.c, gcc.dg/tree-ssa/sra-3.c,
+ 	gcc.dg/tree-ssa/ssa-ccp-1.c, gcc.dg/tree-ssa/ssa-ccp-10.c,
+ 	gcc.dg/tree-ssa/ssa-ccp-11.c, gcc.dg/tree-ssa/ssa-ccp-2.c,
+ 	gcc.dg/tree-ssa/ssa-ccp-3.c, gcc.dg/tree-ssa/ssa-ccp-7.c,
+ 	gcc.dg/tree-ssa/ssa-ccp-9.c, gcc.dg/tree-ssa/ssa-dce-1.c,
+ 	gcc.dg/tree-ssa/ssa-dce-2.c, gcc.dg/tree-ssa/ssa-dce-3.c,
+ 	gcc.dg/tree-ssa/ssa-dom-ccp-1.c, gcc.dg/tree-ssa/ssa-dom-cse-1.c,
+ 	gcc.dg/tree-ssa/ssa-dom-thread-1.c, gcc.dg/tree-ssa/ssa-pre-1.c,
+ 	gcc.dg/tree-ssa/ssa-pre-2.c, gcc.dg/tree-ssa/ssa-pre-3.c,
+ 	gcc.dg/tree-ssa/ssa-pre-4.c, gcc.dg/tree-ssa/ssa-pre-5.c,
+ 	gcc.dg/tree-ssa/ssa-pre-6.c, gcc.dg/tree-ssa/ssa-sink-1.c,
+ 	gcc.dg/tree-ssa/ssa-sink-2.c, gcc.dg/tree-ssa/ssa-sink-3.c,
+ 	gcc.dg/tree-ssa/ssa-sink-4.c, gcc.dg/tree-ssa/tailcall-1.c,
+ 	gcc.dg/tree-ssa/tailcall-2.c, gcc.dg/tree-ssa/tailrecursion-1.c,
+ 	gcc.dg/tree-ssa/tailrecursion-2.c, gcc.dg/tree-ssa/tailrecursion-3.c,
+ 	gcc.dg/tree-ssa/tailrecursion-4.c, gcc.dg/tree-ssa/tailrecursion-5.c,
+ 	gcc.dg/tree-ssa/useless-1.c: Ditto.
+ 	gcc.dg/vect/pr16105.c, gcc.dg/vect/pr18308.c, gcc.dg/vect/pr18400.c,
+ 	gcc.dg/vect/pr18425.c, gcc.dg/vect/pr18536.c, gcc.dg/vect/vect-1.c,
+ 	gcc.dg/vect/vect-10.c, gcc.dg/vect/vect-11.c, gcc.dg/vect/vect-12.c,
+ 	gcc.dg/vect/vect-13.c, gcc.dg/vect/vect-14.c, gcc.dg/vect/vect-15.c,
+ 	gcc.dg/vect/vect-16.c, gcc.dg/vect/vect-17.c, gcc.dg/vect/vect-18.c,
+ 	gcc.dg/vect/vect-19.c, gcc.dg/vect/vect-2.c, gcc.dg/vect/vect-20.c,
+ 	gcc.dg/vect/vect-21.c, gcc.dg/vect/vect-22.c, gcc.dg/vect/vect-23.c,
+ 	gcc.dg/vect/vect-24.c, gcc.dg/vect/vect-25.c, gcc.dg/vect/vect-26.c,
+ 	gcc.dg/vect/vect-27.c, gcc.dg/vect/vect-28.c, gcc.dg/vect/vect-29.c,
+ 	gcc.dg/vect/vect-3.c, gcc.dg/vect/vect-30.c, gcc.dg/vect/vect-31.c,
+ 	gcc.dg/vect/vect-32.c, gcc.dg/vect/vect-33.c, gcc.dg/vect/vect-34.c,
+ 	gcc.dg/vect/vect-35.c, gcc.dg/vect/vect-36.c, gcc.dg/vect/vect-37.c,
+ 	gcc.dg/vect/vect-38.c, gcc.dg/vect/vect-4.c, gcc.dg/vect/vect-40.c,
+ 	gcc.dg/vect/vect-41.c, gcc.dg/vect/vect-42.c, gcc.dg/vect/vect-43.c,
+ 	gcc.dg/vect/vect-44.c, gcc.dg/vect/vect-45.c, gcc.dg/vect/vect-46.c,
+ 	gcc.dg/vect/vect-47.c, gcc.dg/vect/vect-48.c, gcc.dg/vect/vect-49.c,
+ 	gcc.dg/vect/vect-5.c, gcc.dg/vect/vect-50.c, gcc.dg/vect/vect-51.c,
+ 	gcc.dg/vect/vect-52.c, gcc.dg/vect/vect-53.c, gcc.dg/vect/vect-54.c,
+ 	gcc.dg/vect/vect-55.c, gcc.dg/vect/vect-56.c, gcc.dg/vect/vect-57.c,
+ 	gcc.dg/vect/vect-58.c, gcc.dg/vect/vect-59.c, gcc.dg/vect/vect-6.c,
+ 	gcc.dg/vect/vect-60.c, gcc.dg/vect/vect-61.c, gcc.dg/vect/vect-62.c,
+ 	gcc.dg/vect/vect-63.c, gcc.dg/vect/vect-64.c, gcc.dg/vect/vect-65.c,
+ 	gcc.dg/vect/vect-66.c, gcc.dg/vect/vect-67.c, gcc.dg/vect/vect-68.c,
+ 	gcc.dg/vect/vect-69.c, gcc.dg/vect/vect-7.c, gcc.dg/vect/vect-70.c,
+ 	gcc.dg/vect/vect-71.c, gcc.dg/vect/vect-72.c, gcc.dg/vect/vect-73.c,
+ 	gcc.dg/vect/vect-74.c, gcc.dg/vect/vect-75.c, gcc.dg/vect/vect-76.c,
+ 	gcc.dg/vect/vect-77.c, gcc.dg/vect/vect-78.c, gcc.dg/vect/vect-79.c,
+ 	gcc.dg/vect/vect-8.c, gcc.dg/vect/vect-80.c, gcc.dg/vect/vect-82.c,
+ 	gcc.dg/vect/vect-82_64.c, gcc.dg/vect/vect-83.c,
+ 	gcc.dg/vect/vect-83_64.c, gcc.dg/vect/vect-85.c,
+ 	gcc.dg/vect/vect-86.c, gcc.dg/vect/vect-87.c, gcc.dg/vect/vect-88.c,
+ 	gcc.dg/vect/vect-89.c, gcc.dg/vect/vect-9.c, gcc.dg/vect/vect-96.c,
+ 	gcc.dg/vect/vect-97.c, gcc.dg/vect/vect-98.c, gcc.dg/vect/vect-all.c,
+ 	gcc.dg/vect/vect-none.c: Ditto.
+ 	* treelang/compile/extrafunc.tree, treelang/compile/extravar.tree,
+ 	treelang/compile/unsigned.tree: Ditto.
+ 
+ 	* gcc.dg/altivec-16.c: Use cleanup-saved-temps.
+ 	* gcc.dg/cpp/direct2s.c: Ditto.
+ 	* gcc.dg/cpp/paste4.c: Ditto.
+ 	* gcc.dg/cpp/separate-1.c: Ditto.
+ 	* gcc.dg/pch/save-temps-1.c: Ditto.
+ 	* g++.dg/ext/altivec-10.C: Ditto.
+ 	* g++.dg/pch/pch.C: Ditto.
+ 
+ 	* g++.dg/other/static11.C: Use cleanup-rtl-dump.
+ 
+ 	* g++.dg/parse/repo1.C: Use cleanup-repo-files.
+ 	* g++.dg/template/repo1.C: Ditto.
+ 	* g++.dg/template/repo2.C: Ditto.
+ 	* g++.dg/template/repo3.C: Ditto.
+ 	* g++.old-deja/g++.pt/instantiate4.C: Ditto.
+ 	* g++.old-deja/g++.pt/instantiate6.C: Ditto.
+ 	* g++.old-deja/g++.pt/repo1.C: Ditto.
+ 	* g++.old-deja/g++.pt/repo2.C: Ditto.
+ 	* g++.old-deja/g++.pt/repo3.C: Ditto.
+ 	* g++.old-deja/g++.pt/repo4.C: Ditto.
+ 
+ 	* gcc.dg/20020201-1.c: Use cleanup-coverage_files.
+ 	* gcc.dg/20030107-1.c: Ditto.
+ 	* gcc.dg/20030702-1.c: Ditto.
+ 	* gcc.dg/profile-generate-1.c: Ditto.
+ 	* g++.dg/other/profile1.C: Ditto.
+ 	* g++.old-deja/g++.robertl/eb83.C: Ditto.
+ 
+ 	* lib/gcc-dg.exp (remove-build-file): New.
+ 	(cleanup-coverage-files, cleanup-repo-files, cleanup-rtl-dump,
+ 	cleanup-tree-dump, cleanup-saved-temps): New.
+ 
+ 2005-03-31  Nathan Sidwell  <nathan@codesourcery.com>
+ 
+ 	PR c++/19203, DR 214
+ 	* g++.dg/parse/ambig3.C: Not ambiguous.
+ 	* g++.dg/template/spec20.C: New.
+ 	* g++.dg/template/spec21.C: New.
+ 
+ 2005-03-31  Steve Ellcey  <sje@cup.hp.com>
+ 
+ 	PR target/20045
+ 	* gcc.dg/ia64-fptr-1.c: Run only on linux.
+ 
  2005-03-31  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/20660
  	* gfortran.dg/negative_unit.f: New test.
  
! 2005-03-31 Mostafa Hagog <mustafa@il.ibm.com>
  
! 	* gcc.dg/20050330-1.c: New test.
! 
! 2005-03-30  Devang Patel  <dpatel@apple.com>
! 
! 	* g++.dg/tree-sra/ssa-sra-3.C: New test.
! 
! 2005-03-30  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.dg/20020919-1.c:  Remove unnecessary conditional.
! 
! 2005-03-30  Janis Johnson  <janis187@us.ibm.com>
! 
! 	* lib/scantree.exp (scan-tree-dump, scan-tree-dump-times,
! 	scan-tree-dump-not, scan-tree-dump-dem, scan-tree-dump-dem-not):
! 	Strip options from test name.
! 
! 2005-03-31  Jan Hubicka  <jh@suse.cz>
! 
! 	* gcc.dg/varpool-1.c: New testcase.
  
  2005-03-30  Joseph S. Myers  <joseph@codesourcery.com>
  
***************
*** 1904,1932 ****
  	* 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
--- 8431,8464 ----
  	* gcc.dg/pr20368-1.c, gcc.dg/pr20368-2.c, gcc.dg/pr20368-3.c: New
  	tests.
  
  2005-03-30  Alan Modra  <amodra@bigpond.net.au>
  
  	* gcc.c-torture/compile/pr20203.c: New test.
  
! 2005-03-26  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  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/20672
+ 	* gcc.dg/pr20672-1.c: New test.
+ 
+ 2005-03-29  Dorit Naishlos  <dorit@il.ibm.com>
+ 
+ 	* gfortran.dg/vect: New directory.
+ 	* gfortran.dg/vect/vect.exp: New.
+ 	* gfortran.dg/vect/vect-1.f90: New test.
+ 	* gfortran.dg/vect/vect-2.f90: New test.
+ 	* gfortran.dg/vect/vect-3.f90: New test.
+ 	* gfortran.dg/vect/vect-4.f90: New test.
+ 	* gfortran.dg/vect/vect-5.f90: New test.
+ 
  2005-03-29  Jakub Jelinek  <jakub@redhat.com>
  
  	PR middle-end/20622
***************
*** 1936,1950 ****
  
  	* 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>
  
--- 8468,8552 ----
  
  	* gcc.dg/sparc-reg-1.c: New test.
  
+ 2005-03-28  Steve Ellcey  <sje@cup.hp.com>
+ 
+ 	PR target/19890
+ 	* gcc.dg/20020219-1.c: Skip on IA64 HP-UX in ILP32 mode.
+ 
  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-28  Jan Hubicka  <jh@suse.cz>
  
! 	PR middle-end/20635
! 	* compile/gcc.c-torture/compile/20050328-1.c: New testcase made
! 	by Jakub Jelinek.
! 
! 2005-03-27  Dorit Naishlos  <dorit@il.ibm.com>
! 
! 	PR tree-optimization/20626
! 	* gcc.dg/vect/vect-80.c: Add xfail for no_align targets.
! 	* gcc.dg/vect/vect-96.c: Add xfail for no_align targets.
! 
! 2005-03-26  Steven G. Kargl  <kargls@comcast.net>
! 
! 	* gfortran.dg/underflow.f90:  New test.
! 	* gfortran.dg/g77/20030326-1.f: Fix illegal code.
! 
! 2005-03-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
! 
! 	* gcc.dg/nonnull-3.c: Also test __builtin_strndup.
! 
! 2005-03-25  Mark Mitchell  <mark@codesourcery.com>
! 
! 	* lib/g++.exp (g++_link_flags): Use gcc-set-multilib-library-path.
! 	(g++_init): Make sure that CXXFLAGS is set.
! 	* lib/gcc-defs.exp (gcc-set-multilib-library-path): New function.
! 	* lib/gcc-dg.exp: Use gcc-set-multilib-library-path.
! 	* lib/gfortran.exp (gfortran_link_flags): Likewise.
! 	* lib/objc.exp (objc_init): Likewise.
! 	* lib/treelang.exp (treelang_init): Likewise.
! 
! 2005-03-25  Pat Haugen  <pthaugen@us.ibm.com>
! 
! 	PR tree-optimization/20470
! 	* gcc.dg/tree-ssa/pr20470.c: New test.
! 
! 2005-03-25  Geoffrey Keating  <geoffk@apple.com>
! 
! 	* gcc.dg/ppc-stfiwx.c: New.
! 
! 2005-03-25  Steve Ellcey  <sje@cup.hp.com>
! 
! 	PR target/19888
! 	* g++.old-deja/g++.eh/badalloc1.C: increase arena_size on hpux.
! 
! 2005-03-25  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/20050325-1.c: Fix a typo.
! 
! 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  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	PR rtl-optimization/20249
! 	* gcc.dg/20050325-1.c: New test.
! 
! 2005-03-25  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
! 
! 	PR libfortran/15332
! 	* gfortran.dg/pr15332.f: New test.
! 
! 2005-03-24  Dale Johannesen  <dalej@apple.com>
! 
! 	* gcc.dg/20020919-1.c:  Fix for x86 Darwin.
  
  2005-03-24  Geoffrey Keating  <geoffk@apple.com>
  
***************
*** 1961,1989 ****
  
  	* 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>
  
--- 8563,8608 ----
  
  	* g++.dg/expr/cast3.C: New.
  
! 2005-03-24  David Edelsohn  <edelsohn@gnu.org>
  
! 	* gcc.c-torture/execute/20020720-1.x: XFAIL for all powerpc and
! 	rs6000.
  
! 2005-03-24  Steve Ellcey  <sje@cup.hp.com>
  
! 	PR target/20095
! 	* gcc.dg/cleanup-5.c: skip if ia64-hp-hpux11.*
! 
! 2005-03-24  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	* gcc.dg/badshift.c: Renamed to...
! 	* gcc.dg/torture/badshift.c: ... this.  Remove explicit -O1.
! 
! 	* gcc.target/i386/badshift.c: Renamed to...
! 	* gcc.dg/badshift.c: ... this.  Fix typo.  Use -march=i386 on i?86
! 	only.
! 
! 	PR rtl-optimization/20532
! 	* gcc.target/i386/badshift.c: New.
  
  2005-03-23  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	* gfortran.dg/pr18025.f90: New test.
  
+ 2005-03-23  Dale Johannesen  <dalej@apple.com>
+ 
+ 	* gcc.dg/20020312-2.c:  Fix for non-PowerPC Darwin.
+ 
  2005-03-23  Mark Mitchell  <mark@codesourcery.com>
  
  	* g++.old-deja/g++.warn/compare1.C: Run with -Wno-deprecated.
  
! 	* lib/target-supports.exp (check_iconv_available): Default
! 	libiconv to -liconv, if there is no definition.
  
! 2005-03-23  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	* gcc.dg/torture/cris-asm-mof-1.c: New test.
  
  2005-03-22  Mark Mitchell  <mark@codesourcery.com>
  
***************
*** 1994,1999 ****
--- 8613,8629 ----
  	* g++.dg/opt/pr7503-5.C: Likewise.
  	* g++.dg/warn/minmax.C: New test.
  
+ 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  Richard Guenther <rguenth@tat.physik.uni-tuebingen.de>
+ 	    Jan Hubicka  <jh@suse.cz>
+ 	    Steven Bosscher <stevenb@suse.de
+ 
+ 	* gcc.dg/winline-6.c: Modify so inlined function have nonzero cost.
+ 
  2005-03-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
  
  	PR c++/19980
***************
*** 2015,2021 ****
  	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.
--- 8645,8674 ----
  	PR c++/20381
  	* g++.dg/template/ptrmem12.C: New.
  
! 2005-03-22  Hans-Peter Nilsson  <hp@axis.com>
! 
! 	PR rtl-optimization/20527
! 	* gcc.c-torture/execute/pr20527-1.c: New test.
! 
! 2005-03-22  Ben Elliston  <bje@au.ibm.com>
! 
! 	* gcc.misc-tests/options.exp (check_for_options): Create a real C
! 	program, compile it into a real executable and then delete the .c
! 	and .x files afterwards, to avoid problems on testglue targets.
! 
! 2005-03-21  Stuart Hastings  <stuart@apple.com>
! 
! 	* gcc.target/i386/sse-2.c: New.
! 
! 2005-03-21  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* gcc.dg/builtins-46.c: Also check lrint* and llrint*.
! 
! 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
! 
! 	* g++.dg/parse/crash25.C: Fix typo.
! 
! 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
  
  	PR c++/20461
  	* g++.dg/parse/crash24.C: New test.
***************
*** 2023,2045 ****
  	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.
--- 8676,8693 ----
  	PR c++/20536
  	* g++.dg/parse/crash25.C: New test.
  
! 2005-03-21  Paolo Carlini  <pcarlini@suse.de>
  
! 	PR c++/20147
! 	* g++.dg/ext/stmtexpr4.C: New test.
  
! 2005-03-20  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-20  Joseph S. Myers  <joseph@codesourcery.com>
  
  	* gcc.dg/bitfld-14.c, gcc.dg/enum3.c: New tests.
***************
*** 2059,2076 ****
  	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>
  
--- 8707,8721 ----
  	PR c++/20333
  	* g++.dg/template/crash36.C: New test.
  
! 2005-03-18  Paolo Carlini  <pcarlini@suse.de>
  
! 	PR c++/20463
! 	* g++.dg/template/crash35.C: New test.
  
! 2005-03-17  Paolo Carlini  <pcarlini@suse.de>
! 
! 	PR c++/19966
! 	* g++.dg/overload/operator2.C: New test.
  
  2005-03-16  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
***************
*** 2082,2087 ****
--- 8727,8763 ----
  	PR libfortran/20480
  	* gfortran.dg/pr20480.f90: 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-15  Geoffrey Keating  <geoffk@apple.com>
+ 
+ 	* gcc.dg/cpp/ucnid-7.c: New.
+ 
+ 2005-03-15  Janis Johnson  <janis187@us.ibm.com>
+ 	    Dorit Naishlos  <dorit@il.ibm.com>
+ 
+ 	* lib/target-supports.exp (check_vmx_hw_available): Use -maltivec for
+ 	darwin.
+ 
+ 2005-03-15  Dorit Naishlos  <dorit@il.ibm.com>
+ 
+ 	* gcc.dg/vect/vect-54.c: Now vectorizable on targets that don't support
+ 	misaligned accesses.
+ 	* gcc.dg/vect/vect-58.c: Likewise.
+ 	* gcc.dg/vect/vect-92.c: New.
+ 	* gcc.dg/vect/vect-93.c: New.
+ 
  2005-03-15  Feng Wang  <fengwang@nudt.edu.cn>
  
  	PR fortran/18827
***************
*** 2097,2125 ****
  	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,
--- 8773,8856 ----
  	g++.dg/warn/deprecated.C: Ensure uniqueness of test assertion
  	names.
  
! 2005-03-14  Geoffrey Keating  <geoffk@apple.com>
  
! 	* gcc.dg/cpp/ucnid-6.c: New.
! 
! 	* gcc.dg/cpp/normalize-1.c: New.
! 	* gcc.dg/cpp/normalize-2.c: New.
! 	* gcc.dg/cpp/normalize-3.c: New.
! 	* gcc.dg/cpp/normalize-4.c: New.
! 	* gcc.dg/cpp/ucnid-4.c: New.
! 	* gcc.dg/cpp/ucnid-5.c: New.
! 	* g++.dg/cpp/normalize-1.C: New.
! 	* g++.dg/cpp/ucnid-1.C: New.
  
  2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
  
  	* gcc.dg/pr18628.c: New.
  
+ 2005-03-14  Alexandre Oliva  <aoliva@redhat.com>
+ 
+ 	PR c++/20280
+ 	* g++.dg/tree-ssa/pr20280.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  Zdenek Dvorak  <dvorakz@suse.cz>
  
! 	* gcc.dg/tree-ssa/phi-opt-5.c: New test.
! 
! 2005-03-14  Zdenek Dvorak  <dvorakz@suse.cz>
! 
! 	* gcc.dg/tree-ssa/20050314-1.c: New test.
! 
! 2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
! 
! 	PR c++/4403
! 	PR c++/9783, DR433
! 	* g++.dg/template/friend34.C: New test.
! 	* g++.dg/template/friend35.C: Likewise.
! 	* g++.old-deja/g++.pt/inherit2.C: Remove XFAIL's.
! 
! 2005-03-14  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
! 
! 	Friend class name lookup 5/n
! 	PR c++/1016
! 	* g++.dg/lookup/hidden-class1.C: New test.
! 	* g++.dg/lookup/hidden-class2.C: Likewise.
! 	* g++.dg/lookup/hidden-class3.C: Likewise.
! 	* g++.dg/lookup/hidden-class4.C: Likewise.
! 	* g++.dg/lookup/hidden-class5.C: Likewise.
! 	* g++.dg/lookup/hidden-class6.C: Likewise.
! 	* g++.dg/lookup/hidden-class7.C: Likewise.
! 	* g++.dg/lookup/hidden-class8.C: Likewise.
! 	* g++.dg/lookup/hidden-class9.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class1.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class2.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class3.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class4.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class5.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class6.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class7.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class8.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class9.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class10.C: Likewise.
! 	* g++.dg/lookup/hidden-temp-class11.C: Likewise.
  
  2005-03-13  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/20157
  	* g++.dg/template/error18.C: New test.
  
+ 2005-03-09  Ben Elliston  <bje@au.ibm.com>
+ 
+ 	PR debug/16792
+ 	* g++.dg/debug/pr16792.C: New test.
+ 
  2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
  
  	* gcc.dg/anon-struct-6.c, gcc.dg/array-8.c,
***************
*** 2131,2136 ****
--- 8862,8872 ----
  
  2003-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
  
+ 	PR fortran/18600
+ 	* gfortran.dg/stfunc_1.f90: New test.
+ 
+ 2003-03-13  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
+ 
  	PR fortran/16907
  	* gfortran.dg/real_index_1.f90: New test.
  
***************
*** 2139,2163 ****
  	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
--- 8875,8959 ----
  	PR fortran/20323
  	* gfortran.dg/spec_expr_1.f90: New test.
  
+ 2005-03-13  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/20402
+ 	* gcc.dg/noncompile/920923-1.c: Detail expected diagnostics for
+ 	new parser.
+ 
  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  Geoffrey Keating  <geoffk@apple.com>
! 
! 	* gcc.dg/ucnid-1.c: New.
! 	* gcc.dg/ucnid-2.c: New.
! 	* gcc.dg/ucnid-3.c: New.
! 	* gcc.dg/ucnid-4.c: New.
! 	* gcc.dg/ucnid-5.c: New.
! 	* gcc.dg/ucnid-6.c: New.
! 	* gcc.dg/cpp/ucnid-1.c: New.
! 	* gcc.dg/cpp/ucnid-2.c: New.
! 	* gcc.dg/cpp/ucnid-3.c: New.
! 	* g++.dg/other/ucnid-1.C: New.
! 
! 2005-03-12  Geoffrey Keating  <geoffk@apple.com>
! 
! 	* gcc.dg/vmx/darwin-abi-3.c: Delete.
! 
! 2005-03-11  Per Bothner  <per@bothner.com>
! 
! 	* gcc.dg/decl-2.c:  Add extra line breaks.  That way we can verify
! 	that diagnotics refer to correct token.
! 	* gcc.dg/unused-3.c: Likewise.
! 
! 2005-03-11  Per Bothner  <per@bothner.com>
! 
! 	* gcc.dg/cpp/direct2.c: With new lexer changes, error "before string
! 	constant" is now actually on same line as string constant.
! 	* gcc.dg/cpp/direct2s.c: Likewise.
! 
! 2005-03-11  Richard Sandiford  <rsandifo@redhat.com>
! 
! 	* gcc.target/mips/fix-vr4130-[1-4].c: New tests.
! 
! 2005-03-11  Francois-Xavier Coudert  <coudert@clipper.ens.fr>
  
  	PR libfortran/20124
  	* gfortran.dg/pr20124.f90: New Test
  
+ 2005-03-10  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	PR tree-optimization/20130
+ 	* gcc.dg/pr20130-1.c: New test.
+ 
+ 2005-03-10  Steve Ellcey  <sje@cup.hp.com>
+ 
+ 	PR target/20095
+ 	* gcc.dg/cleanup-5.c: xfail for ia64-hp-hpux11.*
+ 
  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  Steve Ellcey  <sje@cup.hp.com>
+ 
+ 	* g++.dg/eh/forced1.C: Fix comment.
+ 	* g++.dg/eh/forced2.C: Ditto.
+ 	* g++.dg/eh/forced3.C: Ditto.
+ 	* g++.dg/eh/forced4.C: Ditto.
+ 
  2005-03-10  Andrew Pinski  <pinskia@physics.uc.edu>
  
  	PR rtl-opt/20412
  	* gcc.c-torture/compile/pr20412.c: New test.
  
+ 2005-03-10  Roger Sayle  <roger@eyesopen.com>
+ 
+ 	* gcc.dg/builtins-32.c: Add new run-time tests for long double.
+ 
  2005-03-10  Jakub Jelinek  <jakub@redhat.com>
  
  	PR target/20322
***************
*** 2181,2191 ****
--- 8977,8998 ----
  
  	* gcc.dg/20050309-1.c: New test.
  
+ 2005-03-09  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
+ 
+ 	* gcc.dg/builtins-10.c: Reactivate disabled test.
+ 	* gcc.dg/torture/builtin-power-1.c: Likewise.  Also add tests for
+ 	new cbrt transformations.
+ 
  2005-03-09  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/20208
  	* g++.dg/template/array13.C: New test.
  
+ 2005-03-09  Paolo Carlini  <pcarlini@suse.de>
+ 
+ 	PR c++/16859
+ 	* g++.dg/init/brace4.C: New test.
+ 
  2005-03-09  Nathan Sidwell  <nathan@codesourcery.com>
  
  	PR c++/20186
***************
*** 2194,2204 ****
  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>
  
--- 9001,9051 ----
  2005-03-08  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/20142
+ 	* g++.dg/init/array18.C: Add dg-do run marker.
+ 
+ 	PR c++/20142
  	* g++.dg/init/array18.C: New test.
  
+ 2005-03-09  Ben Elliston  <bje@au.ibm.com>
+ 
+ 	* consistency.vlad/vlad.exp: Remove trailing semicolons.
+ 	* g++.dg/gcov/gcov.exp: Likewise.
+ 	* gcc.c-torture/execute/ieee/ieee.exp: Likewise.
+ 	* gcc.target/xstormy16/xstormy16.exp: Likewise.
+ 	* lib/c-torture.exp: Likewise.
+ 	* lib/fortran-torture.exp: Likewise.
+ 	* lib/g++.exp: Likewise.
+ 	* lib/gcc-defs.exp: Likewise.
+ 	* lib/gcc-dg.exp: Likewise.
+ 	* lib/gcc.exp: Likewise.
+ 	* lib/gcov.exp: Likewise.
+ 	* lib/gfortran.exp: Likewise.
+ 	* lib/mike-g++.exp: Likewise.
+ 	* lib/mike-gcc.exp: Likewise.
+ 	* lib/objc-torture.exp: Likewise.
+ 	* lib/objc.exp: Likewise.
+ 	* lib/profopt.exp: Likewise.
+ 	* lib/target-libpath.exp: Likewise.
+ 	* lib/target-supports.exp: Likewise.
+ 	* lib/treelang.exp: Likewise.
+ 	* lib/wrapper.exp: Likewise.
+ 
+ 2005-03-08  Jeff Law  <law@redhat.com>
+ 
+ 	* gcc.dg/tree-ssa/20030728-1.c: Update to account for recent
+ 	PHI-OPT changes.
+ 
  2005-03-08  Ira Rosen  <irar@il.ibm.com>
  
! 	* gcc.dg/vect/pr20122.c: New test.
! 
! 2005-03-07  Jeff Law  <law@redhat.com>
! 
! 	* gcc.dg/tree-ssa/20030821-1.c: Verify that the computed goto
! 	was folded away.
! 	* gcc.dg/tree-ssa/pr18133-1.c: New test.
! 	* gcc.dg/tree-ssa/pr18133-2.c: New test.
! 	* gcc.dg/tree-ssa/pr18134.c: New test.
  
  2005-03-07  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
  
***************
*** 2206,2211 ****
--- 9053,9063 ----
  	* 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-06  Andrew Pinski  <pinskia@physics.uc.edu>
+ 
+ 	PR tree-opt/17671
+ 	* gcc.dg/tree-ssa/phi-opt-[1-4].c: New tests.
+ 
  2005-03-07  Mark Mitchell  <mark@codesourcery.com>
  
  	* g++.dg/warn/Wnvdtor.C: New test.
***************
*** 2217,2242 ****
  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>
  
--- 9069,9094 ----
  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>
  
***************
*** 2250,2295 ****
  
  	* 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>
  
--- 9102,9176 ----
  
  	* objc.dg/stabs-1.m: hppa*64*-*-* doesn't have stabs.
  
  2005-03-05  Steven G. Kargl  <kargls@comcast.net>
  
  	* gfortran.dg/pr19936_1.f90: New test.
! 	* gfortran.dg/pr19936_2.f90: New test.
! 	* gfortran.dg/pr19936_3.f90: New test.
  
! 2005-03-05  Steven G. Kargl  <kargls@comcast.net>
!             Paul Thomas <prthomas@drfccad.cea.fr>
  
  	* gfortran.dg/PR19754_1.f90: New test.
! 	* gfortran.dg/PR19754_2.f90: Ditto.
  
! 2005-03-05  Kriang Lerdsuwanakij  <lerdsuwa@users.sourceforge.net>
! 
! 	PR c++/19311
! 	* g++.dg/template/non-dependent11.C: New test.
! 
! 2005-03-05  Uros Bizjak  <uros@kss-loka.si>
! 
! 	* lib/target-supports.exp (check_iconv_available): Fix comment.
! 
! 2005-03-04  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  Matthew Sachs  <msachs@apple.com>
+ 
+ 	* gcc.exp (gcc_target_compile): Put braces around
+ 	additional_flags=$TOOL_OPTIONS; allows for whitespace in $TOOL_OPTIONS.
+ 	* objc.exp (objc_target_compile): Likewise.
+ 	* treelang.exp (treelang_target_compile): Likewise.
+ 
  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  Ben Elliston  <bje@au.ibm.com>
+ 
+ 	* gcc.misc-tests/options.exp: New test.
+ 
+ 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
+ 
+ 	* gcc.dg/pr15784-4.c: New test.
+ 
+ 2005-03-03  Geoffrey Keating  <geoffk@apple.com>
+ 
+ 	* gcc.c-torture/execute/pr17133.c: New.
+ 	* gcc.c-torture/compile/20050303-1.c: New.
+ 
  2005-03-04  David Billinghurst  <David.Billinghurst@riotinto.com>
  
! 	* gcc.dg/cpp/assert4.c:  Fix for cygwin
! 
! 2005-03-02  Alexandre Oliva  <aoliva@redhat.com>
! 
! 	* g++.dg/overload/using2.C: New.
  
  2005-03-02  Mark Mitchell  <mark@codesourcery.com>
  
  	PR c++/19916
  	* g++.dg/init/ptrmem2.C: New test.
  
! 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
  
! 	PR c/8927
! 	* gcc.dg/pr8927-1.c: New test.
  
  2005-03-01  Nathan Sidwell  <nathan@codesourcery.com>
  
***************
*** 2301,2311 ****
--- 9182,9208 ----
  	PR fortran/19479
  	* gfortran.dg/bound_1.f90: New test.
  
+ 2005-02-28  Janis Johnson  <janis187@us.ibm.com>
+ 
+ 	* gcc.test-framework/dg-error-exp-P.c: Update message for new C parser.
+ 	* gcc.test-framework/dg-error-exp-XP.c: Ditto.
+ 
+ 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
+ 
+ 	PR c/20245
+ 	* gcc.dg/pr20245-1.c: 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-28  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-02-27  Steven G. Kargl  <kargl@gcc.gnu.org>
  
  	* gfortran.dg/boz_1.f90: New test.
***************
*** 2315,2338 ****
  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.
--- 9212,9239 ----
  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  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  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
! 
! 	* gfortran.dg/e_d_fmt.f90: New test.
! 
! 2005-02-27  Kazu Hirata  <kazu@cs.umass.edu>
! 
! 	* gcc.dg/asm-b.c: Fix comment typos.
! 
! 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
  
  	* gcc.dg/tree-ssa/inline_asm-2.c: link_error produces
  	a V_MAY_DEF also.
***************
*** 2349,2354 ****
--- 9250,9261 ----
  	* 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
***************
*** 3938,3944 ****
  	PR c++/18378
  	* g++.dg/ext/packed8.C: New test.
  
! 	PR c++/13268
  	* g++.dg/template/crash31.C: New test.
  
  	PR c++/19034
--- 10845,10851 ----
  	PR c++/18378
  	* g++.dg/ext/packed8.C: New test.
  
! 	PR c++/19063
  	* g++.dg/template/crash31.C: New test.
  
  	PR c++/19034
***************
*** 20488,20494 ****
  
  	* gcc.dg/cpp/expr.c: New tests.
  
! 2002 07-18  David Edelsohn  <edelsohn@gnu.org>
  
  	* g++.dg/opt/pr6713.C: Add template instantiation.
  
--- 27395,27401 ----
  
  	* gcc.dg/cpp/expr.c: New tests.
  
! 2002-07-18  David Edelsohn  <edelsohn@gnu.org>
  
  	* g++.dg/opt/pr6713.C: Add template instantiation.
  
***************
*** 22696,22702 ****
  	* gcc.dg/altivec-4.c: Make the 'char' entries signed also for
  	consistency.
  
! 002-01-07  Aldy Hernandez  <aldyh@redhat.com>
  
  	* gcc.dg/altivec-4.c: Test altivec predicates.
  
--- 29603,29609 ----
  	* gcc.dg/altivec-4.c: Make the 'char' entries signed also for
  	consistency.
  
! 2002-01-07  Aldy Hernandez  <aldyh@redhat.com>
  
  	* gcc.dg/altivec-4.c: Test altivec predicates.
  
*************** Wed May 23 2001  Jeffrey D. Oldham  <old
*** 24624,24634 ****
  
  	* g++.old-deja/g++.other/warn6.C: New test.
  
! 22001-04-11  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
  
  	* g++.old-deja/g++.robertl/eb42.C: Same.
  
! 001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
  
  	* gcc.dg/wtr-conversion-1.c: New testcase.
  
--- 31531,31541 ----
  
  	* g++.old-deja/g++.other/warn6.C: New test.
  
! 2001-04-11  Peter Schmid  <schmid@snake.iap.physik.tu-darmstadt.de>
  
  	* g++.old-deja/g++.robertl/eb42.C: Same.
  
! 2001-04-10  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
  
  	* gcc.dg/wtr-conversion-1.c: New testcase.
  
*************** Thu Apr 27 15:58:18 MET DST 2000  Jan Hu
*** 28746,28752 ****
  
  	* gcc.c-torture/compile/labels-2.c: New test.
  
! 1999-12-27  Martin von L$(0!;(Bis  <loewis@informatik.hu-berlin.de>
  
  	* gcc.c-torture/execute/991227-1.c: New test.
  
--- 35653,35659 ----
  
  	* gcc.c-torture/compile/labels-2.c: New test.
  
! 1999-12-27  Martin von L�ŻÂżÂ½is  <loewis@informatik.hu-berlin.de>
  
  	* gcc.c-torture/execute/991227-1.c: New test.
  
*************** Thu Apr 27 15:58:18 MET DST 2000  Jan Hu
*** 28754,28760 ****
  
  	* g++.old-deja/g++.pt/instantiate6.C: Remove excess errors XFAIL.
  
! 1999-12-21  Martin von L$(0!;(Bis  <loewis@informatik.hu-berlin.de>
  
  	* gcc.c-torture/execute/991221-1.c: New test.
  
--- 35661,35667 ----
  
  	* g++.old-deja/g++.pt/instantiate6.C: Remove excess errors XFAIL.
  
! 1999-12-21  Martin von L�ŻÂżÂ½is  <loewis@informatik.hu-berlin.de>
  
  	* gcc.c-torture/execute/991221-1.c: New test.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/norun.lst gcc-4.1.0/gcc/testsuite/ada/acats/norun.lst
*** gcc-4.0.2/gcc/testsuite/ada/acats/norun.lst	Fri Jan 14 08:03:20 2005
--- gcc-4.1.0/gcc/testsuite/ada/acats/norun.lst	Mon Jan 23 17:22:40 2006
***************
*** 1,6 ****
--- 1,10 ----
  c380004
+ c52103x
+ c52104x
+ c52104y
  cdd2a03
  templat
  # Tests must be sorted in alphabetical order
  # c380004: should be front-end compile time error, PR ada/18817
+ # c52103x, c52104x, c52104y: -fstack-check doesn't work in 4.x, PR ada/20548
  # cdd2a03: new Ada ruling not supported yet, PR ada/19323
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/run_acats gcc-4.1.0/gcc/testsuite/ada/acats/run_acats
*** gcc-4.0.2/gcc/testsuite/ada/acats/run_acats	Wed Nov 24 04:52:40 2004
--- gcc-4.1.0/gcc/testsuite/ada/acats/run_acats	Thu Feb  9 17:26:14 2006
*************** BASE=`cd $ROOT/../../..; ${PWDCMD-pwd}`
*** 14,20 ****
  
  PATH=$BASE:$ROOT:$PATH
  ADA_INCLUDE_PATH=$BASE/ada/rts
! LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$LD_LIBRARY_PATH
  ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH
  
  if [ ! -d $ADA_INCLUDE_PATH ]; then
--- 14,20 ----
  
  PATH=$BASE:$ROOT:$PATH
  ADA_INCLUDE_PATH=$BASE/ada/rts
! LD_LIBRARY_PATH=$ADA_INCLUDE_PATH:$BASE:$LD_LIBRARY_PATH
  ADA_OBJECTS_PATH=$ADA_INCLUDE_PATH
  
  if [ ! -d $ADA_INCLUDE_PATH ]; then
*************** echo exec $host_gnatmake '"$@"' >> host_
*** 52,55 ****
  
  chmod +x host_gnatmake
  
! exec $testdir/run_all.sh "$@"
--- 52,55 ----
  
  chmod +x host_gnatmake
  
! exec $testdir/run_all.sh ${1+"$@"}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/run_all.sh gcc-4.1.0/gcc/testsuite/ada/acats/run_all.sh
*** gcc-4.0.2/gcc/testsuite/ada/acats/run_all.sh	Sun Apr 24 19:19:07 2005
--- gcc-4.1.0/gcc/testsuite/ada/acats/run_all.sh	Mon Jan 23 17:22:40 2006
*************** for chapter in $chapters; do
*** 215,220 ****
--- 215,224 ----
        if [ $? -eq 0 ]; then
           extraflags="$extraflags -gnatE"
        fi
+       grep $i $testdir/stackcheck.lst > /dev/null 2>&1
+       if [ $? -eq 0 ]; then
+          extraflags="$extraflags -fstack-check"
+       fi
        test=$dir/tests/$chapter/$i
        mkdir $test && cd $test >> $dir/acats.log 2>&1
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/stackcheck.lst gcc-4.1.0/gcc/testsuite/ada/acats/stackcheck.lst
*** gcc-4.0.2/gcc/testsuite/ada/acats/stackcheck.lst	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/ada/acats/stackcheck.lst	Mon Jan 23 17:22:40 2006
***************
*** 0 ****
--- 1,3 ----
+ c52103x
+ c52104x
+ c52104y
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/support/impdef.a gcc-4.1.0/gcc/testsuite/ada/acats/support/impdef.a
*** gcc-4.0.2/gcc/testsuite/ada/acats/support/impdef.a	Mon Oct 27 11:28:49 2003
--- gcc-4.1.0/gcc/testsuite/ada/acats/support/impdef.a	Thu Jan 26 20:40:46 2006
*************** package ImpDef is
*** 339,344 ****
--- 339,345 ----
  --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====--
  
     One_Second : constant Duration := 0.001;
+    One_Long_Second : constant Duration := 0.1;
  
  end ImpDef;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/tests/c3/c352001.a gcc-4.1.0/gcc/testsuite/ada/acats/tests/c3/c352001.a
*** gcc-4.0.2/gcc/testsuite/ada/acats/tests/c3/c352001.a	Mon Oct 27 11:28:50 2003
--- gcc-4.1.0/gcc/testsuite/ada/acats/tests/c3/c352001.a	Thu Jan  1 00:00:00 1970
***************
*** 1,270 ****
- --
- -- C352001.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 predefined Character type comprises 256 positions.  
- --      Check that the names of the non-graphic characters are usable with 
- --      the attributes (Wide_)Image and (Wide_)Value, and that these
- --      attributes produce the correct result.
- --                 
- -- TEST DESCRIPTION:
- --      Build two tables of nongraphic characters from positions of Row 00 
- --      (0000-001F and 007F-009F) of the ISO 10646 Basic Multilingual Plane.
- --      Fill the first table with compiler created strings. Fill the second 
- --      table with strings defined by the language.  Compare the two tables.  
- --      Check 256 positions of the predefined character type.  Use attributes 
- --      (Wide_)Image and (Wide_)Value to check the values of the non-graphic 
- --      characters and the last 2 characters.
- --
- --
- -- CHANGE HISTORY:
- --      20 Jun 95   SAIC    Initial prerelease version.
- --      27 Jan 96   SAIC    Revised for 2.1.  Hid values, added "del" case.
- --
- --!
- 
- with Ada.Characters.Handling;
- with Report;
- procedure C352001 is
- 
-    Lower_Bound  : Integer  :=  0;
-    Middle_Bound : Integer  := 31;
-    Upper_Bound  : Integer  := 159;
-    Half_Bound   : Integer  := 127;
-    Max_Bound    : Integer  := 255;
- 
-    type Dyn_String is access String;
-    type Value_Result is array (Character) of Dyn_String;
- 
-    Table_Of_Character : Value_Result;
-    TC_Table           : Value_Result;
- 
-    function CVII(K : Natural) return Character is
-    begin
-      return Character'Val( Report.Ident_Int(K) );
-    end CVII;
- 
-    function "=" (L, R : String) return Boolean is
-       UCL : String (L'First .. L'Last);
-       UCR : String (R'First .. R'last);
-    begin
-       UCL := Ada.Characters.Handling.To_Upper (L);
-       UCR := Ada.Characters.Handling.To_Upper (R);
-       if UCL'Last /= UCR'Last then 
-          return False;
-       else
-          for I in UCL'First .. UCR'Last loop
-             if UCL (I) /= UCR (I) then 
-                return False;
-             end if;
-          end loop;
-          return True;
-        end if;
-    end "=";
- 
- begin
- 
-    Report.Test ("C352001", "Check that, the predefined Character type "     &
-                 "comprises 256 positions.  Check that the names of the "    &
-                 "non-graphic characters are usable with the attributes "    &
-                 "(Wide_)Image and (Wide_)Value, and that these attributes " &
-                 "produce the correct result");
- 
-    -- Fill table with strings (positions of Row 00 (0000-001F) of the ISO 
-    -- 10646 Basic Multilingual Plane created by the compiler.
- 
-    for I in CVII(Lower_Bound) .. CVII(Middle_Bound) loop
-       Table_Of_Character (I) := new String'(Character'Image(I));
-    end loop;
- 
-    -- Fill table with strings (positions of Row 00 (007F-009F) of the ISO 
-    -- 10646 Basic Multilingual Plane created by the compiler.
- 
-    for I in CVII(Half_Bound) .. CVII(Upper_Bound) loop
-       Table_Of_Character (I) := new String'(Character'Image(I));
-    end loop;
- 
-    -- Fill table with strings (positions of Row 00 (0000-001F) of the ISO 
-    -- 10646 Basic Multilingual Plane defined by the language.
- 
-    TC_Table (CVII(0))   := new String'("nul");
-    TC_Table (CVII(1))   := new String'("soh");
-    TC_Table (CVII(2))   := new String'("stx");
-    TC_Table (CVII(3))   := new String'("etx");
-    TC_Table (CVII(4))   := new String'("eot");
-    TC_Table (CVII(5))   := new String'("enq");
-    TC_Table (CVII(6))   := new String'("ack");
-    TC_Table (CVII(7))   := new String'("bel"); 
-    TC_Table (CVII(8))   := new String'("bs");
-    TC_Table (CVII(9))   := new String'("ht");
-    TC_Table (CVII(10))  := new String'("lf");
-    TC_Table (CVII(11))  := new String'("vt");
-    TC_Table (CVII(12))  := new String'("ff");
-    TC_Table (CVII(13))  := new String'("cr");
-    TC_Table (CVII(14))  := new String'("so");
-    TC_Table (CVII(15))  := new String'("si");
-    TC_Table (CVII(16))  := new String'("dle");
-    TC_Table (CVII(17))  := new String'("dc1");
-    TC_Table (CVII(18))  := new String'("dc2");
-    TC_Table (CVII(19))  := new String'("dc3");
-    TC_Table (CVII(20))  := new String'("dc4");
-    TC_Table (CVII(21))  := new String'("nak");
-    TC_Table (CVII(22))  := new String'("syn");
-    TC_Table (CVII(23))  := new String'("etb");
-    TC_Table (CVII(24))  := new String'("can");
-    TC_Table (CVII(25))  := new String'("em");
-    TC_Table (CVII(26))  := new String'("sub");
-    TC_Table (CVII(27))  := new String'("esc");
-    TC_Table (CVII(28))  := new String'("fs");
-    TC_Table (CVII(29))  := new String'("gs");
-    TC_Table (CVII(30))  := new String'("rs");
-    TC_Table (CVII(31))  := new String'("us");
-    TC_Table (CVII(127)) := new String'("del");
- 
-    -- Fill table with strings (positions of Row 00 (007F-009F) of the ISO 
-    -- 10646 Basic Multilingual Plane defined by the language.
- 
-    TC_Table (CVII(128)) := new String'("reserved_128");
-    TC_Table (CVII(129)) := new String'("reserved_129");
-    TC_Table (CVII(130)) := new String'("bph");
-    TC_Table (CVII(131)) := new String'("nbh");
-    TC_Table (CVII(132)) := new String'("reserved_132");
-    TC_Table (CVII(133)) := new String'("nel");
-    TC_Table (CVII(134)) := new String'("ssa");
-    TC_Table (CVII(135)) := new String'("esa");
-    TC_Table (CVII(136)) := new String'("hts");
-    TC_Table (CVII(137)) := new String'("htj");
-    TC_Table (CVII(138)) := new String'("vts");
-    TC_Table (CVII(139)) := new String'("pld");
-    TC_Table (CVII(140)) := new String'("plu");
-    TC_Table (CVII(141)) := new String'("ri");
-    TC_Table (CVII(142)) := new String'("ss2");
-    TC_Table (CVII(143)) := new String'("ss3");
-    TC_Table (CVII(144)) := new String'("dcs");
-    TC_Table (CVII(145)) := new String'("pu1");
-    TC_Table (CVII(146)) := new String'("pu2");
-    TC_Table (CVII(147)) := new String'("sts");
-    TC_Table (CVII(148)) := new String'("cch");
-    TC_Table (CVII(149)) := new String'("mw");
-    TC_Table (CVII(150)) := new String'("spa");
-    TC_Table (CVII(151)) := new String'("epa");
-    TC_Table (CVII(152)) := new String'("sos");
-    TC_Table (CVII(153)) := new String'("reserved_153");
-    TC_Table (CVII(154)) := new String'("sci");
-    TC_Table (CVII(155)) := new String'("csi");
-    TC_Table (CVII(156)) := new String'("st");
-    TC_Table (CVII(157)) := new String'("osc");
-    TC_Table (CVII(158)) := new String'("pm");
-    TC_Table (CVII(159)) := new String'("apc");
- 
- 
-    -- Compare the first half of two tables.
-    for I in CVII(Lower_Bound) .. CVII(Middle_Bound) loop
-      if TC_Table(I).all /= Table_Of_Character(I).all then
-        Report.Failed("Value of character#" & Integer'Image(Character'Pos(I)) &
-                      " is not the same in the first half of the table");
-      end if;
-    end loop;
- 
- 
-    -- Compare the second half of two tables.
-    for I in CVII(Half_Bound) .. CVII(Upper_Bound) loop
-      if TC_Table(I).all /= Table_Of_Character(I).all then
-        Report.Failed("Value of character#" & Integer'Image(Character'Pos(I)) &
-                      " is not the same in the second half of the table");
-      end if;
-    end loop;
- 
- 
-    -- Check the first character.
-    if Character'Image( Character'First ) /= "NUL" then
-       Report.Failed("Value of character#"                           &
-                      Integer'Image(Character'Pos (Character'First)) &
-                     " is not NUL");
-    end if;
- 
- 
-    -- Check that the names of the non-graphic characters are usable with
-    -- Image and Value attributes.
-    if Character'Value( Character'Image( CVII(153) )) /= 
-      CVII( 153 ) then
-         Report.Failed ("Value of character#"                       &
-                         Integer'Image( Character'Pos(CVII(153)) )  &
-                        " is not reserved_153");
-    end if;
- 
- 
-    for I in CVII(Lower_Bound) .. CVII(Max_Bound) loop
-      if Character'Value( 
-           Report.Ident_Str(
-             Character'Image(CVII(Character'Pos(I)))))
-         /= CVII( Character'Pos(I)) then
-           Report.Failed ("Value of character#"                             &
-                           Integer'Image( Character'Pos(I) )                &
-                          " is not the same as the predefined character type");
-      end if;
-    end loop;
- 
- 
-    -- Check Wide_Character attributes.
-    for I in Wide_Character'Val(Lower_Bound) .. Wide_Character'Val(Max_Bound) 
-    loop
-      if Wide_Character'Wide_Value(
-           Report.Ident_Wide_Str(
-             Wide_Character'Wide_Image(
-               Wide_Character'Val(Wide_Character'Pos(I)))))
-         /= Wide_Character'Val(Wide_Character'Pos(I)) 
-      then
-         Report.Failed ("Value of the predefined Wide_Character type " &
-                        "is not correct");
-      end if;
-    end loop;
- 
- 
-    if Wide_Character'Value( Wide_Character'Image(Wide_Character'Val(132)) ) 
-      /= Wide_Character'Val( Report.Ident_Int(132) ) then
-         Report.Failed ("Wide_Character at 132 is not reserved_132");
-    end if;
- 
- 
-    if Wide_Character'Image( Wide_Character'First ) /= "NUL" then
-       Report.Failed ("Wide_Character'First is not NUL");
-    end if;
- 
- 
-    if Wide_Character'Image 
-      (Wide_Character'Pred (Wide_Character'Last) ) /= "FFFE" then
-       Report.Failed ("Wide_Character at 65534 is not FFFE");
-    end if;
-   
-     
-    if Wide_Character'Image(Wide_Character'Last) /= "FFFF" then
-       Report.Failed ("Wide_Character'Last is not FFFF");
-    end if;
- 
-    Report.Result;
- 
- end C352001;
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c954025.a gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c954025.a
*** gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c954025.a	Mon Oct 27 11:28:54 2003
--- gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c954025.a	Thu Jan 26 20:40:46 2006
*************** with Report;
*** 53,63 ****
  with ImpDef;
  procedure C954025 is
    Verbose : constant Boolean := False;
!   Countdown_Amount : constant Duration := 2.0 * Impdef.One_Second;
    Plenty_Of_Time : constant Duration := 
!          Countdown_Amount + ImpDef.Clear_Ready_Queue + 1.0 * Impdef.One_Second;
    Not_Enough_Time : constant Duration :=
!          Countdown_Amount - 0.5 * Impdef.One_Second;
  begin
    Report.Test ("C954025",
                 "Check that if the original entry" &
--- 53,63 ----
  with ImpDef;
  procedure C954025 is
    Verbose : constant Boolean := False;
!   Countdown_Amount : constant Duration := 2.0 * Impdef.One_Long_Second;
    Plenty_Of_Time : constant Duration := 
!          Countdown_Amount + ImpDef.Clear_Ready_Queue + 1.0 * Impdef.One_Long_Second;
    Not_Enough_Time : constant Duration :=
!          Countdown_Amount - 0.5 * Impdef.One_Long_Second;
  begin
    Report.Test ("C954025",
                 "Check that if the original entry" &
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c954026.a gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c954026.a
*** gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c954026.a	Mon Oct 27 11:28:54 2003
--- gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c954026.a	Thu Jan 26 20:40:46 2006
*************** with Impdef;
*** 58,67 ****
  procedure C954026 is
      Verbose : constant Boolean := False;
      Final_Po_Reached : Boolean := False;
!     Allowed_Time : constant Duration := 2.0 * Impdef.One_Second;
      Plenty_Of_Time : constant Duration :=
!        Allowed_Time + Impdef.Clear_Ready_Queue + 1.0 * Impdef.One_Second;
!     Not_Enough_Time : constant Duration := Allowed_Time - 0.5 * Impdef.One_Second;
  begin
      Report.Test ("C954026",
                   "Check that if the original entry" &
--- 58,67 ----
  procedure C954026 is
      Verbose : constant Boolean := False;
      Final_Po_Reached : Boolean := False;
!     Allowed_Time : constant Duration := 2.0 * Impdef.One_Long_Second;
      Plenty_Of_Time : constant Duration :=
!        Allowed_Time + Impdef.Clear_Ready_Queue + 1.0 * Impdef.One_Long_Second;
!     Not_Enough_Time : constant Duration := Allowed_Time - 0.5 * Impdef.One_Long_Second;
  begin
      Report.Test ("C954026",
                   "Check that if the original entry" &
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c97305c.ada gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c97305c.ada
*** gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c97305c.ada	Mon Oct 27 11:28:54 2003
--- gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c97305c.ada	Thu Jan 26 20:40:46 2006
*************** BEGIN
*** 56,62 ****
  
            TASK BODY T IS
            BEGIN
!                DELAY 10.0 * Impdef.One_Second;
                 ACCEPT E (B : IN OUT BOOLEAN) DO
                      B := IDENT_BOOL (TRUE);
                 END E;
--- 56,62 ----
  
            TASK BODY T IS
            BEGIN
!                DELAY 10.0 * Impdef.One_Long_Second;
                 ACCEPT E (B : IN OUT BOOLEAN) DO
                      B := IDENT_BOOL (TRUE);
                 END E;
*************** BEGIN
*** 68,74 ****
                 T.E (RENDEZVOUS_OCCURRED);
                 STATEMENTS_AFTER_CALL_EXECUTED := IDENT_BOOL (TRUE);
            OR
!                DELAY DELAY_IN_MINUTES * 60.0 * Impdef.One_Second;
                 FAILED ("TIMED ENTRY CALL NOT ACCEPTED AFTER" &
                         POSITIVE'IMAGE(DELAY_IN_MINUTES) &
                         " MINUTES ELAPSED");
--- 68,74 ----
                 T.E (RENDEZVOUS_OCCURRED);
                 STATEMENTS_AFTER_CALL_EXECUTED := IDENT_BOOL (TRUE);
            OR
!                DELAY DELAY_IN_MINUTES * 60.0 * Impdef.One_Long_Second;
                 FAILED ("TIMED ENTRY CALL NOT ACCEPTED AFTER" &
                         POSITIVE'IMAGE(DELAY_IN_MINUTES) &
                         " MINUTES ELAPSED");
diff -Nrcpad gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c99004a.ada gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c99004a.ada
*** gcc-4.0.2/gcc/testsuite/ada/acats/tests/c9/c99004a.ada	Mon Oct 27 11:28:54 2003
--- gcc-4.1.0/gcc/testsuite/ada/acats/tests/c9/c99004a.ada	Thu Jan 26 20:40:46 2006
*************** BEGIN
*** 113,119 ****
            BEGIN
                 ACCEPT E (1);
                 ABORT PKG1.T1;
!                DELAY 5.0 * Impdef.One_Second;
                 D1 := CHECK ("F", F'CALLABLE, FALSE,
                               F'TERMINATED, TRUE, D);
            END MAIN_TASK;
--- 113,119 ----
            BEGIN
                 ACCEPT E (1);
                 ABORT PKG1.T1;
!                DELAY 5.0 * Impdef.One_Long_Second;
                 D1 := CHECK ("F", F'CALLABLE, FALSE,
                               F'TERMINATED, TRUE, D);
            END MAIN_TASK;
*************** BEGIN
*** 153,159 ****
            BEGIN
                 ACCEPT E (1);
                 ABORT T2;
!                DELAY 5.0 * Impdef.One_Second;
                 D2 := CHECK ("T2", T2'CALLABLE, FALSE,
                               T2'TERMINATED, TRUE, D);
            END MAIN_TASK;
--- 153,159 ----
            BEGIN
                 ACCEPT E (1);
                 ABORT T2;
!                DELAY 5.0 * Impdef.One_Long_Second;
                 D2 := CHECK ("T2", T2'CALLABLE, FALSE,
                               T2'TERMINATED, TRUE, D);
            END MAIN_TASK;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/config/default.exp gcc-4.1.0/gcc/testsuite/config/default.exp
*** gcc-4.0.2/gcc/testsuite/config/default.exp	Thu Feb  8 02:29:36 2001
--- gcc-4.1.0/gcc/testsuite/config/default.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,17 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  load_lib "standard.exp"
--- 12,17 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  load_lib "standard.exp"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/README gcc-4.1.0/gcc/testsuite/consistency.vlad/README
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/README	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/README	Thu Jan  1 00:00:00 1970
***************
*** 1,66 ****
-   This directory contains tests and scripts for consistency checking
- compilers.  They could be used for consistency checking different
- C/C++ compiler for one platform or C/C++ compilers for different
- platforms.
- 
-   For example, to check the consistency, you could type
- 
-    make check-consistency RUNTESTFLAGS='BASE_COMPILER=i960-97r2 CONSISTENCY_OPTIONS="-O2 -fvtable-thunks -mno-strict-align -fno-rtti -fcheck-new -mcall-i960-old -mlittle-endian" NO_LONG_DOUBLE=1 NO_LIBGLOSS_LIBRARY_OPTIONS=1'
- 
-   In this example, DEJAGNU driver vlad.exp will process all C/C++
- tests in all subdirectories (e.g. layout) started with lower case
- letter.  C tests (with suffixes .c) will be compiled by C compiler
- only.  C++ tests will be compiled by C and C++ compilers.  It is
- supposed that each test outputs the result which is saved in temp_dir
- as
-    <basename of the test>.out
- or
-    <basename of the test>.out++
- 
- correspondingly for C compiler and C++ compiler.  For example, there
- will be two output files
- 
-    `align-double.out' and `align-double.out++'
- 
- for test `align-double.c'.
- 
-   After this if there is subdirectory <BASE_COMPILER>-results
- (`i960-97r2-results' in our example) and there is corresponding saved
- output file for the base compiler the the files are compared in order
- to check consistency.
- 
-   To create the base for future comparisons of output files, you
- should create the directory and move output files from the temporary
- directory into the created directory.
- 
- The test script file has the following parameters
- 
-  1. BASE_COMPILER.  The variable must be defined for work the script
-     properly.
- 
-  2. CONSISTENCY_OPTIONS.  The options which will be used for
-     compilations.  The default value is "-O2".
- 
-  3. NO_LONG_DOUBLE.  If the variable value is not zero, the tests
-     which contain long double are expected to be fail.
- 
-  4. NO_LIBGLOSS_LIBRARY_OPTIONS.  If the variable value is not zero,
-     the tests are compiled without standard dejagnu libgloss library
-     paths.
- 
-   Currently, there is directory `layout' for checking allocation
- parameters of C/C++ compiler and subdirectory i960-97r2 which contains
- the test results for 97r2 i960-vxworks C/C++ compiler.
- 
-   You can create other consistency tests.  Simply, create a directory
- started with lower case letter, place the tests and create the
- subdirectory with the test results for a base compiler.  If you need
- to compile tests in a directory with a wrap file simply place the file
- name (e.g. _dummy_stab.S) in file WRAP_FILE in the test directory.
- 
-   The tests will be only compiled (and the test results will not be
- compared) if you place <basename of the test>.conly in the directory
- of the test.  You can use own driver for checking consistency.  To
- make this, place the TCL script with name <basename of the test>.cexp.
- 
- Vladimir Makarov <vmakarov@cygnus.com>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-char.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static char a [10];
- static char e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array char:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-double.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static double a [10];
- static double e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array double:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-float.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static float a [10];
- static float e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array float:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-int.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static int a [10];
- static int e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array int:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-long.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static long a [10];
- static long e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array long:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-longdouble.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static long double a [10];
- static long double e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array longdouble:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-longlong.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static long long a [10];
- static long long e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array longlong:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-char.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with char:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-double.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with double:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-float.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with float:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-int.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with int:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-long.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with long:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-longdouble.c	Mon Feb 12 19:39:54 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with longdouble:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-longlong.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with longlong:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-pointer.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with pointer:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-ptrdiff_t.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with ptrdiff_t:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-of-s-short.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-of-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
- } a[10];
- 
- int main (void) {
-   printf ("++++Array of struct with short:\n");
-   printf ("size=%d,align=%d,displ-a[5]=%d,align-a[5]=%d\n",
-           sizeof (a), __alignof__ (a), (char*)&a[5] - (char*)a, __alignof__ (a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-pointer.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static char * a [10];
- static char * e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array pointer:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-ptrdiff_t.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static ptrdiff_t a [10];
- static ptrdiff_t e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array ptrdiff_t:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-short.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- #include <stdio.h>
- 
- static short a [10];
- static short e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array short:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-size_t.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static size_t a [10];
- static size_t e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array size_t:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/a-wchar_t.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/a-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static wchar_t a [10];
- static wchar_t e [0]; /* GCC only */
- 
- int main (void) {
-   printf ("+++Array wchar_t:\n");
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (a), __alignof__ (a),
-           (char *) &a[5] - (char *) a, __alignof__ (a[5]));
-   printf ("size=%d,align=%d,5th-elem-offset=%d,5th-elem-align=%d\n",
-           sizeof (e), __alignof__ (e),
-           (char *) &e[5] - (char *) a, __alignof__ (e[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-bool.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-bool.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-bool.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-bool.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static bool bbb;
- 
- int main(void)
- {
-   printf ("+++Bool alignment:\n");
-   printf ("%d\n", __alignof__ (bbb));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-char.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static char ccc;
- 
- int main(void)
- {
-   printf ("+++Char alignment:\n");
-   printf ("%d\n", __alignof__ (ccc));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-double.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static double d;
- 
- int main(void)
- {
-   printf ("+++Double alignment:\n");
-   printf ("%d\n", __alignof__ (d));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-float.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static float f;
- 
- int main(void)
- {
-   printf ("+++Float alignment:\n");
-   printf ("%d\n", __alignof__ (f));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-int.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static int i;
- 
- int main(void)
- {
-   printf ("+++Int alignment:\n");
-   printf ("%d\n", __alignof__ (i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-long.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static long lll;
- 
- int main(void)
- {
-   printf ("+++Long alignment:\n");
-   printf ("%d\n", __alignof__ (lll));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-longdouble.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static long double ld;
- 
- int main(void)
- {
-   printf ("+++Long Double alignment:\n");
-   printf ("%d\n", __alignof__ (ld));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-longlong.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static long long ll;
- 
- int main(void)
- {
-   printf ("+++Long long alignment:\n");
-   printf ("%d\n", __alignof__ (ll));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-pointer.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static char *p;
- 
- int main(void)
- {
-   printf ("+++Pointer alignment:\n");
-   printf ("%d\n", __alignof__ (p));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-ptrdiff.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-ptrdiff.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-ptrdiff.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-ptrdiff.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static ptrdiff_t pd;
- 
- int main(void)
- {
-   printf ("+++ptrdiff_t alignment:\n");
-   printf ("%d\n", __alignof__ (pd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-short.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static short sss;
- 
- int main(void)
- {
-   printf ("+++Short alignment:\n");
-   printf ("%d\n", __alignof__ (sss));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-size.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-size.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-size.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-size.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static size_t sss;
- 
- int main(void)
- {
-   printf ("+++size_t alignment:\n");
-   printf ("%d\n", __alignof__ (sss));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-wchar.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-wchar.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/align-wchar.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/align-wchar.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static wchar_t w;
- 
- int main(void)
- {
-   printf ("+++wchar_t alignment:\n");
-   printf ("%d\n", __alignof__ (w));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/biggest-field-align.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/biggest-field-align.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/biggest-field-align.c	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/biggest-field-align.c	Thu Jan  1 00:00:00 1970
***************
*** 1,153 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct {char m;} s0;
- static struct {short m;} s1;
- static struct {int m;} s2;
- static struct {long m;} s3;
- static struct {long long m;} s4;
- static struct {char * m;} s5;
- static struct {float m;} s6;
- static struct {double m;} s7;
- static struct {long double m;} s8;
- static struct {ptrdiff_t m;} s9;
- static struct {size_t m;} s10;
- static struct {wchar_t m;} s11;
- static struct {struct {char m;}m;} s12;
- static struct {struct {short m;}m;} s13;
- static struct {struct {int m;}m;} s14;
- static struct {struct {long m;}m;} s15;
- static struct {struct {long long m;}m;} s16;
- static struct {struct {char * m;}m;} s17;
- static struct {struct {float m;}m;} s18;
- static struct {struct {double m;}m;} s19;
- static struct {struct {long double m;}m;} s20;
- static struct {struct {ptrdiff_t m;}m;} s21;
- static struct {struct {size_t m;}m;} s22;
- static struct {struct {wchar_t m;}m;} s23;
- static struct {char m [10];} s24;
- static struct {short m [10];} s25;
- static struct {int m [10];} s26;
- static struct {long m [10];} s27;
- static struct {long long m [10];} s28;
- static struct {char * m [10];} s29;
- static struct {float m [10];} s30;
- static struct {double m [10];} s31;
- static struct {long double m [10];} s32;
- static struct {ptrdiff_t m [10];} s33;
- static struct {size_t m [10];} s34;
- static struct {wchar_t m [10];} s35;
- static struct {int :0; char m;} s36;
- static struct {int :0; short m;} s37;
- static struct {int :0; int m;} s38;
- static struct {int :0; long m;} s39;
- static struct {int :0; long long m;} s40;
- static struct {int :0; char * m;} s41;
- static struct {int :0; float m;} s42;
- static struct {int :0; double m;} s43;
- static struct {int :0; long double m;} s44;
- static struct {int :0; ptrdiff_t m;} s45;
- static struct {int :0; size_t m;} s46;
- static struct {int :0; wchar_t m;} s47;
- int main (void) {
-   int max_align = 0;
-   printf ("+++Biggest field alignment:\n");
-   if (max_align < __alignof__ (s0.m))
-      max_align = __alignof__ (s0.m);
-   if (max_align < __alignof__ (s1.m))
-      max_align = __alignof__ (s1.m);
-   if (max_align < __alignof__ (s2.m))
-      max_align = __alignof__ (s2.m);
-   if (max_align < __alignof__ (s3.m))
-      max_align = __alignof__ (s3.m);
-   if (max_align < __alignof__ (s4.m))
-      max_align = __alignof__ (s4.m);
-   if (max_align < __alignof__ (s5.m))
-      max_align = __alignof__ (s5.m);
-   if (max_align < __alignof__ (s6.m))
-      max_align = __alignof__ (s6.m);
-   if (max_align < __alignof__ (s7.m))
-      max_align = __alignof__ (s7.m);
-   if (max_align < __alignof__ (s8.m))
-      max_align = __alignof__ (s8.m);
-   if (max_align < __alignof__ (s9.m))
-      max_align = __alignof__ (s9.m);
-   if (max_align < __alignof__ (s10.m))
-      max_align = __alignof__ (s10.m);
-   if (max_align < __alignof__ (s11.m))
-      max_align = __alignof__ (s11.m);
-   if (max_align < __alignof__ (s12.m))
-      max_align = __alignof__ (s12.m);
-   if (max_align < __alignof__ (s13.m))
-      max_align = __alignof__ (s13.m);
-   if (max_align < __alignof__ (s14.m))
-      max_align = __alignof__ (s14.m);
-   if (max_align < __alignof__ (s15.m))
-      max_align = __alignof__ (s15.m);
-   if (max_align < __alignof__ (s16.m))
-      max_align = __alignof__ (s16.m);
-   if (max_align < __alignof__ (s17.m))
-      max_align = __alignof__ (s17.m);
-   if (max_align < __alignof__ (s18.m))
-      max_align = __alignof__ (s18.m);
-   if (max_align < __alignof__ (s19.m))
-      max_align = __alignof__ (s19.m);
-   if (max_align < __alignof__ (s20.m))
-      max_align = __alignof__ (s20.m);
-   if (max_align < __alignof__ (s21.m))
-      max_align = __alignof__ (s21.m);
-   if (max_align < __alignof__ (s22.m))
-      max_align = __alignof__ (s22.m);
-   if (max_align < __alignof__ (s23.m))
-      max_align = __alignof__ (s23.m);
-   if (max_align < __alignof__ (s24.m))
-      max_align = __alignof__ (s24.m);
-   if (max_align < __alignof__ (s25.m))
-      max_align = __alignof__ (s25.m);
-   if (max_align < __alignof__ (s26.m))
-      max_align = __alignof__ (s26.m);
-   if (max_align < __alignof__ (s27.m))
-      max_align = __alignof__ (s27.m);
-   if (max_align < __alignof__ (s28.m))
-      max_align = __alignof__ (s28.m);
-   if (max_align < __alignof__ (s29.m))
-      max_align = __alignof__ (s29.m);
-   if (max_align < __alignof__ (s30.m))
-      max_align = __alignof__ (s30.m);
-   if (max_align < __alignof__ (s31.m))
-      max_align = __alignof__ (s31.m);
-   if (max_align < __alignof__ (s32.m))
-      max_align = __alignof__ (s32.m);
-   if (max_align < __alignof__ (s33.m))
-      max_align = __alignof__ (s33.m);
-   if (max_align < __alignof__ (s34.m))
-      max_align = __alignof__ (s34.m);
-   if (max_align < __alignof__ (s35.m))
-      max_align = __alignof__ (s35.m);
-   if (max_align < __alignof__ (s36.m))
-      max_align = __alignof__ (s36.m);
-   if (max_align < __alignof__ (s37.m))
-      max_align = __alignof__ (s37.m);
-   if (max_align < __alignof__ (s38.m))
-      max_align = __alignof__ (s38.m);
-   if (max_align < __alignof__ (s39.m))
-      max_align = __alignof__ (s39.m);
-   if (max_align < __alignof__ (s40.m))
-      max_align = __alignof__ (s40.m);
-   if (max_align < __alignof__ (s41.m))
-      max_align = __alignof__ (s41.m);
-   if (max_align < __alignof__ (s42.m))
-      max_align = __alignof__ (s42.m);
-   if (max_align < __alignof__ (s43.m))
-      max_align = __alignof__ (s43.m);
-   if (max_align < __alignof__ (s44.m))
-      max_align = __alignof__ (s44.m);
-   if (max_align < __alignof__ (s45.m))
-      max_align = __alignof__ (s45.m);
-   if (max_align < __alignof__ (s46.m))
-      max_align = __alignof__ (s46.m);
-   if (max_align < __alignof__ (s47.m))
-      max_align = __alignof__ (s47.m);
-   printf ("max field align=%d\n", max_align);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-char=%d,\nalign-char=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-double=%d,\nalign-char=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-float=%d,\nalign-char=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-int=%d,\nalign-char=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-long=%d,\nalign-char=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-longdouble=%d,\nalign-char=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-longlong=%d,\nalign-char=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-pointer=%d,\nalign-char=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-short=%d,\nalign-char=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-char-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-char-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting classes with char & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-char=%d,\nalign-double=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-double=%d,\nalign-double=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-float=%d,\nalign-double=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-int=%d,\nalign-double=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-long=%d,\nalign-double=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-longdouble=%d,\nalign-double=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-longlong=%d,\nalign-double=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-pointer=%d,\nalign-double=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-short=%d,\nalign-double=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-double-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-double-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   double f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting classes with double & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-char=%d,\nalign-float=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-double=%d,\nalign-float=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-float=%d,\nalign-float=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-int=%d,\nalign-float=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-long=%d,\nalign-float=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-longdouble=%d,\nalign-float=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-longlong=%d,\nalign-float=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-pointer=%d,\nalign-float=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-short=%d,\nalign-float=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-float-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-float-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   float f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting classes with float & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-char=%d,\nalign-int=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-double=%d,\nalign-int=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-float=%d,\nalign-int=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-int=%d,\nalign-int=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-long=%d,\nalign-int=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-longdouble=%d,\nalign-int=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-longlong=%d,\nalign-int=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-pointer=%d,\nalign-int=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-short=%d,\nalign-int=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-int-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-int-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   int f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting classes with int & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-char=%d,\nalign-long=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-double=%d,\nalign-long=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-float=%d,\nalign-long=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-int=%d,\nalign-long=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-long=%d,\nalign-long=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-longdouble=%d,\nalign-long=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-longlong=%d,\nalign-long=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-pointer=%d,\nalign-long=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-short=%d,\nalign-long=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-long-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-long-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting classes with long & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-char=%d,\nalign-longdouble=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-double=%d,\nalign-longdouble=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-float=%d,\nalign-longdouble=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-int=%d,\nalign-longdouble=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-long=%d,\nalign-longdouble=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-longdouble=%d,\nalign-longdouble=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-longlong=%d,\nalign-longdouble=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-pointer=%d,\nalign-longdouble=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-short=%d,\nalign-longdouble=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longdouble-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long double f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting classes with longdouble & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-char=%d,\nalign-longlong=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-double=%d,\nalign-longlong=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-float=%d,\nalign-longlong=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-int=%d,\nalign-longlong=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-long=%d,\nalign-longlong=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-longdouble=%d,\nalign-longlong=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-longlong=%d,\nalign-longlong=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-pointer=%d,\nalign-longlong=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-short=%d,\nalign-longlong=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-longlong-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   long long f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting classes with longlong & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-char=%d,\nalign-pointer=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-double=%d,\nalign-pointer=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-float=%d,\nalign-pointer=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-int=%d,\nalign-pointer=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-long=%d,\nalign-pointer=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-longdouble=%d,\nalign-pointer=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-longlong=%d,\nalign-pointer=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-pointer=%d,\nalign-pointer=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-short=%d,\nalign-pointer=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-pointer-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   char * f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting classes with pointer & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   char m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with char inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-char=%d,\nalign-short=%d,align-char=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with double inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-double=%d,\nalign-short=%d,align-double=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   float m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with float inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-float=%d,\nalign-short=%d,align-float=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   int m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with int inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-int=%d,\nalign-short=%d,align-int=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with long inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-long=%d,\nalign-short=%d,align-long=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longdouble.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   long double m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longdouble inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-longdouble=%d,\nalign-short=%d,align-longdouble=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longlong.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   long long m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with longlong inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-longlong=%d,\nalign-short=%d,align-longlong=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-pointer.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   char * m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with pointer inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-pointer=%d,\nalign-short=%d,align-pointer=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-1-c-short.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-1-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- 
- static class sss: public c{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting class with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-short=%d,\nalign-short=%d,align-short=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-char.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-char.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-char.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-char.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   char f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-double.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-double.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-double.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-double.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-float.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-float.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-float.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-float.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   float f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-int.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-int.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-int.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-int.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   int f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-long.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-long.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-long.cpp	Mon Feb 12 19:39:55 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-long.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longdouble.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longdouble.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longdouble.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longdouble.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   long double f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longlong.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longlong.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longlong.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-longlong.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   long long f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-pointer.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-pointer.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-pointer.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-pointer.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   char * f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-short.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-short.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/c-short-2-c-short.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/c-short-2-c-short.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- #include <stdio.h>
- 
- class c{
- public:
-   short f;
- };
- 
- class c2{
- public:
-   short f2;
- };
- 
- 
- static class sss: public c, public c2{
- public:
-   short m;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++Class with short inhereting classes with short & short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-f=%d,offset-f2=%d,offset-m=%d,\nalign-f=%d,align-f2=%d,align-m=%d\n",
-           _offsetof (class sss, f), _offsetof (class sss, f2), _offsetof (class sss, m),
-           __alignof__ (sss.f), __alignof__ (sss.f2), __alignof__ (sss.m));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-char-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-char-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-char-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-char-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   char m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with char and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-double-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-double-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-double-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-double-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   double m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with double and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-float-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-float-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-float-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-float-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   float m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with float and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-int-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-int-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-int-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-int-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   int m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with int and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-long-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-long-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-long-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-long-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   long m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with long and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-longdouble-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-longdouble-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-longdouble-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-longdouble-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   long double m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with longdouble and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-longlong-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-longlong-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-longlong-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-longlong-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   long long m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with longlong and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-pointer-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-pointer-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-pointer-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-pointer-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   char * m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with pointer and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-short-and-virtual.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-short-and-virtual.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/class-short-and-virtual.cpp	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/class-short-and-virtual.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- #include <stdio.h>
- 
- static class sss {
- public:
-   short m;
-   virtual int f (int i) {return i;}
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Class starting with short and containing virtual function:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-m=%d,align-m=%d\n",
-           _offsetof (class sss, m), __alignof__ (sss.m));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/endian.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/endian.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/endian.c	Mon Aug  5 19:19:32 2002
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/endian.c	Thu Jan  1 00:00:00 1970
***************
*** 1,46 ****
- #include <stdio.h>
- #include <string.h>
- 
- static int w[2];
- static char * bytes;
- 
- int main(void)
- {
-   printf ("+++Endian test:\n");
-   if (sizeof (int) == 2)
-     {
-       w[0] = 0x4142;
-       w[1] = 0;
-       bytes = (char *) w;
-       if (strcmp(bytes, "AB") == 0)
- 	printf ("big endian\n");
-       else if (strcmp(bytes, "BA") == 0)
- 	printf ("little endian\n");
-       else
- 	{
- 	  printf ("nor big nor little endian\n");
- 	  return 1;
- 	}
-     }
-   else if (sizeof (int) == 4)
-     {
-       w[0] = 0x41424344;
-       w[1] = 0;
-       bytes = (char *) w;
-       if (strcmp(bytes, "ABCD") == 0)
- 	printf ("big endian\n");
-       else if (strcmp(bytes, "DCBA") == 0)
- 	printf ("little endian\n");
-       else
- 	{
- 	  printf ("nor big nor little endian\n");
- 	  return 1;
- 	}
-     }
-   else
-     {
-       printf ("unexpected size of int\n");
-       return 1;
-     }
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-0-0-5.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-0-0-5.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-0-0-5.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-0-0-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- #include <stdio.h>
- 
- struct sss{
-   int :0;
-   int :0;
-   int i3:5;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i3 = 31.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-0-20-17.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-0-20-17.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-0-20-17.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-0-20-17.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- #include <stdio.h>
- 
- struct sss{
-   int :0;
-   int i2:20;
-   int i3:17;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i2 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-0-24-24.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-0-24-24.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-0-24-24.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-0-24-24.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- #include <stdio.h>
- 
- struct sss{
-   int :0;
-   int i2:24;
-   int i3:24;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i2 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-1-21-31.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-1-21-31.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-1-21-31.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-1-21-31.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:1;
-   int i2:21;
-   int i3:31;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 2147483647.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-1-3-1.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-1-3-1.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-1-3-1.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-1-3-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:1;
-   int i2:3;
-   int i3:1;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 7.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-10-11-10.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-10-11-10.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-10-11-10.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-10-11-10.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:10;
-   int i2:11;
-   int i3:10;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1023.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 2047.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1023.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-11-12-10.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-11-12-10.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-11-12-10.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-11-12-10.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:11;
-   int i2:12;
-   int i3:10;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2047.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 4095.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1023.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-22-10.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-22-10.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-22-10.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-22-10.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:14;
-   int i2:22;
-   int i3:10;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1023.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-29-30.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-29-30.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-29-30.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-29-30.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:14;
-   int i2:29;
-   int i3:30;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 536870911.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1073741823.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-31-26.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-31-26.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-31-26.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-31-26.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:14;
-   int i2:31;
-   int i3:26;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 2147483647.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-8-9.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-8-9.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-14-8-9.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-14-8-9.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:14;
-   int i2:8;
-   int i3:9;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 255.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 511.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-15-1-22.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-15-1-22.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-15-1-22.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-15-1-22.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:15;
-   int i2:1;
-   int i3:22;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 32767.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 1.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-16-30-15.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-16-30-15.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-16-30-15.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-16-30-15.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:16;
-   int i2:30;
-   int i3:15;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 65535.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 1073741823.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 32767.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-17-17-2.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-17-17-2.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-17-17-2.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-17-17-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:17;
-   int i2:17;
-   int i3:2;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 3.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-17-17-20.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-17-17-20.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-17-17-20.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-17-17-20.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:17;
-   int i2:17;
-   int i3:20;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-17-21-17.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-17-21-17.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-17-21-17.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-17-21-17.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:17;
-   int i2:21;
-   int i3:17;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-15-30.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-15-30.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-15-30.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-15-30.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:18;
-   int i2:15;
-   int i3:30;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 262143.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 32767.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1073741823.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-26-0.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-26-0.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-26-0.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-26-0.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:18;
-   int i2:26;
-   int :0;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 262143.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-26-11.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-26-11.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-26-11.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-26-11.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:18;
-   int i2:26;
-   int i3:11;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 262143.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 2047.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-4-17.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-4-17.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-4-17.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-4-17.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:18;
-   int i2:4;
-   int i3:17;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 262143.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 15.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-5-16.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-5-16.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-18-5-16.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-18-5-16.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:18;
-   int i2:5;
-   int i3:16;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 262143.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 31.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 65535.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-19-6-22.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-19-6-22.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-19-6-22.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-19-6-22.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:19;
-   int i2:6;
-   int i3:22;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 524287.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 63.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-2-25-27.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-2-25-27.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-2-25-27.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-2-25-27.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:2;
-   int i2:25;
-   int i3:27;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 3.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 33554431.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 134217727.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-20-19-9.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-20-19-9.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-20-19-9.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-20-19-9.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:20;
-   int i2:19;
-   int i3:9;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 524287.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 511.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-20-20-15.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-20-20-15.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-20-20-15.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-20-20-15.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:20;
-   int i2:20;
-   int i3:15;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 32767.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-20-26-14.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-20-26-14.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-20-26-14.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-20-26-14.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:20;
-   int i2:26;
-   int i3:14;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-16-24.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-16-24.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-16-24.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-16-24.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:21;
-   int i2:16;
-   int i3:24;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 65535.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-19-4.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-19-4.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-19-4.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-19-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:21;
-   int i2:19;
-   int i3:4;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 524287.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 15.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-22-1.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-22-1.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-22-1.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-22-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:21;
-   int i2:22;
-   int i3:1;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-24-20.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-24-20.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-24-20.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-24-20.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:21;
-   int i2:24;
-   int i3:20;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1048575.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-5-26.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-5-26.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-21-5-26.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-21-5-26.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:21;
-   int i2:5;
-   int i3:26;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2097151.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 31.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-22-2-19.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-22-2-19.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-22-2-19.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-22-2-19.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:22;
-   int i2:2;
-   int i3:19;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 3.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 524287.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-22-2-28.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-22-2-28.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-22-2-28.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-22-2-28.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:22;
-   int i2:2;
-   int i3:28;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 3.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 268435455.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-23-17-8.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-23-17-8.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-23-17-8.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-23-17-8.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:23;
-   int i2:17;
-   int i3:8;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 8388607.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 131071.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 255.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-24-18-9.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-24-18-9.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-24-18-9.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-24-18-9.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:24;
-   int i2:18;
-   int i3:9;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 262143.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 511.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-24-27-8.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-24-27-8.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-24-27-8.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-24-27-8.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:24;
-   int i2:27;
-   int i3:8;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 134217727.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 255.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-25-6-23.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-25-6-23.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-25-6-23.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-25-6-23.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:25;
-   int i2:6;
-   int i3:23;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 33554431.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 63.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 8388607.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-26-8-6.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-26-8-6.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-26-8-6.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-26-8-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:26;
-   int i2:8;
-   int i3:6;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 255.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 63.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-27-22-7.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-27-22-7.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-27-22-7.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-27-22-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:27;
-   int i2:22;
-   int i3:7;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 134217727.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 4194303.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 127.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-29-16-7.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-29-16-7.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-29-16-7.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-29-16-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:29;
-   int i2:16;
-   int i3:7;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 536870911.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 65535.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 127.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-29-4-10.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-29-4-10.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-29-4-10.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-29-4-10.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:29;
-   int i2:4;
-   int i3:10;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 536870911.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 15.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1023.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-3-7-1.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-3-7-1.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-3-7-1.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-3-7-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:3;
-   int i2:7;
-   int i3:1;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 7.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 127.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-30-15-26.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-30-15-26.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-30-15-26.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-30-15-26.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:30;
-   int i2:15;
-   int i3:26;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1073741823.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 32767.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 67108863.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-30-24-30.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-30-24-30.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-30-24-30.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-30-24-30.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:30;
-   int i2:24;
-   int i3:30;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 1073741823.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 16777215.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 1073741823.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-31-28-16.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-31-28-16.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-31-28-16.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-31-28-16.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:31;
-   int i2:28;
-   int i3:16;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2147483647.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 268435455.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 65535.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-31-4-14.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-31-4-14.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-31-4-14.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-31-4-14.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:31;
-   int i2:4;
-   int i3:14;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2147483647.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 15.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-31-9-0.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-31-9-0.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-31-9-0.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-31-9-0.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:31;
-   int i2:9;
-   int :0;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 2147483647.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 511.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-4-14-29.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-4-14-29.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-4-14-29.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-4-14-29.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:4;
-   int i2:14;
-   int i3:29;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 15.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 536870911.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-5-23-7.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-5-23-7.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-5-23-7.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-5-23-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:5;
-   int i2:23;
-   int i3:7;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 31.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 8388607.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 127.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-7-14-12.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-7-14-12.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/f-7-14-12.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/f-7-14-12.c	Thu Jan  1 00:00:00 1970
***************
*** 1,31 ****
- #include <stdio.h>
- 
- struct sss{
-   int i1:7;
-   int i2:14;
-   int i3:12;
- };
- 
- static union u{
-   struct sss sss;
-   unsigned char a[sizeof (struct sss)];
- } u;
- 
- int main (void) {
-   int i;
-   for (i = 0; i < sizeof (struct sss); i++)
-     u.a[i] = 0;
-   u.sss.i1 = 127.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i2 = 16383.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   u.sss.i3 = 4095.0;
-   for (i = 0; i < sizeof (struct sss); i++)
-     printf ("%x ", u.a[i]);
-   printf ("\n");
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/README gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/README
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/README	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/README	Thu Jan  1 00:00:00 1970
***************
*** 1,6 ****
-   This directory contains layout test results for 97r2 i960-vxworks
- compiler used with options
- 
- -O2 -fvtable-thunks -mno-strict-align -fno-rtti -fcheck-new-mca
- -mold-align -mno-leaf-procedures
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array char:
- size=10,align=1,5th-elem-offset=5,5th-elem-align=1
- size=0,align=1,5th-elem-offset=15,5th-elem-align=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out++	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array char:
- size=10,align=1,5th-elem-offset=5,5th-elem-align=1
- size=0,align=1,5th-elem-offset=15,5th-elem-align=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array double:
- size=80,align=8,5th-elem-offset=40,5th-elem-align=8
- size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out++	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array double:
- size=80,align=8,5th-elem-offset=40,5th-elem-align=8
- size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array float:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out++	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array float:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array int:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array int:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array long:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array long:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array longdouble:
- size=160,align=16,5th-elem-offset=80,5th-elem-align=16
- size=0,align=16,5th-elem-offset=240,5th-elem-align=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array longdouble:
- size=160,align=16,5th-elem-offset=80,5th-elem-align=16
- size=0,align=16,5th-elem-offset=240,5th-elem-align=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array longlong:
- size=80,align=8,5th-elem-offset=40,5th-elem-align=8
- size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array longlong:
- size=80,align=8,5th-elem-offset=40,5th-elem-align=8
- size=0,align=8,5th-elem-offset=120,5th-elem-align=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with char:
- size=10,align=1,displ-a[5]=5,align-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with char:
- size=10,align=1,displ-a[5]=5,align-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with double:
- size=80,align=8,displ-a[5]=40,align-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with double:
- size=80,align=8,displ-a[5]=40,align-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with float:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with float:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with int:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with int:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with long:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with long:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with longdouble:
- size=240,align=12,displ-a[5]=120,align-a[5]=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with longdouble:
- size=240,align=12,displ-a[5]=120,align-a[5]=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with longlong:
- size=80,align=8,displ-a[5]=40,align-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with longlong:
- size=80,align=8,displ-a[5]=40,align-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with pointer:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with pointer:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with ptrdiff_t:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with ptrdiff_t:
- size=40,align=4,displ-a[5]=20,align-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with short:
- size=20,align=2,displ-a[5]=10,align-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-of-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ++++Array of struct with short:
- size=20,align=2,displ-a[5]=10,align-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array pointer:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array pointer:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array ptrdiff_t:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array ptrdiff_t:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array short:
- size=20,align=2,5th-elem-offset=10,5th-elem-align=2
- size=0,align=2,5th-elem-offset=30,5th-elem-align=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array short:
- size=20,align=2,5th-elem-offset=10,5th-elem-align=2
- size=0,align=2,5th-elem-offset=30,5th-elem-align=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array size_t:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array size_t:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array wchar_t:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/a-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Array wchar_t:
- size=40,align=4,5th-elem-offset=20,5th-elem-align=4
- size=0,align=4,5th-elem-offset=60,5th-elem-align=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-bool.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-bool.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-bool.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-bool.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Bool alignment:
- 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Char alignment:
- 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Char alignment:
- 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Double alignment:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Double alignment:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Float alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Float alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Int alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Int alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long Double alignment:
- 16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long Double alignment:
- 16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long long alignment:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long long alignment:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Pointer alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Pointer alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++ptrdiff_t alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-ptrdiff.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++ptrdiff_t alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Short alignment:
- 2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Short alignment:
- 2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++size_t alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-size.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++size_t alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++wchar_t alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/align-wchar.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++wchar_t alignment:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Biggest field alignment:
- max field align=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/biggest-field-align.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Biggest field alignment:
- max field align=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with char:
- size=2,align=1
- offset-char=0,offset-char=1,
- align-char=1,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with char:
- size=16,align=8
- offset-char=0,offset-double=8,
- align-char=1,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with char:
- size=8,align=4
- offset-char=0,offset-float=4,
- align-char=1,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with char:
- size=8,align=4
- offset-char=0,offset-int=4,
- align-char=1,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with char:
- size=8,align=4
- offset-char=0,offset-long=4,
- align-char=1,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longdouble.out+	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting class with char:
- size=32,align=16
- offset-char=0,offset-longdouble=16,
- align-char=1,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with char:
- size=16,align=8
- offset-char=0,offset-longlong=8,
- align-char=1,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with char:
- size=8,align=4
- offset-char=0,offset-pointer=4,
- align-char=1,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with char:
- size=4,align=2
- offset-char=0,offset-short=2,
- align-char=1,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & char:
- size=3,align=1
- offset-f=0,offset-f2=1,offset-m=2,
- align-f=1,align-f2=1,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=1,align-f2=8,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & float:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=1,align-f2=4,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & int:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=1,align-f2=4,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & long:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=1,align-f2=4,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longdouble.out+	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & longdouble:
- size=48,align=12
- offset-f=0,offset-f2=12,offset-m=36,
- align-f=1,align-f2=16,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=1,align-f2=8,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & pointer:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=1,align-f2=4,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-char-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting classes with char & short:
- size=6,align=2
- offset-f=0,offset-f2=2,offset-m=4,
- align-f=1,align-f2=2,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with double:
- size=16,align=8
- offset-double=0,offset-char=8,
- align-double=8,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with double:
- size=16,align=8
- offset-double=0,offset-double=8,
- align-double=8,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with double:
- size=16,align=8
- offset-double=0,offset-float=8,
- align-double=8,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with double:
- size=16,align=8
- offset-double=0,offset-int=8,
- align-double=8,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with double:
- size=16,align=8
- offset-double=0,offset-long=8,
- align-double=8,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-longlong.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-longlong.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-longlong.out+	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-longlong.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with double:
- size=16,align=8
- offset-double=0,offset-longlong=8,
- align-double=8,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with double:
- size=16,align=8
- offset-double=0,offset-pointer=8,
- align-double=8,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with double:
- size=16,align=8
- offset-double=0,offset-short=8,
- align-double=8,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & char:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=1,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=8,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & float:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & int:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & long:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-longlong.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-longlong.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-longlong.out+	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-longlong.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=8,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & pointer:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-double-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting classes with double & short:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=2,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with float:
- size=8,align=4
- offset-float=0,offset-char=4,
- align-float=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with float:
- size=16,align=8
- offset-float=0,offset-double=8,
- align-float=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with float:
- size=8,align=4
- offset-float=0,offset-float=4,
- align-float=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with float:
- size=8,align=4
- offset-float=0,offset-int=4,
- align-float=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with float:
- size=8,align=4
- offset-float=0,offset-long=4,
- align-float=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longdouble.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting class with float:
- size=32,align=16
- offset-float=0,offset-longdouble=16,
- align-float=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with float:
- size=16,align=8
- offset-float=0,offset-longlong=8,
- align-float=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with float:
- size=8,align=4
- offset-float=0,offset-pointer=4,
- align-float=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with float:
- size=8,align=4
- offset-float=0,offset-short=4,
- align-float=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & char:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=1,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-float.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & float:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-int.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & int:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-long.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & long:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longdouble.out	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & longdouble:
- size=48,align=12
- offset-f=0,offset-f2=12,offset-m=36,
- align-f=4,align-f2=16,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longlong.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-pointer.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & pointer:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-short.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-float-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting classes with float & short:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=2,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-char.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with int:
- size=8,align=4
- offset-int=0,offset-char=4,
- align-int=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-double.out++	Mon Feb 12 19:40:00 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with int:
- size=16,align=8
- offset-int=0,offset-double=8,
- align-int=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with int:
- size=8,align=4
- offset-int=0,offset-float=4,
- align-int=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with int:
- size=8,align=4
- offset-int=0,offset-int=4,
- align-int=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with int:
- size=8,align=4
- offset-int=0,offset-long=4,
- align-int=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longdouble.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting class with int:
- size=32,align=16
- offset-int=0,offset-longdouble=16,
- align-int=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longlong.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with int:
- size=16,align=8
- offset-int=0,offset-longlong=8,
- align-int=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-pointer.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with int:
- size=8,align=4
- offset-int=0,offset-pointer=4,
- align-int=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-short.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with int:
- size=8,align=4
- offset-int=0,offset-short=4,
- align-int=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-char.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & char:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=1,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-double.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & float:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & int:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & long:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longdouble.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & longdouble:
- size=48,align=12
- offset-f=0,offset-f2=12,offset-m=36,
- align-f=4,align-f2=16,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longlong.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-pointer.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & pointer:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-short.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-int-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting classes with int & short:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=2,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-char.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with long:
- size=8,align=4
- offset-long=0,offset-char=4,
- align-long=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-double.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with long:
- size=16,align=8
- offset-long=0,offset-double=8,
- align-long=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with long:
- size=8,align=4
- offset-long=0,offset-float=4,
- align-long=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with long:
- size=8,align=4
- offset-long=0,offset-int=4,
- align-long=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with long:
- size=8,align=4
- offset-long=0,offset-long=4,
- align-long=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longdouble.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting class with long:
- size=32,align=16
- offset-long=0,offset-longdouble=16,
- align-long=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longlong.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with long:
- size=16,align=8
- offset-long=0,offset-longlong=8,
- align-long=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-pointer.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with long:
- size=8,align=4
- offset-long=0,offset-pointer=4,
- align-long=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-short.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with long:
- size=8,align=4
- offset-long=0,offset-short=4,
- align-long=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-char.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & char:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=1,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-double.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & float:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & int:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & long:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longdouble.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & longdouble:
- size=48,align=12
- offset-f=0,offset-f2=12,offset-m=36,
- align-f=4,align-f2=16,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longlong.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-pointer.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & pointer:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-short.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-long-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting classes with long & short:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=2,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-char.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-char.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-char.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-char.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with longdouble:
- size=36,align=12
- offset-longdouble=0,offset-char=24,
- align-longdouble=16,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-float.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with longdouble:
- size=36,align=12
- offset-longdouble=0,offset-float=24,
- align-longdouble=16,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with longdouble:
- size=36,align=12
- offset-longdouble=0,offset-int=24,
- align-longdouble=16,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-long.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-long.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-long.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-long.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with longdouble:
- size=36,align=12
- offset-longdouble=0,offset-long=24,
- align-longdouble=16,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-short.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-1-c-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with longdouble:
- size=36,align=12
- offset-longdouble=0,offset-short=24,
- align-longdouble=16,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-char.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-char.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-char.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-char.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting classes with longdouble & char:
- size=64,align=16
- offset-f=0,offset-f2=24,offset-m=48,
- align-f=16,align-f2=1,align-m=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-float.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting classes with longdouble & float:
- size=64,align=16
- offset-f=0,offset-f2=24,offset-m=48,
- align-f=16,align-f2=4,align-m=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting classes with longdouble & int:
- size=64,align=16
- offset-f=0,offset-f2=24,offset-m=48,
- align-f=16,align-f2=4,align-m=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-long.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-long.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-long.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-long.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting classes with longdouble & long:
- size=64,align=16
- offset-f=0,offset-f2=24,offset-m=48,
- align-f=16,align-f2=4,align-m=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-short.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longdouble-2-c-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting classes with longdouble & short:
- size=64,align=16
- offset-f=0,offset-f2=24,offset-m=48,
- align-f=16,align-f2=2,align-m=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-char.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-char=8,
- align-longlong=8,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-double.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-double.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-double.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-double.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-double=8,
- align-longlong=8,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-float=8,
- align-longlong=8,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-int=8,
- align-longlong=8,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-long=8,
- align-longlong=8,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-pointer.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-pointer=8,
- align-longlong=8,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-short.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with longlong:
- size=16,align=8
- offset-longlong=0,offset-short=8,
- align-longlong=8,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-char.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & char:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=1,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-double.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-double.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-double.out+	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-double.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=8,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & float:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & int:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & long:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-pointer.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & pointer:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=4,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-short.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-longlong-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting classes with longlong & short:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=8,align-f2=2,align-m=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-char.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with pointer:
- size=8,align=4
- offset-pointer=0,offset-char=4,
- align-pointer=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-double.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with pointer:
- size=16,align=8
- offset-pointer=0,offset-double=8,
- align-pointer=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-float.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with pointer:
- size=8,align=4
- offset-pointer=0,offset-float=4,
- align-pointer=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-int.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with pointer:
- size=8,align=4
- offset-pointer=0,offset-int=4,
- align-pointer=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-long.out++	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with pointer:
- size=8,align=4
- offset-pointer=0,offset-long=4,
- align-pointer=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-longlong.out	Mon Feb 12 19:40:01 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with pointer:
- size=16,align=8
- offset-pointer=0,offset-longlong=8,
- align-pointer=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-pointer.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-pointer.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-pointer.out+	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-pointer.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with pointer:
- size=8,align=4
- offset-pointer=0,offset-pointer=4,
- align-pointer=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-short.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with pointer:
- size=8,align=4
- offset-pointer=0,offset-short=4,
- align-pointer=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-char.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & char:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=1,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-double.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-float.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & float:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-int.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & int:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-long.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & long:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-longlong.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=4,align-f2=8,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-pointer.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-pointer.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-pointer.out+	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-pointer.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & pointer:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=4,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-short.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-pointer-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting classes with pointer & short:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=4,align-f2=2,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-char.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with char inhereting class with short:
- size=4,align=2
- offset-short=0,offset-char=2,
- align-short=2,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-double.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with double inhereting class with short:
- size=16,align=8
- offset-short=0,offset-double=8,
- align-short=2,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-float.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with float inhereting class with short:
- size=8,align=4
- offset-short=0,offset-float=4,
- align-short=2,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-int.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with int inhereting class with short:
- size=8,align=4
- offset-short=0,offset-int=4,
- align-short=2,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-long.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with long inhereting class with short:
- size=8,align=4
- offset-short=0,offset-long=4,
- align-short=2,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longdouble.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longdouble inhereting class with short:
- size=32,align=16
- offset-short=0,offset-longdouble=16,
- align-short=2,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longlong.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with longlong inhereting class with short:
- size=16,align=8
- offset-short=0,offset-longlong=8,
- align-short=2,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-pointer.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with pointer inhereting class with short:
- size=8,align=4
- offset-short=0,offset-pointer=4,
- align-short=2,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-short.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-1-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting class with short:
- size=4,align=2
- offset-short=0,offset-short=2,
- align-short=2,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-char.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & char:
- size=6,align=2
- offset-f=0,offset-f2=2,offset-m=4,
- align-f=2,align-f2=1,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-double.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & double:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=2,align-f2=8,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-float.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & float:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=2,align-f2=4,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-int.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & int:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=2,align-f2=4,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-long.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & long:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=2,align-f2=4,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longdouble.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & longdouble:
- size=48,align=12
- offset-f=0,offset-f2=12,offset-m=36,
- align-f=2,align-f2=16,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longlong.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & longlong:
- size=24,align=8
- offset-f=0,offset-f2=8,offset-m=16,
- align-f=2,align-f2=8,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-pointer.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & pointer:
- size=12,align=4
- offset-f=0,offset-f2=4,offset-m=8,
- align-f=2,align-f2=4,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-short.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/c-short-2-c-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- ++Class with short inhereting classes with short & short:
- size=6,align=2
- offset-f=0,offset-f2=2,offset-m=4,
- align-f=2,align-f2=2,align-m=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-char-and-virtual.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-char-and-virtual.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-char-and-virtual.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-char-and-virtual.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Class starting with char and containing virtual function:
- size=8,align=4
- offset-m=0,align-m=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-int-and-virtual.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-int-and-virtual.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-int-and-virtual.out+	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-int-and-virtual.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Class starting with int and containing virtual function:
- size=8,align=4
- offset-m=0,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-long-and-virtual.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-long-and-virtual.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-long-and-virtual.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/class-long-and-virtual.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Class starting with long and containing virtual function:
- size=8,align=4
- offset-m=0,align-m=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Endian test:
- little endian
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/endian.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Endian test:
- little endian
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out	Thu Jan  1 00:00:00 1970
***************
*** 1 ****
- 1f 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-0-5.out++	Thu Jan  1 00:00:00 1970
***************
*** 1 ****
- 0 0 0 0 0 0 0 0 1f 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ff ff f 0 0 0 0 0
- ff ff f 0 ff ff 1 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-20-17.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- 0 0 0 0 ff ff f 0 0 0 0 0
- 0 0 0 0 ff ff f 0 ff ff 1 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff ff 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out++	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-0-24-24.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- 0 0 0 0 ff ff ff 0 0 0 0 0
- 0 0 0 0 ff ff ff 0 ff ff ff 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out	Mon Feb 12 19:40:02 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 1 0 0 0 0 0 0 0
- ff ff 3f 0 0 0 0 0
- ff ff 3f 0 ff ff ff 7f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out++	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-21-31.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 1 0 0 0 0 0 0 0
- ff ff 3f 0 0 0 0 0
- ff ff 3f 0 ff ff ff 7f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 1 0 0 0
- f 0 0 0
- 1f 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out++	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-1-3-1.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 1 0 0 0
- f 0 0 0
- 1f 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3 0 0
- ff ff 1f 0
- ff ff ff 7f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out++	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-10-11-10.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3 0 0
- ff ff 1f 0
- ff ff ff 7f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 7 0 0 0 0 0 0
- ff ff 7f 0 0 0 0 0
- ff ff 7f 0 ff 3 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out++	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-11-12-10.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 7 0 0 0 0 0 0
- ff ff 7f 0 0 0 0 0
- ff ff 7f 0 ff 3 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out	Mon Feb 12 19:40:03 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0 0 0 0 0
- ff 3f 0 0 ff ff 3f 0
- ff 3f 0 0 ff ff ff ff
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out++	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-22-10.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0 0 0 0 0
- ff 3f 0 0 ff ff 3f 0
- ff 3f 0 0 ff ff ff ff
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0 0 0 0 0 0 0 0 0
- ff 3f 0 0 ff ff ff 1f 0 0 0 0
- ff 3f 0 0 ff ff ff 1f ff ff ff 3f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out++	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-29-30.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0 0 0 0 0 0 0 0 0
- ff 3f 0 0 ff ff ff 1f 0 0 0 0
- ff 3f 0 0 ff ff ff 1f ff ff ff 3f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0 0 0 0 0 0 0 0 0
- ff 3f 0 0 ff ff ff 7f 0 0 0 0
- ff 3f 0 0 ff ff ff 7f ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out++	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-31-26.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0 0 0 0 0 0 0 0 0
- ff 3f 0 0 ff ff ff 7f 0 0 0 0
- ff 3f 0 0 ff ff ff 7f ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0
- ff ff 3f 0
- ff ff ff 7f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out++	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-14-8-9.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 3f 0 0
- ff ff 3f 0
- ff ff ff 7f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out	Mon Feb 12 19:40:05 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 7f 0 0 0 0 0 0
- ff ff 0 0 0 0 0 0
- ff ff 0 0 ff ff 3f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-15-1-22.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff 7f 0 0 0 0 0 0
- ff ff 0 0 0 0 0 0
- ff ff 0 0 ff ff 3f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 0 0 0 0 0 0 0 0 0 0
- ff ff 0 0 ff ff ff 3f 0 0 0 0
- ff ff 0 0 ff ff ff 3f ff 7f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-16-30-15.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 0 0 0 0 0 0 0 0 0 0
- ff ff 0 0 ff ff ff 3f 0 0 0 0
- ff ff 0 0 ff ff ff 3f ff 7f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1 0 0 0 0 0
- ff ff 1 0 ff ff 1 0
- ff ff 1 0 ff ff 7 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-2.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1 0 0 0 0 0
- ff ff 1 0 ff ff 1 0
- ff ff 1 0 ff ff 7 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1 0 0 0 0 0 0 0 0 0
- ff ff 1 0 ff ff 1 0 0 0 0 0
- ff ff 1 0 ff ff 1 0 ff ff f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-17-20.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1 0 0 0 0 0 0 0 0 0
- ff ff 1 0 ff ff 1 0 0 0 0 0
- ff ff 1 0 ff ff 1 0 ff ff f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1 0 0 0 0 0 0 0 0 0
- ff ff 1 0 ff ff 1f 0 0 0 0 0
- ff ff 1 0 ff ff 1f 0 ff ff 1 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-17-21-17.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1 0 0 0 0 0 0 0 0 0
- ff ff 1 0 ff ff 1f 0 0 0 0 0
- ff ff 1 0 ff ff 1f 0 ff ff 1 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0 0 0 0 0
- ff ff 3 0 ff 7f 0 0 0 0 0 0
- ff ff 3 0 ff 7f 0 0 ff ff ff 3f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-15-30.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0 0 0 0 0
- ff ff 3 0 ff 7f 0 0 0 0 0 0
- ff ff 3 0 ff 7f 0 0 ff ff ff 3f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ff ff 3 0 0 0 0 0
- ff ff 3 0 ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-0.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ff ff 3 0 0 0 0 0 0 0 0 0
- ff ff 3 0 ff ff ff 3 0 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0 0 0 0 0
- ff ff 3 0 ff ff ff 3 0 0 0 0
- ff ff 3 0 ff ff ff 3 ff 7 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-26-11.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0 0 0 0 0
- ff ff 3 0 ff ff ff 3 0 0 0 0
- ff ff 3 0 ff ff ff 3 ff 7 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0
- ff ff 3f 0 0 0 0 0
- ff ff 3f 0 ff ff 1 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-4-17.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0
- ff ff 3f 0 0 0 0 0
- ff ff 3f 0 ff ff 1 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0
- ff ff 7f 0 0 0 0 0
- ff ff 7f 0 ff ff 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-18-5-16.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3 0 0 0 0 0
- ff ff 7f 0 0 0 0 0
- ff ff 7f 0 ff ff 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 7 0 0 0 0 0
- ff ff ff 1 0 0 0 0
- ff ff ff 1 ff ff 3f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-19-6-22.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 7 0 0 0 0 0
- ff ff ff 1 0 0 0 0
- ff ff ff 1 ff ff 3f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 3 0 0 0 0 0 0 0
- ff ff ff 7 0 0 0 0
- ff ff ff 7 ff ff ff 7
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-2-25-27.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 3 0 0 0 0 0 0 0
- ff ff ff 7 0 0 0 0
- ff ff ff 7 ff ff ff 7
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff f 0 0 0 0 0
- ff ff f 0 ff ff 7 0
- ff ff f 0 ff ff ff f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-19-9.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff f 0 0 0 0 0
- ff ff f 0 ff ff 7 0
- ff ff f 0 ff ff ff f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff f 0 0 0 0 0 0 0 0 0
- ff ff f 0 ff ff f 0 0 0 0 0
- ff ff f 0 ff ff f 0 ff 7f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-20-15.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff f 0 0 0 0 0 0 0 0 0
- ff ff f 0 ff ff f 0 0 0 0 0
- ff ff f 0 ff ff f 0 ff 7f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff f 0 0 0 0 0 0 0 0 0
- ff ff f 0 ff ff ff 3 0 0 0 0
- ff ff f 0 ff ff ff 3 ff 3f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-20-26-14.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff f 0 0 0 0 0 0 0 0 0
- ff ff f 0 ff ff ff 3 0 0 0 0
- ff ff f 0 ff ff ff 3 ff 3f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0 0 0 0 0
- ff ff 1f 0 ff ff 0 0 0 0 0 0
- ff ff 1f 0 ff ff 0 0 ff ff ff 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-16-24.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0 0 0 0 0
- ff ff 1f 0 ff ff 0 0 0 0 0 0
- ff ff 1f 0 ff ff 0 0 ff ff ff 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0
- ff ff 1f 0 ff ff 7 0
- ff ff 1f 0 ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-19-4.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0
- ff ff 1f 0 ff ff 7 0
- ff ff 1f 0 ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0
- ff ff 1f 0 ff ff 3f 0
- ff ff 1f 0 ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-22-1.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0
- ff ff 1f 0 ff ff 3f 0
- ff ff 1f 0 ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0 0 0 0 0
- ff ff 1f 0 ff ff ff 0 0 0 0 0
- ff ff 1f 0 ff ff ff 0 ff ff f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-24-20.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0 0 0 0 0
- ff ff 1f 0 ff ff ff 0 0 0 0 0
- ff ff 1f 0 ff ff ff 0 ff ff f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0
- ff ff ff 3 0 0 0 0
- ff ff ff 3 ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-21-5-26.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 1f 0 0 0 0 0
- ff ff ff 3 0 0 0 0
- ff ff ff 3 ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3f 0 0 0 0 0
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff 7 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-19.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3f 0 0 0 0 0
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff 7 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3f 0 0 0 0 0
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff ff f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-22-2-28.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 3f 0 0 0 0 0
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff ff f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 7f 0 0 0 0 0
- ff ff 7f 0 ff ff 1 0
- ff ff 7f 0 ff ff ff 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-23-17-8.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff 7f 0 0 0 0 0
- ff ff 7f 0 ff ff 1 0
- ff ff 7f 0 ff ff ff 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff 3 0
- ff ff ff 0 ff ff ff 7
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-18-9.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 0 0 0 0 0
- ff ff ff 0 ff ff 3 0
- ff ff ff 0 ff ff ff 7
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 0 0 0 0 0 0 0 0 0
- ff ff ff 0 ff ff ff 7 0 0 0 0
- ff ff ff 0 ff ff ff 7 ff 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-24-27-8.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 0 0 0 0 0 0 0 0 0
- ff ff ff 0 ff ff ff 7 0 0 0 0
- ff ff ff 0 ff ff ff 7 ff 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 1 0 0 0 0
- ff ff ff 7f 0 0 0 0
- ff ff ff 7f ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-25-6-23.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 1 0 0 0 0
- ff ff ff 7f 0 0 0 0
- ff ff ff 7f ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 3 0 0 0 0
- ff ff ff 3 ff 0 0 0
- ff ff ff 3 ff 3f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-26-8-6.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 3 0 0 0 0
- ff ff ff 3 ff 0 0 0
- ff ff ff 3 ff 3f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 7 0 0 0 0
- ff ff ff 7 ff ff 3f 0
- ff ff ff 7 ff ff ff 1f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-27-22-7.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 7 0 0 0 0
- ff ff ff 7 ff ff 3f 0
- ff ff ff 7 ff ff ff 1f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 1f 0 0 0 0
- ff ff ff 1f ff ff 0 0
- ff ff ff 1f ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-16-7.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 1f 0 0 0 0
- ff ff ff 1f ff ff 0 0
- ff ff ff 1f ff ff 7f 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 1f 0 0 0 0
- ff ff ff 1f f 0 0 0
- ff ff ff 1f ff 3f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-29-4-10.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 1f 0 0 0 0
- ff ff ff 1f f 0 0 0
- ff ff ff 1f ff 3f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 7 0 0 0
- ff 3 0 0
- ff 7 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-3-7-1.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 7 0 0 0
- ff 3 0 0
- ff 7 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 3f 0 0 0 0 0 0 0 0
- ff ff ff 3f ff 7f 0 0 0 0 0 0
- ff ff ff 3f ff 7f 0 0 ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-15-26.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 3f 0 0 0 0 0 0 0 0
- ff ff ff 3f ff 7f 0 0 0 0 0 0
- ff ff ff 3f ff 7f 0 0 ff ff ff 3
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 3f 0 0 0 0 0 0 0 0
- ff ff ff 3f ff ff ff 0 0 0 0 0
- ff ff ff 3f ff ff ff 0 ff ff ff 3f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-30-24-30.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 3f 0 0 0 0 0 0 0 0
- ff ff ff 3f ff ff ff 0 0 0 0 0
- ff ff ff 3f ff ff ff 0 ff ff ff 3f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 7f 0 0 0 0 0 0 0 0
- ff ff ff 7f ff ff ff f 0 0 0 0
- ff ff ff 7f ff ff ff f ff ff 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-28-16.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 7f 0 0 0 0 0 0 0 0
- ff ff ff 7f ff ff ff f 0 0 0 0
- ff ff ff 7f ff ff ff f ff ff 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 7f 0 0 0 0
- ff ff ff 7f f 0 0 0
- ff ff ff 7f ff ff 3 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-4-14.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- ff ff ff 7f 0 0 0 0
- ff ff ff 7f f 0 0 0
- ff ff ff 7f ff ff 3 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ff ff ff 7f 0 0 0 0
- ff ff ff 7f ff 1 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-31-9-0.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- ff ff ff 7f 0 0 0 0 0 0 0 0
- ff ff ff 7f ff 1 0 0 0 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- f 0 0 0 0 0 0 0
- ff ff 3 0 0 0 0 0
- ff ff 3 0 ff ff ff 1f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-4-14-29.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- f 0 0 0 0 0 0 0
- ff ff 3 0 0 0 0 0
- ff ff 3 0 ff ff ff 1f
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 1f 0 0 0 0 0 0 0
- ff ff ff f 0 0 0 0
- ff ff ff f 7f 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-5-23-7.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 1f 0 0 0 0 0 0 0
- ff ff ff f 0 0 0 0
- ff ff ff f 7f 0 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 7f 0 0 0 0 0 0 0
- ff ff 1f 0 0 0 0 0
- ff ff 1f 0 ff f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/f-7-14-12.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- 7f 0 0 0 0 0 0 0
- ff ff 1f 0 0 0 0 0
- ff ff 1f 0 ff f 0 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with char:
- size=11,align=1
- offset-char=0,offset-arrayof-char=1,
- align-char=1,align-arrayof-char=1
- offset-char-a[5]=6,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with char:
- size=11,align=1
- offset-char=0,offset-arrayof-char=1,
- align-char=1,align-arrayof-char=1
- offset-char-a[5]=6,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with char:
- size=88,align=8
- offset-char=0,offset-arrayof-double=8,
- align-char=1,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with char:
- size=88,align=8
- offset-char=0,offset-arrayof-double=8,
- align-char=1,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-float=4,
- align-char=1,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-float=4,
- align-char=1,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-int=4,
- align-char=1,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-int=4,
- align-char=1,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-long=4,
- align-char=1,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-long=4,
- align-char=1,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with char:
- size=176,align=16
- offset-char=0,offset-arrayof-longdouble=16,
- align-char=1,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with char:
- size=176,align=16
- offset-char=0,offset-arrayof-longdouble=16,
- align-char=1,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with char:
- size=88,align=8
- offset-char=0,offset-arrayof-longlong=8,
- align-char=1,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with char:
- size=88,align=8
- offset-char=0,offset-arrayof-longlong=8,
- align-char=1,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-pointer=4,
- align-char=1,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with char:
- size=44,align=4
- offset-char=0,offset-arrayof-pointer=4,
- align-char=1,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with char:
- size=22,align=2
- offset-char=0,offset-arrayof-short=2,
- align-char=1,align-arrayof-short=2
- offset-short-a[5]=12,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with char:
- size=22,align=2
- offset-char=0,offset-arrayof-short=2,
- align-char=1,align-arrayof-short=2
- offset-short-a[5]=12,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-char:
- size=2,align=1,offset-char=0,offset-char=1,
- align-char=1,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-char:
- size=2,align=1,offset-char=0,offset-char=1,
- align-char=1,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-double:
- size=16,align=8,offset-char=0,offset-double=8,
- align-char=1,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out++	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-double:
- size=16,align=8,offset-char=0,offset-double=8,
- align-char=1,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out	Mon Feb 12 19:40:06 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-float:
- size=8,align=4,offset-char=0,offset-float=4,
- align-char=1,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-float:
- size=8,align=4,offset-char=0,offset-float=4,
- align-char=1,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-int:
- size=8,align=4,offset-char=0,offset-int=4,
- align-char=1,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-int:
- size=8,align=4,offset-char=0,offset-int=4,
- align-char=1,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-long:
- size=8,align=4,offset-char=0,offset-long=4,
- align-char=1,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-long:
- size=8,align=4,offset-char=0,offset-long=4,
- align-char=1,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-longdouble:
- size=32,align=16,offset-char=0,offset-longdouble=16,
- align-char=1,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-longdouble:
- size=32,align=16,offset-char=0,offset-longdouble=16,
- align-char=1,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-longlong:
- size=16,align=8,offset-char=0,offset-longlong=8,
- align-char=1,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-longlong:
- size=16,align=8,offset-char=0,offset-longlong=8,
- align-char=1,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-pointer:
- size=8,align=4,offset-char=0,offset-pointer=4,
- align-char=1,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-pointer:
- size=8,align=4,offset-char=0,offset-pointer=4,
- align-char=1,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-ptrdiff_t:
- size=8,align=4,offset-char=0,offset-ptrdiff_t=4,
- align-char=1,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-ptrdiff_t:
- size=8,align=4,offset-char=0,offset-ptrdiff_t=4,
- align-char=1,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with char:
- size=2,align=1
- offset-char=0,offset-sss-char=1,
- align-char=1,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with char:
- size=2,align=1
- offset-char=0,offset-sss-char=1,
- align-char=1,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with char:
- size=16,align=8
- offset-char=0,offset-sss-double=8,
- align-char=1,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with char:
- size=16,align=8
- offset-char=0,offset-sss-double=8,
- align-char=1,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-float=4,
- align-char=1,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-float=4,
- align-char=1,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-int=4,
- align-char=1,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-int=4,
- align-char=1,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-long=4,
- align-char=1,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-long=4,
- align-char=1,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with char:
- size=36,align=12
- offset-char=0,offset-sss-longdouble=12,
- align-char=1,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with char:
- size=36,align=12
- offset-char=0,offset-sss-longdouble=12,
- align-char=1,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with char:
- size=16,align=8
- offset-char=0,offset-sss-longlong=8,
- align-char=1,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with char:
- size=16,align=8
- offset-char=0,offset-sss-longlong=8,
- align-char=1,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-pointer=4,
- align-char=1,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-sss-pointer=4,
- align-char=1,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with char:
- size=4,align=2
- offset-char=0,offset-sss-short=2,
- align-char=1,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with char:
- size=4,align=2
- offset-char=0,offset-sss-short=2,
- align-char=1,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-short:
- size=4,align=2,offset-char=0,offset-short=2,
- align-char=1,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-short:
- size=4,align=2,offset-char=0,offset-short=2,
- align-char=1,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-size_t:
- size=8,align=4,offset-char=0,offset-size_t=4,
- align-char=1,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-size_t:
- size=8,align=4,offset-char=0,offset-size_t=4,
- align-char=1,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-wchar_t:
- size=8,align=4,offset-char=0,offset-wchar_t=4,
- align-char=1,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct char-wchar_t:
- size=8,align=4,offset-char=0,offset-wchar_t=4,
- align-char=1,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-last=4,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with char:
- size=12,align=4
- offset-char=0,offset-last=8,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-last=4,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with char:
- size=12,align=4
- offset-char=0,offset-last=8,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-last=4,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with char:
- size=12,align=4
- offset-char=0,offset-last=8,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with char:
- size=12,align=4
- offset-char=0,offset-last=8,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with char:
- size=24,align=8
- offset-char=0,offset-last=16,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with char:
- size=8,align=4
- offset-char=0,offset-last=4,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-char-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with char:
- size=12,align=4
- offset-char=0,offset-last=8,
- align-char=1,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with double:
- size=24,align=8
- offset-double=0,offset-arrayof-char=8,
- align-double=8,align-arrayof-char=1
- offset-char-a[5]=13,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with double:
- size=24,align=8
- offset-double=0,offset-arrayof-char=8,
- align-double=8,align-arrayof-char=1
- offset-char-a[5]=13,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with double:
- size=88,align=8
- offset-double=0,offset-arrayof-double=8,
- align-double=8,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with double:
- size=88,align=8
- offset-double=0,offset-arrayof-double=8,
- align-double=8,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-float=8,
- align-double=8,align-arrayof-float=4
- offset-float-a[5]=28,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-float=8,
- align-double=8,align-arrayof-float=4
- offset-float-a[5]=28,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-int=8,
- align-double=8,align-arrayof-int=4
- offset-int-a[5]=28,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-int=8,
- align-double=8,align-arrayof-int=4
- offset-int-a[5]=28,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-long=8,
- align-double=8,align-arrayof-long=4
- offset-long-a[5]=28,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-long=8,
- align-double=8,align-arrayof-long=4
- offset-long-a[5]=28,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with double:
- size=176,align=16
- offset-double=0,offset-arrayof-longdouble=16,
- align-double=8,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out+	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with double:
- size=176,align=16
- offset-double=0,offset-arrayof-longdouble=16,
- align-double=8,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with double:
- size=88,align=8
- offset-double=0,offset-arrayof-longlong=8,
- align-double=8,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out++	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with double:
- size=88,align=8
- offset-double=0,offset-arrayof-longlong=8,
- align-double=8,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out	Mon Feb 12 19:40:07 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-pointer=8,
- align-double=8,align-arrayof-pointer=4
- offset-pointer-a[5]=28,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with double:
- size=48,align=8
- offset-double=0,offset-arrayof-pointer=8,
- align-double=8,align-arrayof-pointer=4
- offset-pointer-a[5]=28,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with double:
- size=32,align=8
- offset-double=0,offset-arrayof-short=8,
- align-double=8,align-arrayof-short=2
- offset-short-a[5]=18,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with double:
- size=32,align=8
- offset-double=0,offset-arrayof-short=8,
- align-double=8,align-arrayof-short=2
- offset-short-a[5]=18,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-char:
- size=16,align=8,offset-double=0,offset-char=8,
- align-double=8,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-char:
- size=16,align=8,offset-double=0,offset-char=8,
- align-double=8,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-double:
- size=16,align=8,offset-double=0,offset-double=8,
- align-double=8,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-double:
- size=16,align=8,offset-double=0,offset-double=8,
- align-double=8,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-float:
- size=16,align=8,offset-double=0,offset-float=8,
- align-double=8,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-float:
- size=16,align=8,offset-double=0,offset-float=8,
- align-double=8,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-int:
- size=16,align=8,offset-double=0,offset-int=8,
- align-double=8,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-int:
- size=16,align=8,offset-double=0,offset-int=8,
- align-double=8,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-long:
- size=16,align=8,offset-double=0,offset-long=8,
- align-double=8,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-long:
- size=16,align=8,offset-double=0,offset-long=8,
- align-double=8,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-longdouble:
- size=32,align=16,offset-double=0,offset-longdouble=16,
- align-double=8,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-longdouble:
- size=32,align=16,offset-double=0,offset-longdouble=16,
- align-double=8,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-longlong:
- size=16,align=8,offset-double=0,offset-longlong=8,
- align-double=8,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-longlong:
- size=16,align=8,offset-double=0,offset-longlong=8,
- align-double=8,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-pointer:
- size=16,align=8,offset-double=0,offset-pointer=8,
- align-double=8,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-pointer:
- size=16,align=8,offset-double=0,offset-pointer=8,
- align-double=8,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-ptrdiff_t:
- size=16,align=8,offset-double=0,offset-ptrdiff_t=8,
- align-double=8,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-ptrdiff_t:
- size=16,align=8,offset-double=0,offset-ptrdiff_t=8,
- align-double=8,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-char=8,
- align-double=8,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-char=8,
- align-double=8,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-double=8,
- align-double=8,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-double=8,
- align-double=8,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-float=8,
- align-double=8,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-float=8,
- align-double=8,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-int=8,
- align-double=8,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-int=8,
- align-double=8,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-long=8,
- align-double=8,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-long=8,
- align-double=8,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with double:
- size=36,align=12
- offset-double=0,offset-sss-longdouble=12,
- align-double=8,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out+	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with double:
- size=36,align=12
- offset-double=0,offset-sss-longdouble=12,
- align-double=8,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-longlong=8,
- align-double=8,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-longlong=8,
- align-double=8,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-pointer=8,
- align-double=8,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-pointer=8,
- align-double=8,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-short=8,
- align-double=8,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out++	Mon Feb 12 19:40:08 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-sss-short=8,
- align-double=8,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-short:
- size=16,align=8,offset-double=0,offset-short=8,
- align-double=8,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-short:
- size=16,align=8,offset-double=0,offset-short=8,
- align-double=8,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-size_t:
- size=16,align=8,offset-double=0,offset-size_t=8,
- align-double=8,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-size_t:
- size=16,align=8,offset-double=0,offset-size_t=8,
- align-double=8,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-wchar_t:
- size=16,align=8,offset-double=0,offset-wchar_t=8,
- align-double=8,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct double-wchar_t:
- size=16,align=8,offset-double=0,offset-wchar_t=8,
- align-double=8,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=8,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=12,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=8,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=12,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=8,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=12,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=8,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with double:
- size=24,align=8
- offset-double=0,offset-last=16,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=8,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-double-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with double:
- size=16,align=8
- offset-double=0,offset-last=12,
- align-double=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with float:
- size=16,align=4
- offset-float=0,offset-arrayof-char=4,
- align-float=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with float:
- size=16,align=4
- offset-float=0,offset-arrayof-char=4,
- align-float=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with float:
- size=88,align=8
- offset-float=0,offset-arrayof-double=8,
- align-float=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with float:
- size=88,align=8
- offset-float=0,offset-arrayof-double=8,
- align-float=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-float=4,
- align-float=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-float=4,
- align-float=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-int=4,
- align-float=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-int=4,
- align-float=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-long=4,
- align-float=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-long=4,
- align-float=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with float:
- size=176,align=16
- offset-float=0,offset-arrayof-longdouble=16,
- align-float=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with float:
- size=176,align=16
- offset-float=0,offset-arrayof-longdouble=16,
- align-float=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with float:
- size=88,align=8
- offset-float=0,offset-arrayof-longlong=8,
- align-float=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with float:
- size=88,align=8
- offset-float=0,offset-arrayof-longlong=8,
- align-float=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-pointer=4,
- align-float=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with float:
- size=44,align=4
- offset-float=0,offset-arrayof-pointer=4,
- align-float=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with float:
- size=24,align=4
- offset-float=0,offset-arrayof-short=4,
- align-float=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with float:
- size=24,align=4
- offset-float=0,offset-arrayof-short=4,
- align-float=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-char:
- size=8,align=4,offset-float=0,offset-char=4,
- align-float=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-char:
- size=8,align=4,offset-float=0,offset-char=4,
- align-float=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-double:
- size=16,align=8,offset-float=0,offset-double=8,
- align-float=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-double:
- size=16,align=8,offset-float=0,offset-double=8,
- align-float=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-float:
- size=8,align=4,offset-float=0,offset-float=4,
- align-float=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-float:
- size=8,align=4,offset-float=0,offset-float=4,
- align-float=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-int:
- size=8,align=4,offset-float=0,offset-int=4,
- align-float=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-int:
- size=8,align=4,offset-float=0,offset-int=4,
- align-float=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-long:
- size=8,align=4,offset-float=0,offset-long=4,
- align-float=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-long:
- size=8,align=4,offset-float=0,offset-long=4,
- align-float=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-longdouble:
- size=32,align=16,offset-float=0,offset-longdouble=16,
- align-float=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-longdouble:
- size=32,align=16,offset-float=0,offset-longdouble=16,
- align-float=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-longlong:
- size=16,align=8,offset-float=0,offset-longlong=8,
- align-float=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-longlong:
- size=16,align=8,offset-float=0,offset-longlong=8,
- align-float=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-pointer:
- size=8,align=4,offset-float=0,offset-pointer=4,
- align-float=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-pointer:
- size=8,align=4,offset-float=0,offset-pointer=4,
- align-float=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-ptrdiff_t:
- size=8,align=4,offset-float=0,offset-ptrdiff_t=4,
- align-float=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-ptrdiff_t:
- size=8,align=4,offset-float=0,offset-ptrdiff_t=4,
- align-float=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-char=4,
- align-float=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-char=4,
- align-float=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with float:
- size=16,align=8
- offset-float=0,offset-sss-double=8,
- align-float=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with float:
- size=16,align=8
- offset-float=0,offset-sss-double=8,
- align-float=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-float=4,
- align-float=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-float=4,
- align-float=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-int=4,
- align-float=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-int=4,
- align-float=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-long=4,
- align-float=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-long=4,
- align-float=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with float:
- size=36,align=12
- offset-float=0,offset-sss-longdouble=12,
- align-float=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with float:
- size=36,align=12
- offset-float=0,offset-sss-longdouble=12,
- align-float=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with float:
- size=16,align=8
- offset-float=0,offset-sss-longlong=8,
- align-float=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out++	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with float:
- size=16,align=8
- offset-float=0,offset-sss-longlong=8,
- align-float=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out	Mon Feb 12 19:40:09 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-pointer=4,
- align-float=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-pointer=4,
- align-float=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-short=4,
- align-float=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-sss-short=4,
- align-float=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-short:
- size=8,align=4,offset-float=0,offset-short=4,
- align-float=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-short:
- size=8,align=4,offset-float=0,offset-short=4,
- align-float=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-size_t:
- size=8,align=4,offset-float=0,offset-size_t=4,
- align-float=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-size_t:
- size=8,align=4,offset-float=0,offset-size_t=4,
- align-float=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-wchar_t:
- size=8,align=4,offset-float=0,offset-wchar_t=4,
- align-float=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct float-wchar_t:
- size=8,align=4,offset-float=0,offset-wchar_t=4,
- align-float=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-last=4,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with float:
- size=12,align=4
- offset-float=0,offset-last=8,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-last=4,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with float:
- size=12,align=4
- offset-float=0,offset-last=8,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-last=4,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with float:
- size=12,align=4
- offset-float=0,offset-last=8,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with float:
- size=12,align=4
- offset-float=0,offset-last=8,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with float:
- size=24,align=8
- offset-float=0,offset-last=16,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with float:
- size=8,align=4
- offset-float=0,offset-last=4,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-float-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with float:
- size=12,align=4
- offset-float=0,offset-last=8,
- align-float=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with int:
- size=16,align=4
- offset-int=0,offset-arrayof-char=4,
- align-int=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with int:
- size=16,align=4
- offset-int=0,offset-arrayof-char=4,
- align-int=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with int:
- size=88,align=8
- offset-int=0,offset-arrayof-double=8,
- align-int=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with int:
- size=88,align=8
- offset-int=0,offset-arrayof-double=8,
- align-int=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-float=4,
- align-int=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-float=4,
- align-int=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-int=4,
- align-int=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-int=4,
- align-int=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-long=4,
- align-int=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-long=4,
- align-int=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with int:
- size=176,align=16
- offset-int=0,offset-arrayof-longdouble=16,
- align-int=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with int:
- size=176,align=16
- offset-int=0,offset-arrayof-longdouble=16,
- align-int=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with int:
- size=88,align=8
- offset-int=0,offset-arrayof-longlong=8,
- align-int=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with int:
- size=88,align=8
- offset-int=0,offset-arrayof-longlong=8,
- align-int=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-pointer=4,
- align-int=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with int:
- size=44,align=4
- offset-int=0,offset-arrayof-pointer=4,
- align-int=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with int:
- size=24,align=4
- offset-int=0,offset-arrayof-short=4,
- align-int=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with int:
- size=24,align=4
- offset-int=0,offset-arrayof-short=4,
- align-int=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-char:
- size=8,align=4,offset-int=0,offset-char=4,
- align-int=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-char:
- size=8,align=4,offset-int=0,offset-char=4,
- align-int=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-double:
- size=16,align=8,offset-int=0,offset-double=8,
- align-int=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-double:
- size=16,align=8,offset-int=0,offset-double=8,
- align-int=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-float:
- size=8,align=4,offset-int=0,offset-float=4,
- align-int=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-float:
- size=8,align=4,offset-int=0,offset-float=4,
- align-int=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-int:
- size=8,align=4,offset-int=0,offset-int=4,
- align-int=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-int:
- size=8,align=4,offset-int=0,offset-int=4,
- align-int=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-long:
- size=8,align=4,offset-int=0,offset-long=4,
- align-int=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-long:
- size=8,align=4,offset-int=0,offset-long=4,
- align-int=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-longdouble:
- size=32,align=16,offset-int=0,offset-longdouble=16,
- align-int=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-longdouble:
- size=32,align=16,offset-int=0,offset-longdouble=16,
- align-int=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-longlong:
- size=16,align=8,offset-int=0,offset-longlong=8,
- align-int=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-longlong:
- size=16,align=8,offset-int=0,offset-longlong=8,
- align-int=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-pointer:
- size=8,align=4,offset-int=0,offset-pointer=4,
- align-int=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-pointer:
- size=8,align=4,offset-int=0,offset-pointer=4,
- align-int=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-ptrdiff_t:
- size=8,align=4,offset-int=0,offset-ptrdiff_t=4,
- align-int=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-ptrdiff_t:
- size=8,align=4,offset-int=0,offset-ptrdiff_t=4,
- align-int=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-char=4,
- align-int=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-char=4,
- align-int=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with int:
- size=16,align=8
- offset-int=0,offset-sss-double=8,
- align-int=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with int:
- size=16,align=8
- offset-int=0,offset-sss-double=8,
- align-int=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-float=4,
- align-int=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-float=4,
- align-int=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-int=4,
- align-int=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-int=4,
- align-int=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-long=4,
- align-int=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-long=4,
- align-int=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with int:
- size=36,align=12
- offset-int=0,offset-sss-longdouble=12,
- align-int=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with int:
- size=36,align=12
- offset-int=0,offset-sss-longdouble=12,
- align-int=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with int:
- size=16,align=8
- offset-int=0,offset-sss-longlong=8,
- align-int=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with int:
- size=16,align=8
- offset-int=0,offset-sss-longlong=8,
- align-int=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-pointer=4,
- align-int=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-pointer=4,
- align-int=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-short=4,
- align-int=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-sss-short=4,
- align-int=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-short:
- size=8,align=4,offset-int=0,offset-short=4,
- align-int=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out++	Mon Feb 12 19:40:10 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-short:
- size=8,align=4,offset-int=0,offset-short=4,
- align-int=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-size_t:
- size=8,align=4,offset-int=0,offset-size_t=4,
- align-int=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-size_t:
- size=8,align=4,offset-int=0,offset-size_t=4,
- align-int=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-wchar_t:
- size=8,align=4,offset-int=0,offset-wchar_t=4,
- align-int=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct int-wchar_t:
- size=8,align=4,offset-int=0,offset-wchar_t=4,
- align-int=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-last=4,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with int:
- size=12,align=4
- offset-int=0,offset-last=8,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-last=4,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with int:
- size=12,align=4
- offset-int=0,offset-last=8,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-last=4,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with int:
- size=12,align=4
- offset-int=0,offset-last=8,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with int:
- size=12,align=4
- offset-int=0,offset-last=8,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with int:
- size=24,align=8
- offset-int=0,offset-last=16,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with int:
- size=8,align=4
- offset-int=0,offset-last=4,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-int-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with int:
- size=12,align=4
- offset-int=0,offset-last=8,
- align-int=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with long:
- size=16,align=4
- offset-long=0,offset-arrayof-char=4,
- align-long=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with long:
- size=16,align=4
- offset-long=0,offset-arrayof-char=4,
- align-long=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with long:
- size=88,align=8
- offset-long=0,offset-arrayof-double=8,
- align-long=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with long:
- size=88,align=8
- offset-long=0,offset-arrayof-double=8,
- align-long=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-float=4,
- align-long=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-float=4,
- align-long=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-int=4,
- align-long=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-int=4,
- align-long=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-long=4,
- align-long=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-long=4,
- align-long=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with long:
- size=176,align=16
- offset-long=0,offset-arrayof-longdouble=16,
- align-long=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with long:
- size=176,align=16
- offset-long=0,offset-arrayof-longdouble=16,
- align-long=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with long:
- size=88,align=8
- offset-long=0,offset-arrayof-longlong=8,
- align-long=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with long:
- size=88,align=8
- offset-long=0,offset-arrayof-longlong=8,
- align-long=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-pointer=4,
- align-long=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with long:
- size=44,align=4
- offset-long=0,offset-arrayof-pointer=4,
- align-long=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with long:
- size=24,align=4
- offset-long=0,offset-arrayof-short=4,
- align-long=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with long:
- size=24,align=4
- offset-long=0,offset-arrayof-short=4,
- align-long=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-char:
- size=8,align=4,offset-long=0,offset-char=4,
- align-long=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-char:
- size=8,align=4,offset-long=0,offset-char=4,
- align-long=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-double:
- size=16,align=8,offset-long=0,offset-double=8,
- align-long=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-double:
- size=16,align=8,offset-long=0,offset-double=8,
- align-long=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-float:
- size=8,align=4,offset-long=0,offset-float=4,
- align-long=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-float:
- size=8,align=4,offset-long=0,offset-float=4,
- align-long=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-int:
- size=8,align=4,offset-long=0,offset-int=4,
- align-long=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-int:
- size=8,align=4,offset-long=0,offset-int=4,
- align-long=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-long:
- size=8,align=4,offset-long=0,offset-long=4,
- align-long=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out++	Mon Feb 12 19:40:11 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-long:
- size=8,align=4,offset-long=0,offset-long=4,
- align-long=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-longdouble:
- size=32,align=16,offset-long=0,offset-longdouble=16,
- align-long=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-longdouble:
- size=32,align=16,offset-long=0,offset-longdouble=16,
- align-long=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-longlong:
- size=16,align=8,offset-long=0,offset-longlong=8,
- align-long=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-longlong:
- size=16,align=8,offset-long=0,offset-longlong=8,
- align-long=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-pointer:
- size=8,align=4,offset-long=0,offset-pointer=4,
- align-long=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-pointer:
- size=8,align=4,offset-long=0,offset-pointer=4,
- align-long=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-ptrdiff_t:
- size=8,align=4,offset-long=0,offset-ptrdiff_t=4,
- align-long=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-ptrdiff_t:
- size=8,align=4,offset-long=0,offset-ptrdiff_t=4,
- align-long=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-char=4,
- align-long=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-char=4,
- align-long=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with long:
- size=16,align=8
- offset-long=0,offset-sss-double=8,
- align-long=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with long:
- size=16,align=8
- offset-long=0,offset-sss-double=8,
- align-long=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-float=4,
- align-long=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-float=4,
- align-long=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-int=4,
- align-long=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-int=4,
- align-long=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-long=4,
- align-long=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-long=4,
- align-long=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with long:
- size=36,align=12
- offset-long=0,offset-sss-longdouble=12,
- align-long=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with long:
- size=36,align=12
- offset-long=0,offset-sss-longdouble=12,
- align-long=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with long:
- size=16,align=8
- offset-long=0,offset-sss-longlong=8,
- align-long=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out++	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with long:
- size=16,align=8
- offset-long=0,offset-sss-longlong=8,
- align-long=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out	Mon Feb 12 19:40:12 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-pointer=4,
- align-long=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-pointer=4,
- align-long=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-short=4,
- align-long=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-sss-short=4,
- align-long=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-short:
- size=8,align=4,offset-long=0,offset-short=4,
- align-long=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-short:
- size=8,align=4,offset-long=0,offset-short=4,
- align-long=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-size_t:
- size=8,align=4,offset-long=0,offset-size_t=4,
- align-long=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-size_t:
- size=8,align=4,offset-long=0,offset-size_t=4,
- align-long=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-wchar_t:
- size=8,align=4,offset-long=0,offset-wchar_t=4,
- align-long=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct long-wchar_t:
- size=8,align=4,offset-long=0,offset-wchar_t=4,
- align-long=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-last=4,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with long:
- size=12,align=4
- offset-long=0,offset-last=8,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-last=4,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with long:
- size=12,align=4
- offset-long=0,offset-last=8,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-last=4,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with long:
- size=12,align=4
- offset-long=0,offset-last=8,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with long:
- size=12,align=4
- offset-long=0,offset-last=8,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with long:
- size=24,align=8
- offset-long=0,offset-last=16,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with long:
- size=8,align=4
- offset-long=0,offset-last=4,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-long-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with long:
- size=12,align=4
- offset-long=0,offset-last=8,
- align-long=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-arrayof-char=16,
- align-longdouble=16,align-arrayof-char=1
- offset-char-a[5]=21,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-arrayof-char=16,
- align-longdouble=16,align-arrayof-char=1
- offset-char-a[5]=21,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with longdouble:
- size=96,align=16
- offset-longdouble=0,offset-arrayof-double=16,
- align-longdouble=16,align-arrayof-double=8
- offset-double-a[5]=56,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out+	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-double.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with longdouble:
- size=96,align=16
- offset-longdouble=0,offset-arrayof-double=16,
- align-longdouble=16,align-arrayof-double=8
- offset-double-a[5]=56,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-float=16,
- align-longdouble=16,align-arrayof-float=4
- offset-float-a[5]=36,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-float=16,
- align-longdouble=16,align-arrayof-float=4
- offset-float-a[5]=36,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-int=16,
- align-longdouble=16,align-arrayof-int=4
- offset-int-a[5]=36,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-int=16,
- align-longdouble=16,align-arrayof-int=4
- offset-int-a[5]=36,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-long=16,
- align-longdouble=16,align-arrayof-long=4
- offset-long-a[5]=36,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-long=16,
- align-longdouble=16,align-arrayof-long=4
- offset-long-a[5]=36,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-pointer.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with longdouble:
- size=64,align=16
- offset-longdouble=0,offset-arrayof-pointer=16,
- align-longdouble=16,align-arrayof-pointer=4
- offset-pointer-a[5]=36,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with longdouble:
- size=48,align=16
- offset-longdouble=0,offset-arrayof-short=16,
- align-longdouble=16,align-arrayof-short=2
- offset-short-a[5]=26,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with longdouble:
- size=48,align=16
- offset-longdouble=0,offset-arrayof-short=16,
- align-longdouble=16,align-arrayof-short=2
- offset-short-a[5]=26,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-char:
- size=32,align=16,offset-longdouble=0,offset-char=16,
- align-longdouble=16,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-char:
- size=32,align=16,offset-longdouble=0,offset-char=16,
- align-longdouble=16,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-double:
- size=32,align=16,offset-longdouble=0,offset-double=16,
- align-longdouble=16,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-double:
- size=32,align=16,offset-longdouble=0,offset-double=16,
- align-longdouble=16,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-float:
- size=32,align=16,offset-longdouble=0,offset-float=16,
- align-longdouble=16,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-float:
- size=32,align=16,offset-longdouble=0,offset-float=16,
- align-longdouble=16,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-int:
- size=32,align=16,offset-longdouble=0,offset-int=16,
- align-longdouble=16,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-int:
- size=32,align=16,offset-longdouble=0,offset-int=16,
- align-longdouble=16,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-long:
- size=32,align=16,offset-longdouble=0,offset-long=16,
- align-longdouble=16,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-long:
- size=32,align=16,offset-longdouble=0,offset-long=16,
- align-longdouble=16,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-longlong:
- size=32,align=16,offset-longdouble=0,offset-longlong=16,
- align-longdouble=16,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out+	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-longlong.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-longlong:
- size=32,align=16,offset-longdouble=0,offset-longlong=16,
- align-longdouble=16,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-pointer:
- size=32,align=16,offset-longdouble=0,offset-pointer=16,
- align-longdouble=16,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-pointer:
- size=32,align=16,offset-longdouble=0,offset-pointer=16,
- align-longdouble=16,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-ptrdiff_t.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-ptrdiff_t:
- size=32,align=16,offset-longdouble=0,offset-ptrdiff_t=16,
- align-longdouble=16,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-char=16,
- align-longdouble=16,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-char=16,
- align-longdouble=16,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-double=16,
- align-longdouble=16,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out+	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-double.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-double=16,
- align-longdouble=16,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-float=16,
- align-longdouble=16,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-float=16,
- align-longdouble=16,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-int=16,
- align-longdouble=16,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-int=16,
- align-longdouble=16,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-long=16,
- align-longdouble=16,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-long=16,
- align-longdouble=16,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-pointer.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-pointer=16,
- align-longdouble=16,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-short=16,
- align-longdouble=16,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-sss-short=16,
- align-longdouble=16,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-short:
- size=32,align=16,offset-longdouble=0,offset-short=16,
- align-longdouble=16,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-short:
- size=32,align=16,offset-longdouble=0,offset-short=16,
- align-longdouble=16,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-size_t:
- size=32,align=16,offset-longdouble=0,offset-size_t=16,
- align-longdouble=16,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-size_t:
- size=32,align=16,offset-longdouble=0,offset-size_t=16,
- align-longdouble=16,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-wchar_t:
- size=32,align=16,offset-longdouble=0,offset-wchar_t=16,
- align-longdouble=16,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longdouble-wchar_t:
- size=32,align=16,offset-longdouble=0,offset-wchar_t=16,
- align-longdouble=16,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=16,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=20,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=16,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=20,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=16,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=20,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=16,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out+	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longdouble-zf-short.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with longdouble:
- size=32,align=16
- offset-longdouble=0,offset-last=20,
- align-longdouble=16,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with longlong:
- size=24,align=8
- offset-longlong=0,offset-arrayof-char=8,
- align-longlong=8,align-arrayof-char=1
- offset-char-a[5]=13,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with longlong:
- size=24,align=8
- offset-longlong=0,offset-arrayof-char=8,
- align-longlong=8,align-arrayof-char=1
- offset-char-a[5]=13,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with longlong:
- size=88,align=8
- offset-longlong=0,offset-arrayof-double=8,
- align-longlong=8,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with longlong:
- size=88,align=8
- offset-longlong=0,offset-arrayof-double=8,
- align-longlong=8,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-float=8,
- align-longlong=8,align-arrayof-float=4
- offset-float-a[5]=28,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-float=8,
- align-longlong=8,align-arrayof-float=4
- offset-float-a[5]=28,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-int=8,
- align-longlong=8,align-arrayof-int=4
- offset-int-a[5]=28,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-int=8,
- align-longlong=8,align-arrayof-int=4
- offset-int-a[5]=28,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-long=8,
- align-longlong=8,align-arrayof-long=4
- offset-long-a[5]=28,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-long=8,
- align-longlong=8,align-arrayof-long=4
- offset-long-a[5]=28,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with longlong:
- size=88,align=8
- offset-longlong=0,offset-arrayof-longlong=8,
- align-longlong=8,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out+	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-longlong.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with longlong:
- size=88,align=8
- offset-longlong=0,offset-arrayof-longlong=8,
- align-longlong=8,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-pointer=8,
- align-longlong=8,align-arrayof-pointer=4
- offset-pointer-a[5]=28,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with longlong:
- size=48,align=8
- offset-longlong=0,offset-arrayof-pointer=8,
- align-longlong=8,align-arrayof-pointer=4
- offset-pointer-a[5]=28,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with longlong:
- size=32,align=8
- offset-longlong=0,offset-arrayof-short=8,
- align-longlong=8,align-arrayof-short=2
- offset-short-a[5]=18,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with longlong:
- size=32,align=8
- offset-longlong=0,offset-arrayof-short=8,
- align-longlong=8,align-arrayof-short=2
- offset-short-a[5]=18,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-char:
- size=16,align=8,offset-longlong=0,offset-char=8,
- align-longlong=8,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out++	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-char:
- size=16,align=8,offset-longlong=0,offset-char=8,
- align-longlong=8,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out	Mon Feb 12 19:40:13 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-double:
- size=16,align=8,offset-longlong=0,offset-double=8,
- align-longlong=8,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-double:
- size=16,align=8,offset-longlong=0,offset-double=8,
- align-longlong=8,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-float:
- size=16,align=8,offset-longlong=0,offset-float=8,
- align-longlong=8,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-float:
- size=16,align=8,offset-longlong=0,offset-float=8,
- align-longlong=8,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-int:
- size=16,align=8,offset-longlong=0,offset-int=8,
- align-longlong=8,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-int:
- size=16,align=8,offset-longlong=0,offset-int=8,
- align-longlong=8,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-long:
- size=16,align=8,offset-longlong=0,offset-long=8,
- align-longlong=8,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-long:
- size=16,align=8,offset-longlong=0,offset-long=8,
- align-longlong=8,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-longdouble:
- size=32,align=16,offset-longlong=0,offset-longdouble=16,
- align-longlong=8,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out+	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longdouble.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-longdouble:
- size=32,align=16,offset-longlong=0,offset-longdouble=16,
- align-longlong=8,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-longlong:
- size=16,align=8,offset-longlong=0,offset-longlong=8,
- align-longlong=8,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-longlong:
- size=16,align=8,offset-longlong=0,offset-longlong=8,
- align-longlong=8,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-pointer:
- size=16,align=8,offset-longlong=0,offset-pointer=8,
- align-longlong=8,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-pointer:
- size=16,align=8,offset-longlong=0,offset-pointer=8,
- align-longlong=8,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-ptrdiff_t:
- size=16,align=8,offset-longlong=0,offset-ptrdiff_t=8,
- align-longlong=8,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-ptrdiff_t:
- size=16,align=8,offset-longlong=0,offset-ptrdiff_t=8,
- align-longlong=8,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-char=8,
- align-longlong=8,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-char=8,
- align-longlong=8,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-double=8,
- align-longlong=8,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-double=8,
- align-longlong=8,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-float=8,
- align-longlong=8,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-float=8,
- align-longlong=8,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-int=8,
- align-longlong=8,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-int=8,
- align-longlong=8,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-long=8,
- align-longlong=8,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-long=8,
- align-longlong=8,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-longlong=8,
- align-longlong=8,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out+	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-longlong.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-longlong=8,
- align-longlong=8,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-pointer=8,
- align-longlong=8,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-pointer=8,
- align-longlong=8,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-short=8,
- align-longlong=8,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-sss-short=8,
- align-longlong=8,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-short:
- size=16,align=8,offset-longlong=0,offset-short=8,
- align-longlong=8,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-short:
- size=16,align=8,offset-longlong=0,offset-short=8,
- align-longlong=8,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-size_t:
- size=16,align=8,offset-longlong=0,offset-size_t=8,
- align-longlong=8,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-size_t:
- size=16,align=8,offset-longlong=0,offset-size_t=8,
- align-longlong=8,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-wchar_t:
- size=16,align=8,offset-longlong=0,offset-wchar_t=8,
- align-longlong=8,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct longlong-wchar_t:
- size=16,align=8,offset-longlong=0,offset-wchar_t=8,
- align-longlong=8,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=8,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=12,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=8,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=12,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=8,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=12,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-longlong.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with longlong:
- size=24,align=8
- offset-longlong=0,offset-last=16,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=8,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-longlong-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with longlong:
- size=16,align=8
- offset-longlong=0,offset-last=12,
- align-longlong=8,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with pointer:
- size=16,align=4
- offset-pointer=0,offset-arrayof-char=4,
- align-pointer=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with pointer:
- size=16,align=4
- offset-pointer=0,offset-arrayof-char=4,
- align-pointer=4,align-arrayof-char=1
- offset-char-a[5]=9,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with pointer:
- size=88,align=8
- offset-pointer=0,offset-arrayof-double=8,
- align-pointer=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with pointer:
- size=88,align=8
- offset-pointer=0,offset-arrayof-double=8,
- align-pointer=4,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-float=4,
- align-pointer=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-float=4,
- align-pointer=4,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-int=4,
- align-pointer=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-int=4,
- align-pointer=4,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-long=4,
- align-pointer=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-long=4,
- align-pointer=4,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longdouble.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with pointer:
- size=176,align=16
- offset-pointer=0,offset-arrayof-longdouble=16,
- align-pointer=4,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with pointer:
- size=88,align=8
- offset-pointer=0,offset-arrayof-longlong=8,
- align-pointer=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with pointer:
- size=88,align=8
- offset-pointer=0,offset-arrayof-longlong=8,
- align-pointer=4,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-pointer=4,
- align-pointer=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with pointer:
- size=44,align=4
- offset-pointer=0,offset-arrayof-pointer=4,
- align-pointer=4,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with pointer:
- size=24,align=4
- offset-pointer=0,offset-arrayof-short=4,
- align-pointer=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with pointer:
- size=24,align=4
- offset-pointer=0,offset-arrayof-short=4,
- align-pointer=4,align-arrayof-short=2
- offset-short-a[5]=14,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-char:
- size=8,align=4,offset-pointer=0,offset-char=4,
- align-pointer=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-char:
- size=8,align=4,offset-pointer=0,offset-char=4,
- align-pointer=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-double:
- size=16,align=8,offset-pointer=0,offset-double=8,
- align-pointer=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-double:
- size=16,align=8,offset-pointer=0,offset-double=8,
- align-pointer=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-float:
- size=8,align=4,offset-pointer=0,offset-float=4,
- align-pointer=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-float:
- size=8,align=4,offset-pointer=0,offset-float=4,
- align-pointer=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-int:
- size=8,align=4,offset-pointer=0,offset-int=4,
- align-pointer=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-int:
- size=8,align=4,offset-pointer=0,offset-int=4,
- align-pointer=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-long:
- size=8,align=4,offset-pointer=0,offset-long=4,
- align-pointer=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-long:
- size=8,align=4,offset-pointer=0,offset-long=4,
- align-pointer=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-longdouble:
- size=32,align=16,offset-pointer=0,offset-longdouble=16,
- align-pointer=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-longdouble:
- size=32,align=16,offset-pointer=0,offset-longdouble=16,
- align-pointer=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-longlong:
- size=16,align=8,offset-pointer=0,offset-longlong=8,
- align-pointer=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-longlong:
- size=16,align=8,offset-pointer=0,offset-longlong=8,
- align-pointer=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-pointer:
- size=8,align=4,offset-pointer=0,offset-pointer=4,
- align-pointer=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-pointer:
- size=8,align=4,offset-pointer=0,offset-pointer=4,
- align-pointer=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-ptrdiff_t:
- size=8,align=4,offset-pointer=0,offset-ptrdiff_t=4,
- align-pointer=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-ptrdiff_t:
- size=8,align=4,offset-pointer=0,offset-ptrdiff_t=4,
- align-pointer=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-char=4,
- align-pointer=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-char=4,
- align-pointer=4,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with pointer:
- size=16,align=8
- offset-pointer=0,offset-sss-double=8,
- align-pointer=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out++	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with pointer:
- size=16,align=8
- offset-pointer=0,offset-sss-double=8,
- align-pointer=4,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out	Mon Feb 12 19:40:14 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-float=4,
- align-pointer=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-float=4,
- align-pointer=4,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-int=4,
- align-pointer=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-int=4,
- align-pointer=4,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-long=4,
- align-pointer=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-long=4,
- align-pointer=4,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longdouble.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with pointer:
- size=36,align=12
- offset-pointer=0,offset-sss-longdouble=12,
- align-pointer=4,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with pointer:
- size=16,align=8
- offset-pointer=0,offset-sss-longlong=8,
- align-pointer=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with pointer:
- size=16,align=8
- offset-pointer=0,offset-sss-longlong=8,
- align-pointer=4,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-pointer=4,
- align-pointer=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-pointer=4,
- align-pointer=4,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-short=4,
- align-pointer=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-sss-short=4,
- align-pointer=4,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-short:
- size=8,align=4,offset-pointer=0,offset-short=4,
- align-pointer=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-short:
- size=8,align=4,offset-pointer=0,offset-short=4,
- align-pointer=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-size_t:
- size=8,align=4,offset-pointer=0,offset-size_t=4,
- align-pointer=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-size_t:
- size=8,align=4,offset-pointer=0,offset-size_t=4,
- align-pointer=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-wchar_t:
- size=8,align=4,offset-pointer=0,offset-wchar_t=4,
- align-pointer=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct pointer-wchar_t:
- size=8,align=4,offset-pointer=0,offset-wchar_t=4,
- align-pointer=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-last=4,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with pointer:
- size=12,align=4
- offset-pointer=0,offset-last=8,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-last=4,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with pointer:
- size=12,align=4
- offset-pointer=0,offset-last=8,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-last=4,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with pointer:
- size=12,align=4
- offset-pointer=0,offset-last=8,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with pointer:
- size=12,align=4
- offset-pointer=0,offset-last=8,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out+	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-longlong.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with pointer:
- size=24,align=8
- offset-pointer=0,offset-last=16,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with pointer:
- size=8,align=4
- offset-pointer=0,offset-last=4,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-pointer-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with pointer:
- size=12,align=4
- offset-pointer=0,offset-last=8,
- align-pointer=4,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-char:
- size=8,align=4,offset-ptrdiff_t=0,offset-char=4,
- align-ptrdiff_t=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-char:
- size=8,align=4,offset-ptrdiff_t=0,offset-char=4,
- align-ptrdiff_t=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-double:
- size=16,align=8,offset-ptrdiff_t=0,offset-double=8,
- align-ptrdiff_t=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-double:
- size=16,align=8,offset-ptrdiff_t=0,offset-double=8,
- align-ptrdiff_t=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-float:
- size=8,align=4,offset-ptrdiff_t=0,offset-float=4,
- align-ptrdiff_t=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-float:
- size=8,align=4,offset-ptrdiff_t=0,offset-float=4,
- align-ptrdiff_t=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-int:
- size=8,align=4,offset-ptrdiff_t=0,offset-int=4,
- align-ptrdiff_t=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-int:
- size=8,align=4,offset-ptrdiff_t=0,offset-int=4,
- align-ptrdiff_t=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-long:
- size=8,align=4,offset-ptrdiff_t=0,offset-long=4,
- align-ptrdiff_t=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-long:
- size=8,align=4,offset-ptrdiff_t=0,offset-long=4,
- align-ptrdiff_t=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longdouble.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-longdouble:
- size=32,align=16,offset-ptrdiff_t=0,offset-longdouble=16,
- align-ptrdiff_t=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-longlong:
- size=16,align=8,offset-ptrdiff_t=0,offset-longlong=8,
- align-ptrdiff_t=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-longlong:
- size=16,align=8,offset-ptrdiff_t=0,offset-longlong=8,
- align-ptrdiff_t=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-pointer:
- size=8,align=4,offset-ptrdiff_t=0,offset-pointer=4,
- align-ptrdiff_t=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-pointer:
- size=8,align=4,offset-ptrdiff_t=0,offset-pointer=4,
- align-ptrdiff_t=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-ptrdiff_t:
- size=8,align=4,offset-ptrdiff_t=0,offset-ptrdiff_t=4,
- align-ptrdiff_t=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out+ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out+
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out+	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-ptrdiff_t.out+	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-ptrdiff_t:
- size=8,align=4,offset-ptrdiff_t=0,offset-ptrdiff_t=4,
- align-ptrdiff_t=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-short:
- size=8,align=4,offset-ptrdiff_t=0,offset-short=4,
- align-ptrdiff_t=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-short:
- size=8,align=4,offset-ptrdiff_t=0,offset-short=4,
- align-ptrdiff_t=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-size_t:
- size=8,align=4,offset-ptrdiff_t=0,offset-size_t=4,
- align-ptrdiff_t=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-size_t:
- size=8,align=4,offset-ptrdiff_t=0,offset-size_t=4,
- align-ptrdiff_t=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-wchar_t:
- size=8,align=4,offset-ptrdiff_t=0,offset-wchar_t=4,
- align-ptrdiff_t=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-ptrdiff_t-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct ptrdiff_t-wchar_t:
- size=8,align=4,offset-ptrdiff_t=0,offset-wchar_t=4,
- align-ptrdiff_t=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with short:
- size=12,align=2
- offset-short=0,offset-arrayof-char=2,
- align-short=2,align-arrayof-char=1
- offset-char-a[5]=7,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of char in struct starting with short:
- size=12,align=2
- offset-short=0,offset-arrayof-char=2,
- align-short=2,align-arrayof-char=1
- offset-char-a[5]=7,align-char-a[5]=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with short:
- size=88,align=8
- offset-short=0,offset-arrayof-double=8,
- align-short=2,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of double in struct starting with short:
- size=88,align=8
- offset-short=0,offset-arrayof-double=8,
- align-short=2,align-arrayof-double=8
- offset-double-a[5]=48,align-double-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-float=4,
- align-short=2,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of float in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-float=4,
- align-short=2,align-arrayof-float=4
- offset-float-a[5]=24,align-float-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-int=4,
- align-short=2,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of int in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-int=4,
- align-short=2,align-arrayof-int=4
- offset-int-a[5]=24,align-int-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-long=4,
- align-short=2,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of long in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-long=4,
- align-short=2,align-arrayof-long=4
- offset-long-a[5]=24,align-long-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with short:
- size=176,align=16
- offset-short=0,offset-arrayof-longdouble=16,
- align-short=2,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longdouble in struct starting with short:
- size=176,align=16
- offset-short=0,offset-arrayof-longdouble=16,
- align-short=2,align-arrayof-longdouble=16
- offset-longdouble-a[5]=96,align-longdouble-a[5]=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with short:
- size=88,align=8
- offset-short=0,offset-arrayof-longlong=8,
- align-short=2,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of longlong in struct starting with short:
- size=88,align=8
- offset-short=0,offset-arrayof-longlong=8,
- align-short=2,align-arrayof-longlong=8
- offset-longlong-a[5]=48,align-longlong-a[5]=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-pointer=4,
- align-short=2,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of pointer in struct starting with short:
- size=44,align=4
- offset-short=0,offset-arrayof-pointer=4,
- align-short=2,align-arrayof-pointer=4
- offset-pointer-a[5]=24,align-pointer-a[5]=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with short:
- size=22,align=2
- offset-short=0,offset-arrayof-short=2,
- align-short=2,align-arrayof-short=2
- offset-short-a[5]=12,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-a-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- ++++Array of short in struct starting with short:
- size=22,align=2
- offset-short=0,offset-arrayof-short=2,
- align-short=2,align-arrayof-short=2
- offset-short-a[5]=12,align-short-a[5]=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-char:
- size=4,align=2,offset-short=0,offset-char=2,
- align-short=2,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-char:
- size=4,align=2,offset-short=0,offset-char=2,
- align-short=2,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-double:
- size=16,align=8,offset-short=0,offset-double=8,
- align-short=2,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-double:
- size=16,align=8,offset-short=0,offset-double=8,
- align-short=2,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-float:
- size=8,align=4,offset-short=0,offset-float=4,
- align-short=2,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-float:
- size=8,align=4,offset-short=0,offset-float=4,
- align-short=2,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-int:
- size=8,align=4,offset-short=0,offset-int=4,
- align-short=2,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-int:
- size=8,align=4,offset-short=0,offset-int=4,
- align-short=2,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-long:
- size=8,align=4,offset-short=0,offset-long=4,
- align-short=2,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-long:
- size=8,align=4,offset-short=0,offset-long=4,
- align-short=2,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-longdouble:
- size=32,align=16,offset-short=0,offset-longdouble=16,
- align-short=2,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-longdouble:
- size=32,align=16,offset-short=0,offset-longdouble=16,
- align-short=2,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-longlong:
- size=16,align=8,offset-short=0,offset-longlong=8,
- align-short=2,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-longlong:
- size=16,align=8,offset-short=0,offset-longlong=8,
- align-short=2,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-pointer:
- size=8,align=4,offset-short=0,offset-pointer=4,
- align-short=2,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-pointer:
- size=8,align=4,offset-short=0,offset-pointer=4,
- align-short=2,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-ptrdiff_t:
- size=8,align=4,offset-short=0,offset-ptrdiff_t=4,
- align-short=2,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-ptrdiff_t:
- size=8,align=4,offset-short=0,offset-ptrdiff_t=4,
- align-short=2,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with short:
- size=4,align=2
- offset-short=0,offset-sss-char=2,
- align-short=2,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct char inside struct starting with short:
- size=4,align=2
- offset-short=0,offset-sss-char=2,
- align-short=2,align-sss-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with short:
- size=16,align=8
- offset-short=0,offset-sss-double=8,
- align-short=2,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct double inside struct starting with short:
- size=16,align=8
- offset-short=0,offset-sss-double=8,
- align-short=2,align-sss-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-float=4,
- align-short=2,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct float inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-float=4,
- align-short=2,align-sss-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-int=4,
- align-short=2,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct int inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-int=4,
- align-short=2,align-sss-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-long=4,
- align-short=2,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct long inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-long=4,
- align-short=2,align-sss-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with short:
- size=36,align=12
- offset-short=0,offset-sss-longdouble=12,
- align-short=2,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longdouble inside struct starting with short:
- size=36,align=12
- offset-short=0,offset-sss-longdouble=12,
- align-short=2,align-sss-longdouble=12
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with short:
- size=16,align=8
- offset-short=0,offset-sss-longlong=8,
- align-short=2,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct longlong inside struct starting with short:
- size=16,align=8
- offset-short=0,offset-sss-longlong=8,
- align-short=2,align-sss-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-pointer=4,
- align-short=2,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct pointer inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-sss-pointer=4,
- align-short=2,align-sss-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with short:
- size=4,align=2
- offset-short=0,offset-sss-short=2,
- align-short=2,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-s-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++Struct short inside struct starting with short:
- size=4,align=2
- offset-short=0,offset-sss-short=2,
- align-short=2,align-sss-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-short:
- size=4,align=2,offset-short=0,offset-short=2,
- align-short=2,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-short:
- size=4,align=2,offset-short=0,offset-short=2,
- align-short=2,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-size_t:
- size=8,align=4,offset-short=0,offset-size_t=4,
- align-short=2,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-size_t:
- size=8,align=4,offset-short=0,offset-size_t=4,
- align-short=2,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-wchar_t:
- size=8,align=4,offset-short=0,offset-wchar_t=4,
- align-short=2,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct short-wchar_t:
- size=8,align=4,offset-short=0,offset-wchar_t=4,
- align-short=2,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-last=4,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++char zerofield inside struct starting with short:
- size=12,align=4
- offset-short=0,offset-last=8,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-last=4,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out++	Mon Feb 12 19:40:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++int zerofield inside struct starting with short:
- size=12,align=4
- offset-short=0,offset-last=8,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-last=4,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++long zerofield inside struct starting with short:
- size=12,align=4
- offset-short=0,offset-last=8,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with short:
- size=12,align=4
- offset-short=0,offset-last=8,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++longlong zerofield inside struct starting with short:
- size=24,align=8
- offset-short=0,offset-last=16,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with short:
- size=8,align=4
- offset-short=0,offset-last=4,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-short-zf-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- +++short zerofield inside struct starting with short:
- size=12,align=4
- offset-short=0,offset-last=8,
- align-short=2,align-last=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-char:
- size=8,align=4,offset-size_t=0,offset-char=4,
- align-size_t=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-char:
- size=8,align=4,offset-size_t=0,offset-char=4,
- align-size_t=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-double:
- size=16,align=8,offset-size_t=0,offset-double=8,
- align-size_t=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-double:
- size=16,align=8,offset-size_t=0,offset-double=8,
- align-size_t=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-float:
- size=8,align=4,offset-size_t=0,offset-float=4,
- align-size_t=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-float:
- size=8,align=4,offset-size_t=0,offset-float=4,
- align-size_t=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-int:
- size=8,align=4,offset-size_t=0,offset-int=4,
- align-size_t=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-int:
- size=8,align=4,offset-size_t=0,offset-int=4,
- align-size_t=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-long:
- size=8,align=4,offset-size_t=0,offset-long=4,
- align-size_t=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-long:
- size=8,align=4,offset-size_t=0,offset-long=4,
- align-size_t=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-longdouble:
- size=32,align=16,offset-size_t=0,offset-longdouble=16,
- align-size_t=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-longdouble:
- size=32,align=16,offset-size_t=0,offset-longdouble=16,
- align-size_t=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-longlong:
- size=16,align=8,offset-size_t=0,offset-longlong=8,
- align-size_t=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-longlong:
- size=16,align=8,offset-size_t=0,offset-longlong=8,
- align-size_t=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-pointer:
- size=8,align=4,offset-size_t=0,offset-pointer=4,
- align-size_t=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-pointer:
- size=8,align=4,offset-size_t=0,offset-pointer=4,
- align-size_t=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-ptrdiff_t:
- size=8,align=4,offset-size_t=0,offset-ptrdiff_t=4,
- align-size_t=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-ptrdiff_t:
- size=8,align=4,offset-size_t=0,offset-ptrdiff_t=4,
- align-size_t=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-short:
- size=8,align=4,offset-size_t=0,offset-short=4,
- align-size_t=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-short:
- size=8,align=4,offset-size_t=0,offset-short=4,
- align-size_t=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-size_t:
- size=8,align=4,offset-size_t=0,offset-size_t=4,
- align-size_t=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-size_t:
- size=8,align=4,offset-size_t=0,offset-size_t=4,
- align-size_t=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-wchar_t:
- size=8,align=4,offset-size_t=0,offset-wchar_t=4,
- align-size_t=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-size_t-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct size_t-wchar_t:
- size=8,align=4,offset-size_t=0,offset-wchar_t=4,
- align-size_t=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-char:
- size=8,align=4,offset-wchar_t=0,offset-char=4,
- align-wchar_t=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-char:
- size=8,align=4,offset-wchar_t=0,offset-char=4,
- align-wchar_t=4,align-char=1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-double:
- size=16,align=8,offset-wchar_t=0,offset-double=8,
- align-wchar_t=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-double:
- size=16,align=8,offset-wchar_t=0,offset-double=8,
- align-wchar_t=4,align-double=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-float:
- size=8,align=4,offset-wchar_t=0,offset-float=4,
- align-wchar_t=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-float:
- size=8,align=4,offset-wchar_t=0,offset-float=4,
- align-wchar_t=4,align-float=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-int:
- size=8,align=4,offset-wchar_t=0,offset-int=4,
- align-wchar_t=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-int:
- size=8,align=4,offset-wchar_t=0,offset-int=4,
- align-wchar_t=4,align-int=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-long:
- size=8,align=4,offset-wchar_t=0,offset-long=4,
- align-wchar_t=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-long:
- size=8,align=4,offset-wchar_t=0,offset-long=4,
- align-wchar_t=4,align-long=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-longdouble:
- size=32,align=16,offset-wchar_t=0,offset-longdouble=16,
- align-wchar_t=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-longdouble:
- size=32,align=16,offset-wchar_t=0,offset-longdouble=16,
- align-wchar_t=4,align-longdouble=16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-longlong:
- size=16,align=8,offset-wchar_t=0,offset-longlong=8,
- align-wchar_t=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-longlong:
- size=16,align=8,offset-wchar_t=0,offset-longlong=8,
- align-wchar_t=4,align-longlong=8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-pointer:
- size=8,align=4,offset-wchar_t=0,offset-pointer=4,
- align-wchar_t=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-pointer:
- size=8,align=4,offset-wchar_t=0,offset-pointer=4,
- align-wchar_t=4,align-pointer=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-ptrdiff_t:
- size=8,align=4,offset-wchar_t=0,offset-ptrdiff_t=4,
- align-wchar_t=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-ptrdiff_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-ptrdiff_t:
- size=8,align=4,offset-wchar_t=0,offset-ptrdiff_t=4,
- align-wchar_t=4,align-ptrdiff_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-short:
- size=8,align=4,offset-wchar_t=0,offset-short=4,
- align-wchar_t=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-short:
- size=8,align=4,offset-wchar_t=0,offset-short=4,
- align-wchar_t=4,align-short=2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-size_t:
- size=8,align=4,offset-wchar_t=0,offset-size_t=4,
- align-wchar_t=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-size_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-size_t:
- size=8,align=4,offset-wchar_t=0,offset-size_t=4,
- align-wchar_t=4,align-size_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-wchar_t:
- size=8,align=4,offset-wchar_t=0,offset-wchar_t=4,
- align-wchar_t=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/s-wchar_t-wchar_t.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,3 ****
- +++Struct wchar_t-wchar_t:
- size=8,align=4,offset-wchar_t=0,offset-wchar_t=4,
- align-wchar_t=4,align-wchar_t=4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-bool.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-bool.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-bool.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-bool.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Bool size:
- 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Char size:
- 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-char.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Char size:
- 1
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Double size:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-double.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Double size:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Float size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-float.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Float size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Int size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-int.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Int size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-long.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long Double size:
- 16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longdouble.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long Double size:
- 16
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long long size:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-longlong.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Long long size:
- 8
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Pointer size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-pointer.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Pointer size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++ptrdiff_t size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-ptrdiff.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++ptrdiff_t size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Short size:
- 2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-short.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++Short size:
- 2
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++size_t size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out++	Mon Feb 12 19:40:16 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-size.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++size_t size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out	Mon Feb 12 19:40:17 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++wchar_t size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out++ gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out++
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out++	Mon Feb 12 19:40:17 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/i960-97r2-results/size-wchar.out++	Thu Jan  1 00:00:00 1970
***************
*** 1,2 ****
- +++wchar_t size:
- 4
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/minimal-struct-size-align.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/minimal-struct-size-align.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/minimal-struct-size-align.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/minimal-struct-size-align.c	Thu Jan  1 00:00:00 1970
***************
*** 1,551 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct {} s0;
- static union {} u0;
- static struct {int :0;} s1;
- static union {int :0;} u1;
- static struct {char m;} s2;
- static union {char m;} u2;
- static struct {short m;} s3;
- static union {short m;} u3;
- static struct {int m;} s4;
- static union {int m;} u4;
- static struct {long m;} s5;
- static union {long m;} u5;
- static struct {long long m;} s6;
- static union {long long m;} u6;
- static struct {char * m;} s7;
- static union {char * m;} u7;
- static struct {float m;} s8;
- static union {float m;} u8;
- static struct {double m;} s9;
- static union {double m;} u9;
- static struct {long double m;} s10;
- static union {long double m;} u10;
- static struct {ptrdiff_t m;} s11;
- static union {ptrdiff_t m;} u11;
- static struct {size_t m;} s12;
- static union {size_t m;} u12;
- static struct {wchar_t m;} s13;
- static union {wchar_t m;} u13;
- static struct {struct {char m;}m;} s14;
- static union {struct {char m;}m;} u14;
- static struct {union {char m;}m;} s15;
- static union {union {char m;}m;} u15;
- static struct {struct {short m;}m;} s16;
- static union {struct {short m;}m;} u16;
- static struct {union {short m;}m;} s17;
- static union {union {short m;}m;} u17;
- static struct {struct {int m;}m;} s18;
- static union {struct {int m;}m;} u18;
- static struct {union {int m;}m;} s19;
- static union {union {int m;}m;} u19;
- static struct {struct {long m;}m;} s20;
- static union {struct {long m;}m;} u20;
- static struct {union {long m;}m;} s21;
- static union {union {long m;}m;} u21;
- static struct {struct {long long m;}m;} s22;
- static union {struct {long long m;}m;} u22;
- static struct {union {long long m;}m;} s23;
- static union {union {long long m;}m;} u23;
- static struct {struct {char * m;}m;} s24;
- static union {struct {char * m;}m;} u24;
- static struct {union {char * m;}m;} s25;
- static union {union {char * m;}m;} u25;
- static struct {struct {float m;}m;} s26;
- static union {struct {float m;}m;} u26;
- static struct {union {float m;}m;} s27;
- static union {union {float m;}m;} u27;
- static struct {struct {double m;}m;} s28;
- static union {struct {double m;}m;} u28;
- static struct {union {double m;}m;} s29;
- static union {union {double m;}m;} u29;
- static struct {struct {long double m;}m;} s30;
- static union {struct {long double m;}m;} u30;
- static struct {union {long double m;}m;} s31;
- static union {union {long double m;}m;} u31;
- static struct {struct {ptrdiff_t m;}m;} s32;
- static union {struct {ptrdiff_t m;}m;} u32;
- static struct {union {ptrdiff_t m;}m;} s33;
- static union {union {ptrdiff_t m;}m;} u33;
- static struct {struct {size_t m;}m;} s34;
- static union {struct {size_t m;}m;} u34;
- static struct {union {size_t m;}m;} s35;
- static union {union {size_t m;}m;} u35;
- static struct {struct {wchar_t m;}m;} s36;
- static union {struct {wchar_t m;}m;} u36;
- static struct {union {wchar_t m;}m;} s37;
- static union {union {wchar_t m;}m;} u37;
- static struct {struct {}m;} s38;
- static union {struct {}m;} u38;
- static struct {union {}m;} s39;
- static union {union {}m;} u39;
- static struct {struct {int :0;}m;} s40;
- static union {struct {int :0;}m;} u40;
- static struct {union {int :0;}m;} s41;
- static union {union {int :0;}m;} u41;
- static struct {char m [0];} s42;
- static union {char m [0];} u42;
- static struct {short m [0];} s43;
- static union {short m [0];} u43;
- static struct {int m [0];} s44;
- static union {int m [0];} u44;
- static struct {long m [0];} s45;
- static union {long m [0];} u45;
- static struct {long long m [0];} s46;
- static union {long long m [0];} u46;
- static struct {char * m [0];} s47;
- static union {char * m [0];} u47;
- static struct {float m [0];} s48;
- static union {float m [0];} u48;
- static struct {double m [0];} s49;
- static union {double m [0];} u49;
- static struct {long double m [0];} s50;
- static union {long double m [0];} u50;
- static struct {ptrdiff_t m [0];} s51;
- static union {ptrdiff_t m [0];} u51;
- static struct {size_t m [0];} s52;
- static union {size_t m [0];} u52;
- static struct {wchar_t m [0];} s53;
- static union {wchar_t m [0];} u53;
- int main (void) {
-   int min_size = 0;
-   int min_align = 0;
-   printf ("+++Minimal struct size/alignment:\n");
-   if (min_size > sizeof (s0))
-      min_size = sizeof (s0);
-   if (min_align > __alignof__ (s0))
-      min_align = __alignof__ (s0);
-   if (min_size > sizeof (u0))
-      min_size = sizeof (u0);
-   if (min_align > __alignof__ (u0))
-      min_align = __alignof__ (u0);
-   if (min_size > sizeof (s1))
-      min_size = sizeof (s1);
-   if (min_align > __alignof__ (s1))
-      min_align = __alignof__ (s1);
-   if (min_size > sizeof (u1))
-      min_size = sizeof (u1);
-   if (min_align > __alignof__ (u1))
-      min_align = __alignof__ (u1);
-   if (min_size > sizeof (s2))
-      min_size = sizeof (s2);
-   if (min_align > __alignof__ (s2))
-      min_align = __alignof__ (s2);
-   if (min_size > sizeof (u2))
-      min_size = sizeof (u2);
-   if (min_align > __alignof__ (u2))
-      min_align = __alignof__ (u2);
-   if (min_size > sizeof (s3))
-      min_size = sizeof (s3);
-   if (min_align > __alignof__ (s3))
-      min_align = __alignof__ (s3);
-   if (min_size > sizeof (u3))
-      min_size = sizeof (u3);
-   if (min_align > __alignof__ (u3))
-      min_align = __alignof__ (u3);
-   if (min_size > sizeof (s4))
-      min_size = sizeof (s4);
-   if (min_align > __alignof__ (s4))
-      min_align = __alignof__ (s4);
-   if (min_size > sizeof (u4))
-      min_size = sizeof (u4);
-   if (min_align > __alignof__ (u4))
-      min_align = __alignof__ (u4);
-   if (min_size > sizeof (s5))
-      min_size = sizeof (s5);
-   if (min_align > __alignof__ (s5))
-      min_align = __alignof__ (s5);
-   if (min_size > sizeof (u5))
-      min_size = sizeof (u5);
-   if (min_align > __alignof__ (u5))
-      min_align = __alignof__ (u5);
-   if (min_size > sizeof (s6))
-      min_size = sizeof (s6);
-   if (min_align > __alignof__ (s6))
-      min_align = __alignof__ (s6);
-   if (min_size > sizeof (u6))
-      min_size = sizeof (u6);
-   if (min_align > __alignof__ (u6))
-      min_align = __alignof__ (u6);
-   if (min_size > sizeof (s7))
-      min_size = sizeof (s7);
-   if (min_align > __alignof__ (s7))
-      min_align = __alignof__ (s7);
-   if (min_size > sizeof (u7))
-      min_size = sizeof (u7);
-   if (min_align > __alignof__ (u7))
-      min_align = __alignof__ (u7);
-   if (min_size > sizeof (s8))
-      min_size = sizeof (s8);
-   if (min_align > __alignof__ (s8))
-      min_align = __alignof__ (s8);
-   if (min_size > sizeof (u8))
-      min_size = sizeof (u8);
-   if (min_align > __alignof__ (u8))
-      min_align = __alignof__ (u8);
-   if (min_size > sizeof (s9))
-      min_size = sizeof (s9);
-   if (min_align > __alignof__ (s9))
-      min_align = __alignof__ (s9);
-   if (min_size > sizeof (u9))
-      min_size = sizeof (u9);
-   if (min_align > __alignof__ (u9))
-      min_align = __alignof__ (u9);
-   if (min_size > sizeof (s10))
-      min_size = sizeof (s10);
-   if (min_align > __alignof__ (s10))
-      min_align = __alignof__ (s10);
-   if (min_size > sizeof (u10))
-      min_size = sizeof (u10);
-   if (min_align > __alignof__ (u10))
-      min_align = __alignof__ (u10);
-   if (min_size > sizeof (s11))
-      min_size = sizeof (s11);
-   if (min_align > __alignof__ (s11))
-      min_align = __alignof__ (s11);
-   if (min_size > sizeof (u11))
-      min_size = sizeof (u11);
-   if (min_align > __alignof__ (u11))
-      min_align = __alignof__ (u11);
-   if (min_size > sizeof (s12))
-      min_size = sizeof (s12);
-   if (min_align > __alignof__ (s12))
-      min_align = __alignof__ (s12);
-   if (min_size > sizeof (u12))
-      min_size = sizeof (u12);
-   if (min_align > __alignof__ (u12))
-      min_align = __alignof__ (u12);
-   if (min_size > sizeof (s13))
-      min_size = sizeof (s13);
-   if (min_align > __alignof__ (s13))
-      min_align = __alignof__ (s13);
-   if (min_size > sizeof (u13))
-      min_size = sizeof (u13);
-   if (min_align > __alignof__ (u13))
-      min_align = __alignof__ (u13);
-   if (min_size > sizeof (s14))
-      min_size = sizeof (s14);
-   if (min_align > __alignof__ (s14))
-      min_align = __alignof__ (s14);
-   if (min_size > sizeof (u14))
-      min_size = sizeof (u14);
-   if (min_align > __alignof__ (u14))
-      min_align = __alignof__ (u14);
-   if (min_size > sizeof (s15))
-      min_size = sizeof (s15);
-   if (min_align > __alignof__ (s15))
-      min_align = __alignof__ (s15);
-   if (min_size > sizeof (u15))
-      min_size = sizeof (u15);
-   if (min_align > __alignof__ (u15))
-      min_align = __alignof__ (u15);
-   if (min_size > sizeof (s16))
-      min_size = sizeof (s16);
-   if (min_align > __alignof__ (s16))
-      min_align = __alignof__ (s16);
-   if (min_size > sizeof (u16))
-      min_size = sizeof (u16);
-   if (min_align > __alignof__ (u16))
-      min_align = __alignof__ (u16);
-   if (min_size > sizeof (s17))
-      min_size = sizeof (s17);
-   if (min_align > __alignof__ (s17))
-      min_align = __alignof__ (s17);
-   if (min_size > sizeof (u17))
-      min_size = sizeof (u17);
-   if (min_align > __alignof__ (u17))
-      min_align = __alignof__ (u17);
-   if (min_size > sizeof (s18))
-      min_size = sizeof (s18);
-   if (min_align > __alignof__ (s18))
-      min_align = __alignof__ (s18);
-   if (min_size > sizeof (u18))
-      min_size = sizeof (u18);
-   if (min_align > __alignof__ (u18))
-      min_align = __alignof__ (u18);
-   if (min_size > sizeof (s19))
-      min_size = sizeof (s19);
-   if (min_align > __alignof__ (s19))
-      min_align = __alignof__ (s19);
-   if (min_size > sizeof (u19))
-      min_size = sizeof (u19);
-   if (min_align > __alignof__ (u19))
-      min_align = __alignof__ (u19);
-   if (min_size > sizeof (s20))
-      min_size = sizeof (s20);
-   if (min_align > __alignof__ (s20))
-      min_align = __alignof__ (s20);
-   if (min_size > sizeof (u20))
-      min_size = sizeof (u20);
-   if (min_align > __alignof__ (u20))
-      min_align = __alignof__ (u20);
-   if (min_size > sizeof (s21))
-      min_size = sizeof (s21);
-   if (min_align > __alignof__ (s21))
-      min_align = __alignof__ (s21);
-   if (min_size > sizeof (u21))
-      min_size = sizeof (u21);
-   if (min_align > __alignof__ (u21))
-      min_align = __alignof__ (u21);
-   if (min_size > sizeof (s22))
-      min_size = sizeof (s22);
-   if (min_align > __alignof__ (s22))
-      min_align = __alignof__ (s22);
-   if (min_size > sizeof (u22))
-      min_size = sizeof (u22);
-   if (min_align > __alignof__ (u22))
-      min_align = __alignof__ (u22);
-   if (min_size > sizeof (s23))
-      min_size = sizeof (s23);
-   if (min_align > __alignof__ (s23))
-      min_align = __alignof__ (s23);
-   if (min_size > sizeof (u23))
-      min_size = sizeof (u23);
-   if (min_align > __alignof__ (u23))
-      min_align = __alignof__ (u23);
-   if (min_size > sizeof (s24))
-      min_size = sizeof (s24);
-   if (min_align > __alignof__ (s24))
-      min_align = __alignof__ (s24);
-   if (min_size > sizeof (u24))
-      min_size = sizeof (u24);
-   if (min_align > __alignof__ (u24))
-      min_align = __alignof__ (u24);
-   if (min_size > sizeof (s25))
-      min_size = sizeof (s25);
-   if (min_align > __alignof__ (s25))
-      min_align = __alignof__ (s25);
-   if (min_size > sizeof (u25))
-      min_size = sizeof (u25);
-   if (min_align > __alignof__ (u25))
-      min_align = __alignof__ (u25);
-   if (min_size > sizeof (s26))
-      min_size = sizeof (s26);
-   if (min_align > __alignof__ (s26))
-      min_align = __alignof__ (s26);
-   if (min_size > sizeof (u26))
-      min_size = sizeof (u26);
-   if (min_align > __alignof__ (u26))
-      min_align = __alignof__ (u26);
-   if (min_size > sizeof (s27))
-      min_size = sizeof (s27);
-   if (min_align > __alignof__ (s27))
-      min_align = __alignof__ (s27);
-   if (min_size > sizeof (u27))
-      min_size = sizeof (u27);
-   if (min_align > __alignof__ (u27))
-      min_align = __alignof__ (u27);
-   if (min_size > sizeof (s28))
-      min_size = sizeof (s28);
-   if (min_align > __alignof__ (s28))
-      min_align = __alignof__ (s28);
-   if (min_size > sizeof (u28))
-      min_size = sizeof (u28);
-   if (min_align > __alignof__ (u28))
-      min_align = __alignof__ (u28);
-   if (min_size > sizeof (s29))
-      min_size = sizeof (s29);
-   if (min_align > __alignof__ (s29))
-      min_align = __alignof__ (s29);
-   if (min_size > sizeof (u29))
-      min_size = sizeof (u29);
-   if (min_align > __alignof__ (u29))
-      min_align = __alignof__ (u29);
-   if (min_size > sizeof (s30))
-      min_size = sizeof (s30);
-   if (min_align > __alignof__ (s30))
-      min_align = __alignof__ (s30);
-   if (min_size > sizeof (u30))
-      min_size = sizeof (u30);
-   if (min_align > __alignof__ (u30))
-      min_align = __alignof__ (u30);
-   if (min_size > sizeof (s31))
-      min_size = sizeof (s31);
-   if (min_align > __alignof__ (s31))
-      min_align = __alignof__ (s31);
-   if (min_size > sizeof (u31))
-      min_size = sizeof (u31);
-   if (min_align > __alignof__ (u31))
-      min_align = __alignof__ (u31);
-   if (min_size > sizeof (s32))
-      min_size = sizeof (s32);
-   if (min_align > __alignof__ (s32))
-      min_align = __alignof__ (s32);
-   if (min_size > sizeof (u32))
-      min_size = sizeof (u32);
-   if (min_align > __alignof__ (u32))
-      min_align = __alignof__ (u32);
-   if (min_size > sizeof (s33))
-      min_size = sizeof (s33);
-   if (min_align > __alignof__ (s33))
-      min_align = __alignof__ (s33);
-   if (min_size > sizeof (u33))
-      min_size = sizeof (u33);
-   if (min_align > __alignof__ (u33))
-      min_align = __alignof__ (u33);
-   if (min_size > sizeof (s34))
-      min_size = sizeof (s34);
-   if (min_align > __alignof__ (s34))
-      min_align = __alignof__ (s34);
-   if (min_size > sizeof (u34))
-      min_size = sizeof (u34);
-   if (min_align > __alignof__ (u34))
-      min_align = __alignof__ (u34);
-   if (min_size > sizeof (s35))
-      min_size = sizeof (s35);
-   if (min_align > __alignof__ (s35))
-      min_align = __alignof__ (s35);
-   if (min_size > sizeof (u35))
-      min_size = sizeof (u35);
-   if (min_align > __alignof__ (u35))
-      min_align = __alignof__ (u35);
-   if (min_size > sizeof (s36))
-      min_size = sizeof (s36);
-   if (min_align > __alignof__ (s36))
-      min_align = __alignof__ (s36);
-   if (min_size > sizeof (u36))
-      min_size = sizeof (u36);
-   if (min_align > __alignof__ (u36))
-      min_align = __alignof__ (u36);
-   if (min_size > sizeof (s37))
-      min_size = sizeof (s37);
-   if (min_align > __alignof__ (s37))
-      min_align = __alignof__ (s37);
-   if (min_size > sizeof (u37))
-      min_size = sizeof (u37);
-   if (min_align > __alignof__ (u37))
-      min_align = __alignof__ (u37);
-   if (min_size > sizeof (s38))
-      min_size = sizeof (s38);
-   if (min_align > __alignof__ (s38))
-      min_align = __alignof__ (s38);
-   if (min_size > sizeof (u38))
-      min_size = sizeof (u38);
-   if (min_align > __alignof__ (u38))
-      min_align = __alignof__ (u38);
-   if (min_size > sizeof (s39))
-      min_size = sizeof (s39);
-   if (min_align > __alignof__ (s39))
-      min_align = __alignof__ (s39);
-   if (min_size > sizeof (u39))
-      min_size = sizeof (u39);
-   if (min_align > __alignof__ (u39))
-      min_align = __alignof__ (u39);
-   if (min_size > sizeof (s40))
-      min_size = sizeof (s40);
-   if (min_align > __alignof__ (s40))
-      min_align = __alignof__ (s40);
-   if (min_size > sizeof (u40))
-      min_size = sizeof (u40);
-   if (min_align > __alignof__ (u40))
-      min_align = __alignof__ (u40);
-   if (min_size > sizeof (s41))
-      min_size = sizeof (s41);
-   if (min_align > __alignof__ (s41))
-      min_align = __alignof__ (s41);
-   if (min_size > sizeof (u41))
-      min_size = sizeof (u41);
-   if (min_align > __alignof__ (u41))
-      min_align = __alignof__ (u41);
-   if (min_size > sizeof (s42))
-      min_size = sizeof (s42);
-   if (min_align > __alignof__ (s42))
-      min_align = __alignof__ (s42);
-   if (min_size > sizeof (u42))
-      min_size = sizeof (u42);
-   if (min_align > __alignof__ (u42))
-      min_align = __alignof__ (u42);
-   if (min_size > sizeof (s43))
-      min_size = sizeof (s43);
-   if (min_align > __alignof__ (s43))
-      min_align = __alignof__ (s43);
-   if (min_size > sizeof (u43))
-      min_size = sizeof (u43);
-   if (min_align > __alignof__ (u43))
-      min_align = __alignof__ (u43);
-   if (min_size > sizeof (s44))
-      min_size = sizeof (s44);
-   if (min_align > __alignof__ (s44))
-      min_align = __alignof__ (s44);
-   if (min_size > sizeof (u44))
-      min_size = sizeof (u44);
-   if (min_align > __alignof__ (u44))
-      min_align = __alignof__ (u44);
-   if (min_size > sizeof (s45))
-      min_size = sizeof (s45);
-   if (min_align > __alignof__ (s45))
-      min_align = __alignof__ (s45);
-   if (min_size > sizeof (u45))
-      min_size = sizeof (u45);
-   if (min_align > __alignof__ (u45))
-      min_align = __alignof__ (u45);
-   if (min_size > sizeof (s46))
-      min_size = sizeof (s46);
-   if (min_align > __alignof__ (s46))
-      min_align = __alignof__ (s46);
-   if (min_size > sizeof (u46))
-      min_size = sizeof (u46);
-   if (min_align > __alignof__ (u46))
-      min_align = __alignof__ (u46);
-   if (min_size > sizeof (s47))
-      min_size = sizeof (s47);
-   if (min_align > __alignof__ (s47))
-      min_align = __alignof__ (s47);
-   if (min_size > sizeof (u47))
-      min_size = sizeof (u47);
-   if (min_align > __alignof__ (u47))
-      min_align = __alignof__ (u47);
-   if (min_size > sizeof (s48))
-      min_size = sizeof (s48);
-   if (min_align > __alignof__ (s48))
-      min_align = __alignof__ (s48);
-   if (min_size > sizeof (u48))
-      min_size = sizeof (u48);
-   if (min_align > __alignof__ (u48))
-      min_align = __alignof__ (u48);
-   if (min_size > sizeof (s49))
-      min_size = sizeof (s49);
-   if (min_align > __alignof__ (s49))
-      min_align = __alignof__ (s49);
-   if (min_size > sizeof (u49))
-      min_size = sizeof (u49);
-   if (min_align > __alignof__ (u49))
-      min_align = __alignof__ (u49);
-   if (min_size > sizeof (s50))
-      min_size = sizeof (s50);
-   if (min_align > __alignof__ (s50))
-      min_align = __alignof__ (s50);
-   if (min_size > sizeof (u50))
-      min_size = sizeof (u50);
-   if (min_align > __alignof__ (u50))
-      min_align = __alignof__ (u50);
-   if (min_size > sizeof (s51))
-      min_size = sizeof (s51);
-   if (min_align > __alignof__ (s51))
-      min_align = __alignof__ (s51);
-   if (min_size > sizeof (u51))
-      min_size = sizeof (u51);
-   if (min_align > __alignof__ (u51))
-      min_align = __alignof__ (u51);
-   if (min_size > sizeof (s52))
-      min_size = sizeof (s52);
-   if (min_align > __alignof__ (s52))
-      min_align = __alignof__ (s52);
-   if (min_size > sizeof (u52))
-      min_size = sizeof (u52);
-   if (min_align > __alignof__ (u52))
-      min_align = __alignof__ (u52);
-   if (min_size > sizeof (s53))
-      min_size = sizeof (s53);
-   if (min_align > __alignof__ (s53))
-      min_align = __alignof__ (s53);
-   if (min_size > sizeof (u53))
-      min_size = sizeof (u53);
-   if (min_align > __alignof__ (u53))
-      min_align = __alignof__ (u53);
-   printf ("min struct/union size =%d\n", min_size);
-   printf ("min struct/union align=%d\n", min_align);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-char.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-char=%d,\nalign-char=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-double.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-double=%d,\nalign-char=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-float.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-float=%d,\nalign-char=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-int.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-int=%d,\nalign-char=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-long.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-long=%d,\nalign-char=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-longdouble.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-longdouble=%d,\nalign-char=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-longlong.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-longlong=%d,\nalign-char=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-pointer.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-pointer=%d,\nalign-char=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-a-short.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with char:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-arrayof-short=%d,\nalign-char=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-char.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-char:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-char=%d,\nalign-char=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-double.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-double:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-double=%d,\nalign-char=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-float.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-float:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-float=%d,\nalign-char=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-int.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-int:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-int=%d,\nalign-char=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-long.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-long:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-long=%d,\nalign-char=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-longdouble.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-longdouble:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-longdouble=%d,\nalign-char=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-longlong.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-longlong:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-longlong=%d,\nalign-char=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-pointer.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-pointer:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-pointer=%d,\nalign-char=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-ptrdiff_t.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   char f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-ptrdiff_t=%d,\nalign-char=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-char.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-char=%d,\nalign-char=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-double.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-double=%d,\nalign-char=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-float.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-float=%d,\nalign-char=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-int.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-int=%d,\nalign-char=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-long.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-long=%d,\nalign-char=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-longdouble.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-longdouble=%d,\nalign-char=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-longlong.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-longlong=%d,\nalign-char=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-pointer.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-pointer=%d,\nalign-char=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-s-short.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-sss-short=%d,\nalign-char=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-short.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-short:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-short=%d,\nalign-char=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-size_t.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   char f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-size_t:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-size_t=%d,\nalign-char=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-wchar_t.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   char f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-char=%d,offset-wchar_t=%d,\nalign-char=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-char.c	Mon Feb 12 19:39:56 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-char-zf-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-char-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with char:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-char=%d,offset-last=%d,\nalign-char=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-char=%d,\nalign-double=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-double=%d,\nalign-double=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-float=%d,\nalign-double=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-int=%d,\nalign-double=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-long=%d,\nalign-double=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-longdouble=%d,\nalign-double=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-longlong=%d,\nalign-double=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-pointer=%d,\nalign-double=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-a-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with double:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-arrayof-short=%d,\nalign-double=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-char:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-char=%d,\nalign-double=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-double:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-double=%d,\nalign-double=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-float:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-float=%d,\nalign-double=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-int:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-int=%d,\nalign-double=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-long:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-long=%d,\nalign-double=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-longdouble:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-longdouble=%d,\nalign-double=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-longlong:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-longlong=%d,\nalign-double=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-pointer:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-pointer=%d,\nalign-double=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-ptrdiff_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   double f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-ptrdiff_t=%d,\nalign-double=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-char=%d,\nalign-double=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-double=%d,\nalign-double=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-float=%d,\nalign-double=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-int=%d,\nalign-double=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-long=%d,\nalign-double=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-longdouble=%d,\nalign-double=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-longlong=%d,\nalign-double=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-pointer=%d,\nalign-double=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-s-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-sss-short=%d,\nalign-double=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-short:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-short=%d,\nalign-double=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-size_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   double f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-size_t:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-size_t=%d,\nalign-double=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-wchar_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   double f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-double=%d,offset-wchar_t=%d,\nalign-double=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-double-zf-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-double-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   double f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with double:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-double=%d,offset-last=%d,\nalign-double=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-char=%d,\nalign-float=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-double=%d,\nalign-float=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-float=%d,\nalign-float=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-int=%d,\nalign-float=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-long=%d,\nalign-float=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-longdouble=%d,\nalign-float=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-longlong=%d,\nalign-float=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-pointer=%d,\nalign-float=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-a-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with float:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-arrayof-short=%d,\nalign-float=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-char:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-char=%d,\nalign-float=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-double:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-double=%d,\nalign-float=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-float:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-float=%d,\nalign-float=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-int:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-int=%d,\nalign-float=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-long:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-long=%d,\nalign-float=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-longdouble:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-longdouble=%d,\nalign-float=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-longlong:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-longlong=%d,\nalign-float=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-pointer:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-pointer=%d,\nalign-float=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-ptrdiff_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   float f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-ptrdiff_t=%d,\nalign-float=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-char=%d,\nalign-float=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-double=%d,\nalign-float=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-float=%d,\nalign-float=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-int=%d,\nalign-float=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-long=%d,\nalign-float=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-longdouble=%d,\nalign-float=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-longlong=%d,\nalign-float=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-pointer=%d,\nalign-float=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-s-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-sss-short=%d,\nalign-float=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-short:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-short=%d,\nalign-float=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-size_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   float f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-size_t:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-size_t=%d,\nalign-float=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-wchar_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   float f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-float=%d,offset-wchar_t=%d,\nalign-float=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-float-zf-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-float-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   float f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with float:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-float=%d,offset-last=%d,\nalign-float=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-char=%d,\nalign-int=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-double=%d,\nalign-int=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-float=%d,\nalign-int=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-int=%d,\nalign-int=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-long=%d,\nalign-int=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-longdouble=%d,\nalign-int=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-longlong=%d,\nalign-int=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-pointer=%d,\nalign-int=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-a-short.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with int:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-arrayof-short=%d,\nalign-int=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-char:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-char=%d,\nalign-int=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-double.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-double:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-double=%d,\nalign-int=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-float.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-float:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-float=%d,\nalign-int=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-int.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-int:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-int=%d,\nalign-int=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-long.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-long:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-long=%d,\nalign-int=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-longdouble.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-longdouble:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-longdouble=%d,\nalign-int=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-longlong.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-longlong:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-longlong=%d,\nalign-int=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-pointer.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-pointer:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-pointer=%d,\nalign-int=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-ptrdiff_t.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   int f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-ptrdiff_t=%d,\nalign-int=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-char.c	Mon Feb 12 19:39:57 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-char=%d,\nalign-int=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-double=%d,\nalign-int=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-float=%d,\nalign-int=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-int=%d,\nalign-int=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-long=%d,\nalign-int=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-longdouble=%d,\nalign-int=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-longlong=%d,\nalign-int=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-pointer=%d,\nalign-int=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-s-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-sss-short=%d,\nalign-int=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-short:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-short=%d,\nalign-int=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-size_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   int f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-size_t:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-size_t=%d,\nalign-int=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-wchar_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   int f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-int=%d,offset-wchar_t=%d,\nalign-int=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-int-zf-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-int-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   int f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with int:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-int=%d,offset-last=%d,\nalign-int=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-char=%d,\nalign-long=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-double=%d,\nalign-long=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-float=%d,\nalign-long=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-int=%d,\nalign-long=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-long=%d,\nalign-long=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-longdouble=%d,\nalign-long=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-longlong=%d,\nalign-long=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-pointer=%d,\nalign-long=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-a-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with long:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-arrayof-short=%d,\nalign-long=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-char:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-char=%d,\nalign-long=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-double:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-double=%d,\nalign-long=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-float:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-float=%d,\nalign-long=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-int:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-int=%d,\nalign-long=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-long:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-long=%d,\nalign-long=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-longdouble:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-longdouble=%d,\nalign-long=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-longlong:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-longlong=%d,\nalign-long=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-pointer:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-pointer=%d,\nalign-long=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-ptrdiff_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-ptrdiff_t=%d,\nalign-long=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-char=%d,\nalign-long=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-double=%d,\nalign-long=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-float=%d,\nalign-long=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-int=%d,\nalign-long=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-long=%d,\nalign-long=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-longdouble=%d,\nalign-long=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-longlong=%d,\nalign-long=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-pointer=%d,\nalign-long=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-s-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-sss-short=%d,\nalign-long=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-short:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-short=%d,\nalign-long=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-size_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-size_t:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-size_t=%d,\nalign-long=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-wchar_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-long=%d,offset-wchar_t=%d,\nalign-long=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-long-zf-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-long-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with long:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-long=%d,offset-last=%d,\nalign-long=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-char=%d,\nalign-longdouble=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-double=%d,\nalign-longdouble=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-float=%d,\nalign-longdouble=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-int=%d,\nalign-longdouble=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-long=%d,\nalign-longdouble=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-longdouble=%d,\nalign-longdouble=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-longlong=%d,\nalign-longdouble=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-pointer=%d,\nalign-longdouble=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-arrayof-short=%d,\nalign-longdouble=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-char:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-char=%d,\nalign-longdouble=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-double:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-double=%d,\nalign-longdouble=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-float:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-float=%d,\nalign-longdouble=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-int:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-int=%d,\nalign-longdouble=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-long:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-long=%d,\nalign-longdouble=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-longdouble:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-longdouble=%d,\nalign-longdouble=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-longlong:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-longlong=%d,\nalign-longdouble=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-pointer:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-pointer=%d,\nalign-longdouble=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-ptrdiff_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long double f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-ptrdiff_t=%d,\nalign-longdouble=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-char=%d,\nalign-longdouble=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-double=%d,\nalign-longdouble=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-float=%d,\nalign-longdouble=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-int=%d,\nalign-longdouble=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-long=%d,\nalign-longdouble=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-longdouble=%d,\nalign-longdouble=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-longlong=%d,\nalign-longdouble=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-pointer=%d,\nalign-longdouble=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-sss-short=%d,\nalign-longdouble=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-short:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-short=%d,\nalign-longdouble=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-size_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long double f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-size_t:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-size_t=%d,\nalign-longdouble=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-wchar_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long double f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-longdouble=%d,offset-wchar_t=%d,\nalign-longdouble=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longdouble-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long double f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with longdouble:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longdouble=%d,offset-last=%d,\nalign-longdouble=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-char=%d,\nalign-longlong=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-double=%d,\nalign-longlong=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-float=%d,\nalign-longlong=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-int=%d,\nalign-longlong=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-long=%d,\nalign-longlong=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-longdouble=%d,\nalign-longlong=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-longlong=%d,\nalign-longlong=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-pointer=%d,\nalign-longlong=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-a-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-arrayof-short=%d,\nalign-longlong=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-char:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-char=%d,\nalign-longlong=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-double:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-double=%d,\nalign-longlong=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-float:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-float=%d,\nalign-longlong=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-int:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-int=%d,\nalign-longlong=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-long:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-long=%d,\nalign-longlong=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-longdouble:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-longdouble=%d,\nalign-longlong=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-longlong:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-longlong=%d,\nalign-longlong=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-pointer:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-pointer=%d,\nalign-longlong=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-ptrdiff_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long long f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-ptrdiff_t=%d,\nalign-longlong=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-char=%d,\nalign-longlong=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-double=%d,\nalign-longlong=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-float=%d,\nalign-longlong=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-int=%d,\nalign-longlong=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-long=%d,\nalign-longlong=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-longdouble=%d,\nalign-longlong=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-longlong=%d,\nalign-longlong=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-pointer=%d,\nalign-longlong=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-s-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-sss-short=%d,\nalign-longlong=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-short:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-short=%d,\nalign-longlong=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-size_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long long f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-size_t:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-size_t=%d,\nalign-longlong=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-wchar_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   long long f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-longlong=%d,offset-wchar_t=%d,\nalign-longlong=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-longlong-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   long long f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with longlong:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-longlong=%d,offset-last=%d,\nalign-longlong=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-char=%d,\nalign-pointer=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-double=%d,\nalign-pointer=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-float=%d,\nalign-pointer=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-int=%d,\nalign-pointer=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-long=%d,\nalign-pointer=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-longdouble=%d,\nalign-pointer=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-longlong=%d,\nalign-pointer=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-pointer=%d,\nalign-pointer=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-a-short.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-arrayof-short=%d,\nalign-pointer=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-char:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-char=%d,\nalign-pointer=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-double:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-double=%d,\nalign-pointer=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-float:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-float=%d,\nalign-pointer=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-int:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-int=%d,\nalign-pointer=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-long:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-long=%d,\nalign-pointer=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-longdouble.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-longdouble:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-longdouble=%d,\nalign-pointer=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-longlong.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-longlong:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-longlong=%d,\nalign-pointer=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-pointer.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-pointer:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-pointer=%d,\nalign-pointer=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-ptrdiff_t.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   char * f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-ptrdiff_t=%d,\nalign-pointer=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-char.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-char=%d,\nalign-pointer=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-double.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-double=%d,\nalign-pointer=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-float.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-float=%d,\nalign-pointer=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-int.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-int=%d,\nalign-pointer=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-long.c	Mon Feb 12 19:39:58 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-long=%d,\nalign-pointer=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-longdouble=%d,\nalign-pointer=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-longlong=%d,\nalign-pointer=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-pointer=%d,\nalign-pointer=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-s-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-sss-short=%d,\nalign-pointer=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-short:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-short=%d,\nalign-pointer=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-size_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   char * f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-size_t:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-size_t=%d,\nalign-pointer=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-wchar_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   char * f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-pointer=%d,offset-wchar_t=%d,\nalign-pointer=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-pointer-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   char * f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with pointer:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-pointer=%d,offset-last=%d,\nalign-pointer=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-char:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-char=%d,\nalign-ptrdiff_t=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-double:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-double=%d,\nalign-ptrdiff_t=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-float:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-float=%d,\nalign-ptrdiff_t=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-int:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-int=%d,\nalign-ptrdiff_t=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-long:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-long=%d,\nalign-ptrdiff_t=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-longdouble:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-longdouble=%d,\nalign-ptrdiff_t=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-longlong:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-longlong=%d,\nalign-ptrdiff_t=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-pointer:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-pointer=%d,\nalign-ptrdiff_t=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-ptrdiff_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-ptrdiff_t=%d,\nalign-ptrdiff_t=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-short:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-short=%d,\nalign-ptrdiff_t=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-size_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-size_t:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-size_t=%d,\nalign-ptrdiff_t=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-wchar_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-ptrdiff_t-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   ptrdiff_t f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct ptrdiff_t-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-ptrdiff_t=%d,offset-wchar_t=%d,\nalign-ptrdiff_t=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   char a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of char in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-char=%d,\nalign-short=%d,align-arrayof-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-char-a[5]=%d,align-char-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of double in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-double=%d,\nalign-short=%d,align-arrayof-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-double-a[5]=%d,align-double-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   float a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of float in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-float=%d,\nalign-short=%d,align-arrayof-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-float-a[5]=%d,align-float-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   int a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of int in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-int=%d,\nalign-short=%d,align-arrayof-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-int-a[5]=%d,align-int-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of long in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-long=%d,\nalign-short=%d,align-arrayof-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-long-a[5]=%d,align-long-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long double a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longdouble in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-longdouble=%d,\nalign-short=%d,align-arrayof-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longdouble-a[5]=%d,align-longdouble-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long long a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of longlong in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-longlong=%d,\nalign-short=%d,align-arrayof-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-longlong-a[5]=%d,align-longlong-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   char * a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of pointer in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-pointer=%d,\nalign-short=%d,align-arrayof-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-pointer-a[5]=%d,align-pointer-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-a-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-a-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   short a[10];
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("++++Array of short in struct starting with short:\n");
-   printf ("size=%d,align=%d\n",
-           sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-arrayof-short=%d,\nalign-short=%d,align-arrayof-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, a),
-           __alignof__ (sss.f), __alignof__ (sss.a));
-   printf ("offset-short-a[5]=%d,align-short-a[5]=%d\n",
-           _offsetof (struct sss, a[5]),
-           __alignof__ (sss.a[5]));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-char:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-char=%d,\nalign-short=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-double:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-double=%d,\nalign-short=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-float:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-float=%d,\nalign-short=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-int:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-int=%d,\nalign-short=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-long:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-long=%d,\nalign-short=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-longdouble:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-longdouble=%d,\nalign-short=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-longlong:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-longlong=%d,\nalign-short=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-pointer:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-pointer=%d,\nalign-short=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-ptrdiff_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   short f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-ptrdiff_t=%d,\nalign-short=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {char m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct char inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-char=%d,\nalign-short=%d,align-sss-char=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct double inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-double=%d,\nalign-short=%d,align-sss-double=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {float m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct float inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-float=%d,\nalign-short=%d,align-sss-float=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {int m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct int inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-int=%d,\nalign-short=%d,align-sss-int=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct long inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-long=%d,\nalign-short=%d,align-sss-long=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {long double m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longdouble inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-longdouble=%d,\nalign-short=%d,align-sss-longdouble=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {long long m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct longlong inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-longlong=%d,\nalign-short=%d,align-sss-longlong=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {char * m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct pointer inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-pointer=%d,\nalign-short=%d,align-sss-pointer=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-s-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-s-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   struct {short m;} snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-sss-short=%d,\nalign-short=%d,align-sss-short=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-short:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-short=%d,\nalign-short=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-size_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   short f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-size_t:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-size_t=%d,\nalign-short=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-wchar_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   short f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct short-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-short=%d,offset-wchar_t=%d,\nalign-short=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   char :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++char zerofield inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   int :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++int zerofield inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++long zerofield inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   long long :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++longlong zerofield inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-short-zf-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-short-zf-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- 
- static struct sss{
-   short f;
-   short :0;
-   int i;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++short zerofield inside struct starting with short:\n");
-   printf ("size=%d,align=%d\n", sizeof (sss), __alignof__ (sss));
-   printf ("offset-short=%d,offset-last=%d,\nalign-short=%d,align-last=%d\n",
-           _offsetof (struct sss, f), _offsetof (struct sss, i),
-           __alignof__ (sss.f), __alignof__ (sss.i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-char:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-char=%d,\nalign-size_t=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-double:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-double=%d,\nalign-size_t=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-float:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-float=%d,\nalign-size_t=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-int:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-int=%d,\nalign-size_t=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-long:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-long=%d,\nalign-size_t=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-longdouble:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-longdouble=%d,\nalign-size_t=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-longlong:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-longlong=%d,\nalign-size_t=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-pointer:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-pointer=%d,\nalign-size_t=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-ptrdiff_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-ptrdiff_t=%d,\nalign-size_t=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-short:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-short=%d,\nalign-size_t=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-size_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-size_t:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-size_t=%d,\nalign-size_t=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-size_t-wchar_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-size_t-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   size_t f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct size_t-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-size_t=%d,offset-wchar_t=%d,\nalign-size_t=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   char snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-char:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-char=%d,\nalign-wchar_t=%d,align-char=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-double:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-double=%d,\nalign-wchar_t=%d,align-double=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   float snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-float:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-float=%d,\nalign-wchar_t=%d,align-float=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   int snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-int:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-int=%d,\nalign-wchar_t=%d,align-int=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-long:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-long=%d,\nalign-wchar_t=%d,align-long=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   long double snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-longdouble:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-longdouble=%d,\nalign-wchar_t=%d,align-longdouble=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   long long snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-longlong:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-longlong=%d,\nalign-wchar_t=%d,align-longlong=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   char * snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-pointer:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-pointer=%d,\nalign-wchar_t=%d,align-pointer=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-ptrdiff_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-ptrdiff_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-ptrdiff_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-ptrdiff_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   ptrdiff_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-ptrdiff_t:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-ptrdiff_t=%d,\nalign-wchar_t=%d,align-ptrdiff_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   short snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-short:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-short=%d,\nalign-wchar_t=%d,align-short=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-size_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-size_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-size_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-size_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   size_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-size_t:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-size_t=%d,\nalign-wchar_t=%d,align-size_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-wchar_t.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-wchar_t.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/s-wchar_t-wchar_t.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/s-wchar_t-wchar_t.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static struct sss{
-   wchar_t f;
-   wchar_t snd;
- } sss;
- 
- #define _offsetof(st,f) ((char *)&((st *) 16)->f - (char *) 16)
- 
- int main (void) {
-   printf ("+++Struct wchar_t-wchar_t:\n");
-   printf ("size=%d,align=%d,offset-wchar_t=%d,offset-wchar_t=%d,\nalign-wchar_t=%d,align-wchar_t=%d\n",
-           sizeof (sss), __alignof__ (sss),
-           _offsetof (struct sss, f), _offsetof (struct sss, snd),
-           __alignof__ (sss.f), __alignof__ (sss.snd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-bool.cpp gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-bool.cpp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-bool.cpp	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-bool.cpp	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static bool bbb;
- 
- int main(void)
- {
-   printf ("+++Bool size:\n");
-   printf ("%d\n", sizeof (bbb));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-char.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-char.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-char.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-char.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static char ccc;
- 
- int main(void)
- {
-   printf ("+++Char size:\n");
-   printf ("%d\n", sizeof (ccc));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-double.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-double.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-double.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-double.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static double d;
- 
- int main(void)
- {
-   printf ("+++Double size:\n");
-   printf ("%d\n", sizeof (d));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-float.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-float.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-float.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-float.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static float f;
- 
- int main(void)
- {
-   printf ("+++Float size:\n");
-   printf ("%d\n", sizeof (f));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-int.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-int.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-int.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-int.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static int i;
- 
- int main(void)
- {
-   printf ("+++Int size:\n");
-   printf ("%d\n", sizeof (i));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-long.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-long.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-long.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-long.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static long lll;
- 
- int main(void)
- {
-   printf ("+++Long size:\n");
-   printf ("%d\n", sizeof (lll));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-longdouble.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-longdouble.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-longdouble.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static long double ld;
- 
- int main(void)
- {
-   printf ("+++Long Double size:\n");
-   printf ("%d\n", sizeof (ld));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-longlong.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-longlong.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-longlong.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static long long ll;
- 
- int main(void)
- {
-   printf ("+++Long long size:\n");
-   printf ("%d\n", sizeof (ll));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-pointer.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-pointer.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-pointer.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-pointer.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static char *p;
- 
- int main(void)
- {
-   printf ("+++Pointer size:\n");
-   printf ("%d\n", sizeof (p));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-ptrdiff.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-ptrdiff.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-ptrdiff.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-ptrdiff.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static ptrdiff_t pd;
- 
- int main(void)
- {
-   printf ("+++ptrdiff_t size:\n");
-   printf ("%d\n", sizeof (pd));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-short.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-short.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-short.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-short.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- #include <stdio.h>
- 
- static short sss;
- 
- int main(void)
- {
-   printf ("+++Short size:\n");
-   printf ("%d\n", sizeof (sss));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-size.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-size.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-size.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-size.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static size_t sss;
- 
- int main(void)
- {
-   printf ("+++size_t size:\n");
-   printf ("%d\n", sizeof (sss));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-wchar.c gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-wchar.c
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/layout/size-wchar.c	Mon Feb 12 19:39:59 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/layout/size-wchar.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- #include <stdio.h>
- #include <stddef.h>
- 
- static wchar_t w;
- 
- int main(void)
- {
-   printf ("+++wchar_t size:\n");
-   printf ("%d\n", sizeof (w));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/consistency.vlad/vlad.exp gcc-4.1.0/gcc/testsuite/consistency.vlad/vlad.exp
*** gcc-4.0.2/gcc/testsuite/consistency.vlad/vlad.exp	Tue Oct  9 10:16:15 2001
--- gcc-4.1.0/gcc/testsuite/consistency.vlad/vlad.exp	Thu Jan  1 00:00:00 1970
***************
*** 1,275 ****
- # Copyright (C) 1998,1999 Free Software Foundation, Inc.
- 
- # This program is free software; you can redistribute it and/or modify
- # it under the terms of the GNU General Public License as published by
- # the Free Software Foundation; either version 2 of the License, or
- # (at your option) any later version.
- # 
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- # GNU General Public License for more details.
- # 
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
- 
- # Please email any bugs, comments, and/or additions to this file to:
- # bug-gcc@prep.ai.mit.edu
- 
- # This file was created for by Vladimir Makarov (vmakarov@cygnus.com)
- # on the base c-torture.exp.
- 
- # The script requires setting up BASE_COMPILER (e.g. in RUNTESTFLAGS).
- # The default options can be overridden by
- # CONSISTENCY_OPTIONS="option ... " (e.g. in RUNTESTFLAGS).
- 
- 
- if $tracelevel then {
-     strace $tracelevel
- }
- 
- if ![info exists BASE_COMPILER] {
-     fail "BASE_COMPILER is not set"  
-     return
- }
- 
- if ![info exists CONSISTENCY_OPTIONS] {
-     set CONSISTENCY_OPTIONS "-O2"
- }
- 
- if ![info exists NO_LONG_DOUBLE] {
-     set NO_LONG_DOUBLE 0
- }
- 
- if ![info exists NO_LIBGLOSS_LIBRARY_OPTIONS] {
-     set NO_LIBGLOSS_LIBRARY_OPTIONS 0
- }
- 
- puts $CONSISTENCY_OPTIONS
- 
- regsub -- -.* $target_triplet "" target_chip
- 
- #
- # c-consistency-execute -- utility to compile and execute a testcase
- #
- # SRC is the full pathname of the testcase.
- #
- # If the testcase has an associated .cexp file, we source that to run the
- # test instead.  We use .cexp instead of .exp so that the testcase is still
- # controlled by the main .exp driver (this is useful when one wants to only
- # run the compile.exp tests for example - one need only pass compile.exp to
- # dejagnu, and not compile.exp, foo1.exp, foo2.exp, etc.).
- #
- proc c-consistency-execute { src cpp_flag out_suffix} {
-     global tmpdir tool srcdir output
-     global exec_output target_chip BASE_COMPILER target_triplet
-     global CONSISTENCY_OPTIONS NO_LONG_DOUBLE
- 
-     set consistency_options $CONSISTENCY_OPTIONS
- 
-     set rootname [file rootname $src]
-     set dirname [file dirname $src]
-     set basename [file tail $rootname]
-     # Check for alternate driver.
-     if [file exists $rootname.cexp] {
- 	verbose "Using alternate driver $basename.cexp" 2
- 	set done_p 0
- 	catch "set done_p \[source $rootname.cexp\]"
- 	if { $done_p } {
- 	    return
- 	}
-     }
-    
-     set executable $tmpdir/$basename.x
- 
-     regsub "^$srcdir/?" $src "" testcase
-     # If we couldn't rip $srcdir out of `src' then just do the best we can.
-     # The point is to reduce the unnecessary noise in the logs.  Don't strip
-     # out too much because different testcases with the same name can confuse
-     # `test-tool'.
-     if [string match "/*" $testcase] {
- 	set testcase "[file tail $dirname]/[file tail $src]"
-     }
- 
-     # consistency_{compile,execute}_xfail are set by the .cexp script
-     # (if present)
-     if [info exists consistency_compile_xfail] {
-         setup_xfail $consistency_compile_xfail
-     }
-     remote_file build delete $executable
-     verbose "Testing $testcase, $consistency_options" 1
-     
-     set options ""
-     lappend options "additional_flags=-w $consistency_options"
- 
-     set wrap_file ""
-     if {[file exists "$dirname/WRAP_FILE"] \
-          && [file readable "$dirname/WRAP_FILE"]} {
-       set fd [open "$dirname/WRAP_FILE"]
-       set wrap_file "$dirname/[read -nonewline $fd]"
-       close $fd
-     }
- 
-     set comp_output [gcc_target_compile "$cpp_flag $src -x none $wrap_file" "$executable" executable $options];
-     
-     # Set a few common compiler messages.
-     set fatal_signal "*cc: Internal compiler error: program*got fatal signal"
-     
-     if [string match "$fatal_signal 6" $comp_output] then {
-         fail $testcase "Got Signal 6, $cpp_flag $consistency_options"
-         remote_file build delete $executable
-         return
-     }
-     
-     if [string match "$fatal_signal 11" $comp_output] then {
-         fail $testcase "Got Signal 11, $cpp_flag $consistency_options"
-         remote_file build delete $executable
-         return
-     }
-     
-     # We shouldn't get these because of -w, but just in case.
-     if [string match "*cc:*warning:*" $comp_output] then {
-         warning "$testcase: (with warnings) $cpp_flag $consistency_options"
-         send_log "$comp_output\n"
-         unresolved "$testcase, $cpp_flag $consistency_options"
-         remote_file build delete $executable
-         return
-     }
-     
-     set comp_output [prune_warnings $comp_output]
-     
-     if { ![file exists $executable] } {
-         if ![is3way] {
-    	    	fail "$testcase compilation, $cpp_flag $consistency_options"
-     		untested "$testcase execution, $cpp_flag $consistency_options"
-     		return
-         } else {
-     		# FIXME: since we can't test for the existance of a remote
-     		# file without short of doing an remote file list, we assume
-     		# that since we got no output, it must have compiled.
-     		pass "$testcase compilation, $cpp_flag $consistency_options"
-         }
-     } else {
-         pass "$testcase compilation, $cpp_flag $consistency_options"
-     }
-     
-     # Check for compilation only.
-     if [file exists $rootname.conly] {
-       remote_file build delete $executable
-       return;
-     }
- 
-     # See if this source file uses "long long" types, if it does, and
-     # no_long_long is set, skip execution of the test.
-     if [target_info exists no_long_long] then {
-       if [expr [search_for $src "long long"]] then {
- 	untested "$testcase execution, $options"
- 	continue
-       }
-     }
- 
-     if [info exists consistency_execute_xfail] {
-         setup_xfail $consistency_execute_xfail
-     }
-     
-     set exec_output ""
-     set result [consistency_load "$executable" "" ""]
-     set status [lindex $result 0];
-     set exec_output [lindex $result 1];
- 
-     # Strip random whitespace junk from the output.  the
-     # whitejunk is an artifact of the way we get output
-     # from boards.
-     regsub "^\[ \t\r]+" $exec_output "" clean_output
-     regsub -all "\r" $clean_output "" clean_output
-     regsub -all "\[ \t]*\n\[ \t]*" $clean_output "\n" clean_output
-     regsub -all "\n+" $clean_output "\n" clean_output
-     regsub -all "^\n+$" $clean_output "" clean_output
- 
-     if { $status == "pass" } {
-         remote_file build delete $executable
-     }
-     $status "$testcase execution, $cpp_flag $consistency_options"
- 
-     if { $status != "pass" } {
-       return
-     }
- 
-     # Now save the output of the test programs
-     set outfile_name "$tmpdir/$basename.$out_suffix"
-     set outf [open $outfile_name "w"]
-     if { $clean_output != "" } {
-       puts -nonewline $outf $clean_output
-     }
-     close $outf
- 
-     set base_outfile_name "$dirname/${BASE_COMPILER}-results/$basename.$out_suffix"
- 
-     # Check that the output for another processor has been saved
-     if { ![file exists $base_outfile_name] } {
-       untested "$testcase consistency - $base_outfile_name doesn't exist"
-       return
-     } elseif { ![file readable $base_outfile_name] } {
-       untested "$testcase consistency - $base_outfile_name is not readable"
-       return
-     }
- 
-     # See if this source file uses "long double" types, if it does, and
-     # NO_LONG_DOUBLE is TRUE, skip comparison of the test.
-     if {$NO_LONG_DOUBLE} then {
-         if [expr [search_for $src "long double"]] then {
- 	      setup_xfail "$target_triplet"
-         }
-     }
- 
-     # Compare the outputs
-     if {![catch "exec diff -b $outfile_name $base_outfile_name" message]} {
-       pass "$testcase consistency, $cpp_flag $consistency_options"
-     } else {
-       regsub "\n\[^>\n]\[^\n]*\$" $message "\n" difference
-       fail "$testcase consistency, $cpp_flag $consistency_options\n$difference"
-     }
- }
- 
- #
- # search_for -- looks for a string match in a file
- #
- proc search_for { file pattern } {
-     set fd [open $file r]
-     while { [gets $fd cur_line]>=0 } {
- 	if [string match "*$pattern*" $cur_line] then {
- 	    close $fd
- 	    return 1
- 	}
-     }
-     close $fd
-     return 0
- }
- 
- if {$NO_LIBGLOSS_LIBRARY_OPTIONS} {
-     # Remove standard libgloss library paths
-     set board_info(powerpc-sim,ldflags) "-msim"
- }
- 
- #
- # main test loop
- #
- 
- foreach dir [lsort [glob -nocomplain $srcdir/$subdir/\[a-z\]*]] {
-      if [file isdirectory $dir] {
-           set all_sources [concat [glob -nocomplain $dir/*.c] [glob -nocomplain $dir/*.cpp]]
-           foreach src [lsort $all_sources] {
-              # If we're only testing specific files and this isn't one of
-              # them, skip it.
-              if ![runtest_file_p $runtests $src] then {
- 	       continue
-              }
-                regsub "^.*\\." $src "" suffix            
-              if {$suffix != "cpp"} {
-                c-consistency-execute $src "" "out"
-              }
-              c-consistency-execute $src "-x c++" "out++"
-           }
-      }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield3.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield3.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield3.C	Thu May 26 19:10:52 2005
***************
*** 1,10 ****
  // Test for oversized bitfield alignment in structs on IA-32
! // { dg-do run { target i?86-*-* } }
  // { dg-options "-O2" }
  // Cygwin and mingw32 default to MASK_ALIGN_DOUBLE. Override to ensure
  // 4-byte alignment.
  // { dg-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-mingw* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  struct A
  {
--- 1,10 ----
  // Test for oversized bitfield alignment in structs on IA-32
! // { dg-do run { target i?86-*-* x86_64-*-* } }
  // { dg-options "-O2" }
  // Cygwin and mingw32 default to MASK_ALIGN_DOUBLE. Override to ensure
  // 4-byte alignment.
  // { dg-options "-mno-align-double" { target i?86-*-cygwin* i?86-*-mingw* } }
! // { dg-require-effective-target ilp32 }
  
  struct A
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield4.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield4.C	Thu Aug  8 22:52:20 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield4.C	Wed Nov  2 03:02:00 2005
***************
*** 1,4 ****
! /* { dg-do run } */
  
  /* Check bitfields and non-bitfields are aligned & sized similarly.
  
--- 1,4 ----
! /* { dg-do run { target { pcc_bitfield_type_matters || default_packed } } } */
  
  /* Check bitfields and non-bitfields are aligned & sized similarly.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield8.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield8.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield8.C	Thu May 26 19:10:52 2005
***************
*** 1,6 ****
! // { dg-do run { target i?86-*-* } }
  // { dg-options "-fabi-version=0" }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  struct A { 
    virtual void f() {}
--- 1,7 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
  // { dg-options "-fabi-version=0" }
! // { dg-require-effective-target ilp32 }
! 
  
  struct A { 
    virtual void f() {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield9.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/bitfield9.C	Tue Jan  7 01:33:53 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/bitfield9.C	Thu May 26 19:10:52 2005
***************
*** 1,4 ****
! // { dg-do run { target i?86-*-* } }
  // { dg-options -w }
  
  struct X {
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options -w }
  
  struct X {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/dtor1.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/dtor1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/dtor1.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/dtor1.C	Tue May 31 16:28:30 2005
***************
*** 1,5 ****
! // { dg-do compile { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=0" }
  
  struct A {
--- 1,5 ----
! // { dg-do compile { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=0" }
  
  struct A {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty10.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty10.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty10.C	Tue May 31 16:28:30 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=0 -w" }
  
  struct E {};
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=0 -w" }
  
  struct E {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty6.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty6.C	Sun Nov 28 23:28:05 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty6.C	Mon Nov  7 11:56:03 2005
*************** struct A {};
*** 5,15 ****
  struct B {
    A a; // { dg-warning "empty" "" { xfail mmix-*-* } }
    virtual void f () {}
! } __attribute__((aligned(8)));
  /* The preceding attribute is necessary on targets with
!    BIGGEST_ALIGNMENT <= 32 to trigger the warning, as otherwise a 32 bit
!    offset is split into DECL_FIELD_OFFSET 4 and DECL_FIELD_BIT_OFFSET 0,
     and then there is no discrepancy between DECL_FIELD_OFFSET and
!    byte_position to warn about.
!    On the other hand 64-bit targets for example, generally need a larger
!    requested alignment to get the intended warning.  */
--- 5,14 ----
  struct B {
    A a; // { dg-warning "empty" "" { xfail mmix-*-* } }
    virtual void f () {}
! } __attribute__((aligned(2 * sizeof (void *))));
  /* The preceding attribute is necessary on targets with
!    BIGGEST_ALIGNMENT <= POINTER_SIZE to trigger the warning, as
!    otherwise the offset of 'a' (i.e. POINTER_SIZE) is split into a
!    non-zero DECL_FIELD_OFFSET and a zero DECL_FIELD_BIT_OFFSET,
     and then there is no discrepancy between DECL_FIELD_OFFSET and
!    byte_position to warn about.  */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty7.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty7.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty7.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=0" }
  
  struct S1 {};
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=0" }
  
  struct S1 {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty9.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/empty9.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/empty9.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-w -fabi-version=0" }
  
  struct E1 {};
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-w -fabi-version=0" }
  
  struct E1 {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/layout3.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/layout3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/layout3.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/layout3.C	Tue May 31 16:28:30 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=0 -w" }
  
  struct S {
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=0 -w" }
  
  struct S {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/layout4.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/layout4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/layout4.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/layout4.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=1" }
  
  struct C4
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=1" }
  
  struct C4
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/mangle24.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/mangle24.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/mangle24.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/mangle24.C	Sat Dec 10 13:47:29 2005
***************
*** 0 ****
--- 1,13 ----
+ // Test mangling of __float80.
+ // The C++ ABI document says __float80 is mangled as "e".  It
+ // also says that "long double" is mangled as "e", so these conflict on
+ // ia64-hpux where "long double" is "e" and __float80 is "u9__float80".
+ // Origin: Joseph Myers <joseph@codesourcery.com>
+ // { dg-do compile { target i?86-*-* x86_64-*-* ia64-*-* } } */
+ // { dg-options "" } */
+ // { dg-options "-mmmx" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ // { dg-final { scan-assembler "_Z1fe" { target i?86-*-* x86_64-*-* } } } */
+ // { dg-final { scan-assembler "_Z1fe" { target { ia64-*-* && { ! "ia64-*-hpux*" } } } } } */
+ // { dg-final { scan-assembler "_Z1fu9__float80" { target ia64-*-hpux* } } } */
+ 
+ int f(__float80 x) { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/mangle25.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/mangle25.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/mangle25.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/mangle25.C	Tue Jan 17 22:33:15 2006
***************
*** 0 ****
--- 1,13 ----
+ // Test mangling of __float128.
+ // The C++ ABI document says __float128 is mangled as "g".  It
+ // also says that "long double" is mangled as "e", so these conflict on
+ // ia64-hpux where "long double" is "e" and __float128 is synonymous with
+ // "long double".
+ // Origin: Joseph Myers <joseph@codesourcery.com>
+ // { dg-do compile { target { ia64-*-* || { { i?86-*-* x86_64-*-*} && lp64 } } } }
+ // { dg-options "" } */
+ // { dg-final { scan-assembler "_Z1fg" { target i?86-*-* x86_64-*-* } } } */
+ // { dg-final { scan-assembler "_Z1fg" { target { ia64-*-* && { ! "ia64-*-hpux*" } } } } } */
+ // { dg-final { scan-assembler "_Z1fe" { target ia64-*-hpux* } } } */
+ 
+ int f(__float128 x) { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/thunk1.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/thunk1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/thunk1.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/thunk1.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do compile { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  struct A {
    virtual void f ();
--- 1,6 ----
! // { dg-do compile { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
! 
  
  struct A {
    virtual void f ();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/thunk2.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/thunk2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/thunk2.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/thunk2.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do compile { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options -w }
  
  struct A {
--- 1,5 ----
! // { dg-do compile { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options -w }
  
  struct A {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/vbase11.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/vbase11.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/vbase11.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/vbase11.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=0" }
  
  struct A { virtual void f(); char c1; };
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=0" }
  
  struct A { virtual void f(); char c1; };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/vthunk2.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/vthunk2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/vthunk2.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/vthunk2.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do compile { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  struct c0 {
    virtual void f ();
--- 1,5 ----
! // { dg-do compile { target i?86-*-* x86_64-*-*} }
! // { dg-require-effective-target ilp32 }
  
  struct c0 {
    virtual void f ();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/abi/vthunk3.C gcc-4.1.0/gcc/testsuite/g++.dg/abi/vthunk3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/abi/vthunk3.C	Wed Nov 17 17:21:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/abi/vthunk3.C	Thu May 26 19:10:52 2005
***************
*** 1,5 ****
! // { dg-do compile { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-fabi-version=0" }
  
  struct A {
--- 1,5 ----
! // { dg-do compile { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-fabi-version=0" }
  
  struct A {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/bprob/bprob.exp gcc-4.1.0/gcc/testsuite/g++.dg/bprob/bprob.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/bprob/bprob.exp	Thu Sep 16 20:37:08 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/bprob/bprob.exp	Thu Jul 28 21:48:38 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  #
  # Test the functionality of programs compiled with profile-directed block
  # ordering using -fprofile-arcs followed by -fbranch-probabilities.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  #
  # Test the functionality of programs compiled with profile-directed block
  # ordering using -fprofile-arcs followed by -fbranch-probabilities.
*************** if { ![check_profiling_available "-fprof
*** 27,33 ****
  
  # The procedures in profopt.exp need these parameters.
  set tool g++
! set prof_ext gcda
  
  if $tracelevel then {
      strace $tracelevel
--- 27,33 ----
  
  # The procedures in profopt.exp need these parameters.
  set tool g++
! set prof_ext "gcda gcno"
  
  if $tracelevel then {
      strace $tracelevel
*************** load_lib profopt.exp
*** 52,61 ****
  
  set profile_options "-fprofile-arcs"
  set feedback_options "-fbranch-probabilities"
- if {[check_profiling_available "-ftree-based-profiling"]} {
-     lappend profile_options "-ftree-based-profiling -fprofile-arcs"
-     lappend feedback_options "-ftree-based-profiling -fbranch-probabilities"
- }
  
  # Main loop.
  foreach profile_option $profile_options feedback_option $feedback_options {
--- 52,57 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/charset/asm2.c gcc-4.1.0/gcc/testsuite/g++.dg/charset/asm2.c
*** gcc-4.0.2/gcc/testsuite/g++.dg/charset/asm2.c	Tue Feb 22 11:36:36 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/charset/asm2.c	Thu May 26 19:10:52 2005
***************
*** 1,6 ****
  /* 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 "IBM1047" }
     { dg-final { scan-assembler "std" } }
     { dg-final { scan-assembler "cld" } }
--- 1,6 ----
  /* 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-*-* x86_64-*-* } }
     { dg-require-iconv "IBM1047" }
     { dg-final { scan-assembler "std" } }
     { dg-final { scan-assembler "cld" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/charset/charset.exp gcc-4.1.0/gcc/testsuite/g++.dg/charset/charset.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/charset/charset.exp	Tue Feb 22 11:36:36 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/charset/charset.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # GCC testsuite that uses the 'dg.exp' driver.
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # GCC testsuite that uses the 'dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/compat.exp gcc-4.1.0/gcc/testsuite/g++.dg/compat/compat.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/compat.exp	Wed Nov 24 04:39:38 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/compat.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  #
  # This file was written by Janis Johnson, <janis187@us.ibm.com>
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  #
  # This file was written by Janis Johnson, <janis187@us.ibm.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1.exp gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1.exp	Thu Jan 26 04:09:07 2006
***************
*** 0 ****
--- 1,164 ----
+ # Copyright (C) 2002, 2003, 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ # 02110-1301, USA.
+ #
+ # This file was written by Jakub Jelinek, <jakub@redhat.com>
+ # Based on compat.exp writte by Janis Johnson, <janis187@us.ibm.com>
+ 
+ 
+ # Test interoperability of two compilers that follow the same ABI.
+ #
+ # Break simple tests into two pieces and see that they work when linked
+ # together.  If an alternate compiler is specified then the two main
+ # pieces of each test are compiled with different compilers.  The
+ # alternate compiler must be installed, and is specified by defining
+ # ALT_CXX_UNDER_TEST in the environment.
+ #
+ # struct-layout-1 are generated structure layout interoperability tests,
+ # so a generator first needs to be compiled on host, run there and the
+ # generated tests then compiled on build and executed on target.
+ 
+ if $tracelevel then {
+     strace $tracelevel
+ }
+ 
+ global GXX_UNDER_TEST
+ global ld_library_path
+ 
+ # Load procedures from common libraries. 
+ load_lib standard.exp
+ load_lib g++.exp
+ load_lib target-libpath.exp
+ 
+ #
+ # compat-use-alt-compiler -- make the alternate compiler the default
+ # 
+ proc compat-use-alt-compiler { } {
+     global GXX_UNDER_TEST ALT_CXX_UNDER_TEST
+     global CXXFLAGS
+     global ALWAYS_CXXFLAGS
+     global ld_library_path alt_ld_library_path
+     global same_alt
+ 
+     # We don't need to do this if the alternate compiler is actually
+     # the same as the compiler under test.
+     if { $same_alt == 0 } then {
+ 	set GXX_UNDER_TEST $ALT_CXX_UNDER_TEST
+ 	set CXXFLAGS ""
+ 	set ALWAYS_CXXFLAGS ""
+ 	set ld_library_path $alt_ld_library_path
+ 	set_ld_library_path_env_vars
+     }
+ }
+ 
+ #
+ # compat-use-tst-compiler -- make compiler under test the default
+ #
+ proc compat-use-tst-compiler { } {
+     global GXX_UNDER_TEST save_gxx_under_test
+     global CXXFLAGS save_cxxflags
+     global ALWAYS_CXXFLAGS save_always_cxxflags
+     global ld_library_path save_ld_library_path
+     global same_alt
+ 
+     # We don't need to do this if the alternate compiler is actually
+     # the same as the compiler under test.
+ 
+     if { $same_alt == 0 } then {
+ 	set GXX_UNDER_TEST $save_gxx_under_test
+ 	set CXXFLAGS $save_cxxflags
+ 	set ALWAYS_CXXFLAGS $save_always_cxxflags
+ 	set ld_library_path $save_ld_library_path
+ 	set_ld_library_path_env_vars
+     }
+ }
+ 
+ # Load the language-independent compabibility support procedures.
+ # This must be done after the compat-use-*-compiler definitions.
+ load_lib compat.exp
+ 
+ g++_init
+ 
+ # Save variables for the C++ compiler under test, which each test will
+ # change a couple of times.  This must be done after calling g++-init.
+ set save_gxx_under_test $GXX_UNDER_TEST
+ set save_cxxflags $CXXFLAGS
+ set save_always_cxxflags $ALWAYS_CXXFLAGS
+ set save_ld_library_path $ld_library_path
+ 
+ # Define an identifier for use with this suite to avoid name conflicts
+ # with other compat tests running at the same time.
+ set sid "cp_compat"
+ 
+ # Find out whether there is an alternate compiler to test.  If the
+ # variable is defined but is set to "same", that means we use the same
+ # compiler twice, which is meaningful if the two parts of COMPAT_OPTIONS
+ # are different.
+ set use_alt 0
+ set same_alt 0
+ set alt_ld_library_path "."
+ if [info exists ALT_CXX_UNDER_TEST] then {
+     set use_alt 1
+     if [string match "same" $ALT_CXX_UNDER_TEST] then {
+ 	set same_alt 1
+     } else {
+ 	if [info exists ALT_LD_LIBRARY_PATH] then {
+ 	    append alt_ld_library_path ":${ALT_LD_LIBRARY_PATH}"
+ 	}
+     }
+ }
+ 
+ set tstobjdir "$tmpdir/g++.dg-struct-layout-1"
+ set generator "$tmpdir/g++.dg-struct-layout-1_generate"
+ 
+ set generator_src "$srcdir/$subdir/struct-layout-1_generate.c"
+ set generator_src "$generator_src $srcdir/$subdir/../../gcc.dg/compat/generate-random.c"
+ set generator_src "$generator_src $srcdir/$subdir/../../gcc.dg/compat/generate-random_r.c"
+ set generator_cmd "-o $generator $generator_src"
+ 
+ set status [remote_exec host "$HOSTCC $HOSTCFLAGS $generator_cmd"]
+ set status [lindex $status 0]
+ if { $status == 0 } then {
+     file delete -force $tstobjdir
+     file mkdir $tstobjdir
+     set generator_args "-s $srcdir/$subdir -d $tstobjdir"
+     if [info exists env(RUN_ALL_COMPAT_TESTS) ] then {
+ 	set generator_args "$generator_args -n 15000"
+     }
+     if [check_effective_target_short_enums] then {
+ 	set generator_args "-e $generator_args"
+     }
+     set status [remote_exec host "$generator $generator_args"]
+     set status [lindex $status 0]
+     if { $status == 0 } then {
+ 	foreach src [lsort [find $tstobjdir *_main.C]] {
+ 	    # If we're only testing specific files and this isn't one
+ 	    # of them, skip it.
+ 	    if ![runtest_file_p $runtests $src] then {
+ 		continue
+ 	    }
+ 
+ 	    compat-execute $src $sid $use_alt
+ 	}
+     } else {
+ 	warning "Could not execute g++.dg/compat/struct-layout-1 generator"
+     }
+ } else {
+     warning "Could not compile g++.dg/compat/struct-layout-1 generator"
+ }
+ 
+ # Restore the original compiler under test.
+ compat-use-tst-compiler
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1.h gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1.h
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1.h	Thu Dec  8 21:53:20 2005
***************
*** 0 ****
--- 1,497 ----
+ #include <limits.h>
+ #include <stdarg.h>
+ #include <stdbool.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #include <string.h>
+ #include "../../gcc.dg/compat/compat-common.h"
+ 
+ #ifndef SKIP_ATTRIBUTE
+ # include "../../gcc.dg/compat/vector-defs.h"
+ #else
+ typedef int qi;
+ typedef int hi;
+ typedef int si;
+ typedef int di;
+ typedef float sf;
+ typedef float df;
+ typedef int v8qi;
+ typedef int v16qi;
+ typedef int v2hi;
+ typedef int v4hi;
+ typedef int v8hi;
+ typedef int v2si;
+ typedef int v4si;
+ typedef int v1di;
+ typedef int v2di;
+ typedef int v2sf;
+ typedef int v4sf;
+ typedef int v16sf;
+ typedef int v2df;
+ typedef int u8qi;
+ typedef int u16qi;
+ typedef int u2hi;
+ typedef int u4hi;
+ typedef int u8hi;
+ typedef int u2si;
+ typedef int u4si;
+ typedef int u1di;
+ typedef int u2di;
+ typedef int u2sf;
+ typedef int u4sf;
+ typedef int u16sf;
+ typedef int u2df;
+ #endif
+ #if (defined __i386__ || defined __x86_64__) && !defined SKIP_ATTRIBUTE
+ # ifdef __MMX__
+ #  include <mmintrin.h>
+ # else
+ typedef int __m64;
+ # endif
+ # ifdef __SSE__
+ #  include <xmmintrin.h>
+ # else
+ typedef int __m128;
+ # endif
+ #else
+ typedef int __m64;
+ typedef int __m128;
+ #endif
+ 
+ #define FLDS_MAX	32
+ extern struct Info
+ {
+   int nfields, nbitfields;
+   void *sp, *a0p, *a3p;
+   void *flds[FLDS_MAX];
+   size_t sz, sizes[FLDS_MAX];
+   size_t als, ala0, ala3, aligns[FLDS_MAX];
+ } info;
+ 
+ extern int intarray[256];
+ extern int fn0 (void), fn1 (void), fn2 (void), fn3 (void), fn4 (void);
+ extern int fn5 (void), fn6 (void), fn7 (void), fn8 (void), fn9 (void);
+ 
+ #ifdef DBG
+ #define FAIL(n, m) printf ("fail %d.%d\n", n, m), ++fails
+ #else
+ #define FAIL(n, m) ++fails
+ #endif
+ 
+ #ifdef SKIP_ATTRIBUTE
+ # define __attribute__(x)
+ #endif
+ #define atal		__attribute__((aligned))
+ #define atpa		__attribute__((packed))
+ #define atalpa		__attribute__((aligned, packed))
+ #define atpaal		__attribute__((packed, aligned))
+ #define atal1		__attribute__((aligned (1)))
+ #define atal2		__attribute__((aligned (2)))
+ #define atal4		__attribute__((aligned (4)))
+ #define atal8		__attribute__((aligned (8)))
+ #define atal16		__attribute__((aligned (16)))
+ #define atal1pa		__attribute__((aligned (1), packed))
+ #define atal2pa		__attribute__((aligned (2), packed))
+ #define atal4pa		__attribute__((aligned (4), packed))
+ #define atal8pa		__attribute__((aligned (8), packed))
+ #define atal16pa	__attribute__((aligned (16), packed))
+ #define atpaal1		__attribute__((packed, aligned (1)))
+ #define atpaal2		__attribute__((packed, aligned (2)))
+ #define atpaal4		__attribute__((packed, aligned (4)))
+ #define atpaal8		__attribute__((packed, aligned (8)))
+ #define atpaal16	__attribute__((packed, aligned (16)))
+ 
+ #if UCHAR_MAX == 255 && USHORT_MAX == 65535 && UINT_MAX == 4294967295U \
+     && ULLONG_MAX == 18446744073709551615ULL
+ /* For ILP32 and LP64 targets, assume float is at least 32-bit
+    and double plus long double at least 64-bit.  */
+ # define atalx1		atal1
+ # define atalx2		atal2
+ # define atalx4		atal4
+ # define atalx8		atal8
+ # define atalx16	atal16
+ # define atalx1pa	atal1pa
+ # define atalx2pa	atal2pa
+ # define atalx4pa	atal4pa
+ # define atalx8pa	atal8pa
+ # define atalx16pa	atal16pa
+ # define atpaalx1	atpaal1
+ # define atpaalx2	atpaal2
+ # define atpaalx4	atpaal4
+ # define atpaalx8	atpaal8
+ # define atpaalx16	atpaal16
+ # if ULONG_MAX > 4294967295UL
+ #  define ataly8	atal8
+ #  define ataly8pa	atal8pa
+ #  define atpaaly8	atpaal8
+ #  define ataly16	atal16
+ #  define ataly16pa	atal16pa
+ #  define atpaaly16	atpaal16
+ # else
+ #  define ataly8
+ #  define ataly8pa
+ #  define atpaaly8
+ #  define ataly16
+ #  define ataly16pa
+ #  define atpaaly16
+ # endif
+ #else
+ # define atalx1
+ # define atalx2
+ # define atalx4
+ # define atalx8
+ # define atalx16
+ # define atalx1pa
+ # define atalx2pa
+ # define atalx4pa
+ # define atalx8pa
+ # define atalx16pa
+ # define atpaalx1
+ # define atpaalx2
+ # define atpaalx4
+ # define atpaalx8
+ # define atpaalx16
+ # define ataly8
+ # define ataly8pa
+ # define atpaaly8
+ # define ataly16
+ # define ataly16pa
+ # define atpaaly16
+ #endif
+ 
+ #define atQI		__attribute__((mode (QI)))
+ #define atHI		__attribute__((mode (HI)))
+ #define atSI		__attribute__((mode (SI)))
+ #define atDI		__attribute__((mode (DI)))
+ 
+ enum E0 { e0_0 };
+ enum E1 { e1_0, e1_1 };
+ enum E2 { e2_m3 = -3, e2_m2, e2_m1, e2_0, e2_1, e2_2, e2_3 };
+ enum E3 { e3_m127 = -127, e3_m126, e3_m125, e3_0 = 0, e3_125 = 125, e3_126, e3_127 };
+ enum E4 { e4_0, e4_1, e4_2, e4_3, e4_253 = 253, e4_254, e4_255 };
+ enum E5 { e5_m32767 = -32767, e5_m32766, e5_m32765, e5_0 = 0, e5_32765 = 32765, e5_32766, e5_32767 };
+ enum E6 { e6_0, e6_1, e6_2, e6_3, e6_65533 = 65533, e6_65534, e6_65535 };
+ enum E7 { e7_m2147483647 = -2147483647, e7_m2147483646, e7_m2147483645,
+ 	  e7_0, e7_2147483645 = 2147483645, e7_2147483646, e7_2147483647 };
+ enum E8 { e8_0, e8_1, e8_2, e8_3, e8_4294967293 = 4294967293U, e8_4294967294, e8_4294967295 };
+ enum E9 { e9_m1099511627775 = -1099511627775LL, e9_m1099511627774, e9_m1099511627773,
+ 	  e9_0, e9_1099511627773 = 1099511627773LL, e9_1099511627774, e9_1099511627775 };
+ 
+ typedef char Tchar;
+ typedef signed char Tschar;
+ typedef unsigned char Tuchar;
+ typedef short int Tshort;
+ typedef unsigned short int Tushort;
+ typedef int Tint;
+ typedef unsigned int Tuint;
+ typedef long int Tlong;
+ typedef unsigned long int Tulong;
+ typedef long long int Tllong;
+ typedef unsigned long long int Tullong;
+ typedef float Tfloat;
+ typedef double Tdouble;
+ typedef long double Tldouble;
+ typedef _Complex float Tcfloat;
+ typedef _Complex double Tcdouble;
+ typedef _Complex long double Tcldouble;
+ typedef bool Tbool;
+ typedef enum E0 TE0;
+ typedef enum E1 TE1;
+ typedef enum E2 TE2;
+ typedef enum E3 TE3;
+ typedef enum E4 TE4;
+ typedef enum E5 TE5;
+ typedef enum E6 TE6;
+ typedef enum E7 TE7;
+ typedef enum E8 TE8;
+ typedef enum E9 TE9;
+ typedef void *Tptr;
+ typedef char *Tcptr;
+ typedef int *Tiptr;
+ typedef char Talchar atal;
+ typedef signed char Talschar atal;
+ typedef unsigned char Taluchar atal;
+ typedef short int Talshort atal;
+ typedef unsigned short int Talushort atal;
+ typedef int Talint atal;
+ typedef unsigned int Taluint atal;
+ typedef long int Tallong atal;
+ typedef unsigned long int Talulong atal;
+ typedef long long int Talllong atal;
+ typedef unsigned long long int Talullong atal;
+ typedef float Talfloat atal;
+ typedef double Taldouble atal;
+ typedef long double Talldouble atal;
+ typedef _Complex float Talcfloat atal;
+ typedef _Complex double Talcdouble atal;
+ typedef _Complex long double Talcldouble atal;
+ typedef bool Talbool atal;
+ typedef enum E0 TalE0 atal;
+ typedef enum E1 TalE1 atal;
+ typedef enum E2 TalE2 atal;
+ typedef enum E3 TalE3 atal;
+ typedef enum E4 TalE4 atal;
+ typedef enum E5 TalE5 atal;
+ typedef enum E6 TalE6 atal;
+ typedef enum E7 TalE7 atal;
+ typedef enum E8 TalE8 atal;
+ typedef enum E9 TalE9 atal;
+ typedef void *Talptr atal;
+ typedef char *Talcptr atal;
+ typedef int *Taliptr atal;
+ typedef char Tal1char atal1;
+ typedef signed char Tal1schar atal1;
+ typedef unsigned char Tal1uchar atal1;
+ typedef short int Tal1short atal1;
+ typedef unsigned short int Tal1ushort atal1;
+ typedef int Tal1int atal1;
+ typedef unsigned int Tal1uint atal1;
+ typedef long int Tal1long atal1;
+ typedef unsigned long int Tal1ulong atal1;
+ typedef long long int Tal1llong atal1;
+ typedef unsigned long long int Tal1ullong atal1;
+ typedef float Tal1float atal1;
+ typedef double Tal1double atal1;
+ typedef long double Tal1ldouble atal1;
+ typedef _Complex float Tal1cfloat atal1;
+ typedef _Complex double Tal1cdouble atal1;
+ typedef _Complex long double Tal1cldouble atal1;
+ typedef bool Tal1bool atal1;
+ typedef enum E0 Tal1E0 atal1;
+ typedef enum E1 Tal1E1 atal1;
+ typedef enum E2 Tal1E2 atal1;
+ typedef enum E3 Tal1E3 atal1;
+ typedef enum E4 Tal1E4 atal1;
+ typedef enum E5 Tal1E5 atal1;
+ typedef enum E6 Tal1E6 atal1;
+ typedef enum E7 Tal1E7 atal1;
+ typedef enum E8 Tal1E8 atal1;
+ typedef enum E9 Tal1E9 atal1;
+ typedef void *Tal1ptr atal1;
+ typedef char *Tal1cptr atal1;
+ typedef int *Tal1iptr atal1;
+ typedef char Tal2char atal2;
+ typedef signed char Tal2schar atal2;
+ typedef unsigned char Tal2uchar atal2;
+ typedef short int Tal2short atal2;
+ typedef unsigned short int Tal2ushort atal2;
+ typedef int Tal2int atal2;
+ typedef unsigned int Tal2uint atal2;
+ typedef long int Tal2long atal2;
+ typedef unsigned long int Tal2ulong atal2;
+ typedef long long int Tal2llong atal2;
+ typedef unsigned long long int Tal2ullong atal2;
+ typedef float Tal2float atal2;
+ typedef double Tal2double atal2;
+ typedef long double Tal2ldouble atal2;
+ typedef _Complex float Tal2cfloat atal2;
+ typedef _Complex double Tal2cdouble atal2;
+ typedef _Complex long double Tal2cldouble atal2;
+ typedef bool Tal2bool atal2;
+ typedef enum E0 Tal2E0 atal2;
+ typedef enum E1 Tal2E1 atal2;
+ typedef enum E2 Tal2E2 atal2;
+ typedef enum E3 Tal2E3 atal2;
+ typedef enum E4 Tal2E4 atal2;
+ typedef enum E5 Tal2E5 atal2;
+ typedef enum E6 Tal2E6 atal2;
+ typedef enum E7 Tal2E7 atal2;
+ typedef enum E8 Tal2E8 atal2;
+ typedef enum E9 Tal2E9 atal2;
+ typedef void *Tal2ptr atal2;
+ typedef char *Tal2cptr atal2;
+ typedef int *Tal2iptr atal2;
+ typedef char Tal4char atal4;
+ typedef signed char Tal4schar atal4;
+ typedef unsigned char Tal4uchar atal4;
+ typedef short int Tal4short atal4;
+ typedef unsigned short int Tal4ushort atal4;
+ typedef int Tal4int atal4;
+ typedef unsigned int Tal4uint atal4;
+ typedef long int Tal4long atal4;
+ typedef unsigned long int Tal4ulong atal4;
+ typedef long long int Tal4llong atal4;
+ typedef unsigned long long int Tal4ullong atal4;
+ typedef float Tal4float atal4;
+ typedef double Tal4double atal4;
+ typedef long double Tal4ldouble atal4;
+ typedef _Complex float Tal4cfloat atal4;
+ typedef _Complex double Tal4cdouble atal4;
+ typedef _Complex long double Tal4cldouble atal4;
+ typedef bool Tal4bool atal4;
+ typedef enum E0 Tal4E0 atal4;
+ typedef enum E1 Tal4E1 atal4;
+ typedef enum E2 Tal4E2 atal4;
+ typedef enum E3 Tal4E3 atal4;
+ typedef enum E4 Tal4E4 atal4;
+ typedef enum E5 Tal4E5 atal4;
+ typedef enum E6 Tal4E6 atal4;
+ typedef enum E7 Tal4E7 atal4;
+ typedef enum E8 Tal4E8 atal4;
+ typedef enum E9 Tal4E9 atal4;
+ typedef void *Tal4ptr atal4;
+ typedef char *Tal4cptr atal4;
+ typedef int *Tal4iptr atal4;
+ typedef char Tal8char atal8;
+ typedef signed char Tal8schar atal8;
+ typedef unsigned char Tal8uchar atal8;
+ typedef short int Tal8short atal8;
+ typedef unsigned short int Tal8ushort atal8;
+ typedef int Tal8int atal8;
+ typedef unsigned int Tal8uint atal8;
+ typedef long int Tal8long atal8;
+ typedef unsigned long int Tal8ulong atal8;
+ typedef long long int Tal8llong atal8;
+ typedef unsigned long long int Tal8ullong atal8;
+ typedef float Tal8float atal8;
+ typedef double Tal8double atal8;
+ typedef long double Tal8ldouble atal8;
+ typedef _Complex float Tal8cfloat atal8;
+ typedef _Complex double Tal8cdouble atal8;
+ typedef _Complex long double Tal8cldouble atal8;
+ typedef bool Tal8bool atal8;
+ typedef enum E0 Tal8E0 atal8;
+ typedef enum E1 Tal8E1 atal8;
+ typedef enum E2 Tal8E2 atal8;
+ typedef enum E3 Tal8E3 atal8;
+ typedef enum E4 Tal8E4 atal8;
+ typedef enum E5 Tal8E5 atal8;
+ typedef enum E6 Tal8E6 atal8;
+ typedef enum E7 Tal8E7 atal8;
+ typedef enum E8 Tal8E8 atal8;
+ typedef enum E9 Tal8E9 atal8;
+ typedef void *Tal8ptr atal8;
+ typedef char *Tal8cptr atal8;
+ typedef int *Tal8iptr atal8;
+ typedef char Tal16char atal16;
+ typedef signed char Tal16schar atal16;
+ typedef unsigned char Tal16uchar atal16;
+ typedef short int Tal16short atal16;
+ typedef unsigned short int Tal16ushort atal16;
+ typedef int Tal16int atal16;
+ typedef unsigned int Tal16uint atal16;
+ typedef long int Tal16long atal16;
+ typedef unsigned long int Tal16ulong atal16;
+ typedef long long int Tal16llong atal16;
+ typedef unsigned long long int Tal16ullong atal16;
+ typedef float Tal16float atal16;
+ typedef double Tal16double atal16;
+ typedef long double Tal16ldouble atal16;
+ typedef _Complex float Tal16cfloat atal16;
+ typedef _Complex double Tal16cdouble atal16;
+ typedef _Complex long double Tal16cldouble atal16;
+ typedef bool Tal16bool atal16;
+ typedef enum E0 Tal16E0 atal16;
+ typedef enum E1 Tal16E1 atal16;
+ typedef enum E2 Tal16E2 atal16;
+ typedef enum E3 Tal16E3 atal16;
+ typedef enum E4 Tal16E4 atal16;
+ typedef enum E5 Tal16E5 atal16;
+ typedef enum E6 Tal16E6 atal16;
+ typedef enum E7 Tal16E7 atal16;
+ typedef enum E8 Tal16E8 atal16;
+ typedef enum E9 Tal16E9 atal16;
+ typedef void *Tal16ptr atal16;
+ typedef char *Tal16cptr atal16;
+ typedef int *Tal16iptr atal16;
+ typedef char Talx1char atalx1;
+ typedef signed char Talx1schar atalx1;
+ typedef unsigned char Talx1uchar atalx1;
+ typedef short int Talx1short atalx1;
+ typedef unsigned short int Talx1ushort atalx1;
+ typedef int Talx1int atalx1;
+ typedef unsigned int Talx1uint atalx1;
+ typedef long int Talx1long atalx1;
+ typedef unsigned long int Talx1ulong atalx1;
+ typedef long long int Talx1llong atalx1;
+ typedef unsigned long long int Talx1ullong atalx1;
+ typedef float Talx1float atalx1;
+ typedef double Talx1double atalx1;
+ typedef long double Talx1ldouble atalx1;
+ typedef _Complex float Talx1cfloat atalx1;
+ typedef _Complex double Talx1cdouble atalx1;
+ typedef _Complex long double Talx1cldouble atalx1;
+ typedef bool Talx1bool atalx1;
+ typedef enum E0 Talx1E0 atalx1;
+ typedef enum E1 Talx1E1 atalx1;
+ typedef enum E2 Talx1E2 atalx1;
+ typedef enum E3 Talx1E3 atalx1;
+ typedef enum E4 Talx1E4 atalx1;
+ typedef enum E5 Talx1E5 atalx1;
+ typedef enum E6 Talx1E6 atalx1;
+ typedef enum E7 Talx1E7 atalx1;
+ typedef enum E8 Talx1E8 atalx1;
+ typedef enum E9 Talx1E9 atalx1;
+ typedef void *Talx1ptr atalx1;
+ typedef char *Talx1cptr atalx1;
+ typedef int *Talx1iptr atalx1;
+ typedef short int Talx2short atalx2;
+ typedef unsigned short int Talx2ushort atalx2;
+ typedef int Talx2int atalx2;
+ typedef unsigned int Talx2uint atalx2;
+ typedef long int Talx2long atalx2;
+ typedef unsigned long int Talx2ulong atalx2;
+ typedef long long int Talx2llong atalx2;
+ typedef unsigned long long int Talx2ullong atalx2;
+ typedef float Talx2float atalx2;
+ typedef double Talx2double atalx2;
+ typedef long double Talx2ldouble atalx2;
+ typedef _Complex float Talx2cfloat atalx2;
+ typedef _Complex double Talx2cdouble atalx2;
+ typedef _Complex long double Talx2cldouble atalx2;
+ typedef enum E0 Talx2E0 atalx2;
+ typedef enum E1 Talx2E1 atalx2;
+ typedef enum E2 Talx2E2 atalx2;
+ typedef enum E3 Talx2E3 atalx2;
+ typedef enum E4 Talx2E4 atalx2;
+ typedef enum E5 Talx2E5 atalx2;
+ typedef enum E6 Talx2E6 atalx2;
+ typedef enum E7 Talx2E7 atalx2;
+ typedef enum E8 Talx2E8 atalx2;
+ typedef enum E9 Talx2E9 atalx2;
+ typedef void *Talx2ptr atalx2;
+ typedef char *Talx2cptr atalx2;
+ typedef int *Talx2iptr atalx2;
+ typedef int Talx4int atalx4;
+ typedef unsigned int Talx4uint atalx4;
+ typedef long int Talx4long atalx4;
+ typedef unsigned long int Talx4ulong atalx4;
+ typedef long long int Talx4llong atalx4;
+ typedef unsigned long long int Talx4ullong atalx4;
+ typedef float Talx4float atalx4;
+ typedef double Talx4double atalx4;
+ typedef long double Talx4ldouble atalx4;
+ typedef _Complex float Talx4cfloat atalx4;
+ typedef _Complex double Talx4cdouble atalx4;
+ typedef _Complex long double Talx4cldouble atalx4;
+ typedef enum E0 Talx4E0 atalx4;
+ typedef enum E1 Talx4E1 atalx4;
+ typedef enum E2 Talx4E2 atalx4;
+ typedef enum E3 Talx4E3 atalx4;
+ typedef enum E4 Talx4E4 atalx4;
+ typedef enum E5 Talx4E5 atalx4;
+ typedef enum E6 Talx4E6 atalx4;
+ typedef enum E7 Talx4E7 atalx4;
+ typedef enum E8 Talx4E8 atalx4;
+ typedef enum E9 Talx4E9 atalx4;
+ typedef void *Talx4ptr atalx4;
+ typedef char *Talx4cptr atalx4;
+ typedef int *Talx4iptr atalx4;
+ typedef long int Taly8long ataly8;
+ typedef unsigned long int Taly8ulong ataly8;
+ typedef long long int Talx8llong atalx8;
+ typedef unsigned long long int Talx8ullong atalx8;
+ typedef double Talx8double atalx8;
+ typedef long double Talx8ldouble atalx8;
+ typedef _Complex float Talx8cfloat atalx8;
+ typedef _Complex double Talx8cdouble atalx8;
+ typedef _Complex long double Talx8cldouble atalx8;
+ typedef void *Taly8ptr ataly8;
+ typedef char *Taly8cptr ataly8;
+ typedef int *Taly8iptr ataly8;
+ typedef _Complex double Talx16cdouble atalx16;
+ typedef _Complex long double Talx16cldouble atalx16;
+ typedef int (*Tfnptr) (void);
+ 
+ #define T(n, fields, ops) TX(n, struct, , fields, ({ ops });)
+ #define U(n, fields, ops) TX(n, union, , fields, ({ ops });)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_generate.c	Thu Jan 26 04:09:07 2006
***************
*** 0 ****
--- 1,1628 ----
+ /* Structure layout test generator.
+    Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+    Contributed by Jakub Jelinek <jakub@redhat.com>.
+ 
+ This file is part of GCC.
+ 
+ GCC is free software; you can redistribute it and/or modify it under
+ the terms of the GNU General Public License as published by the Free
+ Software Foundation; either version 2, or (at your option) any later
+ version.
+ 
+ GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+ for more details.
+ 
+ You should have received a copy of the GNU General Public License
+ along with GCC; see the file COPYING.  If not, write to the Free
+ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.  */
+ 
+ /* Compile with gcc -o struct-layout-1_generate{,.c} generate_random{,_r}.c */
+ 
+ /* N.B. -- This program cannot use libiberty as that will not work
+    when testing an installed compiler.  */
+ #include <limits.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include <stddef.h>
+ /* We use our own pseudo-random number generator, so that it gives the same
+    values on all hosts.  */
+ #include "../../gcc.dg/compat/generate-random.h"
+ 
+ #if LLONG_MAX != 9223372036854775807LL && __LONG_LONG_MAX__ != 9223372036854775807LL
+ # error Need 64-bit long long
+ #endif
+ 
+ typedef unsigned int hashval_t;
+ 
+ enum TYPE
+ {
+   TYPE_INT,
+   TYPE_UINT,
+   TYPE_FLOAT,
+   TYPE_SENUM,
+   TYPE_UENUM,
+   TYPE_PTR,
+   TYPE_FNPTR,
+   TYPE_OTHER
+ };
+ 
+ struct types
+ {
+   const char *name;
+   enum TYPE type;
+   unsigned long long int maxval;
+   char bitfld;
+ };
+ 
+ struct types base_types[] = {
+ /* As we don't know whether char will be signed or not, just limit ourselves
+    to unsigned values less than maximum signed char value.  */
+ { "char", TYPE_UINT, 127, 'C' },
+ { "signed char", TYPE_INT, 127, 'C' },
+ { "unsigned char", TYPE_UINT, 255, 'C' },
+ { "short int", TYPE_INT, 32767, 'S' },
+ { "unsigned short int", TYPE_UINT, 65535, 'S' },
+ { "int", TYPE_INT, 2147483647, 'I' },
+ { "unsigned int", TYPE_UINT, 4294967295U, 'I' },
+ { "long int", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "unsigned long int", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "long long int", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "unsigned long long int", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "bool", TYPE_UINT, 1, 'B' },
+ { "void *", TYPE_PTR, 0, 0 },
+ { "char *", TYPE_PTR, 0, 0 },
+ { "int *", TYPE_PTR, 0, 0 },
+ { "float", TYPE_FLOAT, 0, 0 },
+ { "double", TYPE_FLOAT, 0, 0 },
+ { "long double", TYPE_FLOAT, 0, 0 },
+ #define NTYPES1 18
+ { "Tchar", TYPE_UINT, 127, 'C' },
+ { "Tschar", TYPE_INT, 127, 'C' },
+ { "Tuchar", TYPE_UINT, 255, 'C' },
+ { "Tshort", TYPE_INT, 32767, 'S' },
+ { "Tushort", TYPE_UINT, 65535, 'S' },
+ { "Tint", TYPE_INT, 2147483647, 'I' },
+ { "Tuint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tlong", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Tulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Tllong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Tullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Tbool", TYPE_UINT, 1, 'B' },
+ { "size_t", TYPE_UINT, 18446744073709551615ULL, 0 },
+ { "Tptr", TYPE_PTR, 0, 0 },
+ { "Tcptr", TYPE_PTR, 0, 0 },
+ { "Tiptr", TYPE_PTR, 0, 0 },
+ { "Tfnptr", TYPE_FNPTR, 0, 0 },
+ { "Tfloat", TYPE_FLOAT, 0, 0 },
+ { "Tdouble", TYPE_FLOAT, 0, 0 },
+ { "Tldouble", TYPE_FLOAT, 0, 0 },
+ { "enum E0", TYPE_UENUM, 0, ' ' },
+ { "enum E1", TYPE_UENUM, 1, ' ' },
+ { "enum E2", TYPE_SENUM, 3, ' ' },
+ { "enum E3", TYPE_SENUM, 127, ' ' },
+ { "enum E4", TYPE_UENUM, 255, ' ' },
+ { "enum E5", TYPE_SENUM, 32767, ' ' },
+ { "enum E6", TYPE_UENUM, 65535, ' ' },
+ { "enum E7", TYPE_SENUM, 2147483647, ' ' },
+ { "enum E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "enum E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "TE0", TYPE_UENUM, 0, ' ' },
+ { "TE1", TYPE_UENUM, 1, ' ' },
+ { "TE2", TYPE_SENUM, 3, ' ' },
+ { "TE3", TYPE_SENUM, 127, ' ' },
+ { "TE4", TYPE_UENUM, 255, ' ' },
+ { "TE5", TYPE_SENUM, 32767, ' ' },
+ { "TE6", TYPE_UENUM, 65535, ' ' },
+ { "TE7", TYPE_SENUM, 2147483647, ' ' },
+ { "TE8", TYPE_UENUM, 4294967295U, ' ' },
+ { "TE9", TYPE_SENUM, 1099511627775LL, ' ' },
+ /* vector-defs.h typedefs */
+ { "qi", TYPE_INT, 127, 0 },
+ { "hi", TYPE_INT, 32767, 0 },
+ { "si", TYPE_INT, 2147483647, 0 },
+ { "di", TYPE_INT, 9223372036854775807LL, 0 },
+ { "sf", TYPE_FLOAT, 0, 0 },
+ { "df", TYPE_FLOAT, 0, 0 }
+ #define NTYPES2 (sizeof (base_types) / sizeof (base_types[0]))
+ };
+ struct types vector_types[] = {
+ /* vector-defs.h typedefs */
+ { "v8qi", TYPE_OTHER, 0, 0 },
+ { "v16qi", TYPE_OTHER, 0, 0 },
+ { "v2hi", TYPE_OTHER, 0, 0 },
+ { "v4hi", TYPE_OTHER, 0, 0 },
+ { "v8hi", TYPE_OTHER, 0, 0 },
+ { "v2si", TYPE_OTHER, 0, 0 },
+ { "v4si", TYPE_OTHER, 0, 0 },
+ { "v1di", TYPE_OTHER, 0, 0 },
+ { "v2di", TYPE_OTHER, 0, 0 },
+ { "v2sf", TYPE_OTHER, 0, 0 },
+ { "v4sf", TYPE_OTHER, 0, 0 },
+ { "v16sf", TYPE_OTHER, 0, 0 },
+ { "v2df", TYPE_OTHER, 0, 0 },
+ { "u8qi", TYPE_OTHER, 0, 0 },
+ { "u16qi", TYPE_OTHER, 0, 0 },
+ { "u2hi", TYPE_OTHER, 0, 0 },
+ { "u4hi", TYPE_OTHER, 0, 0 },
+ { "u8hi", TYPE_OTHER, 0, 0 },
+ { "u2si", TYPE_OTHER, 0, 0 },
+ { "u4si", TYPE_OTHER, 0, 0 },
+ { "u1di", TYPE_OTHER, 0, 0 },
+ { "u2di", TYPE_OTHER, 0, 0 },
+ { "u2sf", TYPE_OTHER, 0, 0 },
+ { "u4sf", TYPE_OTHER, 0, 0 },
+ { "u16sf", TYPE_OTHER, 0, 0 },
+ { "u2df", TYPE_OTHER, 0, 0 },
+ { "__m64", TYPE_OTHER, 0, 0 },
+ { "__m128", TYPE_OTHER, 0, 0 }
+ #define NVTYPES2 (sizeof (vector_types) / sizeof (vector_types[0]))
+ };
+ struct types attrib_types[] = {
+ { "Talchar", TYPE_UINT, 127, 'C' },
+ { "Talschar", TYPE_INT, 127, 'C' },
+ { "Taluchar", TYPE_UINT, 255, 'C' },
+ { "Talshort", TYPE_INT, 32767, 'S' },
+ { "Talushort", TYPE_UINT, 65535, 'S' },
+ { "Talint", TYPE_INT, 2147483647, 'I' },
+ { "Taluint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tallong", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Talulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Talllong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Talullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Talbool", TYPE_UINT, 1, 'B' },
+ { "Talptr", TYPE_PTR, 0, 0 },
+ { "Talcptr", TYPE_PTR, 0, 0 },
+ { "Taliptr", TYPE_PTR, 0, 0 },
+ { "Talfloat", TYPE_FLOAT, 0, 0 },
+ { "Taldouble", TYPE_FLOAT, 0, 0 },
+ { "Talldouble", TYPE_FLOAT, 0, 0 },
+ { "TalE0", TYPE_UENUM, 0, ' ' },
+ { "TalE1", TYPE_UENUM, 1, ' ' },
+ { "TalE2", TYPE_SENUM, 3, ' ' },
+ { "TalE3", TYPE_SENUM, 127, ' ' },
+ { "TalE4", TYPE_UENUM, 255, ' ' },
+ { "TalE5", TYPE_SENUM, 32767, ' ' },
+ { "TalE6", TYPE_UENUM, 65535, ' ' },
+ { "TalE7", TYPE_SENUM, 2147483647, ' ' },
+ { "TalE8", TYPE_UENUM, 4294967295U, ' ' },
+ { "TalE9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Tal1char", TYPE_UINT, 127, 'C' },
+ { "Tal1schar", TYPE_INT, 127, 'C' },
+ { "Tal1uchar", TYPE_UINT, 255, 'C' },
+ { "Tal1short", TYPE_INT, 32767, 'S' },
+ { "Tal1ushort", TYPE_UINT, 65535, 'S' },
+ { "Tal1int", TYPE_INT, 2147483647, 'I' },
+ { "Tal1uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tal1long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Tal1ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Tal1llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Tal1ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Tal1bool", TYPE_UINT, 1, 'B' },
+ { "Tal1ptr", TYPE_PTR, 0, 0 },
+ { "Tal1cptr", TYPE_PTR, 0, 0 },
+ { "Tal1iptr", TYPE_PTR, 0, 0 },
+ { "Tal1float", TYPE_FLOAT, 0, 0 },
+ { "Tal1double", TYPE_FLOAT, 0, 0 },
+ { "Tal1ldouble", TYPE_FLOAT, 0, 0 },
+ { "Tal1E0", TYPE_UENUM, 0, ' ' },
+ { "Tal1E1", TYPE_UENUM, 1, ' ' },
+ { "Tal1E2", TYPE_SENUM, 3, ' ' },
+ { "Tal1E3", TYPE_SENUM, 127, ' ' },
+ { "Tal1E4", TYPE_UENUM, 255, ' ' },
+ { "Tal1E5", TYPE_SENUM, 32767, ' ' },
+ { "Tal1E6", TYPE_UENUM, 65535, ' ' },
+ { "Tal1E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Tal1E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Tal1E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Tal2char", TYPE_UINT, 127, 'C' },
+ { "Tal2schar", TYPE_INT, 127, 'C' },
+ { "Tal2uchar", TYPE_UINT, 255, 'C' },
+ { "Tal2short", TYPE_INT, 32767, 'S' },
+ { "Tal2ushort", TYPE_UINT, 65535, 'S' },
+ { "Tal2int", TYPE_INT, 2147483647, 'I' },
+ { "Tal2uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tal2long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Tal2ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Tal2llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Tal2ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Tal2bool", TYPE_UINT, 1, 'B' },
+ { "Tal2ptr", TYPE_PTR, 0, 0 },
+ { "Tal2cptr", TYPE_PTR, 0, 0 },
+ { "Tal2iptr", TYPE_PTR, 0, 0 },
+ { "Tal2float", TYPE_FLOAT, 0, 0 },
+ { "Tal2double", TYPE_FLOAT, 0, 0 },
+ { "Tal2ldouble", TYPE_FLOAT, 0, 0 },
+ { "Tal2E0", TYPE_UENUM, 0, ' ' },
+ { "Tal2E1", TYPE_UENUM, 1, ' ' },
+ { "Tal2E2", TYPE_SENUM, 3, ' ' },
+ { "Tal2E3", TYPE_SENUM, 127, ' ' },
+ { "Tal2E4", TYPE_UENUM, 255, ' ' },
+ { "Tal2E5", TYPE_SENUM, 32767, ' ' },
+ { "Tal2E6", TYPE_UENUM, 65535, ' ' },
+ { "Tal2E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Tal2E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Tal2E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Tal4char", TYPE_UINT, 127, 'C' },
+ { "Tal4schar", TYPE_INT, 127, 'C' },
+ { "Tal4uchar", TYPE_UINT, 255, 'C' },
+ { "Tal4short", TYPE_INT, 32767, 'S' },
+ { "Tal4ushort", TYPE_UINT, 65535, 'S' },
+ { "Tal4int", TYPE_INT, 2147483647, 'I' },
+ { "Tal4uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tal4long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Tal4ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Tal4llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Tal4ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Tal4bool", TYPE_UINT, 1, 'B' },
+ { "Tal4ptr", TYPE_PTR, 0, 0 },
+ { "Tal4cptr", TYPE_PTR, 0, 0 },
+ { "Tal4iptr", TYPE_PTR, 0, 0 },
+ { "Tal4float", TYPE_FLOAT, 0, 0 },
+ { "Tal4double", TYPE_FLOAT, 0, 0 },
+ { "Tal4ldouble", TYPE_FLOAT, 0, 0 },
+ { "Tal4E0", TYPE_UENUM, 0, ' ' },
+ { "Tal4E1", TYPE_UENUM, 1, ' ' },
+ { "Tal4E2", TYPE_SENUM, 3, ' ' },
+ { "Tal4E3", TYPE_SENUM, 127, ' ' },
+ { "Tal4E4", TYPE_UENUM, 255, ' ' },
+ { "Tal4E5", TYPE_SENUM, 32767, ' ' },
+ { "Tal4E6", TYPE_UENUM, 65535, ' ' },
+ { "Tal4E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Tal4E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Tal4E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Tal8char", TYPE_UINT, 127, 'C' },
+ { "Tal8schar", TYPE_INT, 127, 'C' },
+ { "Tal8uchar", TYPE_UINT, 255, 'C' },
+ { "Tal8short", TYPE_INT, 32767, 'S' },
+ { "Tal8ushort", TYPE_UINT, 65535, 'S' },
+ { "Tal8int", TYPE_INT, 2147483647, 'I' },
+ { "Tal8uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tal8long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Tal8ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Tal8llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Tal8ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Tal8bool", TYPE_UINT, 1, 'B' },
+ { "Tal8ptr", TYPE_PTR, 0, 0 },
+ { "Tal8cptr", TYPE_PTR, 0, 0 },
+ { "Tal8iptr", TYPE_PTR, 0, 0 },
+ { "Tal8float", TYPE_FLOAT, 0, 0 },
+ { "Tal8double", TYPE_FLOAT, 0, 0 },
+ { "Tal8ldouble", TYPE_FLOAT, 0, 0 },
+ { "Tal8E0", TYPE_UENUM, 0, ' ' },
+ { "Tal8E1", TYPE_UENUM, 1, ' ' },
+ { "Tal8E2", TYPE_SENUM, 3, ' ' },
+ { "Tal8E3", TYPE_SENUM, 127, ' ' },
+ { "Tal8E4", TYPE_UENUM, 255, ' ' },
+ { "Tal8E5", TYPE_SENUM, 32767, ' ' },
+ { "Tal8E6", TYPE_UENUM, 65535, ' ' },
+ { "Tal8E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Tal8E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Tal8E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Tal16char", TYPE_UINT, 127, 'C' },
+ { "Tal16schar", TYPE_INT, 127, 'C' },
+ { "Tal16uchar", TYPE_UINT, 255, 'C' },
+ { "Tal16short", TYPE_INT, 32767, 'S' },
+ { "Tal16ushort", TYPE_UINT, 65535, 'S' },
+ { "Tal16int", TYPE_INT, 2147483647, 'I' },
+ { "Tal16uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Tal16long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Tal16ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Tal16llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Tal16ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Tal16bool", TYPE_UINT, 1, 'B' },
+ { "Tal16ptr", TYPE_PTR, 0, 0 },
+ { "Tal16cptr", TYPE_PTR, 0, 0 },
+ { "Tal16iptr", TYPE_PTR, 0, 0 },
+ { "Tal16float", TYPE_FLOAT, 0, 0 },
+ { "Tal16double", TYPE_FLOAT, 0, 0 },
+ { "Tal16ldouble", TYPE_FLOAT, 0, 0 },
+ { "Tal16E0", TYPE_UENUM, 0, ' ' },
+ { "Tal16E1", TYPE_UENUM, 1, ' ' },
+ { "Tal16E2", TYPE_SENUM, 3, ' ' },
+ { "Tal16E3", TYPE_SENUM, 127, ' ' },
+ { "Tal16E4", TYPE_UENUM, 255, ' ' },
+ { "Tal16E5", TYPE_SENUM, 32767, ' ' },
+ { "Tal16E6", TYPE_UENUM, 65535, ' ' },
+ { "Tal16E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Tal16E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Tal16E9", TYPE_SENUM, 1099511627775LL, ' ' }
+ #define NATYPES2 (sizeof (attrib_types) / sizeof (attrib_types[0]))
+ };
+ 
+ struct types bitfld_types[NTYPES2];
+ int n_bitfld_types;
+ struct types aligned_bitfld_types[NATYPES2];
+ int n_aligned_bitfld_types;
+ 
+ const char *attributes[] = {
+ "atal", 
+ "atpa", 
+ "atal1", 
+ "atal2", 
+ "atal4", 
+ "atal8", 
+ "atal16", 
+ #define NATTRIBS1 7
+ "atalpa", 
+ "atpaal", 
+ "atal1pa", 
+ "atal2pa", 
+ "atal4pa", 
+ "atal8pa", 
+ "atal16pa", 
+ "atpaal1", 
+ "atpaal2", 
+ "atpaal4", 
+ "atpaal8", 
+ "atpaal16"
+ #define NATTRIBS2 (sizeof (attributes) / sizeof (attributes[0]))
+ };
+ 
+ enum ETYPE
+ {
+   ETYPE_TYPE,
+   ETYPE_ARRAY,
+   ETYPE_BITFLD,
+   ETYPE_STRUCT,
+   ETYPE_UNION,
+   ETYPE_STRUCT_ARRAY,
+   ETYPE_UNION_ARRAY
+ };
+ 
+ struct entry
+ {
+ #ifdef __GNUC__
+   enum ETYPE etype : 8;
+ #else
+   unsigned char etype;
+ #endif
+   unsigned short len;
+   unsigned char arr_len;
+   struct types *type;
+   const char *attrib;
+   /* Used to chain together entries in the hash table.  */
+   struct entry *next;
+ };
+ struct types attrib_array_types[] = {
+ { "Talx1char", TYPE_UINT, 127, 'C' },
+ { "Talx1schar", TYPE_INT, 127, 'C' },
+ { "Talx1uchar", TYPE_UINT, 255, 'C' },
+ { "Talx1short", TYPE_INT, 32767, 'S' },
+ { "Talx1ushort", TYPE_UINT, 65535, 'S' },
+ { "Talx1int", TYPE_INT, 2147483647, 'I' },
+ { "Talx1uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Talx1long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Talx1ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Talx1llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Talx1ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Talx1bool", TYPE_UINT, 1, 'B' },
+ { "Talx1ptr", TYPE_PTR, 0, 0 },
+ { "Talx1cptr", TYPE_PTR, 0, 0 },
+ { "Talx1iptr", TYPE_PTR, 0, 0 },
+ { "Talx1float", TYPE_FLOAT, 0, 0 },
+ { "Talx1double", TYPE_FLOAT, 0, 0 },
+ { "Talx1ldouble", TYPE_FLOAT, 0, 0 },
+ { "Talx1E0", TYPE_UENUM, 0, ' ' },
+ { "Talx1E1", TYPE_UENUM, 1, ' ' },
+ { "Talx1E2", TYPE_SENUM, 3, ' ' },
+ { "Talx1E3", TYPE_SENUM, 127, ' ' },
+ { "Talx1E4", TYPE_UENUM, 255, ' ' },
+ { "Talx1E5", TYPE_SENUM, 32767, ' ' },
+ { "Talx1E6", TYPE_UENUM, 65535, ' ' },
+ { "Talx1E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Talx1E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Talx1E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Talx2short", TYPE_INT, 32767, 'S' },
+ { "Talx2ushort", TYPE_UINT, 65535, 'S' },
+ { "Talx2int", TYPE_INT, 2147483647, 'I' },
+ { "Talx2uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Talx2long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Talx2ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Talx2llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Talx2ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Talx2ptr", TYPE_PTR, 0, 0 },
+ { "Talx2cptr", TYPE_PTR, 0, 0 },
+ { "Talx2iptr", TYPE_PTR, 0, 0 },
+ { "Talx2float", TYPE_FLOAT, 0, 0 },
+ { "Talx2double", TYPE_FLOAT, 0, 0 },
+ { "Talx2ldouble", TYPE_FLOAT, 0, 0 },
+ { "Talx2E0", TYPE_UENUM, 0, ' ' },
+ { "Talx2E1", TYPE_UENUM, 1, ' ' },
+ { "Talx2E2", TYPE_SENUM, 3, ' ' },
+ { "Talx2E3", TYPE_SENUM, 127, ' ' },
+ { "Talx2E4", TYPE_UENUM, 255, ' ' },
+ { "Talx2E5", TYPE_SENUM, 32767, ' ' },
+ { "Talx2E6", TYPE_UENUM, 65535, ' ' },
+ { "Talx2E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Talx2E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Talx2E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Talx4int", TYPE_INT, 2147483647, 'I' },
+ { "Talx4uint", TYPE_UINT, 4294967295U, 'I' },
+ { "Talx4long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Talx4ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Talx4llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Talx4ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Talx4ptr", TYPE_PTR, 0, 0 },
+ { "Talx4cptr", TYPE_PTR, 0, 0 },
+ { "Talx4iptr", TYPE_PTR, 0, 0 },
+ { "Talx4float", TYPE_FLOAT, 0, 0 },
+ { "Talx4double", TYPE_FLOAT, 0, 0 },
+ { "Talx4ldouble", TYPE_FLOAT, 0, 0 },
+ { "Talx4E0", TYPE_UENUM, 0, ' ' },
+ { "Talx4E1", TYPE_UENUM, 1, ' ' },
+ { "Talx4E2", TYPE_SENUM, 3, ' ' },
+ { "Talx4E3", TYPE_SENUM, 127, ' ' },
+ { "Talx4E4", TYPE_UENUM, 255, ' ' },
+ { "Talx4E5", TYPE_SENUM, 32767, ' ' },
+ { "Talx4E6", TYPE_UENUM, 65535, ' ' },
+ { "Talx4E7", TYPE_SENUM, 2147483647, ' ' },
+ { "Talx4E8", TYPE_UENUM, 4294967295U, ' ' },
+ { "Talx4E9", TYPE_SENUM, 1099511627775LL, ' ' },
+ { "Taly8long", TYPE_INT, 9223372036854775807LL, 'L' },
+ { "Taly8ulong", TYPE_UINT, 18446744073709551615ULL, 'L' },
+ { "Talx8llong", TYPE_INT, 9223372036854775807LL, 'Q' },
+ { "Talx8ullong", TYPE_UINT, 18446744073709551615ULL, 'Q' },
+ { "Taly8ptr", TYPE_PTR, 0, 0 },
+ { "Taly8cptr", TYPE_PTR, 0, 0 },
+ { "Taly8iptr", TYPE_PTR, 0, 0 },
+ { "Talx8double", TYPE_FLOAT, 0, 0 },
+ { "Talx8ldouble", TYPE_FLOAT, 0, 0 }
+ #define NAATYPES2 (sizeof (attrib_array_types) / sizeof (attrib_array_types[0]))
+ };
+ 
+ /* A prime number giving the number of slots in the hash table.  */
+ #define HASH_SIZE 32749
+ static struct entry *hash_table[HASH_SIZE];
+ 
+ static int idx, limidx, output_one, short_enums;
+ static const char *destdir;
+ static const char *srcdir;
+ FILE *outfile;
+ 
+ void
+ switchfiles (int fields)
+ {
+   static int filecnt;
+   static char *destbuf, *destptr;
+   ++filecnt;
+   if (outfile)
+     fclose (outfile);
+   if (output_one)
+     {
+       outfile = stdout;
+       return;
+     }
+   if (destbuf == NULL)
+     {
+       size_t len = strlen (destdir);
+       destbuf = malloc (len + 20);
+       if (!destbuf)
+ 	abort ();
+       memcpy (destbuf, destdir, len);
+       if (!len || destbuf[len - 1] != '/')
+ 	destbuf[len++] = '/';
+       destptr = destbuf + len;
+     }
+   sprintf (destptr, "t%03d_main.C", filecnt);
+   outfile = fopen (destbuf, "w");
+   if (outfile == NULL)
+     {
+     fail:
+       fputs ("failed to create test files\n", stderr);
+       exit (1);
+     }
+   fprintf (outfile, "\
+ /* { dg-options \"-I%s\" } */\n\
+ /* { dg-options \"-I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
+ /* { dg-options \"-I%s -mno-base-addresses\" { target mmix-*-* } } */\n\
+ #include \"struct-layout-1.h\"\n\
+ \n\
+ #define TX(n, type, attrs, fields, ops) extern void test##n (void);\n\
+ #include \"t%03d_test.h\"\n\
+ #undef TX\n\
+ \n\
+ int main (void)\n\
+ {\n\
+ #define TX(n, type, attrs, fields, ops)   test##n ();\n\
+ #include \"t%03d_test.h\"\n\
+ #undef TX\n\
+   if (fails)\n\
+     {\n\
+       fflush (stdout);\n\
+       abort ();\n\
+     }\n\
+   exit (0);\n\
+ }\n", srcdir, srcdir, srcdir, filecnt, filecnt);
+   fclose (outfile);
+   sprintf (destptr, "t%03d_x.C", filecnt);
+   outfile = fopen (destbuf, "w");
+   if (outfile == NULL)
+     goto fail;
+   fprintf (outfile, "\
+ /* { dg-options \"-w -I%s\" } */\n\
+ /* { dg-options \"-w -I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
+ /* { dg-options \"-w -I%s -mno-base-addresses\" { target mmix-*-* } } */\n\
+ #include \"struct-layout-1_x1.h\"\n\
+ #include \"t%03d_test.h\"\n\
+ #include \"struct-layout-1_x2.h\"\n\
+ #include \"t%03d_test.h\"\n", srcdir, srcdir, srcdir, filecnt, filecnt);
+   fclose (outfile);
+   sprintf (destptr, "t%03d_y.C", filecnt);
+   outfile = fopen (destbuf, "w");
+   if (outfile == NULL)
+     goto fail;
+   fprintf (outfile, "\
+ /* { dg-options \"-w -I%s\" } */\n\
+ /* { dg-options \"-w -I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
+ /* { dg-options \"-w -I%s -mno-base-addresses\" { target mmix-*-* } } */\n\
+ #include \"struct-layout-1_y1.h\"\n\
+ #include \"t%03d_test.h\"\n\
+ #include \"struct-layout-1_y2.h\"\n\
+ #include \"t%03d_test.h\"\n", srcdir, srcdir, srcdir, filecnt, filecnt);
+   fclose (outfile);
+   sprintf (destptr, "t%03d_test.h", filecnt);
+   outfile = fopen (destbuf, "w");
+   if (outfile == NULL)
+     goto fail;
+   if (fields <= 2)
+     limidx = idx + 300;
+   else if (fields <= 4)
+     limidx = idx + 200;
+   else if (fields <= 6)
+     limidx = idx + 100;
+   else
+     limidx = idx + 50;
+ }
+ 
+ unsigned long long int
+ getrandll (void)
+ {
+   unsigned long long int ret;
+   ret = generate_random () & 0xffffff;
+   ret |= (generate_random () & 0xffffffLL) << 24;
+   ret |= ((unsigned long long int) generate_random ()) << 48;
+   return ret;
+ }
+ 
+ int
+ subfield (struct entry *e, char *letter)
+ {
+   int i, type;
+   char buf[20];
+   const char *p;
+   switch (e[0].etype)
+     {
+     case ETYPE_STRUCT:
+     case ETYPE_UNION:
+     case ETYPE_STRUCT_ARRAY:
+     case ETYPE_UNION_ARRAY:
+       type = e[0].attrib ? 1 + (generate_random () & 3) : 0;
+       if (e[0].etype == ETYPE_STRUCT || e[0].etype == ETYPE_STRUCT_ARRAY)
+ 	p = "struct";
+       else
+ 	p = "union";
+       if (e[0].etype == ETYPE_STRUCT_ARRAY || e[0].etype == ETYPE_UNION_ARRAY)
+ 	{
+ 	  if (e[0].arr_len == 255)
+ 	    snprintf (buf, 20, "%c[]", *letter);
+ 	  else
+ 	    snprintf (buf, 20, "%c[%d]", *letter, e[0].arr_len);
+ 	  /* If this is an array type, do not put aligned attributes on
+ 	     elements.  Aligning elements to a value greater than their
+ 	     size will result in a compiler error.  */
+ 	  if (type == 1
+ 	      && ((strncmp (e[0].attrib, "atal", 4) == 0)
+ 		   || strncmp (e[0].attrib, "atpaal", 6) == 0))
+ 	    type = 2;
+ 	}
+       else
+ 	{
+ 	  buf[0] = *letter;
+ 	  buf[1] = '\0';
+ 	}
+       ++*letter;
+       switch (type)
+ 	{
+ 	case 0:
+ 	case 3:
+ 	case 4:
+ 	  fprintf (outfile, "%s{", p);
+ 	  break;
+ 	case 1:
+ 	  fprintf (outfile, "%s %s{", e[0].attrib, p);
+ 	  break;
+ 	case 2:
+ 	  fprintf (outfile, "%s %s{", p, e[0].attrib);
+ 	  break;
+ 	}
+ 
+       for (i = 1; i <= e[0].len; )
+ 	i += subfield (e + i, letter);
+ 
+       switch (type)
+ 	{
+ 	case 0:
+ 	case 1:
+ 	case 2:
+ 	  fprintf (outfile, "}%s;", buf);
+ 	  break;
+ 	case 3:
+ 	  fprintf (outfile, "}%s %s;", e[0].attrib, buf);
+ 	  break;
+ 	case 4:
+ 	  fprintf (outfile, "}%s %s;", buf, e[0].attrib);
+ 	  break;
+ 	}
+       return 1 + e[0].len;
+     case ETYPE_TYPE:
+     case ETYPE_ARRAY:
+       if (e[0].etype == ETYPE_ARRAY)
+ 	{
+ 	  if (e[0].arr_len == 255)
+ 	    snprintf (buf, 20, "%c[]", *letter);
+ 	  else
+ 	    snprintf (buf, 20, "%c[%d]", *letter, e[0].arr_len);
+ 	}
+       else
+ 	{
+ 	  buf[0] = *letter;
+ 	  buf[1] = '\0';
+ 	}
+       ++*letter;
+       if (e[0].attrib)
+ 	{
+ 	  /* If this is an array type, do not put aligned attributes on
+ 	     elements.  Aligning elements to a value greater than their
+ 	     size will result in a compiler error.  */
+ 	  if (e[0].etype == ETYPE_ARRAY
+ 	      && ((strncmp (e[0].attrib, "atal", 4) == 0)
+ 		   || strncmp (e[0].attrib, "atpaal", 6) == 0))
+ 	    type = 2;
+ 	  else
+ 	    type = generate_random () % 3;
+ 	  switch (type)
+ 	    {
+ 	    case 0:
+ 	      fprintf (outfile, "%s %s %s;", e[0].attrib, e[0].type->name,
+ 		       buf);
+ 	      break;
+ 	    case 1:
+ 	      fprintf (outfile, "%s %s %s;", e[0].type->name, e[0].attrib,
+ 		       buf);
+ 	      break;
+ 	    case 2:
+ 	      fprintf (outfile, "%s %s %s;", e[0].type->name, buf,
+ 		       e[0].attrib);
+ 	      break;
+ 	    }
+ 	}
+       else
+ 	fprintf (outfile, "%s %s;", e[0].type->name, buf);
+       return 1;
+     case ETYPE_BITFLD:
+       if (e[0].len == 0)
+ 	{
+ 	  if (e[0].attrib)
+ 	    switch (generate_random () % 3)
+ 	      {
+ 	      case 0:
+ 		fprintf (outfile, "%s %s:0;", e[0].attrib, e[0].type->name);
+ 		break;
+ 	      case 1:
+ 		fprintf (outfile, "%s %s:0;", e[0].type->name, e[0].attrib);
+ 		break;
+ 	      case 2:
+ 		fprintf (outfile, "%s:0 %s;", e[0].type->name, e[0].attrib);
+ 		break;
+ 	      }
+ 	  else
+ 	    fprintf (outfile, "%s:0;", e[0].type->name);
+ 	  ++*letter;
+ 	  return 1;
+ 	}
+       snprintf (buf, 20, "%d", e[0].len);
+       if (e[0].attrib)
+ 	switch (generate_random () % 3)
+ 	  {
+ 	  case 0:
+ 	    fprintf (outfile, "%s %s %c:%s;", e[0].attrib, e[0].type->name,
+ 		     *letter, buf);
+ 	    break;
+ 	  case 1:
+ 	    fprintf (outfile, "%s %s %c:%s;", e[0].type->name, e[0].attrib,
+ 		     *letter, buf);
+ 	    break;
+ 	  case 2:
+ 	    fprintf (outfile, "%s %c:%s %s;", e[0].type->name, *letter,
+ 		     buf, e[0].attrib);
+ 	    break;
+ 	  }
+       else
+ 	fprintf (outfile, "%s %c:%s;", e[0].type->name, *letter, buf);
+       ++*letter;
+       return 1;
+     default:
+       abort ();
+   }
+ }
+ 
+ char namebuf[1024];
+ 
+ void
+ output_FNB (char mode, struct entry *e)
+ {
+   unsigned long long int l1, l2, m;
+   int signs = 0;
+   const char *p, *q;
+ 
+   if (e->type->type == TYPE_OTHER)
+     {
+       if (mode == 'B')
+ 	abort ();
+       fprintf (outfile, "N(%d,%s)", idx, namebuf);
+       return;
+     }
+   fprintf (outfile, "%c(%d,%s,", mode, idx, namebuf);
+   l1 = getrandll ();
+   l2 = getrandll ();
+   switch (e->type->type)
+     {
+     case TYPE_INT:
+       signs = generate_random () & 3;
+       m = e->type->maxval;
+       if (mode == 'B')
+ 	m &= e->len > 1 ? (1ULL << (e->len - 1)) - 1 : 1;
+       l1 &= m;
+       l2 &= m;
+       fprintf (outfile, "%s%llu%s,%s%llu%s",
+ 	       (signs & 1) ? "-" : "", l1, l1 > 2147483647 ? "LL" : "",
+ 	       (signs & 2) ? "-" : "", l2, l2 > 2147483647 ? "LL" : "");
+       break;
+     case TYPE_UINT:
+       m = e->type->maxval;
+       if (mode == 'B')
+ 	m &= (1ULL << e->len) - 1;
+       l1 &= m;
+       l2 &= m;
+       fprintf (outfile, "%lluU%s,%lluU%s", l1, l1 > 4294967295U ? "LL" : "",
+ 	       l2, l2 > 4294967295U ? "LL" : "");
+       break;
+     case TYPE_FLOAT:
+       l1 &= 0xffffff;
+       l2 &= 0xffffff;
+       signs = generate_random () & 3;
+       fprintf (outfile, "%s%f,%s%f", (signs & 1) ? "-" : "",
+ 	       ((double) l1) / 64, (signs & 2) ? "-" : "", ((double) l2) / 64);
+       break;
+     case TYPE_UENUM:
+       if (e->type->maxval == 0)
+ 	fputs ("e0_0,e0_0", outfile);
+       else if (e->type->maxval == 1)
+ 	fprintf (outfile, "e1_%lld,e1_%lld", l1 & 1, l2 & 1);
+       else
+ 	{
+ 	  p = strchr (e->type->name, '\0');
+ 	  while (--p >= e->type->name && *p >= '0' && *p <= '9');
+ 	  p++;
+ 	  l1 %= 7;
+ 	  l2 %= 7;
+ 	  if (l1 > 3)
+ 	    l1 += e->type->maxval - 6;
+ 	  if (l2 > 3)
+ 	    l2 += e->type->maxval - 6;
+ 	  fprintf (outfile, "e%s_%lld,e%s_%lld", p, l1, p, l2);
+ 	}
+       break;
+     case TYPE_SENUM:
+       p = strchr (e->type->name, '\0');
+       while (--p >= e->type->name && *p >= '0' && *p <= '9');
+       p++;
+       l1 %= 7;
+       l2 %= 7;
+       fprintf (outfile, "e%s_%s%lld,e%s_%s%lld",
+ 	       p, l1 < 3 ? "m" : "",
+ 	       l1 == 3 ? 0LL : e->type->maxval - (l1 & 3),
+ 	       p, l2 < 3 ? "m" : "",
+ 	       l2 == 3 ? 0LL : e->type->maxval - (l2 & 3));
+       break;
+     case TYPE_PTR:
+       l1 %= 256;
+       l2 %= 256;
+       fprintf (outfile, "(%s)&intarray[%lld],(%s)&intarray[%lld]",
+ 	       e->type->name, l1, e->type->name, l2);
+       break;
+     case TYPE_FNPTR:
+       l1 %= 10;
+       l2 %= 10;
+       fprintf (outfile, "fn%lld,fn%lld", l1, l2);
+       break;
+     default:
+       abort ();
+     }
+   fputs (")", outfile);
+ }
+ 
+ int
+ subvalues (struct entry *e, char *p, char *letter)
+ {
+   int i, j;
+   char *q;
+   if (p >= namebuf + sizeof (namebuf) - 32)
+     abort ();
+   p[0] = *letter;
+   p[1] = '\0';
+   q = p + 1;
+   switch (e[0].etype)
+     {
+     case ETYPE_STRUCT_ARRAY:
+     case ETYPE_UNION_ARRAY:
+       if (e[0].arr_len == 0 || e[0].arr_len == 255)
+ 	{
+ 	  *letter += 1 + e[0].len;
+ 	  return 1 + e[0].len;
+ 	}
+       i = generate_random () % e[0].arr_len;
+       snprintf (p, sizeof (namebuf) - (p - namebuf) - 1,
+ 		"%c[%d]", *letter, i);
+       q = strchr (p, '\0');
+       /* FALLTHROUGH */
+     case ETYPE_STRUCT:
+     case ETYPE_UNION:
+       *q++ = '.';
+       ++*letter;
+       for (i = 1; i <= e[0].len; )
+ 	{
+ 	  i += subvalues (e + i, q, letter);
+ 	  if (e[0].etype == ETYPE_UNION || e[0].etype == ETYPE_UNION_ARRAY)
+ 	    {
+ 	      *letter += e[0].len - i + 1;
+ 	      break;
+ 	    }
+ 	}
+       return 1 + e[0].len;
+     case ETYPE_TYPE:
+       ++*letter;
+       output_FNB ('F', e);
+       return 1;
+     case ETYPE_ARRAY:
+       if (e[0].arr_len == 0 || e[0].arr_len == 255)
+ 	{
+ 	  ++*letter;
+ 	  return 1;
+ 	}
+       i = generate_random () % e[0].arr_len;
+       snprintf (p, sizeof (namebuf) - (p - namebuf),
+ 		"%c[%d]", *letter, i);
+       output_FNB ('F', e);
+       if ((generate_random () & 7) == 0)
+ 	{
+ 	  j = generate_random () % e[0].arr_len;
+ 	  if (i != j)
+ 	    {
+ 	      snprintf (p, sizeof (namebuf) - (p - namebuf),
+ 			"%c[%d]", *letter, j);
+ 	      output_FNB ('F', e);
+ 	    }
+ 	}
+       ++*letter;
+       return 1;
+     case ETYPE_BITFLD:
+       ++*letter;
+       if (e[0].len != 0)
+ 	output_FNB ('B', e);
+       return 1;
+     }
+ }
+ 
+ /* DERIVED FROM:
+ --------------------------------------------------------------------
+ lookup2.c, by Bob Jenkins, December 1996, Public Domain.
+ hash(), hash2(), hash3, and mix() are externally useful functions.
+ Routines to test the hash are included if SELF_TEST is defined.
+ You can use this free for any purpose.  It has no warranty.
+ --------------------------------------------------------------------
+ */
+ 
+ /*
+ --------------------------------------------------------------------
+ mix -- mix 3 32-bit values reversibly.
+ For every delta with one or two bit set, and the deltas of all three
+   high bits or all three low bits, whether the original value of a,b,c
+   is almost all zero or is uniformly distributed,
+ * If mix() is run forward or backward, at least 32 bits in a,b,c
+   have at least 1/4 probability of changing.
+ * If mix() is run forward, every bit of c will change between 1/3 and
+   2/3 of the time.  (Well, 22/100 and 78/100 for some 2-bit deltas.)
+ mix() was built out of 36 single-cycle latency instructions in a 
+   structure that could supported 2x parallelism, like so:
+       a -= b; 
+       a -= c; x = (c>>13);
+       b -= c; a ^= x;
+       b -= a; x = (a<<8);
+       c -= a; b ^= x;
+       c -= b; x = (b>>13);
+       ...
+   Unfortunately, superscalar Pentiums and Sparcs can't take advantage 
+   of that parallelism.  They've also turned some of those single-cycle
+   latency instructions into multi-cycle latency instructions.  Still,
+   this is the fastest good hash I could find.  There were about 2^^68
+   to choose from.  I only looked at a billion or so.
+ --------------------------------------------------------------------
+ */
+ /* same, but slower, works on systems that might have 8 byte hashval_t's */
+ #define mix(a,b,c) \
+ { \
+   a -= b; a -= c; a ^= (c>>13); \
+   b -= c; b -= a; b ^= (a<< 8); \
+   c -= a; c -= b; c ^= ((b&0xffffffff)>>13); \
+   a -= b; a -= c; a ^= ((c&0xffffffff)>>12); \
+   b -= c; b -= a; b = (b ^ (a<<16)) & 0xffffffff; \
+   c -= a; c -= b; c = (c ^ (b>> 5)) & 0xffffffff; \
+   a -= b; a -= c; a = (a ^ (c>> 3)) & 0xffffffff; \
+   b -= c; b -= a; b = (b ^ (a<<10)) & 0xffffffff; \
+   c -= a; c -= b; c = (c ^ (b>>15)) & 0xffffffff; \
+ }
+ 
+ /*
+ --------------------------------------------------------------------
+ hash() -- hash a variable-length key into a 32-bit value
+   k     : the key (the unaligned variable-length array of bytes)
+   len   : the length of the key, counting by bytes
+   level : can be any 4-byte value
+ Returns a 32-bit value.  Every bit of the key affects every bit of
+ the return value.  Every 1-bit and 2-bit delta achieves avalanche.
+ About 36+6len instructions.
+ 
+ The best hash table sizes are powers of 2.  There is no need to do
+ mod a prime (mod is sooo slow!).  If you need less than 32 bits,
+ use a bitmask.  For example, if you need only 10 bits, do
+   h = (h & hashmask(10));
+ In which case, the hash table should have hashsize(10) elements.
+ 
+ If you are hashing n strings (ub1 **)k, do it like this:
+   for (i=0, h=0; i<n; ++i) h = hash( k[i], len[i], h);
+ 
+ By Bob Jenkins, 1996.  bob_jenkins@burtleburtle.net.  You may use this
+ code any way you wish, private, educational, or commercial.  It's free.
+ 
+ See http://burtleburtle.net/bob/hash/evahash.html
+ Use for hash table lookup, or anything where one collision in 2^32 is
+ acceptable.  Do NOT use for cryptographic purposes.
+ --------------------------------------------------------------------
+ */
+ 
+ static hashval_t
+ iterative_hash (const void *k_in /* the key */,
+ 		register size_t  length /* the length of the key */,
+ 		register hashval_t initval /* the previous hash, or
+ 					      an arbitrary value */)
+ {
+   register const unsigned char *k = (const unsigned char *)k_in;
+   register hashval_t a,b,c,len;
+ 
+   /* Set up the internal state */
+   len = length;
+   a = b = 0x9e3779b9;  /* the golden ratio; an arbitrary value */
+   c = initval;	   /* the previous hash value */
+ 
+   /*---------------------------------------- handle most of the key */
+     while (len >= 12)
+       {
+ 	a += (k[0] +((hashval_t)k[1]<<8) +((hashval_t)k[2]<<16) +((hashval_t)k[3]<<24));
+ 	b += (k[4] +((hashval_t)k[5]<<8) +((hashval_t)k[6]<<16) +((hashval_t)k[7]<<24));
+ 	c += (k[8] +((hashval_t)k[9]<<8) +((hashval_t)k[10]<<16)+((hashval_t)k[11]<<24));
+ 	mix(a,b,c);
+ 	k += 12; len -= 12;
+       }
+ 
+   /*------------------------------------- handle the last 11 bytes */
+   c += length;
+   switch(len)	      /* all the case statements fall through */
+     {
+     case 11: c+=((hashval_t)k[10]<<24);
+     case 10: c+=((hashval_t)k[9]<<16);
+     case 9 : c+=((hashval_t)k[8]<<8);
+       /* the first byte of c is reserved for the length */
+     case 8 : b+=((hashval_t)k[7]<<24);
+     case 7 : b+=((hashval_t)k[6]<<16);
+     case 6 : b+=((hashval_t)k[5]<<8);
+     case 5 : b+=k[4];
+     case 4 : a+=((hashval_t)k[3]<<24);
+     case 3 : a+=((hashval_t)k[2]<<16);
+     case 2 : a+=((hashval_t)k[1]<<8);
+     case 1 : a+=k[0];
+       /* case 0: nothing left to add */
+     }
+   mix(a,b,c);
+   /*-------------------------------------------- report the result */
+   return c;
+ }
+ 
+ hashval_t
+ e_hash (const void *a)
+ {
+   const struct entry *e = a;
+   hashval_t ret = 0;
+   int i;
+ 
+   if (e[0].etype != ETYPE_STRUCT && e[0].etype != ETYPE_UNION)
+     abort ();
+   for (i = 0; i <= e[0].len; ++i)
+     {
+       int attriblen;
+       ret = iterative_hash (&e[i], offsetof (struct entry, attrib), ret);
+       attriblen = e[i].attrib ? strlen (e[i].attrib) : -1;
+       ret = iterative_hash (&attriblen, sizeof (int), ret);
+       if (e[i].attrib)
+ 	ret = iterative_hash (e[i].attrib, attriblen, ret);
+     }
+   return ret;
+ }
+ 
+ int
+ e_eq (const void *a, const void *b)
+ {
+   const struct entry *ea = a, *eb = b;
+   int i;
+   if (ea[0].etype != ETYPE_STRUCT && ea[0].etype != ETYPE_UNION)
+     abort ();
+   if (ea[0].len != eb[0].len)
+     return 0;
+   for (i = 0; i <= ea[0].len; ++i)
+     {
+       if (ea[i].etype != eb[i].etype
+ 	  || ea[i].len != eb[i].len
+ 	  || ea[i].arr_len != eb[i].arr_len
+ 	  || ea[i].type != eb[i].type)
+ 	return 0;
+       if ((ea[i].attrib == NULL) ^ (eb[i].attrib == NULL))
+ 	return 0;
+       if (ea[i].attrib && strcmp (ea[i].attrib, eb[i].attrib) != 0)
+ 	return 0;
+     }
+   return 1;
+ }
+ 
+ static int 
+ e_exists (const struct entry *e) 
+ {
+   struct entry *h;
+   hashval_t hval;
+ 
+   hval = e_hash (e);
+   for (h = hash_table[hval % HASH_SIZE]; h; h = h->next)
+     if (e_eq (e, h))
+       return 1;
+   return 0;
+ }
+ 
+ static void
+ e_insert (struct entry *e)
+ {
+   hashval_t hval;
+ 
+   hval = e_hash (e);
+   e->next = hash_table[hval % HASH_SIZE];
+   hash_table[hval % HASH_SIZE] = e;
+ }
+ 
+ void
+ output (struct entry *e)
+ {
+   int i;
+   char c;
+   struct entry *n;
+ 
+   if (e[0].etype != ETYPE_STRUCT && e[0].etype != ETYPE_UNION)
+     abort ();
+ 
+   if (e_exists (e))
+     return;
+ 
+   n = (struct entry *) malloc ((e[0].len + 1) * sizeof (struct entry));
+   memcpy (n, e, (e[0].len + 1) * sizeof (struct entry));
+   e_insert (n);
+ 
+   if (idx == limidx)
+     switchfiles (e[0].len);
+ 
+   if (e[0].etype == ETYPE_STRUCT)
+     fprintf (outfile, "T(%d,", idx);
+   else
+     fprintf (outfile, "U(%d,", idx);
+   c = 'a';
+   for (i = 1; i <= e[0].len; )
+     i += subfield (e + i, &c);
+   fputs (",", outfile);
+   c = 'a';
+   for (i = 1; i <= e[0].len; )
+     {
+       i += subvalues (e + i, namebuf, &c);
+       if (e[0].etype == ETYPE_UNION)
+ 	break;
+     }
+   fputs (")\n", outfile);
+   if (output_one && idx == limidx)
+     exit (0);
+   ++idx;
+ }
+ 
+ enum FEATURE
+ {
+   FEATURE_VECTOR = 1,
+   FEATURE_ALIGNEDPACKED = 2,
+   FEATURE_ZEROARRAY = 4,
+   FEATURE_ZEROBITFLD = 8,
+   ALL_FEATURES = FEATURE_VECTOR | FEATURE_ZEROARRAY
+ 		 | FEATURE_ALIGNEDPACKED | FEATURE_ZEROBITFLD
+ };
+ 
+ void
+ singles (enum FEATURE features)
+ {
+   struct entry e[2];
+   int i;
+   memset (e, 0, sizeof (e));
+   e[0].etype = ETYPE_STRUCT;
+   output (e);
+   e[0].etype = ETYPE_UNION;
+   output (e);
+   e[0].len = 1;
+   for (i = 0; i < NTYPES2; ++i)
+     {
+       e[0].etype = ETYPE_STRUCT;
+       e[1].etype = ETYPE_TYPE;
+       e[1].type = &base_types[i];
+       output (e);
+       e[0].etype = ETYPE_UNION;
+       output (e);
+     }
+   if (features & FEATURE_VECTOR)
+     for (i = 0; i < NVTYPES2; ++i)
+       {
+ 	e[0].etype = ETYPE_STRUCT;
+ 	e[1].etype = ETYPE_TYPE;
+ 	e[1].type = &vector_types[i];
+ 	output (e);
+ 	e[0].etype = ETYPE_UNION;
+ 	output (e);
+       }
+ }
+ 
+ void
+ choose_type (enum FEATURE features, struct entry *e, int r, int in_array)
+ {
+   int i;
+ 
+   i = NTYPES2 - NTYPES1;
+   if (features & FEATURE_VECTOR)
+     i += NVTYPES2;
+   if ((r & 3) == 0)
+     {
+       if (in_array)
+ 	i += NAATYPES2;
+       else
+ 	i += NATYPES2;
+     }
+   r >>= 2;
+   r %= i;
+   if (r < NTYPES2 - NTYPES1)
+     e->type = &base_types[r + NTYPES1];
+   r -= NTYPES2 - NTYPES1;
+   if (e->type == NULL && (features & FEATURE_VECTOR))
+     {
+       if (r < NVTYPES2)
+ 	e->type = &vector_types[r];
+       r -= NVTYPES2;
+     }
+   if (e->type == NULL && !in_array)
+     {
+       if (r < NATYPES2)
+ 	e->type = &attrib_types[r];
+       r -= NATYPES2;
+     }
+   if (e->type == NULL && in_array)
+     {
+       if (r < NAATYPES2)
+ 	e->type = &attrib_array_types[r];
+       r -= NAATYPES2;
+     }
+   if (e->type == NULL)
+     abort ();
+ }
+ 
+ /* This is from gcc.c-torture/execute/builtin-bitops-1.c.  */
+ static int
+ my_ffsll (unsigned long long x)
+ {
+   int i;
+   if (x == 0)
+     return 0;
+   /* We've tested LLONG_MAX for 64 bits so this should be safe.  */
+   for (i = 0; i < 64; i++)
+     if (x & (1ULL << i))
+       break;
+   return i + 1;
+ }
+ 
+ void
+ generate_fields (enum FEATURE features, struct entry *e, struct entry *parent,
+ 		 int len)
+ {
+   int r, i, j, ret = 1, n, incr, sametype;
+ 
+   for (n = 0; n < len; n += incr)
+     {
+       r = generate_random ();
+       /* 50% ETYPE_TYPE base_types NTYPES1
+ 	 12.5% ETYPE_TYPE other
+ 	 12.5% ETYPE_ARRAY
+ 	 12.5% ETYPE_BITFLD
+ 	 12.5% ETYPE_STRUCT|ETYPE_UNION|ETYPE_STRUCT_ARRAY|ETYPE_UNION_ARRAY */
+       i = (r & 7);
+       r >>= 3;
+       incr = 1;
+       switch (i)
+ 	{
+ 	case 0:
+ 	case 1:
+ 	case 2:
+ 	case 3:
+ 	  e[n].etype = ETYPE_TYPE;
+ 	  e[n].type = &base_types[r % NTYPES1];
+ 	  break;
+ 	case 4:
+ 	  e[n].etype = ETYPE_TYPE;
+ 	  choose_type (features, &e[n], r, 0);
+ 	  break;
+ 	case 5:
+ 	  e[n].etype = ETYPE_ARRAY;
+ 	  i = r & 1;
+ 	  r >>= 1;
+ 	  if (i)
+ 	    e[n].type = &base_types[r % NTYPES1];
+ 	  else
+ 	    choose_type (features, &e[n], r, 1);
+ 	  r = generate_random ();
+ 	  if ((features & FEATURE_ZEROARRAY) && (r & 3) == 0)
+ 	    {
+ 	      e[n].arr_len = 0;
+ 	      if (n == len - 1 && (r & 4)
+ 		  && (parent->etype == ETYPE_STRUCT
+ 		      || parent->etype == ETYPE_STRUCT_ARRAY))
+ 		{
+ 		  int k;
+ 		  for (k = 0; k < n; ++k)
+ 		    if (e[k].etype != ETYPE_BITFLD || e[k].len)
+ 		      {
+ 			e[n].arr_len = 255;
+ 			break;
+ 		      }
+ 		}
+ 	    }
+ 	  else if ((r & 3) != 3)
+ 	    e[n].arr_len = (r >> 2) & 7;
+ 	  else
+ 	    e[n].arr_len = (r >> 2) & 31;
+ 	  break;
+ 	case 6:
+ 	  sametype = 1;
+ 	  switch (r & 7)
+ 	    {
+ 	    case 0:
+ 	    case 1:
+ 	    case 2:
+ 	      break;
+ 	    case 3:
+ 	    case 4:
+ 	    case 5:
+ 	      incr = 1 + (r >> 3) % (len - n);
+ 	      break;
+ 	    case 6:
+ 	    case 7:
+ 	      sametype = 0;
+ 	      incr = 1 + (r >> 3) % (len - n);
+ 	      break;
+ 	    }
+ 	  for (j = n; j < n + incr; ++j)
+ 	    {
+ 	      int mi, ma;
+ 
+ 	      e[j].etype = ETYPE_BITFLD;
+ 	      if (j == n || !sametype)
+ 		{
+ 		  int k;
+ 		  r = generate_random ();
+ 		  k = r & 3;
+ 		  r >>= 2;
+ 		  if (!k)
+ 		    e[j].type
+ 		      = &aligned_bitfld_types[r % n_aligned_bitfld_types];
+ 		  else
+ 		    e[j].type
+ 		      = &bitfld_types[r % n_bitfld_types];
+ 		}
+ 	      else
+ 		e[j].type = e[n].type;
+ 	      r = generate_random ();
+ 	      mi = 0;
+ 	      ma = 0;
+ 	      switch (e[j].type->bitfld)
+ 		{
+ 		case 'C': ma = 8; break;
+ 		case 'S': ma = 16; break;
+ 		case 'I': ma = 32; break;
+ 		case 'L':
+ 		case 'Q': ma = 64; break;
+ 		case 'B': ma = 1; break;
+ 		case ' ':
+ 		  if (e[j].type->type == TYPE_UENUM)
+ 		    mi = my_ffsll (e[j].type->maxval + 1) - 1;
+ 		  else if (e[j].type->type == TYPE_SENUM)
+ 		    mi = my_ffsll (e[j].type->maxval + 1);
+ 		  else
+ 		    abort ();
+ 		  if (!mi)
+ 		    mi = 1;
+ 		  if (mi > 32)
+ 		    ma = 64;
+ 		  else if (mi > 16 || !short_enums)
+ 		    ma = 32;
+ 		  else if (mi > 8)
+ 		    ma = 16;
+ 		  else
+ 		    ma = 8;
+ 		  break;
+ 		default:
+ 		  abort ();
+ 		}
+ 	      e[j].len = ma + 1;
+ 	      if (sametype && (r & 3) == 0 && ma > 1)
+ 		{
+ 		  int sum = 0, k;
+ 		  for (k = n; k < j; ++k)
+ 		    sum += e[k].len;
+ 		  sum %= ma;
+ 		  e[j].len = sum ? ma - sum : ma;
+ 		}
+ 	      r >>= 2;
+ 	      if (!sametype && (r & 7) == 0)
+ 		ma *= 8;
+ 	      r >>= 3;
+ 	      if (! (features & FEATURE_ZEROBITFLD) && mi == 0)
+ 		mi = 1;
+ 	      if (e[j].len < mi || e[j].len > ma)
+ 		e[j].len = mi + (r % (ma + 1 - mi));
+ 	      r >>= 6;
+ 	      if ((features & FEATURE_ZEROBITFLD) && (r & 3) == 0
+ 		  && mi == 0)
+ 		e[j].len = 0;
+ 	    }
+ 	  break;
+ 	case 7:
+ 	  switch (r & 7)
+ 	    {
+ 	    case 0:
+ 	    case 1:
+ 	    case 2:
+ 	      e[n].etype = ETYPE_STRUCT;
+ 	      break;
+ 	    case 3:
+ 	    case 4:
+ 	      e[n].etype = ETYPE_UNION;
+ 	      break;
+ 	    case 5:
+ 	    case 6:
+ 	      e[n].etype = ETYPE_STRUCT_ARRAY;
+ 	      break;
+ 	    case 7:
+ 	      e[n].etype = ETYPE_UNION_ARRAY;
+ 	      break;
+ 	    }
+ 	  r >>= 3;
+ 	  e[n].len = r % (len - n);
+ 	  incr = 1 + e[n].len;
+ 	  generate_fields (features, &e[n + 1], &e[n], e[n].len);
+ 	  if (e[n].etype == ETYPE_STRUCT_ARRAY
+ 	      || e[n].etype == ETYPE_UNION_ARRAY)
+ 	    {
+ 	      r = generate_random ();
+ 	      if ((features & FEATURE_ZEROARRAY) && (r & 3) == 0)
+ 		{
+ 		  e[n].arr_len = 0;
+ 		  if (n + incr == len && (r & 4)
+ 		      && (parent->etype == ETYPE_STRUCT
+ 			  || parent->etype == ETYPE_STRUCT_ARRAY))
+ 		    {
+ 		      int k;
+ 		      for (k = 0; k < n; ++k)
+ 			if (e[k].etype != ETYPE_BITFLD || e[k].len)
+ 			  {
+ 			    e[n].arr_len = 255;
+ 			    break;
+ 			  }
+ 		    }
+ 		}
+ 	      else if ((r & 3) != 3)
+ 		e[n].arr_len = (r >> 2) & 7;
+ 	      else
+ 		e[n].arr_len = (r >> 2) & 31;
+ 	    }
+ 	  break;
+ 	}
+       r = generate_random ();
+       if ((r & 7) == 0)
+ 	{
+ 	  r >>= 3;
+ 	  i = (features & FEATURE_ALIGNEDPACKED) ? NATTRIBS2 : NATTRIBS1;
+ 	  e[n].attrib = attributes[r % i];
+ 	  if (! (features & FEATURE_ALIGNEDPACKED)
+ 	      && strcmp (e[n].attrib, "atpa") == 0
+ 	      && ((e[n].type >= &attrib_types[0]
+ 		   && e[n].type < &attrib_types[NATYPES2])
+ 		  || (e[n].type >= &attrib_array_types[0]
+ 		      && e[n].type < &attrib_array_types[NAATYPES2])
+ 		  || (e[n].type >= &aligned_bitfld_types[0]
+ 		      && e[n].type < &aligned_bitfld_types[n_aligned_bitfld_types])))
+ 	    e[n].attrib = NULL;
+ 	}
+     }
+ }
+ 
+ void
+ generate_random_tests (enum FEATURE features, int len)
+ {
+   struct entry e[len + 1];
+   int i, r;
+   if (len > 'z' - 'a' + 1)
+     abort ();
+   memset (e, 0, sizeof (e));
+   r = generate_random ();
+   if ((r & 7) == 0)
+     e[0].etype = ETYPE_UNION;
+   else
+     e[0].etype = ETYPE_STRUCT;
+   r >>= 3;
+   e[0].len = len;
+   generate_fields (features, &e[1], &e[0], len);
+   output (e);
+ }
+ 
+ struct { const char *name; enum FEATURE f; }
+ features[] = {
+ { "normal", 0 },
+ { "vector", FEATURE_VECTOR },
+ { "[0] :0", FEATURE_ZEROARRAY | FEATURE_ZEROBITFLD },
+ { "vector [0]",
+   FEATURE_VECTOR | FEATURE_ZEROARRAY },
+ { "aligned packed vector [0] :0",
+   FEATURE_VECTOR | FEATURE_ZEROARRAY
+   | FEATURE_ALIGNEDPACKED | FEATURE_ZEROBITFLD },
+ };
+ 
+ int
+ main (int argc, char **argv)
+ {
+   int i, j, count, c, n = 3000;
+   char *optarg;
+ 
+   if (sizeof (int) != 4 || sizeof (long long) != 8)
+     return 1;
+   
+   i = 1;
+   while (i < argc) 
+     {
+       c = '\0';
+       if (argv[i][0] == '-' && argv[i][2] == '\0')
+ 	c = argv[i][1];
+       optarg = argv[i + 1];
+       if (!optarg)
+ 	goto usage;
+       switch (c)
+ 	{
+ 	case 'n':
+ 	  n = atoi (optarg);
+ 	  break;
+ 	case 'd':
+ 	  destdir = optarg;
+ 	  break;
+ 	case 's':
+ 	  srcdir = optarg;
+ 	  break;
+ 	case 'i':
+ 	  output_one = 1;
+ 	  limidx = atoi (optarg);
+ 	  break;
+ 	case 'e':
+ 	  short_enums = 1;
+ 	  i--;
+ 	  break;
+ 	default:
+ 	  fprintf (stderr, "unrecognized option %s\n", argv[i]);
+ 	  goto usage;
+       }
+       i += 2;
+     }
+ 
+   if (output_one)
+     {
+       outfile = fopen ("/dev/null", "w");
+       if (outfile == NULL)
+ 	{
+ 	  fputs ("could not open /dev/null", stderr);
+ 	  return 1;
+ 	}
+       n = limidx + 1;
+     }
+ 
+   if (destdir == NULL && !output_one)
+     {
+     usage:
+       fprintf (stderr, "Usage:\n\
+ %s [-e] [-s srcdir -d destdir] [-n count] [-i idx]\n\
+ Either -s srcdir -d destdir or -i idx must be used\n", argv[0]);
+       return 1;
+     }
+ 
+   if (srcdir == NULL && !output_one)
+     goto usage;
+ 
+   for (i = 0; i < NTYPES2; ++i)
+     if (base_types[i].bitfld)
+       bitfld_types[n_bitfld_types++] = base_types[i];
+   for (i = 0; i < NATYPES2; ++i)
+     if (attrib_types[i].bitfld)
+       aligned_bitfld_types[n_aligned_bitfld_types++] = attrib_types[i];
+   for (i = 0; i < sizeof (features) / sizeof (features[0]); ++i)
+     {
+       int startidx = idx;
+       if (! output_one)
+ 	limidx = idx;
+       if (!i)
+ 	count = 200;
+       else
+ 	count = 20;
+       for (j = 1; j <= 9; ++j)
+ 	while (idx < startidx + j * count)
+ 	  generate_random_tests (features[i].f, j);
+       while (idx < startidx + count * 10)
+ 	generate_random_tests (features[i].f, 10 + (generate_random () % 16));
+     }
+   for (i = 0; n > 3000 && i < sizeof (features) / sizeof (features[0]); ++i)
+     {
+       int startidx;
+       startidx = idx;
+       if (! output_one)
+ 	limidx = idx;
+       singles (features[i].f);
+       if (!i)
+ 	{
+ 	  count = 1000;
+ 	  while (idx < startidx + 1000)
+ 	    generate_random_tests (features[i].f, 1);
+ 	}
+       else
+ 	{
+ 	  startidx = idx;
+ 	  count = 100;
+ 	  while (idx < startidx + 100)
+ 	    generate_random_tests (features[i].f, 1);
+ 	}
+       startidx = idx;
+       for (j = 2; j <= 9; ++j)
+ 	while (idx < startidx + (j - 1) * count)
+ 	  generate_random_tests (features[i].f, j);
+       while (idx < startidx + count * 9)
+ 	generate_random_tests (features[i].f, 10 + (generate_random () % 16));
+     }
+   if (! output_one)
+     limidx = idx;
+   while (idx < n)
+     generate_random_tests (ALL_FEATURES, 1 + (generate_random () % 25));
+   fclose (outfile);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_x1.h	Thu Dec  8 21:53:20 2005
***************
*** 0 ****
--- 1,68 ----
+ #include "struct-layout-1.h"
+ 
+ struct Info info;
+ int fails;
+ int intarray[256];
+ int fn0 (void) { return 0; }
+ int fn1 (void) { return 1; }
+ int fn2 (void) { return 2; }
+ int fn3 (void) { return 3; }
+ int fn4 (void) { return 4; }
+ int fn5 (void) { return 5; }
+ int fn6 (void) { return 6; }
+ int fn7 (void) { return 7; }
+ int fn8 (void) { return 8; }
+ int fn9 (void) { return 9; }
+ 
+ /* This macro is intended for fields where their
+    addresses/sizes/alignments and value passing should be checked.  */
+ #define F(n, x, v, w) 						\
+   info.flds[i] = &s##n.x;					\
+   info.sizes[i] = sizeof (s##n.x);				\
+   info.aligns[i] = __alignof__ (s##n.x);			\
+   s##n.x = v;							\
+   a##n[2].x = w;						\
+   ++i;
+ /* This macro is for fields where just their addresses/sizes/alignments
+    should be checked.  */
+ #define N(n, x) 						\
+   info.flds[i] = &s##n.x;					\
+   info.sizes[i] = sizeof (s##n.x);				\
+   info.aligns[i] = __alignof__ (s##n.x);			\
+   ++i;
+ /* This macro is for fields where just value passing should be checked.  */
+ #define B(n, x, v, w)						\
+   s##n.x = v;							\
+   a##n[2].x = w;						\
+   ++j;
+ #define TX(n, type, attrs, fields, ops) 			\
+ type S##n { fields } attrs;					\
+ type S##n s##n;							\
+ extern type S##n a##n[5];					\
+ extern type S##n check##n (type S##n, type S##n *,		\
+ 			     type S##n);			\
+ extern void check##n##va (int i, ...);				\
+ extern void checkx##n (type S##n);				\
+ void test##n (void)						\
+ {								\
+   int i, j;							\
+   memset (&s##n, '\0', sizeof (s##n));				\
+   memset (a##n, '\0', sizeof (a##n));				\
+   memset (&info, '\0', sizeof (info));				\
+   info.sp = &s##n;						\
+   info.a0p = &a##n[0];						\
+   info.a3p = &a##n[3];						\
+   info.sz = sizeof (s##n);					\
+   info.als = __alignof__ (s##n);				\
+   info.ala0 = __alignof__ (a##n[0]);				\
+   info.ala3 = __alignof__ (a##n[3]);				\
+   if (((long) &a##n[3]) & (info.als - 1))			\
+     FAIL (n, 1);						\
+   i = 0; j = 0;							\
+   ops								\
+   info.nfields = i;						\
+   info.nbitfields = j;						\
+   checkx##n (check##n (s##n, &a##n[1], a##n[2]));		\
+   check##n##va (1, 1.0, s##n, 2LL, a##n[2], a##n[2]);		\
+   check##n##va (2, s##n, s##n, 2.0L, a##n[2], s##n);		\
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_x2.h	Thu Dec  8 21:53:20 2005
***************
*** 0 ****
--- 1,14 ----
+ #undef F
+ #undef N
+ #undef B
+ #undef TX
+ #define F(n, x, v, w) 						\
+   if (arg.x != s##n.x) FAIL (n, 30);
+ #define N(n, x)
+ #define B(n, x, v, w)						\
+   if (arg.x != s##n.x) FAIL (n, 30);
+ #define TX(n, type, attrs, fields, ops) 			\
+ void checkx##n (type S##n arg)					\
+ {								\
+   ops								\
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_y1.h	Thu Dec  8 21:53:20 2005
***************
*** 0 ****
--- 1,76 ----
+ #include "struct-layout-1.h"
+ 
+ #define F(n, x, v, w) 						\
+   if (info.flds[i] != &s##n.x)					\
+     FAIL (n, 50);						\
+   if (info.sizes[i] != sizeof (s##n.x))				\
+     FAIL (n, 51);						\
+   if (info.aligns[i] != __alignof__ (s##n.x))			\
+     FAIL (n, 52);						\
+   if (s##n.x != (__typeof__ (s##n.x)) v)			\
+     FAIL (n, 53);						\
+   if (a##n[2].x != (__typeof__ (s##n.x)) w)			\
+     FAIL (n, 54);						\
+   if (arg0.x != s##n.x)						\
+     FAIL (n, 55);						\
+   if (arg2.x != a##n[2].x)					\
+     FAIL (n, 56);						\
+   ret.x = s##n.x;						\
+   ++i;
+ #define N(n, x) 						\
+   if (info.flds[i] != &s##n.x)					\
+     FAIL (n, 50);						\
+   if (info.sizes[i] != sizeof (s##n.x))				\
+     FAIL (n, 51);						\
+   if (info.aligns[i] != __alignof__ (s##n.x))			\
+     FAIL (n, 52);						\
+   ++i;
+ #define B(n, x, v, w) 						\
+   b1.x = v; b2.x = w;						\
+   if (s##n.x != b1.x)						\
+     FAIL (n, 53);						\
+   if (a##n[2].x != b2.x)					\
+     FAIL (n, 54);						\
+   if (arg0.x != s##n.x)						\
+     FAIL (n, 55);						\
+   if (arg2.x != a##n[2].x)					\
+     FAIL (n, 56);						\
+   ret.x = s##n.x;						\
+   ++j;
+ #define TX(n, type, attrs, fields, ops) 			\
+ type S##n { fields } attrs;					\
+ extern type S##n s##n;						\
+ type S##n a##n[5];						\
+ type S##n							\
+ check##n (type S##n arg0, type S##n *arg1, type S##n arg2)	\
+ {								\
+   type S##n ret;						\
+   type S##n b1, b2;						\
+   int i, j;							\
+ 								\
+   memset (&ret, 0, sizeof (ret));				\
+   memset (&b1, 0, sizeof (b1));					\
+   memset (&b2, 0, sizeof (b2));					\
+   if (info.sp != &s##n)						\
+     FAIL (n, 10);						\
+   if (info.a0p != &a##n[0])					\
+     FAIL (n, 11);						\
+   if (info.a3p != &a##n[3])					\
+     FAIL (n, 12);						\
+   if (info.sz != sizeof (s##n))					\
+     FAIL (n, 13);						\
+   if (info.als != __alignof__ (s##n))				\
+     FAIL (n, 14);						\
+   if (info.ala0 != __alignof__ (a##n[0]))			\
+     FAIL (n, 15);						\
+   if (info.ala3 != __alignof__ (a##n[3]))			\
+     FAIL (n, 16);						\
+   if (arg1 != &a##n[1])						\
+     FAIL (n, 17);						\
+   i = 0; j = 0;							\
+   ops								\
+   if (i != info.nfields || j != info.nbitfields)		\
+     FAIL (n, 18);						\
+ 								\
+   return ret;							\
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_y2.h gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_y2.h
*** gcc-4.0.2/gcc/testsuite/g++.dg/compat/struct-layout-1_y2.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/compat/struct-layout-1_y2.h	Thu Dec  8 21:53:20 2005
***************
*** 0 ****
--- 1,69 ----
+ #undef F
+ #undef N
+ #undef B
+ #undef TX
+ 
+ #ifdef SKIP_VA
+ const int test_va = 0;
+ #else
+ const int test_va = 1;
+ #endif
+ 
+ #define F(n, x, v, w) 						\
+   if (p->x != arg.x) FAIL (n, 74);
+ #define N(n, x)
+ #define B(n, x, v, w) 						\
+   if (p->x != arg.x) FAIL (n, 74);
+ #define TX(n, type, attrs, fields, ops) 			\
+ void								\
+ check##n##va (int z, ...)					\
+ {								\
+   type S##n arg, *p;						\
+   va_list ap;							\
+   int i;							\
+ 								\
+   if (test_va)							\
+     {								\
+       va_start (ap, z);						\
+       for (i = 0; i < 5; ++i)					\
+ 	{							\
+ 	  p = NULL;						\
+ 	  switch ((z << 4) | i)					\
+ 	    {							\
+ 	    case 0x10:						\
+ 	      if (va_arg (ap, double) != 1.0)			\
+ 		FAIL (n, 70);					\
+ 	      break;						\
+ 	    case 0x12:						\
+ 	      if (va_arg (ap, long long) != 2LL)		\
+ 		FAIL (n, 71);					\
+ 	      break;						\
+ 	    case 0x22:						\
+ 	      if (va_arg (ap, long double) != 2.0L)		\
+ 		FAIL (n, 72);					\
+ 	      break;						\
+ 	    case 0x11:						\
+ 	    case 0x20:						\
+ 	    case 0x21:						\
+ 	    case 0x24:						\
+ 	      p = &s##n;					\
+ 	      arg = va_arg (ap, type S##n);			\
+ 	      break;						\
+ 	    case 0x13:						\
+ 	    case 0x14:						\
+ 	    case 0x23:						\
+ 	      p = &a##n[2];					\
+ 	      arg = va_arg (ap, type S##n);			\
+ 	      break;						\
+ 	    default:						\
+ 	      FAIL (n, 73);					\
+ 	      break;						\
+ 	    }							\
+ 	  if (p)						\
+ 	    {							\
+ 	      ops						\
+ 	    }							\
+ 	}							\
+       va_end (ap);						\
+     }								\
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/conversion/simd3.C gcc-4.1.0/gcc/testsuite/g++.dg/conversion/simd3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/conversion/simd3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/conversion/simd3.C	Wed Jun 15 10:35:19 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ 
+ typedef int myint;
+ 
+ float __attribute__((vector_size(16))) b;
+ int __attribute__((vector_size(16))) d;
+ myint __attribute__((vector_size(16))) d2;
+ unsigned int __attribute__((vector_size(16))) e;
+ 
+ void foo()
+ {
+ 	b + d; /* { dg-error "invalid operands to binary" } */
+ 	d += e;
+ 	d2 += d;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/cpp/normalize-1.C gcc-4.1.0/gcc/testsuite/g++.dg/cpp/normalize-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/cpp/normalize-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/cpp/normalize-1.C	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-fextended-identifiers -Wnormalized=id" } */
+ 
+ \u00AA
+ \u00B7
+ \u0F43  /* { dg-warning "not in NFC" } */
+ a\u05B8\u05B9\u05B9\u05BBb
+  a\u05BB\u05B9\u05B8\u05B9b  /* { dg-warning "not in NFC" } */
+ \u09CB
+ \u09C7\u09BE /* { dg-warning "not in NFC" } */
+ \u0B4B
+ \u0B47\u0B3E /* { dg-warning "not in NFC" } */
+ \u0BCA
+ \u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+ \u0BCB
+ \u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+ \u0CCA
+ \u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+ \u0D4A
+ \u0D46\u0D3E /* { dg-warning "not in NFC" } */
+ \u0D4B
+ \u0D47\u0D3E /* { dg-warning "not in NFC" } */
+ 
+ K
+ \u212A
+ 
+ \u03AC
+ \u1F71 /* { dg-warning "not in NFC" } */
+ 
+ \uAC00
+ \u1100\u1161
+ \uAC01
+ \u1100\u1161\u11A8
+ \uAC00\u11A8
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/cpp/string-1.C gcc-4.1.0/gcc/testsuite/g++.dg/cpp/string-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/cpp/string-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/cpp/string-1.C	Thu Nov  3 23:08:18 2005
***************
*** 0 ****
--- 1,9 ----
+ // Test location of diagnostics for interpreting strings.  Bug 17964.
+ // Origin: Joseph Myers <joseph@codesourcery.com>
+ // { dg-do compile }
+ 
+ const char *s = "\q"; // { dg-error "unknown escape sequence" }
+ 
+ const char *t = "\	"; // { dg-error "unknown escape sequence" }
+ 
+ const char *u = "";
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/cpp/string-2.C gcc-4.1.0/gcc/testsuite/g++.dg/cpp/string-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/cpp/string-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/cpp/string-2.C	Fri Nov 18 11:06:56 2005
***************
*** 0 ****
--- 1,7 ----
+ // Test diagnostics for interpreting strings: should be an error by
+ // default.
+ // Origin: Joseph Myers <joseph@codesourcery.com>
+ // { dg-do compile }
+ // { dg-options "" }
+ 
+ const char *s = "\q"; // { dg-error "error: unknown escape sequence" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/cpp/ucnid-1.C gcc-4.1.0/gcc/testsuite/g++.dg/cpp/ucnid-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/cpp/ucnid-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/cpp/ucnid-1.C	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-pedantic -fextended-identifiers" } */
+ 
+ \u00AA /* { dg-error "not valid in an identifier" } */
+ \u00AB /* { dg-error "not valid in an identifier" } */
+ \u00B6 /* { dg-error "not valid in an identifier" } */
+ \u00BA /* { dg-error "not valid in an identifier" } */
+ \u00C0
+ \u00D6
+ \u0384
+ 
+ \u0669 /* { dg-error "not valid in an identifier" } */
+ A\u0669 /* { dg-error "not valid in an identifier" } */
+ 0\u00BA /* { dg-error "not valid in an identifier" } */
+ 0\u0669 /* { dg-error "not valid in an identifier" } */
+ \u0E59
+ A\u0E59
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/cpp/weak.C gcc-4.1.0/gcc/testsuite/g++.dg/cpp/weak.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/cpp/weak.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/cpp/weak.C	Sun May  1 20:30:40 2005
***************
*** 0 ****
--- 1,5 ----
+ // { dg-options "-fno-weak" }
+ 
+ #if __GXX_WEAK__
+ #error "__GXX_WEAK__ defined when -fno-weak in use"
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/debug.exp gcc-4.1.0/gcc/testsuite/g++.dg/debug/debug.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/debug.exp	Sun May 18 18:59:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/debug.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # G++ testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # G++ testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/debug3.C gcc-4.1.0/gcc/testsuite/g++.dg/debug/debug3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/debug3.C	Fri Mar 15 05:36:43 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/debug3.C	Sun Oct 16 01:14:19 2005
***************
*** 1,9 ****
  // PR optimization/5547
  // This testcase caused ICE on IA-32, since DWARF-2 was unable
  // to emit location expression for parameter a of operator+.
! // { dg-do compile }
  // { dg-options "-fpic" }
- // { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 }
  
  struct A { char *s; };
  
--- 1,8 ----
  // PR optimization/5547
  // This testcase caused ICE on IA-32, since DWARF-2 was unable
  // to emit location expression for parameter a of operator+.
! // { dg-do compile { target fpic } }
  // { dg-options "-fpic" }
  
  struct A { char *s; };
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/dwarf2-1.C gcc-4.1.0/gcc/testsuite/g++.dg/debug/dwarf2-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/dwarf2-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/dwarf2-1.C	Thu Jan 12 16:20:10 2006
***************
*** 0 ****
--- 1,22 ----
+ // Copyright (C) 2006 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 6 Jan 2006 <nathan@codesourcery.com>
+ 
+ // PR 24824
+ // Origin:   	 wanderer@rsu.ru
+ 
+ // { dg-options "-feliminate-dwarf2-dups" }
+ 
+ namespace N
+ {
+   struct Base
+   {
+     int m;
+   };
+ 
+   struct Derived : Base
+   {
+     using Base::m;
+   };
+ }
+ 
+ N::Derived thing;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/pr16792.C gcc-4.1.0/gcc/testsuite/g++.dg/debug/pr16792.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/pr16792.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/pr16792.C	Sun Mar 13 22:17:59 2005
***************
*** 0 ****
--- 1,10 ----
+ // { dg-do compile }
+ 
+ struct S { S(); };
+ int foo (S b, double j) { };
+ 
+ int main ()
+ {
+   int foo (S, double);
+   S v;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/pr22514.C gcc-4.1.0/gcc/testsuite/g++.dg/debug/pr22514.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/pr22514.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/pr22514.C	Fri Aug 12 04:18:48 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ namespace s
+ {
+   template <int> struct _List_base
+   {
+      int _M_impl;
+   };
+   template<int i> struct list : _List_base<i>
+   {
+     using _List_base<i>::_M_impl;
+   }
+ }  /* { dg-error "expected unqualified-id before '\}'" } */
+ s::list<1> OutputModuleListType;  /* { dg-error "expected" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/static1.C gcc-4.1.0/gcc/testsuite/g++.dg/debug/static1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/static1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/static1.C	Wed Nov  2 18:30:26 2005
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/24569
+ 
+ template <int dim>
+ struct S
+ {
+   static const int u = 2 * dim;
+   static const int p[u];
+   static int f();
+ };
+ 
+ template <>
+ inline int S<3>::f () { return 1; }
+ 
+ template <int dim> const int S<dim>::u;
+ 
+ template class S<3>;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/debug/using2.C gcc-4.1.0/gcc/testsuite/g++.dg/debug/using2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/debug/using2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/debug/using2.C	Sun Nov 13 07:34:50 2005
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/22489
+ 
+ namespace N { }
+ 
+ struct T
+ {
+   T () { }
+ };
+ 
+ void
+ bar ()
+ {
+   struct U : public T
+   {
+     void baz ()
+     {
+       using namespace N;
+     }
+   } u;
+   u.baz();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/dg.exp gcc-4.1.0/gcc/testsuite/g++.dg/dg.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/dg.exp	Sun Feb 20 20:32:41 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # G++ testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # G++ testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/cond3.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/cond3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/cond3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/cond3.C	Sun Feb 12 16:07:04 2006
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/24996
+ // Bug: the cleanup for the A temporary was confusing the gimplifier
+ // because of the TRY_CATCH_EXPR for the exception object.
+ 
+ struct A { A(int); ~A(); };
+ struct B { B(A); ~B(); };
+ void foo(bool b)
+ {
+   throw b ? B(1) : B(1);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced1.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced1.C	Mon Feb  2 20:06:23 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced1.C	Wed Nov 16 17:04:41 2005
***************
*** 1,4 ****
! // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that forced unwinding runs all cleanups.  Also tests that
--- 1,4 ----
! // HP-UX libunwind.so doesn't provide _UA_END_OF_STACK.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that forced unwinding runs all cleanups.  Also tests that
***************
*** 6,11 ****
--- 6,12 ----
  
  #include <unwind.h>
  #include <stdlib.h>
+ #include <string.h>
  
  static int test = 0;
  
*************** force_unwind_cleanup (_Unwind_Reason_Cod
*** 35,41 ****
  static void force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   exc->exception_class = 0;
    exc->exception_cleanup = force_unwind_cleanup;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 36,43 ----
  static void force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   // exception_class might not be a scalar.
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = force_unwind_cleanup;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
*************** struct S
*** 54,60 ****
    ~S() { test |= bit; }
  };
    
! static void doit ()
  {
    try {
      S four(4);
--- 56,62 ----
    ~S() { test |= bit; }
  };
    
! static __attribute__ ((noinline)) void doit ()
  {
    try {
      S four(4);
*************** static void doit ()
*** 62,68 ****
      try {
        S one(1);
        force_unwind ();
-   
      } catch(...) { 
        test |= 2;
        throw;
--- 64,69 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced2.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced2.C	Mon Feb  2 20:06:23 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced2.C	Wed Nov 16 17:04:41 2005
***************
*** 1,4 ****
! // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that leaving the catch block without rethrowing
--- 1,4 ----
! // HP-UX libunwind.so doesn't provide _UA_END_OF_STACK.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that leaving the catch block without rethrowing
***************
*** 6,11 ****
--- 6,12 ----
  
  #include <unwind.h>
  #include <stdlib.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** static void
*** 29,35 ****
  force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   exc->exception_class = 0;
    exc->exception_cleanup = force_unwind_cleanup;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 30,37 ----
  force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   // exception_class might not be a scalar.
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = force_unwind_cleanup;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced3.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced3.C	Mon Feb  2 20:06:23 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced3.C	Wed Nov 16 17:04:41 2005
***************
*** 1,4 ****
! // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that forced unwinding calls std::unexpected going 
--- 1,4 ----
! // HP-UX libunwind.so doesn't provide _UA_END_OF_STACK.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that forced unwinding calls std::unexpected going 
***************
*** 7,12 ****
--- 7,13 ----
  #include <unwind.h>
  #include <stdlib.h>
  #include <exception>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** static void __attribute__((noreturn))
*** 24,30 ****
  force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 25,32 ----
  force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   // exception_class might not be a scalar.
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced4.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/forced4.C	Mon Feb  2 20:06:23 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/forced4.C	Wed Nov 16 17:04:41 2005
***************
*** 1,4 ****
! // HP-UX libunwind.so doesn't provide _Unwind_ForcedUnwind.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that forced unwinding does not call std::unexpected going 
--- 1,4 ----
! // HP-UX libunwind.so doesn't provide _UA_END_OF_STACK.
  // { dg-do run { xfail "ia64-hp-hpux11.*" } }
  
  // Test that forced unwinding does not call std::unexpected going 
***************
*** 6,11 ****
--- 6,12 ----
  
  #include <unwind.h>
  #include <stdlib.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** static void __attribute__((noreturn))
*** 23,29 ****
  force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 24,31 ----
  force_unwind ()
  {
    _Unwind_Exception *exc = new _Unwind_Exception;
!   // exception_class might not be a scalar.
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
  
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/fp-regs.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/fp-regs.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/fp-regs.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/fp-regs.C	Wed Apr 20 01:44:58 2005
***************
*** 0 ****
--- 1,94 ----
+ // PR 20670: f29 corrupted when unwind stack.  This tries to test that FP
+ // registers are properly saved and restored by defining 20 different FP
+ // local variables.
+ // { dg-do run }
+ // { dg-options "-O" }
+ #include <stdlib.h>
+  
+ double zero = 0.0;
+ double another_zero = 0.0;
+  
+ int
+ sub (void)
+ {
+   throw (0);
+ }
+  
+ int
+ main (void)
+ {
+   double a, b, c, d, e, f, g, h, i, j;
+   double a1, b1, c1, d1, e1, f1, g1, h1, i1, j1;
+  
+   a = zero;
+   b = a + 1;
+   c = b + 1;
+   d = c + 1;
+   e = d + 1;
+   f = e + 1;
+   g = f + 1;
+   h = g + 1;
+   i = h + 1;
+   j = i + 1;
+    
+   a1 = another_zero;
+   b1 = a1 + 1;
+   c1 = b1 + 1;
+   d1 = c1 + 1;
+   e1 = d1 + 1;
+   f1 = e1 + 1;
+   g1 = f1 + 1;
+   h1 = g1 + 1;
+   i1 = h1 + 1;
+   j1 = i1 + 1;
+    
+   try
+     {
+       sub ();
+     }
+   catch (...)
+     {
+       if (a != 0.0)
+         abort ();
+       if (b != 1.0)
+         abort ();
+       if (c != 2.0)
+         abort ();
+       if (d != 3.0)
+         abort ();
+       if (e != 4.0)
+         abort ();
+       if (f != 5.0)
+         abort ();
+       if (g != 6.0)
+         abort ();
+       if (h != 7.0)
+         abort ();
+       if (i != 8.0)
+         abort ();
+       if (j != 9.0)
+         abort ();
+  
+       if (a1 != 0.0)
+         abort ();
+       if (b1 != 1.0)
+         abort ();
+       if (c1 != 2.0)
+         abort ();
+       if (d1 != 3.0)
+         abort ();
+       if (e1 != 4.0)
+         abort ();
+       if (f1 != 5.0)
+         abort ();
+       if (g1 != 6.0)
+         abort ();
+       if (h1 != 7.0)
+         abort ();
+       if (i1 != 8.0)
+         abort ();
+       if (j1 != 9.0)
+         abort ();
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/omit-frame-pointer.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/omit-frame-pointer.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/omit-frame-pointer.C	Mon Jan  7 22:40:52 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/omit-frame-pointer.C	Wed Oct  5 18:19:26 2005
***************
*** 1,6 ****
  // { dg-do run }
  // { dg-options -fomit-frame-pointer }
- // { dg-options "-fomit-frame-pointer -mno-accumulate-outgoing-args" { target i?86-*-* } }
  
  #include <iostream>
  
--- 1,5 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C	Wed Dec 18 16:41:11 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/omit-frame-pointer2.C	Wed Oct  5 18:19:26 2005
***************
*** 1,6 ****
  // Reduced from PR c++/5246, PR c++/2447
  // { dg-options "-O -fomit-frame-pointer" }
- // { dg-options "-O -fomit-frame-pointer -mno-accumulate-outgoing-args" { target i?86-*-* } }
  // { dg-do run }
  
  void step (int)
--- 1,5 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/simd-1.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/simd-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/simd-1.C	Tue Mar 16 20:37:28 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/simd-1.C	Fri Dec  9 23:56:34 2005
***************
*** 1,7 ****
  // Test EH when V2SI SIMD registers are involved.
  // Contributed by Aldy Hernandez (aldy@quesejoda.com).
  // { dg-options "-O" }
! // { dg-options "-O -w" { target i?86-*-* } }
  // { dg-do run }
  
  typedef int __attribute__((vector_size (8))) vecint;
--- 1,7 ----
  // Test EH when V2SI SIMD registers are involved.
  // Contributed by Aldy Hernandez (aldy@quesejoda.com).
  // { dg-options "-O" }
! // { dg-options "-O -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
  // { dg-do run }
  
  typedef int __attribute__((vector_size (8))) vecint;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/simd-2.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/simd-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/simd-2.C	Tue Feb  1 21:33:28 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/simd-2.C	Fri Dec  9 23:56:34 2005
***************
*** 1,8 ****
  // Test EH when V4SI SIMD registers are involved.
  // Contributed by Aldy Hernandez (aldy@quesejoda.com).
  // { dg-options "-O" }
! // { dg-options "-O -w" { target i?86-*-* } }
  // { dg-options "-O -w -maltivec" { target powerpc*-*-linux* } }
  // { dg-do run }
  
  #include "check-vect.h"
--- 1,9 ----
  // Test EH when V4SI SIMD registers are involved.
  // Contributed by Aldy Hernandez (aldy@quesejoda.com).
  // { dg-options "-O" }
! // { dg-options "-O -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
  // { dg-options "-O -w -maltivec" { target powerpc*-*-linux* } }
+ // { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } }
  // { dg-do run }
  
  #include "check-vect.h"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/spec8.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/spec8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/spec8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/spec8.C	Mon Nov 14 05:45:45 2005
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/24817
+ 
+ struct exception {};
+ 
+ template <typename T> void foo() throw(exception); // { dg-error "declaration" }
+ template <typename T> void foo(); // { dg-error "exceptions" }
+ 
+ struct bar
+ {
+   template <typename T> friend void foo(); // { dg-error "exceptions" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/synth2.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/synth2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/synth2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/synth2.C	Mon Nov 14 20:07:45 2005
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/24580
+ // { dg-do run }
+ 
+ struct vbase {};
+ 
+ struct foo : virtual vbase
+ {
+   foo()
+   {
+     throw "exception in foo ctor";
+   }
+ };
+ 
+ struct bar :  public foo {};
+ 
+ int main()
+ {
+   try
+     {
+       bar a;
+     }
+   catch ( ... ) { }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/eh/throw3.C gcc-4.1.0/gcc/testsuite/g++.dg/eh/throw3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/eh/throw3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/eh/throw3.C	Wed Apr  6 04:57:39 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/19312
+ 
+ struct A {};
+ 
+ void foo(A a)
+ {
+     throw (A)a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/expr/cond8.C gcc-4.1.0/gcc/testsuite/g++.dg/expr/cond8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/expr/cond8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/expr/cond8.C	Thu Nov  3 01:25:13 2005
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/22434
+ // { dg-options "" }
+ 
+ struct A
+ {
+   A(void*);
+   ~A();
+ };
+ 
+ void foo(const int i, bool b)
+ {
+   b ? A(0) : i; // { dg-error "conversion|initializing" } 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/expr/stdarg1.C gcc-4.1.0/gcc/testsuite/g++.dg/expr/stdarg1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/expr/stdarg1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/expr/stdarg1.C	Sun Oct  2 21:28:50 2005
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/23840
+ 
+ #include <stdarg.h>
+ struct S 
+ {
+   int f(int);
+ };
+ void f(int i, ...) 
+ {
+   va_list ap;
+   va_start (ap, i);
+   va_arg (ap, S).f(0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/expr/stdarg2.C gcc-4.1.0/gcc/testsuite/g++.dg/expr/stdarg2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/expr/stdarg2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/expr/stdarg2.C	Tue Feb 14 14:46:33 2006
***************
*** 0 ****
--- 1,30 ----
+ // PR target/26141
+ 
+ #include <stdarg.h>
+ 
+ struct S
+ {
+   double a;
+ };
+ 
+ void
+ foo (int z, ...)
+ {
+   struct S arg;
+   va_list ap;
+   arg = va_arg (ap, struct S);
+ }
+ 
+ 
+ struct T
+ {
+   __complex__ float a;
+ };
+ 
+ void
+ bar (int z, ...)
+ {
+   struct T arg;
+   va_list ap;
+   arg = va_arg (ap, struct T);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-1.C	Tue Jun  8 18:32:13 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-1.C	Tue Nov  8 16:05:15 2005
***************
*** 1,5 ****
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
--- 1,5 ----
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-10.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-10.C	Tue Jun  8 18:32:14 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-10.C	Tue Nov  8 16:05:15 2005
***************
*** 1,7 ****
  /* This is a compile-only test for interaction of "-maltivec" and "-save-temps".  */
  /* Author:  Ziemowit Laski  <zlaski@apple.com>.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-save-temps -maltivec" } */
  
  #include <altivec.h>
--- 1,7 ----
  /* This is a compile-only test for interaction of "-maltivec" and "-save-temps".  */
  /* Author:  Ziemowit Laski  <zlaski@apple.com>.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-save-temps -maltivec" } */
  
  #include <altivec.h>
*************** a1 = { 100, 200, 300, 400 };
*** 18,20 ****
--- 18,22 ----
  vector_float f1 = { 1.0, 2.0, 3.0, 4.0 };  
  vector_float_foo = { 3.0, 4.0, 5.0, 6.0 };
  vector_float_bar_eq { 8.0, 7.0, 6.0, 5.0 };
+ 
+ /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-11.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-11.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-11.C	Thu Aug 12 21:25:44 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-11.C	Tue Nov  8 16:05:15 2005
***************
*** 1,6 ****
  /* Test handling of literal constant for dss operation.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
--- 1,6 ----
  /* Test handling of literal constant for dss operation.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-12.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-12.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-12.C	Thu Aug 12 21:28:12 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-12.C	Tue Nov  8 16:05:15 2005
***************
*** 1,6 ****
  /* Test vec_dst* functions with float pointer as first argument.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
--- 1,6 ----
  /* Test vec_dst* functions with float pointer as first argument.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-13.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-13.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-13.C	Tue Nov 30 19:15:38 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-13.C	Tue Nov  8 16:05:15 2005
***************
*** 3,9 ****
     AltiVec testsuite.  */
  
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
                                                                                  
  #include <altivec.h>
--- 3,9 ----
     AltiVec testsuite.  */
  
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
                                                                                  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-2.C	Fri Aug 13 21:11:24 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-2.C	Tue Nov  8 16:05:15 2005
***************
*** 1,5 ****
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec -Wall" } */
  
  /* This test checks if AltiVec builtins accept const-qualified
--- 1,5 ----
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec -Wall" } */
  
  /* This test checks if AltiVec builtins accept const-qualified
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-3.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-3.C	Tue Jan 11 13:02:43 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-3.C	Tue Nov  8 16:05:15 2005
***************
*** 1,5 ****
  /* { dg-do run { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  /* Test for correct handling of AltiVec constants passed
--- 1,5 ----
  /* { dg-do run { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  /* Test for correct handling of AltiVec constants passed
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-4.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-4.C	Tue Jun  8 18:32:15 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-4.C	Tue Nov  8 16:05:15 2005
***************
*** 1,5 ****
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  /* PR c++/14425 */
--- 1,5 ----
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  /* PR c++/14425 */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-5.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-5.C	Tue Jun  8 18:32:15 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-5.C	Tue Nov  8 16:05:15 2005
***************
*** 1,5 ****
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  /* PR c++/14426 */
--- 1,5 ----
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  /* PR c++/14426 */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-6.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-6.C	Tue Jun  8 18:32:15 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-6.C	Tue Nov  8 16:05:15 2005
***************
*** 1,7 ****
  /* Test for correct handling of literal arguments. */
  /* Author: Ziemowit Laski  <zlaski@apple.com>  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
--- 1,7 ----
  /* Test for correct handling of literal arguments. */
  /* Author: Ziemowit Laski  <zlaski@apple.com>  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-7.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-7.C	Tue Jun  8 18:32:15 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-7.C	Tue Nov  8 16:05:15 2005
***************
*** 1,6 ****
  /* Test for AltiVec type overloading and name mangling.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
--- 1,6 ----
  /* Test for AltiVec type overloading and name mangling.  */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-8.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-8.C	Tue Jun  8 18:32:15 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-8.C	Tue Nov  8 16:05:15 2005
***************
*** 1,5 ****
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  /* Author: Ziemowit Laski  <zlaski@apple.com>  */
  
--- 1,5 ----
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  /* Author: Ziemowit Laski  <zlaski@apple.com>  */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-9.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/altivec-9.C	Tue Jun  8 18:32:15 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/altivec-9.C	Tue Nov  8 16:05:15 2005
***************
*** 1,6 ****
  /* Test for AltiVec function vec_ld, passing a pointer to const vector */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
--- 1,6 ----
  /* Test for AltiVec function vec_ld, passing a pointer to const vector */
  /* { dg-do compile { target powerpc*-*-* } } */
! /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
  /* { dg-options "-maltivec" } */
  
  #include <altivec.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/array2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/array2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/array2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/array2.C	Fri Nov  4 01:23:22 2005
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile }
+ 
+ // Avoid -pedantic-error default
+ // { dg-options "" }
+  
+ // PR 19989 - dependent array of size 0 fails to compile.
+ 
+ template<int I> struct A
+ {
+   static const int zero = 0;
+ };
+ 
+ template<int N> struct B
+ {
+   int x[A<N>::zero];
+ };
+ 
+ B<0> b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/asm7.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/asm7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/asm7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/asm7.C	Wed Oct  5 12:17:16 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ const int i = 0;
+ 
+ void f(void)
+ {
+   __asm__ __volatile__ ("" : "=m" (i)); /* { dg-error "read-only variable" } */
+ }
+ 
+ void g(const int set)
+ {
+   __asm__ __volatile__ ("" : "=r" (set)); /* { dg-error "read-only parameter" } */
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/asm8.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/asm8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/asm8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/asm8.C	Wed Oct  5 12:17:16 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ 
+ /* Test that asm with no outputs are treated as volatile.  */
+ 
+ void f(int x)
+ {
+   __asm__ ("extended asm not discarded" : : "r" (x));
+ }
+ 
+ void g (void)
+ {
+   __asm__ ("simple asm not discarded");
+ }
+ /* { dg-final { scan-assembler "extended asm not discarded" } } */
+ /* { dg-final { scan-assembler "simple asm not discarded" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/attrib8.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/attrib8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/attrib8.C	Wed Nov 17 17:21:42 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/attrib8.C	Thu May 26 19:10:52 2005
***************
*** 1,6 ****
  // PR 8656
! // { dg-do compile { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  extern int * (__attribute__((stdcall)) *fooPtr)( void);
  int * __attribute__((stdcall)) myFn01( void) { return 0; }
--- 1,6 ----
  // PR 8656
! // { dg-do compile { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  
  extern int * (__attribute__((stdcall)) *fooPtr)( void);
  int * __attribute__((stdcall)) myFn01( void) { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/c99struct1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/c99struct1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/c99struct1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/c99struct1.C	Thu Nov  3 16:15:53 2005
***************
*** 0 ****
--- 1,12 ----
+ // { dg-options "" }
+ // C99 anon struct variable with array accesses.
+ 
+ struct s { int a[1]; };
+ 
+ void
+ foo5 (void)
+ {
+ 	  ((struct s) { { 0 } }).a[0] = 1;
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/complit3.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/complit3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/complit3.C	Thu Apr 22 21:31:01 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/complit3.C	Wed Jul 20 01:19:59 2005
***************
*** 2,8 ****
  
  int Compound_Literals_0()
  {
!   static int y[] = (int []) {1, 2, 3}; // { dg-error "" }
!   static int z[] = (int [3]) {1}; // { dg-error "" }
    return y[0]+z[0]; 
  }
--- 2,8 ----
  
  int Compound_Literals_0()
  {
!   static int y[] = (int []) {1, 2, 3}; // { dg-error "compound literal" }
!   static int z[] = (int [3]) {1}; // { dg-error "compound literal" }
    return y[0]+z[0]; 
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/complit4.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/complit4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/complit4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/complit4.C	Tue Dec 27 17:18:05 2005
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/23172
+ // { dg-do run }
+ // { dg-options "" }
+ 
+ int i = (int) {7};
+ 
+ int main () {
+   if (i != 7)
+     return 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/complit5.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/complit5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/complit5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/complit5.C	Tue Dec 27 17:18:05 2005
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/25417
+ // { dg-options "" }
+ 
+ struct object {
+   int a;
+   int b;
+ };
+ 
+ void f (int c, int d)
+ {
+   object o = ((object){ a : c, b : d});
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport1.C	Fri Oct 22 04:00:36 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport1.C	Wed Oct 12 20:54:50 2005
***************
*** 5,17 ****
  class __attribute__((dllimport)) Foo
  {
   public:
!   virtual void dummy_foo_func(void)	// { dg-warning "inline function" }
      {}
!   void Foo::dummy_foo_fun2();
    virtual ~Foo();  //  avoid warning  
  };
  
! void Foo::dummy_foo_fun2()	//  { dg-warning "defined" }
  {
  }
  
--- 5,17 ----
  class __attribute__((dllimport)) Foo
  {
   public:
!   virtual void dummy_foo_func(void)
      {}
!   void dummy_foo_fun2();
    virtual ~Foo();  //  avoid warning  
  };
  
! void Foo::dummy_foo_fun2()	//  { dg-warning "redeclared without dllimport" }
  {
  }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport11.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport11.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport11.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport11.C	Tue Oct 18 22:05:57 2005
***************
*** 0 ****
--- 1,15 ----
+ // PR target/23589
+ // Template member functions do not get dllimport status of class.
+ // { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
+ 
+ struct __attribute__((dllimport)) Foo
+ {
+   template <class T> Foo (T);
+ };
+ 
+ void a (int i)
+ {
+   Foo f(i);
+ }
+ 
+ template <class T>  Foo::Foo (T) {}   // no dllimport warnings on definition.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport2.C	Fri Oct 22 04:00:36 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport2.C	Wed Oct 12 20:54:50 2005
***************
*** 1,5 ****
  // { dg-do compile { target i?86-*-cygwin* i?86-*-mingw*} }
- 
  // PR c++/9738  Dllimport attribute is overriden by later definition/redeclaration
  
  void __attribute__((dllimport)) Bar(void);
--- 1,4 ----
*************** void __attribute__((dllimport)) Baz(void
*** 7,12 ****
--- 6,12 ----
  __attribute__((dllimport)) int Biz;
  __attribute__((dllimport)) int Boz;
  
+ 
  void Foo(void)
    {
      Bar();
*************** void Foo(void)
*** 14,27 ****
      Biz++;	 
      Boz++;	 
    }
!  
! void Bar(void)		// { dg-warning "defined" }
    {
    }
! 
! void Baz(void);		// { dg-warning "redeclared" }
! extern int Biz;		// { dg-warning "redeclared" }
! int Boz;		// { dg-warning "defined" }
  
  void foo()
  {
--- 14,26 ----
      Biz++;	 
      Boz++;	 
    }
! 
! void Baz(void);		// { dg-warning "referenced with dll linkage" }
! void Bar(void)		// { dg-warning "referenced with dll linkage" }
    {
    }
! extern int Biz;		// { dg-warning "referenced with dll linkage" }
! int Boz;		// { dg-warning "referenced with dll linkage" }
  
  void foo()
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport3.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport3.C	Fri Jul  4 07:52:38 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport3.C	Wed Oct 12 20:54:50 2005
***************
*** 4,25 ****
  // redefinition without attribute.
   
  struct Foo
!  {
!      int a;
!  };
  
   __attribute__((dllimport)) struct Foo f;
  
!  void Bar(void)
!  {
!      void* dummy = &f;
!  }
  
!  struct Foo f;	// { dg-warning "defined" }
  
! // Dllimport sets DECL_NON_ADDR_CONST_P to 1, so following
  // assignment would require static_initialization_and_destruction
  // if attribute is retained. 
  
!  void* dummy = &f;
!  
--- 4,24 ----
  // redefinition without attribute.
   
  struct Foo
! {
!   int a;
! };
  
   __attribute__((dllimport)) struct Foo f;
  
! void Bar(void)
! {
!   void* dummy  = (void*) &f;
! }
  
! struct Foo f;	// { dg-warning "referenced with dll linkage" }
  
! // Dllimport'd symbols do not have a constant address, so following
  // assignment would require static_initialization_and_destruction
  // if attribute is retained. 
  
! void* dummy = &f;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport7.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport7.C	Fri Jul  4 07:52:38 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport7.C	Wed Oct 12 20:54:50 2005
*************** class  __declspec(dllimport) Bar
*** 18,25 ****
      static const Baz null_baz;
  };
  
! const int Bar::three = 3;	//  { dg-error "definition of static data" }
! const Baz Bar::null_baz;	//  { dg-error "definition of static data" }
  
  
  int foo()
--- 18,29 ----
      static const Baz null_baz;
  };
  
! const int Bar::three = 3;       //  { dg-warning "redeclared without dllimport" }
! //  { dg-error "definition of static data" "C++ specific error" { target i?86-*-cygwin* i?86-*-mingw* } 21 }
! 				
! const Baz Bar::null_baz;	//  { dg-warning "redeclared without dllimport" }
! //  { dg-error "definition of static data" "C++ specific error" { target i?86-*-cygwin* i?86-*-mingw* }  24 }
! 
  
  
  int foo()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport8.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport8.C	Fri Oct 22 04:00:36 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport8.C	Wed Oct 12 20:54:50 2005
***************
*** 6,24 ****
  // { dg-options { -Wall -W } }
  
  struct  __attribute__((dllimport)) Foo
!  {
!     static int static_int;
!     static void static_func1();
!     static void static_func2();
   };
  
! void Foo::static_func1()	//  { dg-warning "defined" }
!   {
!   }
  
! inline void Foo::static_func2()	//  { dg-warning "inline function" }
!  {
!  }
  
  void testfoo()
  { 
--- 6,24 ----
  // { dg-options { -Wall -W } }
  
  struct  __attribute__((dllimport)) Foo
! {
!   static int static_int;
!   static void static_func1();
!   static void static_func2();
   };
  
! void Foo::static_func1()	//  { dg-warning "redeclared without dllimport" }
! {
! }
  
! inline void Foo::static_func2()
! {
! }
  
  void testfoo()
  { 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport9.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/dllimport9.C	Fri Jul  4 07:52:38 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/dllimport9.C	Wed Oct 12 20:54:50 2005
*************** inline __attribute__((dllimport)) void b
*** 6,16 ****
  
  struct __attribute__ ((dllimport)) Blah	
  {
!   void in_blah () { }				// { dg-warning "inline" }
    void out_blah ();
  };
  
! inline void Blah::out_blah(){ }			// { dg-warning "inline" }
  
  void use_inlines()
  {
--- 6,16 ----
  
  struct __attribute__ ((dllimport)) Blah	
  {
!   void in_blah () { }  // Don't warn if member declared inline in class definition.
    void out_blah ();
  };
  
! inline void Blah::out_blah(){ }	// Don't warn for inline override of external declaration
  
  void use_inlines()
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/fpreg1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/fpreg1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/fpreg1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/fpreg1.C	Tue Jun 28 21:55:24 2005
***************
*** 0 ****
--- 1,82 ----
+ // Test permitted and invalid uses of __fpreg, for C++.
+ // Origin: Joseph Myers <joseph@codesourcery.com>
+ // { dg-do compile { target ia64-*-* } }
+ // { dg-options "" }
+ 
+ __float80 f80;
+ double d;
+ // Default initialized __fpreg is OK.
+ __fpreg fpreg, fpreg2;
+ // But explicitly zero-initialized is an invalid conversion.
+ __fpreg fi = 0; // { dg-error "error: invalid conversion to '__fpreg'" }
+ 
+ __fpreg f0 (__fpreg);
+ int f1 (__float80);
+ 
+ // __fpreg in a structure is OK.
+ struct s {
+   __float80 b;
+   __fpreg a;
+ } x;
+ 
+ void
+ f (void)
+ {
+   __fpreg *p;
+   // Valid operations.
+   fpreg = fpreg2;
+   fpreg2 = (__fpreg) fpreg;
+   fpreg = f0 (fpreg2);
+   fpreg = +fpreg2;
+   p = &fpreg;
+   (void) fpreg;
+   fpreg = x.a;
+   fpreg2 = (struct s) { 0 }.a;
+   fpreg = (d ? fpreg : fpreg2);
+   d = sizeof (fpreg);
+   (void)(fpreg, fpreg);
+   // Invalid operations.
+   ++fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   --fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg++; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg--; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = -fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = ~fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = !fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = *fpreg; // { dg-error "error: invalid type argument" }
+   if (fpreg) // { dg-error "error: invalid conversion from '__fpreg'" }
+     return;
+   d = fpreg; // { dg-error "error: invalid conversion from '__fpreg'" }
+   d = (double) fpreg; // { dg-error "error: invalid conversion from '__fpreg'" }
+   fpreg = (__fpreg) d; // { dg-error "error: invalid conversion to '__fpreg'" }
+   fpreg = fpreg * fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = fpreg / fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = fpreg % fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = fpreg + fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = fpreg - fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = fpreg << fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   fpreg = fpreg >> fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg < fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg > fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg <= fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg >= fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg == fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg != fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg & fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg ^ fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg | fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg && fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = fpreg || fpreg; // { dg-error "error: invalid operation on '__fpreg'" }
+   d = (fpreg ? 1 : 2); // { dg-error "error: invalid conversion from '__fpreg'" }
+   fpreg = (d ? fpreg : d); // { dg-error "error: invalid conversion to '__fpreg'" }
+   fpreg *= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg /= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg %= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg += fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg -= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg <<= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg >>= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg &= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg ^= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+   fpreg |= fpreg; // { dg-error "error: invalid operation on '__fpreg'|in evaluation" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/interface1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/interface1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/interface1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/interface1.C	Fri Sep  9 18:56:16 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/22252
+ // { dg-do link }
+ // { dg-additional-sources "interface1a.cc" }
+ // { dg-options "-fno-inline" }
+ 
+ #pragma implementation 
+ #include "interface1.h"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/interface1.h gcc-4.1.0/gcc/testsuite/g++.dg/ext/interface1.h
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/interface1.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/interface1.h	Fri Sep  9 18:56:16 2005
***************
*** 0 ****
--- 1,10 ----
+ #pragma interface
+ struct B
+ {
+   B(){};
+   ~B(){}
+ };
+ struct A {
+   B a;
+ 
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/interface1a.cc gcc-4.1.0/gcc/testsuite/g++.dg/ext/interface1a.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/interface1a.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/interface1a.cc	Fri Sep  9 18:56:16 2005
***************
*** 0 ****
--- 1,4 ----
+ #include "interface1.h"
+ A a;
+ int main() {}
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/label5.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/label5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/label5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/label5.C	Wed Oct 12 13:16:22 2005
***************
*** 0 ****
--- 1,7 ----
+ // { dg-options "" }
+ // PR c++/24052
+ 
+ struct A { };
+ int main() { b: A() && && b; } // { dg-error "A\\(\\) && && *b" }
+ 
+ // { dg-error "candidate" "additional" { target *-*-* } 5 }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed3.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed3.C	Mon May 31 21:24:31 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed3.C	Wed Jan 11 18:09:17 2006
*************** struct  __attribute__ ((packed)) Packed
*** 19,25 ****
  
  void Foo (Packed &p)
  {
!   Ref (p.i); // { dg-error "cannot bind packed field" "" }
!   Ref (p.u.i);
!   Ref (p.u); // { dg-error "cannot bind packed field" "" }
  }
--- 19,25 ----
  
  void Foo (Packed &p)
  {
!   Ref (p.i); // { dg-error "cannot bind packed field" "" { target { ! default_packed } } }
!   Ref (p.u.i); // { dg-error "cannot bind packed field" "" { target { ! default_packed } } }
!   Ref (p.u); // { dg-error "cannot bind packed field" "" { target { ! default_packed } } }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed4.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed4.C	Mon May 31 21:24:31 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed4.C	Wed Nov  2 02:41:44 2005
***************
*** 1,4 ****
! // { dg-do run }
  
  // Copyright (C) 2003 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 15 Jul 2003 <nathan@codesourcery.com>
--- 1,5 ----
! // { dg-do run { target { ! default_packed } } }
! // { dg-options "-w" }
  
  // Copyright (C) 2003 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 15 Jul 2003 <nathan@codesourcery.com>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed8.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed8.C	Wed Dec 22 03:34:54 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed8.C	Sun Dec  4 13:01:48 2005
***************
*** 1,4 ****
--- 1,8 ----
  // PR c++/18378
+ // NOTE: This test assumes packed structure layout differs from unpacked
+ //       structure layout.  This isn't true, e.g., with the default
+ //       arm-none-elf options.
+ // { dg-options "-mstructure-size-boundary=8" { target arm-*-* } }
  
  class A
  {
*************** public:
*** 11,20 ****
  
  class B
  {
!   A a __attribute__((packed));
  
  public:
    B() {}
!   A GetA() { return a; } // { dg-error "" }
  };
  
--- 15,24 ----
  
  class B
  {
!   A a __attribute__((packed)); // { dg-warning "attribute ignored" "" { target default_packed } }
  
  public:
    B() {}
!   A GetA() { return a; } // { dg-error "" "" { target { ! default_packed } } }
  };
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed9.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/packed9.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/packed9.C	Mon Aug  8 14:22:35 2005
***************
*** 0 ****
--- 1,20 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 26 Apr 2005 <nathan@codesourcery.com>
+ 
+ // DR21166. unnecessary error on packed char
+ 
+ struct s1 {
+         char    c1;
+ } __attribute__((packed));
+ 
+ char&
+ f(struct s1 *s)
+ {
+         return s->c1;
+ }
+ 
+ char *
+ g(struct s1 *s)
+ {
+         return &s->c1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/pragmaweak1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/pragmaweak1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/pragmaweak1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/pragmaweak1.C	Sat Jan 28 22:10:17 2006
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/25999
+ // { dg-final { scan-assembler-not "_Z3Foov" } }
+ 
+ extern "C" {
+   void Foo();
+ }
+ #pragma weak Random_Symbol
+ void Foo() { }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/selectany1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/selectany1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/selectany1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/selectany1.C	Fri Apr  1 08:20:24 2005
***************
*** 0 ****
--- 1,21 ----
+ // { dg-do compile { target i?86-pc-cygwin } }
+ // { dg-do compile { target i?86-pc-mingw* } }
+ 
+ // Check that selectany attribute puts symbols into link-once sections.
+ 
+ // { dg-final { scan-assembler "\.section\t\.data\\\$foo\[^\n\]*\n\t\.linkonce discard" } }
+ // { dg-final { scan-assembler "\.section\t\.data\\\$x\[^\n\]*\n\t\.linkonce discard" } }
+ // { dg-final { scan-assembler-dem "\nguard variable for x:" } }
+ 
+ __declspec (selectany) int foo = 1;
+ 
+ class X
+ {
+ private:
+   int m_i;
+ public:
+   X(int i): m_i(i){}
+   ~X(){};
+ };
+ 
+ __declspec(selectany) X x(1);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/selectany2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/selectany2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/selectany2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/selectany2.C	Fri Apr  1 08:20:24 2005
***************
*** 0 ****
--- 1,30 ----
+ // { dg-do compile { target i?86-pc-cygwin } }
+ // { dg-do compile { target i?86-pc-mingw* } }
+ 
+ // Check for errors with invalid usage of selectany attribute.
+ 
+ extern int foo;
+ __declspec (selectany) int foo = 1;  // OK
+ 
+ struct d
+ {
+   static int foo;
+ };
+ __declspec (selectany) int d::foo = 1;  // OK 
+ 
+ struct  f
+ {
+   int i;
+ };
+ __declspec (selectany) struct f  F= {1}; // OK
+ 
+ __declspec (selectany) int boo;	//{ dg-error "selectany" }
+ 
+ __declspec (selectany) static int bar = 1; // { dg-error "selectany" }
+ int use_bar = bar;  //  Avoid defined but not used warning. 
+ 
+ int baz()
+ {
+   __declspec (selectany)  int foo = 1;  // { dg-error "selectany" }
+   return foo;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/stmtexpr7.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/stmtexpr7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/stmtexpr7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/stmtexpr7.C	Fri Nov 11 17:16:53 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/24686
+ // { dg-options "" }
+ 
+ struct A
+ {
+   ~A();
+ };
+ bool h(int, const A&);
+ int f();
+ int i;
+ void g()
+ {
+   i && (A(), ({ static int l = f(); l; }));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/sync-1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/sync-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/sync-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/sync-1.C	Sat Apr 16 02:07:33 2005
***************
*** 0 ****
--- 1,40 ----
+ // Validate that the __sync builtins are overloaded properly.
+ // { dg-do compile }
+ // { dg-options "-Werror" }
+ 
+ #define TEST1(TYPE, BUILTIN)		\
+ void t_##TYPE##BUILTIN(TYPE *p)		\
+ {					\
+   __typeof(BUILTIN(p, 1)) *pp;		\
+   pp = p;				\
+ }
+ 
+ #define TEST2(BUILTIN)		\
+   TEST1(int, BUILTIN)		\
+   TEST1(long, BUILTIN)
+ 
+ TEST2(__sync_fetch_and_add)
+ TEST2(__sync_fetch_and_sub)
+ TEST2(__sync_fetch_and_or)
+ TEST2(__sync_fetch_and_and)
+ TEST2(__sync_fetch_and_xor)
+ TEST2(__sync_fetch_and_nand)
+ 
+ TEST2(__sync_add_and_fetch)
+ TEST2(__sync_sub_and_fetch)
+ TEST2(__sync_or_and_fetch)
+ TEST2(__sync_and_and_fetch)
+ TEST2(__sync_xor_and_fetch)
+ TEST2(__sync_nand_and_fetch)
+ 
+ TEST2(__sync_lock_test_and_set)
+ 
+ #define TEST3(TYPE)					\
+ void t_##TYPE##__sync_val_compare_and_swap(TYPE *p)	\
+ {							\
+   __typeof(__sync_val_compare_and_swap(p, 1, 2)) *pp;	\
+   pp = p;						\
+ }
+ 
+ TEST3(int)
+ TEST3(long)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/sync-2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/sync-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/sync-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/sync-2.C	Sat Apr 16 02:07:33 2005
***************
*** 0 ****
--- 1,58 ----
+ // Validate that the __sync builtins are overloaded properly in templates.
+ // { dg-do compile }
+ // { dg-options "-Werror" }
+ 
+ 
+ #define TEST1(BUILTIN)			\
+ template<typename T>			\
+ void f##BUILTIN(T *p)			\
+ {					\
+   __typeof(BUILTIN(p, 1)) *pp;		\
+   pp = p;				\
+ }
+ 
+ TEST1(__sync_fetch_and_add)
+ TEST1(__sync_fetch_and_sub)
+ TEST1(__sync_fetch_and_or)
+ TEST1(__sync_fetch_and_and)
+ TEST1(__sync_fetch_and_xor)
+ TEST1(__sync_fetch_and_nand)
+ 
+ TEST1(__sync_add_and_fetch)
+ TEST1(__sync_sub_and_fetch)
+ TEST1(__sync_or_and_fetch)
+ TEST1(__sync_and_and_fetch)
+ TEST1(__sync_xor_and_fetch)
+ TEST1(__sync_nand_and_fetch)
+ 
+ TEST1(__sync_lock_test_and_set)
+ 
+ template<typename T>
+ void f__sync_val_compare_and_swap(T *p)
+ {
+   __typeof(__sync_val_compare_and_swap(p, 1, 2)) *pp;
+   pp = p;
+ }
+ 
+ #define TEST2(TYPE)			\
+ void h_##TYPE ()			\
+ {					\
+   TYPE x;				\
+   f__sync_fetch_and_add (&x);		\
+   f__sync_fetch_and_sub (&x);		\
+   f__sync_fetch_and_or (&x);		\
+   f__sync_fetch_and_and (&x);		\
+   f__sync_fetch_and_xor (&x);		\
+   f__sync_fetch_and_nand (&x);		\
+   f__sync_add_and_fetch (&x);		\
+   f__sync_sub_and_fetch (&x);		\
+   f__sync_or_and_fetch (&x);		\
+   f__sync_and_and_fetch (&x);		\
+   f__sync_xor_and_fetch (&x);		\
+   f__sync_nand_and_fetch (&x);		\
+   f__sync_lock_test_and_set (&x);	\
+   f__sync_val_compare_and_swap (&x);	\
+ }
+ 
+ TEST2(int)
+ TEST2(long)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/tmplattr1.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/tmplattr1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/tmplattr1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/tmplattr1.C	Fri Oct 21 16:03:47 2005
***************
*** 0 ****
--- 1,24 ----
+ // PR c++/24260
+ // { dg-do compile { target i?86-*-* x86_64-*-* } }
+ // { dg-require-effective-target ilp32 }
+ 
+ #define stdcall __attribute__((stdcall))
+ 
+ struct T {
+   template <class S>
+   static int stdcall func(int arg1, int arg2);
+ };
+ 
+ template <class S>
+ int stdcall T::func(int arg1, int arg2)
+ {
+   return arg1+arg2;
+ }
+ 
+ struct dummy {};
+ 
+ void xx()
+ {
+   int (stdcall *ptr2)(int,int) = &T::func<dummy>;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/typeof10.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/typeof10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/typeof10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/typeof10.C	Mon Dec 19 17:29:41 2005
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/20552
+ // Origin: Ivan Godard <igodard@pacbell.net>
+ 
+ template<int> struct A
+ {
+   void foo()
+   {
+     typedef int T;                // { dg-error "previous" }
+     typedef __typeof__(*this) T;  // { dg-error "conflicting" }
+   }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/vector2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/vector2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/vector2.C	Tue Aug 16 22:17:10 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/vector2.C	Sat Dec 10 13:47:29 2005
***************
*** 1,7 ****
  // PR c++/23337; caused an ICE in component_ref_field_offset
  // { dg-options "" }
! // { dg-options "-mmmx" { target { i?86-*-* && ilp32 } } } */
! // { dg-options "-mmmx" { target { x86_64-*-* && ilp32 } } } */
  typedef int vec __attribute__ ((vector_size (8)));
  extern int bar (vec);
  int
--- 1,6 ----
  // PR c++/23337; caused an ICE in component_ref_field_offset
  // { dg-options "" }
! // { dg-options "-mmmx" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  typedef int vec __attribute__ ((vector_size (8)));
  extern int bar (vec);
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/arm2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/arm2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/arm2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/arm2.C	Tue Apr 12 06:33:48 2005
***************
*** 0 ****
--- 1,11 ----
+ // { dg-do compile { target arm*-*-*eabi* arm*-*-symbianelf* } }
+ // Class data should be exported.
+ // { dg-final { scan-not-hidden "_ZTV1S" } }
+ // { dg-final { scan-not-hidden "_ZTI1S" } }
+ // { dg-final { scan-not-hidden "_ZTS1S" } }
+ 
+ struct S {
+   virtual void f();
+ };
+ 
+ void S::f() {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/arm3.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/arm3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/arm3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/arm3.C	Tue Apr 12 06:33:48 2005
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do compile { target arm*-*-*eabi* } }
+ // { dg-options "-fvisibility=hidden" }
+ // Class data should be exported.
+ // { dg-final { scan-not-hidden "_ZTI1A" } }
+ // { dg-final { scan-not-hidden "_ZTS1A" } }
+ // { dg-final { scan-not-hidden "_ZTV1B" } }
+ // { dg-final { scan-not-hidden "_ZTI1B" } }
+ // { dg-final { scan-not-hidden "_ZTS1B" } }
+ 
+ struct A {};
+ struct B : virtual public A {};
+ B b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/noPLT.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/noPLT.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/noPLT.C	Sun Jul 25 22:52:21 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/noPLT.C	Sun Oct 16 01:14:19 2005
***************
*** 1,5 ****
  /* Test that -fvisibility=hidden prevents PLT. */
! /* { dg-do compile } */
  /* { dg-require-visibility "" } */
  /* { dg-options "-fPIC -fvisibility=hidden" } */
  /* { dg-final { scan-assembler-not "methodEv@PLT" } } */
--- 1,5 ----
  /* Test that -fvisibility=hidden prevents PLT. */
! /* { dg-do compile { target fpic } } */
  /* { dg-require-visibility "" } */
  /* { dg-options "-fPIC -fvisibility=hidden" } */
  /* { dg-final { scan-assembler-not "methodEv@PLT" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/symbian2.C gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/symbian2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/ext/visibility/symbian2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/ext/visibility/symbian2.C	Tue Apr 12 06:33:48 2005
***************
*** 0 ****
--- 1,11 ----
+ // { dg-do compile { target arm*-*-symbianelf* } }
+ // Class data should not be exported.
+ // { dg-final { scan-hidden "_ZTI1A" } }
+ // { dg-final { scan-hidden "_ZTS1A" } }
+ // { dg-final { scan-hidden "_ZTV1B" } }
+ // { dg-final { scan-hidden "_ZTI1B" } }
+ // { dg-final { scan-hidden "_ZTS1B" } }
+ 
+ struct A {};
+ struct B : virtual public A {};
+ B b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/gcov/gcov-1.C gcc-4.1.0/gcc/testsuite/g++.dg/gcov/gcov-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/gcov/gcov-1.C	Thu Mar 27 23:53:08 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/gcov/gcov-1.C	Wed Aug  3 22:10:54 2005
*************** test_switch (int i, int j)
*** 253,259 ****
  {
    int result = 0;			/* count(5) */
  
! 					/* branch(80 25) */
    switch (i)				/* count(5) */
  					/* branch(end) */
      {
--- 253,259 ----
  {
    int result = 0;			/* count(5) */
  
! 					/* branch(20 0 60 20) */
    switch (i)				/* count(5) */
  					/* branch(end) */
      {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/gcov/gcov.exp gcc-4.1.0/gcc/testsuite/g++.dg/gcov/gcov.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/gcov/gcov.exp	Wed Jul  9 14:57:21 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/gcov/gcov.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Gcov test driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Gcov test driver.
  
*************** if { ![is_remote host] && [string match 
*** 33,41 ****
  dg-init
  
  # Delete old .gcda files.
! set files [glob -nocomplain gcov-*.gcda];
  if { $files != "" } {
!     eval "remote_file build delete $files";
  }
  
  # Main loop.
--- 33,41 ----
  dg-init
  
  # Delete old .gcda files.
! set files [glob -nocomplain gcov-*.gcda]
  if { $files != "" } {
!     eval "remote_file build delete $files"
  }
  
  # Main loop.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/conv2.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/conv2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/conv2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/conv2.C	Sun Jan 22 00:41:58 2006
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/25895
+ // { dg-do run }
+ 
+ class base {
+ public:
+   base() {}
+ private:
+   int val_;
+ };
+ 
+ class derived : public base {
+ public:
+   derived() {}
+ };
+ 
+ static bool x = true ? (derived*)0 : (base*)0;
+ 
+ int main ()
+ {
+   if (x)
+     return 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/covariant13.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/covariant13.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/covariant13.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/covariant13.C	Mon May  9 11:52:44 2005
***************
*** 0 ****
--- 1,25 ----
+ // Copyright (C) 2004 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 8 May 2005<nathan@codesourcery.com>
+ 
+ // Origin:Andrew Pinski: pinskia@gcc.gnu.org
+ // PR 21427: ICE on valid
+ 
+ struct B1 { 
+   public: 
+     virtual void foo(); 
+ }; 
+  
+ struct B2 { 
+   public: 
+     virtual B2 & bar() = 0; 
+ }; 
+  
+ struct I : public B1, B2 { 
+   public: 
+     virtual ~I(); 
+     virtual I & bar(); 
+ }; 
+  
+ struct D : public I { 
+     virtual ~D(); 
+ }; 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/covariant14.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/covariant14.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/covariant14.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/covariant14.C	Tue Oct 18 12:30:32 2005
***************
*** 0 ****
--- 1,20 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 18 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 22604
+ // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
+ 
+ struct A;
+ 
+ struct B
+ {
+   virtual A* foo();  // { dg-error "overriding" "" }
+ };
+ 
+ namespace N
+ {
+   struct A : B
+   {
+     virtual A* foo(); // { dg-error "invalid covariant" "" }	
+   };
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/local3.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/local3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/local3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/local3.C	Wed Apr 13 12:01:03 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/13744 (ice-on-valid-code)
+ // Origin: Thom Harp <thomharp@charter.net>
+ 
+ // { dg-do compile }
+ 
+ template<int> void foo()
+ {
+     struct A
+     {
+         virtual void bar() { A a(*this); }
+     } a;
+ }
+ 
+ template void foo<0>();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/thunk4.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/thunk4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/thunk4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/thunk4.C	Tue Nov  8 08:32:26 2005
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/21123
+ 
+ struct A
+ {
+   A( const A &a);
+   const A& operator=( const A& a);
+ };
+ 
+ struct B
+ {
+   virtual A f();
+ };
+ 
+ struct C : virtual B
+ {
+   virtual A f();
+   A a;
+ };
+ 
+ A C::f() 
+ {
+   return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/thunk5.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/thunk5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/thunk5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/thunk5.C	Wed Nov 30 21:40:12 2005
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/21123
+ 
+ struct A
+ {
+   A(const A &a);
+   const A& operator=(const A& a);
+ };
+ 
+ struct B
+ {
+   virtual A f(A);
+ };
+ 
+ struct C : virtual B
+ {
+   virtual A f(A);
+ };
+ 
+ A C::f(A a) 
+ {
+   return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/using5.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/using5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/using5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/using5.C	Fri Jan 20 03:07:49 2006
***************
*** 0 ****
--- 1,17 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 8 Jun 2005 <nathan@codesourcery.com>
+ 
+ // PR 19496: Missing error during parsing.
+ // Origin:  Volker Reichelt <reichelt@gcc.gnu.org>
+ 
+ template<int> struct A
+ {
+   A::A; // { dg-error "constructor" }
+ };
+ 
+ struct B
+ {
+   void f ();
+   using B::f; // { dg-error "not a base" }
+ };
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/inherit/using6.C gcc-4.1.0/gcc/testsuite/g++.dg/inherit/using6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/inherit/using6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/inherit/using6.C	Wed Jun  8 11:49:23 2005
***************
*** 0 ****
--- 1,15 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 8 Jun 2005 <nathan@codesourcery.com>
+ 
+ struct A
+ {
+   operator int ();
+ };
+ 
+ template <typename T> struct TPL : A
+ {
+   using A::operator T; // { dg-error "operator float" }
+ };
+ 
+ TPL<int> i;
+ TPL<float> j; // { dg-error "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/array0.C gcc-4.1.0/gcc/testsuite/g++.dg/init/array0.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/array0.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/array0.C	Wed Dec  7 11:37:53 2005
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do compile }
+ // { dg-options "" }
+ // PR C++/24138
+ 
+ void foo()
+ {
+   typedef struct {
+     unsigned char dir;
+     int data[0];
+   } yanito;
+   static const yanito horse = { 1,  { 2,  3 }  }; // { dg-error "too many" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/array16.C gcc-4.1.0/gcc/testsuite/g++.dg/init/array16.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/array16.C	Thu Dec  9 09:37:37 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/array16.C	Sun Oct 23 21:37:57 2005
***************
*** 1,4 ****
! // { dg-do run }
  
  // Copyright (C) 2004 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 8 Dec 2004 <nathan@codesourcery.com>
--- 1,7 ----
! // Causes timeout for the MMIX simulator on a 3GHz P4 and we can't
! // have "compile" for some targets and "run" for others.
! // { dg-do run { target { ! mmix-*-* } } }
! // { dg-options "-mstructure-size-boundary=8" { target arm-*-* } }
  
  // Copyright (C) 2004 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 8 Dec 2004 <nathan@codesourcery.com>
***************
*** 6,11 ****
--- 9,17 ----
  // PR 16681 too much memory used
  // Origin:  Matt LaFary <lafary@activmedia.com>
  
+ // NOTE: This test assumes that 4M instances of struct ELT can fit into
+ //       a 5MB array.  This isn't true, e.g., with the default
+ //       arm-none-elf options.
  
  struct elt 
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/brace2.C gcc-4.1.0/gcc/testsuite/g++.dg/init/brace2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/brace2.C	Wed Nov 27 01:59:43 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/brace2.C	Wed Jul 20 01:19:59 2005
***************
*** 3,8 ****
  int x = { 2 };
  const char * y = { "hello" };
  int a = 2;
! int b = { 2,3 }; // { dg-error "requires one element" }
  int c = { { 2 } } ; // { dg-error "braces around scalar initializer" }
  
--- 3,8 ----
  int x = { 2 };
  const char * y = { "hello" };
  int a = 2;
! int b = { 2,3 }; // { dg-error "too many initializers" }
  int c = { { 2 } } ; // { dg-error "braces around scalar initializer" }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/brace4.C gcc-4.1.0/gcc/testsuite/g++.dg/init/brace4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/brace4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/brace4.C	Wed Mar  9 17:05:13 2005
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/16859
+ // { dg-do compile }
+ // { dg-options "-pedantic" }
+ 
+ int a[] = { }; // { dg-error "zero-size array" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/ctor5.C gcc-4.1.0/gcc/testsuite/g++.dg/init/ctor5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/ctor5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/ctor5.C	Tue May 24 19:06:20 2005
***************
*** 0 ****
--- 1,17 ----
+ //  PR C++/21645
+ //  We were crashing because we forgot to update the type for
+ //  the cloned argument for the cloned ctor.
+ 
+ struct color {
+   ~color();
+ };
+ struct style {
+   color col;
+   style (color);
+ };
+ 
+ style::style(color c)
+   : col(c)
+ {
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/ctor7.C gcc-4.1.0/gcc/testsuite/g++.dg/init/ctor7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/ctor7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/ctor7.C	Fri Oct 14 08:38:59 2005
***************
*** 0 ****
--- 1,51 ----
+ // { dg-do run }
+ 
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 13 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 23984:ICE
+ // Origin:  Andrew Pinski pinskia@gcc.gnu.org
+ 
+ struct B
+ {
+   virtual void Foo ();
+ };
+ 
+ void B::Foo ()
+ {
+ }
+ 
+ struct D : virtual B
+ {
+ };
+ 
+ struct E
+ {
+   B *ptr;
+   
+   E (B *);
+ };
+ 
+ static B *ptr;
+ 
+ E::E (B *ptr_)
+   :ptr (ptr_)
+ {
+ }
+ 
+ struct G : D, E
+ {
+   G ();
+ };
+ 
+ G::G ()
+   : E (this)
+ {
+ }
+ 
+ int main ()
+ {
+   G object;
+ 
+   return object.ptr != &object;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/float1.C gcc-4.1.0/gcc/testsuite/g++.dg/init/float1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/float1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/float1.C	Tue Oct 11 20:58:46 2005
***************
*** 0 ****
--- 1,19 ----
+ // PR c++/21089
+ // { dg-do run }
+ 
+ extern "C" void abort();
+ 
+ static const double a = 1.0;
+ struct S {
+   S();
+ };
+ static S s;
+ static const double b = a + 1.0;
+ 
+ S::S() {
+   if (b < 1.9 || b > 2.1)
+     abort ();
+ }
+ 
+ int main () {
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/goto2.C gcc-4.1.0/gcc/testsuite/g++.dg/init/goto2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/goto2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/goto2.C	Thu Oct 13 23:59:57 2005
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/20721
+ 
+ bool f();
+ void g(int i)
+ {
+   if (i) goto bad; // { dg-error "from" }
+   bool a = f(); // { dg-error "initialization" }
+  bad: // { dg-error "jump" }
+   ;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/struct2.C gcc-4.1.0/gcc/testsuite/g++.dg/init/struct2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/struct2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/struct2.C	Wed Sep 14 00:25:01 2005
***************
*** 0 ****
--- 1,22 ----
+ /* PR c++/23180.  */
+ /* Initialize a local structure with an expression that attempts to use
+    pointer arithmetic to calculate another structure field offset.  */
+ 
+ void saveLoadEntries(const void *);
+ 
+ void saveOrLoad() {
+     struct Track {
+         char soundName[15];
+     };
+     struct SaveLoadEntry {
+         int offs;
+         int type;
+         int size;
+     };    
+ 
+     SaveLoadEntry trackEntries = {
+ 	((long) (&((Track *) 42)->soundName[0])) - 42,
+         0, 1
+     };
+     saveLoadEntries(&trackEntries);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/struct3.C gcc-4.1.0/gcc/testsuite/g++.dg/init/struct3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/struct3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/struct3.C	Wed Sep 14 00:25:01 2005
***************
*** 0 ****
--- 1,15 ----
+ /* PR c++/23180.  */
+ /* Initialize a global variable with an expression that attempts to use
+    pointer arithmetic to calculate a structure field offset.  */
+ 
+ struct Track {
+   char soundName[15];
+ };
+ 
+ struct SaveLoadEntry {
+   int offs;
+   int type;
+   int size;
+ };    
+ 
+ int foobar = ((long) (& ((Track *) 42)->soundName[0])) - 42;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/switch1.C gcc-4.1.0/gcc/testsuite/g++.dg/init/switch1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/switch1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/switch1.C	Thu Nov  3 15:06:42 2005
***************
*** 0 ****
--- 1,8 ----
+ int f(int c)
+ {
+   switch (c)
+   {
+     case d: /* { dg-error "'d' was not declared" } */
+      int optBzip2 = true;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/init/union2.C gcc-4.1.0/gcc/testsuite/g++.dg/init/union2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/init/union2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/init/union2.C	Thu Jul 21 14:50:46 2005
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/15938
+ // { dg-do compile }
+ // { dg-options "" }
+ 
+ typedef union
+ {
+   struct { int i; };
+   struct { char c; };
+ } A;
+ 
+ A a = { 0 };
+ A b = {{ 0 }};
+ A c = {{{ 0 }}};  // { dg-error "braces" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/ambig4.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/ambig4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/ambig4.C	Wed Aug 31 10:54:34 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/ambig4.C	Mon Nov 14 01:45:19 2005
***************
*** 4,14 ****
  
  namespace N
  {
!   int i;            // { dg-error "declared" }
  }
  
! int i;              // { dg-error "declared" }
  
  using namespace N;
  
! void foo() { i; }   // { dg-error "in this scope|ambiguous" }
--- 4,14 ----
  
  namespace N
  {
!   int i;            // { dg-error "i" }
  }
  
! int i;              // { dg-error "i" }
  
  using namespace N;
  
! void foo() { i; }   // { dg-error "ambiguous" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/ambig5.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/ambig5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/ambig5.C	Wed Aug 31 10:54:34 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/ambig5.C	Mon Nov 14 01:45:19 2005
***************
*** 4,13 ****
  
  namespace N
  {
!   namespace M {}    // { dg-error "declared" }
  }
  
! namespace M {}      // { dg-error "declared" }
  
  using namespace N;
  using namespace M;  // { dg-error "namespace-name|ambiguous" }
--- 4,13 ----
  
  namespace N
  {
!   namespace M {}    // { dg-error "M" }
  }
  
! namespace M {}      // { dg-error "M" }
  
  using namespace N;
  using namespace M;  // { dg-error "namespace-name|ambiguous" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/error1.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/error1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/error1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/error1.C	Wed Sep 21 15:21:00 2005
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/17609
+ // Origin: <papadopo@shfj.cea.fr>
+ // { dg-do compile }
+ 
+ namespace N { int i; }
+ void foo() { i; }   // { dg-error "not declared" }
+ 
+ using namespace N;
+ void bar() { i; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/friend7.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/friend7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/friend7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/friend7.C	Mon Sep 12 19:54:23 2005
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ // PR c++/7874: Don't inject friend functions into global name space.
+ 
+ namespace N { template<typename T> struct A { friend void f(A) { }; }; }
+ int main()
+ {
+    N::A<int> a;
+    N::f(a);		// { dg-error "not a member" }
+ }
+ 
+ struct S { friend void g(); friend void h(S); };
+ struct T { friend void g(); friend void h(T); };
+ void i() {
+   g();			// { dg-error "not declared" }
+   S s;
+   h(s);
+   T t;
+   h(t);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/friend8.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/friend8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/friend8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/friend8.C	Mon Sep 12 19:54:23 2005
***************
*** 0 ****
--- 1,12 ----
+ // Test that we look up a friend declared at top level ahead of an
+ // undeclared friend found by argument dependent lookup.
+ 
+ // { dg-do run }
+ 
+ int f(int) { return 0; }
+ 
+ struct S {
+   friend int f(char) { return 1; }
+ };
+ 
+ int main () { return f('a'); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/friend9.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/friend9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/friend9.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/friend9.C	Wed Jan  4 01:04:03 2006
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/25492
+ 
+ class Base {
+ public:
+   class Nested {};
+ };
+ 
+ class Derived:public Base {
+ public:
+   class Nested {
+   public:
+     void m();
+   };
+   class AnotherNested {
+     friend class Nested;
+     AnotherNested() {}
+   };
+ };
+ 
+ void Derived::Nested::m() {
+   Derived::AnotherNested instance;
+ 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/strong-using-2.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/strong-using-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/strong-using-2.C	Thu Jan 15 14:42:13 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/strong-using-2.C	Mon Nov 14 01:45:19 2005
***************
*** 3,12 ****
  // { dg-do compile }
  
  namespace foo_impl {
!   class T; // { dg-error "first declared" "" }
  }
  namespace bar_impl {
!   class T; // { dg-error "also declared" "" }
  }
  namespace foo {
    using namespace foo_impl __attribute__((strong));
--- 3,12 ----
  // { dg-do compile }
  
  namespace foo_impl {
!   class T; // { dg-error "T" "" }
  }
  namespace bar_impl {
!   class T; // { dg-error "T" "" }
  }
  namespace foo {
    using namespace foo_impl __attribute__((strong));
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage2.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage2.C	Thu Jul 21 03:56:46 2005
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ // PR c++/2922
+ 
+ char& f(char);
+ 
+ template<class T>
+ void g(T t)
+ {
+   char& c1 = f(1);        // not dependent
+   char& c2 = f(t);        // dependent
+ }
+ 
+ int&f (int);
+ 
+ int main()
+ {
+   g(2);    // f(char) followed by f(int)
+   g('a');  // two f(char)
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage3.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage3.C	Thu Jul 21 03:56:46 2005
***************
*** 0 ****
--- 1,22 ----
+ // { dg-do compile }
+ // PR c++/2922
+ 
+ namespace tpl_ {
+ 
+ template<class T>
+ char test(T);
+ 
+ template<class T>
+ struct check
+ {
+     static T const t;
+     enum { value = 1 == sizeof(test(t)) };
+ };
+ 
+ double test(int);
+ 
+ }
+ 
+ bool const two_phase_lookup_supported = tpl_::check<int>::value;
+ 
+ int compile_time_assert[two_phase_lookup_supported ? 1 : -1];
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage4.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage4.C	Thu Jul 21 03:56:46 2005
***************
*** 0 ****
--- 1,20 ----
+ 
+ // Contributed by Douglas Gregor <doug.gregor@gmail.com>
+ 
+ template<class T> struct wrap {};
+ 
+ template<typename T> bool& operator==(wrap<T>, wrap<T>);
+ 
+ template<typename T>
+ void g(T, wrap<wrap<int> > x)
+ {
+   bool& b = x == x; // { dg-bogus "invalid initialization of reference" "" { xfail *-*-*} }
+ }
+ 
+ template<typename T> int& operator==(wrap<wrap<T> >, wrap<wrap<T> >);
+ 
+ void h()
+ {
+   wrap<wrap<int> > x;
+   g(17, x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage5.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/two-stage5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/two-stage5.C	Thu Jul 21 15:14:59 2005
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do run }
+ extern "C" void abort ();
+ 
+ namespace N {
+ template <class T> T foo (T) { return T (); }
+ template <class T> T bar (T t) { return foo (t); }
+ }
+ 
+ struct S { S (int i = 0): i_ (i) { } int i_; };
+ 
+ namespace N {
+ /* template <> */ S foo (S) { return S (1); }
+ }
+ 
+ int main ()
+ {
+   if (1 == N::bar (S()).i_)
+      abort ();
+ } 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/using12.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/using12.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/using12.C	Mon Aug  2 18:49:07 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/using12.C	Mon Jan  2 20:47:21 2006
***************
*** 1,4 ****
  // PR c++/16707
  
  int i;
! using N::i; // { dg-error "declared|expected" }
--- 1,4 ----
  // PR c++/16707
  
  int i;
! using N::i; // { dg-error "'N' has not been declared" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/lookup/using2.C gcc-4.1.0/gcc/testsuite/g++.dg/lookup/using2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/lookup/using2.C	Sat Dec 28 07:48:06 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/lookup/using2.C	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  
  // You should have received a copy of the GNU General Public License along
  // with this library; see the file COPYING.  If not, write to the Free
! // Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
  // USA.
  
  // Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
--- 13,19 ----
  
  // You should have received a copy of the GNU General Public License along
  // with this library; see the file COPYING.  If not, write to the Free
! // Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
  // USA.
  
  // Contributed by Gabriel Dos Reis <gdr@codesourcery.com>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/20050511-1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/20050511-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/20050511-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/20050511-1.C	Fri Oct 14 19:50:08 2005
***************
*** 0 ****
--- 1,65 ----
+ /* { dg-do run } */
+ /* { dg-options "-w" } */
+ /* { dg-options "-O3 -w" { target powerpc*-*-* } } */
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ typedef signed short SINT16 ;
+ typedef unsigned long UINT32 ;
+ typedef unsigned int UINT ;
+ 
+ class A
+ {
+ public:
+     union   
+     {
+       SINT16 xy[2];
+       UINT32 abXY;
+     };
+   bool operator==(const A& other) const {return abXY == other.abXY;}
+   bool operator!=(const A& other) const {return abXY != other.abXY;}
+ };
+ 
+ template <int size> struct pArray { unsigned char u08[16*(((size*1)+15)/16)] __attribute__ ((aligned(16))); };
+ 
+ struct B
+ {
+   union {
+     A mvL[2];
+     pArray<1> xyz;
+   };
+ } ;
+ 
+ typedef struct
+ {
+   UINT w;
+   B b;
+ 
+ }C;
+ 
+ 
+ UINT32 bar (const C * sPtr)
+ {
+   UINT w = sPtr->w;
+   A a;
+ 
+   a.xy[0] = sPtr->b.mvL[w].xy[0]<<2;
+   a.xy[1] = sPtr->b.mvL[w].xy[1]<<2;
+ 
+   if (a.xy[0] != ((SINT16) 0xffff << 2))
+ 	abort ();
+ }
+ 
+ int main()
+ {
+ 	A a;
+ 	C c;
+ 	a.xy[0] = 0xffff;
+ 	a.xy[1] = 0xffff;
+ 	c.w=0;
+ 	c.b.mvL[0].xy[0] = a.xy[0];
+ 	c.b.mvL[0].xy[1] = a.xy[1];
+ 
+ 	bar (&c);
+ }
+ 	
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/alias2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/alias2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/alias2.C	Mon Mar 18 22:25:50 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/alias2.C	Mon Apr 25 18:28:55 2005
***************
*** 1,7 ****
  // { dg-do run }
  // { dg-options "-O2" }
  
! extern "C" int printf (...);
  
  struct _Deque_iterator {
    int _M_cur;
--- 1,7 ----
  // { dg-do run }
  // { dg-options "-O2" }
  
! extern "C" int printf (const char*, ...);
  
  struct _Deque_iterator {
    int _M_cur;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex1.C	Mon Jun 13 06:13:39 2005
***************
*** 0 ****
--- 1,9 ----
+ // PR tree-opt/21994
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ 
+ _Complex float f(void);
+ _Complex float g(void) throw()
+ {
+   return f();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex2.C	Fri Jun 17 00:56:07 2005
***************
*** 0 ****
--- 1,24 ----
+ // PR 22022
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ 
+ _Complex float f();
+ _Complex float g();
+ _Complex float h()throw();
+ void i(_Complex float)throw();
+ 
+ void j(void)
+ {
+   _Complex float x = h();
+   try
+   {
+     try
+     {
+       x = f();
+     }catch (...)
+     {
+       x = g();
+     }
+   }catch(...){}
+   i(x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex3.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex3.C	Fri Jun 17 00:56:07 2005
***************
*** 0 ****
--- 1,24 ----
+ // PR 22022
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ 
+ _Complex float f();
+ _Complex float g();
+ _Complex float h()throw();
+ void i(float)throw();
+ 
+ float j(void)
+ {
+   _Complex float x = h();
+   try
+   {
+     try
+     {
+       x = f();
+     }catch (...)
+     {
+       x += g();
+     }
+   }catch(...){}
+   i(__builtin_crealf(x)+__builtin_cimagf(x));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex4.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex4.C	Fri Oct 28 14:26:36 2005
***************
*** 0 ****
--- 1,16 ----
+ // PR 24362
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ 
+ typedef __complex__ double cdouble;
+ cdouble elt_zero();
+ const cdouble *pointer();
+ 
+ cdouble trace(void)
+ {
+   cdouble output = elt_zero();
+   const cdouble *data = pointer();
+   output += data[1];
+   return output;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex5.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/complex5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/complex5.C	Fri Jan 13 14:38:03 2006
***************
*** 0 ****
--- 1,16 ----
+ // PR 24365
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ 
+ typedef __complex__ double cdouble;
+ inline cdouble to_complex(double r) {
+   cdouble z;
+   __real__ z = r;
+   return z;
+ }
+ cdouble elt_zero() {
+   cdouble a = to_complex(0.0);
+   a+=1.0;
+   return a;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/crossjump1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/crossjump1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/crossjump1.C	Wed May 25 21:15:55 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/crossjump1.C	Sat Jun  4 03:24:39 2005
***************
*** 1,6 ****
  // PR middle-end/21492
  // { dg-do compile }
! // { dg-options "-Os -fPIC" }
  
  extern char *bar (const char *, const char *);
  extern char *baz (char *, const char *);
--- 1,7 ----
  // PR middle-end/21492
  // { dg-do compile }
! // { dg-options "-Os" }
! // { dg-options "-Os -fPIC" { target fpic } }
  
  extern char *bar (const char *, const char *);
  extern char *baz (char *, const char *);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/cse2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/cse2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/cse2.C	Sun May 26 19:59:45 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/cse2.C	Tue May 31 16:28:30 2005
***************
*** 1,6 ****
  // This testcase caused ICE on IA-32 in simplify_unary_operation
  // CSE did not assume SUBREGs changing mode from integral to floating.
! // { dg-do run { target i?86-*-* sparc*-*-* } }
  // { dg-options "-O2" }
  
  struct A
--- 1,6 ----
  // This testcase caused ICE on IA-32 in simplify_unary_operation
  // CSE did not assume SUBREGs changing mode from integral to floating.
! // { dg-do run { target i?86-*-* sparc*-*-* x86_64-*-* } }
  // { dg-options "-O2" }
  
  struct A
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/delay-slot-1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/delay-slot-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/delay-slot-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/delay-slot-1.C	Thu Oct 20 12:14:30 2005
***************
*** 0 ****
--- 1,111 ----
+ /* PR rtl-optimization/23585 */
+ /* Testcase by Matti Rintala <matti.rintala@iki.fi> */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ template <class _Ret, class _Tp>
+ class const_mem_fun_t
+ {
+ public:
+   explicit
+   const_mem_fun_t(_Ret (_Tp::*__pf)() const)
+     : _M_f(__pf) {}
+   
+   _Ret
+   operator()(const _Tp* __p) const
+   { return (__p->*_M_f)(); }
+ private:
+   _Ret (_Tp::*_M_f)() const;
+ };
+ 
+ template <class _Ret, class _Tp>
+ class const_mem_fun_ref_t
+ {
+ public:
+   explicit
+   const_mem_fun_ref_t(_Ret (_Tp::*__pf)() const)
+     : _M_f(__pf) {}
+   
+   _Ret
+   operator()(const _Tp& __r) const
+   { return (__r.*_M_f)(); }
+ private:
+   _Ret (_Tp::*_M_f)() const;
+ };
+ 
+ template <class _Ret, class _Tp, class _Arg>
+ class const_mem_fun1_t
+ {
+ public:
+   explicit
+   const_mem_fun1_t(_Ret (_Tp::*__pf)(_Arg) const)
+     : _M_f(__pf) {}
+   
+   _Ret
+   operator()(const _Tp* __p, _Arg __x) const
+   { return (__p->*_M_f)(__x); }
+ private:
+   _Ret (_Tp::*_M_f)(_Arg) const;
+ };
+ 
+ 
+ template <class _Ret, class _Tp, class _Arg>
+ class const_mem_fun1_ref_t
+ {
+ public:
+   explicit
+   const_mem_fun1_ref_t(_Ret (_Tp::*__pf)(_Arg) const)
+     : _M_f(__pf) {}
+   
+   _Ret
+   operator()(const _Tp& __r, _Arg __x) const
+   { return (__r.*_M_f)(__x); }
+ private:
+   _Ret (_Tp::*_M_f)(_Arg) const;
+ };
+ 
+ template <class _Ret, class _Tp>
+ inline const_mem_fun_t<_Ret, _Tp>
+ mem_fun(_Ret (_Tp::*__f)() const)
+ { return const_mem_fun_t<_Ret, _Tp>(__f); }
+ 
+ template <class _Ret, class _Tp>
+ inline const_mem_fun_ref_t<_Ret, _Tp>
+ mem_fun_ref(_Ret (_Tp::*__f)() const)
+ { return const_mem_fun_ref_t<_Ret, _Tp>(__f); }
+ 
+ template <class _Ret, class _Tp, class _Arg>
+ inline const_mem_fun1_t<_Ret, _Tp, _Arg>
+ mem_fun(_Ret (_Tp::*__f)(_Arg) const)
+ { return const_mem_fun1_t<_Ret, _Tp, _Arg>(__f); }
+ 
+ template <class _Ret, class _Tp, class _Arg>
+ inline const_mem_fun1_ref_t<_Ret, _Tp, _Arg>
+ mem_fun_ref(_Ret (_Tp::*__f)(_Arg) const)
+ { return const_mem_fun1_ref_t<_Ret, _Tp, _Arg>(__f); }
+ 
+ class Class {
+ public:
+   void vf0c() const;
+   void vf1c(const int&) const;
+ };
+ 
+ int main()
+ {
+   Class obj;
+   const Class& objc = obj;
+ 
+   mem_fun(&Class::vf0c)(&objc);
+   mem_fun(&Class::vf1c)(&objc, 1);
+ 
+   mem_fun_ref(&Class::vf0c)(objc);
+   mem_fun_ref(&Class::vf1c)(objc, 1);
+   return 0;
+ }
+ 
+ void Class::vf0c() const
+ {}
+ 
+ void Class::vf1c(const int&) const
+ {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/init1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/init1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/init1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/init1.C	Sat Dec 24 08:56:10 2005
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/23171
+ // { dg-options "-O" }
+ 
+ int *p = (int*)(int[1]){0};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/inline10.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/inline10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/inline10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/inline10.C	Sun Dec 11 04:24:42 2005
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/25010
+ // { dg-options "-O2" }
+ 
+ #pragma interface
+ 
+ struct T
+ {
+   T *p;
+ 
+   void baz ()
+   {
+     p->baz ();
+   }
+ };
+ 
+ void foo (T *p)
+ {
+   p->baz ();
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/inline9.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/inline9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/inline9.C	Wed Dec 15 19:14:55 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/inline9.C	Fri Dec  9 23:56:34 2005
***************
*** 3,9 ****
  // Testcase by Alan Modra <amodra@bigpond.net.au>
  // { dg-do run }
  // { dg-options "-O" }
! // { dg-options "-O -mtune=i686" { target i?86-*-* } }
  
  struct thread_info
  {
--- 3,9 ----
  // Testcase by Alan Modra <amodra@bigpond.net.au>
  // { dg-do run }
  // { dg-options "-O" }
! // { dg-options "-O -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
  
  struct thread_info
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/life1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/life1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/life1.C	Fri May 16 19:35:42 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/life1.C	Fri Dec  9 23:38:19 2005
***************
*** 1,6 ****
  // This testcase did not set up the pic register on IA-32 due
  // to bug in calculate_global_regs_live EH edge handling.
! // { dg-do compile { target i?86-*-linux* } }
  // { dg-options "-O2 -fPIC" }
  
  struct A { };
--- 1,8 ----
  // This testcase did not set up the pic register on IA-32 due
  // to bug in calculate_global_regs_live EH edge handling.
! // { dg-do compile { target i?86-*-linux* x86_64-*-linux* } }
! // { dg-require-effective-target ilp32 }
! // { dg-require-effective-target fpic }
  // { dg-options "-O2 -fPIC" }
  
  struct A { };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/longbranch2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/longbranch2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/longbranch2.C	Wed Nov 17 17:21:42 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/longbranch2.C	Sat Dec 10 13:47:29 2005
***************
*** 2,9 ****
  // Originator: thor@math.tu-berlin.de
  
  // { dg-do compile }
! // { dg-options "-O3 -funroll-loops -mtune=k6 -fomit-frame-pointer" { target i?86-*-*  } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  // This used to fail to assemble because of an out-of-range 'loop' instructions.
  
--- 2,9 ----
  // Originator: thor@math.tu-berlin.de
  
  // { dg-do compile }
! // { dg-options "-O3 -funroll-loops -mtune=k6 -fomit-frame-pointer" { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
! 
  
  // This used to fail to assemble because of an out-of-range 'loop' instructions.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/loop2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/loop2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/loop2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/loop2.C	Wed Jul 27 01:01:48 2005
***************
*** 0 ****
--- 1,24 ----
+ // PR middle-end/22484
+ // { dg-do compile }
+ // { dg-options "-O3" }
+ 
+ struct A { ~A(); };
+ typedef bool B;
+ 
+ bool foo();
+ 
+ bool bar(A&)
+ {
+   B b = true;
+ 
+   for (int i = 0; i < 2 && b; ++i)
+     b = foo();
+ 
+   return b;
+ }
+ 
+ void baz()
+ {
+   A a;
+   if (bar(a)) foo();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/mmx1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/mmx1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/mmx1.C	Thu Feb 21 21:16:22 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/mmx1.C	Sat Dec 10 13:47:29 2005
***************
*** 3,9 ****
  // mmx -> mmx register moves.
  // { dg-do compile }
  // { dg-options "-O2" }
! // { dg-options "-fno-exceptions -O2 -mmmx -fPIC" { target i?86-*-*  } }
  
  struct A {
    unsigned a0;
--- 3,9 ----
  // mmx -> mmx register moves.
  // { dg-do compile }
  // { dg-options "-O2" }
! // { dg-options "-fno-exceptions -O2 -mmmx -fPIC" { target { { i?86-*-* x86_64-*-* } && ilp32 }  } }
  
  struct A {
    unsigned a0;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/mmx2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/mmx2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/mmx2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/mmx2.C	Tue Oct 11 08:42:25 2005
***************
*** 0 ****
--- 1,23 ----
+ // { dg-do link { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-O2 -mmmx" }
+ 
+ #include <mmintrin.h>
+ 
+ static union u { __m64 m; long long l; } u;
+ extern "C" void abort (void);
+ 
+ __attribute__((noinline))
+ void bar (__m64 x)
+ {
+   u.m = x;
+ }
+ 
+ int
+ main ()
+ {
+   bar (_mm_set_pi32 (0x000000FF,0xFFFF00FF));
+   _mm_empty ();
+   if (u.l != 0xffffff00ffLL)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/nothrow1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/nothrow1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/nothrow1.C	Sat Nov  6 19:47:09 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/nothrow1.C	Thu Mar 31 18:34:19 2005
*************** int main()
*** 22,24 ****
--- 22,25 ----
  
  // The catch block should be optimized away.
  // { dg-final { scan-tree-dump-times "-42" 0 "optimized" } }
+ // { dg-final { cleanup-tree-dump "optimized" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/nrv10.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/nrv10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/nrv10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/nrv10.C	Fri Feb  3 21:56:03 2006
***************
*** 0 ****
--- 1,48 ----
+ // PR c++/25979
+ // Bug: we were eliding too many temporaries, so that a1 was used
+ // as both 'a' and 'x' in the second operator+.
+ // { dg-do run }
+ 
+ struct A
+ {
+     A() : data1_(0), data2_(0) {}
+     A(int i, int j) : data1_(i), data2_(j) {}
+     A operator+(int);
+     friend A operator+(int, const A&);
+     ~A() {}
+ //private:
+     int data1_;
+     int data2_;
+ };
+ 
+ extern bool x;
+ 
+ extern "C" void abort ();
+ 
+ int main()
+ {
+     A a1(1,2);
+     a1 = (x ? a1 + 3 : 3 + a1);
+     if (a1.data1_ != 3 || a1.data2_ != 2)
+       abort ();
+ }
+ 
+ bool x = false;
+ 
+ A
+ A::operator+(int i)
+ {
+     A a;
+     a = *this;
+     a.data2_ = i;
+     return a;
+ }
+ 
+ A
+ operator+(int i, const A& x)
+ {
+     A a;
+     a = x;
+     a.data1_ = i;
+     return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/nrv11.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/nrv11.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/nrv11.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/nrv11.C	Fri Feb  3 21:56:03 2006
***************
*** 0 ****
--- 1,58 ----
+ // PR middle-end/25977
+ // Bug: We were assuming that the return slot of the current function is
+ // always safe to use as the return slot for another call, because its
+ // address cannot escape.  But its address can escape if we perform the
+ // named return value optimization.
+ 
+ // { dg-do run }
+ 
+ struct A
+ {
+     A( int left, int top, int width, int height )
+       : x1(left), y1(top), x2(left+width-1), y2(top+height-1) {}
+ 
+     //A(const A& o) : x1(o.x1), y1(o.y1), x2(o.x2), y2(o.y2) {}
+     //A& operator=(const A& o ) { x1=o.x1; y1=o.y1; x2=o.x2; y2=o.y2; return *this; }
+ 
+     A  operator&(const A &r) const
+     {
+ 	A tmp(0, 0, -1, -1);
+ 	tmp.x1 = ((r.x1) < (x1) ? (x1) : (r.x1));
+ 	tmp.x2 = ((x2) < (r.x2) ? (x2) : (r.x2));
+ 	tmp.y1 = ((r.y1) < (y1) ? (y1) : (r.y1));
+ 	tmp.y2 = ((y2) < (r.y2) ? (y2) : (r.y2));
+ 	return tmp;
+     }
+ 
+     int x1;
+     int y1;
+     int x2;
+     int y2;
+ };
+ 
+ bool operator==( const A &r1, const A &r2 )
+ {
+     return r1.x1==r2.x1 && r1.x2==r2.x2 && r1.y1==r2.y1 && r1.y2==r2.y2;
+ }
+ 
+ static A test()
+ {
+     A all = A( 0, 0, 1024, 768);
+     A a = all;
+     A r = all;
+     a = a & r;
+     return a;
+ }
+ 
+ extern "C" void abort(void);
+ 
+ int main( int argc, char ** argv )
+ {
+     A all = A( 0, 0, 1024, 768);
+     A a = test();
+ 
+     if ( ! ( a == all))
+       abort();
+ 
+     return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/nrv9.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/nrv9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/nrv9.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/nrv9.C	Fri Jun 24 14:21:13 2005
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/19317
+ // If we do both NRV and caller-side return slot opt for ga = f()
+ // constructing la sets ga.i to 0 too soon.
+ 
+ extern "C" void abort();
+ 
+ struct A
+ {
+   int i;
+   int pad[32];			// force return in memory
+   A(): i(0) {}
+   A(int ia): i(ia) {}
+ };
+ 
+ A ga(42);
+ 
+ A f()
+ {
+   A la;
+   if (ga.i != 42)
+     abort();
+   return la;
+ }
+ 
+ int main()
+ {
+   ga = f ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19317-1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19317-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19317-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19317-1.C	Thu Dec  8 21:56:44 2005
***************
*** 0 ****
--- 1,39 ----
+ // PR c++/19317
+ // { dg-options "-O2" }
+ // { dg-do run }
+ // Origin: Dirk Mueller <mueller@kde.org>
+ 
+ extern "C" void abort (void);
+ 
+ struct A
+ {
+   A () { d = e = 0; f = -1; }
+   A (int x) : d (0), e (0), f (x) { }
+   A b (const A &r) const;
+   int d;
+   int e;
+   int f;
+ };
+ 
+ A
+ A::b (const A & r) const
+ {
+   A t;
+   t.f = f < r.f ? f : r.f;
+   return t;
+ }
+ 
+ int
+ main ()
+ {
+   A a (100);
+   a = a.b (A (10));
+   if (a.f != 10)
+     abort ();
+ 
+   A c (10);
+   A d (100);
+   c = d.b (c);
+   if (c.f != 10)
+     abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19317-2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19317-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19317-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19317-2.C	Thu Dec  8 21:56:44 2005
***************
*** 0 ****
--- 1,32 ----
+ // PR c++/19317
+ // { dg-options "-O2" }
+ // { dg-do run }
+ 
+ extern "C" void abort (void);
+ 
+ struct A
+ {
+   A () { d = e = 0; f = -1; }
+   A (int x) : d (0), e (0), f (x) { }
+   A b () const;
+   int d;
+   int e;
+   int f;
+ };
+ 
+ A
+ A::b () const
+ {
+   A t;
+   t.f = 10 + this->f;
+   return t;
+ }
+ 
+ int
+ main ()
+ {
+   A a (100);
+   a = a.b ();
+   if (a.f != 110)
+     abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19317-3.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19317-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19317-3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19317-3.C	Thu Dec  8 21:56:44 2005
***************
*** 0 ****
--- 1,37 ----
+ // PR c++/19317
+ // { dg-options "-O2" }
+ // { dg-do run }
+ 
+ extern "C" void abort (void);
+ 
+ struct A { int c; int d; int e; int f; };
+ 
+ A
+ foo (const A *x, const A *r)
+ {
+   A t;
+   t.c = -1;
+   t.c += x->c < r->c ? x->c : r->c;
+   t.d = 0;
+   t.e = 0;
+   t.f = 0;
+   return t;
+ }
+ 
+ int
+ main ()
+ {
+   A a;
+   a.c = 10;
+   a.d = 0;
+   a.e = 0;
+   a.f = 0;
+   A b;
+   b.c = 100;
+   b.d = 0;
+   b.e = 0;
+   b.f = 0;
+   a = foo (&b, &a);
+   if (a.c != 9)
+     abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19650.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19650.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr19650.C	Mon Jan 31 18:00:52 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr19650.C	Wed Sep 28 20:43:47 2005
***************
*** 1,4 ****
! // { dg-options "-O1" }
  // { dg-do "run" }
  // Tests the fold bug described in PR 19650.
  #include <stdio.h>
--- 1,4 ----
! // { dg-options "-O1 -w -fpermissive" }
  // { dg-do "run" }
  // Tests the fold bug described in PR 19650.
  #include <stdio.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr20995-1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr20995-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr20995-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr20995-1.C	Mon Apr 25 23:32:56 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ template<int N> void foo()
+ {
+     double d = (N ? 0.0 : 0) + 1;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr23714.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr23714.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr23714.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr23714.C	Thu Oct  6 00:02:57 2005
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile }
+ // { dg-options "-O2 -fnon-call-exceptions" }
+ 
+ void run (void) {
+   float stack[1];
+   float *sp = stack;
+   try
+   {
+     float value2 = ((float) *(--sp));
+     float value1 = ((float) *(--sp));
+     *(sp++) = (value1 - value2);
+   }
+   catch (int *ex)
+   {
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr24665.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr24665.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr24665.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr24665.C	Sun Nov 20 19:05:43 2005
***************
*** 0 ****
--- 1,29 ----
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ 
+ typedef unsigned long T;
+ typedef volatile T* const hwreg_t;
+ struct RegisterLayout
+ {
+     T intmask;
+ };
+ struct Controller_t
+ {
+     Controller_t();
+     inline void
+     disableInterrupt()
+     {
+         *mpMaskRegister = 0;
+     };
+     static hwreg_t mpMaskRegister;
+ };
+ 
+ extern char SimulatedRegisters[];
+ 
+ hwreg_t Controller_t::mpMaskRegister
+   = &(reinterpret_cast<volatile RegisterLayout*>(SimulatedRegisters))->intmask;
+ 
+ Controller_t::Controller_t()
+ {
+     disableInterrupt();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr24780.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr24780.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr24780.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr24780.C	Sat Nov 12 20:44:55 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/24780
+ // { dg-do compile }
+ 
+ template<typename S=int>
+ struct Move {
+   Move();
+   static Move<S> const MOVES[2][2];
+ };
+ template<typename S>
+   Move<S> const Move<S>::MOVES[2][2]={};
+ typedef Move<int> const MoveClass;
+ void moves(int x, int y) {
+   &MoveClass::MOVES[x][y];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr25005.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr25005.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/pr25005.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/pr25005.C	Fri Dec 23 09:44:41 2005
***************
*** 0 ****
--- 1,34 ----
+ // PR target/25005
+ // { dg-options "-O2 -funroll-loops" }
+ // { dg-do compile }
+ 
+ inline void *operator new (__SIZE_TYPE__, void *__p) throw() { return __p; }
+ 
+ struct M { ~M() { } };
+ 
+ struct P
+ {
+   P () { v[0] = 0; v[1] = 0; v[2] = 0; }
+   P (const P &x) { for (int i = 0; i < 3; ++i) v[i] = x.v[i]; }
+   double v[3];
+ };
+ 
+ struct V : public M
+ {
+   V (const P *x, const P *y)
+   {
+     P *b = this->a = ::new P[2];
+     for (; x != y; ++x, ++b)
+       ::new (b) P(*x);
+   }
+   P *a;
+ };
+ 
+ void bar (const V &);
+ 
+ void
+ foo ()
+ {
+   const P d[2] = { P(), P() };
+   bar (V (&d[0], &d[2]));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/range-test-1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/range-test-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/range-test-1.C	Fri Jun 18 23:15:59 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/range-test-1.C	Mon Nov 28 18:10:05 2005
***************
*** 2,10 ****
--- 2,14 ----
  // { dg-do run } */
  // { dg-options "-O2" } */
  
+ #ifndef __RANGE_TEST_HDR_INCL
+ #define __RANGE_TEST_HDR_INCL
+ /* Protect against fix-header weakness */
  #include <stdlib.h>
  #include <stdio.h>
  #include <limits.h>
+ #endif
  
  #if (INT_MAX == 2147483647) && (INT_MIN == -2147483648) \
      && (SCHAR_MIN == -128) && (SCHAR_MAX == 127) \
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/reg-stack4.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/reg-stack4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/reg-stack4.C	Wed Nov 17 17:21:43 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/reg-stack4.C	Sat Dec 10 13:47:29 2005
***************
*** 5,12 ****
  // deleted a valid edge.
  
  // { dg-do compile }
! // { dg-options "-mtune=i586 -O2" { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  
  struct array {
    double data;
--- 5,11 ----
  // deleted a valid edge.
  
  // { dg-do compile }
! // { dg-options "-mtune=i586 -O2" { target { { i?86-*-* x86_64-*-* } && ilp32 } } }
  
  struct array {
    double data;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/rtti2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/rtti2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/rtti2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/rtti2.C	Mon Apr 25 18:08:35 2005
***************
*** 0 ****
--- 1,17 ----
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ // We used to ICE in compare_values as the types for a comparison
+ // were not the same kind of types.
+ 
+ struct class1
+ {
+   virtual ~class1 ();
+ };
+ struct class2 :  class1 { };
+ 
+ void f(class1 * oo)
+ {
+   class2 * oj = dynamic_cast <class2 *>(oo) ;
+   if (oj)
+     delete oo;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/vrp2.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/vrp2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/vrp2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/vrp2.C	Sat Jul 23 02:32:25 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ /* VRP was miscompiling the following as it thought &a->b was a dereference
+    and therfore a was non-null.  
+    Reduced from Mozilla by Serge Belyshev <belyshev@depni.sinp.msu.ru>.  */
+ 
+ extern "C" void abort (void);
+ struct T { int i; } t;
+ struct A : T { int j; } *p = __null;
+ 
+ int main (void)
+ {
+   if (p == &t)
+     return 0;
+   if (p)
+     abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/opt/vt1.C gcc-4.1.0/gcc/testsuite/g++.dg/opt/vt1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/opt/vt1.C	Mon Nov 29 20:30:08 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/opt/vt1.C	Sun Oct 16 01:14:19 2005
***************
*** 1,6 ****
  // Test whether vtable for S is not put into read-only section.
! // { dg-do compile }
! // { dg-skip-if "No -fpic" { mmix-*-* } { "*" } { "" } }
  // { dg-options "-O2 -fpic -fno-rtti" }
  // Origin: Jakub Jelinek <jakub@redhat.com>
  
--- 1,5 ----
  // Test whether vtable for S is not put into read-only section.
! // { dg-do compile { target fpic } }
  // { dg-options "-O2 -fpic -fno-rtti" }
  // Origin: Jakub Jelinek <jakub@redhat.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/PR23205.C gcc-4.1.0/gcc/testsuite/g++.dg/other/PR23205.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/PR23205.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/PR23205.C	Thu Oct  6 00:47:21 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */
+ /* { dg-options "-gstabs+ -fno-eliminate-unused-debug-types" } */
+ 
+ const int foobar = 4;
+ int foo ()
+ {
+         return foobar + 1;
+ }
+ 
+ int main()
+ {
+         int i;
+         i = foo();
+         return i;
+ }
+ 
+ /* { dg-final { scan-assembler ".stabs.*foobar:c=i" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/big-struct.C gcc-4.1.0/gcc/testsuite/g++.dg/other/big-struct.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/big-struct.C	Sun Apr 14 20:55:48 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/big-struct.C	Thu May 26 19:10:52 2005
***************
*** 1,4 ****
! // { dg-do compile { target i?86-*-* } }
  
  struct A
  {
--- 1,5 ----
! // { dg-do compile { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  
  struct A
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/crash-4.C gcc-4.1.0/gcc/testsuite/g++.dg/other/crash-4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/crash-4.C	Tue Jul 12 11:27:54 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/crash-4.C	Sun Dec  4 13:01:48 2005
***************
*** 4,19 ****
  // PR 20678: ICE on error message
  // Origin:  Andrew Pinski pinskia@gcc.gnu.org
  
  struct a
  {
    a(const a&);
  };
  struct b
! { // { dg-error "cannot bind packed field" }
!   a aa __attribute__((packed));
  };
  struct c
  {
    b bb;
!   c(const b& __a): bb(__a) {} // { dg-error "synthesized" }
  };
--- 4,26 ----
  // PR 20678: ICE on error message
  // Origin:  Andrew Pinski pinskia@gcc.gnu.org
  
+ // NOTE: This test assumes packed structure layout differs from unpacked
+ //       structure layout.  This isn't true, e.g., with the default
+ //       arm-none-elf options.
+ // { dg-options "-mstructure-size-boundary=8" { target arm-*-* } }
+ 
  struct a
  {
+   int m;
    a(const a&);
  };
  struct b
! { // { dg-error "cannot bind packed field" "" { target { ! default_packed } } }
!   char c;
!   a aa __attribute__((packed)); // { dg-warning "attribute ignored" "" { target default_packed } }
  };
  struct c
  {
    b bb;
!   c(const b& __a): bb(__a) {} // { dg-error "synthesized" "" { target { ! default_packed } } }
  };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/default1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/default1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/default1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/default1.C	Fri Dec  2 14:34:34 2005
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/24103
+ // ICE in simple_cst_equal
+ // Origin: Alexander Stepanov <astepanov@softminecorp.com>
+ // { dg-do compile }
+ // { dg-options "" }
+ 
+ struct S
+ {
+   int i;
+ };
+ 
+ struct A
+ {
+   A(S = (S){0});
+ };
+ 
+ struct B
+ {
+   B(S = (S){0});
+ };
+ 
+ B::B(S) {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/default2.C gcc-4.1.0/gcc/testsuite/g++.dg/other/default2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/default2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/default2.C	Thu Jan 19 09:56:44 2006
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/16829
+ // { dg-do "compile" }
+ 
+ template<typename T> void foo(T, int = 0, int) {}  // { dg-error "default" }
+ 
+ void bar()
+ {
+   foo(0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/default3.C gcc-4.1.0/gcc/testsuite/g++.dg/other/default3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/default3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/default3.C	Thu Jan 19 09:56:44 2006
***************
*** 0 ****
--- 1,109 ----
+ // PR c++/16829
+ // { dg-do "compile" }
+ 
+ void f1(int = 0, int);                       // { dg-error "default" }
+ 
+ void f2(int = 0, int) {}                     // { dg-error "default" }
+ 
+ void f3(int, int);
+ void f3(int = 0, int);                       // { dg-error "default" }
+ 
+ void f4(int, int);
+ void f4(int = 0, int) {}                     // { dg-error "default" }
+ 
+ void f5();
+ void f5(int = 0, int);                       // { dg-error "default" }
+ 
+ void f6();
+ void f6(int = 0, int) {}                     // { dg-error "default" }
+ 
+ template<typename> void g1(int = 0, int);    // { dg-error "default" }
+ 
+ template<typename> void g2(int = 0, int) {}  // { dg-error "default" }
+ 
+ template<typename> void g3(int, int);
+ template<typename> void g3(int = 0, int);    // { dg-error "default" }
+ 
+ template<typename> void g4(int, int);
+ template<typename> void g4(int = 0, int) {}  // { dg-error "default" }
+ 
+ template<typename> void g5();
+ template<typename> void g5(int = 0, int);    // { dg-error "default" }
+ 
+ template<typename> void g6();
+ template<typename> void g6(int = 0, int) {}  // { dg-error "default" }
+ 
+ template<typename T> void g7(T, T)   {}
+ template<typename T> void g7(T* = 0, T*) {}  // { dg-error "default" }
+ 
+ 
+ struct A
+ {
+   void F1(int = 0, int);                       // { dg-error "default" }
+ 
+   void F2(int = 0, int) {}                     // { dg-error "default" }
+ 
+   void F3(int, int);
+ 
+   void F4();
+   void F4(int = 0, int);                       // { dg-error "default" }
+ 
+   void F5();
+   void F5(int = 0, int) {}                     // { dg-error "default" }
+ 
+   template<typename> void G1(int = 0, int);    // { dg-error "default" }
+ 
+   template<typename> void G2(int = 0, int) {}  // { dg-error "default" }
+ 
+   template<typename> void G3(int, int);
+ 
+   template<typename> void G4();
+   template<typename> void G4(int = 0, int);    // { dg-error "default" }
+ 
+   template<typename> void G5();
+   template<typename> void G5(int = 0, int) {}  // { dg-error "default" }
+ 
+   template<typename T> void G6(T, T)   {}
+   template<typename T> void G6(T* = 0, T*) {}  // { dg-error "default" }
+ };
+ 
+ void A::F3(int = 0, int) {}                     // { dg-error "default" }
+ 
+ template<typename> void A::G3(int = 0, int) {}  // { dg-error "default" }
+ 
+ 
+ template<typename> struct B
+ {
+   void F1(int = 0, int);                       // { dg-error "default" }
+ 
+   void F2(int = 0, int) {}                     // { dg-error "default" }
+ 
+   void F3(int, int);
+ 
+   void F4();
+   void F4(int = 0, int);                       // { dg-error "default" }
+ 
+   void F5();
+   void F5(int = 0, int) {}                     // { dg-error "default" }
+ 
+   template<typename> void G1(int = 0, int);    // { dg-error "default" }
+ 
+   template<typename> void G2(int = 0, int) {}  // { dg-error "default" }
+ 
+   template<typename> void G3(int, int);
+ 
+   template<typename> void G4();
+   template<typename> void G4(int = 0, int);    // { dg-error "default" }
+ 
+   template<typename> void G5();
+   template<typename> void G5(int = 0, int) {}  // { dg-error "default" }
+ 
+   template<typename T> void G6(T, T)   {}
+   template<typename T> void G6(T* = 0, T*) {}  // { dg-error "default" }
+ };
+ 
+ template<typename T>
+ void B<T>::F3(int = 0, int) {}  // { dg-error "default" }
+ 
+ template<typename T> template<typename>
+ void B<T>::G3(int = 0, int) {}  // { dg-error "default" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/error10.C gcc-4.1.0/gcc/testsuite/g++.dg/other/error10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/error10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/error10.C	Sun Jun 12 23:46:46 2005
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/21930
+ // Test case by Volker Reichelt
+ // { dg-do compile }
+ 
+ template<int> struct A {};
+ 
+ template<int N>
+ void foo(const A<N> &a)
+ { -A<N>(a); } // { dg-error "\\(\\(const A<0>\\*\\)a\\)" "" }
+ 
+ void bar()
+ {
+     foo(A<0>()); // { dg-error "instantiated from here" "" }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/friend3.C gcc-4.1.0/gcc/testsuite/g++.dg/other/friend3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/friend3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/friend3.C	Tue Oct 18 16:20:55 2005
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/22293
+ // Origin: Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+ // { dg-do compile }
+ 
+ struct A
+ {
+   friend ~A();  // { dg-error "qualified name" }
+ };
+ 
+ struct B
+ {
+   friend ~A();  // { dg-error "qualified name" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/friend4.C gcc-4.1.0/gcc/testsuite/g++.dg/other/friend4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/friend4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/friend4.C	Mon Jan  2 20:42:35 2006
***************
*** 0 ****
--- 1,8 ----
+ // Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ // Misleading diagnostic
+ 
+ struct A
+ {
+   friend void A::foo();  // { dg-error "implicitly friends" }
+   friend A::~A();        // { dg-error "implicitly friends" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/i386-1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/i386-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/i386-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/i386-1.C	Thu Dec  8 01:32:54 2005
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-march=pentium4" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ #include <xmmintrin.h>
+ #include <stdio.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ int main(int argc, char** argv) {
+   float a = 1.0f;
+   float b = 2.0f;
+   float c = 3.0f;
+   float r;
+ 
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
+       != (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
+     /* If host has no vector support, pass.  */
+     return 0;
+ 
+   __m128 v = _mm_set_ps(a, b, c, 0);
+   
+   v = (__m128)_mm_srli_si128((__m128i)v, 4);
+   _mm_store_ss(&r, v);
+   if (r != 3.0f)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/i386-2.C gcc-4.1.0/gcc/testsuite/g++.dg/other/i386-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/i386-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/i386-2.C	Wed Jan  4 09:19:53 2006
***************
*** 0 ****
--- 1,12 ----
+ /* Test that {,x,e,p}mmintrin.h and mm_malloc.h are
+    usable with -pedantic-errors.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-pedantic-errors -msse3" } */
+ 
+ #include <mmintrin.h>
+ #include <xmmintrin.h>
+ #include <emmintrin.h>
+ #include <pmmintrin.h>
+ #include <mm_malloc.h>
+ 
+ int dummy;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/large-size-array.C gcc-4.1.0/gcc/testsuite/g++.dg/other/large-size-array.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/large-size-array.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/large-size-array.C	Fri Oct 28 14:57:30 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ #include <limits.h>
+ 
+ #ifdef __LP64__
+ #define DIM UINT_MAX>>1
+ #else
+ #define DIM USHRT_MAX>>1
+ #endif
+ 
+ int
+ sub (int *a)
+ {
+   return a[0];
+ }
+ 
+ int
+ main (void)
+ {
+   int a[DIM][DIM];  /* { dg-error "size of array 'a' is too large" } */
+   return sub (&a[0][0]);
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/packed1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/packed1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/packed1.C	Sun Nov 14 11:28:14 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/packed1.C	Sun Dec  4 13:01:48 2005
***************
*** 11,17 ****
  
  struct thing { int m; };
  
! struct pod {char a; thing m __attribute__ ((packed)); };
  
  int main ()
  {
--- 11,21 ----
  
  struct thing { int m; };
  
! struct pod
!  {
!    char a;
!    thing m __attribute__ ((packed)); // { dg-warning "attribute ignored" "" { target default_packed } }
!  };
  
  int main ()
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/pr22003.C gcc-4.1.0/gcc/testsuite/g++.dg/other/pr22003.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/pr22003.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/pr22003.C	Mon Jan 30 17:08:10 2006
***************
*** 0 ****
--- 1,25 ----
+ /* PR rtl-optimization/22003 */
+ /* { dg-do compile } */
+ /* { dg-require-effective-target freorder } */
+ /* { dg-options "-O2 -fno-exceptions -freorder-blocks-and-partition" } */
+ 
+ struct c1
+ {
+       virtual ~c1();
+ };
+ class c4;
+ 
+ struct c2
+ {
+       virtual c4* func();
+ };
+ 
+ struct c3 : c1, c2
+ {
+       c4* func();
+ };
+ 
+ c4* c3::func()
+ {
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/pr22358.C gcc-4.1.0/gcc/testsuite/g++.dg/other/pr22358.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/pr22358.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/pr22358.C	Thu Jul 21 18:29:05 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ 
+ struct a
+ {
+   virtual ~a();
+ };
+ struct b : virtual a { };
+ b a11;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/pr24623.C gcc-4.1.0/gcc/testsuite/g++.dg/other/pr24623.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/pr24623.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/pr24623.C	Wed Nov  9 11:42:38 2005
***************
*** 0 ****
--- 1,69 ----
+ /* This used to ICE due to a backend problem on s390.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ 
+ class ReferenceCounted
+ {
+ public:
+ 
+   virtual ~ ReferenceCounted ()
+   {
+   }
+   void decrementRefCount () const
+   {
+     if (--const_cast < unsigned int &>(_ref_count) == 0)
+       {
+ 	delete this;
+       }
+   }
+   unsigned int _ref_count;
+ };
+ 
+ template < class T > class RefCountPointer
+ {
+ public:
+ 
+ RefCountPointer (T * p = 0):_p (p)
+   {
+   }
+   RefCountPointer & operator= (const RefCountPointer < T > &o)
+   {
+     if (_p != o._p)
+       {
+ 	if (_p != 0)
+ 	  _p->decrementRefCount ();
+       }
+   }
+   ~RefCountPointer ()
+   {
+   }
+   T *_p;
+ };
+ class Item:public ReferenceCounted
+ {
+ public:
+ 
+   typedef RefCountPointer < const Item > Ptr;
+ };
+ class AnyAtomicType:public Item
+ {
+ };
+ class StaticContext
+ {
+ };
+ class DynamicContext:public StaticContext
+ {
+ };
+ class SortableItem
+ {
+   SortableItem ();
+   int m_bAscending:1;
+   DynamicContext *m_context;
+     AnyAtomicType::Ptr m_item;
+ };
+ SortableItem::SortableItem ()
+ {
+   m_context = __null;
+   m_item = __null;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/profile1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/profile1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/profile1.C	Wed Mar  3 00:46:31 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/profile1.C	Thu Mar 31 18:14:11 2005
*************** int main (int argc, char * argv[])
*** 49,51 ****
--- 49,53 ----
    ACE_UINT32 const mc_isoValue = 10000;
    ResourceBalanceType2 rbResourceBalanceType2(3, mc_isoValue, "ATM", "M");
  }
+ 
+ // { dg-final { cleanup-coverage-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/return1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/return1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/return1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/return1.C	Wed Oct 12 18:02:52 2005
***************
*** 0 ****
--- 1,15 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 12 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 21117:ICE after error
+ // Origin: Andrew Pinski <pinskia@gcc.gnu.org>
+ 
+ struct wxString;
+ struct wxString* wxGetEmptyString();
+ 
+ struct wxString GetHeader() // { dg-error "return type" "" }
+ {
+   return *wxGetEmptyString();
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/semicolon.C gcc-4.1.0/gcc/testsuite/g++.dg/other/semicolon.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/semicolon.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/semicolon.C	Sat Sep 17 22:05:39 2005
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/18368
+ // Origin: Chris Lattner <sabre@nondot.org>
+ // { dg-do compile }
+ 
+ struct A
+ {
+   struct B { int i; }
+   void foo();   // { dg-error "two or more|return type" }
+ };              // { dg-error "semicolon is missing" "" { target *-*-* } 8 }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/static11.C gcc-4.1.0/gcc/testsuite/g++.dg/other/static11.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/static11.C	Sun Mar 31 15:49:29 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/static11.C	Thu Mar 31 18:18:58 2005
*************** int main()
*** 30,32 ****
--- 30,34 ----
    C<int> c;
    return r;
  }
+ 
+ // { dg-final { cleanup-rtl-dump "*" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/stdarg3.C gcc-4.1.0/gcc/testsuite/g++.dg/other/stdarg3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/stdarg3.C	Thu Mar 10 15:11:24 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/stdarg3.C	Fri May 20 23:52:46 2005
***************
*** 3,9 ****
  
  // PR 20375: ICE
  // Origin: Joseph S. Myers <jsm28@gcc.gnu.org>
! // { dg-options "-mlp64" { target "ia64-*-*" } }
  
  union U
  {
--- 3,9 ----
  
  // PR 20375: ICE
  // Origin: Joseph S. Myers <jsm28@gcc.gnu.org>
! // { dg-options "-mlp64" { target "ia64-*-hpux*" } }
  
  union U
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/switch2.C gcc-4.1.0/gcc/testsuite/g++.dg/other/switch2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/switch2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/switch2.C	Mon Oct 17 13:54:34 2005
***************
*** 0 ****
--- 1,23 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 13 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 22551:ICE
+ // Origin:  Johnny Casey <emailwastefilter-bugzillagccorg@yahoo.com>
+ 
+ const int B = ~(~0u >> 1);
+ 
+ #define b(x) (B + x)
+ 
+ 
+ int Foo (int error)
+ {
+   switch (error)
+   {
+   case b (1): return 0;
+   case b (2): return 0;
+   case b (3): return 0;
+   case b (4): return 0;
+   case b (5): return 0;
+   }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/ucnid-1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/ucnid-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/ucnid-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/ucnid-1.C	Mon Oct 10 16:58:53 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-options "-fextended-identifiers" } */
+ /* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */
+ #include <cstdlib>
+ 
+ int \u00C0(void) { return 1; }
+ int \u00C1(void) { return 2; }
+ int \U000000C2(void) { return 3; }
+ int wh\u00ff(void) { return 4; }
+ int a\u00c4b\u0441\U000003b4e(void) { return 5; }
+ 
+ int main (void)
+ {
+   
+   if (\u00C0() != 1)
+     abort ();
+   if (\u00c1() != 2)
+     abort ();
+   if (\u00C2() != 3)
+     abort ();
+   if (wh\u00ff() != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e() != 5)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/virtual1.C gcc-4.1.0/gcc/testsuite/g++.dg/other/virtual1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/virtual1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/virtual1.C	Wed Feb  8 11:03:09 2006
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/26070
+ // { dg-do compile }
+ 
+ struct A
+ {
+   virtual static int i;  // { dg-error "virtual" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/other/virtual2.C gcc-4.1.0/gcc/testsuite/g++.dg/other/virtual2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/other/virtual2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/other/virtual2.C	Wed Feb  8 11:23:17 2006
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/26071
+ // { dg-do compile }
+ 
+ struct A
+ {
+   virtual static ~A();  // { dg-error "virtual" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/overload/error2.C gcc-4.1.0/gcc/testsuite/g++.dg/overload/error2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/overload/error2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/overload/error2.C	Tue Oct 18 12:30:32 2005
***************
*** 0 ****
--- 1,11 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 18 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 22604
+ // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
+ 
+ struct A
+ {
+   void foo();  // { dg-error "with" "" }
+   virtual void foo();  // { dg-error "cannot be overloaded" "" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/overload/koenig2.C gcc-4.1.0/gcc/testsuite/g++.dg/overload/koenig2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/overload/koenig2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/overload/koenig2.C	Tue Oct 18 13:45:23 2005
***************
*** 0 ****
--- 1,15 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 18 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 21383
+ // Origin: Matthew Hall <mahall@ncsa.uiuc.edu>
+ 
+ template <class T>
+ void dummy(T& t);
+ 
+ void anyfunc(int x);
+ 
+ void Foo ()
+ {
+   anyfunc (&dummy<>); // { dg-error "cannot resolve overload" "" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/overload/operator2.C gcc-4.1.0/gcc/testsuite/g++.dg/overload/operator2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/overload/operator2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/overload/operator2.C	Thu Mar 17 14:39:16 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/19966
+ // { dg-do compile }
+ 
+ struct A
+ {
+   static operator int(); // { dg-error "must be a nonstatic" }
+ };
+ 
+ struct B
+ {
+   static int operator*(); // { dg-error "must be either" }
+ };
+ 
+ static operator int(); // { dg-error "must be a nonstatic" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/overload/unknown1.C gcc-4.1.0/gcc/testsuite/g++.dg/overload/unknown1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/overload/unknown1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/overload/unknown1.C	Tue Oct  4 02:21:26 2005
***************
*** 0 ****
--- 1,9 ----
+ // { dg-do compile }
+ 
+ void foo(void);
+ int foo(int);
+ template <typename T> void bar(T f);
+ 
+ void baz() {
+   bar(foo); // { dg-error "<unresolved overloaded function type>" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/access8.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/access8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/access8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/access8.C	Thu Oct 20 18:01:52 2005
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/22618
+ 
+ class foo
+ {
+   typedef int memfun;  // { dg-error "private" }
+ };
+ 
+ template<foo::memfun> // { dg-error "context" } 
+ struct fm_obj { };
+ 
+ template <typename T = foo::memfun> // { dg-error "context" }
+ struct S {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/access9.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/access9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/access9.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/access9.C	Wed Jan  4 18:49:21 2006
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/24782
+ 
+ class Foo { public:  typedef int type1; };
+ class Bar { private: typedef Foo type2; }; // { dg-error "private" } 
+ void g(Bar::type2::type1) {} // { dg-error "context" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/ambig4.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/ambig4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/ambig4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/ambig4.C	Mon Nov 14 01:45:19 2005
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/20293
+ 
+ namespace hide { // { dg-error "hide" }
+   int k;
+ }
+ 
+ namespace {
+   int i; 
+   namespace hide { // { dg-error "hide" }
+     int j; 
+   }
+ }
+ 
+ void F(int) {}
+ 
+ int main() {
+   F(hide::j); // { dg-error "ambiguous" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/array-size2.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/array-size2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/array-size2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/array-size2.C	Tue Jan 17 10:00:05 2006
***************
*** 0 ****
--- 1,19 ----
+ // PR c/25682
+ // { dg-do compile }
+ // Test whether we don't ICE on invalid array sizes.
+ 
+ struct S
+ {
+   char a[4];
+   int b;
+ };
+ 
+ extern void bar (char *, char *);
+ 
+ void
+ foo (void)
+ {
+   char g[(char *) &((struct S *) 0)->b - (char *) 0];	// { dg-error "not an integral constant-expression" }
+   char h[(__SIZE_TYPE__) &((struct S *) 8)->b];		// { dg-error "not an integral constant-expression" }
+   bar (g, h);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/class2.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/class2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/class2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/class2.C	Thu Sep 15 16:03:32 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/13140
+ 
+ struct foo {
+   foo();
+   void f();
+   static int i;
+ };
+ 
+ 
+ namespace bar {
+   foo::foo() {} // { dg-error "namespace" }
+   void foo::f() {} // { dg-error "namespace" }
+   int foo::i; // { dg-error "namespace" } 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/comma2.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/comma2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/comma2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/comma2.C	Tue Dec 13 08:16:24 2005
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ 
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ 
+ // PR c++/24907 [3.4/4.0/4.1/4.2 Regression] "int x, ;" accepted
+ 
+ int x;
+ int y,; /* { dg-error "expected" } */
+ 
+ int main()
+ {
+   int a;
+   int b,;    /* { dg-error "expected" } */
+   int c,d;
+   int e,f,;  /* { dg-error "expected" } */
+   int g,h,i;
+   int j,k,l,;/* { dg-error "expected" } */
+   int m,,,n; /* { dg-error "expected" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash17.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash17.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash17.C	Tue Sep 14 00:29:03 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash17.C	Tue Dec 27 06:49:21 2005
*************** template <typename> class allocator; 
*** 5,9 ****
  template<typename T> class vector { 
    // With the dg-error on the next line, we are really just trying to
    // check that the message is not an ICE message.
!   typedef typename allocator<T> allocator_type; // { dg-error "expected|forbids" }
  }; 
--- 5,9 ----
  template<typename T> class vector { 
    // With the dg-error on the next line, we are really just trying to
    // check that the message is not an ICE message.
!   typedef typename allocator<T> allocator_type; // { dg-error "expected|invalid" }
  }; 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash22.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash22.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash22.C	Wed Jan  5 10:02:35 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash22.C	Mon Nov 14 01:45:19 2005
***************
*** 4,20 ****
  // PR 19030: ICE
  // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
  
! struct A;
  
  namespace N
  {
!   struct A;
  }
  
  using namespace N;
  
! int A::i; // { dg-error "not been declared|declared here" "" }
! int A::i; // { dg-error "not been declared|redefinition of" "" }
  
  namespace N
  {
--- 4,20 ----
  // PR 19030: ICE
  // Origin: Volker Reichelt <reichelt@gcc.gnu.org>
  
! struct A; // { dg-error "A" }
  
  namespace N
  {
!   struct A; // { dg-error "A" }
  }
  
  using namespace N;
  
! int A::i; // { dg-error "ambiguous|declared here" "" }
! int A::i; // { dg-error "ambiguous|redefinition of" "" }
  
  namespace N
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash28.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash28.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash28.C	Thu Aug 11 09:31:22 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash28.C	Tue Sep 27 23:31:57 2005
***************
*** 6,14 ****
  //        Volker Reichelt <reichelt@gcc.gnu.org>
  
  template <class _Tp> class insert_iterator<slist<_Tp> > {}; // { dg-error "not a template|not declared in this scope|expected unqualified-id|extra" }
! template <class _Value> class insert_iterator<int > { // { dg-error "template parameters not used|_Value" }
    hash_set<_Value>; // { dg-error "no type|expected" }
  };
  
  template<int> struct A<X<> > {}; // { dg-error "not a template|not declared in this scope|expected unqualified-id|extra" }
! struct A {}; // { dg-error "template argument required" }
--- 6,14 ----
  //        Volker Reichelt <reichelt@gcc.gnu.org>
  
  template <class _Tp> class insert_iterator<slist<_Tp> > {}; // { dg-error "not a template|not declared in this scope|expected unqualified-id|extra" }
! template <class _Value> class insert_iterator<int > { // { dg-error "template" }
    hash_set<_Value>; // { dg-error "no type|expected" }
  };
  
  template<int> struct A<X<> > {}; // { dg-error "not a template|not declared in this scope|expected unqualified-id|extra" }
! struct A {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash30.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash30.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash30.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash30.C	Sat Oct  8 18:11:02 2005
***************
*** 0 ****
--- 1,18 ----
+ // { dg-do compile }
+ namespace N { template<int> struct A { operator int() const; }; }
+ namespace M { template<int> struct A {}; }
+ namespace P { typedef int I; }
+ 
+ template<typename> void foo()
+ {
+   +typename N::A<0>();  // { dg-bogus "expected" }
+ }
+ 
+ template<typename> void bar()
+ {
+   +typename M::A<0>;  // { dg-error "expected" }
+ }
+ 
+ template<typename T> void baz() {
+   typename P::I i;  // { dg-bogus "expected" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash31.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash31.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash31.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash31.C	Wed Oct 12 10:59:27 2005
***************
*** 0 ****
--- 1,9 ----
+ struct A
+ { // { dg-error "forward declaration" }
+   A : A; // { dg-error "expected|incomplete" }
+   A : B; // { dg-error "not declared|incomplete" }
+   A : A(); // { dg-error "undefined type|incomplete" }
+   A : B(); // { dg-error "function call|incomplete" }
+   A : A[]; // { dg-error "expected|array reference|incomplete" }
+   A : B[]; // { dg-error "not declared|expected|array reference|incomplete" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash32.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash32.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/crash32.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/crash32.C	Fri Oct 14 02:33:11 2005
***************
*** 0 ****
--- 1,13 ----
+ // { dg-do compile }
+ struct Visitor;
+ 
+ struct Ast
+ {
+   virtual void accept (Visitor& v);
+ };
+ 
+ void
+ Ast::accept (Visitor& v)
+ {
+   v (*this); // { dg-error "no match for call" "" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/ctor3.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/ctor3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/ctor3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/ctor3.C	Tue Jan  3 08:40:18 2006
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/25633
+ 
+ struct A {};
+ 
+ struct B : A
+ {
+   B() : A {} // { dg-error "expected" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/defarg10.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/defarg10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/defarg10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/defarg10.C	Tue Jun  7 08:45:32 2005
***************
*** 0 ****
--- 1,11 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 7 Jun 2005 <nathan@codesourcery.com>
+ 
+ // From java library.
+ 
+ void  Foo (int = 0);
+ 
+ class Class
+ {
+   friend void Foo (int);
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/defarg4.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/defarg4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/defarg4.C	Thu Jul  3 16:10:52 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/defarg4.C	Mon Sep 12 19:54:23 2005
***************
*** 6,14 ****
  // PR c++ 9162. default args got left unprocessed
  
  struct S {
!   friend int foo (int = 100);
  };
! int i = foo ();
  
  struct R
  {
--- 6,15 ----
  // PR c++ 9162. default args got left unprocessed
  
  struct S {
!   friend int foo (const S&, int = 100);
  };
! S s;
! int i = foo (s);
  
  struct R
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/dot1.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/dot1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/dot1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/dot1.C	Wed Nov  2 23:36:05 2005
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/24560
+ 
+ struct A { void f(); };
+ void g() { A().f.a; } // { dg-error "class" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/dtor6.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/dtor6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/dtor6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/dtor6.C	Tue Jan  3 08:40:18 2006
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/25638
+ 
+ struct A { ~A(); }; // { dg-error "candidate" }  
+ 
+ struct B : A
+ {
+   template<int> friend A::~A(); // { dg-error "match" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/dtor7.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/dtor7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/dtor7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/dtor7.C	Sun Jan 22 00:41:58 2006
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/25856
+ 
+ struct A; // { dg-error "forward" } 
+ A::~A() {} // { dg-error "undefined" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/dtor8.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/dtor8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/dtor8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/dtor8.C	Tue Jan 24 21:38:56 2006
***************
*** 0 ****
--- 1,8 ----
+ // { dg-do compile }
+ 
+ struct A {};
+ 
+ struct B
+ {
+   friend A::~B();  // { dg-error "as member of" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/error28.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/error28.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/error28.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/error28.C	Wed Oct 19 20:32:59 2005
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/21908
+ 
+ struct virt { virt () {} virt (int i) {} };
+ struct der : public virtual virt { // { dg-error "der" }
+   der (int i) : virt(i) {} // { dg-error "der" }
+ };
+ struct top : public der { 
+   // { dg-error "der\\(\\)" "" { target *-*-* } 9 } 
+   top () {} // { dg-bogus "der\\(const" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/error29.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/error29.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/error29.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/error29.C	Tue Jan  3 08:40:18 2006
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/25637
+ 
+ struct A { 
+   void foo();
+   A(); 
+   void operator delete(void *);
+ };
+ struct B { 
+   friend void A::foo() {} // { dg-error "define" }
+   friend void A::operator delete(void*) {} // { dg-error "define" }
+   friend A::A() {} // { dg-error "define" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/explicit1.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/explicit1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/explicit1.C	Mon Dec 29 10:16:31 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/explicit1.C	Fri Oct 28 17:58:59 2005
***************
*** 7,11 ****
  
  struct foo { 
          template<typename T> void bar (T &t) {}
!         template<> void bar<double>(double &t) {} // { dg-error "explicit|non-namespace|member" }
  };
--- 7,11 ----
  
  struct foo { 
          template<typename T> void bar (T &t) {}
!         template<> void bar<double>(double &t) {} // { dg-error "non-namespace|template|function" }
  };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/for1.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/for1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/for1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/for1.C	Mon Oct 17 22:22:30 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/23440
+ // Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ // { dg-do compile }
+ // { dg-options "" }
+ 
+ # 0 "for1.C"
+ void foo() { for (;;)  // { dg-error "at end of input" "" { target *-*-* } 0 }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/friend5.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/friend5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/friend5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/friend5.C	Thu Oct 13 08:38:40 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/23694
+  
+ extern "C" struct A
+ {
+   friend void foo(int) {} // { dg-error "declaration" }
+   friend void foo() {} // { dg-error "foo" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/lookup5.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/lookup5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/lookup5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/lookup5.C	Wed Jan 18 08:03:09 2006
***************
*** 0 ****
--- 1,26 ----
+ // { dg-do compile }
+ 
+ struct A {};
+ 
+ template <class T> struct B
+ {
+   T a, b;
+   B() {}
+   B(T x, T y) : a(x), b(y) {}
+   template <class U> operator B<U> () const
+   { return B<U>((U)(this->a), (U)(this->b)); }
+ };
+ 
+ template <class T> struct C : public B<int>
+ {
+   T *c;
+   inline T & operator *() { return *c; }
+ };
+ 
+ template <class T> struct D : virtual public C<T> { };
+ 
+ void
+ foo (D<A> x)
+ {
+   *x;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/operator6.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/operator6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/operator6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/operator6.C	Tue Jan  3 08:40:18 2006
***************
*** 0 ****
--- 1,5 ----
+ // PR c++/25635
+ 
+ struct A {};
+ 
+ A::operator int(); // { dg-error "class" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/pragma3.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/pragma3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/pragma3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/pragma3.C	Sun Jan  1 00:00:56 2006
***************
*** 0 ****
--- 1,26 ----
+ // PR c++/25294
+ // { dg-do run }
+ 
+ extern "C" void abort (void);
+ 
+ struct S
+ {
+   char a[3];
+ #pragma pack(1) /* A block comment
+ 		   that ends on the next line.  */
+   struct T
+   {
+     char b;
+     int c;
+   } d;
+ #pragma pack /*/ */ () // C++ comment
+   int e;
+ } s;
+ 
+ int
+ main ()
+ {
+   if (sizeof (int) == 4 && sizeof (s) != 12)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/qualified4.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/qualified4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/qualified4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/qualified4.C	Wed Sep 28 14:50:17 2005
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/16782
+ // { dg-options "" }
+ 
+ struct X { 
+   void X::bar() {} // { dg-error "" }
+ }; 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/repo1.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/repo1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/repo1.C	Thu Jul 29 17:59:30 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/repo1.C	Thu Mar 31 18:16:55 2005
*************** extern "C" inline void f() {}
*** 5,7 ****
--- 5,9 ----
  int main () {
    f();
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/ret-type3.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/ret-type3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/ret-type3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/ret-type3.C	Tue Oct 11 16:38:52 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/21369
+ 
+ struct bar;
+ 
+ template <class T> struct bar *foo (T *p)
+ {
+   return p->t;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/template18.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/template18.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/template18.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/template18.C	Sun Oct 16 20:18:53 2005
***************
*** 0 ****
--- 1,52 ----
+ // PR c++/22173
+ 
+ struct A
+ {
+   static void a1();
+   template <typename T>
+   static void b1(T);
+   template <int I>
+   struct B {
+     static void b1();
+     template <typename T>
+     static void b2(T);
+   };
+   struct C {
+     static void c1();
+   };
+ };
+ 
+ template<int I> void f1()
+ {
+   A* p;
+   A::template a1(); // { dg-error "template" }
+   A::template b1(0);
+   p->template a1(); // { dg-error "template" }
+   p->template b1('a');
+ 
+   A::template B<0>::b1();
+   A::template B<0>::template b1(); // { dg-error "template" }
+   A::template B<0>::template b2(0);
+   A::template B<0>::template b2<double>(0);
+ 
+   // Because B<I> is dependent, none of these are errors, as this
+   // function is not instantiated. 
+   A::template B<I>::b1();
+   A::template B<I>::template b1();
+   A::template B<I>::template b2(0);
+   A::template B<I>::template b2<double>(0);
+ 
+   A::template C::c1(); // { dg-error "template" }
+ }
+ 
+ template<int I> void f2()
+ {
+   // These are copies of lines from f1, but this function is
+   // instantiated, so we should get errors here.
+   A::template B<I>::b1();
+   A::template B<I>::template b1(); // { dg-error "template" }
+   A::template B<I>::template b2(0);
+   A::template B<I>::template b2<double>(0);
+ }
+ 
+ template void f2<0>(); // { dg-error "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/typename10.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/typename10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/typename10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/typename10.C	Wed Nov  2 21:34:51 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/19253
+ 
+ namespace N { struct X; }
+ 
+ template<typename> struct A
+ {
+   A<typename N::X x> a; // { dg-error "invalid" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/typename8.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/typename8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/typename8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/typename8.C	Wed Nov  2 21:34:51 2005
***************
*** 0 ****
--- 1,11 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 12 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 23797:ICE
+ // Origin:  Volker Reichelt <reichelt@gcc.gnu.org>
+ 
+ // { dg-options "-fpermissive -w" }
+ 
+ struct A { typedef int X; };
+ 
+ int i = typename A::X();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/parse/typename9.C gcc-4.1.0/gcc/testsuite/g++.dg/parse/typename9.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/parse/typename9.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/parse/typename9.C	Wed Nov  2 21:34:51 2005
***************
*** 0 ****
--- 1,3 ----
+ struct A { typedef int X; };
+ 
+ int i = typename A::X(); // { dg-error "typename" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/pch/pch.C gcc-4.1.0/gcc/testsuite/g++.dg/pch/pch.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/pch/pch.C	Mon Jan 31 22:05:07 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/pch/pch.C	Thu Mar 31 18:21:38 2005
*************** int main() 
*** 5,7 ****
--- 5,9 ----
  {
    return 0;
  }
+ 
+ // { dg-final { cleanup-saved-temps } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/pch/pch.exp gcc-4.1.0/gcc/testsuite/g++.dg/pch/pch.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/pch/pch.exp	Wed Jun  4 15:32:08 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/pch/pch.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite for precompiled header interaction,
  # that uses the `dg.exp' driver.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite for precompiled header interaction,
  # that uses the `dg.exp' driver.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/rtti/crash2.C gcc-4.1.0/gcc/testsuite/g++.dg/rtti/crash2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/rtti/crash2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/rtti/crash2.C	Thu Jun 16 08:21:00 2005
***************
*** 0 ****
--- 1,9 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 16 Jun 2005 <nathan@codesourcery.com>
+ 
+ // Crash when compiler is optimized
+ // Origin:  Andrew Pinski pinskia@gcc.gnu.org
+ 
+ struct facet { virtual ~facet(); };
+ struct ctype_base {};
+ struct ctype : facet, ctype_base {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/rtti/crash3.C gcc-4.1.0/gcc/testsuite/g++.dg/rtti/crash3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/rtti/crash3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/rtti/crash3.C	Tue Sep 20 15:40:57 2005
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/23947
+ // { dg-do compile }
+ 
+ class A {};
+ class B {};
+ class C : public A, public B {};
+ class D : public C {};
+ void f () throw (D)
+ {
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/rtti/repo1.C gcc-4.1.0/gcc/testsuite/g++.dg/rtti/repo1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/rtti/repo1.C	Sat Jul 16 01:11:52 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/rtti/repo1.C	Thu Dec 15 02:00:58 2005
*************** struct function1
*** 13,15 ****
--- 13,17 ----
  function1<1> b;
  
  int main () {}
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/rtti/tinfo1.C gcc-4.1.0/gcc/testsuite/g++.dg/rtti/tinfo1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/rtti/tinfo1.C	Wed Feb  9 11:25:20 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/rtti/tinfo1.C	Tue Dec 27 20:08:39 2005
***************
*** 1,7 ****
  // Test if a local definition is in a linkonce/comdat section.
  // { dg-do compile }
  // { 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\]*" } }
  
  
--- 1,7 ----
  // Test if a local definition is in a linkonce/comdat section.
  // { dg-do compile }
  // { dg-final { scan-assembler "_ZTIP9CTemplateIhE\[: \t\n\]" } }
! // { dg-final { scan-assembler-not "(.globl|.global)\[ 	\]+_ZTIP9CTemplateIhE" } }
  // { dg-final { scan-assembler-not ".section\[^\n\r\]*_ZTIP9CTemplateIhE\[^\n\r\]*" } }
  
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/special/ecos.exp gcc-4.1.0/gcc/testsuite/g++.dg/special/ecos.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/special/ecos.exp	Mon May 12 15:24:31 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/special/ecos.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # Please email any bugs, comments, and/or additions to this file to:
  # jlarmour@cygnus.co.uk
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # Please email any bugs, comments, and/or additions to this file to:
  # jlarmour@cygnus.co.uk
*************** load_lib g++-dg.exp
*** 29,34 ****
--- 29,35 ----
  
  set comp_output [g++_target_compile \
  		"$srcdir/$subdir/initp1.C" "initp1.S" assembly ""]
+ remove-build-file "initp1.S"
  if { [string match "*init_priority*" $comp_output] } {
    return 0
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tc1/dr101.C gcc-4.1.0/gcc/testsuite/g++.dg/tc1/dr101.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tc1/dr101.C	Wed Aug 31 10:54:34 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tc1/dr101.C	Mon Nov 14 01:45:19 2005
*************** namespace Test1 {
*** 17,26 ****
  
  namespace Test2 {
  
!   typedef unsigned int X;   // { dg-bogus "declared" "" { xfail *-*-* } }
    extern "C" int f2();
    namespace N {
!     typedef unsigned int X; // { dg-bogus "declared" "" { xfail *-*-* } }
      extern "C" int f2();
    }
    using namespace N;
--- 17,26 ----
  
  namespace Test2 {
  
!   typedef unsigned int X;   // { dg-bogus "X" "" { xfail *-*-* } }
    extern "C" int f2();
    namespace N {
!     typedef unsigned int X; // { dg-bogus "X" "" { xfail *-*-* } }
      extern "C" int f2();
    }
    using namespace N;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tc1/dr52.C gcc-4.1.0/gcc/testsuite/g++.dg/tc1/dr52.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tc1/dr52.C	Thu Jan 29 16:45:35 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/tc1/dr52.C	Wed Jan  4 18:49:21 2006
*************** struct B1 : B {};
*** 17,23 ****
  struct B2 : B {};
  
  struct C
! {
    void foo(void);
  };
  
--- 17,23 ----
  struct B2 : B {};
  
  struct C
! { // { dg-error "C" }
    void foo(void);
  };
  
*************** public:
*** 29,34 ****
    void bar(void)
    {
      this->B::foo();  // { dg-error "" }
!     this->C::foo();  // { dg-error "" }
    }
  };
--- 29,34 ----
    void bar(void)
    {
      this->B::foo();  // { dg-error "" }
!     this->C::foo();  // { dg-error "inaccessible|context" }
    }
  };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/arg4.C gcc-4.1.0/gcc/testsuite/g++.dg/template/arg4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/arg4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/arg4.C	Mon Oct 10 22:30:17 2005
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/23437
+ 
+ template <void (*p)()> struct S {
+   static const int i = 10;
+ };
+ 
+ void g();
+ 
+ int a[S<g>::i];
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/asm1.C gcc-4.1.0/gcc/testsuite/g++.dg/template/asm1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/asm1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/asm1.C	Sat Nov 12 20:42:23 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/24761
+ // { dg-do compile }
+ 
+ template <int>
+ int f (int i)
+ {
+   asm ("# %0 %1" : "+r" (i));
+   return i;
+ }
+ 
+ int main ()
+ {
+   return f<0> (0) + f<1> (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/call3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/call3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/call3.C	Fri Nov 12 21:47:13 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/call3.C	Thu Jul 21 03:56:46 2005
*************** struct A
*** 9,15 ****
  
  template <typename T> struct B : T
  {
!   B() { foo(T()); }
  };
  
  B<A> b;
--- 9,15 ----
  
  template <typename T> struct B : T
  {
!   B() { foo(T()); } // { dg-error "cannot convert" }
  };
  
  B<A> b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/call4.C gcc-4.1.0/gcc/testsuite/g++.dg/template/call4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/call4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/call4.C	Thu Dec 22 19:59:00 2005
***************
*** 0 ****
--- 1,21 ----
+ // PR c++/25364
+ 
+ class OFX_PropertySuiteV1
+ {
+   static int propGetDouble ();
+ };
+ template<int dimension,
+ 	 class T,
+ 	 int (*PROPGET)()
+   >
+ struct OFX_AnimatedNumberParam
+ {
+   virtual int paramSetValueAtTime()
+   {
+     return PROPGET();
+   }
+ };
+ void  f()
+ {
+   new OFX_AnimatedNumberParam<2,double,OFX_PropertySuiteV1::propGetDouble>();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/class3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/class3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/class3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/class3.C	Tue Jan  3 08:40:18 2006
***************
*** 0 ****
--- 1,2 ----
+ // PR c++/25634
+ template<int> template<int> struct A; // { dg-error "too many" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash37.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash37.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash37.C	Thu May  5 23:30:27 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash37.C	Thu Jul 21 03:56:46 2005
*************** struct coperator_stack
*** 11,17 ****
  struct helper {};
  
  template<class F>
! void bla(F f)
  {
  }
  
--- 11,17 ----
  struct helper {};
  
  template<class F>
! void bla(F f) // { dg-error "candidates" }
  {
  }
  
*************** struct definition
*** 20,26 ****
  {
   definition()
   {
!    bla(coperator_stack::push3<helper>); // { dg-error "" } 
   }
  };
  
--- 20,26 ----
  {
   definition()
   {
!    bla(coperator_stack::push3<helper>); // { dg-error "" }
   }
  };
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash38.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash38.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash38.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash38.C	Thu Oct 13 08:38:40 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/23307
+ 
+ class A
+ {
+   template<class R>
+   static void f(X&); // { dg-error "" }
+   inline void A::f<void>(X&); // { dg-error "f|expected" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash39.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash39.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash39.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash39.C	Sat Jan 28 19:24:11 2006
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/22405
+ 
+ template <typename T> void foo(T &arg) { // { dg-error "declared" }
+   arg+=1;
+ }
+ 
+ template <typename T> void foo(T &arg) { // { dg-error "redefinition" }
+   arg+=2;
+ }
+ 
+ template void foo(float &arg); // { dg-bogus "" "" { xfail *-*-* } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash40.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash40.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash40.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash40.C	Thu Oct 13 08:38:40 2005
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/22180
+ 
+ struct A {};
+ 
+ template<typename T> void foo()
+ {
+   T::~T(); // { dg-error "member" }
+ }
+ 
+ template void foo<A>(); // { dg-error "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash41.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash41.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash41.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash41.C	Thu Oct 13 08:38:40 2005
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/22464
+ 
+ template<typename T>
+ void do_something(const T* A) // { dg-error "declared" }
+ { 
+   struct helper_t{ 
+     helper_t() {  
+       A[0]; // { dg-error "use" }
+     }
+   } helper;
+ }
+ 
+ void sub1() {
+   double A[7];
+   do_something (A);
+ }
+ 
+   
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash42.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash42.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash42.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash42.C	Wed Nov  2 18:24:46 2005
***************
*** 0 ****
--- 1,10 ----
+ // { dg-do compile }
+ 
+ // PR c++/22153
+ 
+ template<int> void foo();
+ 
+ template<int> struct A
+ {
+     template<> friend void foo<0>(); // { dg-error "" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash43.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash43.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash43.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash43.C	Tue Nov 15 00:15:09 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/24687
+ 
+ extern "C" {
+   template<typename _Tp>  // { dg-error "C" }   
+   struct __is_pod {
+     enum {
+       __value = (sizeof(__gnu_internal::__test_type<_Tp>(0)))}; // { dg-error "declared|expected" }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/crash44.C gcc-4.1.0/gcc/testsuite/g++.dg/template/crash44.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/crash44.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/crash44.C	Sun Jan 22 00:41:58 2006
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/25858
+ 
+ namespace N {
+   template<int> struct A {};
+ }
+ 
+ struct B N::A<0> {}; // { dg-error "invalid" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/ctor5.C gcc-4.1.0/gcc/testsuite/g++.dg/template/ctor5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/ctor5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/ctor5.C	Tue Dec 20 05:34:22 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/24278
+ 
+ template<typename T> struct A
+ {
+   A() : T(0) {} // { dg-error "base" }
+ };
+ 
+ A<int*> a; // { dg-error "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/ctor6.C gcc-4.1.0/gcc/testsuite/g++.dg/template/ctor6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/ctor6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/ctor6.C	Sun Jan 15 00:57:22 2006
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/25663
+ 
+ template<int> struct A
+ {
+   A(int);
+ };
+ 
+ void foo()
+ {
+   A<0>(A<0>(0));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/defarg6.C gcc-4.1.0/gcc/testsuite/g++.dg/template/defarg6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/defarg6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/defarg6.C	Mon Oct 17 11:19:12 2005
***************
*** 0 ****
--- 1,25 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 14 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 21353 missing error.
+ // Origin:Andrew Pinski <pinskia@gcc.gnu.org>
+ 
+ enum X{ a, b, c };
+ 
+ struct C
+ {
+   static void func (X &ref = a); // { dg-error "default argument" "" }
+ };
+ 
+ template <typename T>
+ struct D
+ {
+   static void func (X &ref = a); // not an error at this point
+ };
+ 
+ void Foo (X & obj)
+ {
+   D<int>::func (obj);
+ 
+   D<int>::func (); // { dg-error "default argument" "" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/defarg7.C gcc-4.1.0/gcc/testsuite/g++.dg/template/defarg7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/defarg7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/defarg7.C	Mon Dec 12 01:41:16 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/25337
+ 
+ template <typename T> T& MakeT();
+ template <typename U, int N = sizeof (MakeT<U>().operator[](0))>
+ struct helper{};
+ template <typename U>
+ static char is_here(helper<U>*);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-expr1.C gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-expr1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-expr1.C	Wed Jul  9 08:48:06 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-expr1.C	Wed Oct 12 18:13:41 2005
*************** namespace std
*** 19,25 ****
      Foo (sizeof (x));
      Foo (__alignof__ (I));
      Foo (__alignof__ (x));
!     Foo (x->~I ());
      //    Foo (typeid (I));
      Foo (delete x); // { dg-error "" }
      Foo (delete[] x); // { dg-error "" }
--- 19,25 ----
      Foo (sizeof (x));
      Foo (__alignof__ (I));
      Foo (__alignof__ (x));
!     Foo (x->~I ()); // { dg-error "" }
      //    Foo (typeid (I));
      Foo (delete x); // { dg-error "" }
      Foo (delete[] x); // { dg-error "" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-expr2.C gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-expr2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-expr2.C	Sun Aug  3 14:23:34 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-expr2.C	Wed Oct 12 18:13:41 2005
*************** struct B
*** 18,23 ****
  {
    bool bar(A& a)
    {
!     return a.foo == 0; // { dg-error "insufficient context" "" }
    }
  };
--- 18,23 ----
  {
    bool bar(A& a)
    {
!     return a.foo == 0; // { dg-error "" "" }
    }
  };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-name3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-name3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-name3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-name3.C	Fri Nov  4 01:23:22 2005
***************
*** 0 ****
--- 1,17 ----
+ // { dg-do compile }
+ 
+ // Dependent arrays of invalid size generate appropriate error messages
+ 
+ template<int I> struct A
+ {
+   static const int zero = 0;
+   static const int minus_one = -1;
+ };
+ 
+ template<int N> struct B
+ {
+   int x[A<N>::zero];       // { dg-error "zero" }
+   int y[A<N>::minus_one];  // { dg-error "negative" }
+ };
+ 
+ B<0> b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-name4.C gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-name4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/dependent-name4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/dependent-name4.C	Fri Nov  4 01:23:22 2005
***************
*** 0 ****
--- 1,15 ----
+ // { dg-do compile }
+ 
+ // Dependent arrays of invalid size cause template instantiation failure.
+ 
+ // We'll get an error message (duplicate matching templates) if the first
+ //  pattern is incorrectly allowed to match.
+ 
+ template<int M> void foobar (int (*) [M] = 0 );
+ template<int M> void foobar ( );
+ 
+ void fn (void)
+ {
+   foobar<0>();
+   foobar<-1>();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/dtor3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/dtor3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/dtor3.C	Thu Feb 10 00:34:46 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/dtor3.C	Wed Dec  7 21:20:25 2005
***************
*** 1,4 ****
  // PR c++/19762
  
  template<int> struct A { ~A(){} }; // { dg-error "" }
! template A<>::~A(); // { dg-error "" }
--- 1,4 ----
  // PR c++/19762
  
  template<int> struct A { ~A(){} }; // { dg-error "" }
! template A<>::~A(); // { dg-error "template|declaration" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/error1.C gcc-4.1.0/gcc/testsuite/g++.dg/template/error1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/error1.C	Wed Jul  2 09:41:52 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/error1.C	Wed Sep 21 15:34:41 2005
*************** template <class T> void make_pair(T x);
*** 9,13 ****
  
  void foo(){
    struct fps_chan_ID fps; // { dg-error "incomplete" "" }
!   make_pair(fps); // { dg-error "no matching function" "" }
  }
--- 9,13 ----
  
  void foo(){
    struct fps_chan_ID fps; // { dg-error "incomplete" "" }
!   make_pair(fps);         // { dg-bogus "no matching function" "" }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/error19.C gcc-4.1.0/gcc/testsuite/g++.dg/template/error19.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/error19.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/error19.C	Tue Oct 18 15:39:12 2005
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/23293
+ 
+ template < typename > struct P;
+ struct S;
+ 
+ void *unrelated_function()
+ {
+   typedef S K;
+   P < K > * p;
+   return p;
+ }
+ 
+ template < typename U >
+ void generate_warning()
+ { 
+   U::x(); // { dg-error "P<S>" }
+ }
+ 
+ int main()
+ {
+   generate_warning< P < S > >();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/error20.C gcc-4.1.0/gcc/testsuite/g++.dg/template/error20.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/error20.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/error20.C	Tue Dec 27 06:49:21 2005
***************
*** 0 ****
--- 1,4 ----
+ // PR c++/25439
+ 
+ template<int> struct A;
+ template<> int A<0>; // { dg-error "invalid" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/explicit8.C gcc-4.1.0/gcc/testsuite/g++.dg/template/explicit8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/explicit8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/explicit8.C	Thu Sep 15 16:03:32 2005
***************
*** 0 ****
--- 1,13 ----
+ namespace N {
+   template <typename T>
+   struct S {
+     void f() {}
+   };
+   namespace I {
+     template void S<double>::f(); // { dg-error "namespace" }
+   }
+ }
+ 
+ namespace K {
+   template void N::S<int>::f(); // { dg-error "namespace" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/friend34.C gcc-4.1.0/gcc/testsuite/g++.dg/template/friend34.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/friend34.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/friend34.C	Mon Mar 14 14:51:25 2005
***************
*** 0 ****
--- 1,16 ----
+ // { dg-do compile }
+ 
+ // Origin: mleone@pixar.com
+ //	   Wolfgang Bangerth <bangerth@ticam.utexas.edu>
+ 
+ // PR c++/9783: Forward declaration of class in template.
+ 
+ template <typename T>
+ struct C {
+   void foo (struct X *);
+ };
+ 
+ struct X {};
+ 
+ template <typename T>
+ void C<T>::foo(struct X *) {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/friend35.C gcc-4.1.0/gcc/testsuite/g++.dg/template/friend35.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/friend35.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/friend35.C	Mon Mar 14 14:51:25 2005
***************
*** 0 ****
--- 1,28 ----
+ // { dg-do compile }
+ 
+ // Origin: Giovanni Bajo <giovannibajo@libero.it>
+ 
+ // PR c++/4403: Incorrect friend class chosen during instantiation.
+ 
+ template <typename T>
+ struct A
+ {
+   struct F;
+ };
+  
+ template <typename T>
+ struct B : A<T>
+ {
+   friend struct F;
+ private:
+   int priv;
+ };
+  
+ struct F
+ {
+   void func(void)
+   {
+     B<int> b;
+     b.priv = 0;
+   }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/friend37.C gcc-4.1.0/gcc/testsuite/g++.dg/template/friend37.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/friend37.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/friend37.C	Tue Sep 27 23:31:57 2005
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/22147
+ 
+ template<typename> struct A;
+ 
+ template<typename T> void foo(A<T>* p) { *p; }
+ 
+ template<typename> struct A
+ {
+   friend void foo<class X>(A<X>*);
+ };
+ 
+ void bar()
+ {
+   foo<int>(0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/friend38.C gcc-4.1.0/gcc/testsuite/g++.dg/template/friend38.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/friend38.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/friend38.C	Thu Oct 13 08:38:40 2005
***************
*** 0 ****
--- 1,12 ----
+ // PR c++/22352
+ 
+ template <class A>
+ class s
+ {
+   typedef int d;
+   template <class s, typename s::d>
+   friend class t;
+ };
+ 
+ s<int> t1;
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/friend39.C gcc-4.1.0/gcc/testsuite/g++.dg/template/friend39.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/friend39.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/friend39.C	Sat Nov 19 02:25:55 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/8355
+ 
+ namespace Foo { template <typename T> void foo();}
+ struct Bar
+ {
+   friend void Foo::foo<int>();
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/friend40.C gcc-4.1.0/gcc/testsuite/g++.dg/template/friend40.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/friend40.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/friend40.C	Sat Dec  3 00:54:17 2005
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/24173
+ // { dg-options "--param ggc-min-expand=0 --param ggc-min-heapsize=0" }
+ 
+ template <int> struct A;
+ 
+ void foo(A<0>);
+ 
+ template<int> struct A
+ {
+   friend void foo(A<0>);
+ };
+ 
+ void bar()
+ {
+   foo(A<0>());
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/inherit.C gcc-4.1.0/gcc/testsuite/g++.dg/template/inherit.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/inherit.C	Sun Aug 12 13:30:32 2001
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/inherit.C	Mon Dec 12 16:30:24 2005
*************** struct Z : X<int> { };
*** 9,13 ****
  int main()
  {
    Z z;
!   z.X::f();                     // { dg-error ".*" "" }
  }
--- 9,13 ----
  int main()
  {
    Z z;
!   z.X::f();                     // { dg-error "template parameters" "" }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/init6.C gcc-4.1.0/gcc/testsuite/g++.dg/template/init6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/init6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/init6.C	Thu Jan 19 06:52:56 2006
***************
*** 0 ****
--- 1,31 ----
+ // PR c++/25836
+ 
+ template <class T>
+ class Iter {};
+ 
+ template <class T>
+ class SubIter : public Iter<T> {
+   void insert(T);
+ };
+ 
+ class GraphBase {
+ public:
+   class Node;
+ };
+ 
+ template<class T>
+ class Graph : public GraphBase {
+   class Inner {
+     Iter<typename Graph<T>::Node*> *get();
+   };
+ };
+ 
+ template<class T>
+ Iter<typename Graph<T>::Node*> *Graph<T>::Inner::get() {
+   SubIter<typename Graph<T>::Node*> *iter;
+   iter->insert(0);
+ }
+ 
+ int main() {
+   Iter<Graph<int>::Node*> *n2_iter = new SubIter<Graph<int>::Node*>();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/instantiate7.C gcc-4.1.0/gcc/testsuite/g++.dg/template/instantiate7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/instantiate7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/instantiate7.C	Sat Aug  6 22:22:47 2005
***************
*** 0 ****
--- 1,10 ----
+ // PR c++/19498
+ // Origin: Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
+ // { dg-do compile }
+ 
+ template<typename T> struct A
+ {
+     template<T&> struct B;  // { dg-error "reference to void" }
+ };
+ 
+ A<void> a;                  // { dg-error "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/local5.C gcc-4.1.0/gcc/testsuite/g++.dg/template/local5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/local5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/local5.C	Fri Jun 17 22:13:33 2005
***************
*** 0 ****
--- 1,12 ----
+ struct Attribute { };
+ 
+ template <class T> bool operator == (const Attribute &attr, const T &value);
+ 
+ enum {
+   anon = 123
+ };
+ 
+ void test(int foo)
+ {
+   if (foo == anon) ;  /* { dg-bogus "anonymous type" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/local6.C gcc-4.1.0/gcc/testsuite/g++.dg/template/local6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/local6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/local6.C	Mon Aug 15 20:38:23 2005
***************
*** 0 ****
--- 1,19 ----
+ template <class T> struct PCVector2
+ { // { dg-error "" }
+     template <class T2> PCVector2(const PCVector2<T> &cv) ;
+ 
+     PCVector2<T> operator- (const PCVector2<T> &ov) const 
+ 	{ 
+ 	  return PCVector2<T>(ov.xFIELD, ov.yFIELD); // { dg-error "" }
+ 	}
+ 
+     T xFIELD, yFIELD;
+ };
+ 
+ void findIntersection( PCVector2<double>& p0, PCVector2<double>& p1);
+ 
+ 
+ void findIntersection( PCVector2<double>& p0, PCVector2<double>& p1)
+ {
+     PCVector2<double> e = p1 - p0;	// { dg-error "" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/non-dependent13.C gcc-4.1.0/gcc/testsuite/g++.dg/template/non-dependent13.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/non-dependent13.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/non-dependent13.C	Sat Feb 18 08:37:34 2006
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/26266
+ 
+ template <int I>
+ struct S;
+ 
+ template <int I>
+ void f() {
+   if (const int i = 3) {
+     S<i>::j; // { dg-error "incomplete" }
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/nontype12.C gcc-4.1.0/gcc/testsuite/g++.dg/template/nontype12.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/nontype12.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/nontype12.C	Tue Jul 12 16:07:38 2005
***************
*** 0 ****
--- 1,35 ----
+ // PR c++/20172
+ // Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ 
+ template<typename T> struct A
+ {
+   template<T> int foo();                        // { dg-error "double" }
+   template<template<T> class> int bar();        // { dg-error "double" }
+   template<T> struct X;                         // { dg-error "double" }
+ };
+ 
+ A<char>   a1;
+ A<double> a2;                                   // { dg-error "instantiated" }
+ 
+ template<typename T> struct B
+ {
+   template<double> int foo();                   // { dg-error "double" }
+   template<template<double> class> int bar();   // { dg-error "double" }
+   template<double> struct X;                    // { dg-error "double" }
+ };
+ 
+ template<void> int foo();                       // { dg-error "void" }
+ template<template<void> class> int bar();       // { dg-error "void" }
+ template<void> struct X;                        // { dg-error "void" }
+ 
+ template<typename T> struct C
+ {
+   template<T> int foo();                        // { dg-error "double" }
+ };
+ 
+ template<typename T> int baz(T) { C<T> c; }     // { dg-error "instantiated" }
+ 
+ void foobar()
+ {
+   baz(1.2);                                     // { dg-error "instantiated" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/nontype15.C gcc-4.1.0/gcc/testsuite/g++.dg/template/nontype15.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/nontype15.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/nontype15.C	Sun Oct 16 19:38:57 2005
***************
*** 0 ****
--- 1,20 ----
+ struct foo {
+     typedef int (*fun)(int);
+ 
+   static int f(int);    // overload between static & non-static
+   int f();
+ 
+   static int g(int);    // non-overloaded static
+ };
+ 
+ template<foo::fun>
+ struct f_obj {
+   // something ..
+ };
+ 
+ int foo::f() {
+   f_obj<f> f1;
+   f_obj<g> f2;
+ 
+   return 0; 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/overload5.C gcc-4.1.0/gcc/testsuite/g++.dg/template/overload5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/overload5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/overload5.C	Sun Oct  2 21:58:08 2005
***************
*** 0 ****
--- 1,28 ----
+ // PR c++/22621
+ 
+ struct foo {
+     typedef int (*fun)(int);
+ 
+   static int f(int);    // overload between static & non-static
+     int f();
+ 
+   static int g(int);    // non-overloaded static
+ };
+ 
+ template<foo::fun>
+ struct f_obj {
+   // something ..
+ };
+ 
+ f_obj<&foo::f> a;   // OK
+ f_obj<foo::f>  b;   // OK (note: a and b are of the same type)
+ 
+ int foo::f()
+ {
+   f_obj<&foo::f> a;   // OK
+   f_obj<foo::f>  b;   // ERROR: foo::f cannot be a constant expression
+ 
+   f_obj<&foo::g> c;   // OK
+   f_obj<foo::g>  d;   // OK
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/overload6.C gcc-4.1.0/gcc/testsuite/g++.dg/template/overload6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/overload6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/overload6.C	Wed Oct 12 18:13:41 2005
***************
*** 0 ****
--- 1,17 ----
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 12 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 21592:ICE
+ // Origin:  Volker Reichelt <reichelt@gcc.gnu.org>
+ 
+ template<typename T> void unique(T,T);
+ 
+ struct A
+ {
+   int begin();
+ };
+ 
+ template<int> void foo()
+ {
+   unique(A().begin); // { dg-error "no matching function" "" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/overload7.C gcc-4.1.0/gcc/testsuite/g++.dg/template/overload7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/overload7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/overload7.C	Mon Oct 17 17:25:17 2005
***************
*** 0 ****
--- 1,31 ----
+ // { dg-do run }
+ 
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 17 Oct 2005 <nathan@codesourcery.com>
+ 
+ // PR 24386:Wrong virtual function called
+ // Origin:  Scott Snyder snyder@fnal.gov
+ 
+ struct A
+ {
+   virtual int Foo () { return 1; }
+ };
+ struct B : public A
+ {
+   virtual int Foo () { return 2; }
+ };
+ 
+ template <class T>
+ int Bar (T *a)
+ {
+   if (static_cast<A*>(a)->A::Foo () != 1)
+     return 1;
+   if (static_cast<A*>(a)->Foo () != 2)
+     return 2;
+   return 0;
+ }
+ 
+ int main ()
+ {
+   return Bar (new B);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/overload8.C gcc-4.1.0/gcc/testsuite/g++.dg/template/overload8.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/overload8.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/overload8.C	Tue Dec 20 04:39:30 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/24915
+ 
+ struct A
+ {
+   template<int> void foo() {}
+   template<int> int foo() {}
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/partial4.C gcc-4.1.0/gcc/testsuite/g++.dg/template/partial4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/partial4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/partial4.C	Wed Feb  1 02:55:45 2006
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/25342
+ 
+ template < typename eval >
+ struct tpl_seq_search {
+   typedef typename eval::enum_type  Enum;
+   template < Enum first, Enum last >
+   struct range {
+   };
+   template < Enum val >
+   struct range<val,val> {
+   };
+ };
+ struct xxx {
+   typedef int enum_type;
+   tpl_seq_search<xxx>::range<0, 1> a;
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/ptrmem15.C gcc-4.1.0/gcc/testsuite/g++.dg/template/ptrmem15.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/ptrmem15.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/ptrmem15.C	Wed Jun  8 11:09:13 2005
***************
*** 0 ****
--- 1,9 ----
+ // PR c++/19894
+ // Origin: Volker Reichelt <reichelt@igpm.rwth-aachen.de>
+ 
+ template<typename T> struct A
+ {
+     T A::* p;  // { dg-error "void" }
+ };
+ 
+ A<void> a;     // { dg-error "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/ptrmem16.C gcc-4.1.0/gcc/testsuite/g++.dg/template/ptrmem16.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/ptrmem16.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/ptrmem16.C	Fri Dec 23 07:42:20 2005
***************
*** 0 ****
--- 1,22 ----
+ // PR c++/25369
+ // { dg-do link }
+ 
+ template <typename> struct A 
+ {
+   void foo() {}
+ };
+ 
+ void bar(void (A<int>::*)()) {}
+ 
+ template <int> void baz()
+ {
+   bar(&A<int>::foo);
+ }
+ 
+ int main()
+ {
+   baz<0>();
+   return 0;
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/ptrmem4.C gcc-4.1.0/gcc/testsuite/g++.dg/template/ptrmem4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/ptrmem4.C	Tue Oct  7 07:07:07 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/ptrmem4.C	Thu Jul 21 03:56:46 2005
***************
*** 6,12 ****
  // Pointer to member function template argument deduction ICE.
  
  
! template <class CONT> void queryAliases(CONT& fill_me); // { dg-error "argument" }
  
  struct SpyExample
  {
--- 6,12 ----
  // Pointer to member function template argument deduction ICE.
  
  
! template <class CONT> void queryAliases(CONT& fill_me); // { dg-error "candidates" }
  
  struct SpyExample
  {
*************** struct SpyExample
*** 16,20 ****
  
  void SpyExample::ready()
  {
!   queryAliases(inputs);	// { dg-error "" }
  }
--- 16,20 ----
  
  void SpyExample::ready()
  {
!   queryAliases(inputs); // { dg-error "" }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/repo1.C gcc-4.1.0/gcc/testsuite/g++.dg/template/repo1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/repo1.C	Thu Jul 29 17:59:31 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/repo1.C	Thu Mar 31 18:16:55 2005
*************** B<int> b;
*** 15,17 ****
--- 15,18 ----
  
  int main () {}
  
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/repo2.C gcc-4.1.0/gcc/testsuite/g++.dg/template/repo2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/repo2.C	Tue Aug 24 06:37:58 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/repo2.C	Thu Mar 31 18:16:55 2005
*************** template unsigned char __Atomicity_lock<
*** 12,14 ****
--- 12,16 ----
  
  int main () {
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/repo3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/repo3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/repo3.C	Wed Aug 25 20:52:41 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/repo3.C	Thu Mar 31 18:16:55 2005
*************** template <typename A, typename B> void g
*** 5,7 ****
--- 5,9 ----
  int main () { g<int,int>(); }
  
  char c = F;
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/repo4.C gcc-4.1.0/gcc/testsuite/g++.dg/template/repo4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/repo4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/repo4.C	Mon Oct  3 17:21:40 2005
***************
*** 0 ****
--- 1,16 ----
+ // PR c++/17775
+ // { dg-options "-frepo" }
+ // { dg-final { cleanup-repo-files } }
+ 
+ namespace { 
+   struct Foo {}; 
+ } 
+  
+ template <typename Tp> 
+ void foo(Tp) {} 
+  
+ int 
+ main() 
+ { 
+   foo(Foo()); 
+ } 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/repo5.C gcc-4.1.0/gcc/testsuite/g++.dg/template/repo5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/repo5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/repo5.C	Wed Jan  4 01:04:03 2006
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/25625
+ // { dg-options "-frepo" } 
+ 
+ template< typename T, T N > struct integral_c {
+   static const T value = N;
+   typedef integral_c< T, value + 1 > next;
+ };
+ template< typename T, T N > T const integral_c< T, N >::value;
+ integral_c<int,0> a;
+ 
+ int main () {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/sfinae2.C gcc-4.1.0/gcc/testsuite/g++.dg/template/sfinae2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/sfinae2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/sfinae2.C	Fri Nov  4 01:23:22 2005
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/19989
+ // Don't instantiate a function template if it would generate an
+ //   array of size zero.
+ 
+ // { dg-do compile }
+ 
+ template<int T> struct cl {
+   const static int value = T;
+ };
+ 
+ template<int I> void fn (char (*) [cl<I>::value] = 0 );
+ 
+ void foo (void)
+ {
+   fn<0> ();  // { dg-error "no matching function" }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/sfinae3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/sfinae3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/sfinae3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/sfinae3.C	Fri Dec 23 23:17:12 2005
***************
*** 0 ****
--- 1,17 ----
+ // PR c++/24671
+ // { dg-options "" }
+ 
+ template<typename> struct A
+ {
+   typedef int X;
+   static const int i = 0;
+ };
+ 
+ template<typename> struct B
+ {
+   B(const B&); // { dg-error "candidate" }
+   typedef typename A<char[A<B>::i]>::X Y;
+   template<typename T> B(T, Y); // { dg-error "call" }
+ };
+ 
+ B<int> b(0,0); 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/sizeof10.C gcc-4.1.0/gcc/testsuite/g++.dg/template/sizeof10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/sizeof10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/sizeof10.C	Fri Sep 16 06:50:56 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/23357
+ 
+ template<typename T> bool foo()
+ {
+     const long int i = sizeof(T) > 1 ? sizeof(T) : 0;
+     return i > 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/spec22.C gcc-4.1.0/gcc/testsuite/g++.dg/template/spec22.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/spec22.C	Tue May 10 13:47:58 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/spec22.C	Wed Oct  5 09:15:47 2005
***************
*** 5,22 ****
  // Origin: Andrew Pinski <pinskia@gcc.gnu.org>
  //         Nathan Sidwell <nathan@gcc.gnu.org>
  
! template <typename T>
! int operator+ (T const &, int); // { dg-error "T = Foo" "" }
! 
! struct Foo 
  {
!   template <typename T>
!   int operator+ (T) const; // { dg-error "T = int" "" }
  };
! 
! int main ()
  {
!   Foo f;
! 
!   return f + 0; // { dg-error "ambiguous overload" "" }
  }
--- 5,21 ----
  // Origin: Andrew Pinski <pinskia@gcc.gnu.org>
  //         Nathan Sidwell <nathan@gcc.gnu.org>
  
! template <typename T> class srp;
! template <typename T> struct ptr
  {
!   template <typename U> ptr(const srp<U> &other); // { dg-error "ptr<T>::ptr" }
  };
! template <typename T> struct srp
  {
!   template <typename U> operator ptr<U>(void) const; // { dg-error "srp<T>::operator" }
! };
! ptr<int> parent_get()
! {
!   srp<int> parent;
!   return parent; // { dg-error "is ambiguous" }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/spec25.C gcc-4.1.0/gcc/testsuite/g++.dg/template/spec25.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/spec25.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/spec25.C	Thu Sep 15 16:03:32 2005
***************
*** 0 ****
--- 1,10 ----
+ namespace N {
+   template <typename T>
+   struct S {
+     void f() {}
+   };
+ }
+ 
+ namespace K {
+   template <> void N::S<char>::f() {} // { dg-error "namespace|definition" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/spec26.C gcc-4.1.0/gcc/testsuite/g++.dg/template/spec26.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/spec26.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/spec26.C	Wed Oct  5 09:15:47 2005
***************
*** 0 ****
--- 1,35 ----
+ // dg-do run
+ // Copyright (C) 2005 Free Software Foundation, Inc.
+ // Contributed by Nathan Sidwell 16 Sep 2005 <nathan@codesourcery.com>
+ 
+ // PR 23519  template specialization ordering (DR214)
+ // Origin:  Maxim Yegorushkin <maxim.yegorushkin@gmail.com>
+ 
+ struct A
+ {
+     template<class T> int operator+(T&) { return 1;}
+ };
+ 
+ template<class T> struct B
+ {
+   int operator-(A&) {return 2;}
+   template<typename R> int operator*(R&) {return 3;}
+ };
+ 
+ template <typename T, typename R> int operator-(B<T>, R&) {return 4;}
+ template<class T> int operator+(A&, B<T>&) { return 5;}
+ template <typename T> int operator*(T &, A&){return 6;}
+ 
+ int main()
+ {
+   A a;
+   B<A> b;
+   if ((a + b) != 5)
+     return 1;
+   
+   if ((b - a) != 2)
+     return 2;
+   
+   if ((b * a) != 6)
+     return 3;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/spec27.C gcc-4.1.0/gcc/testsuite/g++.dg/template/spec27.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/spec27.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/spec27.C	Mon Oct 10 14:41:52 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/24139
+ 
+ template<typename T>
+ struct O {
+   struct I;
+ };
+ 
+ template<>
+ struct O<int>::I
+ {
+   I();
+ };
+ 
+ O<int>::I::I() {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/spec28.C gcc-4.1.0/gcc/testsuite/g++.dg/template/spec28.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/spec28.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/spec28.C	Thu Jan 19 17:33:07 2006
***************
*** 0 ****
--- 1,6 ----
+ // PR c++/25854
+ // Bad diagnostic
+ // { dg-do compile }
+ 
+ template<typename> struct A {};  // { dg-error "provided" }
+ template<> struct A<> {};        // { dg-error "wrong number" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/spec29.C gcc-4.1.0/gcc/testsuite/g++.dg/template/spec29.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/spec29.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/spec29.C	Sat Jan 28 19:24:11 2006
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/25855
+ // { dg-do run }
+ 
+ template <typename T>  int qCompare(const T *t1, const T *t2) { return 1; }
+ template <typename T>  int qCompare(T *t1, T *t2) { return 2; }
+ template <typename T1, typename T2> int qCompare(const T1 *t1, const T2 *t2) {
+   return 3; }
+ template<> int qCompare(const char *t1, const char *t2) { return 4; }
+ int main()
+ {
+   if (qCompare("a", "b") != 4)
+     return 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static19.C gcc-4.1.0/gcc/testsuite/g++.dg/template/static19.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static19.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static19.C	Mon Oct 10 14:42:14 2005
***************
*** 0 ****
--- 1,18 ----
+ // PR c++/24275
+ 
+ template <bool val>  struct bool_var {
+   static const bool value = val;
+ };
+ namespace is_inc_ {
+   struct any {
+     template <class T> any(T const&);
+   };
+   int operator++(any const&);
+   template <class T>   struct impl {
+     static T &x;
+     static const bool value = sizeof(++x) == 1;
+   };
+ }
+ template<typename T> struct is_incr : bool_var< is_inc_::impl<T>::value> {};
+ struct not_incr{};
+ typedef int sa1[ is_incr<not_incr>::value ? -1 : 1];
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static20.C gcc-4.1.0/gcc/testsuite/g++.dg/template/static20.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static20.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static20.C	Tue Oct 11 06:26:04 2005
***************
*** 0 ****
--- 1,14 ----
+ // PR c++/24277
+ 
+ template< int Bits > struct uint_t {
+   typedef unsigned short fast;
+ };
+ template < int Bits > struct mask_uint_t {
+   typedef typename uint_t< Bits >::fast fast;
+   static const fast sig_bits = 1;
+   static const fast sig_bits_fast = fast(sig_bits);
+ };
+ template < int Bits> int checksum ( ) {
+   return 1 & mask_uint_t<Bits>::sig_bits_fast;
+ }
+ int i = checksum<1>();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static21-a.cc gcc-4.1.0/gcc/testsuite/g++.dg/template/static21-a.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static21-a.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static21-a.cc	Sun Oct 16 23:17:53 2005
***************
*** 0 ****
--- 1,17 ----
+ template<int dummy>
+     struct X
+     {
+       static const int n_primes = 256;
+       static const unsigned long primes[n_primes + 1];
+     };
+ 
+   template<int dummy>
+   const int X<dummy>::n_primes;
+ 
+   template<int dummy>
+   const unsigned long X<dummy>::primes[n_primes + 1] =
+     { 0 };
+ 
+ 
+ const unsigned long  *f1(void){return &X<0>::primes[0];}
+ int main(){}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static21.C gcc-4.1.0/gcc/testsuite/g++.dg/template/static21.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static21.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static21.C	Sun Oct 16 23:17:53 2005
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/24389
+ // { dg-additional-sources "static21-a.cc" }
+ // { dg-do link }
+ 
+ template<int dummy>
+ struct X
+ {
+   static const int n_primes = 256;
+   static const unsigned long primes[n_primes + 1];
+ };
+ 
+ template<int dummy>
+ const int X<dummy>::n_primes;
+ 
+ template<int dummy>
+ const unsigned long X<dummy>::primes[n_primes + 1] =
+   { 0 };
+ 
+ const unsigned long  *f(void){return &X<0>::primes[0];}
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static22.C gcc-4.1.0/gcc/testsuite/g++.dg/template/static22.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static22.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static22.C	Sat Feb 18 08:37:34 2006
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/26266
+ 
+ template<typename> struct A
+ {
+   static const int i = 1;
+   static const int j = i;
+   static const int k = int(j);
+   int x[k];
+ };
+ 
+ A<char> a;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static23.C gcc-4.1.0/gcc/testsuite/g++.dg/template/static23.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static23.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static23.C	Sat Feb 18 08:37:34 2006
***************
*** 0 ****
--- 1,15 ----
+ // PR c++/26266
+ 
+ template<typename> struct A
+ {
+   static const int i = 1;
+ };
+ 
+ template<typename> struct B
+ {
+   static const int j = A<char>::i;
+   static const int k = int(j);
+   int x[k];
+ };
+ 
+ B<char> b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/static24.C gcc-4.1.0/gcc/testsuite/g++.dg/template/static24.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/static24.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/static24.C	Sat Feb 18 08:37:34 2006
***************
*** 0 ****
--- 1,15 ----
+ template<typename> struct A;
+ 
+ template<> struct A<char>
+ {
+   static const char i = 1;
+ };
+ 
+ template<typename T> struct B
+ {
+   static const int j = A<T>::i;
+   static const int k = int(j);
+   int x[k];
+ };
+ 
+ B<char> b;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/typedef3.C gcc-4.1.0/gcc/testsuite/g++.dg/template/typedef3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/typedef3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/typedef3.C	Wed Dec  7 21:20:25 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/19397
+ // { dg-do compile }
+ 
+ template<typename> struct A
+ {
+     typedef int ::template; // { dg-error "template" }
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/using10.C gcc-4.1.0/gcc/testsuite/g++.dg/template/using10.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/using10.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/using10.C	Fri Jan 20 03:07:49 2006
***************
*** 0 ****
--- 1,11 ----
+ // PR c++/22136
+ 
+ struct B { 
+   void foo(); 
+ }; 
+  
+ template <typename T> class I : public B {}; 
+  
+ template <typename T> class D : private I<T> { 
+   I<T>::B::foo; 
+ }; 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/template/using11.C gcc-4.1.0/gcc/testsuite/g++.dg/template/using11.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/template/using11.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/template/using11.C	Fri Jan 20 03:07:49 2006
***************
*** 0 ****
--- 1,8 ----
+ struct X {
+   void f();
+ };
+ 
+ template <typename T> 
+ struct S : public T {
+   using X::f;
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-1.C	Wed May 22 23:42:57 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-1.C	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
! /* Valid __thread specifiers.  */
  
  __thread int g1;
  extern __thread int g2;
--- 1,5 ----
! // Valid __thread specifiers.
! // { dg-require-effective-target tls }
  
  __thread int g1;
  extern __thread int g2;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-2.C	Thu May 19 07:47:40 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-2.C	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Invalid __thread specifiers.  */
+ /* { dg-require-effective-target tls } */
  
  __thread extern int g1;		/* { dg-error "'__thread' before 'extern'" } */
  __thread static int g2;		/* { dg-error "'__thread' before 'static'" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-3.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-3.C	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,11 ----
+ // Report invalid extern and __thread combinations.
+ // { dg-require-effective-target tls }
+ 
+ extern int j;		// { dg-error "previously declared here" }
+ __thread int j;		// { dg-error "follows non-thread-local" }
+ 
+ extern __thread int i;	// { dg-error "previously declared here" }
+ int i;			// { dg-error "follows thread-local" }
+ 
+ extern __thread int k;	// This is fine.
+ __thread int k;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-4.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/diag-4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/diag-4.C	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,10 ----
+ /* Invalid __thread specifiers.  */
+ /* { dg-require-effective-target tls } */
+ 
+ __thread typedef int g4;	/* { dg-error "multiple storage classes" } */
+ 
+ void foo()
+ {
+   __thread auto int l2;		/* { dg-error "multiple storage classes" } */
+   __thread register int l4;	/* { dg-error "multiple storage classes" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/init-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/init-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/init-1.C	Wed May 22 23:42:57 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/init-1.C	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Valid initializations.  */
+ /* { dg-require-effective-target tls } */
  
  __thread int i = 42;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/init-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/init-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/init-2.C	Fri Jan 17 07:10:22 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/init-2.C	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Invalid initializations.  */
+ /* { dg-require-effective-target tls } */
  
  extern __thread int i;
  __thread int *p = &i;	/* { dg-error "dynamically initialized" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/static-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/static-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/static-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/static-1.C	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,29 ----
+ // { dg-do run }
+ // { dg-options "-O2" }
+ // { dg-additional-sources "static-1a.cc" }
+ // { dg-require-effective-target tls_runtime }
+ 
+ extern "C" void abort ();
+ extern int test ();
+ 
+ struct A
+ {
+   static __thread int i;
+ };
+ 
+ __thread int A::i = 8;
+ 
+ int
+ main ()
+ {
+   if (A::i != 8)
+     abort ();
+ 
+   if (test ())
+     abort ();
+ 
+   if (A::i != 17)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/static-1a.cc gcc-4.1.0/gcc/testsuite/g++.dg/tls/static-1a.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/static-1a.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/static-1a.cc	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do run }
+ // { dg-options "-O2" }
+ // { dg-additional-sources "static-1a.cc" }
+ // { dg-require-effective-target tls_runtime }
+ 
+ struct A
+ {
+   static __thread int i;
+ };
+ 
+ int
+ test ()
+ {
+   if (A::i != 8)
+     return 1;
+ 
+   A::i = 17;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/tls.exp gcc-4.1.0/gcc/testsuite/g++.dg/tls/tls.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/tls.exp	Wed May 22 23:42:57 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/tls.exp	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
! #   Copyright (C) 2002 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
--- 1,4 ----
! #   Copyright (C) 2002, 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
***************
*** 12,33 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
  # Load support procs.
  load_lib g++-dg.exp
  
- # Test for thread-local data supported by the platform.  If it
- # isn't, everything will fail with the "not supported" message.
- 
- set comp_output [g++_target_compile \
- 		"$srcdir/$subdir/trivial.C" "trivial.S" assembly ""]
- if { [string match "*not supported*" $comp_output] } {
-   return 0
- }
- 
  # If a testcase doesn't have special options, use these.
  global DEFAULT_CXXFLAGS
  if ![info exists DEFAULT_CXXFLAGS] then {
--- 12,24 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
  # Load support procs.
  load_lib g++-dg.exp
  
  # If a testcase doesn't have special options, use these.
  global DEFAULT_CXXFLAGS
  if ![info exists DEFAULT_CXXFLAGS] then {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tls/trivial.C gcc-4.1.0/gcc/testsuite/g++.dg/tls/trivial.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tls/trivial.C	Wed May 22 23:42:57 2002
--- gcc-4.1.0/gcc/testsuite/g++.dg/tls/trivial.C	Fri Dec  2 06:43:45 2005
***************
*** 1 ****
--- 1,3 ----
+ // { dg-require-effective-target tls }
+ 
  __thread int i;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/block1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/block1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/block1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/block1.C	Tue Sep 27 16:04:25 2005
***************
*** 0 ****
--- 1,11 ----
+ // PR 13764: We were inserting an extra body block in all functions, but
+ // it's only really necessary for [cd]tors.
+ // { dg-options "-fdump-tree-gimple" }
+ 
+ void bar (void)
+ {
+   int a;
+ }
+ 
+ // { dg-final { scan-tree-dump-times "\{" 1 "gimple" } }
+ // { dg-final { cleanup-tree-dump "gimple" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/empty-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/empty-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/empty-1.C	Mon Jan 24 08:59:28 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/empty-1.C	Thu Mar 31 18:34:19 2005
*************** S bar (const S &a)
*** 11,13 ****
--- 11,14 ----
  
  /* Test whether memcpy call has been optimized out.  */
  /* { dg-final { scan-tree-dump-times "memcpy" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C	Thu May 13 06:40:44 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C	Thu Mar 31 18:34:19 2005
*************** void q()
*** 17,19 ****
--- 17,20 ----
  }
  /* We shouldnotice nothrow attribute.  */
  /* { dg-final { scan-tree-dump-times "exception" 0 "cfg"} } */
+ /* { dg-final { cleanup-tree-dump "cfg" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C	Wed Sep 15 01:18:01 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pointer-reference-alias.C	Thu Mar 31 18:34:19 2005
*************** int f(int *a)
*** 9,13 ****
  }
  
  /* There should be only one dereferencing of a. */
! /* { dg-final { scan-tree-dump-times "\\*a" 1 "vars"} } */
! 
--- 9,13 ----
  }
  
  /* There should be only one dereferencing of a. */
! /* { dg-final { scan-tree-dump-times "\\*a" 1 "vars" } } */
! /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr14814.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr14814.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr14814.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr14814.C	Wed Aug  3 21:15:11 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop2" } */
+ 
+ class YY { public:
+   YY(const YY &v) { e[0] = v.e[0]; e[1] = v.e[1]; e[2] = v.e[2]; }
+   double &y() { return e[1]; }
+   double e[3];  };
+ 
+ class XX { public:
+   YY direction() const { return v; }
+   YY v;  };
+ 
+ int foo(XX& r) {
+   if (r.direction().y() < 0.000001) return 0;
+   return 1; }
+ 
+ /* { dg-final { scan-tree-dump-times "&this" 0 "forwprop2" { xfail *-*-* } } }*/
+ /* { dg-final { scan-tree-dump-times "&r" 0 "forwprop2" } } */
+ /* { dg-final { cleanup-tree-dump "forwprop2" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C	Sat Jan 29 19:25:17 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr15791-3.C	Thu Mar 31 18:34:19 2005
*************** int f(int i, unsigned j)
*** 10,13 ****
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! 
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C	Sat Jan 29 19:25:17 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr15791-4.C	Thu Mar 31 18:34:19 2005
*************** int f(int i, int j)
*** 10,13 ****
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! 
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr15791-5.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr15791-5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr15791-5.C	Sat Jan 29 19:25:17 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr15791-5.C	Thu Mar 31 18:34:19 2005
*************** int foo(int i, int j)
*** 10,13 ****
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 1 "gimple" } } */
! 
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 1 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr18178.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr18178.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr18178.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr18178.C	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,47 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ // Define this to see it work.
+ // #define WORK_WORK_WORK
+ 
+ #define THIRD
+ 
+ #ifdef THIRD
+ #define FIRST  i < 0 || 
+ #define ORIG int
+ #define CAST
+ #else
+ 
+ #define FIRST
+ #ifdef WORK_WORK_WORK
+ #define ORIG unsigned int
+ #define CAST
+ #else
+ #define ORIG int
+ #define CAST (unsigned)
+ #endif // WORK_WORK_WORK
+ 
+ #endif // THIRD
+ 
+ struct array
+ {
+   const ORIG len;
+   int *data;
+ };
+ 
+ extern void call (ORIG);
+ 
+ void doit (array *a)
+ {
+   for (ORIG i = 0; i < a->len; ++i)
+     {
+       if (FIRST  CAST (i) >= CAST (a->len))
+ 	throw 5;
+       call (a->data[i]);
+     }
+ }
+ 
+ /* VRP should remove all but 1 if() in the loop.  */
+ 
+ /* { dg-final { scan-tree-dump-times "if " 1 "vrp"} } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr19807.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr19807.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr19807.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr19807.C	Wed May 11 08:14:44 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fdump-tree-optimized" } */
+ 
+ int a[4];
+ int *x, *y, *z;
+ 
+ void foo(void)
+ {
+ 	x = &a[3] - 1;
+ 	y = &a[1] + 1;
+ 	z = 1 + &a[1];
+ }
+ 
+ void bar(int i)
+ {
+ 	x = &a[i] - 1;
+ 	y = &a[i] + 1;
+ 	z = 1 + &a[i];
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "&a\\\[2\\\]" 3 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "&a\\\[.* - 1\\\]" 1 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "&a\\\[.* \\+ 1\\\]" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20458.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20458.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20458.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20458.C	Tue Mar 15 01:26:35 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ /* The tail call optimization would inapproriately tail call the 
+    destructors due to not recognizing a call clobbered variable */
+ namespace std
+ {
+ 	class locale
+ 	{
+ 		public:
+ 			locale();
+ 			~locale();
+ 	};
+ }
+ 
+ struct B
+ {
+ 	std::locale _M_buf_locale;
+ 	virtual ~B() {}
+ };
+ 
+ struct C : public B
+ {
+ 	char *s;
+ };
+ 
+ void foo ()
+ {
+ 	C c;
+ }
+ 
+ int main()
+ {
+ 	foo ();
+ 	return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20489.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20489.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20489.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20489.C	Wed Mar 16 16:25:47 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ struct A
+ {
+ 	~A();
+ };
+ 
+ /* If we don't create SFT's for the "empty" structure A, bad things
+    will happen, and we will fail verification.  */
+ struct B
+ {
+ 	int i;
+ 	A a;
+ 
+ 	void foo() {}
+ };
+ 
+ void bar()
+ {
+ 	B().foo();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20920.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20920.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20920.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20920.C	Mon Apr 11 15:05:50 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ /* This was causing a failure in the out of SSA pass because VRP was
+    trying to insert assertions for SSA names that flow through
+    abnormal edges.  */
+ void f(int) __attribute__((__noreturn__));
+ int d(const char *);
+ char * j ();
+ 
+ char *
+ foo (int x)
+ {
+   char *path = __null;
+   try
+     {
+       path = j ();
+       if (path != __null)
+         if (d (path) != 0)
+           f (127);
+       f (127);
+     }
+   catch (...) { }
+ 
+   return path;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20963.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20963.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr20963.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr20963.C	Sat Apr 16 02:52:16 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ /* This was causing PRE to insert the value of the ADDR variable, to 
+    remove the invariant cast but in doing so, it was creating a 
+    non-invariant expression out of the invariant one, causing a later 
+    failure in PRE.  */ 
+ struct sMCB { 
+   unsigned char type; 
+ }; 
+  
+ extern void foo (void); 
+ unsigned char mem_readb(char *pt) __attribute__((nothrow)); 
+  
+ void DOS_FreeProcessMemory(unsigned short pspseg) { 
+         while (1) { 
+                 if (pspseg) 
+                         foo (); 
+                 char *addr = (char*)(&((sMCB*)0)->type); 
+                 if (mem_readb(addr)==0x5a) break; 
+         } 
+ }; 
+  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21082.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21082.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21082.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21082.C	Sat Apr 23 21:34:40 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do link } */
+ 
+ void link_error();
+ 
+ int a[4];
+ long b, c;
+ 
+ int main()
+ {
+ 	if (&a[b] - &a[c] != b - c)
+ 		link_error();
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21407.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21407.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21407.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21407.C	Wed May 18 13:26:20 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ extern "C" void abort(void);
+ struct T1 {int a, b; virtual void f(){}};
+ struct T : T1 { struct T1 w;  int b; };
+ void foo (struct T1 *p) { struct T *q = dynamic_cast<T*>(p); if (q->b != 2) abort (); }
+ /* We shouldn't kill the store to c.b, because foo uses it.  */
+ int main () { struct T c; c.b = 2; foo (&c); return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21584-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21584-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21584-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21584-1.C	Fri Jul  1 03:55:28 2005
***************
*** 0 ****
--- 1,38 ----
+ extern "C" {
+ 
+ extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
+      throw () __attribute__ ((__nonnull__ (1, 2)));
+ 
+ extern char *foo (char *__restrict __s) throw ();
+ }
+ 
+ class cset {
+ public:
+   cset();
+   int operator()(unsigned char) const;
+ private:
+   char v[(127 * 2 + 1)+1];
+ };
+ 
+ inline int cset::operator()(unsigned char c) const
+ {
+   return v[c];
+ }
+ 
+ extern cset csspace;
+ 
+ void baz()
+ {
+   char *vec;
+   char buf[512];
+ 
+   char *p = buf;
+   while (csspace(*p))
+     p++;
+ 
+   if (*p != '#' && (p = foo(buf)) != 0) {
+     vec = new char[10+ 1];
+     strcpy(vec, p);
+   }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21584-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21584-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr21584-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr21584-2.C	Fri Jul  1 03:55:28 2005
***************
*** 0 ****
--- 1,22 ----
+ extern char *strcpy (char *__restrict __dest, __const char *__restrict __src);
+ 
+ extern char *foo (void);
+ extern void *malloc(__SIZE_TYPE__) __attribute__((malloc));
+ 
+ char v[100];
+ 
+ void baz()
+ {
+   char *vec;
+   char buf[512];
+ 
+   char *p = buf;
+   while (v[(*p)])
+     p++;
+ 
+   if (*p != '#' && (p = foo()) != 0) {
+     strcpy ((char*)malloc(10), p);
+   }
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22005.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22005.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22005.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22005.C	Sun Jun 12 03:19:26 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ struct cl_string 
+ {
+   union{ int i; };
+   cl_string ();
+ };
+ struct cl_print_univpoly_flags { cl_string univpoly_varname; };
+ struct cl_print_flags: cl_print_univpoly_flags {int i;};
+ cl_print_flags default_print_flags;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22037.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22037.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22037.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22037.C	Thu Aug  4 18:16:41 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ extern double sqrt (double) throw (); 
+  
+ void foo(double& d, int n) 
+ { 
+   double e=0; 
+   for(int i=0; i<n; i++); 
+   for(int i=0; i<n; i++) e=1; 
+   d = sqrt(e); 
+  
+   for(int i=0; i<n; i++); 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22071.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22071.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22071.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22071.C	Fri Jul  1 19:45:23 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ /* This code ends up taking the address of part of the structure that is padding, 
+    and because there is no real field there, the structure alias analyzer would 
+    abort.  */
+ struct empty_class {};
+ struct class1 : empty_class
+ {
+   class1() {}
+   empty_class value_;
+ };
+ struct lambda : class1 { };
+ lambda _1;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22279.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22279.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22279.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22279.C	Mon Jul  4 17:49:17 2005
***************
*** 0 ****
--- 1,43 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ struct string
+ {
+   long long _M_p;
+   long long i;
+   string();
+   int begin();
+   int end();
+   string(int, int);
+ };
+ struct symbol
+ {
+   int type;
+   string name;
+   long long raw_name;
+   long long demangled_name;
+   long long version_name;
+   int version_status;
+   int status;
+   void init();
+ };
+ void symbol::init() { name = string(); }
+ struct pair
+ {
+   symbol first;
+   symbol second;
+   pair(const symbol& __a, const symbol& __b) : first(__a), second(__b) { }
+ };
+ struct vector
+ {
+   void push_back(const pair& __x);
+ };
+ /* This ends up with two RHS deref copies, and we need to get the offsets right on them.  */
+ void f(vector incompatible)
+ {
+   symbol base;
+   incompatible.push_back(pair(base, base));
+ }
+ 
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22404.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22404.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22404.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22404.C	Mon Jul 11 18:28:36 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ /* We were not getting the offset of a in B and a in C::B correct, 
+    causing an abort.  */
+ struct A { A(); };
+ 
+ struct B : A
+ {
+     A a;
+ };
+ 
+ struct C : B { };
+ 
+ C c;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22444.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22444.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22444.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22444.C	Mon Oct 17 02:28:44 2005
***************
*** 0 ****
--- 1,141 ----
+ // PR tree-optimization/22444
+ // When creating SFT's, we shouldn't add the original variable
+ // to the addressable vars list, because this may cause false aliasing
+ // with the subvars leading to the subvars not being renamed when they should
+ // { dg-do compile }
+ // { dg-options "-O2" }
+ typedef int ptrdiff_t;
+ typedef unsigned int size_t;
+ namespace std
+ {
+   template<class _T1, class _T2> struct pair
+   {
+     _T1 first;
+     _T2 second;
+     pair(const _T1& __a, const _T2& __b) : first(__a), second(__b) { }
+   };
+ }
+ namespace __gnu_internal
+ {
+   typedef char __one;
+   template<typename _Tp> __one __test_type(int _Tp::*);
+ }
+ namespace std
+ {
+   template<typename _Tp> struct __is_pod
+   {
+     enum { __value = (sizeof(__gnu_internal::__test_type<_Tp>(0))!= sizeof(__gnu_internal::__one)) };
+   };
+   template<typename _Category, typename _Tp, typename _Distance = ptrdiff_t, typename _Pointer = _Tp*, typename _Reference = _Tp&> struct iterator
+   { };
+   template<typename _Iterator> struct iterator_traits
+   {
+     typedef typename _Iterator::difference_type difference_type;
+   };
+   template<typename _Iterator> class reverse_iterator : public iterator<typename iterator_traits<_Iterator>::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference>
+   {
+     typedef _Iterator iterator_type;
+     typedef typename iterator_traits<_Iterator>::difference_type difference_type;
+     typedef typename iterator_traits<_Iterator>::reference reference;
+     reverse_iterator operator+(difference_type __n) const {}
+     reverse_iterator& operator+=(difference_type __n) { }
+     reference operator[](difference_type __n) const { }
+   };
+ }
+ namespace __gnu_cxx
+ {
+   template<bool _Thread> class __pool;
+   template<template <bool> class _PoolTp, bool _Thread> struct __common_pool_policy;
+   template<typename _Tp> class __mt_alloc_base
+   {
+     typedef ptrdiff_t difference_type;
+     typedef _Tp* pointer;
+   };
+   template<typename _Tp, typename _Poolp = __common_pool_policy<__pool, true> > class __mt_alloc : public __mt_alloc_base<_Tp>
+   {
+     typedef size_t size_type;
+   };
+ }
+ namespace std
+ {
+   template<typename _Tp> struct allocator:public __gnu_cxx::__mt_alloc<_Tp>
+   {
+     template<typename _Tp1> struct rebind
+     {
+       typedef allocator<_Tp1> other;
+     };
+   };
+   template <class _Arg, class _Result> struct unary_function  { };
+   template <class _Arg1, class _Arg2, class _Result> struct binary_function
+   {
+     typedef _Arg2 second_argument_type;
+   };
+   template <class _Tp> struct less : public binary_function<_Tp, _Tp, bool>
+   {
+     bool operator()(const _Tp& __x, const _Tp& __y) const { }
+   };
+   template <class _Tp> struct _Identity : public unary_function<_Tp,_Tp> { };
+   struct _Rb_tree_node_base
+   {
+     typedef _Rb_tree_node_base* _Base_ptr;
+     typedef const _Rb_tree_node_base* _Const_Base_ptr;
+     _Base_ptr _M_right;
+     static _Base_ptr _S_minimum(_Base_ptr __x) { }
+     static _Base_ptr _S_maximum(_Base_ptr __x) { }
+   };
+   template<typename _Val> struct _Rb_tree_node { };
+   template<typename _Tp> struct _Rb_tree_iterator
+   {
+     typedef _Tp* pointer;
+     typedef _Rb_tree_iterator<_Tp> _Self;
+     typedef _Rb_tree_node_base::_Base_ptr _Base_ptr;
+     pointer operator->() const { }
+     _Self operator++(int) { }
+     _Base_ptr _M_node;
+   };
+   template<typename _Tp> struct _Rb_tree_const_iterator
+   {
+     typedef const _Tp* pointer;
+     typedef _Rb_tree_iterator<_Tp> iterator;
+     typedef _Rb_tree_node_base::_Const_Base_ptr _Base_ptr;
+     _Rb_tree_const_iterator(const iterator& __it) : _M_node(__it._M_node) { }
+     _Base_ptr _M_node;
+   };
+   template<typename _Key, typename _Val, typename _KeyOfValue, typename _Compare, typename _Alloc = allocator<_Val> > struct _Rb_tree
+   {
+     typedef typename _Alloc::template rebind<_Rb_tree_node<_Val> >::other _Node_allocator;
+     typedef _Rb_tree_node_base* _Base_ptr;
+     typedef const _Rb_tree_node_base* _Const_Base_ptr;
+     typedef _Rb_tree_node<_Val> _Rb_tree_node;
+     typedef _Key key_type;
+     typedef _Val value_type;
+     typedef value_type* pointer;
+     typedef _Rb_tree_node* _Link_type;
+     template<typename _Key_compare, bool _Is_pod_comparator = std::__is_pod<_Key_compare>::__value> struct _Rb_tree_impl
+       : _Node_allocator
+     {
+       _Rb_tree_node_base _M_header;
+     };
+     _Rb_tree_impl<_Compare> _M_impl;
+     typedef _Rb_tree_iterator<value_type> iterator;
+     typedef _Rb_tree_const_iterator<value_type> const_iterator;
+     typedef std::reverse_iterator<iterator> reverse_iterator;
+     pair<iterator,bool> insert_unique(const value_type& __x);
+   };
+   template<class _Key, class _Compare, class _Alloc> class set
+   {
+     typedef _Key key_type;
+     typedef _Key value_type;
+     typedef _Compare key_compare;
+     typedef typename _Alloc::template rebind<_Key>::other _Key_alloc_type;
+     typedef _Rb_tree<_Key, value_type, _Identity<value_type>, key_compare, _Key_alloc_type> _Rep_type;
+     _Rep_type _M_t;
+     typedef typename _Rep_type::const_iterator iterator;
+     std::pair<iterator,bool> insert(const value_type& __x)
+     {
+       std::pair<typename _Rep_type::iterator, bool> __p = _M_t.insert_unique(__x);
+       return std::pair<iterator, bool>(__p.first, __p.second);
+     }
+   };
+ }
+ template class std::set<int, std::less<int>, std::allocator<char> >;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22488.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22488.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22488.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22488.C	Thu Oct  6 19:38:00 2005
***************
*** 0 ****
--- 1,33 ----
+ // PR tree-optimization/22488
+ // This testcase is really a C++ FE bug in represnting virtual inheritance
+ // It gives the appearance to the middle end that the fields exist twice
+ // which resulted in a very confused structure analyzer
+ // { dg-do compile }
+ // { dg-options "-O" }
+ struct X
+ {
+     int i0, i1;
+       char c;
+ };
+ 
+ struct A
+ {
+     int i;
+       char c0, c1;
+ 
+         virtual ~A();
+ };
+ 
+ struct B : virtual A {};
+ 
+ struct C : B
+ {
+     X x;
+ 
+       void bar(X y) { x = y; }
+ };
+ 
+ void foo()
+ {
+     C().bar(X());
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22550.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22550.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22550.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22550.C	Fri Jul 29 16:32:00 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ class X {
+ public:
+   int mfunc1 () {
+     return 1;
+   }
+   int mfunc2 () {
+     return 2;
+   }
+   X (int a, int b) { }
+ };
+ 
+ typedef int (X::*memfunc_p_t) ();
+ 
+ memfunc_p_t mf_arr[2] = { &X::mfunc1, &X::mfunc2 };
+ 
+ int
+ main ()
+ {
+   // Get pntr to the array of pointers to member-funcs
+   memfunc_p_t (*mf_arr_p)[2] = &mf_arr;
+   // Compare indirect against direct access to an array element
+   if ((*mf_arr_p)[0] != mf_arr[0])
+     return 1;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22615.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22615.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr22615.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr22615.C	Sun Aug 14 19:23:56 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ /* Ensure that we don't crash when people decide to return the address of padding.  */
+ 
+ struct A
+ {
+     char c;
+       int i;
+ };
+ 
+ A a;
+ 
+ struct B
+ {
+     char c, d;
+ };
+ 
+ union C
+ {
+     A *p;
+       B *q;
+ 
+         C() : p(&a) {}
+ 	  char& foo() { return q->d; }
+ };
+ void bar() { C().foo() = 0; }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23046.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23046.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23046.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23046.C	Tue Nov  8 21:09:51 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ enum eumtype { ENUM1, ENUM2 };
+ void g(const eumtype kind );
+ void f(long i);
+ void g(const eumtype kind)
+ {
+   if ((kind != ENUM1) && (kind != ENUM2))
+     f(kind);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23164.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23164.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23164.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23164.C	Tue Aug  2 19:12:52 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ bool f();
+ struct S {
+     S();
+     ~S();
+ };
+ void g() {
+     for (;;) {
+         S s1, s2, s3, s4, s5, s6;
+         if (f())
+             continue;
+         if (f())
+             return;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23326.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23326.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23326.C	Sat Sep  3 19:54:46 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23326.C	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- /* { dg-do run } */
- /* { dg-options "-O2" } */
- 
- extern "C" void abort (void);
- 
- int j;
- 
- void foo (bool x, bool y)
- {
-   if (!x)
-     j = 0;
-   if (!x == y)
-     j = 1;
- }
- 
- int main (void)
- {
-   foo (1, 1);
-   if (j)
-     abort ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23948.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23948.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr23948.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr23948.C	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-options "-O1 -ffast-math -fdump-tree-recip" } */
+ /* { dg-do compile } */
+ 
+ struct MIOFILE {
+   ~MIOFILE();
+ };
+ double potentially_runnable_resource_share();
+ void f1(double);
+ int make_scheduler_request(double a, double b)
+ {
+   MIOFILE mf;
+   double prrs = potentially_runnable_resource_share();
+   f1(a/prrs);
+   f1(1/prrs);
+   f1(b/prrs);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24172.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24172.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24172.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24172.C	Sun Oct 30 18:14:15 2005
***************
*** 0 ****
--- 1,11 ----
+ // { dg-options "-O2" }
+ void IOException( char);
+ inline int* dummy( const char* const mode )
+ {
+   IOException(*mode+*mode);
+ }
+ 
+ void prepare_inpaint( )
+ {
+   dummy ("rb");
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24231-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24231-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24231-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24231-1.C	Wed Oct 19 03:34:50 2005
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* FRE testcase for PR 24231, problem with PRE coalescing abnormal phis.  */
+ struct f
+ {
+   int i;
+ };
+ struct h{h();};
+ int g(void);
+ int g1(void) throw();
+ int h2222(f*);
+ void ghh(int);
+ 
+ int main(void)
+ {
+   int i;
+   f t;
+   try
+   {
+     i = g1();
+     try
+     {
+       i = g();
+     }catch(...)
+     {}
+     int j = i;
+     try
+     { t.i = i;
+       i = g();
+     }catch(...)
+    {}
+     i = 2;
+     int h = t.i;
+     ghh (h);
+ 
+     g();
+   }catch(...)
+   {}
+   return i;
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24231-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24231-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24231-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24231-2.C	Wed Oct 19 03:34:50 2005
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* FRE testcase for PR 24231, problem with PRE coalescing abnormal phis.  */
+ struct f
+ {
+   int i;
+ };
+ struct h{h();};
+ int g(void);
+ int g1(void) throw();
+ int h2222(f*);
+ void ghh(int);
+ 
+ int main(void)
+ {
+   int i;
+   f t;
+   try
+   {
+     i = g1();
+     try
+     {
+       i = g();
+     }catch(...)
+     {}
+     int j = i;
+     try
+     {
+       i = g();
+     }catch(...)
+     {}
+     t.i = j;
+     i = 2;
+     int h = t.i;
+     ghh (h);
+ 
+     g();
+   }catch(...)
+   {}
+   return i;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24231-3.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24231-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24231-3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24231-3.C	Wed Oct 19 03:34:50 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* PRE testcase for PR 24231, problem with PRE coalescing abnormal phis.  */
+ struct MemoryManager {
+       virtual void deallocate() = 0;
+ };
+ struct XalanVector {
+       ~XalanVector()   {
+ 	      m_memoryManager->deallocate();
+ 	        }
+         void swap(XalanVector& theOther)   {
+ 	        MemoryManager* const theTempManager = m_memoryManager;
+ 		    m_memoryManager = theOther.m_memoryManager;
+ 		        theOther.m_memoryManager = theTempManager;
+ 			    theOther.m_size = 0;
+ 			      }
+ 	  void push_back()   {
+ 	          XalanVector theTemp(*this);
+ 		      theTemp.push_back();
+ 		          swap(theTemp);
+ 			    }
+ 	    MemoryManager* m_memoryManager;
+ 	      int m_size;
+ };
+ void f(void) {
+       XalanVector tempVector;
+         tempVector.push_back();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24238.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24238.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24238.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24238.C	Thu Oct  6 16:20:14 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ typedef struct SDL_Rect {
+     unsigned short w, h;
+ }SDL_Rect;
+ SDL_Rect *location();
+ SDL_Rect inner_location()
+ {
+     SDL_Rect r = *location();
+     r.w -= 1;
+     return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24351-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24351-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24351-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24351-1.C	Thu Nov  3 15:39:48 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ struct adaptor_base {
+ };
+ struct bound_argument {
+   bound_argument();
+ };
+ template <class T_functor> struct adaptor_functor : public adaptor_base {
+   explicit adaptor_functor(const T_functor& _A_functor) : functor_(_A_functor)
+ {
+   }
+   T_functor functor_;
+   bound_argument bound_;
+ };
+ template <class T_functor> struct adapts : public adaptor_base {
+   explicit adapts(const T_functor& _A_functor) : functor_(_A_functor) {
+   }
+   adaptor_functor<T_functor> functor_;
+ };
+ int main() {
+   adapts<adapts<int> > a (adapts<int>(1));
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24351-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24351-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24351-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24351-2.C	Thu Nov  3 15:39:48 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ struct adaptor_base {};
+ struct bound_argument {
+   bound_argument();
+ };
+ struct adaptor_functorint : public adaptor_base {};
+ struct adaptsint : public adaptor_base {
+   adaptsint(const int& _A_functor);
+   adaptor_functorint functor_;
+ };
+ struct adaptor_functor_adaptsint {
+   adaptor_functor_adaptsint(const adaptsint& _A_functor) : functor_(_A_functor)
+   {}
+   adaptsint functor_;
+   bound_argument bound_;
+ };
+ struct adapts_adaptsint {
+   adapts_adaptsint(const adaptsint& _A_functor) : functor_(_A_functor)
+   {}
+   adaptor_functor_adaptsint functor_;
+ };
+ int main() {
+   adapts_adaptsint a (adaptsint(1));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24351-3.C	Thu Nov  3 15:39:48 2005
***************
*** 0 ****
--- 1,101 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ namespace sigc {
+     template <class T_type>     struct type_trait     {
+     	typedef T_type& pass;
+     	typedef const T_type& take;
+     	typedef T_type* pointer;
+     };
+     template <class T_type>     struct type_trait<T_type&>     {
+     	typedef T_type& pass;
+     };
+     template<>     struct type_trait<void>     {
+     	typedef void pass;
+     };
+     template <class T_base, class T_derived>     struct is_base_and_derived     {
+     	struct big {
+   	    char memory[64];
+   	};
+     	static big is_base_class_(...);
+     	static char is_base_class_(typename type_trait<T_base>::pointer);
+     	static const bool value = sizeof(is_base_class_(reinterpret_cast<typename type_trait<T_derived>::pointer>(0))) == sizeof(char);
+     };
+     struct nil;
+     struct functor_base {
+     };
+     template <class T_functor, bool I_derives_functor_base=is_base_and_derived<functor_base,T_functor>::value>     struct functor_trait     {
+     	typedef typename T_functor::result_type result_type;
+     	typedef T_functor functor_type;
+     };
+     struct adaptor_base : public functor_base {
+     };
+     template <class T_functor, class T_arg1=void,class T_arg2=void,class T_arg3=void,class T_arg4=void,class T_arg5=void,class T_arg6=void,class T_arg7=void, bool I_derives_adaptor_base=is_base_and_derived<adaptor_base,T_functor>::value>     struct deduce_result_type     {
+     	typedef typename functor_trait<T_functor>::result_type type;
+     };
+     template <class T_functor>     struct adaptor_functor
+ 	: public adaptor_base     {
+     	template <class T_arg1=void,class T_arg2=void,class T_arg3=void,class T_arg4=void,class T_arg5=void,class T_arg6=void,class T_arg7=void> 	struct deduce_result_type 	{
+   	    typedef typename sigc::deduce_result_type<T_functor, T_arg1,T_arg2,T_arg3,T_arg4,T_arg5,T_arg6,T_arg7>::type type;
+   	};
+     	typedef typename functor_trait<T_functor>::result_type result_type;
+     	template <class T_arg1,class T_arg2> 	typename deduce_result_type<T_arg1,T_arg2>::type operator()(T_arg1 _A_arg1,T_arg2 _A_arg2) const 	{
+   	    return functor_(_A_arg1,_A_arg2);
+   	}
+     	explicit adaptor_functor(const T_functor& _A_functor) : functor_(_A_functor) {
+ 	}
+     	mutable T_functor functor_;
+     };
+     template <class T_functor, bool I_isadaptor = is_base_and_derived<adaptor_base, T_functor>::value>     struct adaptor_trait;
+     template <class T_functor>     struct adaptor_trait<T_functor, true>     {
+     	typedef T_functor adaptor_type;
+     };
+     template <class T_functor>     struct adaptor_trait<T_functor, false>     {
+     	typedef typename functor_trait<T_functor>::functor_type functor_type;
+     	typedef adaptor_functor<functor_type> adaptor_type;
+     };
+     template <class T_functor>     struct adapts
+ 	: public adaptor_base     {
+     	typedef typename adaptor_trait<T_functor>::adaptor_type adaptor_type;
+     	explicit adapts(const T_functor& _A_functor) : functor_(_A_functor) {
+ 	}
+     	mutable adaptor_type functor_;
+     };
+     template <class T_type>     struct unwrap_reference     {
+     	typedef T_type type;
+     };
+     template <class T_type>     class bound_argument     {
+     public:
+ 	bound_argument(const T_type& _A_argument) : visited_(_A_argument) {
+ 	}
+     	inline T_type& invoke() {
+ 	}
+     	T_type visited_;
+     };
+     template <int I_location, class T_functor, class T_type1=nil,class T_type2=nil,class T_type3=nil,class T_type4=nil,class T_type5=nil,class T_type6=nil,class T_type7=nil>     struct bind_functor;
+     template <class T_functor, class T_bound>     struct bind_functor<0, T_functor, T_bound, nil,nil,nil,nil,nil,nil> : public adapts<T_functor>     {
+     	typedef typename adapts<T_functor>::adaptor_type adaptor_type;
+     	template <class T_arg1=void,class T_arg2=void,class T_arg3=void,class T_arg4=void,class T_arg5=void,class T_arg6=void,class T_arg7=void> 	struct deduce_result_type      	{
+   	    typedef typename adaptor_type::template deduce_result_type<typename type_trait<typename unwrap_reference<T_bound>::type>::pass, typename type_trait<T_arg1>::pass, typename type_trait<T_arg2>::pass, typename type_trait<T_arg3>::pass, typename type_trait<T_arg4>::pass, typename type_trait<T_arg5>::pass, typename type_trait<T_arg6>::pass>::type type;
+   	};
+     	typedef typename adaptor_type::result_type result_type;
+     	result_type operator()() 	{
+   	    return this->functor_.template operator()<typename type_trait<typename unwrap_reference<T_bound>::type>::pass> (bound_.invoke());
+   	}
+     	template <class T_arg1> 	typename deduce_result_type<T_arg1>::type operator()(T_arg1 _A_arg1) 	{
+   	    return this->functor_.template operator()<typename type_trait<typename unwrap_reference<T_bound>::type>::pass, typename type_trait<T_arg1>::pass>         (bound_.invoke(), _A_arg1);
+   	}
+     	bind_functor(typename type_trait<T_functor>::take _A_func, typename type_trait<T_bound>::take _A_bound) : adapts<T_functor>(_A_func), bound_(_A_bound) {
+ 	}
+     	bound_argument<T_bound> bound_;
+     };
+     template <int I_location, class T_bound1, class T_functor> inline bind_functor<I_location, T_functor, T_bound1>     bind(const T_functor& _A_func, T_bound1 _A_b1)     {
+     	return bind_functor<I_location, T_functor, T_bound1>(_A_func, _A_b1);
+     };
+ }
+ struct foo {
+     typedef int result_type;
+     int operator()(int i, int j);
+ };
+ int main() {
+     sigc::bind<0>(sigc::bind<0>(foo(),7),8)();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24439.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24439.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/pr24439.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/pr24439.C	Thu Oct 20 15:19:03 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ 
+ /* We used to ICE in invert_truthvalue on the void type
+    2nd argument of the COND_EXPR.  */
+ 
+ void foo(void)
+ {
+   int value=1;
+   !(value?true:throw);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C	Wed Jun  2 18:56:54 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-cast-1.C	Thu Mar 31 18:34:19 2005
*************** int &f(int *a)
*** 9,12 ****
  /* There should be no cast as pointer and references are
     considered the same type. */
  /* { dg-final { scan-tree-dump-times "\\(int &\\)" 0 "vars"} } */
! 
--- 9,12 ----
  /* There should be no cast as pointer and references are
     considered the same type. */
  /* { dg-final { scan-tree-dump-times "\\(int &\\)" 0 "vars"} } */
! /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-1.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-1.C	Wed Jun  2 19:10:27 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-1.C	Thu Mar 31 18:34:19 2005
*************** void temp()
*** 58,60 ****
--- 58,61 ----
  /* We should have removed the casts from pointers to references and caused SRA to happen.  */
  
  /* { dg-final { scan-tree-dump-times "link_error" 0 "vars"} } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C	Wed Jun  2 19:10:27 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-2.C	Thu Mar 31 18:34:19 2005
*************** void test()
*** 49,51 ****
--- 49,52 ----
  
  /* We should have removed the casts from pointers to references and caused SRA to happen.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "vars"} } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C	Thu Mar 31 15:24:01 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/ssa-sra-3.C	Thu Mar 31 00:58:26 2005
*************** void C1::m2(C3 *x)
*** 81,85 ****
      }
  }   
  
- 
- 
--- 81,83 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/tmmti-2.C gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/tmmti-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/tree-ssa/tmmti-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/tree-ssa/tmmti-2.C	Sat May 14 12:53:20 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options { -O -fdump-tree-optimized } } */
+ 
+ int a[4][8];
+ 
+ int foo(int i)
+ {
+ 	return *(&a[0][0] + i*8); // a[i][0]
+ }
+ 
+ struct Foo { double x, y; };
+ 
+ Foo b[4];
+ 
+ double bar(int i)
+ {
+ 	return *(&b[0].x + i*2); // b[i].x
+ }
+ 
+ /* { dg-final { scan-tree-dump "a\\\[.*i.*\\\]\\\[0\\\]" "optimized" } } */
+ /* { dg-final { scan-tree-dump "b\\\[.*i.*\\\].x" "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr19951.cc gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr19951.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr19951.cc	Sun Feb 20 20:32:41 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr19951.cc	Thu Mar 31 18:34:19 2005
*************** void bar()
*** 15,17 ****
--- 15,19 ----
      for (;;)
          foo();
  }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr21218.cc gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr21218.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr21218.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr21218.cc	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ 
+ struct A
+ {
+     double d[2];
+     double foo(int i) { return d[i]; }
+ };
+ 
+ struct B : public A {};
+ 
+ void bar(B& b)
+ {
+     for (int i=0; i<2; ++i)
+         b.d[i] = b.foo(i);
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr21734_1.cc gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr21734_1.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr21734_1.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr21734_1.cc	Thu Jun  2 14:52:18 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ 
+ struct A
+ {
+   int a[4];
+   int& operator[](int i) { return a[i]; }
+ };
+ 
+ struct B : public A
+ {
+   int& operator[](int i) { return A::operator[](i); }
+ };
+ 
+ void foo(B &b)
+ {
+   for (int i=0; i<4; ++i)
+     b[i] = 0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr21734_2.cc gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr21734_2.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr21734_2.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr21734_2.cc	Thu Jun  2 14:52:18 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ 
+ struct A
+ {
+   int a[4];
+   int* operator[](int i) { return &a[i]; }
+ };
+ 
+ void foo(A a1, A &a2)
+ {
+   a1[1][1]=0;
+   for (int i=0; i<4; ++i)
+     a2.a[i]=0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr22543.cc gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr22543.cc
*** gcc-4.0.2/gcc/testsuite/g++.dg/vect/pr22543.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/vect/pr22543.cc	Thu Aug 18 16:07:54 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile } */
+ 
+ struct A
+ {
+   int i, j;
+ 
+   A() : i(), j() {}
+   ~A() {}
+ 
+   operator int() { return 0; }
+ };
+ 
+ struct B
+ {
+   A foo() const { return A(); }
+ };
+ 
+ struct X { ~X(); };
+ 
+ struct C
+ {
+   C();
+ 
+   int z[4];
+ };
+ 
+ C::C()
+ {
+   for (int i=0; i<4; ++i)
+     z[i]=0;
+ 
+   X x;
+ 
+   for (int i=0; i<4; ++i)
+     int j = B().foo();
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/vect/vect.exp gcc-4.1.0/gcc/testsuite/g++.dg/vect/vect.exp
*** gcc-4.0.2/gcc/testsuite/g++.dg/vect/vect.exp	Sun Feb 20 20:32:41 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/vect/vect.exp	Mon Jul 25 12:05:07 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # GCC testsuite that uses the 'dg.exp' driver.
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # GCC testsuite that uses the 'dg.exp' driver.
  
*************** set DEFAULT_VECTCFLAGS ""
*** 40,46 ****
  
  # These flags are used for all targets.
  lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \
!   "-ftree-vectorizer-verbose=3" "-fdump-tree-vect-stats"
  
  # Skip these tests for targets that do not support generating vector
  # code.  Set additional target-dependent vector flags, which can be
--- 40,46 ----
  
  # These flags are used for all targets.
  lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \
!   "-ftree-vectorizer-verbose=4" "-fdump-tree-vect-stats"
  
  # Skip these tests for targets that do not support generating vector
  # code.  Set additional target-dependent vector flags, which can be
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wbraces2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wbraces2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wbraces2.C	Thu Feb 24 21:21:28 2005
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wbraces2.C	Wed Jul 20 01:19:59 2005
***************
*** 2,15 ****
  // { dg-options "-Wmissing-braces" }
  int a[2][2] = { 0, 1, 2, 3 };			 // { dg-warning "missing braces" }
  int b[2][2] = { { 0, 1 }, { 2, 3 } };
! int c[2][2] = { { { 0 }, 1 }, { 2, 3 } };	 // { dg-error "brace-enclosed" }
  struct S { char s[6]; int i; };
  S d = { "hello", 1 };
  S e = { { "hello" }, 1 };
! S f = { { { "hello" } }, 1 };			 // { dg-error "brace-enclosed" }
  S g = { 'h', 'e', 'l', 'l', 'o', '\0', 1 };	 // { dg-warning "missing braces" }
  struct T { wchar_t s[6]; int i; };
  T i = { L"hello", 1 };
  T j = { { L"hello" }, 1 };
! T k = { { { L"hello" } }, 1 };			 // { dg-error "brace-enclosed" }
  T l = { L'h', L'e', L'l', L'l', L'o', L'\0', 1 };// { dg-warning "missing braces" }
--- 2,15 ----
  // { dg-options "-Wmissing-braces" }
  int a[2][2] = { 0, 1, 2, 3 };			 // { dg-warning "missing braces" }
  int b[2][2] = { { 0, 1 }, { 2, 3 } };
! int c[2][2] = { { { 0 }, 1 }, { 2, 3 } };	 // { dg-error "braces around scalar" }
  struct S { char s[6]; int i; };
  S d = { "hello", 1 };
  S e = { { "hello" }, 1 };
! S f = { { { "hello" } }, 1 };			 // { dg-error "braces around scalar" }
  S g = { 'h', 'e', 'l', 'l', 'o', '\0', 1 };	 // { dg-warning "missing braces" }
  struct T { wchar_t s[6]; int i; };
  T i = { L"hello", 1 };
  T j = { { L"hello" }, 1 };
! T k = { { { L"hello" } }, 1 };			 // { dg-error "braces around scalar" }
  T l = { L'h', L'e', L'l', L'l', L'o', L'\0', 1 };// { dg-warning "missing braces" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wcast-qual1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wcast-qual1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wcast-qual1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wcast-qual1.C	Tue Nov 15 17:52:34 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/24667
+ // { dg-options "-Wcast-qual" }
+ 
+ int main(int, char**) {
+   const int foo[2] = {1,1};
+   ((int*)foo)[0] = 0; // { dg-warning "cast" }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wconversion1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wconversion1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wconversion1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wconversion1.C	Thu Oct 20 23:12:53 2005
***************
*** 0 ****
--- 1,12 ----
+ // { dg-options "-fsigned-char -Wconversion" }
+ 
+ char c1 = 1024; // { dg-warning "overflow" }
+ char c2 = char(1024);
+ char c3 = (char) 1024;
+ char c4 = static_cast<char>(1024);
+  
+ unsigned char uc1 = -129; // { dg-warning "unsigned" }
+ 
+ bool b1 = -3;
+ 
+ int i1 = 0x80000000;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wctor-dtor.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wctor-dtor.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wctor-dtor.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wctor-dtor.C	Sat Oct 15 18:13:25 2005
***************
*** 0 ****
--- 1,13 ----
+ // PR c++/21347
+ // { dg-options "-Wctor-dtor-privacy" }
+ 
+ class A {
+ public:
+   int x;
+   int getX() { return x; } // comment out to avoid warning
+ };
+ 
+ int foo() {
+   A a; // accepted: clearly the ctor is not private
+   return a.x;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-1.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing=2 -O2" } */
+ 
+ double x;
+ int *foo(void)
+ {
+   return (int *)&x; /* { dg-warning "strict-aliasing" } */
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-2.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing=2 -O2" } */
+ 
+ double x;
+ 
+ template <typename T>
+ T *foo(void)
+ {
+   return (T *)&x; /* { dg-bogus "strict-aliasing" } */
+ }
+ 
+ template double *foo<double>(void);
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-3.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing=2 -O2" } */
+ 
+ double x;
+ 
+ template <typename T>
+ T *foo(void)
+ {
+   return (T *)&x; /* { dg-warning "strict-aliasing" } */
+ }
+ 
+ template int *foo<int>(void); /* { dg-warning "instantiated from here" } */
+ template char *foo<char>(void); /* { dg-bogus "instantiated from here" } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-4.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-4.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing=2 -O2" } */
+ 
+ double x;
+ 
+ template <typename T>
+ T *foo(void)
+ {
+   int a[2];
+   float *y = (float *)a; /* { dg-bogus "strict-aliasing" } */
+   return (T *)&x; /* { dg-bogus "strict-aliasing" } */
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-5.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-5.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing=2 -O2" } */
+ 
+ float foo ()
+ {
+   unsigned int MASK = 0x80000000;
+   return (float &) MASK; /* { dg-warning "strict-aliasing" } */
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-6.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-6.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing=2 -O2" } */
+ 
+ int foo ()
+ {
+   char buf[8];
+   return *((int *)buf); /* { dg-warning "strict-aliasing" } */
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-7.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wstrict-aliasing-7.C	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing -O2" } */
+ 
+ int a[2];
+ 
+ double *foo1(void)
+ {
+   return (double *)a; /* { dg-warning "strict-aliasing" } */
+ }
+ 
+ double *foo2(void)
+ {
+   return (double *)&a[0]; /* { dg-warning "strict-aliasing" } */
+ }
+ 
+ __complex__ double x;
+ int *bar(void)
+ {
+   return (int *)&__imag__ x; /* { dg-warning "strict-aliasing" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wswitch-default-1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wswitch-default-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wswitch-default-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wswitch-default-1.C	Sun Oct 16 21:13:11 2005
***************
*** 0 ****
--- 1,22 ----
+ // PR C++/21123
+ /* { dg-do compile } */
+ /* { dg-options "-Wswitch-default" } */
+ 
+ 
+ template <typename ArrayType>
+ void foo( )
+ {
+     int i = 0;
+ 
+   switch ( i ) /* { dg-bogus "switch missing default case" } */
+   {
+   case 9:
+   default:
+   break;
+   }
+ }
+ 
+ void f()
+ {
+   foo<int>();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wswitch-default-2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wswitch-default-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wswitch-default-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wswitch-default-2.C	Sun Oct 16 21:13:11 2005
***************
*** 0 ****
--- 1,21 ----
+ // PR C++/21123
+ /* { dg-do compile } */
+ /* { dg-options "-Wswitch-default" } */
+ 
+ 
+ template <typename ArrayType>
+ void foo( )
+ {
+     int i = 0;
+ 
+   switch ( i ) /* { dg-warning "switch missing default case" } */
+   {
+   case 9:
+   break;
+   }
+ } 
+ 
+ void f()
+ {
+   foo<int>();
+ } 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wunreachable-code-2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wunreachable-code-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wunreachable-code-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wunreachable-code-2.C	Tue Dec 20 08:26:04 2005
***************
*** 0 ****
--- 1,23 ----
+ // PR c++/21228
+ /* { dg-options "-Wunreachable-code" } */
+ 
+ class testStringBase
+ {
+ public:
+   char *stringPtr;
+ };
+ 
+ class testString : public testStringBase
+ {
+ public:
+   testString();
+ };
+ 
+ testString::testString()
+ {
+   stringPtr = (char *) 9;
+ }
+  
+ int main(int argc, char **argv) {
+   testString s;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wunused-12.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wunused-12.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/Wunused-12.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/Wunused-12.C	Tue Oct 11 06:19:55 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/24302
+ // { dg-options "-Wunused" }
+ 
+ static union
+ {
+   unsigned char FLT4ARR[4]; 
+   float FLT4;
+ }; // { dg-warning "used" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/format4.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/format4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/format4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/format4.C	Fri May 13 09:48:12 2005
***************
*** 0 ****
--- 1,13 ----
+ // { dg-do compile }
+ // { dg-options "-Wformat=2" }
+ 
+ extern "C" int printf (const char*, ...);
+ 
+ void foo(int i)
+ {
+ 	printf("Hello World %d!\n", i);
+ 	printf(&"Hello World %d!\n"[0], i);
+ 	printf(&"Hello World %d!\n"[6], i);
+ 	printf(&"Hello World %d!\n"[8]-2, i);
+ 	printf(&"Hello World %d!\n"[4]+2, i);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/inline2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/inline2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/inline2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/inline2.C	Thu Nov  3 19:45:10 2005
***************
*** 0 ****
--- 1,20 ----
+ // PR c++/21627
+ 
+ template<typename T>
+ struct TPL 
+ {
+   TPL (){}
+   ~TPL (){}
+   void method () {}
+ };
+ 
+ template <> TPL<int>::TPL ();
+ template <> TPL<int>::~TPL ();
+ template <> void TPL<int>::method ();
+ 
+ void Foo ()
+ {
+   TPL<int> i;
+   i.method ();
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/main-2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/main-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/main-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/main-2.C	Fri Oct 28 20:25:55 2005
***************
*** 0 ****
--- 1,19 ----
+ // { dg-do compile }
+ // Make sure that the type of f1 does not change 
+ // after the error of main about not returning 
+ // int.
+ // From Pekka Vuorela <pvuorela@iki.fi> 
+ // PR c++/23229
+ 
+ void f1();  
+   
+ void
+ main()  /* { dg-error "must return" } */
+ {     
+   f1();  
+ }  
+   
+ void f1()  
+ {     
+ }  
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-1.C	Sun Oct  9 12:59:17 2005
***************
*** 0 ****
--- 1,41 ----
+ /* Test for warnings for missing format attributes.  */
+ /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wmissing-format-attribute" } */
+ /* { dg-error "not declared" "" { target *-*-solaris2.5.1 *-*-solaris2.[5-8] } 24 } */
+ 
+ #include <stdio.h>
+ #include <stdarg.h>
+ 
+ void
+ foo (const char *fmt, ...)
+ {
+   va_list ap;
+   va_start (ap, fmt);
+   vprintf (fmt, ap); /* { dg-warning "candidate" "printf attribute warning" } */
+   va_end (ap);
+ }
+ 
+ void
+ bar (const char *fmt, ...)
+ {
+   va_list ap;
+   va_start (ap, fmt);
+   vscanf (fmt, ap); /* { dg-warning "candidate" "scanf attribute warning" { xfail *-*-solaris2.5.1 *-*-solaris2.[5-8] } } */
+   va_end (ap);
+ }
+ 
+ __attribute__((__format__(__printf__, 1, 2))) void
+ foo2 (const char *fmt, ...)
+ {
+   va_list ap;
+   va_start (ap, fmt);
+   vprintf (fmt, ap);
+   va_end (ap);
+ }
+ 
+ void
+ vfoo (const char *fmt, va_list arg)
+ {
+   vprintf (fmt, arg); /* { dg-warning "candidate" "printf attribute warning 2" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-2.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-2.C	Sun Jul 24 21:38:02 2005
***************
*** 0 ****
--- 1,17 ----
+ /* Test for warnings for missing format attributes.  Don't warn if no
+    relevant parameters for a format attribute; see c/1017.  */
+ /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wmissing-format-attribute" } */
+ 
+ #include <stdio.h>
+ #include <stdarg.h>
+ 
+ void
+ foo (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   vprintf ("Foo %s bar %s", ap); /* { dg-bogus "candidate" "bogus printf attribute warning" } */
+   va_end (ap);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-3.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-3.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-3.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-3.C	Sun Jul 24 21:38:02 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wmissing-format-attribute" } */
+ 
+ #include <stdarg.h>
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ void
+ foo1 (noattr_t na, attr_t a, vnoattr_t vna, vattr_t va)
+ {
+   noattr_t na1 = na;
+   noattr_t na2 = a; /* { dg-warning "candidate" "initialization warning" } */
+   attr_t a1 = na;
+   attr_t a2 = a;
+   
+   vnoattr_t vna1 = vna;
+   vnoattr_t vna2 = va; /* { dg-warning "candidate" "initialization warning" } */
+   vattr_t va1 = vna;
+   vattr_t va2 = va;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-4.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-4.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-4.C	Sun Jul 24 21:38:02 2005
***************
*** 0 ****
--- 1,32 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wmissing-format-attribute" } */
+ 
+ #include <stdarg.h>
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ void
+ foo1 (noattr_t na, attr_t a, vnoattr_t vna, vattr_t va)
+ {
+   noattr_t na1, na2;
+   attr_t a1, a2;
+   
+   vnoattr_t vna1, vna2;
+   vattr_t va1, va2;
+ 
+   na1 = na;
+   na2 = a; /* { dg-warning "candidate" "assignment warning" } */
+   a1 = na;
+   a2 = a;
+   
+   vna1 = vna;
+   vna2 = va; /* { dg-warning "candidate" "assignment warning" } */
+   va1 = vna;
+   va1 = va;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-5.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-5.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-5.C	Sun Jul 24 21:38:02 2005
***************
*** 0 ****
--- 1,48 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wmissing-format-attribute" } */
+ 
+ #include <stdarg.h>
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ noattr_t
+ foo1 (noattr_t na, attr_t a, int i)
+ {
+   if (i)
+     return na;
+   else
+     return a; /* { dg-warning "candidate" "return type warning" } */
+ }
+ 
+ attr_t
+ foo2 (noattr_t na, attr_t a, int i)
+ {
+   if (i)
+     return na;
+   else
+     return a;
+ }
+ 
+ vnoattr_t
+ foo3 (vnoattr_t vna, vattr_t va, int i)
+ {
+   if (i)
+     return vna;
+   else
+     return va; /* { dg-warning "candidate" "return type warning" } */
+ }
+ 
+ vattr_t
+ foo4 (vnoattr_t vna, vattr_t va, int i)
+ {
+   if (i)
+     return vna;
+   else
+     return va;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-6.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-6.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/miss-format-6.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/miss-format-6.C	Sun Jul 24 21:38:02 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wmissing-format-attribute" } */
+ 
+ #include <stdarg.h>
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ extern void foo1 (noattr_t);
+ extern void foo2 (attr_t);
+ extern void foo3 (vnoattr_t);
+ extern void foo4 (vattr_t);
+ 
+ void
+ foo (noattr_t na, attr_t a, vnoattr_t vna, vattr_t va)
+ {
+   foo1 (na);
+   foo1 (a); /* { dg-warning "candidate" "parameter passing warning" } */
+   foo2 (na);
+   foo2 (a);
+   
+   foo3 (vna);
+   foo3 (va); /* { dg-warning "candidate" "parameter passing warning" } */
+   foo4 (vna);
+   foo4 (va);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/noeffect2.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/noeffect2.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/noeffect2.C	Wed Aug 20 18:00:09 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/noeffect2.C	Tue Oct 11 23:30:57 2005
*************** extern "C" void FormatDisk();
*** 12,18 ****
--- 12,20 ----
    struct C {
      C(){ FormatDisk(), 0; }  // { dg-warning "right-hand operand of comma" "" }
    };
+   template struct C<int>; // { dg-warning "instantiated" }
    template <class T>
    void f() { FormatDisk(), 0; } // { dg-warning "right-hand operand of comma" "" }
+   template void f<int> (); // { dg-warning "instantiated" }
  void g() { FormatDisk(), 0; } // { dg-warning "right-hand operand of comma" "" }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/noeffect4.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/noeffect4.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/noeffect4.C	Fri Sep  5 08:24:28 2003
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/noeffect4.C	Tue Oct 11 23:30:57 2005
*************** template<int I> void Foo (X &x)
*** 76,88 ****
    x->m;
    static_cast<int> (x);
    dynamic_cast<Y &> (x);
!   reinterpret_cast<int> (x.Foo ());
!   const_cast<X &> (x.Foo ());
    
    reinterpret_cast<int *> (&x);// { dg-warning "no effect" "" }
    const_cast<X &> (x);         // { dg-warning "no effect" "" }
    sizeof (x++);                // { dg-warning "no effect" "" }
    __alignof__ (x++);           // { dg-warning "no effect" "" }
  }
-   
  
--- 76,88 ----
    x->m;
    static_cast<int> (x);
    dynamic_cast<Y &> (x);
!   reinterpret_cast<int> (x.Foo ()); // { dg-error "invalid cast" }
!   const_cast<X &> (x.Foo ());       // { dg-warning "not used" }
    
    reinterpret_cast<int *> (&x);// { dg-warning "no effect" "" }
    const_cast<X &> (x);         // { dg-warning "no effect" "" }
    sizeof (x++);                // { dg-warning "no effect" "" }
    __alignof__ (x++);           // { dg-warning "no effect" "" }
  }
  
+ template void Foo<4> (X&);     // { dg-warning "instantiated" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/noeffect7.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/noeffect7.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/noeffect7.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/noeffect7.C	Tue Oct 11 23:30:57 2005
***************
*** 0 ****
--- 1,8 ----
+ // PR c++/8057
+ // Don't give a "statement has no effect" warning when declaring a
+ // template, only when instantiating it.
+ // { dg-do compile }
+ // { dg-options "-Wunused" }
+ struct Y { static int i; };
+ template <typename T> class X { X() { Y::i; }; };
+ class Z { Z() { Y::i; }; }; // { dg-warning "no effect" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/pr21983.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/pr21983.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/pr21983.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/pr21983.C	Thu Sep 22 16:34:58 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR c++/21983
+ // { dg-do compile }
+ 
+ struct B { virtual void foo () = 0; };
+ struct D1 : public virtual B { virtual void foo () {} };
+ struct D2 : public virtual B { virtual void foo () {} };
+ struct D : public D1, public D2 { };	// { dg-warning "no unique final overrider" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/register-var-1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/register-var-1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/register-var-1.C	Wed Nov 10 21:09:58 2004
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/register-var-1.C	Thu May 26 19:10:52 2005
***************
*** 1,6 ****
  /* PR/18160 */
  
! /* { dg-do compile { target i?86-*-* } } */
  
  /* This should yield an error even without -pedantic.  */
  /* { dg-options "-ansi" } */
--- 1,6 ----
  /* PR/18160 */
  
! /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
  
  /* This should yield an error even without -pedantic.  */
  /* { dg-options "-ansi" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.dg/warn/undefined1.C gcc-4.1.0/gcc/testsuite/g++.dg/warn/undefined1.C
*** gcc-4.0.2/gcc/testsuite/g++.dg/warn/undefined1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.dg/warn/undefined1.C	Mon Nov  7 06:17:47 2005
***************
*** 0 ****
--- 1,7 ----
+ // PR 17256
+ 
+ inline static void f1(void); // { dg-warning "used but never" }
+ void g1(void) { if (0) { f1(); } }
+ 
+ inline void f2(void); // { dg-warning "used but never" }
+ void g2(void) { if (0) { f2(); } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/aggregates.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/aggregates.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/aggregates.C	Thu May  1 02:02:33 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/aggregates.C	Fri Dec  9 23:38:19 2005
***************
*** 1,4 ****
! // { dg-do run { target i?86-*-linux* i?86-*-freebsd* } }
  // { dg-options "-malign-double" }
  // Origin: Alex Samuel <samuel@codesourcery.com>
  
--- 1,5 ----
! // { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-freebsd* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-malign-double" }
  // Origin: Alex Samuel <samuel@codesourcery.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/align.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/align.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/align.C	Thu May  1 02:02:33 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/align.C	Fri Dec  9 23:38:19 2005
***************
*** 1,4 ****
! // { dg-do run { target i?86-*-linux* i?86-*-freebsd* } }
  // { dg-options "-malign-double" }
  // Origin: Alex Samuel <samuel@codesourcery.com>
  
--- 1,5 ----
! // { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-freebsd* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-malign-double" }
  // Origin: Alex Samuel <samuel@codesourcery.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/bitfields.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/bitfields.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/bitfields.C	Thu May  1 02:02:33 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/bitfields.C	Fri Dec  9 23:38:19 2005
***************
*** 1,4 ****
! // { dg-do run { target i?86-*-linux* i?86-*-freebsd* } }
  // { dg-options "-malign-double" }
  // Origin: Alex Samuel <samuel@codesourcery.com>
  
--- 1,5 ----
! // { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-freebsd* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-malign-double" }
  // Origin: Alex Samuel <samuel@codesourcery.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/vtable2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/vtable2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.abi/vtable2.C	Thu May  1 02:02:33 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.abi/vtable2.C	Wed Nov  9 20:13:41 2005
*************** void S4::s1 ()
*** 124,131 ****
  // These are tricks to allow us to get raw function pointers for
  // member functions.
  extern "C" {
! void _ZN2S32s3Ev ();
! void _ZN2S42s1Ev ();
  }
  
  // IA-64 uses function descriptors not function pointers in its vtables.
--- 124,134 ----
  // These are tricks to allow us to get raw function pointers for
  // member functions.
  extern "C" {
!   /* We can use weakref here without dg-require-weak, because we know
!      the symbols are defined, so we don't actually issue the .weak
!      directives.  */
!   void S3_s3 () __attribute__((__weakref__ ("_ZN2S32s3Ev")));
!   void S4_s1 () __attribute__((__weakref__ ("_ZN2S42s1Ev")));
  }
  
  // IA-64 uses function descriptors not function pointers in its vtables.
*************** int main ()
*** 169,178 ****
    INC_VDATA (vtbl, 1);
    // Skip the RTTI entry.
    INC_VDATA (vtbl, 1);
!   if (! CMP_VPTR (vtbl, &_ZN2S32s3Ev))
      return 5;
    INC_VPTR (vtbl);
!   if (! CMP_VPTR (vtbl, &_ZN2S42s1Ev))
      return 6;
    INC_VPTR (vtbl);
    // The S1 vbase offset.
--- 172,181 ----
    INC_VDATA (vtbl, 1);
    // Skip the RTTI entry.
    INC_VDATA (vtbl, 1);
!   if (! CMP_VPTR (vtbl, &S3_s3))
      return 5;
    INC_VPTR (vtbl);
!   if (! CMP_VPTR (vtbl, &S4_s1))
      return 6;
    INC_VPTR (vtbl);
    // The S1 vbase offset.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C	Thu Sep 23 21:27:19 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.brendan/crash56.C	Mon Sep 12 19:54:23 2005
*************** public:
*** 20,34 ****
      class Vix {
      public:
  	Vix();
! 	friend int operator==(void *v, const Vix& x) // { dg-error "operator==" }
  	    { return v == x.item; }
! 	friend int operator==(const Vix& x, void *v) // { dg-error "operator==" }
  	    { return v == x.item; }
  	friend int operator!=(void *v, const Vix& x)
  	    { return v != x.item; }
  	friend int operator!=(const Vix& x, void *v)
  	    { return v != x.item; }
! 	friend int operator==(const Vix& x1, const Vix& x2) // { dg-error "operator==" }
  	    { return x1.owner == x2.owner && x1.item == x2.item; }
  	friend int operator!=(const Vix& x1, const Vix& x2)
  	    { return x1.owner != x2.owner || x1.item != x2.item; }
--- 20,34 ----
      class Vix {
      public:
  	Vix();
! 	friend int operator==(void *v, const Vix& x)
  	    { return v == x.item; }
! 	friend int operator==(const Vix& x, void *v)
  	    { return v == x.item; }
  	friend int operator!=(void *v, const Vix& x)
  	    { return v != x.item; }
  	friend int operator!=(const Vix& x, void *v)
  	    { return v != x.item; }
! 	friend int operator==(const Vix& x1, const Vix& x2)
  	    { return x1.owner == x2.owner && x1.item == x2.item; }
  	friend int operator!=(const Vix& x1, const Vix& x2)
  	    { return x1.owner != x2.owner || x1.item != x2.item; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C	Thu May  1 02:02:35 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.brendan/redecl1.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // GROUPS passed redeclaration
  inline int min(int x, int y) {return x < y ? x : y;}	/* 235 */// { dg-error "" } .*
  int min(int a, int b);
--- 1,4 ----
! // { dg-do assemble }
  // GROUPS passed redeclaration
  inline int min(int x, int y) {return x < y ? x : y;}	/* 235 */// { dg-error "" } .*
  int min(int a, int b);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C	Tue Nov 30 20:16:37 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.eh/badalloc1.C	Mon May 30 05:58:49 2005
***************
*** 1,4 ****
! // { dg-do run { xfail xstormy16-*-* *-*-darwin* } }
  // Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 6 June 2000 <nathan@codesourcery.com>
  
--- 1,4 ----
! // { dg-do run { xfail xstormy16-*-* *-*-darwin[1-7]* } }
  // Copyright (C) 2000, 2002, 2003 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 6 June 2000 <nathan@codesourcery.com>
  
*************** extern "C" void *memcpy(void *, const vo
*** 14,21 ****
  #ifdef STACK_SIZE
  const int arena_size = 256;
  #else
! #if defined(__FreeBSD__) || defined(__sun__)
! // FreeBSD with threads and Solaris with threads require even more
  // space at initialization time.  FreeBSD 5 now requires over 131072 bytes.
  const int arena_size = 262144;
  #else
--- 14,21 ----
  #ifdef STACK_SIZE
  const int arena_size = 256;
  #else
! #if defined(__FreeBSD__) || defined(__sun__) || defined(__hpux__)
! // FreeBSD, Solaris and HP-UX with threads require even more
  // space at initialization time.  FreeBSD 5 now requires over 131072 bytes.
  const int arena_size = 262144;
  #else
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.eh/inline1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.eh/inline1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.eh/inline1.C	Thu May  1 02:02:39 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.eh/inline1.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // { dg-options "-ansi -pedantic-errors -O2" }
  // Copyright (C) 1999 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 29 Nov 1999 <nathan@acm.org>
--- 1,4 ----
! // { dg-do assemble }
  // { dg-options "-ansi -pedantic-errors -O2" }
  // Copyright (C) 1999 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 29 Nov 1999 <nathan@acm.org>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C	Thu May  1 02:02:39 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.eh/tmpl2.C	Mon Dec 12 22:37:46 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail i*86-*-linux* } }
  // { dg-options "-O" }
  
  // Posted by H. J. Lu <hjl@lucon.org>
--- 1,4 ----
! // { dg-do assemble }
  // { dg-options "-O" }
  
  // Posted by H. J. Lu <hjl@lucon.org>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/asmspec1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/asmspec1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/asmspec1.C	Thu May  1 02:02:39 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/asmspec1.C	Tue May 31 16:28:30 2005
***************
*** 1,4 ****
! // { dg-do assemble { target i?86-*-* } }
  // Origin: Anthony Green  <green@cygnus.com>
  
  void foo ()
--- 1,4 ----
! // { dg-do assemble { target i?86-*-* x86_64-*-* } }
  // Origin: Anthony Green  <green@cygnus.com>
  
  void foo ()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C	Wed Nov 17 17:21:43 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/attrib1.C	Thu May 26 21:22:01 2005
***************
*** 1,5 ****
! // { dg-do assemble { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // Test for using prefix attributes in a parameter decl.
  // Contributed by Jason Merrill <jason@cygnus.com>
  
--- 1,5 ----
! // { dg-do assemble { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // Test for using prefix attributes in a parameter decl.
  // Contributed by Jason Merrill <jason@cygnus.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C	Wed Nov 17 17:21:43 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/attrib2.C	Thu May 26 21:22:01 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // Test that stdcall doesn't prevent us from using op delete.
  // Contributed by Jason Merrill <jason@cygnus.com>
  
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // Test that stdcall doesn't prevent us from using op delete.
  // Contributed by Jason Merrill <jason@cygnus.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C	Wed Nov 17 17:21:43 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ext/attrib3.C	Thu May 26 21:22:01 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // Test for proper handling of attributes in template instantiation.
  // Contributed by Jason Merrill <jason@cygnus.com>
  
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // Test for proper handling of attributes in template instantiation.
  // Contributed by Jason Merrill <jason@cygnus.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/friend.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/friend.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/friend.C	Thu May  1 02:02:40 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/friend.C	Mon Sep 12 19:54:23 2005
*************** struct A {
*** 10,19 ****
  
  struct B {
    static void f () { exit (0); }
!   friend void g () { f (); }
  };
  
  int main ()
  {
!   g ();
  }
--- 10,20 ----
  
  struct B {
    static void f () { exit (0); }
!   friend void g (B) { f (); }
  };
  
  int main ()
  {
!   B b;
!   g (b);
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C	Thu May  1 02:02:41 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/scoping15.C	Mon Sep 12 19:54:23 2005
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do assemble  }
+ // { dg-options "-ffriend-injection" }
  // Bug: g++ ignores the :: qualification and dies trying to treat an integer
  // variable as a list of functions.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C	Mon Jun 20 07:30:32 2005
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C	Sat Oct 22 20:57:01 2005
***************
*** 1,4 ****
! // { dg-do run }
  // { dg-options "-fPIC" }
  // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 }
  // Test that non-variadic function calls using thunks and PIC work right.
--- 1,4 ----
! // { dg-do run { target fpic } }
  // { dg-options "-fPIC" }
  // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 }
  // Test that non-variadic function calls using thunks and PIC work right.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C	Fri Nov 26 10:16:13 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.jason/thunk3.C	Mon May 23 08:41:57 2005
***************
*** 1,4 ****
! // { dg-do run { xfail rs6000-*-* powerpc-*-eabi m68k-*-coff mn10300-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-* } }
  // Test that variadic function calls using thunks work right.
  // Note that this will break on any target that uses the generic thunk
  //  support, because it doesn't support variadic functions.
--- 1,4 ----
! // { dg-do run { xfail rs6000-*-* powerpc-*-eabi m68k-*-coff mn10300-*-* v850-*-* sh-*-* sh64-*-* h8*-*-* xtensa-*-* m32r*-*-* } }
  // Test that variadic function calls using thunks work right.
  // Note that this will break on any target that uses the generic thunk
  //  support, because it doesn't support variadic functions.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/pr25000.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/pr25000.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/pr25000.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/pr25000.C	Wed Nov 30 17:05:57 2005
***************
*** 0 ****
--- 1,24 ----
+ // { dg-do compile  }
+ // { dg-options "-O2" }
+ int * f(void);
+ void g(int*);
+ bool h(void);
+ void Find( )
+ {
+     int * pRes = f();
+     if( !pRes )  {
+         if( h()){
+           if( h()){
+             try     
+              {       
+                 pRes = new int();
+                 f();    
+              }catch(int& e1 ){}    
+           }     
+           if( !pRes )
+             f();    
+         }
+         g(pRes);
+     }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/profile1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/profile1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/profile1.C	Fri Sep  3 18:09:31 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/profile1.C	Tue Jan 10 07:36:25 2006
***************
*** 1,8 ****
! // { dg-do run { xfail i[3456]86-*-sco3.2v5* } }
  // { dg-require-profiling "-pg" }
  // { dg-options "-pg" }
  // { dg-options "-pg -static" { target hppa*-*-hpux* } }
- // { dg-bogus "\[Uu\]nresolved symbol ._mcount" "Profiling unsupported" { xfail *-*-netware* } 0 }
  // GROUPS passed profiling
  #include <stdio.h>
  main()
--- 1,7 ----
! // { dg-do run }
  // { dg-require-profiling "-pg" }
  // { dg-options "-pg" }
  // { dg-options "-pg -static" { target hppa*-*-hpux* } }
  // GROUPS passed profiling
  #include <stdio.h>
  main()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C	Thu May  1 02:02:43 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/static-mem5.C	Wed Sep 28 14:50:17 2005
***************
*** 1,5 ****
  // { dg-do assemble  }
! // { dg-options "-w" }
  // GROUPS passed static-mem
  // static-mem file
  // From: bunch@tazboy.jpl.nasa.gov (Walt Bunch)
--- 1,5 ----
  // { dg-do assemble  }
! // { dg-options "-w -fpermissive" }
  // GROUPS passed static-mem
  // static-mem file
  // From: bunch@tazboy.jpl.nasa.gov (Walt Bunch)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/weak.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/weak.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.law/weak.C	Thu May  1 02:02:43 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.law/weak.C	Fri Dec  9 23:38:19 2005
***************
*** 1,4 ****
! // { dg-do link { target i?86-*-linux* } }
  // { dg-options "-static" }
  // Bug: g++ fails to instantiate operator<<.
  
--- 1,4 ----
! // { dg-do link { target i?86-*-linux* x86_64-*-linux* } }
  // { dg-options "-static" }
  // Bug: g++ fails to instantiate operator<<.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/net43.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/net43.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/net43.C	Thu May  1 02:02:45 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/net43.C	Mon Sep 12 19:54:23 2005
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do assemble  }
+ // { dg-options "-ffriend-injection" }
  
  class foo {
   public:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C	Thu May  1 02:02:45 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/p3060d.C	Sat Jul 23 04:49:57 2005
*************** extern "C" int printf(const char *, ...)
*** 7,13 ****
  
  class Object;
  
! typedef void (Object::*VoidObjMemberFunc)(Object *, ...);
  
  class Object {
  public:
--- 7,13 ----
  
  class Object;
  
! typedef void (Object::*VoidObjMemberFunc)(Object *tracker, void *ap);
  
  class Object {
  public:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/p784.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/p784.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/p784.C	Sat Nov 13 23:33:20 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/p784.C	Sat Jun 25 01:45:27 2005
*************** implied warranty of MERCHANTABILITY or F
*** 19,25 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 19,25 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** implied warranty of MERCHANTABILITY or F
*** 41,47 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 41,47 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** implied warranty of MERCHANTABILITY or F
*** 67,73 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 67,73 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** implied warranty of MERCHANTABILITY or F
*** 101,107 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 101,107 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** implied warranty of MERCHANTABILITY or F
*** 151,157 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 151,157 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** Foundation, 59 Temple Place - Suite 330,
*** 184,190 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  
  
--- 184,190 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  
  
*************** Foundation, 59 Temple Place - Suite 330,
*** 209,215 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  
  
--- 209,215 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  
  
*************** implied warranty of MERCHANTABILITY or F
*** 827,833 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 827,833 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** inline SubString String::_substr(int fir
*** 2195,2201 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  
  
--- 2195,2201 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  
  
*************** inline SubString String::_substr(int fir
*** 2218,2224 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
--- 2218,2224 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
*************** extern const char *stringify(bool b);
*** 2582,2588 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
--- 2582,2588 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
*************** extern const char *stringify(unit u);
*** 2632,2638 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
--- 2632,2638 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
*************** protected:
*** 2896,2902 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
--- 2896,2902 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
*************** implied warranty of MERCHANTABILITY or F
*** 2959,2965 ****
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  */
  
  
--- 2959,2965 ----
  PURPOSE.  See the GNU Library General Public License for more details.
  You should have received a copy of the GNU Library General Public
  License along with this library; if not, write to the Free Software
! Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  */
  
  
*************** Foundation, 59 Temple Place - Suite 330,
*** 2983,2989 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
--- 2983,2989 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
*************** private:
*** 3280,3286 ****
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
--- 3280,3286 ----
  //
  //    You should have received a copy of the GNU Library General Public
  //    License along with this library; if not, write to the Free
! //    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  //# 210 "/projects/gnu-cygnus/gnu-cygnus-8/common/g++-include/iostream.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/p8154.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/p8154.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/p8154.C	Thu May  1 02:02:46 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/p8154.C	Wed Sep 28 14:50:17 2005
***************
*** 1,5 ****
  // { dg-do assemble  }
! // { dg-options "" }
  // prms-id: 8154
  
  class QvFieldData;
--- 1,5 ----
  // { dg-do assemble  }
! // { dg-options "-w -fpermissive" }
  // prms-id: 8154
  
  class QvFieldData;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/unused.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/unused.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/unused.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/unused.C	Wed Nov 16 02:08:11 2005
***************
*** 0 ****
--- 1,7 ----
+ // { dg-do compile { target *-*-darwin* } }
+ // { dg-options { -Wunused-parameter } }
+ // Radar 4125055
+ 
+ void foo(int x) {
+ #pragma unused ( x )
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/visibility-1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/visibility-1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.mike/visibility-1.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.mike/visibility-1.C	Thu Jul 28 18:06:47 2005
***************
*** 0 ****
--- 1,22 ----
+ /* Test visibility attribute on template member function
+    instantiations. */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fvisibility=hidden" } */
+ /* { dg-require-visibility "" } */
+ /* { dg-final { scan-not-hidden "_ZN7myClassIiE3maxEii" } } */
+ 
+ #define EXPORT __attribute__((visibility("default")))
+ 
+ template <class T>
+ class EXPORT myClass {
+ public:
+   T max (T t1, T t2);
+ };
+ 
+ template <class T>
+ T myClass<T>::max (T t1, T t2) {
+   return (t1 > t2 ? t1 : t2);
+ }
+ 
+ template class myClass<int>;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ns/crash2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ns/crash2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ns/crash2.C	Thu May  1 02:02:47 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ns/crash2.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // Submitted by bjornw@fairplay.no
  
--- 1,4 ----
! // { dg-do assemble }
  
  // Submitted by bjornw@fairplay.no
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ns/template7.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ns/template7.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.ns/template7.C	Thu May  1 02:02:47 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.ns/template7.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  
  // Based on bug report by Eric NICOLAS <nicolas@bnp-eng.remcomp.com>
--- 1,4 ----
! // { dg-do assemble }
  
  
  // Based on bug report by Eric NICOLAS <nicolas@bnp-eng.remcomp.com>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog	Wed Sep 21 03:57:26 2005
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog	Tue Feb 28 08:27:53 2006
***************
*** 1,16 ****
! 2005-09-20  Release Manager
! 
! 	* GCC 4.0.2 released.
! 
! 2005-07-07  Release Manager
! 
! 	* GCC 4.0.1 released.
! 
! 2005-04-20  Release Manager
  
! 	* GCC 4.0.0 released.
  
! 2005-04-04  Alexandre Oliva  <aoliva@redhat.com>
  
  	PR c++/19199
  	* expr2.C: Fixed.
--- 1,8 ----
! 2006-02-28  Release Manager
  
! 	* GCC 4.1.0 released.
  
! 2005-04-03  Alexandre Oliva  <aoliva@redhat.com>
  
  	PR c++/19199
  	* expr2.C: Fixed.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/ns3.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/ns3.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/ns3.C	Thu May  1 02:02:47 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/ns3.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // Copyright (C) 1999 Free Software Foundation
  
--- 1,4 ----
! // { dg-do assemble }
  
  // Copyright (C) 1999 Free Software Foundation
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/stkalign.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/stkalign.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/stkalign.C	Thu May  1 02:02:47 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/stkalign.C	Wed Dec 14 01:57:55 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail i*86-*-* } }
  
  // Copyright (C) 2000 Free Software Foundation
  
--- 1,4 ----
! // { dg-do assemble }
  
  // Copyright (C) 2000 Free Software Foundation
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/typeof1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/typeof1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.oliva/typeof1.C	Thu May  1 02:02:47 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.oliva/typeof1.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // Copyright (C) 1999 Free Software Foundation
  
--- 1,4 ----
! // { dg-do assemble }
  
  // Copyright (C) 1999 Free Software Foundation
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/comdat5-aux.cc gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/comdat5-aux.cc
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/comdat5-aux.cc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/comdat5-aux.cc	Thu Dec  8 21:53:59 2005
***************
*** 0 ****
--- 1 ----
+ #include "comdat4-aux.cc"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/comdat5.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/comdat5.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/comdat5.C	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/comdat5.C	Fri Dec 30 11:36:37 2005
***************
*** 0 ****
--- 1,6 ----
+ // PR target/17828
+ // { dg-do link { target fpic } }
+ // { dg-additional-sources " comdat5-aux.cc" }
+ // { dg-options "-O2 -fPIC" }
+ 
+ #include "comdat4.C"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/crash16.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/crash16.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/crash16.C	Thu May  1 02:02:48 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/crash16.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // { dg-options "-O2" }
  // Origin: scott snyder <snyder@fnal.gov>
  
--- 1,4 ----
! // { dg-do assemble }
  // { dg-options "-O2" }
  // Origin: scott snyder <snyder@fnal.gov>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/crash34.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/crash34.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/crash34.C	Thu May  1 02:02:49 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/crash34.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // Origin: Jakub Jelinek <jakub@redhat.com>
  
  
--- 1,4 ----
! // { dg-do assemble }
  // Origin: Jakub Jelinek <jakub@redhat.com>
  
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C	Mon Nov 29 20:58:42 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/local-alloc1.C	Sun Oct 16 01:14:19 2005
***************
*** 1,7 ****
! // { dg-do assemble  }
  // { dg-options "-O0 -fpic" }
  // Origin: Jakub Jelinek <jakub@redhat.com>
- // { dg-skip-if "No -fpic" { cris-*-elf* cris-*-aout* mmix-*-* } { "*" } { "" } }
  
  struct bar {
    bar() {}
--- 1,6 ----
! // { dg-do assemble { target fpic } }
  // { dg-options "-O0 -fpic" }
  // Origin: Jakub Jelinek <jakub@redhat.com>
  
  struct bar {
    bar() {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/lookup5.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/lookup5.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/lookup5.C	Thu May  1 02:02:50 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/lookup5.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // Simplified from bug report by Paris Smaragdis <paris@media.mit.edu>
  
  
--- 1,4 ----
! // { dg-do assemble }
  // Simplified from bug report by Paris Smaragdis <paris@media.mit.edu>
  
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/pmf3.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/pmf3.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/pmf3.C	Thu May  1 02:02:50 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/pmf3.C	Thu Jul 21 03:56:46 2005
***************
*** 5,15 ****
  template<class T>
    void connect_to_method(
      T *receiver,
!     void (T::*method)())
    {}
  
  class Gtk_Base
! { 
  public:
    void expose();
    void show();
--- 5,15 ----
  template<class T>
    void connect_to_method(
      T *receiver,
!     void (T::*method)()) // { dg-error "candidates are" }
    {}
  
  class Gtk_Base
! {
  public:
    void expose();
    void show();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/regstack.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/regstack.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/regstack.C	Thu May  1 02:02:50 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/regstack.C	Tue May 31 16:28:30 2005
***************
*** 1,4 ****
! // { dg-do run { target i?86-*-* } }
  // { dg-options "-O2" }
  
  inline double foo (double x)
--- 1,4 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
  // { dg-options "-O2" }
  
  inline double foo (double x)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C	Mon Jun 20 07:30:33 2005
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/store-expr1.C	Mon Jun 20 06:45:27 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-mtune=i686 -O2 -fpic" }
  // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 }
  class G {};
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-* } }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-mtune=i686 -O2 -fpic" }
  // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 }
  class G {};
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C	Wed Nov 17 17:21:43 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/store-expr2.C	Thu May 26 21:22:01 2005
***************
*** 1,5 ****
! // { dg-do run { target i?86-*-* } }
! // { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } }
  // { dg-options "-mtune=i686 -O2" }
  class G {};
  
--- 1,5 ----
! // { dg-do run { target i?86-*-* x86_64-*-*} }
! // { dg-require-effective-target ilp32 }
  // { dg-options "-mtune=i686 -O2" }
  class G {};
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/warn4.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/warn4.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.other/warn4.C	Thu May  1 02:02:52 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.other/warn4.C	Fri Oct 14 19:50:08 2005
***************
*** 1,4 ****
--- 1,5 ----
  // { dg-do assemble  }
+ // { dg-options "-Wconversion" }
  
  // Copyright (C) 1999 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 21 Nov 1999 <nathan@acm.org>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/asm1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/asm1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/asm1.C	Thu Jan  6 02:32:57 2005
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/asm1.C	Sat Dec 10 00:04:44 2005
***************
*** 1,6 ****
  // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
  // We'd use ebx with -fpic/-fPIC, so skip.
! // { dg-skip-if "" { i?86-*-* } { "-fpic" "-fPIC" } { "" } }
  // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
  
  template<int i> int foo(int v)
--- 1,6 ----
  // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
  // We'd use ebx with -fpic/-fPIC, so skip.
! // { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } }
  // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
  
  template<int i> int foo(int v)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/asm2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/asm2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/asm2.C	Thu Jan  6 02:32:57 2005
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/asm2.C	Fri Dec  9 23:38:19 2005
***************
*** 1,6 ****
! // { dg-do assemble { target i?86-*-linux* } }
  // We'd use ebx with -fpic/-fPIC, so skip.
! // { dg-skip-if "" { i?86-*-* } { "-fpic" "-fPIC" } { "" } }
  // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
  
  typedef void (function_ptr)(int);
--- 1,7 ----
! // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } }
! // { dg-require-effective-target ilp32 }
  // We'd use ebx with -fpic/-fPIC, so skip.
! // { dg-skip-if "" { *-*-* } { "-fpic" "-fPIC" } { "" } }
  // Origin: "Weidmann, Nicholas" <nicholas.weidmann@swx.ch>
  
  typedef void (function_ptr)(int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/crash65.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/crash65.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/crash65.C	Thu May  1 02:02:53 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/crash65.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // Copyright (C) 2000, 2002 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 11 Jan 2001 <nathan@codesourcery.com>
--- 1,4 ----
! // { dg-do assemble }
  
  // Copyright (C) 2000, 2002 Free Software Foundation, Inc.
  // Contributed by Nathan Sidwell 11 Jan 2001 <nathan@codesourcery.com>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/decl2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/decl2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/decl2.C	Thu May  1 02:02:53 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/decl2.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // Simplified from testcase by Christophe Boyanique <boyan@imac.u-paris2.fr>
  
--- 1,4 ----
! // { dg-do assemble }
  
  // Simplified from testcase by Christophe Boyanique <boyan@imac.u-paris2.fr>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C	Thu May  1 02:02:54 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/explicit76.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // Based on bug report by Simon A. Crase <s.crase@ieee.org>
  
--- 1,4 ----
! // { dg-do assemble }
  
  // Based on bug report by Simon A. Crase <s.crase@ieee.org>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/inherit2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/inherit2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/inherit2.C	Thu May  1 02:02:54 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/inherit2.C	Mon Mar 14 14:51:25 2005
*************** template <class T> class B
*** 24,31 ****
    static T value_AC;
  };
  template <typename T> T B<T>::valueA_AA;
! template <typename T> T B<T>::valueA_AC;// { dg-error "" "" { xfail *-*-* } } private - 
! template <typename T> T B<T>::value_AC;	// { dg-bogus "" "" { xfail *-*-* } }  - 
  
  // this one is a friend
  template <class T> struct A<T>::AA
--- 24,31 ----
    static T value_AC;
  };
  template <typename T> T B<T>::valueA_AA;
! template <typename T> T B<T>::valueA_AC;// { dg-error "" "" } private - 
! template <typename T> T B<T>::value_AC;	// { dg-bogus "" "" }  - 
  
  // this one is a friend
  template <class T> struct A<T>::AA
*************** template <class T> struct A<T>::AC
*** 41,47 ****
  {
    T M ()
    {
!     return B<T>::valueA_AC;	// { dg-error "" "" { xfail *-*-* } } within this context - 
    }
  };
  
--- 41,47 ----
  {
    T M ()
    {
!     return B<T>::valueA_AC;	// { dg-error "" "" } within this context - 
    }
  };
  
*************** struct AC 
*** 50,56 ****
  {
    int M ()
    {
!     return B<int>::value_AC;	// { dg-bogus "" "" { xfail *-*-* } }  - 
    }
  };
  
--- 50,56 ----
  {
    int M ()
    {
!     return B<int>::value_AC;	// { dg-bogus "" "" }  - 
    }
  };
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C	Thu May  1 02:02:54 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/instantiate4.C	Thu Mar 31 18:16:55 2005
*************** int main () {
*** 26,28 ****
--- 26,30 ----
      
      rab.bar();
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C	Thu May  1 02:02:54 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/instantiate6.C	Thu Mar 31 18:16:55 2005
*************** int main() {
*** 24,26 ****
--- 24,28 ----
    foo<int> f;
    f.g();
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp85.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp85.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp85.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp85.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999 Free Software Foundation
--- 1,4 ----
! // { dg-do assemble }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999 Free Software Foundation
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp86.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp86.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp86.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp86.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999 Free Software Foundation
--- 1,4 ----
! // { dg-do assemble }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999 Free Software Foundation
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp87.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999, 2002 Free Software Foundation
--- 1,4 ----
! // { dg-do assemble }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999, 2002 Free Software Foundation
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp88.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp88.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp88.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp88.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999 Free Software Foundation
--- 1,4 ----
! // { dg-do assemble }
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
  // Copyright (C) 1999 Free Software Foundation
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp91.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp91.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/memtemp91.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/memtemp91.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // regression test -
  
  // simplified from bug report by Leon Bottou <leonb@research.att.com>
--- 1,4 ----
! // { dg-do assemble }
  // regression test -
  
  // simplified from bug report by Leon Bottou <leonb@research.att.com>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo1.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo1.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo1.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo1.C	Thu Mar 31 18:16:55 2005
*************** int main ()
*** 18,20 ****
--- 18,22 ----
  {
    g (42);
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo2.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo2.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo2.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo2.C	Thu Mar 31 18:16:55 2005
*************** int main ()
*** 21,23 ****
--- 21,25 ----
  {
    int i = g (42);
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo3.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo3.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo3.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo3.C	Thu Mar 31 18:16:55 2005
*************** main ()
*** 30,32 ****
--- 30,34 ----
  {
    D<int> x;
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo4.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo4.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/repo4.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/repo4.C	Thu Mar 31 18:16:55 2005
*************** int main ()
*** 14,16 ****
--- 14,18 ----
  {
    S<int> s;
  }
+ 
+ // { dg-final { cleanup-repo-files } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/spec14.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/spec14.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/spec14.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/spec14.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  class X
  {
  public:
--- 1,4 ----
! // { dg-do assemble }
  class X
  {
  public:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/static10.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/static10.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.pt/static10.C	Thu May  1 02:02:55 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.pt/static10.C	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do assemble { xfail *-*-* } }
  // regression test -
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
--- 1,4 ----
! // { dg-do assemble }
  // regression test -
  
  // by Paul Burchard <burchard@pobox.com>, Level Set Systems, Inc.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C	Thu May  1 02:02:58 2003
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/g++.robertl/eb83.C	Thu Mar 31 18:14:11 2005
*************** main()
*** 14,16 ****
--- 14,18 ----
    int j = 7;
    test_swap(i, j);
  }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/g++.old-deja/old-deja.exp gcc-4.1.0/gcc/testsuite/g++.old-deja/old-deja.exp
*** gcc-4.0.2/gcc/testsuite/g++.old-deja/old-deja.exp	Fri Apr  9 22:24:29 2004
--- gcc-4.1.0/gcc/testsuite/g++.old-deja/old-deja.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Load support procs.
  load_lib g++-dg.exp
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Load support procs.
  load_lib g++-dg.exp
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20000804-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20000804-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20000804-1.c	Fri Jun 13 05:40:59 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20000804-1.c	Sat Dec 10 00:04:44 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* This does not work on m68hc11 or h8300 due to the use of an asm
     statement to force a 'long long' (64-bits) to go in a register.  */
  /* { dg-do assemble { xfail m6811-*-* m6812-*-* h8300-*-* } } */
+ /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
  
  /* Copyright (C) 2000, 2003 Free Software Foundation */
  __complex__ long long f ()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20011119-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20011119-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20011119-1.c	Tue Apr  5 00:40:41 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20011119-1.c	Tue Apr  5 00:17:25 2005
***************
*** 1,6 ****
  /* { dg-require-weak "" } */
  /* { dg-require-alias "" } */
  extern inline int foo (void) { return 23; }
! int xxx(void) __asm__("xxx");
  int xxx(void) { return 23; }
  extern int foo (void) __attribute__ ((weak, alias ("xxx")));
--- 1,10 ----
  /* { dg-require-weak "" } */
  /* { dg-require-alias "" } */
+ #define ASMNAME(cname)  ASMNAME2 (__USER_LABEL_PREFIX__, cname)
+ #define ASMNAME2(prefix, cname) STRING (prefix) cname
+ #define STRING(x)    #x
+ 
  extern inline int foo (void) { return 23; }
! int xxx(void) __asm__(ASMNAME ("xxx"));
  int xxx(void) { return 23; }
  extern int foo (void) __attribute__ ((weak, alias ("xxx")));
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20011119-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20011119-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20011119-2.c	Tue Apr  5 00:40:41 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20011119-2.c	Tue Apr  5 00:17:25 2005
***************
*** 1,8 ****
  /* { 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")));
  int baz (void) { return foo (); }
! int xxx(void) __asm__("xxx");
  int xxx(void) { return 23; }
--- 1,12 ----
  /* { dg-require-weak "" } */
  /* { dg-require-alias "" } */
+ #define ASMNAME(cname)  ASMNAME2 (__USER_LABEL_PREFIX__, cname)
+ #define ASMNAME2(prefix, cname) STRING (prefix) cname
+ #define STRING(x)    #x
+ 
  extern inline int foo (void) { return 23; }
  int bar (void) { return foo (); }
  extern int foo (void) __attribute__ ((weak, alias ("xxx")));
  int baz (void) { return foo (); }
! int xxx(void) __asm__(ASMNAME ("xxx"));
  int xxx(void) { return 23; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050303-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050303-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050303-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050303-1.c	Fri Mar  4 01:38:56 2005
***************
*** 0 ****
--- 1,10 ----
+ void crc()
+ {
+     int  toread;
+     long long nleft;
+     unsigned char buf[(128 * 1024)];
+ 
+     nleft = 0;
+     while (toread = (nleft < (2147483647 * 2U + 1U)) ? nleft: (2147483647 * 2U + 1U) )
+ 	;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050328-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050328-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050328-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050328-1.c	Mon Mar 28 14:10:05 2005
***************
*** 0 ****
--- 1,24 ----
+ void fn1 (void *);
+ void fn2 (void *);
+ void foo (void);
+ void bar (void);
+ 
+ extern inline void *
+ baz (void)
+ {
+   return 0;
+ }
+ 
+ void
+ foo (void)
+ {
+   fn1 (baz ());
+   fn2 (baz ());
+ }
+ 
+ void
+ bar (void)
+ {
+   fn1 (baz ());
+   fn2 (baz);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050423-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050423-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050423-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050423-1.c	Tue Jun  7 19:54:23 2005
***************
*** 0 ****
--- 1,16 ----
+ /* PR tree-optimization/20742 */
+ 
+ int
+ foo (int x, int y)
+ {
+   register int a = y + 57;
+   register int b = y + 31;
+ 
+   while (x-- > 0)
+     {
+  #define TEN(x) x x x x x x x x x x
+       TEN (TEN (a += b; b -= a;))
+       TEN (TEN (a += b; b -= a;))
+     }
+   return a + b;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050510-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050510-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050510-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050510-1.c	Tue May 10 19:19:30 2005
***************
*** 0 ****
--- 1,12 ----
+ void bar (int k)
+ {
+   void *label = (k) ? &&x : &&y;
+   if (k)
+     goto *label;
+ 
+ x:
+   if (k)
+     dont_remove ();
+ y:
+   return;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050520-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050520-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050520-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050520-1.c	Tue May 24 02:54:06 2005
***************
*** 0 ****
--- 1,13 ----
+ struct s { int x[4]; };
+ struct s gs;
+ 
+ void
+ bar (void)
+ {
+   struct s *s;
+   int i;
+ 
+   s = &gs;
+   for (i = 0; i < 4; i++)
+     ((char*) (&s->x[i]))[0] = 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050622-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050622-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050622-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050622-1.c	Sun Jun 26 05:27:14 2005
***************
*** 0 ****
--- 1,16 ----
+ #if __SCHAR_MAX__ == 127 && __INT_MAX__ >= 2147483647
+ struct S { char buf[72*1024*1024]; };
+ #else
+ struct S { char buf[64]; };
+ #endif
+ 
+ extern void bar (struct S);
+ 
+ struct S s;
+ 
+ int
+ foo (void)
+ {
+   bar (s);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050801-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050801-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050801-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050801-1.c	Mon Aug  1 16:29:17 2005
***************
*** 0 ****
--- 1,8 ----
+ __inline void libc_name_p (void)
+ {
+   enum { A = 1 };
+ }
+ void nothrow_libfn_p (void)
+ {
+   libc_name_p ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050801-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050801-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050801-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050801-2.c	Mon Aug  1 16:29:17 2005
***************
*** 0 ****
--- 1,12 ----
+ __inline int f(int i)
+ {
+   struct {
+     int t[i];
+   } t;
+   return sizeof(t.t[i--]);
+ }
+ 
+ int g(int i)
+ {
+   return f(i);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050802-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050802-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20050802-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20050802-1.c	Tue Aug  2 20:39:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* PR 23196 */
+ /* { dg-options "-fforce-addr" } */
+ 
+ void foo()
+ {
+   char c;
+ 
+   c |= 1;
+   bar(&c);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20051207-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20051207-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20051207-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20051207-1.c	Thu Dec  8 08:33:39 2005
***************
*** 0 ****
--- 1,7 ----
+ /* PR target/25268 */
+ 
+ long long
+ foo (long long x, int y)
+ {
+   return x << ((y + 1) & 63);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20051216-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20051216-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20051216-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20051216-1.c	Thu Dec 22 23:21:00 2005
***************
*** 0 ****
--- 1,131 ----
+ /* PR rtl-optimization/25432 */
+ 
+ void *malloc (__SIZE_TYPE__);
+ void *realloc (void *, __SIZE_TYPE__);
+ 
+ struct A { double x, y; };
+ struct B { double x0, y0, x1, y1; };
+ struct C { int n_points; int dir; struct B bbox; struct A *points; };
+ struct D { int n_segs; struct C segs[1]; };
+ 
+ void foo (int, int, int *, int, int *, struct A **, int *, int *,
+ 	  struct D *, int *, struct D **, int *, int **);
+ int baz (struct A, struct A, struct A, struct A);
+ 
+ static void
+ bar (struct D *svp, int *n_points_max,
+      struct A p, int *seg_map, int *active_segs, int i)
+ {
+   int asi, n_points;
+   struct C *seg;
+ 
+   asi = seg_map[active_segs[i]];
+   seg = &svp->segs[asi];
+   n_points = seg->n_points;
+   seg->points = ((struct A *)
+ 		realloc (seg->points, (n_points_max[asi] <<= 1) * sizeof (struct A)));
+   seg->points[n_points] = p;
+   seg->bbox.y1 = p.y;
+   seg->n_points++;
+ }
+ 
+ struct D *
+ test (struct D *vp)
+ {
+   int *active_segs, n_active_segs, *cursor, seg_idx;
+   double y, share_x;
+   int tmp1, tmp2, asi, i, j, *n_ips, *n_ips_max, n_segs_max;
+   struct A **ips, p_curs, *pts;
+   struct D *new_vp;
+   int *n_points_max, *seg_map, first_share;
+ 
+   n_segs_max = 16;
+   new_vp = (struct D *) malloc (sizeof (struct D) +
+ 				(n_segs_max - 1) * sizeof (struct C));
+   new_vp->n_segs = 0;
+ 
+   if (vp->n_segs == 0)
+     return new_vp;
+ 
+   active_segs = ((int *) malloc ((vp->n_segs) * sizeof (int)));
+   cursor = ((int *) malloc ((vp->n_segs) * sizeof (int)));
+ 
+   seg_map = ((int *) malloc ((vp->n_segs) * sizeof (int)));
+   n_ips = ((int *) malloc ((vp->n_segs) * sizeof (int)));
+   n_ips_max = ((int *) malloc ((vp->n_segs) * sizeof (int)));
+   ips = ((struct A * *) malloc ((vp->n_segs) * sizeof (struct A *)));
+ 
+   n_points_max = ((int *) malloc ((n_segs_max) * sizeof (int)));
+ 
+   n_active_segs = 0;
+   seg_idx = 0;
+   y = vp->segs[0].points[0].y;
+   while (seg_idx < vp->n_segs || n_active_segs > 0)
+     {
+       for (i = 0; i < n_active_segs; i++)
+ 	{
+ 	  asi = active_segs[i];
+ 	  if (vp->segs[asi].n_points - 1 == cursor[asi] &&
+ 	      vp->segs[asi].points[cursor[asi]].y == y)
+ 	    i--;
+ 	}
+ 
+       while (seg_idx < vp->n_segs && y == vp->segs[seg_idx].points[0].y)
+ 	{
+ 	  cursor[seg_idx] = 0;
+ 	  n_ips[seg_idx] = 1;
+ 	  n_ips_max[seg_idx] = 2;
+ 	  ips[seg_idx] =
+ 	    ((struct A *) malloc ((n_ips_max[seg_idx]) * sizeof (struct A)));
+ 	  ips[seg_idx][0] = vp->segs[seg_idx].points[0];
+ 	  pts = ((struct A *) malloc ((16) * sizeof (struct A)));
+ 	  pts[0] = vp->segs[seg_idx].points[0];
+ 	  tmp1 = seg_idx;
+ 	  for (j = i; j < n_active_segs; j++)
+ 	    {
+ 	      tmp2 = active_segs[j];
+ 	      active_segs[j] = tmp1;
+ 	      tmp1 = tmp2;
+ 	    }
+ 	  active_segs[n_active_segs] = tmp1;
+ 	  n_active_segs++;
+ 	  seg_idx++;
+ 	}
+       first_share = -1;
+       share_x = 0;
+ 
+       for (i = 0; i < n_active_segs; i++)
+ 	{
+ 	  asi = active_segs[i];
+ 	  p_curs = ips[asi][1];
+ 	  if (p_curs.y == y)
+ 	    {
+ 	      bar (new_vp, n_points_max,
+ 		   p_curs, seg_map, active_segs, i);
+ 
+ 	      n_ips[asi]--;
+ 	      for (j = 0; j < n_ips[asi]; j++)
+ 		ips[asi][j] = ips[asi][j + 1];
+ 
+ 	      if (first_share < 0 || p_curs.x != share_x)
+ 		{
+ 		  foo (first_share, i,
+ 		       active_segs, n_active_segs,
+ 		       cursor, ips, n_ips, n_ips_max, vp, seg_map,
+ 		       &new_vp, &n_segs_max, &n_points_max);
+ 		  first_share = i;
+ 		  share_x = p_curs.x;
+ 		}
+ 	    }
+ 	  else
+ 	    {
+ 	      foo (first_share, i,
+ 		   active_segs, n_active_segs,
+ 		   cursor, ips, n_ips, n_ips_max, vp, seg_map,
+ 		   &new_vp, &n_segs_max, &n_points_max);
+ 	      first_share = -1;
+ 	    }
+ 	}
+     }
+   return new_vp;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20051228-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20051228-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20051228-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20051228-1.c	Wed Jan  4 09:17:16 2006
***************
*** 0 ****
--- 1,10 ----
+ /* PR target/25554 */
+ /* Bitwise shift with negative shift count has undefined behavior,
+    but we shouldn't ICE on it.  */
+ 
+ void
+ foo (long x)
+ {
+   if (((x >> -2) & 1) != 0)
+     bar ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20060208-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20060208-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20060208-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20060208-1.c	Mon Feb 13 21:29:13 2006
***************
*** 0 ****
--- 1,10 ----
+ /* PR middle-end/26092 */
+ typedef __SIZE_TYPE__ size_t;
+ extern void *malloc (size_t);
+ 
+ void *(*const foo) (size_t) = malloc;
+ 
+ void *test (void)
+ {
+   return (*foo) (3);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20060215-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20060215-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20060215-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20060215-1.c	Fri Feb 17 08:58:46 2006
***************
*** 0 ****
--- 1,42 ----
+ /* PR middle-end/26300 */
+ 
+ struct S
+ {
+   char c;
+   struct S *d;
+   struct S *e;
+ };
+ extern struct S *u, *v;
+ extern void fn1 (struct S *) __attribute__ ((noreturn));
+ void fn2 (struct S *);
+ 
+ static inline struct S *
+ fn3 (struct S *x)
+ {
+   if (x->c != 6)
+     fn1 (0);
+   return (struct S *) x;
+ }
+ 
+ static inline int
+ fn4 (struct S *x)
+ {
+   if (x != u)
+     return 3;
+   fn2 (x);
+   return 0;
+ }
+ 
+ int
+ test (struct S *x)
+ {
+   struct S *r;
+   int m = 0;
+ 
+   for (r = x; r != v; r = (fn3 (r)->d))
+     if (r->c != 6)
+       fn1 (x);
+     else
+       m |= 1 << (fn4 (fn3 (r)->e) - 1);
+   return m;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20060217-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20060217-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/20060217-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/20060217-1.c	Sat Feb 18 07:49:27 2006
***************
*** 0 ****
--- 1,25 ----
+ /* PR middle-end/26334 */
+ 
+ struct U
+ {
+   unsigned int u[256];
+ };
+ 
+ struct S
+ {
+   int u, v, w, x;
+   int s[255];
+ };
+ 
+ int
+ foo (struct U *x, struct S *y)
+ {
+   register int i;
+   for (i = 0; i < 255; i++)
+     {
+       unsigned int v;
+       __asm__ ("" : "=r" (v) : "0" (x->u[i + 1]) : "cc");
+       y->s[i] = v;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/compile.exp gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/compile.exp
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/compile.exp	Fri Jun 13 05:41:01 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/compile.exp	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # These tests come from Torbjorn Granlund's (tege@cygnus.com)
  # C torture test suite, and other contributors.
--- 13,19 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # These tests come from Torbjorn Granlund's (tege@cygnus.com)
  # C torture test suite, and other contributors.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/complex-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/complex-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/complex-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/complex-2.c	Sat Jun 18 08:51:44 2005
***************
*** 0 ****
--- 1,16 ----
+ /* PR 22103 */
+ 
+ _Complex float f(void);
+ void *a;
+ 
+ _Complex float g(void)
+ {
+   _Complex float x = f();
+   __imag__ x = 1.0;
+   if (__imag__ x != 1.0)
+     {
+       a = &x;
+     }
+   return x;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/complex-3.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/complex-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/complex-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/complex-3.c	Sun Jun 19 06:32:31 2005
***************
*** 0 ****
--- 1,17 ----
+ /* PR 22116 */
+ 
+ void g(_Complex float);
+ _Complex float f(int data, _Complex float x, _Complex float y)
+ {
+   _Complex float i, t;
+   if (data) 
+   {
+     i = x +  __imag__ y;
+     g(i);
+   }
+   else
+     i = 5;
+   t = x + __imag__ y;
+   g(t);
+   return t * i;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr17913.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr17913.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr17913.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr17913.c	Tue May 10 13:47:05 2005
***************
*** 0 ****
--- 1,7 ----
+ /* Test for computed jump into cond_expr: bug 17913.  */
+ void f (void) 
+ { 
+   void *p = &&a;
+   1 ? 1 : ({ a : 1; }); 
+   goto *p;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr20412.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr20412.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr20412.c	Thu Mar 10 22:22:17 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr20412.c	Thu Mar 10 22:13:01 2005
*************** foo(void)
*** 4,10 ****
    int      a,b,g;
    int      i,len;
    int      stop;
! 
    len = 10;
    stop = 0;
    for (i=0; i<len; i++)
--- 4,10 ----
    int      a,b,g;
    int      i,len;
    int      stop;
!                                                                      
    len = 10;
    stop = 0;
    for (i=0; i<len; i++)
*************** foo(void)
*** 12,20 ****
      a = bar1() ? 0 : 1;
      b = bar2() ? 0 : 1;
      g = bar3() ? 0 : 1;
! 
      if (stop = ((a+b) % 2 != g)) break;
    }
! 
    return stop;
  }
--- 12,20 ----
      a = bar1() ? 0 : 1;
      b = bar2() ? 0 : 1;
      g = bar3() ? 0 : 1;
!                                                                      
      if (stop = ((a+b) % 2 != g)) break;
    }
!  
    return stop;
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr20928.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr20928.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr20928.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr20928.c	Mon Oct 31 18:42:23 2005
***************
*** 0 ****
--- 1,10 ----
+ extern struct bar_t bar;
+ void *a;
+ void
+ foo (void)
+ {
+   void **p = a;
+   do {
+     *p++ = ((unsigned char *) &bar + ((unsigned long int) 1L << 31));
+   } while (p);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21021.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21021.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21021.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21021.c	Fri Apr 15 01:29:44 2005
***************
*** 0 ****
--- 1,19 ----
+ /* PR tree-optimization/21021
+ 
+    The front end produces a comparison of mismatched types, namely an
+    integer and a pointer, causing VRP to compute TYPE_MAX_VALUE for a
+    pointer, which we cannot.  */
+ 
+ extern void *bar (void);
+ 
+ int
+ foo (unsigned int *p, unsigned int *q)
+ {
+   const void *r = bar ();
+ 
+   if (r >= (const void *) *p
+       && r < (const void *) *q)
+     return 1;
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21030.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21030.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21030.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21030.c	Fri Apr 29 16:23:18 2005
***************
*** 0 ****
--- 1,19 ----
+ /* PR tree-optimization/21030
+    VRP used to create invalid ranges where VR->MIN is greater than
+    VR->MAX.  */
+ 
+ void
+ foo (int unit)
+ {
+   int i;
+ 
+   for (i = 0; unit; i++, unit--)
+     {
+       if (i >= 0)
+ 	{
+ 	  int j = i;
+ 	  while (j)
+ 	    j--;
+ 	}
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21356.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21356.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21356.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21356.c	Wed Jul  6 05:25:57 2005
***************
*** 0 ****
--- 1,13 ----
+ int a;
+ void* p;
+ 
+ void foo (void)
+ {
+   switch (a)
+   {
+     a0: case 0:   p = &&a1;
+     a1: case 1:   p = &&a2;
+     a2: default:  p = &&a1;
+   }
+   goto *p;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21532.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21532.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21532.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21532.c	Thu May 12 22:13:00 2005
***************
*** 0 ****
--- 1,14 ----
+ 
+ 
+ int
+ bar (unsigned char key)
+ {
+   unsigned char buf[sizeof (unsigned long)+2];
+   unsigned char b;
+   unsigned char *buf_ = buf + 1;
+ 
+   for (b = 8; b != 0; b--)
+     buf_[b] = key >> b;
+ 
+   return foo (b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21638.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21638.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21638.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21638.c	Tue May 24 02:54:06 2005
***************
*** 0 ****
--- 1,21 ----
+ typedef struct hashhdr {
+  int bitmaps[32];
+ } HASHHDR;
+ 
+ static void
+ swap_header_copy(HASHHDR *srcp, HASHHDR *destp)
+ {
+   int i;
+   for (i = 0; i < 32; i++)
+     ((char *)&(destp->bitmaps[i]))[0] = ((char *)&(srcp->bitmaps[i]))[1];
+ }
+ 
+ int
+ flush_meta(HASHHDR *whdrp1)
+ {
+  HASHHDR *whdrp;
+  HASHHDR whdr;
+  whdrp = &whdr;
+  swap_header_copy(whdrp1, whdrp);
+  return (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21761.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21761.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21761.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21761.c	Mon May 30 06:10:05 2005
***************
*** 0 ****
--- 1,9 ----
+ void f1()
+ {
+   long bit=0, exponent;
+   exponent = -exponent;
+   for (bit = 1; exponent; bit <<= 1)
+       if (exponent & bit)
+               exponent ^= bit;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21839.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21839.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21839.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21839.c	Thu Jun  2 02:08:02 2005
***************
*** 0 ****
--- 1,12 ----
+  typedef struct { } spinlock_t;
+ typedef struct {
+  unsigned sequence;
+  spinlock_t lock;
+ } seqlock_t;
+ void ext3_new_inode(seqlock_t *rsv_seqlock)
+ {
+  *rsv_seqlock = (seqlock_t) { 0, (spinlock_t) { } };
+ 
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21840.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21840.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr21840.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr21840.c	Wed Jul 13 02:33:10 2005
***************
*** 0 ****
--- 1,11 ----
+ void fn_show_state(void);
+ typedef void (*fn_handler_fn)(void);
+ static fn_handler_fn fn_handler[1];
+ 
+ void k_spec(unsigned char value)
+ {
+   void *func = fn_handler[value];
+   if (func == fn_show_state )
+     return;
+   fn_handler[value]();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22269.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22269.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22269.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22269.c	Fri Jul  1 22:01:17 2005
***************
*** 0 ****
--- 1,16 ----
+ /* We used to ICE in tree-ssa-reassoc because we did look at the correct operand to
+    see if it was a SSA_NAME.  */
+ int printf(const char*, ...);
+ int main(int argv, char*argc) {
+ 
+     int d1;
+     int d2;
+     int s1, s2;
+     int b;
+     ((d1)&=(int)0x0000ffffL, (d1)|=((int)(short)(0x344))<<16);
+     ((d1)&=(int)0xffff0000UL, (d1)|=(int)(unsigned short)(0x4567));
+     ((d2)&=(int)0x0000ffffL, (d2)|=((int)(short)(0))<<16);
+     ((d2)&=(int)0xffff0000UL, (d2)|=(int)(unsigned short)(0x3b9a));
+     printf(" dividend >>: %ld\n", d1);
+     printf(" divisor  >>: %ld\n", d2);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22379.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22379.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22379.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22379.c	Tue Jul 12 22:06:49 2005
***************
*** 0 ****
--- 1,23 ----
+ void __add_entropy_words(void);
+ void __wake_up(void);
+ void SHATransform(void);
+ static inline __attribute__((always_inline)) void add_entropy_words(void){}
+ void extract_entropy(void);
+ static inline __attribute__((always_inline)) void xfer_secondary_pool(void)
+ {
+ extract_entropy();
+ add_entropy_words();
+ }
+ void extract_entropy(void)
+ {
+ xfer_secondary_pool();
+ __wake_up();
+ }
+ void init_std_data(void)
+ {
+ add_entropy_words();
+ }
+ void rand_initialize(void)
+ {
+ init_std_data();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22398.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22398.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22398.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22398.c	Fri Jul 15 23:14:07 2005
***************
*** 0 ****
--- 1,21 ----
+ #if ULONG_MAX != 4294967295u && ULONG_MAX != 18446744073709551615ull
+ int main(void) { exit (0); }
+ #else
+ #if ULONG_MAX != 18446744073709551615ull
+ #define NUM 0xf0000000
+ #else
+ #define NUM 0xf000000000000000
+ #endif
+ 
+ 
+ int func1(void *rw)
+ {
+   return (rw && (((unsigned long) rw) >= NUM) );
+ }
+ 
+ void func2(void *rw)
+ {
+   while(rw && (((unsigned long) rw) >= NUM) ) {}
+ }
+ 
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22422.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22422.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22422.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22422.c	Wed Jul 13 14:24:59 2005
***************
*** 0 ****
--- 1,30 ----
+ /* We should not crash trying to figure out the points-to sets for the below.  We used to because we
+    ended up adding pointers to the points-to set of the ANYTHING variable.  */
+ struct D
+ {
+   int n;
+   int c [8];
+ };
+ 
+ struct A
+ {
+   int i;
+   char *p;
+ };
+ 
+ struct B
+ {
+   struct A *a;
+   struct D *d;
+ };
+ 
+ int dtInsert1 (struct B *b)
+ {
+   struct A a = { 0, 0 };
+   struct D *d;
+   b->a = &a;
+   d = b->d;
+   &d->c [d->n];
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22531.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22531.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr22531.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr22531.c	Sun Jul 17 22:28:19 2005
***************
*** 0 ****
--- 1,7 ----
+ typedef struct dw_cfi_oprnd_struct {
+       unsigned long reg;
+ } dw_cfa_location;
+ void def_cfa_1 (void) {
+       dw_cfa_location loc;
+         loc.reg = loc.reg;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23233-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23233-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23233-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23233-1.c	Sat Aug  6 11:05:48 2005
***************
*** 0 ****
--- 1,8 ----
+ void foo (volatile long long *x)
+ {
+   while (*x)
+     {
+       *x = 0;
+       *((volatile char *) 0) = 0;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23237.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23237.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23237.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23237.c	Mon Sep 12 15:50:08 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-require-effective-target named_sections } */
+ 
+ static __attribute__ ((__section__ (".init.data"))) char *message;
+ static __attribute__ ((__section__ (".init.data"))) int (*actions[])(void) = {};
+ void unpack_to_rootfs(void)
+ {
+   while (!message)
+   {
+     if(!actions[0])
+       return;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23435.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23435.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23435.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23435.c	Tue Nov 22 20:53:08 2005
***************
*** 0 ****
--- 1,11 ----
+ /* PR target/23435.
+ 
+    On m68k-none-elf, this used to cause an unrecognized insn because
+    zero_extendsidi2 accepted operands that are both memory even though
+    such a pattern did not exist.  */
+ 
+ void
+ foo (unsigned long *a, unsigned long long *p)
+ {
+   *p = *a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23445.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23445.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23445.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23445.c	Tue Oct  4 03:02:19 2005
***************
*** 0 ****
--- 1,10 ----
+  struct buffer_head {
+    char *b_data;
+  };
+    void asfs_deletebnode( struct buffer_head *bhsec)  {
+      if (bhsec == 0)   {
+      void *bnc2 = (void *) bhsec->b_data;
+      if (bnc2)       return;
+      if (bhsec)       __brelse(bhsec);
+    }
+  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23476.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23476.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23476.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23476.c	Fri Aug 19 18:08:55 2005
***************
*** 0 ****
--- 1,14 ----
+ int h(int);
+ int t;
+ static inline int f(const int i)
+ {
+   int tt = i;
+   _Bool a = i < t;
+   if (a)
+     return h(t);
+   return 9;
+ }
+ int g(void)
+ {
+   return f(0x7FFFFFFF);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23929.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23929.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23929.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23929.c	Tue Sep 20 19:10:44 2005
***************
*** 0 ****
--- 1,21 ----
+ /* PR tree-optimization/23929 */
+ 
+ extern void bar (char *);
+ 
+ void
+ foo (int n, char *z)
+ {
+   char b[2048];
+   int x, y;
+ 
+   bar (b);
+   for (y = 0; y < 60; y++)
+     if (n == 600)
+       for (x = 0; x < 320;)
+ 	{
+ 	  *z++ = b[x];
+ 	  x += 1;
+ 	  *z++ = b[x];
+ 	  x += 1;
+ 	}
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23944.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23944.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23944.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23944.c	Sun Sep 18 14:15:19 2005
***************
*** 0 ****
--- 1,4 ----
+ float f(float src[][4])
+ {
+  return *(src[3]);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23946.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23946.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23946.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23946.c	Tue Oct 11 15:11:02 2005
***************
*** 0 ****
--- 1,72 ----
+ 
+ extern int foo (void);
+ 
+ int
+ avi_parse_comments (int fd, char *buf, int space_left)
+ {
+   int len = 0, readlen = 0, k;
+   char *data, *c, *d;
+ 
+   if (fd <= 0 || !buf || space_left <= 0)
+     return -1;
+ 
+   memset (buf, 0, space_left);
+ 
+   readlen = foo ();
+   if (!(data = malloc (readlen * sizeof (char) + 1)))
+     return -1;
+ 
+   c = data;
+   space_left--;
+ 
+   while (len < space_left)
+     {
+       if (!c || *c == '\0')
+ 	break;
+       else if (*c == 'I')
+ 	{
+ 	  d = c + 4;
+ 
+ 	  k = 0;
+ 	  while (d[k] != '\r' && d[k] != '\n' && d[k] != '\0')
+ 	    ++k;
+ 	  if (k >= space_left)
+ 	    return len;
+ 
+ 
+ 	  memcpy (buf + len, c, 4);
+ 	  len += 4;
+ 
+ 
+ 	  long2str (buf + len, k + 1);
+ 	  len += 4;
+ 
+ 
+ 	  memcpy (buf + len, d, k);
+ 
+ 	  *(buf + len + k + 1) = '\0';
+ 
+ 
+ 	  if ((k + 1) & 1)
+ 	    {
+ 	      k++;
+ 	      *(buf + len + k + 1) = '\0';
+ 	    }
+ 	  len += k + 1;
+ 
+ 
+ 	  while (*c != '\n' && *c != '\0')
+ 	    ++c;
+ 	  if (*c != '\0')
+ 	    ++c;
+ 	  else
+ 	    break;
+ 
+ 	}
+     }
+   free (data);
+ 
+   return len;
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23960.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23960.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr23960.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr23960.c	Mon Sep 26 01:28:50 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR tree-optimization/23960
+    fold-const.c used to construct a comparison node with one pointer
+    operand and one non-pointer operand.  */
+ 
+ void abort (void) __attribute__ ((noreturn));
+ 
+ void
+ foo (char *d, unsigned long int n)
+ { 
+   if (d + n > d)
+     abort ();
+ } 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr24227.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr24227.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr24227.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr24227.c	Fri Oct  7 18:12:11 2005
***************
*** 0 ****
--- 1,6 ----
+ int Fdisplay_buffer   (int buffer)
+ {
+   if (((struct buffer *) ((unsigned int) buffer)) ==
+       (0,(struct buffer *) ((unsigned int) ((buffer) & 1))))
+     return 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr24883.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr24883.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr24883.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr24883.c	Mon Nov 21 05:43:32 2005
***************
*** 0 ****
--- 1,21 ----
+ typedef struct _rec_stl rec_stl;
+ struct _rec_stl {
+    unsigned char **strs;
+ };
+ orec_str_list(int count) {
+    rec_stl *stl;
+    int i, j;
+    int li, lj;
+    unsigned char ci, cj;
+    for (i = 0; i < count; i++) {
+       for (j = i + 1; j < count; j++) {
+          cj = lj > 2 ? stl->strs[j][0] : (long)stl->strs[j] & 0xff;
+          if ((count >= 16 && cj < ci) || (cj == ci && lj > li)) {
+             stl->strs[j] = stl->strs[i];
+             ci ^= cj;
+             cj ^= ci;
+             ci ^= cj;
+          }
+       }
+    }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr24930.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr24930.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr24930.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr24930.c	Thu Dec  1 03:24:00 2005
***************
*** 0 ****
--- 1,17 ----
+ /* PR 24930 */
+ extern int foo(int u) __attribute__((noinline));
+ int foo(int u) {return 0;}
+ int
+ main(int argc, char** argv)
+ {
+   const char *buf = argv[1];
+   
+   unsigned int data = (((unsigned int) buf[0]) << 8) + (unsigned int) buf[1];
+   if (data & 0x8000) {
+     data &= 0x7fff ;
+     data ^= 0x7fff ;
+     data += 1 ;
+     data *= -1 ;
+   }
+   return foo((int)data);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr25310.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr25310.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr25310.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr25310.c	Fri Jan 13 21:34:53 2006
***************
*** 0 ****
--- 1,22 ----
+ 
+ /* Prevent spurious test failures on 16-bit targets.  */
+ #if __INT_MAX__ >= 2147483647L
+ 
+ extern int f (char *, int);
+ 
+ void test (void)
+ {
+   char buffer[65536];
+   char *bufptr;
+   char *bufend;
+   int bytes;
+ 
+   bufptr = buffer;
+   bufend = buffer + sizeof(buffer) - 1;
+ 
+   while ((bytes = f (bufptr, bufend - bufptr)) > 0)
+     bufptr += bytes;
+ }
+ 
+ #endif
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr25311.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr25311.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr25311.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr25311.c	Fri Dec  9 11:26:47 2005
***************
*** 0 ****
--- 1,47 ----
+ 
+ struct w
+ {
+   int top;
+   int left;
+   int height;
+   int width;
+   struct w *next;
+   struct w *parent;
+   struct w *child;
+ };
+ 
+ extern struct w *Qnil;
+ 
+ void
+ set_size (struct w *w, int new_size, int nodelete, int set_height)
+ {
+   int old_size = set_height? w->height : w->width;
+ 
+   if (nodelete || w->parent == Qnil)
+     {
+       int last_pos, last_old_pos, pos, old_pos, first;
+       int div_val = old_size << 1;
+       struct w *c;
+ 
+       last_pos = first = set_height? w->top : w->left;
+       last_old_pos = 0;
+ 
+       for (c = w->child; c != Qnil; c = c->next)
+ 	{
+ 	  if (set_height)
+ 	    old_pos = last_old_pos + c->height;
+ 	  else
+ 	    old_pos = last_old_pos + c->width;
+ 
+ 	  pos = (((old_pos * new_size) << 1) + old_size) / div_val;
+ 	  set_size (c, pos + first - last_pos, 1, set_height);
+ 	  last_pos = pos + first;
+ 	  last_old_pos = old_pos;
+ 	}
+ 
+       if (!nodelete)
+ 	for (c = w->child; c != Qnil; c = c->next)
+ 	  use (c);
+     }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr25513.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr25513.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pr25513.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pr25513.c	Thu Dec 22 18:11:39 2005
***************
*** 0 ****
--- 1,9 ----
+ int f(void)
+ {
+   static _Complex double t;
+   int i, j;
+   for(i = 0;i<2;i++)
+     for(j = 0;j<2;j++)
+       t = .5 * 1.0;
+   return t;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pta-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pta-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/pta-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/pta-1.c	Tue Jun 21 00:59:17 2005
***************
*** 0 ****
--- 1,31 ----
+ typedef struct JSObject JSObject;
+ typedef struct JSObjectMap *(*JSNewObjectMapOp) (JSObject *obj);
+ typedef JSObject *(*JSGetMethodOp) (JSObject *obj);
+ struct JSObjectOps {
+     JSNewObjectMapOp newObjectMap;
+ };
+ struct JSXMLObjectOps {
+     struct JSObjectOps base;
+     JSGetMethodOp getMethod;
+ };
+ struct JSObjectMap {
+     struct JSObjectOps *ops;
+ };
+ struct JSObject {
+     struct JSObjectMap *map;
+ };
+ 
+ struct JSXMLObjectOps js_XMLObjectOps;
+ 
+ 
+ /* We need to create SFT's for the entire structure when this address is taken, 
+    not just the part in the component reference itself.  */
+ JSObject *JS_GetMethod(JSObject *obj)
+ {
+     if (obj->map->ops == &js_XMLObjectOps.base) {
+         struct JSXMLObjectOps *ops;
+         ops = (struct JSXMLObjectOps *) obj->map->ops;
+         obj = ops->getMethod(obj);
+     }
+     return obj;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/structs.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/structs.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/structs.c	Sun Dec  2 08:29:23 2001
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/structs.c	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
   
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
!    Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
     Please email any bugs, comments, and/or additions to this file to:
     bug-gdb@prep.ai.mit.edu  */
--- 12,18 ----
   
     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
!    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
     Please email any bugs, comments, and/or additions to this file to:
     bug-gdb@prep.ai.mit.edu  */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/sync-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/sync-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/sync-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/sync-1.c	Thu Apr 14 23:37:47 2005
***************
*** 0 ****
--- 1,276 ----
+ /* Validate that each of the __sync builtins compiles.  This won't 
+    necessarily link, since the target might not support the builtin,
+    so this may result in external library calls.  */
+ 
+ signed char sc;
+ unsigned char uc;
+ signed short ss;
+ unsigned short us;
+ signed int si;
+ unsigned int ui;
+ signed long sl;
+ unsigned long ul;
+ signed long long sll;
+ unsigned long long ull;
+ void *vp;
+ int *ip;
+ struct S { struct S *next; int x; } *sp;
+ 
+ void test_op_ignore (void)
+ {
+   (void) __sync_fetch_and_add (&sc, 1);
+   (void) __sync_fetch_and_add (&uc, 1);
+   (void) __sync_fetch_and_add (&ss, 1);
+   (void) __sync_fetch_and_add (&us, 1);
+   (void) __sync_fetch_and_add (&si, 1);
+   (void) __sync_fetch_and_add (&ui, 1);
+   (void) __sync_fetch_and_add (&sl, 1);
+   (void) __sync_fetch_and_add (&ul, 1);
+   (void) __sync_fetch_and_add (&sll, 1);
+   (void) __sync_fetch_and_add (&ull, 1);
+ 
+   (void) __sync_fetch_and_sub (&sc, 1);
+   (void) __sync_fetch_and_sub (&uc, 1);
+   (void) __sync_fetch_and_sub (&ss, 1);
+   (void) __sync_fetch_and_sub (&us, 1);
+   (void) __sync_fetch_and_sub (&si, 1);
+   (void) __sync_fetch_and_sub (&ui, 1);
+   (void) __sync_fetch_and_sub (&sl, 1);
+   (void) __sync_fetch_and_sub (&ul, 1);
+   (void) __sync_fetch_and_sub (&sll, 1);
+   (void) __sync_fetch_and_sub (&ull, 1);
+ 
+   (void) __sync_fetch_and_or (&sc, 1);
+   (void) __sync_fetch_and_or (&uc, 1);
+   (void) __sync_fetch_and_or (&ss, 1);
+   (void) __sync_fetch_and_or (&us, 1);
+   (void) __sync_fetch_and_or (&si, 1);
+   (void) __sync_fetch_and_or (&ui, 1);
+   (void) __sync_fetch_and_or (&sl, 1);
+   (void) __sync_fetch_and_or (&ul, 1);
+   (void) __sync_fetch_and_or (&sll, 1);
+   (void) __sync_fetch_and_or (&ull, 1);
+ 
+   (void) __sync_fetch_and_xor (&sc, 1);
+   (void) __sync_fetch_and_xor (&uc, 1);
+   (void) __sync_fetch_and_xor (&ss, 1);
+   (void) __sync_fetch_and_xor (&us, 1);
+   (void) __sync_fetch_and_xor (&si, 1);
+   (void) __sync_fetch_and_xor (&ui, 1);
+   (void) __sync_fetch_and_xor (&sl, 1);
+   (void) __sync_fetch_and_xor (&ul, 1);
+   (void) __sync_fetch_and_xor (&sll, 1);
+   (void) __sync_fetch_and_xor (&ull, 1);
+ 
+   (void) __sync_fetch_and_and (&sc, 1);
+   (void) __sync_fetch_and_and (&uc, 1);
+   (void) __sync_fetch_and_and (&ss, 1);
+   (void) __sync_fetch_and_and (&us, 1);
+   (void) __sync_fetch_and_and (&si, 1);
+   (void) __sync_fetch_and_and (&ui, 1);
+   (void) __sync_fetch_and_and (&sl, 1);
+   (void) __sync_fetch_and_and (&ul, 1);
+   (void) __sync_fetch_and_and (&sll, 1);
+   (void) __sync_fetch_and_and (&ull, 1);
+ 
+   (void) __sync_fetch_and_nand (&sc, 1);
+   (void) __sync_fetch_and_nand (&uc, 1);
+   (void) __sync_fetch_and_nand (&ss, 1);
+   (void) __sync_fetch_and_nand (&us, 1);
+   (void) __sync_fetch_and_nand (&si, 1);
+   (void) __sync_fetch_and_nand (&ui, 1);
+   (void) __sync_fetch_and_nand (&sl, 1);
+   (void) __sync_fetch_and_nand (&ul, 1);
+   (void) __sync_fetch_and_nand (&sll, 1);
+   (void) __sync_fetch_and_nand (&ull, 1);
+ }
+ 
+ void test_fetch_and_op (void)
+ {
+   sc = __sync_fetch_and_add (&sc, 11);
+   uc = __sync_fetch_and_add (&uc, 11);
+   ss = __sync_fetch_and_add (&ss, 11);
+   us = __sync_fetch_and_add (&us, 11);
+   si = __sync_fetch_and_add (&si, 11);
+   ui = __sync_fetch_and_add (&ui, 11);
+   sl = __sync_fetch_and_add (&sl, 11);
+   ul = __sync_fetch_and_add (&ul, 11);
+   sll = __sync_fetch_and_add (&sll, 11);
+   ull = __sync_fetch_and_add (&ull, 11);
+ 
+   sc = __sync_fetch_and_sub (&sc, 11);
+   uc = __sync_fetch_and_sub (&uc, 11);
+   ss = __sync_fetch_and_sub (&ss, 11);
+   us = __sync_fetch_and_sub (&us, 11);
+   si = __sync_fetch_and_sub (&si, 11);
+   ui = __sync_fetch_and_sub (&ui, 11);
+   sl = __sync_fetch_and_sub (&sl, 11);
+   ul = __sync_fetch_and_sub (&ul, 11);
+   sll = __sync_fetch_and_sub (&sll, 11);
+   ull = __sync_fetch_and_sub (&ull, 11);
+ 
+   sc = __sync_fetch_and_or (&sc, 11);
+   uc = __sync_fetch_and_or (&uc, 11);
+   ss = __sync_fetch_and_or (&ss, 11);
+   us = __sync_fetch_and_or (&us, 11);
+   si = __sync_fetch_and_or (&si, 11);
+   ui = __sync_fetch_and_or (&ui, 11);
+   sl = __sync_fetch_and_or (&sl, 11);
+   ul = __sync_fetch_and_or (&ul, 11);
+   sll = __sync_fetch_and_or (&sll, 11);
+   ull = __sync_fetch_and_or (&ull, 11);
+ 
+   sc = __sync_fetch_and_xor (&sc, 11);
+   uc = __sync_fetch_and_xor (&uc, 11);
+   ss = __sync_fetch_and_xor (&ss, 11);
+   us = __sync_fetch_and_xor (&us, 11);
+   si = __sync_fetch_and_xor (&si, 11);
+   ui = __sync_fetch_and_xor (&ui, 11);
+   sl = __sync_fetch_and_xor (&sl, 11);
+   ul = __sync_fetch_and_xor (&ul, 11);
+   sll = __sync_fetch_and_xor (&sll, 11);
+   ull = __sync_fetch_and_xor (&ull, 11);
+ 
+   sc = __sync_fetch_and_and (&sc, 11);
+   uc = __sync_fetch_and_and (&uc, 11);
+   ss = __sync_fetch_and_and (&ss, 11);
+   us = __sync_fetch_and_and (&us, 11);
+   si = __sync_fetch_and_and (&si, 11);
+   ui = __sync_fetch_and_and (&ui, 11);
+   sl = __sync_fetch_and_and (&sl, 11);
+   ul = __sync_fetch_and_and (&ul, 11);
+   sll = __sync_fetch_and_and (&sll, 11);
+   ull = __sync_fetch_and_and (&ull, 11);
+ 
+   sc = __sync_fetch_and_nand (&sc, 11);
+   uc = __sync_fetch_and_nand (&uc, 11);
+   ss = __sync_fetch_and_nand (&ss, 11);
+   us = __sync_fetch_and_nand (&us, 11);
+   si = __sync_fetch_and_nand (&si, 11);
+   ui = __sync_fetch_and_nand (&ui, 11);
+   sl = __sync_fetch_and_nand (&sl, 11);
+   ul = __sync_fetch_and_nand (&ul, 11);
+   sll = __sync_fetch_and_nand (&sll, 11);
+   ull = __sync_fetch_and_nand (&ull, 11);
+ }
+ 
+ void test_op_and_fetch (void)
+ {
+   sc = __sync_add_and_fetch (&sc, uc);
+   uc = __sync_add_and_fetch (&uc, uc);
+   ss = __sync_add_and_fetch (&ss, uc);
+   us = __sync_add_and_fetch (&us, uc);
+   si = __sync_add_and_fetch (&si, uc);
+   ui = __sync_add_and_fetch (&ui, uc);
+   sl = __sync_add_and_fetch (&sl, uc);
+   ul = __sync_add_and_fetch (&ul, uc);
+   sll = __sync_add_and_fetch (&sll, uc);
+   ull = __sync_add_and_fetch (&ull, uc);
+ 
+   sc = __sync_sub_and_fetch (&sc, uc);
+   uc = __sync_sub_and_fetch (&uc, uc);
+   ss = __sync_sub_and_fetch (&ss, uc);
+   us = __sync_sub_and_fetch (&us, uc);
+   si = __sync_sub_and_fetch (&si, uc);
+   ui = __sync_sub_and_fetch (&ui, uc);
+   sl = __sync_sub_and_fetch (&sl, uc);
+   ul = __sync_sub_and_fetch (&ul, uc);
+   sll = __sync_sub_and_fetch (&sll, uc);
+   ull = __sync_sub_and_fetch (&ull, uc);
+ 
+   sc = __sync_or_and_fetch (&sc, uc);
+   uc = __sync_or_and_fetch (&uc, uc);
+   ss = __sync_or_and_fetch (&ss, uc);
+   us = __sync_or_and_fetch (&us, uc);
+   si = __sync_or_and_fetch (&si, uc);
+   ui = __sync_or_and_fetch (&ui, uc);
+   sl = __sync_or_and_fetch (&sl, uc);
+   ul = __sync_or_and_fetch (&ul, uc);
+   sll = __sync_or_and_fetch (&sll, uc);
+   ull = __sync_or_and_fetch (&ull, uc);
+ 
+   sc = __sync_xor_and_fetch (&sc, uc);
+   uc = __sync_xor_and_fetch (&uc, uc);
+   ss = __sync_xor_and_fetch (&ss, uc);
+   us = __sync_xor_and_fetch (&us, uc);
+   si = __sync_xor_and_fetch (&si, uc);
+   ui = __sync_xor_and_fetch (&ui, uc);
+   sl = __sync_xor_and_fetch (&sl, uc);
+   ul = __sync_xor_and_fetch (&ul, uc);
+   sll = __sync_xor_and_fetch (&sll, uc);
+   ull = __sync_xor_and_fetch (&ull, uc);
+ 
+   sc = __sync_and_and_fetch (&sc, uc);
+   uc = __sync_and_and_fetch (&uc, uc);
+   ss = __sync_and_and_fetch (&ss, uc);
+   us = __sync_and_and_fetch (&us, uc);
+   si = __sync_and_and_fetch (&si, uc);
+   ui = __sync_and_and_fetch (&ui, uc);
+   sl = __sync_and_and_fetch (&sl, uc);
+   ul = __sync_and_and_fetch (&ul, uc);
+   sll = __sync_and_and_fetch (&sll, uc);
+   ull = __sync_and_and_fetch (&ull, uc);
+ 
+   sc = __sync_nand_and_fetch (&sc, uc);
+   uc = __sync_nand_and_fetch (&uc, uc);
+   ss = __sync_nand_and_fetch (&ss, uc);
+   us = __sync_nand_and_fetch (&us, uc);
+   si = __sync_nand_and_fetch (&si, uc);
+   ui = __sync_nand_and_fetch (&ui, uc);
+   sl = __sync_nand_and_fetch (&sl, uc);
+   ul = __sync_nand_and_fetch (&ul, uc);
+   sll = __sync_nand_and_fetch (&sll, uc);
+   ull = __sync_nand_and_fetch (&ull, uc);
+ }
+ 
+ void test_compare_and_swap (void)
+ {
+   sc = __sync_val_compare_and_swap (&sc, uc, sc);
+   uc = __sync_val_compare_and_swap (&uc, uc, sc);
+   ss = __sync_val_compare_and_swap (&ss, uc, sc);
+   us = __sync_val_compare_and_swap (&us, uc, sc);
+   si = __sync_val_compare_and_swap (&si, uc, sc);
+   ui = __sync_val_compare_and_swap (&ui, uc, sc);
+   sl = __sync_val_compare_and_swap (&sl, uc, sc);
+   ul = __sync_val_compare_and_swap (&ul, uc, sc);
+   sll = __sync_val_compare_and_swap (&sll, uc, sc);
+   ull = __sync_val_compare_and_swap (&ull, uc, sc);
+ 
+   ui = __sync_bool_compare_and_swap (&sc, uc, sc);
+   ui = __sync_bool_compare_and_swap (&uc, uc, sc);
+   ui = __sync_bool_compare_and_swap (&ss, uc, sc);
+   ui = __sync_bool_compare_and_swap (&us, uc, sc);
+   ui = __sync_bool_compare_and_swap (&si, uc, sc);
+   ui = __sync_bool_compare_and_swap (&ui, uc, sc);
+   ui = __sync_bool_compare_and_swap (&sl, uc, sc);
+   ui = __sync_bool_compare_and_swap (&ul, uc, sc);
+   ui = __sync_bool_compare_and_swap (&sll, uc, sc);
+   ui = __sync_bool_compare_and_swap (&ull, uc, sc);
+ }
+ 
+ void test_lock (void)
+ {
+   sc = __sync_lock_test_and_set (&sc, 1);
+   uc = __sync_lock_test_and_set (&uc, 1);
+   ss = __sync_lock_test_and_set (&ss, 1);
+   us = __sync_lock_test_and_set (&us, 1);
+   si = __sync_lock_test_and_set (&si, 1);
+   ui = __sync_lock_test_and_set (&ui, 1);
+   sl = __sync_lock_test_and_set (&sl, 1);
+   ul = __sync_lock_test_and_set (&ul, 1);
+   sll = __sync_lock_test_and_set (&sll, 1);
+   ull = __sync_lock_test_and_set (&ull, 1);
+ 
+   __sync_synchronize ();
+ 
+   __sync_lock_release (&sc);
+   __sync_lock_release (&uc);
+   __sync_lock_release (&ss);
+   __sync_lock_release (&us);
+   __sync_lock_release (&si);
+   __sync_lock_release (&ui);
+   __sync_lock_release (&sl);
+   __sync_lock_release (&ul);
+   __sync_lock_release (&sll);
+   __sync_lock_release (&ull);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/volatile-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/volatile-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/volatile-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/volatile-1.c	Thu Feb  9 14:00:59 2006
***************
*** 0 ****
--- 1,18 ----
+ /* The problem here was that the statements that
+    loaded from exception.reason where not being
+    marked as having volatile behaviour which
+    caused load PRE on the tree level to go
+    into an infinite loop. */
+ 
+ struct gdb_exception
+ {
+   int reason;
+ };
+ int catch_exceptions_with_msg (int *gdberrmsg)
+ {
+   volatile struct gdb_exception exception;
+   exceptions_state_mc_init (&(exception));
+   if (exception.reason != 0)
+     foo ();
+   return exception.reason;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/zero-strct-3.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/zero-strct-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/zero-strct-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/zero-strct-3.c	Wed Aug 17 01:55:05 2005
***************
*** 0 ****
--- 1,12 ----
+ typedef struct {} spinlock_t;
+ struct sk_buff_head {
+   int i;
+   spinlock_t lock;
+ };
+ struct sk_buff_head audit_skb_queue;
+ void audit_init(void)
+ {
+   struct sk_buff_head *list = &audit_skb_queue;
+   spinlock_t a = {};
+   audit_skb_queue.lock = a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/zero-strct-4.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/zero-strct-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/zero-strct-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/zero-strct-4.c	Wed Aug 17 01:55:05 2005
***************
*** 0 ****
--- 1,14 ----
+ typedef struct {} raw_spinlock_t;
+ typedef struct {
+   raw_spinlock_t raw_lock;
+ } spinlock_t;
+ struct sk_buff_head {
+   int i;
+   spinlock_t lock;
+ };
+ struct sk_buff_head audit_skb_queue;
+ void audit_init(void)
+ {
+   struct sk_buff_head *list = &audit_skb_queue;
+   audit_skb_queue.lock = (spinlock_t) { .raw_lock = { } };
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/zero-strct-5.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/zero-strct-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/compile/zero-strct-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/compile/zero-strct-5.c	Mon Oct 31 13:22:20 2005
***************
*** 0 ****
--- 1,14 ----
+ /* Check that the inliner does not crash for this testcase.
+    gimple_expr can change the expr to NULL meaning that we
+    should not add any statement. */
+ struct f {};
+ struct g1 {struct f l;};
+ 
+ static inline void g(struct f a, int i){}
+ 
+ void h(void)
+ {
+   struct g1 t;
+   g(t.l , 1);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20000523-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20000523-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20000523-1.c	Wed May 24 18:38:02 2000
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20000523-1.c	Mon May  2 13:36:53 2005
*************** main (void)
*** 4,10 ****
    long long   x;
    int         n;
  
!   if (sizeof (long long) < 64)
      exit (0);
    
    n = 9;
--- 4,10 ----
    long long   x;
    int         n;
  
!   if (sizeof (long long) < 8)
      exit (0);
    
    n = 9;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20010124-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20010124-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20010124-1.c	Thu Jan 25 00:16:42 2001
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20010124-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,50 ****
- /* Verify that structure return doesn't invoke memcpy on 
-    overlapping objects.  */
- 
- extern void abort (void);
- typedef __SIZE_TYPE__ size_t;
- 
- struct S {
-   char stuff[1024];
- };
- 
- union U {
-   struct {
-     int space;
-     struct S s;
-   } a;
-   struct {
-     struct S s;
-     int space;
-   } b;
- };
- 
- static struct S f(struct S *);
- static void g(union U *);
- 
- int main()
- {
-   union U u;
-   u.b.s = f(&u.a.s);
-   u.a.s = f(&u.b.s);
-   g(&u);
-   return 0;
- }
-   
- static struct S f(struct S *p)
- {
-   return *p;
- }
- 
- static void g(union U *p)
- {
- }
- 
- static void *memcpy(void *a, const void *b, size_t len)
- {
-   if (a < b && a+len > b)
-     abort ();
-   if (b < a && b+len > a)
-     abort ();
-   return a;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20020720-1.x gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20020720-1.x
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20020720-1.x	Sat Feb 19 15:19:08 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20020720-1.x	Thu Jan  1 00:00:00 1970
***************
*** 1,38 ****
- # The following targets fail 20020720-1.c for several reasons:
- # (1) They implement floating point instructions via software, or
- # (2) The "abs(x) < 0.0" comparison is split up in too many intermediate
- #     insns for combine to handle -- it can handle max three insns
- #     simultaneously.  For example, for RISCy machines it is common that 1
- #     insn performs abs, 1 insn loads 0.0, 1 insn sets CCmode flags based
- #     upon the FP comparison, and a 4th insn makes a conditional branch
- #     based upon the appropriate bits in the flags.  On the other hand, if
- #     for example the comparison insn takes 0.0 as an operand, the
- #     combiner is able to see all intermediate instructions simultaneously
- #     and can make the optimization.
- 
- # Don't XFAIL at -O0, that should never fail.
- if { [istarget "sparc*-*-*"] } {
-     set torture_eval_before_compile {
-         global compiler_conditional_xfail_data
-         set compiler_conditional_xfail_data {
-             "PR opt/10348" \
-             { "*-*-*" } \
-             { "-fpic" "-fPIC" } \
-             { "-O0" }
-         }
-     }
-     return 0
- }
- 
- set torture_eval_before_compile {
-     global compiler_conditional_xfail_data
-     set compiler_conditional_xfail_data {
-         "This test fails to optimize completely on certain platforms." \
-         { "xtensa-*-*" "sh-*-*" "arm*-*-*" "strongarm*-*-*" "xscale*-*-*" \
- 	  "h8300*-*-*" "frv-*-*" "powerpc-*-*spe" } \
-         { "*" } \
-         { "-O0" }
-     }
- }
- 
- return 0
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20030125-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20030125-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20030125-1.c	Tue Jul  1 13:10:26 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20030125-1.c	Thu Oct  6 17:35:45 2005
*************** q1(float a)
*** 16,26 ****
  {
  	return floor(a);
  }
- float
- q2(double a)
- {
- 	return floor(a);
- }
  main()
  {
  #ifdef __OPTIMIZE__
--- 16,21 ----
*************** main()
*** 30,37 ****
  		abort ();
  	if (q1(0)!=0)
  		abort ();
- 	if (q2(0)!=0)
- 		abort ();
  #endif
  	return 0;
  }
--- 25,30 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20030216-1.x gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20030216-1.x
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20030216-1.x	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20030216-1.x	Sat Apr  9 01:37:54 2005
***************
*** 0 ****
--- 1,12 ----
+ # This test requires constant propagation of loads and stores to be
+ # enabled.  This is only guaranteed at -O2 and higher.  Do not run
+ # at -O1.
+ 
+ set torture_eval_before_compile {
+   if {[string match {*-O1*} "$option"]} {
+     continue
+   }
+ }
+ 
+ return 0
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20041019-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20041019-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20041019-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20041019-1.c	Sat Apr  9 01:37:54 2005
***************
*** 0 ****
--- 1,52 ----
+ test_store_ccp (int i)
+ {
+   int *p, a, b, c;
+ 
+   if (i < 5)
+     p = &a;
+   else if (i > 8)
+     p = &b;
+   else
+     p = &c;
+ 
+   *p = 10;
+   b = 3;
+ 
+   /* STORE-CCP was wrongfully propagating 10 into *p.  */
+   return *p + 2;
+ }
+ 
+ 
+ test_store_copy_prop (int i)
+ {
+   int *p, a, b, c;
+ 
+   if (i < 5)
+     p = &a;
+   else if (i > 8)
+     p = &b;
+   else
+     p = &c;
+ 
+   *p = i;
+   b = i + 1;
+ 
+   /* STORE-COPY-PROP was wrongfully propagating i into *p.  */
+   return *p;
+ }
+ 
+ 
+ main()
+ {
+   int x;
+   
+   x = test_store_ccp (10);
+   if (x == 12)
+     abort ();
+   
+   x = test_store_copy_prop (9);
+   if (x == 9)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050414-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20050414-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050414-1.c	Thu Apr 14 06:14:41 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20050414-1.c	Thu Jan  1 00:00:00 1970
***************
*** 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;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050604-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20050604-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050604-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20050604-1.c	Mon Jun  6 19:26:10 2005
***************
*** 0 ****
--- 1,39 ----
+ /* PR regression/21897 */
+ 
+ extern void abort (void);
+ 
+ typedef short v4hi __attribute__ ((vector_size (8)));
+ typedef float v4sf __attribute__ ((vector_size (16)));
+ 
+ union
+ {
+   v4hi v;
+   short s[4];
+ } u;
+ 
+ union
+ {
+   v4sf v;
+   float f[4];
+ } v;
+ 
+ void
+ foo (void)
+ {
+   unsigned int i;
+   for (i = 0; i < 2; i++)
+     u.v += (v4hi) { 12, 14 };
+   for (i = 0; i < 2; i++)
+     v.v += (v4sf) { 18.0, 20.0, 22 };
+ }
+ 
+ int
+ main (void)
+ {
+   foo ();
+   if (u.s[0] != 24 || u.s[1] != 28 || u.s[2] || u.s[3])
+     abort ();
+   if (v.f[0] != 36.0 || v.f[1] != 40.0 || v.f[2] != 44.0 || v.f[3] != 0.0)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050929-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20050929-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20050929-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20050929-1.c	Thu Sep 29 21:34:33 2005
***************
*** 0 ****
--- 1,20 ----
+ /* PR middle-end/24109 */
+ 
+ extern void abort (void);
+ 
+ struct A { int i; int j; };
+ struct B { struct A *a; struct A *b; };
+ struct C { struct B *c; struct A *d; };
+ struct C e = { &(struct B) { &(struct A) { 1, 2 }, &(struct A) { 3, 4 } }, &(struct A) { 5, 6 } };
+ 
+ int
+ main (void)
+ {
+   if (e.c->a->i != 1 || e.c->a->j != 2)
+     abort ();
+   if (e.c->b->i != 3 || e.c->b->j != 4)
+     abort ();
+   if (e.d->i != 5 || e.d->j != 6)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051012-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051012-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051012-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051012-1.c	Wed Oct 12 20:30:46 2005
***************
*** 0 ****
--- 1,24 ----
+ extern void abort (void);
+ 
+ struct type 
+ {
+   int *a;
+   
+   int b:16;
+   unsigned int p:9;
+ } t;
+ 
+ unsigned int 
+ foo ()
+ {
+   return t.p;
+ }
+ 
+ int 
+ main (void)
+ {
+   t.p = 8;
+   if (foo (t) != 8)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051021-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051021-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051021-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051021-1.c	Fri Oct 21 17:24:46 2005
***************
*** 0 ****
--- 1,28 ----
+ /* Verify that TRUTH_AND_EXPR is not wrongly changed to TRUTH_ANDIF_EXPR.  */
+ 
+ extern void abort (void);
+ 
+ int count = 0;
+ 
+ int foo1(void)
+ {
+   count++;
+   return 0;
+ }
+ 
+ int foo2(void)
+ {
+   count++;
+   return 0;
+ }
+ 
+ int main(void)
+ {
+   if ((foo1() == 1) & (foo2() == 1))
+     abort ();
+ 
+   if (count != 2)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051104-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051104-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051104-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051104-1.c	Mon Nov  7 08:01:54 2005
***************
*** 0 ****
--- 1,17 ----
+ /* PR rtl-optimization/23567 */
+ 
+ struct
+ {
+   int len;
+   char *name;
+ } s;
+ 
+ int
+ main (void)
+ {
+   s.len = 0;
+   s.name = "";
+   if (s.name [s.len] != 0)
+     s.name [s.len] = 0;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051110-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051110-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051110-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051110-1.c	Fri Nov 11 23:23:15 2005
***************
*** 0 ****
--- 1,31 ----
+ void add_unwind_adjustsp (long);
+ void abort (void);
+ 
+ unsigned char bytes[5];
+ 
+ void
+ add_unwind_adjustsp (long offset)
+ {
+   int n;
+   unsigned long o;
+ 
+   o = (long) ((offset - 0x204) >> 2);
+ 
+   n = 0;
+   while (o)
+     {
+       bytes[n] = o & 0x7f;
+       o >>= 7;
+       if (o)
+ 	bytes[n] |= 0x80;
+       n++;
+     }
+ }
+ 
+ int main(void)
+ {
+   add_unwind_adjustsp (4132);
+   if (bytes[0] != 0x88 || bytes[1] != 0x07)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051110-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051110-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051110-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051110-2.c	Fri Nov 11 23:23:15 2005
***************
*** 0 ****
--- 1,39 ----
+ void add_unwind_adjustsp (long);
+ void abort (void);
+ 
+ unsigned char bytes[5];
+ 
+ int flag;
+ 
+ void
+ add_unwind_adjustsp (long offset)
+ {
+   int n;
+   unsigned long o;
+ 
+   o = (long) ((offset - 0x204) >> 2);
+ 
+   n = 0;
+   do
+     {
+ a:
+       bytes[n] = o & 0x7f;
+       o >>= 7;
+       if (o)
+         {
+ 	  bytes[n] |= 0x80;
+ 	  if (flag)
+ 	    goto a;
+ 	}
+       n++;
+     }
+   while (o);
+ }
+ 
+ int main(void)
+ {
+   add_unwind_adjustsp (4132);
+   if (bytes[0] != 0x88 || bytes[1] != 0x07)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051113-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051113-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051113-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051113-1.c	Tue Nov 15 00:47:17 2005
***************
*** 0 ****
--- 1,71 ----
+ extern void *malloc(__SIZE_TYPE__);
+ extern void *memset(void *, int, __SIZE_TYPE__);
+ typedef struct
+ {
+   short a;  
+   unsigned short b;
+   unsigned short c;
+   unsigned long long Count;
+   long long Count2;
+ } __attribute__((packed)) Struct1;
+ 
+ typedef struct
+ {
+   short a;
+   unsigned short b;
+   unsigned short c;
+   unsigned long long d;
+   long long e;
+   long long f;
+ } __attribute__((packed)) Struct2;
+ 
+ typedef union
+ {
+   Struct1 a;
+   Struct2 b;
+ } Union;
+ 
+ typedef struct
+ {
+   int Count;
+   Union List[0];
+ } __attribute__((packed)) Struct3;
+ 
+ unsigned long long Sum (Struct3 *instrs) __attribute__((noinline));
+ unsigned long long Sum (Struct3 *instrs)
+ {
+     unsigned long long  count = 0;
+     int     i;
+     
+     for (i = 0; i < instrs->Count; i++) {
+         count += instrs->List[i].a.Count;
+     }
+     return count;
+ }
+ long long Sum2 (Struct3 *instrs) __attribute__((noinline));
+ long long Sum2 (Struct3 *instrs)
+ {
+     long long  count = 0;
+     int     i;
+     
+     for (i = 0; i < instrs->Count; i++) {
+         count += instrs->List[i].a.Count2;
+     }
+     return count;
+ }
+ main() {
+   Struct3 *p = malloc (sizeof (int) + 3 * sizeof(Struct1));
+   memset(p, 0, sizeof(int) + 3*sizeof(Struct1));
+   p->Count = 3;
+   p->List[0].a.Count = 555;
+   p->List[1].a.Count = 999;
+   p->List[2].a.Count = 0x101010101ULL;
+   p->List[0].a.Count2 = 555;
+   p->List[1].a.Count2 = 999;
+   p->List[2].a.Count2 = 0x101010101LL;
+   if (Sum(p) != 555 + 999 + 0x101010101ULL)
+     abort();
+   if (Sum2(p) != 555 + 999 + 0x101010101LL)
+     abort();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051215-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051215-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/20051215-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/20051215-1.c	Fri Dec 16 12:14:15 2005
***************
*** 0 ****
--- 1,28 ----
+ /* PR rtl-optimization/24899 */
+ 
+ extern void abort (void);
+ 
+ __attribute__ ((noinline)) int
+ foo (int x, int y, int *z)
+ {
+   int a, b, c, d;
+ 
+   a = b = 0;
+   for (d = 0; d < y; d++)
+     {
+       if (z)
+ 	b = d * *z;
+       for (c = 0; c < x; c++)
+ 	a += b;
+     }
+ 
+   return a;
+ }
+ 
+ int
+ main (void)
+ {
+   if (foo (3, 2, 0) != 0)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/990413-2.x gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/990413-2.x
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/990413-2.x	Sat Sep  4 15:09:12 1999
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/990413-2.x	Thu Dec  8 01:32:54 2005
***************
*** 1,3 ****
  # This test is x86 specific.
! if { ! [istarget "i?86-*-*"] } { return 1 }
! return 0
--- 1,3 ----
  # This test is x86 specific.
! if { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } { return 0 }
! return 1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1-lib.c	Fri Sep  9 23:32:57 2005
***************
*** 0 ****
--- 1,50 ----
+ /* Verify that structure return doesn't invoke memcpy on 
+    overlapping objects.  */
+ 
+ extern void abort (void);
+ extern int inside_main;
+ typedef __SIZE_TYPE__ size_t;
+ 
+ struct S {
+   char stuff[1024];
+ };
+ 
+ union U {
+   struct {
+     int space;
+     struct S s;
+   } a;
+   struct {
+     struct S s;
+     int space;
+   } b;
+ };
+   
+ struct S f(struct S *p)
+ {
+   return *p;
+ }
+ 
+ void g(union U *p)
+ {
+ }
+ 
+ void *memcpy(void *a, const void *b, size_t len)
+ {
+   if (inside_main)
+     {
+       if (a < b && a+len > b)
+         abort ();
+       if (b < a && b+len > a)
+         abort ();
+       return a;
+     }
+   else
+     {
+       char *dst = (char *) a;
+       const char *src = (const char *) b;
+       while (len--)
+         *dst++ = *src++;
+       return a;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/20010124-1.c	Fri Sep  9 23:32:57 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Verify that structure return doesn't invoke memcpy on 
+    overlapping objects.  */
+ 
+ extern void abort (void);
+ 
+ struct S {
+   char stuff[1024];
+ };
+ 
+ union U {
+   struct {
+     int space;
+     struct S s;
+   } a;
+   struct {
+     struct S s;
+     int space;
+   } b;
+ };
+ 
+ struct S f(struct S *);
+ void g(union U *);
+ 
+ void main_test(void)
+ {
+   union U u;
+   u.b.s = f(&u.a.s);
+   u.a.s = f(&u.b.s);
+   g(&u);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/abs-1-lib.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int abs_called;
  extern int inside_main;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/chk.h	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,81 ----
+ #ifndef os
+ # define os(ptr) __builtin_object_size (ptr, 0)
+ #endif
+ 
+ /* This is one of the alternatives for object size checking.
+    If dst has side-effects, size checking will never be done.  */
+ #undef memcpy
+ #define memcpy(dst, src, len) \
+   __builtin___memcpy_chk (dst, src, len, os (dst))
+ #undef mempcpy
+ #define mempcpy(dst, src, len) \
+   __builtin___mempcpy_chk (dst, src, len, os (dst))
+ #undef memmove
+ #define memmove(dst, src, len) \
+   __builtin___memmove_chk (dst, src, len, os (dst))
+ #undef memset
+ #define memset(dst, val, len) \
+   __builtin___memset_chk (dst, val, len, os (dst))
+ #undef strcpy
+ #define strcpy(dst, src) \
+   __builtin___strcpy_chk (dst, src, os (dst))
+ #undef stpcpy
+ #define stpcpy(dst, src) \
+   __builtin___stpcpy_chk (dst, src, os (dst))
+ #undef strcat
+ #define strcat(dst, src) \
+   __builtin___strcat_chk (dst, src, os (dst))
+ #undef strncpy
+ #define strncpy(dst, src, len) \
+   __builtin___strncpy_chk (dst, src, len, os (dst))
+ #undef strncat
+ #define strncat(dst, src, len) \
+   __builtin___strncat_chk (dst, src, len, os (dst))
+ #undef sprintf
+ #define sprintf(dst, ...) \
+   __builtin___sprintf_chk (dst, 0, os (dst), __VA_ARGS__)
+ #undef vsprintf
+ #define vsprintf(dst, fmt, ap) \
+   __builtin___vsprintf_chk (dst, 0, os (dst), fmt, ap)
+ #undef snprintf
+ #define snprintf(dst, len, ...) \
+   __builtin___snprintf_chk (dst, len, 0, os (dst), __VA_ARGS__)
+ #undef vsnprintf
+ #define vsnprintf(dst, len, fmt, ap) \
+   __builtin___vsnprintf_chk (dst, len, 0, os (dst), fmt, ap)
+ 
+ /* Now "redefine" even builtins for the purpose of testing.  */
+ #undef __builtin_memcpy
+ #define __builtin_memcpy(dst, src, len) memcpy (dst, src, len)
+ #undef __builtin_mempcpy
+ #define __builtin_mempcpy(dst, src, len) mempcpy (dst, src, len)
+ #undef __builtin_memmove
+ #define __builtin_memmove(dst, src, len) memmove (dst, src, len)
+ #undef __builtin_memset
+ #define __builtin_memset(dst, val, len) memset (dst, val, len)
+ #undef __builtin_strcpy
+ #define __builtin_strcpy(dst, src) strcpy (dst, src)
+ #undef __builtin_stpcpy
+ #define __builtin_stpcpy(dst, src) stpcpy (dst, src)
+ #undef __builtin_strcat
+ #define __builtin_strcat(dst, src) strcat (dst, src)
+ #undef __builtin_strncpy
+ #define __builtin_strncpy(dst, src, len) strncpy (dst, src, len)
+ #undef __builtin_strncat
+ #define __builtin_strncat(dst, src, len) strncat (dst, src, len)
+ #undef __builtin_sprintf
+ #define __builtin_sprintf(dst, ...) sprintf (dst, __VA_ARGS__)
+ #undef __builtin_vsprintf
+ #define __builtin_vsprintf(dst, fmt, ap) vsprintf (dst, fmt, ap)
+ #undef __builtin_snprintf
+ #define __builtin_snprintf(dst, len, ...) snprintf (dst, len, __VA_ARGS__)
+ #undef __builtin_vsnprintf
+ #define __builtin_vsnprintf(dst, len, fmt, ap) vsnprintf (dst, len, fmt, ap)
+ 
+ extern void *chk_fail_buf[];
+ extern volatile int chk_fail_allowed, chk_calls;
+ extern volatile int memcpy_disallowed, mempcpy_disallowed, memmove_disallowed;
+ extern volatile int memset_disallowed, strcpy_disallowed, stpcpy_disallowed;
+ extern volatile int strncpy_disallowed, strcat_disallowed, strncat_disallowed;
+ extern volatile int sprintf_disallowed, vsprintf_disallowed;
+ extern volatile int snprintf_disallowed, vsnprintf_disallowed;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.c	Sat Jul  3 02:16:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/fprintf.c	Sat Nov 26 01:31:54 2005
***************
*** 6,11 ****
--- 6,12 ----
     Written by Kaveh R. Ghazi, 1/7/2001.  */
  
  #include <stdio.h>
+ extern int fprintf_unlocked (FILE *, const char *, ...);
  extern void abort(void);
  
  void
*************** main_test (void)
*** 15,20 ****
--- 16,23 ----
    const char *const s1 = "hello world";
    const char *const s2[] = { s1, 0 }, *const*s3;
    
+   fprintf (*s_ptr, "");
+   fprintf (*s_ptr, "%s", "");
    fprintf (*s_ptr, "%s", "hello");
    fprintf (*s_ptr, "%s", "\n");
    fprintf (*s_ptr, "%s", *s2);
*************** main_test (void)
*** 49,52 ****
--- 52,61 ----
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
    __builtin_fprintf (*s_ptr, "%s", "hello world\n");
+   /* Check the unlocked style, these evaluate to nothing to avoid
+      problems on systems without the unlocked functions.  */
+   fprintf_unlocked (*s_ptr, "");
+   __builtin_fprintf_unlocked (*s_ptr, "");
+   fprintf_unlocked (*s_ptr, "%s", "");
+   __builtin_fprintf_unlocked (*s_ptr, "%s", "");
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c	Sat Jul  3 02:16:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/fputs-lib.c	Sat Nov 26 01:31:54 2005
***************
*** 1,5 ****
--- 1,6 ----
  #include <stdio.h>
  #include <stddef.h>
+ extern void abort (void);
  extern int inside_main;
  extern size_t strlen(const char *);
  int
*************** fputs(const char *string, FILE *stream)
*** 15,17 ****
--- 16,24 ----
    return n > r ? EOF : 0;
  }
  
+ /* Locking stdio doesn't matter for the purposes of this test.  */
+ int
+ fputs_unlocked(const char *string, FILE *stream)
+ {
+   return fputs (string, stream);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c	Sat Jul  3 02:16:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/fputs.c	Sat Nov 26 01:31:54 2005
*************** main_test(void)
*** 49,54 ****
--- 49,58 ----
       prototypes are set correctly too.  */
    __builtin_fputc ('\n', *s_ptr);
    __builtin_fwrite ("hello\n", 1, 6, *s_ptr);
+   /* Check the unlocked style, these evaluate to nothing to avoid
+      problems on systems without the unlocked functions.  */
+   fputs_unlocked ("", *s_ptr);
+   __builtin_fputs_unlocked ("", *s_ptr);
  
    /* Check side-effects in conditional expression.  */
    s_ptr = s_array;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,472 ----
+ #include <stdarg.h>
+ 
+ extern void abort (void);
+ 
+ extern int inside_main;
+ void *chk_fail_buf[256] __attribute__((aligned (16)));
+ volatile int chk_fail_allowed, chk_calls;
+ volatile int memcpy_disallowed, mempcpy_disallowed, memmove_disallowed;
+ volatile int memset_disallowed, strcpy_disallowed, stpcpy_disallowed;
+ volatile int strncpy_disallowed, strcat_disallowed, strncat_disallowed;
+ volatile int sprintf_disallowed, vsprintf_disallowed;
+ volatile int snprintf_disallowed, vsnprintf_disallowed;
+ extern __SIZE_TYPE__ strlen (const char *);
+ extern int vsprintf (char *, const char *, va_list);
+ 
+ void __attribute__((noreturn))
+ __chk_fail (void)
+ {
+   if (chk_fail_allowed)
+     __builtin_longjmp (chk_fail_buf, 1);
+   abort ();
+ }
+ 
+ void *
+ memcpy (void *dst, const void *src, __SIZE_TYPE__ n)
+ {
+   const char *srcp;
+   char *dstp;
+ 
+ #ifdef __OPTIMIZE__
+   if (memcpy_disallowed && inside_main)
+     abort ();
+ #endif
+ 
+   srcp = src;
+   dstp = dst;
+   while (n-- != 0)
+     *dstp++ = *srcp++;
+ 
+   return dst;
+ }
+ 
+ void *
+ __memcpy_chk (void *dst, const void *src, __SIZE_TYPE__ n, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into memcpy.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (n > size)
+     __chk_fail ();
+   return memcpy (dst, src, n);
+ }
+ 
+ void *
+ mempcpy (void *dst, const void *src, __SIZE_TYPE__ n)
+ {
+   const char *srcp;
+   char *dstp;
+ 
+ #ifdef __OPTIMIZE__
+   if (mempcpy_disallowed && inside_main)
+     abort ();
+ #endif
+ 
+   srcp = src;
+   dstp = dst;
+   while (n-- != 0)
+     *dstp++ = *srcp++;
+ 
+   return dstp;
+ }
+ 
+ void *
+ __mempcpy_chk (void *dst, const void *src, __SIZE_TYPE__ n, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into mempcpy.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (n > size)
+     __chk_fail ();
+   return mempcpy (dst, src, n);
+ }
+ 
+ void *
+ memmove (void *dst, const void *src, __SIZE_TYPE__ n)
+ {
+   const char *srcp;
+   char *dstp;
+ 
+ #ifdef __OPTIMIZE__
+   if (memmove_disallowed && inside_main)
+     abort ();
+ #endif
+ 
+   srcp = src;
+   dstp = dst;
+   if (srcp < dstp)
+     while (n-- != 0)
+       dstp[n] = srcp[n];
+   else
+     while (n-- != 0)
+       *dstp++ = *srcp++;
+ 
+   return dst;
+ }
+ 
+ void *
+ __memmove_chk (void *dst, const void *src, __SIZE_TYPE__ n, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into memmove.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (n > size)
+     __chk_fail ();
+   return memmove (dst, src, n);
+ }
+ 
+ void *
+ memset (void *dst, int c, __SIZE_TYPE__ n)
+ {
+   /* Single-byte memsets should be done inline when optimisation
+      is enabled.  */
+ #ifdef __OPTIMIZE__
+   if (memset_disallowed && inside_main && n < 2)
+     abort ();
+ #endif
+ 
+   while (n-- != 0)
+     n[(char *) dst] = c;
+ 
+   return dst;
+ }
+ 
+ void *
+ __memset_chk (void *dst, int c, __SIZE_TYPE__ n, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into memset.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (n > size)
+     __chk_fail ();
+   return memset (dst, c, n);
+ }
+ 
+ char *
+ strcpy (char *d, const char *s)
+ {
+   char *r = d;
+ #ifdef __OPTIMIZE__
+   if (strcpy_disallowed && inside_main)
+     abort ();
+ #endif
+   while ((*d++ = *s++));
+   return r;
+ }
+ 
+ char *
+ __strcpy_chk (char *d, const char *s, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into strcpy.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (strlen (s) >= size)
+     __chk_fail ();
+   return strcpy (d, s);
+ }
+ 
+ char *
+ stpcpy (char *dst, const char *src)
+ {
+ #ifdef __OPTIMIZE__
+   if (stpcpy_disallowed && inside_main)
+     abort ();
+ #endif
+ 
+   while (*src != 0)
+     *dst++ = *src++;
+ 
+   *dst = 0;
+   return dst;
+ }
+ 
+ char *
+ __stpcpy_chk (char *d, const char *s, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into stpcpy.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (strlen (s) >= size)
+     __chk_fail ();
+   return stpcpy (d, s);
+ }
+ 
+ char *
+ strncpy (char *s1, const char *s2, __SIZE_TYPE__ n)
+ {
+   char *dest = s1;
+ #ifdef __OPTIMIZE__
+   if (strncpy_disallowed && inside_main)
+     abort();
+ #endif
+   for (; *s2 && n; n--)
+     *s1++ = *s2++;
+   while (n--)
+     *s1++ = 0;
+   return dest;
+ }
+ 
+ char *
+ __strncpy_chk (char *s1, const char *s2, __SIZE_TYPE__ n, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into strncpy.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (n > size)
+     __chk_fail ();
+   return strncpy (s1, s2, n);
+ }
+ 
+ char *
+ strcat (char *dst, const char *src)
+ {
+   char *p = dst;
+   
+ #ifdef __OPTIMIZE__
+   if (strcat_disallowed && inside_main)
+     abort ();
+ #endif
+ 
+   while (*p)
+     p++;
+   while ((*p++ = *src++))
+     ;
+   return dst;
+ }
+ 
+ char *
+ __strcat_chk (char *d, const char *s, __SIZE_TYPE__ size)
+ {
+   /* If size is -1, GCC should always optimize the call into strcat.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   if (strlen (d) + strlen (s) >= size)
+     __chk_fail ();
+   return strcat (d, s);
+ }
+ 
+ char *
+ strncat (char *s1, const char *s2, __SIZE_TYPE__ n)
+ {
+   char *dest = s1;
+   char c;
+ #ifdef __OPTIMIZE__
+   if (strncat_disallowed && inside_main)
+     abort();
+ #endif
+   while (*s1) s1++;
+   c = '\0';
+   while (n > 0)
+     {
+       c = *s2++;
+       *s1++ = c;
+       if (c == '\0')
+ 	return dest;
+       n--;
+     }
+   if (c != '\0')
+     *s1 = '\0';
+   return dest;
+ }
+ 
+ char *
+ __strncat_chk (char *d, const char *s, __SIZE_TYPE__ n, __SIZE_TYPE__ size)
+ {
+   __SIZE_TYPE__ len = strlen (d), n1 = n;
+   const char *s1 = s;
+ 
+   /* If size is -1, GCC should always optimize the call into strncat.  */
+   if (size == (__SIZE_TYPE__) -1)
+     abort ();
+   ++chk_calls;
+   while (len < size && n1 > 0)
+     {
+       if (*s1++ == '\0')
+ 	break;
+       ++len;
+       --n1;
+     }
+ 
+   if (len >= size)
+     __chk_fail ();
+   return strncat (d, s, n);
+ }
+ 
+ /* No chk test in GCC testsuite needs more bytes than this.
+    As we can't expect vsnprintf to be available on the target,
+    assume 4096 bytes is enough.  */
+ static char chk_sprintf_buf[4096];
+ 
+ int
+ __sprintf_chk (char *str, int flag, __SIZE_TYPE__ size, const char *fmt, ...)
+ {
+   int ret;
+   va_list ap;
+ 
+   /* If size is -1 and flag 0, GCC should always optimize the call into
+      sprintf.  */
+   if (size == (__SIZE_TYPE__) -1 && flag == 0)
+     abort ();
+   ++chk_calls;
+ #ifdef __OPTIMIZE__
+   if (sprintf_disallowed && inside_main)
+     abort();
+ #endif
+   va_start (ap, fmt);
+   ret = vsprintf (chk_sprintf_buf, fmt, ap);
+   va_end (ap);
+   if (ret >= 0)
+     {
+       if (ret >= size)
+ 	__chk_fail ();
+       memcpy (str, chk_sprintf_buf, ret + 1);
+     }
+   return ret;
+ }
+ 
+ int
+ __vsprintf_chk (char *str, int flag, __SIZE_TYPE__ size, const char *fmt,
+ 		va_list ap)
+ {
+   int ret;
+ 
+   /* If size is -1 and flag 0, GCC should always optimize the call into
+      vsprintf.  */
+   if (size == (__SIZE_TYPE__) -1 && flag == 0)
+     abort ();
+   ++chk_calls;
+ #ifdef __OPTIMIZE__
+   if (vsprintf_disallowed && inside_main)
+     abort();
+ #endif
+   ret = vsprintf (chk_sprintf_buf, fmt, ap);
+   if (ret >= 0)
+     {
+       if (ret >= size)
+ 	__chk_fail ();
+       memcpy (str, chk_sprintf_buf, ret + 1);
+     }
+   return ret;
+ }
+ 
+ int
+ __snprintf_chk (char *str, __SIZE_TYPE__ len, int flag, __SIZE_TYPE__ size,
+ 		const char *fmt, ...)
+ {
+   int ret;
+   va_list ap;
+ 
+   /* If size is -1 and flag 0, GCC should always optimize the call into
+      snprintf.  */
+   if (size == (__SIZE_TYPE__) -1 && flag == 0)
+     abort ();
+   ++chk_calls;
+   if (size < len)
+     __chk_fail ();
+ #ifdef __OPTIMIZE__
+   if (snprintf_disallowed && inside_main)
+     abort();
+ #endif
+   va_start (ap, fmt);
+   ret = vsprintf (chk_sprintf_buf, fmt, ap);
+   va_end (ap);
+   if (ret >= 0)
+     {
+       if (ret < len)
+ 	memcpy (str, chk_sprintf_buf, ret + 1);
+       else
+ 	{
+ 	  memcpy (str, chk_sprintf_buf, len - 1);
+ 	  str[len - 1] = '\0';
+ 	}
+     }
+   return ret;
+ }
+ 
+ int
+ __vsnprintf_chk (char *str, __SIZE_TYPE__ len, int flag, __SIZE_TYPE__ size,
+ 		 const char *fmt, va_list ap)
+ {
+   int ret;
+ 
+   /* If size is -1 and flag 0, GCC should always optimize the call into
+      vsnprintf.  */
+   if (size == (__SIZE_TYPE__) -1 && flag == 0)
+     abort ();
+   ++chk_calls;
+   if (size < len)
+     __chk_fail ();
+ #ifdef __OPTIMIZE__
+   if (vsnprintf_disallowed && inside_main)
+     abort();
+ #endif
+   ret = vsprintf (chk_sprintf_buf, fmt, ap);
+   if (ret >= 0)
+     {
+       if (ret < len)
+ 	memcpy (str, chk_sprintf_buf, ret + 1);
+       else
+ 	{
+ 	  memcpy (str, chk_sprintf_buf, len - 1);
+ 	  str[len - 1] = '\0';
+ 	}
+     }
+   return ret;
+ }
+ 
+ int
+ snprintf (char *str, __SIZE_TYPE__ len, const char *fmt, ...)
+ {
+   int ret;
+   va_list ap;
+ 
+ #ifdef __OPTIMIZE__
+   if (snprintf_disallowed && inside_main)
+     abort();
+ #endif
+   va_start (ap, fmt);
+   ret = vsprintf (chk_sprintf_buf, fmt, ap);
+   va_end (ap);
+   if (ret >= 0)
+     {
+       if (ret < len)
+ 	memcpy (str, chk_sprintf_buf, ret + 1);
+       else if (len)
+ 	{
+ 	  memcpy (str, chk_sprintf_buf, len - 1);
+ 	  str[len - 1] = '\0';
+ 	}
+     }
+   return ret;
+ }
+ 
+ int
+ vsnprintf (char *str, __SIZE_TYPE__ len, const char *fmt, va_list ap)
+ {
+   int ret;
+ 
+ #ifdef __OPTIMIZE__
+   if (vsnprintf_disallowed && inside_main)
+     abort();
+ #endif
+   ret = vsprintf (chk_sprintf_buf, fmt, ap);
+   if (ret >= 0)
+     {
+       if (ret < len)
+ 	memcpy (str, chk_sprintf_buf, ret + 1);
+       else if (len)
+ 	{
+ 	  memcpy (str, chk_sprintf_buf, len - 1);
+ 	  str[len - 1] = '\0';
+ 	}
+     }
+   return ret;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/fprintf.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/fprintf.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/fprintf.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/fprintf.c	Sat Nov 26 01:31:54 2005
***************
*** 1,5 ****
--- 1,6 ----
  #include <stdio.h>
  #include <stdarg.h>
+ extern void abort (void);
  extern int inside_main;
  
  int
*************** fprintf (FILE *fp, const char *string, .
*** 16,18 ****
--- 17,35 ----
    va_end (ap);
    return r;
  }
+ 
+ /* Locking stdio doesn't matter for the purposes of this test.  */
+ int
+ fprintf_unlocked (FILE *fp, const char *string, ...)
+ {
+   va_list ap;
+   int r;
+ #ifdef __OPTIMIZE__
+   if (inside_main)
+     abort();
+ #endif
+   va_start (ap, string);
+   r = vfprintf (fp, string, ap);
+   va_end (ap);
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/main.c	Mon Jun 27 12:17:39 2005
***************
*** 1,4 ****
--- 1,6 ----
+ extern void abort(void);
  extern void main_test (void);
+ extern void abort (void);
  int inside_main;
  
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memcmp.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memcmp.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memcmp.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memcmp.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort(void);
  extern int inside_main;
  
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memmove.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memmove.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memmove.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memmove.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  void *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/mempcpy.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/mempcpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/mempcpy.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/mempcpy.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  void *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memset.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memset.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memset.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/memset.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  void *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/printf.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/printf.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/printf.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/printf.c	Sat Nov 26 01:31:54 2005
***************
*** 1,5 ****
--- 1,6 ----
  #include <stdio.h>
  #include <stdarg.h>
+ extern void abort (void);
  extern int inside_main;
  
  int
*************** printf (const char *string, ...)
*** 17,19 ****
--- 18,36 ----
    return r;
  }
  
+ 
+ /* Locking stdio doesn't matter for the purposes of this test.  */
+ int
+ printf_unlocked (const char *string, ...)
+ {
+   va_list ap;
+   int r;
+ #ifdef __OPTIMIZE__
+   if (inside_main)
+     abort();
+ #endif
+   va_start (ap, string);
+   r = vprintf (string, ap);
+   va_end (ap);
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/sprintf.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/sprintf.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/sprintf.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/sprintf.c	Fri Apr  1 13:31:28 2005
***************
*** 1,5 ****
--- 1,6 ----
  #include <stdio.h>
  #include <stdarg.h>
+ extern void abort (void);
  extern int inside_main;
  
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/stpcpy.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/stpcpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/stpcpy.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/stpcpy.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  char *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strchr.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strchr.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strchr.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strchr.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  char *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcmp.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcmp.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcmp.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcmp.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcpy.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcpy.c	Wed Oct  6 13:23:30 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcpy.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  char *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcspn.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcspn.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcspn.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strcspn.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  __SIZE_TYPE__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strlen.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strlen.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strlen.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strlen.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  __SIZE_TYPE__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncat.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncat.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncat.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncat.c	Mon Jun 27 12:17:39 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort(void);
  extern int inside_main;
  
  typedef __SIZE_TYPE__ size_t;
*************** char *
*** 6,22 ****
  strncat (char *s1, const char *s2, size_t n)
  {
    char *dest = s1;
!   char c;
  #ifdef __OPTIMIZE__
    if (inside_main)
      abort();
  #endif
    while (*s1) s1++;
    while (n > 0)
      {
        c = *s2++;
        *s1++ = c;
!       if (c == 0)
  	return dest;
        n--;
      }
--- 7,24 ----
  strncat (char *s1, const char *s2, size_t n)
  {
    char *dest = s1;
!   char c = '\0';
  #ifdef __OPTIMIZE__
    if (inside_main)
      abort();
  #endif
    while (*s1) s1++;
+   c = '\0';
    while (n > 0)
      {
        c = *s2++;
        *s1++ = c;
!       if (c == '\0')
  	return dest;
        n--;
      }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncmp.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncmp.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncmp.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncmp.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  typedef __SIZE_TYPE__ size_t;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncpy.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncpy.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strncpy.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort(void);
  extern int inside_main;
  
  typedef __SIZE_TYPE__ size_t;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strpbrk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strpbrk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strpbrk.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strpbrk.c	Fri Apr  1 13:33:11 2005
***************
*** 1,9 ****
  extern int inside_main;
  
  char *
  strpbrk(const char *s1, const char *s2)
  {
!   char *p;
  #ifdef __OPTIMIZE__
    if (inside_main)
      abort ();
--- 1,10 ----
+ extern void abort (void);
  extern int inside_main;
  
  char *
  strpbrk(const char *s1, const char *s2)
  {
!   const char *p;
  #ifdef __OPTIMIZE__
    if (inside_main)
      abort ();
*************** strpbrk(const char *s1, const char *s2)
*** 12,18 ****
      {
        for (p = s2; *p; p++)
  	if (*s1 == *p)
! 	  return s1;
        s1++;
      }
    return 0;
--- 13,19 ----
      {
        for (p = s2; *p; p++)
  	if (*s1 == *p)
! 	  return (char *)s1;
        s1++;
      }
    return 0;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strrchr.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strrchr.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strrchr.c	Sun May 11 08:20:34 2003
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strrchr.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  char *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strspn.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strspn.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strspn.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strspn.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  __SIZE_TYPE__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strstr.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strstr.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strstr.c	Tue Jan 25 04:54:55 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/lib/strstr.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  
  char *
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memcpy-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,479 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __memcpy_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ size_t l1 = 1;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   int i;
+ 
+ #if defined __i386__ || defined __x86_64__
+   /* The functions below might not be optimized into direct stores on all
+      arches.  It depends on how many instructions would be generated and
+      what limits the architecture chooses in STORE_BY_PIECES_P.  */
+   memcpy_disallowed = 1;
+ #endif
+ 
+   /* All the memcpy calls in this routine except last have fixed length, so
+      object size checking should be done at compile time if optimizing.  */
+   chk_calls = 0;
+ 
+   if (memcpy (p, "ABCDE", 6) != p || memcmp (p, "ABCDE", 6))
+     abort ();
+   if (memcpy (p + 16, "VWX" + 1, 2) != p + 16
+       || memcmp (p + 16, "WX\0\0", 5))
+     abort ();
+   if (memcpy (p + 1, "", 1) != p + 1 || memcmp (p, "A\0CDE", 6))
+     abort ();
+   if (memcpy (p + 3, "FGHI", 4) != p + 3 || memcmp (p, "A\0CFGHI", 8))
+     abort ();
+ 
+   i = 8;
+   memcpy (p + 20, "qrstu", 6);
+   memcpy (p + 25, "QRSTU", 6);
+   if (memcpy (p + 25 + 1, s1, 3) != p + 25 + 1
+       || memcmp (p + 25, "Q123U", 6))
+     abort ();
+ 
+   if (memcpy (memcpy (p, "abcdEFG", 4) + 4, "efg", 4) != p + 4
+       || memcmp (p, "abcdefg", 8))
+     abort();
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   if (__builtin_memcpy (p, "ABCDE", 6) != p || memcmp (p, "ABCDE", 6))
+     abort ();
+ 
+   memcpy (p + 5, s3, 1);
+   if (memcmp (p, "ABCDEFg", 8))
+     abort ();
+ 
+   memcpy_disallowed = 0;
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ 
+   memcpy (p + 6, s1 + 1, l1);
+   if (memcmp (p, "ABCDEF2", 8))
+     abort ();
+ 
+   /* The above memcpy copies into an object with known size, but
+      unknown length, so it should be a __memcpy_chk call.  */
+   if (chk_calls != 1)
+     abort ();
+ }
+ 
+ long buf1[64];
+ char *buf2 = (char *) (buf1 + 32);
+ long buf5[20];
+ char buf7[20];
+ 
+ void
+ __attribute__((noinline))
+ test2_sub (long *buf3, char *buf4, char *buf6, int n)
+ {
+   int i = 0;
+ 
+   /* All the memcpy/__builtin_memcpy/__builtin___memcpy_chk
+      calls in this routine are either fixed length, or have
+      side-effects in __builtin_object_size arguments, or
+      dst doesn't point into a known object.  */
+   chk_calls = 0;
+ 
+   /* These should probably be handled by store_by_pieces on most arches.  */
+   if (memcpy (buf1, "ABCDEFGHI", 9) != (char *) buf1
+       || memcmp (buf1, "ABCDEFGHI\0", 11))
+     abort ();
+ 
+   if (memcpy (buf1, "abcdefghijklmnopq", 17) != (char *) buf1
+       || memcmp (buf1, "abcdefghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memcpy (buf3, "ABCDEF", 6) != (char *) buf1
+       || memcmp (buf1, "ABCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memcpy (buf3, "a", 1) != (char *) buf1
+       || memcmp (buf1, "aBCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (memcpy ((char *) buf3 + 2, "bcd" + ++i, 2) != (char *) buf1 + 2
+       || memcmp (buf1, "aBcdEFghijklmnopq\0", 19)
+       || i != 1)
+     abort ();
+ 
+   /* These should probably be handled by move_by_pieces on most arches.  */
+   if (memcpy ((char *) buf3 + 4, buf5, 6) != (char *) buf1 + 4
+       || memcmp (buf1, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memcpy ((char *) buf1 + ++i + 8, (char *) buf5 + 1, 1)
+       != (char *) buf1 + 10
+       || memcmp (buf1, "aBcdRSTUVWSlmnopq\0", 19)
+       || i != 2)
+     abort ();
+ 
+   if (memcpy ((char *) buf3 + 14, buf6, 2) != (char *) buf1 + 14
+       || memcmp (buf1, "aBcdRSTUVWSlmnrsq\0", 19))
+     abort ();
+ 
+   if (memcpy (buf3, buf5, 8) != (char *) buf1
+       || memcmp (buf1, "RSTUVWXYVWSlmnrsq\0", 19))
+     abort ();
+ 
+   if (memcpy (buf3, buf5, 17) != (char *) buf1
+       || memcmp (buf1, "RSTUVWXYZ01234567\0", 19))
+     abort ();
+ 
+   __builtin_memcpy (buf3, "aBcdEFghijklmnopq\0", 19);
+ 
+   /* These should be handled either by movmemendM or memcpy
+      call.  */
+ 
+   /* buf3 points to an unknown object, so __memcpy_chk should not be done.  */
+   if (memcpy ((char *) buf3 + 4, buf5, n + 6) != (char *) buf1 + 4
+       || memcmp (buf1, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* This call has side-effects in dst, therefore no checking.  */
+   if (__builtin___memcpy_chk ((char *) buf1 + ++i + 8, (char *) buf5 + 1,
+ 			      n + 1, os ((char *) buf1 + ++i + 8))
+       != (char *) buf1 + 11
+       || memcmp (buf1, "aBcdRSTUVWkSmnopq\0", 19)
+       || i != 3)
+     abort ();
+ 
+   if (memcpy ((char *) buf3 + 14, buf6, n + 2) != (char *) buf1 + 14
+       || memcmp (buf1, "aBcdRSTUVWkSmnrsq\0", 19))
+     abort ();
+ 
+   i = 1;
+ 
+   /* These might be handled by store_by_pieces.  */
+   if (memcpy (buf2, "ABCDEFGHI", 9) != buf2
+       || memcmp (buf2, "ABCDEFGHI\0", 11))
+     abort ();
+ 
+   if (memcpy (buf2, "abcdefghijklmnopq", 17) != buf2
+       || memcmp (buf2, "abcdefghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memcpy (buf4, "ABCDEF", 6) != buf2
+       || memcmp (buf2, "ABCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memcpy (buf4, "a", 1) != buf2
+       || memcmp (buf2, "aBCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (memcpy (buf4 + 2, "bcd" + i++, 2) != buf2 + 2
+       || memcmp (buf2, "aBcdEFghijklmnopq\0", 19)
+       || i != 2)
+     abort ();
+ 
+   /* These might be handled by move_by_pieces.  */
+   if (memcpy (buf4 + 4, buf7, 6) != buf2 + 4
+       || memcmp (buf2, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* Side effect.  */
+   if (__builtin___memcpy_chk (buf2 + i++ + 8, buf7 + 1, 1,
+ 			      os (buf2 + i++ + 8))
+       != buf2 + 10
+       || memcmp (buf2, "aBcdRSTUVWSlmnopq\0", 19)
+       || i != 3)
+     abort ();
+ 
+   if (memcpy (buf4 + 14, buf6, 2) != buf2 + 14
+       || memcmp (buf2, "aBcdRSTUVWSlmnrsq\0", 19))
+     abort ();
+ 
+   __builtin_memcpy (buf4, "aBcdEFghijklmnopq\0", 19);
+ 
+   /* These should be handled either by movmemendM or memcpy
+      call.  */
+   if (memcpy (buf4 + 4, buf7, n + 6) != buf2 + 4
+       || memcmp (buf2, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* Side effect.  */
+   if (__builtin___memcpy_chk (buf2 + i++ + 8, buf7 + 1, n + 1,
+ 			      os (buf2 + i++ + 8))
+       != buf2 + 11
+       || memcmp (buf2, "aBcdRSTUVWkSmnopq\0", 19)
+       || i != 4)
+     abort ();
+ 
+   if (memcpy (buf4 + 14, buf6, n + 2) != buf2 + 14
+       || memcmp (buf2, "aBcdRSTUVWkSmnrsq\0", 19))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   long *x;
+   char *y;
+   int z;
+   __builtin_memcpy (buf5, "RSTUVWXYZ0123456789", 20);
+   __builtin_memcpy (buf7, "RSTUVWXYZ0123456789", 20);
+  __asm ("" : "=r" (x) : "0" (buf1));
+  __asm ("" : "=r" (y) : "0" (buf2));
+  __asm ("" : "=r" (z) : "0" (0));
+   test2_sub (x, y, "rstuvwxyz", z);
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   size_t l;
+ 
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   chk_calls = 0;
+   memcpy (a.buf1 + 2, s3, l1);
+   memcpy (r, s3, l1 + 1);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memcpy (r, s2, l1 + 2);
+   memcpy (r + 2, s3, l1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   memcpy (r, s2, l1);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   memcpy (a.buf1 + 2, s3, 1);
+   memcpy (r, s3, 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memcpy (r, s2, 3);
+   r = buf3;
+   l = 4;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = 2;
+       else if (i == l1)
+ 	r = &a.buf2[7], l = 3;
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = 4;
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = 1;
+     }
+   memcpy (r, s2, 1);
+   /* Here, l is known to be at most 4 and __builtin_object_size (&buf3[16], 0)
+      is 4, so this doesn't need runtime checking.  */
+   memcpy (&buf3[16], s2, l);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memcpy (&a.buf2[9], s2, l1 + 1);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memcpy (&a.buf2[7], s3, strlen (s3) + 1);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memcpy (&buf3[19], "ab", 2);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (10 * sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
+ 
+ /* Use a sequence length that is not divisible by two, to make it more
+    likely to detect when words are mixed up.  */
+ #define SEQUENCE_LENGTH 31
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u1, u2;
+ 
+ void
+ __attribute__((noinline))
+ test5 (void)
+ {
+   int off1, off2, len, i;
+   char *p, *q, c;
+ 
+   for (off1 = 0; off1 < MAX_OFFSET; off1++)
+     for (off2 = 0; off2 < MAX_OFFSET; off2++)
+       for (len = 1; len < MAX_COPY; len++)
+ 	{
+ 	  for (i = 0, c = 'A'; i < MAX_LENGTH; i++, c++)
+ 	    {
+ 	      u1.buf[i] = 'a';
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      u2.buf[i] = c;
+ 	    }
+ 
+ 	  p = memcpy (u1.buf + off1, u2.buf + off2, len);
+ 	  if (p != u1.buf + off1)
+ 	    abort ();
+ 
+ 	  q = u1.buf;
+ 	  for (i = 0; i < off1; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 
+ 	  for (i = 0, c = 'A' + off2; i < len; i++, q++, c++)
+ 	    {
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      if (*q != c)
+ 		abort ();
+ 	    }
+ 
+ 	  for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 	}
+ }
+ 
+ #define TESTSIZE 80
+ 
+ char srcb[TESTSIZE] __attribute__ ((aligned));
+ char dstb[TESTSIZE] __attribute__ ((aligned));
+ 
+ void
+ __attribute__((noinline))
+ check (char *test, char *match, int n)
+ {
+   if (memcmp (test, match, n))
+     abort ();
+ }
+ 
+ #define TN(n) \
+ { memset (dstb, 0, n); memcpy (dstb, srcb, n); check (dstb, srcb, n); }
+ #define T(n) \
+ TN (n) \
+ TN ((n) + 1) \
+ TN ((n) + 2) \
+ TN ((n) + 3)
+ 
+ void
+ __attribute__((noinline))
+ test6 (void)
+ {
+   int i;
+ 
+   chk_calls = 0;
+ 
+   for (i = 0; i < sizeof (srcb); ++i)
+       srcb[i] = 'a' + i % 26;
+ 
+   T (0);
+   T (4);
+   T (8);
+   T (12);
+   T (16);
+   T (20);
+   T (24);
+   T (28);
+   T (32);
+   T (36);
+   T (40);
+   T (44);
+   T (48);
+   T (52);
+   T (56);
+   T (60);
+   T (64);
+   T (68);
+   T (72);
+   T (76);
+ 
+   /* All memcpy calls in this routine have constant arguments.  */
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+   test2 ();
+   test3 ();
+   test4 ();
+   test5 ();
+   test6 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memmove-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,579 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __memcpy_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *memmove (void *, const void *, size_t);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ size_t l1 = 1;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   int i;
+ 
+ #if defined __i386__ || defined __x86_64__
+   /* The functions below might not be optimized into direct stores on all
+      arches.  It depends on how many instructions would be generated and
+      what limits the architecture chooses in STORE_BY_PIECES_P.  */
+   memmove_disallowed = 1;
+   memcpy_disallowed = 1;
+ #endif
+ 
+   /* All the memmove calls in this routine except last have fixed length, so
+      object size checking should be done at compile time if optimizing.  */
+   chk_calls = 0;
+ 
+   if (memmove (p, "ABCDE", 6) != p || memcmp (p, "ABCDE", 6))
+     abort ();
+   if (memmove (p + 16, "VWX" + 1, 2) != p + 16
+       || memcmp (p + 16, "WX\0\0", 5))
+     abort ();
+   if (memmove (p + 1, "", 1) != p + 1 || memcmp (p, "A\0CDE", 6))
+     abort ();
+   if (memmove (p + 3, "FGHI", 4) != p + 3 || memcmp (p, "A\0CFGHI", 8))
+     abort ();
+ 
+   i = 8;
+   memmove (p + 20, "qrstu", 6);
+   memmove (p + 25, "QRSTU", 6);
+   if (memmove (p + 25 + 1, s1, 3) != p + 25 + 1
+       || memcmp (p + 25, "Q123U", 6))
+     abort ();
+ 
+   if (memmove (memmove (p, "abcdEFG", 4) + 4, "efg", 4) != p + 4
+       || memcmp (p, "abcdefg", 8))
+     abort();
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   if (__builtin_memmove (p, "ABCDE", 6) != p || memcmp (p, "ABCDE", 6))
+     abort ();
+ 
+   memmove (p + 5, s3, 1);
+   if (memcmp (p, "ABCDEFg", 8))
+     abort ();
+ 
+   memmove_disallowed = 0;
+   memcpy_disallowed = 0;
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ 
+   memmove (p + 6, s1 + 1, l1);
+   if (memcmp (p, "ABCDEF2", 8))
+     abort ();
+ 
+   /* The above memmove copies into an object with known size, but
+      unknown length, so it should be a __memmove_chk call.  */
+   if (chk_calls != 1)
+     abort ();
+ }
+ 
+ long buf1[64];
+ char *buf2 = (char *) (buf1 + 32);
+ long buf5[20];
+ char buf7[20];
+ 
+ void
+ __attribute__((noinline))
+ test2_sub (long *buf3, char *buf4, char *buf6, int n)
+ {
+   int i = 0;
+ 
+   /* All the memmove/__builtin_memmove/__builtin___memmove_chk
+      calls in this routine are either fixed length, or have
+      side-effects in __builtin_object_size arguments, or
+      dst doesn't point into a known object.  */
+   chk_calls = 0;
+ 
+   /* These should probably be handled by store_by_pieces on most arches.  */
+   if (memmove (buf1, "ABCDEFGHI", 9) != (char *) buf1
+       || memcmp (buf1, "ABCDEFGHI\0", 11))
+     abort ();
+ 
+   if (memmove (buf1, "abcdefghijklmnopq", 17) != (char *) buf1
+       || memcmp (buf1, "abcdefghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memmove (buf3, "ABCDEF", 6) != (char *) buf1
+       || memcmp (buf1, "ABCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memmove (buf3, "a", 1) != (char *) buf1
+       || memcmp (buf1, "aBCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (memmove ((char *) buf3 + 2, "bcd" + ++i, 2) != (char *) buf1 + 2
+       || memcmp (buf1, "aBcdEFghijklmnopq\0", 19)
+       || i != 1)
+     abort ();
+ 
+   /* These should probably be handled by move_by_pieces on most arches.  */
+   if (memmove ((char *) buf3 + 4, buf5, 6) != (char *) buf1 + 4
+       || memcmp (buf1, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memmove ((char *) buf1 + ++i + 8, (char *) buf5 + 1, 1)
+       != (char *) buf1 + 10
+       || memcmp (buf1, "aBcdRSTUVWSlmnopq\0", 19)
+       || i != 2)
+     abort ();
+ 
+   if (memmove ((char *) buf3 + 14, buf6, 2) != (char *) buf1 + 14
+       || memcmp (buf1, "aBcdRSTUVWSlmnrsq\0", 19))
+     abort ();
+ 
+   if (memmove (buf3, buf5, 8) != (char *) buf1
+       || memcmp (buf1, "RSTUVWXYVWSlmnrsq\0", 19))
+     abort ();
+ 
+   if (memmove (buf3, buf5, 17) != (char *) buf1
+       || memcmp (buf1, "RSTUVWXYZ01234567\0", 19))
+     abort ();
+ 
+   __builtin_memmove (buf3, "aBcdEFghijklmnopq\0", 19);
+ 
+   /* These should be handled either by movmemendM or memmove
+      call.  */
+ 
+   /* buf3 points to an unknown object, so __memmove_chk should not be done.  */
+   if (memmove ((char *) buf3 + 4, buf5, n + 6) != (char *) buf1 + 4
+       || memcmp (buf1, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* This call has side-effects in dst, therefore no checking.  */
+   if (__builtin___memmove_chk ((char *) buf1 + ++i + 8, (char *) buf5 + 1,
+ 			       n + 1, os ((char *) buf1 + ++i + 8))
+       != (char *) buf1 + 11
+       || memcmp (buf1, "aBcdRSTUVWkSmnopq\0", 19)
+       || i != 3)
+     abort ();
+ 
+   if (memmove ((char *) buf3 + 14, buf6, n + 2) != (char *) buf1 + 14
+       || memcmp (buf1, "aBcdRSTUVWkSmnrsq\0", 19))
+     abort ();
+ 
+   i = 1;
+ 
+   /* These might be handled by store_by_pieces.  */
+   if (memmove (buf2, "ABCDEFGHI", 9) != buf2
+       || memcmp (buf2, "ABCDEFGHI\0", 11))
+     abort ();
+ 
+   if (memmove (buf2, "abcdefghijklmnopq", 17) != buf2
+       || memcmp (buf2, "abcdefghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memmove (buf4, "ABCDEF", 6) != buf2
+       || memcmp (buf2, "ABCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_memmove (buf4, "a", 1) != buf2
+       || memcmp (buf2, "aBCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (memmove (buf4 + 2, "bcd" + i++, 2) != buf2 + 2
+       || memcmp (buf2, "aBcdEFghijklmnopq\0", 19)
+       || i != 2)
+     abort ();
+ 
+   /* These might be handled by move_by_pieces.  */
+   if (memmove (buf4 + 4, buf7, 6) != buf2 + 4
+       || memcmp (buf2, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* Side effect.  */
+   if (__builtin___memmove_chk (buf2 + i++ + 8, buf7 + 1, 1,
+ 			       os (buf2 + i++ + 8))
+       != buf2 + 10
+       || memcmp (buf2, "aBcdRSTUVWSlmnopq\0", 19)
+       || i != 3)
+     abort ();
+ 
+   if (memmove (buf4 + 14, buf6, 2) != buf2 + 14
+       || memcmp (buf2, "aBcdRSTUVWSlmnrsq\0", 19))
+     abort ();
+ 
+   __builtin_memmove (buf4, "aBcdEFghijklmnopq\0", 19);
+ 
+   /* These should be handled either by movmemendM or memmove
+      call.  */
+   if (memmove (buf4 + 4, buf7, n + 6) != buf2 + 4
+       || memcmp (buf2, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* Side effect.  */
+   if (__builtin___memmove_chk (buf2 + i++ + 8, buf7 + 1, n + 1,
+ 			       os (buf2 + i++ + 8))
+       != buf2 + 11
+       || memcmp (buf2, "aBcdRSTUVWkSmnopq\0", 19)
+       || i != 4)
+     abort ();
+ 
+   if (memmove (buf4 + 14, buf6, n + 2) != buf2 + 14
+       || memcmp (buf2, "aBcdRSTUVWkSmnrsq\0", 19))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   long *x;
+   char *y;
+   int z;
+   __builtin_memmove (buf5, "RSTUVWXYZ0123456789", 20);
+   __builtin_memmove (buf7, "RSTUVWXYZ0123456789", 20);
+  __asm ("" : "=r" (x) : "0" (buf1));
+  __asm ("" : "=r" (y) : "0" (buf2));
+  __asm ("" : "=r" (z) : "0" (0));
+   test2_sub (x, y, "rstuvwxyz", z);
+ }
+ 
+ static const struct foo
+ {
+   char *s;
+   double d;
+   long l;
+ } foo[] =
+ {
+   { "hello world1", 3.14159, 101L },
+   { "hello world2", 3.14159, 102L },
+   { "hello world3", 3.14159, 103L },
+   { "hello world4", 3.14159, 104L },
+   { "hello world5", 3.14159, 105L },
+   { "hello world6", 3.14159, 106L }
+ };
+ 
+ static const struct bar
+ {
+   char *s;
+   const struct foo f[3];
+ } bar[] =
+ {
+   {
+     "hello world10",
+     {
+       { "hello1", 3.14159, 201L },
+       { "hello2", 3.14159, 202L },
+       { "hello3", 3.14159, 203L },
+     }
+   },
+   {
+     "hello world11",
+     {
+       { "hello4", 3.14159, 204L },
+       { "hello5", 3.14159, 205L },
+       { "hello6", 3.14159, 206L },
+     }
+   }
+ };
+ 
+ static const int baz[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 0 };
+ 
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   const char *s;
+   struct foo f1[sizeof foo/sizeof*foo];
+   struct bar b1[sizeof bar/sizeof*bar];
+   int bz[sizeof baz/sizeof*baz];
+ 
+   /* All the memmove/__builtin_memmove calls in this routine have fixed
+      length.  */
+   chk_calls = 0;
+ 
+   /* All the *memmove calls below have src in read-only memory, so all
+      of them should be optimized into memcpy.  */
+   memmove_disallowed = 1;
+   if (memmove (f1, foo, sizeof (foo)) != f1 || memcmp (f1, foo, sizeof (foo)))
+     abort ();
+   if (memmove (b1, bar, sizeof (bar)) != b1 || memcmp (b1, bar, sizeof (bar)))
+     abort ();
+   memmove (bz, baz, sizeof (baz));
+   if (memcmp (bz, baz, sizeof (baz)))
+     abort ();
+ 
+   if (memmove (p, "abcde", 6) != p || memcmp (p, "abcde", 6))
+     abort ();
+   s = s1;
+   if (memmove (p + 2, ++s, 0) != p + 2 || memcmp (p, "abcde", 6) || s != s1 + 1)
+     abort ();
+   if (__builtin_memmove (p + 3, "", 1) != p + 3 || memcmp (p, "abc\0e", 6))
+     abort ();
+   memmove (p + 2, "fghijk", 4);
+   if (memcmp (p, "abfghi", 7))
+     abort ();
+   s = s1 + 1;
+   memmove (p + 1, s++, 0);
+   if (memcmp (p, "abfghi", 7) || s != s1 + 2)
+     abort ();
+   __builtin_memmove (p + 4, "ABCDE", 1);
+   if (memcmp (p, "abfgAi", 7))
+     abort ();
+ 
+   /* memmove with length 1 can be optimized into memcpy if it can be
+      expanded inline.  */
+   if (memmove (p + 2, p + 3, 1) != p + 2)
+     abort ();
+   if (memcmp (p, "abggAi", 7))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+   memmove_disallowed = 0;
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   size_t l;
+ 
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   chk_calls = 0;
+   memmove (a.buf1 + 2, s3, l1);
+   memmove (r, s3, l1 + 1);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memmove (r, s2, l1 + 2);
+   memmove (r + 2, s3, l1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   memmove (r, s2, l1);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   memmove (a.buf1 + 2, s3, 1);
+   memmove (r, s3, 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memmove (r, s2, 3);
+   r = buf3;
+   l = 4;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = 2;
+       else if (i == l1)
+ 	r = &a.buf2[7], l = 3;
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = 4;
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = 1;
+     }
+   memmove (r, s2, 1);
+   /* Here, l is known to be at most 4 and __builtin_object_size (&buf3[16], 0)
+      is 4, so this doesn't need runtime checking.  */
+   memmove (&buf3[16], s2, l);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test5 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memmove (&a.buf2[9], s2, l1 + 1);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memmove (&a.buf2[7], s3, strlen (s3) + 1);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memmove (&buf3[19], "ab", 2);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (10 * sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
+ 
+ /* Use a sequence length that is not divisible by two, to make it more
+    likely to detect when words are mixed up.  */
+ #define SEQUENCE_LENGTH 31
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u1, u2;
+ 
+ void
+ __attribute__((noinline))
+ test6 (void)
+ {
+   int off1, off2, len, i;
+   char *p, *q, c;
+ 
+   for (off1 = 0; off1 < MAX_OFFSET; off1++)
+     for (off2 = 0; off2 < MAX_OFFSET; off2++)
+       for (len = 1; len < MAX_COPY; len++)
+ 	{
+ 	  for (i = 0, c = 'A'; i < MAX_LENGTH; i++, c++)
+ 	    {
+ 	      u1.buf[i] = 'a';
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      u2.buf[i] = c;
+ 	    }
+ 
+ 	  p = memmove (u1.buf + off1, u2.buf + off2, len);
+ 	  if (p != u1.buf + off1)
+ 	    abort ();
+ 
+ 	  q = u1.buf;
+ 	  for (i = 0; i < off1; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 
+ 	  for (i = 0, c = 'A' + off2; i < len; i++, q++, c++)
+ 	    {
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      if (*q != c)
+ 		abort ();
+ 	    }
+ 
+ 	  for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 	}
+ }
+ 
+ #define TESTSIZE 80
+ 
+ char srcb[TESTSIZE] __attribute__ ((aligned));
+ char dstb[TESTSIZE] __attribute__ ((aligned));
+ 
+ void
+ __attribute__((noinline))
+ check (char *test, char *match, int n)
+ {
+   if (memcmp (test, match, n))
+     abort ();
+ }
+ 
+ #define TN(n) \
+ { memset (dstb, 0, n); memmove (dstb, srcb, n); check (dstb, srcb, n); }
+ #define T(n) \
+ TN (n) \
+ TN ((n) + 1) \
+ TN ((n) + 2) \
+ TN ((n) + 3)
+ 
+ void
+ __attribute__((noinline))
+ test7 (void)
+ {
+   int i;
+ 
+   chk_calls = 0;
+ 
+   for (i = 0; i < sizeof (srcb); ++i)
+       srcb[i] = 'a' + i % 26;
+ 
+   T (0);
+   T (4);
+   T (8);
+   T (12);
+   T (16);
+   T (20);
+   T (24);
+   T (28);
+   T (32);
+   T (36);
+   T (40);
+   T (44);
+   T (48);
+   T (52);
+   T (56);
+   T (60);
+   T (64);
+   T (68);
+   T (72);
+   T (76);
+ 
+   /* All memmove calls in this routine have constant arguments.  */
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+   test2 ();
+   __builtin_memset (p, '\0', sizeof (p));
+   test3 ();
+   test4 ();
+   test5 ();
+   test6 ();
+   test7 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c	Sat Jul  3 02:16:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memops-asm-lib.c	Fri Apr  1 13:31:28 2005
***************
*** 1,3 ****
--- 1,4 ----
+ extern void abort (void);
  extern int inside_main;
  typedef __SIZE_TYPE__ size_t;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/mempcpy-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,487 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __mempcpy_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *mempcpy (void *, const void *, size_t);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ size_t l1 = 1;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   int i;
+ 
+ #if defined __i386__ || defined __x86_64__
+   /* The functions below might not be optimized into direct stores on all
+      arches.  It depends on how many instructions would be generated and
+      what limits the architecture chooses in STORE_BY_PIECES_P.  */
+   mempcpy_disallowed = 1;
+ #endif
+ 
+   /* All the mempcpy calls in this routine except last have fixed length, so
+      object size checking should be done at compile time if optimizing.  */
+   chk_calls = 0;
+ 
+   if (mempcpy (p, "ABCDE", 6) != p + 6 || memcmp (p, "ABCDE", 6))
+     abort ();
+   if (mempcpy (p + 16, "VWX" + 1, 2) != p + 16 + 2
+       || memcmp (p + 16, "WX\0\0", 5))
+     abort ();
+   if (mempcpy (p + 1, "", 1) != p + 1 + 1 || memcmp (p, "A\0CDE", 6))
+     abort ();
+   if (mempcpy (p + 3, "FGHI", 4) != p + 3 + 4 || memcmp (p, "A\0CFGHI", 8))
+     abort ();
+ 
+   i = 8;
+   memcpy (p + 20, "qrstu", 6);
+   memcpy (p + 25, "QRSTU", 6);
+   if (mempcpy (p + 25 + 1, s1, 3) != (p + 25 + 1 + 3)
+       || memcmp (p + 25, "Q123U", 6))
+     abort ();
+ 
+   if (mempcpy (mempcpy (p, "abcdEFG", 4), "efg", 4) != p + 8
+       || memcmp (p, "abcdefg", 8))
+     abort();
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   if (__builtin_mempcpy (p, "ABCDE", 6) != p + 6 || memcmp (p, "ABCDE", 6))
+     abort ();
+ 
+   /* If the result of mempcpy is ignored, gcc should use memcpy.
+      This should be optimized always, so disallow mempcpy calls.  */
+   mempcpy_disallowed = 1;
+   mempcpy (p + 5, s3, 1);
+   if (memcmp (p, "ABCDEFg", 8))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ 
+   mempcpy (p + 6, s1 + 1, l1);
+   if (memcmp (p, "ABCDEF2", 8))
+     abort ();
+ 
+   /* The above mempcpy copies into an object with known size, but
+      unknown length and with result ignored, so it should be a
+      __memcpy_chk call.  */
+   if (chk_calls != 1)
+     abort ();
+ 
+   mempcpy_disallowed = 0;
+ }
+ 
+ long buf1[64];
+ char *buf2 = (char *) (buf1 + 32);
+ long buf5[20];
+ char buf7[20];
+ 
+ void
+ __attribute__((noinline))
+ test2_sub (long *buf3, char *buf4, char *buf6, int n)
+ {
+   int i = 0;
+ 
+   /* All the mempcpy/__builtin_mempcpy/__builtin___mempcpy_chk
+      calls in this routine are either fixed length, or have
+      side-effects in __builtin_object_size arguments, or
+      dst doesn't point into a known object.  */
+   chk_calls = 0;
+ 
+   /* These should probably be handled by store_by_pieces on most arches.  */
+   if (mempcpy (buf1, "ABCDEFGHI", 9) != (char *) buf1 + 9
+       || memcmp (buf1, "ABCDEFGHI\0", 11))
+     abort ();
+ 
+   if (mempcpy (buf1, "abcdefghijklmnopq", 17) != (char *) buf1 + 17
+       || memcmp (buf1, "abcdefghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_mempcpy (buf3, "ABCDEF", 6) != (char *) buf1 + 6
+       || memcmp (buf1, "ABCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_mempcpy (buf3, "a", 1) != (char *) buf1 + 1
+       || memcmp (buf1, "aBCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (mempcpy ((char *) buf3 + 2, "bcd" + ++i, 2) != (char *) buf1 + 4
+       || memcmp (buf1, "aBcdEFghijklmnopq\0", 19)
+       || i != 1)
+     abort ();
+ 
+   /* These should probably be handled by move_by_pieces on most arches.  */
+   if (mempcpy ((char *) buf3 + 4, buf5, 6) != (char *) buf1 + 10
+       || memcmp (buf1, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_mempcpy ((char *) buf1 + ++i + 8, (char *) buf5 + 1, 1)
+       != (char *) buf1 + 11
+       || memcmp (buf1, "aBcdRSTUVWSlmnopq\0", 19)
+       || i != 2)
+     abort ();
+ 
+   if (mempcpy ((char *) buf3 + 14, buf6, 2) != (char *) buf1 + 16
+       || memcmp (buf1, "aBcdRSTUVWSlmnrsq\0", 19))
+     abort ();
+ 
+   if (mempcpy (buf3, buf5, 8) != (char *) buf1 + 8
+       || memcmp (buf1, "RSTUVWXYVWSlmnrsq\0", 19))
+     abort ();
+ 
+   if (mempcpy (buf3, buf5, 17) != (char *) buf1 + 17
+       || memcmp (buf1, "RSTUVWXYZ01234567\0", 19))
+     abort ();
+ 
+   __builtin_memcpy (buf3, "aBcdEFghijklmnopq\0", 19);
+ 
+   /* These should be handled either by movmemendM or mempcpy
+      call.  */
+ 
+   /* buf3 points to an unknown object, so __mempcpy_chk should not be done.  */
+   if (mempcpy ((char *) buf3 + 4, buf5, n + 6) != (char *) buf1 + 10
+       || memcmp (buf1, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* This call has side-effects in dst, therefore no checking.  */
+   if (__builtin___mempcpy_chk ((char *) buf1 + ++i + 8, (char *) buf5 + 1,
+ 			       n + 1, os ((char *) buf1 + ++i + 8))
+       != (char *) buf1 + 12
+       || memcmp (buf1, "aBcdRSTUVWkSmnopq\0", 19)
+       || i != 3)
+     abort ();
+ 
+   if (mempcpy ((char *) buf3 + 14, buf6, n + 2) != (char *) buf1 + 16
+       || memcmp (buf1, "aBcdRSTUVWkSmnrsq\0", 19))
+     abort ();
+ 
+   i = 1;
+ 
+   /* These might be handled by store_by_pieces.  */
+   if (mempcpy (buf2, "ABCDEFGHI", 9) != buf2 + 9
+       || memcmp (buf2, "ABCDEFGHI\0", 11))
+     abort ();
+ 
+   if (mempcpy (buf2, "abcdefghijklmnopq", 17) != buf2 + 17
+       || memcmp (buf2, "abcdefghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_mempcpy (buf4, "ABCDEF", 6) != buf2 + 6
+       || memcmp (buf2, "ABCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (__builtin_mempcpy (buf4, "a", 1) != buf2 + 1
+       || memcmp (buf2, "aBCDEFghijklmnopq\0", 19))
+     abort ();
+ 
+   if (mempcpy (buf4 + 2, "bcd" + i++, 2) != buf2 + 4
+       || memcmp (buf2, "aBcdEFghijklmnopq\0", 19)
+       || i != 2)
+     abort ();
+ 
+   /* These might be handled by move_by_pieces.  */
+   if (mempcpy (buf4 + 4, buf7, 6) != buf2 + 10
+       || memcmp (buf2, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* Side effect.  */
+   if (__builtin___mempcpy_chk (buf2 + i++ + 8, buf7 + 1, 1,
+ 			       os (buf2 + i++ + 8))
+       != buf2 + 11
+       || memcmp (buf2, "aBcdRSTUVWSlmnopq\0", 19)
+       || i != 3)
+     abort ();
+ 
+   if (mempcpy (buf4 + 14, buf6, 2) != buf2 + 16
+       || memcmp (buf2, "aBcdRSTUVWSlmnrsq\0", 19))
+     abort ();
+ 
+   __builtin_memcpy (buf4, "aBcdEFghijklmnopq\0", 19);
+ 
+   /* These should be handled either by movmemendM or mempcpy
+      call.  */
+   if (mempcpy (buf4 + 4, buf7, n + 6) != buf2 + 10
+       || memcmp (buf2, "aBcdRSTUVWklmnopq\0", 19))
+     abort ();
+ 
+   /* Side effect.  */
+   if (__builtin___mempcpy_chk (buf2 + i++ + 8, buf7 + 1,
+ 			       n + 1, os (buf2 + i++ + 8))
+       != buf2 + 12
+       || memcmp (buf2, "aBcdRSTUVWkSmnopq\0", 19)
+       || i != 4)
+     abort ();
+ 
+   if (mempcpy (buf4 + 14, buf6, n + 2) != buf2 + 16
+       || memcmp (buf2, "aBcdRSTUVWkSmnrsq\0", 19))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   long *x;
+   char *y;
+   int z;
+   __builtin_memcpy (buf5, "RSTUVWXYZ0123456789", 20);
+   __builtin_memcpy (buf7, "RSTUVWXYZ0123456789", 20);
+  __asm ("" : "=r" (x) : "0" (buf1));
+  __asm ("" : "=r" (y) : "0" (buf2));
+  __asm ("" : "=r" (z) : "0" (0));
+   test2_sub (x, y, "rstuvwxyz", z);
+ }
+ 
+ volatile void *vx;
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   size_t l;
+ 
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   chk_calls = 0;
+   vx = mempcpy (a.buf1 + 2, s3, l1);
+   vx = mempcpy (r, s3, l1 + 1);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   vx = mempcpy (r, s2, l1 + 2);
+   vx = mempcpy (r + 2, s3, l1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   vx = mempcpy (r, s2, l1);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   vx = mempcpy (a.buf1 + 2, s3, 1);
+   vx = mempcpy (r, s3, 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   vx = mempcpy (r, s2, 3);
+   r = buf3;
+   l = 4;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = 2;
+       else if (i == l1)
+ 	r = &a.buf2[7], l = 3;
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = 4;
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = 1;
+     }
+   vx = mempcpy (r, s2, 1);
+   /* Here, l is known to be at most 4 and __builtin_object_size (&buf3[16], 0)
+      is 4, so this doesn't need runtime checking.  */
+   vx = mempcpy (&buf3[16], s2, l);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       vx = mempcpy (&a.buf2[9], s2, l1 + 1);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       vx = mempcpy (&a.buf2[7], s3, strlen (s3) + 1);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       vx = mempcpy (&buf3[19], "ab", 2);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (10 * sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
+ 
+ /* Use a sequence length that is not divisible by two, to make it more
+    likely to detect when words are mixed up.  */
+ #define SEQUENCE_LENGTH 31
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u1, u2;
+ 
+ void
+ __attribute__((noinline))
+ test5 (void)
+ {
+   int off1, off2, len, i;
+   char *p, *q, c;
+ 
+   for (off1 = 0; off1 < MAX_OFFSET; off1++)
+     for (off2 = 0; off2 < MAX_OFFSET; off2++)
+       for (len = 1; len < MAX_COPY; len++)
+ 	{
+ 	  for (i = 0, c = 'A'; i < MAX_LENGTH; i++, c++)
+ 	    {
+ 	      u1.buf[i] = 'a';
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      u2.buf[i] = c;
+ 	    }
+ 
+ 	  p = mempcpy (u1.buf + off1, u2.buf + off2, len);
+ 	  if (p != u1.buf + off1 + len)
+ 	    abort ();
+ 
+ 	  q = u1.buf;
+ 	  for (i = 0; i < off1; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 
+ 	  for (i = 0, c = 'A' + off2; i < len; i++, q++, c++)
+ 	    {
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      if (*q != c)
+ 		abort ();
+ 	    }
+ 
+ 	  for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 	}
+ }
+ 
+ #define TESTSIZE 80
+ 
+ char srcb[TESTSIZE] __attribute__ ((aligned));
+ char dstb[TESTSIZE] __attribute__ ((aligned));
+ 
+ void
+ __attribute__((noinline))
+ check (char *test, char *match, int n)
+ {
+   if (memcmp (test, match, n))
+     abort ();
+ }
+ 
+ #define TN(n) \
+ { memset (dstb, 0, n); vx = mempcpy (dstb, srcb, n); check (dstb, srcb, n); }
+ #define T(n) \
+ TN (n) \
+ TN ((n) + 1) \
+ TN ((n) + 2) \
+ TN ((n) + 3)
+ 
+ void
+ __attribute__((noinline))
+ test6 (void)
+ {
+   int i;
+ 
+   chk_calls = 0;
+ 
+   for (i = 0; i < sizeof (srcb); ++i)
+       srcb[i] = 'a' + i % 26;
+ 
+   T (0);
+   T (4);
+   T (8);
+   T (12);
+   T (16);
+   T (20);
+   T (24);
+   T (28);
+   T (32);
+   T (36);
+   T (40);
+   T (44);
+   T (48);
+   T (52);
+   T (56);
+   T (60);
+   T (64);
+   T (68);
+   T (72);
+   T (76);
+ 
+   /* All mempcpy calls in this routine have constant arguments.  */
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+   test2 ();
+   test3 ();
+   test4 ();
+   test5 ();
+   test6 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/memset-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,721 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __memset_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ char buffer[32];
+ int argc = 1;
+ size_t l1 = 1;
+ char *s3 = "FGH";
+ char *s4;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   memset_disallowed = 1;
+   chk_calls = 0;
+   memset (buffer, argc, 0);
+   memset (buffer, argc, 1);
+   memset (buffer, argc, 2);
+   memset (buffer, argc, 3);
+   memset (buffer, argc, 4);
+   memset (buffer, argc, 5);
+   memset (buffer, argc, 6);
+   memset (buffer, argc, 7);
+   memset (buffer, argc, 8);
+   memset (buffer, argc, 9);
+   memset (buffer, argc, 10);
+   memset (buffer, argc, 11);
+   memset (buffer, argc, 12);
+   memset (buffer, argc, 13);
+   memset (buffer, argc, 14);
+   memset (buffer, argc, 15);
+   memset (buffer, argc, 16);
+   memset (buffer, argc, 17);
+   memset_disallowed = 0;
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   size_t l;
+ 
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   chk_calls = 0;
+   memset (a.buf1 + 2, 'a', l1);
+   memset (r, '\0', l1 + 1);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memset (r, argc, l1 + 2);
+   memset (r + 2, 'Q', l1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   memset (r, '\0', l1);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   memset (a.buf1 + 2, '\0', 1);
+   memset (r, argc, 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memset (r, 'N', 3);
+   r = buf3;
+   l = 4;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = 2;
+       else if (i == l1)
+ 	r = &a.buf2[7], l = 3;
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = 4;
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = 1;
+     }
+   memset (r, 'H', 1);
+   /* Here, l is known to be at most 4 and __builtin_object_size (&buf3[16], 0)
+      is 4, so this doesn't need runtime checking.  */
+   memset (&buf3[16], 'd', l);
+   /* Neither length nor destination known.  Doesn't need runtime checking.  */
+   memset (s4, 'a', l1);
+   memset (s4 + 2, '\0', l1 + 2);
+   /* Destination unknown.  */
+   memset (s4 + 4, 'b', 2);
+   memset (s4 + 6, '\0', 4);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memset (&a.buf2[9], '\0', l1 + 1);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memset (&a.buf2[7], 'T', strlen (s3) + 1);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       memset (&buf3[19], 'b', 2);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (10 * sizeof (long long))
+ #define MAX_COPY2 15
+ #else
+ #define MAX_COPY2 MAX_COPY
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
+ #define MAX_LENGTH2 (MAX_OFFSET + MAX_COPY2 + MAX_EXTRA)
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u;
+ 
+ char A = 'A';
+ 
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   int off, len, i;
+   char *p, *q;
+ 
+   for (off = 0; off < MAX_OFFSET; off++)
+     for (len = 1; len < MAX_COPY; len++)
+       {
+ 	for (i = 0; i < MAX_LENGTH; i++)
+ 	  u.buf[i] = 'a';
+ 
+ 	p = memset (u.buf + off, '\0', len);
+ 	if (p != u.buf + off)
+ 	  abort ();
+ 
+ 	q = u.buf;
+ 	for (i = 0; i < off; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	for (i = 0; i < len; i++, q++)
+ 	  if (*q != '\0')
+ 	    abort ();
+ 
+ 	for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	p = memset (u.buf + off, A, len);
+ 	if (p != u.buf + off)
+ 	  abort ();
+ 
+ 	q = u.buf;
+ 	for (i = 0; i < off; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	for (i = 0; i < len; i++, q++)
+ 	  if (*q != 'A')
+ 	    abort ();
+ 
+ 	for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	p = memset (u.buf + off, 'B', len);
+ 	if (p != u.buf + off)
+ 	  abort ();
+ 
+ 	q = u.buf;
+ 	for (i = 0; i < off; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	for (i = 0; i < len; i++, q++)
+ 	  if (*q != 'B')
+ 	    abort ();
+ 
+ 	for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+       }
+ }
+ 
+ static union {
+   char buf[MAX_LENGTH2];
+   long long align_int;
+   long double align_fp;
+ } u2;
+ 
+ void reset ()
+ {
+   int i;
+ 
+   for (i = 0; i < MAX_LENGTH2; i++)
+     u2.buf[i] = 'a';
+ }
+ 
+ void check (int off, int len, int ch)
+ {
+   char *q;
+   int i;
+ 
+   q = u2.buf;
+   for (i = 0; i < off; i++, q++)
+     if (*q != 'a')
+       abort ();
+ 
+   for (i = 0; i < len; i++, q++)
+     if (*q != ch)
+       abort ();
+ 
+   for (i = 0; i < MAX_EXTRA; i++, q++)
+     if (*q != 'a')
+       abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test5 (void)
+ {
+   int off;
+   char *p;
+ 
+   /* len == 1 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 1);
+       if (p != u2.buf + off) abort ();
+       check (off, 1, '\0');
+ 
+       p = memset (u2.buf + off, A, 1);
+       if (p != u2.buf + off) abort ();
+       check (off, 1, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 1);
+       if (p != u2.buf + off) abort ();
+       check (off, 1, 'B');
+     }
+ 
+   /* len == 2 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 2);
+       if (p != u2.buf + off) abort ();
+       check (off, 2, '\0');
+ 
+       p = memset (u2.buf + off, A, 2);
+       if (p != u2.buf + off) abort ();
+       check (off, 2, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 2);
+       if (p != u2.buf + off) abort ();
+       check (off, 2, 'B');
+     }
+ 
+   /* len == 3 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 3);
+       if (p != u2.buf + off) abort ();
+       check (off, 3, '\0');
+ 
+       p = memset (u2.buf + off, A, 3);
+       if (p != u2.buf + off) abort ();
+       check (off, 3, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 3);
+       if (p != u2.buf + off) abort ();
+       check (off, 3, 'B');
+     }
+ 
+   /* len == 4 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 4);
+       if (p != u2.buf + off) abort ();
+       check (off, 4, '\0');
+ 
+       p = memset (u2.buf + off, A, 4);
+       if (p != u2.buf + off) abort ();
+       check (off, 4, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 4);
+       if (p != u2.buf + off) abort ();
+       check (off, 4, 'B');
+     }
+ 
+   /* len == 5 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 5);
+       if (p != u2.buf + off) abort ();
+       check (off, 5, '\0');
+ 
+       p = memset (u2.buf + off, A, 5);
+       if (p != u2.buf + off) abort ();
+       check (off, 5, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 5);
+       if (p != u2.buf + off) abort ();
+       check (off, 5, 'B');
+     }
+ 
+   /* len == 6 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 6);
+       if (p != u2.buf + off) abort ();
+       check (off, 6, '\0');
+ 
+       p = memset (u2.buf + off, A, 6);
+       if (p != u2.buf + off) abort ();
+       check (off, 6, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 6);
+       if (p != u2.buf + off) abort ();
+       check (off, 6, 'B');
+     }
+ 
+   /* len == 7 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 7);
+       if (p != u2.buf + off) abort ();
+       check (off, 7, '\0');
+ 
+       p = memset (u2.buf + off, A, 7);
+       if (p != u2.buf + off) abort ();
+       check (off, 7, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 7);
+       if (p != u2.buf + off) abort ();
+       check (off, 7, 'B');
+     }
+ 
+   /* len == 8 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 8);
+       if (p != u2.buf + off) abort ();
+       check (off, 8, '\0');
+ 
+       p = memset (u2.buf + off, A, 8);
+       if (p != u2.buf + off) abort ();
+       check (off, 8, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 8);
+       if (p != u2.buf + off) abort ();
+       check (off, 8, 'B');
+     }
+ 
+   /* len == 9 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 9);
+       if (p != u2.buf + off) abort ();
+       check (off, 9, '\0');
+ 
+       p = memset (u2.buf + off, A, 9);
+       if (p != u2.buf + off) abort ();
+       check (off, 9, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 9);
+       if (p != u2.buf + off) abort ();
+       check (off, 9, 'B');
+     }
+ 
+   /* len == 10 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 10);
+       if (p != u2.buf + off) abort ();
+       check (off, 10, '\0');
+ 
+       p = memset (u2.buf + off, A, 10);
+       if (p != u2.buf + off) abort ();
+       check (off, 10, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 10);
+       if (p != u2.buf + off) abort ();
+       check (off, 10, 'B');
+     }
+ 
+   /* len == 11 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 11);
+       if (p != u2.buf + off) abort ();
+       check (off, 11, '\0');
+ 
+       p = memset (u2.buf + off, A, 11);
+       if (p != u2.buf + off) abort ();
+       check (off, 11, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 11);
+       if (p != u2.buf + off) abort ();
+       check (off, 11, 'B');
+     }
+ 
+   /* len == 12 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 12);
+       if (p != u2.buf + off) abort ();
+       check (off, 12, '\0');
+ 
+       p = memset (u2.buf + off, A, 12);
+       if (p != u2.buf + off) abort ();
+       check (off, 12, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 12);
+       if (p != u2.buf + off) abort ();
+       check (off, 12, 'B');
+     }
+ 
+   /* len == 13 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 13);
+       if (p != u2.buf + off) abort ();
+       check (off, 13, '\0');
+ 
+       p = memset (u2.buf + off, A, 13);
+       if (p != u2.buf + off) abort ();
+       check (off, 13, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 13);
+       if (p != u2.buf + off) abort ();
+       check (off, 13, 'B');
+     }
+ 
+   /* len == 14 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 14);
+       if (p != u2.buf + off) abort ();
+       check (off, 14, '\0');
+ 
+       p = memset (u2.buf + off, A, 14);
+       if (p != u2.buf + off) abort ();
+       check (off, 14, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 14);
+       if (p != u2.buf + off) abort ();
+       check (off, 14, 'B');
+     }
+ 
+   /* len == 15 */
+   for (off = 0; off < MAX_OFFSET; off++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf + off, '\0', 15);
+       if (p != u2.buf + off) abort ();
+       check (off, 15, '\0');
+ 
+       p = memset (u2.buf + off, A, 15);
+       if (p != u2.buf + off) abort ();
+       check (off, 15, 'A');
+ 
+       p = memset (u2.buf + off, 'B', 15);
+       if (p != u2.buf + off) abort ();
+       check (off, 15, 'B');
+     }
+ }
+ 
+ void
+ __attribute__((noinline))
+ test6 (void)
+ {
+   int len;
+   char *p;
+ 
+   /* off == 0 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf, '\0', len);
+       if (p != u2.buf) abort ();
+       check (0, len, '\0');
+ 
+       p = memset (u2.buf, A, len);
+       if (p != u2.buf) abort ();
+       check (0, len, 'A');
+ 
+       p = memset (u2.buf, 'B', len);
+       if (p != u2.buf) abort ();
+       check (0, len, 'B');
+     }
+ 
+   /* off == 1 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+1, '\0', len);
+       if (p != u2.buf+1) abort ();
+       check (1, len, '\0');
+ 
+       p = memset (u2.buf+1, A, len);
+       if (p != u2.buf+1) abort ();
+       check (1, len, 'A');
+ 
+       p = memset (u2.buf+1, 'B', len);
+       if (p != u2.buf+1) abort ();
+       check (1, len, 'B');
+     }
+ 
+   /* off == 2 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+2, '\0', len);
+       if (p != u2.buf+2) abort ();
+       check (2, len, '\0');
+ 
+       p = memset (u2.buf+2, A, len);
+       if (p != u2.buf+2) abort ();
+       check (2, len, 'A');
+ 
+       p = memset (u2.buf+2, 'B', len);
+       if (p != u2.buf+2) abort ();
+       check (2, len, 'B');
+     }
+ 
+   /* off == 3 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+3, '\0', len);
+       if (p != u2.buf+3) abort ();
+       check (3, len, '\0');
+ 
+       p = memset (u2.buf+3, A, len);
+       if (p != u2.buf+3) abort ();
+       check (3, len, 'A');
+ 
+       p = memset (u2.buf+3, 'B', len);
+       if (p != u2.buf+3) abort ();
+       check (3, len, 'B');
+     }
+ 
+   /* off == 4 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+4, '\0', len);
+       if (p != u2.buf+4) abort ();
+       check (4, len, '\0');
+ 
+       p = memset (u2.buf+4, A, len);
+       if (p != u2.buf+4) abort ();
+       check (4, len, 'A');
+ 
+       p = memset (u2.buf+4, 'B', len);
+       if (p != u2.buf+4) abort ();
+       check (4, len, 'B');
+     }
+ 
+   /* off == 5 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+5, '\0', len);
+       if (p != u2.buf+5) abort ();
+       check (5, len, '\0');
+ 
+       p = memset (u2.buf+5, A, len);
+       if (p != u2.buf+5) abort ();
+       check (5, len, 'A');
+ 
+       p = memset (u2.buf+5, 'B', len);
+       if (p != u2.buf+5) abort ();
+       check (5, len, 'B');
+     }
+ 
+   /* off == 6 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+6, '\0', len);
+       if (p != u2.buf+6) abort ();
+       check (6, len, '\0');
+ 
+       p = memset (u2.buf+6, A, len);
+       if (p != u2.buf+6) abort ();
+       check (6, len, 'A');
+ 
+       p = memset (u2.buf+6, 'B', len);
+       if (p != u2.buf+6) abort ();
+       check (6, len, 'B');
+     }
+ 
+   /* off == 7 */
+   for (len = 0; len < MAX_COPY2; len++)
+     {
+       reset ();
+ 
+       p = memset (u2.buf+7, '\0', len);
+       if (p != u2.buf+7) abort ();
+       check (7, len, '\0');
+ 
+       p = memset (u2.buf+7, A, len);
+       if (p != u2.buf+7) abort ();
+       check (7, len, 'A');
+ 
+       p = memset (u2.buf+7, 'B', len);
+       if (p != u2.buf+7) abort ();
+       check (7, len, 'B');
+     }
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = buffer;
+   test1 ();
+   test2 ();
+   test3 ();
+   test4 ();
+   test5 ();
+   test6 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237-lib.c	Thu Oct  6 20:46:53 2005
***************
*** 0 ****
--- 1,27 ----
+ extern void abort (void);
+ 
+ void *
+ memcpy (void *dst, const void *src, __SIZE_TYPE__ n)
+ {
+   const char *srcp;
+   char *dstp;
+ 
+   srcp = src;
+   dstp = dst;
+ 
+   if (dst < src)
+     {
+       if (dst + n > src)
+ 	abort ();
+     }
+   else
+     {
+       if (src + n > dst)
+ 	abort ();
+     }
+ 
+   while (n-- != 0)
+     *dstp++ = *srcp++;
+ 
+   return dst;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr22237.c	Thu Oct  6 20:46:53 2005
***************
*** 0 ****
--- 1,44 ----
+ extern void abort (void);
+ extern void exit (int);
+ struct s { unsigned char a[256]; };
+ union u { struct { struct s b; int c; } d; struct { int c; struct s b; } e; };
+ static union u v;
+ static union u v0;
+ static struct s *p = &v.d.b;
+ static struct s *q = &v.e.b;
+ 
+ static inline struct s rp (void) { return *p; }
+ static inline struct s rq (void) { return *q; }
+ static void pq (void) { *p = rq(); }
+ static void qp (void) { *q = rp(); }
+ 
+ static void
+ init (struct s *sp)
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+     sp->a[i] = i;
+ }
+ 
+ static void
+ check (struct s *sp)
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+     if (sp->a[i] != i)
+       abort ();
+ }
+ 
+ void
+ main_test (void)
+ {
+   v = v0;
+   init (p);
+   qp ();
+   check (q);
+   v = v0;
+   init (q);
+   pq ();
+   check (p);
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk-lib.c	Mon Aug 29 08:40:48 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/pr23484-chk.c	Mon Aug 29 08:40:48 2005
***************
*** 0 ****
--- 1,61 ----
+ /* PR middle-end/23484 */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen (const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *mempcpy (void *, const void *, size_t);
+ extern void *memmove (void *, const void *, size_t);
+ extern int snprintf (char *, size_t, const char *, ...);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ static char data[8] = "ABCDEFG";
+ 
+ int l1;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   char buf[8];
+ 
+   /* All the checking calls in this routine have a maximum length, so
+      object size checking should be done at compile time if optimizing.  */
+   chk_calls = 0;
+ 
+   memset (buf, 'I', sizeof (buf));
+   if (memcpy (buf, data, l1 ? sizeof (buf) : 4) != buf
+       || memcmp (buf, "ABCDIIII", 8))
+     abort ();
+ 
+   memset (buf, 'J', sizeof (buf));
+   if (mempcpy (buf, data, l1 ? sizeof (buf) : 4) != buf + 4
+       || memcmp (buf, "ABCDJJJJ", 8))
+     abort ();
+ 
+   memset (buf, 'K', sizeof (buf));
+   if (memmove (buf, data, l1 ? sizeof (buf) : 4) != buf
+       || memcmp (buf, "ABCDKKKK", 8))
+     abort ();
+ 
+   memset (buf, 'L', sizeof (buf));
+   if (snprintf (buf, l1 ? sizeof (buf) : 4, "%d", l1 + 65536) != 5
+       || memcmp (buf, "655\0LLLL", 8))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/printf.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/printf.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/printf.c	Sat Jul  3 02:16:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/printf.c	Sat Nov 26 01:31:54 2005
***************
*** 6,11 ****
--- 6,12 ----
     Written by Kaveh R. Ghazi, 12/4/2000.  */
  
  extern int printf (const char *, ...);
+ extern int printf_unlocked (const char *, ...);
  extern void abort(void);
  
  void
*************** main_test (void)
*** 28,35 ****
--- 29,40 ----
    if (s3 != s2+1 || *s3 != 0)
      abort();
    
+   printf ("");
+   printf ("%s", "");
    printf ("\n");
+   printf ("%s", "\n");
    printf ("hello world\n");
+   printf ("%s", "hello world\n");
    
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
*************** main_test (void)
*** 38,41 ****
--- 43,52 ----
       prototypes are set correctly too.  */
    __builtin_putchar ('\n');
    __builtin_puts ("hello");
+   /* Check the unlocked style, these evaluate to nothing to avoid
+      problems on systems without the unlocked functions.  */
+   printf_unlocked ("");
+   __builtin_printf_unlocked ("");
+   printf_unlocked ("%s", "");
+   __builtin_printf_unlocked ("%s", "");
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/snprintf-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,220 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __snprintf_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern int sprintf (char *, const char *, ...);
+ extern int snprintf (char *, size_t, const char *, ...);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ static char buffer[32];
+ char *ptr = "barf";
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   chk_calls = 0;
+   /* snprintf_disallowed = 1; */
+ 
+   memset (buffer, 'A', 32);
+   snprintf (buffer, 4, "foo");
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (snprintf (buffer, 4, "foo bar") != 7)
+     abort ();
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   snprintf (buffer, 32, "%s", "bar");
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (snprintf (buffer, 21, "%s", "bar") != 3)
+     abort ();
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   snprintf_disallowed = 0;
+ 
+   memset (buffer, 'A', 32);
+   if (snprintf (buffer, 4, "%d%d%d", (int) l1, (int) l1 + 1, (int) l1 + 12)
+       != 4)
+     abort ();
+   if (memcmp (buffer, "121", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (snprintf (buffer, 32, "%d%d%d", (int) l1, (int) l1 + 1, (int) l1 + 12)
+       != 4)
+     abort ();
+   if (memcmp (buffer, "1213", 5) || buffer[5] != 'A')
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   snprintf (buffer, strlen (ptr) + 1, "%s", ptr);
+   if (memcmp (buffer, "barf", 5) || buffer[5] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   snprintf (buffer, l1 + 31, "%d - %c", (int) l1 + 27, *ptr);
+   if (memcmp (buffer, "28 - b\0AAAAA", 12))
+     abort ();
+ 
+   if (chk_calls != 2)
+     abort ();
+   chk_calls = 0;
+ 
+   memset (s4, 'A', 32);
+   snprintf (s4, l1 + 6, "%d - %c", (int) l1 - 17, ptr[1]);
+   if (memcmp (s4, "-16 - \0AAA", 10))
+     abort ();
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+ 
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   chk_calls = 0;
+   snprintf (a.buf1 + 2, l1, "%s", s3 + 3);
+   snprintf (r, l1 + 4, "%s%c", s3 + 3, s3[3]);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   snprintf (r, strlen (s2) - 2, "%c %s", s2[2], s2 + 4);
+   snprintf (r + 2, l1, s3 + 3);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   snprintf (r, l1, s2 + 4);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   /* snprintf_disallowed = 1; */
+   snprintf (a.buf1 + 2, 4, "");
+   snprintf (r, 1, "a");
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   snprintf (r, 3, "%s", s1 + 1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   snprintf (r, 1, "%s", "");
+   snprintf (r, 0, "%s", "");
+   snprintf_disallowed = 0;
+   /* Unknown destination and source, no checking.  */
+   snprintf (s4, l1 + 31, "%s %d", s3, 0);
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       snprintf (&a.buf2[9], l1 + 1, "%c%s", s2[3], s2 + 4);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       snprintf (&a.buf2[7], l1 + 30, "%s%c", s3 + strlen (s3) - 2, *s3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       snprintf (&a.buf2[7], l1 + 3, "%d", (int) l1 + 9999);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       snprintf (&buf3[19], 2, "a");
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       snprintf (&buf3[17], 4, "a");
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       snprintf (&buf3[17], 4, "%s", "abc");
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = p;
+   test1 ();
+   test2 ();
+   test3 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/sprintf-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,197 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __sprintf_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern int sprintf (char *, const char *, ...);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ static char buffer[32];
+ char *ptr = "barf";
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   chk_calls = 0;
+   sprintf_disallowed = 1;
+ 
+   memset (buffer, 'A', 32);
+   sprintf (buffer, "foo");
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (sprintf (buffer, "foo") != 3)
+     abort ();
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   sprintf (buffer, "%s", "bar");
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (sprintf (buffer, "%s", "bar") != 3)
+     abort ();
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+   sprintf_disallowed = 0;
+ 
+   memset (buffer, 'A', 32);
+   sprintf (buffer, "%s", ptr);
+   if (memcmp (buffer, "barf", 5) || buffer[5] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   sprintf (buffer, "%d - %c", (int) l1 + 27, *ptr);
+   if (memcmp (buffer, "28 - b\0AAAAA", 12))
+     abort ();
+ 
+   if (chk_calls != 2)
+     abort ();
+   chk_calls = 0;
+ 
+   sprintf (s4, "%d - %c", (int) l1 - 17, ptr[1]);
+   if (memcmp (s4, "-16 - a", 8))
+     abort ();
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+ 
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   chk_calls = 0;
+   sprintf (a.buf1 + 2, "%s", s3 + 3);
+   sprintf (r, "%s%c", s3 + 3, s3[3]);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   sprintf (r, "%c %s", s2[2], s2 + 4);
+   sprintf (r + 2, s3 + 3);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   sprintf (r, s2 + 4);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   sprintf_disallowed = 1;
+   sprintf (a.buf1 + 2, "");
+   sprintf (r, "a");
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   sprintf (r, "%s", s1 + 1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   sprintf (r, "%s", "");
+   sprintf_disallowed = 0;
+   /* Unknown destination and source, no checking.  */
+   sprintf (s4, "%s %d", s3, 0);
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       sprintf (&a.buf2[9], "%c%s", s2[3], s2 + 4);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       sprintf (&a.buf2[7], "%s%c", s3 + strlen (s3) - 2, *s3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       sprintf (&a.buf2[7], "%d", (int) l1 + 9999);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       sprintf (&buf3[19], "a");
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       sprintf (&buf3[17], "%s", "abc");
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = p;
+   test1 ();
+   test2 ();
+   test3 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/stpcpy-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,265 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __stpcpy_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *stpcpy (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   int i = 8;
+ 
+ #if defined __i386__ || defined __x86_64__
+   /* The functions below might not be optimized into direct stores on all
+      arches.  It depends on how many instructions would be generated and
+      what limits the architecture chooses in STORE_BY_PIECES_P.  */
+   stpcpy_disallowed = 1;
+ #endif
+   if (stpcpy (p, "abcde") != p + 5 || memcmp (p, "abcde", 6))
+     abort ();
+   if (stpcpy (p + 16, "vwxyz" + 1) != p + 16 + 4 || memcmp (p + 16, "wxyz", 5))
+     abort ();
+   if (stpcpy (p + 1, "") != p + 1 + 0 || memcmp (p, "a\0cde", 6))
+     abort ();
+   if (stpcpy (p + 3, "fghij") != p + 3 + 5 || memcmp (p, "a\0cfghij", 9))
+     abort ();
+ 
+   if (stpcpy ((i++, p + 20 + 1), "23") != (p + 20 + 1 + 2)
+       || i != 9 || memcmp (p + 19, "z\0""23\0", 5))
+     abort ();
+ 
+   if (stpcpy (stpcpy (p, "ABCD"), "EFG") != p + 7 || memcmp (p, "ABCDEFG", 8))
+     abort();
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   if (__builtin_stpcpy (p, "abcde") != p + 5 || memcmp (p, "abcde", 6))
+     abort ();
+ 
+   /* If return value of stpcpy is ignored, it should be optimized into
+      strcpy call.  */
+   stpcpy_disallowed = 1;
+   stpcpy (p + 1, "abcd");
+   stpcpy_disallowed = 0;
+   if (memcmp (p, "aabcd", 6))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ 
+   chk_calls = 0;
+   strcpy_disallowed = 1;
+   if (stpcpy (p, s2) != p + 4 || memcmp (p, "defg\0", 6))
+     abort ();
+   strcpy_disallowed = 0;
+   stpcpy_disallowed = 1;
+   stpcpy (p + 2, s3);
+   stpcpy_disallowed = 0;
+   if (memcmp (p, "deFGH", 6))
+     abort ();
+   if (chk_calls != 2)
+     abort ();
+ }
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (10 * sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + 1 + MAX_EXTRA)
+ 
+ /* Use a sequence length that is not divisible by two, to make it more
+    likely to detect when words are mixed up.  */
+ #define SEQUENCE_LENGTH 31
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u1, u2;
+ 
+ volatile char *vx;
+ 
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   int off1, off2, len, i;
+   char *p, *q, c;
+ 
+   for (off1 = 0; off1 < MAX_OFFSET; off1++)
+     for (off2 = 0; off2 < MAX_OFFSET; off2++)
+       for (len = 1; len < MAX_COPY; len++)
+ 	{
+ 	  for (i = 0, c = 'A'; i < MAX_LENGTH; i++, c++)
+ 	    {
+ 	      u1.buf[i] = 'a';
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      u2.buf[i] = c;
+ 	    }
+ 	  u2.buf[off2 + len] = '\0';
+ 
+ 	  p = stpcpy (u1.buf + off1, u2.buf + off2);
+ 	  if (p != u1.buf + off1 + len)
+ 	    abort ();
+ 
+ 	  q = u1.buf;
+ 	  for (i = 0; i < off1; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 
+ 	  for (i = 0, c = 'A' + off2; i < len; i++, q++, c++)
+ 	    {
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      if (*q != c)
+ 		abort ();
+ 	    }
+ 
+ 	  if (*q++ != '\0')
+ 	    abort ();
+ 	  for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 	}
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   const char *l;
+ 
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   chk_calls = 0;
+   vx = stpcpy (a.buf1 + 2, s3 + 3);
+   vx = stpcpy (r, s3 + 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   vx = stpcpy (r, s2 + 2);
+   vx = stpcpy (r + 2, s3 + 3);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   vx = stpcpy (r, s2 + 4);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   vx = stpcpy (a.buf1 + 2, "");
+   vx = stpcpy (r, "a");
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   vx = stpcpy (r, s1 + 1);
+   r = buf3;
+   l = "abc";
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = "e";
+       else if (i == l1)
+ 	r = &a.buf2[7], l = "gh";
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = "jkl";
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = "";
+     }
+   vx = stpcpy (r, "");
+   /* Here, strlen (l) + 1 is known to be at most 4 and
+      __builtin_object_size (&buf3[16], 0) is 4, so this doesn't need
+      runtime checking.  */
+   vx = stpcpy (&buf3[16], l);
+   /* Unknown destination and source, no checking.  */
+   vx = stpcpy (s4, s3);
+   stpcpy (s4 + 4, s3);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       vx = stpcpy (&a.buf2[9], s2 + 3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       vx = stpcpy (&a.buf2[7], s3 + strlen (s3) - 3);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       vx = stpcpy (&buf3[19], "a");
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+   s4 = p;
+   test2 ();
+   test3 ();
+   test4 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcat-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,204 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __strcat_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcat (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int strcmp (const char *, const char *);
+ extern void *memset (void *, int, size_t);
+ #define RESET_DST_WITH(FILLER) \
+   do { memset (dst, 'X', sizeof (dst)); strcpy (dst, (FILLER)); } while (0)
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ char *s5;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   const char *const x1 = "hello world";
+   const char *const x2 = "";
+   char dst[64], *d2;
+ 
+   chk_calls = 0;
+   strcat_disallowed = 1;
+   /* Following strcat calls should be optimized out at compile time.  */  
+   RESET_DST_WITH (x1);
+   if (strcat (dst, "") != dst || strcmp (dst, x1))
+     abort ();
+   RESET_DST_WITH (x1);
+   if (strcat (dst, x2) != dst || strcmp (dst, x1))
+     abort ();
+   RESET_DST_WITH (x1); d2 = dst;
+   if (strcat (++d2, x2) != dst+1 || d2 != dst+1 || strcmp (dst, x1))
+     abort ();
+   RESET_DST_WITH (x1); d2 = dst;
+   if (strcat (++d2+5, x2) != dst+6 || d2 != dst+1 || strcmp (dst, x1))
+     abort ();
+   RESET_DST_WITH (x1); d2 = dst;
+   if (strcat (++d2+5, x1+11) != dst+6 || d2 != dst+1 || strcmp (dst, x1))
+     abort ();
+   if (chk_calls)
+     abort ();
+   strcat_disallowed = 0;
+ 
+   RESET_DST_WITH (x1);
+   if (strcat (dst, " 1111") != dst
+       || memcmp (dst, "hello world 1111\0XXX", 20))
+     abort ();
+   
+   RESET_DST_WITH (x1);
+   if (strcat (dst+5, " 2222") != dst+5
+       || memcmp (dst, "hello world 2222\0XXX", 20))
+     abort ();
+   
+   RESET_DST_WITH (x1); d2 = dst;
+   if (strcat (++d2+5, " 3333") != dst+6 || d2 != dst+1
+       || memcmp (dst, "hello world 3333\0XXX", 20))
+     abort ();
+   
+   RESET_DST_WITH (x1);
+   strcat (strcat (strcat (strcat (strcat (strcat (dst, ": this "), ""),
+ 				  "is "), "a "), "test"), ".");
+   if (memcmp (dst, "hello world: this is a test.\0X", 30))
+     abort ();
+ 
+   chk_calls = 0;
+   strcat_disallowed = 1;
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   RESET_DST_WITH (x1);
+   if (__builtin_strcat (dst, "") != dst || strcmp (dst, x1))
+     abort ();
+   if (chk_calls)
+     abort ();
+   strcat_disallowed = 0;
+ }
+ 
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+ 
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   memset (&a, '\0', sizeof (a));
+   s5 = (char *) &a;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   chk_calls = 0;
+   strcat (a.buf1 + 2, s3 + 3);
+   strcat (r, s3 + 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memset (r, '\0', 3);
+   __asm __volatile ("" : : "r" (r) : "memory");
+   strcat (r, s2 + 2);
+   strcat (r + 2, s3 + 3);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   strcat (r, s2 + 4);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      but we don't know the length of dest string, so runtime checking
+      is needed too.  */
+   memset (&a, '\0', sizeof (a));
+   chk_calls = 0;
+   s5 = (char *) &a;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   strcat (a.buf1 + 2, "a");
+   strcat (r, "");
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memset (r, '\0', 3);
+   __asm __volatile ("" : : "r" (r) : "memory");
+   strcat (r, s1 + 1);
+   if (chk_calls != 2)
+     abort ();
+   chk_calls = 0;
+   /* Unknown destination and source, no checking.  */
+   strcat (s4, s3);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   memset (&a, '\0', sizeof (a));
+   memset (buf3, '\0', sizeof (buf3));
+   s5 = (char *) &a;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   s5 = buf3;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strcat (&a.buf2[9], s2 + 3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strcat (&a.buf2[7], s3 + strlen (s3) - 3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strcat (&buf3[19], "a");
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = p;
+   test1 ();
+   memset (p, '\0', sizeof (p));
+   test2 ();
+   test3 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcat.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcat.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcat.c	Sat Jul  3 02:16:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcat.c	Fri Apr  1 13:48:19 2005
*************** extern void abort (void);
*** 10,16 ****
  typedef __SIZE_TYPE__ size_t;
  extern char *strcat (char *, const char *);
  extern char *strcpy (char *, const char *);
- extern int strcmp (const char *, const char *);
  extern void *memset (void *, int, size_t);
  extern int memcmp (const void *, const void *, size_t);
  #define RESET_DST_WITH(FILLER) \
--- 10,15 ----
*************** void main_test (void)
*** 23,41 ****
    char dst[64], *d2;
    
    RESET_DST_WITH (s1);
!   if (strcat (dst, "") != dst || strcmp (dst, s1))
      abort();
    RESET_DST_WITH (s1);
!   if (strcat (dst, s2) != dst || strcmp (dst, s1))
      abort();
    RESET_DST_WITH (s1); d2 = dst;
!   if (strcat (++d2, s2) != dst+1 || d2 != dst+1 || strcmp (dst, s1))
      abort();
    RESET_DST_WITH (s1); d2 = dst;
!   if (strcat (++d2+5, s2) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
      abort();
    RESET_DST_WITH (s1); d2 = dst;
!   if (strcat (++d2+5, s1+11) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
      abort();
  
  #ifndef __OPTIMIZE_SIZE__
--- 22,43 ----
    char dst[64], *d2;
    
    RESET_DST_WITH (s1);
!   if (strcat (dst, "") != dst || memcmp (dst, "hello world\0XXX", 15))
      abort();
    RESET_DST_WITH (s1);
!   if (strcat (dst, s2) != dst || memcmp (dst, "hello world\0XXX", 15))
      abort();
    RESET_DST_WITH (s1); d2 = dst;
!   if (strcat (++d2, s2) != dst+1 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
    RESET_DST_WITH (s1); d2 = dst;
!   if (strcat (++d2+5, s2) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
    RESET_DST_WITH (s1); d2 = dst;
!   if (strcat (++d2+5, s1+11) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
  
  #ifndef __OPTIMIZE_SIZE__
*************** void main_test (void)
*** 74,79 ****
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
    RESET_DST_WITH (s1);
!   if (__builtin_strcat (dst, "") != dst || strcmp (dst, s1))
      abort();
  }
--- 76,81 ----
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
    RESET_DST_WITH (s1);
!   if (__builtin_strcat (dst, "") != dst || memcmp (dst, "hello world\0XXX", 15))
      abort();
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strcpy-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,234 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __strcpy_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   chk_calls = 0;
+ #ifndef __OPTIMIZE_SIZE__
+   strcpy_disallowed = 1;
+ #else
+   strcpy_disallowed = 0;
+ #endif
+ 
+   if (strcpy (p, "abcde") != p || memcmp (p, "abcde", 6))
+     abort ();
+   if (strcpy (p + 16, "vwxyz" + 1) != p + 16 || memcmp (p + 16, "wxyz", 5))
+     abort ();
+   if (strcpy (p + 1, "") != p + 1 || memcmp (p, "a\0cde", 6))
+     abort ();  
+   if (strcpy (p + 3, "fghij") != p + 3 || memcmp (p, "a\0cfghij", 9))
+     abort ();
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   if (__builtin_strcpy (p, "abcde") != p || memcmp (p, "abcde", 6))
+     abort ();
+ 
+   strcpy_disallowed = 0;
+   if (chk_calls)
+     abort ();
+ }
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (10 * sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + 1 + MAX_EXTRA)
+ 
+ /* Use a sequence length that is not divisible by two, to make it more
+    likely to detect when words are mixed up.  */
+ #define SEQUENCE_LENGTH 31
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u1, u2;
+ 
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   int off1, off2, len, i;
+   char *p, *q, c;
+ 
+   for (off1 = 0; off1 < MAX_OFFSET; off1++)
+     for (off2 = 0; off2 < MAX_OFFSET; off2++)
+       for (len = 1; len < MAX_COPY; len++)
+ 	{
+ 	  for (i = 0, c = 'A'; i < MAX_LENGTH; i++, c++)
+ 	    {
+ 	      u1.buf[i] = 'a';
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      u2.buf[i] = c;
+ 	    }
+ 	  u2.buf[off2 + len] = '\0';
+ 
+ 	  p = strcpy (u1.buf + off1, u2.buf + off2);
+ 	  if (p != u1.buf + off1)
+ 	    abort ();
+ 
+ 	  q = u1.buf;
+ 	  for (i = 0; i < off1; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 
+ 	  for (i = 0, c = 'A' + off2; i < len; i++, q++, c++)
+ 	    {
+ 	      if (c >= 'A' + SEQUENCE_LENGTH)
+ 		c = 'A';
+ 	      if (*q != c)
+ 		abort ();
+ 	    }
+ 
+ 	  if (*q++ != '\0')
+ 	    abort ();
+ 	  for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	    if (*q != 'a')
+ 	      abort ();
+ 	}
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   const char *l;
+ 
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   chk_calls = 0;
+   strcpy (a.buf1 + 2, s3 + 3);
+   strcpy (r, s3 + 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   strcpy (r, s2 + 2);
+   strcpy (r + 2, s3 + 3);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   strcpy (r, s2 + 4);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   strcpy (a.buf1 + 2, "");
+   strcpy (r, "a");
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   strcpy (r, s1 + 1);
+   r = buf3;
+   l = "abc";
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = "e";
+       else if (i == l1)
+ 	r = &a.buf2[7], l = "gh";
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = "jkl";
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = "";
+     }
+   strcpy (r, "");
+   /* Here, strlen (l) + 1 is known to be at most 4 and
+      __builtin_object_size (&buf3[16], 0) is 4, so this doesn't need
+      runtime checking.  */
+   strcpy (&buf3[16], l);
+   /* Unknown destination and source, no checking.  */
+   strcpy (s4, s3);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strcpy (&a.buf2[9], s2 + 3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strcpy (&a.buf2[7], s3 + strlen (s3) - 3);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strcpy (&buf3[19], "a");
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+   test2 ();
+   s4 = p;
+   test3 ();
+   test4 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-2.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-2.c	Fri Apr  1 13:31:28 2005
***************
*** 5,10 ****
--- 5,11 ----
     Written by Jakub Jelinek, June 23, 2003.  */
  
  typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen (const char *);
  extern char *strcpy (char *, const char *);
  extern int memcmp (const void *, const void *, size_t);
  extern void abort (void);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c	Wed Sep 15 09:05:03 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strlen-3.c	Mon Nov 28 18:10:05 2005
***************
*** 7,15 ****
  extern void abort (void);
  extern __SIZE_TYPE__ strlen (const char *);
  extern char *strcpy (char *, const char *);
! const char bar[] = "Hello, World!";
! const char baz[] = "hello, world?";
! const char larger[20] = "short string";
  extern volatile int inside_main;
  
  int l1 = 1;
--- 7,15 ----
  extern void abort (void);
  extern __SIZE_TYPE__ strlen (const char *);
  extern char *strcpy (char *, const char *);
! static const char bar[] = "Hello, World!";
! static const char baz[] = "hello, world?";
! static const char larger[20] = "short string";
  extern volatile int inside_main;
  
  int l1 = 1;
*************** int x = 6;
*** 18,25 ****
--- 18,27 ----
  void
  main_test(void)
  {
+ #ifdef __OPTIMIZE__
    const char *foo;
    int i;
+ #endif
  
    if (strlen (bar) != 13)
      abort ();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncat-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,229 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __strncat_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen (const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcat (char *, const char *);
+ extern char *strncat (char *, const char *, size_t);
+ extern int memcmp (const void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int strcmp (const char *, const char *);
+ extern void *memset (void *, int, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ char *s5;
+ int x = 123;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   const char *const s1 = "hello world";
+   const char *const s2 = "";
+   const char *s3;
+   char dst[64], *d2;
+ 
+   /* Following strncat calls should be all optimized out.  */
+   chk_calls = 0;
+   strncat_disallowed = 1;
+   strcat_disallowed = 1;
+   strcpy (dst, s1);
+   if (strncat (dst, "", 100) != dst || strcmp (dst, s1))
+     abort ();
+   strcpy (dst, s1);
+   if (strncat (dst, s2, 100) != dst || strcmp (dst, s1))
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (strncat (++d2, s2, 100) != dst+1 || d2 != dst+1 || strcmp (dst, s1))
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (strncat (++d2+5, s2, 100) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (strncat (++d2+5, s1+11, 100) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (strncat (++d2+5, s1, 0) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
+     abort ();
+   strcpy (dst, s1); d2 = dst; s3 = s1;
+   if (strncat (++d2+5, ++s3, 0) != dst+6 || d2 != dst+1 || strcmp (dst, s1)
+       || s3 != s1 + 1)
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (strncat (++d2+5, "", ++x) != dst+6 || d2 != dst+1 || x != 124
+       || strcmp (dst, s1))
+     abort ();
+   if (chk_calls)
+     abort ();
+   strcat_disallowed = 0;
+ 
+   /* These __strncat_chk calls should be optimized into __strcat_chk,
+      as strlen (src) <= len.  */
+   strcpy (dst, s1);
+   if (strncat (dst, "foo", 3) != dst || strcmp (dst, "hello worldfoo"))
+     abort ();
+   strcpy (dst, s1);
+   if (strncat (dst, "foo", 100) != dst || strcmp (dst, "hello worldfoo"))
+     abort ();
+   strcpy (dst, s1);
+   if (strncat (dst, s1, 100) != dst || strcmp (dst, "hello worldhello world"))
+     abort ();
+   if (chk_calls != 3)
+     abort ();
+ 
+   chk_calls = 0;
+   /* The following calls have side-effects in dest, so are not checked.  */
+   strcpy (dst, s1); d2 = dst;
+   if (__builtin___strncat_chk (++d2, s1, 100, os (++d2)) != dst+1
+       || d2 != dst+1 || strcmp (dst, "hello worldhello world"))
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (__builtin___strncat_chk (++d2+5, s1, 100, os (++d2+5)) != dst+6
+       || d2 != dst+1 || strcmp (dst, "hello worldhello world"))
+     abort ();
+   strcpy (dst, s1); d2 = dst;
+   if (__builtin___strncat_chk (++d2+5, s1+5, 100, os (++d2+5)) != dst+6
+       || d2 != dst+1 || strcmp (dst, "hello world world"))
+     abort ();
+   if (chk_calls)
+     abort ();
+ 
+   chk_calls = 0;
+   strcat_disallowed = 1;
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   strcpy (dst, s1);
+   if (__builtin_strncat (dst, "", 100) != dst || strcmp (dst, s1))
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+   strncat_disallowed = 0;
+   strcat_disallowed = 0;
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+ 
+   /* The following calls should do runtime checking.  */
+   memset (&a, '\0', sizeof (a));
+   s5 = (char *) &a;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   chk_calls = 0;
+   strncat (a.buf1 + 2, s3 + 3, l1 - 1);
+   strncat (r, s3 + 2, l1);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memset (r, '\0', 3);
+   __asm __volatile ("" : : "r" (r) : "memory");
+   strncat (r, s2 + 2, l1 + 1);
+   strncat (r + 2, s3 + 3, l1 - 1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   strncat (r, s2 + 4, l1);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      but we don't know the length of dest string, so runtime checking
+      is needed too.  */
+   memset (&a, '\0', sizeof (a));
+   chk_calls = 0;
+   s5 = (char *) &a;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   strncat (a.buf1 + 2, "a", 5);
+   strncat (r, "def", 0);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   memset (r, '\0', 3);
+   __asm __volatile ("" : : "r" (r) : "memory");
+   strncat (r, s1 + 1, 2);
+   if (chk_calls != 2)
+     abort ();
+   chk_calls = 0;
+   strcat_disallowed = 1;
+   /* Unknown destination and source, no checking.  */
+   strncat (s4, s3, l1 + 1);
+   strcat_disallowed = 0;
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   memset (&a, '\0', sizeof (a));
+   memset (buf3, '\0', sizeof (buf3));
+   s5 = (char *) &a;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   s5 = buf3;
+   __asm __volatile ("" : : "r" (s5) : "memory");
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncat (&a.buf2[9], s2 + 3, 4);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncat (&a.buf2[7], s3 + strlen (s3) - 3, 3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncat (&buf3[19], "abcde", 1);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = p;
+   test1 ();
+   memset (p, '\0', sizeof (p));
+   test2 ();
+   test3 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncat.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncat.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncat.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncat.c	Fri Apr  1 13:48:19 2005
*************** extern void abort (void);
*** 9,17 ****
  typedef __SIZE_TYPE__ size_t;
  extern char *strncat (char *, const char *, size_t);
  extern char *strcpy (char *, const char *);
! extern int strcmp (const char *, const char *);
  int x = 123;
  
  void
  main_test (void)
  {
--- 9,22 ----
  typedef __SIZE_TYPE__ size_t;
  extern char *strncat (char *, const char *, size_t);
  extern char *strcpy (char *, const char *);
! extern void *memset (void *, int, size_t);
! extern int memcmp (const void *, const void *, size_t);
  int x = 123;
  
+ /* Reset the destination buffer to a known state. */
+ #define RESET_DST_WITH(FILLER) \
+   do { memset (dst, 'X', sizeof (dst)); strcpy (dst, (FILLER)); } while (0)
+ 
  void
  main_test (void)
  {
*************** main_test (void)
*** 19,72 ****
    const char *const s2 = "";
    char dst[64], *d2;
    
!   strcpy (dst, s1);
!   if (strncat (dst, "", 100) != dst || strcmp (dst, s1))
      abort();
!   strcpy (dst, s1);
!   if (strncat (dst, s2, 100) != dst || strcmp (dst, s1))
      abort();
!   strcpy (dst, s1); d2 = dst;
!   if (strncat (++d2, s2, 100) != dst+1 || d2 != dst+1 || strcmp (dst, s1))
      abort();
!   strcpy (dst, s1); d2 = dst;
!   if (strncat (++d2+5, s2, 100) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
      abort();
!   strcpy (dst, s1); d2 = dst;
!   if (strncat (++d2+5, s1+11, 100) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
      abort();
!   strcpy (dst, s1); d2 = dst;
!   if (strncat (++d2+5, s1, 0) != dst+6 || d2 != dst+1 || strcmp (dst, s1))
      abort();
!   strcpy (dst, s1); d2 = dst;
    if (strncat (++d2+5, "", ++x) != dst+6 || d2 != dst+1 || x != 124
!       || strcmp (dst, s1))
      abort();
  
!   strcpy (dst, s1);
!   if (strncat (dst, "foo", 3) != dst || strcmp (dst, "hello worldfoo"))
      abort();
!   strcpy (dst, s1);
!   if (strncat (dst, "foo", 100) != dst || strcmp (dst, "hello worldfoo"))
      abort();
!   strcpy (dst, s1);
!   if (strncat (dst, s1, 100) != dst || strcmp (dst, "hello worldhello world"))
      abort();
!   strcpy (dst, s1); d2 = dst;
    if (strncat (++d2, s1, 100) != dst+1 || d2 != dst+1
!       || strcmp (dst, "hello worldhello world"))
      abort();
!   strcpy (dst, s1); d2 = dst;
    if (strncat (++d2+5, s1, 100) != dst+6 || d2 != dst+1
!       || strcmp (dst, "hello worldhello world"))
      abort();
!   strcpy (dst, s1); d2 = dst;
    if (strncat (++d2+5, s1+5, 100) != dst+6 || d2 != dst+1
!       || strcmp (dst, "hello world world"))
      abort();
  
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
!   strcpy (dst, s1);
!   if (__builtin_strncat (dst, "", 100) != dst || strcmp (dst, s1))
      abort();
  }
--- 24,82 ----
    const char *const s2 = "";
    char dst[64], *d2;
    
!   RESET_DST_WITH (s1);
!   if (strncat (dst, "", 100) != dst || memcmp (dst, "hello world\0XXX", 15))
      abort();
!   RESET_DST_WITH (s1);
!   if (strncat (dst, s2, 100) != dst || memcmp (dst, "hello world\0XXX", 15))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
!   if (strncat (++d2, s2, 100) != dst+1 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
!   if (strncat (++d2+5, s2, 100) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
!   if (strncat (++d2+5, s1+11, 100) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
!   if (strncat (++d2+5, s1, 0) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
    if (strncat (++d2+5, "", ++x) != dst+6 || d2 != dst+1 || x != 124
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
  
!   RESET_DST_WITH (s1);
!   if (strncat (dst, "foo", 3) != dst || memcmp (dst, "hello worldfoo\0XXX", 18))
      abort();
!   RESET_DST_WITH (s1);
!   if (strncat (dst, "foo", 100) != dst || memcmp (dst, "hello worldfoo\0XXX", 18))
      abort();
!   RESET_DST_WITH (s1);
!   if (strncat (dst, s1, 100) != dst || memcmp (dst, "hello worldhello world\0XXX", 26))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
    if (strncat (++d2, s1, 100) != dst+1 || d2 != dst+1
!       || memcmp (dst, "hello worldhello world\0XXX", 26))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
    if (strncat (++d2+5, s1, 100) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello worldhello world\0XXX", 26))
      abort();
!   RESET_DST_WITH (s1); d2 = dst;
    if (strncat (++d2+5, s1+5, 100) != dst+6 || d2 != dst+1
!       || memcmp (dst, "hello world world\0XXX", 21))
      abort();
  
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
!   RESET_DST_WITH (s1);
!   if (__builtin_strncat (dst, "", 100) != dst
!       || memcmp (dst, "hello world\0XXX", 15))
      abort();
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp-2.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp-2.c	Fri Apr  1 13:45:36 2005
***************
*** 1,4 ****
! /* Copyright (C) 2000, 2001, 2003  Free Software Foundation.
  
     Ensure all expected transformations of builtin strncmp occur and
     perform correctly.
--- 1,4 ----
! /* Copyright (C) 2000, 2001, 2003, 2005  Free Software Foundation.
  
     Ensure all expected transformations of builtin strncmp occur and
     perform correctly.
*************** extern int strncmp (const char *, const 
*** 12,24 ****
  void
  main_test (void)
  {
    const char *const s1 = "hello world";
!   const char *s2, *s3;
    int n = 6, x;
    
- #if !defined(__OPTIMIZE__) || (defined(__i386__) && !defined(__OPTIMIZE_SIZE__))
-   /* These tests work on platforms which support cmpstrsi.  We test it
-      at -O0 on all platforms to ensure the strncmp logic is correct.  */
    s2 = s1;
    if (strncmp (++s2, "ello", 3) != 0 || s2 != s1+1)
      abort();
--- 12,24 ----
  void
  main_test (void)
  {
+ #if !defined(__OPTIMIZE__) || ((defined(__i386__) || defined (__x86_64__)) && !defined(__OPTIMIZE_SIZE__))
+   /* These tests work on platforms which support cmpstrsi.  We test it
+      at -O0 on all platforms to ensure the strncmp logic is correct.  */
    const char *const s1 = "hello world";
!   const char *s2;
    int n = 6, x;
    
    s2 = s1;
    if (strncmp (++s2, "ello", 3) != 0 || s2 != s1+1)
      abort();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncmp.c	Fri Apr  1 13:33:11 2005
*************** main_test (void)
*** 14,20 ****
  {
    const char *const s1 = "hello world";
    const char *s2, *s3;
-   int n = 6, x;
    
    if (strncmp (s1, "hello world", 12) != 0)
      abort();
--- 14,19 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,227 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __strncpy_chk performs correctly.  */
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strncpy (char *, const char *, size_t);
+ extern int memcmp (const void *, const void *, size_t);
+ extern int strcmp (const char *, const char *);
+ extern int strncmp (const char *, const char *, size_t);
+ extern void *memset (void *, int, size_t);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ int i;
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   const char *const src = "hello world";
+   const char *src2;
+   char dst[64], *dst2;
+ 
+   strncpy_disallowed = 1;
+   chk_calls = 0;
+ 
+   memset (dst, 0, sizeof (dst));
+   if (strncpy (dst, src, 4) != dst || strncmp (dst, src, 4))
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   if (strncpy (dst+16, src, 4) != dst+16 || strncmp (dst+16, src, 4))
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   if (strncpy (dst+32, src+5, 4) != dst+32 || strncmp (dst+32, src+5, 4))
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   dst2 = dst;
+   if (strncpy (++dst2, src+5, 4) != dst+1 || strncmp (dst2, src+5, 4)
+       || dst2 != dst+1)
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   if (strncpy (dst, src, 0) != dst || strcmp (dst, ""))
+     abort();
+   
+   memset (dst, 0, sizeof (dst));
+   dst2 = dst; src2 = src;
+   if (strncpy (++dst2, ++src2, 0) != dst+1 || strcmp (dst2, "")
+       || dst2 != dst+1 || src2 != src+1)
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   dst2 = dst; src2 = src;
+   if (strncpy (++dst2+5, ++src2+5, 0) != dst+6 || strcmp (dst2+5, "")
+       || dst2 != dst+1 || src2 != src+1)
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   if (strncpy (dst, src, 12) != dst || strcmp (dst, src))
+     abort();
+ 
+   /* Test at least one instance of the __builtin_ style.  We do this
+      to ensure that it works and that the prototype is correct.  */
+   memset (dst, 0, sizeof (dst));
+   if (__builtin_strncpy (dst, src, 4) != dst || strncmp (dst, src, 4))
+     abort();
+ 
+   memset (dst, 0, sizeof (dst));
+   if (strncpy (dst, i++ ? "xfoo" + 1 : "bar", 4) != dst
+       || strcmp (dst, "bar")
+       || i != 1)
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+   strncpy_disallowed = 0;
+ }
+ 
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   chk_calls = 0;
+   /* No runtime checking should be done here, both destination
+      and length are unknown.  */
+   strncpy (s4, "abcd", l1 + 1);
+   if (chk_calls)
+     abort ();
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int i;
+   const char *l;
+   size_t l2;
+ 
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   chk_calls = 0;
+   strncpy (a.buf1 + 2, s3 + 3, l1);
+   strncpy (r, s3 + 2, l1 + 2);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   strncpy (r, s2 + 2, l1 + 2);
+   strncpy (r + 2, s3 + 3, l1);
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   strncpy (r, s2 + 4, l1);
+   if (chk_calls != 5)
+     abort ();
+ 
+   /* Following have known destination and known length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   strncpy (a.buf1 + 2, "", 3);
+   strncpy (a.buf1 + 2, "", 0);
+   strncpy (r, "a", 1);
+   strncpy (r, "a", 3);
+   r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+   strncpy (r, s1 + 1, 3);
+   strncpy (r, s1 + 1, 2);
+   r = buf3;
+   l = "abc";
+   l2 = 4;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1], l = "e", l2 = 2;
+       else if (i == l1)
+ 	r = &a.buf2[7], l = "gh", l2 = 3;
+       else if (i == l1 + 1)
+ 	r = &buf3[5], l = "jkl", l2 = 4;
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9], l = "", l2 = 1;
+     }
+   strncpy (r, "", 1);
+   /* Here, strlen (l) + 1 is known to be at most 4 and
+      __builtin_object_size (&buf3[16], 0) is 4, so this doesn't need
+      runtime checking.  */
+   strncpy (&buf3[16], l, l2);
+   strncpy (&buf3[15], "abc", l2);
+   strncpy (&buf3[10], "fghij", l2);
+   if (chk_calls)
+     abort ();
+   chk_calls = 0;
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test4 (void)
+ {
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncpy (&a.buf2[9], s2 + 4, l1 + 1);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncpy (&a.buf2[7], s3, l1 + 4);
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncpy (&buf3[19], "abc", 2);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       strncpy (&buf3[18], "", 3);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 ();
+   s4 = p;
+   test2 ();
+   test3 ();
+   test4 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strncpy.c	Fri Apr  1 13:48:19 2005
***************
*** 1,4 ****
! /* Copyright (C) 2000  Free Software Foundation.
  
     Ensure all expected transformations of builtin strncpy occur and
     perform correctly.
--- 1,4 ----
! /* Copyright (C) 2000, 2005  Free Software Foundation.
  
     Ensure all expected transformations of builtin strncpy occur and
     perform correctly.
***************
*** 8,17 ****
  extern void abort (void);
  typedef __SIZE_TYPE__ size_t;
  extern char *strncpy (char *, const char *, size_t);
! extern int strcmp (const char *, const char *);
! extern int strncmp (const char *, const char *, size_t);
  extern void *memset (void *, int, size_t);
  
  int i;
  
  void
--- 8,19 ----
  extern void abort (void);
  typedef __SIZE_TYPE__ size_t;
  extern char *strncpy (char *, const char *, size_t);
! extern int memcmp (const void *, const void *, size_t);
  extern void *memset (void *, int, size_t);
  
+ /* Reset the destination buffer to a known state. */
+ #define RESET_DST memset(dst, 'X', sizeof(dst))
+ 
  int i;
  
  void
*************** main_test (void)
*** 21,75 ****
    const char *src2;
    char dst[64], *dst2;
    
!   memset (dst, 0, sizeof (dst));
!   if (strncpy (dst, src, 4) != dst || strncmp (dst, src, 4))
      abort();
  
!   memset (dst, 0, sizeof (dst));
!   if (strncpy (dst+16, src, 4) != dst+16 || strncmp (dst+16, src, 4))
      abort();
  
!   memset (dst, 0, sizeof (dst));
!   if (strncpy (dst+32, src+5, 4) != dst+32 || strncmp (dst+32, src+5, 4))
      abort();
  
!   memset (dst, 0, sizeof (dst));
    dst2 = dst;
!   if (strncpy (++dst2, src+5, 4) != dst+1 || strncmp (dst2, src+5, 4)
        || dst2 != dst+1)
      abort();
  
!   memset (dst, 0, sizeof (dst));
!   if (strncpy (dst, src, 0) != dst || strcmp (dst, ""))
      abort();
    
!   memset (dst, 0, sizeof (dst));
    dst2 = dst; src2 = src;
!   if (strncpy (++dst2, ++src2, 0) != dst+1 || strcmp (dst2, "")
        || dst2 != dst+1 || src2 != src+1)
      abort();
  
!   memset (dst, 0, sizeof (dst));
    dst2 = dst; src2 = src;
!   if (strncpy (++dst2+5, ++src2+5, 0) != dst+6 || strcmp (dst2+5, "")
        || dst2 != dst+1 || src2 != src+1)
      abort();
  
!   memset (dst, 0, sizeof (dst));
!   if (strncpy (dst, src, 12) != dst || strcmp (dst, src))
      abort();
  
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
!   memset (dst, 0, sizeof (dst));
!   if (__builtin_strncpy (dst, src, 4) != dst || strncmp (dst, src, 4))
      abort();
  
!   memset (dst, 0, sizeof (dst));
    if (strncpy (dst, i++ ? "xfoo" + 1 : "bar", 4) != dst
!       || strcmp (dst, "bar")
        || i != 1)
      abort ();
- 
-   return 0;
  }
--- 23,75 ----
    const char *src2;
    char dst[64], *dst2;
    
!   RESET_DST;
!   if (strncpy (dst, src, 4) != dst || memcmp (dst, "hellXXX", 7))
      abort();
  
!   RESET_DST;
!   if (strncpy (dst+16, src, 4) != dst+16 || memcmp (dst+16, "hellXXX", 7))
      abort();
  
!   RESET_DST;
!   if (strncpy (dst+32, src+5, 4) != dst+32 || memcmp (dst+32, " worXXX", 7))
      abort();
  
!   RESET_DST;
    dst2 = dst;
!   if (strncpy (++dst2, src+5, 4) != dst+1 || memcmp (dst2, " worXXX", 7)
        || dst2 != dst+1)
      abort();
  
!   RESET_DST;
!   if (strncpy (dst, src, 0) != dst || memcmp (dst, "XXX", 3))
      abort();
    
!   RESET_DST;
    dst2 = dst; src2 = src;
!   if (strncpy (++dst2, ++src2, 0) != dst+1 || memcmp (dst2, "XXX", 3)
        || dst2 != dst+1 || src2 != src+1)
      abort();
  
!   RESET_DST;
    dst2 = dst; src2 = src;
!   if (strncpy (++dst2+5, ++src2+5, 0) != dst+6 || memcmp (dst2+5, "XXX", 3)
        || dst2 != dst+1 || src2 != src+1)
      abort();
  
!   RESET_DST;
!   if (strncpy (dst, src, 12) != dst || memcmp (dst, "hello world\0XXX", 15))
      abort();
  
    /* Test at least one instance of the __builtin_ style.  We do this
       to ensure that it works and that the prototype is correct.  */
!   RESET_DST;
!   if (__builtin_strncpy (dst, src, 4) != dst || memcmp (dst, "hellXXX", 7))
      abort();
  
!   RESET_DST;
    if (strncpy (dst, i++ ? "xfoo" + 1 : "bar", 4) != dst
!       || memcmp (dst, "bar\0XXX", 7)
        || i != 1)
      abort ();
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm-lib.c	Sat Jul  3 02:16:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/strstr-asm-lib.c	Fri Apr  1 13:31:28 2005
***************
*** 1,10 ****
  extern int inside_main;
  extern const char *p;
  
  char *
  my_strstr (const char *s1, const char *s2)
  {
!   __SIZE_TYPE__ len = strlen (s2);
  
  #ifdef __OPTIMIZE__
    /* If optimizing, we should be called only in the strstr (foo + 2, p)
--- 1,16 ----
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern char *strchr(const char *, int);
+ extern int strcmp(const char *, const char *);
+ extern int strncmp(const char *, const char *, size_t);
  extern int inside_main;
  extern const char *p;
  
  char *
  my_strstr (const char *s1, const char *s2)
  {
!   const size_t len = strlen (s2);
  
  #ifdef __OPTIMIZE__
    /* If optimizing, we should be called only in the strstr (foo + 2, p)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsnprintf-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,321 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __vsnprintf_chk performs correctly.  */
+ 
+ #include <stdarg.h>
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern int vsnprintf (char *, size_t, const char *, va_list);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ static char buffer[32];
+ char *ptr = "barf";
+ 
+ int
+ __attribute__((noinline))
+ test1_sub (int i, ...)
+ {
+   int ret = 0;
+   va_list ap;
+   va_start (ap, i);
+   switch (i)
+     {
+     case 0:
+       vsnprintf (buffer, 4, "foo", ap);
+       break;
+     case 1:
+       ret = vsnprintf (buffer, 4, "foo bar", ap);
+       break;
+     case 2:
+       vsnprintf (buffer, 32, "%s", ap);
+       break;
+     case 3:
+       ret = vsnprintf (buffer, 21, "%s", ap);
+       break;
+     case 4:
+       ret = vsnprintf (buffer, 4, "%d%d%d", ap);
+       break;
+     case 5:
+       ret = vsnprintf (buffer, 32, "%d%d%d", ap);
+       break;
+     case 6:
+       ret = vsnprintf (buffer, strlen (ptr) + 1, "%s", ap);
+       break;
+     case 7:
+       vsnprintf (buffer, l1 + 31, "%d - %c", ap);
+       break;
+     case 8:
+       vsnprintf (s4, l1 + 6, "%d - %c", ap);
+       break;
+     }
+   va_end (ap);
+   return ret;
+ }
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   chk_calls = 0;
+   /* vsnprintf_disallowed = 1; */
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (0);
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (test1_sub (1) != 7)
+     abort ();
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   vsnprintf_disallowed = 0;
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (2, "bar");
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (test1_sub (3, "bar") != 3)
+     abort ();
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (test1_sub (4, (int) l1, (int) l1 + 1, (int) l1 + 12) != 4)
+     abort ();
+   if (memcmp (buffer, "121", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (test1_sub (5, (int) l1, (int) l1 + 1, (int) l1 + 12) != 4)
+     abort ();
+   if (memcmp (buffer, "1213", 5) || buffer[5] != 'A')
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (6, ptr);
+   if (memcmp (buffer, "barf", 5) || buffer[5] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (7, (int) l1 + 27, *ptr);
+   if (memcmp (buffer, "28 - b\0AAAAA", 12))
+     abort ();
+ 
+   if (chk_calls != 2)
+     abort ();
+   chk_calls = 0;
+ 
+   memset (s4, 'A', 32);
+   test1_sub (8, (int) l1 - 17, ptr[1]);
+   if (memcmp (s4, "-16 - \0AAA", 10))
+     abort ();
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test2_sub (int i, ...)
+ {
+   va_list ap;
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int j;
+ 
+   va_start (ap, i);
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   switch (i)
+     {
+     case 0:
+       vsnprintf (a.buf1 + 2, l1, "%s", ap);
+       break;
+     case 1:
+       vsnprintf (r, l1 + 4, "%s%c", ap);
+       break;
+     case 2:
+       r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+       vsnprintf (r, strlen (s2) - 2, "%c %s", ap);
+       break;
+     case 3:
+       r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+       vsnprintf (r + 2, l1, s3 + 3, ap);
+       break;
+     case 4:
+     case 7:
+       r = buf3;
+       for (j = 0; j < 4; ++j)
+ 	{
+ 	  if (j == l1 - 1)
+ 	    r = &a.buf1[1];
+ 	  else if (j == l1)
+ 	    r = &a.buf2[7];
+ 	  else if (j == l1 + 1)
+ 	    r = &buf3[5];
+ 	  else if (j == l1 + 2)
+ 	    r = &a.buf1[9];
+ 	}
+       if (i == 4)
+ 	vsnprintf (r, l1, s2 + 4, ap);
+       else
+ 	vsnprintf (r, 1, "a", ap);
+       break;
+     case 5:
+       r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+       vsnprintf (r, l1 + 3, "%s", ap);
+       break;
+     case 6:
+       vsnprintf (a.buf1 + 2, 4, "", ap);
+       break;
+     case 8:
+       vsnprintf (s4, 3, "%s %d", ap);
+       break;
+     }
+   va_end (ap);
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   /* The following calls should do runtime checking
+      - length is not known, but destination is.  */
+   chk_calls = 0;
+   test2_sub (0, s3 + 3);
+   test2_sub (1, s3 + 3, s3[3]);
+   test2_sub (2, s2[2], s2 + 4);
+   test2_sub (3);
+   test2_sub (4);
+   test2_sub (5, s1 + 1);
+   if (chk_calls != 6)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   /* vsnprintf_disallowed = 1; */
+   test2_sub (6);
+   test2_sub (7);
+   vsnprintf_disallowed = 0;
+   /* Unknown destination and source, no checking.  */
+   test2_sub (8, s3, 0);
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test3_sub (int i, ...)
+ {
+   va_list ap;
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   va_start (ap, i);
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   switch (i)
+     {
+     case 0:
+       vsnprintf (&a.buf2[9], l1 + 1, "%c%s", ap);
+       break;
+     case 1:
+       vsnprintf (&a.buf2[7], l1 + 30, "%s%c", ap);
+       break;
+     case 2:
+       vsnprintf (&a.buf2[7], l1 + 3, "%d", ap);
+       break;
+     case 3:
+       vsnprintf (&buf3[17], l1 + 3, "%s", ap);
+       break;
+     case 4:
+       vsnprintf (&buf3[19], 2, "a", ap);
+       break;
+     case 5:
+       vsnprintf (&buf3[16], 5, "a", ap);
+       break;
+     }
+   va_end (ap);
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (0, s2[3], s2 + 4);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (1, s3 + strlen (s3) - 2, *s3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (2, (int) l1 + 9999);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (3, "abc");
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (4);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (5);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = p;
+   test1 ();
+   test2 ();
+   test3 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk-lib.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk-lib.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk-lib.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk-lib.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1 ----
+ #include "lib/chk.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/builtins/vsprintf-chk.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,290 ----
+ /* Copyright (C) 2004, 2005  Free Software Foundation.
+ 
+    Ensure builtin __vsprintf_chk performs correctly.  */
+ 
+ #include <stdarg.h>
+ 
+ extern void abort (void);
+ typedef __SIZE_TYPE__ size_t;
+ extern size_t strlen(const char *);
+ extern void *memcpy (void *, const void *, size_t);
+ extern char *strcpy (char *, const char *);
+ extern int memcmp (const void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern int vsprintf (char *, const char *, va_list);
+ 
+ #include "chk.h"
+ 
+ const char s1[] = "123";
+ char p[32] = "";
+ char *s2 = "defg";
+ char *s3 = "FGH";
+ char *s4;
+ size_t l1 = 1;
+ static char buffer[32];
+ char *ptr = "barf";
+ 
+ int
+ __attribute__((noinline))
+ test1_sub (int i, ...)
+ {
+   int ret = 0;
+   va_list ap;
+   va_start (ap, i);
+   switch (i)
+     {
+     case 0:
+       vsprintf (buffer, "foo", ap);
+       break;
+     case 1:
+       ret = vsprintf (buffer, "foo", ap);
+       break;
+     case 2:
+       vsprintf (buffer, "%s", ap);
+       break;
+     case 3:
+       ret = vsprintf (buffer, "%s", ap);
+       break;
+     case 4:
+       vsprintf (buffer, "%d - %c", ap);
+       break;
+     case 5:
+       vsprintf (s4, "%d - %c", ap);
+       break;
+     }
+   va_end (ap);
+   return ret;
+ }
+ 
+ void
+ __attribute__((noinline))
+ test1 (void)
+ {
+   chk_calls = 0;
+   vsprintf_disallowed = 1;
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (0);
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (test1_sub (1) != 3)
+     abort ();
+   if (memcmp (buffer, "foo", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   if (chk_calls)
+     abort ();
+   vsprintf_disallowed = 0;
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (2, "bar");
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   if (test1_sub (3, "bar") != 3)
+     abort ();
+   if (memcmp (buffer, "bar", 4) || buffer[4] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (2, ptr);
+   if (memcmp (buffer, "barf", 5) || buffer[5] != 'A')
+     abort ();
+ 
+   memset (buffer, 'A', 32);
+   test1_sub (4, (int) l1 + 27, *ptr);
+   if (memcmp (buffer, "28 - b\0AAAAA", 12))
+     abort ();
+ 
+   if (chk_calls != 4)
+     abort ();
+   chk_calls = 0;
+ 
+   test1_sub (5, (int) l1 - 17, ptr[1]);
+   if (memcmp (s4, "-16 - a", 8))
+     abort ();
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test2_sub (int i, ...)
+ {
+   va_list ap;
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char *r = l1 == 1 ? &a.buf1[5] : &a.buf2[4];
+   char buf3[20];
+   int j;
+ 
+   va_start (ap, i);
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   switch (i)
+     {
+     case 0:
+       vsprintf (a.buf1 + 2, "%s", ap);
+       break;
+     case 1:
+       vsprintf (r, "%s%c", ap);
+       break;
+     case 2:
+       r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+       vsprintf (r, "%c %s", ap);
+       break;
+     case 3:
+       r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+       vsprintf (r + 2, s3 + 3, ap);
+       break;
+     case 4:
+     case 7:
+       r = buf3;
+       for (j = 0; j < 4; ++j)
+ 	{
+ 	  if (j == l1 - 1)
+ 	    r = &a.buf1[1];
+ 	  else if (j == l1)
+ 	    r = &a.buf2[7];
+ 	  else if (j == l1 + 1)
+ 	    r = &buf3[5];
+ 	  else if (j == l1 + 2)
+ 	    r = &a.buf1[9];
+ 	}
+       if (i == 4)
+ 	vsprintf (r, s2 + 4, ap);
+       else
+ 	vsprintf (r, "a", ap);
+       break;
+     case 5:
+       r = l1 == 1 ? __builtin_alloca (4) : &a.buf2[7];
+       vsprintf (r, "%s", ap);
+       break;
+     case 6:
+       vsprintf (a.buf1 + 2, "", ap);
+       break;
+     case 8:
+       vsprintf (s4, "%s %d", ap);
+       break;
+     }
+   va_end (ap);
+ }
+ 
+ /* Test whether compile time checking is done where it should
+    and so is runtime object size checking.  */
+ void
+ __attribute__((noinline))
+ test2 (void)
+ {
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   chk_calls = 0;
+   test2_sub (0, s3 + 3);
+   test2_sub (1, s3 + 3, s3[3]);
+   test2_sub (2, s2[2], s2 + 4);
+   test2_sub (3);
+   test2_sub (4);
+   test2_sub (5, s1 + 1);
+   if (chk_calls != 6)
+     abort ();
+ 
+   /* Following have known destination and known source length,
+      so if optimizing certainly shouldn't result in the checking
+      variants.  */
+   chk_calls = 0;
+   vsprintf_disallowed = 1;
+   test2_sub (6);
+   test2_sub (7);
+   vsprintf_disallowed = 0;
+   /* Unknown destination and source, no checking.  */
+   test2_sub (8, s3, 0);
+   if (chk_calls)
+     abort ();
+ }
+ 
+ void
+ __attribute__((noinline))
+ test3_sub (int i, ...)
+ {
+   va_list ap;
+   struct A { char buf1[10]; char buf2[10]; } a;
+   char buf3[20];
+ 
+   va_start (ap, i);
+   /* The following calls should do runtime checking
+      - source length is not known, but destination is.  */
+   switch (i)
+     {
+     case 0:
+       vsprintf (&a.buf2[9], "%c%s", ap);
+       break;
+     case 1:
+       vsprintf (&a.buf2[7], "%s%c", ap);
+       break;
+     case 2:
+       vsprintf (&a.buf2[7], "%d", ap);
+       break;
+     case 3:
+       vsprintf (&buf3[17], "%s", ap);
+       break;
+     case 4:
+       vsprintf (&buf3[19], "a", ap);
+       break;
+     }
+   va_end (ap);
+ }
+ 
+ /* Test whether runtime and/or compile time checking catches
+    buffer overflows.  */
+ void
+ __attribute__((noinline))
+ test3 (void)
+ {
+   chk_fail_allowed = 1;
+   /* Runtime checks.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (0, s2[3], s2 + 4);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (1, s3 + strlen (s3) - 2, *s3);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (2, (int) l1 + 9999);
+       abort ();
+     }
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (3, "abc");
+       abort ();
+     }
+   /* This should be detectable at compile time already.  */
+   if (__builtin_setjmp (chk_fail_buf) == 0)
+     {
+       test3_sub (4);
+       abort ();
+     }
+   chk_fail_allowed = 0;
+ }
+ 
+ void
+ main_test (void)
+ {
+ #ifndef __OPTIMIZE__
+   /* Object size checking is only intended for -O[s123].  */
+   return;
+ #endif
+   __asm ("" : "=r" (s2) : "0" (s2));
+   __asm ("" : "=r" (s3) : "0" (s3));
+   __asm ("" : "=r" (l1) : "0" (l1));
+   s4 = p;
+   test1 ();
+   test2 ();
+   test3 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/const-addr-expr-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/const-addr-expr-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/const-addr-expr-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/const-addr-expr-1.c	Wed Aug 31 15:55:52 2005
***************
*** 0 ****
--- 1,33 ----
+ #include        <stdio.h>
+ #include        <stdlib.h>
+ extern void abort();
+ 
+ typedef struct foo
+ {
+         int     uaattrid;
+         char    *name;
+ } FOO;
+ 
+ FOO     Upgrade_items[] =
+ {
+         {1, "1"},
+         {2, "2"},
+         {0, NULL}
+ };
+ 
+ int     *Upgd_minor_ID = 
+         (int *) &((Upgrade_items + 1)->uaattrid);
+ 
+ int     *Upgd_minor_ID1 = 
+         (int *) &((Upgrade_items)->uaattrid);
+ 
+ int
+ main(int argc, char **argv)
+ {
+ 	if (*Upgd_minor_ID != 2)
+ 	  abort();
+ 
+ 	if (*Upgd_minor_ID1 != 1)
+ 	  abort();
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/execute.exp gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/execute.exp
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/execute.exp	Tue Oct  9 10:16:22 2001
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/execute.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified and maintained by Jeffrey Wheat (cassidy@cygnus.com)
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified and maintained by Jeffrey Wheat (cassidy@cygnus.com)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/float-floor.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/float-floor.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/float-floor.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/float-floor.c	Wed Oct  5 17:28:50 2005
***************
*** 0 ****
--- 1,15 ----
+ double d = 1024.0 - 1.0 / 32768.0;
+ extern double floor(double);
+ extern float floorf(float);
+ extern void abort();
+ 
+ int main() {
+ 
+     double df = floor(d);
+     float f1 = (float)floor(d);
+ 
+     if ((int)df != 1023 || (int)f1 != 1023)
+       abort ();
+ 
+     return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/fprintf-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,23 ----
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int
+ main (void)
+ {
+ #define test(ret, args...) \
+   fprintf (stdout, args); 		\
+   if (fprintf (stdout, args) != ret)	\
+     abort ();
+   test (5, "hello");
+   test (6, "hello\n");
+   test (1, "a");
+   test (0, "");
+   test (5, "%s", "hello");
+   test (6, "%s", "hello\n");
+   test (1, "%s", "a");
+   test (0, "%s", "");
+   test (1, "%c", 'x');
+   test (7, "%s\n", "hello\n");
+   test (2, "%d\n", 0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/fprintf-chk-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,49 ----
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ 
+ volatile int should_optimize;
+ 
+ int
+ __attribute__((noinline))
+ __fprintf_chk (FILE *f, int flag, const char *fmt, ...)
+ {
+   va_list ap;
+   int ret;
+ #ifdef __OPTIMIZE__
+   if (should_optimize)
+     abort ();
+ #endif
+   should_optimize = 1;
+   va_start (ap, fmt);
+   ret = vfprintf (f, fmt, ap);
+   va_end (ap);
+   return ret;
+ }
+ 
+ int
+ main (void)
+ {
+ #define test(ret, opt, args...) \
+   should_optimize = opt;			\
+   __fprintf_chk (stdout, 1, args); 		\
+   if (!should_optimize)				\
+     abort ();					\
+   should_optimize = 0;				\
+   if (__fprintf_chk (stdout, 1, args) != ret)	\
+     abort ();					\
+   if (!should_optimize)				\
+     abort ();
+   test (5, 1, "hello");
+   test (6, 1, "hello\n");
+   test (1, 1, "a");
+   test (0, 1, "");
+   test (5, 1, "%s", "hello");
+   test (6, 1, "%s", "hello\n");
+   test (1, 1, "%s", "a");
+   test (0, 1, "%s", "");
+   test (1, 1, "%c", 'x');
+   test (7, 0, "%s\n", "hello\n");
+   test (2, 0, "%d\n", 0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/frame-address.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/frame-address.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/frame-address.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/frame-address.c	Fri Sep  2 22:26:59 2005
***************
*** 0 ****
--- 1,43 ----
+ int check_fa_work (const char *, const char *) __attribute__((noinline));
+ int check_fa_mid (const char *) __attribute__((noinline));
+ int check_fa (char *) __attribute__((noinline));
+ int how_much (void) __attribute__((noinline));
+ 
+ int check_fa_work (const char *c, const char *f)
+ {
+   const char d = 0;
+ 
+   if (c >= &d)
+     return c >= f && f >= &d;
+   else
+     return c <= f && f <= &d;
+ }
+ 
+ int check_fa_mid (const char *c)
+ {
+   const char *f = __builtin_frame_address (0);
+ 
+   /* Prevent a tail call to check_fa_work, eliding the current stack frame.  */
+   return check_fa_work (c, f) != 0;
+ }
+ 
+ int check_fa (char *unused)
+ {
+   const char c = 0;
+ 
+   return check_fa_mid (&c);
+ }
+ 
+ int how_much (void)
+ {
+ 	return 8;
+ }
+ 
+ int main (void)
+ {
+   char *unused = __builtin_alloca (how_much ());
+ 
+   if (!check_fa(unused))
+     abort();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp	Thu May 26 21:25:24 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/ieee/ieee.exp	Mon Aug 22 23:59:14 2005
***************
*** 14,28 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  #
  # Written by Jeffrey Wheat (cassidy@cygnus.com)
  #
  
! #
  # These tests come from Torbjorn Granlund's (tege@cygnus.com)
  # C torture test suite, and other contributors.
- #
  
  # Disable tests on machines with no hardware support for IEEE arithmetic.
  if { [istarget "vax-*-*"] || [ istarget "powerpc-*-*spe"] } { return }
--- 14,29 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  #
  # Written by Jeffrey Wheat (cassidy@cygnus.com)
  #
  
! # Load support procs.
! load_lib gcc-dg.exp
! 
  # These tests come from Torbjorn Granlund's (tege@cygnus.com)
  # C torture test suite, and other contributors.
  
  # Disable tests on machines with no hardware support for IEEE arithmetic.
  if { [istarget "vax-*-*"] || [ istarget "powerpc-*-*spe"] } { return }
*************** if $tracelevel then {
*** 31,37 ****
      strace $tracelevel
  }
  
! set additional_flags "";
  
  # We must use -ffloat-store/-mieee to ensure that excess precision on some
  # machines does not cause problems
--- 32,38 ----
      strace $tracelevel
  }
  
! set additional_flags ""
  
  # We must use -ffloat-store/-mieee to ensure that excess precision on some
  # machines does not cause problems
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr17133.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr17133.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr17133.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr17133.c	Fri Mar  4 01:38:56 2005
***************
*** 0 ****
--- 1,27 ----
+ extern void abort (void);
+ 
+ int foo = 0;
+ void *bar = 0;
+ unsigned int baz = 100;
+ 
+ void *pure_alloc ()
+ {
+   void *res;
+   
+   while (1)
+     {
+       res = (void *) ((((unsigned int) (foo + bar))) & ~1);
+       foo += 2;
+       if (foo < baz)
+         return res;
+       foo = 0;
+     }
+ }
+ 
+ int main ()
+ {
+   pure_alloc ();
+   if (!foo)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr19005.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr19005.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr19005.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr19005.c	Thu Dec  8 21:54:34 2005
***************
*** 0 ****
--- 1,38 ----
+ /* PR target/19005 */
+ extern void abort (void);
+ 
+ int v, s;
+ 
+ void
+ bar (int a, int b)
+ {
+   unsigned char x = v;
+ 
+   if (!s)
+     {
+       if (a != x || b != (unsigned char) (x + 1))
+         abort ();
+     }
+   else if (a != (unsigned char) (x + 1) || b != x)
+     abort ();
+   s ^= 1;
+ }
+ 
+ int
+ foo (int x)
+ {
+   unsigned char a = x, b = x + 1;
+ 
+   bar (a, b);
+   a ^= b; b ^= a; a ^= b;
+   bar (a, b);
+   return 0;
+ }
+ 
+ int
+ main (void)
+ {
+   for (v = -10; v < 266; v++)
+     foo (v);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr20466-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr20466-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr20466-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr20466-1.c	Fri Apr  8 23:18:32 2005
***************
*** 0 ****
--- 1,26 ----
+ int f (int **, int *, int *, int **, int **) __attribute__ ((__noinline__));
+ int
+ f (int **ipp, int *i1p, int *i2p, int **i3, int **i4)
+ {
+   **ipp = *i1p;
+   *ipp = i2p;
+   *i3 = *i4;
+   **ipp = 99;
+   return 3;
+ }
+ 
+ extern void exit (int);
+ extern void abort (void);
+ 
+ int main (void)
+ {
+   int i = 42, i1 = 66, i2 = 1, i3 = -1, i4 = 55;
+   int *ip = &i;
+   int *i3p = &i3;
+   int *i4p = &i4;
+ 
+   f (&ip, &i1, &i2, &i3p, &i4p);
+   if (i != 66 || ip != &i2 || i2 != 99 || i3 != -1 || i3p != i4p || i4 != 55)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22348.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22348.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22348.c	Thu Sep  8 10:09:03 2005
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22348.c	Wed Jul 27 14:04:17 2005
*************** void abort (void);
*** 2,14 ****
  void f(int i)
  {
    if (i>4 + 3 * 16)
!    abort();
  }
  int main()
  {
!  unsigned int buflen, i;
!  buflen = 4 + 3 * 16;
!  for (i = 4; i < buflen; i+= 3)
!    f(i);
!  return 0;
  }
--- 2,15 ----
  void f(int i)
  {
    if (i>4 + 3 * 16)
!     abort();
  }
+ 
  int main()
  {
!   unsigned int buflen, i;
!   buflen = 4 + 3 * 16;
!   for (i = 4; i < buflen; i+= 3)
!     f(i);
!   return 0;
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22429.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22429.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22429.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22429.c	Wed Nov  2 21:44:17 2005
***************
*** 0 ****
--- 1,17 ----
+ extern void abort (void);
+ 
+ #define N	(1 << (sizeof(int) * __CHAR_BIT__ - 2))
+ 
+ int f(int n)
+ {
+   if (-N <= n && n <= N-1)
+     return 1;
+   return 0;
+ }
+ 
+ int main ()
+ {
+   if (f (N))
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22493-1.c	Thu Jul 28 04:35:01 2005
***************
*** 0 ****
--- 1,18 ----
+ #include <limits.h>
+ extern void abort ();
+ extern void exit (int);
+ void f(int i)
+ {
+   if (i>0)
+     abort();
+   i = -i;
+   if (i<0)
+     return;
+   abort ();
+ }
+ 
+ int main(int argc, char *argv[])
+ {
+   f(INT_MIN);
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22493-1.x	Thu Jul 28 04:35:01 2005
***************
*** 0 ****
--- 1,2 ----
+ set additional_flags "-fwrapv"
+ return 0
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22630.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22630.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr22630.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr22630.c	Wed Jul 27 16:21:48 2005
***************
*** 0 ****
--- 1,23 ----
+ void abort (void);
+ 
+ int j;
+ 
+ void bla (int *r)
+ {
+   int *p, *q;
+ 
+   p = q = r;
+   if (!p)
+     p = &j;
+   
+   if (p != q)
+     j = 1;
+ }
+ 
+ int main (void)
+ {
+   bla (0);
+   if (!j)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23047.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23047.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23047.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23047.c	Thu Jul 28 04:40:05 2005
***************
*** 0 ****
--- 1,16 ----
+ #include <limits.h>
+ extern void abort ();
+ extern void exit (int);
+ void f(int i)
+ {
+   i = i > 0 ? i : -i;
+   if (i<0)
+     return;
+   abort ();
+ }
+ 
+ int main(int argc, char *argv[])
+ {
+   f(INT_MIN);
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23047.x gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23047.x
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23047.x	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23047.x	Thu Jul 28 04:40:05 2005
***************
*** 0 ****
--- 1,2 ----
+ set additional_flags "-fwrapv"
+ return 0
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23135.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23135.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23135.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23135.c	Wed Aug  3 18:46:34 2005
***************
*** 0 ****
--- 1,134 ----
+ /* Based on execute/simd-1.c, modifed by joern.rennecke@st.com to
+    trigger a reload bug.  Verified for gcc mainline from 20050722 13:00 UTC
+    for sh-elf -m4 -O2.  */
+ #ifndef STACK_SIZE
+ #define STACK_SIZE (256*1024)
+ #endif
+ 
+ typedef struct { char c[STACK_SIZE/2]; } big_t;
+ 
+ typedef int __attribute__((vector_size (8))) vecint;
+ typedef int __attribute__((mode(SI))) siint;
+ 
+ vecint i = { 150, 100 };
+ vecint j = { 10, 13 };
+ vecint k;
+ 
+ union {
+   vecint v;
+   siint i[2];
+ } res;
+ 
+ void
+ verify (siint a1, siint a2, siint b1, siint b2, big_t big)
+ {
+   if (a1 != b1
+       || a2 != b2)
+     abort ();
+ }
+ 
+ int
+ main ()
+ {
+   big_t big;
+   vecint k0, k1, k2, k3, k4, k5, k6, k7;
+ 
+   k0 = i + j;
+   res.v = k0;
+ 
+   verify (res.i[0], res.i[1], 160, 113, big);
+ 
+   k1 = i * j;
+   res.v = k1;
+ 
+   verify (res.i[0], res.i[1], 1500, 1300, big);
+ 
+   k2 = i / j;
+ /* This is the observed failure - reload 0 has the wrong type and thus the
+    conflict with reload 1 is missed:
+ 
+ (insn:HI 94 92 96 1 pr23135.c:46 (parallel [
+             (set (subreg:SI (reg:DI 253) 0)
+                 (div:SI (reg:SI 4 r4)
+                     (reg:SI 5 r5)))
+             (clobber (reg:SI 146 pr))
+             (clobber (reg:DF 64 fr0))
+             (clobber (reg:DF 66 fr2))
+             (use (reg:PSI 151 ))
+             (use (reg/f:SI 256))
+         ]) 60 {divsi3_i4} (insn_list:REG_DEP_TRUE 90 (insn_list:REG_DEP_TRUE 89
+ (insn_list:REG_DEP_TRUE 42 (insn_list:REG_DEP_TRUE 83 (insn_list:REG_DEP_TRUE 92
+  (insn_list:REG_DEP_TRUE 91 (nil)))))))
+     (expr_list:REG_DEAD (reg:SI 4 r4)
+         (expr_list:REG_DEAD (reg:SI 5 r5)
+             (expr_list:REG_UNUSED (reg:DF 66 fr2)
+                 (expr_list:REG_UNUSED (reg:DF 64 fr0)
+                     (expr_list:REG_UNUSED (reg:SI 146 pr)
+                         (insn_list:REG_RETVAL 91 (nil))))))))
+ 
+ Reloads for insn # 94
+ Reload 0: reload_in (SI) = (plus:SI (reg/f:SI 14 r14)
+                                                     (const_int 64 [0x40]))
+         GENERAL_REGS, RELOAD_FOR_OUTADDR_ADDRESS (opnum = 0)
+         reload_in_reg: (plus:SI (reg/f:SI 14 r14)
+                                                     (const_int 64 [0x40]))
+         reload_reg_rtx: (reg:SI 3 r3)
+ Reload 1: GENERAL_REGS, RELOAD_FOR_OUTPUT_ADDRESS (opnum = 0), can't combine, se
+ condary_reload_p
+         reload_reg_rtx: (reg:SI 3 r3)
+ Reload 2: reload_out (SI) = (mem:SI (plus:SI (plus:SI (reg/f:SI 14 r14)
+                                                             (const_int 64 [0x40]))
+                                                         (const_int 28 [0x1c])) [ 16 S8 A32])
+         FPUL_REGS, RELOAD_FOR_OUTPUT (opnum = 0)
+         reload_out_reg: (subreg:SI (reg:DI 253) 0)
+         reload_reg_rtx: (reg:SI 150 fpul)
+         secondary_out_reload = 1
+ 
+ Reload 3: reload_in (SI) = (symbol_ref:SI ("__sdivsi3_i4") [flags 0x1])
+         GENERAL_REGS, RELOAD_FOR_INPUT (opnum = 1), can't combine
+         reload_in_reg: (reg/f:SI 256)
+         reload_reg_rtx: (reg:SI 3 r3)
+   */
+ 
+ 
+   res.v = k2;
+ 
+   verify (res.i[0], res.i[1], 15, 7, big);
+ 
+   k3 = i & j;
+   res.v = k3;
+ 
+   verify (res.i[0], res.i[1], 2, 4, big);
+ 
+   k4 = i | j;
+   res.v = k4;
+ 
+   verify (res.i[0], res.i[1], 158, 109, big);
+ 
+   k5 = i ^ j;
+   res.v = k5;
+ 
+   verify (res.i[0], res.i[1], 156, 105, big);
+ 
+   k6 = -i;
+   res.v = k6;
+   verify (res.i[0], res.i[1], -150, -100, big);
+ 
+   k7 = ~i;
+   res.v = k7;
+   verify (res.i[0], res.i[1], -151, -101, big);
+ 
+   k = k0 + k1 + k3 + k4 + k5 + k6 + k7;
+   res.v = k;
+   verify (res.i[0], res.i[1], 1675, 1430, big);
+ 
+   k = k0 * k1 * k3 * k4 * k5 * k6 * k7;
+   res.v = k;
+   verify (res.i[0], res.i[1], 1456467968, -1579586240, big);
+ 
+   k = k0 / k1 / k2 / k3 / k4 / k5 / k6 / k7;
+   res.v = k;
+   verify (res.i[0], res.i[1], 0, 0, big);
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23324.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23324.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23324.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23324.c	Wed Oct 12 16:29:35 2005
***************
*** 0 ****
--- 1,133 ----
+ extern void abort (void);
+ #define A(x) if (!(x)) abort ()
+ 
+ static union at6 {} vv6 = {};
+ static struct et6
+ {
+   struct bt6
+   {
+     signed av6:6;
+     signed bv6:7;
+     signed cv6:6;
+     signed dv6:5;
+     unsigned char ev6;
+     unsigned int fv6;
+     long int gv6;
+   } mv6;
+   unsigned long int nv6;
+   signed ov6:12;
+   signed pv6:3;
+   signed qv6:2;
+   signed rv6:10;
+   union ct6 { long int hv6; float iv6; float jv6; } sv6;
+   int *tv6;
+   union dt6 { double kv6; float lv6; } uv6;
+ } wv6 = {
+   { 8, 9, 2, 4, '\x10', 67426805U, 1047191860L },
+   1366022414UL, 858, 1, 1, 305,
+   { 1069379046L }, (int *) 358273621U,
+   { 3318.041978 }
+ };
+ static double xv6 = 19239.101269;
+ static long long int yv6 = 1207859169L;
+ static int zv6 = 660195606;
+ 
+ static union at6
+ callee_af6 (struct et6 ap6, double bp6, long long int cp6, int dp6)
+ {
+   A (wv6.mv6.av6 == ap6.mv6.av6);
+   A (wv6.mv6.bv6 == ap6.mv6.bv6);
+   A (wv6.mv6.cv6 == ap6.mv6.cv6);
+   A (wv6.mv6.dv6 == ap6.mv6.dv6);
+   A (wv6.mv6.ev6 == ap6.mv6.ev6);
+   A (wv6.mv6.fv6 == ap6.mv6.fv6);
+   A (wv6.mv6.gv6 == ap6.mv6.gv6);
+   A (wv6.nv6 == ap6.nv6);
+   A (wv6.ov6 == ap6.ov6);
+   A (wv6.pv6 == ap6.pv6);
+   A (wv6.qv6 == ap6.qv6);
+   A (wv6.rv6 == ap6.rv6);
+   A (wv6.sv6.hv6 == ap6.sv6.hv6);
+   A (wv6.tv6 == ap6.tv6);
+   A (wv6.uv6.kv6 == ap6.uv6.kv6);
+   A (xv6 == bp6);
+   A (yv6 == cp6);
+   A (zv6 == dp6);
+   return vv6;
+ }
+ 
+ static void
+ caller_bf6 (void)
+ {
+   union at6 bav6;
+   bav6 = callee_af6 (wv6, xv6, yv6, zv6);
+ }
+ 
+ static unsigned char uv7 = '\x46';
+ static float vv7 = 96636.982442;
+ static double wv7 = 28450.711801;
+ static union ct7 {} xv7 = {};
+ static struct et7
+ {
+   struct dt7
+   {
+     float iv7;
+     unsigned short int jv7;
+   } kv7;
+   float lv7[0];
+   signed mv7:9;
+   short int nv7;
+   double ov7;
+   float pv7;
+ } yv7 = {
+   { 30135.996213, 42435 },
+   {}, 170, 22116, 26479.628148, 4082.960685
+ };
+ static union ft7
+ {
+   float qv7;
+   float *rv7;
+   unsigned int *sv7;
+ } zv7 = { 5042.227886 };
+ static int bav7 = 1345451862;
+ static struct gt7 { double tv7; } bbv7 = { 47875.491954 };
+ static long int bcv7[1] = { 1732133482L };
+ static long long int bdv7 = 381678602L;
+ 
+ static unsigned char
+ callee_af7 (float ap7, double bp7, union ct7 cp7, struct et7 dp7,
+             union ft7 ep7, int fp7, struct gt7 gp7, long int hp7[1],
+             long long int ip7)
+ {
+   A (vv7 == ap7);
+   A (wv7 == bp7);
+   A (yv7.kv7.iv7 == dp7.kv7.iv7);
+   A (yv7.kv7.jv7 == dp7.kv7.jv7);
+   A (yv7.mv7 == dp7.mv7);
+   A (yv7.nv7 == dp7.nv7);
+   A (yv7.ov7 == dp7.ov7);
+   A (yv7.pv7 == dp7.pv7);
+   A (zv7.qv7 == ep7.qv7);
+   A (bav7 == fp7);
+   A (bbv7.tv7 == gp7.tv7);
+   A (bcv7[0] == hp7[0]);
+   A (bdv7 == ip7);
+   return uv7;
+ }
+ 
+ static void
+ caller_bf7 (void)
+ {
+   unsigned char bev7;
+ 
+   bev7 = callee_af7 (vv7, wv7, xv7, yv7, zv7, bav7, bbv7, bcv7, bdv7);
+   A (uv7 == bev7);
+ }
+ 
+ int
+ main ()
+ {
+   caller_bf6 ();
+   caller_bf7 ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23467.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23467.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23467.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23467.c	Tue Aug 23 12:27:53 2005
***************
*** 0 ****
--- 1,18 ----
+ struct s1
+ {
+   int __attribute__ ((aligned (8))) a;
+ };
+ 
+ struct
+ {
+   char c;
+   struct s1 m;
+ } v;
+ 
+ int
+ main (void)
+ {
+   if ((int)&v.m & 7)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23604.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23604.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr23604.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr23604.c	Sat Oct  1 13:57:29 2005
***************
*** 0 ****
--- 1,22 ----
+ extern void abort (void);
+ 
+ int g(int i, int j)
+ {
+   if (i>-1)
+     if (i<2)
+      {
+         if (i != j)
+           {
+             if (j != 0)
+                 return 0;
+           }
+      }
+   return 1;
+ }
+ 
+ int main(void)
+ {
+   if (!g(1, 0))
+    abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24135.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24135.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24135.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24135.c	Mon Oct  3 20:57:45 2005
***************
*** 0 ****
--- 1,46 ----
+ #ifndef NO_TRAMPOLINES
+ extern void abort (void);
+ 
+ int x(int a, int b)
+ {
+   __label__ xlab;
+   __label__ xlab2;
+ 
+   void y(int b)
+     {
+        switch (b)
+         {
+           case 1: goto xlab;
+           case 2: goto xlab;
+         }
+     }
+ 
+   a = a + 2;
+   y (b);
+ 
+  xlab:
+   return a;
+ 
+  xlab2:
+   a++;
+   return a;
+ 
+ }
+ 
+ int main ()
+ {
+   int i, j;
+ 
+   for (j = 1; j <= 2; ++j)
+     for (i = 1; i <= 2; ++i)
+       {
+ 	int a = x (j, i);
+ 	if (a != 2 + j)
+ 	  abort ();
+       }
+ 
+   return 0;
+ }
+ #else
+ int main() { return 0; }
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24141.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24141.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24141.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24141.c	Sat Oct  1 14:00:09 2005
***************
*** 0 ****
--- 1,33 ----
+ // reduced testcase, compile with -O2. Also, with --disable-checking
+ // gcc produces wrong code.
+ 
+ void abort (void);
+ int i;
+ 
+ void g (void)
+ {
+   i = 1;
+ }
+ 
+ void f (int a, int b)
+ {
+   int c = 0;
+   if (a == 0)
+     c = 1;
+   if (c)
+     return;
+   if (c == 1)
+     c = 0;
+   if (b == 0)
+     c = 1;
+   if (c)
+     g ();
+ }
+ 
+ int main (void)
+ {
+   f (1, 0);
+   if (i != 1)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24142.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24142.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24142.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24142.c	Sun Oct  2 20:15:55 2005
***************
*** 0 ****
--- 1,19 ----
+ void abort (void);
+ 
+ int f (int a, int b)
+ {
+   if (a == 1)
+     a = 0;
+   if (b == 0)
+     a = 1;
+   if (a != 0)
+     return 0;
+   return 1;
+ }
+ 
+ int main (void)
+ {
+   if (f (1, 1) != 1)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24716.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24716.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24716.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24716.c	Wed Nov  9 18:00:59 2005
***************
*** 0 ****
--- 1,59 ----
+ /* PR24716, scalar evolution returning the wrong result
+    for pdest.  */
+ 
+ int Link[] = { -1 };
+ int W[] = { 2 };
+ 
+ extern void abort (void);
+ 
+ int f (int k, int p)
+ {
+   int pdest, j, D1361;
+   j = 0;
+   pdest = 0;
+   for (;;) {
+     if (pdest > 2)
+       do
+         j--, pdest++;
+       while (j > 2);
+ 
+     if (j == 1)
+       break;
+ 
+     while (pdest > p)
+       if (j == p)
+         pdest++;
+ 
+     do
+       {
+         D1361 = W[k];
+         do
+           if (D1361 != 0)
+             pdest = 1, W[k] = D1361 = 0;
+         while (p < 1);
+     } while (k > 0);
+ 
+     do
+       {
+         p = 0;
+         k = Link[k];
+         while (p < j)
+           if (k != -1)
+             pdest++, p++;
+       }
+     while (k != -1);
+     j = 1;
+   }
+ 
+   /* The correct return value should be pdest (1 in the call from main).
+      DOM3 is mistaken and propagates a 0 here.  */
+   return pdest;
+ }
+ 
+ int main ()
+ {
+   if (!f (0, 2))
+     abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24851.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24851.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr24851.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr24851.c	Thu Nov 17 11:35:00 2005
***************
*** 0 ****
--- 1,17 ----
+ /* We used to handle pointer addition wrongly
+    at the time of recombining to an ARRAY_REF
+    in the case of
+      p + -4B
+    where -4B is represented as unsigned.  */
+ 
+ void abort(void);
+ int main()
+ {
+   int a[10], *p, *q;
+   q = &a[1];
+   p = &q[-1];
+   if (p >= &a[9])
+     abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr25125.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr25125.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/pr25125.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/pr25125.c	Mon Jan  9 04:37:09 2006
***************
*** 0 ****
--- 1,27 ----
+ extern void exit (int);
+ extern void abort (void);
+ extern unsigned short f (short a) __attribute__((__noinline__));
+ 
+ unsigned short
+ f (short a)
+ {
+   short b;
+ 
+   if (a > 0)
+     return 0;
+   b = ((int) a) + - (int) 32768;
+   return b;
+ }
+ 
+ int
+ main (void)
+ {
+   if (sizeof (short) < 2
+       || sizeof (short) >= sizeof (int))
+     exit (0);
+ 
+   if (f (-32767) != 1)
+     abort ();
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/printf-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/printf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/printf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/printf-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,23 ----
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ int
+ main (void)
+ {
+ #define test(ret, args...) \
+   printf (args); 		\
+   if (printf (args) != ret)	\
+     abort ();
+   test (5, "hello");
+   test (6, "hello\n");
+   test (1, "a");
+   test (0, "");
+   test (5, "%s", "hello");
+   test (6, "%s", "hello\n");
+   test (1, "%s", "a");
+   test (0, "%s", "");
+   test (1, "%c", 'x');
+   test (7, "%s\n", "hello\n");
+   test (2, "%d\n", 0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/printf-chk-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,49 ----
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ 
+ volatile int should_optimize;
+ 
+ int
+ __attribute__((noinline))
+ __printf_chk (int flag, const char *fmt, ...)
+ {
+   va_list ap;
+   int ret;
+ #ifdef __OPTIMIZE__
+   if (should_optimize)
+     abort ();
+ #endif
+   should_optimize = 1;
+   va_start (ap, fmt);
+   ret = vprintf (fmt, ap);
+   va_end (ap);
+   return ret;
+ }
+ 
+ int
+ main (void)
+ {
+ #define test(ret, opt, args...) \
+   should_optimize = opt;		\
+   __printf_chk (1, args); 		\
+   if (!should_optimize)			\
+     abort ();				\
+   should_optimize = 0;			\
+   if (__printf_chk (1, args) != ret)	\
+     abort ();				\
+   if (!should_optimize)			\
+     abort ();
+   test (5, 0, "hello");
+   test (6, 1, "hello\n");
+   test (1, 1, "a");
+   test (0, 1, "");
+   test (5, 0, "%s", "hello");
+   test (6, 1, "%s", "hello\n");
+   test (1, 1, "%s", "a");
+   test (0, 1, "%s", "");
+   test (1, 1, "%c", 'x');
+   test (7, 1, "%s\n", "hello\n");
+   test (2, 0, "%d\n", 0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/stdarg-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/stdarg-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/stdarg-2.c	Wed Nov  3 21:53:39 2004
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/stdarg-2.c	Tue Aug 23 20:58:13 2005
*************** f12 (int i, ...)
*** 143,150 ****
  int
  main (void)
  {
!   f1 (1, 79);
!   if (x != 79)
      abort ();
    f2 (0x4002, 13, -14.0);
    if (bar_arg != 0x4002)
--- 143,150 ----
  int
  main (void)
  {
!   f1 (1, 79L);
!   if (x != 79L)
      abort ();
    f2 (0x4002, 13, -14.0);
    if (bar_arg != 0x4002)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/stdarg-4.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/stdarg-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/stdarg-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/stdarg-4.c	Sat Apr  9 17:19:58 2005
***************
*** 0 ****
--- 1,137 ----
+ #include <stdarg.h>
+ 
+ extern void abort (void);
+ long x, y;
+ 
+ inline void __attribute__((always_inline))
+ f1i (va_list ap)
+ {
+   x = va_arg (ap, double);
+   x += va_arg (ap, long);
+   x += va_arg (ap, double);
+ }
+ 
+ void
+ f1 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   f1i (ap);
+   va_end (ap);
+ }
+ 
+ inline void __attribute__((always_inline))
+ f2i (va_list ap)
+ {
+   y = va_arg (ap, int);
+   y += va_arg (ap, long);
+   y += va_arg (ap, double);
+   f1i (ap);
+ }
+ 
+ void
+ f2 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   f2i (ap);
+   va_end (ap);
+ }
+ 
+ long
+ f3h (int i, long arg0, long arg1, long arg2, long arg3)
+ {
+   return i + arg0 + arg1 + arg2 + arg3;
+ }
+ 
+ long
+ f3 (int i, ...)
+ {
+   long t, arg0, arg1, arg2, arg3;
+   va_list ap;
+ 
+   va_start (ap, i);
+   switch (i)
+     {
+     case 0:
+       t = f3h (i, 0, 0, 0, 0);
+       break;
+     case 1:
+       arg0 = va_arg (ap, long);
+       t = f3h (i, arg0, 0, 0, 0);
+       break;
+     case 2:
+       arg0 = va_arg (ap, long);
+       arg1 = va_arg (ap, long);
+       t = f3h (i, arg0, arg1, 0, 0);
+       break;
+     case 3:
+       arg0 = va_arg (ap, long);
+       arg1 = va_arg (ap, long);
+       arg2 = va_arg (ap, long);
+       t = f3h (i, arg0, arg1, arg2, 0);
+       break;
+     case 4:
+       arg0 = va_arg (ap, long);
+       arg1 = va_arg (ap, long);
+       arg2 = va_arg (ap, long);
+       arg3 = va_arg (ap, long);
+       t = f3h (i, arg0, arg1, arg2, arg3);
+       break;
+     default:
+       abort ();
+     }
+   va_end (ap);
+ 
+   return t;
+ }
+ 
+ void
+ f4 (int i, ...)
+ {
+   va_list ap;
+ 
+   va_start (ap, i);
+   switch (i)
+     {
+     case 4:
+       y = va_arg (ap, double);
+       break;
+     case 5:
+       y = va_arg (ap, double);
+       y += va_arg (ap, double);
+       break;
+     default:
+       abort ();
+     }
+   f1i (ap);
+   va_end (ap);
+ }
+ 
+ int
+ main (void)
+ {
+   f1 (3, 16.0, 128L, 32.0);
+   if (x != 176L)
+     abort ();
+   f2 (6, 5, 7L, 18.0, 19.0, 17L, 64.0);
+   if (x != 100L || y != 30L)
+     abort ();
+   if (f3 (0) != 0)
+     abort ();
+   if (f3 (1, 18L) != 19L)
+     abort ();
+   if (f3 (2, 18L, 100L) != 120L)
+     abort ();
+   if (f3 (3, 18L, 100L, 300L) != 421L)
+     abort ();
+   if (f3 (4, 18L, 71L, 64L, 86L) != 243L)
+     abort ();
+   f4 (4, 6.0, 9.0, 16L, 18.0);
+   if (x != 43L || y != 6L)
+     abort ();
+   f4 (5, 7.0, 21.0, 1.0, 17L, 126.0);
+   if (x != 144L || y != 28L)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vfprintf-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,53 ----
+ #ifndef test
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ 
+ void
+ inner (int x, ...)
+ {
+   va_list ap, ap2;
+   va_start (ap, x);
+   va_start (ap2, x);
+ 
+   switch (x)
+     {
+ #define test(n, ret, fmt, args) \
+     case n:					\
+       vfprintf (stdout, fmt, ap);		\
+       if (vfprintf (stdout, fmt, ap2) != ret)	\
+ 	abort ();				\
+       break;
+ #include "vfprintf-1.c"
+ #undef test
+     default:
+       abort ();
+     }
+ 
+   va_end (ap);
+   va_end (ap2);
+ }
+ 
+ int
+ main (void)
+ {
+ #define test(n, ret, fmt, args) \
+   inner args;
+ #include "vfprintf-1.c"
+ #undef test
+   return 0;
+ }
+ 
+ #else
+   test (0, 5, "hello", (0));
+   test (1, 6, "hello\n", (1));
+   test (2, 1, "a", (2));
+   test (3, 0, "", (3));
+   test (4, 5, "%s", (4, "hello"));
+   test (5, 6, "%s", (5, "hello\n"));
+   test (6, 1, "%s", (6, "a"));
+   test (7, 0, "%s", (7, ""));
+   test (8, 1, "%c", (8, 'x'));
+   test (9, 7, "%s\n", (9, "hello\n"));
+   test (10, 2, "%d\n", (10, 0));
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vfprintf-chk-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,73 ----
+ #ifndef test
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ 
+ volatile int should_optimize;
+ 
+ int
+ __attribute__((noinline))
+ __vfprintf_chk (FILE *f, int flag, const char *fmt, va_list ap)
+ {
+ #ifdef __OPTIMIZE__
+   if (should_optimize)
+     abort ();
+ #endif
+   should_optimize = 1;
+   return vfprintf (f, fmt, ap);
+ }
+ 
+ void
+ inner (int x, ...)
+ {
+   va_list ap, ap2;
+   va_start (ap, x);
+   va_start (ap2, x);
+ 
+   switch (x)
+     {
+ #define test(n, ret, opt, fmt, args) \
+     case n:						\
+       should_optimize = opt;				\
+       __vfprintf_chk (stdout, 1, fmt, ap);		\
+       if (! should_optimize)				\
+ 	abort ();					\
+       should_optimize = 0;				\
+       if (__vfprintf_chk (stdout, 1, fmt, ap2) != ret)	\
+ 	abort ();					\
+       if (! should_optimize)				\
+ 	abort ();					\
+       break;
+ #include "vfprintf-chk-1.c"
+ #undef test
+     default:
+       abort ();
+     }
+ 
+   va_end (ap);
+   va_end (ap2);
+ }
+ 
+ int
+ main (void)
+ {
+ #define test(n, ret, opt, fmt, args) \
+   inner args;
+ #include "vfprintf-chk-1.c"
+ #undef test
+   return 0;
+ }
+ 
+ #else
+   test (0, 5, 1, "hello", (0));
+   test (1, 6, 1, "hello\n", (1));
+   test (2, 1, 1, "a", (2));
+   test (3, 0, 1, "", (3));
+   test (4, 5, 0, "%s", (4, "hello"));
+   test (5, 6, 0, "%s", (5, "hello\n"));
+   test (6, 1, 0, "%s", (6, "a"));
+   test (7, 0, 0, "%s", (7, ""));
+   test (8, 1, 0, "%c", (8, 'x'));
+   test (9, 7, 0, "%s\n", (9, "hello\n"));
+   test (10, 2, 0, "%d\n", (10, 0));
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vprintf-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,53 ----
+ #ifndef test
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ 
+ void
+ inner (int x, ...)
+ {
+   va_list ap, ap2;
+   va_start (ap, x);
+   va_start (ap2, x);
+ 
+   switch (x)
+     {
+ #define test(n, ret, fmt, args) \
+     case n:				\
+       vprintf (fmt, ap);		\
+       if (vprintf (fmt, ap2) != ret)	\
+ 	abort ();			\
+       break;
+ #include "vprintf-1.c"
+ #undef test
+     default:
+       abort ();
+     }
+ 
+   va_end (ap);
+   va_end (ap2);
+ }
+ 
+ int
+ main (void)
+ {
+ #define test(n, ret, fmt, args) \
+   inner args;
+ #include "vprintf-1.c"
+ #undef test
+   return 0;
+ }
+ 
+ #else
+   test (0, 5, "hello", (0));
+   test (1, 6, "hello\n", (1));
+   test (2, 1, "a", (2));
+   test (3, 0, "", (3));
+   test (4, 5, "%s", (4, "hello"));
+   test (5, 6, "%s", (5, "hello\n"));
+   test (6, 1, "%s", (6, "a"));
+   test (7, 0, "%s", (7, ""));
+   test (8, 1, "%c", (8, 'x'));
+   test (9, 7, "%s\n", (9, "hello\n"));
+   test (10, 2, "%d\n", (10, 0));
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vprintf-chk-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,73 ----
+ #ifndef test
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <stdarg.h>
+ 
+ volatile int should_optimize;
+ 
+ int
+ __attribute__((noinline))
+ __vprintf_chk (int flag, const char *fmt, va_list ap)
+ {
+ #ifdef __OPTIMIZE__
+   if (should_optimize)
+     abort ();
+ #endif
+   should_optimize = 1;
+   return vprintf (fmt, ap);
+ }
+ 
+ void
+ inner (int x, ...)
+ {
+   va_list ap, ap2;
+   va_start (ap, x);
+   va_start (ap2, x);
+ 
+   switch (x)
+     {
+ #define test(n, ret, opt, fmt, args) \
+     case n:					\
+       should_optimize = opt;			\
+       __vprintf_chk (1, fmt, ap);		\
+       if (! should_optimize)			\
+ 	abort ();				\
+       should_optimize = 0;			\
+       if (__vprintf_chk (1, fmt, ap2) != ret)	\
+ 	abort ();				\
+       if (! should_optimize)			\
+ 	abort ();				\
+       break;
+ #include "vprintf-chk-1.c"
+ #undef test
+     default:
+       abort ();
+     }
+ 
+   va_end (ap);
+   va_end (ap2);
+ }
+ 
+ int
+ main (void)
+ {
+ #define test(n, ret, opt, fmt, args) \
+   inner args;
+ #include "vprintf-chk-1.c"
+ #undef test
+   return 0;
+ }
+ 
+ #else
+   test (0, 5, 0, "hello", (0));
+   test (1, 6, 1, "hello\n", (1));
+   test (2, 1, 1, "a", (2));
+   test (3, 0, 1, "", (3));
+   test (4, 5, 0, "%s", (4, "hello"));
+   test (5, 6, 0, "%s", (5, "hello\n"));
+   test (6, 1, 0, "%s", (6, "a"));
+   test (7, 0, 0, "%s", (7, ""));
+   test (8, 1, 0, "%c", (8, 'x'));
+   test (9, 7, 0, "%s\n", (9, "hello\n"));
+   test (10, 2, 0, "%d\n", (10, 0));
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-1.c	Thu Jul 28 04:35:01 2005
***************
*** 0 ****
--- 1,20 ----
+ 
+ extern void abort ();
+ extern void exit (int);
+ 
+ int f (int a) {
+ 	if (a != 2) {
+ 		a = -a;
+ 		if (a == 2)
+ 		  return 0;
+ 		return 1;
+ 	}
+ 	return 1;
+ }
+ 
+ int main (int argc, char *argv[]) {
+ 	if (f (-2))
+ 		abort ();
+ 	exit (0);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-2.c	Thu Jul 28 04:35:01 2005
***************
*** 0 ****
--- 1,19 ----
+ extern void abort ();
+ extern void exit (int);
+ 
+ int f (int a) {
+ 	if (a != 2) {
+ 		a = a > 0 ? a : -a;
+ 		if (a == 2)
+ 		  return 0;
+ 		return 1;
+ 	}
+ 	return 1;
+ }
+ 
+ int main (int argc, char *argv[]) {
+ 	if (f (-2))
+ 		abort ();
+ 	exit (0);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-3.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-3.c	Thu Jul 28 04:35:01 2005
***************
*** 0 ****
--- 1,21 ----
+ extern void abort ();
+ extern void exit (int);
+ 
+ int f (int a) {
+ 	if (a < 12) {
+ 	  if (a > -15) {
+ 		a = a > 0 ? a : -a;
+ 		if (a == 2)
+ 		  return 0;
+ 		return 1;
+ 	  }
+ 	}
+ 	return 1;
+ }
+ 
+ int main (int argc, char *argv[]) {
+ 	if (f (-2))
+ 		abort ();
+ 	exit (0);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-4.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-4.c	Tue Aug  2 05:08:40 2005
***************
*** 0 ****
--- 1,20 ----
+ extern void exit (int);
+ extern void abort ();
+ 
+ void test(int x, int y)
+ {
+ 	int c;
+ 
+ 	if (x == 1) abort();
+ 	if (y == 1) abort();
+ 
+ 	c = x / y;
+ 
+ 	if (c != 1) abort();
+ }
+ 
+ int main()
+ {
+ 	test(2, 2);
+ 	exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-5.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-5.c	Sat Aug  6 05:35:31 2005
***************
*** 0 ****
--- 1,22 ----
+ extern void exit (int);
+ extern void abort ();
+ 
+ void test(unsigned int a, unsigned int b)
+ {
+   if (a < 5)
+     abort();
+   if (b < 5)
+     abort();
+   if (a + b != 0U)
+     abort();
+ }
+ 
+ int main(int argc, char *argv[])
+ {
+   unsigned int x = 0x80000000;
+   test(x, x);
+   exit (0);
+ }
+ 
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-6.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/vrp-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/vrp-6.c	Sat Aug  6 05:35:31 2005
***************
*** 0 ****
--- 1,33 ----
+ #include <limits.h>
+ 
+ extern void exit (int);
+ extern void abort ();
+ 
+ void test01(unsigned int a, unsigned int b)
+ {
+   if (a < 5)
+     abort();
+   if (b < 5)
+     abort();
+   if (a - b != 5)
+     abort();
+ }
+ 
+ void test02(unsigned int a, unsigned int b)
+ {
+   if (a >= 12)
+     if (b > 15)
+       if (a - b < UINT_MAX - 15U)
+ 	abort ();
+ }
+ 
+ int main(int argc, char *argv[])
+ {
+   unsigned x = 0x80000000;
+   test01(x + 5, x);
+   test02(14, 16);
+   exit (0);
+ }
+ 
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/zero-struct-1.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/zero-struct-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/zero-struct-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/zero-struct-1.c	Sat Aug 27 21:37:53 2005
***************
*** 0 ****
--- 1,23 ----
+ struct g{};
+ char y[3];
+ char *f = &y[0];
+ char *ff = &y[0];
+ void h(void)
+ {
+   struct g t;
+   *((struct g*)(f++)) = *((struct g*)(ff++));
+   *((struct g*)(f++)) = (struct g){};
+   t = *((struct g*)(ff++));
+ }
+ 
+ void abort (void);
+ 
+ int main(void)
+ {
+   h();
+   if (f != &y[2])
+     abort();
+   if (ff != &y[2])
+     abort();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/execute/zero-struct-2.c	Thu Nov  3 15:21:15 2005
***************
*** 0 ****
--- 1,20 ----
+ void abort (void);
+ int ii;
+ typedef struct {} raw_spinlock_t;
+ typedef struct {
+   raw_spinlock_t raw_lock;
+ } spinlock_t;
+ raw_spinlock_t one_raw_spinlock (void)
+ {
+   raw_spinlock_t raw_lock;
+   ii++;
+   return raw_lock;
+ }
+ int main(void)
+ {
+   spinlock_t lock = (spinlock_t) { .raw_lock = one_raw_spinlock() };
+   if (ii != 1)
+     abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/pr20583.c gcc-4.1.0/gcc/testsuite/gcc.c-torture/pr20583.c
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/pr20583.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/pr20583.c	Mon Nov 21 06:52:01 2005
***************
*** 0 ****
--- 1,30 ----
+ /* PR target/20583
+    On m68k-none-elf, CSE used to generate
+ 
+      (set (reg:HI ...)
+           (const:HI (truncate:HI (minus:SI (label_ref ...)
+                                            (label_ref ...)))))
+ 
+    which output functions do not know how to handle.  Make sure that
+    such a constant will be rejected.  */
+ 
+ void bar (unsigned int);
+ 
+ void
+ foo (void)
+ {
+   char buf[1] = { 3 };
+   const char *p = buf;
+   const char **q = &p;
+   unsigned int ch;
+   switch (**q)
+     {
+     case 1:  ch = 5; break;
+     case 2:  ch = 4; break;
+     case 3:  ch = 3; break;
+     case 4:  ch = 2; break;
+     case 5:  ch = 1; break;
+     default: ch = 0; break;
+     }
+   bar (ch);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp gcc-4.1.0/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp
*** gcc-4.0.2/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp	Tue Oct  9 10:16:25 2001
--- gcc-4.1.0/gcc/testsuite/gcc.c-torture/unsorted/unsorted.exp	Mon Nov 14 16:28:48 2005
***************
*** 14,20 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  #
  # Written by Jeffrey Wheat (cassidy@cygnus.com)
  #
--- 14,20 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  #
  # Written by Jeffrey Wheat (cassidy@cygnus.com)
  #
*************** load_lib c-torture.exp
*** 39,45 ****
  # require unique options need their own .exp file.
  #
  
! foreach testcase [glob -nocomplain $srcdir/$subdir/*.c] {
      if [file exists [file rootname $testcase].exp] then {
  	verbose "INFO:\"[file rootname $testcase].exp\" exists, skipping test" 3
  	continue
--- 39,45 ----
  # require unique options need their own .exp file.
  #
  
! foreach testcase [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
      if [file exists [file rootname $testcase].exp] then {
  	verbose "INFO:\"[file rootname $testcase].exp\" exists, skipping test" 3
  	continue
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000609-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000609-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000609-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000609-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O1 -ffast-math -march=i686" } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- 
- /* Sanity check for fp_jcc_* with TARGET_CMOVE.  */
- 
- extern void abort (void);
- 
- static int test(double a)
- {
-   if (a)
-     return 0;
- }
- 
- static double zero = 0.0;
- 
- int main ()
- {
-   test (zero);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000614-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000614-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000614-1.c	Tue Nov  7 17:12:59 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000614-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- void bar(char *p)
- {
- }
- 
- static inline void foo (unsigned long base, unsigned char val)
- {
-   val ^= (1<<2);
-   bar (val & (1<<5) ? "1" : "2");
-   bar (val & (1<<4) ? "1" : "2");
-   bar (val & (1<<3) ? "1" : "2");
-   bar (val & (1<<2) ? "1" : "2");
-   bar (val & (1<<1) ? "1" : "2");
-   bar (val & (1<<0) ? "1" : "2");
-   asm volatile ("": :"a" (val), "d" (base));
- }
- 
- int main (void)
- {
-   foo (23, 1);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000614-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000614-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000614-2.c	Wed Oct  2 08:26:39 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000614-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,33 ****
- /* { dg-do run { target i?86-*-* x86_64-*-*} } */
- /* { dg-options "-O2 -fno-strength-reduce" } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- char buf[8];
- 
- void bar(char *p)
- {
- }
- 
- int main()
- {
-   union {
-     unsigned int val;
-     unsigned char p[4];
-   } serial;
- 
-   int i;
-   serial.val = 0;
-   bar(buf);
-   for(i = 0; i < 8; i += 4)
-     {
-       serial.p [0] += buf [i + 0];
-       serial.p [1] += buf [i + 1];
-       serial.p [2] += buf [i + 2];
-       serial.p [3] += buf [i + 3];
-     }
-   if (serial.val)
-     abort();
-   exit(0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000715-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000715-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000715-1.c	Sat Jul 15 18:14:29 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000715-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target alpha*-*-* } } */
- /* { dg-options "-O2 -mieee" } */
- 
- float foo(unsigned char n)
- {
-   float r = 10 * n;
-   asm volatile("" : : : "memory");
-   return r;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000720-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000720-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000720-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000720-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,40 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer" } */
- 
- extern void *foo(void *a, const void *b, unsigned c);
- 
- extern inline void *
- bar(void *a, const void *b, unsigned c)
- {
-   int d0, d1, d2;
-   __asm__ __volatile__(
-     "" :
-     "=&c" (d0), "=&D" (d1), "=&S" (d2) :
-     "0" (c/4), "q" (c), "1" (a), "2" (b) :
-     "memory");
-   return a;
- }
- 
- typedef struct {
-   unsigned char a;
-   unsigned b : 2;
-   unsigned c : 4;
-   unsigned d : 2;
- } *baz;
- 
- static int
- dead(unsigned short *v, char *w, unsigned char *x, int y, int z)
- {
-   int i = 0;
-   unsigned short j = *v;
- 
-   while (y > 0) {
-     ((baz)x)->a = j;
-     ((baz)x)->b = 0;
-     ((baz)x)->c = 0;
-     ((baz)x)->d = 0;
-     __builtin_constant_p(i) ? foo(x, w, i) : bar(x, w, i);
-   }
-   return z - y;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000724-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000724-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000724-1.c	Thu Feb 26 14:30:13 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000724-1.c	Fri Dec  9 23:38:19 2005
***************
*** 1,5 ****
! /* { dg-do run { target i?86-*-linux* } } */
  /* { dg-options "-O2 -fomit-frame-pointer" } */
  
  extern void abort (void);
  extern void exit (int);
--- 1,6 ----
! /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
  /* { dg-options "-O2 -fomit-frame-pointer" } */
+ /* { dg-require-effective-target ilp32 } */
  
  extern void abort (void);
  extern void exit (int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000807-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000807-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000807-1.c	Mon Aug 21 08:30:38 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000807-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,37 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-Os -fpic" } */
- 
- #include <string.h>
- 
- typedef struct
- {
-   char *a;
-   char *b;
- } *foo;
- 
- void
- bar (foo x)
- {
-   char *c = x->b;
-   char *d = (void *)0;
-   unsigned int e = 0, f = 0, g;
-   while (*c != ':')
-     if (*c == '%')
-       {
-         ++c;
-         switch (*c++)
-           {
-           case 'N':
-             g = strlen (x->a);
-             if (e + g >= f) {
- 		char *h = d;
- 		f += 256 + g;
- 		d = (char *) __builtin_alloca (f);
- 		memcpy (d, h, e);
- 	    };
-             memcpy (&d[e], x->a, g);
-             e += g;
-             break;
- 	  }
-       }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20000904-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20000904-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20000904-1.c	Mon Sep  4 10:13:34 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20000904-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O0 -fpic" } */
- 
- static struct {
-   unsigned short a, b, c, d;
- } x[10];
- 
- int foo(int i)
- {
-   return ((*((char *)&x[i] + i)) | (*((char *)&x[i] + i)));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20001009-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20001009-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20001009-1.c	Fri Mar 15 05:36:37 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20001009-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,6 ****
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
  
  extern void foo (void *a, double x, double y);
  void
--- 1,5 ----
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  
  extern void foo (void *a, double x, double y);
  void
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20001117-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20001117-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20001117-1.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20001117-1.c	Sat Jul 23 04:49:57 2005
*************** int main ()
*** 24,28 ****
    exit (0);
  }
  
! void __attribute__((no_instrument_function)) __cyg_profile_func_enter() { }
! void __attribute__((no_instrument_function)) __cyg_profile_func_exit() { } 
--- 24,28 ----
    exit (0);
  }
  
! void __attribute__((no_instrument_function)) __cyg_profile_func_enter(void *this_fn, void *call_site) { }
! void __attribute__((no_instrument_function)) __cyg_profile_func_exit(void *this_fn, void *call_site) { } 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20001127-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20001127-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20001127-1.c	Tue Nov 28 09:04:27 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20001127-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- extern inline float bar (float x)
- {
-   register long double value;
-   asm volatile ("frndint" : "=t" (value) : "0" (x));
-   return value;
- }
- 
- float a;
- 
- float foo (float b)
- {
-   return a + bar (b);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20010202-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20010202-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20010202-1.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20010202-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- /* { dg-do compile { target i?86-*-* sparc*-*-* } } */
- /* { dg-options "-O2" } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- typedef enum { false, true } __attribute__ ((packed)) boolean;
- typedef struct {
-   enum {
-     A0 = 0, A1 = 1, A2 = 2
-   } __attribute__((packed)) A:3;
-   enum {
-     B0 = 0, B1 = 1, B2 = 2
-   } __attribute__((packed)) B:3;
-   boolean C:1;
-   boolean D:1;
-   unsigned char :8;
- } foo;
- foo x = { A2, B1, false, true };
- 
- int main(void)
- {
-   if (sizeof (foo) != 2 || __alignof__ (foo) != 1)
-     abort ();
- 
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20010423-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20010423-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20010423-1.c	Wed Apr 25 09:57:00 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20010423-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile { target ia64-*-* } } */
- /* { dg-options "-O2" } */
- 
- int __sync_fetch_and_add_si (int *, int);
- 
- inline unsigned int
- bar (volatile unsigned int *mem, unsigned int val)
- {
-   return __sync_fetch_and_add_si((int *)mem, (int)val);
- }
- 
- volatile unsigned int x;
- 
- void foo (unsigned short *a)
- {
-   *a = bar (&x, 1) + 1;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20010520-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20010520-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20010520-1.c	Mon May 21 18:36:57 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20010520-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-w" } */
- 
- void f ()
- {
-   int i __asm__ ("%eax");
-   __asm__ volatile ("" : "=a" (i));
- }
- 
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20010912-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20010912-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20010912-1.c	Fri Sep  3 18:09:32 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20010912-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,6 ****
! /* { dg-do run } */
  /* { dg-options "-O2 -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  extern void abort (void);
--- 1,5 ----
! /* { dg-do run { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  extern void abort (void);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20011009-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20011009-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20011009-1.c	Fri Oct 12 10:51:17 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20011009-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- int main ()
- {
-   int x;
- 
-   asm ("movl $26, %0 # 26 |-> reg \n\t"
-        "movl $28, %0" : "=r" (x));
-   if (x != 28)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20011018-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20011018-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20011018-1.c	Fri Oct 19 19:34:44 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20011018-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target alpha*-*-* } } */
- /* { dg-options "-O2 -mieee" } */
- 
- double foo (void);
- void bar (float, float);
- 
- void test (void)
- {
-   float f, g;
- 
-   f = foo();
-   g = foo();
-   asm ("");
-   bar (f, g);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20011029-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20011029-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20011029-2.c	Mon Jun  9 03:21:55 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20011029-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- int foo (int s)
- {
-   for (;;)
-     {
-       int a[32];
-       int y, z;
-       __asm__ __volatile__ ("" : "=c" (y), "=D" (z)
- 			    : "a" (0), "0" (32), "1" (a) : "memory");
-       if (({ register char r;
- 	     __asm__ __volatile__ ("" : "=q" (r)
- 				   : "r" (s % 32), "m" (a[s / 32])
- 				   : "cc"); r; }))
-         continue;
-       else if (({ register char r;
- 		  __asm__ __volatile__ ("" : "=q" (r)
- 					: "r" (0), "m" (a[0])
- 					: "cc"); r; }))
-         continue;
-     }
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20011107-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20011107-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20011107-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20011107-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,46 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -mtune=k6" } */
- 
- void
- foo (unsigned char *x, const unsigned char *y)
- {
-   int a = 6;
-   unsigned char *b;
-   for (;;)
-     {
-       unsigned char *c = x;
- 
-       while (1)
- 	{
- 	  if (c + 2 < y)
- 	    c += 3;
- 	  else
- 	    break;
- 	}
-       b = x + a;
-       if (*c == 4 || *c == 5)
- 	{
- 	  unsigned char d = c[2];
- 
- 	  if (b[3] == 7 || b[3] == 8)
- 	    {
- 	      int e = b[3] == 8;
- 	      if (d < b[4] * 8 && b[5 + d / 8] & (1 << (d % 8)))
- 		e = !e;
- 	      if (!e)
- 		x[-3] = 26;
- 	    }
- 	}
-       else if (*c == 7 && b[3] == 8)
- 	{
- 	  int f;
- 	  for (f = 0; f < (int) c[1]; f++)
- 	    if (!(c[2 + f] == 0))
- 	      break;
- 	  if (f == c[1])
- 	    x[-3] = 26;
- 	}
-       x -= 2;
-     }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20011119-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20011119-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20011119-1.c	Thu Jan  6 02:32:56 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20011119-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,81 ****
- /* Test for reload failing to eliminate from argp to sp.  */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" "-fpic" "-fPIC" } { "" } } */
- /* { dg-options "-O2 -fomit-frame-pointer" } */
- 
- static int ustrsize (const char *s);
- static int (*ucwidth) (int c);
- static int (*ugetxc) (const char **s);
- static int (*usetc) (char *s, int c);
- 
- char *ustrzcat(char *dest, int size, const char *src)
- {
-    int pos = ustrsize(dest);
-    int c;
- 
-    size -= pos + ucwidth(0);
- 
-    while ((c = ugetxc(&src)) != 0) {
-       size -= ucwidth(c);
-       if (size < 0)
-          break;
- 
-       pos += usetc(dest+pos, c);
-    }
- 
-    usetc(dest+pos, 0);
- 
-    return dest;
- }
- 
- static int __attribute__((noinline))
- ustrsize (const char *s)
- {
-   return 0;
- }
- 
- static int
- ucwidth_ (int c)
- {
-   return 1;
- }
- 
- static int
- ugetxc_ (const char **s)
- {
-   return '\0';
- }
- 
- static int
- usetc_ (char *s, int c)
- {
-   return 1;
- }
- 
- int
- main()
- {
-   ucwidth = ucwidth_;
-   ugetxc = ugetxc_;
-   usetc = usetc_;
-   
-   /* ??? It is impossible to explicitly modify the hard frame pointer.
-      This will run afoul of code in flow.c that declines to mark regs
-      in eliminate_regs in regs_ever_used.  Apparently, we have to wait
-      for reload to decide that it won't need a frame pointer before a
-      variable can be allocated to %ebp.
- 
-      So save, restore, and clobber %ebp by hand.  */
- 
-   asm ("pushl %%ebp\n\t"
-        "movl $-1, %%ebp\n\t"
-        "pushl $0\n\t"
-        "pushl $0\n\t"
-        "pushl $0\n\t"
-        "call %P0\n\t"
-        "addl $12, %%esp\n\t"
-        "popl %%ebp"
-        : : "i"(ustrzcat) : "memory" );
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020103-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020103-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020103-1.c	Tue Apr  6 20:29:09 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020103-1.c	Thu Aug 25 08:42:01 2005
***************
*** 2,8 ****
     spilled to the stack, or regenerated, but not dropped to memory.  */
  /* { dg-do compile { target i?86-*-* powerpc-*-* rs6000-*-* alpha*-*-* x86_64-*-*} } */
  /* { dg-options "-O2 -fpic -fno-omit-frame-pointer -fno-asynchronous-unwind-tables" } */
! /* { dg-final { scan-assembler-not "LC" } } */
  
  /* Clobber all call-saved registers that can hold a pointer value.  */
  #if defined(__i386__)
--- 2,8 ----
     spilled to the stack, or regenerated, but not dropped to memory.  */
  /* { dg-do compile { target i?86-*-* powerpc-*-* rs6000-*-* alpha*-*-* x86_64-*-*} } */
  /* { dg-options "-O2 -fpic -fno-omit-frame-pointer -fno-asynchronous-unwind-tables" } */
! /* { dg-final { scan-assembler-not "LC\[0-9\]" } } */
  
  /* Clobber all call-saved registers that can hold a pointer value.  */
  #if defined(__i386__)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020108-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020108-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020108-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020108-1.c	Sat Dec 10 13:47:29 2005
***************
*** 5,12 ****
     is not valid general_operand in HImode.  */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  void
  foo (unsigned short *cp)
--- 5,12 ----
     is not valid general_operand in HImode.  */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
! 
  
  void
  foo (unsigned short *cp)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020118-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020118-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020118-1.c	Thu Aug  5 06:06:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020118-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do run { target powerpc*-*-* } }*/
- 
- /* Test local alignment.  Test new target macro STARTING_FRAME_PHASE.  */
- /* Origin: Aldy Hernandez <aldyh@redhat.com>.  */
- 
- extern void abort(void);
- 
- int main ()
- {       
-   int darisa[4] __attribute__((aligned(16))) ;
-   int *stephanie = (int *) darisa;
- 
-   if ((unsigned long) stephanie % 16 != 0)
-     abort ();
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020122-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020122-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020122-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020122-2.c	Sat Dec 10 13:47:29 2005
***************
*** 3,10 ****
    
  /* { dg-do compile } */
  /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
! /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern int access( char* );
  extern int a();
--- 3,9 ----
    
  /* { dg-do compile } */
  /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
! /* { dg-options "-O2 -fprefetch-loop-arrays -march=athlon" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  extern int access( char* );
  extern int a();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020122-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020122-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020122-3.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020122-3.c	Sat Dec 10 13:47:29 2005
***************
*** 4,11 ****
  
  /* { dg-do compile } */
  /* { dg-options "-Os -fprefetch-loop-arrays -w" } */
! /* { dg-options "-Os -fprefetch-loop-arrays -mtune=pentium3 -w" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  int foo (int *p, int n)
  {
--- 4,10 ----
  
  /* { dg-do compile } */
  /* { dg-options "-Os -fprefetch-loop-arrays -w" } */
! /* { dg-options "-Os -fprefetch-loop-arrays -mtune=pentium3 -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  int foo (int *p, int n)
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020122-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020122-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020122-4.c	Fri Mar 15 05:36:37 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020122-4.c	Sun Oct 16 01:14:19 2005
***************
*** 1,8 ****
  /* Alpha -msmall-data didn't transform (mem (symbol_ref)) to
     (mem (lo_sum pic (symbol_ref))) within an asm at the right time.  */
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
  
  void foo()
  {
--- 1,7 ----
  /* Alpha -msmall-data didn't transform (mem (symbol_ref)) to
     (mem (lo_sum pic (symbol_ref))) within an asm at the right time.  */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  
  void foo()
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020201-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020201-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020201-1.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020201-1.c	Thu Mar 31 18:14:11 2005
*************** main ()
*** 38,40 ****
--- 38,42 ----
  {
    doit ();
  }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020201-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020201-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020201-3.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020201-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* This testcase ICEd because a SFmode variable was given a MMX register
-    for which there is no movsf exists.  */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=i686 -mmmx -fno-strict-aliasing" } */
- 
- struct A { unsigned int a, b; };
- 
- void foo (struct A *x, int y, int z)
- {
-    const float d = 1.0;
-    float e = (float) y + z;
- 
-    x->a = *(unsigned int *) &d;
-    x->b = *(unsigned int *) &e;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020206-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020206-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020206-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020206-1.c	Sat Dec 10 13:47:29 2005
***************
*** 4,11 ****
  
  /* { dg-do run } */
  /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
! /* { dg-options "-O2 -fprefetch-loop-arrays -mtune=pentium3 -w" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  struct reload
  {
--- 4,11 ----
  
  /* { dg-do run } */
  /* { dg-options "-O2 -fprefetch-loop-arrays -w" } */
! /* { dg-options "-O2 -fprefetch-loop-arrays -mtune=pentium3 -w" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
! 
  
  struct reload
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020218-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020218-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020218-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020218-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,35 ****
- /* Verify that X86-64 only SSE registers aren't restored on IA-32.  */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -msse" } */
- /* { dg-final { scan-assembler-not "xmm8" } } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- void *bar (void *p, void *q)
- {
-   if (p != (void *) 26 || q != (void *) 35)
-     abort ();
-   return (void *) 76;
- }
- 
- void *foo (void **args)
- {
-   void *argcookie = &args[1];
- 
-   __builtin_return (__builtin_apply (args[0], &argcookie,
- 				     2 * sizeof (void *)));
- }
- 
- int main (void)
- {
-   void *args[3];
- 
-   args[0] = (void *) bar;
-   args[1] = (void *) 26;
-   args[2] = (void *) 35;
-   if (foo (args) != (void *) 76)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020219-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020219-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020219-1.c	Mon Oct 14 22:07:18 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020219-1.c	Mon Mar 28 18:19:12 2005
***************
*** 1,13 ****
  /* PR c/4389
     This testcase failed because host_integerp (x, 0) was returning
!    1 even for constants bigger than 2^31.  It fails under under hpux
!    without -mdisable-indexing because the pointer x - 1 is used as
!    the base address of an indexed load.  Because the struct A is not
     actually allocated, x - 1 lies in the text segment and this causes
!    the wrong space register to be selected for the load.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
  /* { dg-options "-O2 -mdisable-indexing" { target hppa*-*-hpux* } } */
  
  /* Disable the test entirely for 16-bit targets.  */
  #if __INT_MAX__ > 32767
--- 1,18 ----
  /* PR c/4389
     This testcase failed because host_integerp (x, 0) was returning
!    1 even for constants bigger than 2^31.  It fails under under hppa
!    hpux without -mdisable-indexing because the pointer x - 1 is used
!    as the base address of an indexed load.  Because the struct A is not
     actually allocated, x - 1 lies in the text segment and this causes
!    the wrong space register to be selected for the load.  It fails on
!    IA64 hpux in ILP32 mode because extending x - 1 before adding the
!    array offset gives a different answer then adding first and then
!    extending.  The underlying problem is the same as with hppa, x - 1 is
!    not a legal data address.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
  /* { dg-options "-O2 -mdisable-indexing" { target hppa*-*-hpux* } } */
+ /* { dg-skip-if "" { "ia64-*-hpux*" } "*" "-mlp64" } */
  
  /* Disable the test entirely for 16-bit targets.  */
  #if __INT_MAX__ > 32767
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020224-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020224-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020224-1.c	Mon Feb 25 22:49:44 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020224-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,41 ****
- /* PR target/5755
-    This testcase failed because the caller of a function returning struct
-    expected the callee to pop up the hidden return structure pointer,
-    while callee was actually not poping it up (as the hidden argument
-    was passed in register).  */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2 -fomit-frame-pointer" } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- typedef struct {
-    int a1, a2;
- } A;
- 
- A a;
- 
- A __attribute__ ((regparm (2)))
- foo (int x)
- {
-   return a;
- }
- 
- int __attribute__ ((regparm (2)))
- bar (int x)
- {
-   int r = foo(0).a2;
-   return r;
- }
- 
- int
- main ()
- {
-   int f;
-   a.a1 = 530;
-   a.a2 = 980;
-   f = bar (0);
-   if (f != 980)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020310-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020310-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020310-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020310-1.c	Sat Dec 10 13:47:29 2005
***************
*** 2,9 ****
     This testcase was miscompiled because of an rtx sharing bug.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i586" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  struct A
  {
--- 2,8 ----
     This testcase was miscompiled because of an rtx sharing bug.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i586" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  struct A
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020312-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020312-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020312-2.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020312-2.c	Wed Jul 20 06:39:38 2005
*************** extern void abort (void);
*** 44,51 ****
  /* No pic register.  */
  #elif defined(__mn10300__)
  /* No pic register.  */
- #elif #cpu(ns32k)
- /* No pic register.  */
  #elif defined(__hppa__)
  /* PIC register is %r27 or %r19, but is used even without -fpic.  */
  #elif defined(__pdp11__)
--- 44,49 ----
*************** main()
*** 120,126 ****
       save and restore global registers.  Not possible when the PIC
       register is in a register window, of course.  On Darwin, you can't
       call library routines from non-PIC code.  */
! #if !defined (__sparc__) && !(defined(__MACH__) && defined(__POWERPC__))
    if (reg)
      abort ();
  #endif
--- 118,124 ----
       save and restore global registers.  Not possible when the PIC
       register is in a register window, of course.  On Darwin, you can't
       call library routines from non-PIC code.  */
! #if !defined (__sparc__) && !defined(__MACH__)
    if (reg)
      abort ();
  #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020313-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020313-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020313-1.c	Fri Aug 22 21:54:25 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020313-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,72 ****
- /* PR 5312 
-    The problem here is that the ia64 scheduler saw a sequence of L L M type
-    insns, and messed up its internal state on which slot it was issuing
-    to, and aborted.  */
- 
- /* { dg-do compile { target ia64-*-* } } */
- /* In ILP32 mode, we get warnings about large integer constants.
-    Those cause spurious FAILs.  */
- /* { dg-options "-w -O2 -mconstant-gp" } */
- 
- typedef unsigned long __u64;
- typedef unsigned int __u32;
- typedef struct { } spinlock_t;
- struct cpuinfo_ia64 {
-         union {
-                 struct {
-                         __u32 irq_count;
-                         __u32 bh_count;
-                 } f;
-                 __u64 irq_and_bh_counts;
-         } irq_stat;
-         __u32 softirq_pending;
- } __attribute__ ((aligned ((1UL << 14)))) ;
- enum
- {
-         TCA_UNSPEC,
-         TCA_KIND,
-         TCA_OPTIONS,
-         TCA_STATS,
-         TCA_XSTATS,
-         TCA_RATE,
- };
- struct tc_stats
- {
-         __u64 bytes;
-         __u32 packets;
-         __u32 drops;
-         __u32 overlimits;
-         __u32 bps;
-         __u32 pps;
-         __u32 qlen;
-         __u32 backlog;
-         spinlock_t *lock;
- };
- struct sk_buff {
-         unsigned int data_len;
-         unsigned char *tail;
-         unsigned char *end;
- };
- static inline int skb_is_nonlinear(const struct sk_buff *skb)
- {
-         return skb->data_len;
- }
- static inline int skb_tailroom(const struct sk_buff *skb)
- {
-         return skb_is_nonlinear(skb) ? 0 : skb->end-skb->tail;
- }
- struct rtattr
- {
-         unsigned short rta_len;
-         unsigned short rta_type;
- };
- int qdisc_copy_stats(struct sk_buff *skb, struct tc_stats *st)
- {
-         do { do { (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count)++; __asm__ __volatile__("": : :"memory"); } while (0); (void)(st->lock); } while (0);
-         ({ if (skb_tailroom(skb) < (int)( (((( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + ((char*)&st->lock - (char*)st)))+4 -1) & ~(4 -1) )) goto rtattr_failure; __rta_fill(skb, TCA_STATS, (char*)&st->lock - (char*)st, st); });
-         do { do { } while(0); do { do { __asm__ __volatile__("": : :"memory"); (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count)--; } while (0); if (__builtin_expect((((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->softirq_pending), 0) && (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count) == 0) do_softirq(); } while (0); } while (0);
-         return 0;
- rtattr_failure:
-         do { do { } while(0); do { do { __asm__ __volatile__("": : :"memory"); (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count)--; } while (0); if (__builtin_expect((((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->softirq_pending), 0) && (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count) == 0) do_softirq(); } while (0); } while (0);
-         return -1;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020326-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020326-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020326-1.c	Wed Mar 27 10:34:14 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020326-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* PR target/6054 */
- /* { dg-do compile { target ia64-*-* } } */
- /* { dg-options "-O -mconstant-gp" } */
- /* { dg-final { scan-assembler "mov r1 =" } } */
- 
- extern void direct (void);
- void foo(void (*indirect) (void))
- {
-   indirect ();
-   direct ();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020411-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020411-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020411-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020411-1.c	Sat Dec 10 13:47:29 2005
***************
*** 3,10 ****
     for its mode.  */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -march=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  #if __INT_MAX__ > 32767
  
--- 3,9 ----
     for its mode.  */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -march=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  #if __INT_MAX__ > 32767
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020415-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020415-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020415-1.c	Mon Apr 22 01:19:05 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020415-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,9 ****
  /* PR target/6303
     This testcase ICEd because s390 did not define
     ASM_SIMPLIFY_DWARF_ADDR hook.  */
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic -g" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* mmix-*-* } 0 } */
  
  static inline char *
  bar (unsigned long x, char *y)
--- 1,8 ----
  /* PR target/6303
     This testcase ICEd because s390 did not define
     ASM_SIMPLIFY_DWARF_ADDR hook.  */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic -g" } */
  
  static inline char *
  bar (unsigned long x, char *y)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020418-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020418-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020418-1.c	Thu Apr 18 20:10:48 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020418-1.c	Fri Dec  9 23:56:34 2005
***************
*** 1,7 ****
  /* PR optimization/5887 */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -msse -ffast-math" { target i?86-*-* } } */
  
  void bar (float *a, float *b);
  
--- 1,7 ----
  /* PR optimization/5887 */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -msse -ffast-math" { target i?86-*-* x86_64-*-* } } */
  
  void bar (float *a, float *b);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020418-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020418-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020418-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020418-2.c	Sat Dec 10 13:47:29 2005
***************
*** 1,8 ****
  /* PR optimization/6010 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -funroll-all-loops" } */
! /* { dg-options "-O2 -funroll-all-loops -march=pentium3" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  void bar (float);
  
--- 1,7 ----
  /* PR optimization/6010 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -funroll-all-loops" } */
! /* { dg-options "-O2 -funroll-all-loops -march=pentium3" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  void bar (float);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020426-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020426-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020426-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020426-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,7 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-msoft-float -mfp-ret-in-387" } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- 
- void f() {
-   __builtin_apply(0, 0, 0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020426-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020426-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020426-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020426-2.c	Sat Dec 10 13:47:29 2005
***************
*** 2,9 ****
     Distilled from zlib sources.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  extern void exit (int);
--- 2,8 ----
     Distilled from zlib sources.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -frename-registers -fomit-frame-pointer -fPIC -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  extern void exit (int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020430-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020430-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020430-1.c	Fri Feb  7 03:58:05 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020430-1.c	Sun Oct 16 01:14:19 2005
***************
*** 4,10 ****
     until the last moment.  After which we did not delete dead code, 
     which left a reference to the deleted ADDR_VEC.  */
  
! /* { dg-do compile } */
  /* { dg-options "-O2 -frename-registers -fpic" } */
  
  typedef unsigned long XID;
--- 4,10 ----
     until the last moment.  After which we did not delete dead code, 
     which left a reference to the deleted ADDR_VEC.  */
  
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -frename-registers -fpic" } */
  
  typedef unsigned long XID;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020517-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020517-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020517-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020517-1.c	Sat Dec 10 13:47:29 2005
***************
*** 2,9 ****
     was not sign-extended for QImode.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  #include <limits.h>
  
--- 2,8 ----
     was not sign-extended for QImode.  */
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  #include <limits.h>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020523-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020523-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020523-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020523-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,66 ****
- /* PR target/6753
-    This testcase was miscompiled because sse_mov?fcc_const0*
-    patterns were missing earlyclobber.  */
- /* { dg-do run { target i386-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- float one = 1.f;
- 
- void bar (float f)
- {
-   if (__builtin_memcmp (&one, &f, sizeof (float)))
-     abort ();
- }
- 
- float foo (void)
- {
-   return 1.f;
- }
- 
- typedef struct
- {
-   float t;
- } T;
- 
- void bail_if_no_sse (void)
- {
-   int fl1, fl2;
- 
-   /* See if we can use cpuid.  */
-   __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;"
- 	   "pushl %0; popfl; pushfl; popl %0; popfl"
- 	   : "=&r" (fl1), "=&r" (fl2)
- 	   : "i" (0x00200000));
-   if (((fl1 ^ fl2) & 0x00200000) == 0)
-     exit (0);
- 
-   /* See if cpuid gives capabilities.  */
-   __asm__ ("cpuid" : "=a" (fl1) : "0" (0) : "ebx", "ecx", "edx", "cc");
-   if (fl1 == 0)
-     exit (0);
- 
-   /* See if capabilities include SSE (25th bit; 26 for SSE2).  */
-   __asm__ ("cpuid" : "=a" (fl1), "=d" (fl2) : "0" (1) : "ebx", "ecx", "cc");
-   if ((fl2 & (1 << 25)) == 0)
-     exit (0);
- }
- 
- int main (void)
- {
-   int i;
-   T x[1];
- 
-   bail_if_no_sse ();
-   for (i = 0; i < 1; i++)
-     {
-       x[i].t = foo ();
-       x[i].t = 0.f > x[i].t ? 0.f : x[i].t;
-       bar (x[i].t);
-     }
- 
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020523-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020523-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020523-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020523-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,53 ****
- /* PR target/6753
-    This testcase was miscompiled because sse_mov?fcc_const0*
-    patterns were missing earlyclobber.  */
- /* { dg-do run { target i386-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */
- 
- #include "i386-cpuid.h"
- extern void abort (void);
- extern void exit (int);
- 
- float one = 1.f;
- 
- void bar (float f)
- {
-   if (__builtin_memcmp (&one, &f, sizeof (float)))
-     abort ();
- }
- 
- float foo (void)
- {
-   return 1.f;
- }
- 
- typedef struct
- {
-   float t;
- } T;
- 
- void bail_if_no_sse (void)
- {
-   unsigned int edx;
-   /* See if capabilities include SSE (25th bit; 26 for SSE2).  */
-   edx = i386_cpuid();
-   if (!(edx & bit_SSE))
-     exit (0);
- }
- 
- int main (void)
- {
-   int i;
-   T x[1];
- 
-   bail_if_no_sse ();
-   for (i = 0; i < 1; i++)
-     {
-       x[i].t = foo ();
-       x[i].t = 0.f > x[i].t ? 0.f : x[i].t;
-       bar (x[i].t);
-     }
- 
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020531-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020531-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020531-1.c	Tue Mar 16 20:37:29 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020531-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* PR optimization/6842
-    This testcase caused ICE when trying to optimize V8QI subreg of VOIDmode
-    CONST_DOUBLE.  */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O2 -mmmx" } */
- 
- typedef unsigned char __v8qi __attribute__ ((vector_size (8)));
- extern void abort (void);
- extern void exit (int);
- 
- void foo (void)
- {
-   unsigned long long a = 0x0102030405060708LL;
-   unsigned long long b = 0x1020304050607080LL;
-   unsigned long long c;
- 
-   c = (unsigned long long) __builtin_ia32_paddusb ((__v8qi) a, (__v8qi) b);
-   __builtin_ia32_emms ();
-   if (c != 0x1122334455667788LL)
-     abort ();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020616-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020616-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020616-1.c	Sun Jun 16 21:52:45 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020616-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* PR opt/6722 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- register int k asm("%ebx");
- 
- void __attribute__((noinline))
- foo()
- {
-   k = 1;
- }
- 
- void test()
- {
-   int i;
-   for (i = 0; i < 10; i += k)
-     {
-       k = 0;
-       foo();
-     }
- }
- 
- int main()
- {
-   int old = k;
-   test();
-   k = old;
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020729-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020729-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020729-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020729-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,52 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=k6" } */
- 
- static inline void *
- baz (void *s, unsigned long c, unsigned int count)
- {
-   int d0, d1;
-   __asm__ __volatile__ (""
- 			: "=&c" (d0), "=&D" (d1)
- 			:"a" (c), "q" (count), "0" (count / 4), "1" ((long) s)
- 			:"memory");
-   return s;
- }
- 
- struct A
- {
-   unsigned long *a;
- };
- 
- inline static void *
- bar (struct A *x, int y)
- {
-   char *ptr;
- 
-   ptr = (void *) x->a[y >> 12];
-   ptr += y % (1UL << 12);
-   return (void *) ptr;
- }
- 
- int
- foo (struct A *x, unsigned int *y, int z, int u)
- {
-   int a, b, c, d, e;
- 
-   z += *y;
-   c = z + u;
-   a = (z >> 12) + 1;
-   do
-     {
-       b = (a << 12);
-       d = b - z;
-       e = c - z;
-       if (e < d)
- 	d = e;
-       baz (bar (x, z), 0, d);
-       z = b;
-       a++;
-     }
-   while (z < c);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020919-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020919-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020919-1.c	Wed Oct  2 08:26:39 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020919-1.c	Thu Mar 31 00:32:43 2005
***************
*** 31,38 ****
  #elif defined (__i386__)
  # define REG1 "%eax"
  # define REG2 "%edx"
! # define REG3 "%ecx"
! # define REG4 "%ebx"
  #elif defined (__MMIX__)
  # define REG1 "$8"
  # define REG2 "$9"
--- 31,39 ----
  #elif defined (__i386__)
  # define REG1 "%eax"
  # define REG2 "%edx"
! /* On Darwin -fpic is on by default, so don't use %ebx. */
! # define REG3 "%esi"
! # define REG4 "%edi"
  #elif defined (__MMIX__)
  # define REG1 "$8"
  # define REG2 "$9"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20020926-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20020926-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20020926-1.c	Thu Sep 26 18:26:08 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20020926-1.c	Wed Aug 17 08:55:30 2005
***************
*** 2,8 ****
     negative displacements.  */
  
  /* { dg-do compile { target s390-*-* } } */
! /* { dg-options "-O2" } */
  
  int test (int *addr)
  {
--- 2,8 ----
     negative displacements.  */
  
  /* { dg-do compile { target s390-*-* } } */
! /* { dg-options "-O2 -mesa" } */
  
  int test (int *addr)
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20021014-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20021014-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20021014-1.c	Fri Sep  3 18:09:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20021014-1.c	Tue Jan 10 07:36:25 2006
***************
*** 4,10 ****
  /* { dg-options "-O2 -p -static" { target hppa*-*-hpux* } } */
  /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
  /* { dg-error "" "consider using `-pg' instead of `-p' with gprof(1)" { target *-*-freebsd* } 0 } */
- /* { dg-bogus "\[Uu\]nresolved symbol ._mcount" "Profiling unsupported" { xfail *-*-netware* } 0 } */
  
  extern void abort (void);
  extern void exit (int);
--- 4,9 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20021018-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20021018-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20021018-1.c	Fri Sep  3 18:09:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20021018-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,4 ****
! /* { dg-do run } */
  /* { dg-options "-O2 -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
--- 1,4 ----
! /* { dg-do run { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20021023-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20021023-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20021023-1.c	Wed Oct 23 21:20:08 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20021023-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,6 ****
  /* This testcase ICEd on x86-64 because LABEL_REF + small const was not
     considered as local_symbolic_operand.  */
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
  
  typedef __builtin_va_list va_list;
--- 1,6 ----
  /* This testcase ICEd on x86-64 because LABEL_REF + small const was not
     considered as local_symbolic_operand.  */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  
  typedef __builtin_va_list va_list;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20021029-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20021029-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20021029-1.c	Thu Nov 14 07:56:54 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20021029-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,7 ****
  /* Test whether difference of local labels doesn't force
     variables into writable sections.  */
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
  /* { dg-final { scan-assembler-not ".data.rel.ro.local" } } */
  
  int foo (int a)
--- 1,8 ----
  /* Test whether difference of local labels doesn't force
     variables into writable sections.  */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
+ /* { dg-options "-O2 -fpic -mpt-fixed" { target sh64*-*-* } } */
  /* { dg-final { scan-assembler-not ".data.rel.ro.local" } } */
  
  int foo (int a)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20021116-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20021116-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20021116-1.c	Sat Nov 16 20:04:40 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20021116-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,6 ****
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
  
  void **
  foo (void **x, int y, void *z)
--- 1,5 ----
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  
  void **
  foo (void **x, int y, void *z)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030107-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030107-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030107-1.c	Tue Jan  7 20:14:51 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030107-1.c	Thu Mar 31 18:14:11 2005
***************
*** 3,5 ****
--- 3,7 ----
  
  extern void bar(void) __attribute__((noreturn));
  int foo (void) { bar(); }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030120-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030120-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030120-1.c	Tue Jan 21 07:37:13 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030120-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,7 ****
  /* PR 7154 */
! /* { dg-do compile } */
  /* { dg-options "-O -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* mmix-*-* } 0 } */
  
  const int x[1]={ 1 };
  void foo(int i, int *p)
--- 1,6 ----
  /* PR 7154 */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O -fpic" } */
  
  const int x[1]={ 1 };
  void foo(int i, int *p)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030204-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030204-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030204-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030204-1.c	Sat Dec 10 13:47:29 2005
***************
*** 1,8 ****
  /* PR optimization/8555 */
  /* { dg-do compile } */
  /* { dg-options "-O -ffast-math -funroll-loops" } */
! /* { dg-options "-march=pentium3 -O -ffast-math -funroll-loops" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  float foo (float *a, int i)
  {
--- 1,8 ----
  /* PR optimization/8555 */
  /* { dg-do compile } */
  /* { dg-options "-O -ffast-math -funroll-loops" } */
! /* { dg-options "-march=pentium3 -O -ffast-math -funroll-loops" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
! 
  
  float foo (float *a, int i)
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030213-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030213-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030213-1.c	Fri Sep  3 18:09:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030213-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,7 ****
  /* Testcase for http://gcc.gnu.org/ml/gcc-patches/2003-02/msg01017.html */
! /* { dg-do link } */
  /* { dg-options "-O -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  int *g;
--- 1,6 ----
  /* Testcase for http://gcc.gnu.org/ml/gcc-patches/2003-02/msg01017.html */
! /* { dg-do link { target fpic } } */
  /* { dg-options "-O -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  int *g;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030217-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030217-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030217-1.c	Fri May 16 19:35:43 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030217-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /* Test whether denormal floating point constants in hexadecimal notation
-    are parsed correctly.  */
- /* { dg-do run { target i?86-*-linux* x86_64-*-* } } */
- /* { dg-options "-std=c99" } */
- 
- long double d = 0x0.0000003ffffffff00000p-16357L;
- long double e = 0x0.0000003ffffffff00000p-16356L;
- 
- extern void abort (void);
- extern void exit (int);
- 
- int
- main (void)
- {
-   if (d != e / 2.0)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030218-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030218-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030218-1.c	Tue Mar 16 20:37:29 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030218-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do compile { target powerpc-*-eabi* } } */
- /* { dg-options "-mspe=yes" } */
- 
- /* Test vectors that can interconvert without a cast.  */
- 
- __ev64_opaque__ opp;
- int vint   __attribute__((vector_size (8)));
- short vshort __attribute__((vector_size (8)));
- float vfloat __attribute__((vector_size (8)));
- 
- int
- main (void)
- {
-   __ev64_opaque__ george = { 1, 2 }; /* { dg-error "opaque vector types cannot be initialized" } */
- 
-   opp = vfloat;
-   vshort = opp;
-   vfloat = vshort; /* { dg-error "incompatible types in assignment" } */
- 
-   /* Just because this is a V2SI, it doesn't make it an opaque.  */
-   vint = vshort; /* { dg-error "incompatible types in assignment" } */
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030225-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030225-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030225-1.c	Fri Sep  3 18:09:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030225-1.c	Sun Oct 16 01:14:19 2005
***************
*** 3,11 ****
     fixed register.
     Distilled from the xvid sources by Guillaume Morin <guillaume@morinfr.org>
     and Benjamin Herrenschmidt <benh@kernel.crashing.org>.  */
! /* { dg-do run } */
  /* { dg-options "-O2 -fPIC" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* mmix-*-* } 0 } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  extern void exit (int);
--- 3,10 ----
     fixed register.
     Distilled from the xvid sources by Guillaume Morin <guillaume@morinfr.org>
     and Benjamin Herrenschmidt <benh@kernel.crashing.org>.  */
! /* { dg-do run { target fpic } } */
  /* { dg-options "-O2 -fPIC" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
  extern void exit (int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030225-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030225-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030225-2.c	Mon Nov  8 20:49:05 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030225-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,46 ****
- /* { dg-do run { target ia64-*-linux* } } */
- /* { dg-options "-O3" } */
- 
- extern void abort (void);
- extern void exit (int);
- 
- int __attribute__((noinline, const))
- ret4 (float value)
- {
-   return 4;
- }
- 
- int __attribute__((noinline, const))
- ret0 (float value)
- {
-   return 0;
- }
- 
- float __attribute__((noinline))
- test (float x, float y)
- {
-   int clsx = ret4 (x);
-   int clsy = ret0 (y);
- 
-   if (clsx == 0 || clsy == 0
-       || (y < 0 && clsx == 1 && clsy == 1))
-     return x - y;
- 
-   return x < y ? 0 : x - y;
- }
- 
- float a = 0.0, b;
- 
- int main (void)
- {
-   unsigned long e;
-   b = a / a;
-   __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (e));
-   e &= ~0x7e000UL;
-   __asm__ __volatile__ ("mov.m ar.fpsr=%0" :: "r" (e) : "memory");
-   a = test (0, b);
-   __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (e));
-   if (e & 0x2000)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030321-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030321-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030321-1.c	Sat Mar 22 17:52:10 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030321-1.c	Sun Dec  4 13:01:48 2005
***************
*** 7,13 ****
  struct array 
  {
    char align[4092];
!   long long elem[2] __attribute__ ((__packed__));
  };
  
  long long
--- 7,13 ----
  struct array 
  {
    char align[4092];
!   long long elem[2] __attribute__ ((__packed__)); /* { dg-warning "attribute ignored" "" { target default_packed } } */
  };
  
  long long
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030324-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030324-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030324-1.c	Sun Mar 30 20:41:49 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030324-1.c	Wed Jul  6 21:08:02 2005
***************
*** 1,5 ****
  /* { dg-do run } */
! /* { dg-options "-O -fstrength-reduce -fstrict-aliasing -fforce-mem -fgcse" } */
  
  /* PR optimization/10087 */
  /* Contributed by Peter van Hoof <p.van-hoof@qub.ac.uk> */
--- 1,5 ----
  /* { dg-do run } */
! /* { dg-options "-O -fstrength-reduce -fstrict-aliasing -fgcse" } */
  
  /* PR optimization/10087 */
  /* Contributed by Peter van Hoof <p.van-hoof@qub.ac.uk> */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030405-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030405-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030405-1.c	Fri May 16 19:35:43 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030405-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* { dg-do compile { target ia64-*-* } } */
- /* { dg-options "-O2" } */
- 
- int
- foo (int x, int y)
- {
-   if (y == 0)
-     {
-       register long r8 asm ("r8");
-       register long r15 asm ("r15") = 1;
-       long retval;
-       __asm __volatile ("foo" : "=r" (r8), "=r" (r15) : "1" (r15));
-       retval = r8;
-       y = retval;
-     }
- 
-   {
-     register long r8 asm ("r8");
-     register long r15 asm ("r15") = 2;
-     long retval;
-     register long _out1 asm ("out1") = x;
-     register long _out0 asm ("out0") = y;
-     __asm __volatile ("foo"
- 		      : "=r" (r8), "=r" (r15) , "=r" (_out0), "=r" (_out1)
- 		      : "1" (r15) , "2" (_out0), "3" (_out1));
-     retval = r8;
-     return retval;
-   }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030505.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030505.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030505.c	Mon Jul 28 15:00:50 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030505.c	Thu Jan  1 00:00:00 1970
***************
*** 1,20 ****
- /* { dg-do compile { target powerpc-*-eabispe* } } */
- /* { dg-options "-W" } */
- 
- #define __vector __attribute__((vector_size(8)))
- 
- typedef float                   __vector __ev64_fs__;
- 
- __ev64_opaque__ *p1;
- __ev64_fs__ *p2;
- int *x;
- 
- extern void f (__ev64_opaque__ *);
- 
- int main ()
- {
- 	f (x);	/* { dg-warning "incompatible pointer type" } */
- 	f (p1);
- 	f (p2);
- 	return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030702-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030702-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030702-1.c	Mon Aug 25 20:14:45 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030702-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,6 ****
  /* This tests whether REG_ALWAYS_RETURN notes are handled
     correctly in combine.  */
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic -fprofile-arcs" } */
  
  void test (void)
--- 1,6 ----
  /* This tests whether REG_ALWAYS_RETURN notes are handled
     correctly in combine.  */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic -fprofile-arcs" } */
  
  void test (void)
*************** void test (void)
*** 8,10 ****
--- 8,11 ----
    fork ();
  }
  
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030708-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030708-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030708-1.c	Fri Sep  3 18:09:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030708-1.c	Sun Oct 16 01:14:19 2005
***************
*** 1,5 ****
  /* PR c/11420 */
! /* { dg-do link } */
  /* { dg-options "-O2 -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
--- 1,5 ----
  /* PR c/11420 */
! /* { dg-do link { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030711-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030711-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030711-1.c	Sat Aug 27 15:20:37 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030711-1.c	Fri Sep  2 18:13:47 2005
***************
*** 2,7 ****
--- 2,9 ----
     nor any code with memcmp semantics.  */
  /* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* *-*-darwin* } } */
  /* { dg-options "-O2" } */
+ #include <stddef.h>
+ #include <stdio.h>
  #include <sys/mman.h>
  #ifndef MAP_ANONYMOUS
  #define MAP_ANONYMOUS MAP_ANON
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030811-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030811-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030811-1.c	Mon Aug 11 21:53:58 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030811-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,59 ****
- /* Origin: PR target/11693 from Andreas Schwab <schwab@suse.de> */
- /* { dg-do compile { target ia64-*-linux* } } */
- /* { dg-options "-O2 -frename-registers" } */
- 
- static inline unsigned long
- foo (void)
- {
-   unsigned long x;
-   __asm__ __volatile__ ("" : "=r" (x) :: "memory");
-   return x;
- }
- 
- static inline void
- bar (unsigned long x, unsigned long y)
- {
-   __asm__ __volatile__ ("" :: "r"(x), "r"(y) : "memory");
- }
- 
- static inline void
- baz (unsigned long x, unsigned long y, unsigned long z, unsigned long p,
-      unsigned long q)
- {
-   __asm__ __volatile__ ("" :: "r" (q << 2) : "memory");
-   __asm__ __volatile__ ("" :: "r" (z) : "memory");
-   if (x & 0x1)
-     __asm__ __volatile__ ("" :: "r" (y), "r" (p) : "memory");
-   if (x & 0x2)
-     __asm__ __volatile__ ("" :: "r" (y), "r" (p) : "memory");
- }
- 
- static inline unsigned long
- ffz (unsigned long x)
- {
-   unsigned long r;
-   __asm__ ("" : "=r" (r) : "r" (x & (~x - 1)));
-   return r;
- }
- 
- void die (const char *, ...) __attribute__ ((noreturn));
- 
- void
- test (void *x)
- {
-   unsigned long a, c;
- 
-   a = foo ();
-   bar (0xc000000000000000, 0x660);
-   bar (0xa00000000000c000, 0x539);
-   baz (2, 1, 0xa000000000008000,
-        ({ unsigned long b;
- 	  b = ({ unsigned long d; __asm__ ("" : "=r" (d) : "r" (x)); d; })
- 	      + 0x10000000000661;
- 	  b;
- 	}),
-        14);
-   c = ffz (0x1fffffffffffffff);
-   if (c < 51 || c > 61)
-     die ("die", c - 1);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030826-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030826-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030826-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030826-2.c	Sat Dec 10 13:47:29 2005
***************
*** 1,7 ****
  /* { dg-do run } */
  /* { dg-options "-O2 -fomit-frame-pointer" } */
! /* { dg-options "-O2 -fomit-frame-pointer -march=i386" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void abort (void);
  extern void exit (int);
--- 1,6 ----
  /* { dg-do run } */
  /* { dg-options "-O2 -fomit-frame-pointer" } */
! /* { dg-options "-O2 -fomit-frame-pointer -march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  extern void abort (void);
  extern void exit (int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20030926-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20030926-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20030926-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20030926-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* PR optimization/11741  */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -minline-all-stringops" } */
- /* { dg-options "-O2 -minline-all-stringops -march=pentium4" { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- 
- extern void *memcpy (void *, const void *, __SIZE_TYPE__);
- extern __SIZE_TYPE__ strlen (const char *);
- 
- void
- foo (char *p)
- {
-   for (;;)
-     {
-       memcpy (p, p + 1, strlen (p));
-       p++;
-     }
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20031102-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20031102-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20031102-1.c	Sun Nov  2 08:32:23 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20031102-1.c	Fri Dec  9 23:56:34 2005
***************
*** 3,9 ****
  
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -march=i686" { target i686-*-* } } */
  
  /* Verify that reload_cse_move2add doesn't add unexpected CLOBBERs. */
  
--- 3,9 ----
  
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -march=i686" { target { { i686-*-* x86_64-*-* } && ilp32 } } } */
  
  /* Verify that reload_cse_move2add doesn't add unexpected CLOBBERs. */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20031202-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20031202-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20031202-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20031202-1.c	Sat Dec 10 13:47:29 2005
***************
*** 1,7 ****
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void abort (void);
  extern void exit (int);
--- 1,6 ----
  /* { dg-do run } */
  /* { dg-options "-O2" } */
! /* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  extern void abort (void);
  extern void exit (int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040112-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040112-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040112-1.c	Mon Jan 12 16:25:31 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040112-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2" } */
- /* { dg-final { scan-assembler "testb" } } */
- ftn (char *sp)
- {
-   char status;
- 
-   while (1)
-     {
-       *sp = 0xE8;
-       status = *(volatile char *) sp;
-       if (status & 0x80)
- 	break;
-     }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040121-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040121-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040121-1.c	Fri Jan 23 22:45:53 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040121-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,8 ****
- /* { dg-do compile { target powerpc*-*-darwin* } } */
- /* { dg-options "-O2 -mcpu=G5 " } */
- 
- long long (*y)(int t);
- long long get_alias_set (int t)
- {
-   return y(t);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040206-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040206-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040206-1.c	Fri Jan 21 19:05:52 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040206-1.c	Tue May 17 16:56:32 2005
***************
*** 7,11 ****
      The warning about "no return statement in function
      returning non-void" is PR 13000. */
  
! static int foo (int a __attribute__((unused)) ) { }
! int main (void) { return foo (0); } /* { dg-warning "control may reach end" } */
--- 7,11 ----
      The warning about "no return statement in function
      returning non-void" is PR 13000. */
  
! static int foo (int a __attribute__((unused)) ) { } /* { dg-warning "control reaches end of non-void" } */
! int main (void) { return foo (0); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040303-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040303-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040303-1.c	Thu Mar  4 21:21:36 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040303-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,20 ****
- /* Test floating point division on ia64.  There was a bug in the
-    max-throughput version of the inline division code.  Expecting an
-    exact value from a floating point expression is unwise but GCC
-    depends on it in allocno_compare.  */
- 
- /* { dg-do run { target ia64-*-* } } */
- /* { dg-options "-minline-float-divide-max-throughput" { target ia64-*-* } } */
- 
- extern void abort (void);
- 
- volatile int i = 24;
- volatile int j = 30;
- volatile int k = 1;
- 
- int main()
- {
-         int pri2 = (((double) i / j) * (10000 / 1000) * k);
-         if (pri2 != 8) abort();
- 	return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040311-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040311-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040311-2.c	Sat Mar 13 11:22:26 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040311-2.c	Sun Oct 16 01:14:19 2005
***************
*** 1,5 ****
  /* PR target/14533 */
! /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
  
  void bar (char *, int);
--- 1,5 ----
  /* PR target/14533 */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fpic" } */
  
  void bar (char *, int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040622-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040622-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040622-1.c	Tue Jun 22 19:11:43 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040622-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { dg-options "-Os -mlong-double-128" } */
- /* { dg-do compile { target rs6000-*-* powerpc-*-* } } */
- /* Make sure compiler doesn't generate [reg+reg] address mode
-    for long doubles. */
- union arg {
-   int intarg;
-   long double longdoublearg;
- };
- long double d;
- int va(int n, union arg **argtable)
- {
-   (*argtable)[n].longdoublearg = d;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20040813-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20040813-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20040813-1.c	Sat Jan 15 20:28:25 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20040813-1.c	Mon Nov 28 18:10:05 2005
***************
*** 2,8 ****
  /* Contributed by Devang Patel  <dpatel@apple.com>  */
  
  /* { dg-do compile } */
! /* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* } { "*" } { "" } } */
  /* { dg-options "-gstabs" } */
  
  int
--- 2,8 ----
  /* Contributed by Devang Patel  <dpatel@apple.com>  */
  
  /* { dg-do compile } */
! /* { dg-skip-if "No stabs" { mmix-*-* *-*-aix* *-*-netware* alpha*-*-* hppa*64*-*-* ia64-*-* *-*-sysv5* } { "*" } { "" } } */
  /* { dg-options "-gstabs" } */
  
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20041106-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20041106-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20041106-1.c	Mon Nov  8 18:53:59 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20041106-1.c	Sun Dec  4 13:01:48 2005
***************
*** 6,12 ****
  #include <unistd.h>
  #include <stdlib.h>
  
! struct S { long x __attribute__((packed)); };
  volatile long sink;
  
  void foo (struct S *s)
--- 6,12 ----
  #include <unistd.h>
  #include <stdlib.h>
  
! struct S { long x __attribute__((packed)); }; /* { dg-warning "attribute ignored" "" { target default_packed } } */
  volatile long sink;
  
  void foo (struct S *s)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20041111-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20041111-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20041111-1.c	Mon Nov 22 22:11:30 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20041111-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-mcpu=power4 -O2" } */
- 
- extern unsigned long long set_mask[65];
- extern  unsigned long long xyzzy(int) __attribute__((pure));
- 
- int valid (int x)
- {
-   return(xyzzy(x) & set_mask[x]);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050113-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050113-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050113-1.c	Wed Jan 19 09:27:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050113-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,6 ****
- /* PR middle-end/19164 */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-mmmx" } */
- 
- typedef short int V __attribute__ ((vector_size (8)));
- static V v = (V) 0x00FF00FF00FF00FFLL; /* { dg-error "is not constant" } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050309-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050309-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050309-1.c	Wed Mar  9 22:07:51 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050309-1.c	Fri Sep 30 06:17:54 2005
*************** test(char *ret, int *counter, void *sche
*** 35,37 ****
--- 35,38 ----
    return 0;
  }
  
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050321-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050321-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050321-2.c	Mon Jun 20 07:30:34 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050321-2.c	Mon Jun 20 06:45:27 2005
***************
*** 3,9 ****
     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" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
--- 3,9 ----
     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 { target fpic } } */
  /* { dg-options "-g1 -fpic" } */
  /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050325-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050325-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050325-1.c	Wed Mar 30 08:05:21 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050325-1.c	Fri Sep 30 06:17:54 2005
*************** f ()
*** 17,19 ****
--- 17,21 ----
  {
    g (42, ff);
  }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050330-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050330-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050330-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050330-2.c	Thu Dec 15 02:00:58 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fprofile-generate" } */
+ 
+ struct S
+ {
+   int a;
+   void **b;
+ };
+ 
+ void
+ foo (struct S *x, int y)
+ {
+   if (!x)
+     return;
+   if (y >= x->a)
+     return;
+   x->a--;
+   for (; y < x->a; y++)
+     x->b[y] = x->b[y + 1];
+   x->b[x->a] = (void *) 0;
+ }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050503-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050503-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050503-1.c	Wed May  4 07:35:31 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050503-1.c	Fri Dec 16 19:14:20 2005
***************
*** 2,7 ****
--- 2,8 ----
     Test whether tail call information is propagated through builtin
     expanders.  */
  /* { dg-do compile } */
+ /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
  /* { dg-options "-O2" } */
  
  typedef __SIZE_TYPE__ size_t;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050517-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050517-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050517-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050517-1.c	Wed May 18 03:07:44 2005
***************
*** 0 ****
--- 1,8 ----
+ /* Tree PRE is going to transform this so that it doesn't call cos on the 
+    d = 0 path, and in doing so, it needs to regenerate the cos call.
+    This was ICE'ing due to an overly strict check on what it knew how
+    to regenerate.   */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ffast-math" } */
+ double cos(double);
+ double f(double d, double i, int j) { if (j == 1) d = 0; return d * cos(i); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050603-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050603-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050603-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050603-2.c	Sun Jun  5 16:18:12 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ #include <stdlib.h>
+ struct s {
+   unsigned short f: 16;
+   unsigned short y: 8;
+   unsigned short g: 2;
+   unsigned int x;
+ };
+ 
+ void set (struct s*, int) __attribute__((noinline));
+ void set (struct s* p, int flags) {
+   p->g = flags << 1;
+ }
+ main() {
+   struct s foo = {0 , 0, 3, 0};
+   set (&foo, -1);
+   if (foo.g != 2)
+     abort();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050607-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050607-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050607-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050607-1.c	Tue Jun  7 23:36:52 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wpadded" }
+ /* The struct internally constructed for the nested function should
+    not result in a warning from -Wpadded. */
+ extern int baz(int (*) (int));
+ int foo(void)
+ {
+   int k = 3;
+   int bar(int x) {
+     return x + k;
+   }
+   return baz(bar);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050629-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050629-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050629-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050629-1.c	Thu Jun 30 00:51:17 2005
***************
*** 0 ****
--- 1,297 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -w" } */
+ 
+ /* This file was automatically reduced from tree-ssa-operands.c.  It
+    contains many warnings, but it exposes a copy propagation bug that
+    is somewhat difficult to reproduce otherwise.  */
+ 
+ typedef long unsigned int size_t;
+   extern void fancy_abort (const char *, int, const char *) __attribute__ ((__noreturn__));
+   typedef union tree_node *tree;
+   enum tree_code {
+  TREE_LIST, ARRAY_TYPE, RECORD_TYPE, UNION_TYPE, QUAL_UNION_TYPE, STRING_CST, LT_EXPR, GE_EXPR, LABEL_EXPR, ASM_EXPR, SSA_NAME, };
+   enum tree_code_class {
+    tcc_type,   tcc_reference,   tcc_expression };
+   extern const enum tree_code_class tree_code_type[];
+   extern const unsigned char tree_code_length[];
+   struct tree_common {
+    union tree_ann_d *ann;
+    __extension__ enum tree_code code : 8;
+  };
+   struct tree_string {
+    char str[1];
+  };
+   struct tree_list {
+    tree purpose;
+    tree value;
+  };
+   struct tree_exp {
+    tree     operands[1];
+  };
+   typedef struct ssa_use_operand_d {
+    struct ssa_use_operand_d* prev;
+    struct ssa_use_operand_d* next;
+    tree stmt;
+    tree * use;
+  }
+   ssa_use_operand_t;
+   struct tree_ssa_name {
+    struct ssa_use_operand_d imm_uses;
+  };
+   union tree_node {
+    struct tree_common common;
+    struct tree_string string;
+    struct tree_list list;
+    struct tree_exp exp;
+    struct tree_ssa_name ssa_name;
+  };
+   typedef struct bitmap_head_def *bitmap;
+   typedef union varray_data_tag {
+    char c[1];
+    int i[1];
+    tree * tp[1];
+  }
+   varray_data;
+   struct varray_head_tag {
+    size_t num_elements;
+    size_t elements_used;
+    varray_data data;
+  };
+   typedef struct varray_head_tag *varray_type;
+   extern void varray_check_failed (varray_type, size_t, const char *, int,      const char *) __attribute__ ((__noreturn__));
+   typedef ssa_use_operand_t *use_operand_p;
+   struct use_optype_d {
+    struct use_optype_d *next;
+    struct ssa_use_operand_d use_ptr;
+  };
+   typedef struct use_optype_d *use_optype_p;
+   struct ssa_operand_memory_d {
+    char mem[(2048 - sizeof (void *))];
+  };
+   struct stmt_operands_d {
+    struct use_optype_d * use_ops;
+  };
+   struct ptr_info_def {
+    tree name_mem_tag;
+  };
+   typedef struct subvar *subvar_t;
+   struct var_ann_d {
+    size_t uid;
+  };
+   struct stmt_ann_d {
+    unsigned modified : 1;
+    struct stmt_operands_d operands;
+    bitmap addresses_taken;
+  };
+   typedef struct var_ann_d *var_ann_t;
+   typedef struct stmt_ann_d *stmt_ann_t;
+   static __inline__ var_ann_t var_ann (tree t) {
+  }
+   static __inline__ stmt_ann_t stmt_ann (tree t) {
+    ((void)(!(is_gimple_stmt (t)) ? fancy_abort ("/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-flow-inline.h", 55, __FUNCTION__), 0 : 0));
+    return (stmt_ann_t) t->common.ann;
+  }
+   static __inline__ unsigned char stmt_modified_p (tree t) {
+    stmt_ann_t ann = stmt_ann (t);
+    return ann ? ann->modified : 1;
+  }
+   static __inline__ void delink_imm_use (ssa_use_operand_t *linknode) {
+    if (linknode->prev == ((void *)0))     return;
+    linknode->prev->next = linknode->next;
+    linknode->next->prev = linknode->prev;
+    linknode->prev = ((void *)0);
+    linknode->next = ((void *)0);
+  }
+   static __inline__ void link_imm_use_to_list (ssa_use_operand_t *linknode, ssa_use_operand_t *list) {
+    linknode->prev = list;
+    linknode->next = list->next;
+    list->next = linknode;
+  }
+   static __inline__ void link_imm_use (ssa_use_operand_t *linknode, tree def) {
+    ssa_use_operand_t *root;
+    if (!def || ((enum tree_code) (def)->common.code) != SSA_NAME)     linknode->prev = ((void *)0);
+    else     {
+        root = &(__extension__ ({ const tree __t = (def); if (((enum tree_code) (__t)->common.code) != (SSA_NAME)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-flow-inline.h", 222, __FUNCTION__, (SSA_NAME), 0); __t; }
+ )->ssa_name.imm_uses);
+        link_imm_use_to_list (linknode, root);
+      }
+  }
+   static __inline__ void link_imm_use_stmt (ssa_use_operand_t *linknode, tree def, tree stmt) {
+      link_imm_use (linknode, def);
+  }
+   struct ggc_root_tab {
+  };
+   struct opbuild_list_d {
+    varray_type vars;
+    varray_type uid;
+    varray_type next;
+    int first;
+    unsigned num;
+  };
+   static struct opbuild_list_d build_uses;
+   static struct opbuild_list_d build_v_may_defs;
+   static struct ssa_operand_memory_d *operand_memory = ((void *)0);
+   static unsigned operand_memory_index;
+   static use_optype_p free_uses = ((void *)0);
+   static __inline__ int opbuild_next (struct opbuild_list_d *list, int prev) {
+    return __extension__ (*({
+  varray_type const _va = (list->next);
+  const size_t _n = (prev);
+  if (_n >= _va->num_elements) varray_check_failed (_va, _n, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 323, __FUNCTION__);
+  &_va->data.i[_n];
+  }
+ ));
+  }
+   static __inline__ tree * opbuild_elem_real (struct opbuild_list_d *list, int elem) {
+    return __extension__ (*({
+  varray_type const _va = (list->vars);
+  const size_t _n = (elem);
+  if (_n >= _va->num_elements) varray_check_failed (_va, _n, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 332, __FUNCTION__);
+  &_va->data.tp[_n];
+  }
+ ));
+  }
+   static __inline__ void opbuild_clear (struct opbuild_list_d *list) {
+    ((list->vars)->elements_used = 0);
+    ((list->next)->elements_used = 0);
+  }
+   static __inline__ void * ssa_operand_alloc (unsigned size) {
+    char *ptr;
+    if (operand_memory_index + size >= (2048 - sizeof (void *)))     {
+        ptr = ggc_alloc_stat (sizeof (struct ssa_operand_memory_d) );
+      }
+    ptr = &(operand_memory->mem[operand_memory_index]);
+    return ptr;
+  }
+   static __inline__ void correct_use_link (use_operand_p ptr, tree stmt) {
+    use_operand_p prev;
+    tree root;
+    prev = ptr->prev;
+    if (prev)     {
+        unsigned char stmt_mod = 1;
+        while (stmt_mod)  {    while (prev->stmt == stmt || prev->stmt == ((void *)0))      prev = prev->prev;    if (prev->use == ((void *)0))      stmt_mod = 0;    else      if ((stmt_mod = stmt_modified_p (prev->stmt)))        prev = prev->prev;  }
+        if (prev->use == ((void *)0))  root = prev->stmt;
+        else  root = *(prev->use);
+        if (root == *(ptr->use))  return;
+      }
+    delink_imm_use (ptr);
+    link_imm_use (ptr, *(ptr->use));
+  }
+   static __inline__ struct use_optype_d * alloc_use (void) {
+    struct use_optype_d *ret;
+      {
+        free_uses = free_uses->next;
+      }
+      ret = (struct use_optype_d *)ssa_operand_alloc (sizeof (struct use_optype_d));
+    return ret;
+  }
+   static __inline__ void finalize_ssa_use_ops (tree stmt) {
+    int new_i;
+    struct use_optype_d *old_ops, *ptr, *last;
+    tree * old_base;
+    struct use_optype_d new_list;
+    last = &new_list;
+    if (old_ops)     old_base = ((old_ops)->use_ptr.use);
+    while (old_ops && new_i != -1)     {
+        tree * new_base = opbuild_elem_real (&build_uses, (new_i));
+        if (old_base == new_base)         {    last->next = old_ops;    last = old_ops;    correct_use_link ((&((last)->use_ptr)), stmt);    old_ops = old_ops->next;    new_i = opbuild_next (&build_uses, new_i);  }
+        else         if (old_base < new_base)    {      use_operand_p use_p = (&((old_ops)->use_ptr));      delink_imm_use (use_p);      old_ops = old_ops->next;      ptr->next = free_uses;    }
+   else    {      ptr = alloc_use ();      (ptr)->use_ptr.use = (opbuild_elem_real (&build_uses, (new_i))); link_imm_use_stmt (&((ptr)->use_ptr), *(opbuild_elem_real (&build_uses, (new_i))), (stmt));      new_i = opbuild_next (&build_uses, new_i);    }
+        if (old_ops)         old_base = ((old_ops)->use_ptr.use);
+      }
+    for ( ;
+   new_i != -1;
+   new_i = opbuild_next (&build_uses, new_i))     {
+        ptr = alloc_use ();
+        (ptr)->use_ptr.use = (opbuild_elem_real (&build_uses, (new_i)));
+  link_imm_use_stmt (&((ptr)->use_ptr), *(opbuild_elem_real (&build_uses, (new_i))), (stmt));
+      }
+      {
+   {    use_operand_p use_p = (&((ptr)->use_ptr));    delink_imm_use (use_p);  }
+      }
+    (stmt_ann (stmt)->operands.use_ops) = new_list.next;
+    {
+      unsigned x = 0;
+      for (ptr = (stmt_ann (stmt)->operands.use_ops);
+  ptr;
+  ptr = ptr->next)       x++;
+    }
+  }
+   finalize_ssa_uses (tree stmt) {
+    {
+      unsigned x;
+        ((void)(!(*(opbuild_elem_real (&build_uses, x)) != stmt) ? fancy_abort ("/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 581, __FUNCTION__), 0 : 0));
+    }
+    finalize_ssa_use_ops (stmt);
+    opbuild_clear (&build_uses);
+  }
+   finalize_ssa_v_may_def_ops (tree stmt) {
+    int new_i;
+      {
+      }
+    for ( ;
+   new_i != -1;
+   new_i = opbuild_next (&build_v_may_defs, new_i))     {
+      }
+    {
+    }
+  }
+   get_expr_operands (tree stmt, tree *expr_p, int flags) {
+    enum tree_code code;
+    tree expr = *expr_p;
+      {
+        {  subvar_t svars;  if (var_can_have_subvars (expr)      && (svars = get_subvars_for_var (expr)))    {    }    {    }       }
+        {    {      if (code == LT_EXPR   || code == GE_EXPR)        {   swap_tree_operands (stmt,         &__extension__ (*({const tree __t = __extension__ ({ const tree __t = (expr); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1435, __FUNCTION__); __t; }); const int __i = (0); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1435, __FUNCTION__); &__t->exp.operands[__i]; })),         &__extension__ (*({const tree __t = __extension__ ({ const tree __t = (expr); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1436, __FUNCTION__); __t; }); const int __i = (1); if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1436, __FUNCTION__); &__t->exp.operands[__i]; })));        }        {        }    }       }
+      }
+  }
+   get_asm_expr_operands (tree stmt) {
+    int noutputs = list_length (__extension__ (*({
+ const tree __t = __extension__ ({ const tree __t = (__extension__ ({ const tree __t = (stmt); if (((enum tree_code) (__t)->common.code) != (ASM_EXPR)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1495, __FUNCTION__, (ASM_EXPR), 0); __t; })); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1495, __FUNCTION__); __t; }
+ );
+  const int __i = (1);
+  if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1495, __FUNCTION__);
+  &__t->exp.operands[__i];
+  }
+ )));
+    const char **oconstraints     = (const char **) __builtin_alloca((noutputs) * sizeof (const char *));
+    int i;
+    tree link;
+    const char *constraint;
+    unsigned char allows_mem, allows_reg, is_inout;
+      {
+        oconstraints[i] = constraint  = ((const char *)(__extension__ ({ const tree __t = ((__extension__ ({ const tree __t = ((__extension__ ({ const tree __t = (link); if (((enum tree_code) (__t)->common.code) != (TREE_LIST)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1506, __FUNCTION__, (TREE_LIST), 0); __t; })->list.purpose)); if (((enum tree_code) (__t)->common.code) != (TREE_LIST)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1506, __FUNCTION__, (TREE_LIST), 0); __t; })->list.value)); if (((enum tree_code) (__t)->common.code) != (STRING_CST)) tree_check_failed (__t, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1506, __FUNCTION__, (STRING_CST), 0); __t; }
+ )->string.str));
+        parse_output_constraint (&constraint, i, 0, 0,    &allows_mem, &allows_reg, &is_inout);
+        }
+  }
+   get_indirect_ref_operands (tree stmt, tree expr, int flags) {
+    tree *pptr = &__extension__ (*({
+ const tree __t = __extension__ ({ const tree __t = (expr); char const __c = tree_code_type[(int) (((enum tree_code) (__t)->common.code))]; if (!((__c) >= tcc_reference && (__c) <= tcc_expression)) tree_class_check_failed (__t, tcc_expression, "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1591, __FUNCTION__); __t; }
+ );
+  const int __i = (0);
+  if (__i < 0 || __i >= tree_code_length[(int) (((enum tree_code) (__t)->common.code))]) tree_operand_check_failed (__i, ((enum tree_code) (__t)->common.code), "/home/cygnus/dnovillo/gcc/src.ppc64/gcc/tree-ssa-operands.c", 1591, __FUNCTION__);
+  &__t->exp.operands[__i];
+  }
+ ));
+    tree ptr = *pptr;
+      {
+        struct ptr_info_def *pi = ((void *)0);
+        if (((enum tree_code) (ptr)->common.code) == SSA_NAME    && pi->name_mem_tag)  {  }
+      }
+  }
+   note_addressable (tree var, stmt_ann_t s_ann) {
+    subvar_t svars;
+      {
+        if (var_can_have_subvars (var)    && (svars = get_subvars_for_var (var)))  bitmap_set_bit (s_ann->addresses_taken, var_ann (var)->uid);
+      }
+  }
+   const struct ggc_root_tab gt_ggc_r_gt_tree_ssa_operands_h[] = {
+    {
+      &operand_memory,   }
+ ,   {
+    }
+ ,   {
+    }
+ ,   {
+    }
+ , };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050702-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050702-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050702-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050702-1.c	Sat Jul  2 16:24:31 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* We going into an infinite loop in fold because we
+     were mishandling the return value of 
+     fold_to_nonsharp_ineq_using_bound. */
+ _Bool f();
+ void g(int);
+ void h (int old_size)
+ {
+    int new_size = old_size, i;
+    g(old_size - 1);
+    i = 0;
+    while (i < old_size - 1)
+    {
+      if (f())
+      {
+        i++;
+        continue;
+      }
+      while (i < old_size - 1)
+        i++;
+    }
+    g(new_size);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050811-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050811-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050811-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050811-1.c	Sat Aug 20 16:03:58 2005
***************
*** 0 ****
--- 1,20 ----
+ /* Test whether -dav doesn't crash.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -dav" } */
+ 
+ int foo (void)
+ {
+   return 6;
+ }
+ 
+ int bar (int x)
+ {
+   if (x < 0)
+     return foo () + 8;
+   else if (x > 0)
+     return 2 * foo ();
+   else
+     return foo ();
+ }
+ 
+ // { dg-final { cleanup-rtl-dump "*" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050811-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050811-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050811-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050811-2.c	Sat Aug 20 16:03:58 2005
***************
*** 0 ****
--- 1,20 ----
+ /* Test whether -dov doesn't crash.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -dov" } */
+ 
+ int foo (void)
+ {
+   return 6;
+ }
+ 
+ int bar (int x)
+ {
+   if (x < 0)
+     return foo () + 8;
+   else if (x > 0)
+     return 2 * foo ();
+   else
+     return foo ();
+ }
+ 
+ // { dg-final { cleanup-rtl-dump "postreload*" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050824-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050824-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050824-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050824-1.c	Wed Oct 19 20:55:14 2005
***************
*** 0 ****
--- 1,34 ----
+ /* Make sure that the S/390 specific shift_count_operand
+    predicate work properly.  */
+ 
+ /* { dg-do compile { target s390*-*-* } } */
+ /* { dg-options "-O3" } */
+ 
+ unsigned long long
+ f (unsigned long long a, unsigned long b)
+ {
+   asm ("" : : : 
+ #ifdef __s390x__
+ 		"r13", "r14",
+ #endif
+ 		"r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7", 
+                 "r8", "r9", "r10", "r11", "r12");
+ 
+   return a << ((b + 3) & 63);
+ }
+ 
+ unsigned long long
+ g (unsigned long long a, char **b , int c, int d, int e, int f)
+ {
+   char buffer [4096];
+ 
+   *b = &buffer[0];
+ 
+   return a << ((unsigned long)&f & 63);
+ }
+ 
+ unsigned long long
+ h (unsigned long long a, int b, int c, int d, int e, int f)
+ {
+   return a << (((unsigned long)&f + 3));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050826-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050826-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050826-1.c	Sat Aug 27 15:20:37 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050826-1.c	Fri Sep  2 18:13:47 2005
***************
*** 2,7 ****
--- 2,9 ----
     nor any code with memcmp semantics.  */
  /* { dg-do run { target i?86-*-linux* x86_64-*-linux* ia64-*-linux* alpha*-*-linux* powerpc*-*-linux* s390*-*-linux* sparc*-*-linux* i?86-*-darwin* powerpc-*-darwin*} } */
  /* { dg-options "-O2" } */
+ #include <stddef.h>
+ #include <stdio.h>
  #include <sys/mman.h>
  /* Darwin spells this differently */
  #ifndef MAP_ANONYMOUS
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20050922-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20050922-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20050922-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20050922-1.c	Mon Oct 24 12:55:37 2005
***************
*** 0 ****
--- 1,47 ----
+ /* This revealed a bug when rotates are expanded into
+    two shifts.  */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-O1 -std=c99" } */
+ 
+ #include <stdlib.h>
+ 
+ #if __INT_MAX__ == 2147483647
+ typedef unsigned int uint32_t;
+ #elif __LONG_MAX__ == 2147483647
+ typedef unsigned long uint32_t;
+ #else
+ #error unable to find 32-bit integer type
+ #endif
+ 
+ uint32_t
+ f (uint32_t *S, int j)
+ {
+   uint32_t A, B, k, L[2] = {1234, 5678};
+   int i, m;
+ 
+   A = B = 0;
+   for (i = 0; i < j; i++)
+     {
+       k = (S[i] + A + B) & 0xffffffffL;
+       A = S[i] =
+       ((k << (3 & 0x1f)) | ((k & 0xffffffff) >> (32 - (3 & 0x1f)))); 
+ 
+       m = (int) (A + B);
+       k = (L[i] + A + B) & 0xffffffffL;
+       B = L[i] =
+ 	((k << (m & 0x1f)) | ((k & 0xffffffff) >> (32 - (m & 0x1f))));
+     }
+   return L[0] + L[1];
+ }
+ 
+ int
+ main ()
+ {
+   uint32_t S[2] = {0xffff, 0xffffff};
+ 
+   if (f (S,2)!= 1392607300)
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/20051201-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/20051201-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/20051201-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/20051201-1.c	Sun Dec 18 15:49:33 2005
***************
*** 0 ****
--- 1,26 ----
+ /* This failed with profiling due to a missing check in
+    tree_flow_call_edges_add.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fprofile-generate" } */
+ 
+ static __attribute__ ((always_inline)) void 
+ baz ()
+ {
+ }
+ 
+ static __attribute__ ((always_inline)) int
+ bar ()
+ {
+  out:
+   baz ();
+   goto out;
+ }
+ 
+ int
+ foo ()
+ {
+   long res;
+   
+   res = bar ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980211-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980211-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980211-1.c	Wed Oct  2 08:26:39 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980211-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* Test long double on x86 and x86-64. */
- 
- /* { dg-do run { target i?86-*-* x86_64-*-*} } */
- /* { dg-options -O2 } */
- 
- extern void abort (void);
- 
- __inline int
- __signbitl (long double __x)
- {
-   union { long double __l; int __i[3]; } __u = { __l: __x };
- 
-   return (__u.__i[2] & 0x8000) != 0;
- }
- 
- void
- foo (long double x, long double y)
- {
-   long double z = x / y;
-   if (__signbitl (x) && __signbitl (z))
-     abort ();
- }
- 
- int main()
- {
-   if (sizeof (long double) > sizeof (double))
-     foo (-0.0, -1.0);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980217-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980217-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980217-1.c	Sat Aug 14 07:57:37 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980217-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- /* Test float on alpha. */
- 
- /* { dg-do run { target alpha*-*-* } } */
- /* { dg-options "-mieee -O2" } */
- 
- extern void abort(void);
- extern int printf(const char *, ...);
- 
- typedef int int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
- typedef union
- {
-   float value;
-   int32_t word;
- } ieee_float_shape_type;
- 
- int isinff(float x)
- {
-   int32_t ix,t;
-   ieee_float_shape_type gf_u;
-   gf_u.value = x;
-   ix = gf_u.word;
-   printf ("%x\n", ix);
-   t = ix & 0x7fffffff;
-   t ^= 0x7f800000;
-   t |= -t;
-   return ~(t >> 31) & (1 - ((ix & 0x80000000) >> 30));
- }
- 
- main ()
- {
-   float x = 1.0 / 0.0;
-   int i = isinff (x);
- 
-   if (i == 0)
-     abort ();
- 
-   printf ("%d\n", i);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980226-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980226-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980226-1.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980226-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options -O2 } */
- 
- extern int printf (const char *, ...);
- extern double bar (double);
- 
- int
- baz (double d)
- {
-   double e = bar (d);
-   asm volatile ("" : : : "st");
-   return printf ("%lg\n", e);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980312-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980312-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980312-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980312-1.c	Thu May 26 21:22:01 2005
***************
*** 1,5 ****
! /* { dg-do link { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  /* { dg-options "-O2 -march=pentiumpro" } */
  
  extern __inline  double
--- 1,5 ----
! /* { dg-do link { target i?86-*-* x86_64-*-* } } */
! /* { dg-require-effective-target ilp32 } */
  /* { dg-options "-O2 -march=pentiumpro" } */
  
  extern __inline  double
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980313-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980313-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980313-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980313-1.c	Thu May 26 21:22:01 2005
***************
*** 1,5 ****
! /* { dg-do link { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  /* { dg-options "-O2 -march=pentiumpro" } */
  
  extern __inline  double
--- 1,5 ----
! /* { dg-do link { target i?86-*-* x86_64-*-* } } */
! /* { dg-require-effective-target ilp32 } */
  /* { dg-options "-O2 -march=pentiumpro" } */
  
  extern __inline  double
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980414-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980414-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980414-1.c	Tue May 23 19:30:44 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980414-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,78 ****
- /* Test double on x86. */
- 
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options -O2 } */
- 
- extern void abort (void);
- 
- static __inline  double
- mypow (double __x, double __y)
- {
-   register double __value, __exponent;
-   long __p = (long) __y;
-   if (__y == (double) __p)
-     {
-       double __r = 1.0;
-       if (__p == 0)
- 	return 1.0;
-       if (__p < 0)
- 	{
- 	  __p = -__p;
- 	  __x = 1.0 / __x;
- 	}
-       while (1)
- 	{
- 	  if (__p & 1)
- 	    __r *= __x;
- 	  __p >>= 1;
- 	  if (__p == 0)
- 	    return __r;
- 	  __x *= __x;
- 	}
-     }
-   __asm __volatile__
-     ("fmul	%%st(1),%%st\n\t"	/* y * log2(x) */
-      "fst	%%st(1)\n\t"
-      "frndint\n\t"			/* int(y * log2(x)) */
-      "fxch  %%st(1)\n\t"
-      "fsub	%%st(1),%%st\n\t"	/* fract(y * log2(x)) */
-      "f2xm1\n\t"			/* 2^(fract(y * log2(x))) - 1 */
-      : "=t" (__value), "=u" (__exponent) :  "0" (__x), "1" (__y));
-   __value += 1.0;
-   __asm __volatile__
-     ("fscale"
-      : "=t" (__value) : "0" (__value), "u" (__exponent));
-   return __value;
- }
- 
- const double E1 = 2.71828182845904523536028747135;
- 
- double fact (double x)
- {
-   double corr;
-   corr = 1.0;
-   return corr * mypow(x/E1, x);
- }
- 
- int main ()
- {
-   double y, z;
- 
-   y = fact (46.2);
-   z = mypow (46.2/E1, 46.2);
- 
- #if 0
-   printf ("%26.19e, %26.19e\n", y, z);
- #endif
- 
-   if (y > z)
-     y -= z;
-   else
-     y = z - y;
- 
-   y /= z;
-   if (y > 0.1)
-     abort ();
-  
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980520-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980520-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980520-1.c	Wed Dec 16 22:23:10 1998
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980520-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options -O2 } */
- 
- int bug(void)
- {
-         unsigned long a, b;
-    
-         __asm__(""
-                 : "=d" (a)
-                 :
-                 : "memory");
-         __asm__ __volatile__(""
-                              :
-                              : "g" (b)
-                              : "memory");
-         return a;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980709-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980709-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980709-1.c	Wed Dec 16 22:23:13 1998
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980709-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,20 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options -O2 } */
- 
- extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
- {
- 	int oldbit;
- 	__asm__ __volatile__( "" 
- 		"btsl %2,%1\n\tsbbl %0,%0"
- 		:"=r" (oldbit),"=m" (addr)
- 		:"ir" (nr));
- 	return oldbit;
- }
- struct buffer_head {
- 	unsigned long b_state;		 
- };
- extern void lock_buffer(struct buffer_head * bh)
- {
- 	while (test_and_set_bit(2 , &bh->b_state))
- 		__wait_on_buffer(bh);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980816-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980816-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980816-1.c	Wed Feb  6 20:40:17 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980816-1.c	Wed Jul  6 21:08:02 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
- /* { dg-options -fno-force-mem } */
  
  int
  div_and_round_double (lden_orig, hden_orig)
--- 1,4 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/980827-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/980827-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/980827-1.c	Mon Jun 26 23:11:54 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/980827-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* { dg-do run { target rs6000-*-linux* powerpc-*-linux*} } */
- /* { dg-options -O2 } */
- 
- extern void exit (int);
- extern void abort (void);
- 
- double dval = 0;
- 
- void splat (double d);
- 
- int main(void)
- {
-   splat(0);
-   if (dval == 0)
-     abort();
-   exit (0);
- }
- 
- void splat (double d)
- {
-   union {
-     double f;
-     unsigned int l[2];
-   } u;
-   
-   u.f = d + d;
-   u.l[1] |= 1;
-   asm volatile ("stfd %0,dval@sdarel(13)" : : "f" (u.f));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/990117-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/990117-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/990117-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/990117-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=pentiumpro" } */
- 
- extern __inline  double
- fabs (double __x)
- {
-   register double __value;
-   __asm __volatile__
-     ("fabs"
-      : "=t" (__value) : "0" (__x));
-   return __value;
- }
- int
- foo ()
- {
-   int i, j, k;
-   double x = 0, y = ((i == j) ? 1 : 0);
-   for (i = 0; i < 10; i++)
-     ;
-   fabs (x - y);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/990130-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/990130-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/990130-1.c	Sat Sep  4 15:09:14 1999
--- gcc-4.1.0/gcc/testsuite/gcc.dg/990130-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options -O0 } */
- 
- typedef 	 int SItype	__attribute__ ((mode (SI)));
- typedef		 int DItype	__attribute__ ((mode (DI)));
- typedef unsigned int USItype	__attribute__ ((mode (SI)));
-   struct DIstruct {SItype low, high;};
- typedef union
- {
-   struct DIstruct s;
-   DItype ll;
- } DIunion;
- DItype
- __muldi3 (DItype u, DItype v)
- {
-   DIunion w;
-   DIunion uu, vv;
-   uu.ll = u,
-   vv.ll = v;
-   w.ll = ({DIunion __w;	__asm__ ("mull %3"	: "=a" ((USItype) (  __w.s.low )),	"=d" ((USItype) ( __w.s.high ))	: "%0" ((USItype) (   uu.s.low  )),	"rm" ((USItype) (    vv.s.low  ))) ;	__w.ll; }) ;
-   w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
- 	       + (USItype) uu.s.high * (USItype) vv.s.low);
-   return w.ll;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/990213-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/990213-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/990213-2.c	Wed Feb  6 20:40:17 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/990213-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-fPIC" } */
- 
- struct normal_encoding {};
- struct unknown_encoding {};
- static const struct normal_encoding latin1_encoding = {};
- 
- struct encoding*
- XmlInitUnknownEncoding(void *mem)
- {
-   int i;
-   struct unknown_encoding *e = mem;
-   for (i = 0; i < sizeof(struct normal_encoding); i++)
-     ((char *)mem)[i] = ((char *)&latin1_encoding)[i];
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/990214-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/990214-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/990214-1.c	Wed Feb  6 20:40:17 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/990214-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-fPIC" } */
- 
- typedef int int64_t __attribute__ ((__mode__ (  __DI__ ))) ;
- unsigned *
- bar (int64_t which)
- {
- 	switch (which & 15 ) {
- 	case 0 :
- 		break;
- 	case 1 :
- 	case 5 :
- 	case 2 : ;
- 	}
- 
- 	return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/990424-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/990424-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/990424-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/990424-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,30 ****
- /* Test that stack alignment is preserved with pending_stack_adjust
-    with stdcall functions.  */
- 
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options -mpreferred-stack-boundary=4 } */
- 
- void __attribute__((stdcall)) foo(int a, int b, int c);
- 
- extern void abort (void);
- extern void exit (int);
- 
- int
- main ()
- {
-   foo(1, 2, 3);
-   foo(1, 2, 3);
-   exit (0);
- }
- 
- void __attribute__((stdcall))
- foo(int a, int b, int c)
- {
-   static int last_align = -1;
-   int dummy, align = (int)&dummy & 15;
-   if (last_align < 0)
-     last_align = align;
-   else if (align != last_align)
-     abort ();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/990524-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/990524-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/990524-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/990524-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=pentiumpro" } */
- 
- typedef struct t_anim_info {
-    char        *new_filename;
-    long         first_frame_nr; 
- } t_anim_info;
- static int
- p_frames_to_multilayer(t_anim_info *ainfo_ptr,
-                       long range_from, long range_to)
- {
-   long    l_cur_frame_nr;
-   long    l_step, l_begin, l_end;
-   int  l_tmp_image_id;
-   int  l_new_image_id;
-   if(range_from > range_to)
-   {
-     l_step  = -1;      
-     if(range_to < ainfo_ptr->first_frame_nr)
-     { l_begin = ainfo_ptr->first_frame_nr; 
-      }
-   }
-   else
-   {
-     l_step  = 1;       
-   }
-   l_cur_frame_nr = l_begin;
-   while(1)
-   {
-     if(ainfo_ptr->new_filename == ((void *)0) )
-     if(l_tmp_image_id < 0)
-       gimp_image_delete(l_tmp_image_id);
-     if(l_cur_frame_nr == l_end)
-        break;
-     l_cur_frame_nr += l_step;
-   }
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/991129-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/991129-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/991129-1.c	Mon Nov 29 12:18:56 1999
--- gcc-4.1.0/gcc/testsuite/gcc.dg/991129-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* Test against a problem in push_reload.  */
- 
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- unsigned long foo (unsigned long long x, unsigned long y)
- {
-     unsigned long a;
- 
-     x += y;
- 
-     asm ("" : "=a" (a) : "A" (x), "rm" (y));
- 
-     return a;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/991209-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/991209-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/991209-1.c	Sat Sep 11 21:29:42 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/991209-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-ansi -pedantic" } */
- 
- int foo ()
- {
-   return 1;
- }
- 
- register char *stack_ptr __asm ("%esp"); /* { dg-warning "warning: file-scope declaration of 'stack_ptr' specifies 'register'" } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/991214-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/991214-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/991214-1.c	Thu Feb 26 14:30:13 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/991214-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- /* Test against a problem with the combiner substituting explicit hard reg
-    references when it shouldn't.  */
- void foo (int, int) __attribute__ ((regparm (3)));
- void __attribute__((regparm(3))) foo (int x, int y)
- {
-   __asm__ __volatile__("" : : "d" (x), "r" (y));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/991230-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/991230-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/991230-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/991230-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O -ffast-math -mtune=i486" } */
- 
- /* Test that floating point greater-than tests are compiled correctly with
-    -ffast-math.  */
- 
- extern void abort (void);
- 
- static int gt (double a, double b)
- {
-   if (a > b)
-     return 4;
-   return 0;
- }
- 
- static double zero = 0.0;
- 
- int main ()
- {
-   if (gt (zero, zero))
-     abort ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Foundation.framework/empty gcc-4.1.0/gcc/testsuite/gcc.dg/Foundation.framework/empty
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Foundation.framework/empty	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Foundation.framework/empty	Fri Apr 15 01:55:58 2005
***************
*** 0 ****
--- 1 ----
+ This directory is empty.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wattributes-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wattributes-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wattributes-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wattributes-1.c	Wed May 25 04:18:19 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options -Wattributes } */
+ 
+ void __attribute__((dj)) foo() { }	/* { dg-warning "attribute directive ignored" } */
+ 
+ int j __attribute__((unrecognized));	/* { dg-warning "attribute directive ignored" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wattributes-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wattributes-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wattributes-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wattributes-2.c	Wed May 25 04:18:19 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options -Wno-attributes } */
+ 
+ void __attribute__((dj)) foo() { }	/* { dg-bogus "attribute directive ignored" } */
+ 
+ int j __attribute__((unrecognized));	/* { dg-bogus "attribute directive ignored" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wattributes-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wattributes-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wattributes-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wattributes-3.c	Wed May 25 04:18:19 2005
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ 
+ void __attribute__((dj)) foo() { }	/* { dg-warning "attribute directive ignored" } */
+ 
+ int j __attribute__((unrecognized));	/* { dg-warning "attribute directive ignored" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wcxx-compat-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wcxx-compat-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wcxx-compat-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wcxx-compat-1.c	Thu Jun  9 22:21:48 2005
***************
*** 0 ****
--- 1,11 ----
+ /* PR c/21759  */
+ /* { dg-options "-Wc++-compat" } */
+ 
+ int
+ main(void)
+ {
+    void *p = 0;
+    int *q = p;                  /* { dg-warning "not permitted" } */
+    double* t = (void *)0;
+    return p != q;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-1.c	Wed Apr 20 01:10:00 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Test -Wint-to-pointer-cast - on by default.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ char c;
+ 
+ void *
+ f (void)
+ {
+   return (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-2.c	Wed Apr 20 01:10:00 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Test -Wint-to-pointer-cast.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wint-to-pointer-cast" } */
+ 
+ char c;
+ 
+ void *
+ f (void)
+ {
+   return (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wint-to-pointer-cast-3.c	Wed Apr 20 01:10:00 2005
***************
*** 0 ****
--- 1,20 ----
+ /* Test -Wno-int-to-pointer-cast.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-int-to-pointer-cast" } */
+ 
+ char c;
+ 
+ void *
+ f (void)
+ {
+   return (void *) c;
+ }
+ 
+ void *p;
+ 
+ char
+ g (void)
+ {
+   return (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-Wall-no.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-Wall-no.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-Wall-no.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-Wall-no.c	Thu Jan 26 19:06:06 2006
***************
*** 0 ****
--- 1,9 ----
+ /* This is from PR c/25892.  See Wpointer-sign.c for more details.  */
+ 
+ /* { dg-options "-Wno-pointer-sign -Wall" } */
+ 
+ void foo(unsigned long* ulp);
+ 
+ void bar(long* lp) {
+   foo(lp);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-Wall.c	Thu Jan 26 19:06:06 2006
***************
*** 0 ****
--- 1,9 ----
+ /* This is from PR c/25892.  See Wpointer-sign.c for more details.  */
+ 
+ /* { dg-options "-Wall" } */
+ 
+ void foo(unsigned long* ulp);
+ 
+ void bar(long* lp) {
+   foo(lp); /* { dg-warning "differ in signedness" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic-no.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic-no.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic-no.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic-no.c	Thu Jan 26 19:06:06 2006
***************
*** 0 ****
--- 1,9 ----
+ /* This is from PR c/25892.  See Wpointer-sign.c for more details.  */
+ 
+ /* { dg-options "-Wno-pointer-sign -pedantic" } */
+ 
+ void foo(unsigned long* ulp);
+ 
+ void bar(long* lp) {
+   foo(lp);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign-pedantic.c	Thu Jan 26 19:06:06 2006
***************
*** 0 ****
--- 1,9 ----
+ /* This is from PR c/25892.  See Wpointer-sign.c for more details.  */
+ 
+ /* { dg-options "-pedantic" } */
+ 
+ void foo(unsigned long* ulp);
+ 
+ void bar(long* lp) {
+   foo(lp); /* { dg-warning "differ in signedness" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-sign.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-sign.c	Thu Jan 26 19:06:06 2006
***************
*** 0 ****
--- 1,13 ----
+ /* This is from PR c/25892.  The SC promised RMS that -Wpointer-sign
+    would be off by default in GCC 4.1 to avoid inconvenient warnings
+    while compiling GNU Emacs.  It should be enabled with -Wall and/or
+    -pedantic, though.  Make sure it's off by default in this test (so
+    use dg-options "" to avoid passing -pedantic-errors).  */
+ 
+ /* { dg-options "" } */
+ 
+ void foo(unsigned long* ulp);
+ 
+ void bar(long* lp) {
+   foo(lp);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-1.c	Wed Apr 20 01:10:00 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Test -Wpointer-to-int-cast - on by default.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ void *p;
+ 
+ char
+ f (void)
+ {
+   return (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-2.c	Wed Apr 20 01:10:00 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Test -Wpointer-to-int-cast.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wpointer-to-int-cast" } */
+ 
+ void *p;
+ 
+ char
+ f (void)
+ {
+   return (char) p; /* { dg-warning "warning: cast from pointer to integer of different size" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wpointer-to-int-cast-3.c	Wed Apr 20 01:10:00 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Test -Wno-pointer-to-int-cast.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-pointer-to-int-cast" } */
+ 
+ void *p;
+ 
+ char
+ f (void)
+ {
+   return (char) p;
+ }
+ 
+ 
+ char c;
+ 
+ void *
+ g (void)
+ {
+   return (void *) c; /* { dg-warning "warning: cast to pointer from integer of different size" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wshadow-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wshadow-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wshadow-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wshadow-3.c	Fri Jul 29 23:58:37 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Test warnings for shadowing in function prototype scope: generally
+    useless but of use if the parameter is used within the scope.  Bug
+    529.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu89 -Wshadow" } */
+ 
+ int v; /* { dg-warning "shadowed declaration" } */
+ int f1(int v);
+ int f2(int v, int x[v]); /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f3(int v, int y[sizeof(v)]); /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f4(int v) { return 0; } /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f5(int v, int x[v]) { return 0; } /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f6(int x) { return 0; }
+ int f7(v) int v; { return 0; } /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f8(v, w) int v; int w[v]; { return 0; } /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f9(x) int x; { return 0; }
+ int f10(v) { return 0; } /* { dg-warning "warning: declaration of 'v' shadows a global declaration" } */
+ int f11(int a, int b(int a));
+ int f12(int a, int b(int a, int x[a])); /* { dg-warning "warning: declaration of 'a' shadows a parameter" } */
+ /* { dg-warning "shadowed declaration" "outer parm" { target *-*-* } 20 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/Wunused-value-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/Wunused-value-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/Wunused-value-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/Wunused-value-1.c	Sat Aug  6 11:31:49 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Test -Wunused-value.  Bug 23113.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wunused-value" } */
+ 
+ int f (void);
+ void g (void);
+ int *p;
+ 
+ void
+ h (void)
+ {
+   1 + f (); /* { dg-warning "value computed is not used" } */
+   f () + f (); /* { dg-warning "value computed is not used" } */
+   f () + f (), f (); /* { dg-warning "value computed is not used" } */
+   (char) f (); /* { dg-warning "value computed is not used" } */
+   g ();
+   f ();
+   (void) f ();
+   *p++; /* { dg-warning "value computed is not used" } */
+   ++*p;
+   (*p ? f() : 0);
+   ({ f(); });
+   /* Statement expressions may be used in macro expansions which like
+      functions return values which may or may not be of use, so don't
+      warn for them but do warn inside them.  */
+   ({ f() + 1; });
+   ({ f(); 0; });
+   ({ f() + 1; 0; }); /* { dg-warning "value computed is not used" } */
+   1 + ({ f(); }); /* { dg-warning "value computed is not used" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alias-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/alias-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alias-7.c	Tue Mar 29 15:41:04 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alias-7.c	Fri Apr  1 07:06:37 2005
***************
*** 4,10 ****
  
  extern void abort (void);
  
! int foo __asm__ ("foo") __attribute__((nocommon));
  extern __typeof (foo) bar __attribute__ ((weak, alias ("foo")));
  
  int
--- 4,14 ----
  
  extern void abort (void);
  
! #define ASMNAME(cname)  ASMNAME2 (__USER_LABEL_PREFIX__, cname)
! #define ASMNAME2(prefix, cname) STRING (prefix) cname
! #define STRING(x)    #x
! 
! int foo __asm__ (ASMNAME ("foo")) __attribute__((nocommon));
  extern __typeof (foo) bar __attribute__ ((weak, alias ("foo")));
  
  int
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alias-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/alias-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alias-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alias-8.c	Thu Jun  9 11:36:12 2005
***************
*** 0 ****
--- 1,12 ----
+ // { dg-do compile }
+ // { dg-options "-Wstrict-aliasing=2 -fstrict-aliasing" }
+ 
+ struct s {
+   char    *p;
+ };
+ 
+ void
+ func(struct s *ptr)
+ {
+   *(void **)&ptr->p = 0; /* { dg-warning "type-punned pointer" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alias-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/alias-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alias-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alias-9.c	Thu Dec  8 11:24:07 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-aliasing -O2" } */
+ 
+ int a[2];
+ 
+ double *foo1(void)
+ {
+   return (double *)a; /* { dg-warning "strict-aliasing" } */
+ }
+ 
+ double *foo2(void)
+ {
+   return (double *)&a[0]; /* { dg-warning "strict-aliasing" } */
+ }
+ 
+ _Complex x;
+ int *bar(void)
+ {
+   return (int *)&__imag x; /* { dg-warning "strict-aliasing" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-base-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-base-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-base-1.c	Tue Jun  4 22:46:00 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-base-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,73 ****
- /* Test that the base isa builtins compile.  */
- /* { dg-do link { target alpha*-*-* } } */
- /* { dg-options "-mcpu=ev4" } */
- 
- void test_BASE (long x, long y)
- {
-   volatile long sink;
-   long z;
- 
-   sink = __builtin_alpha_implver ();
-   sink = __builtin_alpha_rpcc ();
- 
-   sink = __builtin_alpha_amask (-1);
-   sink = __builtin_alpha_amask (x);
- 
-   sink = __builtin_alpha_cmpbge (x, y);
-   sink = __builtin_alpha_cmpbge (-1, x);
- 
-   sink = __builtin_alpha_extbl (x, y);
-   sink = __builtin_alpha_extwl (x, y);
-   sink = __builtin_alpha_extll (x, y);
-   sink = __builtin_alpha_extql (x, y);
-   sink = __builtin_alpha_extwh (x, y);
-   sink = __builtin_alpha_extlh (x, y);
-   sink = __builtin_alpha_extqh (x, y);
- 
-   sink = __builtin_alpha_insbl (x, y);
-   sink = __builtin_alpha_inswl (x, y);
-   sink = __builtin_alpha_insll (x, y);
-   sink = __builtin_alpha_insql (x, y);
-   sink = __builtin_alpha_inswh (x, y);
-   sink = __builtin_alpha_inslh (x, y);
-   sink = __builtin_alpha_insqh (x, y);
- 
-   sink = __builtin_alpha_mskbl (x, y);
-   sink = __builtin_alpha_mskwl (x, y);
-   sink = __builtin_alpha_mskll (x, y);
-   sink = __builtin_alpha_mskql (x, y);
-   sink = __builtin_alpha_mskwh (x, y);
-   sink = __builtin_alpha_msklh (x, y);
-   sink = __builtin_alpha_mskqh (x, y);
- 
-   sink = __builtin_alpha_umulh (x, y);
- }
- 
- void test_zap (long x, long y)
- {
-   volatile long sink;
-   long z;
-   sink = __builtin_alpha_zap (x, y);
-   sink = __builtin_alpha_zap (x, 0xaa);
-   z = 0xaa;
-   sink = __builtin_alpha_zap (x, z);
-   z = 0;
-   sink = __builtin_alpha_zap (z, x);
-   sink = __builtin_alpha_zap (x, z);
- }
- 
- void test_zapnot (long x, long y)
- {
-   volatile long sink;
-   long z;
- 
-   sink = __builtin_alpha_zapnot (x, y);
-   sink = __builtin_alpha_zapnot (x, 0xaa);
-   z = 0xaa;
-   sink = __builtin_alpha_zapnot (x, z);
-   z = 0;
-   sink = __builtin_alpha_zapnot (z, x);
-   sink = __builtin_alpha_zapnot (x, z);
- }
- 
- int main() { return 0; }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-base-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-base-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-base-2.c	Tue Jun  4 04:06:38 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-base-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- /* Test that alpha-base-1.c compiles with optimization.  */
- /* { dg-do link { target alpha*-*-* } } */
- /* { dg-options "-mcpu=ev4 -O2" } */
- 
- #include "alpha-base-1.c"
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-cix-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-cix-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-cix-1.c	Tue Jun  4 22:46:00 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-cix-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* Test that the CIX isa builtins compile.  */
- /* { dg-do link { target alpha*-*-* } } */
- /* { dg-options "-mcpu=ev67" } */
- 
- void test_CIX (long x)
- {
-   volatile long sink;
- 
-   sink = __builtin_alpha_cttz (x);
-   sink = __builtin_alpha_ctlz (x);
-   sink = __builtin_alpha_ctpop (x);
- }
- 
- int main() { return 0; }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-cix-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-cix-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-cix-2.c	Tue Jun  4 22:46:00 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-cix-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- /* Test that alpha-cix-1.c compiles with optimization.  */
- /* { dg-do link { target alpha*-*-* } } */
- /* { dg-options "-mcpu=ev67 -O2" } */
- 
- #include "alpha-cix-1.c"
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-max-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-max-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-max-1.c	Tue Jun  4 22:46:00 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-max-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- /* Test that the MAX isa builtins compile.  */
- /* { dg-do link { target alpha*-*-* } } */
- /* { dg-options "-mcpu=pca56" } */
- 
- void test_MAX (long x, long y)
- {
-   volatile long sink;
- 
-   sink = __builtin_alpha_pklb (x);
-   sink = __builtin_alpha_pkwb (x);
-   sink = __builtin_alpha_unpkbl (x);
-   sink = __builtin_alpha_unpkbw (x);
- 
-   sink = __builtin_alpha_minub8 (0, x);
-   sink = __builtin_alpha_minub8 (1, x);
-   sink = __builtin_alpha_minub8 (x, y);
-   sink = __builtin_alpha_minsb8 (x, y);
-   sink = __builtin_alpha_minuw4 (x, y);
-   sink = __builtin_alpha_minsw4 (x, y);
-   sink = __builtin_alpha_maxub8 (x, y);
-   sink = __builtin_alpha_maxsb8 (x, y);
-   sink = __builtin_alpha_maxuw4 (x, y);
-   sink = __builtin_alpha_maxsw4 (x, y);
-   sink = __builtin_alpha_perr (x, y);
- }
- 
- int main() { return 0; }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-max-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-max-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/alpha-max-2.c	Tue Jun  4 22:46:00 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/alpha-max-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,5 ****
- /* Test that alpha-max-1.c compiles with optimization.  */
- /* { dg-do link { target alpha*-*-* } } */
- /* { dg-options "-mcpu=pca56 -O2" } */
- 
- #include "alpha-max-1.c"
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-1.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,42 ****
- /* { dg-do run { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- /* Program to test PowerPC AltiVec instructions.  */
- 
- #include <altivec.h>
- #include "altivec_check.h"
- 
- extern void abort (void);
- 
- vector int a1 = { 100, 200, 300, 400 };
- vector int a2 = { 500, 600, 700, 800 };
- vector int addi = { 600, 800, 1000, 1200 };
- vector int avgi = { 300, 400, 500, 600 };
- 
- vector float f1 = { 1.0, 2.0, 3.0, 4.0 };  
- vector float f2 = { 5.0, 6.0, 7.0, 8.0 };
- vector float f3;
- vector float addf = { 6.0, 8.0, 10.0, 12.0 };
- 
- vector int k;
- vector float f, g, h;
- 
- int main ()
- {
-   altivec_check();  /* Exits if AltiVec not supported */
- 
-   k = vec_add (a1, a2);
-   if (!vec_all_eq (addi, k))
-     abort ();
- 
-   k = vec_avg (a1, a2);
-   if (!vec_all_eq (k, avgi))
-     abort ();
- 
-   h = vec_add (f1, f2);
-   if (!vec_all_eq (h, addf))
-     abort ();
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-10.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-10.c	Thu Jan  1 00:00:00 1970
***************
*** 1,80 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
- 
- #include <altivec.h>
- #include <signal.h>
- 
- #include "altivec_check.h"
- 
- typedef union
- {
-   float         f[4];
-   unsigned int  i[4];
-   vector float  v;
- } vec_float_t;
- 
- void 
- check_vec_all_num ()
- {
-   vec_float_t a, b, c;
- 
-   a.i[0] = 0xfffa5a5a;
-   a.f[1] = 1.0;
-   a.f[2] = 1.0;
-   a.f[3] = 1.0;
- 
-   b.f[0] = 1.0;
-   b.f[1] = 1.0;
-   b.f[2] = 1.0;
-   b.f[3] = 1.0;
- 
-   c.i[0] = 0xfffa5a5a;
-   c.i[1] = 0xfffa5a5a;
-   c.i[2] = 0xfffa5a5a;
-   c.i[3] = 0xfffa5a5a;
- 
-   if (vec_all_numeric (a.v))
-     abort ();
- 
-   if (vec_all_nan (a.v))
-     abort ();
- 
-   if (!vec_all_numeric (b.v))
-     abort ();
- 
-   if (vec_all_nan (b.v))
-     abort ();
- 
-   if (vec_all_numeric (c.v))
-     abort ();
- 
-   if (!vec_all_nan (c.v))
-     abort ();
- 
- }
- 
- void 
- check_cmple()
- {
-   vector float a = {1.0, 2.0, 3.0, 4.0};
-   vector float b = {1.0, 3.0, 2.0, 5.0};
-   vector bool int aux;
-   vector signed int le = {-1, -1, 0, -1};
- 
-   aux = vec_cmple (a, b);
- 
-   if (!vec_all_eq (aux, le))
-     abort ();
- }
- 
- 
- int 
- main()
- {
-   altivec_check ();
- 
-   check_cmple ();
-   check_vec_all_num ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-11.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-11.c	Thu Jan  1 00:00:00 1970
***************
*** 1,59 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-O2 -maltivec -mabi=altivec" } */
- /* { dg-final { scan-assembler-not "lvx" } } */
- #include <altivec.h>
- 
- void foo (vector int);
- void foo_s (vector short);
- void foo_c (vector char);
- 
- /* All constants should be loaded into vector register without
-    load from memory.  */
- void
- bar (void) 
- {
-   foo ((vector int) {0, 0, 0, 0});
-   foo ((vector int) {1, 1, 1, 1});
-   foo ((vector int) {15, 15, 15, 15});
-   foo ((vector int) {-16, -16, -16, -16});
-   foo ((vector int) {0x10001, 0x10001, 0x10001, 0x10001});
-   foo ((vector int) {0xf000f, 0xf000f, 0xf000f, 0xf000f});
-   foo ((vector int) {0xfff0fff0, 0xfff0fff0, 0xfff0fff0, 0xfff0fff0});
-   foo ((vector int) {0x1010101, 0x1010101, 0x1010101, 0x1010101});  
-   foo ((vector int) {0xf0f0f0f, 0xf0f0f0f, 0xf0f0f0f, 0xf0f0f0f});  
-   foo ((vector int) {0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0});
-   foo ((vector int) {0x10101010, 0x10101010, 0x10101010, 0x10101010});
-   foo ((vector int) {0x1e1e1e1e, 0x1e1e1e1e, 0x1e1e1e1e, 0x1e1e1e1e});
-   foo ((vector int) {0x100010, 0x100010, 0x100010, 0x100010});
-   foo ((vector int) {0x1e001e, 0x1e001e, 0x1e001e, 0x1e001e});
-   foo ((vector int) {0x10, 0x10, 0x10, 0x10});
-   foo ((vector int) {0x1e, 0x1e, 0x1e, 0x1e});
- 
-   foo_s ((vector short int) {0, 0, 0, 0, 0, 0, 0, 0});
-   foo_s ((vector short int) {1, 1, 1, 1, 1, 1, 1, 1});
-   foo_s ((vector short int) {15, 15, 15, 15, 15, 15, 15, 15});
-   foo_s ((vector short int) {-16, -16, -16, -16, -16, -16, -16, -16});
-   foo_s ((vector short int) {0xf0f0, 0xf0f0, 0xf0f0, 0xf0f0, 
- 			       0xf0f0, 0xf0f0, 0xf0f0, 0xf0f0});
-   foo_s ((vector short int) {0xf0f, 0xf0f, 0xf0f, 0xf0f, 
- 			       0xf0f, 0xf0f, 0xf0f, 0xf0f});
-   foo_s ((vector short int) {0x1010, 0x1010, 0x1010, 0x1010, 
- 			       0x1010, 0x1010, 0x1010, 0x1010});
-   foo_s ((vector short int) {0x1e1e, 0x1e1e, 0x1e1e, 0x1e1e, 
- 			       0x1e1e, 0x1e1e, 0x1e1e, 0x1e1e});
- 
-   foo_c ((vector char) {0, 0, 0, 0, 0, 0, 0, 0,
- 			  0, 0, 0, 0, 0, 0, 0, 0});
-   foo_c ((vector char) {1, 1, 1, 1, 1, 1, 1, 1, 
- 			  1, 1, 1, 1, 1, 1, 1, 1});
-   foo_c ((vector char) {15, 15, 15, 15, 15, 15, 15, 15,
- 			  15, 15, 15, 15, 15, 15, 15, 15});
-   foo_c ((vector char) {-16, -16, -16, -16, -16, -16, -16, -16,
- 			  -16, -16, -16, -16, -16, -16, -16, -16});
-   foo_c ((vector char) {16, 16, 16, 16, 16, 16, 16, 16,
- 			  16, 16, 16, 16, 16, 16, 16, 16});
-   foo_c ((vector char) {30, 30, 30, 30, 30, 30, 30, 30,
- 			  30, 30, 30, 30, 30, 30, 30, 30});
- 
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-12.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-12.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-12.c	Thu Jan  1 00:00:00 1970
***************
*** 1,96 ****
- /* { dg-do run { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- /* Program to test PowerPC AltiVec instructions.  */
- 
- #include <altivec.h>
- #include "altivec_check.h"
- 
- extern void abort (void);
- #define CHECK_IF(E) if(!(E)) abort()
- 
- vector int a1 = (vector int){ 100, 200, 300, 400 };
- vector int a2 = (vector int){ 500, 600, 700, 800 };
- vector int addi = (vector int){ 600, 800, 1000, 1200 };
- vector int avgi = (vector int){ 300, 400, 500, 600 };
- 
- vector float f1 = (vector float){ 1.0, 2.0, 3.0, 4.0 };
- vector float f2 = (vector float){ 5.0, 6.0, 7.0, 8.0 };
- vector float f3;
- vector float addf1 = (vector float){ 6.0, 8.0, 10.0, 12.0 };
- vector float addf2 = (vector float){ 6.1, 8.1, 10.1, 12.1 };
- vector float addf3 = (vector float){ 6.0, 8.0, 9.9, 12.1 };
- vector int k;
- vector float f, g, h;
- 
- int main ()
- {
- 
-   altivec_check();  /* Exit if AltiVec not available.  */
- 
-   k = vec_add (a1, a2);
-   CHECK_IF (vec_all_eq (addi, k));
-   CHECK_IF (vec_all_ge (addi, k));
-   CHECK_IF (vec_all_le (addi, k));
-   CHECK_IF (vec_any_eq (addi, k));
-   CHECK_IF (vec_any_ge (addi, k));
-   CHECK_IF (vec_any_le (addi, k));
-   CHECK_IF (!vec_any_ne (addi, k));
-   CHECK_IF (!vec_any_lt (addi, k));
-   CHECK_IF (!vec_any_gt (addi, k));
-   CHECK_IF (!vec_any_ne (addi, k));
-   CHECK_IF (!vec_any_lt (addi, k));
-   CHECK_IF (!vec_any_gt (addi, k));
- 
-   k = vec_avg (a1, a2);
-   CHECK_IF (vec_all_eq (k, avgi));
- 
-   h = vec_add (f1, f2);
-   CHECK_IF (vec_all_eq (h, addf1));
-   CHECK_IF (vec_all_ge (h, addf1));
-   CHECK_IF (vec_all_le (h, addf1));
-   CHECK_IF (vec_any_eq (h, addf1));
-   CHECK_IF (vec_any_ge (h, addf1));
-   CHECK_IF (vec_any_le (h, addf1));
-   CHECK_IF (!vec_any_ne (h, addf1));
-   CHECK_IF (!vec_any_lt (h, addf1));
-   CHECK_IF (!vec_any_gt (h, addf1));
-   CHECK_IF (!vec_any_ne (h, addf1));
-   CHECK_IF (!vec_any_lt (h, addf1));
-   CHECK_IF (!vec_any_gt (h, addf1));
- 
-   CHECK_IF (vec_all_gt (addf2, addf1));
-   CHECK_IF (vec_any_gt (addf2, addf1));
-   CHECK_IF (vec_all_ge (addf2, addf1));
-   CHECK_IF (vec_any_ge (addf2, addf1));
-   CHECK_IF (vec_all_ne (addf2, addf1));
-   CHECK_IF (vec_any_ne (addf2, addf1));
-   CHECK_IF (!vec_all_lt (addf2, addf1));
-   CHECK_IF (!vec_any_lt (addf2, addf1));
-   CHECK_IF (!vec_all_le (addf2, addf1));
-   CHECK_IF (!vec_any_le (addf2, addf1));
-   CHECK_IF (!vec_all_eq (addf2, addf1));
-   CHECK_IF (!vec_any_eq (addf2, addf1));
- 
-   CHECK_IF (vec_any_eq (addf3, addf1));
-   CHECK_IF (vec_any_ne (addf3, addf1));
-   CHECK_IF (vec_any_lt (addf3, addf1));
-   CHECK_IF (vec_any_le (addf3, addf1));
-   CHECK_IF (vec_any_gt (addf3, addf1));
-   CHECK_IF (vec_any_ge (addf3, addf1));
-   CHECK_IF (!vec_all_eq (addf3, addf1));
-   CHECK_IF (!vec_all_ne (addf3, addf1));
-   CHECK_IF (!vec_all_lt (addf3, addf1));
-   CHECK_IF (!vec_all_le (addf3, addf1));
-   CHECK_IF (!vec_all_gt (addf3, addf1));
-   CHECK_IF (!vec_all_ge (addf3, addf1));
- 
-   CHECK_IF (vec_all_numeric (addf3));
-   CHECK_IF (vec_all_in (addf1, addf2));
- 
-   CHECK_IF (vec_step (vector bool char) == 16);
-   CHECK_IF (vec_step (addf3) == 4);
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-13.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-13.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-13.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-13.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- /* Author: Ziemowit Laski  <zlaski@apple.com>  */
- 
- /* This test case exercises intrinsic/argument combinations that,
-    while not in the Motorola AltiVec PIM, have nevertheless crept
-    into the AltiVec vernacular over the years.  */
- 
- #include <altivec.h>
- 
- void foo (void) 
- {
-   vector bool int boolVec1 = (vector bool int) vec_splat_u32(3);
-   vector bool short boolVec2 = (vector bool short) vec_splat_u16(3);
-   vector bool char boolVec3 = (vector bool char) vec_splat_u8(3);
- 
-   boolVec1 = vec_sld( boolVec1, boolVec1, 4 );
-   boolVec2 = vec_sld( boolVec2, boolVec2, 2 );
-   boolVec3 = vec_sld( boolVec3, boolVec3, 1 );
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-14.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-14.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-14.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do compile { target powerpc-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- #include <altivec.h>
- 
- vector bool long vbl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- vector signed long vsl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- vector unsigned long vul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- vector bool long *pvbl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- vector signed long *pvsl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- vector unsigned long *pvul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- 
- void fvbl (vector bool long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- void fvsl (vector signed long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- void fvul (vector unsigned long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
- 
- int main ()
- {
-   vector bool long lvbl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
-   vector signed long lvsl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
-   vector unsigned long lvul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-15.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-15.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-15.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-15.c	Thu Jan  1 00:00:00 1970
***************
*** 1,30 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- #include <altivec.h>
- 
- /* Test whether the C front-end is not excessively picky about
-    the integral types and literals that AltiVec instrinsics will
-    accept.  */
- 
- vector int vi = { 1, 2, 3, 4 };
- 
- int
- main (void)
- {
-     unsigned long ul = 2;
-     signed long sl = 2;
-     unsigned int ui = 2;
-     signed int si = 2;
-     float fl = 2.0;
- 
-     vec_dst (&vi, ul, '\0');
-     vec_dst (&vi, sl, 0);
-     vec_dst (&vi, ui, '\0');
-     vec_dst (&vi, si, 0);
-     vec_dstst (&vi, (short)fl, '\0');
- 
-     return 0;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-16.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-16.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-16.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-16.c	Thu Jan  1 00:00:00 1970
***************
*** 1,20 ****
- /* This is a compile-only test for interaction of "-maltivec" and "-save-temps".  */
- /* Author:  Ziemowit Laski  <zlaski@apple.com>.  */
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-save-temps -maltivec" } */
- 
- #include <altivec.h>
- 
- #define vector_float vector float
- #define vector_float_foo vector float foo
- #define vector_float_bar_eq vector float bar =
- 
- /* NB: Keep the following split across three lines.  */
- vector
- int
- a1 = { 100, 200, 300, 400 };
- 
- vector_float f1 = { 1.0, 2.0, 3.0, 4.0 };  
- vector_float_foo = { 3.0, 4.0, 5.0, 6.0 };
- vector_float_bar_eq { 8.0, 7.0, 6.0, 5.0 };
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-17.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-17.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-17.c	Mon Aug 16 17:09:13 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-17.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* Verify a statement in the GCC Manual that GCC allows the use of a
-    typedef name as a vector type specifier.  */
- 
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec -mabi=altivec" } */
- 
- typedef unsigned int ui;
- typedef signed char sc;
- __vector ui vui;
- __vector sc vsc;
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-18.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-18.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-18.c	Fri Dec  3 17:37:12 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-18.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec -mabi=altivec" } */
- /* { dg-final { scan-assembler "vcmpgtub" { target *-*-linux* } } } */
- /* { dg-final { scan-assembler "vcmpgtsb" { target *-*-darwin* } } } */
- /* { dg-final { scan-assembler "vcmpgtsh" } } */
- /* { dg-final { scan-assembler "vcmpgtsw" } } */
- 
- /* Verify a statement in the GCC Manual that vector type specifiers can
-    omit "signed" or "unsigned".  The default is the default signedness
-    of the base type, which differs depending on the ABI.  */
- 
- #include <altivec.h>
- 
- extern vector char vc1, vc2;
- extern vector short vs1, vs2;
- extern vector int vi1, vi2;
- 
- int signedness (void)
- {
-     return vec_all_le (vc1, vc2) 
-            && vec_all_le (vs1, vs2)
-            && vec_all_le (vi1, vi2);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-19.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-19.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-19.c	Sun Feb  6 08:51:32 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-19.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec" } */
- /* { dg-final { scan-assembler "dst" } } */
- 
- void foo ( char* image )
- {
-   while ( 1 )
-     {
-       __builtin_altivec_dst( (void *)( (long)image & ~0x0f ), 0, 0 );
-       image += 48;
-     }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-2.c	Sat Feb 21 09:08:37 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,35 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec" } */
- 
- /* Program to test the vector_size attribute.  This needs to run on a
-    target that has vectors, so use AltiVec.  */
- 
- #define vector __attribute__((vector_size(16)))
- 
- vector int foobar;
- 
- /* Only floats and integrals allowed.  We don't care if they map to SIs.  */
- struct X { int frances; };
- vector struct X hotdog;	/* { dg-error "invalid vector type" } */
- 
- /* Arrays of vectors.  */
- vector char b[10], ouch;
- 
- /* Pointers of vectors.  */
- vector short *shoe, polish;
- 
- int xxx[sizeof(foobar) == 16 ? 69 : -1];
- 
- int nc17[sizeof(shoe) == sizeof (char *) ? 69 : -1];
- 
- code ()
- {
-   *shoe = polish;
-   b[1] = ouch;
- }
- 
- vector short
- hoop ()
- {
-   return polish;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-20.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-20.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-20.c	Fri Feb 25 01:16:17 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-20.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec -mcpu=G5 -O2" } */
- 
- #include <altivec.h>
- 
- void foo( float scalar)
- {
-     unsigned long width;
-     unsigned long x;
-     vector float vColor;
-     vector unsigned int selectMask;
-     vColor = vec_perm( vec_ld( 0, &scalar), vec_ld( 3, &scalar), vec_lvsl( 0, &scalar) );
- 
-     float *destRow;
-     vector float store, load0;
- 
-     for( ; x < width; x++)
-     {
-             load0 = vec_sel( vColor, load0, selectMask );
-             vec_st( store, 0, destRow );
-             store = load0;
-     }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-3.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,79 ****
- /* { dg-do run { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- #include "altivec_check.h"
- 
- typedef int int4 __attribute__ ((vector_size (16)));
- typedef float float4 __attribute__ ((vector_size (16)));
- 
- int4 a1 = (int4) { 100, 200, 300, 400 };
- int4 a2 = (int4) { 500, 600, 700, 800 };
- 
- float4 f1 = (float4) { 1.0, 2.0, 3.0, 4.0 };  
- float4 f2 = (float4) { 5.0, 6.0, 7.0, 8.0 };
- 
- int i3[4] __attribute__((aligned(16)));
- int j3[4] __attribute__((aligned(16)));
- float h3[4] __attribute__((aligned(16)));
- float g3[4] __attribute__((aligned(16)));
- 
- #define vec_store(dst, src) \
-   __builtin_altivec_st_internal_4si ((int *) dst, (int4) src)
- 
- #define vec_add_int4(x, y) \
-   __builtin_altivec_vaddsws (x, y)
- 
- #define vec_add_float4(x, y) \
-   __builtin_altivec_vaddfp (x, y)
- 
- #define my_abs(x) (x > 0.0F ? x : -x)
- 
- void
- compare_int4 (int *a, int *b)
- {
-   int i;
- 
-   for (i = 0; i < 4; ++i)
-     if (a[i] != b[i])
-       abort ();
- }
- 
- void
- compare_float4 (float *a, float *b)
- {
-   int i;
- 
-   for (i = 0; i < 4; ++i)
-     if (my_abs(a[i] - b[i]) >= 1.0e-6)
-       abort ();
- }
- 
- void
- main1 ()
- {
-   int loc1 = 600, loc2 = 800;
-   int4 a3 = (int4) { loc1, loc2, 1000, 1200 };
-   int4 itmp;
-   double locf = 12.0;
-   float4 f3 = (float4) { 6.0, 8.0, 10.0, 12.0 };
-   float4 ftmp;
- 
-   vec_store (i3, a3);
-   itmp = vec_add_int4 (a1, a2);
-   vec_store (j3, itmp);
-   compare_int4 (i3, j3);
- 
-   vec_store (g3, f3);
-   ftmp = vec_add_float4 (f1, f2);
-   vec_store (h3, ftmp);
-   compare_float4 (g3, h3);
- }
- 
- int
- main ()
- {
-   altivec_check ();
-   main1 ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-4.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,65 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec -O0 -Wall" } */
- 
- #define vector __attribute__((vector_size(16)))
- 
- static int vector x, y;
- 
- static vector signed int i,j;
- static vector signed short s,t;
- static vector signed char c,d;
- static vector float f,g;
- 
- static vector unsigned char uc;
- 
- static vector signed int *pi;
- 
- static int int1, int2;
- 
- void
- b()
- {
-   __builtin_altivec_vadduwm (x, y);
- 
-   /* Make sure the predicates accept correct argument types.  */
-   
-   int1 = __builtin_altivec_vcmpbfp_p (0, f, g);
-   int1 = __builtin_altivec_vcmpeqfp_p (0, f, g);
-   int1 = __builtin_altivec_vcmpequb_p (0, c, d);
-   int1 = __builtin_altivec_vcmpequh_p (0, s, t);
-   int1 = __builtin_altivec_vcmpequw_p (0, i, j);
-   int1 = __builtin_altivec_vcmpgefp_p (0, f, g);
-   int1 = __builtin_altivec_vcmpgtfp_p (0, f, g);
-   int1 = __builtin_altivec_vcmpgtsb_p (0, c, d);
-   int1 = __builtin_altivec_vcmpgtsh_p (0, s, t);
-   int1 = __builtin_altivec_vcmpgtsw_p (0, i, j);
-   int1 = __builtin_altivec_vcmpgtub_p (0, c, d);
-   int1 = __builtin_altivec_vcmpgtuh_p (0, s, t);
-   int1 = __builtin_altivec_vcmpgtuw_p (0, i, j);
- 
-   __builtin_altivec_mtvscr (i);
-   __builtin_altivec_dssall ();
-   s = __builtin_altivec_mfvscr ();
-   __builtin_altivec_dss (3);
- 
-   __builtin_altivec_dst (pi, int1 + int2, 3);
-   __builtin_altivec_dstst (pi, int1 + int2, 3);
-   __builtin_altivec_dststt (pi, int1 + int2, 3);
-   __builtin_altivec_dstt (pi, int1 + int2, 3);
- 
-   uc = (vector unsigned char) __builtin_altivec_lvsl (int1 + 69, pi);
-   uc = (vector unsigned char) __builtin_altivec_lvsr (int1 + 69, pi);
- 
-   c = __builtin_altivec_lvebx (int1, pi);
-   s = __builtin_altivec_lvehx (int1, pi);
-   i = __builtin_altivec_lvewx (int1, pi);
-   i = __builtin_altivec_lvxl (int1, pi);
-   i = __builtin_altivec_lvx (int1, pi);
- 
-   __builtin_altivec_stvx (i, int2, pi);
-   __builtin_altivec_stvebx (c, int2, pi);
-   __builtin_altivec_stvehx (s, int2, pi);
-   __builtin_altivec_stvewx (i, int2, pi);
-   __builtin_altivec_stvxl (i, int2, pi);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-5.c	Sat Feb 21 09:08:37 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec -O2" } */
- 
- #define vector __attribute__((vector_size(16)))
- 
- void foo (const unsigned long x,
- 	  vector signed int a, vector signed int b)
- {
-   unsigned char d[64];
- 
-   __builtin_altivec_stvewx (b, 0, d);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-6.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,66 ****
- /* { dg-do compile { target powerpc-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec -O0 -Wall" } */
- 
- #include <altivec.h>
- 
- /* These denote "generic" GCC vectors.  */
- static int __attribute__((vector_size(16))) x, y;
- 
- static vector signed int i,j;
- static vector signed short s,t;
- static vector signed char c,d;
- static vector float f,g;
- 
- static vector unsigned char uc;
- 
- static vector signed int *pi;
- 
- static int int1, int2;
- 
- void
- b()
- {
-   vec_add (x, y);
- 
-   /* Make sure the predicates accept correct argument types.  */
- 
-   int1 = vec_all_in (f, g);
-   int1 = vec_all_ge (f, g);
-   int1 = vec_all_eq (c, d);
-   int1 = vec_all_ne (s, t);
-   int1 = vec_any_eq (i, j);
-   int1 = vec_any_ge (f, g);
-   int1 = vec_all_ngt (f, g);
-   int1 = vec_any_ge (c, d);
-   int1 = vec_any_ge (s, t);
-   int1 = vec_any_ge (i, j);
-   int1 = vec_any_ge (c, d);
-   int1 = vec_any_ge (s, t);
-   int1 = vec_any_ge (i, j);
- 
-   vec_mtvscr (i);
-   vec_dssall ();
-   s = (vector signed short) vec_mfvscr ();
-   vec_dss (3);
- 
-   vec_dst (pi, int1 + int2, 3);
-   vec_dstst (pi, int1 + int2, 3);
-   vec_dststt (pi, int1 + int2, 3);
-   vec_dstt (pi, int1 + int2, 3);
- 
-   uc = (vector unsigned char) vec_lvsl (int1 + 69, (signed int *) pi);
-   uc = (vector unsigned char) vec_lvsr (int1 + 69, (signed int *) pi);
- 
-   c = vec_lde (int1, (signed char *) pi);
-   s = vec_lde (int1, (signed short *) pi);
-   i = vec_lde (int1, (signed int *) pi);
-   i = vec_ldl (int1, pi);
-   i = vec_ld (int1, pi);
- 
-   vec_st (i, int2, pi);
-   vec_ste (c, int2, (signed char *) pi);
-   vec_ste (s, int2, (signed short *) pi);
-   vec_ste (i, int2, (signed int *) pi);
-   vec_stl (i, int2, pi);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-7.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,46 ****
- /* Origin: Aldy Hernandez  <aldyh@redhat.com>  */
- 
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- #include <altivec.h>
- 
- int **intp;
- int *var_int;
- unsigned int **uintp;
- vector pixel *varpixel;
- vector signed char *vecchar;
- vector signed int *vecint;
- vector signed short *vecshort;
- vector unsigned char *vecuchar;
- vector unsigned int *vecuint;
- vector unsigned short *vecushort;
- vector float *vecfloat;
- 
- int main ()
- {
-   *vecfloat++ = vec_andc((vector bool int)vecint[0], vecfloat[1]);
-   *vecfloat++ = vec_andc(vecfloat[0], (vector bool int)vecint[1]);
-   *vecfloat++ = vec_vxor((vector bool int)vecint[0], vecfloat[1]);
-   *vecfloat++ = vec_vxor(vecfloat[0], (vector bool int)vecint[1]);
-   *varpixel++ = vec_packpx(vecuint[0], vecuint[1]);
-   *varpixel++ = vec_vpkpx(vecuint[0], vecuint[1]);
-   *vecshort++ = vec_vmulosb(vecchar[0], vecchar[1]);
-   *vecint++ = vec_ld(var_int[0], intp[1]);
-   *vecint++ = vec_lde(var_int[0], intp[1]);
-   *vecint++ = vec_ldl(var_int[0], intp[1]);
-   *vecint++ = vec_lvewx(var_int[0], intp[1]);
-   *vecint++ = vec_unpackh(vecshort[0]);
-   *vecint++ = vec_unpackl(vecshort[0]);
-   *vecushort++ = vec_andc((vector bool short)vecshort[0], vecushort[1]);
-   *vecushort++ = vec_andc(vecushort[0], (vector bool short)vecshort[1]);
-   *vecushort++ = vec_vxor((vector bool short)vecshort[0], vecushort[1]);
-   *vecushort++ = vec_vxor(vecushort[0], (vector bool short)vecshort[1]);
-   *vecuint++ = vec_ld(var_int[0], uintp[1]);
-   *vecuint++ = vec_lvx(var_int[0], uintp[1]);
-   *vecuint++ = vec_vmsumubm(vecuchar[0], vecuchar[1], vecuint[2]);
-   *vecuchar++ = vec_xor(vecuchar[0], (vector unsigned char)vecchar[1]);
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-8.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-8.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* Origin: Aldy Hernandez  <aldyh@redhat.com>  */
- /* Test rs6000_legitimate_address.  PRE_INC should be invalid.  */
- 
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec" } */
- 
- #include <altivec.h>
- 
- vector signed short *hannah;
- 
- int
- main ()
- {
-   *hannah++ = __builtin_altivec_vspltish (5);
-   *hannah++ = __builtin_altivec_vspltish (6);
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-9.c	Sat Feb 21 09:08:37 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-9.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec -mabi=altivec -g" } */
- 
- /* PR9564 */
- 
- extern int vfork(void);
- 
- void
- boom (void)
- {
-   char buf[65536];
-   vfork();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-1.c	Tue Dec 14 18:43:56 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,87 ****
- /* { dg-do compile { target powerpc*-*-linux* } } */
- /* { dg-options "-maltivec" } */
- 
- /* Valid AltiVec vector types should be accepted with no warnings.  */
- 
- __vector char vc;
- __vector unsigned char vuc;
- __vector signed char vsc;
- __vector __bool char vbc;
- __vector short vh;
- __vector signed short vsh;
- __vector unsigned short vuh;
- __vector short int vhi;
- __vector signed short int vshi;
- __vector unsigned short int vuhi;
- __vector __bool short vbh;
- __vector __bool short int vbhi;
- __vector int vi;
- __vector unsigned int vui;
- __vector signed int vsi;
- __vector __bool int vbi;
- __vector unsigned vuj;
- __vector signed vsj;
- __vector __bool vbj;
- __vector float vf;
- 
- /* These should be rejected as invalid AltiVec types.  */
- 
- __vector long long vll;			/* { dg-error "AltiVec types" "" } */
- __vector unsigned long long vull;	/* { dg-error "AltiVec types" "" } */
- __vector signed long long vsll;		/* { dg-error "AltiVec types" "" } */
- __vector __bool long long vbll;		/* { dg-error "AltiVec types" "" } */
- __vector long long int vlli;		/* { dg-error "AltiVec types" "" } */
- __vector unsigned long long int vulli;	/* { dg-error "AltiVec types" "" } */
- __vector signed long long int vslli;	/* { dg-error "AltiVec types" "" } */
- __vector __bool long long int vblli;	/* { dg-error "AltiVec types" "" } */
- __vector double vd1;			/* { dg-error "AltiVec types" "" } */
- __vector long double vld;		/* { dg-error "AltiVec types" "" } */
- __vector _Bool vb;			/* { dg-error "AltiVec types" "" } */
- __vector _Complex float vcf;		/* { dg-error "AltiVec types" "" } */
- __vector _Complex double vcd;		/* { dg-error "AltiVec types" "" } */
- __vector _Complex long double vcld;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex signed char vcsc;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex unsigned char vcuc;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex short vcss;		/* { dg-error "AltiVec types" "" } */
- __vector _Complex unsigned short vcus;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex int vcsi;		/* { dg-error "AltiVec types" "" } */
- __vector _Complex unsigned int vcui;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex long vcsl;		/* { dg-error "AltiVec types" "" } */
- __vector _Complex unsigned long vcul;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex long long vcsll;	/* { dg-error "AltiVec types" "" } */
- __vector _Complex unsigned long long vcull; /* { dg-error "AltiVec types" "" } */
- __vector __complex float v_cf;		/* { dg-error "AltiVec types" "" } */
- __vector __complex double v_cd;		/* { dg-error "AltiVec types" "" } */
- __vector __complex long double v_cld;	/* { dg-error "AltiVec types" "" } */
- __vector __complex signed char v_csc;	/* { dg-error "AltiVec types" "" } */
- __vector __complex unsigned char v_cuc;	/* { dg-error "AltiVec types" "" } */
- __vector __complex short v_css;		/* { dg-error "AltiVec types" "" } */
- __vector __complex unsigned short v_cus; /* { dg-error "AltiVec types" "" } */
- __vector __complex int v_csi;		/* { dg-error "AltiVec types" "" } */
- __vector __complex unsigned int v_cui;	/* { dg-error "AltiVec types" "" } */
- __vector __complex long v_csl;		/* { dg-error "AltiVec types" "" } */
- __vector __complex unsigned long v_cul;	/* { dg-error "AltiVec types" "" } */
- __vector __complex long long v_csll;	/* { dg-error "AltiVec types" "" } */
- __vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" "" } */
- 
- /* These should be rejected because the component types are invalid.  We
-    don't care about the actual error messages here.  */
- 
- __vector __bool unsigned char vbuc;	/* { dg-error "error" "" } */
- __vector __bool signed char vbsc;	/* { dg-error "error" "" } */
- __vector __bool unsigned short vbuh;	/* { dg-error "error" "" } */
- __vector __bool signed short vbsh;	/* { dg-error "error" "" } */
- __vector __bool unsigned int vbui;	/* { dg-error "error" "" } */
- __vector __bool signed int vbsi;	/* { dg-error "error" "" } */
- __vector __bool unsigned vbuj;		/* { dg-error "error" "" } */
- __vector __bool signed vbsj;		/* { dg-error "error" "" } */
- __vector signed float vsf;		/* { dg-error "error" "" } */
- __vector unsigned float vuf;		/* { dg-error "error" "" } */
- __vector short float vsf;		/* { dg-error "error" "" } */
- __vector signed double vsd;		/* { dg-error "error" "" } */
- __vector unsigned double vud;		/* { dg-error "error" "" } */
- __vector short double vsd;		/* { dg-error "error" "" } */
- __vector __bool float vbf;		/* { dg-error "error" "" } */
- __vector __bool double vbd;		/* { dg-error "error" "" } */
- __vector __bool short float blf;	/* { dg-error "error" "" } */
- __vector __bool short double vlbd;	/* { dg-error "error" "" } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-2.c	Tue Dec 14 18:43:56 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { dg-do compile { target powerpc*-*-linux* } } */
- /* { dg-require-effective-target ilp32 } */
- /* { dg-options "-maltivec" } */
- 
- /* These should get warnings for 32-bit code.  */
- 
- __vector long vl;			/* { dg-warning "deprecated" "" } */
- __vector unsigned long vul;		/* { dg-warning "deprecated" "" } */
- __vector signed long vsl;		/* { dg-warning "deprecated" "" } */
- __vector __bool long int vbli;		/* { dg-warning "deprecated" "" } */
- __vector long int vli;			/* { dg-warning "deprecated" "" } */
- __vector unsigned long int vuli;	/* { dg-warning "deprecated" "" } */
- __vector signed long int vsli;		/* { dg-warning "deprecated" "" } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-3.c	Tue Dec 14 18:43:56 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { dg-do compile { target powerpc*-*-linux* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-maltivec" } */
- 
- /* These should be rejected for 64-bit code.  */
- 
- __vector long vl;			/* { dg-error "invalid for 64" "" } */
- __vector unsigned long vul;		/* { dg-error "invalid for 64" "" } */
- __vector signed long vsl;		/* { dg-error "invalid for 64" "" } */
- __vector __bool long int vbli;		/* { dg-error "invalid for 64" "" } */
- __vector long int vli;			/* { dg-error "invalid for 64" "" } */
- __vector unsigned long int vuli;	/* { dg-error "invalid for 64" "" } */
- __vector signed long int vsli;		/* { dg-error "invalid for 64" "" } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-types-4.c	Tue Dec 14 18:43:56 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-types-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* { dg-do compile { target powerpc*-*-linux* } } */
- /* { dg-require-effective-target ilp32 } */
- /* { dg-options "-maltivec -mno-warn-altivec-long" } */
- 
- /* These should not get warnings for 32-bit code when the warning is
-    disabled.  */
- 
- __vector long vl;
- __vector unsigned long vul;
- __vector signed long vsl;
- __vector __bool long int vbli;
- __vector long int vli;
- __vector unsigned long int vuli;
- __vector signed long int vsli;
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-varargs-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-varargs-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec-varargs-1.c	Tue Jun  8 18:45:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec-varargs-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,84 ****
- /* { dg-do run { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
- /* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
- 
- #include <stdarg.h>
- #include <signal.h>
- 
- #include "altivec_check.h"
- 
- #define vector __attribute__((vector_size (16)))
- 
- const vector unsigned int v1 = {10,11,12,13};
- const vector unsigned int v2 = {20,21,22,23};
- const vector unsigned int v3 = {30,31,32,33};
- const vector unsigned int v4 = {40,41,42,43};
- 
- void foo(vector unsigned int a, ...)
- {
-   va_list args;
-   vector unsigned int v;
- 
-   va_start (args, a);
-   if (memcmp (&a, &v1, sizeof (v)) != 0)
-     abort ();
-   v = va_arg (args, vector unsigned int);
-   if (memcmp (&v, &v2, sizeof (v)) != 0)
-     abort ();
-   v = va_arg (args, vector unsigned int);
-   if (memcmp (&v, &v3, sizeof (v)) != 0)
-     abort ();
-   v = va_arg (args, vector unsigned int);
-   if (memcmp (&v, &v4, sizeof (v)) != 0)
-     abort ();
-   va_end (args);
- }
- 
- void bar(vector unsigned int a, ...)
- {
-   va_list args;
-   vector unsigned int v;
-   int b;
- 
-   va_start (args, a);
-   if (memcmp (&a, &v1, sizeof (v)) != 0)
-     abort ();
-   b = va_arg (args, int);
-   if (b != 2)
-     abort ();
-   v = va_arg (args, vector unsigned int);
-   if (memcmp (&v, &v2, sizeof (v)) != 0)
-     abort ();
-   v = va_arg (args, vector unsigned int);
-   if (memcmp (&v, &v3, sizeof (v)) != 0)
-     abort ();
-   va_end (args);
- }
- 
- 
- int main1(void)
- {
-   /* In this call, in the Darwin ABI, the first argument goes into v2
-      the second one into r9-r10 and memory,
-      and the next two in memory.  */
-   foo ((vector unsigned int){10,11,12,13},
-        (vector unsigned int){20,21,22,23},
-        (vector unsigned int){30,31,32,33},
-        (vector unsigned int){40,41,42,43});
-   /* In this call, in the Darwin ABI, the first argument goes into v2
-      the second one into r9, then r10 is reserved and
-      there are two words of padding in memory, and the next two arguments
-      go after the padding.  */
-   bar ((vector unsigned int){10,11,12,13}, 2,
-        (vector unsigned int){20,21,22,23},
-        (vector unsigned int){30,31,32,33});
-   return 0;
- }
- 
- int main (void)
- {
-   /* Exit on systems without AltiVec.  */
-   altivec_check ();
- 
-   return main1 ();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/altivec_check.h gcc-4.1.0/gcc/testsuite/gcc.dg/altivec_check.h
*** gcc-4.0.2/gcc/testsuite/gcc.dg/altivec_check.h	Thu Aug  5 06:06:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/altivec_check.h	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* A runtime check for AltiVec capability.  */
- /* Contributed by Ziemowit Laski  <zlaski@apple.com>  */
- 
- #include <signal.h>
- extern void exit (int);
- extern void abort (void);
- 
- void 
- sig_ill_handler (int sig)
- {
-     exit (0);
- }
- 
- void altivec_check(void) {
- 
-   /* Exit on systems without AltiVec.  */
-   signal (SIGILL, sig_ill_handler);
- #ifdef __MACH__
-   asm volatile ("vor v0,v0,v0");
- #else
-   asm volatile ("vor 0,0,0");
- #endif
-   signal (SIGILL, SIG_DFL);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/arm-eabi1.c gcc-4.1.0/gcc/testsuite/gcc.dg/arm-eabi1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/arm-eabi1.c	Wed Aug 11 02:50:14 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/arm-eabi1.c	Sat Aug 20 10:59:59 2005
***************
*** 23,31 ****
     require the use of inline assembly to test.  It would be good to
     add such tests, but they have not yet been implemented.  
  
!    There are also no tests for the "division by zero", "unaligned
!    memory access", "memory copying, clearing, and setting"
!    functions.  */
  
  #include <stdio.h>
  #include <stdlib.h>
--- 23,30 ----
     require the use of inline assembly to test.  It would be good to
     add such tests, but they have not yet been implemented.  
  
!    There are also no tests for the "division by zero", "memory copying,
!    clearing, and setting" functions.  */
  
  #include <stdio.h>
  #include <stdlib.h>
*************** extern long long __aeabi_llsr (long long
*** 74,79 ****
--- 73,84 ----
  extern long long __aeabi_lasr (long long, int);
  extern int __aeabi_lcmp (long long, long long);
  extern int __aeabi_ulcmp (unsigned long long, unsigned long long);
+ extern int __aeabi_idiv (int, int);
+ extern unsigned int __aeabi_uidiv (unsigned int, unsigned int);
+ extern int __eabi_uread4 (void *);
+ extern int __eabi_uwrite4 (int, void *);
+ extern long long __eabi_uread8 (void *);
+ extern long long __eabi_uwrite8 (long long, void *);
  
  #define eq(a, b, type, abs, epsilon, format)			\
    {								\
*************** extern int __aeabi_ulcmp (unsigned long 
*** 99,104 ****
--- 104,112 ----
  #define deq(a, b) eq (a, b, double, fabs, depsilon, "%g")
  
  int main () {
+   unsigned char bytes[256];
+   int i;
+ 
    /* Table 2.  Double-precision floating-point arithmetic.  */
    deq (__aeabi_dadd (dzero, done), done);
    deq (__aeabi_dadd (done, done), dtwo);
*************** int main () {
*** 232,235 ****
--- 240,271 ----
    ieq (__aeabi_ulcmp (0LL, 1LL), -1);
    ieq (__aeabi_ulcmp (0LL, 0LL), 0);
    ieq (__aeabi_ulcmp (1LL, 0LL), 1);
+ 
+   ieq (__aeabi_idiv (-550, 11), -50);
+   ueq (__aeabi_uidiv (4000000000U, 1000000U), 4000U);
+ 
+   for (i = 0; i < 256; i++)
+     bytes[i] = i;
+ 
+ #ifdef __ARMEB__
+   ieq (__aeabi_uread4 (bytes + 1), 0x01020304U);
+   leq (__aeabi_uread8 (bytes + 3), 0x030405060708090aLL);
+   ieq (__aeabi_uwrite4 (0x66778899U, bytes + 5), 0x66778899U);
+   leq (__aeabi_uwrite8 (0x2030405060708090LL, bytes + 15),
+        0x2030405060708090LL);
+ #else
+   ieq (__aeabi_uread4 (bytes + 1), 0x04030201U);
+   leq (__aeabi_uread8 (bytes + 3), 0x0a09080706050403LL);
+   ieq (__aeabi_uwrite4 (0x99887766U, bytes + 5), 0x99887766U);
+   leq (__aeabi_uwrite8 (0x9080706050403020LL, bytes + 15),
+        0x9080706050403020LL);
+ #endif
+ 
+   for (i = 0; i < 4; i++)
+     ieq (bytes[5 + i], (6 + i) * 0x11);
+ 
+   for (i = 0; i < 8; i++)
+     ieq (bytes[15 + i], (2 + i) * 0x10);
+ 
+   exit (0);		
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/arm-g2.c gcc-4.1.0/gcc/testsuite/gcc.dg/arm-g2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/arm-g2.c	Tue Dec  2 02:17:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/arm-g2.c	Thu May  5 15:12:01 2005
***************
*** 1,6 ****
  /* Verify that hardware multiply is preferred on XScale. */
! /* { dg-do compile { target xscale*-*-* } } */
  /* { dg-options "-mcpu=xscale -O2" } */
  
  /* Brett Gaines' test case. */
  unsigned BCPL(unsigned) __attribute__ ((naked));
--- 1,7 ----
  /* Verify that hardware multiply is preferred on XScale. */
! /* { dg-do compile } */
  /* { dg-options "-mcpu=xscale -O2" } */
+ /* { dg-require-effective-target arm32 } */
  
  /* Brett Gaines' test case. */
  unsigned BCPL(unsigned) __attribute__ ((naked));
*************** unsigned BCPL(unsigned seed)
*** 15,19 ****
      return seed * 2147001325U + 715136305U;
  }
  
! /* We want to suppress running for -mthumb but not for -mthumb-interwork. */
! /* { dg-final { global compiler_flags; if ![string match "*-mthumb *" $compiler_flags] { scan-assembler "mla\[ 	].*" } } } */
--- 16,19 ----
      return seed * 2147001325U + 715136305U;
  }
  
! /* { dg-final { scan-assembler "mla\[ 	].*" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/arm-mmx-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/arm-mmx-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/arm-mmx-1.c	Tue Jun 15 15:25:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/arm-mmx-1.c	Thu May  5 15:12:01 2005
***************
*** 1,8 ****
  /* Verify that if IP is saved to ensure stack alignment, we don't load
     it into sp.  */
! /* { dg-do compile { target arm*-*-* strongarm*-*-* xscale*-*-*} } */
  /* { dg-options "-O -mno-apcs-frame -mcpu=iwmmxt -mabi=iwmmxt" } */
! /* { dg-final { global compiler_flags; if ![string match "*-mthumb *" $compiler_flags] { scan-assembler "ldmfd\[ 	]sp!.*ip,\[ ]*pc" } } } */
  
  /* This function uses all the call-saved registers, namely r4, r5, r6,
     r7, r8, r9, sl, fp.  Since we also save lr, that leaves an odd
--- 1,9 ----
  /* Verify that if IP is saved to ensure stack alignment, we don't load
     it into sp.  */
! /* { dg-do compile } */
  /* { dg-options "-O -mno-apcs-frame -mcpu=iwmmxt -mabi=iwmmxt" } */
! /* { dg-require-effective-target arm32 } */
! /* { dg-final { scan-assembler "ldmfd\[ 	]sp!.*ip,\[ ]*pc" } } */
  
  /* This function uses all the call-saved registers, namely r4, r5, r6,
     r7, r8, r9, sl, fp.  Since we also save lr, that leaves an odd
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/arm-scd42-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/arm-scd42-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/arm-scd42-2.c	Tue Dec 16 22:38:58 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/arm-scd42-2.c	Thu May  5 15:12:01 2005
***************
*** 1,6 ****
  /* Verify that mov is preferred on XScale for loading a 2 byte constant. */
! /* { dg-do compile { target xscale-*-* } } */
  /* { dg-options "-mcpu=xscale -O" } */
  
  unsigned load2(void) __attribute__ ((naked));
  unsigned load2(void)
--- 1,7 ----
  /* Verify that mov is preferred on XScale for loading a 2 byte constant. */
! /* { dg-do compile } */
  /* { dg-options "-mcpu=xscale -O" } */
+ /* { dg-require-effective-target arm32 } */
  
  unsigned load2(void) __attribute__ ((naked));
  unsigned load2(void)
*************** unsigned load2(void)
*** 13,17 ****
      return 273;
  }
  
! /* We want to suppress running for -mthumb but not for -mthumb-interwork. */
! /* { dg-final { global compiler_flags; if ![string match "*-mthumb *" $compiler_flags] { scan-assembler "mov\[ 	].*272" } } } */
--- 14,17 ----
      return 273;
  }
  
! /* { dg-final { scan-assembler "mov\[ 	].*272" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/arm-vfp1.c gcc-4.1.0/gcc/testsuite/gcc.dg/arm-vfp1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/arm-vfp1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/arm-vfp1.c	Wed May 11 10:13:23 2005
***************
*** 0 ****
--- 1,127 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mfpu=vfp -mfloat-abi=softfp" } */
+ /* { dg-require-effective-target arm32 } */
+ 
+ extern float fabsf (float);
+ extern float sqrtf (float);
+ extern double fabs (double);
+ extern double sqrt (double);
+ 
+ volatile float f1, f2, f3;
+ 
+ void test_sf() {
+   /* abssf2_vfp */
+   /* { dg-final { scan-assembler "fabss" } } */
+   f1 = fabsf (f1);
+   /* negsf2_vfp */
+   /* { dg-final { scan-assembler "fnegs" } } */
+   f1 = -f1;
+   /* addsf3_vfp */
+   /* { dg-final { scan-assembler "fadds" } } */
+   f1 = f2 + f3;
+   /* subsf3_vfp */
+   /* { dg-final { scan-assembler "fsubs" } } */
+   f1 = f2 - f3;
+   /* divsf3_vfp */
+   /* { dg-final { scan-assembler "fdivs" } } */
+   f1 = f2 / f3;
+   /* mulsf3_vfp */
+   /* { dg-final { scan-assembler "fmuls" } } */
+   f1 = f2 * f3;
+   /* mulsf3negsf_vfp */
+   /* { dg-final { scan-assembler "fnmuls" } } */
+   f1 = -f2 * f3;
+   /* mulsf3addsf_vfp */
+   /* { dg-final { scan-assembler "fmacs" } } */
+   f1 = f2 * f3 + f1;
+   /* mulsf3subsf_vfp */
+   /* { dg-final { scan-assembler "fmscs" } } */
+   f1 = f2 * f3 - f1;
+   /* mulsf3negsfaddsf_vfp */
+   /* { dg-final { scan-assembler "fnmacs" } } */
+   f1 = f2 - f3 * f1;
+   /* mulsf3negsfsubsf_vfp */
+   /* { dg-final { scan-assembler "fnmscs" } } */
+   f1 = -f2 * f3 - f1;
+   /* sqrtsf2_vfp */
+   /* { dg-final { scan-assembler "fsqrts" } } */
+   f1 = sqrtf (f1);
+ }
+ 
+ volatile double d1, d2, d3;
+ 
+ void test_df() {
+   /* absdf2_vfp */
+   /* { dg-final { scan-assembler "fabsd" } } */
+   d1 = fabs (d1);
+   /* negdf2_vfp */
+   /* { dg-final { scan-assembler "fnegd" } } */
+   d1 = -d1;
+   /* adddf3_vfp */
+   /* { dg-final { scan-assembler "faddd" } } */
+   d1 = d2 + d3;
+   /* subdf3_vfp */
+   /* { dg-final { scan-assembler "fsubd" } } */
+   d1 = d2 - d3;
+   /* divdf3_vfp */
+   /* { dg-final { scan-assembler "fdivd" } } */
+   d1 = d2 / d3;
+   /* muldf3_vfp */
+   /* { dg-final { scan-assembler "fmuld" } } */
+   d1 = d2 * d3;
+   /* muldf3negdf_vfp */
+   /* { dg-final { scan-assembler "fnmuld" } } */
+   d1 = -d2 * d3;
+   /* muldf3adddf_vfp */
+   /* { dg-final { scan-assembler "fmacd" } } */
+   d1 = d2 * d3 + d1;
+   /* muldf3subdf_vfp */
+   /* { dg-final { scan-assembler "fmscd" } } */
+   d1 = d2 * d3 - d1;
+   /* muldf3negdfadddf_vfp */
+   /* { dg-final { scan-assembler "fnmacd" } } */
+   d1 = d2 - d3 * d1;
+   /* muldf3negdfsubdf_vfp */
+   /* { dg-final { scan-assembler "fnmscd" } } */
+   d1 = -d2 * d3 - d1;
+   /* sqrtdf2_vfp */
+   /* { dg-final { scan-assembler "fsqrtd" } } */
+   d1 = sqrt (d1);
+ }
+ 
+ volatile int i1;
+ volatile unsigned int u1;
+ 
+ void test_convert () {
+   /* extendsfdf2_vfp */
+   /* { dg-final { scan-assembler "fcvtds" } } */
+   d1 = f1;
+   /* truncdfsf2_vfp */
+   /* { dg-final { scan-assembler "fcvtsd" } } */
+   f1 = d1;
+   /* truncsisf2_vfp */
+   /* { dg-final { scan-assembler "ftosizs" } } */
+   i1 = f1;
+   /* truncsidf2_vfp */
+   /* { dg-final { scan-assembler "ftosizd" } } */
+   i1 = d1;
+   /* fixuns_truncsfsi2 */
+   /* { dg-final { scan-assembler "ftouizs" } } */
+   u1 = f1;
+   /* fixuns_truncdfsi2 */
+   /* { dg-final { scan-assembler "ftouizd" } } */
+   u1 = d1;
+   /* floatsisf2_vfp */
+   /* { dg-final { scan-assembler "fsitos" } } */
+   f1 = i1;
+   /* floatsidf2_vfp */
+   /* { dg-final { scan-assembler "fsitod" } } */
+   d1 = i1;
+   /* floatunssisf2 */
+   /* { dg-final { scan-assembler "fuitos" } } */
+   f1 = u1;
+   /* floatunssidf2 */
+   /* { dg-final { scan-assembler "fuitod" } } */
+   d1 = u1;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/asm-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/asm-1.c	Wed Oct 20 00:18:10 1999
--- gcc-4.1.0/gcc/testsuite/gcc.dg/asm-1.c	Wed Oct  5 12:17:16 2005
***************
*** 1,4 ****
! /* { dg-do compile { target i?86-*-* } } */
  
  struct x {
    int selector;
--- 1,4 ----
! /* { dg-do compile } */
  
  struct x {
    int selector;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/asm-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/asm-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/asm-5.c	Mon Dec 31 23:16:08 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/asm-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,82 ****
- /* Asm operands that are given as hard registers must keep the same
-    hard register all the way through compilation.  Example derived
-    from glibc source.  */
- /* { dg-do compile { target alpha*-*-* } } */
- /* { dg-options "-O2 -frename-registers -fcprop-registers" } */
- /* { dg-final { scan-assembler "callsys1 .0 .19 .0 .16 .17" } } */
- /* { dg-final { scan-assembler "callsys2 .0 .19 .0 .16 .17" } } */
- 
- struct stat {
-   int dummy;
- };
- 
- struct kernel_stat {
-   int dummy;
- };
- 
- extern int xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf);
- extern int *__errno_location (void) __attribute__ ((__const__));
- 
- int
- __fxstat (int vers, int fd, struct stat *buf)
- {
-   struct kernel_stat kbuf;
-   int result;
- 
-   if (vers == 0)
-     return
-       ({
- 	long _sc_ret, _sc_err;
- 	{
- 	  register long _sc_0 __asm__("$0");
- 	  register long _sc_16 __asm__("$16");
- 	  register long _sc_17 __asm__("$17");
- 	  register long _sc_19 __asm__("$19");
- 	  _sc_0 = 91;
- 	  _sc_16 = (long) (fd);
- 	  _sc_17 = (long) (((struct kernel_stat *) buf));
- 	  __asm__("callsys1 %0 %1 %2 %3 %4"
- 		  : "=r"(_sc_0), "=r"(_sc_19)
- 		  : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)
- 		  : "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",
- 		    "$22", "$23", "$24", "$25", "$27", "$28", "memory");
- 	  _sc_ret = _sc_0, _sc_err = _sc_19;
- 	}
- 	if (_sc_err)
- 	  {
- 	    (*__errno_location ()) = (_sc_ret);
- 	    _sc_ret = -1L;
- 	  }
- 	_sc_ret;
-       });
- 
-   result =
-       ({
- 	long _sc_ret, _sc_err;
- 	{
- 	  register long _sc_0 __asm__("$0");
- 	  register long _sc_16 __asm__("$16");
- 	  register long _sc_17 __asm__("$17");
- 	  register long _sc_19 __asm__("$19");
- 	  _sc_0 = 91;
- 	  _sc_16 = (long) (fd);
- 	  _sc_17 = (long) ((&kbuf));
- 	  __asm__("callsys2 %0 %1 %2 %3 %4"
- 		  : "=r"(_sc_0), "=r"(_sc_19)
- 		  : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)
- 		  : "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",
- 		    "$22", "$23", "$24", "$25", "$27", "$28", "memory");
- 	  _sc_ret = _sc_0, _sc_err = _sc_19;
- 	}
- 	if (_sc_err)
- 	  {
- 	    (*__errno_location ()) = (_sc_ret);
- 	    _sc_ret = -1L;
- 	  }
- 	_sc_ret;
-       });
-   if (result == 0)
-     result = xstat_conv (vers, &kbuf, buf);
- 
-   return result;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/asm-b.c gcc-4.1.0/gcc/testsuite/gcc.dg/asm-b.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/asm-b.c	Sat Feb 26 16:24:44 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/asm-b.c	Mon Dec 12 22:37:46 2005
***************
*** 1,8 ****
! /* { 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;
--- 1,8 ----
! /* { dg-do run  { target powerpc-*-* i?86-*-* 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.  */
  extern void abort (void);
  
  unsigned short v = 0x0300;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/asm-pr24146.c gcc-4.1.0/gcc/testsuite/gcc.dg/asm-pr24146.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/asm-pr24146.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/asm-pr24146.c	Wed Oct  5 12:17:16 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ 
+ /* Test that asm with no outputs are treated as volatile.  */
+ 
+ void f(int x)
+ {
+   __asm__ ("extended asm not discarded" : : "r" (x));
+ }
+ 
+ void g (void)
+ {
+   __asm__ ("simple asm not discarded");
+ }
+ /* { dg-final { scan-assembler "extended asm not discarded" } } */
+ /* { dg-final { scan-assembler "simple asm not discarded" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-alias-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-alias-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-alias-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-alias-3.c	Sun Oct 23 19:59:07 2005
***************
*** 0 ****
--- 1,56 ----
+ // { dg-do link }
+ // { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } }
+ // { dg-require-alias "" }
+ // { dg-options "-O2 -fno-common" }
+ 
+ // Copyright 2005 Free Software Foundation, Inc.
+ // Contributed by Alexandre Oliva <aoliva@redhat.com>
+ 
+ // PR middle-end/24295
+ 
+ // The unit-at-a-time call graph code used to fail to emit variables
+ // without external linkage that were only used indirectly, through
+ // aliases.  Although the PR above is about #pragma weak-introduced
+ // aliases, the underlying machinery is the same.
+ 
+ #ifndef ATTRIBUTE_USED
+ # define ATTRIBUTE_USED __attribute__((used))
+ #endif
+ 
+ static int lv1;
+ extern int Av1a __attribute__((alias ("lv1")));
+ int *pv1a = &Av1a;
+ 
+ static int lv2;
+ extern int Av2a __attribute__((alias ("lv2")));
+ int *pv2a = &lv2;
+ 
+ static int lv3;
+ extern int Av3a __attribute__((alias ("lv3")));
+ static int *pv3a ATTRIBUTE_USED = &Av3a;
+ 
+ static int lv4;
+ extern int Av4a __attribute__((alias ("lv4")));
+ static int *pv4a = &Av4a;
+ 
+ typedef void ftype(void);
+ 
+ static void lf1(void) {}
+ extern ftype Af1a __attribute__((alias ("lf1")));
+ ftype *pf1a = &Af1a;
+ 
+ static void lf2(void) {}
+ extern ftype Af2a __attribute__((alias ("lf2")));
+ ftype *pf2a = &Af2a;
+ 
+ static void lf3(void) {}
+ extern ftype Af3a __attribute__((alias ("lf3")));
+ static ftype *pf3a ATTRIBUTE_USED = &Af3a;
+ 
+ static void lf4(void) {}
+ extern ftype Af4a __attribute__((alias ("lf4")));
+ static ftype *pf4a = &Af4a;
+ 
+ main() {
+   asm volatile ("" : : "m" (pv4a), "m" (pf4a));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr-nosave_low_regs.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ 
+ extern void bar ();
+ 
+ void foo ()
+ {
+ }
+ 
+ #pragma interrupt
+ void ( __attribute__ ((nosave_low_regs)) isr) ()
+ {
+   bar ();
+ }
+ 
+ void delay(int a)
+ {
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
+ /* A call will clobber all call-saved registers, but because of
+    #pragma nosave_low_regs, r0..r7 need not be saved/restored.
+    One of these registers will also do fine to hold the function address.
+    Call-saved registers r8..r13 also don't need to be restored.  */
+ /* { dg-final { scan-assembler-not "\[^f\]r\[0-9\]\[ \t\]*," } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r\[89\]" } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r1\[,0-3\]" } } */
+ /* { dg-final { scan-assembler-times "macl" 2} } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr-trap_exit.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ /* Check that trapa / interrput_handler attributes can paired in
+    either order.  */
+ void h0() __attribute__ ((trap_exit (4))) __attribute__ ((interrupt_handler));
+ void h1() __attribute__ ((interrupt_handler)) __attribute__ ((trap_exit (5)));
+ 
+ void foo ()
+ {
+ }
+ 
+ void h0 () {}
+ /* { dg-final { scan-assembler "trapa\[ \t\]\[ \t\]*#4"} } */
+ /* { dg-final { scan-assembler-times "trapa" 1} } */
+ 
+ void delay(int a)
+ {
+ }
+ int main()
+ {
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr-trapa.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr-trapa.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr-trapa.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr-trapa.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ extern void foo ();
+ 
+ void
+ (__attribute__ ((trapa_handler)) isr) ()
+ {
+   foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
+ /* No interrupt-specific saves should be needed.  /
+ /* { dg-final { scan-assembler-not "\[^f\]r\[0-7\]\[ \t,\]\[^\n\]*r15" } } */
+ /* { dg-final { scan-assembler-not "@r15\[^\n\]*\[^f\]r\[0-7\]\n" } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r\[8-9\]" } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r1\[,0-3\]" } } */
+ /* { dg-final { scan-assembler-not "macl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-isr.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-isr.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ extern void foo ();
+ 
+ void
+ (__attribute ((interrupt_handler)) isr)()
+ {
+   foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
+ /* The call will clobber r0..r7, which will need not be saved/restored.
+    One of these registers will do fine to hold the function address,
+    hence the all-saved registers r8..r13 don't need to be restored.  */
+ /* { dg-final { scan-assembler-times "r15\[+\],\[ \t\]*r\[0-9\]\[ \t\]*\n" 8 } } */
+ /* { dg-final { scan-assembler-times "\[^f\]r\[0-9\]\[ \t\]*," 8 } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r1\[0-3\]" } } */
+ /* { dg-final { scan-assembler-times "macl" 2} } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-returns_twice-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-returns_twice-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-returns_twice-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-returns_twice-1.c	Tue May 31 16:28:30 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-W" } */
+ 
+ int newsetjmp(void) __attribute__((returns_twice));
+ void g(int);
+ 
+ int
+ main (void)
+ {
+   register int reg asm ("esi") = 1; /* { dg-warning "might be clobbered" "" } */
+ 
+   if (!newsetjmp ())
+     {
+       reg = 2;
+       g (reg);
+     }
+   else
+     {
+       g (reg);
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-weakref-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-weakref-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-weakref-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-weakref-1.c	Sat Dec 31 02:18:49 2005
***************
*** 0 ****
--- 1,232 ----
+ // { dg-do run }
+ // { dg-require-weak "" }
+ // This test requires support for undefined weak symbols.  This support
+ // is not available on hppa*-*-hpux*.  The test is skipped rather than
+ // xfailed to suppress the warning that would otherwise arise.
+ // { dg-skip-if "" { "hppa*-*-hpux*" } "*" { "" } }
+ // { dg-options "-O2" }
+ // { dg-additional-sources "attr-weakref-1a.c" }
+ 
+ // Copyright 2005 Free Software Foundation, Inc.
+ // Contributed by Alexandre Oliva <aoliva@redhat.com>
+ 
+ // Torture test for weakrefs.  The first letter of an identifier
+ // indicates whether/how it is defined; the second letter indicates
+ // whether it is part of a variable or function test; the number that
+ // follows is a test counter, and a letter that may follow enables
+ // multiple identifiers within the same test (e.g., multiple weakrefs
+ // or pointers to the same identifier).
+ 
+ // Identifiers starting with W are weakrefs; those with p are
+ // pointers; those with g are global definitions; those with l are
+ // local definitions; those with w are expected to be weak undefined
+ // in the symbol table; those with u are expected to be marked as
+ // non-weak undefined in the symbol table.
+ 
+ #include <stdlib.h>
+ 
+ #define USED __attribute__((used))
+ 
+ typedef int vtype;
+ 
+ extern vtype wv1;
+ extern vtype Wv1a __attribute__((weakref ("wv1")));
+ static vtype *pv1a USED = &Wv1a;
+ extern vtype Wv1b __attribute__((weak, weakref, alias ("wv1")));
+ static vtype *pv1b USED = &Wv1b;
+ extern vtype Wv1c __attribute__((weakref));
+ extern vtype Wv1c __attribute__((alias ("wv1")));
+ static vtype *pv1c USED = &Wv1c;
+ 
+ vtype gv2;
+ extern vtype Wv2a __attribute__((weakref ("gv2")));
+ static vtype *pv2a USED = &Wv2a;
+ 
+ static vtype lv3;
+ extern vtype Wv3a __attribute__((weakref ("lv3")));
+ static vtype *pv3a USED = &Wv3a;
+ 
+ extern vtype uv4;
+ extern vtype Wv4a __attribute__((weakref ("uv4")));
+ static vtype *pv4a USED = &Wv4a;
+ static vtype *pv4 USED = &uv4;
+ 
+ extern vtype Wv5a __attribute__((weakref ("uv5")));
+ static vtype *pv5a USED = &Wv5a;
+ extern vtype uv5;
+ static vtype *pv5 USED = &uv5;
+ 
+ extern vtype Wv6a __attribute__((weakref ("wv6")));
+ static vtype *pv6a USED = &Wv6a;
+ extern vtype wv6;
+ 
+ extern vtype Wv7a __attribute__((weakref ("uv7")));
+ static vtype* USED fv7 (void) {
+   return &Wv7a;
+ }
+ extern vtype uv7;
+ static vtype* USED fv7a (void) {
+   return &uv7;
+ }
+ 
+ extern vtype uv8;
+ static vtype* USED fv8a (void) {
+   return &uv8;
+ }
+ extern vtype Wv8a __attribute__((weakref ("uv8")));
+ static vtype* USED fv8 (void) {
+   return &Wv8a;
+ }
+ 
+ extern vtype wv9 __attribute__((weak));
+ extern vtype Wv9a __attribute__((weakref ("wv9")));
+ static vtype *pv9a USED = &Wv9a;
+ 
+ extern vtype Wv10a __attribute__((weakref ("Wv10b")));
+ extern vtype Wv10b __attribute__((weakref ("Wv10c")));
+ extern vtype Wv10c __attribute__((weakref ("Wv10d")));
+ extern vtype Wv10d __attribute__((weakref ("wv10")));
+ extern vtype wv10;
+ 
+ extern vtype wv11;
+ extern vtype Wv11d __attribute__((weakref ("wv11")));
+ extern vtype Wv11c __attribute__((weakref ("Wv11d")));
+ extern vtype Wv11b __attribute__((weakref ("Wv11c")));
+ extern vtype Wv11a __attribute__((weakref ("Wv11b")));
+ 
+ extern vtype Wv12 __attribute__((weakref ("wv12")));
+ extern vtype wv12 __attribute__((weak));
+ 
+ extern vtype Wv13 __attribute__((weakref ("wv13")));
+ extern vtype wv13 __attribute__((weak));
+ 
+ extern vtype Wv14a __attribute__((weakref ("wv14")));
+ extern vtype Wv14b __attribute__((weakref ("wv14")));
+ extern vtype wv14 __attribute__((weak));
+ 
+ typedef void ftype(void);
+ 
+ extern ftype wf1;
+ extern ftype Wf1a __attribute__((weakref ("wf1")));
+ static ftype *pf1a USED = &Wf1a;
+ extern ftype Wf1b __attribute__((weak, weakref, alias ("wf1")));
+ static ftype *pf1b USED = &Wf1b;
+ extern ftype Wf1c __attribute__((weakref));
+ extern ftype Wf1c __attribute__((alias ("wf1")));
+ static ftype *pf1c USED = &Wf1c;
+ 
+ void gf2(void) {}
+ extern ftype Wf2a __attribute__((weakref ("gf2")));
+ static ftype *pf2a USED = &Wf2a;
+ 
+ static void lf3(void) {}
+ extern ftype Wf3a __attribute__((weakref ("lf3")));
+ static ftype *pf3a USED = &Wf3a;
+ 
+ extern ftype uf4;
+ extern ftype Wf4a __attribute__((weakref ("uf4")));
+ static ftype *pf4a USED = &Wf4a;
+ static ftype *pf4 USED = &uf4;
+ 
+ extern ftype Wf5a __attribute__((weakref ("uf5")));
+ static ftype *pf5a USED = &Wf5a;
+ extern ftype uf5;
+ static ftype *pf5 USED = &uf5;
+ 
+ extern ftype Wf6a __attribute__((weakref ("wf6")));
+ static ftype *pf6a USED = &Wf6a;
+ extern ftype wf6;
+ 
+ extern ftype Wf7a __attribute__((weakref ("uf7")));
+ static ftype* USED ff7 (void) {
+   return &Wf7a;
+ }
+ extern ftype uf7;
+ static ftype* USED ff7a (void) {
+   return &uf7;
+ }
+ 
+ extern ftype uf8;
+ static ftype* USED ff8a (void) {
+   return &uf8;
+ }
+ extern ftype Wf8a __attribute__((weakref ("uf8")));
+ static ftype* USED ff8 (void) {
+   return &Wf8a;
+ }
+ 
+ extern ftype wf9 __attribute__((weak));
+ extern ftype Wf9a __attribute__((weakref ("wf9")));
+ static ftype *pf9a USED = &Wf9a;
+ 
+ extern ftype Wf10a __attribute__((weakref ("Wf10b")));
+ extern ftype Wf10b __attribute__((weakref ("Wf10c")));
+ extern ftype Wf10c __attribute__((weakref ("Wf10d")));
+ extern ftype Wf10d __attribute__((weakref ("wf10")));
+ extern ftype wf10;
+ 
+ extern ftype wf11;
+ extern ftype Wf11d __attribute__((weakref ("wf11")));
+ extern ftype Wf11c __attribute__((weakref ("Wf11d")));
+ extern ftype Wf11b __attribute__((weakref ("Wf11c")));
+ extern ftype Wf11a __attribute__((weakref ("Wf11b")));
+ 
+ extern ftype Wf12 __attribute__((weakref ("wf12")));
+ extern ftype wf12 __attribute__((weak));
+ 
+ extern ftype Wf13 __attribute__((weakref ("wf13")));
+ extern ftype wf13 __attribute__((weak));
+ 
+ extern ftype Wf14a __attribute__((weakref ("wf14")));
+ extern ftype Wf14b __attribute__((weakref ("wf14")));
+ extern ftype wf14 __attribute__((weak));
+ 
+ #define chk(p) do { if (!p) abort (); } while (0)
+ 
+ int main () {
+   chk (!pv1a);
+   chk (!pv1b);
+   chk (!pv1c);
+   chk (pv2a);
+   chk (pv3a);
+   chk (pv4a);
+   chk (pv4);
+   chk (pv5a);
+   chk (pv5);
+   chk (!pv6a);
+   chk (fv7 ());
+   chk (fv7a ());
+   chk (fv8 ());
+   chk (fv8a ());
+   chk (!pv9a);
+   chk (!&Wv10a);
+   chk (!&Wv11a);
+   chk (!&Wv12);
+   chk (!&wv12);
+   chk (!&wv13);
+   chk (!&Wv14a);
+ 
+   chk (!pf1a);
+   chk (!pf1b);
+   chk (!pf1c);
+   chk (pf2a);
+   chk (pf3a);
+   chk (pf4a);
+   chk (pf4);
+   chk (pf5a);
+   chk (pf5);
+   chk (!pf6a);
+   chk (ff7 ());
+   chk (ff7a ());
+   chk (ff8 ());
+   chk (ff8a ());
+   chk (!pf9a);
+   chk (!&Wf10a);
+   chk (!&Wf11a);
+   chk (!&Wf12);
+   chk (!&wf12);
+   chk (!&wf13);
+   chk (!&Wf14a);
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/attr-weakref-1a.c gcc-4.1.0/gcc/testsuite/gcc.dg/attr-weakref-1a.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/attr-weakref-1a.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/attr-weakref-1a.c	Wed Nov  9 20:13:41 2005
***************
*** 0 ****
--- 1,8 ----
+ int uv4;
+ int uv5;
+ int uv7;
+ int uv8;
+ void uf4 (void) {}
+ void uf5 (void) {}
+ void uf7 (void) {}
+ void uf8 (void) {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/bfin-longcall-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/bfin-longcall-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/bfin-longcall-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/bfin-longcall-1.c	Fri Jul 22 09:46:30 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile { target bfin-*-* } } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler-not "call\[^\\n\]*foo" } } */
+ /* { dg-final { scan-assembler-not "jump\[^\\n\]*foo" } } */
+ /* { dg-final { scan-assembler "call\[^\\n\]*baz" } } */
+ /* { dg-final { scan-assembler "jump\[^\\n\]*baz" } } */
+ /* { dg-final { scan-assembler "call\[^\\n\]*bar" } } */
+ /* { dg-final { scan-assembler "jump\[^\\n\]*bar" } } */
+ 
+ extern void foo () __attribute__((longcall));
+ extern void bar () __attribute__((shortcall));
+ extern void baz ();
+ 
+ int t1 ()
+ {
+     foo ();
+     bar ();
+     baz ();
+     return 4;
+ }
+ 
+ void t2 ()
+ {
+     foo ();
+ }
+ void t3 ()
+ {
+     bar ();
+ }
+ void t4 ()
+ {
+     baz ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/bfin-longcall-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/bfin-longcall-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/bfin-longcall-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/bfin-longcall-2.c	Fri Jul 22 09:46:30 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile { target bfin-*-* } } */
+ /* { dg-options "-O2 -mlong-calls" } */
+ /* { dg-final { scan-assembler-not "call\[^\\n\]*foo" } } */
+ /* { dg-final { scan-assembler-not "jump\[^\\n\]*foo" } } */
+ /* { dg-final { scan-assembler-not "call\[^\\n\]*baz" } } */
+ /* { dg-final { scan-assembler-not "jump\[^\\n\]*baz" } } */
+ /* { dg-final { scan-assembler "call\[^\\n\]*bar" } } */
+ /* { dg-final { scan-assembler "jump\[^\\n\]*bar" } } */
+ 
+ extern void foo () __attribute__((longcall));
+ extern void bar () __attribute__((shortcall));
+ extern void baz ();
+ 
+ int t1 ()
+ {
+     foo ();
+     bar ();
+     baz ();
+     return 4;
+ }
+ 
+ void t2 ()
+ {
+     foo ();
+ }
+ void t3 ()
+ {
+     bar ();
+ }
+ void t4 ()
+ {
+     baz ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/bitfld-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/bitfld-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/bitfld-3.c	Wed Aug  7 23:20:35 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/bitfld-3.c	Wed Nov  2 02:49:24 2005
***************
*** 1,5 ****
  /* Test for bitfield alignment in structs and unions.  */
! /* { dg-do run }  */
  /* { dg-options "-O2" }  */
  
  extern void abort (void);
--- 1,5 ----
  /* Test for bitfield alignment in structs and unions.  */
! /* { dg-do run { target pcc_bitfield_type_matters } }  */
  /* { dg-options "-O2" }  */
  
  extern void abort (void);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/bitfld-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/bitfld-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/bitfld-4.c	Sat Aug 10 13:11:43 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/bitfld-4.c	Wed Nov  2 03:02:00 2005
***************
*** 1,4 ****
! /* { dg-do run } */
  /* { dg-options "" } */
  
  /* Check bitfields and non-bitfields are aligned & sized similarly.
--- 1,4 ----
! /* { dg-do run { target { pcc_bitfield_type_matters || default_packed } } } */
  /* { dg-options "" } */
  
  /* Check bitfields and non-bitfields are aligned & sized similarly.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-1.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,436 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern void abort (void);
+ extern void exit (int);
+ extern void *malloc (size_t);
+ extern void *calloc (size_t, size_t);
+ extern void *alloca (size_t);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern char *strcpy (char *, const char *);
+ 
+ struct A
+ {
+   char a[10];
+   int b;
+   char c[10];
+ } y, w[4];
+ 
+ extern char exta[];
+ extern char extb[30];
+ extern struct A zerol[0];
+ 
+ void
+ __attribute__ ((noinline))
+ test1 (void *q, int x)
+ {
+   struct A a;
+   void *p = &a.a[3], *r;
+   char var[x + 10];
+   if (x < 0)
+     r = &a.a[9];
+   else
+     r = &a.c[1];
+   if (__builtin_object_size (p, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 3)
+     abort ();
+   if (__builtin_object_size (&a.c[9], 0)
+       != sizeof (a) - __builtin_offsetof (struct A, c) - 9)
+     abort ();
+   if (__builtin_object_size (q, 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (r, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 9)
+     abort ();
+   if (x < 6)
+     r = &w[2].a[1];
+   else
+     r = &a.a[6];
+   if (__builtin_object_size (&y, 0)
+       != sizeof (y))
+     abort ();
+   if (__builtin_object_size (w, 0)
+       != sizeof (w))
+     abort ();
+   if (__builtin_object_size (&y.b, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, b))
+     abort ();
+   if (__builtin_object_size (r, 0)
+       != 2 * sizeof (w[0]) - __builtin_offsetof (struct A, a) - 1)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 16);
+   if (__builtin_object_size (r, 0) != 2 * 16)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 14);
+   if (__builtin_object_size (r, 0) != 30)
+     abort ();
+   if (x < 30)
+     r = malloc (sizeof (a));
+   else
+     r = &a.a[3];
+   if (__builtin_object_size (r, 0) != sizeof (a))
+     abort ();
+   r = memcpy (r, "a", 2);
+   if (__builtin_object_size (r, 0) != sizeof (a))
+     abort ();
+   r = memcpy (r + 2, "b", 2) + 2;
+   if (__builtin_object_size (r, 0) != sizeof (a) - 4)
+     abort ();
+   r = &a.a[4];
+   r = memset (r, 'a', 2);
+   if (__builtin_object_size (r, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 4)
+     abort ();
+   r = memset (r + 2, 'b', 2) + 2;
+   if (__builtin_object_size (r, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 8)
+     abort ();
+   r = &a.a[1];
+   r = strcpy (r, "ab");
+   if (__builtin_object_size (r, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 1)
+     abort ();
+   r = strcpy (r + 2, "cd") + 2;
+   if (__builtin_object_size (r, 0)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 5)
+     abort ();
+   if (__builtin_object_size (exta, 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (exta + 10, 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&exta[5], 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (extb, 0) != sizeof (extb))
+     abort ();
+   if (__builtin_object_size (extb + 10, 0) != sizeof (extb) - 10)
+     abort ();
+   if (__builtin_object_size (&extb[5], 0) != sizeof (extb) - 5)
+     abort ();
+   if (__builtin_object_size (var, 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (var + 10, 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&var[5], 0) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (zerol, 0) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol, 0) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0], 0) != 0)
+     abort ();
+   if (__builtin_object_size (zerol[0].a, 0) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].a[0], 0) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].b, 0) != 0)
+     abort ();
+   if (__builtin_object_size ("abcdefg", 0) != sizeof ("abcdefg"))
+     abort ();
+   if (__builtin_object_size ("abcd\0efg", 0) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg", 0) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[0], 0) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[4], 0) != sizeof ("abcd\0efg") - 4)
+     abort ();
+   if (__builtin_object_size ("abcd\0efg" + 5, 0) != sizeof ("abcd\0efg") - 5)
+     abort ();
+   if (__builtin_object_size (L"abcdefg", 0) != sizeof (L"abcdefg"))
+     abort ();
+   r = (char *) L"abcd\0efg";
+   if (__builtin_object_size (r + 2, 0) != sizeof (L"abcd\0efg") - 2)
+     abort ();
+ }
+ 
+ size_t l1 = 1;
+ 
+ void
+ __attribute__ ((noinline))
+ test2 (void)
+ {
+   struct B { char buf1[10]; char buf2[10]; } a;
+   char *r, buf3[20];
+   int i;
+ 
+   if (sizeof (a) != 20)
+     return;
+ 
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 0) != 20)
+     abort ();
+   r = &buf3[20];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[7];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 0) != 15)
+     abort ();
+   r += 8;
+   if (__builtin_object_size (r, 0) != 7)
+     abort ();
+   if (__builtin_object_size (r + 6, 0) != 1)
+     abort ();
+   r = &buf3[18];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[9];
+       else if (i == l1)
+ 	r = &a.buf2[9];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[4];
+     }
+   if (__builtin_object_size (r + 12, 0) != 4)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test3 (void)
+ {
+   char buf4[10];
+   struct B { struct A a[2]; struct A b; char c[4]; char d; double e;
+ 	     _Complex double f; } x;
+   double y;
+   _Complex double z;
+   double *dp;
+ 
+   if (__builtin_object_size (buf4, 0) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4, 0) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[0], 0) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[1], 0) != sizeof (buf4) - 1)
+     abort ();
+   if (__builtin_object_size (&x, 0) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a, 0) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0], 0) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a, 0) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[0], 0) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[3], 0) != sizeof (x) - 3)
+     abort ();
+   if (__builtin_object_size (&x.a[0].b, 0)
+       != sizeof (x) - __builtin_offsetof (struct A, b))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c, 0)
+       != sizeof (x) - sizeof (struct A) - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[0], 0)
+       != sizeof (x) - sizeof (struct A) - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[3], 0)
+       != sizeof (x) - sizeof (struct A) - __builtin_offsetof (struct A, c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b))
+     abort ();
+   if (__builtin_object_size (&x.b.a, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b))
+     abort ();
+   if (__builtin_object_size (&x.b.a[0], 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b))
+     abort ();
+   if (__builtin_object_size (&x.b.a[3], 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b.b, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, b))
+     abort ();
+   if (__builtin_object_size (&x.b.c, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[0], 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[3], 0)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.c, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, c))
+     abort ();
+   if (__builtin_object_size (&x.c[0], 0)
+       != sizeof (x) - __builtin_offsetof (struct B, c))
+     abort ();
+   if (__builtin_object_size (&x.c[1], 0)
+       != sizeof (x) - __builtin_offsetof (struct B, c) - 1)
+     abort ();
+   if (__builtin_object_size (&x.d, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, d))
+     abort ();
+   if (__builtin_object_size (&x.e, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, e))
+     abort ();
+   if (__builtin_object_size (&x.f, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, f))
+     abort ();
+   dp = &__real__ x.f;
+   if (__builtin_object_size (dp, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, f))
+     abort ();
+   dp = &__imag__ x.f;
+   if (__builtin_object_size (dp, 0)
+       != sizeof (x) - __builtin_offsetof (struct B, f)
+ 	 - sizeof (x.f) / 2)
+     abort ();
+   dp = &y;
+   if (__builtin_object_size (dp, 0) != sizeof (y))
+     abort ();
+   if (__builtin_object_size (&z, 0) != sizeof (z))
+     abort ();
+   dp = &__real__ z;
+   if (__builtin_object_size (dp, 0) != sizeof (z))
+     abort ();
+   dp = &__imag__ z;
+   if (__builtin_object_size (dp, 0) != sizeof (z) / 2)
+     abort ();
+ }
+ 
+ struct S { unsigned int a; };
+ 
+ char *
+ __attribute__ ((noinline))
+ test4 (char *x, int y)
+ {
+   register int i;
+   struct A *p;
+ 
+   for (i = 0; i < y; i++)
+     {
+       p = (struct A *) x;
+       x = (char *) &p[1];
+       if (__builtin_object_size (p, 0) != (size_t) -1)
+ 	abort ();
+     }
+   return x;
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test5 (size_t x)
+ {
+   char buf[64];
+   char *p = &buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   /* My understanding of ISO C99 6.5.6 is that a conforming
+      program will not end up with p equal to &buf[0]
+      through &buf[7], i.e. calling this function with say
+      UINTPTR_MAX / 4 results in undefined behaviour.
+      If that's true, then the maximum number of remaining
+      bytes from p until end of the object is 56, otherwise
+      it would be 64 (or conservative (size_t) -1 == unknown).  */
+   if (__builtin_object_size (p, 0) != sizeof (buf) - 8)
+     abort ();
+   memset (p, ' ', sizeof (buf) - 8 - 4 * 4);
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test6 (size_t x)
+ {
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &t.buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 0) != sizeof (t) - 8)
+     abort ();
+   memset (p, ' ', sizeof (t) - 8 - 4 * 4);
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test7 (void)
+ {
+   char buf[64];
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &buf[64], *q = &t.buf[64];
+ 
+   if (__builtin_object_size (p + 64, 0) != 0)
+     abort ();
+   if (__builtin_object_size (q + 63, 0) != sizeof (t) - 64 - 63)
+     abort ();
+   if (__builtin_object_size (q + 64, 0) != sizeof (t) - 64 - 64)
+     abort ();
+   if (__builtin_object_size (q + 256, 0) != 0)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test8 (void)
+ {
+   struct T { char buf[10]; char buf2[10]; } t;
+   char *p = &t.buf2[-4];
+   char *q = &t.buf2[0];
+   if (__builtin_object_size (p, 0) != sizeof (t) - 10 + 4)
+     abort ();
+   if (__builtin_object_size (q, 0) != sizeof (t) - 10)
+     abort ();
+   /* GCC only handles additions, not subtractions.  */
+   q = q - 8;
+   if (__builtin_object_size (q, 0) != (size_t) -1
+       && __builtin_object_size (q, 0) != sizeof (t) - 10 + 8)
+     abort ();
+   p = &t.buf[-4];
+   if (__builtin_object_size (p, 0) != 0)
+     abort ();
+ }
+ 
+ int
+ main (void)
+ {
+   struct S s[10];
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 (main, 6);
+   test2 ();
+   test3 ();
+   test4 ((char *) s, 10);
+   test5 (4);
+   test6 (4);
+   test7 ();
+   test8 ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-2.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,393 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern void abort (void);
+ extern void exit (int);
+ extern void *malloc (size_t);
+ extern void *calloc (size_t, size_t);
+ extern void *alloca (size_t);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern char *strcpy (char *, const char *);
+ 
+ struct A
+ {
+   char a[10];
+   int b;
+   char c[10];
+ } y, w[4];
+ 
+ extern char exta[];
+ extern char extb[30];
+ extern struct A extc[];
+ struct A zerol[0];
+ 
+ void
+ __attribute__ ((noinline))
+ test1 (void *q, int x)
+ {
+   struct A a;
+   void *p = &a.a[3], *r;
+   char var[x + 10];
+   struct A vara[x + 10];
+   if (x < 0)
+     r = &a.a[9];
+   else
+     r = &a.c[1];
+   if (__builtin_object_size (p, 1) != sizeof (a.a) - 3)
+     abort ();
+   if (__builtin_object_size (&a.c[9], 1)
+       != sizeof (a.c) - 9)
+     abort ();
+   if (__builtin_object_size (q, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (r, 1) != sizeof (a.c) - 1)
+     abort ();
+   if (x < 6)
+     r = &w[2].a[1];
+   else
+     r = &a.a[6];
+   if (__builtin_object_size (&y, 1) != sizeof (y))
+     abort ();
+   if (__builtin_object_size (w, 1) != sizeof (w))
+     abort ();
+   if (__builtin_object_size (&y.b, 1) != sizeof (a.b))
+     abort ();
+   if (__builtin_object_size (r, 1) != sizeof (a.a) - 1)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 16);
+   if (__builtin_object_size (r, 1) != 2 * 16)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 14);
+   if (__builtin_object_size (r, 1) != 30)
+     abort ();
+   if (x < 30)
+     r = malloc (sizeof (a));
+   else
+     r = &a.a[3];
+   if (__builtin_object_size (r, 1) != sizeof (a))
+     abort ();
+   r = memcpy (r, "a", 2);
+   if (__builtin_object_size (r, 1) != sizeof (a))
+     abort ();
+   r = memcpy (r + 2, "b", 2) + 2;
+   if (__builtin_object_size (r, 1) != sizeof (a) - 4)
+     abort ();
+   r = &a.a[4];
+   r = memset (r, 'a', 2);
+   if (__builtin_object_size (r, 1) != sizeof (a.a) - 4)
+     abort ();
+   r = memset (r + 2, 'b', 2) + 2;
+   if (__builtin_object_size (r, 1) != sizeof (a.a) - 8)
+     abort ();
+   r = &a.a[1];
+   r = strcpy (r, "ab");
+   if (__builtin_object_size (r, 1) != sizeof (a.a) - 1)
+     abort ();
+   r = strcpy (r + 2, "cd") + 2;
+   if (__builtin_object_size (r, 1) != sizeof (a.a) - 5)
+     abort ();
+   if (__builtin_object_size (exta, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (exta + 10, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&exta[5], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (extb, 1) != sizeof (extb))
+     abort ();
+   if (__builtin_object_size (extb + 10, 1) != sizeof (extb) - 10)
+     abort ();
+   if (__builtin_object_size (&extb[5], 1) != sizeof (extb) - 5)
+     abort ();
+   if (__builtin_object_size (extc, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (extc + 10, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&extc[5], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&extc->a, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&(extc + 10)->b, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&extc[5].c[3], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (var, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (var + 10, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&var[5], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (vara, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (vara + 10, 1) != (size_t) -1)
+     abort ();    
+   if (__builtin_object_size (&vara[5], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&vara[0].a, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&vara[10].a[0], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&vara[5].a[4], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&vara[5].b, 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (&vara[7].c[7], 1) != (size_t) -1)
+     abort ();
+   if (__builtin_object_size (zerol, 1) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol, 1) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0], 1) != 0)
+     abort ();
+   if (__builtin_object_size (zerol[0].a, 1) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].a[0], 1) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].b, 1) != 0)
+     abort ();
+   if (__builtin_object_size ("abcdefg", 1) != sizeof ("abcdefg"))
+     abort ();
+   if (__builtin_object_size ("abcd\0efg", 1) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg", 1) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[0], 1) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[4], 1) != sizeof ("abcd\0efg") - 4)
+     abort ();
+   if (__builtin_object_size ("abcd\0efg" + 5, 1) != sizeof ("abcd\0efg") - 5)
+     abort ();
+   if (__builtin_object_size (L"abcdefg", 1) != sizeof (L"abcdefg"))
+     abort ();
+   r = (char *) L"abcd\0efg";
+   if (__builtin_object_size (r + 2, 1) != sizeof (L"abcd\0efg") - 2)
+     abort ();
+ }
+ 
+ size_t l1 = 1;
+ 
+ void
+ __attribute__ ((noinline))
+ test2 (void)
+ {
+   struct B { char buf1[10]; char buf2[10]; } a;
+   char *r, buf3[20];
+   int i;
+ 
+   if (sizeof (a) != 20)
+     return;
+ 
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 1) != sizeof (buf3))
+     abort ();
+   r = &buf3[20];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[7];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 1) != sizeof (buf3) - 5)
+     abort ();
+   r += 8;
+   if (__builtin_object_size (r, 1) != sizeof (buf3) - 13)
+     abort ();
+   if (__builtin_object_size (r + 6, 1) != sizeof (buf3) - 19)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test3 (void)
+ {
+   char buf4[10];
+   struct B { struct A a[2]; struct A b; char c[4]; char d; double e;
+ 	     _Complex double f; } x;
+   double y;
+   _Complex double z;
+   double *dp;
+ 
+   if (__builtin_object_size (buf4, 1) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4, 1) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[0], 1) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[1], 1) != sizeof (buf4) - 1)
+     abort ();
+   if (__builtin_object_size (&x, 1) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a, 1) != sizeof (x.a))
+     abort ();
+   if (__builtin_object_size (&x.a[0], 1) != sizeof (x.a))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a, 1) != sizeof (x.a[0].a))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[0], 1) != sizeof (x.a[0].a))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[3], 1) != sizeof (x.a[0].a) - 3)
+     abort ();
+   if (__builtin_object_size (&x.a[0].b, 1) != sizeof (x.a[0].b))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c, 1) != sizeof (x.a[1].c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[0], 1) != sizeof (x.a[1].c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[3], 1) != sizeof (x.a[1].c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b, 1) != sizeof (x.b))
+     abort ();
+   if (__builtin_object_size (&x.b.a, 1) != sizeof (x.b.a))
+     abort ();
+   if (__builtin_object_size (&x.b.a[0], 1) != sizeof (x.b.a))
+     abort ();
+   if (__builtin_object_size (&x.b.a[3], 1) != sizeof (x.b.a) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b.b, 1) != sizeof (x.b.b))
+     abort ();
+   if (__builtin_object_size (&x.b.c, 1) != sizeof (x.b.c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[0], 1) != sizeof (x.b.c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[3], 1) != sizeof (x.b.c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.c, 1) != sizeof (x.c))
+     abort ();
+   if (__builtin_object_size (&x.c[0], 1) != sizeof (x.c))
+     abort ();
+   if (__builtin_object_size (&x.c[1], 1) != sizeof (x.c) - 1)
+     abort ();
+   if (__builtin_object_size (&x.d, 1) != sizeof (x.d))
+     abort ();
+   if (__builtin_object_size (&x.e, 1) != sizeof (x.e))
+     abort ();
+   if (__builtin_object_size (&x.f, 1) != sizeof (x.f))
+     abort ();
+   dp = &__real__ x.f;
+   if (__builtin_object_size (dp, 1) != sizeof (x.f) / 2)
+     abort ();
+   dp = &__imag__ x.f;
+   if (__builtin_object_size (dp, 1) != sizeof (x.f) / 2)
+     abort ();
+   dp = &y;
+   if (__builtin_object_size (dp, 1) != sizeof (y))
+     abort ();
+   if (__builtin_object_size (&z, 1) != sizeof (z))
+       abort ();
+   dp = &__real__ z;
+   if (__builtin_object_size (dp, 1) != sizeof (z) / 2)
+     abort ();
+   dp = &__imag__ z;
+   if (__builtin_object_size (dp, 1) != sizeof (z) / 2)
+     abort ();
+ }
+ 
+ struct S { unsigned int a; };
+ 
+ char *
+ __attribute__ ((noinline))
+ test4 (char *x, int y)
+ {
+   register int i;
+   struct A *p;
+ 
+   for (i = 0; i < y; i++)
+     {
+       p = (struct A *) x;
+       x = (char *) &p[1];
+       if (__builtin_object_size (p, 1) != (size_t) -1)
+ 	abort ();
+     }
+   return x;
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test5 (size_t x)
+ {
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &t.buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 1) != sizeof (t.buf) - 8)
+     abort ();
+   memset (p, ' ', sizeof (t.buf) - 8 - 4 * 4);
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test6 (void)
+ {
+   char buf[64];
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &buf[64], *q = &t.buf[64];
+ 
+   if (__builtin_object_size (p + 64, 1) != 0)
+     abort ();
+   if (__builtin_object_size (q + 0, 1) != 0)
+     abort ();
+   if (__builtin_object_size (q + 64, 1) != 0)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test7 (void)
+ {
+   struct T { char buf[10]; char buf2[10]; } t;
+   char *p = &t.buf2[-4];
+   char *q = &t.buf2[0];
+   if (__builtin_object_size (p, 1) != 0)
+     abort ();
+   if (__builtin_object_size (q, 1) != sizeof (t.buf2))
+     abort ();
+   q = &t.buf[10];
+   if (__builtin_object_size (q, 1) != 0)
+     abort ();
+   q = &t.buf[11];
+   if (__builtin_object_size (q, 1) != 0)
+     abort ();
+   p = &t.buf[-4];
+   if (__builtin_object_size (p, 1) != 0)
+     abort ();
+ }
+ 
+ int
+ main (void)
+ {
+   struct S s[10];
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 (main, 6);
+   test2 ();
+   test3 ();
+   test4 ((char *) s, 10);
+   test5 (4);
+   test6 ();
+   test7 ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-3.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,446 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern void abort (void);
+ extern void exit (int);
+ extern void *malloc (size_t);
+ extern void *calloc (size_t, size_t);
+ extern void *alloca (size_t);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern char *strcpy (char *, const char *);
+ 
+ struct A
+ {
+   char a[10];
+   int b;
+   char c[10];
+ } y, w[4];
+ 
+ extern char exta[];
+ extern char extb[30];
+ extern struct A zerol[0];
+ 
+ void
+ __attribute__ ((noinline))
+ test1 (void *q, int x)
+ {
+   struct A a;
+   void *p = &a.a[3], *r;
+   char var[x + 10];
+   if (x < 0)
+     r = &a.a[9];
+   else
+     r = &a.c[1];
+   if (__builtin_object_size (p, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 3)
+     abort ();
+   if (__builtin_object_size (&a.c[9], 2)
+       != sizeof (a) - __builtin_offsetof (struct A, c) - 9)
+     abort ();
+   if (__builtin_object_size (q, 2) != 0)
+     abort ();
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, c) - 1)
+     abort ();
+   if (x < 6)
+     r = &w[2].a[1];
+   else
+     r = &a.a[6];
+   if (__builtin_object_size (&y, 2)
+       != sizeof (y))
+     abort ();
+   if (__builtin_object_size (w, 2)
+       != sizeof (w))
+     abort ();
+   if (__builtin_object_size (&y.b, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, b))
+     abort ();
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 6)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 16);
+   if (__builtin_object_size (r, 2) != 30)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 14);
+   if (__builtin_object_size (r, 2) != 2 * 14)
+     abort ();
+   if (x < 30)
+     r = malloc (sizeof (a));
+   else
+     r = &a.a[3];
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 3)
+     abort ();
+   r = memcpy (r, "a", 2);
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 3)
+     abort ();
+   r = memcpy (r + 2, "b", 2) + 2;
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 3 - 4)
+     abort ();
+   r = &a.a[4];
+   r = memset (r, 'a', 2);
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 4)
+     abort ();
+   r = memset (r + 2, 'b', 2) + 2;
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 8)
+     abort ();
+   r = &a.a[1];
+   r = strcpy (r, "ab");
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 1)
+     abort ();
+   r = strcpy (r + 2, "cd") + 2;
+   if (__builtin_object_size (r, 2)
+       != sizeof (a) - __builtin_offsetof (struct A, a) - 5)
+     abort ();
+   if (__builtin_object_size (exta, 2) != 0)
+     abort ();
+   if (__builtin_object_size (exta + 10, 2) != 0)
+     abort ();
+   if (__builtin_object_size (&exta[5], 2) != 0)
+     abort ();
+   if (__builtin_object_size (extb, 2) != sizeof (extb))
+     abort ();
+   if (__builtin_object_size (extb + 10, 2) != sizeof (extb) - 10)
+     abort ();
+   if (__builtin_object_size (&extb[5], 2) != sizeof (extb) - 5)
+     abort ();
+   if (__builtin_object_size (var, 2) != 0)
+     abort ();
+   if (__builtin_object_size (var + 10, 2) != 0)
+     abort ();
+   if (__builtin_object_size (&var[5], 2) != 0)
+     abort ();
+   if (__builtin_object_size (zerol, 2) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol, 2) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0], 2) != 0)
+     abort ();
+   if (__builtin_object_size (zerol[0].a, 2) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].a[0], 2) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].b, 2) != 0)
+     abort ();
+   if (__builtin_object_size ("abcdefg", 2) != sizeof ("abcdefg"))
+     abort ();
+   if (__builtin_object_size ("abcd\0efg", 2) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg", 2) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[0], 2) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[4], 2) != sizeof ("abcd\0efg") - 4)
+     abort ();
+   if (__builtin_object_size ("abcd\0efg" + 5, 2) != sizeof ("abcd\0efg") - 5)
+     abort ();
+   if (__builtin_object_size (L"abcdefg", 2) != sizeof (L"abcdefg"))
+     abort ();
+   r = (char *) L"abcd\0efg";
+   if (__builtin_object_size (r + 2, 2) != sizeof (L"abcd\0efg") - 2)
+     abort ();
+ }
+ 
+ size_t l1 = 1;
+ 
+ void
+ __attribute__ ((noinline))
+ test2 (void)
+ {
+   struct B { char buf1[10]; char buf2[10]; } a;
+   char *r, buf3[20];
+   int i;
+ 
+   if (sizeof (a) != 20)
+     return;
+ 
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 2) != 3)
+     abort ();
+   r = &buf3[20];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[7];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 2) != 0)
+     abort ();
+   r = &buf3[2];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf1[2];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[4];
+     }
+   if (__builtin_object_size (r, 2) != 15)
+     abort ();
+   r += 8;
+   if (__builtin_object_size (r, 2) != 7)
+     abort ();
+   if (__builtin_object_size (r + 6, 2) != 1)
+     abort ();
+   r = &buf3[18];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[9];
+       else if (i == l1)
+ 	r = &a.buf2[9];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[4];
+     }
+   if (__builtin_object_size (r + 12, 2) != 0)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test3 (void)
+ {
+   char buf4[10];
+   struct B { struct A a[2]; struct A b; char c[4]; char d; double e;
+ 	     _Complex double f; } x;
+   double y;
+   _Complex double z;
+   double *dp;
+ 
+   if (__builtin_object_size (buf4, 2) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4, 2) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[0], 2) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[1], 2) != sizeof (buf4) - 1)
+     abort ();
+   if (__builtin_object_size (&x, 2) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a, 2) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0], 2) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a, 2) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[0], 2) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[3], 2) != sizeof (x) - 3)
+     abort ();
+   if (__builtin_object_size (&x.a[0].b, 2)
+       != sizeof (x) - __builtin_offsetof (struct A, b))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c, 2)
+       != sizeof (x) - sizeof (struct A) - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[0], 2)
+       != sizeof (x) - sizeof (struct A) - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[3], 2)
+       != sizeof (x) - sizeof (struct A) - __builtin_offsetof (struct A, c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b))
+     abort ();
+   if (__builtin_object_size (&x.b.a, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b))
+     abort ();
+   if (__builtin_object_size (&x.b.a[0], 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b))
+     abort ();
+   if (__builtin_object_size (&x.b.a[3], 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b.b, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, b))
+     abort ();
+   if (__builtin_object_size (&x.b.c, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[0], 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[3], 2)
+       != sizeof (x) - __builtin_offsetof (struct B, b)
+ 	 - __builtin_offsetof (struct A, c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.c, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, c))
+     abort ();
+   if (__builtin_object_size (&x.c[0], 2)
+       != sizeof (x) - __builtin_offsetof (struct B, c))
+     abort ();
+   if (__builtin_object_size (&x.c[1], 2)
+       != sizeof (x) - __builtin_offsetof (struct B, c) - 1)
+     abort ();
+   if (__builtin_object_size (&x.d, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, d))
+     abort ();
+   if (__builtin_object_size (&x.e, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, e))
+     abort ();
+   if (__builtin_object_size (&x.f, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, f))
+     abort ();
+   dp = &__real__ x.f;
+   if (__builtin_object_size (dp, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, f))
+     abort ();
+   dp = &__imag__ x.f;
+   if (__builtin_object_size (dp, 2)
+       != sizeof (x) - __builtin_offsetof (struct B, f)
+ 	 - sizeof (x.f) / 2)
+     abort ();
+   dp = &y;
+   if (__builtin_object_size (dp, 2) != sizeof (y))
+     abort ();
+   if (__builtin_object_size (&z, 2) != sizeof (z))
+     abort ();
+   dp = &__real__ z;
+   if (__builtin_object_size (dp, 2) != sizeof (z))
+     abort ();
+   dp = &__imag__ z;
+   if (__builtin_object_size (dp, 2) != sizeof (z) / 2)
+     abort ();
+ }
+ 
+ struct S { unsigned int a; };
+ 
+ char *
+ __attribute__ ((noinline))
+ test4 (char *x, int y)
+ {
+   register int i;
+   struct A *p;
+ 
+   for (i = 0; i < y; i++)
+     {
+       p = (struct A *) x;
+       x = (char *) &p[1];
+       if (__builtin_object_size (p, 2) != 0)
+ 	abort ();
+     }
+   return x;
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test5 (size_t x)
+ {
+   char buf[64];
+   char *p = &buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 2) != 0)
+     abort ();
+   memset (p, ' ', sizeof (buf) - 8 - 4 * 4);
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test6 (size_t x)
+ {
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &t.buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 2) != 0)
+     abort ();
+   memset (p, ' ', sizeof (t) - 8 - 4 * 4);
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test7 (void)
+ {
+   char buf[64];
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &buf[64], *q = &t.buf[64];
+ 
+   if (__builtin_object_size (p + 64, 2) != 0)
+     abort ();
+   if (__builtin_object_size (q + 63, 2) != sizeof (t) - 64 - 63)
+     abort ();
+   if (__builtin_object_size (q + 64, 2) != sizeof (t) - 64 - 64)
+     abort ();
+   if (__builtin_object_size (q + 256, 2) != 0)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test8 (void)
+ {
+   struct T { char buf[10]; char buf2[10]; } t;
+   char *p = &t.buf2[-4];
+   char *q = &t.buf2[0];
+   if (__builtin_object_size (p, 2) != sizeof (t) - 10 + 4)
+     abort ();
+   if (__builtin_object_size (q, 2) != sizeof (t) - 10)
+     abort ();
+   /* GCC only handles additions, not subtractions.  */
+   q = q - 8;
+   if (__builtin_object_size (q, 2) != 0
+       && __builtin_object_size (q, 2) != sizeof (t) - 10 + 8)
+     abort ();
+   p = &t.buf[-4];
+   if (__builtin_object_size (p, 2) != 0)
+     abort ();
+ }
+ 
+ int
+ main (void)
+ {
+   struct S s[10];
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 (main, 6);
+   test2 ();
+   test3 ();
+   test4 ((char *) s, 10);
+   test5 (4);
+   test6 (4);
+   test7 ();
+   test8 ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-4.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,407 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern void abort (void);
+ extern void exit (int);
+ extern void *malloc (size_t);
+ extern void *calloc (size_t, size_t);
+ extern void *alloca (size_t);
+ extern void *memcpy (void *, const void *, size_t);
+ extern void *memset (void *, int, size_t);
+ extern char *strcpy (char *, const char *);
+ 
+ struct A
+ {
+   char a[10];
+   int b;
+   char c[10];
+ } y, w[4];
+ 
+ extern char exta[];
+ extern char extb[30];
+ extern struct A extc[];
+ struct A zerol[0];
+ 
+ void
+ __attribute__ ((noinline))
+ test1 (void *q, int x)
+ {
+   struct A a;
+   void *p = &a.a[3], *r;
+   char var[x + 10];
+   struct A vara[x + 10];
+   if (x < 0)
+     r = &a.a[9];
+   else
+     r = &a.c[1];
+   if (__builtin_object_size (p, 3) != sizeof (a.a) - 3)
+     abort ();
+   if (__builtin_object_size (&a.c[9], 3)
+       != sizeof (a.c) - 9)
+     abort ();
+   if (__builtin_object_size (q, 3) != 0)
+     abort ();
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 9)
+     abort ();
+   if (x < 6)
+     r = &w[2].a[1];
+   else
+     r = &a.a[6];
+   if (__builtin_object_size (&y, 3) != sizeof (y))
+     abort ();
+   if (__builtin_object_size (w, 3) != sizeof (w))
+     abort ();
+   if (__builtin_object_size (&y.b, 3) != sizeof (a.b))
+     abort ();
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 6)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 16);
+   if (__builtin_object_size (r, 3) != 30)
+     abort ();
+   if (x < 20)
+     r = malloc (30);
+   else
+     r = calloc (2, 14);
+   if (__builtin_object_size (r, 3) != 2 * 14)
+     abort ();
+   if (x < 30)
+     r = malloc (sizeof (a));
+   else
+     r = &a.a[3];
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 3)
+     abort ();
+   r = memcpy (r, "a", 2);
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 3)
+     abort ();
+   r = memcpy (r + 2, "b", 2) + 2;
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 3 - 4)
+     abort ();
+   r = &a.a[4];
+   r = memset (r, 'a', 2);
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 4)
+     abort ();
+   r = memset (r + 2, 'b', 2) + 2;
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 8)
+     abort ();
+   r = &a.a[1];
+   r = strcpy (r, "ab");
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 1)
+     abort ();
+   r = strcpy (r + 2, "cd") + 2;
+   if (__builtin_object_size (r, 3) != sizeof (a.a) - 5)
+     abort ();
+   if (__builtin_object_size (exta, 3) != 0)
+     abort ();
+   if (__builtin_object_size (exta + 10, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&exta[5], 3) != 0)
+     abort ();
+   if (__builtin_object_size (extb, 3) != sizeof (extb))
+     abort ();
+   if (__builtin_object_size (extb + 10, 3) != sizeof (extb) - 10)
+     abort ();
+   if (__builtin_object_size (&extb[5], 3) != sizeof (extb) - 5)
+     abort ();
+   if (__builtin_object_size (extc, 3) != 0)
+     abort ();
+   if (__builtin_object_size (extc + 10, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&extc[5], 3) != 0)
+     abort ();
+   if (__builtin_object_size (&extc->a, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&(extc + 10)->b, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&extc[5].c[3], 3) != 0)
+     abort ();
+   if (__builtin_object_size (var, 3) != 0)
+     abort ();
+   if (__builtin_object_size (var + 10, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&var[5], 3) != 0)
+     abort ();
+   if (__builtin_object_size (vara, 3) != 0)
+     abort ();
+   if (__builtin_object_size (vara + 10, 3) != 0)
+     abort ();    
+   if (__builtin_object_size (&vara[5], 3) != 0)
+     abort ();
+   if (__builtin_object_size (&vara[0].a, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&vara[10].a[0], 3) != 0)
+     abort ();
+   if (__builtin_object_size (&vara[5].a[4], 3) != 0)
+     abort ();
+   if (__builtin_object_size (&vara[5].b, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&vara[7].c[7], 3) != 0)
+     abort ();
+   if (__builtin_object_size (zerol, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0], 3) != 0)
+     abort ();
+   if (__builtin_object_size (zerol[0].a, 3) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].a[0], 3) != 0)
+     abort ();
+   if (__builtin_object_size (&zerol[0].b, 3) != 0)
+     abort ();
+   if (__builtin_object_size ("abcdefg", 3) != sizeof ("abcdefg"))
+     abort ();
+   if (__builtin_object_size ("abcd\0efg", 3) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg", 3) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[0], 3) != sizeof ("abcd\0efg"))
+     abort ();
+   if (__builtin_object_size (&"abcd\0efg"[4], 3) != sizeof ("abcd\0efg") - 4)
+     abort ();
+   if (__builtin_object_size ("abcd\0efg" + 5, 3) != sizeof ("abcd\0efg") - 5)
+     abort ();
+   if (__builtin_object_size (L"abcdefg", 3) != sizeof (L"abcdefg"))
+     abort ();
+   r = (char *) L"abcd\0efg";
+   if (__builtin_object_size (r + 2, 3) != sizeof (L"abcd\0efg") - 2)
+     abort ();
+ }
+ 
+ size_t l1 = 1;
+ 
+ void
+ __attribute__ ((noinline))
+ test2 (void)
+ {
+   struct B { char buf1[10]; char buf2[10]; } a;
+   char *r, buf3[20];
+   int i;
+ 
+   if (sizeof (a) != 20)
+     return;
+ 
+   r = buf3;
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[1];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 3) != sizeof (a.buf1) - 9)
+     abort ();
+   r = &buf3[20];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[7];
+       else if (i == l1)
+ 	r = &a.buf2[7];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[9];
+     }
+   if (__builtin_object_size (r, 3) != 0)
+     abort ();
+   r = &buf3[1];
+   for (i = 0; i < 4; ++i)
+     {
+       if (i == l1 - 1)
+ 	r = &a.buf1[6];
+       else if (i == l1)
+ 	r = &a.buf2[4];
+       else if (i == l1 + 1)
+ 	r = &buf3[5];
+       else if (i == l1 + 2)
+ 	r = &a.buf1[2];
+     }
+   if (__builtin_object_size (r, 3) != sizeof (a.buf1) - 6)
+     abort ();
+   r += 2;
+   if (__builtin_object_size (r, 3) != sizeof (a.buf1) - 6 - 2)
+     abort ();
+   if (__builtin_object_size (r + 1, 3) != sizeof (a.buf1) - 6 - 3)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test3 (void)
+ {
+   char buf4[10];
+   struct B { struct A a[2]; struct A b; char c[4]; char d; double e;
+ 	     _Complex double f; } x;
+   double y;
+   _Complex double z;
+   double *dp;
+ 
+   if (__builtin_object_size (buf4, 3) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4, 3) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[0], 3) != sizeof (buf4))
+     abort ();
+   if (__builtin_object_size (&buf4[1], 3) != sizeof (buf4) - 1)
+     abort ();
+   if (__builtin_object_size (&x, 3) != sizeof (x))
+     abort ();
+   if (__builtin_object_size (&x.a, 3) != sizeof (x.a))
+     abort ();
+   if (__builtin_object_size (&x.a[0], 3) != sizeof (x.a))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a, 3) != sizeof (x.a[0].a))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[0], 3) != sizeof (x.a[0].a))
+     abort ();
+   if (__builtin_object_size (&x.a[0].a[3], 3) != sizeof (x.a[0].a) - 3)
+     abort ();
+   if (__builtin_object_size (&x.a[0].b, 3) != sizeof (x.a[0].b))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c, 3) != sizeof (x.a[1].c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[0], 3) != sizeof (x.a[1].c))
+     abort ();
+   if (__builtin_object_size (&x.a[1].c[3], 3) != sizeof (x.a[1].c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b, 3) != sizeof (x.b))
+     abort ();
+   if (__builtin_object_size (&x.b.a, 3) != sizeof (x.b.a))
+     abort ();
+   if (__builtin_object_size (&x.b.a[0], 3) != sizeof (x.b.a))
+     abort ();
+   if (__builtin_object_size (&x.b.a[3], 3) != sizeof (x.b.a) - 3)
+     abort ();
+   if (__builtin_object_size (&x.b.b, 3) != sizeof (x.b.b))
+     abort ();
+   if (__builtin_object_size (&x.b.c, 3) != sizeof (x.b.c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[0], 3) != sizeof (x.b.c))
+     abort ();
+   if (__builtin_object_size (&x.b.c[3], 3) != sizeof (x.b.c) - 3)
+     abort ();
+   if (__builtin_object_size (&x.c, 3) != sizeof (x.c))
+     abort ();
+   if (__builtin_object_size (&x.c[0], 3) != sizeof (x.c))
+     abort ();
+   if (__builtin_object_size (&x.c[1], 3) != sizeof (x.c) - 1)
+     abort ();
+   if (__builtin_object_size (&x.d, 3) != sizeof (x.d))
+     abort ();
+   if (__builtin_object_size (&x.e, 3) != sizeof (x.e))
+     abort ();
+   if (__builtin_object_size (&x.f, 3) != sizeof (x.f))
+     abort ();
+   dp = &__real__ x.f;
+   if (__builtin_object_size (dp, 3) != sizeof (x.f) / 2)
+     abort ();
+   dp = &__imag__ x.f;
+   if (__builtin_object_size (dp, 3) != sizeof (x.f) / 2)
+     abort ();
+   dp = &y;
+   if (__builtin_object_size (dp, 3) != sizeof (y))
+     abort ();
+   if (__builtin_object_size (&z, 3) != sizeof (z))
+       abort ();
+   dp = &__real__ z;
+   if (__builtin_object_size (dp, 3) != sizeof (z) / 2)
+     abort ();
+   dp = &__imag__ z;
+   if (__builtin_object_size (dp, 3) != sizeof (z) / 2)
+     abort ();
+ }
+ 
+ struct S { unsigned int a; };
+ 
+ char *
+ __attribute__ ((noinline))
+ test4 (char *x, int y)
+ {
+   register int i;
+   struct A *p;
+ 
+   for (i = 0; i < y; i++)
+     {
+       p = (struct A *) x;
+       x = (char *) &p[1];
+       if (__builtin_object_size (p, 3) != 0)
+ 	abort ();
+     }
+   return x;
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test5 (size_t x)
+ {
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &t.buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 3) != 0)
+     abort ();
+   memset (p, ' ', sizeof (t.buf) - 8 - 4 * 4);
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test6 (void)
+ {
+   char buf[64];
+   struct T { char buf[64]; char buf2[64]; } t;
+   char *p = &buf[64], *q = &t.buf[64];
+ 
+   if (__builtin_object_size (p + 64, 3) != 0)
+     abort ();
+   if (__builtin_object_size (q + 0, 3) != 0)
+     abort ();
+   if (__builtin_object_size (q + 64, 3) != 0)
+     abort ();
+ }
+ 
+ void
+ __attribute__ ((noinline))
+ test7 (void)
+ {
+   struct T { char buf[10]; char buf2[10]; } t;
+   char *p = &t.buf2[-4];
+   char *q = &t.buf2[0];
+   if (__builtin_object_size (p, 3) != 0)
+     abort ();
+   if (__builtin_object_size (q, 3) != sizeof (t.buf2))
+     abort ();
+   q = &t.buf[10];
+   if (__builtin_object_size (q, 3) != 0)
+     abort ();
+   q = &t.buf[11];
+   if (__builtin_object_size (q, 3) != 0)
+     abort ();
+   p = &t.buf[-4];
+   if (__builtin_object_size (p, 3) != 0)
+     abort ();
+ }
+ 
+ int
+ main (void)
+ {
+   struct S s[10];
+   __asm ("" : "=r" (l1) : "0" (l1));
+   test1 (main, 6);
+   test2 ();
+   test3 ();
+   test4 ((char *) s, 10);
+   test5 (4);
+   test6 ();
+   test7 ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-object-size-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-object-size-5.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,56 ----
+ /* { dg-do compile { target i?86-*-linux* x86_64-*-linux* } } */
+ /* { dg-options "-O2" } */
+ 
+ typedef __SIZE_TYPE__ size_t;
+ extern void abort (void);
+ extern char buf[0x40000000];
+ 
+ void
+ test1 (size_t x)
+ {
+   char *p = &buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 0) != sizeof (buf) - 8)
+     abort ();
+ }
+ 
+ void
+ test2 (size_t x)
+ {
+   char *p = &buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 1) != sizeof (buf) - 8)
+     abort ();
+ }
+ 
+ void
+ test3 (size_t x)
+ {
+   char *p = &buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 2) != 0)
+     abort ();
+ }
+ 
+ void
+ test4 (size_t x)
+ {
+   char *p = &buf[8];
+   size_t i;
+ 
+   for (i = 0; i < x; ++i)
+     p = p + 4;
+   if (__builtin_object_size (p, 3) != 0)
+     abort ();
+ }
+ 
+ /* { dg-final { scan-assembler-not "abort" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-stringop-chk-1.c	Tue Aug 30 15:07:15 2005
***************
*** 0 ****
--- 1,114 ----
+ /* Test whether buffer overflow warnings for __*_chk builtins
+    are emitted properly.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -std=gnu99" } */
+ /* { dg-options "-mstructure-size-boundary=8 -O2 -std=gnu99" { target arm-*-* } } */
+ 
+ extern void abort (void);
+ 
+ #include "../gcc.c-torture/execute/builtins/chk.h"
+ #include <stdarg.h>
+ 
+ volatile void *vx;
+ char buf1[20];
+ int x;
+ 
+ void
+ test (int arg, ...)
+ {
+   char buf2[20];
+   va_list ap;
+   char *p = &buf1[10], *q;
+ 
+   memcpy (&buf2[19], "ab", 1);
+   memcpy (&buf2[19], "ab", 2); /* { dg-warning "will always overflow" "memcpy" } */
+   vx = mempcpy (&buf2[19], "ab", 1);
+   vx = mempcpy (&buf2[19], "ab", 2); /* { dg-warning "will always overflow" "mempcpy" } */
+   memmove (&buf2[18], &buf1[10], 2);
+   memmove (&buf2[18], &buf1[10], 3); /* { dg-warning "will always overflow" "memmove" } */
+   memset (&buf2[16], 'a', 4);
+   memset (&buf2[15], 'b', 6); /* { dg-warning "will always overflow" "memset" } */
+   strcpy (&buf2[18], "a");
+   strcpy (&buf2[18], "ab"); /* { dg-warning "will always overflow" "strcpy" } */
+   vx = stpcpy (&buf2[18], "a");
+   vx = stpcpy (&buf2[18], "ab"); /* { dg-warning "will always overflow" "stpcpy" } */
+   strncpy (&buf2[18], "a", 2);
+   strncpy (&buf2[18], "a", 3); /* { dg-warning "will always overflow" "strncpy" } */
+   strncpy (&buf2[18], "abc", 2);
+   strncpy (&buf2[18], "abc", 3); /* { dg-warning "will always overflow" "strncpy" } */
+   memset (buf2, '\0', sizeof (buf2));
+   strcat (&buf2[18], "a");
+   memset (buf2, '\0', sizeof (buf2));
+   strcat (&buf2[18], "ab"); /* { dg-warning "will always overflow" "strcat" } */
+   sprintf (&buf2[18], "%s", buf1);
+   sprintf (&buf2[18], "%s", "a");
+   sprintf (&buf2[18], "%s", "ab"); /* { dg-warning "will always overflow" "sprintf" } */
+   sprintf (&buf2[18], "a");
+   sprintf (&buf2[18], "ab"); /* { dg-warning "will always overflow" "sprintf" } */
+   snprintf (&buf2[18], 2, "%d", x);
+   /* N argument to snprintf is the size of the buffer.
+      Although this particular call wouldn't overflow buf2,
+      incorrect buffer size was passed to it and therefore
+      we want a warning and runtime failure.  */
+   snprintf (&buf2[18], 3, "%d", x); /* { dg-warning "will always overflow" "snprintf" } */
+   va_start (ap, arg);
+   vsprintf (&buf2[18], "a", ap);
+   va_end (ap);
+   va_start (ap, arg);
+   vsprintf (&buf2[18], "ab", ap); /* { dg-warning "will always overflow" "vsprintf" } */
+   va_end (ap);
+   va_start (ap, arg);
+   vsnprintf (&buf2[18], 2, "%s", ap);
+   va_end (ap);
+   va_start (ap, arg);
+   /* See snprintf above.  */
+   vsnprintf (&buf2[18], 3, "%s", ap); /* { dg-warning "will always overflow" "vsnprintf" } */
+   va_end (ap);
+ 
+   p = p + 10;
+   memset (p, 'd', 0);
+   q = strcpy (p, ""); /* { dg-warning "will always overflow" "strcpy" } */
+ 
+   /* This invokes undefined behaviour, since we are past the end of buf1.  */
+   p = p + 10;
+   memset (p, 'd', 1); /* { dg-warning "will always overflow" "memset" } */
+ 
+   memset (q, 'd', 0);
+   memset (q, 'd', 1); /* { dg-warning "will always overflow" "memset" } */
+   q = q - 10;
+   memset (q, 'd', 10);
+ }
+ 
+ char *str = "ABCDEFG";
+ typedef struct { char b[16]; } H;
+ 
+ /* Some brown paper bag bugs found in real applications.
+    This test is here merely for amusement.  */
+ 
+ void
+ test2 (const H h)
+ {
+   char c;
+   strncpy (&c, str, 3); /* { dg-warning "will always overflow" "strncpy" } */
+ 
+   struct { char b[4]; } x;
+   sprintf (x.b, "%s", "ABCD"); /* { dg-warning "will always overflow" "sprintf" } */
+ 
+   unsigned int i;
+   memcpy (&i, &h, sizeof (h)); /* { dg-warning "will always overflow" "memcpy" } */
+ 
+   unsigned char buf[21];
+   memset (buf + 16, 0, 8); /* { dg-warning "will always overflow" "memset" } */
+ 
+   typedef struct { int i, j, k, l; } S;
+   S *s[3];
+   memset (s, 0, sizeof (S) * 3); /* { dg-warning "will always overflow" "memset" } */
+ 
+   struct T { char a[8]; char b[4]; char c[10]; } t;
+   stpcpy (t.c,"Testing..."); /* { dg-warning "will always overflow" "stpcpy" } */
+ 
+   char b1[7];
+   char b2[4];
+   memset (b1, 0, sizeof (b1));
+   memset (b2, 0, sizeof (b1)); /* { dg-warning "will always overflow" "memset" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-stringop-chk-2.c	Mon Jun 27 12:17:39 2005
***************
*** 0 ****
--- 1,137 ----
+ /* This file was miscompiled by an earlier version of the object size
+    checking patch.  Object size in one of the memcpy calls was
+    incorrectly determined to be 0 while it should be (size_t) -1
+    (== unknown).  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ #include "../gcc.c-torture/execute/builtins/chk.h"
+    
+ void *bar (int);
+ extern void *malloc (__SIZE_TYPE__);
+ 
+ struct A
+ {
+   int i, j, k;
+ };
+ 
+ /* Here all object sizes are not known at compile time.  There
+    should be no warning, nor any checker functions called.  */
+ 
+ void
+ foo (const struct A *x, int y, const unsigned char *z)
+ {
+   unsigned int b;
+   unsigned char *c = 0;
+ 
+   b = (x->i & 0xff) == 1 ? 3 : 4;
+   if (y)
+     c = bar (x->j * x->k);
+ 
+   const unsigned char *d = z;
+   unsigned char *e = c;
+   unsigned char *f = c + x->j * x->k;
+   int g = 0;
+ 
+   while (e < f)
+     {
+       unsigned int h = *d++;
+ 
+       if (h & 128)
+ 	{
+ 	  h = h - 128;
+ 	  g = e + h * b > f;
+ 	  if (g)
+ 	    h = (f - e) / b;
+ 	  if (b < 4)
+ 	    do
+ 	      {
+ 		memcpy (e, d, 3);
+ 		e += 3;
+ 	      }
+ 	    while (--h);
+ 	  else
+ 	    do
+ 	      {
+ 		memcpy (e, d, 4);
+ 		e += 4;
+ 	      }
+ 	    while (--h);
+ 	  d += b;
+ 	}
+       else
+ 	{
+ 	  h *= b;
+ 	  g = e + h > f;
+ 	  if (g)
+ 	    h = f - e;
+ 	  memcpy (e, d, h);
+ 	  e += h;
+ 	  d += h;
+ 	}
+     }
+ }
+ 
+ /* The same routine, slightly modified:
+    1) c has known size at compile time
+    2) e += h was changed into e += 16.
+       GCC could actually through VRP determine that
+       in e += h is (h >= 0 && h <= 127), thus know
+       it is pointer addition and not subtraction and
+       know e's __builtin_object_size (e, 0) is at 512,
+       but we are not there yet.  */
+ 
+ unsigned char *
+ baz (const struct A *x, const unsigned char *z)
+ {
+   unsigned int b;
+   unsigned char *c = 0;
+ 
+   b = (x->i & 0xff) == 1 ? 3 : 4;
+   c = malloc (512);
+ 
+   const unsigned char *d = z;
+   unsigned char *e = c;
+   unsigned char *f = c + x->j * x->k;
+   int g = 0;
+ 
+   while (e < f)
+     {
+       unsigned int h = *d++;
+ 
+       if (h & 128)
+ 	{
+ 	  h = h - 128;
+ 	  g = e + h * b > f;
+ 	  if (g)
+ 	    h = (f - e) / b;
+ 	  if (b < 4)
+ 	    do
+ 	      {
+ 		memcpy (e, d, 3);
+ 		e += 3;
+ 	      }
+ 	    while (--h);
+ 	  else
+ 	    do
+ 	      {
+ 		memcpy (e, d, 513); /* { dg-warning "will always overflow" "memcpy" } */
+ 		e += 4;
+ 	      }
+ 	    while (--h);
+ 	  d += b;
+ 	}
+       else
+ 	{
+ 	  h *= b;
+ 	  g = e + h > f;
+ 	  if (g)
+ 	    h = f - e;
+ 	  memcpy (e, d, h);
+ 	  /* e += h; */
+ 	  e += 16;
+ 	  d += h;
+ 	}
+     }
+   return c;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-strstr.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-strstr.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtin-strstr.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtin-strstr.c	Sat Nov 19 02:25:25 2005
***************
*** 0 ****
--- 1,8 ----
+ /* The strstr call is expanded to just "s", which should not result in a
+    warning about discarding qualifiers in an assignment.  */
+ /* { dg-do compile } */
+ extern char * strstr (const char *s1, const char * s2);
+ void foo(const char *s){
+   char * cp;
+   cp = strstr(s, "");
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-1.c	Sat Mar 20 10:19:11 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-1.c	Mon May 30 20:16:59 2005
*************** CPTEST1      (ccos)
*** 190,196 ****
  CPTEST1      (ccosh)
  CPTEST1      (cexp)
  CPTEST1RETFP (cimag)
! /*CPTEST1      (clog)*/
  CPTEST1      (conj)
  CPTEST2      (cpow)
  CPTEST1      (cproj)
--- 190,196 ----
  CPTEST1      (ccosh)
  CPTEST1      (cexp)
  CPTEST1RETFP (cimag)
! CPTEST1      (clog)
  CPTEST1      (conj)
  CPTEST2      (cpow)
  CPTEST1      (cproj)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-10.c	Mon Feb  7 13:24:38 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-10.c	Wed Mar  9 20:11:48 2005
*************** extern double fabs(double);
*** 18,25 ****
  
  void test(double x)
  {
!   /*if (sqrt(pow(x,4.0)) != x*x)
!     link_error (); */
  
    if (pow(sqrt(x),4.0) != x*x)
      link_error ();
--- 18,25 ----
  
  void test(double x)
  {
!   if (sqrt(pow(x,4.0)) != x*x)
!     link_error ();
  
    if (pow(sqrt(x),4.0) != x*x)
      link_error ();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-18.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-18.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-18.c	Wed Dec 24 06:52:27 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-18.c	Fri Jul  8 05:51:06 2005
***************
*** 7,12 ****
--- 7,13 ----
  
  /* { dg-do link } */
  /* { dg-options "-O2 -ffast-math" } */
+ /* { dg-options "-O2 -ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
  
  #include "builtins-config.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-20.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-20.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-20.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-20.c	Fri Jul  8 05:51:06 2005
***************
*** 7,12 ****
--- 7,13 ----
  
  /* { dg-do link } */
  /* { dg-options "-O2 -ffast-math" } */
+ /* { dg-options "-O2 -ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
  
  #include "builtins-config.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-32.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-32.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-32.c	Sun Feb  1 14:59:15 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-32.c	Thu Mar 10 21:39:01 2005
*************** extern void abort(void);
*** 12,17 ****
--- 12,18 ----
  
  extern int signbit(double);
  extern int signbitf(float);
+ extern int signbitl(long double);
  
  int test (double x)
  {
*************** int testf (float x)
*** 23,40 ****
--- 24,58 ----
    return signbitf(x);
  }
  
+ int testl (long double x)
+ {
+   return signbitl(x);
+ }
+ 
+ 
  int main()
  {
+   if (test (0.0) != 0)
+     abort ();
    if (test (1.0) != 0)
      abort ();
    if (test (-2.0) == 0)
      abort ();
  
+   if (testf (0.0f) != 0)
+     abort ();
    if (testf (1.0f) != 0)
      abort ();
    if (testf (-2.0f) == 0)
      abort ();
  
+   if (testl (0.0l) != 0)
+     abort ();
+   if (testl (1.0l) != 0)
+     abort ();
+   if (testl (-2.0l) == 0)
+     abort ();
+ 
    return 0;
  }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-43.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-43.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-43.c	Thu Jul  1 08:02:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-43.c	Fri May 13 13:57:19 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fno-trapping-math -fdump-tree-generic -fdump-tree-optimized" } */
    
  extern void f(int);
  extern void link_error ();
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fno-trapping-math -fdump-tree-gimple -fdump-tree-optimized" } */
    
  extern void f(int);
  extern void link_error ();
*************** main ()
*** 46,53 ****
  
  
  /* Check that all instances of __builtin_isnan were folded.  */
! /* { dg-final { scan-tree-dump-times "isnan" 0 "generic" } } */
  
  /* Check that all instances of link_error were subject to DCE.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
! 
--- 46,54 ----
  
  
  /* Check that all instances of __builtin_isnan were folded.  */
! /* { dg-final { scan-tree-dump-times "isnan" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
  
  /* Check that all instances of link_error were subject to DCE.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-44.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-44.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-44.c	Thu Jul  1 08:02:34 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-44.c	Thu Mar 31 18:34:19 2005
*************** main ()
*** 52,55 ****
  
  /* Check that all instances of link_error were subject to DCE.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
! 
--- 52,55 ----
  
  /* Check that all instances of link_error were subject to DCE.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-45.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-45.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-45.c	Thu Jul  1 08:02:34 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-45.c	Thu Mar 31 18:34:19 2005
*************** main ()
*** 44,47 ****
  
  /* Check that all instances of link_error were subject to DCE.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
! 
--- 44,47 ----
  
  /* Check that all instances of link_error were subject to DCE.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" } } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-46.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-46.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-46.c	Sat Sep  4 07:55:12 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-46.c	Mon Mar 21 14:42:48 2005
***************
*** 1,6 ****
  /* Copyright (C) 2004 Free Software Foundation.
  
!    Check that rint, rintf, rintl, floor, floorf, floorl,
     ceil, ceilf, ceill, trunc, truncf, truncl,
     nearbyint, nearbyintf and nearbyintl
     built-in functions compile.
--- 1,7 ----
  /* Copyright (C) 2004 Free Software Foundation.
  
!    Check that rint, rintf, rintl, lrint, lrintf, lrintl,
!    llrint, llrintf, llrintl, floor, floorf, floorl,
     ceil, ceilf, ceill, trunc, truncf, truncl,
     nearbyint, nearbyintf and nearbyintl
     built-in functions compile.
***************
*** 11,28 ****
--- 12,35 ----
  /* { dg-options "-O2 -ffast-math" } */
  
  extern double rint(double);
+ extern long int lrint(double);
+ extern long long int llrint(double);
  extern double floor(double);
  extern double ceil(double);
  extern double trunc(double);
  extern double nearbyint(double);
  
  extern float rintf(float);
+ extern long int lrintf(float);
+ extern long long int llrintf(float);
  extern float floorf(float);
  extern float ceilf(float);
  extern float truncf(float);
  extern float nearbyintf(float);
  
  extern long double rintl(long double);
+ extern long int lrintl(long double);
+ extern long long int llrintl(long double);
  extern long double floorl(long double);
  extern long double ceill(long double);
  extern long double truncl(long double);
*************** double test1(double x)
*** 34,39 ****
--- 41,56 ----
    return rint(x);
  }
  
+ long int test11(double x)
+ {
+   return lrint(x);
+ }
+ 
+ long long int test12(double x)
+ {
+   return llrint(x);
+ }
+ 
  double test2(double x)
  {
    return floor(x);
*************** float test1f(float x)
*** 59,64 ****
--- 76,91 ----
    return rintf(x);
  }
  
+ long int test11f(float x)
+ {
+   return lrintf(x);
+ }
+ 
+ long long int test12f(float x)
+ {
+   return llrintf(x);
+ }
+ 
  float test2f(float x)
  {
    return floorf(x);
*************** long double test1l(long double x)
*** 84,89 ****
--- 111,126 ----
    return rintl(x);
  }
  
+ long int test11l(long double x)
+ {
+   return lrintl(x);
+ }
+ 
+ long long int test12l(long double x)
+ {
+   return llrintl(x);
+ }
+ 
  long double test2l(long double x)
  {
    return floorl(x);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-47.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-47.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-47.c	Mon Feb  7 13:24:38 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-47.c	Thu Mar 31 18:34:19 2005
*************** int main ()
*** 17,20 ****
  
  /* { dg-final { scan-tree-dump-times "sqrt" 0 "gimple" } } */
  /* { dg-final { scan-tree-dump-times "pow" 0 "gimple" } } */
! 
--- 17,20 ----
  
  /* { dg-final { scan-tree-dump-times "sqrt" 0 "gimple" } } */
  /* { dg-final { scan-tree-dump-times "pow" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-53.c gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-53.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-53.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-53.c	Fri Jul  8 05:51:06 2005
***************
*** 0 ****
--- 1,122 ----
+ /* Copyright (C) 2005 Free Software Foundation.
+ 
+    Check that (long)floor, (long)floorf, (long)floorl,
+    (long long)floor, (long long)floorf, (long long)floorl,
+    (long)ceil, (long)ceilf, (long)ceill,
+    (long long)ceil, (long long)ceilf, (long long)ceill
+    built-in functions compile.
+ 
+    Written by Uros Bizjak, 5th April 2005.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ffast-math" } */
+ /* { dg-options "-O2 -ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
+ 
+ #include "builtins-config.h"
+ 
+ extern double floor(double);
+ extern double ceil(double);
+ extern double trunc(double);
+ 
+ extern float floorf(float);
+ extern float ceilf(float);
+ extern float truncf(float);
+ 
+ extern long double floorl(long double);
+ extern long double ceill(long double);
+ extern long double truncl(long double);
+ 
+ 
+ long int test1(double x)
+ {
+   return floor(x);
+ }
+ 
+ long long int test2(double x)
+ {
+   return floor(x);
+ }
+ 
+ long int test3(double x)
+ {
+   return ceil(x);
+ }
+ 
+ long long int test4(double x)
+ {
+   return ceil(x);
+ }
+ 
+ long int test5(double x)
+ {
+   return trunc(x);
+ }
+ 
+ long long int test6(double x)
+ {
+   return trunc(x);
+ }
+ 
+ #ifdef HAVE_C99_RUNTIME
+ long int test1f(float x)
+ {
+   return floorf(x);
+ }
+ 
+ long long int test2f(float x)
+ {
+   return floorf(x);
+ }
+ 
+ long int test3f(float x)
+ {
+   return ceilf(x);
+ }
+ 
+ long long int test4f(float x)
+ {
+   return ceilf(x);
+ }
+ #endif
+ 
+ long int test5f(float x)
+ {
+   return truncf(x);
+ }
+ 
+ long long int test6f(float x)
+ {
+   return truncf(x);
+ }
+ 
+ #ifdef HAVE_C99_RUNTIME
+ long int test1l(long double x)
+ {
+   return floorl(x);
+ }
+ 
+ long long int test2l(long double x)
+ {
+   return floorl(x);
+ }
+ 
+ long int test3l(long double x)
+ {
+   return ceill(x);
+ }
+ 
+ long long int test4l(long double x)
+ {
+   return ceill(x);
+ }
+ #endif
+ 
+ long int test5l(long double x)
+ {
+   return truncl(x);
+ }
+ 
+ long long int test6l(long double x)
+ {
+   return truncl(x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-config.h gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-config.h
*** gcc-4.0.2/gcc/testsuite/gcc.dg/builtins-config.h	Mon Dec  6 11:00:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/builtins-config.h	Wed Oct  5 01:04:30 2005
***************
*** 19,24 ****
--- 19,33 ----
  /* FreeBSD before version 5 doesn't have the entire C99 runtime. */
  #elif defined(__netware__)
  /* NetWare doesn't have the entire C99 runtime.  */
+ #elif (defined(__APPLE__) && defined(__ppc__) \
+        && ! defined (__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__))
+ /* MacOS versions before 10.3 don't have many C99 functions.  
+    But, if you're including this file, you probably want to test the
+    newer behaviour, so: */
+ #error forgot to set -mmacosx-version-min.
+ #elif (defined(__APPLE__) && defined(__ppc__) \
+        && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ < 1030)
+ /* MacOS versions before 10.3 don't have many C99 functions.  */
  #else
  /* Newlib has the "f" variants of the math functions, but not the "l"
     variants.  TARGET_C99_FUNCTIONS is only defined if all C99
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math-double-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math-double-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math-double-1.c	Thu May 19 07:11:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math-double-1.c	Mon May 30 15:13:30 2005
***************
*** 1,18 ****
! /* { dg-do run { target *-*-solaris2.1[0-9]* } } */
! /* { dg-options "-std=c99 -O" } */
! 
! #include <math.h>
! #include "c99-math.h"
! 
! int main(void)
! {
!   double nan = NAN;
!   double inf = INFINITY;
!   double huge = HUGE_VAL;
!   double norm = __DBL_MIN__;
!   double zero = 0.0;
! 
!   C99_MATH_TESTS (nan, inf, huge, norm, zero)
! 
!   return 0;
! }
--- 1,18 ----
! /* { dg-do run { target *-*-solaris2.1[0-9]* } } */
! /* { dg-options "-std=c99 -O" } */
! 
! #include <math.h>
! #include "c99-math.h"
! 
! int main(void)
! {
!   double nan = NAN;
!   double inf = INFINITY;
!   double huge = HUGE_VAL;
!   double norm = __DBL_MIN__;
!   double zero = 0.0;
! 
!   C99_MATH_TESTS (nan, inf, huge, norm, zero)
! 
!   return 0;
! }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math-float-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math-float-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math-float-1.c	Thu May 19 07:11:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math-float-1.c	Mon May 30 15:13:30 2005
***************
*** 1,18 ****
! /* { dg-do run { target *-*-solaris2.1[0-9]* } } */
! /* { dg-options "-std=c99 -O" } */
! 
! #include <math.h>
! #include "c99-math.h"
! 
! int main(void)
! {
!   float nan = NAN;
!   float inf = INFINITY;
!   float huge = HUGE_VALF;
!   float norm = __FLT_MIN__;
!   float zero = 0.0f;
! 
!   C99_MATH_TESTS (nan, inf, huge, norm, zero)
! 
!   return 0;
! }
--- 1,18 ----
! /* { dg-do run { target *-*-solaris2.1[0-9]* } } */
! /* { dg-options "-std=c99 -O" } */
! 
! #include <math.h>
! #include "c99-math.h"
! 
! int main(void)
! {
!   float nan = NAN;
!   float inf = INFINITY;
!   float huge = HUGE_VALF;
!   float norm = __FLT_MIN__;
!   float zero = 0.0f;
! 
!   C99_MATH_TESTS (nan, inf, huge, norm, zero)
! 
!   return 0;
! }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math-long-double-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math-long-double-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math-long-double-1.c	Thu May 19 07:11:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math-long-double-1.c	Mon May 30 15:13:30 2005
***************
*** 1,18 ****
! /* { dg-do run { target *-*-solaris2.1[0-9]* } } */
! /* { dg-options "-std=c99 -O" } */
! 
! #include <math.h>
! #include "c99-math.h"
! 
! int main(void)
! {
!   long double nan = NAN;
!   long double inf = INFINITY;
!   long double huge = HUGE_VALL;
!   long double norm = __LDBL_MIN__;
!   long double zero = 0.0l;
! 
!   C99_MATH_TESTS (nan, inf, huge, norm, zero)
! 
!   return 0;
! }
--- 1,18 ----
! /* { dg-do run { target *-*-solaris2.1[0-9]* } } */
! /* { dg-options "-std=c99 -O" } */
! 
! #include <math.h>
! #include "c99-math.h"
! 
! int main(void)
! {
!   long double nan = NAN;
!   long double inf = INFINITY;
!   long double huge = HUGE_VALL;
!   long double norm = __LDBL_MIN__;
!   long double zero = 0.0l;
! 
!   C99_MATH_TESTS (nan, inf, huge, norm, zero)
! 
!   return 0;
! }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math.h gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math.h
*** gcc-4.0.2/gcc/testsuite/gcc.dg/c99-math.h	Thu May 19 07:11:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/c99-math.h	Mon May 30 15:13:30 2005
***************
*** 1,111 ****
! #include <math.h>
! 
! extern void abort(void);
! 
! #define C99_MATH_TESTS(nan, inf, huge, norm, zero)	\
! {							\
!   if (fpclassify (nan) != FP_NAN)			\
!     abort ();						\
! 							\
!   if (fpclassify (inf) != FP_INFINITE)			\
!     abort ();						\
! 							\
!   if (fpclassify (huge) != FP_INFINITE)			\
!     abort ();						\
! 							\
!   if (fpclassify (norm) != FP_NORMAL)			\
!     abort ();						\
! 							\
!   if (fpclassify (zero) != FP_ZERO)			\
!     abort ();						\
! 							\
! 							\
!   if (!isnan (nan))					\
!     abort ();						\
! 							\
!   if (isnan (inf))					\
!     abort ();						\
! 							\
!   if (isnan (huge))					\
!     abort ();						\
! 							\
!   if (isnan (norm))					\
!     abort ();						\
! 							\
!   if (isnan (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (isinf (nan))					\
!     abort ();						\
! 							\
!   if (!isinf (inf))					\
!     abort ();						\
! 							\
!   if (!isinf (huge))					\
!     abort ();						\
! 							\
!   if (isnan (norm))					\
!     abort ();						\
! 							\
!   if (isinf (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (isfinite (nan))					\
!     abort ();						\
! 							\
!   if (isfinite (inf))					\
!     abort ();						\
! 							\
!   if (isfinite (huge))					\
!     abort ();						\
! 							\
!   if (!isfinite (norm))					\
!     abort ();						\
! 							\
!   if (!isfinite (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (isnormal (nan))					\
!     abort ();						\
! 							\
!   if (isnormal (inf))					\
!     abort ();						\
! 							\
!   if (isnormal (huge))					\
!     abort ();						\
! 							\
!   if (!isnormal (norm))					\
!     abort ();						\
! 							\
!   if (isnormal (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (signbit (norm))					\
!     abort ();						\
! 							\
!   if (!signbit (-(norm)))				\
!     abort ();						\
! 							\
! 							\
!   if (!isgreater ((inf), (norm)))			\
!     abort ();						\
! 							\
!   if (!isgreaterequal ((inf), (huge)))			\
!     abort ();						\
! 							\
!   if (!isless ((norm), (inf)))				\
!     abort ();						\
! 							\
!   if (!islessequal ((huge), (inf)))			\
!     abort ();						\
! 							\
!   if (!islessgreater ((inf), (norm)))			\
!     abort ();						\
! 							\
!   if (!isunordered ((nan), (norm)))			\
!     abort ();						\
! }
--- 1,111 ----
! #include <math.h>
! 
! extern void abort(void);
! 
! #define C99_MATH_TESTS(nan, inf, huge, norm, zero)	\
! {							\
!   if (fpclassify (nan) != FP_NAN)			\
!     abort ();						\
! 							\
!   if (fpclassify (inf) != FP_INFINITE)			\
!     abort ();						\
! 							\
!   if (fpclassify (huge) != FP_INFINITE)			\
!     abort ();						\
! 							\
!   if (fpclassify (norm) != FP_NORMAL)			\
!     abort ();						\
! 							\
!   if (fpclassify (zero) != FP_ZERO)			\
!     abort ();						\
! 							\
! 							\
!   if (!isnan (nan))					\
!     abort ();						\
! 							\
!   if (isnan (inf))					\
!     abort ();						\
! 							\
!   if (isnan (huge))					\
!     abort ();						\
! 							\
!   if (isnan (norm))					\
!     abort ();						\
! 							\
!   if (isnan (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (isinf (nan))					\
!     abort ();						\
! 							\
!   if (!isinf (inf))					\
!     abort ();						\
! 							\
!   if (!isinf (huge))					\
!     abort ();						\
! 							\
!   if (isnan (norm))					\
!     abort ();						\
! 							\
!   if (isinf (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (isfinite (nan))					\
!     abort ();						\
! 							\
!   if (isfinite (inf))					\
!     abort ();						\
! 							\
!   if (isfinite (huge))					\
!     abort ();						\
! 							\
!   if (!isfinite (norm))					\
!     abort ();						\
! 							\
!   if (!isfinite (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (isnormal (nan))					\
!     abort ();						\
! 							\
!   if (isnormal (inf))					\
!     abort ();						\
! 							\
!   if (isnormal (huge))					\
!     abort ();						\
! 							\
!   if (!isnormal (norm))					\
!     abort ();						\
! 							\
!   if (isnormal (zero))					\
!     abort ();						\
! 							\
! 							\
!   if (signbit (norm))					\
!     abort ();						\
! 							\
!   if (!signbit (-(norm)))				\
!     abort ();						\
! 							\
! 							\
!   if (!isgreater ((inf), (norm)))			\
!     abort ();						\
! 							\
!   if (!isgreaterequal ((inf), (huge)))			\
!     abort ();						\
! 							\
!   if (!isless ((norm), (inf)))				\
!     abort ();						\
! 							\
!   if (!islessequal ((huge), (inf)))			\
!     abort ();						\
! 							\
!   if (!islessgreater ((inf), (norm)))			\
!     abort ();						\
! 							\
!   if (!isunordered ((nan), (norm)))			\
!     abort ();						\
! }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/c99-vla-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/c99-vla-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/c99-vla-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/c99-vla-2.c	Fri Jul 29 02:42:19 2005
***************
*** 0 ****
--- 1,107 ----
+ /* Test composite type of VLA and fixed-size array: should be the
+    fixed-size type.  Bug 22192.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-std=iso9899:1999 -pedantic-errors" } */
+ 
+ /* Test that the given expression (of pointer-to-array type) points to
+    the right sort of array.  */
+ #define TEST_FIXED_SIZE(a) do { static int x[sizeof(*(a))]; (void)x; } while (0)
+ #define TEST_VLA(a) do { (void)sizeof(*(a)); (void)(1 ? (a) : (__typeof__(**(a)) (*)[1])0); (void)(1 ? (a) : (__typeof__(**(a)) (*)[2])0); } while (0)
+ #define TEST_INCOMPLETE(a) do { __typeof__(*(a)) x = { 0 }; (void)x; (void)(1 ? a : (__typeof__(**(a)) (*)[1])0); (void)(1 ? a : (__typeof__(**(a)) (*)[2])0); } while (0)
+ 
+ #define TEST_COMP_FIX(a, b) TEST_FIXED_SIZE(i ? a : b)
+ #define TEST_COMP_VLA(a, b) TEST_VLA(i ? a : b)
+ #define TEST_COMP_INC(a, b) TEST_INCOMPLETE(i ? a : b)
+ 
+ void
+ foo (int i, int j)
+ {
+   typedef int I;
+   int (*pf)[2];
+   int (*pv)[i];
+   int (*pi)[];
+   I (*pfI)[2];
+   I (*pvI)[i];
+   I (*piI)[];
+   TEST_COMP_FIX(pf, pf);
+   TEST_COMP_FIX(pf, pv);
+   TEST_COMP_FIX(pf, pi);
+   TEST_COMP_FIX(pf, pfI);
+   TEST_COMP_FIX(pf, pvI);
+   TEST_COMP_FIX(pf, piI);
+   TEST_COMP_FIX(pv, pf);
+   TEST_COMP_VLA(pv, pv);
+   TEST_COMP_VLA(pv, pi);
+   TEST_COMP_FIX(pv, pfI);
+   TEST_COMP_VLA(pv, pvI);
+   TEST_COMP_VLA(pv, piI);
+   TEST_COMP_FIX(pi, pf);
+   TEST_COMP_VLA(pi, pv);
+   TEST_COMP_INC(pi, pi);
+   TEST_COMP_FIX(pi, pfI);
+   TEST_COMP_VLA(pi, pvI);
+   TEST_COMP_INC(pi, piI);
+   TEST_COMP_FIX(pfI, pf);
+   TEST_COMP_FIX(pfI, pv);
+   TEST_COMP_FIX(pfI, pi);
+   TEST_COMP_FIX(pfI, pfI);
+   TEST_COMP_FIX(pfI, pvI);
+   TEST_COMP_FIX(pfI, piI);
+   TEST_COMP_FIX(pvI, pf);
+   TEST_COMP_VLA(pvI, pv);
+   TEST_COMP_VLA(pvI, pi);
+   TEST_COMP_FIX(pvI, pfI);
+   TEST_COMP_VLA(pvI, pvI);
+   TEST_COMP_VLA(pvI, piI);
+   TEST_COMP_FIX(piI, pf);
+   TEST_COMP_VLA(piI, pv);
+   TEST_COMP_INC(piI, pi);
+   TEST_COMP_FIX(piI, pfI);
+   TEST_COMP_VLA(piI, pvI);
+   TEST_COMP_INC(piI, piI);
+   typedef int (*Ti)[i];
+   typedef int (*Tj)[j];
+   Ti (*qf)[2];
+   Ti (*qv)[i];
+   Ti (*qi)[];
+   Tj (*rf)[2];
+   Tj (*rv)[j];
+   Tj (*ri)[];
+   TEST_COMP_FIX(qf, qf);
+   TEST_COMP_FIX(qf, qv);
+   TEST_COMP_FIX(qf, qi);
+   TEST_COMP_FIX(qf, rf);
+   TEST_COMP_FIX(qf, rv);
+   TEST_COMP_FIX(qf, ri);
+   TEST_COMP_FIX(qv, qf);
+   TEST_COMP_VLA(qv, qv);
+   TEST_COMP_VLA(qv, qi);
+   TEST_COMP_FIX(qv, rf);
+   TEST_COMP_VLA(qv, rv);
+   TEST_COMP_VLA(qv, ri);
+   TEST_COMP_FIX(qi, qf);
+   TEST_COMP_VLA(qi, qv);
+   TEST_COMP_INC(qi, qi);
+   TEST_COMP_FIX(qi, rf);
+   TEST_COMP_VLA(qi, rv);
+   TEST_COMP_INC(qi, ri);
+   TEST_COMP_FIX(rf, qf);
+   TEST_COMP_FIX(rf, qv);
+   TEST_COMP_FIX(rf, qi);
+   TEST_COMP_FIX(rf, rf);
+   TEST_COMP_FIX(rf, rv);
+   TEST_COMP_FIX(rf, ri);
+   TEST_COMP_FIX(rv, qf);
+   TEST_COMP_VLA(rv, qv);
+   TEST_COMP_VLA(rv, qi);
+   TEST_COMP_FIX(rv, rf);
+   TEST_COMP_VLA(rv, rv);
+   TEST_COMP_VLA(rv, ri);
+   TEST_COMP_FIX(ri, qf);
+   TEST_COMP_VLA(ri, qv);
+   TEST_COMP_INC(ri, qi);
+   TEST_COMP_FIX(ri, rf);
+   TEST_COMP_VLA(ri, rv);
+   TEST_COMP_INC(ri, ri);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/charset/asm3.c gcc-4.1.0/gcc/testsuite/gcc.dg/charset/asm3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/charset/asm3.c	Tue Feb 22 06:57:03 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/charset/asm3.c	Tue May 31 16:28:30 2005
***************
*** 1,6 ****
  /* 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 "IBM1047" }
     { dg-final { scan-assembler "std" } }
     { dg-final { scan-assembler "cld" } }
--- 1,6 ----
  /* 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-*-* x86_64-*-* } && ilp32 } } }
     { dg-require-iconv "IBM1047" }
     { dg-final { scan-assembler "std" } }
     { dg-final { scan-assembler "cld" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/charset/builtin2.c gcc-4.1.0/gcc/testsuite/gcc.dg/charset/builtin2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/charset/builtin2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/charset/builtin2.c	Tue Nov 29 05:17:56 2005
***************
*** 0 ****
--- 1,32 ----
+ /* Ensure that transformations of *printf are performed correctly
+    regardless of -fexec-charset.  See PR 25120.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-require-iconv "IBM1047" } */
+ /* { dg-options "-O2 -fexec-charset=IBM1047" } */
+ /* { dg-final { scan-assembler-not "printf" } } */
+ /* { dg-final { scan-assembler-not "fprintf" } } */
+ /* { dg-final { scan-assembler-not "sprintf" } } */
+ 
+ #include <stdio.h>
+ 
+ void foo (char *dst, const char *src)
+ {
+   printf ("\n");
+   printf ("hello world\n");
+   printf ("%s", "\n");
+   printf ("%s", "hello world\n");
+   printf ("%c", '\n');
+   printf ("%s\n", "hello world");
+   printf ("%s\n", src);
+   
+   fprintf (stdout, "\n");
+   fprintf (stdout, "hello world\n");
+   fprintf (stdout, "%s", "\n");
+   fprintf (stdout, "%s", "hello world\n");
+   fprintf (stdout, "%c", '\n');
+   fprintf (stdout, "%s", src);
+ 
+   sprintf (dst, "hello world\n");
+   sprintf (dst, "%s", src);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/charset/charset.exp gcc-4.1.0/gcc/testsuite/gcc.dg/charset/charset.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/charset/charset.exp	Tue Feb 22 06:57:03 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/charset/charset.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # GCC testsuite that uses the 'dg.exp' driver.
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # GCC testsuite that uses the 'dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-10.c	Thu Oct 21 01:00:16 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-10.c	Fri Nov 18 03:22:18 2005
***************
*** 1,4 ****
! /* { dg-do run { target *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through signal frames
     on alternate stack.  */
--- 1,4 ----
! /* { dg-do run { target hppa*-*-hpux* *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through signal frames
     on alternate stack.  */
***************
*** 7,12 ****
--- 7,13 ----
  #include <stdlib.h>
  #include <signal.h>
  #include <unistd.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** force_unwind_stop (int version, _Unwind_
*** 23,29 ****
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 24,30 ----
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-11.c	Thu Oct 21 01:00:16 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-11.c	Fri Nov 18 03:22:18 2005
***************
*** 1,4 ****
! /* { dg-do run { target *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through realtime signal
     frames on alternate stack.  */
--- 1,4 ----
! /* { dg-do run { target hppa*-*-hpux* *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through realtime signal
     frames on alternate stack.  */
***************
*** 7,12 ****
--- 7,13 ----
  #include <stdlib.h>
  #include <signal.h>
  #include <unistd.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** force_unwind_stop (int version, _Unwind_
*** 23,29 ****
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 24,30 ----
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-5.c	Thu Jul  1 04:09:06 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-5.c	Wed Nov 16 17:08:05 2005
***************
*** 1,9 ****
--- 1,12 ----
+ /* HP-UX libunwind.so doesn't provide _UA_END_OF_STACK */
  /* { dg-do run } */
  /* { dg-options "-fexceptions" } */
+ /* { dg-skip-if "" { "ia64-*-hpux11.*" }  { "*" } { "" } } */
  /* Verify that cleanups work with exception handling.  */
  
  #include <unwind.h>
  #include <stdlib.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** force_unwind_stop (int version, _Unwind_
*** 20,26 ****
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 23,29 ----
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-8.c	Thu Oct 21 01:00:16 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-8.c	Fri Nov 18 03:22:18 2005
***************
*** 1,4 ****
! /* { dg-do run { target *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through signal
     frames.  */
--- 1,4 ----
! /* { dg-do run { target hppa*-*-hpux* *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through signal
     frames.  */
***************
*** 6,11 ****
--- 6,12 ----
  #include <unwind.h>
  #include <stdlib.h>
  #include <signal.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** force_unwind_stop (int version, _Unwind_
*** 22,28 ****
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 23,29 ----
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cleanup-9.c	Thu Oct 21 01:00:16 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cleanup-9.c	Fri Nov 18 03:22:18 2005
***************
*** 1,4 ****
! /* { dg-do run { target *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through realtime
     signal frames.  */
--- 1,4 ----
! /* { dg-do run { target hppa*-*-hpux* *-*-linux* powerpc*-*-darwin* } } */
  /* { dg-options "-fexceptions -fnon-call-exceptions -O2" } */
  /* Verify that cleanups work with exception handling through realtime
     signal frames.  */
***************
*** 6,11 ****
--- 6,12 ----
  #include <unwind.h>
  #include <stdlib.h>
  #include <signal.h>
+ #include <string.h>
  
  static _Unwind_Reason_Code
  force_unwind_stop (int version, _Unwind_Action actions,
*************** force_unwind_stop (int version, _Unwind_
*** 22,28 ****
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   exc->exception_class = 0;
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
--- 23,29 ----
  static void force_unwind ()
  {
    struct _Unwind_Exception *exc = malloc (sizeof (*exc));
!   memset (&exc->exception_class, 0, sizeof (exc->exception_class));
    exc->exception_cleanup = 0;
                     
  #ifndef __USING_SJLJ_EXCEPTIONS__
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/clobbers.c gcc-4.1.0/gcc/testsuite/gcc.dg/clobbers.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/clobbers.c	Tue May 23 19:30:44 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/clobbers.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* Test asm clobbers on x86. */
- 
- /* { dg-do run { target i?86-*-* } } */
- 
- extern void abort (void);
- 
- int main ()
- {
-         int i;
-         __asm__ ("movl $1,%0\n\txorl %%eax,%%eax" : "=r" (i) : : "eax");
-         if (i != 1)
-                 abort ();
-         __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx");
-         if (i != 1)
-                 abort ();
-         __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx");
-         if (i != 1)
-                 abort ();
-         __asm__ ("movl $1,%0\n\txorl %%edx,%%edx" : "=r" (i) : : "edx");
-         if (i != 1)
-                 abort ();
-         __asm__ ("movl $1,%0\n\txorl %%esi,%%esi" : "=r" (i) : : "esi");
-         if (i != 1)
-                 abort ();
-         __asm__ ("movl $1,%0\n\txorl %%edi,%%edi" : "=r" (i) : : "edi");
-         if (i != 1)
-                 abort ();
-         return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compare1.c gcc-4.1.0/gcc/testsuite/gcc.dg/compare1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compare1.c	Wed Jan  5 19:26:23 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compare1.c	Tue Jul  5 00:47:25 2005
***************
*** 1,8 ****
  /* Test for a bogus warning on comparison between signed and unsigned.
!    This was inspired by code in gcc. */
  
  /* { dg-do compile } */
! /* { dg-options "-Wsign-compare" } */
  
  int tf = 1;
  
--- 1,10 ----
  /* Test for a bogus warning on comparison between signed and unsigned.
!    This was inspired by code in gcc.  This testcase is identical to
!    compare9.c except that we use -fno-short-enums here and expect a
!    warning from case 4.  */
  
  /* { dg-do compile } */
! /* { dg-options "-fno-short-enums -Wsign-compare" } */
  
  int tf = 1;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compare9.c gcc-4.1.0/gcc/testsuite/gcc.dg/compare9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compare9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compare9.c	Tue Jul  5 00:47:25 2005
***************
*** 0 ****
--- 1,41 ----
+ /* Test for a bogus warning on comparison between signed and unsigned.
+    This was inspired by code in gcc.  This testcase is identical to
+    compare1.c except that we use -fshort-enums here and do not expect
+    a warning from case 4.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fshort-enums -Wsign-compare" } */
+ 
+ int tf = 1;
+ 
+ /* This enumeration has an explicit negative value and is therefore signed.  */
+ enum mm1 
+ {
+   VOID, SI, DI, MAX = -1
+ };
+ 
+ /* This enumeration fits entirely in a signed int, but is unsigned anyway.  */
+ enum mm2
+ {
+   VOID2, SI2, DI2, MAX2
+ };
+ 
+ int f(enum mm1 x)
+ {
+   return x == (tf?DI:SI); /* { dg-bogus "signed and unsigned" "case 1" } */
+ }
+ 
+ int g(enum mm1 x)
+ {
+   return x == (tf?DI:-1); /* { dg-bogus "signed and unsigned" "case 2" } */
+ }
+ 
+ int h(enum mm2 x)
+ {
+   return x == (tf?DI2:SI2); /* { dg-bogus "signed and unsigned" "case 3" } */
+ }
+ 
+ int i(enum mm2 x)
+ {
+   return x == (tf?DI2:-1); /* { dg-bogus "signed and unsigned" "case 4" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compat/compat.exp gcc-4.1.0/gcc/testsuite/gcc.dg/compat/compat.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compat/compat.exp	Mon May  5 21:59:35 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compat/compat.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  #
  # This file was written by Janis Johnson, <janis187@us.ibm.com>
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  #
  # This file was written by Janis Johnson, <janis187@us.ibm.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compat/generate-random.c gcc-4.1.0/gcc/testsuite/gcc.dg/compat/generate-random.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compat/generate-random.c	Tue May 17 16:25:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compat/generate-random.c	Sat Jun 25 01:45:27 2005
***************
*** 12,19 ****
  
     You should have received a copy of the GNU Lesser General Public
     License along with the GNU C Library; if not, write to the Free
!    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
!    02111-1307 USA.  */
  
  /*
   * This is derived from the Berkeley source:
--- 12,19 ----
  
     You should have received a copy of the GNU Lesser General Public
     License along with the GNU C Library; if not, write to the Free
!    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
!    02110-1301 USA.  */
  
  /*
   * This is derived from the Berkeley source:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compat/generate-random.h gcc-4.1.0/gcc/testsuite/gcc.dg/compat/generate-random.h
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compat/generate-random.h	Fri Jul 23 22:36:46 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compat/generate-random.h	Sat Jun 25 01:45:27 2005
***************
*** 12,19 ****
  
     You should have received a copy of the GNU Lesser General Public
     License along with the GNU C Library; if not, write to the Free
!    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
!    02111-1307 USA.  */
  
  struct generate_random_data
    {
--- 12,19 ----
  
     You should have received a copy of the GNU Lesser General Public
     License along with the GNU C Library; if not, write to the Free
!    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
!    02110-1301 USA.  */
  
  struct generate_random_data
    {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compat/generate-random_r.c gcc-4.1.0/gcc/testsuite/gcc.dg/compat/generate-random_r.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compat/generate-random_r.c	Tue May 17 16:25:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compat/generate-random_r.c	Sat Jun 25 01:45:27 2005
***************
*** 13,20 ****
  
     You should have received a copy of the GNU Lesser General Public
     License along with the GNU C Library; if not, write to the Free
!    Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
!    02111-1307 USA.  */
  
  /*
     Copyright (C) 1983 Regents of the University of California.
--- 13,20 ----
  
     You should have received a copy of the GNU Lesser General Public
     License along with the GNU C Library; if not, write to the Free
!    Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
!    02110-1301 USA.  */
  
  /*
     Copyright (C) 1983 Regents of the University of California.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp gcc-4.1.0/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp	Mon May 16 23:14:45 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compat/struct-layout-1.exp	Thu Jan 26 04:09:07 2006
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  #
  # This file was written by Jakub Jelinek, <jakub@redhat.com>
  # Based on compat.exp writte by Janis Johnson, <janis187@us.ibm.com>
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  #
  # This file was written by Jakub Jelinek, <jakub@redhat.com>
  # Based on compat.exp writte by Janis Johnson, <janis187@us.ibm.com>
*************** if { $status == 0 } then {
*** 113,118 ****
--- 113,121 ----
      if [info exists env(RUN_ALL_COMPAT_TESTS) ] then {
  	set generator_args "$generator_args -n 15000"
      }
+     if [check_effective_target_short_enums] then {
+ 	set generator_args "-e $generator_args"
+     }
      set status [remote_exec host "$generator $generator_args"]
      set status [lindex $status 0]
      if { $status == 0 } then {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c gcc-4.1.0/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c	Tue May 17 18:31:33 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/compat/struct-layout-1_generate.c	Thu Jan 26 04:09:07 2006
*************** for more details.
*** 16,23 ****
  
  You should have received a copy of the GNU General Public License
  along with GCC; see the file COPYING.  If not, write to the Free
! Software Foundation, 59 Temple Place - Suite 330, Boston, MA
! 02111-1307, USA.  */
  
  /* Compile with gcc -o struct-layout-1_generate{,.c} generate_random{,_r}.c */
  
--- 16,23 ----
  
  You should have received a copy of the GNU General Public License
  along with GCC; see the file COPYING.  If not, write to the Free
! Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
! 02110-1301, USA.  */
  
  /* Compile with gcc -o struct-layout-1_generate{,.c} generate_random{,_r}.c */
  
*************** struct entry
*** 656,662 ****
  #define HASH_SIZE 32749 
  static struct entry *hash_table[HASH_SIZE];
  
! static int idx, limidx, output_one;
  static const char *destdir;
  static const char *srcdir;
  FILE *outfile;
--- 656,662 ----
  #define HASH_SIZE 32749 
  static struct entry *hash_table[HASH_SIZE];
  
! static int idx, limidx, output_one, short_enums;
  static const char *destdir;
  static const char *srcdir;
  FILE *outfile;
*************** switchfiles (int fields)
*** 696,701 ****
--- 696,702 ----
    fprintf (outfile, "\
  /* { dg-options \"-I%s\" } */\n\
  /* { dg-options \"-I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
+ /* { dg-options \"-I%s -mno-base-addresses\" { target mmix-*-* } } */\n\
  #include \"struct-layout-1.h\"\n\
  \n\
  #define TX(n, type, attrs, fields, ops) extern void test##n (void);\n\
*************** int main (void)\n\
*** 713,719 ****
        abort ();\n\
      }\n\
    exit (0);\n\
! }\n", srcdir, srcdir, filecnt, filecnt);
    fclose (outfile);
    sprintf (destptr, "t%03d_x.c", filecnt);
    outfile = fopen (destbuf, "w");
--- 714,720 ----
        abort ();\n\
      }\n\
    exit (0);\n\
! }\n", srcdir, srcdir, srcdir, filecnt, filecnt);
    fclose (outfile);
    sprintf (destptr, "t%03d_x.c", filecnt);
    outfile = fopen (destbuf, "w");
*************** int main (void)\n\
*** 722,731 ****
    fprintf (outfile, "\
  /* { dg-options \"-w -I%s\" } */\n\
  /* { dg-options \"-w -I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
  #include \"struct-layout-1_x1.h\"\n\
  #include \"t%03d_test.h\"\n\
  #include \"struct-layout-1_x2.h\"\n\
! #include \"t%03d_test.h\"\n", srcdir, srcdir, filecnt, filecnt);
    fclose (outfile);
    sprintf (destptr, "t%03d_y.c", filecnt);
    outfile = fopen (destbuf, "w");
--- 723,733 ----
    fprintf (outfile, "\
  /* { dg-options \"-w -I%s\" } */\n\
  /* { dg-options \"-w -I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
+ /* { dg-options \"-w -I%s -mno-base-addresses\" { target mmix-*-* } } */\n\
  #include \"struct-layout-1_x1.h\"\n\
  #include \"t%03d_test.h\"\n\
  #include \"struct-layout-1_x2.h\"\n\
! #include \"t%03d_test.h\"\n", srcdir, srcdir, srcdir, filecnt, filecnt);
    fclose (outfile);
    sprintf (destptr, "t%03d_y.c", filecnt);
    outfile = fopen (destbuf, "w");
*************** int main (void)\n\
*** 734,743 ****
    fprintf (outfile, "\
  /* { dg-options \"-w -I%s\" } */\n\
  /* { dg-options \"-w -I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
  #include \"struct-layout-1_y1.h\"\n\
  #include \"t%03d_test.h\"\n\
  #include \"struct-layout-1_y2.h\"\n\
! #include \"t%03d_test.h\"\n", srcdir, srcdir, filecnt, filecnt);
    fclose (outfile);
    sprintf (destptr, "t%03d_test.h", filecnt);
    outfile = fopen (destbuf, "w");
--- 736,746 ----
    fprintf (outfile, "\
  /* { dg-options \"-w -I%s\" } */\n\
  /* { dg-options \"-w -I%s -fno-common\" { target hppa*-*-hpux* } } */\n\
+ /* { dg-options \"-w -I%s -mno-base-addresses\" { target mmix-*-* } } */\n\
  #include \"struct-layout-1_y1.h\"\n\
  #include \"t%03d_test.h\"\n\
  #include \"struct-layout-1_y2.h\"\n\
! #include \"t%03d_test.h\"\n", srcdir, srcdir, srcdir, filecnt, filecnt);
    fclose (outfile);
    sprintf (destptr, "t%03d_test.h", filecnt);
    outfile = fopen (destbuf, "w");
*************** subfield (struct entry *e, char *letter)
*** 786,791 ****
--- 789,801 ----
  	    snprintf (buf, 20, "%c[]", *letter);
  	  else
  	    snprintf (buf, 20, "%c[%d]", *letter, e[0].arr_len);
+ 	  /* If this is an array type, do not put aligned attributes on
+ 	     elements.  Aligning elements to a value greater than their
+ 	     size will result in a compiler error.  */
+ 	  if (type == 1
+ 	      && ((strncmp (e[0].attrib, "atal", 4) == 0)
+ 		   || strncmp (e[0].attrib, "atpaal", 6) == 0))
+ 	    type = 2;
  	}
        else
          {
*************** subfield (struct entry *e, char *letter)
*** 842,859 ****
          }
        ++*letter;
        if (e[0].attrib)
! 	switch (generate_random () % 3)
!           {
!           case 0:
!             fprintf (outfile, "%s %s %s;", e[0].attrib, e[0].type->name, buf);
!             break;
!           case 1:
!             fprintf (outfile, "%s %s %s;", e[0].type->name, e[0].attrib, buf);
!             break;
!           case 2:
!             fprintf (outfile, "%s %s %s;", e[0].type->name, buf, e[0].attrib);
!             break;
!           }
        else
  	fprintf (outfile, "%s %s;", e[0].type->name, buf);
        return 1;
--- 852,883 ----
          }
        ++*letter;
        if (e[0].attrib)
! 	{
! 	  /* If this is an array type, do not put aligned attributes on
! 	     elements.  Aligning elements to a value greater than their
! 	     size will result in a compiler error.  */
! 	  if (e[0].etype == ETYPE_ARRAY
!               && ((strncmp (e[0].attrib, "atal", 4) == 0)
!                    || strncmp (e[0].attrib, "atpaal", 6) == 0))
! 	    type = 2;
! 	  else
!             type = generate_random () % 3;
! 	  switch (type)
! 	    {
! 	    case 0:
! 	      fprintf (outfile, "%s %s %s;", e[0].attrib, e[0].type->name,
! 		       buf);
! 	      break;
! 	    case 1:
! 	      fprintf (outfile, "%s %s %s;", e[0].type->name, e[0].attrib,
! 		       buf);
! 	      break;
! 	    case 2:
! 	      fprintf (outfile, "%s %s %s;", e[0].type->name, buf,
! 		       e[0].attrib);
! 	      break;
! 	    }
! 	}
        else
  	fprintf (outfile, "%s %s;", e[0].type->name, buf);
        return 1;
*************** generate_fields (enum FEATURE features, 
*** 1645,1654 ****
  		    abort ();
  		  if (!mi)
  		    mi = 1;
! 		  if (mi <= 32)
  		    ma = 32;
  		  else
! 		    ma = 64;
  		  break;
  		default:
  		  abort ();
--- 1669,1682 ----
  		    abort ();
  		  if (!mi)
  		    mi = 1;
! 		  if (mi > 32)
! 		    ma = 64;
! 		  else if (mi > 16 || !short_enums)
  		    ma = 32;
+ 		  else if (mi > 8)
+ 		    ma = 16;
  		  else
! 		    ma = 8;
  		  break;
  		default:
  		  abort ();
*************** main (int argc, char **argv)
*** 1821,1826 ****
--- 1849,1858 ----
  	  output_one = 1;
  	  limidx = atoi (optarg);
  	  break;
+ 	case 'e':
+ 	  short_enums = 1;
+ 	  i--;
+ 	  break;
  	default:
  	  fprintf (stderr, "unrecognized option %s\n", argv[i]);
  	  goto usage;
*************** main (int argc, char **argv)
*** 1843,1849 ****
      {
      usage:
        fprintf (stderr, "Usage:\n\
! %s [-s srcdir -d destdir] [-n count] [-i idx]\n\
  Either -s srcdir -d destdir or -i idx must be used\n", argv[0]);
        return 1;
      }
--- 1875,1881 ----
      {
      usage:
        fprintf (stderr, "Usage:\n\
! %s [-e] [-s srcdir -d destdir] [-n count] [-i idx]\n\
  Either -s srcdir -d destdir or -i idx must be used\n", argv[0]);
        return 1;
      }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/complex-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/complex-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/complex-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/complex-4.c	Thu Jul 21 09:57:05 2005
***************
*** 0 ****
--- 1,7 ----
+ /* PR c/22393 */
+ /* { dg-options "-O -std=gnu99" } */
+ 
+ __complex__ double foo (__complex__ double x)
+ {
+     return 1.0 / x * -1.0i;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/const-compare.c gcc-4.1.0/gcc/testsuite/gcc.dg/const-compare.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/const-compare.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/const-compare.c	Fri Jun 10 15:01:59 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-m64 -O1 -static" } */
+ typedef unsigned long long uint64_t;
+ 
+ static int
+ match(name, pat)
+  uint64_t *name, *pat;
+ {
+  int ok=0, negate_range;
+  uint64_t c, k;
+ 
+   c = *pat++;
+   switch (c & 0xffffffffffULL) {
+   case ((uint64_t)(('[')|0x8000000000ULL)):
+    if ((negate_range = ((*pat & 0xffffffffffULL) == ((uint64_t)(('!')|0x8000000000ULL)) )) != '\0')
+     ++pat;
+    while (((c = *pat++) & 0xffffffffffULL) )
+     if ((*pat & 0xffffffffffULL) == ((uint64_t)(('-')|0x8000000000ULL))) 
+       {
+        pat += 2;
+       } 
+ 
+    if (ok == negate_range)
+     return(0);
+    break;
+   }
+  return(*name == '\0');
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/const-elim-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/const-elim-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/const-elim-1.c	Sat May 15 12:21:24 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/const-elim-1.c	Tue May 24 05:57:46 2005
***************
*** 7,19 ****
  
  /* { dg-do compile } */
  /* { dg-options "-O2 -std=c99" } */
! /* This test fails on all processors where we use a block move to
!    initialize "S" in test2.  The RTL optimizers are not clever enough
!    to eliminate the block move, so the constant gets emitted.
!    Currently known targets with this problem: all ARM; PA32 ("hppa*.*"
!    matches "hppa2.0w" but not "hppa64"); PPC if string instructions
!    are enabled (notably under AIX); Xtensa.  */
! /* { dg-final { scan-assembler-not "L\\\$?C\[^A-Z\]" { xfail arm-*-* strongarm-*-* xscale-*-* hppa-*-* hppa*.*-*-* powerpc*-*-aix* xtensa-*-* } } } */
  
  #define I (__extension__ 1.0iF)
  
--- 7,13 ----
  
  /* { dg-do compile } */
  /* { dg-options "-O2 -std=c99" } */
! /* { dg-final { scan-assembler-not "L\\\$?C\[^A-Z\]" } } */
  
  #define I (__extension__ 1.0iF)
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/conv-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/conv-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/conv-2.c	Sat Jul 24 07:32:15 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/conv-2.c	Thu Jan 26 19:06:06 2006
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "" } */
  
  void f1(long *);
  void f2(unsigned long *);
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-Wpointer-sign" } */
  
  void f1(long *);
  void f2(unsigned long *);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/assert4.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/assert4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/assert4.c	Thu Mar  3 23:49:30 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/assert4.c	Wed Jul 20 06:39:38 2005
***************
*** 254,267 ****
  # error
  #endif
  
- #if defined __i860__
- # if !#cpu(i860) || !#machine(i860)
- #  error
- # endif
- #elif #cpu(i860) || #machine(i860)
- # error
- #endif
- 
  #if defined __ia64__
  # if !#cpu(ia64) || !#machine(ia64)
  #  error
--- 254,259 ----
***************
*** 319,332 ****
  # error
  #endif
  
- #if defined __ns32k__
- # if !#cpu(ns32k) || !#machine(ns32k)
- #  error
- # endif
- #elif #cpu(ns32k) || #machine(ns32k)
- # error
- #endif
- 
  #if defined __pdp11__
  # if !#cpu(pdp11) || !#machine(pdp11)
  #  error
--- 311,316 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.c	Tue Oct  4 18:06:19 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Copyright (C) 2005 Free Software Foundation, Inc.  */
+ /* PR 13726 */
+ 
+ /* { dg-do preprocess } */
+ /* { dg-options "-dI -C" } */
+ 
+ #include "cmdlne-dI-C.h" /* #include comment */
+ /* comment 2 */
+ 
+ /* { dg-final { scan-file cmdlne-dI-C.i "#include c+omment" } } */
+ /* { dg-final { scan-file cmdlne-dI-C.i "header file c+omment" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.h gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.h
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/cmdlne-dI-C.h	Tue Oct  4 18:06:19 2005
***************
*** 0 ****
--- 1 ----
+ /* header file comment */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/cpp.exp gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/cpp.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/cpp.exp	Mon Jun  2 15:25:50 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/cpp.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/direct2.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/direct2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/direct2.c	Fri Nov  5 16:43:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/direct2.c	Sat Mar 12 06:57:15 2005
***************
*** 12,18 ****
  
  HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
  /*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 13 }*/
! int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" }*/
  
  HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
  /*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 17 }*/
--- 12,18 ----
  
  HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
  /*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 13 }*/
! int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } 13 }*/
  
  HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
  /*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 17 }*/
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/direct2s.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/direct2s.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/direct2s.c	Fri Nov  5 16:43:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/direct2s.c	Thu Mar 31 18:21:38 2005
***************
*** 14,20 ****
  
  HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
  /*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 15 }*/
! int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" }*/
  
  HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
  /*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 18 }*/
--- 14,20 ----
  
  HASH include "somerandomfile" /*{ dg-error "stray" "non-include" }*/
  /*{ dg-bogus "No such" "don't execute non-include" { target *-*-* } 15 }*/
! int resync_parser_1; /*{ dg-error "parse|syntax|expected" "" { target *-*-* } 15 }*/
  
  HASHINCLUDE <somerandomfile> /*{ dg-error "stray|expected" "non-include 2" }*/
  /*{ dg-bogus "No such" "don't execute non-include 2" { target *-*-* } 18 }*/
*************** void f ()
*** 40,42 ****
--- 40,44 ----
    int i = X;    /* { dg-error "undeclared|for each" "no macro X" } */
    int j = Y;    /* { dg-error "undeclared|for each" "no macro Y" } */
  }
+ 
+ /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-1.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ 
+ \u00AA
+ \u00B7
+ \u0F43  /* { dg-warning "not in NFC" } */
+ a\u05B8\u05B9\u05B9\u05BBb
+  a\u05BB\u05B9\u05B8\u05B9b  /* { dg-warning "not in NFC" } */
+ \u09CB
+ \u09C7\u09BE /* { dg-warning "not in NFC" } */
+ \u0B4B
+ \u0B47\u0B3E /* { dg-warning "not in NFC" } */
+ \u0BCA
+ \u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+ \u0BCB
+ \u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+ \u0CCA
+ \u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+ \u0D4A
+ \u0D46\u0D3E /* { dg-warning "not in NFC" } */
+ \u0D4B
+ \u0D47\u0D3E /* { dg-warning "not in NFC" } */
+ 
+ K
+ \u212A /* { dg-warning "not in NFC" } */
+ 
+ \u03AC
+ \u1F71 /* { dg-warning "not in NFC" } */
+ 
+ \uAC00
+ \u1100\u1161 /* { dg-warning "not in NFC" } */
+ \uAC01
+ \u1100\u1161\u11A8 /* { dg-warning "not in NFC" } */
+ \uAC00\u11A8 /* { dg-warning "not in NFC" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-2.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-std=c99 -fextended-identifiers -Wnormalized=nfkc" } */
+ 
+ \u00AA  /* { dg-warning "not in NFKC" } */
+ \u00B7
+ \u0F43  /* { dg-warning "not in NFC" } */
+ a\u05B8\u05B9\u05B9\u05BBb
+  a\u05BB\u05B9\u05B8\u05B9b  /* { dg-warning "not in NFC" } */
+ \u09CB
+ \u09C7\u09BE /* { dg-warning "not in NFC" } */
+ \u0B4B
+ \u0B47\u0B3E /* { dg-warning "not in NFC" } */
+ \u0BCA
+ \u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+ \u0BCB
+ \u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+ \u0CCA
+ \u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+ \u0D4A
+ \u0D46\u0D3E /* { dg-warning "not in NFC" } */
+ \u0D4B
+ \u0D47\u0D3E /* { dg-warning "not in NFC" } */
+ 
+ K
+ \u212A /* { dg-warning "not in NFC" } */
+ 
+ \u03AC
+ \u1F71 /* { dg-warning "not in NFC" } */
+ 
+ \uAC00
+ \u1100\u1161 /* { dg-warning "not in NFC" } */
+ \uAC01
+ \u1100\u1161\u11A8 /* { dg-warning "not in NFC" } */
+ \uAC00\u11A8 /* { dg-warning "not in NFC" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-3.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-std=c99 -fextended-identifiers -Wnormalized=id" } */
+ 
+ \u00AA
+ \u00B7
+ \u0F43  /* { dg-warning "not in NFC" } */
+ a\u05B8\u05B9\u05B9\u05BBb
+  a\u05BB\u05B9\u05B8\u05B9b  /* { dg-warning "not in NFC" } */
+ \u09CB
+ \u09C7\u09BE /* { dg-warning "not in NFC" } */
+ \u0B4B
+ \u0B47\u0B3E /* { dg-warning "not in NFC" } */
+ \u0BCA
+ \u0BC6\u0BBE /* { dg-warning "not in NFC" } */
+ \u0BCB
+ \u0BC7\u0BBE /* { dg-warning "not in NFC" } */
+ \u0CCA
+ \u0CC6\u0CC2 /* { dg-warning "not in NFC" } */
+ \u0D4A
+ \u0D46\u0D3E /* { dg-warning "not in NFC" } */
+ \u0D4B
+ \u0D47\u0D3E /* { dg-warning "not in NFC" } */
+ 
+ K
+ \u212A
+ 
+ \u03AC
+ \u1F71 /* { dg-warning "not in NFC" } */
+ 
+ \uAC00
+ \u1100\u1161
+ \uAC01
+ \u1100\u1161\u11A8
+ \uAC00\u11A8
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/normalize-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/normalize-4.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-std=c99 -fextended-identifiers -Wnormalized=none" } */
+ 
+ \u00AA
+ \u00B7
+ \u0F43
+ a\u05B8\u05B9\u05B9\u05BBb
+  a\u05BB\u05B9\u05B8\u05B9b
+ \u09CB
+ \u09C7\u09BE
+ \u0B4B
+ \u0B47\u0B3E
+ \u0BCA
+ \u0BC6\u0BBE
+ \u0BCB
+ \u0BC7\u0BBE
+ \u0CCA
+ \u0CC6\u0CC2
+ \u0D4A
+ \u0D46\u0D3E
+ \u0D4B
+ \u0D47\u0D3E
+ 
+ K
+ \u212A
+ 
+ \u03AC
+ \u1F71
+ 
+ \uAC00
+ \u1100\u1161
+ \uAC01
+ \u1100\u1161\u11A8
+ \uAC00\u11A8
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/paste4.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/paste4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/paste4.c	Thu Nov  4 16:01:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/paste4.c	Thu Mar 31 18:21:38 2005
*************** int main ()
*** 14,16 ****
--- 14,18 ----
    double d = glue (1.0e, +1); /* { dg-error "exponent|parse error|syntax error|expected" } */
    return 0;
  }
+ 
+ /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/separate-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/separate-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/separate-1.c	Fri Nov  5 16:43:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/separate-1.c	Thu Mar 31 18:21:38 2005
*************** int FOO( /* { dg-error "parse error|synt
*** 12,15 ****
  	), 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" } */
--- 12,17 ----
  	), bar;
  
  int baz FOO /* { dg-error "parse error|syntax error|expected" "error on this line" } */
! ;
! 
! /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/strify4.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/strify4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/strify4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/strify4.c	Fri Nov  4 00:23:01 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do run } */
+ /* Tests we stringify without changing unprintable characts.  
+ 
+    Andrew Pinski */
+ 
+ extern int strcmp (const char *, const char *);
+ extern int puts (const char *);
+ extern void abort (void);
+ #define err(str) do { puts(str); abort(); } while (0)
+ 
+ 
+ #define S(X) S2(X)
+ #define S2(X) #X
+ #define TAB "	" /* Note there is a tab character here. */
+ 
+ int main (int argc, char *argv[])
+ {
+   /* The space before "bar" here is vital.  */
+   char a[] = S(S(TAB));
+ 
+   if (strcmp (a, "\"\\\"	\\\"\""))
+     err ("stringification caused octal");
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/trad/num-sign.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/trad/num-sign.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/trad/num-sign.c	Fri Jun 21 05:29:09 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/trad/num-sign.c	Tue May 31 16:28:30 2005
***************
*** 1,6 ****
  /* Copyright (C) 2001 Free Software Foundation, Inc.  */
  
! /* { dg-do preprocess { target i?86-*-* } } */
  
  /* Tests that traditional numbers are signed, unless otherwise
     specified.  This test assumes a 32 bit target.
--- 1,6 ----
  /* Copyright (C) 2001 Free Software Foundation, Inc.  */
  
! /* { dg-do preprocess { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  /* Tests that traditional numbers are signed, unless otherwise
     specified.  This test assumes a 32 bit target.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/trad/trad.exp gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/trad/trad.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/trad/trad.exp	Fri Jun 21 05:29:09 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/trad/trad.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-1.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do run } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ void abort (void);
+ 
+ #define \u00C0 1
+ #define \u00C1 2
+ #define \U000000C2 3
+ #define wh\u00ff 4
+ #define a\u00c4b\u0441\U000003b4e 5
+ 
+ int main (void)
+ {
+   
+   if (\u00C0 != 1)
+     abort ();
+   if (\u00c1 != 2)
+     abort ();
+   if (\u00C2 != 3)
+     abort ();
+   if (wh\u00ff != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e != 5)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-2.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do run } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #define str(t) #t
+ 
+ int main (void)
+ {
+   const char s[] = str (\u30b2);
+ 
+   if (strcmp (s, "\u30b2") != 0)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-3.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ 
+ #define paste(x, y) x ## y
+ 
+ int paste(\u00aa, \u0531) = 3;
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-4.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ 
+ \u00AA
+ \u00AB /* { dg-error "not valid in an identifier" } */
+ \u00B6 /* { dg-error "not valid in an identifier" } */
+ \u00BA
+ \u00C0
+ \u00D6
+ \u0384
+ 
+ \u0669 /* { dg-error "not valid at the start of an identifier" } */
+ A\u0669
+ 0\u00BA
+ 0\u0669
+ \u0E59 /* { dg-error "not valid at the start of an identifier" } */
+ A\u0E59
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-5.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do preprocess } */
+ /* { dg-options "-std=c99 -pedantic -fextended-identifiers" } */
+ 
+ \u00AA
+ \u00AB /* { dg-error "not valid in an identifier" } */
+ \u00B6 /* { dg-error "not valid in an identifier" } */
+ \u00BA
+ \u00C0
+ \u00D6
+ \u0384 /* { dg-error "not valid in an identifier" } */
+ 
+ \u0669 /* { dg-error "not valid at the start of an identifier" } */
+ A\u0669
+ 0\u00BA
+ 0\u0669
+ \u0E59 /* { dg-error "not valid at the start of an identifier" } */
+ A\u0E59
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-6.c	Tue Mar 15 09:55:41 2005
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c89" } */
+ #define a b(
+ #define b(x) q
+ int a\u00aa);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-7.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ #define a b(
+ #define b(x) q
+ int a\U0000000z );
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/cpp/ucnid-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/cpp/ucnid-8.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c99" } */
+ /* Test that -std=c99 does not enable extended identifiers while the
+    feature is experimental; remove this test after audit of all
+    identifier uses in the compiler.  */
+ #define a b(
+ #define b(x) q
+ int a\u00aa);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-abi-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-abi-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-abi-1.c	Fri Dec  5 00:44:56 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-abi-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target powerpc*-*-darwin* } } */
- /* { dg-options "-O" } */
- /* { dg-final { scan-assembler "li r3,12345\n\t(bl|jbsr) " } } */
- 
- /* Check that zero-size structures don't affect parameter passing.  */
- 
- struct empty { };
- extern void foo (struct empty e, int a);
- void bar (void) {
-   struct empty e;
-   foo (e, 12345);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-abi-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-abi-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-abi-2.c	Fri Oct  8 14:37:40 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-abi-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do run { target powerpc*-*-darwin* } } */
- 
- /* You might think you'd need -maltivec for this, but actually you
-    don't; GCC will happily do everything in GPRs, and it still
-    tests that the ABI is correct.  */
- 
- #include <stdio.h>
- #include <stdlib.h>
- 
- #define vector __attribute__((vector_size(16)))
- 
- int main(void)
- {
-   vector unsigned int v = { 100, 200, 300, 400 };
-   vector unsigned int w = { 4, 5, 6, 7 };
-   char x[64];
-   sprintf (x, "%lvu,%d,%lvu", v, 1, w);
-   if (strcmp (x, "100 200 300 400,1,4 5 6 7") != 0)
-     {
-       puts (x);
-       abort ();
-     }
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-bool-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-bool-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-bool-1.c	Wed Jul 28 23:57:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-bool-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* Check that sizeof(bool) is 4 if we don't use special options. */
- /* Matt Austern  <austern@apple.com> */
- /* { dg-do run { target powerpc*-*-darwin* } } */
- 
- int dummy1[sizeof(_Bool) - 3];
- int dummy2[5 - sizeof(_Bool)];
- 
- int main()
- {
-   return sizeof(_Bool) == 4 ? 0 : 1;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-bool-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-bool-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-bool-2.c	Wed Jul 28 23:57:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-bool-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* Check that sizeof(bool) is 1 if we use the -mone-byte-bool option. */
- /* Matt Austern  <austern@apple.com> */
- /* { dg-do run { target powerpc*-*-darwin* } } */
- /* { dg-options "-mone-byte-bool" } */
- 
- int dummy1[sizeof(_Bool)];
- int dummy2[2 - sizeof(_Bool)];
- 
- int main()
- {
-   return sizeof(_Bool) == 1 ? 0 : 1;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-longdouble.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-longdouble.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-longdouble.c	Fri Oct  8 14:37:40 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-longdouble.c	Thu Jan  1 00:00:00 1970
***************
*** 1,119 ****
- /* { dg-do run { target powerpc*-*-darwin* } } */
- /* { dg-options "" } */
- /* No options so 'long long' can be used.  */
- 
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- 
- typedef unsigned long long uint64_t;
- typedef uint64_t ldbits[2];
- 
- union ldu 
- {
-   ldbits lb;
-   long double ld;
- };
- 
- static const struct {
-   ldbits a;
-   ldbits b;
-   ldbits result;
- } single_tests[] = {
-   /* Test of values that add to near +Inf.  */
-   { { 0x7FEFFFFFFFFFFFFFLL, 0xFC88000000000000LL },
-     { 0x7C94000000000000LL, 0x0000000000000000LL },
-     { 0x7FEFFFFFFFFFFFFFLL, 0x7C80000000000000LL } },
-   { { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL },
-     { 0x792FFFFFFFFFFFFFLL, 0x0000000000000000LL },
-     { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL } },
-   { { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL },
-     { 0x7930000000000000LL, 0xF5DFFFFFFFFFFFFFLL },
-     /* correct result is: { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL } */
-     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
-   /* Test of values that add to +Inf.  */
-   { { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL },
-     { 0x7930000000000000LL, 0x0000000000000000LL },
-     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
-   /* Tests of Inf addition.  */
-   { { 0x7FF0000000000000LL, 0x0000000000000000LL },
-     { 0x0000000000000000LL, 0x0000000000000000LL },
-     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
-   { { 0x7FF0000000000000LL, 0x0000000000000000LL },
-     { 0x7FF0000000000000LL, 0x0000000000000000LL },
-     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
-   /* Test of Inf addition producing NaN.  */
-   { { 0x7FF0000000000000LL, 0x0000000000000000LL },
-     { 0xFFF0000000000000LL, 0x0000000000000000LL },
-     { 0x7FF8000000000000LL, 0x0000000000000000LL } },
-   /* Tests of NaN addition.  */
-   { { 0x7FF8000000000000LL, 0x0000000000000000LL },
-     { 0x0000000000000000LL, 0x0000000000000000LL },
-     { 0x7FF8000000000000LL, 0x7FF8000000000000LL } },
-   { { 0x7FF8000000000000LL, 0x0000000000000000LL },
-     { 0x7FF0000000000000LL, 0x0000000000000000LL },
-     { 0x7FF8000000000000LL, 0x7FF8000000000000LL } },
-   /* Addition of positive integers, with interesting rounding properties.  */
-   { { 0x4690000000000000LL, 0x4330000000000000LL },
-     { 0x4650000000000009LL, 0xC2FFFFFFFFFFFFF2LL },
-     /* correct result is: { 0x4691000000000001LL, 0xC32C000000000000LL } */
-     { 0x4691000000000001LL, 0xc32bfffffffffffeLL } },
-   { { 0x4690000000000000LL, 0x4330000000000000LL },
-     { 0x4650000000000008LL, 0x42F0000000000010LL },
-     { 0x4691000000000001LL, 0xC32E000000000000LL } },
-   { { 0x469FFFFFFFFFFFFFLL, 0x433FFFFFFFFFFFFFLL },
-     { 0x4340000000000000LL, 0x3FF0000000000000LL },
-     { 0x46A0000000000000LL, 0x0000000000000000LL } },
-   { { 0x469FFFFFFFFFFFFFLL, 0x433FFFFFFFFFFFFFLL },
-     { 0x4340000000000000LL, 0x0000000000000000LL },
-     { 0x46A0000000000000LL, 0xBFF0000000000000LL } },
-   /* Subtraction of integers, with cancellation.  */
-   { { 0x4690000000000000LL, 0x4330000000000000LL },
-     { 0xC690000000000000LL, 0xC330000000000000LL },
-     { 0x0000000000000000LL, 0x0000000000000000LL } },
-   { { 0x4690000000000000LL, 0x4330000000000000LL },
-     { 0xC330000000000000LL, 0x0000000000000000LL },
-     { 0x4690000000000000LL, 0x0000000000000000LL } },
-   { { 0x4690000000000000LL, 0x4330000000000000LL },
-     { 0xC330000000000000LL, 0x3FA0000000000000LL },
-     { 0x4690000000000000LL, 0x3FA0000000000000LL } },
-   { { 0x4690000000000000LL, 0x4330000000000000LL },
-     { 0xC690000000000000LL, 0x3FA0000000000000LL },
-     /* correct result is: { 0x4330000000000000LL, 0x3FA0000000000000LL } */
-     { 0x4330000000000000LL, 0x0000000000000000LL } }
- };
-     
- static int fail = 0;
- 
- static void
- run_single_tests (void)
- {
-   size_t i;
-   for (i = 0; i < sizeof (single_tests) / sizeof (single_tests[0]); i++)
-     {
-       union ldu a, b, result, expected;
-       memcpy (a.lb, single_tests[i].a, sizeof (ldbits));
-       memcpy (b.lb, single_tests[i].b, sizeof (ldbits));
-       memcpy (expected.lb, single_tests[i].result, sizeof (ldbits));
-       result.ld = a.ld + b.ld;
-       if (memcmp (result.lb, expected.lb,
- 		  result.ld == result.ld ? sizeof (ldbits) : sizeof (double))
- 	  != 0)
- 	{
- 	  printf ("FAIL: %016llx %016llx + %016llx %016llx\n",
- 		  a.lb[0], a.lb[1], b.lb[0], b.lb[1]);
- 	  printf (" = %016llx %016llx not %016llx %016llx\n",
- 		  result.lb[0], result.lb[1], expected.lb[0], expected.lb[1]);
- 	  fail = 1;
- 	}
-     }
- }
- 
- int main(void)
- {
-   run_single_tests();
-   if (fail)
-     abort ();
-   else
-     exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-longlong.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-longlong.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-longlong.c	Fri Sep 17 13:48:43 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-longlong.c	Thu Jan  1 00:00:00 1970
***************
*** 1,40 ****
- /* { dg-do run { target powerpc*-*-* } } */
- /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "-mcpu=G5" } { "" } } */
- /* { dg-options "-mcpu=G5" } */
- 
- #include <signal.h>
- #include <stdlib.h>
- 
- void
- sig_ill_handler (int sig)
- {
-     exit(0);
- }
- 
- 
- int  msw(long long in)
- {
-   union {
-     long long ll;
-     int  i[2];
-   } ud;
-   ud.ll = in;
-   return ud.i[0];
- }
- 
- int main()
- {
- 
-   /* Exit on systems without 64bit instructions.  */
-   signal (SIGILL, sig_ill_handler);
- #ifdef __MACH__
-   asm volatile ("extsw r0,r0");
- #else
-   asm volatile ("extsw 0,0");
- #endif
-   signal (SIGILL, SIG_DFL);
- 
-   if (msw(1) != 0)
-     abort();
-   exit(0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-misaligned.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-misaligned.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-misaligned.c	Thu Oct 14 22:30:47 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-misaligned.c	Thu Jan  1 00:00:00 1970
***************
*** 1,32 ****
- /* { dg-do compile { target powerpc*-*-darwin* } } */
- /* { dg-options "-O2 -mpowerpc64" } */
- 
- typedef struct Nlm_rect {
-   short sh1;
-   short sh2;
-   short sh3;
-   short sh4;
- } S8;
- 
- typedef struct udv_mouse_select {
-     short Action_type;
-     S8 rcClip;
-     int pgp;
-   } UDVselect;
- 
- UDVselect ms;
- int UDV(S8 rcClip);
- 
- int main()
- {
-     ms.rcClip.sh1 = 1;
-     ms.rcClip.sh4 = 4;
-     return UDV(ms.rcClip);
- }
- 
- int UDV(S8 rcClip){
- 
- 	return !(rcClip.sh1 == 1 && rcClip.sh4 == 4);
- }
- 	
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-version-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-version-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/darwin-version-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/darwin-version-1.c	Fri Jul  8 05:51:06 2005
***************
*** 0 ****
--- 1,10 ----
+ /* Basic test of the -mmacosx-version-min option.  */
+ 
+ /* { dg-options "-mmacosx-version-min=10.1" } */
+ /* { dg-do link { target *-*-darwin* } } */
+ 
+ int main()
+ {
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/debug/debug.exp gcc-4.1.0/gcc/testsuite/gcc.dg/debug/debug.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/debug/debug.exp	Sun May 18 18:59:55 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/debug/debug.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c	Tue Sep  6 19:30:17 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char1.c	Thu Oct 13 02:00:18 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* PR debug/7241 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -gdwarf-2 -dA" } */
+ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "0x\[68\]\[ \t\]+\[#@;!/|\]+\[ \t\]+DW_AT_encoding" } } */
  /* { dg-final { scan-assembler-not "0x\[57\]\[ \t\]+\[#@;!/|\]+\[ \t\]+DW_AT_encoding" } } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c	Tue Sep  6 19:30:18 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char2.c	Thu Oct 13 02:00:18 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* PR debug/7241 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -gdwarf-2 -dA" } */
+ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "0x\[68\]\[ \t\]+\[#@;!/|\]+\[ \t\]+DW_AT_encoding" } } */
  /* { dg-final { scan-assembler-not "0x\[57\]\[ \t\]+\[#@;!/|\]+\[ \t\]+DW_AT_encoding" } } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c	Tue Sep  6 19:30:18 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf-char3.c	Thu Oct 13 02:00:18 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* PR debug/7241 */
  /* { dg-do compile } */
  /* { dg-options "-O2 -gdwarf-2 -dA" } */
+ /* { dg-skip-if "Unmatchable assembly" { mmix-*-* } { "*" } { "" } } */
  /* { dg-final { scan-assembler "0x\[68\]\[ \t\]+\[#@;!/|\]+\[ \t\]+DW_AT_encoding" } } */
  /* { dg-final { scan-assembler-not "0x\[57\]\[ \t\]+\[#@;!/|\]+\[ \t\]+DW_AT_encoding" } } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp	Mon Jan 12 16:25:32 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/debug/dwarf2/dwarf2.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/debug/pr16676.c gcc-4.1.0/gcc/testsuite/gcc.dg/debug/pr16676.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/debug/pr16676.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/debug/pr16676.c	Tue May 10 01:35:15 2005
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ 
+ void foo (void) { 
+   void nested () {} 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/decl-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/decl-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/decl-2.c	Mon Feb 10 12:45:54 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/decl-2.c	Sat Mar 12 15:40:35 2005
***************
*** 1,10 ****
  /* PR c/7411 */
  /* Contributed by Christian Ehrhardt */
  /* { dg-do compile } */
  
  void foo(void)
  {
!   char c;  /* { dg-error "previous declaration" } */
    int i;
!   int c = i;  /* { dg-error "conflicting types" } */
  }
--- 1,16 ----
  /* PR c/7411 */
  /* Contributed by Christian Ehrhardt */
+ /* Added extra line-breaks to check that diagnostics refer to correct token.
+    --Per Bothner. */
  /* { dg-do compile } */
  
  void foo(void)
  {
!   char
!     c	/* { dg-error "previous declaration" } */
!     ;
    int i;
!   int
!     c	/* { dg-error "conflicting types" } */
!     = i;
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/delay-slot-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/delay-slot-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/delay-slot-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/delay-slot-1.c	Thu Nov  3 11:38:14 2005
***************
*** 0 ****
--- 1,59 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -mabi=64" { target mips-*-linux-* } } */
+ 
+ struct offset_v1 {
+     int k_uniqueness;
+ };
+ 
+ struct offset_v2 {
+  long v;
+ } __attribute__ ((__packed__));
+ 
+ struct reiserfs_key {
+     int k_objectid;
+     union {
+  struct offset_v1 k_offset_v1;
+  struct offset_v2 k_offset_v2;
+     } u;
+ };
+ 
+ struct item_head
+ {
+  struct reiserfs_key ih_key;
+  int ih_version;
+ };
+ 
+ static void set_offset_v2_k_type(struct offset_v2 *v2)
+ {
+     v2->v &= 1;
+ }
+ 
+ static void set_le_key_k_type (int version, struct reiserfs_key * key)
+ {
+     version ? (key->u.k_offset_v1.k_uniqueness = 1)
+ 	    : set_offset_v2_k_type(&(key->u.k_offset_v2));
+ }
+ 
+ static void set_le_ih_k_type (struct item_head * ih)
+ {
+     set_le_key_k_type((__builtin_constant_p((ih)->ih_version) ? (ih)->ih_version : (ih)->ih_version), &(ih->ih_key));
+ }
+ 
+ void boo(struct item_head *ih, const char *body);
+ 
+ void direct2indirect(void)
+ {
+     struct item_head *p_le_ih;
+     struct item_head ind_ih;
+     unsigned int unfm_ptr;
+ 
+     if (__builtin_expect(32, 0)) __asm__ ("break");
+ 
+     set_le_ih_k_type (&ind_ih);
+ 
+     if (__builtin_constant_p(p_le_ih) ? 1 : 2) {
+         (__builtin_constant_p(__builtin_constant_p(1) == 1));
+       boo(&ind_ih, (char *)&unfm_ptr);
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/dg.exp gcc-4.1.0/gcc/testsuite/gcc.dg/dg.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/dg.exp	Thu Feb  8 02:29:37 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/dg.exp	Wed Nov  9 06:30:03 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
*************** if ![info exists DEFAULT_CFLAGS] then {
*** 29,35 ****
  dg-init
  
  # Main loop.
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
  	"" $DEFAULT_CFLAGS
  
  # All done.
--- 29,35 ----
  dg-init
  
  # Main loop.
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cSi\]]] \
  	"" $DEFAULT_CFLAGS
  
  # All done.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/dll-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/dll-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/dll-2.c	Wed Aug 11 02:50:14 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/dll-2.c	Wed Oct 12 20:54:50 2005
***************
*** 11,23 ****
  /* { dg-require-dll "" } */
  
  __declspec (dllimport) int foo1 ();
! __declspec (dllexport) int foo1 ();
! 
  __declspec (dllexport) int foo2 ();
! __declspec (dllimport) int foo2 ();
  
  __declspec (dllimport) int bar1;
! __declspec (dllexport) int bar1;
  
  __declspec (dllexport) int bar2;
! __declspec (dllimport) int bar2;
--- 11,22 ----
  /* { dg-require-dll "" } */
  
  __declspec (dllimport) int foo1 ();
! __declspec (dllexport) int foo1 ();	/* { dg-warning "previous dllimport ignored" } */
  __declspec (dllexport) int foo2 ();
! __declspec (dllimport) int foo2 ();	/* { dg-warning "dllimport ignored" } */
  
  __declspec (dllimport) int bar1;
! __declspec (dllexport) int bar1;	/* { dg-warning "previous dllimport ignored" } */
  
  __declspec (dllexport) int bar2;
! __declspec (dllimport) int bar2;	/* { dg-warning "dllimport ignored" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/dll-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/dll-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/dll-3.c	Thu Mar 13 22:21:21 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/dll-3.c	Wed Oct 12 20:54:50 2005
***************
*** 5,14 ****
  /* { dg-do compile { target i?86-pc-mingw* } } */
  
  __declspec (dllimport) int foo1 ();
! __declspec (dllexport) int foo1 ();
  
  __declspec (dllexport) int foo2 ();
! __declspec (dllimport) int foo2 ();
  
  __declspec (dllexport) int foo1 () { return foo2 (); }
  __declspec (dllexport) int foo2 () { return foo1 (); }
--- 5,14 ----
  /* { dg-do compile { target i?86-pc-mingw* } } */
  
  __declspec (dllimport) int foo1 ();
! __declspec (dllexport) int foo1 ();	/* { dg-warning "previous dllimport ignored" } */
  
  __declspec (dllexport) int foo2 ();
! __declspec (dllimport) int foo2 ();	/* { dg-warning "dllimport ignored" } */
  
  __declspec (dllexport) int foo1 () { return foo2 (); }
  __declspec (dllexport) int foo2 () { return foo1 (); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/dll-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/dll-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/dll-4.c	Thu Mar 13 22:21:21 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/dll-4.c	Wed Oct 12 20:54:50 2005
***************
*** 3,12 ****
  /* { dg-do compile { target i?86-pc-mingw* } } */
  
  __declspec (dllimport) int foo1;
! int foo1;
  
  __declspec (dllimport) int foo2;
! int foo2 = 5;
  
  int f () { return foo1 + foo2; }
  
--- 3,12 ----
  /* { dg-do compile { target i?86-pc-mingw* } } */
  
  __declspec (dllimport) int foo1;
! int foo1;	/* { dg-warning "redeclared without dllimport" } */
  
  __declspec (dllimport) int foo2;
! int foo2 = 5;	/* { dg-warning "redeclared without dllimport" } */
  
  int f () { return foo1 + foo2; }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/doloop-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/doloop-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/doloop-1.c	Sun Mar 28 20:33:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/doloop-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* Make sure both loops are recognized as doloops.
-    If so, "bdnz" will be generated on ppc; if not,
-    you will get "ble" or "blt" or "bge".  */
- 
- /* { dg-do compile { target powerpc-*-* } } */
- /* { dg-options "-O2" } */
- void foo (int count, char* pca, char* pcb) {
-     int i;
-     if (count > 10)
-         for (i = 0; i < count; ++i)
-             pcb += i;
-     else
-         for (i = 0; i < count; ++i)
-             pca += i;
-     *pca = *pcb;
- }
- /* { dg-final { scan-assembler "bdnz" } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-1.c	Wed Jul 20 03:30:58 2005
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fwrapv" } */
+ #define ABS(x) (x > 0 ? x : -x)
+ int f (int a, int b) {
+ 	if ((ABS(a) | b) != 0) return 1;
+ 	else return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-2.c	Wed Jul 20 03:30:58 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do run } */
+ /* { dg-options "-O1 -fwrapv" } */
+ #include <limits.h>
+ void exit (int);
+ void abort ();
+ #define ABS(x) (x > 0 ? x : -x)
+ int f (int a) {
+ 	if (ABS(a) >= 0) return 1;
+ 	else return 0;
+ }
+ 
+ int main (int argc, char *argv[]) {
+ 	if (f(INT_MIN))
+ 	  abort ();
+ 	else
+ 	  exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-3.c	Wed Jul 20 03:30:58 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple -fwrapv" } */
+ #define ABS(x) (x > 0 ? x : -x)
+ int f (int a) {
+ 	return ABS (ABS(a));
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "ABS" 1 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-abs-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-abs-4.c	Sat Jul 30 14:39:12 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple -fwrapv" } */
+ extern float fabsf (float);
+ extern float cabsf (_Complex float);
+ 
+ int f (float a) {
+ 	return fabsf(a) < 0.0;
+ }
+ 
+ int g (_Complex float a) {
+ 	return cabsf (a) < 0.0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "ABS" 0 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-alloca-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-alloca-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-alloca-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-alloca-1.c	Wed Jul 20 20:26:11 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-useless" } */
+ 
+ void *alloca (__SIZE_TYPE__);
+ void link_error ();
+ 
+ int main (int argc, char *argv[]) {
+ 	char *foo;
+ 	if ((foo = alloca(argc)) == 0)
+ 	  link_error ();
+ 	return 0;
+ }
+ /* { dg-final { scan-tree-dump-times "link_error" 0 "useless" } } */
+ /* { dg-final { cleanup-tree-dump "useless" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-div-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-div-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-div-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-div-1.c	Tue May 17 09:55:44 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-funsafe-math-optimizations -fdump-tree-gimple" } */
+ 
+ float f(float x)
+ {
+   return x/2 + x/3;
+ }
+ 
+ float g(float x)
+ {
+   return 2/x + 3/x;
+ }
+ 
+ float h(float x)
+ {
+   return x/2 - x/3;
+ }
+ 
+ float i(float x)
+ {
+   return 2/x - 3/x;
+ }
+ 
+ /* f and h should be turned into multiplications,
+    the divisions in g and i should be grouped together.  */
+ 
+ /* { dg-final { scan-tree-dump-times " \\* " 2 "gimple" } } */
+ /* { dg-final { scan-tree-dump-times " / " 2 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-mod-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-mod-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-mod-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-mod-1.c	Thu Jun 23 15:08:38 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ #define ABS(x) (x > 0 ? x : -x)
+ 
+ unsigned int f (unsigned int a) {
+ 	/* (unsigned)-8 is not a power of 2.  */
+ 	return a % -8;
+ }
+ 
+ int g (int b) {
+ 	return ABS (b) % -8;
+ }
+ 
+ int h (int c) {
+ 	return ABS (c) % 8;
+ }
+ 
+ unsigned int k (unsigned int d) {
+ 	return d % 8;
+ }
+ 
+ /* { dg-final { scan-tree-dump "a % (4294967288|0fffffff8)" "gimple" } } */
+ /* { dg-final { scan-tree-dump-times " & 7" 3 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-overflow-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-overflow-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-overflow-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-overflow-1.c	Sun Nov 20 11:27:41 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-compile } */
+ /* { dg-options "-O -ftrapping-math" } */
+ 
+ /* There should be exactly 2 +Inf in the assembly file.  */
+ 
+ float f1 =  __FLT_MAX__ + __FLT_MAX__;
+ 
+ float foo1(void)
+ {
+   return  __FLT_MAX__ + __FLT_MAX__;
+ }
+ 
+ float f2 = 1.0f/0.0f;
+ 
+ float foo2(void)
+ {
+   return 1.0f/0.0f;
+ }
+ 
+ /* { dg-final { scan-assembler-times "2139095040" 2 { target { ! mmix-*-* } } } } */
+ /* { dg-final { scan-assembler-times "#7f800000" 2 { target mmix-*-* } } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-xor-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-xor-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-xor-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-xor-1.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ int f (int a, int b) {
+   return ~a ^ ~b;
+ }
+ 
+ unsigned int g (unsigned int a, unsigned int b) {
+   return ~a ^ ~b;
+ }
+ /* { dg-final { scan-tree-dump-times "a \\^ b" 2 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/fold-xor-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/fold-xor-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/fold-xor-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/fold-xor-2.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ int f (int a, int b) {
+ 	return ~(a ^ -(b + 1));
+ }
+ 
+ int g (int a, int b) {
+ 	return b ^ a;
+ }
+ 
+ unsigned int h (unsigned int a, unsigned int b) {
+ 	return ~(-(b + 1) ^ a);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "b \\^ a" 3 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/for-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/for-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/for-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/for-1.c	Fri Oct 14 21:35:47 2005
***************
*** 0 ****
--- 1,7 ----
+ /* PR c/23439 */
+ /* Origin: Serge Belyshev <belyshev@depni.sinp.msu.ru> */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ # 0 "for-1.c"
+ void foo() { for  /* { dg-error "at end of input" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/cmn-err-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/cmn-err-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/cmn-err-1.c	Mon Nov 15 16:08:15 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/cmn-err-1.c	Wed Jun  8 16:28:39 2005
*************** int main()
*** 25,30 ****
--- 25,31 ----
  		ll, ll, ll, ll, ll, ll, ll);
    cmn_err_func (0, "%b %s", i, "\01Foo", string);
    cmn_err_func (0, "%p", string);
+   cmn_err_func (0, "%16b", i, "\01Foo");
  
    cmn_err_func (0, "%i", i);		/* { dg-error "unknown|too many" } */
    cmn_err_func (0, "%d", l);		/* { dg-error "expects type" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/format.exp gcc-4.1.0/gcc/testsuite/gcc.dg/format/format.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/format.exp	Tue Nov 20 03:51:02 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/format.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Don't run this directory with any default CFLAGS, but run tests with
  # and without -DWIDE.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Don't run this directory with any default CFLAGS, but run tests with
  # and without -DWIDE.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/gcc_diag-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/gcc_diag-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/gcc_diag-1.c	Sun Sep 21 05:07:20 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/gcc_diag-1.c	Sun Jul  3 00:38:49 2005
*************** union tree_node;
*** 21,26 ****
--- 21,27 ----
  typedef union tree_node *tree;
  
  extern int diag (const char *, ...) ATTRIBUTE_DIAG(__gcc_diag__);
+ extern int tdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_tdiag__);
  extern int cdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_cdiag__);
  extern int cxxdiag (const char *, ...) ATTRIBUTE_DIAG(__gcc_cxxdiag__);
  
*************** foo (int i, int i1, int i2, unsigned int
*** 35,71 ****
--- 36,92 ----
  {
    /* Acceptable C90 specifiers, flags and modifiers.  */
    diag ("%%");
+   tdiag ("%%");
    cdiag ("%%");
    cxxdiag ("%%");
    diag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p);
+   tdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p);
    cdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p);
    cxxdiag ("%d%i%o%u%x%c%s%p%%", i, i, u, u, u, i, s, p);
+   diag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p);
+   tdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p);
+   cdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p);
+   cxxdiag ("%qd%qi%qo%qu%qx%qc%qs%qp%<%%%'%>", i, i, u, u, u, i, s, p);
    diag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul);
+   tdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul);
    cdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul);
    cxxdiag ("%ld%li%lo%lu%lx", l, l, ul, ul, ul);
    diag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull);
+   tdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull);
    cdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull);
    cxxdiag ("%lld%lli%llo%llu%llx", ll, ll, ull, ull, ull);
    diag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull);
+   tdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull);
    cdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull);
    cxxdiag ("%wd%wi%wo%wu%wx", ll, ll, ull, ull, ull);
    diag ("%.*s", i, s);
+   tdiag ("%.*s", i, s);
    cdiag ("%.*s", i, s);
    cxxdiag ("%.*s", i, s);
  
    /* Extensions provided in the diagnostic framework.  */
    diag ("%m");
+   tdiag ("%m");
    cdiag ("%m");
    cxxdiag ("%m");
    diag ("%H", loc);
+   tdiag ("%H", loc);
    cdiag ("%H", loc);
    cxxdiag ("%H", loc);
    diag ("%J", t1);
+   tdiag ("%J", t1);
    cdiag ("%J", t1);
    cxxdiag ("%J", t1);
  
+   tdiag ("%D%F%T", t1, t1, t1);
+   tdiag ("%+D%+F%+T", t1, t1, t1);
+   tdiag ("%q+D%q+F%q+T", t1, t1, t1);
+   tdiag ("%D%D%D%D", t1, t2, *t3, t4[5]);
    cdiag ("%D%F%T", t1, t1, t1);
+   cdiag ("%+D%+F%+T", t1, t1, t1);
+   cdiag ("%q+D%q+F%q+T", t1, t1, t1);
    cdiag ("%D%D%D%D", t1, t2, *t3, t4[5]);
+   cdiag ("%E", t1);
    cxxdiag ("%A%D%E%F%T%V", t1, t1, t1, t1, t1, t1);
    cxxdiag ("%D%D%D%D", t1, t2, *t3, t4[5]);
    cxxdiag ("%#A%#D%#E%#F%#T%#V", t1, t1, t1, t1, t1, t1);
*************** foo (int i, int i1, int i2, unsigned int
*** 75,122 ****
  
    /* Bad stuff with extensions.  */
    diag ("%m", i); /* { dg-warning "format" "extra arg" } */
    cdiag ("%m", i); /* { dg-warning "format" "extra arg" } */
    cxxdiag ("%m", i); /* { dg-warning "format" "extra arg" } */
    diag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
    diag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
    diag ("%H"); /* { dg-warning "format" "missing arg" } */
    cdiag ("%H"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%H"); /* { dg-warning "format" "missing arg" } */
    diag ("%J"); /* { dg-warning "format" "missing arg" } */
    cdiag ("%J"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%J"); /* { dg-warning "format" "missing arg" } */
    diag ("%H", i); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%H", i); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%H", i); /* { dg-warning "format" "wrong arg" } */
    diag ("%H", p); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%H", p); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%H", p); /* { dg-warning "format" "wrong arg" } */
    diag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
    diag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
    diag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
    diag ("%D", t1); /* { dg-warning "format" "bogus tree" } */
    cdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */
    cdiag ("%#D", t1); /* { dg-warning "format" "bogus modifier" } */
!   cdiag ("%+D", t1); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%C"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%C", l); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%C", i, i); /* { dg-warning "format" "extra arg" } */
    cxxdiag ("%#C", i); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%+C", i); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%D"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%D"); /* { dg-warning "format" "missing arg" } */
    cdiag ("%D", i); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%D", i); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%D", t1, t1); /* { dg-warning "format" "extra arg" } */
    cxxdiag ("%D", t1, t1); /* { dg-warning "format" "extra arg" } */
  
--- 96,159 ----
  
    /* Bad stuff with extensions.  */
    diag ("%m", i); /* { dg-warning "format" "extra arg" } */
+   tdiag ("%m", i); /* { dg-warning "format" "extra arg" } */
    cdiag ("%m", i); /* { dg-warning "format" "extra arg" } */
    cxxdiag ("%m", i); /* { dg-warning "format" "extra arg" } */
    diag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
+   tdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%#m"); /* { dg-warning "format" "bogus modifier" } */
    diag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
+   tdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%+m"); /* { dg-warning "format" "bogus modifier" } */
    diag ("%H"); /* { dg-warning "format" "missing arg" } */
+   tdiag ("%H"); /* { dg-warning "format" "missing arg" } */
    cdiag ("%H"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%H"); /* { dg-warning "format" "missing arg" } */
    diag ("%J"); /* { dg-warning "format" "missing arg" } */
+   tdiag ("%J"); /* { dg-warning "format" "missing arg" } */
    cdiag ("%J"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%J"); /* { dg-warning "format" "missing arg" } */
    diag ("%H", i); /* { dg-warning "format" "wrong arg" } */
+   tdiag ("%H", i); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%H", i); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%H", i); /* { dg-warning "format" "wrong arg" } */
    diag ("%H", p); /* { dg-warning "format" "wrong arg" } */
+   tdiag ("%H", p); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%H", p); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%H", p); /* { dg-warning "format" "wrong arg" } */
    diag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
+   tdiag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%J", loc); /* { dg-warning "format" "wrong arg" } */
    diag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
+   tdiag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%#H", loc); /* { dg-warning "format" "bogus modifier" } */
    diag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
+   tdiag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%+H", loc); /* { dg-warning "format" "bogus modifier" } */
    diag ("%D", t1); /* { dg-warning "format" "bogus tree" } */
+   tdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */
+   tdiag ("%E", t1); /* { dg-warning "format" "bogus tree" } */
+   tdiag ("%#D", t1); /* { dg-warning "format" "bogus modifier" } */
    cdiag ("%A", t1); /* { dg-warning "format" "bogus tree" } */
    cdiag ("%#D", t1); /* { dg-warning "format" "bogus modifier" } */
!   cdiag ("%+D", t1);
    cxxdiag ("%C"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%C", l); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%C", i, i); /* { dg-warning "format" "extra arg" } */
    cxxdiag ("%#C", i); /* { dg-warning "format" "bogus modifier" } */
    cxxdiag ("%+C", i); /* { dg-warning "format" "bogus modifier" } */
+   tdiag ("%D"); /* { dg-warning "format" "missing arg" } */
    cdiag ("%D"); /* { dg-warning "format" "missing arg" } */
    cxxdiag ("%D"); /* { dg-warning "format" "missing arg" } */
+   tdiag ("%D", i); /* { dg-warning "format" "wrong arg" } */
    cdiag ("%D", i); /* { dg-warning "format" "wrong arg" } */
    cxxdiag ("%D", i); /* { dg-warning "format" "wrong arg" } */
+   tdiag ("%D", t1, t1); /* { dg-warning "format" "extra arg" } */
    cdiag ("%D", t1, t1); /* { dg-warning "format" "extra arg" } */
    cxxdiag ("%D", t1, t1); /* { dg-warning "format" "extra arg" } */
  
*************** foo (int i, int i1, int i2, unsigned int
*** 132,167 ****
--- 169,215 ----
  
    /* Various tests of bad argument types.  */
    diag ("%-d", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%-d", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%-d", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%-d", i); /* { dg-warning "format" "bad flag" } */
    diag ("% d", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("% d", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("% d", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("% d", i); /* { dg-warning "format" "bad flag" } */
    diag ("%#o", u); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%#o", u); /* { dg-warning "format" "bad flag" } */
    cdiag ("%#o", u); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%#o", u); /* { dg-warning "format" "bad flag" } */
    diag ("%0d", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%0d", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%0d", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%0d", i); /* { dg-warning "format" "bad flag" } */
    diag ("%08d", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%08d", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%08d", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%08d", i); /* { dg-warning "format" "bad flag" } */
    diag ("%+d\n", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%+d\n", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%+d\n", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%+d\n", i); /* { dg-warning "format" "bad flag" } */
    diag ("%3d\n", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%3d\n", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%3d\n", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%3d\n", i); /* { dg-warning "format" "bad flag" } */
    diag ("%-3d\n", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%-3d\n", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%-3d\n", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%-3d\n", i); /* { dg-warning "format" "bad flag" } */
    diag ("%.7d\n", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%.7d\n", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%.7d\n", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%.7d\n", i); /* { dg-warning "format" "bad flag" } */
    diag ("%+9.4d\n", i); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%+9.4d\n", i); /* { dg-warning "format" "bad flag" } */
    cdiag ("%+9.4d\n", i); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%+9.4d\n", i); /* { dg-warning "format" "bad flag" } */
    diag ("%.3ld\n", l); /* { dg-warning "format" "bad flag" } */
+   tdiag ("%.3ld\n", l); /* { dg-warning "format" "bad flag" } */
    cdiag ("%.3ld\n", l); /* { dg-warning "format" "bad flag" } */
    cxxdiag ("%.3ld\n", l); /* { dg-warning "format" "bad flag" } */
    diag ("%d %lu\n", i, ul);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/gcc_gfc-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/gcc_gfc-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/gcc_gfc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/gcc_gfc-1.c	Sun Jul  3 14:28:03 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test for gcc_gfc formats.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wformat" } */
+ 
+ #include "format.h"
+ 
+ /* Magic identifier must be set before the attribute is used.  */
+ typedef struct locus locus;
+ 
+ extern int gfc_warn (const char *, ...) __attribute__ ((__format__ (__gcc_gfc__, 1, 2))) __attribute__ ((__nonnull__));
+ 
+ void
+ foo (int i, char *s, long int l, llong ll, locus *loc)
+ {
+   /* Acceptable C90 specifiers, flags and modifiers.  */
+   gfc_warn ("%%");
+   gfc_warn ("%d%i%c%s%%", i, i, i, s);
+ 
+   /* Extensions provided in gfc_warn.  */
+   gfc_warn ("%C");
+   gfc_warn ("%L", loc);
+ 
+   /* Various tests of bad argument types.  */
+   gfc_warn ("%d", l); /* { dg-warning "format" "bad argument types" } */
+   gfc_warn ("%d", ll); /* { dg-warning "format" "bad argument types" } */
+   gfc_warn ("%s", &i); /* { dg-warning "format" "bad argument types" } */
+   gfc_warn ("%L", &i); /* { dg-warning "format" "bad argument types" } */
+   gfc_warn ("%C", i); /* { dg-warning "format" "too many arguments" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-1.c	Sun Jan  7 10:44:59 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-1.c	Tue Jul 19 12:09:49 2005
***************
*** 1,7 ****
  /* Test for warnings for missing format attributes.  */
  /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
  /* { dg-do compile } */
! /* { dg-options "-std=gnu99 -Wformat -Wmissing-format-attribute" } */
  
  #include "format.h"
  
--- 1,7 ----
  /* Test for warnings for missing format attributes.  */
  /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
  /* { dg-do compile } */
! /* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
  
  #include "format.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-2.c	Sun Jan  7 10:44:59 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-2.c	Tue Jul 19 12:09:49 2005
***************
*** 2,8 ****
     relevant parameters for a format attribute; see c/1017.  */
  /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
  /* { dg-do compile } */
! /* { dg-options "-std=gnu99 -Wformat -Wmissing-format-attribute" } */
  
  #include "format.h"
  
--- 2,8 ----
     relevant parameters for a format attribute; see c/1017.  */
  /* Origin: Joseph Myers <jsm28@cam.ac.uk> */
  /* { dg-do compile } */
! /* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
  
  #include "format.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-3.c	Tue Jul 19 12:09:49 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
+ 
+ #include "format.h"
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ void
+ foo1 (noattr_t na, attr_t a, vnoattr_t vna, vattr_t va)
+ {
+   noattr_t na1 = na;
+   noattr_t na2 = a; /* { dg-warning "candidate" "initialization warning" } */
+   attr_t a1 = na;
+   attr_t a2 = a;
+   
+   vnoattr_t vna1 = vna;
+   vnoattr_t vna2 = va; /* { dg-warning "candidate" "initialization warning" } */
+   vattr_t va1 = vna;
+   vattr_t va2 = va;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-4.c	Tue Jul 19 12:09:49 2005
***************
*** 0 ****
--- 1,32 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
+ 
+ #include "format.h"
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ void
+ foo1 (noattr_t na, attr_t a, vnoattr_t vna, vattr_t va)
+ {
+   noattr_t na1, na2;
+   attr_t a1, a2;
+   
+   vnoattr_t vna1, vna2;
+   vattr_t va1, va2;
+ 
+   na1 = na;
+   na2 = a; /* { dg-warning "candidate" "assignment warning" } */
+   a1 = na;
+   a2 = a;
+   
+   vna1 = vna;
+   vna2 = va; /* { dg-warning "candidate" "assignment warning" } */
+   va1 = vna;
+   va1 = va;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-5.c	Tue Jul 19 12:09:49 2005
***************
*** 0 ****
--- 1,48 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
+ 
+ #include "format.h"
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ noattr_t
+ foo1 (noattr_t na, attr_t a, int i)
+ {
+   if (i)
+     return na;
+   else
+     return a; /* { dg-warning "candidate" "return type warning" } */
+ }
+ 
+ attr_t
+ foo2 (noattr_t na, attr_t a, int i)
+ {
+   if (i)
+     return na;
+   else
+     return a;
+ }
+ 
+ vnoattr_t
+ foo3 (vnoattr_t vna, vattr_t va, int i)
+ {
+   if (i)
+     return vna;
+   else
+     return va; /* { dg-warning "candidate" "return type warning" } */
+ }
+ 
+ vattr_t
+ foo4 (vnoattr_t vna, vattr_t va, int i)
+ {
+   if (i)
+     return vna;
+   else
+     return va;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/miss-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/miss-6.c	Tue Jul 19 12:09:49 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Test warnings for missing format attributes on function pointers.  */
+ /* Origin: Kaveh Ghazi <ghazi@caip.rutgers.edu> */
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu99 -Wmissing-format-attribute" } */
+ 
+ #include "format.h"
+ 
+ typedef void (*noattr_t) (const char *, ...);
+ typedef noattr_t __attribute__ ((__format__(__printf__, 1, 2))) attr_t;
+ 
+ typedef void (*vnoattr_t) (const char *, va_list);
+ typedef vnoattr_t __attribute__ ((__format__(__printf__, 1, 0))) vattr_t;
+ 
+ extern void foo1 (noattr_t);
+ extern void foo2 (attr_t);
+ extern void foo3 (vnoattr_t);
+ extern void foo4 (vattr_t);
+ 
+ void
+ foo (noattr_t na, attr_t a, vnoattr_t vna, vattr_t va)
+ {
+   foo1 (na);
+   foo1 (a); /* { dg-warning "candidate" "parameter passing warning" } */
+   foo2 (na);
+   foo2 (a);
+   
+   foo3 (vna);
+   foo3 (va); /* { dg-warning "candidate" "parameter passing warning" } */
+   foo4 (vna);
+   foo4 (va);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/opt-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/opt-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/opt-6.c	Sun Nov 28 02:16:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/opt-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,7 ****
- /* Test diagnostics for options used on their own without
-    -Wformat.  -Wmissing-format-attribute.  */
- /* Origin: Joseph Myers <joseph@codesourcery.com> */
- /* { dg-do compile } */
- /* { dg-options "-Wmissing-format-attribute" } */
- 
- /* { dg-warning "warning: -Wmissing-format-attribute ignored without -Wformat" "ignored" { target *-*-* } 0 } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/format/unnamed-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/format/unnamed-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/format/unnamed-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/format/unnamed-1.c	Sat Dec 10 13:47:29 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Test for warnings with possibly unnamed integer types.  Bug 24329.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wformat" } */
+ /* { dg-options "-Wformat -msse" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ 
+ 
+ #include "format.h"
+ 
+ /* Definition of TItype follows same logic as in gcc.dg/titype-1.c,
+    but must be a #define to avoid giving the type a name.  */
+ #if defined(__LP64__) && !defined(__hppa__)
+ #define TItype int __attribute__ ((mode (TI)))
+ #else
+ #define TItype long
+ #endif
+ 
+ void
+ f (TItype x)
+ {
+   printf("%d", x); /* { dg-warning "expects type" } */
+   printf("%d", 141592653589793238462643383279502884197169399375105820974944); /* { dg-warning "expects type" } */
+   /* { dg-warning "unsigned only|too large" "constant" { target *-*-* } 22 } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/framework-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/framework-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/framework-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/framework-2.c	Fri Apr 15 01:55:58 2005
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-F$srcdir/gcc.dg" } */
+ 
+ #include <Foundation/Foundation.h> /* { dg-error "error: Foundation/Foundation.h: No such file" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/hex-round-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/hex-round-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/hex-round-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/hex-round-1.c	Fri Jul 29 21:14:22 2005
***************
*** 0 ****
--- 1,113 ----
+ /* Test for hexadecimal float rounding: bug 21720.  */
+ /* { dg-do link } */
+ /* { dg-options "-O -std=gnu99" } */
+ 
+ #include <float.h>
+ 
+ extern void link_failure (void);
+ 
+ int
+ main (void)
+ {
+ #if FLT_RADIX == 2 && FLT_MANT_DIG == 24
+   if (0x1.0000011p0f == 1)
+     link_failure ();
+   if (0x1.00000101p0f == 1)
+     link_failure ();
+   if (0x1.000001001p0f == 1)
+     link_failure ();
+   if (0x1.0000010001p0f == 1)
+     link_failure ();
+   if (0x1.00000100001p0f == 1)
+     link_failure ();
+   if (0x1.000001000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.00000100000000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.000001000000000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+   if (0x1.0000010000000000000000000000000000000000000000000000001p0f == 1)
+     link_failure ();
+ #endif
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/hex-round-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/hex-round-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/hex-round-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/hex-round-2.c	Fri Jul 29 21:14:22 2005
***************
*** 0 ****
--- 1,114 ----
+ /* Test for hexadecimal float rounding: bug 21720.  Test with no "."
+    in number.  */
+ /* { dg-do link } */
+ /* { dg-options "-O -std=gnu99" } */
+ 
+ #include <float.h>
+ 
+ extern void link_failure (void);
+ 
+ int
+ main (void)
+ {
+ #if FLT_RADIX == 2 && FLT_MANT_DIG == 24
+   if (0x10000011p-28f == 1)
+     link_failure ();
+   if (0x100000101p-32f == 1)
+     link_failure ();
+   if (0x1000001001p-36f == 1)
+     link_failure ();
+   if (0x10000010001p-40f == 1)
+     link_failure ();
+   if (0x100000100001p-44f == 1)
+     link_failure ();
+   if (0x1000001000001p-48f == 1)
+     link_failure ();
+   if (0x10000010000001p-52f == 1)
+     link_failure ();
+   if (0x100000100000001p-56f == 1)
+     link_failure ();
+   if (0x1000001000000001p-60f == 1)
+     link_failure ();
+   if (0x10000010000000001p-64f == 1)
+     link_failure ();
+   if (0x100000100000000001p-68f == 1)
+     link_failure ();
+   if (0x1000001000000000001p-72f == 1)
+     link_failure ();
+   if (0x10000010000000000001p-76f == 1)
+     link_failure ();
+   if (0x100000100000000000001p-80f == 1)
+     link_failure ();
+   if (0x1000001000000000000001p-84f == 1)
+     link_failure ();
+   if (0x10000010000000000000001p-88f == 1)
+     link_failure ();
+   if (0x100000100000000000000001p-92f == 1)
+     link_failure ();
+   if (0x1000001000000000000000001p-96f == 1)
+     link_failure ();
+   if (0x10000010000000000000000001p-100f == 1)
+     link_failure ();
+   if (0x100000100000000000000000001p-104f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000001p-108f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000001p-112f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000001p-116f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000001p-120f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000001p-124f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000001p-128f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000001p-132f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000001p-136f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000001p-140f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000001p-144f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000001p-148f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000000001p-152f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000000001p-156f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000000001p-160f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000000000001p-164f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000000000001p-168f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000000000001p-172f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000000000000001p-176f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000000000000001p-180f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000000000000001p-184f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000000000000000001p-188f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000000000000000001p-192f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000000000000000001p-196f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000000000000000000001p-200f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000000000000000000001p-204f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000000000000000000001p-208f == 1)
+     link_failure ();
+   if (0x100000100000000000000000000000000000000000000000000001p-212f == 1)
+     link_failure ();
+   if (0x1000001000000000000000000000000000000000000000000000001p-216f == 1)
+     link_failure ();
+   if (0x10000010000000000000000000000000000000000000000000000001p-220f == 1)
+     link_failure ();
+ #endif
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* Verify that -mno-fancy-math-387 works.  */
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
- /* { dg-final { scan-assembler "call\t_?sin" } } */
- /* { dg-final { scan-assembler "call\t_?cos" } } */
- /* { dg-final { scan-assembler "call\t_?sqrt" } } */
- /* { dg-final { scan-assembler "call\t_?atan2" } } */
- /* { dg-final { scan-assembler "call\t_?log" } } */
- /* { dg-final { scan-assembler "call\t_?exp" } } */
- /* { dg-final { scan-assembler "call\t_?tan" } } */
- /* { dg-final { scan-assembler "call\t_?fmod" } } */
- 
- double f1(double x) { return __builtin_sin(x); }
- double f2(double x) { return __builtin_cos(x); }
- double f3(double x) { return __builtin_sqrt(x); }
- double f4(double x, double y) { return __builtin_atan2(x,y); }
- double f5(double x) { return __builtin_log(x); }
- double f6(double x) { return __builtin_exp(x); }
- double f7(double x) { return __builtin_tan(x); }
- double f8(double x, double y) { return __builtin_fmod(x,y); }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* Verify that -march overrides -mno-fancy-math-387.  */
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O -ffast-math -mfpmath=387 -march=i686 -mno-fancy-math-387" } */
- /* { dg-final { scan-assembler "fsin" } } */
- /* { dg-final { scan-assembler "fcos" } } */
- /* { dg-final { scan-assembler "fsqrt" } } */
- /* { dg-final { scan-assembler "fpatan" } } */
- /* { dg-final { scan-assembler "fyl2x" } } */
- /* { dg-final { scan-assembler "f2xm1" } } */
- /* { dg-final { scan-assembler "fptan" } } */
- /* { dg-final { scan-assembler "fprem" } } */
- 
- double f1(double x) { return __builtin_sin(x); }
- double f2(double x) { return __builtin_cos(x); }
- double f3(double x) { return __builtin_sqrt(x); }
- double f4(double x, double y) { return __builtin_atan2(x,y); }
- double f5(double x) { return __builtin_log(x); }
- double f6(double x) { return __builtin_exp(x); }
- double f7(double x) { return __builtin_tan(x); }
- double f8(double x, double y) { return __builtin_fmod(x,y); }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-3.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* Verify that 387 mathematical constants are recognized.  */
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=i686" } */
- /* { dg-final { scan-assembler "fldpi" } } */
- 
- long double add_pi(long double x)
- {
-   return x + 3.1415926535897932385128089594061862044L;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-4.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=i686" } */
- /* { dg-final { scan-assembler "fldpi" } } */
- 
- long double atanl (long double);
- 
- long double pi()
- {
-   return 4.0 * atanl (1.0);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-5.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* Verify that -mno-fancy-math-387 works.  */
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
- /* { dg-final { scan-assembler "call\t_?atan" } } */
- /* { dg-final { scan-assembler "call\t_?log1p" } } */
- /* { dg-final { scan-assembler "call\t_?drem" } } */
- 
- double f1(double x) { return __builtin_atan(x); }
- double f2(double x) { return __builtin_log1p(x); }
- double f3(double x, double y) { return __builtin_drem(x,y); }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-6.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* Verify that -march overrides -mno-fancy-math-387.  */
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O -ffast-math -mfpmath=387 -march=i686 -mno-fancy-math-387" } */
- /* { dg-final { scan-assembler "fpatan" } } */
- /* { dg-final { scan-assembler "fyl2xp1" } } */
- /* { dg-final { scan-assembler "fprem1" } } */
- 
- double f1(double x) { return __builtin_atan(x); }
- double f2(double x) { return __builtin_log1p(x); }
- double f3(double x, double y) { return __builtin_drem(x,y); }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-7.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* 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" } } */
- 
- extern double sin (double);
- extern double cos (double);
- 
- double f1(double x)
- {
-   return sin(x) + cos (x);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-387-8.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-387-8.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* Verify that 387 fptan instruction is generated. Also check fptan
-    peephole2 optimizer.  */
- /* { dg-do compile { target "i?86-*-*" } } */
- /* { dg-options "-O2 -ffast-math -march=i686" } */
- /* { dg-final { scan-assembler "fptan" } } */
- /* { dg-final { scan-assembler-not "fld1" } } */
- 
- extern double tan (double);
- 
- double f1(double x)
- {
-   return 1.0 / tan(x);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnow-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnow-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnow-1.c	Sat Jul 10 00:27:59 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnow-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow" } */
- 
- /* Test that the intrinsics compile with optimization.  All of them are
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <mm3dnow.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnow-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnow-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnow-2.c	Sat Jul 10 00:27:59 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnow-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow" } */
- 
- /* Test that the intrinsics compile without optimization.  All of them are
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <mm3dnow.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnowA-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnowA-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnowA-1.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnowA-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { 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
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <mm3dnow.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnowA-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnowA-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-3dnowA-2.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-3dnowA-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* { 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
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <mm3dnow.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,26 ****
- /* PR inline-asm/11676 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2" } */
- 
- extern void abort (void);
- static int bar(int x) __asm__("bar") __attribute__((regparm(1)));
- static int __attribute__((regparm(1), noinline, used))
- bar(int x)
- {
-   if (x != 0)
-     abort ();
- }
- 
- static int __attribute__((regparm(1), noinline))
- foo(int x)
- {
-   x = 0;
-   __asm__ __volatile__("call bar" : "=a"(x) : "a"(x));
- }
- 
- int main()
- {
-   foo(1);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-2.c	Wed Mar  3 18:31:36 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,61 ****
- /* PR opt/13862 */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O" } */
- 
- typedef struct _fame_syntax_t_ {
- } fame_syntax_t;
- 
- typedef struct _fame_bitbuffer_t_
- {
-   unsigned char * base;
-   unsigned char * data;
-   unsigned long shift;
- } fame_bitbuffer_t;
- 
- #define fast_bitbuffer_write(data, shift, c, l)				\
- {									\
-   int d;								\
- 									\
-   asm("add %1, %%ecx\n"            /* ecx = shift + length */		\
-       "shrd %%cl, %2, %3\n"        /* adjust code to fit in */		\
-       "shr %%cl, %2\n"             /* adjust code to fit in */		\
-       "mov %%ecx, %1\n"            /* shift += length */		\
-       "bswap %2\n"                 /* reverse byte order of code */	\
-       "shr $5, %%ecx\n"            /* get dword increment */            \
-       "or %2, (%0)\n"              /* put first 32 bits */		\
-       "bswap %3\n"                 /* reverse byte order of code */	\
-       "lea   (%0, %%ecx, 4), %0\n" /* data += (ecx>32) */		\
-       "andl $31, %1\n"             /* mask shift */			\
-       "orl %3, (%0)\n"             /* put last 32 bits */		\
-       : "=r"(data), "=r"(shift), "=a"(d), "=d"(d), "=c"(d)		\
-       : "0"(data), "1"(shift), "2"((unsigned long) c), "3"(0),		\
- 	"c"((unsigned long) l)						\
-       : "memory");							\
- }
- 
- #define bitbuffer_write(bb, c, l) \
-   fast_bitbuffer_write((bb)->data, (bb)->shift, c, l)
- 
- typedef enum { frame_type_I, frame_type_P } frame_type_t;
- 
- typedef struct _fame_syntax_mpeg1_t_ {
-   fame_bitbuffer_t buffer;
-   frame_type_t frame_type;
- } fame_syntax_mpeg1_t;
- 
- #define FAME_SYNTAX_MPEG1(x) ((fame_syntax_mpeg1_t *) x)
- 
- void mpeg1_start_picture(fame_syntax_t *syntax)
- {
-   fame_syntax_mpeg1_t *syntax_mpeg1 = FAME_SYNTAX_MPEG1(syntax);
-   bitbuffer_write(&syntax_mpeg1->buffer, 0xFFFF, 16); 
- 
-   switch(syntax_mpeg1->frame_type) {
-     case frame_type_I:
-       bitbuffer_write(&syntax_mpeg1->buffer, 0, 1);  
-     break;
-     case frame_type_P:
-       bitbuffer_write(&syntax_mpeg1->buffer, 0, 1);
-     break;
-   }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-3.c	Mon Sep 13 09:05:31 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* PR inline-asm/6806 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- extern void abort (void);
- 
- volatile int out = 1;
- volatile int a = 2;
- volatile int b = 4;
- volatile int c = 8;
- volatile int d = 16;
- volatile int e = 32;
- volatile int f = 64;
- 
- int
- main ()
- {
-   asm volatile ("xorl %%eax, %%eax	\n\t"
- 		"xorl %%esi, %%esi	\n\t"
- 		"addl %1, %0		\n\t"
- 		"addl %2, %0		\n\t"
- 		"addl %3, %0		\n\t"
- 		"addl %4, %0		\n\t"
- 		"addl %5, %0		\n\t"
- 		"addl %6, %0"
- 		: "+r" (out)
- 		: "r" (a), "r" (b), "r" (c), "g" (d), "g" (e), "g" (f)
- 		: "%eax", "%esi");
- 
-   if (out != 127)
-     abort ();
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-asm-4.c	Fri Jan 14 10:45:54 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-asm-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- /* Test if functions marked __attribute__((used)), but with address never
-    taken in C code, don't use alternate calling convention for local
-    functions on IA-32.  */
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2" } */
- 
- extern void abort (void);
- 
- static int foo (int, int, int, int) __asm ("foo");
- static __attribute__((noinline, used)) int
- foo (int i, int j, int k, int l)
- {
-   return i + j + k + l;
- }
- 
- void
- bar (void)
- {
-   if (foo (1, 2, 3, 4) != 10)
-     abort ();
- }
- 
- int (*fn) (int, int, int, int);
- 
- void
- baz (void)
- {
-   __asm ("movl $foo, %k0" : "=r" (fn));
-   if (fn (2, 3, 4, 5) != 14)
-     abort ();
- }
- 
- int
- main (void)
- {
-   bar ();
-   baz ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-bitfield1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-bitfield1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-bitfield1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-bitfield1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,55 ****
- // Test for bitfield alignment in structs on IA-32
- // { dg-do run { target i?86-*-* } }
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- // { dg-options "-O2" }
- // { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-interix* i?86-*-cygwin* i?86-*-mingw*} }
- 
- extern void abort (void);
- extern void exit (int);
- 
- struct A
- {
-   char a;
-   long long b : 61;
-   char c;
- } a, a4[4];
- 
- struct B
- {
-   char d;
-   struct A e;
-   char f;
- } b;
- 
- struct C
- {
-   char g;
-   union U
-   {
-     char u1;
-     long long u2;
-     long long u3 : 64;
-   } h;
-   char i;
- } c;
- 
- int main (void)
- {
-   if (&a.c - &a.a != 12)
-     abort ();
-   if (sizeof (a) != 16)
-     abort ();
-   if (sizeof (a4) != 4 * 16)
-     abort ();
-   if (sizeof (b) != 2 * 4 + 16)
-     abort ();
-   if (__alignof__ (b.e) != 4)
-     abort ();
-   if (&c.i - &c.g != 12)
-     abort ();
-   if (sizeof (c) != 16)
-     abort ();
-   if (__alignof__ (c.h) != 4)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-bitfield2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-bitfield2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-bitfield2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-bitfield2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- // Test for bitfield alignment in structs on IA-32
- // { dg-do run { target i?86-*-* } }
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- // { dg-options "-O2" }
- // { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-interix* i?86-*-cygwin* i?86-*-mingw* } }
- 
- extern void abort (void);
- extern void exit (int);
- 
- struct X {
-   char a;
-   long long : 0;
-   char b;
- } x;
- 
- int main () {
-   if (&x.b - &x.a != 4)
-     abort ();
-   if (sizeof (x) != 5)
-     abort ();
-   
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-bitfield3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-bitfield3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-bitfield3.c	Mon Dec 23 16:38:43 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-bitfield3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- // Test for bitfield alignment in structs on IA-32
- // { dg-do run { target i?86-*-* } }
- // { dg-options "-O2" }
- // { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix* } }
- 
- extern void abort (void);
- extern void exit (int);
- 
- struct X {
-   int : 32;
- };
- 
- struct Y {
-   int i : 32;
- };
- 
- int main () {
-   if (__alignof__(struct X) != 1)
-     abort ();
-   if (__alignof__(struct Y) != 4)
-     abort ();
-   
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cadd.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cadd.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cadd.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cadd.c	Thu Jan  1 00:00:00 1970
***************
*** 1,24 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "sbb" } } */
- 
- extern void abort (void);
- 
- /* Conditional increment is best done using sbb $-1, val.  */
- int t[]={0,0,0,0,1,1,1,1,1,1};
- q()
- {
-   int sum=0;
-   int i;
-   for (i=0;i<10;i++)
-     if (t[i])
-        sum++;
-   if (sum != 6)
-     abort ();
- }
- main()
- {
-   int i;
-   for (i=0;i<10000000;i++)
-     q();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-call-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-call-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-call-1.c	Thu Jul  3 17:57:45 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-call-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- /* PR optimization/11304 */
- /* Originator: <manuel.serrano@sophia.inria.fr> */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O -fomit-frame-pointer" } */
- 
- /* Verify that %eax is always restored after a call.  */
- 
- extern void abort(void);
- 
- volatile int r;
- 
- void set_eax(int val)
- {
-   __asm__ __volatile__ ("mov %0, %%eax" : : "m" (val));
- }
- 
- void foo(int val)
- {
-   r = val;
- }
- 
- int bar(int x)
- {
-   if (x)
-   {
-     set_eax(0);
-     return x;
-   }
- 
-   foo(x);
- }
- 
- int main(void)
- {
-   if (bar(1) != 1)
-     abort();
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov1.c	Sun Jun  8 14:50:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "sar\[^\\n\]*magic_namea" } } */
- /* { dg-final { scan-assembler "sar\[^\\n\]*magic_nameb" } } */
- /* { dg-final { scan-assembler "sar\[^\\n\]*magic_namec" } } */
- /* { dg-final { scan-assembler "shr\[^\\n\]*magic_named" } } */
- /* { dg-final { scan-assembler "shr\[^\\n\]*magic_namee" } } */
- /* { dg-final { scan-assembler "shr\[^\\n\]*magic_namef" } } */
- 
- /* Check code generation for several conditional moves doable by single arithmetics.  */
- 
- int magic_namea;
- char magic_nameb;
- short magic_namec;
- int magic_named;
- char magic_namee;
- short magic_namef;
- 
- unsigned int gen;
- m()
- {
-   magic_namec=magic_namec>=0?0:-1;
-   magic_namea=magic_namea>=0?0:-1;
-   magic_nameb=magic_nameb>=0?0:-1;
-   magic_named=magic_named>=0?0:1;
-   magic_namee=magic_namee>=0?0:1;
-   magic_namef=magic_namef>=0?0:1;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov2.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "sbb" } } */
- 
- /* This conditional move is fastest to be done using sbb.  */
- t(unsigned int a, unsigned int b)
- {
-   return (a<=b?5:-5);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov3.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "cmov" } } */
- 
- /* This conditional move is fastest to be done using cmov.  */
- t(int a, int b)
- {
-   return (a<=b?5:-5);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov4.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "cmov" } } */
- 
- /* Verify that if conversion happends for memory references.  */
- int ARCHnodes;
- int *nodekind;
- float *nodekindf;
- t()
- {
- int i;
- /* Redefine nodekind to be 1 for all surface nodes */
- 
-   for (i = 0; i < ARCHnodes; i++) {
-     nodekind[i] = (int) nodekindf[i];
-     if (nodekind[i] == 3)
-       nodekind[i] = 1;
-   }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov5.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cmov5.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cmov5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "sbb" } } */
- 
- int
- t(float a, float b)
- {
- 	return a<=b?0:-1;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cvt-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cvt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-cvt-1.c	Sun Jun  8 14:50:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-cvt-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8 -mfpmath=sse" } */
- /* { dg-final { scan-assembler "cvttsd2si\[^\\n\]*xmm" } } */
- /* { dg-final { scan-assembler "cvttss2si\[^\\n\]*xmm" } } */
- int a,a1;
- double b;
- float b1;
- t()
- {
- 	a=b;
- 	a1=b1;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-darwin-fpmath.c	Tue Apr 12 02:10:57 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target i?86-*-darwin* } } */
+ /* { dg-final { scan-assembler "addsd" } } */
+ /* Do not add -msse or -msse2 or -mfpmath=sse to the options.  GCC is
+    supposed to use SSE math on Darwin by default, and libm won't work
+    right if it doesn't.  */
+ double foo(double x, double y)
+ {
+   return x + y;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fastcall-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fastcall-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fastcall-1.c	Thu Dec 19 22:00:31 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fastcall-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile { target i386-pc-mingw32* i386-pc-cygwin* } } */
- 
- void
- __attribute__ ((fastcall))
- f1() { }
- 
- void
- _fastcall
- f2() { }
- 
- void
- __fastcall
- f3() { }
- 
- int
- __attribute__ ((fastcall))
- f4(int x, int y, int z) { }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-1.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,8 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler-not "cvtss2sd" } } */
- float a,b;
- main()
- {
-   a=b*3.0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-2.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,8 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler-not "cvtss2sd" } } */
- float a,b;
- main()
- {
- 	return a<0.0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-3.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler-not "cvtss2sd" } } */
- extern double fabs (double);
- float a,b;
- main()
- {
- 	a=fabs(b)+1.0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-fpcvt-4.c	Mon Feb 10 12:12:56 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-fpcvt-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8 -mfpmath=sse" } */
- /* { dg-final { scan-assembler "cvtsi2sd" } } */
- /* Check that conversions will get folded.  */
- double
- t(short a)
- {
-   float b=a;
-   return b;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-local.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-local.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-local.c	Fri Jan  7 06:49:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-local.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -funit-at-a-time" } */
- /* { dg-final { scan-assembler "magic\[^\\n\]*eax" { target ilp32 } } } */
- /* { dg-final { scan-assembler "magic\[^\\n\]*edi" { target lp64 } } } */
- 
- /* Verify that local calling convention is used.  */
- static t(int) __attribute__ ((noinline));
- m()
- {
- 	t(1);
- }
- static t(int a)
- {
- 	asm("magic %0"::"g"(a));
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-local2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-local2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-local2.c	Sun Jun  8 14:50:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-local2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -funit-at-a-time -fomit-frame-pointer" } */
- /* { dg-final { scan-assembler-not "sub\[^\\n\]*sp" } } */
- 
- static __attribute__ ((noinline)) q ();
- int a;
- 
- /* This function should not require any stack manipulation
-    for preferred stack bounday.  */
- void
- e ()
- {
-   if (a)
-   {
-     e ();
-     a--;
-   }
-   q ();
- }
- 
- static __attribute__ ((noinline)) q ()
- {
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-loop-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-loop-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-loop-1.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-loop-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,106 ****
- /* PR optimization/9888 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-xfail-if "" { *-*-* } { "-m64" } { "" } } */
- /* { dg-options "-mtune=k6 -O3" } */
- 
- /* Verify that GCC doesn't emit out of range 'loop' instructions.  */
- 
- extern void abort (void);
- extern void exit (int);
- 
-    
- f1 (a)
-      long a;
- {
-   int i;
-   for (i = 0; i < 10; i++)
-     {
-       if (--a == -1)
- 	return i;
-     }
-   return -1;
- }
- 
- f2 (a)
-      long a;
- {
-   int i;
-   for (i = 0; i < 10; i++)
-     {
-       if (--a != -1)
- 	return i;
-     }
-   return -1;
- }
- 
- f3 (a)
-      long a;
- {
-   int i;
-   for (i = 0; i < 10; i++)
-     {
-       if (--a == 0)
- 	return i;
-     }
-   return -1;
- }
- 
- f4 (a)
-      long a;
- {
-   int i;
-   for (i = 0; i < 10; i++)
-     {
-       if (--a != 0)
- 	return i;
-     }
-   return -1;
- }
- 
- f5 (a)
-      long a;
- {
-   int i;
-   for (i = 0; i < 10; i++)
-     {
-       if (++a == 0)
- 	return i;
-     }
-   return -1;
- }
- 
- f6 (a)
-      long a;
- {
-   int i;
-   for (i = 0; i < 10; i++)
-     {
-       if (++a != 0)
- 	return i;
-     }
-   return -1;
- }
- 
- 
- int main()
- {
-   if (f1 (5L) != 5)
-     abort ();
-   if (f2 (1L) != 0)
-     abort ();
-   if (f2 (0L) != 1)
-     abort ();
-   if (f3 (5L) != 4)
-     abort ();
-   if (f4 (1L) != 1)
-     abort ();
-   if (f4 (0L) != 0)
-     abort ();
-   if (f5 (-5L) != 4)
-     abort ();
-   if (f6 (-1L) != 1)
-     abort ();
-   if (f6 (0L) != 0)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-loop-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-loop-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-loop-2.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-loop-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,81 ****
- /* PR optimization/9888 */
- /* Originator: Jim Bray <jb@as220.org> */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-mtune=k6 -Os" } */
- 
- enum reload_type
- {
-   RELOAD_FOR_INPUT, RELOAD_FOR_OUTPUT, RELOAD_FOR_INSN,
-   RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INPADDR_ADDRESS,
-   RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS,
-   RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OPADDR_ADDR,
-   RELOAD_OTHER, RELOAD_FOR_OTHER_ADDRESS
- };
- 
- #define FOO_SIZE 3
- 
- /* My results, varying with FOO_SIZE:
-    30: asm error "value of ..fff77 too large:
-    3 to 29: ....ff7d...
-    1 to 2: no error.  */
- 
- struct reload
- {
-    int foo[FOO_SIZE];
-    int opnum; 
-    enum reload_type when_needed;
-    unsigned int optional:1; 
-    unsigned int secondary_p:1;
- };
- 
- #define N_RELOADS  2
- 
- struct reload rld[N_RELOADS];
- int n_reloads = N_RELOADS;
- 
- int main(void)
- {
-   int i;
- 
-   enum reload_type operand_type[1];
- 
-   enum reload_type address_type[1];
- 
-   int operand_reloadnum[1];
-   int goal_alternative_matches[1];
- 
-   for (i = 0; i < n_reloads; i++)
-     {
-       if (rld[i].secondary_p
-           && rld[i].when_needed == operand_type[rld[i].opnum])
-         rld[i].when_needed = address_type[rld[i].opnum];
- 
-       if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS
-            || rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
-            || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS
-            || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
-           && (operand_reloadnum[rld[i].opnum] < 0
-               || rld[operand_reloadnum[rld[i].opnum]].optional))
-         {
- 
-           if (rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS
-               || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
-             rld[i].when_needed = RELOAD_FOR_OPADDR_ADDR;
-           else
-             rld[i].when_needed = RELOAD_FOR_OPERAND_ADDRESS;
-         }
- 
-       if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS
-            || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS)
-           && operand_reloadnum[rld[i].opnum] >= 0
-           && (rld[operand_reloadnum[rld[i].opnum]].when_needed
-               == RELOAD_OTHER))
-         rld[i].when_needed = RELOAD_FOR_OTHER_ADDRESS;
- 
-       if (goal_alternative_matches[rld[i].opnum] >= 0)
-         rld[i].opnum = goal_alternative_matches[rld[i].opnum];
-     }
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-loop-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-loop-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-loop-3.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-loop-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,80 ****
- /* PR target/11044 */
- /* Originator: Tim McGrath <misty-@charter.net> */
- /* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */
- 
- extern void *memset (void *, int, __SIZE_TYPE__);
- extern void abort (void);
- 
- typedef struct
- {
-         unsigned char colormod;
- } entity_state_t;
- 
- typedef struct
- {
-         int num_entities;
-         entity_state_t *entities;
- } packet_entities_t;
- 
- typedef struct
- {
-         double senttime;
-         float ping_time;
-         packet_entities_t entities;
- } client_frame_t;
- 
- typedef enum
- {
-         cs_free,
-         cs_server,
-         cs_zombie,
-         cs_connected,
-         cs_spawned
- } sv_client_state_t;
- 
- typedef struct client_s
- {
-         sv_client_state_t state;
-         int ping;
-         client_frame_t frames[64];
- } client_t;
- 
- int CalcPing (client_t *cl)
- {
-         float ping;
-         int count, i;
-         register client_frame_t *frame;
- 
-         if (cl->state == cs_server)
-                 return cl->ping;
-         ping = 0;
-         count = 0;
-         for (frame = cl->frames, i = 0; i < 64; i++, frame++) {
-                 if (frame->ping_time > 0) {
-                         ping += frame->ping_time;
-                         count++;
-                 }
-         }
-         if (!count)
-                 return 9999;
-         ping /= count;
- 
-         return ping * 1000;
- }
- 
- int main(void)
- {
-    client_t cl;
- 
-    memset(&cl, 0, sizeof(cl));
- 
-    cl.frames[0].ping_time = 1.0f;
- 
-    if (CalcPing(&cl) != 1000)
-      abort();
- 
-    return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-memset-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-memset-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-memset-1.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-memset-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,104 ****
- /* Copyright (C) 2002  Free Software Foundation.
- 
-    Test -minline-all-stringops memset with various combinations of pointer
-    alignments and lengths to make sure builtin optimizations are correct.
-    PR target/6456.
- 
-    Written by Michael Meissner, March 9, 2002.
-    Target by Roger Sayle, April 25, 2002.  */
- 
- /* { dg-do run { target "i?86-*-*" } } */
- /* { dg-options "-O2 -minline-all-stringops" } */
- 
- extern void *memset (void *, int, __SIZE_TYPE__);
- extern void abort (void);
- extern void exit (int);
- 
- #ifndef MAX_OFFSET
- #define MAX_OFFSET (sizeof (long long))
- #endif
- 
- #ifndef MAX_COPY
- #define MAX_COPY (8 * sizeof (long long))
- #endif
- 
- #ifndef MAX_EXTRA
- #define MAX_EXTRA (sizeof (long long))
- #endif
- 
- #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
- 
- static union {
-   char buf[MAX_LENGTH];
-   long long align_int;
-   long double align_fp;
- } u;
- 
- char A = 'A';
- 
- main ()
- {
-   int off, len, i;
-   char *p, *q;
- 
-   for (off = 0; off < MAX_OFFSET; off++)
-     for (len = 1; len < MAX_COPY; len++)
-       {
- 	for (i = 0; i < MAX_LENGTH; i++)
- 	  u.buf[i] = 'a';
- 
- 	p = memset (u.buf + off, '\0', len);
- 	if (p != u.buf + off)
- 	  abort ();
- 
- 	q = u.buf;
- 	for (i = 0; i < off; i++, q++)
- 	  if (*q != 'a')
- 	    abort ();
- 
- 	for (i = 0; i < len; i++, q++)
- 	  if (*q != '\0')
- 	    abort ();
- 
- 	for (i = 0; i < MAX_EXTRA; i++, q++)
- 	  if (*q != 'a')
- 	    abort ();
- 
- 	p = memset (u.buf + off, A, len);
- 	if (p != u.buf + off)
- 	  abort ();
- 
- 	q = u.buf;
- 	for (i = 0; i < off; i++, q++)
- 	  if (*q != 'a')
- 	    abort ();
- 
- 	for (i = 0; i < len; i++, q++)
- 	  if (*q != 'A')
- 	    abort ();
- 
- 	for (i = 0; i < MAX_EXTRA; i++, q++)
- 	  if (*q != 'a')
- 	    abort ();
- 
- 	p = memset (u.buf + off, 'B', len);
- 	if (p != u.buf + off)
- 	  abort ();
- 
- 	q = u.buf;
- 	for (i = 0; i < off; i++, q++)
- 	  if (*q != 'a')
- 	    abort ();
- 
- 	for (i = 0; i < len; i++, q++)
- 	  if (*q != 'B')
- 	    abort ();
- 
- 	for (i = 0; i < MAX_EXTRA; i++, q++)
- 	  if (*q != 'a')
- 	    abort ();
-       }
- 
-   exit(0);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-1.c	Tue Jan 15 06:17:04 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -mmmx" } */
- 
- /* Test that the intrinsics compile with optimization.  All of them are
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <mmintrin.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-2.c	Tue Jan 15 06:17:04 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O0 -mmmx" } */
- 
- /* Test that the intrinsics compile without optimization.  All of them are
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <mmintrin.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-3.c	Tue Mar 16 20:37:29 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* PR target/8870 */
- /* Originator: otaylor@redhat.com */
- /* { dg-do compile { target i?86-*-* x86_64-*-*} } */
- /* { dg-options "-O1 -mmmx -march=k8" } */
- 
- typedef short v4hi __attribute__ ((vector_size (8)));
- 
- static inline v4hi cvtsi_v4hi (int i)
- {
-   long long tmp = i;
-   return (v4hi) tmp;
- }
- 
- v4hi bar (unsigned short a)
- {
-   return cvtsi_v4hi (a);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-4.c	Tue Feb 17 17:12:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,245 ****
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -mmmx" } */
- #include <mmintrin.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "i386-cpuid.h"
- 
- #ifndef NOINLINE
- #define NOINLINE __attribute__ ((noinline))
- #endif
- 
- #define SHIFT (4)
- 
- typedef union {
-   __m64 v;
-   unsigned char c[8];
-   unsigned short int s[4];
-   unsigned long long t;
-   unsigned int u[2];
- }vecInWord;
- 
- void mmx_tests (void) NOINLINE;
- void dump64_16 (char *, char *, vecInWord);
- void dump64_32 (char *, char *, vecInWord);
- void dump64_64 (char *, char *, vecInWord);
- int check (const char *, const char *[]);
- 
- char buf[8000];
- char comparison[8000];
- static int errors = 0;
- 
- vecInWord a64, b64, c64, d64, e64;
- __m64 m64_16, s64, m64_32, m64_64;
- 
- const char *reference_mmx[] = {
-   "_mm_srai_pi16 0012 0012 0012 0012 \n",
-   "_mm_sra_pi16 0012 0012 0012 0012 \n",
-   "_mm_srai_pi32 00123456 00123456 \n",
-   "_mm_sra_pi32 00123456 00123456 \n",
-   "_mm_srli_pi16 0012 0012 0012 0012 \n",
-   "_mm_srl_pi16 0012 0012 0012 0012 \n",
-   "_mm_srli_pi32 00123456 00123456 \n",
-   "_mm_srl_pi32 00123456 00123456 \n",
-   "_mm_srli_si64 00123456789abcde\n",
-   "_mm_srl_si64 00123456789abcde\n",
-   "_mm_slli_pi16 1230 1230 1230 1230 \n",
-   "_mm_sll_pi16 1230 1230 1230 1230 \n",
-   "_mm_slli_pi32 12345670 12345670 \n",
-   "_mm_sll_pi32 12345670 12345670 \n",
-   "_mm_slli_si64 123456789abcdef0\n",
-   "_mm_sll_si64 123456789abcdef0\n",
-   ""
- };
- 
- int main()
- {
-   unsigned long cpu_facilities;
- 
-   cpu_facilities = i386_cpuid ();
- 
-   if ((cpu_facilities & bit_MMX) == 0)
-     exit (0);
- 
-   d64.u[0]  = 0x01234567;
-   d64.u[1]  = 0x01234567;
- 
-   m64_32 = d64.v;
- 
-   e64.t  = 0x0123456789abcdefULL;
- 
-   m64_64 = e64.v;
- 
-   a64.s[0] = 0x0123;
-   a64.s[1] = 0x0123;
-   a64.s[2] = 0x0123;
-   a64.s[3] = 0x0123;
- 
-   m64_16 = a64.v;
- 
-   b64.s[0] = SHIFT;
-   b64.s[1] = 0;
-   b64.s[2] = 0;
-   b64.s[3] = 0;
- 
-   s64 = b64.v;
- 
-   if (cpu_facilities & bit_MMX)
-     {
-       mmx_tests();
-       check (buf, reference_mmx);
- #ifdef DEBUG
-       printf ("mmx testing:\n");
-       printf (buf);
-       printf ("\ncomparison:\n");
-       printf (comparison);
- #endif
-       buf[0] = '\0';
-     }
- 
-   if (errors != 0)
-     abort ();
-   exit (0);
- }
- 
- void NOINLINE
- mmx_tests (void)
- {
-   /* psraw */
-   c64.v = _mm_srai_pi16 (m64_16, SHIFT);
-   dump64_16 (buf, "_mm_srai_pi16", c64);
-   c64.v  = _mm_sra_pi16 (m64_16, s64);
-   dump64_16 (buf, "_mm_sra_pi16", c64);
- 
-   /* psrad */
-   c64.v  = _mm_srai_pi32 (m64_32, SHIFT);
-   dump64_32 (buf, "_mm_srai_pi32", c64);
-   c64.v = _mm_sra_pi32 (m64_32, s64);
-   dump64_32 (buf, "_mm_sra_pi32", c64);
- 
-   /* psrlw */
-   c64.v = _mm_srli_pi16 (m64_16, SHIFT);
-   dump64_16 (buf, "_mm_srli_pi16", c64);
-   c64.v = _mm_srl_pi16 (m64_16, s64);
-   dump64_16 (buf, "_mm_srl_pi16", c64);
- 
-   /* psrld */
-   c64.v = _mm_srli_pi32 (m64_32, SHIFT);
-   dump64_32 (buf, "_mm_srli_pi32", c64);
-   c64.v = _mm_srl_pi32 (m64_32, s64);
-   dump64_32 (buf, "_mm_srl_pi32", c64);
- 
-   /* psrlq */
-   c64.v = _mm_srli_si64 (m64_64, SHIFT);
-   dump64_64 (buf, "_mm_srli_si64", c64);
-   c64.v = _mm_srl_si64 (m64_64, s64);
-   dump64_64 (buf, "_mm_srl_si64", c64);
- 
-   /* psllw */
-   c64.v = _mm_slli_pi16 (m64_16, SHIFT);
-   dump64_16 (buf, "_mm_slli_pi16", c64);
-   c64.v = _mm_sll_pi16 (m64_16, s64);
-   dump64_16 (buf, "_mm_sll_pi16", c64);
- 
-   /* pslld */
-   c64.v = _mm_slli_pi32 (m64_32, SHIFT);
-   dump64_32 (buf, "_mm_slli_pi32", c64);
-   c64.v = _mm_sll_pi32 (m64_32, s64);
-   dump64_32 (buf, "_mm_sll_pi32", c64);
- 
-   /* psllq */
-   c64.v = _mm_slli_si64 (m64_64, SHIFT);
-   dump64_64 (buf, "_mm_slli_si64", c64);
-   c64.v = _mm_sll_si64 (m64_64, s64);
-   dump64_64 (buf, "_mm_sll_si64", c64);
- }
- 
- void
- dump64_16 (char *buf, char *name, vecInWord x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=0; i<4; i++)
-     {
-       sprintf (p, "%4.4x ", x.s[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- void
- dump64_32 (char *buf, char *name, vecInWord x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=0; i<2; i++)
-     {
-       sprintf (p, "%8.8x ", x.u[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- void
- dump64_64 (char *buf, char *name, vecInWord x)
- {
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   sprintf (p, "%16.16llx\n", x.t);
- }
- 
- int
- check (const char *input, const char *reference[])
- {
-   int broken, i, j, len;
-   const char *p_input;
-   char *p_comparison;
-   int new_errors = 0;
- 
-   p_comparison = &comparison[0];
-   p_input = input;
- 
-   for (i = 0; *reference[i] != '\0'; i++)
-     {
-       broken = 0;
-       len = strlen (reference[i]);
-       for (j = 0; j < len; j++)
- 	{
- 	  /* Ignore the terminating NUL characters at the end of every string in 'reference[]'.  */
- 	  if (!broken && *p_input != reference[i][j])
- 	    {
- 	      *p_comparison = '\0';
- 	      strcat (p_comparison, " >>> ");
- 	      p_comparison += strlen (p_comparison);
- 	      new_errors++;
- 	      broken = 1;
- 	    }
- 	  *p_comparison = *p_input;
- 	  p_comparison++;
- 	  p_input++;
- 	}
-       if (broken)
- 	{
- 	  *p_comparison = '\0';
- 	  strcat (p_comparison, "expected:\n");
- 	  strcat (p_comparison, reference[i]);
- 	  p_comparison += strlen (p_comparison);
- 	}
-     }
-   *p_comparison = '\0';
-   strcat (p_comparison, new_errors ? "failure\n\n" : "O.K.\n\n") ;
-   errors += new_errors;
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-5.c	Sat Oct  9 19:27:55 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /* PR rtl-optimization/17853 */
- /* Contributed by Stuart Hastings <stuart@apple.com> */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -mmmx" } */
- #include <mmintrin.h>
- #include <stdlib.h>
- 
- __m64 global_mask;
- 
- int main()
- {
-     __m64 zero = _mm_setzero_si64();
-     __m64 mask = _mm_cmpeq_pi8( zero, zero );
-     mask = _mm_unpacklo_pi8( mask, zero );
-     global_mask = mask;
-     return 0;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mmx-6.c	Tue Jan  4 15:44:25 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mmx-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* PR middle-end/17767 */
- /* Contributed by Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O -mmmx" } */
- typedef int __m64 __attribute__ ((vector_size (8)));
- typedef short __v4hi __attribute__ ((vector_size (8)));
- 
- __m64 foo ()
- {
-   int i;
-   __m64 m;
- 
-   for (i = 0; i < 2; i++)
-     m = (__m64) __builtin_ia32_pcmpeqw ((__v4hi) m, (__v4hi) m);
- 
-   return m;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mul.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mul.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-mul.c	Sun Jun  8 14:50:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-mul.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=k8" } */
- /* { dg-final { scan-assembler "and\[^\\n\]*magic" } } */
- 
- /* Should be done as "andw $32767, magic".  */
- unsigned short magic;
- t()
- {
- 	magic%=(unsigned short)0x8000U;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c	Wed Nov 17 17:21:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-pentium4-not-mull.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -march=pentium4" { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O2 -march=pentium4 -m32" { target x86_64-*-* } } */
- /* { dg-final { scan-assembler-not "imull" } } */
- 
- /* Should be done not using imull.  */
- int t(int x)
- {
-   return x*29;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-pic-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-pic-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-pic-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-pic-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,19 ****
- /* PR target/8340 */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-fPIC" } */
- 
- int foo ()
- {
-   static int a;
- 
-   __asm__ __volatile__ (  /* { dg-error "PIC register" } */
-     "xorl %%ebx, %%ebx\n"
-     "movl %%ebx, %0\n"
-     : "=m" (a)
-     :
-     : "%ebx"
-   );
- 
-   return a;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-regparm.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-regparm.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-regparm.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-regparm.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-W -Wall" } */
- 
- /* Verify that GCC correctly detects non-matching regparm attributes.  */
- int __attribute__((regparm(3))) f (void);  /* { dg-error "previous" } */
- 
- int __attribute__((regparm(2))) f (void) { /* { dg-error "conflicting" } */
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-rotate-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-rotate-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-rotate-1.c	Thu Oct 28 13:07:00 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-rotate-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* Verify that rolb instruction is emitted on IA-32/x86-64.  */
- /* { dg-do compile } */
- /* { dg-options "-O2" } */
- 
- void foo (unsigned char *);
- 
- int
- main (void)
- {
-   unsigned char c = 0;
-   foo (&c);
-   c = c >> 1 | c << 7;
-   return c;
- }
- 
- /* { dg-final { scan-assembler "rolb" { target i?86-*-* x86_64-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-signbit-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-signbit-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-signbit-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-signbit-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* PR optimization/8746 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O1 -mtune=i586" } */
- 
- extern void abort (void);
- 
- unsigned char r0;
- 
- int foo(int x)
- {
-   unsigned char r = x&0xf0;
- 
-   if (!(r&0x80))
-   {
-     r0 = r;
-     return 0;
-   }
-   else
-     return 1;
- }
- 
- int main(void)
- {
-   if (foo(0x80) != 1)
-     abort();
- 
-    return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-signbit-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-signbit-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-signbit-2.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-signbit-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* PR optimization/8746 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O1 -mtune=i586" } */
- 
- extern void abort (void);
- 
- unsigned short r0;
- 
- int foo(int x)
- {
-   unsigned short r = x&0xf000;
- 
-   if (!(r&0x8000))
-   {
-     r0 = r;
-     return 0;
-   }
-   else
-     return 1;
- }
- 
- int main(void)
- {
-   if (foo(0x8000) != 1)
-     abort();
- 
-    return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-signbit-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-signbit-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-signbit-3.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-signbit-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,33 ****
- /* PR optimization/8746 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-O1 -mtune=i586" } */
- 
- extern void abort (void);
- 
- volatile int j;
- 
- void f0() { j=0; }
- void f1() { j=1; }
- 
- int foo(int x)
- {
-   if ((short int)(x&0x8000) > (short int)0)
-   {
-     f0();
-     return 0;
-   }
-   else
-   {
-     f1();
-     return 1;
-   }
- }
- 
- int main(void)
- {
-   if (foo(0x8000) != 1)
-     abort();
- 
-    return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-1.c	Tue Jan 15 06:17:04 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse" } */
- 
- /* Test that the intrinsics compile with optimization.  All of them are
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <xmmintrin.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-10.c	Tue Dec 14 05:34:26 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-10.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* PR 17930 */
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args" } */
- 
- #include "i386-cpuid.h"
- 
- typedef _Complex double complex_16;
- 
- void NOINLINE
- test (complex_16 a[5][5])
- {
-   int i, j, k;
-   complex_16 x;
- 
-   for (j = 0; j < 5; j++)
-     for (i = 0; i < 5; i++)
-       {
-         for (k = 0; k < j - 1; ++k)
- 	  x = a[k][i] * ~a[k][j];
- 	a[j][i] = x;
-       }
- }
- 
- int main()
- {
-   static complex_16 work[5][5];
-   unsigned long cpu_facilities;
- 
-   cpu_facilities = i386_cpuid ();
-   if (cpu_facilities & bit_SSE2)
-     test (work); 
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-11.c	Wed May  4 07:29:29 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-11.c	Thu Jan  1 00:00:00 1970
***************
*** 1,92 ****
- /* PR rtl-optimization/21239 */
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2" } */
- #include <emmintrin.h>
- #include "i386-cpuid.h"
- 
- extern void abort (void);
- 
- void
- foo (unsigned int x, double *y, const double *z)
- {
-   __m128d tmp;
-   while (x)
-     {
-       tmp = _mm_load_sd (z);
-       _mm_store_sd (y, tmp);
-       --x; ++z; ++y;
-     }
- }
- 
- void
- bar (unsigned int x, float *y, const float *z)
- {
-   __m128 tmp;
-   unsigned int i;
-   for (i = 0; i < x; ++i)
-     {
-       tmp = (__m128) { *z, 0, 0, 0 };
-       *y = __builtin_ia32_vec_ext_v4sf (tmp, 0);
-       ++z; ++y;
-     }
-   for (i = 0; i < x; ++i)
-     {
-       tmp = (__m128) { 0, *z, 0, 0 };
-       *y = __builtin_ia32_vec_ext_v4sf (tmp, 1);
-       ++z; ++y;
-     }
-   for (i = 0; i < x; ++i)
-     {
-       tmp = (__m128) { 0, 0, *z, 0 };
-       *y = __builtin_ia32_vec_ext_v4sf (tmp, 2);
-       ++z; ++y;
-     }
-   for (i = 0; i < x; ++i)
-     {
-       tmp = (__m128) { 0, 0, 0, *z };
-       *y = __builtin_ia32_vec_ext_v4sf (tmp, 3);
-       ++z; ++y;
-     }
- }
- 
- void __attribute__((noinline))
- run_tests (void)
- {
-   unsigned int i;
-   double a[16], b[16];
-   float c[16], d[16];
-   for (i = 0; i < 16; ++i)
-     {
-       a[i] = 1;
-       b[i] = 2;
-       c[i] = 3;
-       d[i] = 4;
-     }
-   foo (16, a, b);
-   bar (4, c, d);
-   for (i = 0; i < 16; ++i)
-     {
-       if (a[i] != 2)
- 	abort ();
-       if (c[i] != 4)
- 	abort ();
-     }
- }
- 
- int
- main ()
- {
-   unsigned long cpu_facilities;
-   unsigned int i;
-   double a[19], b[19];
- 
-   cpu_facilities = i386_cpuid ();
- 
-   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
-       != (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
-     /* If host has no vector support, pass.  */
-     return 0;
- 
-   run_tests ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-12.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-12.c	Wed Jun  1 10:28:38 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-12.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* Test that {,x,e,p}mmintrin.h and mm_malloc.h are
-    usable with -std=c89 -pedantic-errors.  */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-std=c89 -pedantic-errors -msse3" } */
- 
- #include <mmintrin.h>
- #include <xmmintrin.h>
- #include <emmintrin.h>
- #include <pmmintrin.h>
- #include <mm_malloc.h>
- 
- int dummy;
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-2.c	Tue Jan 15 06:17:04 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O0 -msse" } */
- 
- /* Test that the intrinsics compile without optimization.  All of them are
-    defined as inline functions in mmintrin.h that reference the proper
-    builtin functions.  Defining away "static" and "__inline" results in
-    all of them being compiled as proper functions.  */
- 
- #define static
- #define __inline
- 
- #include <xmmintrin.h>
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-3.c	Sun Oct 20 20:38:41 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,49 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse -msse2" } */
- 
- /* Test that the intrinsics compile with optimization.  These were not
-    tested in i386-sse-[12].c because these builtins require immediate
-    operands.  */
- 
- #include <xmmintrin.h>
- 
- __m128
- test_shuf (void)
- {
-   __m128 a = _mm_set1_ps (1.0);
-   __m128 b = _mm_set1_ps (2.0);
-   return _mm_shuffle_ps (a, b, _MM_SHUFFLE (0,1,2,3));
- }
- 
- __m64
- test_ins_ext (__m64 a)
- {
-   return _mm_insert_pi16 (a, _mm_extract_pi16 (a, 0), 3);
- }
- 
- __m64
- test_shuf2 (__m64 a)
- {
-   return _mm_shuffle_pi16 (a, 0xA5);
- }
- 
- void
- test_prefetch (char *p)
- {
-   _mm_prefetch (p, _MM_HINT_T0);
-   _mm_prefetch (p+4, _MM_HINT_T1);
-   _mm_prefetch (p+8, _MM_HINT_T2);
-   _mm_prefetch (p+12, _MM_HINT_NTA);
- }
- 
- __m128i
- test__slli_si128 (__m128i a)
- {
-   return _mm_slli_si128 (a, 3);
- }
- 
- __m128i
- test__srli_si128 (__m128i a)
- {
-   return _mm_srli_si128 (a, 3);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-4.c	Tue Mar 16 20:37:29 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O0 -msse" } */
- 
- typedef float __vr __attribute__ ((vector_size (16)));
- 
- struct vector
- {
-   union
-   {
-     __vr v;
-     float f[4];
-   };
- };
- 
- void
- doit ()
- {
-   float f[4];
-   struct vector v;
- 
-   f[0] = 0;
-   f[1] = 1;
-   f[2] = 2;
-   f[3] = 3;
- 
-   v.v = __builtin_ia32_loadups (f);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-5.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-Winline -O2 -march=i386" } */
- typedef double v2df __attribute__ ((vector_size (16)));
- v2df p;
- q(v2df t)
- {			 /* { dg-warning "SSE" "" } */
- 	p=t;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-6.c	Tue Feb 17 17:12:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-6.c	Thu Jan  1 00:00:00 1970
***************
*** 1,316 ****
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2" } */
- #include <xmmintrin.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "i386-cpuid.h"
- 
- #ifndef NOINLINE
- #define NOINLINE __attribute__ ((noinline))
- #endif
- 
- #define SHIFT (4)
- 
- typedef union {
-   __m128i v;
-   unsigned int s[4];
-   unsigned short int t[8];
-   unsigned long long u[2];
-   unsigned char c[16];
- }vecInLong;
- 
- void sse2_tests (void) NOINLINE;
- void dump128_16 (char *, char *, vecInLong);
- void dump128_32 (char *, char *, vecInLong);
- void dump128_64 (char *, char *, vecInLong);
- void dump128_128 (char *, char *, vecInLong);
- int check (const char *, const char *[]);
- 
- char buf[8000];
- char comparison[8000];
- static int errors = 0;
- 
- vecInLong a128, b128, c128, d128, e128, f128;
- __m128i m128_16, m128_32, s128, m128_64, m128_128;
- __m64 m64_16, s64, m64_32, m64_64;
- 
- const char *reference_sse2[] = {
-   "_mm_srai_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
-   "_mm_sra_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
-   "_mm_srai_epi32 00123456 00123456 00123456 00123456 \n",
-   "_mm_sra_epi32 00123456 00123456 00123456 00123456 \n",
-   "_mm_srli_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
-   "_mm_srl_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
-   "_mm_srli_epi32 00123456 00123456 00123456 00123456 \n",
-   "_mm_srl_epi32 00123456 00123456 00123456 00123456 \n",
-   "_mm_srli_epi64 00123456789abcde 00123456789abcde \n",
-   "_mm_srl_epi64 00123456789abcde 00123456789abcde \n",
-   "_mm_srli_si128 (byte shift)  00000000ffeeddccbbaa998877665544\n",
-   "_mm_slli_epi16 1230 1230 1230 1230 1230 1230 1230 1230 \n",
-   "_mm_sll_epi16 1230 1230 1230 1230 1230 1230 1230 1230 \n",
-   "_mm_slli_epi32 12345670 12345670 12345670 12345670 \n",
-   "_mm_sll_epi32 12345670 12345670 12345670 12345670 \n",
-   "_mm_slli_epi64 123456789abcdef0 123456789abcdef0 \n",
-   "_mm_sll_epi64 123456789abcdef0 123456789abcdef0 \n",
-   "_mm_sll_si128 (byte shift) bbaa9988776655443322110000000000\n",
-   "_mm_shuffle_epi32 ffeeddcc bbaa9988 77665544 33221100 \n",
-   "_mm_shuffelo_epi16 7766 5544 3322 1100 9988 bbaa ddcc ffee \n",
-   "_mm_shuffehi_epi16 1100 3322 5544 7766 ffee ddcc bbaa 9988 \n",
-   ""
- };
- 
- int main()
- {
-   unsigned long cpu_facilities;
- 
-   cpu_facilities = i386_cpuid ();
- 
-   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
-       != (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
-     /* If host has no vector support, pass.  */
-     exit (0);
- 
-   a128.s[0] = 0x01234567;
-   a128.s[1] = 0x01234567;
-   a128.s[2] = 0x01234567;
-   a128.s[3] = 0x01234567;
- 
-   m128_32 = a128.v;
- 
-   d128.u[0] = 0x0123456789abcdefULL;
-   d128.u[1] = 0x0123456789abcdefULL;
- 
-   m128_64 = d128.v;
- 
-   /* This is the 128-bit constant 0x00112233445566778899aabbccddeeff,
-      expressed as two little-endian 64-bit words.  */
-   e128.u[0] = 0x7766554433221100ULL;
-   e128.u[1] = 0xffeeddccbbaa9988ULL;
- 
-   f128.t[0] = 0x0123;
-   f128.t[1] = 0x0123;
-   f128.t[2] = 0x0123;
-   f128.t[3] = 0x0123;
-   f128.t[4] = 0x0123;
-   f128.t[5] = 0x0123;
-   f128.t[6] = 0x0123;
-   f128.t[7] = 0x0123;
- 
-   m128_16 = f128.v;
- 
-   m128_128 = e128.v;
- 
-   b128.s[0] = SHIFT;
-   b128.s[1] = 0;
-   b128.s[2] = 0;
-   b128.s[3] = 0;
- 
-   s128 = b128.v;
- 
-   if (cpu_facilities & bit_SSE2)
-     {
-       sse2_tests();
-       check (buf, reference_sse2);
- #ifdef DEBUG
-       printf ("sse2 testing:\n");
-       printf (buf);
-       printf ("\ncomparison:\n");
-       printf (comparison);
- #endif
-       buf[0] = '\0';
-     }
- 
-   if (errors != 0)
-     abort ();
-   exit (0);
- }
- 
- void NOINLINE
- sse2_tests (void)
- {
-   /* psraw */
-   c128.v = _mm_srai_epi16 (m128_16, SHIFT);
-   dump128_16 (buf, "_mm_srai_epi16", c128);
-   c128.v = _mm_sra_epi16 (m128_16, s128);
-   dump128_16 (buf, "_mm_sra_epi16", c128);
- 
-   /* psrad */
-   c128.v = _mm_srai_epi32 (m128_32, SHIFT);
-   dump128_32 (buf, "_mm_srai_epi32", c128);
-   c128.v = _mm_sra_epi32 (m128_32, s128);
-   dump128_32 (buf, "_mm_sra_epi32", c128);
- 
-   /* psrlw */
-   c128.v = _mm_srli_epi16 (m128_16, SHIFT);
-   dump128_16 (buf, "_mm_srli_epi16", c128);
-   c128.v = _mm_srl_epi16 (m128_16, s128);
-   dump128_16 (buf, "_mm_srl_epi16", c128);
- 
-   /* psrld */
-   c128.v = _mm_srli_epi32 (m128_32, SHIFT);
-   dump128_32 (buf, "_mm_srli_epi32", c128);
-   c128.v = _mm_srl_epi32 (m128_32, s128);
-   dump128_32 (buf, "_mm_srl_epi32", c128);
- 
-   /* psrlq */
-   c128.v = _mm_srli_epi64 (m128_64, SHIFT);
-   dump128_64 (buf, "_mm_srli_epi64", c128);
-   c128.v = _mm_srl_epi64 (m128_64, s128);
-   dump128_64 (buf, "_mm_srl_epi64", c128);
- 
-   /* psrldq */
-   c128.v = _mm_srli_si128 (m128_128, SHIFT);
-   dump128_128 (buf, "_mm_srli_si128 (byte shift) ", c128);
- 
-   /* psllw */
-   c128.v = _mm_slli_epi16 (m128_16, SHIFT);
-   dump128_16 (buf, "_mm_slli_epi16", c128);
-   c128.v = _mm_sll_epi16 (m128_16, s128);
-   dump128_16 (buf, "_mm_sll_epi16", c128);
- 
-   /* pslld */
-   c128.v = _mm_slli_epi32 (m128_32, SHIFT);
-   dump128_32 (buf, "_mm_slli_epi32", c128);
-   c128.v = _mm_sll_epi32 (m128_32, s128);
-   dump128_32 (buf, "_mm_sll_epi32", c128);
- 
-   /* psllq */
-   c128.v = _mm_slli_epi64 (m128_64, SHIFT);
-   dump128_64 (buf, "_mm_slli_epi64", c128);
-   c128.v = _mm_sll_epi64 (m128_64, s128);
-   dump128_64 (buf, "_mm_sll_epi64", c128);
- 
-   /* pslldq */
-   c128.v = _mm_slli_si128 (m128_128, SHIFT);
-   dump128_128 (buf, "_mm_sll_si128 (byte shift)", c128);
- 
-   /* Shuffle constant 0x1b == 0b_00_01_10_11, e.g. swap words: ABCD => DCBA.  */
- 
-   /* pshufd */
-   c128.v = _mm_shuffle_epi32 (m128_128, 0x1b);
-   dump128_32 (buf, "_mm_shuffle_epi32", c128);
- 
-   /* pshuflw */
-   c128.v = _mm_shufflelo_epi16 (m128_128, 0x1b);
-   dump128_16 (buf, "_mm_shuffelo_epi16", c128);
- 
-   /* pshufhw */
-   c128.v = _mm_shufflehi_epi16 (m128_128, 0x1b);
-   dump128_16 (buf, "_mm_shuffehi_epi16", c128);
- }
- 
- void
- dump128_16 (char *buf, char *name, vecInLong x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=0; i<8; i++)
-     {
-       sprintf (p, "%4.4x ", x.t[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- void
- dump128_32 (char *buf, char *name, vecInLong x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=0; i<4; i++)
-     {
-       sprintf (p, "%8.8x ", x.s[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- void
- dump128_64 (char *buf, char *name, vecInLong x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=0; i<2; i++)
-     {
-       sprintf (p, "%16.16llx ", x.u[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- void
- dump128_128 (char *buf, char *name, vecInLong x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=15; i>=0; i--)
-     {
-       /* This is cheating; we don't have a 128-bit int format code.
- 	 Running the loop backwards to compensate for the
- 	 little-endian layout. */
-       sprintf (p, "%2.2x", x.c[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- int
- check (const char *input, const char *reference[])
- {
-   int broken, i, j, len;
-   const char *p_input;
-   char *p_comparison;
-   int new_errors = 0;
- 
-   p_comparison = &comparison[0];
-   p_input = input;
- 
-   for (i = 0; *reference[i] != '\0'; i++)
-     {
-       broken = 0;
-       len = strlen (reference[i]);
-       for (j = 0; j < len; j++)
- 	{
- 	  /* Ignore the terminating NUL characters at the end of every string in 'reference[]'.  */
- 	  if (!broken && *p_input != reference[i][j])
- 	    {
- 	      *p_comparison = '\0';
- 	      strcat (p_comparison, " >>> ");
- 	      p_comparison += strlen (p_comparison);
- 	      new_errors++;
- 	      broken = 1;
- 	    }
- 	  *p_comparison = *p_input;
- 	  p_comparison++;
- 	  p_input++;
- 	}
-       if (broken)
- 	{
- 	  *p_comparison = '\0';
- 	  strcat (p_comparison, "expected:\n");
- 	  strcat (p_comparison, reference[i]);
- 	  p_comparison += strlen (p_comparison);
- 	}
-     }
-   *p_comparison = '\0';
-   strcat (p_comparison, new_errors ? "failure\n\n" : "O.K.\n\n") ;
-   errors += new_errors;
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-7.c	Tue Feb 17 17:12:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-7.c	Thu Jan  1 00:00:00 1970
***************
*** 1,139 ****
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse" } */
- #include <xmmintrin.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include "i386-cpuid.h"
- 
- #ifndef NOINLINE
- #define NOINLINE __attribute__ ((noinline))
- #endif
- 
- #define SHIFT (4)
- 
- typedef union {
-   __m64 v;
-   unsigned char c[8];
-   unsigned short int s[4];
-   unsigned long long t;
-   unsigned int u[2];
- }vecInWord;
- 
- void sse_tests (void) NOINLINE;
- void dump64_16 (char *, char *, vecInWord);
- int check (const char *, const char *[]);
- 
- char buf[8000];
- char comparison[8000];
- static int errors = 0;
- 
- vecInWord c64, e64;
- __m64 m64_64;
- 
- const char *reference_sse[] = {
-   "_mm_shuffle_pi16 0123 4567 89ab cdef \n",
-   ""
- };
- 
- int main()
- {
-   unsigned long cpu_facilities;
- 
-   cpu_facilities = i386_cpuid ();
- 
-   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_CMOV))
-       != (bit_MMX | bit_SSE | bit_CMOV))
-     /* If host has no vector support, pass.  */
-     exit (0);
- 
-   e64.t  = 0x0123456789abcdefULL;
- 
-   m64_64 = e64.v;
- 
-   if (cpu_facilities & bit_SSE)
-     {
-       sse_tests();
-       check (buf, reference_sse);
- #ifdef DEBUG
-       printf ("sse testing:\n");
-       printf (buf);
-       printf ("\ncomparison:\n");
-       printf (comparison);
- #endif
-       buf[0] = '\0';
-     }
- 
-   if (errors != 0)
-     abort ();
-   exit (0);
- }
- 
- void NOINLINE
- sse_tests (void)
- {
-   /* pshufw */
-   c64.v = _mm_shuffle_pi16 (m64_64, 0x1b);
-   dump64_16 (buf, "_mm_shuffle_pi16", c64);
- }
- 
- void
- dump64_16 (char *buf, char *name, vecInWord x)
- {
-   int i;
-   char *p = buf + strlen (buf);
- 
-   sprintf (p, "%s ", name);
-   p += strlen (p);
- 
-   for (i=0; i<4; i++)
-     {
-       sprintf (p, "%4.4x ", x.s[i]);
-       p += strlen (p);
-     }
-   strcat (p, "\n");
- }
- 
- int
- check (const char *input, const char *reference[])
- {
-   int broken, i, j, len;
-   const char *p_input;
-   char *p_comparison;
-   int new_errors = 0;
- 
-   p_comparison = &comparison[0];
-   p_input = input;
- 
-   for (i = 0; *reference[i] != '\0'; i++)
-     {
-       broken = 0;
-       len = strlen (reference[i]);
-       for (j = 0; j < len; j++)
- 	{
- 	  /* Ignore the terminating NUL characters at the end of every string in 'reference[]'.  */
- 	  if (!broken && *p_input != reference[i][j])
- 	    {
- 	      *p_comparison = '\0';
- 	      strcat (p_comparison, " >>> ");
- 	      p_comparison += strlen (p_comparison);
- 	      new_errors++;
- 	      broken = 1;
- 	    }
- 	  *p_comparison = *p_input;
- 	  p_comparison++;
- 	  p_input++;
- 	}
-       if (broken)
- 	{
- 	  *p_comparison = '\0';
- 	  strcat (p_comparison, "expected:\n");
- 	  strcat (p_comparison, reference[i]);
- 	  p_comparison += strlen (p_comparison);
- 	}
-     }
-   *p_comparison = '\0';
-   strcat (p_comparison, new_errors ? "failure\n\n" : "O.K.\n\n") ;
-   errors += new_errors;
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-8.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-8.c	Thu Jan  1 00:00:00 1970
***************
*** 1,16 ****
- /* PR target/14313 */
- /* Origin: <Pawe Sikora <pluto@ds14.agh.edu.pl> */
- 
- /* The xstormy16 doesn't support V2DI.  */
- /* { dg-do compile { xfail xstormy16-*-* } } */
- /* { dg-options "" } */
- /* { dg-options "-march=pentium3" { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- 
- int main() 
- { 
-   typedef long long int v __attribute__ ((vector_size (16))); 
-   v a, b; 
-   a = b; 
-   return 0; 
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-sse-9.c	Tue Aug  3 19:52:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-sse-9.c	Thu Jan  1 00:00:00 1970
***************
*** 1,36 ****
- /* { dg-do run { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse" } */
- #include <xmmintrin.h>
- #include <stdlib.h>
- #include <stddef.h>
- #include <string.h>
- 
- int
- main()
- {
-   int alignment, n;
-   void *ptr;
-   int errors = 0;
-   const char test [] = "This is a test.";
- 
-   for (alignment = 1; alignment <= (1 << 20); alignment += alignment)
-     {
-       ptr = _mm_malloc (alignment, alignment);
-       if (((ptrdiff_t) ptr) & (alignment - 1))
- 	abort ();
-       if (ptr)
- 	{
- 	  n = alignment > sizeof test ? sizeof test : alignment;
- 	  memcpy (ptr, test, n);
- 	  if (memcmp (ptr, test, n) != 0)
- 	    errors++;
- 	  _mm_free (ptr);
- 	}
-       else
- 	errors++;
-     }
-    
-   if (errors != 0)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssefp-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssefp-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssefp-1.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssefp-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
- /* { dg-final { scan-assembler "maxsd" } } */
- /* { dg-final { scan-assembler "minsd" } } */
- double x;
- t()
- {
-   x=x>5?x:5;
- }
- 
- double x;
- q()
- {
-   x=x<5?x:5;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssefp-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssefp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssefp-2.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssefp-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
- /* { dg-final { scan-assembler "maxsd" } } */
- /* { dg-final { scan-assembler "minsd" } } */
- double x;
- q()
- {
-   x=x<5?5:x;
- }
- 
- double x;
- q1()
- {
-   x=x>5?5:x;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-1.c	Wed Jun 16 22:57:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,35 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "xorpd\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "orpd\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler-not "movdqa" } } */
- /* { dg-final { scan-assembler "movapd\[^\\n\]*magic" } } */
- 
- /* Verify that we generate proper instruction with memory operand.  */
- 
- #include <xmmintrin.h>
- 
- __m128d magic_a, magic_b;
- 
- __m128d
- t1(void)
- {
- return _mm_and_pd (magic_a,magic_b);
- }
- __m128d
- t2(void)
- {
- return _mm_andnot_pd (magic_a,magic_b);
- }
- __m128d
- t3(void)
- {
- return _mm_or_pd (magic_a,magic_b);
- }
- __m128d
- t4(void)
- {
- return _mm_xor_pd (magic_a,magic_b);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-2.c	Tue Feb  4 20:45:00 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,39 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler "andpd" } } */
- /* { dg-final { scan-assembler "andnpd" } } */
- /* { dg-final { scan-assembler "xorpd" } } */
- /* { dg-final { scan-assembler "orpd" } } */
- /* { dg-final { scan-assembler-not "movdqa" } } */
- 
- /* Verify that we generate proper instruction without memory operand.  */
- 
- #include <xmmintrin.h>
- __m128d
- t1(__m128d a, __m128d b)
- {
- a=_mm_sqrt_pd(a);
- b=_mm_sqrt_pd(b);
- return _mm_and_pd (a,b);
- }
- __m128d
- t2(__m128d a, __m128d b)
- {
- a=_mm_sqrt_pd(a);
- b=_mm_sqrt_pd(b);
- return _mm_andnot_pd (a,b);
- }
- __m128d
- t3(__m128d a, __m128d b)
- {
- a=_mm_sqrt_pd(a);
- b=_mm_sqrt_pd(b);
- return _mm_or_pd (a,b);
- }
- __m128d
- t4(__m128d a, __m128d b)
- {
- a=_mm_sqrt_pd(a);
- b=_mm_sqrt_pd(b);
- return _mm_xor_pd (a,b);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-3.c	Wed Jun 16 22:57:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "xorps\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "orps\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler-not "movdqa" } } */
- /* { dg-final { scan-assembler "movaps\[^\\n\]*magic" } } */
- 
- /* Verify that we generate proper instruction with memory operand.  */
- 
- #include <xmmintrin.h>
- 
- __m128 magic_a, magic_b;
- __m128
- t1(void)
- {
- return _mm_and_ps (magic_a,magic_b);
- }
- __m128
- t2(void)
- {
- return _mm_andnot_ps (magic_a,magic_b);
- }
- __m128
- t3(void)
- {
- return _mm_or_ps (magic_a,magic_b);
- }
- __m128
- t4(void)
- {
- return _mm_xor_ps (magic_a,magic_b);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-4.c	Tue Feb  4 20:43:04 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-4.c	Thu Jan  1 00:00:00 1970
***************
*** 1,38 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler "andps" } } */
- /* { dg-final { scan-assembler "andnps" } } */
- /* { dg-final { scan-assembler "xorps" } } */
- /* { dg-final { scan-assembler "orps" } } */
- 
- /* Verify that we generate proper instruction without memory operand.  */
- 
- #include <xmmintrin.h>
- __m128
- t1(__m128 a, __m128 b)
- {
- a=_mm_sqrt_ps(a);
- b=_mm_sqrt_ps(b);
- return _mm_and_ps (a,b);
- }
- __m128
- t2(__m128 a, __m128 b)
- {
- a=_mm_sqrt_ps(a);
- b=_mm_sqrt_ps(b);
- return _mm_andnot_ps (a,b);
- }
- __m128
- t3(__m128 a, __m128 b)
- {
- a=_mm_sqrt_ps(a);
- b=_mm_sqrt_ps(b);
- return _mm_or_ps (a,b);
- }
- __m128
- t4(__m128 a, __m128 b)
- {
- a=_mm_sqrt_ps(a);
- b=_mm_sqrt_ps(b);
- return _mm_xor_ps (a,b);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-ssetype-5.c	Sun Jun  8 14:50:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-ssetype-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2 -march=k8" } */
- /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "pxor\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "por\[^\\n\]*magic" } } */
- /* { dg-final { scan-assembler "movdqa" } } */
- /* { dg-final { scan-assembler-not "movaps\[^\\n\]*magic" } } */
- 
- /* Verify that we generate proper instruction with memory operand.  */
- 
- #include <xmmintrin.h>
- __m128i magic_a, magic_b;
- __m128i
- t1(void)
- {
- return _mm_and_si128 (magic_a,magic_b);
- }
- __m128i
- t2(void)
- {
- return _mm_andnot_si128 (magic_a,magic_b);
- }
- __m128i
- t3(void)
- {
- return _mm_or_si128 (magic_a,magic_b);
- }
- __m128i
- t4(void)
- {
- return _mm_xor_si128 (magic_a,magic_b);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-unroll-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-unroll-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-unroll-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-unroll-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /* PR optimization/8599 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
- /* { dg-options "-mtune=k6 -O2 -funroll-loops" } */
- 
- extern void exit (int);
- 
- void *array[4];
- 
- int main ()
- {
-   int i;
-  
-   for (i = 0; i < 4; i++)
-     array[i] = 0;
- 
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/i386-volatile-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/i386-volatile-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/i386-volatile-1.c	Thu Jul  3 07:30:03 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/i386-volatile-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* PR optimization/11381 */
- /* Originator: <tobias@ringstrom.mine.nu> */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O" } */
- 
- /* Verify that the comparison is not optimized away. */
- 
- void foo(volatile unsigned int *vaddr)
- {
-   while (*vaddr != *vaddr)
-     ;
- }
- 
- /* { dg-final { scan-assembler "cmp" } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-asm-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-asm-1.c	Mon Oct 11 21:02:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-asm-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* { dg-do run { target ia64-*-* } } */
- /* { dg-options } */
- 
- extern void abort (void);
- 
- /* Test that "=S" properly avoids the post-increment on the memory address.  */
- 
- static void foo(int *x)
- {
-   long i;
-   for (i = 0; i < 100; ++i)
-     __asm__("st4 %0 = r0" : "=S"(x[i]));
- }
- 
- int main()
- {
-   int array[100];
-   long i;
- 
-   for (i = 0; i < 100; ++i)
-     array[i] = -1;
- 
-   foo(array);
- 
-   for (i = 0; i < 100; ++i)
-     if (array[i])
-       abort ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-float80-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-float80-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-float80-1.c	Thu Jun 17 17:05:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-float80-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* Bug 14610 */
- /* { dg-do run { target ia64-*-* } } */
- 
- extern void abort(void);
- volatile __float80 x = 30.0;
- 
- int main(void)
- {
-   double d = x;
-   if (d != 30.0) abort ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-float80-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-float80-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-float80-2.c	Thu Jun 17 17:05:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-float80-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* Bug 14610 */
- /* { dg-do run { target ia64-*-* } } */
- /* { dg-options "-minline-int-divide-max-throughput" } */
- 
- extern void abort(void);
- volatile int j = 30;
- 
- int main(void)
- {
-   if (29 % j != 29) abort();
-   if (30 % j != 0)  abort();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-fptr-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-fptr-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-fptr-1.c	Wed Jul 21 02:35:55 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-fptr-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,37 ****
- /* { dg-do run { target ia64-*-* } } */
- /* { dg-options "-O2" } */
- 
- /* Test function descriptor access.  */
- 
- extern unsigned long *_GLOBAL_OFFSET_TABLE_;
- extern void abort(void);
- 
- struct ia64_fdesc
- {
-   unsigned long func;
-   unsigned long gp;
- };
- 
- void
- os_boot_rendez (void)
- {
- }
- 
- static int
- check (unsigned long gp)
- {
-   return gp != (unsigned long) &_GLOBAL_OFFSET_TABLE_;
- }
- 
- int
- main (int argc, char **argv)
- {
-   int i;
-   int res = 0;
- 
-   for (i = 0; i < 1; i++)
-     res += check (((struct ia64_fdesc *) os_boot_rendez)->gp);
-   if (res)
-     abort ();
-   return res;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-got-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-got-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-got-1.c	Mon Aug  2 03:23:01 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-got-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- /* { dg-do compile { target ia64*-*-* } } */
- /* { dg-options "-O2 -fPIC" } */
- 
- /* { dg-final { scan-assembler "@ltoffx\\(object#\\)" } } */
- /* { dg-final { scan-assembler "@ltoffx\\(object#\[-+\]16384\\)" } } */
- /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]1\\)" } } */
- /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]8191\\)" } } */
- /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]8192\\)" } } */
- /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]8193\\)" } } */
- /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]16383\\)" } } */
- /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]16385\\)" } } */
- 
- /* must not be in sdata */
- extern char object[];
- 
- #define r(n) char *r_##n (void) { return &object[n]; }
- #define R(n) char *R_##n (void) { return &object[-n]; }
- 
- #define t(n) r(n) R(n)
- 
- t(0) t(1)
- t(8191) t(8192) t(8193)
- t(16383) t(16384) t(16385)
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-postinc.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-postinc.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-postinc.c	Mon Nov 15 16:33:04 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-postinc.c	Thu Jan  1 00:00:00 1970
***************
*** 1,23 ****
- /* { dg-do compile { target ia64-*-* } } */
- /* { dg-options "-O2" } */
- /* { dg-options "-O2 -mlp64" { target ia64-*-hpux* } } */
- 
- void copy_loop_ldouble (void *xdest,
-                         const void *xsrc,
-                         long roff,
-                         long soff,
-                         long len,
-                         long shift)
- { __float128 *dest = xdest;
-   const long double *src;
-   long i;
-   roff /= sizeof (__float128);
-   soff /= sizeof (__float128);
-   src = xsrc;
-   src += shift * soff;
-   for (i = 0; i < len - shift; ++i) {
-         *dest = *src;
-         dest += roff;
-         src += soff;
-   }
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-1.c	Mon Oct 11 21:02:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-1.c	Fri Dec  9 23:56:34 2005
***************
*** 1,11 ****
! /* { dg-do run { target ia64-*-* } } */
  /* { dg-options } */
  
  /* Test basic functionality of the intrinsics.  The operations should
     not be optimized away if no one checks the return values.  */
  
- #include <ia64intrin.h>
- 
  extern void abort (void);
  extern void *memcpy (void *, const void *, __SIZE_TYPE__);
  
--- 1,11 ----
! /* { dg-do run } */
! /* { dg-require-effective-target sync_int_long } */
  /* { dg-options } */
+ /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  /* Test basic functionality of the intrinsics.  The operations should
     not be optimized away if no one checks the return values.  */
  
  extern void abort (void);
  extern void *memcpy (void *, const void *, __SIZE_TYPE__);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-2.c	Mon Oct 11 21:02:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-2.c	Fri Dec  9 23:56:34 2005
***************
*** 1,10 ****
! /* { dg-do run { target ia64-*-* } } */
  /* { dg-options } */
  
  /* Test basic functionality of the intrinsics.  */
  
- #include <ia64intrin.h>
- 
  extern void abort (void);
  extern void *memcpy (void *, const void *, __SIZE_TYPE__);
  
--- 1,10 ----
! /* { dg-do run } */
! /* { dg-require-effective-target sync_int_long } */
  /* { dg-options } */
+ /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  /* Test basic functionality of the intrinsics.  */
  
  extern void abort (void);
  extern void *memcpy (void *, const void *, __SIZE_TYPE__);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-3.c	Mon Oct 11 21:02:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-3.c	Fri Dec  9 23:56:34 2005
***************
*** 1,10 ****
! /* { dg-do run { target ia64-*-* } } */
  /* { dg-options } */
  
  /* Test basic functionality of the intrinsics.  */
  
- #include <ia64intrin.h>
- 
  extern void abort (void);
  extern void *memcpy (void *, const void *, __SIZE_TYPE__);
  
--- 1,10 ----
! /* { dg-do run } */
! /* { dg-require-effective-target sync_int_long } */
  /* { dg-options } */
+ /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  /* Test basic functionality of the intrinsics.  */
  
  extern void abort (void);
  extern void *memcpy (void *, const void *, __SIZE_TYPE__);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-sync-4.c	Fri Apr 25 22:55:18 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-sync-4.c	Fri Dec  9 23:56:34 2005
***************
*** 1,15 ****
! /* { dg-do compile { target ia64-*-* } } */
  /* { dg-options "-O2 -finline-functions" } */
  
! /* Test inlining __sync_bool_compare_and_swap_di.  */
  
  #include <stdbool.h>
- #include <ia64intrin.h>
  
  static bool
  compare_and_swap(long *addr, long old, long new_val)
  {
!   return __sync_bool_compare_and_swap_di(addr, old, new_val);
  }
  
  void
--- 1,16 ----
! /* { dg-do compile } */
! /* { dg-require-effective-target sync_int_long } */
  /* { dg-options "-O2 -finline-functions" } */
+ /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
! /* Test inlining __sync_bool_compare_and_swap.  */
  
  #include <stdbool.h>
  
  static bool
  compare_and_swap(long *addr, long old, long new_val)
  {
!   return __sync_bool_compare_and_swap(addr, old, new_val);
  }
  
  void
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-types1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-types1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-types1.c	Tue Sep  9 03:35:31 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-types1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,41 ****
- /* { dg-do compile { target ia64*-hp-hpux* } } */
- 
- /* Test that __fpreg is distinct from any other builtin type.  */
- 
- extern float fr1; /* { dg-error "" } */
- extern __fpreg fr1; /* { dg-error "" } */
- extern double fr2; /* { dg-error "" } */
- extern __fpreg fr2; /* { dg-error "" } */
- extern long double fr3; /* { dg-error "" } */
- extern __fpreg fr3; /* { dg-error "" } */
- extern __float80 fr4; /* { dg-error "" } */
- extern __fpreg fr4; /* { dg-error "" } */
- extern __float128 fr5; /* { dg-error "" } */
- extern __fpreg fr5; /* { dg-error "" } */
- 
- /* Test that __float80 is distinct from any other builtin type.  */
- 
- extern float f801; /* { dg-error "" } */
- extern __float80 f801; /* { dg-error "" } */
- extern double f802; /* { dg-error "" } */
- extern __float80 f802; /* { dg-error "" } */
- extern long double f803; /* { dg-error "" } */
- extern __float80 f803; /* { dg-error "" } */
- extern __fpreg f804;  /* { dg-error "" } */
- extern __float80 f804; /* { dg-error "" } */
- extern __float128 f805; /* { dg-error "" } */
- extern __float80 f805; /* { dg-error "" } */
- 
- /* Test that __float128 is distinct from any other builtin type --
-    except "long double", for which it is a synonym.  */
- 
- extern float f1281; /* { dg-error "" } */
- extern __float128 f1281; /* { dg-error "" } */
- extern double f1282; /* { dg-error "" } */
- extern __float128 f1282; /* { dg-error "" } */
- extern long double f1283;
- extern __float128 f1283;
- extern __fpreg f1284; /* { dg-error "" } */
- extern __float128 f1284; /* { dg-error "" } */
- extern __float80 f1285; /* { dg-error "" } */
- extern __float128 f1285; /* { dg-error "" } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-types2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-types2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-types2.c	Tue Sep  9 03:35:31 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-types2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,20 ****
- /* { dg-do run { target ia64*-hp-hpux* } } */
- /* { dg-options } */
- 
- /* Test that the sizes and alignments of the extra floating-point
-    types are correct.  */
- 
- int main () {
-   if (sizeof (__fpreg) != 16)
-     return 1;
-   if (__alignof__ (__fpreg) != 16)
-     return 2;
- 
-   if (sizeof (__float80) != 16)
-     return 3;
-   if (__alignof__ (__float80) != 16)
-     return 4;
- 
-   return 0;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-visibility-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-visibility-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-visibility-1.c	Tue Feb 26 21:17:22 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-visibility-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,36 ****
- /* Test visibility attribute.  */
- /* { dg-do compile { target ia64*-*-linux* } } */
- /* { dg-options "-O2 -fpic" } */
- /* { dg-final { scan-assembler "\\.hidden.*variable_j" } } */
- /* { dg-final { scan-assembler "\\.hidden.*variable_m" } } */
- /* { dg-final { scan-assembler "\\.protected.*baz" } } */
- /* { dg-final { scan-assembler "gprel.*variable_i" } } */
- /* { dg-final { scan-assembler "gprel.*variable_j" } } */
- /* { dg-final { scan-assembler "ltoff.*variable_k" } } */
- /* { dg-final { scan-assembler "gprel.*variable_l" } } */
- /* { dg-final { scan-assembler "gprel.*variable_m" } } */
- /* { dg-final { scan-assembler "ltoff.*variable_n" } } */
- 
- static int variable_i;
- int variable_j __attribute__((visibility ("hidden")));
- int variable_k;
- struct A { char a[64]; };
- static struct A variable_l __attribute__((section (".sbss")));
- struct A variable_m __attribute__((visibility ("hidden"), section(".sbss")));
- struct A variable_n __attribute__((section (".sbss")));
- 
- int foo (void)
- {
-   return variable_i + variable_j + variable_k;
- }
- 
- void bar (void)
- {
-   variable_l.a[10] = 0;
-   variable_m.a[10] = 0;
-   variable_n.a[10] = 0;
- }
- 
- void __attribute__((visibility ("protected"))) baz (void)
- {
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-visibility-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-visibility-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ia64-visibility-2.c	Thu Aug  1 21:59:36 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ia64-visibility-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* Test visibility attribute.  */
- /* { dg-do link { target ia64*-*-linux* } } */
- /* { dg-options "-O2 -fpic" } */
- 
- int foo (int x);
- int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
- int bar (int x)
- {
-   return x;
- }
- 
- int main ()
- {
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ifcvt-fabs-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ifcvt-fabs-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ifcvt-fabs-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ifcvt-fabs-1.c	Fri Dec  9 23:56:34 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run } */
+ /* { dg-options "-O" } */
+ /* { dg-options "-O -march=i686" { target { { i686-*-* x86_64-*-* } && ilp32 } } } */
+ 
+ extern void abort(void);
+ 
+ float foo(float f)
+ {
+   if (f < 0.0f)
+     f = -f;
+ 
+   return f;
+ }
+ 
+ int main(void)
+ {
+   if (foo (-1.0f) != 1.0f)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/inline-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/inline-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/inline-2.c	Mon Oct 20 21:46:55 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/inline-2.c	Sun Oct 16 01:14:19 2005
***************
*** 1,8 ****
  /* Ensure that we continue to consider FOO local, even though
     it has been deferred.  */
! /* { dg-do compile } */
  /* { dg-options "-O3 -finline-limit=0 -fpic" } */
- /* { dg-warning "not supported" "PIC unsupported" { target cris-*-elf* cris-*-aout* mmix-*-* } 0 } */
  
  static int foo(void)
  {
--- 1,7 ----
  /* Ensure that we continue to consider FOO local, even though
     it has been deferred.  */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O3 -finline-limit=0 -fpic" } */
  
  static int foo(void)
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/inline1.c gcc-4.1.0/gcc/testsuite/gcc.dg/inline1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/inline1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/inline1.c	Wed Jun 29 00:11:36 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -std=gnu89" } */
+ /* This test is expected to fail with an error for the redefinition of foo.
+    This violates the constraint of 6.9#3 (no more than one external definition
+    of an identifier with internal linkage in the same translation unit).  */
+ static inline int foo(void) { return 1; } /* { dg-error "previous definition of" } */
+ static inline int foo(void) { return 0; } /* { dg-error "redefinition of" } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/inline2.c gcc-4.1.0/gcc/testsuite/gcc.dg/inline2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/inline2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/inline2.c	Wed Jun 29 00:11:36 2005
***************
*** 0 ****
--- 1,5 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -std=gnu89" } */
+ /* This test should compile successfully.  */
+ extern inline int foo (void) { return 0; }
+ inline int foo (void) { return 1; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/inline3.c gcc-4.1.0/gcc/testsuite/gcc.dg/inline3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/inline3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/inline3.c	Wed Jun 29 00:11:36 2005
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -std=gnu89" } */
+ /* This testcase should fail since we're redefining foo in the same
+    translation unit.  */
+ extern inline int foo(void) { return 0; }
+ inline int foo (void) { return 1; } /* { dg-error "previous definition of" } */
+ int foo (void) { return 2; } /* { dg-error "error: redefinition of" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/inline4.c gcc-4.1.0/gcc/testsuite/gcc.dg/inline4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/inline4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/inline4.c	Wed Jun 29 00:11:36 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -std=gnu89" } */
+ /* This testcase should fail since we're redefining foo in the same
+    translation unit.  */
+ int foo (void) { return 2; } /* { dg-error "previous definition of" } */
+ extern inline int foo (void) { return 1; } /* { dg-error "redefinition of" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/inline5.c gcc-4.1.0/gcc/testsuite/gcc.dg/inline5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/inline5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/inline5.c	Wed Jun 29 00:11:36 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -std=gnu89" } */
+ /* This testcase should fail since we're redefining foo in the same
+    translation unit.  */
+ extern inline int foo (void) { return 2; } /* { dg-error "previous definition of" } */
+ extern inline int foo (void) { return 1; } /* { dg-error "redefinition of" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/intmax_t-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/intmax_t-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/intmax_t-1.c	Fri May 13 17:20:31 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/intmax_t-1.c	Tue Nov  1 18:16:46 2005
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-Wall" } */
! /* { dg-error "" "" { target *-*-solaris2.5.1 mmix-*-* mips*-*-elf* *arm*-*-*elf* } 0 } */
  
  /* Compile with -Wall to get a warning if built-in and system intmax_t don't
     match.  */
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-Wall" } */
! /* { dg-error "" "" { target *-*-solaris2.5.1 mips*-*-elf* *arm*-*-*elf* xscale*-*-elf* xtensa-*-elf* } 0 } */
  
  /* Compile with -Wall to get a warning if built-in and system intmax_t don't
     match.  */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-1.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fdump-ipa-cp"  } */
+ /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
+ 
+ #include <stdio.h>
+ int g (int b, int c)
+ {
+   printf ("%d %d\n", b, c);
+ }
+ int f (int a)
+ {
+   /* Second parameter of g gets different values.  */
+   if (a > 0)
+     g (a, 3);
+   else
+     g (a, 5); 	
+ }
+ int main ()
+ {
+   f (7);
+   return 0;	
+ }
+ 
+ 
+ /* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp"  } } */
+ /* { dg-final { scan-ipa-dump-times "propagating const" 2 "cp"  } } */
+ /* { dg-final { cleanup-ipa-dump "cp" } } */
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-2.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fdump-ipa-cp"  } */
+ /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
+ 
+ #include <stdio.h>
+ int g (int b, int c)
+ {
+   printf ("%d %d\n", b, c);
+ }
+ int f (int a)
+ {
+   /* a is modified.  */
+   if (a++ > 0)
+     g (a, 3);
+ }
+ int main ()
+ {
+   f (7);
+   return 0;	
+ }
+ 
+ 
+ /* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp"  } } */
+ /* { dg-final { scan-ipa-dump-times "propagating const" 2 "cp"  } } */
+ /* { dg-final { cleanup-ipa-dump "cp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-3.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fdump-ipa-cp"  } */
+ /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
+ 
+ 
+ /* Double constants.  */
+ 
+ #include <stdio.h>
+ int g (double b, double c)
+ {
+   return (int)(b+c);  
+ }
+ int f (double a)
+ {
+   if (a > 0)
+     g (a, 3.1);
+   else
+     g (a, 3.1); 	
+ }
+ int main ()
+ {
+   f (7.44);
+   return 0;	
+ }
+ 
+ 
+ /* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp"  } } */
+ /* { dg-final { scan-ipa-dump-times "propagating const" 3 "cp"  } } */
+ /* { dg-final { cleanup-ipa-dump "cp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-4.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fdump-ipa-cp"  } */
+ /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
+ 
+ #include <stdio.h>
+ int g (int b, int c)
+ {
+   printf ("%d %d\n", b, c);
+ }
+ int f (int a)
+ {
+   /* First and second parameter of g gets different values.  */ 
+      
+   if (a > 0)
+     g (a, 3);
+   else
+     g (a+1, 5); 	
+ }
+ int main ()
+ {
+   f (7);
+   return 0;	
+ }
+ 
+ 
+ /* { dg-final { scan-ipa-dump-times "versioned function" 1 "cp"  } } */
+ /* { dg-final { scan-ipa-dump-times "propagating const" 1 "cp"  } } */
+ /* { dg-final { cleanup-ipa-dump "cp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa-5.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fipa-cp -fdump-ipa-cp"  } */
+ /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
+ 
+ /* Float & short constants.  */
+ 
+ #include <stdio.h>
+ int g (float b, short c)
+ {
+   return c + (int)b;
+ }
+ int f (float a)
+ {
+   /* a is modified.  */
+   if (a++ > 0)
+     g (a, 3);
+ }
+ int main ()
+ {
+   f (7.6);
+   return 0;	
+ }
+ 
+ 
+ /* { dg-final { scan-ipa-dump-times "versioned function" 2 "cp"  } } */
+ /* { dg-final { scan-ipa-dump-times "propagating const" 2 "cp"  } } */
+ /* { dg-final { cleanup-ipa-dump "cp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa.exp gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ipa/ipa.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ipa/ipa.exp	Wed Oct 12 09:31:34 2005
***************
*** 0 ****
--- 1,35 ----
+ # Copyright (C) 1997, 2004 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # GCC testsuite that uses the `dg.exp' driver.
+ 
+ # Load support procs.
+ load_lib gcc-dg.exp
+ 
+ # If a testcase doesn't have special options, use these.
+ global DEFAULT_CFLAGS
+ if ![info exists DEFAULT_CFLAGS] then {
+     set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+ }
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Main loop.
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/large-size-array.c gcc-4.1.0/gcc/testsuite/gcc.dg/large-size-array.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/large-size-array.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/large-size-array.c	Wed Aug 17 03:00:13 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ #include <limits.h>
+ 
+ #ifdef __LP64__
+ #define DIM UINT_MAX>>1
+ #else
+ #define DIM USHRT_MAX>>1
+ #endif
+ 
+ int
+ sub (int *a)
+ {
+   return a[0];
+ }
+ 
+ int
+ main (void)
+ {
+   int a[DIM][DIM];  /* { dg-error "size of array 'a' is too large" } */
+   return sub (&a[0][0]);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/loop-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/loop-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/loop-3.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/loop-3.c	Fri Dec  9 23:56:34 2005
***************
*** 3,9 ****
  
  /* { dg-do compile } */
  /* { dg-options "-O3" } */
! /* { dg-options "-O3 -mtune=i386" { target { i?86-*-* && ilp32 } } } */
  
  #if defined(STACK_SIZE) && (STACK_SIZE < 65536)
  # define BYTEMEM_SIZE 10000L
--- 3,9 ----
  
  /* { dg-do compile } */
  /* { dg-options "-O3" } */
! /* { dg-options "-O3 -mtune=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  #if defined(STACK_SIZE) && (STACK_SIZE < 65536)
  # define BYTEMEM_SIZE 10000L
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/macho-lo-sum.c gcc-4.1.0/gcc/testsuite/gcc.dg/macho-lo-sum.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/macho-lo-sum.c	Thu Oct 14 22:30:47 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/macho-lo-sum.c	Thu Jan  1 00:00:00 1970
***************
*** 1,29 ****
- /* { dg-do compile { target powerpc*-*-darwin* } } */
- /* { dg-options "-O2 -mpowerpc64 -mdynamic-no-pic" } */
- 
- long long knight_attacks[64];
- long long InitializeAttackBoards(void);
- 
- int main()
- {
- 	return InitializeAttackBoards();
- }
- 
- long long InitializeAttackBoards(void)
- {
- 
-   int i,j;
- 
-   for(i=0;i<64;i++) { }
- 
-   for(i=0;i<64;i++) {
-     knight_attacks[i]=0;
-     for(j=0;j<8;j++) {
-       knight_attacks[i]= 0;
-     }
-   }
- 
-   return knight_attacks[0];
- 
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-args-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-args-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-args-1.c	Sat Nov 27 09:55:16 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-args-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,35 ****
- /* Check that certain preprocessor macros are defined, and do some
-    consistency checks.  */
- /* { dg-do compile { target mips*-*-* } } */
- 
- const char *compiled_for = _MIPS_ARCH;
- const char *optimized_for = _MIPS_TUNE;
- 
- #if __mips_fpr != 32 && __mips_fpr != 64
- #error Bad __mips_fpr
- #endif
- 
- /* Test complementary macro pairs: exactly one of each pair
-    must be defined.  */
- 
- #if defined (_R3000) == defined (_R4000) && !defined (__sgi__)
- #error _R3000 / _R4000 mismatch
- #endif
- 
- #if defined (__mips_hard_float) == defined (__mips_soft_float)
- #error __mips_hard_float / __mips_soft_float mismatch
- #endif
- 
- #if defined (_MIPSEL) == defined (_MIPSEB)
- #error _MIPSEL / _MIPSEB mismatch
- #endif
- 
- /* Check for __mips64 consistency.  */
- 
- #if defined (__mips64) != defined (_R4000) && !defined (__sgi__)
- #error __mips64 / _R4000 mismatch
- #endif
- 
- #if defined (__mips64) && __mips != 3 && __mips != 4 && __mips != 64
- #error __mips64 / __mips mismatch
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-args-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-args-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-args-2.c	Wed Aug  4 19:12:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-args-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /* Check the _MIPSEB and _MIPSEL macros are accurate.  */
- /* { dg-do run { target mips*-*-* } } */
- extern void abort (void);
- extern void exit (int);
- 
- short foo = 1;
- int main ()
- {
-   char *p = (char *) &foo;
- 
- #ifdef _MIPSEB
-   if (p[0] != 0 || p[1] != 1)
- #else
-   if (p[0] != 1 || p[1] != 0)
- #endif
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-args-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-args-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-args-3.c	Wed Aug  4 19:12:58 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-args-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,38 ****
- /* __mips, and related defines, guarantee that certain assembly
-    instructions can be used.  Check a few examples.  */
- /* { dg-do run { target mips*-*-* } } */
- extern void abort (void);
- extern void exit (int);
- 
- typedef int int32 __attribute__ ((mode (SI)));
- typedef int int64 __attribute__ ((mode (DI)));
- int foo (float inf, int64 in64, int32 in32)
- {
-   int64 res64;
-   int32 res32;
- 
- #if __mips != 1 && defined (__mips_hard_float)
-   __asm__ ("trunc.w.s %0, %1" : "=f" (res32) : "f" (inf));
-   if (res32 != 11)
-     abort ();
- #endif
- 
- #if defined (__mips64)
-   __asm__ ("daddu %0, %1, %1" : "=r" (res64) : "r" (in64));
-   if (res64 != 50)
-     abort ();
- #endif
- 
- #if (__mips == 4 || __mips == 32 || __mips == 64) && !defined (__mips16)
-   __asm__ ("move %0,%.\n\tmovn %0,%1,%2"
- 	   : "=&r" (res32) : "r" (in32), "r" (in64 != 0));
-   if (res32 != 60)
-     abort ();
- #endif
- }
- 
- int main ()
- {
-   foo (11.4f, 25, 60);
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-movcc-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-movcc-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-movcc-1.c	Thu Jan 27 19:50:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-movcc-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,33 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -mips4" } */
- /* { dg-final { scan-assembler "movz" } } */
- /* { dg-final { scan-assembler "movn" } } */
- /* { dg-final { scan-assembler "movt" } } */
- 
- void ext_int (int);
- 
- #if __mips < 4
- asm ("# movz movn");
- #else
- int
- sub1 (int i, int j, int k)
- {
-   ext_int (k ? i : j);
- }
- 
- int
- sub2 (int i, int j, long l)
- {
-   ext_int (!l ? i : j);
- }
- #endif
- 
- #if __mips < 4 || __mips_soft_float
- asm ("# movt");
- #else
- int
- sub3 (int i, int j, float f)
- {
-   ext_int (f ? i : j);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-movcc-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-movcc-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-movcc-2.c	Thu Jan 27 19:50:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-movcc-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,33 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -mips4" } */
- /* { dg-final { scan-assembler "movz" } } */
- /* { dg-final { scan-assembler "movn" } } */
- /* { dg-final { scan-assembler "movf" } } */
- 
- void ext_long (long);
- 
- #if __mips < 4
- asm ("# movz movn");
- #else
- long
- sub4 (long i, long j, long k)
- {
-   ext_long (k ? i : j);
- }
- 
- long
- sub5 (long i, long j, int k)
- {
-   ext_long (!k ? i : j);
- }
- #endif
- 
- #if __mips < 4 || __mips_soft_float
- asm ("# movf");
- #else
- long
- sub6 (long i, long j, float f)
- {
-   ext_long (!f ? i : j);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-movcc-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-movcc-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-movcc-3.c	Thu Jan 27 19:50:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-movcc-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,51 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -mips4" } */
- /* { dg-final { scan-assembler "movz.s" } } */
- /* { dg-final { scan-assembler "movn.s" } } */
- /* { dg-final { scan-assembler "movt.s" } } */
- /* { dg-final { scan-assembler "movz.d" } } */
- /* { dg-final { scan-assembler "movn.d" } } */
- /* { dg-final { scan-assembler "movf.d" } } */
- 
- #if __mips < 4 || __mips_soft_float
- asm ("# movz.s movn.s movt.s movz.d movn.d movf.d");
- #else
- void ext_float (float);
- void ext_double (double);
- 
- float
- sub7 (float f, float g, int i)
- {
-   ext_float (i ? f : g);
- }
- 
- float
- sub8 (float f, float g, long l)
- {
-   ext_float (!l ? f : g);
- }
- 
- float
- sub9 (float f, float g, float h)
- {
-   ext_float (h ? f : g);
- }
- 
- double
- suba (double f, double g, int i)
- {
-   ext_double (i ? f : g);
- }
- 
- double
- subb (double f, double g, long l)
- {
-   ext_double (!l ? f : g);
- }
- 
- double
- subc (double f, double g, double h)
- {
-   ext_double (!h ? f : g);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-nmadd-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-nmadd-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-nmadd-1.c	Thu Jan 27 19:50:01 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-nmadd-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -ffast-math -mips4" } */
- /* { dg-final { scan-assembler "nmadd.s" } } */
- /* { dg-final { scan-assembler "nmadd.d" } } */
- /* { dg-final { scan-assembler "nmsub.s" } } */
- /* { dg-final { scan-assembler "nmsub.d" } } */
- 
- #if (__mips != 4 && __mips != 64) || __mips_soft_float
- asm ("# nmadd.s nmadd.d nmsub.s nmsub.d");
- #else
- float
- sub1 (float f, float g, float h)
- {
-   return -((f * g) + h);
- }
- 
- double
- sub2 (double f, double g, double h)
- {
-   return -((f * g) + h);
- }
- 
- float
- sub3 (float f, float g, float h)
- {
-   return -((f * g) - h);
- }
- 
- double
- sub4 (double f, double g, double h)
- {
-   return -((f * g) - h);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-nmadd-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-nmadd-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-nmadd-2.c	Thu Jan 27 19:50:01 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-nmadd-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,34 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -fno-fast-math -mips4" } */
- /* { dg-final { scan-assembler "nmadd.s" } } */
- /* { dg-final { scan-assembler "nmadd.d" } } */
- /* { dg-final { scan-assembler "nmsub.s" } } */
- /* { dg-final { scan-assembler "nmsub.d" } } */
- 
- #if (__mips != 4 && __mips != 64) || __mips_soft_float
- asm ("# nmadd.s nmadd.d nmsub.s nmsub.d");
- #else
- float
- sub1 (float f, float g, float h)
- {
-   return -((f * g) + h);
- }
- 
- double
- sub2 (double f, double g, double h)
- {
-   return -((f * g) + h);
- }
- 
- float
- sub3 (float f, float g, float h)
- {
-   return -((f * g) - h);
- }
- 
- double
- sub4 (double f, double g, double h)
- {
-   return -((f * g) - h);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-rsqrt-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-rsqrt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-rsqrt-1.c	Thu Jan 27 19:50:01 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-rsqrt-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -ffast-math -mips4" } */
- /* { dg-final { scan-assembler "rsqrt.d" } } */
- /* { dg-final { scan-assembler "rsqrt.s" } } */
- 
- #if (__mips != 4 && __mips != 64) || __mips_soft_float
- asm ("# rsqrt.d rsqrt.s");
- #else
- extern double sqrt(double);
- extern float sqrtf(float);
- 
- double foo(double x)
- {
-   return 1.0/sqrt(x);
- }
- 
- float bar(float x)
- {
-   return 1.0f/sqrtf(x);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-rsqrt-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-rsqrt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-rsqrt-2.c	Thu Jan 27 19:50:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-rsqrt-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -ffast-math -mips4" } */
- /* { dg-final { scan-assembler "rsqrt.d" } } */
- /* { dg-final { scan-assembler "rsqrt.s" } } */
- 
- #if (__mips != 4 && __mips != 64) || __mips_soft_float
- asm ("# rsqrt.d rsqrt.s");
- #else
- extern double sqrt(double);
- extern float sqrtf(float);
- 
- double foo(double x)
- {
-   return sqrt(1.0/x);
- }
- 
- float bar(float x)
- {
-   return sqrtf(1.0f/x);
- }
- #endif
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/mips-rsqrt-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/mips-rsqrt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/mips-rsqrt-3.c	Tue Aug 10 17:43:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/mips-rsqrt-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,28 ****
- /* { dg-do compile { target "mips*-*-*" } } */
- /* { dg-options "-O2 -mips4" } */
- /* { dg-final { scan-assembler-not "rsqrt.d" } } */
- /* { dg-final { scan-assembler-not "rsqrt.s" } } */
- 
- extern double sqrt(double);
- extern float sqrtf(float);
- 
- double foo(double x)
- {
-   return 1.0/sqrt(x);
- }
- 
- double bar(double x)
- {
-   return sqrt(1.0/x);
- }
- 
- float foof(float x)
- {
-   return 1.0f/sqrtf(x);
- }
- 
- float barf(float x)
- {
-   return sqrtf(1.0f/x);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/nest.c gcc-4.1.0/gcc/testsuite/gcc.dg/nest.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/nest.c	Fri Sep  3 18:09:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/nest.c	Tue Jan 10 07:36:25 2006
***************
*** 4,11 ****
  /* { dg-options "-O2 -pg" } */
  /* { dg-options "-O2 -pg -static" { target hppa*-*-hpux* } } */
  /* { dg-error "profiler" "No profiler support" { target xstormy16-*-* } 0 } */
- /* { dg-error "-pg not supported" "Profiler support missing" { target *-*-sco3.2v5* } 0 } */
- /* { dg-bogus "\[Uu\]nresolved symbol ._mcount" "Profiling unsupported" { xfail *-*-netware* } 0 } */
  
  extern void abort (void);
  
--- 4,9 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/nested-calls-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/nested-calls-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/nested-calls-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/nested-calls-1.c	Fri Dec  9 23:56:34 2005
***************
*** 0 ****
--- 1,42 ----
+ /* PR middle-end/24003 */
+ /* Contributed by Eric Botcazou <ebotcazou@adacore.com> */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-std=c99 -O -fno-inline" } */
+ /* { dg-options "-std=c99 -O -fno-inline -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ 
+ #include <limits.h>
+ 
+ typedef unsigned long uns32_t;
+ typedef unsigned long long uns64_t;
+ 
+ extern void abort(void);
+ 
+ uns32_t lo (uns64_t p)
+ {
+   return (uns32_t)p;
+ }
+ 
+ uns64_t concat (uns32_t p1, uns32_t p2)
+ {
+ #if LLONG_MAX > 2147483647L
+   return ((uns64_t)p1 << 32) | p2;
+ #else
+   return 0;
+ #endif
+ }
+ 
+ uns64_t lshift32 (uns64_t p1, uns32_t p2)
+ {
+   return concat (lo (p1), p2);
+ }
+ 
+ int main(void)
+ {
+ #if LLONG_MAX > 2147483647L
+   if (lshift32 (0xFFFFFFFF12345678ULL, 0x90ABCDEFUL) != 0x1234567890ABCDEFULL)
+     abort ();
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/nested-func-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/nested-func-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/nested-func-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/nested-func-4.c	Sat Nov 12 21:54:23 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do run } */
+ /* { dg-options "-pg" } */
+ /* { dg-options "-pg -static" { target hppa*-*-hpux* } } */
+ /* { dg-require-profiling "-pg" } */
+ 
+ extern void abort(void);
+ 
+ void foo(int i)
+ {
+   void bar(void)
+   {
+     if (i != 2)
+       abort ();
+   }
+ 
+   bar();
+ }
+ 
+ int main(void)
+ {
+   foo (2);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/20040203-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/20040203-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/20040203-3.c	Tue Feb  3 13:38:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/20040203-3.c	Wed Jun 15 15:55:47 2005
*************** int bug_or(void) { return (f().c || 1); 
*** 12,16 ****
  int bug_and(void) { return (f().c && 1); }  /* { dg-error "array that cannot be converted" } */
  int bug_cond(void) { return (f().c ? 1 : 0); }  /* { dg-error "array that cannot be converted" } */
  int bug_cond2(void) { return (f().c ? : 0); }  /* { dg-error "array that cannot be converted" } */
! int bug_not(void) { return !f().c; }  /* { dg-error "array that cannot be converted" } */
  int bug_bool(void) { return (_Bool) f().c; }  /* { dg-error "array that cannot be converted" } */
--- 12,16 ----
  int bug_and(void) { return (f().c && 1); }  /* { dg-error "array that cannot be converted" } */
  int bug_cond(void) { return (f().c ? 1 : 0); }  /* { dg-error "array that cannot be converted" } */
  int bug_cond2(void) { return (f().c ? : 0); }  /* { dg-error "array that cannot be converted" } */
! int bug_not(void) { return !f().c; }  /* { dg-error "wrong type argument to unary exclamation mark" } */
  int bug_bool(void) { return (_Bool) f().c; }  /* { dg-error "array that cannot be converted" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/920923-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/920923-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/920923-1.c	Mon Oct 21 19:05:47 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/920923-1.c	Sun Mar 13 01:09:47 2005
***************
*** 1,94 ****
! /* This test case contains a large number of syntactic errors.  We
!    believe the intent of the test is that the compiler simply not
!    crash.  The set of error messages reported is different when the C
!    parser is generated with bison 1.50 than 1.35.  It is not worth
!    attempting to prevent this.  Instead, we use a single dg-error with
!    a regexp that will match _all_ the errors indiscriminately.  The
!    old error/warning/etc markers are kept around for reference, but
!    disabled.
! 
!    Revisit after new (recursive descent) parser is implemented for C.
!    -- zw 2002-10-17  */
! 
! /* { dg-error ".*" "many syntax errors" { target *-*-* } 0 } */
! 
! typedef BYTE unsigned char;	/* { error "syntax error|empty decl" } */
  typedef int item_n;
  typedef int perm_set;
! struct PENT { caddr_t v_addr; };/* { error "parse error|no semicolon" } */
  typedef struct PENT prec;
  typedef struct PENT *prec_t;
  prec_t mem_hash;
! BYTE *mem_base;			/* { error "parse error|no type" } */
  struct PTE {
!      BYTE *p_page;		/* { error "parse error|no semicolon" } */
       perm_set p_perms;
! };				/* { error "parse error" } */
  typedef struct PTE pte;
  struct PTP {
       union {
! 	  struct *PTP p_tablep;	/* { error "parse error|no semicolon" } */
  	  struct *PTE p_entry;
!      } u;			/* { warning "no type or storage class" } */
       int valid;
! };				/* { error "parse error" } */
! typedef struct PTP (u.p_tablep);/* { error "parse error" } */
  int pfree=0;
  int pcount=0;
  
  void
  mmu_walk_find(va)
! caddr_t va;			/* { error "parse error|no type" } */
  {
!      BYTE *page_addr;
!      if (mmu_base[Level1(va)]->valid==0x0) {
! 	  l1_base = mmu_base[Level1(va)]->(u.p_tablep) = p_alloc();
! 	  mmu_base[Level1(va)]->valid = 0x3;	/* { error "parse error" } */
! 	  for (idx=0; idx<LEVEL1_ENTRIES; idx++)
  	       l1_base[idx]->valid = 0x0;
  	  goto build_level2;
       } else
! 	  l1_base = mmu_base[Level1(va)]->(u.p_tablep);
  
       if (l1_base[Level2(va)]->valid==0x0) {
       build_level2:
! 	  l2_base = l1_base[Level2(va)]->(u.p_tablep) = p_alloc();
! 	  l1_base[Level2(va)]->valid = 0x3;	/* { error "parse error" } */
! 	  for (idx=0; idx<LEVEL2_ENTRIES; idx++)
  	       l2_base[idx]->valid=0x0;
! 	  goto build_page;
       } else
! 	  l2_base = mmu_base[Level2(va)]->(u.p_tablep);
  
!      page_addr = l2_base[Level2(va)]->valid;/* { error "undeclared|no type" } */
! }				/* { error "parse error" } */
  
  void *
  a_translate(va_op, v_addr)
  int va_op;
! caddr_t v_addr;			/* { error "parse error" } */
  {
       register prec_t bucket;
!      register caddr_t p_addr;	/* { error "syntax error" } */
!      bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask); /* { error "undeclared|for each function" } */
       do {
! 	  if (bucket->v_addr == ((v_addr)>>ITEMBITS) {	/* { error "incomplete type|parse error" } */
  	       if(!(bucket->perm_set&va_op))
  		    goto prot_fault;
  	       return mem_base + v_addr;
  	  }
!      } while((bucket++)->v_addr != ((caddr_t)0));  /* { error "parse error" } */
  
   page_miss:
!      p_addr = (--bucket)->p_addr;	/* { error "undeclared|pointer to" } */
   page_type:
       switch (p_addr) {
!      case BUCKET_FULL:		/* { error "undeclared" } */
  	  enlarge_hash_table(mem_hash);
!      case((caddr_t)0):		/* { error "undeclared|parse error" } */
  	  p_addr = fill_item_entry(va_op, v_addr);
  	  goto page_type;
!      case((caddr_t)1):		/* { error "parse error" } */
       default:
  	  ((void)(((0))?0:(__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
  				     "FALSE", 327, "b.c"), 0)));
--- 1,80 ----
! typedef BYTE unsigned char;	/* { dg-error "expected" } */
  typedef int item_n;
  typedef int perm_set;
! struct PENT { caddr_t v_addr; };/* { dg-error "expected" } */
  typedef struct PENT prec;
  typedef struct PENT *prec_t;
  prec_t mem_hash;
! BYTE *mem_base;			/* { dg-error "expected" } */
  struct PTE {
!      BYTE *p_page;		/* { dg-error "expected" } */
       perm_set p_perms;
! };
  typedef struct PTE pte;
  struct PTP {
       union {
! 	  struct *PTP p_tablep;	/* { dg-error "expected" } */
  	  struct *PTE p_entry;
!      } u;
       int valid;
! };
! typedef struct PTP (u.p_tablep);/* { dg-error "expected" } */
  int pfree=0;
  int pcount=0;
  
  void
  mmu_walk_find(va)
! caddr_t va;			/* { dg-error "expected" } */
  {
!      BYTE *page_addr; /* { dg-error "undeclared|for each function" } */
!      if (mmu_base[Level1(va)]->valid==0x0) { /* { dg-error "undeclared" } */
! 	  l1_base = mmu_base[Level1(va)]->(u.p_tablep) = p_alloc(); /* { dg-error "expected|undeclared" } */
! 	  mmu_base[Level1(va)]->valid = 0x3;
! 	  for (idx=0; idx<LEVEL1_ENTRIES; idx++) /* { dg-error "undeclared" } */
  	       l1_base[idx]->valid = 0x0;
  	  goto build_level2;
       } else
! 	  l1_base = mmu_base[Level1(va)]->(u.p_tablep); /* { dg-error "expected" } */
  
       if (l1_base[Level2(va)]->valid==0x0) {
       build_level2:
! 	  l2_base = l1_base[Level2(va)]->(u.p_tablep) = p_alloc(); /* { dg-error "expected|undeclared" } */
! 	  l1_base[Level2(va)]->valid = 0x3;
! 	  for (idx=0; idx<LEVEL2_ENTRIES; idx++) /* { dg-error "undeclared" } */
  	       l2_base[idx]->valid=0x0;
! 	  goto build_page; /* { dg-error "used but not defined" } */
       } else
! 	  l2_base = mmu_base[Level2(va)]->(u.p_tablep); /* { dg-error "expected" } */
  
!      page_addr = l2_base[Level2(va)]->valid;
! }
  
  void *
  a_translate(va_op, v_addr)
  int va_op;
! caddr_t v_addr;			/* { dg-error "expected" } */
  {
       register prec_t bucket;
!      register caddr_t p_addr;	/* { dg-error "expected|undeclared" } */
!      bucket = mem_hash+((((v_addr)>>ITEMBITS))&hash_mask);
       do {
! 	  if (bucket->v_addr == ((v_addr)>>ITEMBITS) {	/* { dg-error "expected|undeclared|no member" } */
  	       if(!(bucket->perm_set&va_op))
  		    goto prot_fault;
  	       return mem_base + v_addr;
  	  }
!      } while((bucket++)->v_addr != ((caddr_t)0));  /* { dg-error "expected|undeclared|no member" } */
  
   page_miss:
!      p_addr = (--bucket)->p_addr;	/* { dg-error "no member" } */
   page_type:
       switch (p_addr) {
!      case BUCKET_FULL:		/* { dg-error "undeclared" } */
  	  enlarge_hash_table(mem_hash);
!      case((caddr_t)0):		/* { dg-error "expected" } */
  	  p_addr = fill_item_entry(va_op, v_addr);
  	  goto page_type;
!      case((caddr_t)1):		/* { dg-error "expected" } */
       default:
  	  ((void)(((0))?0:(__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
  				     "FALSE", 327, "b.c"), 0)));
*************** int hash_size;
*** 104,112 ****
       register int idx;
       bucket = hasht;
       for(idx=(hash_size*3)-1; idx>=0; idx--) {
! 	  bucket->v_addr = ((caddr_t)0);/* { error "undeclared|pointer to|parse error" } */
! 	  bucket->p_addr = ((caddr_t)0);/* { error "pointer to|parse error" } */
! 	  bucket->perm_set = VA_EMPTY;	/* { error "undeclared|pointer to" } */
       }
  }
  
--- 90,98 ----
       register int idx;
       bucket = hasht;
       for(idx=(hash_size*3)-1; idx>=0; idx--) {
! 	  bucket->v_addr = ((caddr_t)0);/* { dg-error "undeclared|expected|no member" } */
! 	  bucket->p_addr = ((caddr_t)0);/* { dg-error "no member|expected" } */
! 	  bucket->perm_set = VA_EMPTY;	/* { dg-error "undeclared|no member" } */
       }
  }
  
*************** extern void *calloc(__SIZE_TYPE__, __SIZ
*** 115,135 ****
  void
  init_mem()
  {
!      mem_base = (BYTE *) calloc(1024, (1<<13)); /* { error "undeclared|parse error" } */
!      ((void)((mem_base != (BYTE *)0)	/* { error "parse error" } */
  	     ? 0
  	     : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
  			  "mem_base != (BYTE *)0", 366, "b.c"),
  		0)));
!      hash_num = INIT_NUM_ENTRIES * 3;	/* { error "undeclared" } */
!      mem_hash = (prec_t) calloc(hash_num, sizeof(prec)); /* { error "incomplete type" } */
       ((void)((mem_hash != (prec_t)0)
  	     ? 0
  	     : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
  			  "mem_hash != (prec_t)0", 370, "b.c"),
  		0)));
       flush_hash(mem_hash, 32);
!      build_ptables(mem_base, 1024*(1<<13)); /* { bogus "integer overflow" "int smaller than 32 bits" } */
  }
  
  struct tm {
--- 101,121 ----
  void
  init_mem()
  {
!      mem_base = (BYTE *) calloc(1024, (1<<13)); /* { dg-error "undeclared|expected" } */
!      ((void)((mem_base != (BYTE *)0)	/* { dg-error "expected" } */
  	     ? 0
  	     : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
  			  "mem_base != (BYTE *)0", 366, "b.c"),
  		0)));
!      hash_num = INIT_NUM_ENTRIES * 3;	/* { dg-error "undeclared" } */
!      mem_hash = (prec_t) calloc(hash_num, sizeof(prec));
       ((void)((mem_hash != (prec_t)0)
  	     ? 0
  	     : (__eprintf("Failed assertion`%s'at line%d of`%s'.\n",
  			  "mem_hash != (prec_t)0", 370, "b.c"),
  		0)));
       flush_hash(mem_hash, 32);
!      build_ptables(mem_base, 1024*(1<<13)); /* { dg-bogus "integer overflow" "int smaller than 32 bits" } */
  }
  
  struct tm {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/971104-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/971104-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/971104-1.c	Fri Nov  5 16:43:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/971104-1.c	Fri Feb 25 23:20:48 2005
*************** static void up(int sem){
*** 25,29 ****
      ({ "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 )]) );
  }
--- 25,29 ----
      ({ "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 )]) ); /* { dg-error "expected" } */
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/990416-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/990416-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/990416-1.c	Fri Nov  5 16:43:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/990416-1.c	Fri Feb 25 23:20:48 2005
*************** typedef int word_type;
*** 3,9 ****
     
  static void
  copy_reg (unsigned int reg, frame_state *udata,	/* { dg-error "parse|syntax|expected" } */
! 	  frame_state *target_udata)
  {  
    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" } */
--- 3,9 ----
     
  static void
  copy_reg (unsigned int reg, frame_state *udata,	/* { dg-error "parse|syntax|expected" } */
! 	  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 -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/noncompile.exp gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/noncompile.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/noncompile.exp	Thu Feb  8 02:29:37 2001
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/noncompile.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Test error reporting.
  # Don't run this directory with any default CFLAGS, but do cycle through
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Test error reporting.
  # Don't run this directory with any default CFLAGS, but do cycle through
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/pr23576.c gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/pr23576.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noncompile/pr23576.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noncompile/pr23576.c	Tue Oct  4 13:58:42 2005
***************
*** 0 ****
--- 1 ----
+ struct ipr_path_entry path[0]; /* { dg-error "array type has incomplete element type" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/nonnull-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/nonnull-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/nonnull-3.c	Sun May  4 22:18:17 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/nonnull-3.c	Sun Apr  3 22:08:12 2005
*************** foo (void *p, char *s)
*** 33,42 ****
--- 33,48 ----
    __builtin_strncat (s, NULL, 16);  /* { dg-warning "null" "null pointer check" } */
    __builtin_stpcpy (NULL, s);  /* { dg-warning "null" "null pointer check" } */
    __builtin_stpcpy (s, NULL);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_stpncpy (NULL, s, 16);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_stpncpy (s, NULL, 16);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strcpy (NULL, s);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strcpy (s, NULL);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strncpy (NULL, s, 16);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strncpy (s, NULL, 16);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_strcasecmp (NULL, s);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_strcasecmp (s, NULL);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_strncasecmp (NULL, s, 16);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_strncasecmp (s, NULL, 16);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strcmp (NULL, s);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strcmp (s, NULL);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strncmp (NULL, s, 16);  /* { dg-warning "null" "null pointer check" } */
*************** foo (void *p, char *s)
*** 51,56 ****
--- 57,63 ----
    __builtin_strchr (NULL, 16);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strrchr (NULL, 16);  /* { dg-warning "null" "null pointer check" } */
    __builtin_strdup (NULL);  /* { dg-warning "null" "null pointer check" } */
+   __builtin_strndup (NULL, 16);  /* { dg-warning "null" "null pointer check" } */
  
    __builtin_nan (NULL);  /* { dg-warning "null" "null pointer check" } */
    __builtin_nanf (NULL);  /* { dg-warning "null" "null pointer check" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/noreturn-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/noreturn-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/noreturn-7.c	Thu May 13 06:40:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/noreturn-7.c	Sat May 14 14:24:49 2005
*************** int k()
*** 39,42 ****
    if (++z > 10)
      _exit(0);
    k();
! }
--- 39,42 ----
    if (++z > 10)
      _exit(0);
    k();
! }             /* { dg-warning "control reaches" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/nrv1.c gcc-4.1.0/gcc/testsuite/gcc.dg/nrv1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/nrv1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/nrv1.c	Fri Jun 24 19:30:20 2005
***************
*** 0 ****
--- 1,28 ----
+ /* Test that the NRV optimization doesn't cause a1 to change too soon.  This
+    is equivalent to c++/19317.  */
+ /* { dg-do run } */
+ 
+ void abort (void);
+ 
+ struct A
+ {
+   int i[100];
+ };
+ 
+ struct A a1;
+ 
+ struct A f ()
+ {
+   struct A a2;
+   a2.i[0] = 42;
+   /* a1.i[0] should still be 0 until we return. */
+   if (a1.i[0] != 0)
+     abort ();
+   return a2;
+ }
+ 
+ int main()
+ {
+   a1 = f();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/nrv2.c gcc-4.1.0/gcc/testsuite/gcc.dg/nrv2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/nrv2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/nrv2.c	Fri Jun 24 19:30:20 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Test that the tree_nrv pass works by making sure that we don't generate
+    a memcpy.  Throw in a bit of control flow to make its job a bit harder.  */
+ 
+ /* { dg-options "-O" } */
+ 
+ struct A { int i[100]; };
+ 
+ int b;
+ 
+ struct A f ()
+ {
+   struct A a;
+   if (b)
+     {
+       a.i[0] = 42;
+       return a;
+     }
+   else
+     {
+       a.i[42] = 1;
+       return a;
+     }
+ }
+ 
+ /* { dg-final { scan-assembler-not "memcpy" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/overflow-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/overflow-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/overflow-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/overflow-2.c	Mon Nov  7 10:34:13 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c99 -pedantic-errors" } */
+ 
+ /* PR c/24599 */
+ 
+ int
+ main (void)
+ {
+   if ((_Bool)(__INT_MAX__ + 1)) /* { dg-warning "overflow in expression" } */
+     return 1;
+   else
+     return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pack-test-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pack-test-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pack-test-1.c	Wed Dec 13 20:16:33 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pack-test-1.c	Mon Nov 14 04:23:39 2005
***************
*** 1,7 ****
  /* Test semantics of #pragma pack.
     Contributed by Mike Coleman <mcoleman2@kc.rr.com> */
  
! /* { dg-do compile { target *-*-linux* *-*-cygwin* powerpc*-*-eabi* } } */
  
  /* We only test the alignment of char, short, and int, because these
     are the only ones that are pretty certain to be the same across
--- 1,7 ----
  /* Test semantics of #pragma pack.
     Contributed by Mike Coleman <mcoleman2@kc.rr.com> */
  
! /* { dg-do compile { target { { *-*-linux* *-*-cygwin* powerpc*-*-eabi* } && { ! default_packed } } } } */
  
  /* We only test the alignment of char, short, and int, because these
     are the only ones that are pretty certain to be the same across
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-1.c	Sat Jul 30 01:34:58 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test GNU parameter forward declarations.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ /* Valid uses.  */
+ int f1(int a; int a);
+ int f2(int a; int a) { return 0; }
+ int f3(int a; int a; int a);
+ int f4(int a; int a; int a) { return 0; }
+ int f5(int a; int (*x)[a], int a);
+ int f6(int a; int (*x)[a], int a) { return 0; }
+ int f7(int a; int (*x)[a]; int (*y)[x[1][2]], int (*x)[a], int a);
+ int f8(int a; int (*x)[a]; int (*y)[x[1][2]], int (*x)[a], int a) { return 0; }
+ 
+ /* Strange uses accepted by GCC 4.0 but not by 3.4 and probably not
+    desirable to accept.  */
+ int g1(int a;); /* { dg-error "just a forward declaration" "no parms" { xfail *-*-* } } */
+ int g2(int a; __attribute__((unused))); /* { dg-error "just a forward declaration" "no parms" { xfail *-*-* } } */
+ int g3(int;); /* { dg-error "just a forward declaration" "no parms" { xfail *-*-* } } */
+ int g4(int, long;); /* { dg-error "just a forward declaration" "no parms" { xfail *-*-* } } */
+ 
+ /* Invalid uses.  */
+ int h1(int a; int b); /* { dg-error "just a forward declaration" } */
+ int h2(int; int b); /* { dg-error "just a forward declaration" } */
+ int h3(int a; long a); /* { dg-error "conflicting types|previous definition|just a forward declaration" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-2.c	Sat Jul 30 01:34:58 2005
***************
*** 0 ****
--- 1,8 ----
+ /* Test GNU parameter forward declarations.  Warning with
+    -pedantic.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-pedantic" } */
+ 
+ int f1(int a; int a); /* { dg-warning "warning: ISO C forbids forward parameter declarations" } */
+ int f2(int a; int a) { return 0; } /* { dg-warning "warning: ISO C forbids forward parameter declarations" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-3.c	Sat Jul 30 01:34:58 2005
***************
*** 0 ****
--- 1,8 ----
+ /* Test GNU parameter forward declarations.  Error with
+    -pedantic-errors.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-pedantic-errors" } */
+ 
+ int f1(int a; int a); /* { dg-error "error: ISO C forbids forward parameter declarations" } */
+ int f2(int a; int a) { return 0; } /* { dg-error "error: ISO C forbids forward parameter declarations" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/parm-forwdecl-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/parm-forwdecl-4.c	Sat Jul 30 01:34:58 2005
***************
*** 0 ****
--- 1,10 ----
+ /* Test GNU parameter forward declarations.  OK with
+    -Wredundant-decls.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-Wredundant-decls" } */
+ 
+ int f1(int a; int a);
+ int f2(int a; int a) { return 0; }
+ int f3(int a; int a; int a);
+ int f4(int a; int a; int a) { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pch/pch.exp gcc-4.1.0/gcc/testsuite/gcc.dg/pch/pch.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pch/pch.exp	Wed Apr  7 23:12:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pch/pch.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite for precompiled header interaction,
  # that uses the `dg.exp' driver.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite for precompiled header interaction,
  # that uses the `dg.exp' driver.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pch/save-temps-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pch/save-temps-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pch/save-temps-1.c	Tue Jun 22 06:51:56 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pch/save-temps-1.c	Thu Mar 31 18:21:38 2005
***************
*** 5,7 ****
--- 5,9 ----
  #endif
  #include <stddef.h>
  int x;
+ 
+ /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pic-macro-define.c gcc-4.1.0/gcc/testsuite/gcc.dg/pic-macro-define.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pic-macro-define.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pic-macro-define.c	Wed Aug 24 18:22:12 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do run { target "i?86-*-*-darwin" powerpc*-*-darwin* } } */
+ /* { dg-options "-fPIC" } */
+ 
+ #if defined __PIC__ 
+ int main() {
+ 	return 0;
+ }
+ #else
+   error "NO __PIC__ DEFINED"	
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-and-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-and-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-and-1.c	Thu Nov 18 18:08:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-and-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do compile { target powerpc64-*-* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-O2" } */
- 
- /* { dg-final { scan-assembler "rlwinm \[0-9\]+,\[0-9\]+,0,0,30"  } } */
- /* { dg-final { scan-assembler "rlwinm \[0-9\]+,\[0-9\]+,0,29,30"  } } */
- /* { dg-final { scan-assembler-not "rldicr" } } */
- 
- /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
- 
- /* PR 16457 - use rlwinm insn.  */
- 
- char *foo1 (char *p, unsigned int x)
- {
-   return p - (x & ~1);
- }
- 
- char *foo2 (char *p, unsigned int x)
- {
-   return p - (x & 6);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-bitfield1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-bitfield1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-bitfield1.c	Thu Nov 18 18:08:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-bitfield1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,68 ****
- /* { dg-do compile { target powerpc64-*-* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-O2" } */
- 
- /* { dg-final { scan-assembler-not "rlwinm \[0-9\]+,\[0-9\]+,\[0-9\]+,1,31"  } } */
- /* { dg-final { scan-assembler-not "rlwinm \[0-9\]+,\[0-9\]+,\[0-9\]+,0xffffffff" } } */
- 
- /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
- 
- /* PR 17104 many sign extends added.  */
- 
- struct {
-  int f1 : 1;
-  int f2 : 1;
-  int f3 : 1;
-  int f4 : 1;
-  int f5 : 1;
-  int f6 : 1;
-  int f7 : 1;
-  int f8 : 1;
-  int f9 : 1;
-  int f10 : 1;
-  int f11 : 1;
-  int f12 : 1;
-  int f13 : 1;
-  int f14 : 1;
-  int f15 : 1;
-  int f16 : 1;
-  int f17 : 2;
-  int f18 : 2;
-  int f19 : 2;
-  int f20 : 2;
-  int f21 : 2;
-  int f22 : 2;
-  int f23 : 2;
-  int f24 : 2;
-  } s;
- 
- void foo ()
- {
- 
-     s.f1 = 0;
-     s.f2 = 0;
-     s.f3 = 0;
-     s.f4 = 0;
-     s.f5 = 0;
-     s.f6 = 0;
-     s.f7 = 0;
-     s.f8 = 0;
-     s.f9 = 0;
-     s.f10 = 0;
-     s.f11 = 0;
-     s.f12 = 0;
-     s.f13 = 0;
-     s.f14 = 0;
-     s.f15 = 0;
-     s.f16 = 0;
-     s.f17 = 0;
-     s.f18 = 0;
-     s.f19 = 0;
-     s.f20 = 0;
-     s.f21 = 0;
-     s.f22 = 0;
-     s.f23 = 0;
-     s.f24 = 0;
- 
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-compare-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-compare-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-compare-1.c	Thu Nov 18 18:08:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-compare-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile { target powerpc64-*-* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-O2" } */
- 
- /* { dg-final { scan-assembler-not "cmpw" } } */
- 
- /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
- 
- /* PR 16458: Extraneous compare.  */
- 
- int foo (unsigned a, unsigned b)
- {
-   if (a == b) return 1;
-   if (a > b)  return 2;
-   if (a < b)  return 3;
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-eabi.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-eabi.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-eabi.c	Tue Feb  1 21:27:16 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-eabi.c	Thu Jan  1 00:00:00 1970
***************
*** 1,4 ****
- /* PR target/16952 */
- /* { dg-do compile { target { powerpc*-*-linux* && ilp32 } } } */
- /* { dg-options "-meabi -mrelocatable" } */
- char *s = "boo";
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fmadd-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fmadd-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fmadd-1.c	Thu Dec  5 01:05:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fmadd-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,43 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-ffast-math -O2" } */
- /* { dg-final { scan-assembler-not "f(add|sub|mul|neg)" } } */
- 
- void foo(double *a, double *b, double *c, double *d)
- {
-   a[0] =  b[0] + c[0] * d[0];		// fmadd
-   a[1] =  b[1] - c[1] * d[1];		// fnmsub with fast-math
-   a[2] = -b[2] + c[2] * d[2];   	// fmsub
-   a[3] = -b[3] - c[3] * d[3];		// fnmadd with fast-math
-   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
-   a[5] = -( b[5] - c[5] * d[5]);	// fmsub with fast-math
-   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
-   a[7] = -(-b[7] - c[7] * d[7]);	// fmadd with fast-math
-   a[10] =  b[10] - c[10] * -d[10];	// fmadd
-   a[11] =  b[11] + c[11] * -d[11];	// fnmsub with fast-math
-   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
-   a[13] = -b[13] + c[13] * -d[13];	// fnmadd with fast-math
-   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
-   a[15] = -( b[15] + c[15] * -d[15]);	// fmsub with fast-math
-   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
-   a[17] = -(-b[17] + c[17] * -d[17]);	// fmadd with fast-math
- }
- 
- void foos(float *a, float *b, float *c, float *d)
- {
-   a[0] =  b[0] + c[0] * d[0];		// fmadd
-   a[1] =  b[1] - c[1] * d[1];		// fnmsub with fast-math
-   a[2] = -b[2] + c[2] * d[2];   	// fmsub
-   a[3] = -b[3] - c[3] * d[3];		// fnmadd with fast-math
-   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
-   a[5] = -( b[5] - c[5] * d[5]);	// fmsub with fast-math
-   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
-   a[7] = -(-b[7] - c[7] * d[7]);	// fmadd with fast-math
-   a[10] =  b[10] - c[10] * -d[10];	// fmadd
-   a[11] =  b[11] + c[11] * -d[11];	// fnmsub with fast-math
-   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
-   a[13] = -b[13] + c[13] * -d[13];	// fnmadd with fast-math
-   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
-   a[15] = -( b[15] + c[15] * -d[15]);	// fmsub with fast-math
-   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
-   a[17] = -(-b[17] + c[17] * -d[17]);	// fmadd with fast-math
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fmadd-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fmadd-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fmadd-2.c	Thu Dec  5 01:05:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fmadd-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,27 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O2" } */
- /* { dg-final { scan-assembler-not "f(add|sub|mul|neg)" } } */
- 
- void foo(double *a, double *b, double *c, double *d)
- {
-   a[0] =  b[0] + c[0] * d[0];		// fmadd
-   a[2] = -b[2] + c[2] * d[2];   	// fmsub
-   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
-   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
-   a[10] =  b[10] - c[10] * -d[10];	// fmadd
-   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
-   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
-   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
- }
- 
- void foos(float *a, float *b, float *c, float *d)
- {
-   a[0] =  b[0] + c[0] * d[0];		// fmadd
-   a[2] = -b[2] + c[2] * d[2];   	// fmsub
-   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
-   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
-   a[10] =  b[10] - c[10] * -d[10];	// fmadd
-   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
-   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
-   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fmadd-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fmadd-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fmadd-3.c	Thu Dec  5 01:05:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fmadd-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,36 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O2" } */
- /* { dg-final { scan-assembler-not "f(add|sub|mul)" } } */
- 
- void foo(double *a, double *b, double *c, double *d)
- {
- #if 0
-   a[1] =  b[1] - c[1] * d[1];		// fneg, fmadd without fast-math
- #endif
-   a[3] = -b[3] - c[3] * d[3];		// fneg, fmsub without fast-math
- #if 0
-   a[5] = -( b[5] - c[5] * d[5]);	// fneg, fnmadd without fast-math
- #endif
-   a[7] = -(-b[7] - c[7] * d[7]);	// fneg, fnmsub without fast-math
-   a[11] =  b[11] + c[11] * -d[11];	// fneg, fmadd without fast-math
-   a[13] = -b[13] + c[13] * -d[13];	// fneg, fmsub without fast-math
-   a[15] = -( b[15] + c[15] * -d[15]);	// fneg, fnmadd without fast-math
-   a[17] = -(-b[17] + c[17] * -d[17]);	// fneg, fnmsub without fast-math
- }
- 
- void foos(float *a, float *b, float *c, float *d)
- {
- #if 0
-   a[1] =  b[1] - c[1] * d[1];		// fneg, fmadd without fast-math
- #endif
-   a[3] = -b[3] - c[3] * d[3];		// fneg, fmsub without fast-math
- #if 0
-   a[5] = -( b[5] - c[5] * d[5]);	// fneg, fnmadd without fast-math
- #endif
-   a[7] = -(-b[7] - c[7] * d[7]);	// fneg, fnmsub without fast-math
-   a[11] =  b[11] + c[11] * -d[11];	// fneg, fmadd without fast-math
-   a[13] = -b[13] + c[13] * -d[13];	// fneg, fmsub without fast-math
-   a[15] = -( b[15] + c[15] * -d[15]);	// fneg, fnmadd without fast-math
-   a[17] = -(-b[17] + c[17] * -d[17]);	// fneg, fnmsub without fast-math
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fsel-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fsel-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fsel-1.c	Thu Oct  7 21:16:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fsel-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O -mpowerpc-gfxopt -fno-trapping-math" } */
- /* { dg-final { scan-assembler "fsel" } } */
- 
- /* If the user doesn't care about signals, fsel can be used in many cases.  */
- 
- double foo(double a, double b, double c, double d)
- {
-   return a < b ? c : d;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fsel-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fsel-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fsel-2.c	Mon May  5 19:33:52 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fsel-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,80 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O -mpowerpc-gfxopt -g0 -ffinite-math-only" } */
- /* { dg-final { scan-assembler-not "^L" } } */
- 
- /* Every single one of these should be compiled into straight-line
-    code using fsel (or, in a few cases, hardwired to 'true' or
-    'false'), no branches anywhere.  */
- 
- double
- test_isunordered(double x, double y, double a, double b)
- {
-   return __builtin_isunordered(x, y) ? a : b;
- }
- 
- double
- test_not_isunordered(double x, double y, double a, double b)
- {
-   return !__builtin_isunordered(x, y) ? a : b;
- }
- 
- double
- test_isless(double x, double y, double a, double b)
- {
-   return __builtin_isless(x, y) ? a : b;
- }
- 
- double
- test_not_isless(double x, double y, double a, double b)
- {
-   return !__builtin_isless(x, y) ? a : b;
- }
- 
- double
- test_islessequal(double x, double y, double a, double b)
- {
-   return __builtin_islessequal(x, y) ? a : b;
- }
- 
- double
- test_not_islessequal(double x, double y, double a, double b)
- {
-   return !__builtin_islessequal(x, y) ? a : b;
- }
- 
- double
- test_isgreater(double x, double y, double a, double b)
- {
-   return __builtin_isgreater(x, y) ? a : b;
- }
- 
- double
- test_not_isgreater(double x, double y, double a, double b)
- {
-   return !__builtin_isgreater(x, y) ? a : b;
- }
- 
- double
- test_isgreaterequal(double x, double y, double a, double b)
- {
-   return __builtin_isgreaterequal(x, y) ? a : b;
- }
- 
- double
- test_not_isgreaterequal(double x, double y, double a, double b)
- {
-   return !__builtin_isgreaterequal(x, y) ? a : b;
- }
- 
- double
- test_islessgreater(double x, double y, double a, double b)
- {
-   return __builtin_islessgreater(x, y) ? a : b;
- }
- 
- double
- test_not_islessgreater(double x, double y, double a, double b)
- {
-   return !__builtin_islessgreater(x, y) ? a : b;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fsel-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fsel-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-fsel-3.c	Thu Oct  7 21:16:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-fsel-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,11 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O -mpowerpc-gfxopt" } */
- /* { dg-final { scan-assembler-not "fsub" } } */
- 
- /* Check that an fsub isn't generated when no arithmetic was requested;
-    such an fsub might incorrectly set floating-point exception flags.  */
- 
- double foo(double a, double b, double c, double d)
- {
-   return a < b ? c : d;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-ldstruct.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-ldstruct.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-ldstruct.c	Sat Aug 21 00:02:40 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-ldstruct.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do run { target powerpc*-*-eabi* powerpc*-*-elf* powerpc*-*-linux* } } */
- /* { dg-options "-O -mlong-double-128" } */
- 
- #include <stdlib.h>
- 
- /* SVR4 and EABI both specify that 'long double' is aligned to a 128-bit
-    boundary in structures.  */
- 
- struct {
-   int x;
-   long double d;
- } s;
- 
- int main(void)
- {
-   if (sizeof (s) != 32)
-     abort ();
-   if ((char *)&s.d - (char *)&s != 16)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-mov-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-mov-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-mov-1.c	Thu Nov 18 18:08:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-mov-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,53 ****
- /* { dg-do compile { target powerpc64-*-* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-O2" } */
- 
- /* { dg-final { scan-assembler-not "fmr \[0-9\]+,\[0-9\]+" } }
- 
- /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
- 
- /* PR 16796: Extraneous move.  */
- 
- static const double huge = 1.0e300;
- typedef int int64_t __attribute__ ((__mode__ (__DI__)));
- typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
- 
- double __floor(double x)
- {
-   union {
-     double dbl_val;
-     long int long_val;
-   } temp;
- 
-   int64_t i0,j0;
-   u_int64_t i;
-   temp.dbl_val = x;
-   i0 = temp.long_val;
- 
-   j0 = ((i0>>52)&0x7ff)-0x3ff;
-   if(j0<52) {
-     if(j0<0) {
-       if(huge+x>0.0) {
-         if(i0>=0) {i0=0;}
-         else if((i0&0x7fffffffffffffff)!=0)
-         { i0=0xbff0000000000000;}
-       }
-     } else {
-       i = (0x000fffffffffffff)>>j0;
-       if((i0&i)==0) return x;
-       if(huge+x>0.0) {
-         if(i0<0) i0 += (0x0010000000000000)>>j0;
-         i0 &= (~i);
-       }
-     }
-   } else {
-     if (j0==0x400)
-       return x+x;
-     else
-       return x;
-   }
-   temp.long_val = i0;
-   x = temp.dbl_val;
-   return x;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-sdata-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-sdata-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-sdata-1.c	Mon Oct 18 03:23:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-sdata-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target powerpc-*-linux* powerpc-*-sysv* powerpc-*-eabi* } } */
- /* { dg-options "-O2 -fno-common -G 8 -meabi -msdata=eabi" } */
- /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */
- /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata2," } } */
- /* { dg-final { scan-assembler "sdat@sda21\\((13|0)\\)" } } */
- /* { dg-final { scan-assembler "sdat2@sda21\\((2|0)\\)" } } */
- 
- 
- int sdat = 2;
- const char sdat2[] = "1234";
- 
- const char * test (void)
- {
-   return sdat ? sdat2 : 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-sdata-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-sdata-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-sdata-2.c	Mon Mar 10 20:42:23 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-sdata-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* { dg-do compile { target powerpc-*-linux* powerpc-*-sysv* powerpc-*-eabi* } } */
- /* { dg-options "-O2 -fno-common -G 8 -msdata=sysv" } */
- /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */
- /* { dg-final { scan-assembler-not "\\.section\[ \t\]\\.sdata2," } } */
- /* { dg-final { scan-assembler "sdat@sdarel\\(13\\)" } } */
- /* { dg-final { scan-assembler "sdat2@sdarel\\(13\\)" } } */
- 
- 
- int sdat = 2;
- const char sdat2[] = "1234";
- 
- const char * test (void)
- {
-   return sdat ? sdat2 : 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-spe.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-spe.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-spe.c	Wed Feb 12 23:54:32 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-spe.c	Thu Jan  1 00:00:00 1970
***************
*** 1,662 ****
- /* { dg-do compile { target powerpc-*-eabispe } } */
- /* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
- 
- /* (Test with -O0 so we don't optimize any of them away).  */
- 
- #include <spe.h>
- 
- /* Test PowerPC SPE extensions.  */
- 
- #define vector __attribute__((vector_size(8)))
- 
- vector int a, b, c, *ap;
- vector float f, g, h;
- unsigned int *uip;
- unsigned short *usp;
- int i, j, *ip;
- uint64_t ull;
- int64_t sll;
- unsigned ui;
- float fl;
- uint16_t u16;
- int16_t s16;
- 
- /* These are the only documented/supported accesor functions for the
-    SPE builtins.  */
- void
- test_api ()
- {
-   c = __ev_addw (a, b);
-   c = __ev_addiw (a, 8);
-   c = __ev_subfw (a, b);
-   c = __ev_subifw (8, a);
-   c = __ev_abs (a);
-   c = __ev_neg (a);
-   c = __ev_extsb (a);
-   c = __ev_extsh (a);
-   c = __ev_and (a, b);
-   c = __ev_or (a, b);
-   c = __ev_xor (a, b);
-   c = __ev_nand (a, b);
-   c = __ev_nor (a, b);
-   c = __ev_eqv (a, b);
-   c = __ev_andc (a, b);
-   c = __ev_orc (a, b);
-   c = __ev_rlw (a, b);
-   c = __ev_rlwi (a, 8);
-   c = __ev_slw (a, b);
-   c = __ev_slwi (a, 8);
-   c = __ev_srws (a, b);
-   c = __ev_srwu (a, b);
-   c = __ev_srwis (a, 8);
-   c = __ev_srwiu (a, 8);
-   c = __ev_cntlzw (a);
-   c = __ev_cntlsw (a);
-   c = __ev_rndw (a);
-   c = __ev_mergehi (a, b);
-   c = __ev_mergelo (a, b);
-   c = __ev_mergelohi (a, b);
-   c = __ev_mergehilo (a, b);
-   c = __ev_splati (5);
-   c = __ev_splatfi (6);
-   c = __ev_divws (a, b);
-   c = __ev_divwu (a, b);
-   c = __ev_mra (a);
-   i = __brinc (5, 6);
- 
-   /* Loads.  */
-   c = __ev_lddx (ap, i);
-   c = __ev_ldwx (ap, i);
-   c = __ev_ldhx (ap, i);
- 
-   c = __ev_lwhex (uip, i);
-   c = __ev_lwhoux (uip, i);
-   c = __ev_lwhosx (uip, i);
-   c = __ev_lwwsplatx (uip, i);
-   c = __ev_lwhsplatx (uip, i);
- 
-   c = __ev_lhhesplatx (usp, i);
-   c = __ev_lhhousplatx (usp, i);
-   c = __ev_lhhossplatx (usp, i);
- 
-   c = __ev_ldd (ap, 5);
-   c = __ev_ldw (ap, 6);
-   c = __ev_ldh (ap, 7);
-   c = __ev_lwhe (uip, 6);
-   c = __ev_lwhou (uip, 6);
-   c = __ev_lwhos (uip, 7);
-   c = __ev_lwwsplat (uip, 7);
-   c = __ev_lwhsplat (uip, 7);
-   c = __ev_lhhesplat (usp, 7);
-   c = __ev_lhhousplat (usp, 7);
-   c = __ev_lhhossplat (usp, 7);
- 
-   /* Stores.  */
-   __ev_stddx (a, ap, 9);
-   __ev_stdwx (a, ap, 9);
-   __ev_stdhx (a, ap, 9);
-   __ev_stwwex (a, uip, 9);
-   __ev_stwwox (a, uip, 9);
-   __ev_stwhex (a, uip, 9);
-   __ev_stwhox (a, uip, 9);
-   __ev_stdd (a, ap, 9);
-   __ev_stdw (a, ap, 9);
-   __ev_stdh (a, ap, 9);
-   __ev_stwwe (a, uip, 9);
-   __ev_stwwo (a, uip, 9);
-   __ev_stwhe (a, uip, 9);
-   __ev_stwho (a, uip, 9);
- 
-   /* Fixed point complex.  */
-   c = __ev_mhossf (a, b);
-   c = __ev_mhosmf (a, b);
-   c = __ev_mhosmi (a, b);
-   c = __ev_mhoumi (a, b);
-   c = __ev_mhessf (a, b);
-   c = __ev_mhesmf (a, b);
-   c = __ev_mhesmi (a, b);
-   c = __ev_mheumi (a, b);
-   c = __ev_mhossfa (a, b);
-   c = __ev_mhosmfa (a, b);
-   c = __ev_mhosmia (a, b);
-   c = __ev_mhoumia (a, b);
-   c = __ev_mhessfa (a, b);
-   c = __ev_mhesmfa (a, b);
-   c = __ev_mhesmia (a, b);
-   c = __ev_mheumia (a, b);
- 
-   c = __ev_mhoumf (a, b);
-   c = __ev_mheumf (a, b);
-   c = __ev_mhoumfa (a, b);
-   c = __ev_mheumfa (a, b);
- 
-   c = __ev_mhossfaaw (a, b);
-   c = __ev_mhossiaaw (a, b);
-   c = __ev_mhosmfaaw (a, b);
-   c = __ev_mhosmiaaw (a, b);
-   c = __ev_mhousiaaw (a, b);
-   c = __ev_mhoumiaaw (a, b);
-   c = __ev_mhessfaaw (a, b);
-   c = __ev_mhessiaaw (a, b);
-   c = __ev_mhesmfaaw (a, b);
-   c = __ev_mhesmiaaw (a, b);
-   c = __ev_mheusiaaw (a, b);
-   c = __ev_mheumiaaw (a, b);
- 
-   c = __ev_mhousfaaw (a, b);
-   c = __ev_mhoumfaaw (a, b);
-   c = __ev_mheusfaaw (a, b);
-   c = __ev_mheumfaaw (a, b);
- 
-   c = __ev_mhossfanw (a, b);
-   c = __ev_mhossianw (a, b);
-   c = __ev_mhosmfanw (a, b);
-   c = __ev_mhosmianw (a, b);
-   c = __ev_mhousianw (a, b);
-   c = __ev_mhoumianw (a, b);
-   c = __ev_mhessfanw (a, b);
-   c = __ev_mhessianw (a, b);
-   c = __ev_mhesmfanw (a, b);
-   c = __ev_mhesmianw (a, b);
-   c = __ev_mheusianw (a, b);
-   c = __ev_mheumianw (a, b);
- 
-   c = __ev_mhousfanw (a, b);
-   c = __ev_mhoumfanw (a, b);
-   c = __ev_mheusfanw (a, b);
-   c = __ev_mheumfanw (a, b);
- 
-   c = __ev_mhogsmfaa (a, b);
-   c = __ev_mhogsmiaa (a, b);
-   c = __ev_mhogumiaa (a, b);
-   c = __ev_mhegsmfaa (a, b);
-   c = __ev_mhegsmiaa (a, b);
-   c = __ev_mhegumiaa (a, b);
- 
-   c = __ev_mhogumfaa (a, b);
-   c = __ev_mhegumfaa (a, b);
- 
-   c = __ev_mhogsmfan (a, b);
-   c = __ev_mhogsmian (a, b);
-   c = __ev_mhogumian (a, b);
-   c = __ev_mhegsmfan (a, b);
-   c = __ev_mhegsmian (a, b);
-   c = __ev_mhegumian (a, b);
- 
-   c = __ev_mhogumfan (a, b);
-   c = __ev_mhegumfan (a, b);
- 
-   c = __ev_mwhssf (a, b);
-   c = __ev_mwhsmf (a, b);
-   c = __ev_mwhsmi (a, b);
-   c = __ev_mwhumi (a, b);
-   c = __ev_mwhssfa (a, b);
-   c = __ev_mwhsmfa (a, b);
-   c = __ev_mwhsmia (a, b);
-   c = __ev_mwhumia (a, b);
- 
-   c = __ev_mwhumf (a, b);
-   c = __ev_mwhumfa (a, b);
- 
-   c = __ev_mwlumi (a, b);
-   c = __ev_mwlumia (a, b);
-   c = __ev_mwlumiaaw (a, b);
- 
-   c = __ev_mwlssiaaw (a, b);
-   c = __ev_mwlsmiaaw (a, b);
-   c = __ev_mwlusiaaw (a, b);
-   c = __ev_mwlusiaaw (a, b);
- 
-   c = __ev_mwlssianw (a, b);
-   c = __ev_mwlsmianw (a, b);
-   c = __ev_mwlusianw (a, b);
-   c = __ev_mwlumianw (a, b);
- 
-   c = __ev_mwssf (a, b);
-   c = __ev_mwsmf (a, b);
-   c = __ev_mwsmi (a, b);
-   c = __ev_mwumi (a, b);
-   c = __ev_mwssfa (a, b);
-   c = __ev_mwsmfa (a, b);
-   c = __ev_mwsmia (a, b);
-   c = __ev_mwumia (a, b);
-   c = __ev_mwumf (a, b);
-   c = __ev_mwumfa (a, b);
-   c = __ev_mwssfaa (a, b);
-   c = __ev_mwsmfaa (a, b);
-   c = __ev_mwsmiaa (a, b);
-   c = __ev_mwumiaa (a, b);
-   c = __ev_mwumfaa (a, b);
-   c = __ev_mwssfan (a, b);
-   c = __ev_mwsmfan (a, b);
-   c = __ev_mwsmian (a, b);
-   c = __ev_mwumian (a, b);
-   c = __ev_mwumfan (a, b);
-   c = __ev_addssiaaw (a);
-   c = __ev_addsmiaaw (a);
-   c = __ev_addusiaaw (a);
-   c = __ev_addumiaaw (a);
-   c = __ev_addusfaaw (a);
-   c = __ev_addumfaaw (a);
-   c = __ev_addsmfaaw (a);
-   c = __ev_addssfaaw (a);
-   c = __ev_subfssiaaw (a);
-   c = __ev_subfsmiaaw (a);
-   c = __ev_subfusiaaw (a);
-   c = __ev_subfumiaaw (a);
-   c = __ev_subfusfaaw (a);
-   c = __ev_subfumfaaw (a);
-   c = __ev_subfsmfaaw (a);
-   c = __ev_subfssfaaw (a);
- 
-   /* Floating point SIMD instructions.  */
-   c = __ev_fsabs (a);
-   c = __ev_fsnabs (a);
-   c = __ev_fsneg (a);
-   c = __ev_fsadd (a, b);
-   c = __ev_fssub (a, b);
-   c = __ev_fsmul (a, b);
-   c = __ev_fsdiv (a, b);
-   c = __ev_fscfui (a);
-   c = __ev_fscfsi (a);
-   c = __ev_fscfuf (a);
-   c = __ev_fscfsf (a);
-   c = __ev_fsctui (a);
-   c = __ev_fsctsi (a);
-   c = __ev_fsctuf (a);
-   c = __ev_fsctsf (a);
-   c = __ev_fsctuiz (a);
-   c = __ev_fsctsiz (a);
- 
-   /* Non supported sythetic instructions made from two instructions.  */
- 
-   c = __ev_mwhssfaaw (a, b);
-   c = __ev_mwhssiaaw (a, b);
-   c = __ev_mwhsmfaaw (a, b);
-   c = __ev_mwhsmiaaw (a, b);
-   c = __ev_mwhusiaaw (a, b);
-   c = __ev_mwhumiaaw (a, b);
-   c = __ev_mwhusfaaw (a, b);
-   c = __ev_mwhumfaaw (a, b);
-   c = __ev_mwhssfanw (a, b);
-   c = __ev_mwhssianw (a, b);
-   c = __ev_mwhsmfanw (a, b);
-   c = __ev_mwhsmianw (a, b);
-   c = __ev_mwhusianw (a, b);
-   c = __ev_mwhumianw (a, b);
-   c = __ev_mwhusfanw (a, b);
-   c = __ev_mwhumfanw (a, b);
- 
-   c = __ev_mwhgssfaa (a, b);
-   c = __ev_mwhgsmfaa (a, b);
-   c = __ev_mwhgsmiaa (a, b);
-   c = __ev_mwhgumiaa (a, b);
-   c = __ev_mwhgssfan (a, b);
-   c = __ev_mwhgsmfan (a, b);
-   c = __ev_mwhgsmian (a, b);
-   c = __ev_mwhgumian (a, b);
- 
-   /* Creating, insertion, and extraction.  */
- 
-   a = __ev_create_u64 ((uint64_t) 55);
-   a = __ev_create_s64 ((int64_t) 66);
-   a = __ev_create_fs (3.14F, 2.18F);
-   a = __ev_create_u32 ((uint32_t) 5, (uint32_t) i);
-   a = __ev_create_s32 ((int32_t) 5, (int32_t) 6);
-   a = __ev_create_u16 ((uint16_t) 6, (uint16_t) 6, (uint16_t) 7, (uint16_t) 1);
-   a = __ev_create_s16 ((int16_t) 6, (int16_t) 6, (int16_t) 7, (int16_t) 9);
-   a = __ev_create_sfix32_fs (3.0F, 2.0F);
-   a = __ev_create_ufix32_fs (3.0F, 2.0F);
-   a = __ev_create_ufix32_u32 (3U, 5U);
-   a = __ev_create_sfix32_s32 (6, 9);
-   ull = __ev_convert_u64 (a);
-   sll = __ev_convert_s64 (a);
-   i = __ev_get_upper_u32 (a);
-   ui = __ev_get_lower_u32 (a);
-   i = __ev_get_upper_s32 (a);
-   i = __ev_get_lower_s32 (a);
-   fl = __ev_get_upper_fs (a);
-   fl = __ev_get_lower_fs (a);
-   u16 = __ev_get_u16 (a, 5U);
-   s16 = __ev_get_s16 (a, 5U);
-   ui = __ev_get_upper_ufix32_u32 (a);
-   ui = __ev_get_lower_ufix32_u32 (a);
-   i = __ev_get_upper_sfix32_s32 (a);
-   i = __ev_get_lower_sfix32_s32 (a);
-   fl = __ev_get_upper_sfix32_fs (a);
-   fl = __ev_get_lower_sfix32_fs (a);
-   fl = __ev_get_upper_ufix32_fs (a);
-   fl = __ev_get_lower_ufix32_fs (a);
-   a = __ev_set_upper_u32 (a, 5U);
-   a = __ev_set_lower_u32 (a, 5U);
-   a = __ev_set_upper_s32 (a, 5U);
-   a = __ev_set_lower_s32 (a, 6U);
-   a = __ev_set_upper_fs (a, 6U);
-   a = __ev_set_lower_fs (a, fl);
-   a = __ev_set_upper_ufix32_u32 (a, 5U);
-   a = __ev_set_lower_ufix32_u32 (a, 5U);
-   a = __ev_set_upper_sfix32_s32 (a, 5);
-   a = __ev_set_lower_sfix32_s32 (a, 5);
-   a =  __ev_set_upper_sfix32_fs (a, fl);
-   a = __ev_set_lower_sfix32_fs (a, fl);
-   a = __ev_set_upper_ufix32_fs (a, fl);
-   a = __ev_set_lower_ufix32_fs (a, fl);
-   a = __ev_set_acc_u64 ((uint64_t) 640);
-   a = __ev_set_acc_s64 ((int64_t) 460);
-   a = __ev_set_acc_vec64 (b);
-   a = __ev_set_u32 (a, 5, 6);
-   a = __ev_set_s32 (a, 5, 6);
-   a = __ev_set_fs (a, fl, 5);
-   a = __ev_set_u16 (a, 5U, 3);
-   a = __ev_set_s16 (a, 5, 6);
-   a = __ev_set_ufix32_u32 (a, 5U, 6U);
-   a = __ev_set_sfix32_s32 (a, 3, 6);
-   a = __ev_set_ufix32_fs (a, fl, 5);
-   a = __ev_set_sfix32_fs (a, fl, 5);
-   ui = __ev_get_u32 (a, 1);
-   i = __ev_get_s32 (a, 0);
-   fl = __ev_get_fs (a, 1);
-   u16 = __ev_get_u16 (a, 2);
-   s16 = __ev_get_s16 (a, 2);
-   ui = __ev_get_ufix32_u32 (a, 1);
-   i = __ev_get_sfix32_s32 (a, 0);
-   fl = __ev_get_ufix32_fs (a, 1);
-   fl = __ev_get_sfix32_fs (a, 0);
- 
-   /* Predicates.  */
-   i = __ev_any_gts (a, b);
-   i = __ev_all_gts (a, b);
-   i = __ev_upper_gts (a, b);
-   i = __ev_lower_gts (a, b);
-   a = __ev_select_gts (a, b, c, c);
- 
-   i = __ev_any_gtu (a, b);
-   i = __ev_all_gtu (a, b);
-   i = __ev_upper_gtu (a, b);
-   i = __ev_lower_gtu (a, b);
-   a = __ev_select_gtu (a, b, c, c);
- 
-   i = __ev_any_lts (a, b);
-   i = __ev_all_lts (a, b);
-   i = __ev_upper_lts (a, b);
-   i = __ev_lower_lts (a, b);
-   a = __ev_select_lts (a, b, c, c);
- 
-   i = __ev_any_ltu (a, b);
-   i = __ev_all_ltu (a, b);
-   i = __ev_upper_ltu (a, b);
-   i = __ev_lower_ltu (a, b);
-   a = __ev_select_ltu (a, b, c, c);
- 
-   i = __ev_any_eq (a, b);
-   i = __ev_all_eq (a, b);
-   i = __ev_upper_eq (a, b);
-   i = __ev_lower_eq (a, b);
-   a = __ev_select_eq (a, b, c, c);
- 
-   i = __ev_any_fs_gt (a, b);
-   i = __ev_all_fs_gt (a, b);
-   i = __ev_upper_fs_gt (a, b);
-   i = __ev_lower_fs_gt (a, b);
-   a = __ev_select_fs_gt (a, b, c, c);
- 
-   i = __ev_any_fs_lt (a, b);
-   i = __ev_all_fs_lt (a, b);
-   i = __ev_upper_fs_lt (a, b);
-   i = __ev_lower_fs_lt (a, b);
-   a = __ev_select_fs_lt (a, b, c, b);
- 
-   i = __ev_any_fs_eq (a, b);
-   i = __ev_all_fs_eq (a, b);
-   i = __ev_upper_fs_eq (a, b);
-   i = __ev_lower_fs_eq (a, b);
-   a = __ev_select_fs_eq (a, b, c, c);
- 
-   i = __ev_any_fs_tst_gt (a, b);
-   i = __ev_all_fs_tst_gt (a, b);
-   i = __ev_upper_fs_tst_gt (a, b);
-   i = __ev_lower_fs_tst_gt (a, b);
-   a = __ev_select_fs_tst_gt (a, b, c, c);
- 
-   i = __ev_any_fs_tst_lt (a, b);
-   i = __ev_all_fs_tst_lt (a, b);
-   i = __ev_upper_fs_tst_lt (a, b);
-   i = __ev_lower_fs_tst_lt (a, b);
-   a = __ev_select_fs_tst_lt (a, b, c, c);
- 
-   i = __ev_any_fs_tst_eq (a, b);
-   i = __ev_all_fs_tst_eq (a, b);
-   i = __ev_upper_fs_tst_eq (a, b);
-   i = __ev_lower_fs_tst_eq (a, b);
-   a = __ev_select_fs_tst_eq (a, b, c, c);
- }
- 
- int
- main (void)
- {
-   /* Generic binary operations.  */
-   c = __builtin_spe_evaddw (a, b);
-   c = __builtin_spe_evand (a, b);
-   c = __builtin_spe_evandc (a, b);
-   c = __builtin_spe_evdivws (a, b);
-   c = __builtin_spe_evdivwu (a, b);
-   c = __builtin_spe_eveqv (a, b);
-   h = __builtin_spe_evfsadd (f, g);
-   h = __builtin_spe_evfsdiv (f, g);
-   h = __builtin_spe_evfsmul (f, g);
-   h = __builtin_spe_evfssub (f, g);
-   c = __builtin_spe_evlddx (ap, j);
-   c = __builtin_spe_evldhx (ap, j);
-   c = __builtin_spe_evldwx (ap, j);
-   c = __builtin_spe_evlhhesplatx (usp, j);
-   c = __builtin_spe_evlhhossplatx (usp, j);
-   c = __builtin_spe_evlhhousplatx (usp, j);
-   c = __builtin_spe_evlwhex (uip, j);
-   c = __builtin_spe_evlwhosx (uip, j);
-   c = __builtin_spe_evlwhoux (uip, j);
-   c = __builtin_spe_evlwhsplatx (uip, j);
-   c = __builtin_spe_evlwwsplatx (uip, j);
-   c = __builtin_spe_evmergehi (a, b);
-   c = __builtin_spe_evmergehilo (a, b);
-   c = __builtin_spe_evmergelo (a, b);
-   c = __builtin_spe_evmergelohi (a, b);
-   c = __builtin_spe_evmhegsmfaa (a, b);
-   c = __builtin_spe_evmhegsmfan (a, b);
-   c = __builtin_spe_evmhegsmiaa (a, b);
-   c = __builtin_spe_evmhegsmian (a, b);
-   c = __builtin_spe_evmhegumiaa (a, b);
-   c = __builtin_spe_evmhegumian (a, b);
-   c = __builtin_spe_evmhesmf (a, b);
-   c = __builtin_spe_evmhesmfa (a, b);
-   c = __builtin_spe_evmhesmfaaw (a, b);
-   c = __builtin_spe_evmhesmfanw (a, b);
-   c = __builtin_spe_evmhesmi (a, b);
-   c = __builtin_spe_evmhesmia (a, b);
-   c = __builtin_spe_evmhesmiaaw (a, b);
-   c = __builtin_spe_evmhesmianw (a, b);
-   c = __builtin_spe_evmhessf (a, b);
-   c = __builtin_spe_evmhessfa (a, b);
-   c = __builtin_spe_evmhessfaaw (a, b);
-   c = __builtin_spe_evmhessfanw (a, b);
-   c = __builtin_spe_evmhessiaaw (a, b);
-   c = __builtin_spe_evmhessianw (a, b);
-   c = __builtin_spe_evmheumi (a, b);
-   c = __builtin_spe_evmheumia (a, b);
-   c = __builtin_spe_evmheumiaaw (a, b);
-   c = __builtin_spe_evmheumianw (a, b);
-   c = __builtin_spe_evmheusiaaw (a, b);
-   c = __builtin_spe_evmheusianw (a, b);
-   c = __builtin_spe_evmhogsmfaa (a, b);
-   c = __builtin_spe_evmhogsmfan (a, b);
-   c = __builtin_spe_evmhogsmiaa (a, b);
-   c = __builtin_spe_evmhogsmian (a, b);
-   c = __builtin_spe_evmhogumiaa (a, b);
-   c = __builtin_spe_evmhogumian (a, b);
-   c = __builtin_spe_evmhosmf (a, b);
-   c = __builtin_spe_evmhosmfa (a, b);
-   c = __builtin_spe_evmhosmfaaw (a, b);
-   c = __builtin_spe_evmhosmfanw (a, b);
-   c = __builtin_spe_evmhosmi (a, b);
-   c = __builtin_spe_evmhosmia (a, b);
-   c = __builtin_spe_evmhosmiaaw (a, b);
-   c = __builtin_spe_evmhosmianw (a, b);
-   c = __builtin_spe_evmhossf (a, b);
-   c = __builtin_spe_evmhossfa (a, b);
-   c = __builtin_spe_evmhossfaaw (a, b);
-   c = __builtin_spe_evmhossfanw (a, b);
-   c = __builtin_spe_evmhossiaaw (a, b);
-   c = __builtin_spe_evmhossianw (a, b);
-   c = __builtin_spe_evmhoumi (a, b);
-   c = __builtin_spe_evmhoumia (a, b);
-   c = __builtin_spe_evmhoumiaaw (a, b);
-   c = __builtin_spe_evmhoumianw (a, b);
-   c = __builtin_spe_evmhousiaaw (a, b);
-   c = __builtin_spe_evmhousianw (a, b);
-   c = __builtin_spe_evmwhsmf (a, b);
-   c = __builtin_spe_evmwhsmfa (a, b);
-   c = __builtin_spe_evmwhsmi (a, b);
-   c = __builtin_spe_evmwhsmia (a, b);
-   c = __builtin_spe_evmwhssf (a, b);
-   c = __builtin_spe_evmwhssfa (a, b);
-   c = __builtin_spe_evmwhumi (a, b);
-   c = __builtin_spe_evmwhumia (a, b);
-   c = __builtin_spe_evmwlsmiaaw (a, b);
-   c = __builtin_spe_evmwlsmianw (a, b);
-   c = __builtin_spe_evmwlssiaaw (a, b);
-   c = __builtin_spe_evmwlssianw (a, b);
-   c = __builtin_spe_evmwlumi (a, b);
-   c = __builtin_spe_evmwlumia (a, b);
-   c = __builtin_spe_evmwlumiaaw (a, b);
-   c = __builtin_spe_evmwlumianw (a, b);
-   c = __builtin_spe_evmwlusiaaw (a, b);
-   c = __builtin_spe_evmwlusianw (a, b);
-   c = __builtin_spe_evmwsmf (a, b);
-   c = __builtin_spe_evmwsmfa (a, b);
-   c = __builtin_spe_evmwsmfaa (a, b);
-   c = __builtin_spe_evmwsmfan (a, b);
-   c = __builtin_spe_evmwsmi (a, b);
-   c = __builtin_spe_evmwsmia (a, b);
-   c = __builtin_spe_evmwsmiaa (a, b);
-   c = __builtin_spe_evmwsmian (a, b);
-   c = __builtin_spe_evmwssf (a, b);
-   c = __builtin_spe_evmwssfa (a, b);
-   c = __builtin_spe_evmwssfaa (a, b);
-   c = __builtin_spe_evmwssfan (a, b);
-   c = __builtin_spe_evmwumi (a, b);
-   c = __builtin_spe_evmwumia (a, b);
-   c = __builtin_spe_evmwumiaa (a, b);
-   c = __builtin_spe_evmwumian (a, b);
-   c = __builtin_spe_evnand (a, b);
-   c = __builtin_spe_evnor (a, b);
-   c = __builtin_spe_evor (a, b);
-   c = __builtin_spe_evorc (a, b);
-   c = __builtin_spe_evrlw (a, b);
-   c = __builtin_spe_evslw (a, b);
-   c = __builtin_spe_evsrws (a, b);
-   c = __builtin_spe_evsrwu (a, b);
-   c = __builtin_spe_evsubfw (a, b);
-   c = __builtin_spe_evxor (a, b);
- 
-   c = __builtin_spe_evmwhssfaa (a, b);
-   c = __builtin_spe_evmwhssmaa (a, b);
-   c = __builtin_spe_evmwhsmfaa (a, b);
-   c = __builtin_spe_evmwhsmiaa (a, b);
-   c = __builtin_spe_evmwhusiaa (a, b);
-   c = __builtin_spe_evmwhumiaa (a, b);
-   c = __builtin_spe_evmwhssfan (a, b);
-   c = __builtin_spe_evmwhssian (a, b);
-   c = __builtin_spe_evmwhsmfan (a, b);
-   c = __builtin_spe_evmwhsmian (a, b);
-   c = __builtin_spe_evmwhusian (a, b);
-   c = __builtin_spe_evmwhumian (a, b);
-   c = __builtin_spe_evmwhgssfaa (a, b);
-   c = __builtin_spe_evmwhgsmfaa (a, b);
-   c = __builtin_spe_evmwhgsmiaa (a, b);
-   c = __builtin_spe_evmwhgumiaa (a, b);
-   c = __builtin_spe_evmwhgssfan (a, b);
-   c = __builtin_spe_evmwhgsmfan (a, b);
-   c = __builtin_spe_evmwhgsmian (a, b);
-   c = __builtin_spe_evmwhgumian (a, b);
-   i = __builtin_spe_brinc (i, j);
- 
-   /* Generic unary operations.  */
-   a = __builtin_spe_evabs (b);
-   a = __builtin_spe_evaddsmiaaw (b);
-   a = __builtin_spe_evaddssiaaw (b);
-   a = __builtin_spe_evaddumiaaw (b);
-   a = __builtin_spe_evaddusiaaw (b);
-   a = __builtin_spe_evcntlsw (b);
-   a = __builtin_spe_evcntlzw (b);
-   a = __builtin_spe_evextsb (b);
-   a = __builtin_spe_evextsh (b);
-   f = __builtin_spe_evfsabs (g);
-   f = __builtin_spe_evfscfsf (g);
-   a = __builtin_spe_evfscfsi (g);
-   f = __builtin_spe_evfscfuf (g);
-   f = __builtin_spe_evfscfui (a);
-   f = __builtin_spe_evfsctsf (g);
-   a = __builtin_spe_evfsctsi (g);
-   a = __builtin_spe_evfsctsiz (g);
-   f = __builtin_spe_evfsctuf (g);
-   a = __builtin_spe_evfsctui (g);
-   a = __builtin_spe_evfsctuiz (g);
-   f = __builtin_spe_evfsnabs (g);
-   f = __builtin_spe_evfsneg (g);
-   a = __builtin_spe_evmra (b);
-   a = __builtin_spe_evneg (b);
-   a = __builtin_spe_evrndw (b);
-   a = __builtin_spe_evsubfsmiaaw (b);
-   a = __builtin_spe_evsubfssiaaw (b);
-   a = __builtin_spe_evsubfumiaaw (b);
-   a = __builtin_spe_evsubfusiaaw (b);
- 
-   /* Unary operations of the form: X = foo (5_bit_signed_immediate).  */
-   a = __builtin_spe_evsplatfi (5);
-   a = __builtin_spe_evsplati (5);
- 
-   /* Binary operations of the form: X = foo(Y, 5_bit_immediate).  */
-   a = __builtin_spe_evaddiw (b, 13);
-   a = __builtin_spe_evldd (ap, 13);
-   a = __builtin_spe_evldh (ap, 13);
-   a = __builtin_spe_evldw (ap, 13);
-   a = __builtin_spe_evlhhesplat (usp, 13);
-   a = __builtin_spe_evlhhossplat (usp, 13);
-   a = __builtin_spe_evlhhousplat (usp, 13);
-   a = __builtin_spe_evlwhe (uip, 13);
-   a = __builtin_spe_evlwhos (uip, 13);
-   a = __builtin_spe_evlwhou (uip, 13);
-   a = __builtin_spe_evlwhsplat (uip, 13);
-   a = __builtin_spe_evlwwsplat (uip, 13);
- 
-   a = __builtin_spe_evrlwi (b, 13);
-   a = __builtin_spe_evslwi (b, 13);
-   a = __builtin_spe_evsrwis (b, 13);
-   a = __builtin_spe_evsrwiu (b, 13);
-   a = __builtin_spe_evsubifw (b, 13);
- 
-   /* Store indexed builtins.  */
-   __builtin_spe_evstddx (b, ap, j);
-   __builtin_spe_evstdhx (b, ap, j);
-   __builtin_spe_evstdwx (b, ap, j);
-   __builtin_spe_evstwhex (b, uip, j);
-   __builtin_spe_evstwhox (b, uip, j);
-   __builtin_spe_evstwwex (b, uip, j);
-   __builtin_spe_evstwwox (b, uip, j);
- 
-   /* Store indexed immediate builtins.  */
-   __builtin_spe_evstdd (b, ap, 5);
-   __builtin_spe_evstdh (b, ap, 5);
-   __builtin_spe_evstdw (b, ap, 5);
-   __builtin_spe_evstwhe (b, uip, 5);
-   __builtin_spe_evstwho (b, uip, 5);
-   __builtin_spe_evstwwe (b, uip, 5);
-   __builtin_spe_evstwwo (b, uip, 5);
- 
-   /* SPEFSCR builtins.  */
-   i = __builtin_spe_mfspefscr ();
-   __builtin_spe_mtspefscr (j);
- 
-   test_api ();
-   
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-spe64-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-spe64-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-spe64-1.c	Thu Oct 14 19:49:34 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-spe64-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,6 ****
- /* Test that SPE targets do not permit -m64.  */
- /* Origin: Joseph Myers <joseph@codesourcery.com> */
- /* { dg-do compile { target powerpc-*-*spe } } */
- /* { dg-options "-m64" } */
- 
- /* { dg-error "-m64 not supported in this configuration" "SPE not 64-bit" { target *-*-* } 0 } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-stackalign-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-stackalign-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-stackalign-1.c	Fri Oct 15 00:04:54 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-stackalign-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,35 ****
- /* { dg-do run { target powerpc-*-linux* powerpc-*-sysv* } } */
- /* { dg-options {} } */
- 
- /* Test stack pointer alignment against variable alloca.  */
- /* Inspired by PR libgcj/10610.  */
- /* Origin: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.  */
- 
- extern void abort (void);
- extern void exit (int);
- 
- register unsigned long sp __asm__ ("r1");
- 
- void g (int * val __attribute__ ((unused)))
- {
-   if (sp & 0xf)
-     abort ();
- }
- 
- void f (int val)
- {
-   int *val1 = __builtin_alloca (val);
- 
-   g (val1);
-   return;
- }
- 
- int main (void)
- {
-   int i;
- 
-   for (i = 1; i < 32; i++)
-     f (i);
-   
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-vector-memcpy.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-vector-memcpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-vector-memcpy.c	Thu Sep  2 22:38:18 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-vector-memcpy.c	Thu Jan  1 00:00:00 1970
***************
*** 1,9 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O -maltivec" } */
- /* { dg-final { scan-assembler "lvx" } } */
- 
- void foo(void)
- {
-   int x[8] __attribute__((aligned(128))) = { 1 };
-   bar (x);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-vector-memset.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-vector-memset.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc-vector-memset.c	Thu Sep  2 22:38:18 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc-vector-memset.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-O -maltivec" } */
- /* { dg-final { scan-assembler "stvx" } } */
- 
- #include <string.h>
- 
- void foo(void)
- {
-   int x[8] __attribute__((aligned(128)));
-   memset (x, 0, sizeof (x));
-   bar (x);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-abi-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-abi-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-abi-1.c	Mon Nov 15 19:04:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-abi-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,364 ****
- /* { dg-do run { target powerpc64-*-* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-O2" } */
- #include <stdarg.h>
- #include <signal.h>
- #include <stdio.h>
- 
- /* Testcase to check for ABI compliance of parameter passing
-    for the PowerPC64 ABI.  
-    Parameter passing of integral and floating point is tested.  */
- 
- extern void abort (void);
- 
- typedef struct
- {
-   unsigned long gprs[8];
-   double fprs[13];
- } reg_parms_t;
- 
- reg_parms_t gparms;
- 
- 
- /* Testcase could break on future gcc's, if parameter regs
-    are changed before this asm.  */
- 
- #ifndef __MACH__
- #define save_parms(lparms)				\
-     asm volatile ("ld 11,gparms@got(2)\n\t"                \
-                   "std 3,0(11)\n\t"		        \
- 	          "std 4,8(11)\n\t"			\
- 	          "std 5,16(11)\n\t"			\
- 	          "std 6,24(11)\n\t"			\
- 	          "std 7,32(11)\n\t"			\
- 	          "std 8,40(11)\n\t"			\
- 	          "std 9,48(11)\n\t"			\
- 	          "std 10,56(11)\n\t"                 \
-                   "stfd 1,64(11)\n\t"		        \
- 	          "stfd 2,72(11)\n\t"			\
- 	          "stfd 3,80(11)\n\t"			\
- 	          "stfd 4,88(11)\n\t"			\
- 	          "stfd 5,96(11)\n\t"			\
- 	          "stfd 6,104(11)\n\t"			\
- 	          "stfd 7,112(11)\n\t"			\
- 	          "stfd 8,120(11)\n\t"			\
- 	          "stfd 9,128(11)\n\t"			\
- 	          "stfd 10,136(11)\n\t"			\
- 	          "stfd 11,144(11)\n\t"			\
- 	          "stfd 12,152(11)\n\t"                 \
- 	          "stfd 13,160(11)\n\t":::"11", "memory");  \
-                   lparms = gparms;
- #else
- #define save_parms(lparms)				\
-     asm volatile ("ld r11,gparms@got(r2)\n\t"           \
-                   "std r3,0(r11)\n\t"		        \
- 	          "std r4,8(r11)\n\t"			\
- 	          "std r5,16(r11)\n\t"			\
- 	          "std r6,24(r11)\n\t"			\
- 	          "std r7,32(r11)\n\t"			\
- 	          "std r8,40(r11)\n\t"			\
- 	          "std r9,48(r11)\n\t"			\
- 	          "std r10,56(r11)\n\t"                 \
-                   "stfd f1,64(r11)\n\t"		        \
- 	          "stfd f2,72(r11)\n\t"			\
- 	          "stfd f3,80(r11)\n\t"			\
- 	          "stfd f4,88(r11)\n\t"			\
- 	          "stfd f5,96(r11)\n\t"			\
- 	          "stfd f6,104(r11)\n\t"		\
- 	          "stfd f7,112(r11)\n\t"		\
- 	          "stfd f8,120(r11)\n\t"		\
- 	          "stfd f9,128(r11)\n\t"		\
- 	          "stfd f10,136(r11)\n\t"		\
- 	          "stfd f11,144(r11)\n\t"		\
- 	          "stfd f12,152(r11)\n\t"               \
- 	          "stfd f13,160(r11)\n\t":::"r11", "memory");  \
-                   lparms = gparms;
- #endif
- 
- /* Stackframe structure relevant for parameter passing.  */
- typedef union
- {
-   double d;
-   unsigned long l;
-   unsigned int i[2];
- } parm_t;
- 
- typedef struct sf
- {
-   struct sf *backchain;
-   long a1;
-   long a2;
-   long a3;
-   long a4;
-   long a5;
-   parm_t slot[100];
- } stack_frame_t;
- 
- 
- /* Paramter passing.
-    s : gpr 3
-    l : gpr 4
-    d : fpr 1
- */
- void __attribute__ ((noinline)) fcld (char *s, long l, double d)
- {
-   reg_parms_t lparms;
-   save_parms (lparms);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort ();
- 
-   if (l != lparms.gprs[1])
-     abort ();
- 
-   if (d != lparms.fprs[0])
-     abort ();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    l : gpr 4
-    d : fpr 2
-    i : gpr 5
- */
- void __attribute__ ((noinline))
- fcldi (char *s, long l, double d, signed int i)
- {
-   reg_parms_t lparms;
-   save_parms (lparms);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort ();
- 
-   if (l != lparms.gprs[1])
-     abort ();
- 
-   if (d != lparms.fprs[0])
-     abort ();
- 
-   if ((signed long) i != lparms.gprs[3])
-     abort ();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    l : gpr 4
-    d : fpr 2
-    i : gpr 5
- */
- void __attribute__ ((noinline))
- fcldu (char *s, long l, float d, unsigned int i)
- {
-   reg_parms_t lparms;
-   save_parms (lparms);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort ();
- 
-   if (l != lparms.gprs[1])
-     abort ();
- 
-   if ((double) d != lparms.fprs[0])
-     abort ();
- 
-   if ((unsigned long) i != lparms.gprs[3])
-     abort ();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    l : slot 1
-    d : slot 2
- */
- 
- void __attribute__ ((noinline)) fceld (char *s, ...)
- {
-   stack_frame_t *sp;
-   reg_parms_t lparms;
-   va_list arg;
-   double d;
-   long l;
-   save_parms (lparms);
- 
-   va_start (arg, s);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort ();
- 
-   l = va_arg (arg, long);
-   d = va_arg (arg, double);
- 
-   /* Go back one frame.  */
-   sp = __builtin_frame_address (0);
-   sp = sp->backchain;
- 
-   if (sp->slot[1].l != l)
-     abort ();
- 
-   if (sp->slot[2].d != d)
-     abort ();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    i : gpr 4
-    j : gpr 5
-    d : slot 3
-    l : slot 4
- */
- void __attribute__ ((noinline)) fciiedl (char *s, int i, int j, ...)
- {
-   stack_frame_t *sp;
-   reg_parms_t lparms;
-   va_list arg;
-   double d;
-   long l;
-   save_parms (lparms);
- 
-   va_start (arg, j);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort ();
- 
-   if ((long) i != lparms.gprs[1])
-     abort ();
- 
-   if ((long) j != lparms.gprs[2])
-     abort ();
- 
-   d = va_arg (arg, double);
-   l = va_arg (arg, long);
- 
-   sp = __builtin_frame_address (0);
-   sp = sp->backchain;
- 
-   if (sp->slot[3].d != d)
-     abort ();
- 
-   if (sp->slot[4].l != l)
-     abort ();
- }
- 
- /* 
- Parameter     Register     Offset in parameter save area
- c             r3           0-7    (not stored in parameter save area)
- ff            f1           8-15   (not stored)
- d             r5           16-23  (not stored)
- ld            f2           24-31  (not stored)
- f             r7           32-39  (not stored)
- s             r8,r9        40-55  (not stored)
- gg            f3           56-63  (not stored)
- t             (none)       64-79  (stored in parameter save area)
- e             (none)       80-87  (stored)
- hh            f4           88-95  (stored)  
- 
- */
- 
- typedef struct
- {
-   int a;
-   double dd;
- } sparm;
- 
- typedef union
- {
-   int i[2];
-   long l;
-   double d;
- } double_t;
- 
- /* Example from ABI documentation with slight changes.
-    Paramter passing. 
-    c  : gpr 3
-    ff : fpr 1
-    d  : gpr 5
-    ld : fpr 2
-    f  : gpr 7
-    s  : gpr 8 - 9
-    gg : fpr 3
-    t  : save area offset 64 - 79 
-    e  : save area offset 80 - 88
-    hh : fpr 4   
- */
- 
- void __attribute__ ((noinline))
- fididisdsid (int c, double ff, int d, double ld, int f,
- 	     sparm s, double gg, sparm t, int e, double hh)
- {
-   stack_frame_t *sp;
-   reg_parms_t lparms;
-   double_t dx, dy;
- 
-   save_parms (lparms);
- 
-   /* Parm 0: int.  */
-   if ((long) c != lparms.gprs[0])
-     abort ();
- 
-   /* Parm 1: double.  */
-   if (ff != lparms.fprs[0])
-     abort ();
- 
-   /* Parm 2: int.  */
-   if ((long) d != lparms.gprs[2])
-     abort ();
- 
-   /* Parm 3: double.  */
-   if (ld != lparms.fprs[1])
-     abort ();
- 
-   /* Parm 4: int.  */
-   if ((long) f != lparms.gprs[4])
-     abort ();
- 
-   /* Parm 5: struct sparm.  */
-   dx.l = lparms.gprs[5];
-   dy.l = lparms.gprs[6];
- 
-   if (s.a != dx.i[0])
-     abort ();
-   if (s.dd != dy.d)
-     abort ();
- 
-   /* Parm 6: double.  */
-   if (gg != lparms.fprs[2])
-     abort ();
- 
-   sp = __builtin_frame_address (0);
-   sp = sp->backchain;
- 
-   /* Parm 7: struct sparm.  */
-   dx.l = sp->slot[8].l;
-   dy.l = sp->slot[9].l;
-   if (t.a != dx.i[0])
-     abort ();
-   if (t.dd != dy.d)
-     abort ();
- 
-   /* Parm 8: int.  */
-   if (e != sp->slot[10].l)
-     abort ();
- 
-   /* Parm 9: double.  */
- 
-   if (hh != lparms.fprs[3])
-     abort ();
- }
- 
- int
- main ()
- {
-   char *s = "ii";
- 
-   fcld (s, 1, 1.0);
-   fcldi (s, 1, 1.0, -2);
-   fcldu (s, 1, 1.0, 2);
-   fceld (s, 1, 1.0);
-   fciiedl (s, 1, 2, 1.0, 3);
-   fididisdsid (1, 1.0, 2, 2.0, -1, (sparm)
- 	       {
- 	       3, 3.0}, 4.0, (sparm)
- 	       {
- 	       5, 5.0}, 6, 7.0);
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-abi-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-abi-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-abi-2.c	Mon Nov 15 19:04:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-abi-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,407 ****
- /* { dg-do run { target powerpc64-*-linux* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-O2 -fprofile -mprofile-kernel -maltivec -mabi=altivec" } */
- #include <stdarg.h>
- #include <signal.h>
- #include <altivec.h>
- #include <stdlib.h>
- 
- /* Testcase to check for ABI compliance of parameter passing
-    for the PowerPC64 ABI.  */
- 
- void __attribute__((no_instrument_function))
- sig_ill_handler (int sig)
- {
-     exit(0);
- }
- 
- extern void abort (void);
- 
- typedef struct
- {
-   unsigned long gprs[8];
-   double fprs[13];
-   long pad;
-   vector int vrs[12];
- } reg_parms_t;
- 
- reg_parms_t gparms;
- 
- /* _mcount call is done on Linux ppc64 early in the prologue.
-    my_mcount will provide a entry point _mcount,
-    which will save all register to gparms. 
-    Note that _mcount need to restore lr to original value,
-    therefor use ctr to return.  
- */
- 
- void __attribute__((no_instrument_function))
- my_mcount() 
- {
-   asm volatile (".type	_mcount,@function\n\t"
- 		".globl	_mcount\n\t"
- 		"_mcount:\n\t"
-                 "mflr 0\n\t"
-                 "mtctr 0\n\t"
-                 "ld 0,16(1)\n\t"
- 		"mtlr 0\n\t"
- 		"ld 11,gparms@got(2)\n\t" 
- 		"std 3,0(11)\n\t"		
- 		"std 4,8(11)\n\t"
- 		"std 5,16(11)\n\t"	
- 		"std 6,24(11)\n\t"	
- 		"std 7,32(11)\n\t"	
- 		"std 8,40(11)\n\t"	
- 		"std 9,48(11)\n\t"	
- 		"std 10,56(11)\n\t"   
- 		"stfd 1,64(11)\n\t"	
- 		"stfd 2,72(11)\n\t"	
- 		"stfd 3,80(11)\n\t"	
- 		"stfd 4,88(11)\n\t"	
- 		"stfd 5,96(11)\n\t"	
- 		"stfd 6,104(11)\n\t"	
- 		"stfd 7,112(11)\n\t"	
- 		"stfd 8,120(11)\n\t"	
- 		"stfd 9,128(11)\n\t"	
- 		"stfd 10,136(11)\n\t"	
- 		"stfd 11,144(11)\n\t"	
- 		"stfd 12,152(11)\n\t" 
- 		"stfd 13,160(11)\n\t" 
- 		"li 3,176\n\t"        
- 		"stvx 2,3,11\n\t"	
- 		"addi 3,3,16\n\t" 
- 		"stvx 3,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 4,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 5,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 6,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 7,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 8,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 9,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 10,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 11,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 12,3,11\n\t"	
- 		"addi 3,3,16\n\t"     
- 		"stvx 13,3,11\n\t"	
- 		"ld 3,0(11)\n\t"
- 		"bctr");
- }
- 
- /* Stackframe structure relevant for parameter passing.  */
- typedef union
- {
-   double d;
-   unsigned long l;
-   unsigned int i[2];
- } parm_t;
- 
- typedef struct sf
- {
-   struct sf *backchain;
-   long a1;
-   long a2;
-   long a3;
-   long a4;
-   long a5;
-   parm_t slot[100];
- } stack_frame_t;
- 
- typedef union
- {
-   unsigned int i[4];
-   unsigned long l[2];
-   vector int v;
- } vector_int_t;
- 
- /* Paramter passing.
-    s : gpr 3
-    v : vpr 2
-    i : gpr 7
- */
- void __attribute__ ((noinline))
- fcvi (char *s, vector int v, int i)
- {
-   reg_parms_t lparms = gparms;
- 
-   if (s != (char *) lparms.gprs[0])
-     abort();
- 
-   if (!vec_all_eq (v, lparms.vrs[0]))
-     abort ();
- 
-   if ((long) i != lparms.gprs[4])
-     abort();
- }
- /* Paramter passing.
-    s : gpr 3
-    v : vpr 2
-    w : vpr 3
- */
- 
- void __attribute__ ((noinline))
- fcvv (char *s, vector int v, vector int w)
- {
-   vector int a, c = {6, 8, 10, 12};
-   reg_parms_t lparms = gparms;
- 
-   if (s != (char *) lparms.gprs[0])
-     abort();
- 
-   if (!vec_all_eq (v, lparms.vrs[0]))
-     abort ();
- 
-   if (!vec_all_eq (w, lparms.vrs[1]))
-     abort ();
- 
-   a = vec_add (v,w);
- 
-   if (!vec_all_eq (a, c))
-     abort ();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    i : gpr 4
-    v : vpr 2
-    w : vpr 3
- */
- void __attribute__ ((noinline))
- fcivv (char *s, int i, vector int v, vector int w)
- {
-   vector int a, c = {6, 8, 10, 12};
-   reg_parms_t lparms = gparms;
- 
-   if (s != (char *) lparms.gprs[0])
-     abort();
- 
-   if ((long) i != lparms.gprs[1])
-     abort();
- 
-   if (!vec_all_eq (v, lparms.vrs[0]))
-     abort ();
- 
-   if (!vec_all_eq (w, lparms.vrs[1]))
-     abort ();
- 
-   a = vec_add (v,w);
-   
-   if (!vec_all_eq (a, c))
-     abort ();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    v : slot 2-3
-    w : slot 4-5
- */
- 
- void __attribute__ ((noinline))
- fcevv (char *s, ...)
- {
-   vector int a, c = {6, 8, 10, 12};
-   vector int v,w;
-   stack_frame_t *sp;
-   reg_parms_t lparms = gparms;
-   va_list arg;
- 
-   va_start (arg, s);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort();
- 
-   v = va_arg(arg, vector int);
-   w = va_arg(arg, vector int);
-   a = vec_add (v,w);
-   
-   if (!vec_all_eq (a, c))
-     abort ();
- 
-   /* Go back one frame.  */
-   sp = __builtin_frame_address(0);
-   sp = sp->backchain;
-   
-   if (sp->slot[2].l != 0x100000002ULL
-       || sp->slot[4].l != 0x500000006ULL)
-     abort();
- }
- 
- /* Paramter passing.
-    s : gpr 3
-    i : gpr 4
-    j : gpr 5
-    v : slot 4-5
-    w : slot 6-7
- */
- void __attribute__ ((noinline))
- fciievv (char *s, int i, int j, ...)
- {
-   vector int a, c = {6, 8, 10, 12};
-   vector int v,w;
-   stack_frame_t *sp;
-   reg_parms_t lparms = gparms;
-   va_list arg;
- 
-   va_start (arg, j);
- 
-   if (s != (char *) lparms.gprs[0])
-     abort();
- 
-   if ((long) i != lparms.gprs[1])
-     abort();
- 
-   if ((long) j != lparms.gprs[2])
-     abort();
-   
-   v = va_arg(arg, vector int);
-   w = va_arg(arg, vector int);
-   a = vec_add (v,w);
-   
-   if (!vec_all_eq (a, c))
-     abort ();
- 
-   sp = __builtin_frame_address(0);
-   sp = sp->backchain;
-   
-   if (sp->slot[4].l != 0x100000002ULL
-       || sp->slot[6].l != 0x500000006ULL)
-     abort();
- }
- 
- void __attribute__ ((noinline))
- fcvevv (char *s, vector int x, ...)
- {
-   vector int a, c = {7, 10, 13, 16};
-   vector int v,w;
-   stack_frame_t *sp;
-   reg_parms_t lparms = gparms;
-   va_list arg;
- 
-   va_start (arg, x);
-   
-   v = va_arg(arg, vector int);
-   w = va_arg(arg, vector int);
- 
-   a = vec_add (v,w);
-   a = vec_add (a, x);
-  
-   if (!vec_all_eq (a, c))
-     abort ();
- 
-   sp = __builtin_frame_address(0);
-   sp = sp->backchain;
-   
-   if (sp->slot[4].l != 0x100000002ULL
-       || sp->slot[6].l != 0x500000006ULL)
-     abort();
- }
- 
- void fnp_cvvvv();
- 
- int __attribute__((no_instrument_function, noinline))
- main1() 
- {   
-   char *s = "vv";
-   vector int v = {1, 2, 3, 4};
-   vector int w = {5, 6, 7, 8};
-  
-   fcvi (s, v, 2);
-   fcvv (s, v, w);
-   fnp_cvvvv (s, v, w, v, w);
-   fcivv (s, 1, v, w);
-   fcevv (s, v, w);
-   fciievv (s, 1, 2, v, w);
-   fcvevv (s, v, v, w);
-   return 0;
- }
- 
- int __attribute__((no_instrument_function)) 
- main()
- {
-   /* Exit on systems without altivec.  */
-   signal (SIGILL, sig_ill_handler);
-   /* Altivec instruction, 'vor %v0,%v0,%v0'.  */
-   asm volatile (".long 0x10000484");
-   signal (SIGILL, SIG_DFL);
- 
-   return main1 ();
- }
- 
- /* Paramter passing.
-    Function called with no prototype.
-    s : gpr 3
-    v : vpr 2 gpr 5-6
-    w : vpr 3 gpr 7-8
-    x : vpr 4 gpr 9-10
-    y : vpr 5 slot 8-9
- */
- void
- fnp_cvvvv (char *s, vector int v, vector int w,
- 	   vector int x, vector int y)
- {
-   vector int a, c = {12, 16, 20, 24};
-   reg_parms_t lparms = gparms;
-   stack_frame_t *sp;
-   vector_int_t v0, v1, v2, v3;
- 
-   if (s != (char *) lparms.gprs[0])
-     abort();
- 
-   if (!vec_all_eq (v, lparms.vrs[0]))
-     abort ();
- 
-   if (!vec_all_eq (w, lparms.vrs[1]))
-     abort ();
- 
-   if (!vec_all_eq (x, lparms.vrs[2]))
-     abort ();
- 
-   if (!vec_all_eq (y, lparms.vrs[3]))
-     abort ();
- 
-   a = vec_add (v,w);
-   a = vec_add (a,x);  
-   a = vec_add (a,y);  
-   
-   if (!vec_all_eq (a, c))
-     abort ();
-   
-   v0.v = lparms.vrs[0];
-   v1.v = lparms.vrs[1];
-   v2.v = lparms.vrs[2];
-   v3.v = lparms.vrs[3];
- 
-   if (v0.l[0] != lparms.gprs[2])
-     abort ();
- 
-   if (v0.l[1] != lparms.gprs[3])
-     abort ();
- 
-   if (v1.l[0] != lparms.gprs[4])
-     abort ();
- 
-   if (v1.l[1] != lparms.gprs[5])
-     abort ();
- 
-   if (v2.l[0] != lparms.gprs[6])
-     abort ();
- 
-   if (v2.l[1] != lparms.gprs[7])
-     abort ();
- 
-   sp = __builtin_frame_address(0);
-   sp = sp->backchain;
-   
-   if (sp->slot[8].l != v3.l[0])
-     abort ();
- 
-   if (sp->slot[9].l != v3.l[1])
-     abort ();
- }  
-   
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-abi-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-abi-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-abi-3.c	Tue Feb  1 21:25:31 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-abi-3.c	Thu Jan  1 00:00:00 1970
***************
*** 1,30 ****
- /* { dg-do compile { target powerpc64-*-linux* } } */
- /* { dg-require-effective-target lp64 } */
- /* { dg-options "-Wall" } */
- /* Testcase to check for ABI compliance of parameter passing
-    for the PowerPC64 ABI.  */
- 
- typedef int __attribute__((vector_size(16))) v4si;
- typedef int __attribute__((vector_size(8))) v2si;
- 
- v4si 
- f(v4si v)
- { /* { dg-error "altivec instructions are disabled" "PR18631" { xfail *-*-* } } */
-     return v;
- }
- 
- v2si 
- g(v2si v)
- {
-     return v;
- }
- 
- int 
- main()
- {
-     v4si v;
-     v2si w;
-     v = f (v); /* { dg-error "altivec instructions are disabled" "PR18631" { xfail *-*-* } } */
-     w = g (w);
-     return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-toc.c gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-toc.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ppc64-toc.c	Tue Feb  1 21:27:16 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ppc64-toc.c	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- /* { dg-do link } */
- /* { dg-options "-mminimal-toc" { target { powerpc64-*-* && lp64 } } } */
- 
- char *strchr (const char *, int);
- 
- int
- foo (int a)
- {
-   int b;
- 
-   b = 0;
-   if ("/"[1] != '\0')
-     if (strchr ("/", a))
-       b = 1;
-   return b;
- }
- 
- int
- main (void)
- {
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr12092-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr12092-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr12092-1.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr12092-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,13 ****
- /* 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)
- {
-   int *mptr;
- 
-   for(mptr=matrix+index;mptr<matrix+64;mptr++) {*mptr = 0;}
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr14289-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr14289-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr14289-1.c	Mon Mar  8 21:56:36 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr14289-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* PR middle-end/14289 */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-O0" } */
- 
- register int a[2] asm("ebx");
- 
- void Nase(void)
- {
-   int i=6;
-   a[i]=5;  /* { dg-error "address of global" } */
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr14796-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr14796-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr14796-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr14796-1.c	Mon Jun 13 00:18:41 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ int f (int a) {
+ 	return (a << 3) << 6;
+ }
+ 
+ int g (int b) {
+ 	return (b >> 5) << 5;
+ }
+ 
+ unsigned long long h (unsigned long long c) {
+ 	return (c << 60) >> 60;
+ }
+ 
+ int l (int d) {
+ 	return (d << 6) >> 6;
+ }
+ 
+ /* { dg-final { scan-tree-dump "a << 9" "gimple" } } */
+ /* { dg-final { scan-tree-dump "b & -32" "gimple" } } */
+ /* { dg-final { scan-tree-dump "c & 15" "gimple" } } */
+ /* { dg-final { scan-tree-dump "d << 6" "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr14796-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr14796-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr14796-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr14796-2.c	Thu Jun 16 23:10:49 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ int f (int a) {
+ 	return (a << 31) << 6;
+ }
+ 
+ unsigned int g (unsigned int a) {
+ 	return (a >> 7) >> 25;
+ }
+ 
+ int h (int b) {
+ 	return (b >> 30) >> 30;
+ }
+ 
+ long long j (long long c) {
+ 	return (c >> 35) << 35;
+ }
+ /* { dg-final { scan-tree-dump-times "= 0" 2 "gimple" } } */
+ /* { dg-final { scan-tree-dump "b >> 31" "gimple" } } */
+ /* { dg-final { scan-tree-dump "c & -(34359738368|800000000)" "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr15443-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr15443-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr15443-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr15443-1.c	Wed Apr  6 21:22:02 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ 
+ void f () __attribute__ ((__malloc__)); /* { dg-warning "ignored" } */
+ 
+ int main ()
+ {
+ 	/* This used to cause an ICE.  */
+ 	f ();
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr15443-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr15443-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr15443-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr15443-2.c	Wed Apr  6 21:22:02 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ 
+ struct foo {
+ 	int bar;
+ };
+ 
+ typedef struct foo* bar;
+ void f () __attribute__ ((__malloc__)); /* { dg-warning "ignored" } */
+ int g () __attribute__ ((__malloc__)); /* { dg-warning "ignored" } */
+ int* h () __attribute__ ((__malloc__));
+ void* i () __attribute__ ((__malloc__));
+ 
+ struct foo j () __attribute__ ((__malloc__)); /* { dg-warning "ignored" } */
+ struct foo* k () __attribute__ ((__malloc__));
+ bar l () __attribute__((malloc));
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-1.c	Sun Feb 13 06:41:01 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-1.c	Fri May 13 13:57:19 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-fdump-tree-generic" } */
  /* Test for folding abs(x) where appropriate.  */
  #define abs(x) x > 0 ? x : -x
  extern double fabs (double);
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-fdump-tree-gimple" } */
  /* Test for folding abs(x) where appropriate.  */
  #define abs(x) x > 0 ? x : -x
  extern double fabs (double);
*************** int h (float x) {
*** 39,42 ****
  int i (float x) {
  	return fabs(x) == -0.0;
  }
! /* { dg-final { scan-tree-dump-times "ABS_EXPR" 0 "generic" } } */
--- 39,43 ----
  int i (float x) {
  	return fabs(x) == -0.0;
  }
! /* { dg-final { scan-tree-dump-times "ABS_EXPR" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-2.c	Sun Feb 13 06:41:01 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-2.c	Fri May 13 13:57:19 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-fdump-tree-generic -ffast-math" } */
  /* Test for folding abs(x) where appropriate.  */
  #define abs(x) x > 0 ? x : -x
  extern double fabs (double);
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-fdump-tree-gimple -ffast-math" } */
  /* Test for folding abs(x) where appropriate.  */
  #define abs(x) x > 0 ? x : -x
  extern double fabs (double);
*************** int a (float x) {
*** 8,11 ****
  	return fabs(x) >= 0.0;
  }
  
! /* { dg-final { scan-tree-dump-times "ABS_EXPR" 0 "generic" } } */
--- 8,12 ----
  	return fabs(x) >= 0.0;
  }
  
! /* { dg-final { scan-tree-dump-times "ABS_EXPR" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-3.c	Sun Feb 13 06:41:01 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-3.c	Fri May 13 13:57:19 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-fdump-tree-generic" } */
  /* Test for folding abs(x) where appropriate.  */
  #define abs(x) x > 0 ? x : -x
  extern double fabs (double);
--- 1,6 ----
  /* { dg-do compile } */
! /* SH4 without -mieee defaults to -ffinite-math-only.  */
! /* { dg-options "-fdump-tree-gimple -fno-finite-math-only" } */
  /* Test for folding abs(x) where appropriate.  */
  #define abs(x) x > 0 ? x : -x
  extern double fabs (double);
*************** int a (float x) {
*** 8,11 ****
  	return fabs(x) >= 0.0;
  }
  
! /* { dg-final { scan-tree-dump-times "ABS_EXPR" 1 "generic" } } */
--- 9,13 ----
  	return fabs(x) >= 0.0;
  }
  
! /* { dg-final { scan-tree-dump-times "ABS_EXPR" 1 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr15784-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr15784-4.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ int a (int x) {
+ 	return ~x + 1; /* -x */
+ }
+ 
+ int b (int x) {
+ 	return -x -1; /* ~x */
+ }
+ 
+ /* { dg-final { scan-tree-dump "~x;" "optimized" } } */
+ /* { dg-final { scan-tree-dump "-x;" "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr16155.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr16155.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr16155.c	Mon Aug  2 01:05:47 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr16155.c	Thu Jan  1 00:00:00 1970
***************
*** 1,17 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec -ansi" } */
- 
- /* PR 16155
-  * Compilation of a simple altivec test program fails if the -ansi flag is
-  * given to gcc, when compiling with -maltivec.
-  */
- 
- #include <altivec.h>
- 
- void foo(void)
- {
-   vector unsigned short a, b;
-   a = vec_splat(b, 0);
- }
- 
- /* { dg-bogus "parse error before \"typeof\"" "-maltivec -mansi" { target powerpc*-*-* } 0 } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr16194.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr16194.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr16194.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr16194.c	Tue Feb 14 14:36:15 2006
***************
*** 0 ****
--- 1,67 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O" } */
+ /* { dg-bogus "internal compiler error" "ICE" { target *-*-* } 0 } */
+ 
+ #define ASMDECL __asm (REG);
+ #define CLOBBER_LIST : REG
+ #define INP_CLOBBER_LIST : CLOBBER_LIST
+ #if defined (__alpha__)
+ # define REG "$1"
+ #elif defined (__CRIS__) || defined (__sh__)
+ # define REG "r10"
+ #elif defined (__i386__)
+ # define REG "%eax"
+ #elif defined (__MMIX__)
+ # define REG "$8"
+ #elif defined (__powerpc__) || defined (__PPC__) || defined (__ppc__) \
+         || defined (__POWERPC__) || defined (PPC) || defined (_IBMR2)
+ # define REG "6"
+ #elif defined (__x86_64__)
+ # define REG "rax"
+ #else
+   /* Make this test harmless for any target not recognized above.  */
+ # undef ASMDECL
+ # define ASMDECL
+ # define REG "conflict"
+ # undef CLOBBER_LIST
+ # define CLOBBER_LIST
+ # undef INP_CLOBBER_LIST
+ # define INP_CLOBBER_LIST
+ #endif
+ 
+ struct A
+ {
+   int a;
+ };
+ 
+ struct B
+ {
+   struct A b[3];
+ };
+ 
+ struct C
+ {
+   struct B c;
+ };
+ 
+ void bug (void)
+ {
+   register char* dst ASMDECL;
+   __asm__ ("":"=g"(*dst): : REG); /* { dg-error "conflict" } */
+ }
+ 
+ /* The tree optimizers currently prevent us from finding an overlap -
+    we end up using a copy of dst rather than dst.
+    But at least make sure we don't get an ICE.  */
+ void bug2 (void)
+ {
+   register char* dst ASMDECL;
+   __asm__ ("": :"g"(*dst) CLOBBER_LIST);
+ }
+ 
+ void
+ foo (void)
+ {
+   register struct C *dst ASMDECL;
+   __asm__ ("" : "=g"(dst->c.b[1].a) INP_CLOBBER_LIST);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr16286.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr16286.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr16286.c	Thu Nov 18 21:13:36 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr16286.c	Thu Jan  1 00:00:00 1970
***************
*** 1,26 ****
- /* { dg-do compile { target powerpc*-*-* } } */
- /* { dg-options "-maltivec" } */
- 
- /* PR 16286
-    Compilation of a simple Altivec test program fails if vector, pixel
-    and/or bool are #undefined when compiling with -maltivec.  This may be
-    done for building C++ programs that use the STL <vector>.  */
- 
- #include <altivec.h>
- #undef vector
- #undef pixel
- #undef bool
- 
- void test(void)
- {
-         __vector unsigned int a, b;
- 	__vector __pixel v0;
- 	__vector __bool v1;
- 
-         a = vec_and(a, b);
- 	vec_step (b);
- }
- 
- /* { dg-bogus "(syntax|parse) error before \"vector\"" "-maltivec" { target powerpc*-*-* } 0 } */
- /* { dg-bogus "(syntax|parse) error before \"pixel\"" "-maltivec" { target powerpc*-*-* } 0 } */
- /* { dg-bogus "(syntax|parse) error before \"bool\"" "-maltivec" { target powerpc*-*-* } 0 } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr17112-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr17112-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr17112-1.c	Sun Sep 26 14:58:34 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr17112-1.c	Sun Dec  4 13:01:48 2005
***************
*** 5,11 ****
  extern void abort(void);
  
  typedef struct {
!   int int24:24  __attribute__ ((packed));
  } myint24;
  
  myint24 x[3] = {
--- 5,11 ----
  extern void abort(void);
  
  typedef struct {
!   int int24:24  __attribute__ ((packed)); /* { dg-warning "attribute ignored" "" { target { default_packed && { ! pcc_bitfield_type_matters } } } } */
  } myint24;
  
  myint24 x[3] = {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr18096-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr18096-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr18096-1.c	Sat Oct 30 19:20:43 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr18096-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,12 ****
- /* PR middle-end/18096  */
- /* { dg-do compile { target powerpc-*-* } } */
- /* { dg-options "-O2" } */
- 
- void f(char*);
- 
- void mkcatdefs(char *fname) 
- {
-   char line [2147483647];
-   f(line);
- } /* { dg-warning "stack frame too large" "stack frame too large" } */
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr18501.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr18501.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr18501.c	Fri Dec 17 22:20:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr18501.c	Wed May 11 02:24:44 2005
*************** int something (void);
*** 9,15 ****
  void
  bitmap_print_value_set (void)
  {
!   unsigned first;	/* { dg-warning "may be used" "conditional in loop" } */
    
    for (; bmp_iter_set (); )
      {
--- 9,15 ----
  void
  bitmap_print_value_set (void)
  {
!   unsigned first;	/* { dg-warning "may be used" "conditional in loop" { xfail *-*-* } } */
    
    for (; bmp_iter_set (); )
      {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr18614-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr18614-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr18614-1.c	Tue Nov 23 16:20:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr18614-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,15 ****
- /* PR rtl-optimization/18614 */
- /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
- /* { dg-options "-O2 -msse2" } */
- 
- typedef double v2df __attribute__ ((vector_size (16)));
- 
- v2df foo (void)
- {
-   v2df yd = { 1.0, 4.0 };
-   v2df xd;
- 
-   xd = __builtin_ia32_cvtps2pd (__builtin_ia32_rsqrtps
- 				(__builtin_ia32_cvtpd2ps (yd)));
-   return xd;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr18928-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr18928-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr18928-1.c	Mon Dec 13 23:49:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr18928-1.c	Thu Dec  8 01:32:54 2005
***************
*** 1,5 ****
  /* PR rtl-optimization/18928 */
! /* { dg-do compile { target i?86-*-linux* } } */
  /* { dg-options "-O2 -fPIC" } */
  
  const char *toHex( unsigned short u )
--- 1,5 ----
  /* PR rtl-optimization/18928 */
! /* { dg-do compile { target fpic } } */
  /* { dg-options "-O2 -fPIC" } */
  
  const char *toHex( unsigned short u )
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr19236-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr19236-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr19236-1.c	Mon Jan  3 15:56:16 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr19236-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* PR target/19236 */
- /* { dg-do compile { target i?86-*-* } } */
- /* { dg-options "-ffast-math" } */
- 
- extern float log1pf (float);
- extern double log1p (double);  
- 
- float testf (float __x) { 
-   return log1pf(1.0); 
- }
- 
- double test (double __x) { 
-   return log1p(1.0); 
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr19340.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr19340.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr19340.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr19340.c	Wed Dec 21 17:20:36 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fschedule-insns2 -fsched2-use-traces" } */
+ /* { dg-skip-if "No scheduling" { mmix-*-* cris-*-* m68k-*-* } { "*" } { "" } } */
+ 
+ extern double f (double x);
+ 
+ double g (int a)
+ {
+   int b, c, d, e = 0;
+   double h;
+ 
+   for (d = 0; d < a; d++)
+     for (c = 0; c < a; c++)
+       b = 1;
+ 
+   h = (double) e / (double) a;
+ 
+   if (h)
+     {
+       h = 1.0 / h;
+       h = f (h);
+     }
+   else
+     h = 1.0;
+ 
+   return h;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20017.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20017.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20017.c	Wed Feb 23 14:58:03 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20017.c	Fri Dec  9 23:56:34 2005
***************
*** 6,12 ****
  
  /* { dg-do compile } */
  /* { dg-options "-O1" } */
! /* { dg-options "-O1 -march=i386" { target { i?86-*-* && ilp32 } } } */
  
  int
  foo (int *buf, int *p)
--- 6,12 ----
  
  /* { dg-do compile } */
  /* { dg-options "-O1" } */
! /* { dg-options "-O1 -march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  int
  foo (int *buf, int *p)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20115-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20115-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20115-1.c	Wed Feb 23 05:08:31 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20115-1.c	Thu Mar 31 18:34:19 2005
*************** int bar()
*** 12,14 ****
--- 12,15 ----
  
  /* Check that we only have one call to foo.  */
  /* { dg-final { scan-tree-dump-times "foo" 1 "dom1" } } */
+ /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20126.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20126.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20126.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20126.c	Sun Apr 10 04:00:53 2005
***************
*** 0 ****
--- 1,50 ----
+ /* dg-do run */
+ /* dg-options "-O2" */
+ 
+ /* 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 -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20130-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20130-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20130-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20130-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ int z (int a) {
+ 	return a * -1;
+ }
+ 
+ int x (int a) {
+ 	return -1 * a;
+ }
+ 
+ int y (int a) {
+ 	return -(-1 * -a);
+ }
+ /* { dg-final { scan-tree-dump-times "-a" 3 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20204.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20204.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20204.c	Fri Feb 25 21:10:30 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20204.c	Thu Jan  1 00:00:00 1970
***************
*** 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);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20245-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20245-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20245-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20245-1.c	Mon Feb 28 19:22:41 2005
***************
*** 0 ****
--- 1,5 ----
+ /* Bug 20245: the parse error should not result in an ICE.  */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ void foo() x; /* { dg-error "expected" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20672-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20672-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20672-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20672-1.c	Tue Mar 29 18:54:44 2005
***************
*** 0 ****
--- 1,7 ----
+ /* EOF must cause an error inside a function, not just set parser->error.
+    Bug 20672.  */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ int main(void)
+ {
+ int a; /* { dg-error "expected" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-1.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fno-wrapv -fdump-tree-gimple" } */
+ int f(int i)
+ {
+   return (i - 2) > i;
+ }
+ 
+ int g(int i)
+ {
+   return (i + 2) < i;
+ }
+ 
+ int h(int i)
+ {
+   return (i + (-2)) > i;
+ }
+ 
+ int j(int i)
+ {
+   return (i - (-2)) < i;
+ }
+ 
+ int x(double i)
+ {
+   return (i - 2.0) > i;
+ }
+ 
+ int y(double i)
+ {
+   return (i + 2.0) < i;
+ }
+ 
+ int z(double i)
+ {
+   return (i + (-2.0)) > i;
+ }
+ /* { dg-final { scan-tree-dump-times " = 0" 7 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-2.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fwrapv -fdump-tree-gimple" } */
+ int f (int i)
+ {
+   return (i - 2) > i;
+ }
+ 
+ int g (int i)
+ {
+   return (i + 2) < i;
+ }
+ 
+ int h (double i)
+ {
+   return (i + 2.0) <= i;
+ }
+ /* { dg-final { scan-tree-dump-times " = 0" 0 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-3.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile } */
+ /* { dg-options "-ffast-math -fno-wrapv -fdump-tree-gimple" } */
+ int f(int i)
+ {
+   return (i - 2) <= i;
+ }
+ 
+ int g(int i)
+ {
+   return (i + 2) >= i;
+ }
+ 
+ int h(int i)
+ {
+   return (i + (-2)) <= i;
+ }
+ 
+ int x(double i)
+ {
+   return (i - 2.0) <= i;
+ }
+ 
+ int y(double i)
+ {
+   return (i + 2.0) >= i;
+ }
+ 
+ int z(double i)
+ {
+   return (i + (-2.0)) <= i;
+ }
+ /* { dg-final { scan-tree-dump-times " = 1" 6 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-4.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fno-wrapv -fdump-tree-gimple" } */
+ int f(int i)
+ {
+   return i < (i - 2);
+ }
+ 
+ int g(int i)
+ {
+   return i > (i + 2);
+ }
+ 
+ int h(int i)
+ {
+   return i < (i + (-2));
+ }
+ 
+ int j(int i)
+ {
+   return i > (i - (-2));
+ }
+ 
+ int x(double i)
+ {
+   return i < (i - 2.0);
+ }
+ 
+ int y(double i)
+ {
+   return i > (i + 2.0);
+ }
+ 
+ int z(double i)
+ {
+   return i < (i + (-2.0));
+ }
+ /* { dg-final { scan-tree-dump-times " = 0" 7 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-5.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fsignaling-nans -fwrapv -fdump-tree-gimple" } */
+ int f(int i)
+ {
+   return i < (i - 2);
+ }
+ 
+ int g(int i)
+ {
+   return i > (i + 2);
+ }
+ 
+ int h (double i)
+ {
+   return i >= i + 2.0;
+ }
+ 
+ int j (double i)
+ {
+   return i > i + 2.0;
+ }
+ /* { dg-final { scan-tree-dump-times " = 0" 0 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr20922-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr20922-6.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile } */
+ /* { dg-options "-ffast-math -fno-wrapv -fdump-tree-gimple" } */
+ int f(int i)
+ {
+   return i >= (i - 2);
+ }
+ 
+ int g(int i)
+ {
+   return i <= (i + 2);
+ }
+ 
+ int h(int i)
+ {
+   return i >= (i + (-2));
+ }
+ 
+ int x(double i)
+ {
+   return i >= (i - 2.0);
+ }
+ 
+ int y(double i)
+ {
+   return i <= (i + 2.0);
+ }
+ 
+ int z(double i)
+ {
+   return i >= (i + (-2.0));
+ }
+ /* { dg-final { scan-tree-dump-times " = 1" 6 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21041.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21041.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21041.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21041.c	Fri Dec 23 18:38:43 2005
***************
*** 0 ****
--- 1,42 ----
+ 
+ /* { dg-do compile { target fpic } } */
+ /* { dg-options "-O2 -fPIC" } */
+ 
+ struct args
+ {
+   short int matrix[8][8];
+   char **current;
+ };
+ 
+ int test (struct args *args, char *init, int a, int b)
+ {
+   int i, j, k;
+ 
+   if (!args || a > b || a < 0)
+     return -1;
+ 
+   for (i = 0; i < 2; i++)
+     {
+       char *dest = *args->current;
+       char *p = dest;
+ 
+       for (j = 0; j < 8; j++)
+         *p++ = *init++;
+ 
+       for (k = 0; k < 8; k++)
+         {
+           short int *blockvals = &args->matrix[k][0];
+           dest[0] += blockvals[0];
+           dest[1] += blockvals[1];
+           dest[2] += blockvals[2];
+           dest[3] += blockvals[3];
+           dest[4] += blockvals[4];
+           dest[5] += blockvals[5];
+           dest[6] += blockvals[6];
+           dest[7] += blockvals[7];
+        }
+     }
+ 
+   return 1;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-1.c	Mon Sep  5 14:20:27 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target "sh*-*-*" } } */
+ /* { dg-options "-O2 -fomit-frame-pointer" } */
+ /* { dg-final { scan-assembler "mov fr4,fr.; mov fr5,fr." { target sh-*-* } } } */
+ /* { dg-final { scan-assembler "mov fr4,fr.; mov fr5,fr." { target sh[1234lb]*-*-* } } } */
+ /* { dg-final { scan-assembler "mov fr0,fr.; mov fr1,fr." { target sh[56]*-*-* } } } */
+ double
+ f (double d)
+ {
+   double r;
+ 
+ #if defined (__SH_FPU_DOUBLE__)
+   asm ("mov %S1,%S0; mov %R1,%R0" : "=f" (r) : "f" (d));
+ #else
+   asm ("mov fr4,fr4; mov fr5,fr5");
+ #endif
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-2-mb.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-2-mb.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-2-mb.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-2-mb.c	Wed Aug 31 19:51:17 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile { target "sh*-*-*" } } */
+ /* { dg-options "-mb -O2 -fomit-frame-pointer" } */
+ /* { dg-final { scan-assembler "mov @r.,r.; mov @\\(4,r.\\),r." } } */
+ double d;
+ 
+ double
+ f (void)
+ {
+   double r;
+ 
+ /* If -ml from the target options is passed after -mb from dg-options, we
+    end up with th reverse endianness.  */
+ #if TARGET_SHMEDIA || defined (__LITTLE_ENDIAN__)
+   asm ("mov @r1,r3; mov @(4,r1),r4");
+ #else
+   asm ("mov %S1,%S0; mov %R1,%R0" : "=&r" (r) : "m" (d));
+ #endif
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-2-ml.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-2-ml.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-2-ml.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-2-ml.c	Wed Aug 31 19:51:17 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile { target "sh*-*-*" } } */
+ /* { dg-options "-ml -O2 -fomit-frame-pointer" } */
+ /* { dg-final { scan-assembler "mov @\\(4,r.\\),r.; mov @r.,r." } } */
+ double d;
+ 
+ double
+ f (void)
+ {
+   double r;
+ 
+ /* If -mb from the target options is passed after -ml from dg-options, we
+    end up with th reverse endianness.  */
+ #if TARGET_SHMEDIA || defined (__BIG_ENDIAN__)
+   asm ("mov @(4,r1),r4; mov @r1,r3");
+ #else
+   asm ("mov %S1,%S0; mov %R1,%R0" : "=&r" (r) : "m" (d));
+ #endif
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-3.c	Wed Aug 31 19:51:17 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target "sh*-*-*" } } */
+ /* { dg-options "-O2 -fomit-frame-pointer" } */
+ /* { dg-final { scan-assembler "mov #?0,r.*; mov #?20,r" } } */
+ /* { dg-final { scan-assembler "mov #?1077149696,r.*; mov #?0,r" } } */
+ double
+ f ()
+ {
+   double r;
+ 
+   asm ("mov %S1,%S0; mov %R1,%R0" : "=r" (r) : "i" (20));
+   asm ("mov %S1,%S0; mov %R1,%R0" : "+r" (r) : "i" (20.));
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21255-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21255-4.c	Wed Aug 31 19:51:17 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target "sh*-*-*" } } */
+ /* { dg-options "-O2 -fomit-frame-pointer" } */
+ 
+ double
+ f ()
+ {
+   double r;
+ 
+   asm ("mov %S1,%S0; mov %R1,%R0" : "=r" (r) : "i" (f));
+ /* { dg-error "invalid operand to %S" "" {target "sh*-*-*" }  9 } */
+ /* { dg-error "invalid operand to %R" "" {target "sh*-*-*" }  9 } */
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21282.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21282.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21282.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21282.c	Tue May  3 08:08:45 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ 
+ extern double floor (double);
+ 
+ long foo (float f)
+ {
+ 	  return (long) floor (f);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21419.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21419.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21419.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21419.c	Wed Oct  5 12:17:16 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ const int i = 0;
+ 
+ void f(void)
+ {
+   __asm__ __volatile__ ("" : "=m" (i)); /* { dg-error "read-only variable" } */
+ 
+ }
+ 
+ void g(const int set)
+ {
+   __asm__ __volatile__ ("" : "=r" (set)); /* { dg-error "read-only location" } */
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21709-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21709-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21709-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21709-1.c	Thu May 26 05:51:22 2005
***************
*** 0 ****
--- 1,6 ----
+ /* PR middle-end/21709 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ double _Complex f(void) { return 1.0iF / 0.0; }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21858.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21858.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21858.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21858.c	Fri Jun  3 15:15:46 2005
***************
*** 0 ****
--- 1,15 ----
+ /* Fold used to create a GT_EXPR of pointer vs. integer types,
+    which caused us to ICE in VRP.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Os -w" } */
+ 
+ unsigned int dsdblm_GetBlockAddress();
+ void error_LocalAssert(void);
+ int dsdblm_CreateBlock(unsigned int address)
+ {
+    address = dsdblm_GetBlockAddress();
+    if (address >= (void*)0x00020000)
+      error_LocalAssert();
+    return address;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr21921.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr21921.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr21921.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr21921.c	Wed Jul 13 14:42:16 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -funsafe-math-optimizations" } */
+ 
+ void
+ Q (double *s, double h)
+ {
+   int i;
+   if (h > 1)
+     h = h - 1;
+ 
+   for (i = 1; i < 3; i++)
+     if (s[i] / h > 0)
+       s[0] = h, s[i] = s[i] / h;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr22329.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr22329.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr22329.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr22329.c	Fri Jul  8 19:26:16 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ int f(int i)
+ {
+   int k = 0;
+   if (i == 0)
+     k = i == 0;
+   return k;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr22335-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr22335-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr22335-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr22335-1.c	Tue Jul 12 17:02:54 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdelete-null-pointer-checks"  } */
+ int t(int *a)
+ {
+   int i;
+   *a = 1;
+   i = a == 0;
+   return i;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr22335-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr22335-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr22335-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr22335-2.c	Tue Jul 12 17:02:54 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2"  } */
+ void abort(void) __attribute__((__noreturn__));
+ typedef struct {
+   int container;
+ } edge_iterator;
+ struct ls_expr
+ {
+   int index;
+   int stores;
+   struct ls_expr * next;
+ };
+ struct ls_expr * pre_ldst_mems;
+ edge_iterator ei;
+ void
+ store_motion (void)
+ {
+   struct ls_expr * ptr, **prev_next_ptr_ptr;
+   edge_iterator ei1;
+   edge_iterator ei2;
+   int a = ptr != ((void *)0);
+   for (ptr = pre_ldst_mems, prev_next_ptr_ptr = &pre_ldst_mems;
+        ptr != ((void *)0);
+        ptr = *prev_next_ptr_ptr)
+     if (!((ptr)->stores))
+      *prev_next_ptr_ptr = ptr->next;
+     else
+       prev_next_ptr_ptr = &ptr->next;
+ 
+   for (ptr = pre_ldst_mems; ptr != 0; ptr = ptr->next)
+     ;
+   ei1 = ei;
+   ei2 = ei1;
+   if (!ei2.container)
+     abort ();
+   ei2 = ei1;
+   if (!ei2.container)
+     abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr22356-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr22356-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr22356-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr22356-1.c	Fri Jul  8 18:05:04 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -std=gnu99" } */
+ typedef _Complex float GFC_COMPLEX_4;
+ void product_c4 (GFC_COMPLEX_4 *src, GFC_COMPLEX_4 *dest, int len)
+ {
+   int n;
+   GFC_COMPLEX_4 result;
+   for (n = 0; n < len; n++, src += 1)
+     result *= *src;
+   *dest = result;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr22458-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr22458-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr22458-1.c	Mon Aug  8 07:40:09 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr22458-1.c	Mon Aug  8 07:38:30 2005
***************
*** 1,4 ****
! /* { dg-error "(parse|syntax) error" "" { target *-*-* } 0 } */
  void foo()
  {
       __PRETTY_FUNCTION__;
--- 1,4 ----
! /* { dg-error "expected declaration or statement" "" { target *-*-* } 0 } */
  void foo()
  {
       __PRETTY_FUNCTION__;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23049.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23049.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23049.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23049.c	Tue Oct  4 05:57:38 2005
***************
*** 0 ****
--- 1,26 ----
+ /* This was an ICE in fold where we tried to fold something like,
+ 
+      a = 0 == 0 ? 0 : 3988292384
+ 
+    after doing if-conversion for the vectorizer.  Folding "0 == 0"
+    should have been done before calling fold on the whole rhs of
+    the above expression.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -ftree-vectorize" } */
+ 
+ static unsigned short int crc_table[256];
+ void AC3_encode_init(void)
+ {
+   unsigned int c, n, k;
+   for(n=0;  n<256; n++)
+   {
+     c = n << 8;
+     for (k = 0; k < 8; k++)
+     {
+       if (c & (1 << 15))
+        c = ((c << 1) & 0xffff) ^ (((1 << 0) | (1 << 2) | (1 << 15) | (1 << 16)) & 0xffff);
+     }
+     crc_table[n] = c;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23408.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23408.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23408.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23408.c	Mon Aug 29 17:48:58 2005
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-do compile } */
+ /* { dg-options "--param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
+ static __inline__ int f () { return g (); }
+ int g () { return f (); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23547.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23547.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23547.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23547.c	Fri Sep  2 12:41:08 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "--param ggc-min-expand=0 --param ggc-min-heapsize=0" } */
+ void foo()
+ {
+   void bar()
+   {
+     bar();
+   }
+ }
+ 
+ void foo1(int i)
+ {
+     void bar (char c[1][i]) { }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23584.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23584.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23584.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23584.c	Wed Sep 14 21:34:37 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Regression test for PR middle-end/23584 */
+ /* Verify that dereferencing an absolute address inside of a function
+    makes that function impure.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-ipa-pure-const" } */
+ 
+ int test1 (void)
+ {
+   return * (volatile int *) 0x1234;
+ }
+ 
+ int test2 (void)
+ {
+   int local = * (volatile int *) 0x1234;
+   return local;
+ }
+ 
+ /* { dg-final { scan-ipa-dump-not "found to be pure: test1" "pure-const" } } */
+ /* { dg-final { scan-ipa-dump-not "found to be pure: test2" "pure-const" } } */
+ /* { dg-final { cleanup-ipa-dump "pure-const" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23625.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23625.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23625.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23625.c	Tue Sep 27 21:44:55 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Test case for PR23625 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-loop-linear" } */
+ 
+ typedef long INT32;
+ void find_best_colors ()
+ {
+ int ic0, ic1, ic2;
+ INT32 * bptr;
+ INT32 dist1;
+ INT32 dist2;
+ INT32 xx1;
+ for (ic0 = (1<<(5 -3))-1;ic0 >= 0;ic0--)
+ {
+   for (ic1 = (1<<(6 -3))-1;ic1 >= 0;ic1--)
+   {
+     dist2 = dist1;
+      for (ic2 = (1<<(5 -3))-1;ic2 >= 0;ic2--)
+      {
+         *bptr = dist2;
+         bptr++;
+      }
+      dist1 += xx1;
+   }
+ }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23818.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23818.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23818.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23818.c	Tue Sep 20 15:29:42 2005
***************
*** 0 ****
--- 1,33 ----
+ /* PR tree-optimization/23818 */
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts" } */
+ 
+ #include <stdarg.h>
+ 
+ extern void abort (void);
+ 
+ void
+ foo (int p[100], int k, ...)
+ {
+   int j, *q;
+   va_list ap;
+ 
+   va_start (ap, k);
+   q = va_arg (ap, int *);
+   for (j = 0; j < 100; j++)
+     q[j] = p[j] + 10;
+   va_end(ap);
+ }
+ 
+ int
+ main (void)
+ {
+   int buf[100], buf2[100], i;
+   for (i = 0; i < 100; i++)
+     buf[i] = i + 1;
+   foo (buf, 0, buf2);
+   for (i = 0; i < 100; i++)
+     if (buf2[i] != buf[i] + 10)
+       abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr23911.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr23911.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr23911.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr23911.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,22 ----
+ /* This was a missed optimization in tree constant propagation
+    that CSE would catch later on.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-store_ccp" } */
+ 
+ double _Complex *a; 
+ static const double _Complex b[10] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}; 
+  
+ void 
+ test (void) 
+ { 
+   a[0] = b[0] + b[1]; 
+   a[1] = b[0] + b[1]; 
+   return; 
+ } 
+ 
+ /* After store_ccp, there should not be any assignments from real or
+    imaginary parts anymore.  The constants should be loaded from b and
+    propagated into the elements of a.  */
+ /* { dg-final { scan-tree-dump-times "= CR" 0 "store_ccp" } } */
+ /* { dg-final { scan-tree-dump-times "= CI" 0 "store_ccp" } } */
+ /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24101-1.i gcc-4.1.0/gcc/testsuite/gcc.dg/pr24101-1.i
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24101-1.i	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24101-1.i	Wed Nov  9 06:30:03 2005
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-do compile } */
+ /* { dg-options "-ansi" } */
+ 
+ # 1 "/usr/local/lib/gcc/i686-pc-linux-gnu/4.1.0/include/stddef.h" 1 3 4
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24101-2.i gcc-4.1.0/gcc/testsuite/gcc.dg/pr24101-2.i
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24101-2.i	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24101-2.i	Wed Nov  9 06:30:03 2005
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-do compile } */
+ /* { dg-options "-ansi" } */
+ 
+ #
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24225.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24225.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24225.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24225.c	Mon Nov  7 14:37:45 2005
***************
*** 0 ****
--- 1,17 ----
+ /* This was an ICE caused by the compiler-generated stack save/restore
+    statements around s[b].  */
+ /* { dg-do compile} */
+ /* { dg-options "-O1 -fprofile-arcs" } */
+ 
+ int
+ foo (int a, int b)
+ {
+   if (a)
+     return 1;
+   {
+     int s [b];
+     return 0;
+   }
+ }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24445.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24445.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24445.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24445.c	Sat Nov 12 09:28:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target fpic } } */
+ /* { dg-options "-O1 -fpic" } */
+ extern int *bar (void) __attribute__ ((__pure__));
+ extern char *baz;
+ void
+ foo (void)
+ {
+   baz = (char *) bar ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24600.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24600.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24600.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24600.c	Wed Nov  2 23:06:26 2005
***************
*** 0 ****
--- 1,16 ----
+ /* This used to ICE on s390 due to a old-loop bug.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ char *strcpy (char *dest, const char *src);
+ 
+ void test (char *Line, int len)
+ {
+   int z;
+ 
+   for (z = 1; z <= len; z++)
+     if (Line[z - 1])
+       strcpy (Line + z + 1, Line);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24615.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24615.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24615.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24615.c	Fri Nov  4 06:24:29 2005
***************
*** 0 ****
--- 1,27 ----
+ 
+ /* { dg-do compile { target fpic } } */
+ /* { dg-options "-Os -fPIC" } */
+ 
+ void *memset (void *, int, __SIZE_TYPE__);
+ void *memcpy (void *, const void *, __SIZE_TYPE__);
+ 
+ char *alloc (int);
+ 
+ char *
+ test (int type, int size, char *data, int len)
+ {
+   char *block = alloc (size);
+   char *bp = block;
+ 
+   *bp++ = type;
+   switch (type)
+     {
+     case 0:
+     case 1:
+       memset (bp, type == 0 ? 0x00 : 0xff, size);
+       memcpy (bp, data, len);
+     }
+ 
+   return block;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24620.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24620.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24620.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24620.c	Thu Nov  3 04:16:52 2005
***************
*** 0 ****
--- 1,27 ----
+ /* This used to ICE due to a backend problem on s390.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ struct rgba
+ {
+   unsigned char r;
+   unsigned char g;
+   unsigned char b;
+   unsigned char a;
+ };
+ 
+ void g (struct rgba);
+ 
+ void f (void) 
+ {
+   struct rgba x;
+ 
+   x.r = 0;
+   x.g = 128;
+   x.b = 128;
+   x.a = 26;
+ 
+   g (x);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24624.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24624.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24624.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24624.c	Wed Nov  9 12:17:22 2005
***************
*** 0 ****
--- 1,67 ----
+ /* This used to ICE due to a backend problem on s390.  */
+ 
+ /* { dg-do compile { target s390*-*-* } } */
+ /* { dg-options "-O1 -mpacked-stack" } */
+ 
+ typedef unsigned int __u32;
+ typedef struct
+ {
+   volatile int counter;
+ } __attribute__ ((aligned (4))) atomic_t;
+ static __inline__ __attribute__ ((always_inline))
+      void atomic_inc (volatile atomic_t * v)
+ {
+   (
+     {
+     typeof (v->counter) old_val, new_val;
+   __asm__ __volatile__ (
+ 	"   l     %0,0(%3)\n" 
+ 	"0: lr    %1,%0\n" 
+ 	"   ar    %1,%4\n" 
+ 	"   cs    %0,%1,0(%3)\n" 
+ 	"   jl    0b": 
+ 	"=&d" (old_val), "=&d" (new_val), "=m" (((atomic_t *) (v))->counter): 
+ 	"a" (v), "d" (1), "m" (((atomic_t *) (v))->counter):
+ 	"cc", "memory");
+     });
+ }
+ extern unsigned long volatile __attribute__ ((section (".data"))) jiffies;
+ struct inet_peer
+ {
+   unsigned long dtime;
+   atomic_t refcnt;
+ };
+ static volatile int peer_total;
+ int inet_peer_threshold = 65536 + 128;
+ int inet_peer_minttl = 120 * 100;
+ int inet_peer_maxttl = 10 * 60 * 100;
+ static int
+ cleanup_once (unsigned long ttl)
+ {
+   struct inet_peer *p;
+   if (p != ((void *) 0))
+     {
+       if (((
+ 	     {
+ 	     1;}
+ 	   ) && ((long) (jiffies) - (long) (p->dtime + ttl) < 0)))
+ 	{
+ 	  return -1;
+ 	}
+       atomic_inc (&p->refcnt);
+     }
+ }
+ struct inet_peer *
+ inet_getpeer (__u32 daddr, int create)
+ {
+   int i;
+   int ttl;
+   if (peer_total >= inet_peer_threshold)
+     ttl = inet_peer_minttl;
+   else
+     ttl =
+       inet_peer_maxttl - (inet_peer_maxttl -
+ 			  inet_peer_minttl) / 100 * peer_total /
+       inet_peer_threshold * 100;
+   for (i = 0; i < 30 && !cleanup_once (ttl); i++);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24683.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24683.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24683.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24683.c	Mon Nov  7 18:52:24 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target fpic } } */
+ /* { dg-options "-O2 -fPIC" } */
+ int *block;
+ void final(unsigned int j)
+ {
+   unsigned int i;
+   unsigned char *data = (unsigned char *)"\0";
+   for (i = 0; i < 8; i++)
+     for (; j + 63 < 1; j += 64)
+       block = (int *) &data[j];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr24820.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr24820.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr24820.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr24820.c	Sun Nov 13 06:18:48 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ffast-math" } */
+ 
+ double floor (double);
+ double bar (double sum)
+ {
+   int i;
+   for (i = 0; i < 256; i++)
+    sum += floor (0.5 + (i - 128));
+   return sum;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr25023.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr25023.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr25023.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr25023.c	Wed Dec 14 20:38:31 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR debug/25023 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -mtune=i686" { target { { i?86-*-* || x86_64-*-* } && ilp32 } } } */
+ 
+ extern unsigned char v;
+ 
+ float
+ foo (void)
+ {
+   return v;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr25196.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr25196.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr25196.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr25196.c	Wed Dec 21 15:37:10 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-march=i386 -O3 -fomit-frame-pointer" } */
+ 
+ /* For this test case, we used to do an invalid load motion after
+    reload, because we missed autoincrements of the stack pointer.  */
+ 
+ extern void abort (void);
+ 
+ static int j;
+ 
+ static void __attribute__((noinline))
+ f1 (int a, int b, int c, int d, int e)
+ {
+   j = a;
+ }
+ 
+ int __attribute__((noinline))
+ f2 (int a, int b, int c, int d, int e)
+ {
+   if ((b & 0x1111) != 1)
+     f1 (a, b, c, d, e);
+   return 0;
+ }
+ 
+ int
+ main (void)
+ {
+   f2 (123, 0, 0, 0, 0);
+   if (j != 123)
+     abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr25559.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr25559.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr25559.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr25559.c	Wed Jan  4 09:16:09 2006
***************
*** 0 ****
--- 1,10 ----
+ /* PR c/25559 */
+ /* { dg-do compile } */
+ 
+ #define vs(n) __attribute__((vector_size (n)))
+ int vs (-1) a;			/* { dg-warning "attribute ignored" } */
+ int vs (0) b;			/* { dg-error "zero vector size" } */
+ int vs (1) c;			/* { dg-error "multiple of component size" } */
+ int vs (sizeof (int) / 2) d;	/* { dg-error "multiple of component size" } */
+ int vs (sizeof (int)) e;
+ int vs (sizeof (int) * 2) f;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr25682.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr25682.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr25682.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr25682.c	Tue Jan 17 10:00:05 2006
***************
*** 0 ****
--- 1,27 ----
+ /* PR c/25682 */
+ /* { dg-do compile } */
+ /* Test whether we don't ICE on questionable constructs where offsetof
+    should have been used instead.  */
+ 
+ struct S
+ {
+   char a[4];
+   int b;
+ };
+ 
+ char c[(char *) &((struct S *) 0)->b - (char *) 0];
+ char d[(__SIZE_TYPE__) &((struct S *) 8)->b];
+ char e[sizeof (c) == __builtin_offsetof (struct S, b) ? 1 : -1];
+ char f[sizeof (d) == __builtin_offsetof (struct S, b) + 8 ? 1 : -1];
+ 
+ extern void bar (char *, char *);
+ 
+ void
+ foo (void)
+ {
+   char g[(char *) &((struct S *) 0)->b - (char *) 0];
+   char h[(__SIZE_TYPE__) &((struct S *) 8)->b];
+   char i[sizeof (g) == __builtin_offsetof (struct S, b) ? 1 : -1];
+   char j[sizeof (h) == __builtin_offsetof (struct S, b) + 8 ? 1 : -1];
+   bar (g, h);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr25805.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr25805.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr25805.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr25805.c	Thu Jan 19 07:37:56 2006
***************
*** 0 ****
--- 1,20 ----
+ /* When -fzero-initialized-in-bss was in effect, we used to only allocate
+    storage for d1.a.  */
+ /* { dg-do run } */
+ /* { dg-options "" } */
+ extern void abort (void);
+ extern void exit (int);
+ 
+ struct { int a; int x[]; } d1 = { 0, 0 };
+ int d2 = 0;
+ 
+ int
+ main ()
+ {
+   d2 = 1;
+   if (sizeof (d1) != sizeof (int))
+     abort ();
+   if (d1.x[0] != 0)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr8788-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr8788-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr8788-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr8788-1.c	Mon May  9 05:15:50 2005
***************
*** 0 ****
--- 1,20 ----
+ /* PR inline-asm/8788 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ typedef struct {
+     long x[6];
+ } myjmp_buf;
+ 
+ typedef struct {
+     myjmp_buf regs;
+ } my_stack;
+ 
+ void switch_to_stack (my_stack *stack){
+     asm (  /* { dg-error "impossible constraint" } */
+ /* { dg-warning "asm operand 1" "asm operand 1" { target *-*-* } 14 } */
+         "\n"
+         : "+r" (stack->regs)
+     );
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr8927-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr8927-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr8927-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr8927-1.c	Wed Mar  2 02:50:25 2005
***************
*** 0 ****
--- 1,13 ----
+ /* Bug 8927: undeclared identifiers should give an error on the line
+    of that identifier, not on the line of the next token.  */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ void
+ foo(void)
+ {
+   bar /* { dg-error "undeclared|for each function" } */
+ 
+ 
+   ;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr9771-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr9771-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr9771-1.c	Tue Sep 14 22:52:41 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr9771-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,43 ****
- /* PR rtl-optimization/9771 */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2 -fomit-frame-pointer -ffixed-ebp" } */
- 
- extern void abort(void);
- extern void exit(int);
- 
- register long *B asm ("ebp");
- 
- long x = 10;
- long y = 20;
- 
- void bar(void)
- {
-   B = &y;
- }
- 
- void foo()
- {
-   long *adr = B;
-   long save = *adr;
- 
-   *adr = 123;
- 
-   bar();
- 
-   *adr = save;
- }
- 
- int main()
- {
-   B = &x;
- 
-   foo();
- 
-   if (x != 10 || y != 20)
-     abort();
- 
-   /* We can't return, as our caller may assume %ebp is preserved!  */
-   /* We could save/restore it (like foo), but its easier to exit.  */
-   exit(0);
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pr9814-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/pr9814-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pr9814-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pr9814-1.c	Fri May 27 02:46:01 2005
***************
*** 0 ****
--- 1,107 ----
+ /* PR tree-optimization/9814  */
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort(void);
+ 
+ int test1(int x)
+ {
+   if (x & 2)
+     x |= 2;
+   return x;
+ }
+ 
+ int test2(int x)
+ {
+   if (!(x & 2))
+     x |= 2;
+   return x;
+ }
+ 
+ int test3(int x)
+ {
+   if (x & 2)
+     x ^= 2;
+   return x;
+ }
+ 
+ int test4(int x)
+ {
+   if (!(x & 2))
+     x ^= 2;
+   return x;
+ }
+ 
+ int test5(int x)
+ {
+   if (x & 2)
+     x &= ~2;
+   return x;
+ }
+ 
+ int test6(int x)
+ {
+   if (!(x & 2))
+     x &= ~2;
+   return x;
+ }
+ 
+ int main()
+ {
+   if (test1(0) != 0)
+     abort();
+   if (test1(2) != 2)
+     abort();
+   if (test1(5) != 5)
+     abort();
+   if (test1(7) != 7)
+     abort();
+ 
+   if (test2(0) != 2)
+     abort();
+   if (test2(2) != 2)
+     abort();
+   if (test2(5) != 7)
+     abort();
+   if (test2(7) != 7)
+     abort();
+ 
+   if (test3(0) != 0)
+     abort();
+   if (test3(2) != 0)
+     abort();
+   if (test3(5) != 5)
+     abort();
+   if (test3(7) != 5)
+     abort();
+ 
+   if (test4(0) != 2)
+     abort();
+   if (test4(2) != 2)
+     abort();
+   if (test4(5) != 7)
+     abort();
+   if (test4(7) != 7)
+     abort();
+ 
+   if (test5(0) != 0)
+     abort();
+   if (test5(2) != 0)
+     abort();
+   if (test5(5) != 5)
+     abort();
+   if (test5(7) != 5)
+     abort();
+ 
+   if (test6(0) != 0)
+     abort();
+   if (test6(2) != 2)
+     abort();
+   if (test6(5) != 5)
+     abort();
+   if (test6(7) != 7)
+     abort();
+ 
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-align.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-align.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-align.c	Thu Nov  4 22:07:17 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-align.c	Fri Dec  9 23:38:19 2005
***************
*** 1,6 ****
  /* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */
  
! /* { dg-do run { target i?86-*-linux* i?86-*-*bsd* i?86-*-sco3.2v5* *-*-solaris2.* } } */
  
  extern void abort (void);
  
--- 1,6 ----
  /* Prove that HANDLE_SYSTEMV_PRAGMA alignment handling works somewhat. */
  
! /* { dg-do run { target i?86-*-linux* x86_64-*-linux* i?86-*-*bsd* i?86-*-sco3.2v5* *-*-solaris2.* } } */
  
  extern void abort (void);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-nosave_low_regs.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ extern void foo ();
+ #pragma interrupt
+ #pragma nosave_low_regs
+ void
+ isr()
+ {
+   foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
+ /* A call will clobber all call-saved registers, but because of
+    #pragma nosave_low_regs, r0..r7 need not be saved/restored.
+    One of these registers will also do fine to hold the function address.
+    Call-saved registers r8..r13 also don't need to be restored.  */
+ /* { dg-final { scan-assembler-not "\[^f\]r\[0-9\]\[ \t\]*," } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r\[89\]" } } */
+ /* { dg-final { scan-assembler-not "\[^f\]r1\[,0-3\]" } } */
+ /* { dg-final { scan-assembler-times "macl" 2} } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-trap_exit.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ /* This test case will check whether trapa is generated only for isr.  */
+ #pragma interrupt
+ void isr() __attribute__ ((trap_exit (4)));
+ void isr()
+ {
+ }
+ void delay(int a)
+ {
+ }
+ int main()
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler-times "trapa\[ \t\]\[ \t\]*#4" 1} } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-trapa.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-trapa.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-trapa.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-trapa.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ extern void foo ();
+ #pragma trapa
+ void
+ isr()
+ {
+   foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
+ /* No interrupt-specific saves should be needed.  /
+ /* { dg-final { scan-assembler-not "r\[0-7\]\[ \t,\]\[^\n\]*r15" } } */
+ /* { dg-final { scan-assembler-not "@r15\[^\n\]*r\[0-7\]\n" } } */
+ /* { dg-final { scan-assembler-not "r\[8-9\]" } } */
+ /* { dg-final { scan-assembler-not "r1\[,0-3\]" } } */
+ /* { dg-final { scan-assembler-not "macl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr-trapa2.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile { target sh-*-* sh4*-*-*} } */
+ /* { dg-options "-O -m4" } */
+ 
+ extern void foo ();
+ #pragma trapa
+ void
+ isr()
+ {
+   foo ();
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
+ /* No interrupt-specific saves should be needed.
+    The function call will require to load the address first into a register,
+    then use that for a jsr or jmp.  It will also need to load a constant
+    address in order to load fpscr.  */
+ /* { dg-final { scan-assembler-times "r\[0-7\]\n" 3 } } */
+ /* { dg-final { scan-assembler-not "r\[8-9\]" } } */
+ /* { dg-final { scan-assembler-not "r1\[,0-3\]" } } */
+ /* { dg-final { scan-assembler-not "macl" } } */
+ /* fpscr needs to be saved, loaded and restored.  */
+ /* { dg-final { scan-assembler-times "\[^_\]fpscr" 3 } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr.c	Sun Nov 21 22:54:00 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr.c	Mon Jan 30 16:19:11 2006
***************
*** 1,4 ****
! /* { dg-do compile { target h8300-*-* sh-*-*} } */
  /* { dg-options "-O3" } */
  /* Test case will check whether rte is generated for two ISRs*/
  extern void foo();
--- 1,4 ----
! /* { dg-do compile { target h8300-*-* sh-*-* sh[1234ble]*-*-*} } */
  /* { dg-options "-O3" } */
  /* Test case will check whether rte is generated for two ISRs*/
  extern void foo();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr2.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-isr2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-isr2.c	Mon Jan 30 16:19:11 2006
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile { target h8300-*-* sh-*-* sh[1234ble]*-*-*} } */
+ /* { dg-options "-O" } */
+ /* This test case will check whether rte is generated only for isr.  */
+ #pragma interrupt
+ void isr()
+ {
+ }
+ void delay(int a)
+ {
+ }
+ int main()
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler-times "rte" 1} } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-pack-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-pack-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/pragma-pack-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/pragma-pack-3.c	Sun Jan  1 00:00:56 2006
***************
*** 0 ****
--- 1,27 ----
+ /* PR c++/25294 */
+ /* { dg-options "-std=gnu99" } */
+ /* { dg-do run } */
+ 
+ extern void abort (void);
+ 
+ struct S
+ {
+   char a[3];
+ #pragma pack(1) /* A block comment
+ 		   that ends on the next line.  */
+   struct T
+   {
+     char b;
+     int c;
+   } d;
+ #pragma pack /*/ */ () // C++ comment
+   int e;
+ } s;
+ 
+ int
+ main ()
+ {
+   if (sizeof (int) == 4 && sizeof (s) != 12)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/profile-generate-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/profile-generate-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/profile-generate-1.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/profile-generate-1.c	Thu Mar 31 18:14:11 2005
*************** main(void)
*** 33,35 ****
--- 33,37 ----
      abort ();
    return 0;
  }
+ 
+ /* { dg-final { cleanup-coverage-files } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/profile-generate-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/profile-generate-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/profile-generate-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/profile-generate-2.c	Wed Oct 19 14:42:17 2005
***************
*** 0 ****
--- 1,35 ----
+ /* PR middle-end/23199 */
+ /* Testcase by Ralf Menzel <menzel@ls6.cs.uni-dortmund.de> */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O -fprofile-generate" } */
+ 
+ union rtunion_def
+ {
+   struct rtx_def *rt_rtx;
+ };
+ 
+ typedef union rtunion_def rtunion;
+ 
+ struct rtx_def
+ {
+   unsigned int in_struct : 1;
+   union u {
+     rtunion fld[1];
+   } u;
+ };
+ 
+ typedef struct rtx_def *rtx;
+ 
+ static void
+ check_annul_list_true_false (int annul_true_p, rtx delay_list)
+ {
+   rtx temp;
+   while (1)
+     {
+       temp = delay_list;
+       rtx trial = (((temp)->u.fld[0]).rt_rtx);
+       if ((annul_true_p && (((trial))->in_struct)))
+        return;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/register-var-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/register-var-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/register-var-1.c	Thu Oct 28 19:31:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/register-var-1.c	Tue May 31 16:28:30 2005
***************
*** 1,6 ****
  /* PR/18160 */
  
! /* { dg-do compile { target i?86-*-* } } */
  
  /* This should yield an error even without -pedantic.  */
  /* { dg-options "-ansi" } */
--- 1,6 ----
  /* PR/18160 */
  
! /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
  
  /* This should yield an error even without -pedantic.  */
  /* { dg-options "-ansi" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/register-var-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/register-var-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/register-var-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/register-var-3.c	Tue Oct  4 13:39:17 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-options "" } */
+ /* { dg-do compile } */
+ register int r0; /* { dg-error "register name not specified" } */
+ register int bp; /* { dg-error "register name not specified" } */
+ register int sp; /* { dg-error "register name not specified" } */
+ register int r30; /* { dg-error "register name not specified" } */
+ register int toc; /* { dg-error "register name not specified" } */
+ register int d0; /* { dg-error "register name not specified" } */
+ register int a0; /* { dg-error "register name not specified" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-ldouble-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-ldouble-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-ldouble-1.c	Thu Aug  5 06:06:49 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-ldouble-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,26 ****
- /* { dg-do run { target powerpc*-*-darwin* powerpc*-*-aix* powerpc64-*-linux rs6000-*-* } } */
- /* { dg-options "-mlong-double-128" } */
- 
- /* Check that long double values are rounded correctly when being converted
-    to 32-bit integers.  All these values are of the form +/- 2 +/- 2^-60.  */
- 
- extern void abort(void);
- extern void exit(int);
- 
- int main(void)
- {
-   long double l1 = 1.9999999999999999991326382620115964527941L;
-   long double l2 = 2.0000000000000000008673617379884035472059L;
-   long double l3 = -2.0000000000000000008673617379884035472059L;
-   long double l4 = -1.9999999999999999991326382620115964527941L;
-   
-   if ((int) l1 != 1)
-     abort ();
-   if ((int) l2 != 2)
-     abort ();
-   if ((int) l3 != -2)
-     abort ();
-   if ((int) l4 != -1)
-     abort ();
-   exit (0);
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-ldouble-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-ldouble-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-ldouble-2.c	Fri Jan  7 00:19:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-ldouble-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- /* { dg-do run { target powerpc*-*-darwin* powerpc*-*-aix* powerpc64-*-linux rs6000-*-* } } */
- /* { dg-options "-mlong-double-128" } */
- 
- /* Check that LDBL_EPSILON is right for 'long double'.  */
- 
- #include <float.h>
- 
- extern void abort (void);
- 
- int main(void)
- {
-   volatile long double ee = 1.0;
-   long double eps = ee;
-   while (ee + 1.0 != 1.0)
-     {
-       eps = ee;
-       ee = eps / 2;
-     }
-   if (eps != LDBL_EPSILON)
-     abort ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-power2-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-power2-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-power2-1.c	Wed Sep  1 05:26:15 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-power2-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,21 ****
- /* { dg-do compile { target powerpc-*-* rs6000-*-* }  } */
- /* { dg-options "-O3 -mcpu=power2 -fno-schedule-insns -w -mhard-float" } */
- /* This used to ICE as the peephole was not checking to see
-    if the register is a floating point one (I think this cannot
-    happen in real life except in this example).  */
- 
- register volatile double t1 __asm__("r14");
- register volatile double t2 __asm__("r15");
- register volatile double t3 __asm__("r16"), t4 __asm__("r17");
- void t(double *a, double *b)
- {
-         t1 = a[-1];
-         t2 = a[0];
-         t3 = a[1];
-         t4 = a[2];
-         b[-1] = t1;
-         b[0] = t2;
-         b[1] = t3;
-         b[2] = t4;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-power2-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-power2-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/rs6000-power2-2.c	Wed Sep  1 05:26:15 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/rs6000-power2-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,22 ****
- /* { dg-do compile { target powerpc-*-* rs6000-*-* }  } */
- /* { dg-options "-O3 -mcpu=power2 -fno-schedule-insns -w -mhard-float" } */
- /* { dg-final { scan-assembler-not "lfd" } } */
- /* { dg-final { scan-assembler-not "sfd" } } */
- /* { dg-final { scan-assembler "lfq" } } */
- /* { dg-final { scan-assembler "stfq" } } */
- 
- register volatile double t1 __asm__("fr0");
- register volatile double t2 __asm__("fr1");
- register volatile double t3 __asm__("fr2"), t4 __asm__("fr3");
- void t(double *a, double *b)
- {
-         t1 = a[-1];
-         t2 = a[0];
-         t3 = a[1];
-         t4 = a[2];
-         b[-1] = t1;
-         b[0] = t2;
-         b[1] = t3;
-         b[2] = t4;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/setjmp-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/setjmp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/setjmp-2.c	Tue Nov 23 13:08:32 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/setjmp-2.c	Sat Dec 10 13:47:29 2005
***************
*** 1,8 ****
  /* PR middle-end/17813 */
  /* Origin: Tom Hughes <tom@compton.nu> */
  /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
! /* { dg-options "-O -fomit-frame-pointer -march=i386" { target i?86-*-linux* } } */
! /* { dg-options "-O -fomit-frame-pointer -m32 -march=i386" { target x86_64-*-linux* } } */
  
  #include <setjmp.h>
  #include <signal.h>
--- 1,8 ----
  /* PR middle-end/17813 */
  /* Origin: Tom Hughes <tom@compton.nu> */
  /* { dg-do run { target i?86-*-linux* x86_64-*-linux* } } */
! /* { dg-options "-O -fomit-frame-pointer" } */
! /* { dg-options "-O -fomit-frame-pointer -march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  #include <setjmp.h>
  #include <signal.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/short-compare-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/short-compare-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/short-compare-1.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/short-compare-1.c	Sat Dec 10 13:47:29 2005
***************
*** 3,10 ****
  
  /* { dg-do run } */
  /* { dg-options "-O" } */
! /* { dg-options "-O -mtune=i686" { target { i?86-*-* && ilp32 } } } */
! /* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */
  
  extern void abort(void);
  
--- 3,9 ----
  
  /* { dg-do run } */
  /* { dg-options "-O" } */
! /* { dg-options "-O -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  extern void abort(void);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/short-compare-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/short-compare-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/short-compare-2.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/short-compare-2.c	Sat Dec 10 13:47:29 2005
***************
*** 4,11 ****
  
  /* { dg-do run } */
  /* { dg-options "-O" } */
! /* { dg-options "-O -mtune=i686" { target { i?86-*-* && ilp32 } } } */
! /* { dg-options "-O -m32 -mtune=i686" { target x86_64-*-* } } */
  
  extern void abort();
  
--- 4,10 ----
  
  /* { dg-do run } */
  /* { dg-options "-O" } */
! /* { dg-options "-O -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  extern void abort();
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-3.c	Wed Feb  9 01:43:50 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-3.c	Wed Jul 20 06:39:38 2005
***************
*** 5,11 ****
     Copyright (C) 2002 Free Software Foundation Inc.
     Contributed by Hans-Peter Nilsson  <hp@bitrange.com>  */
  
! /* { 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
--- 5,11 ----
     Copyright (C) 2002 Free Software Foundation Inc.
     Contributed by Hans-Peter Nilsson  <hp@bitrange.com>  */
  
! /* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */
  /* { dg-options "-O2 -foptimize-sibling-calls" } */
  
  /* The option -foptimize-sibling-calls is the default, but serves as
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-4.c	Wed Feb  9 01:43:50 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-4.c	Wed Jul 20 06:39:38 2005
***************
*** 5,11 ****
     Copyright (C) 2002 Free Software Foundation Inc.
     Contributed by Hans-Peter Nilsson  <hp@bitrange.com>  */
  
! /* { 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
--- 5,11 ----
     Copyright (C) 2002 Free Software Foundation Inc.
     Contributed by Hans-Peter Nilsson  <hp@bitrange.com>  */
  
! /* { dg-do run { xfail arc-*-* avr-*-* c4x-*-* cris-*-* h8300-*-* hppa*64*-*-* m32r-*-* m68hc1?-*-* m681?-*-* m680*-*-* m68k-*-* mcore-*-* mn10300-*-* xstormy16-*-* v850*-*-* vax-*-* xtensa-*-* } } */
  /* { dg-options "-O2 -foptimize-sibling-calls" } */
  
  /* The option -foptimize-sibling-calls is the default, but serves as
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-5.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,43 ****
- /* Check that indirect sibcalls understand regparm.  */
- /* { dg-do run { target i?86-*-* } } */
- /* { dg-options "-O2" } */
- 
- extern void abort (void);
- 
- int (*f)(int, int) __attribute__((regparm(2)));
- int (*g)(int, int, int) __attribute__((regparm(3)));
- 
- int __attribute__((noinline))
- foo(void)
- {
-   return f(1, 2);
- }
- 
- int __attribute__((noinline))
- bar(void)
- {
-   return g(1, 2, 3);
- }
- 
- int __attribute__((regparm(2)))
- f1(int x, int y)
- {
-   return x*3 + y;
- }
- 
- int __attribute__((regparm(3)))
- g1(int x, int y, int z)
- {
-   return x*9 + y*3 + z;
- }
- 
- int main()
- {
-   f = f1;
-   g = g1;
-   if (foo() != 1*3 + 2)
-     abort ();
-   if (bar() != 1*9 + 2*3 + 3)
-     abort ();
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sibcall-6.c	Tue Aug  3 08:22:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sibcall-6.c	Wed Dec 14 17:34:21 2005
***************
*** 7,12 ****
--- 7,13 ----
     Contributed by Andreas Bauer <baueran@in.tum.de>  */
  
  /* { dg-do run { target i?86-*-* s390*-*-* x86_64-*-*} } */
+ /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
  /* { dg-options "-O2 -foptimize-sibling-calls" } */
  
  extern void abort (void);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/smod-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/smod-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/smod-1.c	Wed Apr  6 17:11:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/smod-1.c	Fri Dec  9 23:56:34 2005
***************
*** 3,9 ****
  
  /* { dg-do run } */
  /* { dg-options "-std=c99" } */
! /* { dg-options "-std=c99 -mtune=i486" { target { i?86-*-* && ilp32 } } } */
  
  #include <limits.h>
  
--- 3,9 ----
  
  /* { dg-do run } */
  /* { dg-options "-std=c99" } */
! /* { dg-options "-std=c99 -mtune=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  #include <limits.h>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sparc-frame-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/sparc-frame-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sparc-frame-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sparc-frame-1.c	Mon Oct 10 22:24:49 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR target/24284 */
+ /* { dg-do compile { target sparc*-*-* } } */
+ /* { dg-options "-O -g" } */
+ 
+ void do_run(void *ip)
+ {
+   char dummy[8192];
+ 
+   __asm__("" : : "g"(dummy));
+ 
+   goto *ip;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sparc-getcontext-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/sparc-getcontext-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sparc-getcontext-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sparc-getcontext-1.c	Thu Nov 10 16:58:56 2005
***************
*** 0 ****
--- 1,118 ----
+ /* PR middle-end/22127 */
+ /* Testcase by <akr@m17n.org> */
+ 
+ /* [ dg-do run { target sparc*-sun-solaris2.* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O" } */
+ 
+ typedef unsigned int size_t;
+ extern int printf(const char *, ...);
+ typedef unsigned char uint8_t;
+ typedef unsigned int uint32_t;
+ typedef unsigned int uint_t;
+ typedef char *caddr_t;
+ typedef int greg_t;
+ typedef greg_t gregset_t[19];
+ struct rwindow {
+  greg_t rw_local[8];
+  greg_t rw_in[8];
+ };
+ typedef struct gwindows {
+  int wbcnt;
+  greg_t *spbuf[31];
+  struct rwindow wbuf[31];
+ } gwindows_t;
+ struct fpu {
+  union {
+   uint32_t fpu_regs[32];
+   double fpu_dregs[16];
+  } fpu_fr;
+  struct fq *fpu_q;
+  uint32_t fpu_fsr;
+  uint8_t fpu_qcnt;
+  uint8_t fpu_q_entrysize;
+  uint8_t fpu_en;
+ };
+ typedef struct fpu fpregset_t;
+ typedef struct {
+  unsigned int xrs_id;
+  caddr_t xrs_ptr;
+ } xrs_t;
+ typedef struct {
+  gregset_t gregs;
+  gwindows_t *gwins;
+  fpregset_t fpregs;
+  xrs_t xrs;
+  long filler[19];
+ } mcontext_t;
+ typedef struct {
+  unsigned int __sigbits[4];
+ } sigset_t;
+ typedef struct sigaltstack {
+  void *ss_sp;
+  size_t ss_size;
+  int ss_flags;
+ } stack_t;
+ typedef struct ucontext ucontext_t;
+ struct ucontext {
+  uint_t uc_flags;
+  ucontext_t *uc_link;
+  sigset_t uc_sigmask;
+  stack_t uc_stack;
+  mcontext_t uc_mcontext;
+  long uc_filler[23];
+ };
+ extern int getcontext(ucontext_t *);
+ extern int setcontext(const ucontext_t *);
+ 
+ int flag;
+ ucontext_t cont;
+ int pad[100];
+ typedef void (*fun_t)(int);
+ fun_t p0,p1,p2,p3,p4,p5,p6,p7,p8,p9,p10,p11,p12;
+ 
+ int global;
+ 
+ extern void abort(void);
+ 
+ void h1(int v)
+ {
+   global = v;
+ }
+ 
+ void h2(int v)
+ {
+   if (v != 1)
+     abort();
+ }
+ 
+ void f(void)
+ {
+   flag = 1;
+   setcontext(&cont);
+ }
+ 
+ int g(void)
+ {
+   int ret;
+ 
+   flag = 0;
+   getcontext(&cont);
+   ret = flag;
+   if (ret == 0) {
+     h1 (flag);
+     p0 = p1 = p2 = p3 = p4 = p5 = p6 = p7 = p8 = h1;
+     f();
+     p0(ret); p1(ret); p2(ret); p3(ret); p4(ret); p5(ret); p6(ret); p7(ret); p8(ret);
+   }
+   else {
+     h2 (flag);
+   }
+   return ret;
+ }
+ 
+ int main(void)
+ {
+   g();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/spe1.c gcc-4.1.0/gcc/testsuite/gcc.dg/spe1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/spe1.c	Sun Aug 10 15:17:35 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/spe1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,14 ****
- /* { dg-do compile { target powerpc-*-eabi* } } */
- /* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
- 
- /* (Test with -O0 so we don't optimize any of them away).  */
- 
- 
- typedef float __attribute__((vector_size(8))) __ev64_fs__;
- 
- static __ev64_opaque__ Foo (void);
- 
- void Bar ()
- {
-   __ev64_fs__ fs = Foo ();
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/special/mips-abi.exp gcc-4.1.0/gcc/testsuite/gcc.dg/special/mips-abi.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/special/mips-abi.exp	Mon Aug 23 06:53:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/special/mips-abi.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This test checks whether MIPS ELF configurations pass the right
  # ABI flags to the assembler.  An ABI flag should always be passed
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This test checks whether MIPS ELF configurations pass the right
  # ABI flags to the assembler.  An ABI flag should always be passed
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/special/special.exp gcc-4.1.0/gcc/testsuite/gcc.dg/special/special.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/special/special.exp	Thu Jun  5 22:18:54 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/special/special.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Please email any bugs, comments, and/or additions to this file to:
  # jlarmour@redhat.com
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Please email any bugs, comments, and/or additions to this file to:
  # jlarmour@redhat.com
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/special/weak-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/special/weak-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/special/weak-1.c	Thu Jun  5 22:18:54 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/special/weak-1.c	Mon Aug 15 23:42:33 2005
***************
*** 1,6 ****
! /* { dg-do run } */
  /* { dg-require-weak "" } */
  /* { dg-additional-sources weak-1a.c } */
  
  #include <stdlib.h>
  
--- 1,7 ----
! /* { dg-do run { xfail { hppa*-*-hpux* && { ! hppa*64*-*-* } } } } */
  /* { dg-require-weak "" } */
  /* { dg-additional-sources weak-1a.c } */
+ /* See PR target/23387 for hppa xfail details.  */
  
  #include <stdlib.h>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sync-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/sync-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sync-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sync-1.c	Thu Apr 14 23:37:47 2005
***************
*** 0 ****
--- 1,40 ----
+ /* Validate that the __sync builtins are overloaded properly.  */
+ /* { dg-do compile } */
+ /* { dg-options "-Werror" } */
+ 
+ #define TEST1(TYPE, BUILTIN)		\
+ void t_##TYPE##BUILTIN(TYPE *p)		\
+ {					\
+   __typeof(BUILTIN(p, 1)) *pp;		\
+   pp = p;				\
+ }
+ 
+ #define TEST2(BUILTIN)		\
+   TEST1(int, BUILTIN)		\
+   TEST1(long, BUILTIN)
+ 
+ TEST2(__sync_fetch_and_add)
+ TEST2(__sync_fetch_and_sub)
+ TEST2(__sync_fetch_and_or)
+ TEST2(__sync_fetch_and_and)
+ TEST2(__sync_fetch_and_xor)
+ TEST2(__sync_fetch_and_nand)
+ 
+ TEST2(__sync_add_and_fetch)
+ TEST2(__sync_sub_and_fetch)
+ TEST2(__sync_or_and_fetch)
+ TEST2(__sync_and_and_fetch)
+ TEST2(__sync_xor_and_fetch)
+ TEST2(__sync_nand_and_fetch)
+ 
+ TEST2(__sync_lock_test_and_set)
+ 
+ #define TEST3(TYPE)					\
+ void t_##TYPE##__sync_val_compare_and_swap(TYPE *p)	\
+ {							\
+   __typeof(__sync_val_compare_and_swap(p, 1, 2)) *pp;	\
+   pp = p;						\
+ }
+ 
+ TEST3(int)
+ TEST3(long)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/sync-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/sync-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/sync-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/sync-2.c	Fri Dec  9 23:56:34 2005
***************
*** 0 ****
--- 1,100 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target sync_char_short } */
+ /* { dg-options "-march=i486" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ 
+ /* Test functionality of the intrinsics for 'short' and 'char'.  */
+ 
+ extern void abort (void);
+ extern void *memcpy (void *, const void *, __SIZE_TYPE__);
+ 
+ static char AI[18];
+ static char init_qi[18] = { 3,5,7,9,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0 };
+ static char test_qi[18] = { 3,5,7,9,1,4,22,-12,7,8,9,7,1,-12,7,8,9,7 };
+ 
+ static void
+ do_qi (void)
+ {
+   if (__sync_fetch_and_add(AI+4, 1) != 0)
+     abort ();
+   if (__sync_fetch_and_add(AI+5, 4) != 0)
+     abort ();
+   if (__sync_fetch_and_add(AI+6, 22) != 0)
+     abort ();
+   if (__sync_fetch_and_sub(AI+7, 12) != 0)
+     abort ();
+   if (__sync_fetch_and_and(AI+8, 7) != (char)-1)
+     abort ();
+   if (__sync_fetch_and_or(AI+9, 8) != 0)
+     abort ();
+   if (__sync_fetch_and_xor(AI+10, 9) != 0)
+     abort ();
+   if (__sync_fetch_and_nand(AI+11, 7) != 0)
+     abort ();
+ 
+   if (__sync_add_and_fetch(AI+12, 1) != 1)
+     abort ();
+   if (__sync_sub_and_fetch(AI+13, 12) != (char)-12)
+     abort ();
+   if (__sync_and_and_fetch(AI+14, 7) != 7)
+     abort ();
+   if (__sync_or_and_fetch(AI+15, 8) != 8)
+     abort ();
+   if (__sync_xor_and_fetch(AI+16, 9) != 9)
+     abort ();
+   if (__sync_nand_and_fetch(AI+17, 7) != 7)
+     abort ();
+ }
+ 
+ static short AL[18];
+ static short init_hi[18] = { 3,5,7,9,0,0,0,0,-1,0,0,0,0,0,-1,0,0,0 };
+ static short test_hi[18] = { 3,5,7,9,1,4,22,-12,7,8,9,7,1,-12,7,8,9,7 };
+ 
+ static void
+ do_hi (void)
+ {
+   if (__sync_fetch_and_add(AL+4, 1) != 0)
+     abort ();
+   if (__sync_fetch_and_add(AL+5, 4) != 0)
+     abort ();
+   if (__sync_fetch_and_add(AL+6, 22) != 0)
+     abort ();
+   if (__sync_fetch_and_sub(AL+7, 12) != 0)
+     abort ();
+   if (__sync_fetch_and_and(AL+8, 7) != -1)
+     abort ();
+   if (__sync_fetch_and_or(AL+9, 8) != 0)
+     abort ();
+   if (__sync_fetch_and_xor(AL+10, 9) != 0)
+     abort ();
+   if (__sync_fetch_and_nand(AL+11, 7) != 0)
+     abort ();
+ 
+   if (__sync_add_and_fetch(AL+12, 1) != 1)
+     abort ();
+   if (__sync_sub_and_fetch(AL+13, 12) != -12)
+     abort ();
+   if (__sync_and_and_fetch(AL+14, 7) != 7)
+     abort ();
+   if (__sync_or_and_fetch(AL+15, 8) != 8)
+     abort ();
+   if (__sync_xor_and_fetch(AL+16, 9) != 9)
+     abort ();
+   if (__sync_nand_and_fetch(AL+17, 7) != 7)
+     abort ();
+ }
+ 
+ int main()
+ {
+   memcpy(AI, init_qi, sizeof(init_qi));
+   memcpy(AL, init_hi, sizeof(init_hi));
+ 
+   do_qi ();
+   do_hi ();
+ 
+   if (memcmp (AI, test_qi, sizeof(test_qi)))
+     abort ();
+   if (memcmp (AL, test_hi, sizeof(test_hi)))
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/alias-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/alias-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/alias-1.c	Sun Nov 14 16:52:48 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/alias-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* { dg-do link } */
  /* { dg-require-alias "" } */
  /* { dg-require-visibility "" } */
+ /* { dg-require-effective-target tls } */
  /* Test that encode_section_info handles the change from externally
     defined to locally defined (via hidden).   Extracted from glibc.  */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/alpha-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/alpha-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/alpha-1.c	Sun Jan 11 23:58:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/alpha-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* Make sure that we honor initial-exec.  */
  /* { dg-do compile { target alpha*-*-* } } */
  /* { dg-options "" } */
+ /* { dg-require-effective-target tls } */
  
  static __thread int xyzzy __attribute__ ((tls_model ("initial-exec")));
  int foo(void) { return xyzzy; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/asm-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/asm-1.c	Thu May 13 06:40:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/asm-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-options "-Werror" } */
+ /* { dg-require-effective-target tls } */
  __thread int i;
  
  int foo ()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/debug-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/debug-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/debug-1.c	Wed Jun  8 20:46:42 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/debug-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-do assemble } */
  /* { dg-options "-g" } */
+ /* { dg-require-effective-target tls } */
  
  __thread int i;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-1.c	Wed May 22 01:12:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Valid __thread specifiers.  */
+ /* { dg-require-effective-target tls } */
  
  __thread int g1;
  extern __thread int g2;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-2.c	Sat Sep 11 21:29:42 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-2.c	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Invalid __thread specifiers.  */
+ /* { dg-require-effective-target tls } */
  
  __thread extern int g1;		/* { dg-error "'__thread' before 'extern'" } */
  __thread static int g2;		/* { dg-error "'__thread' before 'static'" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-3.c	Sun Jan 11 22:35:15 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-3.c	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Report invalid extern and __thread combinations.  */
+ /* { dg-require-effective-target tls } */
  
  extern int j;		/* { dg-error "previous declaration" } */
  __thread int j;		/* { dg-error "follows non-thread-local" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-4.c	Sat Sep 11 21:29:42 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-4.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* Invalid __thread specifiers.  As diag-4.c but some cases in
     different orders.  */
+ /* { dg-require-effective-target tls } */
  
  __thread typedef int g4;	/* { dg-error "'__thread' used with 'typedef'" } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/diag-5.c	Sat Sep 11 21:29:42 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/diag-5.c	Fri Dec  2 06:43:45 2005
***************
*** 1,3 ****
--- 1,4 ----
  /* __thread specifiers on empty declarations.  */
+ /* { dg-require-effective-target tls } */
  
  __thread struct foo; /* { dg-warning "warning: useless '__thread' in empty declaration" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/init-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/init-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/init-1.c	Wed May 22 01:12:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/init-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* Invalid initializations.  */
+ /* { dg-require-effective-target tls } */
  
  extern __thread int i;
  int *p = &i;	/* { dg-error "initializer element is not constant" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/nonpic-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/nonpic-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/nonpic-1.c	Mon Oct 21 20:27:14 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/nonpic-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -ftls-model=initial-exec" } */
+ /* { dg-require-effective-target tls } */
  
  extern __thread long e1;
  extern __thread int e2;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-1.c	Sat Dec 10 13:47:29 2005
***************
*** 1,7 ****
  /* { dg-do compile } */
  /* { dg-options "-O2 -fPIC" } */
! /* { dg-options "-O2 -fPIC -mtune=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern __thread int thr;
  
--- 1,8 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -fPIC" } */
! /* { dg-options "-O2 -fPIC -mtune=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
! /* { dg-require-effective-target tls } */
! /* { dg-require-effective-target fpic } */
  
  extern __thread int thr;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-10.c	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -fpic" } */
+ /* { dg-require-effective-target tls } */
+ 
+ /* The web pass was creating unrecognisable pic_load_dot_plus_four insns
+    on ARM.  */
+ 
+ __thread int a_thread_local;
+ void *
+ spin (int n)
+ {
+   int i;
+   for (i = 0; i <= n; i++)
+     {
+       a_thread_local += i;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-11.c	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do run } */
+ /* { dg-require-effective-target tls_runtime } */
+ 
+ extern void abort (void);
+ extern void *memset (void *, int, __SIZE_TYPE__);
+ 
+ struct A
+ {
+   char pad[48];
+   int i;
+   int pad2;
+   int j;
+ };
+ __thread struct A a;
+ 
+ int *
+ __attribute__((noinline))
+ foo (void)
+ {
+   return &a.i;
+ }
+ 
+ int
+ main (void)
+ {
+   int *p = foo ();
+   memset (&a, 0, sizeof (a));
+   a.i = 6;
+   a.j = 8;
+   if (p[0] != 6 || p[1] != 0 || p[2] != 8)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-2.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-2.c	Sat Dec 10 13:47:29 2005
***************
*** 4,11 ****
     on IA-32.  */
  /* { dg-do link } */
  /* { dg-options "-O2 -ftls-model=initial-exec" } */
! /* { dg-options "-O2 -ftls-model=initial-exec -march=i686" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  __thread int thr;
  
--- 4,11 ----
     on IA-32.  */
  /* { dg-do link } */
  /* { dg-options "-O2 -ftls-model=initial-exec" } */
! /* { dg-options "-O2 -ftls-model=initial-exec -march=i686" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
! /* { dg-require-effective-target tls } */
  
  __thread int thr;
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-3.c	Wed Oct  2 01:55:10 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-3.c	Fri Dec  9 23:56:34 2005
***************
*** 1,6 ****
  /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
! /* { dg-options "-O2 -fpic -mregparm=3" { target i?86-*-* } } */
  
  extern __thread int i, j, k;
  extern void bar(int *, int *, int *);
--- 1,8 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
! /* { dg-options "-O2 -fpic -mregparm=3" { target i?86-*-* x86_64-*-* } } */
! /* { dg-require-effective-target tls } */
! /* { dg-require-effective-target fpic } */
  
  extern __thread int i, j, k;
  extern void bar(int *, int *, int *);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-4.c	Mon Dec  9 23:54:01 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-4.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-require-effective-target tls } */
  
  struct A
  {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-5.c	Fri Jan 17 07:04:42 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-5.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-require-effective-target tls } */
  /* Sched1 moved {load_tp} pattern between strlen call and the copy
     of the hard return value to its pseudo.  This resulted in a
     reload abort, since the hard register was not spillable.  */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-6.c	Fri May 16 19:35:42 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-6.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-require-effective-target tls } */
  
  extern void abort (void);
  extern void exit (int);
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-7.c	Thu Jul 31 22:54:29 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-7.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -fPIC" } */
+ /* { dg-require-effective-target tls } */
  
  static __thread void *baz [4] __attribute__((tls_model ("initial-exec")));
  void foo (void)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-8.c	Wed Jan  5 20:29:06 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-8.c	Fri Dec  2 06:43:45 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* PR 18910 */
  /* { dg-do compile } */
  /* { dg-options "-O2" } */
+ /* { dg-require-effective-target tls } */
  
  static __thread void *foo [2];
  void
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/opt-9.c	Wed May 25 07:14:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/opt-9.c	Fri Dec  2 06:43:45 2005
***************
*** 1,7 ****
  /* PR 21412 */
  /* { dg-do compile */
  /* { dg-options "-O2 -fPIC" } */
! /* { dg-error "" "unrecognizable insn" { target sparc*-*-* } 0 } */
  
  struct S { int x[10]; };
  extern __thread struct S s;
--- 1,7 ----
  /* PR 21412 */
  /* { dg-do compile */
  /* { dg-options "-O2 -fPIC" } */
! /* { dg-require-effective-target tls } */
  
  struct S { int x[10]; };
  extern __thread struct S s;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/pic-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/pic-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/pic-1.c	Mon Oct 21 20:27:14 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/pic-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* { dg-do compile } */
  /* { dg-options "-O2 -fpic -ftls-model=global-dynamic" } */
+ /* { dg-require-effective-target tls } */
  
  extern __thread long e1;
  extern __thread int e2;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/pr24428-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/pr24428-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/pr24428-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/pr24428-2.c	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ /* { dg-require-effective-target tls_runtime } */
+ 
+ __thread double thrtest[81];
+ int main ()
+ {
+   double *p, *e;
+   e = &thrtest[81];
+   for (p = &thrtest[0]; p < e; ++p)
+     *p = 1.0;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/pr24428.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/pr24428.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/pr24428.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/pr24428.c	Fri Dec  2 06:43:45 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ /* { dg-require-effective-target tls_runtime } */
+ 
+ __thread double thrtest[81];
+ int main ()
+ {
+   int i;
+   for (i = 0; i < 81; i++)
+     thrtest[i] = 1.0;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/section-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/section-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/section-1.c	Wed May 22 23:31:48 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/section-1.c	Fri Dec  2 06:43:45 2005
***************
*** 1,5 ****
--- 1,6 ----
  /* Verify that we get errors for trying to put TLS data in 
     sections which can't work.  */
+ /* { dg-require-effective-target tls } */
  
  #define A(X)	__attribute__((section(X)))
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/struct-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/struct-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/struct-1.c	Fri Sep 20 20:03:40 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/struct-1.c	Fri Dec  2 06:43:45 2005
***************
*** 2,7 ****
--- 2,8 ----
     to allow addends for @dtpoff relocs or not.  */
  /* { dg-do compile } */
  /* { dg-options "-O2 -fpic" } */
+ /* { dg-require-effective-target tls } */
  
  struct S {
    int s0, s1, s2, s3;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/tls.exp gcc-4.1.0/gcc/testsuite/gcc.dg/tls/tls.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/tls.exp	Wed May 22 01:12:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/tls.exp	Fri Dec  2 06:43:45 2005
***************
*** 1,4 ****
! #   Copyright (C) 2002 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
--- 1,4 ----
! #   Copyright (C) 2002, 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
***************
*** 12,33 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
  # Load support procs.
  load_lib gcc-dg.exp
  
- # Test for thread-local data supported by the platform.  If it
- # isn't, everything will fail with the "not supported" message.
- 
- set comp_output [gcc_target_compile \
- 		"$srcdir/$subdir/trivial.c" "trivial.S" assembly ""]
- if { [string match "*not supported*" $comp_output] } {
-   return 0
- }
- 
  # If a testcase doesn't have special options, use these.
  global DEFAULT_CFLAGS
  if ![info exists DEFAULT_CFLAGS] then {
--- 12,24 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
  # Load support procs.
  load_lib gcc-dg.exp
  
  # If a testcase doesn't have special options, use these.
  global DEFAULT_CFLAGS
  if ![info exists DEFAULT_CFLAGS] then {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tls/trivial.c gcc-4.1.0/gcc/testsuite/gcc.dg/tls/trivial.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tls/trivial.c	Wed May 22 01:12:13 2002
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tls/trivial.c	Fri Dec  2 06:43:45 2005
***************
*** 1 ****
--- 1,3 ----
+ /* { dg-require-effective-target tls } */
+ 
  __thread int i;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/badshift.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/badshift.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/badshift.c	Wed Apr  6 17:11:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/badshift.c	Fri Dec  9 23:56:34 2005
***************
*** 2,8 ****
  
  /* { 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:
--- 2,8 ----
  
  /* { dg-do run } */
  /* { dg-options "" } */
! /* { dg-options "-march=i386" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
  
  /* We used to optimize the DImode shift-by-32 to zero because in combine
     we turned:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c	Sat Aug 14 16:51:37 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-attr-1.c	Mon May 30 20:16:59 2005
***************
*** 1,4 ****
! /* Copyright (C) 2003  Free Software Foundation.
  
     Verify that the `const' function attribute is applied to various
     builtins and that these functions are optimized away by the
--- 1,4 ----
! /* Copyright (C) 2003, 2005  Free Software Foundation.
  
     Verify that the `const' function attribute is applied to various
     builtins and that these functions are optimized away by the
*************** CPTEST1 (ccos)
*** 393,399 ****
  CPTEST1 (ccosh)
  CPTEST1 (cexp)
  CPTEST1R (cimag)
! /*CPTEST1 (clog)*/
  CPTEST1 (conj)
  CPTEST2 (cpow)
  CPTEST1 (cproj)
--- 393,399 ----
  CPTEST1 (ccosh)
  CPTEST1 (cexp)
  CPTEST1R (cimag)
! CPTEST1 (clog)
  CPTEST1 (conj)
  CPTEST2 (cpow)
  CPTEST1 (cproj)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c	Fri Mar 19 03:21:47 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-convert-1.c	Fri Jul  8 05:51:06 2005
***************
*** 7,12 ****
--- 7,13 ----
  
  /* { dg-do link } */
  /* { dg-options "-ffast-math" } */
+ /* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
  
  #include "../builtins-config.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c	Thu Apr 29 01:19:40 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-convert-2.c	Fri Jul  8 05:51:06 2005
***************
*** 7,12 ****
--- 7,13 ----
  
  /* { dg-do link } */
  /* { dg-options "-ffast-math" } */
+ /* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
  
  #include "../builtins-config.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c	Sun May  2 02:53:05 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-convert-3.c	Fri Jul  8 05:51:06 2005
***************
*** 7,12 ****
--- 7,13 ----
  
  /* { dg-do link } */
  /* { dg-options "-ffast-math" } */
+ /* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
  
  #include "../builtins-config.h"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-power-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-power-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-power-1.c	Mon Feb  7 13:24:37 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-power-1.c	Fri Jul  8 05:51:06 2005
***************
*** 7,12 ****
--- 7,13 ----
  
  /* { dg-do link } */
  /* { dg-options "-ffast-math" } */
+ /* { dg-options "-ffast-math -mmacosx-version-min=10.3" { target powerpc-*-darwin* } } */
  
  #include "../builtins-config.h"
  
***************
*** 22,27 ****
--- 23,29 ----
    extern float FN##f(float, float); \
    extern long double FN##l(long double, long double);
  
+ PROTOTYPE(fabs)
  PROTOTYPE(sqrt)
  PROTOTYPE(cbrt)
  PROTOTYPE2(pow)
*************** void test(double d1, double d2, double d
*** 32,70 ****
  {
    /* Test N1root(N2root(x)) -> pow(x,1/(N1*N2)).  */
    /* E.g. sqrt(cbrt(x)) -> pow(x,1/6).  */
! #define ROOT_ROOT(FN1,N1,FN2,N2) \
   extern void link_failure_##FN1##_##FN2(void); \
!  if (FN1(FN2(d1)) != pow(d1,1.0/(N1*N2)) \
!      || C99CODE (FN1##f(FN2##f(f1)) != powf(f1,1.0F/(N1*N2))) \
!      || C99CODE (FN1##l(FN2##l(ld1)) != powl(ld1,1.0L/(N1*N2)))) \
      link_failure_##FN1##_##FN2()
  
!   ROOT_ROOT(sqrt,2,sqrt,2);
!   ROOT_ROOT(sqrt,2,cbrt,3);
!   ROOT_ROOT(cbrt,3,sqrt,2);
!   /*ROOT_ROOT(cbrt,3,cbrt,3); Intentionally not implemented.  */
  
    /* Test pow(Nroot(x),y) -> pow(x,y/N).  */
! #define POW_ROOT(FN,N) \
   extern void link_failure_pow_##FN(void); \
!  if (pow(FN(d1), d2) != pow(d1,d2/N) \
!      || powf(FN##f(f1),f2) != powf(f1,f2/N) \
!      || powl(FN##l(ld1),ld2) != powl(ld1,ld2/N)) \
      link_failure_pow_##FN()
  
!   POW_ROOT(sqrt,2);
!   /*POW_ROOT(cbrt,3); Intentionally not implemented.  */
  
    /* Test Nroot(pow(x,y)) -> pow(x,y/N).  */
! #define ROOT_POW(FN,N) \
   extern void link_failure_##FN##_pow(void); \
!  if (FN(pow(d1, d2)) != pow(d1,d2/N) \
!      || FN##f(powf(f1,f2)) != powf(f1,f2/N) \
!      || FN##l(powl(ld1,ld2)) != powl(ld1,ld2/N)) \
      link_failure_##FN##_pow()
  
!   /*ROOT_POW(sqrt,2); Invalid. */
!   /*ROOT_POW(cbrt,3); Intentionally not implemented.  */
  
    /* Test pow(pow(x,y),z) -> pow(x,y*z).  */
  #define POW_POW \
--- 34,78 ----
  {
    /* Test N1root(N2root(x)) -> pow(x,1/(N1*N2)).  */
    /* E.g. sqrt(cbrt(x)) -> pow(x,1/6).  */
!   /* The `ABS' argument is `fabs' when the transformation only works
!      for nonnegative arguments.  Otherwise it's blank.  */
! #define ROOT_ROOT(FN1,N1,FN2,N2,ABS) \
   extern void link_failure_##FN1##_##FN2(void); \
!  if (FN1(FN2(ABS(d1))) != pow(ABS(d1),1.0/(N1*N2)) \
!      || C99CODE (FN1##f(FN2##f(ABS(f1))) != powf(ABS(f1),1.0F/(N1*N2))) \
!      || C99CODE (FN1##l(FN2##l(ABS(ld1))) != powl(ABS(ld1),1.0L/(N1*N2)))) \
      link_failure_##FN1##_##FN2()
  
!   ROOT_ROOT(sqrt,2,sqrt,2,);
!   ROOT_ROOT(sqrt,2,cbrt,3,);
!   ROOT_ROOT(cbrt,3,sqrt,2,);
!   ROOT_ROOT(cbrt,3,cbrt,3,fabs);
  
    /* Test pow(Nroot(x),y) -> pow(x,y/N).  */
!   /* The `ABS' argument is `fabs' when the transformation only works
!      for nonnegative arguments.  Otherwise it's blank.  */
! #define POW_ROOT(FN,N,ABS) \
   extern void link_failure_pow_##FN(void); \
!  if (pow(FN(ABS(d1)), d2) != pow(ABS(d1),d2/N) \
!      || powf(FN##f(ABS(f1)),f2) != powf(ABS(f1),f2/N) \
!      || powl(FN##l(ABS(ld1)),ld2) != powl(ABS(ld1),ld2/N)) \
      link_failure_pow_##FN()
  
!   POW_ROOT(sqrt,2,);
!   POW_ROOT(cbrt,3,fabs);
  
    /* Test Nroot(pow(x,y)) -> pow(x,y/N).  */
!   /* The `ABS' argument is `fabs' when the transformation only works
!      for nonnegative arguments.  Otherwise it's blank.  */
! #define ROOT_POW(FN,N,ABS) \
   extern void link_failure_##FN##_pow(void); \
!  if (FN(pow(ABS(d1), d2)) != pow(ABS(d1),d2/N) \
!      || FN##f(powf(ABS(f1),f2)) != powf(ABS(f1),f2/N) \
!      || FN##l(powl(ABS(ld1),ld2)) != powl(ABS(ld1),ld2/N)) \
      link_failure_##FN##_pow()
  
!   ROOT_POW(sqrt,2,fabs);
!   ROOT_POW(cbrt,3,fabs);
  
    /* Test pow(pow(x,y),z) -> pow(x,y*z).  */
  #define POW_POW \
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c	Sat Mar 27 05:29:40 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/builtin-wctype-1.c	Fri Aug  5 15:22:43 2005
***************
*** 1,4 ****
! /* Copyright (C) 2004  Free Software Foundation.
  
     Verify that built-in wctype function attributes are correctly set
     by the compiler.
--- 1,4 ----
! /* Copyright (C) 2004, 2005  Free Software Foundation.
  
     Verify that built-in wctype function attributes are correctly set
     by the compiler.
***************
*** 7,38 ****
  
  /* { dg-do link } */
  
  
  void test(int i)
  {
    /* All of these ctype functions should be const/pure and thus
       eliminated.  */
! #define TEST_CTYPE(FN) \
!   extern int FN(int); \
    extern void link_failure_##FN(void); \
    if (FN(i) != FN(i)) \
      link_failure_##FN()
    
  #ifdef __OPTIMIZE__
!   TEST_CTYPE(iswalnum);
!   TEST_CTYPE(iswalpha);
!   TEST_CTYPE(iswblank);
!   TEST_CTYPE(iswcntrl);
!   TEST_CTYPE(iswdigit);
!   TEST_CTYPE(iswgraph);
!   TEST_CTYPE(iswlower);
!   TEST_CTYPE(iswprint);
!   TEST_CTYPE(iswpunct);
!   TEST_CTYPE(iswspace);
!   TEST_CTYPE(iswupper);
!   TEST_CTYPE(iswxdigit);
!   TEST_CTYPE(towlower);
!   TEST_CTYPE(towupper);
  #endif /* __OPTIMIZE__ */
  }
  
--- 7,53 ----
  
  /* { dg-do link } */
  
+ /* Use the target type definitions if we can.  */ 
+ #ifndef __WINT_TYPE__
+ #define __WINT_TYPE__ int
+ #endif
+ 
+ #ifndef __WCHAR_TYPE__
+ #define __WCHAR_TYPE__ int
+ #endif
  
  void test(int i)
  {
    /* All of these ctype functions should be const/pure and thus
       eliminated.  */
! #define TEST_IS_WCTYPE(FN) \
!   extern int FN(__WINT_TYPE__); \
!   extern void link_failure_##FN(void); \
!   if (FN(i) != FN(i)) \
!     link_failure_##FN()
! 
! #define TEST_TO_WCTYPE(FN) \
!   extern __WINT_TYPE__ FN(__WINT_TYPE__); \
    extern void link_failure_##FN(void); \
    if (FN(i) != FN(i)) \
      link_failure_##FN()
+ 
    
  #ifdef __OPTIMIZE__
!   TEST_IS_WCTYPE(iswalnum);
!   TEST_IS_WCTYPE(iswalpha);
!   TEST_IS_WCTYPE(iswblank);
!   TEST_IS_WCTYPE(iswcntrl);
!   TEST_IS_WCTYPE(iswdigit);
!   TEST_IS_WCTYPE(iswgraph);
!   TEST_IS_WCTYPE(iswlower);
!   TEST_IS_WCTYPE(iswprint);
!   TEST_IS_WCTYPE(iswpunct);
!   TEST_IS_WCTYPE(iswspace);
!   TEST_IS_WCTYPE(iswupper);
!   TEST_IS_WCTYPE(iswxdigit);
!   TEST_TO_WCTYPE(towlower);
!   TEST_TO_WCTYPE(towupper);
  #endif /* __OPTIMIZE__ */
  }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/cris-asm-mof-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/cris-asm-mof-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/cris-asm-mof-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/cris-asm-mof-1.c	Wed Mar 23 04:18:54 2005
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do compile { target cris-*-* } } */
+ /* { dg-options "-O2 -march=v10" } */
+ /* { dg-final { scan-assembler "in-asm: .mof" } } */
+ /* { dg-final { scan-assembler "out-asm: .mof" } } */
+ /* { dg-final { scan-assembler "in2-asm: .mof" } } */
+ /* { dg-final { scan-assembler "out2-asm: .mof" } } */
+ 
+ unsigned int
+ in (unsigned int i)
+ {
+   register int i0 asm ("mof") = i;
+   asm ("in-asm: %0" : : "x" (i0));
+ }
+ 
+ unsigned int
+ out (void)
+ {
+   register int o asm ("mof");
+   asm ("out-asm: %0" : "=x" (o));
+   return o;
+ }
+ 
+ unsigned int
+ in2 (unsigned int i)
+ {
+   asm ("in2-asm: %0" : : "h" (i));
+ }
+ 
+ unsigned int
+ out2 (void)
+ {
+   unsigned int o;
+   asm ("out2-asm: %0" : "=h" (o));
+   return o;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr18582-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr18582-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr18582-1.c	Wed Aug  3 14:06:05 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr18582-1.c	Thu Dec  8 01:32:54 2005
***************
*** 1,4 ****
! /* { dg-do compile { target i?86-*-* } } */
  /* { dg-options "-msse3" } */
  typedef char v16qi __attribute__((vector_size (16)));
  typedef float v4sf __attribute__((vector_size (16)));
--- 1,4 ----
! /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
  /* { dg-options "-msse3" } */
  typedef char v16qi __attribute__((vector_size (16)));
  typedef float v4sf __attribute__((vector_size (16)));
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr19683-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr19683-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr19683-1.c	Mon Mar  7 17:51:35 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr19683-1.c	Wed Apr 13 20:33:11 2005
***************
*** 6,11 ****
--- 6,12 ----
  extern void abort (void);
  extern void exit (int);
  
+ #ifndef __mips16
  #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)
*************** main (void)
*** 40,42 ****
--- 41,50 ----
      abort ();
    exit (0);
  }
+ #else
+ int
+ main (void)
+ {
+   exit (0);
+ }
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr20314-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr20314-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr20314-2.c	Thu Mar 10 00:18:15 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr20314-2.c	Mon Dec 12 22:37:46 2005
***************
*** 1,5 ****
  /* 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;
--- 1,5 ----
  /* PR inline-asm/20314 */
! /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
  /* { dg-do compile { target ia64-*-* powerpc*-*-* } } */
  
  int a, b, c, d, e, f, g, h, i, j, k, l;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr23424-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr23424-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr23424-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr23424-1.c	Fri Nov  4 21:24:20 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ extern char *x;
+ extern void foo (void);
+ void f (char *s, char *se, char *mp, char *y)
+ {
+   while (s != se)
+     {
+       char *p;
+       foo ();
+       p = s + *mp;
+       *y++ = *p;
+       s = p;
+     }
+ 
+   x = s;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24257.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24257.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24257.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24257.c	Mon Jan 16 09:37:10 2006
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -fgcse -fgcse-sm" } */
+ 
+ typedef struct A {
+     int buf, left;
+ } A;
+ 
+ static void flush(A *s, int n)
+ {
+     s->buf <<= n;
+ 
+     while (s->left < 32) {
+         s->buf <<= 8;
+         s->left += 8;
+     }
+ 
+     s->buf=0;
+ }
+ 
+ void oof(A *s, int n)
+ {
+     s->buf = n;
+     s->left = n;
+ 
+     flush(s, n);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-1.c	Mon Jan 23 10:01:36 2006
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ typedef long
+ (*bla)(int *node);
+ 
+ static long F2(void *tree, long blk, bla after_node_func)
+ {
+  long call_result = 0;
+  int *node;
+ 
+ 
+  if (call_result = after_node_func(node))
+   goto error_free_node;
+ 
+  T(node);
+  return 0;
+ 
+ error_free_node:
+  T(node);
+ error:
+  return call_result;
+ }
+ 
+ long F1(void *tree)
+ {
+  return F2(tree, F3(tree), (void *)0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-2.c	Mon Jan 23 10:01:36 2006
***************
*** 0 ****
--- 1,55 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
+ typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
+ typedef u_int32_t db_pgno_t;
+ typedef struct __db DB;
+ typedef struct __db_env DB_ENV;
+ typedef struct __db_mpoolfile DB_MPOOLFILE;
+ typedef struct __dbc DBC;
+ struct __db {
+     DB_MPOOLFILE *mpf;
+     db_pgno_t meta_pgno;
+     struct __cq_aq {
+     } s_links;
+ };
+ struct __db_env {
+     struct {
+     } xa_txn;
+     u_int32_t flags;
+ };
+ typedef enum { MU_REMOVE, MU_RENAME, MU_OPEN } mu_action;
+ typedef struct __dbpginfo {
+     u_int8_t type;
+ } PAGE;
+ int __db_master_update(mdbp, sdbp, txn, subdb, type, action, newname, flags)
+   DB *mdbp, *sdbp;
+ {
+     DB_ENV *dbenv;
+     DBC *dbc, *ndbc;
+     PAGE *p, *r;
+     int modify, ret, t_ret;
+     if ((ret = __db_cursor(mdbp, txn, &dbc,
+ 			   (((dbenv)->flags & (0x0000002))
+ 			    && modify) ? 35 : 0)) != 0)
+ 	goto err;
+     switch (action) {
+ 	case MU_REMOVE:
+ 	    if ((ret = __memp_fget(mdbp->mpf, &sdbp->meta_pgno, 0, &p)) != 0)
+ 		goto err;
+ 	    if ((((PAGE *)p)->type) == 9) {
+ 		if ((ret = __db_free(dbc, r)) != 0) { }
+ 	    }
+ 	    if ((ret = __db_free(dbc, p)) != 0) {
+ 		p = ((void *)0);
+ 		goto err;
+ 	    }
+ 	    p = ((void *)0);
+     }
+  err:
+     if (ndbc != ((void *)0) && (t_ret = __db_c_close(ndbc)) != 0 && ret == 0)
+ 	ret = t_ret;
+     return (ret);
+ }
+  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-3.c	Mon Jan 23 10:01:36 2006
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ long fff(int*);
+ 
+ long F2(int *node)
+ {
+  long call_result = 0;
+ 
+  if (call_result = fff(node))
+   goto error_free_node;
+ 
+  T(node);
+  return 0;
+ 
+ error_free_node:
+  T(node);
+  return call_result;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24626-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24626-4.c	Mon Jan 23 10:01:36 2006
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fmodulo-sched" } */
+ 
+ int foo(short* vec1, short* vec2, short* vec3,int len )
+ {
+         int temp,i;
+         for (i=0; i<len; i++) {
+                  temp = vec1[i] * 2;
+                  temp += vec2[i] * 3 ;
+                  vec3[i] = temp;
+         }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24750-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24750-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24750-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24750-1.c	Fri Nov 11 23:19:26 2005
***************
*** 0 ****
--- 1,72 ----
+ extern int unknown;
+ extern int n0;
+ extern short *s0;
+ extern int n1;
+ extern short *s1;
+ extern short *s2;
+ extern int *n2;
+ extern int *n3;
+ extern int n4;
+ extern short *n5;
+ extern int *n6;
+ extern int n7;
+ extern char *unc;
+ 
+ void
+ f (short *sp)
+ {
+   int j = 0;
+   int i = 0;
+   int n8 = 0;
+   int n9 = 0;
+   short *s3 = sp;
+   short s4 = (short) unknown;
+   short s5 = (short) unknown;
+   char *c0 = unc;
+   int n10 = 0;
+   int n11 = 0;
+   int u0 = unknown;
+   int k = 0;
+ 
+   for (n8 = 1; n8 <= n7; n8++)
+     {
+       for (i = 1; i <= n0; i++)
+ 	c0[i] = 0;
+       for (i = 1; i <= u0; i++) { }
+       for (i = sp[0]; i != -32767; i = sp[i])
+ 	if (s4 == u0)
+ 	  for (j = 1; j <= u0; j++)
+ 	    if (!c0[s3[j]])
+ 	      break;
+     }
+   for (n9 = 1; n9 <= n0; n9++) s1[unknown + n9] = n9;
+   for (i = 1; i <= n1; i++)
+     for (j = 1; j <= s4; j++)
+       s3[j] = s1[s3[j]];
+   for (n8 = 1; n8 <= n7; n8++)
+     for (i = 1; i <= s5; i++)
+       s3[i] = s1[s3[i]];
+   for (n9 = 1; n9 <= n0; n9++) sp[s1[n9]] = unknown;
+   for (n10 = 2; n10 < n4; n10++) { }
+   for (k = 1; k <= unknown; k++)
+     {
+       s4 = s0[n5[u0]];
+       for (i = 1; i <= s4; i++) { }
+       for (j = 1; j <= s4; j++)
+ 	if (n2[1] != 0)
+ 	  if (i == unknown)
+ 	    unknown = n3[unknown];
+       n6[u0] = n10;
+     }
+   for (k = n7; k >= n11; k--)
+     if (n2[k] == -32767)
+       break;
+   free (c0);
+ 
+   for (i = 1; i <= n7; i++)
+     {
+       for (j = 1; j <= s4; j++) { }
+       for (n8 = s2[unknown]; n8 != -32767; n8 = s2[n8]) { }
+       for (j = 1; j <= s5; j++) { }
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24912-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24912-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr24912-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr24912-1.c	Sat Nov 19 21:58:23 2005
***************
*** 0 ****
--- 1,10 ----
+ void foo(void);
+ void
+ bar (unsigned char *p)
+ {
+   int j;
+   j = *(p) ;
+   j += ((signed char) (*p) ) << 8;
+   if (j)
+     foo();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25183.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25183.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25183.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25183.c	Tue Jan  3 09:25:29 2006
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-pedantic" } */
+ 
+ enum err {
+   err_IO = 0x8a450000, /* { dg-warning "int" } */
+   err_NM,
+   err_EOF,
+   err_SE,
+   err_PT
+ };
+ static enum err E_;
+ int error()
+ {
+   switch (E_) {
+     case err_IO : break;  /* { dg-warning "overflow" } */
+     case err_NM : break;  /* { dg-warning "overflow" } */
+     case err_EOF : break; /* { dg-warning "overflow" } */
+     case err_SE : break;  /* { dg-warning "overflow" } */
+     case err_PT : break;  /* { dg-warning "overflow" } */
+     default : return 0;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25654.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25654.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25654.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25654.c	Mon Jan 23 09:50:07 2006
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do run } */
+ 
+ extern void abort (void) __attribute__((noreturn));
+ 
+ union setconflict
+ {
+   short a[20];
+   int b[10];
+ };
+ 
+ int
+ main ()
+ {
+   int sum = 0;
+   {
+     union setconflict a;
+     short *c;
+     c = a.a;
+     asm ("": "=r" (c):"0" (c));
+     *c = 0;
+     asm ("": "=r" (c):"0" (c));
+     sum += *c;
+   }
+   {
+     union setconflict a;
+     int *c;
+     c = a.b;
+     asm ("": "=r" (c):"0" (c));
+     *c = 1;
+     asm ("": "=r" (c):"0" (c));
+     sum += *c;
+   }
+ 
+   if (sum != 1)
+     abort();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25706-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25706-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25706-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25706-1.c	Sat Jan 28 23:03:00 2006
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do assemble } */
+ /* Invalid assembly generated due to port bug.  */
+ struct tcp_opt {
+  unsigned int window_clamp;
+  unsigned int rcv_ssthresh;
+  unsigned short advmss;
+ };
+ extern int sysctl_tcp_app_win;
+ void tcp_init_buffer_space(struct tcp_opt *tp, int maxwin)
+ {
+   if (tp->window_clamp >= maxwin)
+     if (sysctl_tcp_app_win && maxwin>4*tp->advmss)
+       tp->window_clamp
+ 	= ({
+ 	  int _x = maxwin;
+ 	  typeof(4*tp->advmss) _y = (4*tp->advmss);
+ 	  _x > _y ? _x : _y;
+ 	});
+ 
+   if (sysctl_tcp_app_win
+       && tp->window_clamp > 2*tp->advmss
+       && tp->window_clamp + tp->advmss > maxwin)
+     tp->window_clamp
+       = ({
+ 	unsigned short _x = maxwin;
+ 	unsigned short _y = (maxwin-tp->advmss);
+ 	_x > _y ? _x : _y;
+       });
+   tp->rcv_ssthresh
+     = ({
+       unsigned int _x = (tp->rcv_ssthresh);
+       unsigned int _y = (tp->window_clamp);
+       _x < _y ? _x : _y;
+     });
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25718-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25718-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25718-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25718-1.c	Sat Jan 28 23:00:24 2006
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* PR 25718: invalid constant operand to the "bound" insn; error at
+    assembly time.  We'll make sure the code is correct to: run a few
+    example values.  */
+ 
+ extern void exit (int);
+ extern void abort (void);
+ unsigned __attribute__ ((__noinline__)) foo(unsigned a)
+ {
+   unsigned l;
+   l = (a >= (~0u - 512) ? (~0u - 512) : a);
+   return l;
+ }
+ 
+ int
+ main (void)
+ {
+   if (foo ((unsigned) -512) != (unsigned) -513
+       || foo ((unsigned) -514) != (unsigned) -514
+       || foo ((unsigned) -513) != (unsigned) -513
+       || foo ((unsigned) -1) != (unsigned) -513
+       || foo (513) != 513
+       || foo (0) != 0)
+     abort ();
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25947-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25947-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr25947-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr25947-1.c	Sat Jan 28 22:55:01 2006
***************
*** 0 ****
--- 1,21 ----
+ /* PR target/25947: define_split in cris.md caused unrecognized insn.  */
+ /* { dg-options "-fpic" { target fpic } } */
+ 
+ extern char *rl_line_buffer;
+ extern int rl_point;
+ extern int rl_end;
+ static const char *vi_motion = " hl^$0ftFT;,%wbeWBE|";
+ void
+ rl_vi_complete (int ignore, int key)
+ {
+   if ((rl_point < rl_end)
+       &&
+       (!(((rl_line_buffer[rl_point]) == ' ')
+ 	 || ((rl_line_buffer[rl_point]) == '\t'))))
+     {
+       if (!
+ 	  (((rl_line_buffer[rl_point + 1]) == ' ')
+ 	   || ((rl_line_buffer[rl_point + 1]) == '\t')))
+ 	rl_vi_end_word (1, 'E');
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr26258.c gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr26258.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/torture/pr26258.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/torture/pr26258.c	Tue Feb 14 09:54:07 2006
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ 
+ extern void abort(void);
+ 
+ typedef struct Foo { int a; int b; }  Foo;
+ 
+ Foo foo(Foo first, Foo last, _Bool ret_first)
+ {
+   Foo t;
+   Foo *t1 = (ret_first ? &first : &last);
+   first.a = 2;
+   last.b = 3;
+   t.a = t1->a;
+   t.b = t1->b;
+   t.a += first.a;
+   t.b += last.b;
+   return t;
+ }
+ 
+ int main()
+ {
+   Foo first = (Foo){1, 2};
+   Foo last = (Foo){3, 4};
+   Foo ret = foo(first, last, 0);
+   if (ret.b != 6)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/transparent-union-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/transparent-union-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/transparent-union-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/transparent-union-4.c	Fri Jul 29 02:46:50 2005
***************
*** 0 ****
--- 1,9 ----
+ /* Test for ICE on transparent union with function pointer and
+    -pedantic.  Bug 22240.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "-pedantic" } */
+ 
+ typedef union { union w *u; int *i; } H __attribute__ ((transparent_union));
+ void (*h) (H);
+ void g (int *s) { h (s); } /* { dg-warning "ISO C prohibits argument conversion to union type" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/transparent-union-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/transparent-union-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/transparent-union-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/transparent-union-5.c	Tue Oct 11 22:52:04 2005
***************
*** 0 ****
--- 1,37 ----
+ /* PR 24255 */
+ /* { dg-do run } */
+ /* { dg-options "-O" } */
+ 
+ extern void abort (void);
+ 
+ union wait { int w_status; };
+ 
+ typedef union
+ {
+   union wait *uptr;
+   int *iptr;
+ } WAIT_STATUS __attribute__ ((__transparent_union__));
+ 
+ int status;
+ union wait wstatus;
+ 
+ void __attribute__((noinline))
+ test1 (WAIT_STATUS s)
+ {
+   if (s.iptr != &status)
+     abort ();
+ }
+ 
+ void __attribute__((noinline))
+ test2 (WAIT_STATUS s)
+ {
+   if (s.uptr != &wstatus)
+     abort ();
+ }
+ 
+ int main()
+ {
+   test1 (&status);
+   test2 (&wstatus);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/inliner-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/inliner-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/inliner-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/inliner-1.c	Thu Jul 28 21:48:38 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ int a;
+ int b[100];
+ void abort (void);
+ 
+ inline void
+ cold_function ()
+ {
+   int i;
+   for (i = 0; i < 99; i++)
+     if (b[i] / (b[i+1] + 1))
+       abort ();
+ }
+ 
+ inline void
+ hot_function ()
+ {
+   int i;
+   for (i = 0; i < 99; i++)
+     if (b[i] / (b[i+1] + 1))
+       abort ();
+ }
+ 
+ main ()
+ {
+   if (a)
+     cold_function ();
+   else
+     hot_function ();
+   return 0;
+ }
+ 
+ /* cold function should be inlined, while hot function should not.  
+    Look for "cold_function () [tail call];" call statement not for the
+    declaration or other apperances of the string in dump.  */
+ /* { dg-final-use { scan-tree-dump "cold_function ..;" "optimized"} } */
+ /* { dg-final-use { scan-tree-dump-not "hot_function ..;" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/tree-prof.exp	Thu Jul 28 21:48:38 2005
***************
*** 0 ****
--- 1,53 ----
+ #   Copyright (C) 2001, 2002, 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Test the functionality of programs compiled with profile-directed block
+ # ordering using -fprofile-generate followed by -fbranch-use.
+ 
+ load_lib target-supports.exp
+ 
+ # Some targets don't support tree profiling.
+ if { ![check_profiling_available ""] } {
+     return
+ }
+ 
+ # The procedures in profopt.exp need these parameters.
+ set tool gcc
+ set prof_ext "gcda gcno"
+ 
+ # Override the list defined in profopt.exp.
+ set PROFOPT_OPTIONS [list {}]
+ 
+ if $tracelevel then {
+     strace $tracelevel
+ }
+ 
+ # Load support procs.
+ load_lib profopt.exp
+ 
+ # These are globals used by profopt-execute.  The first is options
+ # needed to generate profile data, the second is options to use the
+ # profile data.
+ set profile_option "-fprofile-generate"
+ set feedback_option "-fprofile-use"
+ 
+ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.c]] {
+     # If we're only testing specific files and this isn't one of them, skip it.
+     if ![runtest_file_p $runtests $src] then {
+         continue
+     }
+     profopt-execute $src
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/update-cunroll-2.c	Wed Aug  3 13:34:49 2005
***************
*** 0 ****
--- 1,21 ----
+ 
+ /* { dg-options "-O2 -fdump-tree-optimized-blocks" } */
+ int a[8];
+ __attribute__ ((noinline))
+ int t()
+ {
+ 	int i;
+ 	for (i = 0; i < 3; i++)
+ 		if (a[i])
+ 			break;
+ 	return i;
+ }
+ main ()
+ {
+   int i;
+   for (i = 0; i < 1000; i++)
+     t ();
+   return 0;
+ }
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/update-loopch.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/update-loopch.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/update-loopch.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/update-loopch.c	Thu Jul 28 21:40:14 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-options "-O2 -fdump-tree-tree_profile-blocks -fdump-tree-optimized-blocks" } */
+ int max = 33333;
+ int a[8];
+ int
+ main ()
+ {
+   int i;
+   for (i = 0; i < max; i++)
+     {
+       a[i % 8]++;
+     }
+   return 0;
+ }
+ /* Loop header copying will peel away the initial conditional, so the loop body
+    is once reached directly from entry point of function, rest via loopback
+    edge.  */
+ /* { dg-final-use { scan-tree-dump "count:33333" "tree_profile"} } */
+ /* { dg-final-use { scan-tree-dump "count:33332" "optimized"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "tree_profile" } } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/update-tailcall.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/update-tailcall.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/update-tailcall.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/update-tailcall.c	Wed Jul 27 07:40:25 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-options "-O2 -fdump-tree-tailcall -fdump-tree-optimized" } */
+ __attribute__ ((noinline))
+ int factorial(int x)
+ {
+    if (x == 1)
+      return 1;
+    else
+      return x*factorial(--x);
+ }
+ int gbl;
+ int
+ main()
+ {
+    gbl = factorial(100);
+    return 0;
+ }
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "tailc"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "tailc" } } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-1.c	Wed Jul 27 07:40:25 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-tree_profile" } */
+ int a[1000];
+ int b = 256;
+ int c = 257;
+ main ()
+ {
+   int i;
+   int n;
+   for (i = 0; i < 1000; i++)
+     {
+       if (i % 17)
+ 	n = c;
+       else n = b;
+       a[i] /= n;
+     }
+   return 0;
+ }
+ /* { dg-final-use { scan-tree-dump "Div.mod by constant n=257 transformation on insn" "tree_profile"} } */
+ /* { dg-final-use { scan-tree-dump "if \\(n != 257\\)" "optimized"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
+ /* { dg-final-use { cleanup-tree-dump "tree_profile" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-2.c	Wed Jul 27 07:40:25 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-tree_profile" } */
+ unsigned int a[1000];
+ unsigned int b = 256;
+ unsigned int c = 1024;
+ unsigned int d = 17;
+ main ()
+ {
+   int i;
+   unsigned int n;
+   for (i = 0; i < 1000; i++)
+     {
+ 	    a[i]=100*i;
+     }
+   for (i = 0; i < 1000; i++)
+     {
+       if (i % 2)
+ 	n = b;
+       else if (i % 3)
+ 	n = c;
+       else
+ 	n = d;
+       a[i] %= n;
+     }
+   return 0;
+ }
+ /* { dg-final-use { scan-tree-dump "Mod power of 2 transformation on insn" "tree_profile"} } */
+ /* This is part of code checking that n is power of 2, so we are sure that the transformation
+    didn't get optimized out.  */
+ /* { dg-final-use { scan-tree-dump "n \\+ \\-1" "optimized"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
+ /* { dg-final-use { cleanup-tree-dump "tree_profile" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-3.c	Wed Jul 27 07:40:25 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-tree_profile" } */
+ unsigned int a[1000];
+ unsigned int b = 257;
+ unsigned int c = 1023;
+ unsigned int d = 19;
+ main ()
+ {
+   int i;
+   unsigned int n;
+   for (i = 0; i < 1000; i++)
+     {
+ 	    a[i]=18;
+     }
+   for (i = 0; i < 1000; i++)
+     {
+       if (i % 2)
+ 	n = b;
+       else if (i % 3)
+ 	n = c;
+       else
+ 	n = d;
+       a[i] %= n;
+     }
+   return 0;
+ }
+ /* { dg-final-use { scan-tree-dump "Mod subtract transformation on insn" "tree_profile"} } */
+ /* This is part of code checking that n is greater than the divisor so we are sure that it
+    didn't get optimized out.  */
+ /* { dg-final-use { scan-tree-dump "if \\(n \\>" "optimized"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
+ /* { dg-final-use { cleanup-tree-dump "tree_profile" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-4.c	Wed Jul 27 07:40:25 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-tree_profile" } */
+ unsigned int a[1000];
+ unsigned int b = 999;
+ unsigned int c = 1002;
+ unsigned int d = 1003;
+ main ()
+ {
+   int i;
+   unsigned int n;
+   for (i = 0; i < 1000; i++)
+     {
+ 	    a[i]=1000+i;
+     }
+   for (i = 0; i < 1000; i++)
+     {
+       if (i % 2)
+ 	n = b;
+       else if (i % 3)
+ 	n = c;
+       else
+ 	n = d;
+       a[i] %= n;
+     }
+   return 0;
+ }
+ /* { dg-final-use { scan-tree-dump "Mod subtract transformation on insn" "tree_profile"} } */
+ /* This is part of code checking that n is greater than the divisor so we are sure that it
+    didn't get optimized out.  */
+ /* { dg-final-use { scan-tree-dump "if \\(n \\>" "optimized"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
+ /* { dg-final-use { cleanup-tree-dump "tree_profile" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-prof/val-prof-5.c	Sat Aug 20 16:08:51 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-tree_profile" } */
+ int a[1000];
+ int b=997;
+ main()
+ {
+ 	int i;
+ 	for (i = 0; i < 1000; i++)
+ 		if (a[i])
+ 			a[i]/=b;
+ 		else
+ 			a[i]/=b;
+ 	return 0;
+ }
+ /* { dg-final-use { scan-tree-dump "Div.mod by constant b.*=997 transformation on insn" "tree_profile"} } */
+ /* { dg-final-use { scan-tree-dump-not "Invalid sum" "optimized"} } */
+ /* { dg-final-use { cleanup-tree-dump "optimized" } } */
+ /* { dg-final-use { cleanup-tree-dump "tree_profile" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030530-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030530-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030530-2.c	Thu May 13 06:40:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030530-2.c	Thu Mar 31 18:34:19 2005
*************** rs6000_emit_prologue (int i, rs6000_stac
*** 23,26 ****
--- 23,27 ----
     commutative operands correctly.  */
  /* { dg-final { scan-tree-dump-times "\\+" 1 "dom3"} } */
   
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030611-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030611-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030611-1.c	Thu May 13 06:40:50 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030611-1.c	Thu Mar 31 18:34:19 2005
*************** shit(int a)
*** 11,13 ****
--- 11,14 ----
  /* There should be precisely one call to square.   If there is more than one,
     then the dominator optimizations failed to remove the redundant call.  */
  /* { dg-final { scan-tree-dump-times "square" 1 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030703-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030703-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030703-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030703-1.c	Thu Mar 31 18:34:19 2005
*************** foo(int index)
*** 19,21 ****
--- 19,22 ----
  /* There should be exactly one IF conditional.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3"} } */
  
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030703-2.c	Thu Mar 31 18:34:19 2005
*************** get_alias_set (t)
*** 41,43 ****
--- 41,44 ----
     if() to disappear.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3"} } */
  
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030708-1.c	Tue Jun 28 22:00:54 2005
*************** struct rtx_def
*** 17,23 ****
    enum rtx_code code:16;
  };
  
! static int
  nonlocal_mentioned_p (x)
       rtx x;
  {
--- 17,23 ----
    enum rtx_code code:16;
  };
  
! int
  nonlocal_mentioned_p (x)
       rtx x;
  {
*************** nonlocal_mentioned_p (x)
*** 40,43 ****
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
                                                                                  
! 
--- 40,43 ----
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
                                                                                  
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030709-1.c	Tue Jun 28 22:00:54 2005
***************
*** 2,8 ****
  /* { dg-options "-O1 -fdump-tree-optimized" } */
                                                                                  
  static int copying_arguments;
! static int
  foo ()
  {
    unsigned int regno;
--- 2,9 ----
  /* { dg-options "-O1 -fdump-tree-optimized" } */
                                                                                  
  static int copying_arguments;
! 
! int
  foo ()
  {
    unsigned int regno;
*************** foo ()
*** 13,15 ****
--- 14,17 ----
  
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030709-2.c	Thu Mar 31 18:34:19 2005
*************** get_alias_set (t)
*** 51,53 ****
--- 51,54 ----
     collapse down to a simple return 0 without any conditionals).  */
  /* { dg-final { scan-tree-dump-times "if " 1 "cddce"} } */
  
+ /* { dg-final { cleanup-tree-dump "cddce" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030709-3.c	Thu Mar 31 18:34:19 2005
*************** record_component_aliases (type)
*** 44,46 ****
--- 44,48 ----
   
  /* There should be one IF conditional.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030710-1.c	Thu Mar 31 18:34:19 2005
*************** record_component_aliases (type)
*** 52,54 ****
--- 52,55 ----
  /* There should be two loads of vec.length.  */
  /* { dg-final { scan-tree-dump-times "vec.length" 2 "dom3"} } */
  
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c	Sat Apr 23 00:48:47 2005
*************** record_component_aliases (type)
*** 44,54 ****
  /* { dg-final { scan-tree-dump-times "blah \\(\\)" 1 "dom3" } } */
     
  /* There should be four IF conditionals.  */
! /* { dg-final { scan-tree-dump-times "if " 4 "dom3"} } */
                                                                                  
  /* There should be two loads of type.binfo.  */
  /* { dg-final { scan-tree-dump-times "type\\.binfo" 2 "dom3"} } */
   
  /* There should be four loads of vec.length.  */
! /* { dg-final { scan-tree-dump-times "vec.length" 4 "dom3"} } */
  
--- 44,55 ----
  /* { dg-final { scan-tree-dump-times "blah \\(\\)" 1 "dom3" } } */
     
  /* There should be four IF conditionals.  */
! /* { dg-final { scan-tree-dump-times "if " 3 "dom3"} } */
                                                                                  
  /* There should be two loads of type.binfo.  */
  /* { dg-final { scan-tree-dump-times "type\\.binfo" 2 "dom3"} } */
   
  /* There should be four loads of vec.length.  */
! /* { dg-final { scan-tree-dump-times "vec.length" 3 "dom3"} } */
  
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030711-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030711-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030711-2.c	Fri Jan 28 08:26:24 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030711-2.c	Thu Mar 31 18:34:19 2005
*************** get_alias_set (t,z)
*** 65,67 ****
--- 65,69 ----
  
  /* There should be one load of alias.  */
  /* { dg-final { scan-tree-dump-times "->alias" 1 "dom3"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030711-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030711-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030711-3.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030711-3.c	Thu Mar 31 18:34:19 2005
*************** get_alias_set (t)
*** 57,59 ****
--- 57,61 ----
  
  /* There should be one load of alias.  */
  /* { dg-final { scan-tree-dump-times "->alias" 1 "dom3"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c	Mon Jun 21 09:15:29 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030714-1.c	Sat Jul 16 18:56:53 2005
*************** struct rtx_def
*** 14,20 ****
    enum rtx_code code:16;
    unsigned frame_related:1;
  };
! static rtx
  find_base_value (src)
       rtx src;
  {
--- 14,21 ----
    enum rtx_code code:16;
    unsigned frame_related:1;
  };
! 
! rtx
  find_base_value (src)
       rtx src;
  {
*************** find_base_value (src)
*** 33,43 ****
  }
  
  
! /* There should be six IF conditionals.  */
! /* { dg-final { scan-tree-dump-times "if " 6 "dom3"} } */
  
  /* There should be no casts to short unsigned int.  */
  /* { dg-final { scan-tree-dump-times "\\(short unsigned int\\)" 0 "dom3"} } */
  
! /* There should be three loads of ->code.  */
! /* { dg-final { scan-tree-dump-times "->code" 3 "dom3"} } */
--- 34,46 ----
  }
  
  
! /* There should be four IF conditionals.  */
! /* { dg-final { scan-tree-dump-times "if " 4 "dom3"} } */
  
  /* There should be no casts to short unsigned int.  */
  /* { dg-final { scan-tree-dump-times "\\(short unsigned int\\)" 0 "dom3"} } */
  
! /* There should be two loads of ->code.  */
! /* { dg-final { scan-tree-dump-times "->code" 2 "dom3"} } */
! 
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c	Wed Jul 28 05:13:10 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c	Thu Mar 31 18:34:19 2005
*************** get_alias_set (t)
*** 36,39 ****
     properly.  */
  /* { dg-final { scan-tree-dump-times "if " 3 "dom3"} } */
   
! 
--- 36,39 ----
     properly.  */
  /* { dg-final { scan-tree-dump-times "if " 3 "dom3"} } */
   
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030728-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030728-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030728-1.c	Mon Jun  7 17:53:03 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030728-1.c	Thu Mar 31 18:34:19 2005
*************** objects_must_conflict_p (t1, t2)
*** 41,47 ****
    return foo (t2 ? get_alias_set (t2) : 0);
  }
  
! /* There should be three assignments of variables to the value zero.  */
! /* { dg-final { scan-tree-dump-times " = 0" 3 "optimized"} } */
   
! 
--- 41,47 ----
    return foo (t2 ? get_alias_set (t2) : 0);
  }
  
! /* There should be two assignments of variables to the value zero.  */
! /* { dg-final { scan-tree-dump-times " = 0" 2 "optimized"} } */
   
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030729-1.c	Thu Mar 31 18:34:19 2005
*************** readonly_fields_p (type)
*** 50,52 ****
--- 50,54 ----
  /* There should be one load of ->common.code.  We currently fail this
     because we load from ->common.code using different types.  */
  /* { dg-final { scan-tree-dump-times "common\.code" 1 "dom3"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030730-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030730-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030730-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030730-1.c	Thu Mar 31 18:34:19 2005
*************** foo (int attr_kind, unsigned long offset
*** 21,24 ****
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
                                                                                  
! 
--- 21,24 ----
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
                                                                                  
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030730-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030730-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030730-2.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030730-2.c	Thu Mar 31 18:34:19 2005
*************** foo (int attr_kind, unsigned long offset
*** 21,23 ****
--- 21,24 ----
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
  
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030731-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030731-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030731-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030731-1.c	Thu Mar 31 18:34:19 2005
*************** store_expr (exp, target, want_value)
*** 64,66 ****
--- 64,67 ----
     immediately dominates the comparison in question.  We need something
     stronger.  */
  /* { dg-final { scan-tree-dump-times "target.*!= 0" 0 "dom3" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030731-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030731-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030731-2.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030731-2.c	Tue May 10 00:57:28 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-ccp" } */
    
  
  bar (int i, int partial, int args_addr)
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-store_ccp" } */
    
  
  bar (int i, int partial, int args_addr)
*************** bar (int i, int partial, int args_addr)
*** 13,16 ****
  
  /* There should be only one IF conditional since the first does nothing
     useful.  */
! /* { dg-final { scan-tree-dump-times "if " 1 "ccp"} } */
--- 13,17 ----
  
  /* There should be only one IF conditional since the first does nothing
     useful.  */
! /* { dg-final { scan-tree-dump-times "if " 1 "store_ccp"} } */
! /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-1.c	Tue Jun 28 22:00:54 2005
*************** struct rtx_def
*** 23,29 ****
  static int *uid_cuid;
  static int max_uid_cuid;
  
! static rtx
  bar (rtx r)
  {
    rtx place = r;
--- 23,29 ----
  static int *uid_cuid;
  static int max_uid_cuid;
  
! rtx
  bar (rtx r)
  {
    rtx place = r;
*************** bar (rtx r)
*** 42,46 ****
     which combines the result of those two tests into a new test
     must always be true and it is optimized appropriately.  */
  /* { dg-final { scan-tree-dump-times "if " 2 "dom3"} } */
!  
! 
--- 42,45 ----
     which combines the result of those two tests into a new test
     must always be true and it is optimized appropriately.  */
  /* { dg-final { scan-tree-dump-times "if " 2 "dom3"} } */
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-10.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-10.c	Mon Jun 13 23:24:47 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-dom3" } */
       
  
  extern const unsigned char mode_size[];
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-vrp" } */
       
  
  extern const unsigned char mode_size[];
*************** subreg_highpart_offset (outermode, inner
*** 18,25 ****
  }
  
  /* There should be one mask with the value 3.  */
! /* { dg-final { scan-tree-dump-times " \& 3" 1 "dom3"} } */
    
  /* There should be one right shift by 2 places.  */
! /* { dg-final { scan-tree-dump-times " >> 2" 1 "dom3"} } */
  
--- 18,26 ----
  }
  
  /* There should be one mask with the value 3.  */
! /* { dg-final { scan-tree-dump-times " \& 3" 1 "vrp"} } */
    
  /* There should be one right shift by 2 places.  */
! /* { dg-final { scan-tree-dump-times " >> 2" 1 "vrp"} } */
  
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-11.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-11.c	Thu Mar 31 18:34:19 2005
*************** foo (reg)
*** 18,20 ****
--- 18,21 ----
                                                                                  
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-2.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-2.c	Thu Mar 31 18:34:19 2005
*************** foo(int n)
*** 25,27 ****
--- 25,28 ----
                                                                                 
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-3.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-3.c	Thu Mar 31 18:34:19 2005
*************** cpp_parse_escape (pstr, limit, wide)
*** 24,27 ****
  /* There should be precisely three IF statements.  If there is
     more than two, then the dominator optimizations failed.  */
  /* { dg-final { scan-tree-dump-times "if " 3 "dom3"} } */
! 
--- 24,27 ----
  /* There should be precisely three IF statements.  If there is
     more than two, then the dominator optimizations failed.  */
  /* { dg-final { scan-tree-dump-times "if " 3 "dom3"} } */
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-5.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-5.c	Tue Jun 28 22:00:54 2005
*************** struct rtx_def
*** 15,21 ****
  };
  static rtx current_sym_addr;
  
! static int
  foo ()
  {
    if (current_sym_addr->code == 42
--- 15,21 ----
  };
  static rtx current_sym_addr;
  
! int
  foo ()
  {
    if (current_sym_addr->code == 42
*************** foo ()
*** 35,37 ****
--- 35,39 ----
  /* There should be two IF statements.  One for 'current_sym_addr->code == 42'.
     The other one for '(EXPR)->unchanging'.  */
  /* { dg-final { scan-tree-dump-times "if " 2 "dom3"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-6.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-6.c	Mon Jun 13 23:24:47 2005
***************
*** 1,8 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-dom3" } */
       
  
! static void
  foo (distance, i, j)
       int distance[13][13];
       int i, j;
--- 1,8 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-vrp" } */
       
  
! void
  foo (distance, i, j)
       int distance[13][13];
       int i, j;
*************** foo (distance, i, j)
*** 11,17 ****
     distance[i][0] = ((distance[i][j]) < 0 ? -(distance[i][j])  : (distance[i][j]));
  }
  
! static void
  foo2 (distance, i, j)
       int distance[13][13];
       int i, j;
--- 11,17 ----
     distance[i][0] = ((distance[i][j]) < 0 ? -(distance[i][j])  : (distance[i][j]));
  }
  
! void
  foo2 (distance, i, j)
       int distance[13][13];
       int i, j;
*************** foo2 (distance, i, j)
*** 20,26 ****
     distance[i][0] = ((distance[i][j]) < 0 ? -(distance[i][j])  : (distance[i][j]));
  }
  
! static void
  foo3 (distance, i, j)
       int distance[13][13];
       int i, j;
--- 20,26 ----
     distance[i][0] = ((distance[i][j]) < 0 ? -(distance[i][j])  : (distance[i][j]));
  }
  
! void
  foo3 (distance, i, j)
       int distance[13][13];
       int i, j;
*************** foo3 (distance, i, j)
*** 29,35 ****
     distance[i][0] = ((distance[i][j]) < 0 ? -(distance[i][j])  : (distance[i][j]));
  }
  
! static void
  foo4 (distance, i, j)
       double distance[13][13];
       int i, j;
--- 29,35 ----
     distance[i][0] = ((distance[i][j]) < 0 ? -(distance[i][j])  : (distance[i][j]));
  }
  
! void
  foo4 (distance, i, j)
       double distance[13][13];
       int i, j;
*************** foo4 (distance, i, j)
*** 39,44 ****
  }
  
  /* There should be no ABS_EXPR.  */
! /* { dg-final { scan-tree-dump-times "ABS_EXPR " 0 "dom3"} } */
!   
! 
--- 39,43 ----
  }
  
  /* There should be no ABS_EXPR.  */
! /* { dg-final { scan-tree-dump-times "ABS_EXPR " 0 "vrp"} } */
! /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c	Tue Jul 26 20:54:30 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-7.c	Tue Jul 26 19:53:54 2005
*************** simplify_condition (cond_p)
*** 35,37 ****
--- 35,38 ----
  /* There should be exactly one IF conditional.  TBAA is not able to 
     determine that 'decl' and 'cond' can't alias.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-8.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-8.c	Tue Jun 28 22:00:54 2005
*************** AT_class (a)
*** 31,36 ****
--- 31,37 ----
  {
    return a->dw_attr_val.val_class;
  }
+ 
  extern __inline__ dw_loc_list_ref
  AT_loc_list (a)
       dw_attr_ref a;
*************** AT_loc_list (a)
*** 38,44 ****
    if (AT_class (a) == dw_val_class_loc_list)
      return a->dw_attr_val.v.val_loc_list;
  }
! static void
  output_location_lists (die)
       dw_die_ref die;
  {
--- 39,46 ----
    if (AT_class (a) == dw_val_class_loc_list)
      return a->dw_attr_val.v.val_loc_list;
  }
! 
! void
  output_location_lists (die)
       dw_die_ref die;
  {
*************** output_location_lists (die)
*** 50,52 ****
--- 52,55 ----
  
  /* There should be exactly one IF conditional, in output_location_lists.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030807-9.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030807-9.c	Thu Mar 31 18:34:19 2005
*************** ooof ()
*** 17,19 ****
--- 17,20 ----
  
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030808-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030808-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030808-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030808-1.c	Thu Mar 31 18:34:19 2005
*************** delete_dead_jumptables ()
*** 38,40 ****
--- 38,41 ----
  /* There should be no IF statements.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "cddce"} } */
  
+ /* { dg-final { cleanup-tree-dump "cddce" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-1.c	Thu Mar 31 18:34:19 2005
*************** com(int *blah)
*** 18,21 ****
     more than one, then the dominator optimizations failed.  */
  /* { dg-final { scan-tree-dump-times "\\*blah" 1 "dom3"} } */
    
! 
--- 18,21 ----
     more than one, then the dominator optimizations failed.  */
  /* { dg-final { scan-tree-dump-times "\\*blah" 1 "dom3"} } */
    
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-2.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-2.c	Thu Mar 31 18:34:19 2005
*************** foo (int value)
*** 19,22 ****
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
   
! 
--- 19,22 ----
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
   
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-3.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-3.c	Thu Mar 31 18:34:19 2005
*************** foo (int value)
*** 20,23 ****
  /* There should be one IF conditional.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3"} } */
   
! 
--- 20,23 ----
  /* There should be one IF conditional.  */
  /* { dg-final { scan-tree-dump-times "if " 1 "dom3"} } */
   
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-4.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-4.c	Thu Mar 31 18:34:19 2005
*************** blah (decl, set)
*** 35,41 ****
--- 35,43 ----
  /* There should be precisely one reference to pointer_alias_set.  If there is
     more than one, then the dominator optimizations failed.  */
  /* { dg-final { scan-tree-dump-times "pointer_alias_set" 1 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
  
  /* The assignment set = -1 in the ELSE clause of the last IF
     statement should be removed by the final cleanup phase.  */
  /* { dg-final { scan-tree-dump-times "set = -1" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-5.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-5.c	Thu Mar 31 18:34:19 2005
*************** blah (decl, set)
*** 35,41 ****
--- 35,43 ----
  /* There should be precisely one reference to pointer_alias_set.  If there is
     more than one, then the dominator optimizations failed.  */
  /* { dg-final { scan-tree-dump-times "pointer_alias_set" 1 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
  
  /* The assignment set = -1 in the ELSE clause of the last IF
     statement should be removed by the final cleanup phase.  */
  /* { dg-final { scan-tree-dump-times "set = -1" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-6.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-6.c	Thu Mar 31 18:34:19 2005
*************** foo (t, set)
*** 42,44 ****
--- 42,45 ----
  /* ??? Will fail until we properly distinguish member stores.  At
     present the write to type.alias_set kills the previous load.  */
  /* { dg-final { scan-tree-dump-times "common.code" 1 "dom3" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030814-7.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030814-7.c	Thu Mar 31 18:34:19 2005
*************** mark_constant_function (void)
*** 39,41 ****
--- 39,42 ----
     This if we find current_function_decl used as an argument, then
     we have failed.  */
  /* { dg-final { scan-tree-dump-times "\\(current_function_decl\\)" 0 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030815-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030815-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030815-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030815-1.c	Tue Jun 28 22:00:54 2005
*************** typedef struct reg_info_def
*** 21,27 ****
  extern varray_type reg_n_info;
  static rtx *reg_base_value;
  static rtx *new_reg_base_value;
! static rtx
  blah (unsigned int regno)
  {
    if (new_reg_base_value[regno] && ((*(
--- 21,28 ----
  extern varray_type reg_n_info;
  static rtx *reg_base_value;
  static rtx *new_reg_base_value;
! 
! rtx
  blah (unsigned int regno)
  {
    if (new_reg_base_value[regno] && ((*(
*************** blah (unsigned int regno)
*** 39,43 ****
     eliminate some useless typecasting.  The first type cast is needed
     to convert the unsigned int regno parameter into a struct rtx_def **.  */
  /* { dg-final { scan-tree-dump-times "\\(struct rtx_def \\* \\*\\)" 1 "dom3"} } */
!                                                                                 
! 
--- 40,43 ----
     eliminate some useless typecasting.  The first type cast is needed
     to convert the unsigned int regno parameter into a struct rtx_def **.  */
  /* { dg-final { scan-tree-dump-times "\\(struct rtx_def \\* \\*\\)" 1 "dom3"} } */
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030821-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030821-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030821-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030821-1.c	Tue Sep 13 23:46:26 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized" } */
  
  void foo(int k)
  {
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-dom1 -fdump-tree-optimized" } */
  
  void foo(int k)
  {
*************** y: ;
*** 21,23 ****
--- 21,28 ----
  }
  
  /* { dg-final { scan-tree-dump-times "dont_remove \\(\\)" 1 "optimized"} } */
+ 
+ /* We should have folded away the goto &x  */
+ /* { dg-final { scan-tree-dump-times "goto &x" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030824-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030824-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030824-1.c	Wed Jun 16 05:09:41 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030824-1.c	Thu Mar 31 18:34:19 2005
*************** int foo (int x, int y)
*** 20,22 ****
--- 20,23 ----
  
  /* The addition should be optimized into 'y+x'.  */
  /* { dg-final { scan-tree-dump-times "\[xy\] \\+ \[xy]" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030824-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030824-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030824-2.c	Wed Jun 16 05:09:41 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030824-2.c	Thu Mar 31 18:34:19 2005
*************** int foo (int x, int y)
*** 20,22 ****
--- 20,23 ----
  
  /* This function should be optimized into 'return y+x'.  */
  /* { dg-final { scan-tree-dump-times "return \[xy\] \\+ \[xy\]" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030825-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030825-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030825-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030825-1.c	Thu Mar 31 18:34:19 2005
*************** xxx:;
*** 26,28 ****
--- 26,29 ----
  
  /* Bla should not be optimized away.  */
  /* { dg-final { scan-tree-dump-times "bla" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030907-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030907-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030907-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030907-1.c	Thu Mar 31 18:34:19 2005
*************** int main() 
*** 27,29 ****
--- 27,30 ----
  
  /* The abort() call clearly is unreachable.  */
  /* { dg-final { scan-tree-dump-times "abort" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030917-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030917-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030917-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030917-1.c	Tue May 10 00:57:28 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-ccp" } */
    
  
  extern int board[];
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-store_ccp" } */
    
  
  extern int board[];
*************** findbestextension (int blah, int blah2)
*** 15,20 ****
  }
  
  /* The argument to "foo" should be a variable, not a constant.  */
! /* { dg-final { scan-tree-dump-times "foo .defval" 1 "ccp"} } */
!  
! 
--- 15,19 ----
  }
  
  /* The argument to "foo" should be a variable, not a constant.  */
! /* { dg-final { scan-tree-dump-times "foo .defval" 1 "store_ccp"} } */
! /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030917-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030917-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030917-3.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030917-3.c	Tue May 10 00:57:28 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fno-tree-dominator-opts -fdump-tree-ccp" } */
  
  extern int printf (const char *, ...); 
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-store_ccp" } */
  
  extern int printf (const char *, ...); 
  
*************** main ()
*** 20,25 ****
  
  
  /* The argument to "printf" should be a constant, not a variable.  */
! /* { dg-final { scan-tree-dump-times "printf.*, 0" 1 "ccp"} } */
!   
! 
--- 20,24 ----
  
  
  /* The argument to "printf" should be a constant, not a variable.  */
! /* { dg-final { scan-tree-dump-times "printf.*, 0" 1 "store_ccp"} } */
! /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030922-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030922-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030922-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030922-1.c	Thu Mar 31 18:34:19 2005
*************** voidify_wrapper_expr (tree wrapper)
*** 31,33 ****
--- 31,34 ----
  
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
+ /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c	Tue Oct 26 23:58:32 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20030922-2.c	Tue Jun 28 22:00:54 2005
*************** struct rtx_def
*** 9,15 ****
  };
  static int *block_to_bb;
  static int target_bb;
! static int
  rgn_rank (rtx insn1, rtx insn2)
  {
    if (block_to_bb[insn1->bb] != block_to_bb[insn2->bb])
--- 9,16 ----
  };
  static int *block_to_bb;
  static int target_bb;
! 
! int
  rgn_rank (rtx insn1, rtx insn2)
  {
    if (block_to_bb[insn1->bb] != block_to_bb[insn2->bb])
*************** rgn_rank (rtx insn1, rtx insn2)
*** 20,22 ****
--- 21,24 ----
  
  /* There should be two IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 2 "dom1" } } */
+ /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c	Fri Jul  9 15:29:46 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031015-1.c	Thu May 19 04:13:38 2005
*************** main(void)
*** 13,16 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "V_MAY_DEF" 2 "alias1" } } */
--- 13,20 ----
    return 0;
  }
  
! /* The V_MUST_DEF comes from the initial assignment; the V_MAY_DEF
!    comes from the asm.  */
! /* { dg-final { scan-tree-dump-times "V_MUST_DEF" 1 "alias1" } } */
! /* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "alias1" } } */
! /* { dg-final { cleanup-tree-dump "alias1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031021-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031021-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031021-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031021-1.c	Thu Mar 31 18:34:19 2005
*************** int main()
*** 18,20 ****
--- 18,21 ----
  
  /* We should only store to a.i, not load from it.  */
  /* { dg-final { scan-tree-dump-times "a.i" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031022-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031022-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031022-1.c	Wed Jul 28 12:15:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031022-1.c	Thu Mar 31 18:34:19 2005
*************** blah (int arf)
*** 25,27 ****
--- 25,28 ----
  
  /* There should be one load from entry_exit_blocks[1].pred.  */
  /* { dg-final { scan-tree-dump-times "entry_exit_blocks.1..pred" 1 "dom1"} } */
+ /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-1.c	Thu Mar 31 18:34:19 2005
*************** void foo (int testarray[])
*** 18,20 ****
--- 18,21 ----
  
  /* There should be no link_error calls.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-2.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-2.c	Thu Mar 31 18:34:19 2005
*************** void foo (struct s* teststruct)
*** 25,27 ****
--- 25,29 ----
  
  /* There should be no link_error calls.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-3.c	Thu Mar 31 18:34:19 2005
*************** void foo (int testarray[])
*** 19,21 ****
--- 19,22 ----
  
  /* There should be no link_error calls.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-4.c	Thu Mar 31 18:34:19 2005
*************** void foo (struct s*  r)
*** 27,29 ****
--- 27,30 ----
  
  /* There should be no link_error calls.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-5.c	Thu Mar 31 18:34:19 2005
*************** void foo2 (struct s*  r, struct s*  p)
*** 26,28 ****
--- 26,29 ----
  
  /* There should be no link_error calls.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031106-6.c	Thu Mar 31 18:34:19 2005
*************** struct s foo (struct s r)
*** 26,28 ****
--- 26,29 ----
  /* There should be no references to any of "temp_struct*"
     temporaries.  */
  /* { dg-final { scan-tree-dump-times "temp_struct" 0 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20031216-1.c	Thu Mar 31 18:34:19 2005
*************** foo (int b)
*** 17,19 ****
--- 17,20 ----
  /* The comparison should be eliminated, there should be no reference
     to link_error.  */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c	Tue Feb  1 21:35:18 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040204-1.c	Sat Oct 22 20:28:34 2005
*************** void test55 (int x, int y)
*** 33,36 ****
     that the && should be emitted (based on BRANCH_COST).  Fix this
     by teaching dom to look through && and register all components
     as true.  */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! powerpc*-*-* } } } } */
--- 33,37 ----
     that the && should be emitted (based on BRANCH_COST).  Fix this
     by teaching dom to look through && and register all components
     as true.  */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail { ! "powerpc*-*-* cris-*-* mmix-*-*" } } } } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040210-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040210-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040210-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040210-1.c	Fri Jun 24 03:09:54 2005
*************** void exit(int);
*** 7,13 ****
  
  int x, y;
  
! static void
  init_xy(void)
  {
    x = 3;
--- 7,13 ----
  
  int x, y;
  
! static void __attribute__ ((noinline))
  init_xy(void)
  {
    x = 3;
*************** main(){
*** 30,32 ****
--- 30,33 ----
  
  /* Should have no more than two ifs left after straightening.  */
  /* { dg-final { scan-tree-dump-times "if " 2 "phiopt1"} } */
+ /* { dg-final { cleanup-tree-dump "phiopt1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040211-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040211-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040211-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040211-1.c	Thu Mar 31 18:34:19 2005
*************** com (rtx insn, int blah)
*** 38,40 ****
--- 38,41 ----
  /* Cddce cannot remove possibly infinite loops and there is no way how to
     determine whether the loop in can_move_up ends.  */
  /* { dg-final { scan-tree-dump "if " "cddce"} } */
+ /* { dg-final { cleanup-tree-dump "cddce" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040216-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040216-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040216-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040216-1.c	Thu Mar 31 18:34:19 2005
*************** foo(int *z, int *y, int xx)
*** 15,18 ****
  
  /* We should convert two COND_EXPRs into straightline code.  */
  /* { dg-final { scan-tree-dump-times "Deleted dead store" 2 "dse1"} } */
! 
--- 15,18 ----
  
  /* We should convert two COND_EXPRs into straightline code.  */
  /* { dg-final { scan-tree-dump-times "Deleted dead store" 2 "dse1"} } */
! /* { dg-final { cleanup-tree-dump "dse1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040305-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040305-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040305-1.c	Thu May 13 06:40:51 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040305-1.c	Thu Mar 31 18:34:19 2005
*************** void foo(int edx, int eax)
*** 24,30 ****
--- 24,32 ----
  
  /* Verify that we did a forward propagation.  */
  /* { dg-final { scan-tree-dump-times "Replaced" 1 "forwprop1"} } */
+ /* { dg-final { cleanup-tree-dump "forwprop1" } } */
  
  /* After cddce we should have two IF statements remaining as the other
     two tests can be threaded.  */
  /* { dg-final { scan-tree-dump-times "if " 2 "cddce"} } */
+ /* { dg-final { cleanup-tree-dump "cddce" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040430-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040430-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040430-1.c	Tue Jun 29 16:25:28 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040430-1.c	Thu Mar 31 18:34:19 2005
*************** int main()
*** 23,25 ****
--- 23,26 ----
  }
  
  /* { dg-final { scan-tree-dump-times "if " 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040513-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040513-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040513-1.c	Thu May 13 20:55:06 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040513-1.c	Thu Mar 31 18:34:19 2005
*************** foo (unsigned int a)
*** 14,18 ****
  /* There should be no casts to a _Bool since we can use the temporary
     holding (a>>5)&1 directly.  */
  /* { dg-final { scan-tree-dump-times "\\(_Bool\\)" 0 "forwprop1"} } */
!                                                                                 
! 
--- 14,17 ----
  /* There should be no casts to a _Bool since we can use the temporary
     holding (a>>5)&1 directly.  */
  /* { dg-final { scan-tree-dump-times "\\(_Bool\\)" 0 "forwprop1"} } */
! /* { dg-final { cleanup-tree-dump "forwprop1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040513-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040513-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040513-2.c	Thu May 13 20:55:06 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040513-2.c	Thu Mar 31 18:34:19 2005
*************** int t(int i)
*** 22,24 ****
--- 22,25 ----
  /* There should be no link_error calls, if there is any, the
     optimization has failed */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "dom2"} } */
+ /* { dg-final { cleanup-tree-dump "dom2" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c	Sat May 15 20:35:26 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040514-1.c	Thu Mar 31 18:34:19 2005
*************** end:
*** 16,18 ****
--- 16,19 ----
  
  /* Should have no ifs left after straightening.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "phiopt1"} } */
+ /* { dg-final { cleanup-tree-dump "phiopt1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040514-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040514-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040514-2.c	Wed May 19 03:35:12 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040514-2.c	Tue Sep 13 23:46:26 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-dom3" } */
  int
  foo2 (distance, i, j)
       int distance;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-phiopt1" } */
  int
  foo2 (distance, i, j)
       int distance;
*************** foo2 (distance, i, j)
*** 12,17 ****
  }
  
  /* There should be one ABS_EXPR and no conditionals.  */
! /* { dg-final { scan-tree-dump-times "ABS_EXPR " 1 "dom3"} } */
! /* { dg-final { scan-tree-dump-times "if " 0 "dom3"} } */
  
--- 12,18 ----
  }
  
  /* There should be one ABS_EXPR and no conditionals.  */
! /* { dg-final { scan-tree-dump-times "ABS_EXPR " 1 "phiopt1"} } */
! /* { dg-final { scan-tree-dump-times "if " 0 "phiopt1"} } */
! /* { dg-final { cleanup-tree-dump "phiopt1" } } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c	Wed Feb 23 05:08:32 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040517-1.c	Thu Mar 31 18:34:19 2005
*************** void bar (void) 
*** 18,20 ****
--- 18,21 ----
     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 "alias1"} } */
+ /* { dg-final { cleanup-tree-dump "alias1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c	Tue May 18 17:32:54 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040518-1.c	Thu Mar 31 18:34:19 2005
*************** int f(int a, int b)
*** 10,12 ****
--- 10,13 ----
  
  /* Should have no ifs left after straightening.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "phiopt1"} } */
+ /* { dg-final { cleanup-tree-dump "phiopt1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040518-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040518-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040518-2.c	Wed May 19 03:35:19 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040518-2.c	Thu Mar 31 18:34:19 2005
*************** int t( int i)
*** 14,16 ****
--- 14,17 ----
  /* We should convert one COND_EXPRs into straightline code with ABS.  */
  /* { dg-final { scan-tree-dump-times "straightline" 1 "phiopt1"} } */
  /* { dg-final { scan-tree-dump-times "ABS_EXPR" 1 "phiopt1"} } */
+ /* { dg-final { cleanup-tree-dump "phiopt1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040615-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040615-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040615-1.c	Sat Aug 14 17:18:56 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040615-1.c	Thu Mar 31 18:34:19 2005
*************** foo (unsigned int a, unsigned int b)
*** 14,16 ****
--- 14,17 ----
  }
  
  /* { dg-final { scan-tree-dump-times "bar2" 0 "dom1" } } */
+ /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040624-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040624-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040624-1.c	Thu Jun 24 15:59:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040624-1.c	Thu Mar 31 18:34:19 2005
*************** foo (unsigned int a, unsigned int b)
*** 18,21 ****
     conditional.  */
  
  /* { dg-final { scan-tree-dump-times "if " 1 "dom1" } } */
! 
--- 18,21 ----
     conditional.  */
  
  /* { dg-final { scan-tree-dump-times "if " 1 "dom1" } } */
! /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c	Sat Feb 12 07:46:43 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040703-1.c	Thu Mar 31 18:34:19 2005
*************** float foo(float x)
*** 10,12 ****
--- 10,13 ----
  
  /* We should *not* fold the arithmetic.  */
  /* { dg-final { scan-tree-dump-times "0\\.0" 0 "dom2"} } */
+ /* { dg-final { cleanup-tree-dump "dom2" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040721-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040721-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040721-1.c	Thu Jul 22 18:33:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040721-1.c	Tue May 10 00:57:28 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-ccp-vops" } */
  
  /* Test to check whether global variables are being
     constant propagated. */
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-store_ccp-vops" } */
  
  /* Test to check whether global variables are being
     constant propagated. */
*************** main ()
*** 24,27 ****
  }
  
  /* There should be no G on the RHS of an assignment. */
! /* { dg-final { scan-tree-dump-times "= G;" 0 "ccp"} } */
--- 24,28 ----
  }
  
  /* There should be no G on the RHS of an assignment. */
! /* { dg-final { scan-tree-dump-times "= G;" 0 "store_ccp"} } */
! /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040729-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040729-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040729-1.c	Thu Jul 29 17:15:38 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040729-1.c	Thu Mar 31 18:34:19 2005
*************** foo ()
*** 16,18 ****
--- 16,19 ----
     operands.  But 'p' itself is not volatile and taking the address of
     a volatile does not constitute a volatile operand.  */
  /* { dg-final { scan-tree-dump-times "&x" 0 "dce3"} } */
+ /* { dg-final { cleanup-tree-dump "dce3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c	Sat Sep 11 18:57:06 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20040911-1.c	Thu Mar 31 18:34:19 2005
*************** int foo (int i)
*** 19,21 ****
--- 19,22 ----
  }
  
  /* { dg-final { scan-tree-dump-not "VUSE <c" "alias1" } } */
+ /* { dg-final { cleanup-tree-dump "alias1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20041002-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20041002-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20041002-1.c	Sun Oct  3 15:31:54 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20041002-1.c	Thu Mar 31 18:34:19 2005
*************** bar (int i)
*** 21,23 ****
--- 21,24 ----
  }
  
  /* { dg-final { scan-tree-dump-times "if" 0 "ssa" } } */
+ /* { dg-final { cleanup-tree-dump "ssa" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20041008-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20041008-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20041008-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20041008-1.c	Sat Apr  9 01:37:54 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do run } */ 
+ /* { dg-options "-O2" } */
+ 
+ struct A {
+     int x;
+     int y;
+ };
+ 
+ baz (struct A *a)
+ {
+   a->x = 3;
+   a->y = 2;
+ }
+ 
+ foo (int i)
+ {
+   struct A a;
+ 
+   /* Make sure we can't scalarize 'a'.  */
+   baz (&a);
+ 
+   if (i > 10)
+     a.x = i;
+   else
+     a.x = i;
+ 
+   /* Copy propagation should prove that this predicate is always false.  */
+   if (a.x != i)
+     link_error ();
+ 
+   return a.x;
+ }
+ 
+ main ()
+ {
+   foo (30);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c	Mon Feb 21 14:55:38 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20041122-1.c	Thu Mar 31 18:34:19 2005
*************** find_unreachable_blocks (int frobit)
*** 35,39 ****
     modify e or e->dest.  The net result is that we only need one
     load of e->dest.  */
  /* { dg-final { scan-tree-dump-times "->dest" 1 "dom3" { xfail *-*-* } } } */
! 
! 
--- 35,38 ----
     modify e or e->dest.  The net result is that we only need one
     load of e->dest.  */
  /* { dg-final { scan-tree-dump-times "->dest" 1 "dom3" { xfail *-*-* } } } */
! /* { dg-final { cleanup-tree-dump "dom3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050128-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050128-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050128-1.c	Fri Jan 28 16:50:58 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050128-1.c	Fri May 13 13:57:19 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-generic" } */
  
  int
  foo (int align)
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-gimple" } */
  
  int
  foo (int align)
*************** foo (int align)
*** 8,13 ****
    return off ? align - off : 0;
  }
  
! /* We should have optimized away the mod operator before we genericized
     the code.  */
! /* { dg-final { scan-tree-dump-times "%" 0 "generic"} } */
--- 8,14 ----
    return off ? align - off : 0;
  }
  
! /* We should have optimized away the mod operator before we gimpleized
     the code.  */
! /* { dg-final { scan-tree-dump-times "%" 0 "gimple"} } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c	Wed Feb 16 13:54:30 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050215-1.c	Thu Mar 31 18:34:19 2005
*************** int foo (void)
*** 11,13 ****
--- 11,14 ----
  /* Make sure the optimizers don't introduce overflow where one
     did not exist in the original.  */
  /* { dg-final { scan-tree-dump-times "-0+4" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050314-1.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-lim-details" } */
+ 
+ float a[100];
+ 
+ int foo(void);
+ float sinf (float);
+ 
+ void xxx (void)
+ {
+   int i, k = foo ();
+ 
+   for (i = 0; i < 100; i++)
+     a[k] += sinf (i);
+ }
+ 
+ /* Store motion may be applied to the assignment to a[k], since sinf
+    cannot read nor write the memory.  */
+ 
+ /* { dg-final { scan-tree-dump-times "Moving statement" 1 "lim" } } */
+ /* { dg-final { cleanup-tree-dump "lim" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050412-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050412-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050412-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050412-1.c	Wed Apr 13 04:48:14 2005
***************
*** 0 ****
--- 1,16 ----
+ /* PR tree-optimization/14627 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ 
+ int b;
+ void foo (int a) {
+ 	if (a)
+ 		a = 3;
+ 	b = a;
+ }
+ 
+ /* Make sure we do not have an assignment a = 0 in the resulting
+    optimized dump.  */
+ /* { dg-final { scan-tree-dump-times "a.* = 0;" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/20050719-1.c	Mon Jul 25 14:41:26 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void) __attribute__ ((__nothrow__)) __attribute__
+ ((__noreturn__));
+ extern void exit (int __status) __attribute__ ((__nothrow__))
+ __attribute__ ((__noreturn__));
+ 
+ struct bootLoader {
+   int x;
+ };
+ 
+ void
+ zap(struct bootLoader *bootLoader)
+ {
+   /* The expression on the RHS of the assignment is *not* a
+      dereference of pointer 'bootLoader'.  It is merely used as an
+      offset calculation.  VRP was erroneously removing the if()
+      because it thought that 'bootLoader' was always dereferenced.  */
+   int *boot = &bootLoader->x;
+ 
+   if (bootLoader)
+     {
+       useboot (boot);
+     }
+ }
+ 
+ int
+ useboot (void *boot)
+ {
+   abort ();
+ }
+ 
+ main()
+ {
+   zap (0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/alias-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/alias-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/alias-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/alias-1.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-options "-O2 -fargument-noalias-global -fdump-tree-optimized" } */
+ int f;
+ void link_error ();
+ 
+ void g(int *i)
+ {
+   *i = 0;
+   f = 1;
+   if (*i != 0)
+     link_error ();
+ }
+ 
+ 
+ /* We should have removed the link_error on the tree level as we told GCC
+    that *i cannot point to f via the option -fargument-noalias-global. */
+ /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/alias-2.c	Mon Jul 18 23:35:15 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ static int a;
+ int f;
+ void bar (void)  __attribute__((noinline));
+ void bar (void)
+ {
+   f = 9;
+ }
+ 
+ void link_error ();
+ 
+ int foo()
+ {
+   int b, c;
+   a = 5;
+   b = a;
+   bar ();
+   b = b + a;
+   if (b != 10)
+     link_error ();
+   return b;
+ }
+ 
+ /* We should have removed the link_error on the tree level as GCC can tell that
+    a is not touched by the calling bar at all. */
+ /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/asm-1.c	Thu Mar 31 18:34:19 2005
*************** void f()
*** 14,16 ****
--- 14,17 ----
  
  /* { dg-final { scan-tree-dump-times "42" 1 "optimized" } } */
  /* { dg-final { scan-tree-dump-times "63" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/asm-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/asm-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/asm-2.c	Sat Dec 25 17:01:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/asm-2.c	Thu Mar 31 18:34:19 2005
*************** void baz(void)
*** 14,16 ****
--- 14,17 ----
  }
  
  /* { dg-final { scan-tree-dump-times "asm\[^\\r\\n\]*xyzzy" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/asm-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/asm-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/asm-3.c	Sat Dec 25 17:01:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/asm-3.c	Thu Mar 31 18:34:19 2005
*************** void test(void)
*** 28,30 ****
--- 28,32 ----
  
  /* In particular, hardreg should *not* appear in the call to bar.  */
  /* { dg-final { scan-tree-dump-times "bar \[(\]t\[)\]" 1 "optimized" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-1.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   if (x != 0)
+    return 1;
+   return 0;
+ }
+ 
+ /* There should be no != 0 which is produced by the front-end as
+    bool_var != 0 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "!= 0" 0 "optimized"} } */
+ 
+ /* There should be no adde for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "adde" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-2.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   int y;
+   if (x)
+     y = 1;
+   else
+     y = 0;
+   return y;
+ }
+ 
+ /* There should be no != 0 which is produced by the front-end as
+    bool_var != 0 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "!= 0" 0 "optimized"} } */
+ 
+ /* There should be no adde for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "adde" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-3.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   int y;
+   if (!x)
+     y = 0;
+   else
+     y = 1;
+   return y;
+ }
+ 
+ /* There should be no == 0. Though PHI-OPT or invert_truth does not
+    fold its tree.  */
+ /* { dg-final { scan-tree-dump-times "== 0" 0 "optimized" { xfail *-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-4.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   return (x != 0);
+ }
+ 
+ /* There should be no != 0 which is produced by the front-end as
+    bool_var != 0 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "!= 0" 0 "optimized"} } */
+ 
+ /* There should be no adde for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "adde" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-5.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   if (x == 1)
+    return 1;
+   return 0;
+ }
+ 
+ /* There should be no == 1 which is produced by the front-end as
+    bool_var == 1 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "== 1" 0 "optimized"} } */
+ 
+ /* There should be no adde for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "adde" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-6.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   int y;
+   if (x)
+     y = 1;
+   else
+     y = 0;
+   return y;
+ }
+ 
+ /* There should be no == 1 which is produced by the front-end as
+    bool_var == 1 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "== 1" 0 "optimized"} } */
+ 
+ /* There should be no adde for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "adde" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-7.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   int y;
+   if (x != 1)
+     y = 0;
+   else
+     y = 1;
+   return y;
+ }
+ 
+ /* There should be no != 1. Though PHI-OPT or invert_truth does not
+    fold its tree.  */
+ /* { dg-final { scan-tree-dump-times "!= 1" 0 "optimized" { xfail *-*-* } }  }*/
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-8.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(_Bool x)
+ {
+   return (x == 1);
+ }
+ 
+ /* There should be no == 1 which is produced by the front-end as
+    bool_var == 1 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "== 1" 0 "optimized"} } */
+ 
+ /* There should be no adde for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "adde" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/bool-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/bool-9.c	Wed May  4 01:52:06 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ _Bool f1(_Bool x)
+ {
+   return !!x;
+ }
+ 
+ /* There should be no != 0 which is produced by the front-end as
+    bool_var != 0 is the same as bool_var. */
+ /* { dg-final { scan-tree-dump-times "!= 0" 0 "optimized"} } */
+ 
+ /* There should be no subfe for powerpc. Checking if we actually optimizated
+    away the comparision.  */
+ /* { dg-final { scan-assembler-times "subfe" 0 { target powerpc-*-* } } } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ typedef struct { int i; } FILE;
+ FILE *fp;
+ extern int fprintf (FILE *, const char *, ...);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9;
+ 
+ void test (void)
+ {
+   vi0 = 0;
+   fprintf (fp, "hello");
+   vi1 = 0;
+   fprintf (fp, "hello\n");
+   vi2 = 0;
+   fprintf (fp, "a");
+   vi3 = 0;
+   fprintf (fp, "");
+   vi4 = 0;
+   fprintf (fp, "%s", "hello");
+   vi5 = 0;
+   fprintf (fp, "%s", "hello\n");
+   vi6 = 0;
+   fprintf (fp, "%s", "a");
+   vi7 = 0;
+   fprintf (fp, "%c", 'x');
+   vi8 = 0;
+   fprintf (fp, "%d%d", vi0, vi1);
+   vi9 = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi8.*fprintf.*fp.*\"%d%d\".*vi9" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-fprintf-chk-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ typedef struct { int i; } FILE;
+ FILE *fp;
+ extern int __fprintf_chk (FILE *, int, const char *, ...);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9;
+ 
+ void test (void)
+ {
+   vi0 = 0;
+   __fprintf_chk (fp, 1, "hello");
+   vi1 = 0;
+   __fprintf_chk (fp, 1, "hello\n");
+   vi2 = 0;
+   __fprintf_chk (fp, 1, "a");
+   vi3 = 0;
+   __fprintf_chk (fp, 1, "");
+   vi4 = 0;
+   __fprintf_chk (fp, 1, "%s", "hello");
+   vi5 = 0;
+   __fprintf_chk (fp, 1, "%s", "hello\n");
+   vi6 = 0;
+   __fprintf_chk (fp, 1, "%s", "a");
+   vi7 = 0;
+   __fprintf_chk (fp, 1, "%c", 'x');
+   vi8 = 0;
+   __fprintf_chk (fp, 1, "%d%d", vi0, vi1);
+   vi9 = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*fwrite.*\"hello\".*1, 5, fp.*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*fputc.*fp.*vi7" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi7.*fputc.*fp.*vi8" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi8.*__fprintf_chk.*fp.*1.*\"%d%d\".*vi9" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ extern int printf (const char *, ...);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
+ 
+ void test (void)
+ {
+   vi0 = 0;
+   printf ("hello");
+   vi1 = 0;
+   printf ("hello\n");
+   vi2 = 0;
+   printf ("a");
+   vi3 = 0;
+   printf ("");
+   vi4 = 0;
+   printf ("%s", "hello");
+   vi5 = 0;
+   printf ("%s", "hello\n");
+   vi6 = 0;
+   printf ("%s", "a");
+   vi7 = 0;
+   printf ("%s", "");
+   vi8 = 0;
+   printf ("%c", 'x');
+   vi9 = 0;
+   printf ("%s\n", "hello\n");
+   via = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*printf.*\"hello\".*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*printf.*\"hello\".*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi7 = 0\[^\(\)\]*vi8 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-printf-chk-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ extern int __printf_chk (int, const char *, ...);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
+ 
+ void test (void)
+ {
+   vi0 = 0;
+   __printf_chk (1, "hello");
+   vi1 = 0;
+   __printf_chk (1, "hello\n");
+   vi2 = 0;
+   __printf_chk (1, "a");
+   vi3 = 0;
+   __printf_chk (1, "");
+   vi4 = 0;
+   __printf_chk (1, "%s", "hello");
+   vi5 = 0;
+   __printf_chk (1, "%s", "hello\n");
+   vi6 = 0;
+   __printf_chk (1, "%s", "a");
+   vi7 = 0;
+   __printf_chk (1, "%s", "");
+   vi8 = 0;
+   __printf_chk (1, "%c", 'x');
+   vi9 = 0;
+   __printf_chk (1, "%s\n", "hello\n");
+   via = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*__printf_chk.*1.*\"hello\".*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*__printf_chk.*1.*\"hello\".*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*puts.*\"hello\".*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*putchar.*vi7" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi7 = 0\[^\(\)\]*vi8 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi8.*putchar.*vi9" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi9.*puts.*\"hello\\\\n\".*via" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ #include <stdarg.h>
+ 
+ typedef struct { int i; } FILE;
+ FILE *fp;
+ extern int vfprintf (FILE *, const char *, va_list);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
+ 
+ void
+ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
+       va_list ap6, va_list ap7)
+ {
+   vi0 = 0;
+   vfprintf (fp, "hello", ap1);
+   vi1 = 0;
+   vfprintf (fp, "hello\n", ap2);
+   vi2 = 0;
+   vfprintf (fp, "a", ap3);
+   vi3 = 0;
+   vfprintf (fp, "", ap4);
+   vi4 = 0;
+   vfprintf (fp, "%s", ap5);
+   vi5 = 0;
+   vfprintf (fp, "%c", ap6);
+   vi6 = 0;
+   vfprintf (fp, "%s\n", ap7);
+   vi7 = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*vfprintf.*\"%s\".*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*vfprintf.*\"%c\".*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*vfprintf.*\"%s\\\\n\".*vi7" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vfprintf-chk-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ #include <stdarg.h>
+ 
+ typedef struct { int i; } FILE;
+ FILE *fp;
+ extern int __vfprintf_chk (FILE *, int, const char *, va_list);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
+ 
+ void
+ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
+       va_list ap6, va_list ap7)
+ {
+   vi0 = 0;
+   __vfprintf_chk (fp, 1, "hello", ap1);
+   vi1 = 0;
+   __vfprintf_chk (fp, 1, "hello\n", ap2);
+   vi2 = 0;
+   __vfprintf_chk (fp, 1, "a", ap3);
+   vi3 = 0;
+   __vfprintf_chk (fp, 1, "", ap4);
+   vi4 = 0;
+   __vfprintf_chk (fp, 1, "%s", ap5);
+   vi5 = 0;
+   __vfprintf_chk (fp, 1, "%c", ap6);
+   vi6 = 0;
+   __vfprintf_chk (fp, 1, "%s\n", ap7);
+   vi7 = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*fwrite.*\"hello\".*1, 5, fp.*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*fwrite.*\"hello\\\\n\".*1, 6, fp.*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*fputc.*fp.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*__vfprintf_chk.*fp.*1.*\"%s\".*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*__vfprintf_chk.*fp.*1.*\"%c\".*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*__vfprintf_chk.*fp.*1.*\"%s\\\\n\".*vi7" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ #include <stdarg.h>
+ 
+ extern int vprintf (const char *, va_list);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
+ 
+ void
+ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
+       va_list ap6, va_list ap7)
+ {
+   vi0 = 0;
+   vprintf ("hello", ap1);
+   vi1 = 0;
+   vprintf ("hello\n", ap2);
+   vi2 = 0;
+   vprintf ("a", ap3);
+   vi3 = 0;
+   vprintf ("", ap4);
+   vi4 = 0;
+   vprintf ("%s", ap5);
+   vi5 = 0;
+   vprintf ("%c", ap6);
+   vi6 = 0;
+   vprintf ("%s\n", ap7);
+   vi7 = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*vprintf.*\"hello\".*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*vprintf.*\"%s\".*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*vprintf.*\"%c\".*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*vprintf.*\"%s\\\\n\".*vi7" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/builtin-vprintf-chk-1.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-fab" } */
+ 
+ #include <stdarg.h>
+ 
+ extern int __vprintf_chk (int, const char *, va_list);
+ volatile int vi0, vi1, vi2, vi3, vi4, vi5, vi6, vi7, vi8, vi9, via;
+ 
+ void
+ test (va_list ap1, va_list ap2, va_list ap3, va_list ap4, va_list ap5,
+       va_list ap6, va_list ap7)
+ {
+   vi0 = 0;
+   __vprintf_chk (1, "hello", ap1);
+   vi1 = 0;
+   __vprintf_chk (1, "hello\n", ap2);
+   vi2 = 0;
+   __vprintf_chk (1, "a", ap3);
+   vi3 = 0;
+   __vprintf_chk (1, "", ap4);
+   vi4 = 0;
+   __vprintf_chk (1, "%s", ap5);
+   vi5 = 0;
+   __vprintf_chk (1, "%c", ap6);
+   vi6 = 0;
+   __vprintf_chk (1, "%s\n", ap7);
+   vi7 = 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump "vi0.*__vprintf_chk.*1.*\"hello\".*vi1" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi1.*puts.*\"hello\".*vi2" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi2.*putchar.*vi3" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi3 = 0\[^\(\)\]*vi4 = 0" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi4.*__vprintf_chk.*1.*\"%s\".*vi5" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi5.*__vprintf_chk.*1.*\"%c\".*vi6" "fab"} } */
+ /* { dg-final { scan-tree-dump "vi6.*__vprintf_chk.*1.*\"%s\\\\n\".*vi7" "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/cfgcleanup-1.c	Thu Mar 31 18:34:19 2005
*************** cleanup (int a, int b)
*** 16,18 ****
--- 16,19 ----
  }
  /* Dce should get rid of the initializers and cfgcleanup should elliminate ifs  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dce1"} } */
+ /* { dg-final { cleanup-tree-dump "dce1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c	Thu Feb 24 20:00:09 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/complex-1.c	Thu Mar 31 18:34:19 2005
*************** C foo(C x, float y)
*** 10,12 ****
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "__mul" 0 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c	Thu Feb 24 20:00:09 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/complex-2.c	Thu Mar 31 18:34:19 2005
*************** C foo(C x, float y)
*** 10,12 ****
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "__div" 0 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c	Thu Sep 16 21:29:43 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c	Thu Mar 31 18:34:19 2005
*************** void bla (void)
*** 13,15 ****
--- 13,16 ----
  
  /* There should be a header duplicated.  */
  /* { dg-final { scan-tree-dump-times "Duplicating header" 1 "ch"} } */
+ /* { dg-final { cleanup-tree-dump "ch" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/flatten-1.c	Mon Jul 25 14:51:58 2005
***************
*** 0 ****
--- 1,55 ----
+ /* { dg-do compile } */
+ /* { dg-options -O2 } */
+ 
+ /* Basic tests for flatten attribute, check we end up
+    with only the flattened function bodies.  */
+ 
+ static int foobar(int i);
+ static int bar(int i);
+ 
+ int __attribute__((flatten)) leaf0a(int i)
+ {
+   return bar(i);
+ }
+ int __attribute__((flatten)) leaf0b(int i)
+ {
+   return foobar(i);
+ }
+ int __attribute__((flatten)) leaf1(int i)
+ {
+   return bar(foobar(i));
+ }
+ int __attribute__((flatten)) leaf2(int i)
+ {
+   int j;
+   j = foobar(i);
+   return bar(j);
+ }
+ 
+ static int foobar(int i)
+ {
+   return i-1;
+ }
+ static int bar(int i)
+ {
+   return i + foobar(i);
+ }
+ 
+ 
+ static int gloobar(int i)
+ {
+   return i*5+1;
+ }
+ static int floobar(int i)
+ {
+   return gloobar(i);
+ }
+ int __attribute__((flatten)) leaf3(int i)
+ {
+   int j;
+   j = floobar(i);
+   j += floobar(i);
+   return j;
+ }
+ 
+ /* { dg-final { scan-assembler-not "bar\[: \t\n\]" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/flatten-2.c	Mon Jul 25 14:26:36 2005
***************
*** 0 ****
--- 1,76 ----
+ /* { dg-do compile } */
+ /* { dg-options -O2 } */
+ 
+ /* Check that we finish compiling even if instructed to
+    flatten a cyclic callgraph.  Verify we correctly
+    flatten with another function marked flatten in the
+    callgraph.  */
+ 
+ void __attribute__((flatten)) direct(void)
+ {
+   direct();
+ }
+ 
+ 
+ void __attribute__((flatten)) indirect(void);
+ static void indirect1(void)
+ {
+   indirect();
+ }
+ void __attribute__((flatten)) indirect(void)
+ {
+   indirect1();
+ }
+ 
+ 
+ void __attribute__((flatten)) doubleindirect(void);
+ static void doubleindirect2(void)
+ {
+   doubleindirect();
+ }
+ static void doubleindirect1(void)
+ {
+   doubleindirect2();
+ }
+ void __attribute__((flatten)) doubleindirect(void)
+ {
+   doubleindirect1();
+ }
+ 
+ 
+ static void subcycle1(void);
+ static void subcycle2(void)
+ {
+   subcycle1();
+ }
+ static void subcycle1(void)
+ {
+   subcycle2();
+ }
+ void __attribute__((flatten)) subcycle(void)
+ {
+   subcycle1();
+ }
+ 
+ 
+ static void doublesubcycle1(void);
+ static void doublesubcycle2(void);
+ static void doublesubcycle3(void)
+ {
+   doublesubcycle1();
+ }
+ static void doublesubcycle2(void)
+ {
+   doublesubcycle3();
+ }
+ static void doublesubcycle1(void)
+ {
+   doublesubcycle2();
+ }
+ void __attribute__((flatten)) doublesubcycle(void)
+ {
+   doublesubcycle1();
+ }
+ 
+ /* { dg-final { scan-assembler "cycle\[123\]\[: \t\n\]" } } */
+ /* { dg-final { scan-assembler-not "indirect\[12\]\[: \t\n\]" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/foldaddr-1.c	Tue May 31 14:33:29 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-original" } */
+ 
+ 
+ char *a;
+ int foo(char *b)
+ {
+         return a+5+(long)b == (long)b+a;
+ }
+ 
+ /* Folding should have determined that the two addresses were
+    not identical and thus collapsed the function into a trivial
+    "return 0".  */
+ /* { dg-final { scan-tree-dump-times "return 0" 1 "original"} } */
+ /* { dg-final { cleanup-tree-dump "original" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11.c	Wed Jan 25 16:11:17 2006
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fwrapv -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 16
+ 
+ int main ()
+ {
+   int i;
+   char ia[N];
+   char ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   char ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ 
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = ib[i] + ic[i];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != ib[i] + ic[i])
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11a.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 16
+ 
+ #if __LONG_MAX__ == 2147483647
+ typedef short half_word;
+ #else
+ typedef int half_word;
+ #endif
+ 
+ int main ()
+ {
+   int i;
+   half_word ia[N];
+   half_word ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   half_word ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ 
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = ib[i] & ic[i];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != ib[i] & ic[i])
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11b.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 16
+ 
+ int main ()
+ {
+   int i;
+   char ia[N];
+   char ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   char ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ 
+   /* Not vectorizable, multiplication */
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = ib[i] * ic[i];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != (char) (ib[i] * ic[i]))
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-11c.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 16
+ 
+ #if LONG_MAX == 2147483647
+ typedef short half_word;
+ #else
+ typedef int half_word;
+ #endif
+ 
+ int main ()
+ {
+   int i;
+   half_word ia[N];
+   half_word ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   half_word ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ 
+   /* Not worthwhile, only 2 parts per int */
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = ib[i] + ic[i];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != ib[i] + ic[i])
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-2.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 16
+  
+ #if __LONG_MAX__ == 2147483647
+ typedef short half_word;
+ #else
+ typedef int half_word;
+ #endif
+ 
+ int main ()
+ {
+   half_word cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   half_word ca[N];
+   int i;
+ 
+   for (i = 0; i < N; i++)
+     {
+       ca[i] = cb[i];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ca[i] != cb[i])
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-25.c	Mon Oct 10 19:00:20 2005
***************
*** 0 ****
--- 1,56 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 128
+ 
+ #if __LONG_MAX__ == 2147483647
+ typedef short half_word;
+ #else
+ typedef int half_word;
+ #endif
+ 
+ int main_1 (int n, int *p)
+ {
+   int i;
+   half_word ib[N];
+   half_word ia[N];
+   int k;
+ 
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = n;
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != n)
+         abort ();
+     }
+ 
+   k = *p;
+   for (i = 0; i < N; i++)
+     {
+       ib[i] = k;
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ib[i] != k)
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (int n)
+ {
+   return main_1 (n + 2, &n);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-26.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 128
+ 
+ /* unaligned store.  */
+ 
+ int main ()
+ {
+   int i;
+   char ia[N+1];
+ 
+   for (i = 1; i <= N; i++)
+     {
+       ia[i] = 5;
+     }
+ 
+   /* check results:  */
+   for (i = 1; i <= N; i++)
+     {
+       if (ia[i] != 5)
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-28.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 128
+ #define OFF 3
+ 
+ /* unaligned store.  */
+ 
+ int main (int off)
+ {
+   int i;
+   char ia[N+OFF];
+ 
+   for (i = 0; i < N; i++)
+     {
+       ia[i+off] = 5;
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i+off] != 5)
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/gen-vect-32.c	Fri Jun  3 08:09:47 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do run { target vect_cmdline_needed } } */
+ /* { dg-options "-O2 -ftree-vectorize -ftree-vectorizer-verbose=3 -fdump-tree-vect-stats" } */
+ 
+ #include <stdlib.h>
+ 
+ #define N 16
+  
+ int main ()
+ {  
+   struct {
+     char ca[N];
+   } s;
+   int i;
+ 
+   for (i = 0; i < N; i++)
+     {
+       s.ca[i] = 5;
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (s.ca[i] != 5)
+         abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c	Mon Sep  6 23:14:43 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-1.c	Thu Mar 31 18:34:19 2005
*************** int main1 ()
*** 34,36 ****
--- 34,37 ----
  
  
  /* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "ifcvt" } } */
+ /* { dg-final { cleanup-tree-dump "ifcvt" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c	Wed Oct 20 01:29:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ifc-20040816-2.c	Thu Mar 31 18:34:19 2005
*************** void foo(const int * __restrict__ zr_in,
*** 33,36 ****
  
  
  /* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "ifcvt" } } */
! 
--- 33,36 ----
  
  
  /* { dg-final { scan-tree-dump-times "Applying if-conversion" 1 "ifcvt" } } */
! /* { dg-final { cleanup-tree-dump "ifcvt" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ifc-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ifc-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ifc-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ifc-3.c	Thu Apr 21 17:03:23 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR 20994 */
+ /* { dg-do compile } */
+ int foo(double* p, double* q)
+ {
+     int i=0;
+ 
+     for (; q!=p; ++q)
+         if (*q)
+             ++i;
+ 
+     return i;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c	Sat Feb 26 16:24:44 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-1.c	Thu Mar 31 18:34:19 2005
*************** char f(char *a)
*** 13,18 ****
--- 13,20 ----
  
  /* test_function should be called twice as the inline-asm changes memory. */
  /* { dg-final { scan-tree-dump-times "test_function" 2 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
  
  /* There should a V_MAY_DEF for the inline-asm.  */
  /* { dg-final { scan-tree-dump-times "V_MAY_DEF" 1 "alias1"} } */
+ /* { dg-final { cleanup-tree-dump "alias1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c	Sun Feb 27 16:37:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/inline_asm-2.c	Thu Mar 31 18:34:19 2005
*************** void f(char *a)
*** 15,17 ****
--- 15,18 ----
  
  /* 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"} } */
+ /* { dg-final { cleanup-tree-dump "alias1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c	Thu Jan 20 16:29:33 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-1.c	Thu Dec 22 18:56:03 2005
*************** void xxx(void)
*** 22,36 ****
  /* We should be able to find out that the loop iterates four times and unroll it completely.  */
  
  /* { dg-final { scan-tree-dump-times "Added canonical iv to loop 1, 4 iterations" 1 "ivcanon"} } */
  /* { dg-final { scan-tree-dump-times "Unrolled loop 1 completely" 1 "cunroll"} } */
  /* { dg-final { scan-tree-dump-times "foo" 5 "vars"} } */
  
  /* Because hppa and ia64 targets include an external declaration for foo as
     well as the calls we need to look for something more specific then just
     foo in order to count only the calls and not the declaration.  */
  
! /* { dg-final { scan-assembler-times "foo" 5 { xfail hppa*-*-* ia64*-*-* } } } */
  /* { dg-final { scan-assembler-times "foo,%r" 5 { target hppa*-*-* } } } */
  /* { dg-final { scan-assembler-times "= foo"  5 { target ia64*-*-* } } } */
  
  
--- 22,47 ----
  /* We should be able to find out that the loop iterates four times and unroll it completely.  */
  
  /* { dg-final { scan-tree-dump-times "Added canonical iv to loop 1, 4 iterations" 1 "ivcanon"} } */
+ /* { dg-final { cleanup-tree-dump "ivcanon" } } */
  /* { dg-final { scan-tree-dump-times "Unrolled loop 1 completely" 1 "cunroll"} } */
+ /* { dg-final { cleanup-tree-dump "cunroll" } } */
  /* { dg-final { scan-tree-dump-times "foo" 5 "vars"} } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
  
  /* Because hppa and ia64 targets include an external declaration for foo as
     well as the calls we need to look for something more specific then just
     foo in order to count only the calls and not the declaration.  */
+ /* The SH targets always use separate instructions to load the address
+    and to do the actual call - bsr is only generated by link time
+    relaxation.  */
+ /* CRIS keeps the address in a register.  */
+ /* m68k sometimes puts the address in a register, depending on CPU and PIC.  */
  
! /* { dg-final { scan-assembler-times "foo" 5 { xfail hppa*-*-* ia64*-*-* sh*-*-* cris-*-* m68k-*-* } } } */
  /* { dg-final { scan-assembler-times "foo,%r" 5 { target hppa*-*-* } } } */
  /* { dg-final { scan-assembler-times "= foo"  5 { target ia64*-*-* } } } */
+ /* { dg-final { scan-assembler-times "jsr|blink\ttr?,r18"  5 { target sh*-*-* } } } */
+ /* { dg-final { scan-assembler-times "Jsr \\\$r" 5 { target cris-*-* } } } */
+ /* { dg-final { scan-assembler-times "\[jb\]sr" 5 { target m68k-*-* } } } */
  
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-10.c	Mon Jul 11 23:59:17 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-vars" } */
+ 
+ int bar (void);
+ 
+ void foo (void)
+ {
+   unsigned i, j, n;
+ 
+   for (i = 0; i < 100000; i++)
+     ;
+ 
+   n = bar ();
+   for (i = 0; i < n; i++)
+     ;
+ 
+   for (i = 0; i < n; i++)
+     for (j = 0; j < n; j++)
+       ;
+ 
+   /* These should not be removed.  */
+   for (i = 0; i < 10000; i++)
+     bar ();
+ 
+   for (i = 0; i != n; i += 2)
+     ;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "if " 3 "vars" } } */
+ /* { dg-final { scan-tree-dump-times "bar " 2 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-11.c	Wed Jul 13 10:37:25 2005
***************
*** 0 ****
--- 1,28 ----
+ /* A test for final value replacement and higher-order ivs,
+    see PR 22442.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-vars" } */
+ 
+ void bar (unsigned);
+ 
+ void foo (void)
+ {
+   unsigned i, a;
+ 
+   for (i = 0; i < 5; i++)
+     a = i * i;
+ 
+   bar (a);
+ }
+ 
+ /* Final value of a gets replaced.  */
+ 
+ /* { dg-final { scan-tree-dump-times "\\(16\\)" 1 "vars" } } */
+ 
+ /* And the empty loop is removed.  */
+ 
+ /* { dg-final { scan-tree-dump-times "if " 0 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-14.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-14.c	Fri Nov 18 10:27:50 2005
***************
*** 0 ****
--- 1,19 ----
+ /* A test for final value replacement.  */
+ 
+ /* { dg-options "-O2 -fdump-tree-vars" } */
+ 
+ int foo(void);
+ 
+ int bla(void)
+ {
+   int i, j = foo ();
+ 
+   for (i = 0; i < 100; i++, j++)
+     foo ();
+ 
+   /* Should be replaced with return j0 + 100;  */
+   return j;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "\\+ 100" 1 "vars" } } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c	Sat Sep 25 20:53:44 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-2.c	Sat Nov 12 23:27:13 2005
*************** void xxx(void)
*** 21,29 ****
      arr_base[iter].y = 17 * iter;
  }
  
! /* Access to arr_base[iter].y should be strength reduced.  */
  
! /* { dg-final { scan-tree-dump-times "arr_base\[^\\n\\r\]*=" 0 "vars" } } */
  
  /* 17 * iter should be strength reduced.  */
  
--- 21,32 ----
      arr_base[iter].y = 17 * iter;
  }
  
! /* Access to arr_base[iter].y should be strength reduced, i.e., there should
!    be no multiplication.  */
  
! /* { dg-final { scan-tree-dump-times " \\* \[^\\n\\r\]*=" 0 "vars" } } */
! /* { dg-final { scan-tree-dump-times "\[^\\n\\r\]*= \\* " 0 "vars" } } */
! /* { dg-final { scan-tree-dump-times "MEM" 1 "vars" } } */
  
  /* 17 * iter should be strength reduced.  */
  
*************** void xxx(void)
*** 31,37 ****
  /* { dg-final { scan-tree-dump-times " \\+ 17" 1 "vars" } } */
  
  /* The induction variable comparison with 99 should be eliminated
!    and replaced by comparison of the variable for 17 * iter with 1700.  */
  
- /* { dg-final { scan-tree-dump-times "1700" 1 "vars" } } */
  /* { dg-final { scan-tree-dump-times "iter" 0 "vars" } } */
--- 34,43 ----
  /* { dg-final { scan-tree-dump-times " \\+ 17" 1 "vars" } } */
  
  /* The induction variable comparison with 99 should be eliminated
!    and replaced by comparison of one of the newly created ivs.  */
  
  /* { dg-final { scan-tree-dump-times "iter" 0 "vars" } } */
+ /* { dg-final { scan-tree-dump-times "99" 0 "vars" } } */
+ /* { dg-final { scan-tree-dump-times "100" 0 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c	Sun Sep  5 09:25:37 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-3.c	Sat Nov 12 23:27:13 2005
*************** int foo(int);
*** 11,17 ****
  
  void xxx(void)
  {
!   int iter;
  
    for (iter = 0; iter < 100; iter++)
      arr_base[iter] = foo (iter);
--- 11,17 ----
  
  void xxx(void)
  {
!   long iter;
  
    for (iter = 0; iter < 100; iter++)
      arr_base[iter] = foo (iter);
*************** void xxx(void)
*** 20,27 ****
  /* Access to arr_base[iter].y should not be strength reduced, since
     we have a memory mode including multiplication by 4.  */
  
! /* { dg-final { scan-tree-dump-times "arr_base.*=" 1 "vars" } } */
  
  /* And original induction variable should be preserved.  */
  
  /* { dg-final { scan-tree-dump-times "int iter" 1 "vars" } } */
--- 20,30 ----
  /* Access to arr_base[iter].y should not be strength reduced, since
     we have a memory mode including multiplication by 4.  */
  
! /* { dg-final { scan-tree-dump-times "MEM" 1 "vars" } } */
! /* { dg-final { scan-tree-dump-times "step:" 1 "vars" } } */
  
  /* And original induction variable should be preserved.  */
  
  /* { dg-final { scan-tree-dump-times "int iter" 1 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c	Sun Jan  9 18:58:11 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-4.c	Tue Jun  7 12:01:47 2005
*************** void xxx(void)
*** 32,41 ****
     -- induction variable with base 0, the memory access of form
        *(iv + &arr_base[0].y) = ...
  
!    In any case, we should not have 'arr_base.[^0].* ='  */
  
! /* { dg-final { scan-tree-dump-times "arr_base.\[^0\]\[^\\n\\r\]*=" 0 "vars" } } */
  
  /* And the original induction variable should be eliminated.  */
  
  /* { dg-final { scan-tree-dump-times "iter" 0 "vars" } } */
--- 32,45 ----
     -- induction variable with base 0, the memory access of form
        *(iv + &arr_base[0].y) = ...
  
!    In any case, we should not have any multiplication.  */
  
! /* { dg-final { scan-tree-dump-times " \\* \[^\\n\\r\]*=" 0 "vars" } } */
! /* { dg-final { scan-tree-dump-times "\[^\\n\\r\]*= \\* " 0 "vars" } } */
! /* { dg-final { scan-tree-dump-times "MEM" 1 "vars" } } */
  
  /* And the original induction variable should be eliminated.  */
  
  /* { dg-final { scan-tree-dump-times "iter" 0 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c	Sun Dec  5 01:39:55 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-5.c	Thu Mar 31 18:34:19 2005
*************** void xxx(void)
*** 24,26 ****
--- 24,28 ----
  /* And the use of jter should be replaced by iter + 2 */
  
  /* { dg-final { scan-tree-dump-times " \\+ 2" 1 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-6.c	Thu Sep 23 12:21:31 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-6.c	Thu Mar 31 18:34:19 2005
*************** void xxx(void)
*** 20,26 ****
--- 20,28 ----
  /* Loop should be unswitched.  */
  
  /* { dg-final { scan-tree-dump-times "Unswitching loop" 1 "unswitch" } } */
+ /* { dg-final { cleanup-tree-dump "unswitch" } } */
  
  /* In effect there should be exactly three conditional jumps in the final program.  */
  
  /* { dg-final { scan-tree-dump-times "else" 3 "vars" } } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c	Sat Feb 19 09:26:09 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-7.c	Mon Jun  6 18:55:59 2005
*************** int xxx (void)
*** 31,34 ****
     Calls to cst_fun2 and pure_fun2 should not be, since calling
     with k = 0 may be invalid.  */
  
! /* { dg-final { scan-tree-dump-times "Moving statement" 2 "lim" } } */
--- 31,35 ----
     Calls to cst_fun2 and pure_fun2 should not be, since calling
     with k = 0 may be invalid.  */
  
! /* { dg-final { scan-tree-dump-times "Moving statement" 3 "lim" } } */
! /* { dg-final { cleanup-tree-dump "lim" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-8.c	Sun May  1 08:08:14 2005
***************
*** 0 ****
--- 1,25 ----
+ /* A test for strength reduction of ivs with nonconstant step.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-vars" } */
+ 
+ int bar (void);
+ 
+ int a[100];
+ 
+ void xxx (void)
+ {
+   int iter, step = bar ();
+ 
+   for (iter = 0; iter < 10; iter++)
+     a[iter * step] = bar ();
+ }
+ 
+ /* The array access should be strength reduced.  But to determine the value of
+    the step, we need to calculate step * sizeof (int), thus we need to be
+    a bit careful about which multiplications we disallow.  */
+ 
+ /* { dg-final { scan-tree-dump-times "step \\* \[^0-9\]" 0 "vars" } } */
+ /* { dg-final { scan-tree-dump-times "\[^0-9\] \\* step" 0 "vars" } } */
+ 
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/loop-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/loop-9.c	Mon Oct 24 20:29:00 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Without TARGET_MEM_REFs, dom creates code like
+    
+    i1 = 4 * i;
+    *(p + i1) = i;
+    *(p + i1 + 4) = i
+    
+    causing us to have unnecessary multiplication by 4 in the
+    result.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1" } */
+ 
+ void foo (int *p)
+ {
+   int i;
+ 
+   for (i = 0; i < 100; i++)
+     {
+       p[i] = i;
+       p[i + 1] = i;
+     }
+ }
+ 
+ /* { dg-final { scan-assembler-times "lea\\t" 0 { target i?86-*-* x86_64-*-* } } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c	Mon Nov  1 18:08:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-1.c	Thu Mar 31 18:34:19 2005
*************** int foo(int N, int *res)
*** 20,22 ****
--- 20,23 ----
  /* { dg-final { scan-tree-dump-times "converted loop nest to perfect
     loop nest" 1 "ltrans"} } */ 
  /* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */ 
+ /* { dg-final { cleanup-tree-dump "ltrans" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c	Mon Nov  1 18:08:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-2.c	Thu Mar 31 18:34:19 2005
*************** int foo(int N, int *res)
*** 22,24 ****
--- 22,25 ----
  }
  /* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} {
     xfail *-*-*} } */ 
+ /* { dg-final { cleanup-tree-dump "ltrans" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c	Mon Nov  1 18:08:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-3.c	Thu Mar 31 18:34:19 2005
*************** int foo(int N, int *res)
*** 17,19 ****
--- 17,20 ----
  }
  
  /* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */ 
+ /* { dg-final { cleanup-tree-dump "ltrans" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c	Mon Nov  1 18:08:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-4.c	Sat Apr 23 00:59:54 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O20 -ftree-loop-linear -fdump-tree-ltrans-all" } */
  
  double u[1782225];
  int foo(int N, int *res)
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
  
  double u[1782225];
  int foo(int N, int *res)
*************** int foo(int N, int *res)
*** 16,18 ****
--- 16,19 ----
  }
  
  /* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */ 
+ /* { dg-final { cleanup-tree-dump "ltrans" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c	Mon Nov  1 18:08:02 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-5.c	Thu Jan  1 00:00:00 1970
***************
*** 1,18 ****
- /* { dg-do compile } */ 
- /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
- typedef struct rtx_
- {
- } *rtx;
- static rtx regno_save_mem[53][16 / 4 + 1];
- extern set_mem_alias_set (rtx, rtx);
- int main(void)
- {
-   int i, j;
-   for (i = 0; i < 53; i++)
-     for (j = (16 / (0 ? 8 : 4)); j > 0; j--)
-       if (regno_save_mem[i][j] != 0)
-         set_mem_alias_set (regno_save_mem[i][j], 0);
- }
- 
- /* { dg-final { scan-tree-dump-times "Linear expression:  constant: 1   invariants:   denominator: 1" 1 "ltrans" } } */
- /* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */ 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ltrans-8.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -ftree-loop-linear -fdump-tree-ltrans-all" } */
+ double foo(double *a)
+ {
+        int i,j;
+        double r = 0.0;
+       for (i=0; i<8; ++i)
+                for (j=0; j<8; ++j)
+                       r += a[j*8+i];
+        return r;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "transformed loop" 1 "ltrans"} } */ 
+ /* { dg-final { cleanup-tree-dump "ltrans" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-1.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(int a, int b, int c)
+ {
+   if (c == 0) goto temp;
+   if (a == 0)
+    return 0;
+ temp:
+   if (a == b)
+    return a;
+  return a;
+ }
+ 
+ /* There should be no ifs as the PHI arguments, we did not
+    optimize this before because PHI-OPT did not look at 
+    PHIs which have more than two arguments.  */
+ /* { dg-final { scan-tree-dump-times "if" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-2.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ _Bool f1(_Bool a, _Bool b)
+ {
+   if (a)
+    {
+      if (b)
+       return 1;
+      else
+       return 0;
+    }
+   return 0;
+ }
+ 
+ 
+ /* There should be only one if, the outer one; the inner one
+    should have been changed to straight line code with the
+    value of b (except that we don't fold ! (b != 0) into b
+    which can be fixed in a different patch).  */
+ /* { dg-final { scan-tree-dump-times "if" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-3.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int f(int a, int b)
+ {
+   if (a == 0)
+    return 0;
+   if (a != b)
+    return a;
+  return a;
+ }
+ 
+ /* There should be no ifs as the PHI arguments, we did not
+    optimize this before because PHI-OPT did not look at 
+    PHIs which have more than two arguments.  */
+ /* { dg-final { scan-tree-dump-times "if" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-4.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ _Bool t();
+ _Bool t1();
+ 
+ _Bool f1()
+ {
+   return t() && t1();
+ }
+ 
+ /* There should be only one if, the outer one; the inner one
+    should have been changed to straight line code with the
+    value of b (except that we don't fold ! (b != 0) into b
+    which means that we miss a sib calling opportunity).  */
+ /* { dg-final { scan-tree-dump-times "if " 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-5.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,59 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -ffinite-math-only -fdump-tree-phiopt1" } */
+ 
+ float repl1 (float varx)
+ {
+   if (varx < 0.0)
+     return 0.0;
+   else if (varx > 1.0)
+     return 1.0;
+   else
+     return varx;
+ }
+ 
+ /* Should be turned to
+ 
+    varx_4 = MIN_EXPR <1.0e+0, varx_2>;
+    varx_5 = MAX_EXPR <varx_4, 0.0>;  */  
+ 
+ /* { dg-final { scan-tree-dump "varx.*MIN_EXPR.*1\\.0" "phiopt1"} } */
+ /* { dg-final { scan-tree-dump "varx.*MAX_EXPR.*0\\.0" "phiopt1"} } */
+ 
+ float repl2 (float vary)
+ {
+   if (vary > 1.0)
+     return 1.0;
+   else if (vary < 0.0)
+     return 0.0;
+   else
+     return vary;
+ }
+ 
+ /* Should be turned to
+ 
+    vary_4 = MAX_EXPR <0.0, vary_2>;
+    vary_5 = MIN_EXPR <vary_4, 1.0e+0>;  */
+ 
+ /* { dg-final { scan-tree-dump "vary.*MAX_EXPR.*0\\.0" "phiopt1"} } */
+ /* { dg-final { scan-tree-dump "vary.*MIN_EXPR.*1\\.0" "phiopt1"} } */
+ 
+ float repl3 (float varz, float vara, float varb)
+ {
+   if (varz > vara)
+     return vara;
+   else if (varz < varb)
+     return varb;
+   else
+     return varz;
+ }
+ 
+ /* Should be turned to
+ 
+   if (varz_2 > vara_3) goto <L4>; else goto <L1>;
+ 
+ <L1>:;
+   vara_6 = MAX_EXPR <varb_5, varz_2>;  */
+ 
+ /* { dg-final { scan-tree-dump "if .*varz" "phiopt1"} } */
+ /* { dg-final { scan-tree-dump "vara.*MAX_EXPR" "phiopt1"} } */
+ /* { dg-final { cleanup-tree-dump "phiopt1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14341.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ void fn_call (int);
+ int h(int, int);
+ void t()
+ {
+   int i;
+   int x;
+     for( i = 0; i < 100000000; i++ ){ 
+  	fn_call (i < 100000000);
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "fn_call \\(1\\)" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-1.c	Sun Jul  3 23:55:04 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ int g(int x)
+ {
+    return (x - 10) < 0;
+ }
+ /* There should be only x <= 9 and no x - 10. */
+ /* { dg-final { scan-tree-dump-times "<= 9" 1 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "\\+ -10" 0 "gimple"} } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-2.c	Sun Jul  3 23:55:04 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple -fwrapv" } */
+ int g(int x)
+ {
+    return (x - 10) < 0;
+ }
+ /* There should be no x >= 9 and one x - 10. */
+ /* { dg-final { scan-tree-dump-times "<= 9" 0 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "\\+ -10" 1 "gimple"} } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-3.c	Sun Jul  3 23:55:04 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ int g(int x)
+ {
+    return (x + 10) < 0;
+ }
+ /* There should be only x < -10 and no x + 10. */
+ /* { dg-final { scan-tree-dump-times "< -10" 1 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "\\+ 10" 0 "gimple"} } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14490-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14490-4.c	Sun Jul  3 23:55:04 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple -fwrapv" } */
+ int g(int x)
+ {
+    return (x + 10) < 0;
+ }
+ /* There should be no x < -10 and one x + 10. */
+ /* { dg-final { scan-tree-dump-times "< -10" 0 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "\\+ 10" 1 "gimple"} } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14814.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14814.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14814.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14814.c	Tue May 17 16:28:07 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop2" } */
+ 
+ 
+ struct YY {
+   double e[3];  };
+ 
+ static inline double *y(struct YY* this_1) { return &this_1->e[1]; }
+ 
+ struct XX {
+   struct YY v;
+  };
+ 
+ static inline struct YY direction (const struct  XX* this_1) { return this_1->v;}
+ 
+ int foo(const struct XX* r) {
+   struct YY t = direction(r);
+   if (*y(&t) < 0.000001) return 0;
+   return 1;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "&" 0 "forwprop2" } } */
+ /* { dg-final { cleanup-tree-dump "forwprop2" } } */
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14841.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14841.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr14841.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr14841.c	Tue Dec 27 20:08:39 2005
***************
*** 0 ****
--- 1,29 ----
+ /* PR tree-optimization/14841
+    Make sure that we can fold a possible nested reference into a
+    constant aggregate.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-store_ccp-details" } */
+ 
+ struct car {
+   int speed;
+   int tire_pressure[4];
+ };
+ 
+ static const struct car cars[] = {
+   { 75, { 10, 20, 30, 40 } },
+   { 35, { 12, 34, 56, 78 } },
+   { 40, { 19, 28, 37, 46 } }
+ };
+ 
+ extern void link_error (void);
+ 
+ void
+ foo (void)
+ {
+   if (cars[1].tire_pressure[2] != 56)
+     link_error ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folded statement: if " 1 "store_ccp"} } */
+ /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15349.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15349.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15349.c	Thu Jan 20 19:20:39 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15349.c	Thu Mar 31 18:34:19 2005
*************** foo (int a, int b)
*** 23,25 ****
--- 23,26 ----
  }
  
  /* { dg-final { scan-tree-dump-times "PHI" 1 "mergephi"} } */
+ /* { dg-final { cleanup-tree-dump "mergephi" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15791-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15791-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15791-3.c	Sat Jan 29 19:25:17 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15791-3.c	Thu Mar 31 18:34:19 2005
*************** int f(int i, unsigned j)
*** 10,13 ****
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! 
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15791-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15791-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15791-4.c	Sat Jan 29 19:25:17 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15791-4.c	Thu Mar 31 18:34:19 2005
*************** int f(int i, int j)
*** 10,13 ****
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! 
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 0 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15791-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15791-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr15791-5.c	Sat Jan 29 19:25:17 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr15791-5.c	Thu Mar 31 18:34:19 2005
*************** int foo(int i, int j)
*** 10,13 ****
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 1 "gimple" } } */
! 
--- 10,13 ----
  }
  
  /* { dg-final { scan-tree-dump-times "i == j" 1 "gimple" } } */
! /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr16721.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr16721.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr16721.c	Wed Sep 22 23:33:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr16721.c	Thu Mar 31 18:34:19 2005
*************** int test()
*** 13,15 ****
--- 13,16 ----
  
  /* The load from p->addr should not disappear.  */
  /* { dg-final { scan-tree-dump-times "\->addr" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr17141-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr17141-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr17141-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr17141-1.c	Tue May 17 16:28:07 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-forwprop2" } */
+ 
+ 
+ struct A { int i; };
+ int
+ foo(struct A *locp, int str)
+ {
+   int T355, *T356;
+   T356 = &locp->i;
+   *T356 = str;
+   return locp->i;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "&" 0 "forwprop2" } } */
+ /* { dg-final { cleanup-tree-dump "forwprop2" } } */
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr17141-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr17141-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr17141-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr17141-2.c	Tue May 17 16:28:07 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ 
+ 
+ void abort (void);
+ struct a
+ {
+   int i;
+ } *a;
+ int f(void)
+ {
+   int *ii = &a->i;
+   void *l;
+   a->i = 1;
+   if (*ii)
+    l = &&l1;
+   else
+    l = &&l2;
+   goto *l;
+ l1:
+   return 0;
+ l2:
+   abort ();
+ }
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "&" 0 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "abort" 0 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr17598.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr17598.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr17598.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr17598.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ struct f
+ {
+   int i;
+   int j;
+ };
+ 
+ struct g
+ {
+   int i;
+   struct f j;
+   struct f *k;
+ };
+ 
+ int foo(struct f *x, struct f *y)
+ {
+   return &x->j == &y->j; /* x == y */
+ }
+ 
+ struct f y;
+ int bar(struct f *x)
+ {
+   return &x->j == &y.j; /* x == &y */
+ }
+ 
+ struct g yy;
+ int foobar(struct g *x)
+ {
+   return &x->j.i == &yy.j.i; /* x == &yy */
+ }
+ int foobar2(struct g *x)
+ {
+   return &x->k->i == &yy.k->i; /* x->k == yy.k */
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "x == y" 1 "gimple" } } */
+ /* { dg-final { scan-tree-dump-times "x == &y" 2 "gimple" } } */
+ /* { dg-final { scan-tree-dump "x->k" "gimple" } } */
+ /* { dg-final { scan-tree-dump "yy.k" "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr18133-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr18133-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr18133-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr18133-1.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized-blocks" } */
+ 
+ void foo (void)
+ {
+ void *p;
+ p = &&L0;
+ goto *p;
+ L0:
+ return;
+ }
+ 
+ /* The goto &L0 should have been optimized away during CFG
+    cleanups.  */
+ /* { dg-final { scan-tree-dump-times "goto &L0" 0 "optimized" } } */
+ 
+ /* There should not be any abnormal edges as DOM removed the
+    computed goto.  */
+ 
+ /* { dg-final { scan-tree-dump-times "ab" 0 "optimized" } } */
+ 
+ /* And verify that we have fixed the fallthru flag as well. 
+    After DOM we will have two fallthru edges (e->0, 0->1),
+    but in the dump files we mention the 0->1 two times.  So
+    scan for 3 instances of "fallthru".  */
+ 
+ /* { dg-final { scan-tree-dump-times "fallthru" 3 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr18133-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr18133-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr18133-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr18133-2.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,43 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized-blocks" } */
+ 
+ int c, d;
+ 
+ int
+ bar (int a)
+ {
+   void *p;
+   int b;
+ 
+   if (a!=0)
+     {
+       b = 3;
+       p = &&L0;
+     }
+   else
+     {
+       b = 5;
+       p = &&L1;
+     }
+ 
+   goto *p;
+ 
+  L0:
+   c = b;
+   return 1;
+ 
+  L1:
+   d = b;
+   return 0;
+ }
+ 
+ /* The both paths to the block containing the goto *p should
+    have been threaded, thus eliminating the need for the goto *p.  */
+ 
+ /* { dg-final { scan-tree-dump-times "goto p" 0 "optimized" } } */
+ 
+ /* There should not be any abnormal edges as DOM removed the
+    computed goto.  */
+ 
+ /* { dg-final { scan-tree-dump-times "ab" 0 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr18134.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr18134.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr18134.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr18134.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-optimized" } */
+ 
+ int  foo (int a)
+ {
+ void *p;
+ if (a!=0)
+   p = &&L0;
+ else
+   p = &&L1;
+ goto *p;
+ L0:
+ return 1;
+ L1:
+ return 0;
+ }
+ 
+ /* Everything should have been cleaned up leaving a simple
+    return statement.  */
+ /* { dg-final { scan-tree-dump-times "return.*a != 0" 1 "optimized" } } */
+ 
+ /* There should not be any abnormal edges as DOM removed the
+    computed gotos.  */
+ 
+ /* { dg-final { scan-tree-dump-times "ab" 0 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19055-2.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ int f1(int a,int b,int c,int d)
+ {
+   return ((a&d)|(b&c)) ^ (b&c);
+ }
+ 
+ int f2(int a,int b,int c,int d)
+ {
+   return (b&c) ^ ((a&d)|(b&c));
+ }
+ 
+ int f3(int a,int b,int c,int d)
+ {
+   return ((b&c)|(a&d)) ^ (b&c);
+ }
+ 
+ int f4(int a,int b,int c,int d)
+ {
+   return (b&c) ^ ((b&c)|(a&d));
+ }
+ 
+ /* There should be no ^, 4 ~ and 12 &. */
+ /* { dg-final { scan-tree-dump-times "\\^" 0 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "~" 4 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "&" 12 "gimple"} } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19055.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ int f1(int a,int b)
+ {
+   return (a|b) ^ b;
+ }
+ int f2(int a,int b)
+ {
+   return (b|a) ^ b;
+ }
+ int f3(int a,int b)
+ {
+   return b^(a|b);
+ }
+ int f4(int a,int b)
+ {
+   return b^(b|a);
+ }
+ /* There should be no ^, 4 ~ and 4 &. */
+ /* { dg-final { scan-tree-dump-times "\\^" 0 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "~" 4 "gimple"} } */
+ /* { dg-final { scan-tree-dump-times "&" 4 "gimple"} } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19210-1.c	Thu Jul 21 07:24:34 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -Wunsafe-loop-optimizations" } */
+ extern void g(void);
+ 
+ void
+ f (unsigned n)
+ {
+   unsigned k;
+   for(k = 0;k <= n;k++) /* { dg-warning "cannot optimize.*infinite loops" } */
+     g();
+ 
+   for(k = 0;k <= n;k += 4) /* { dg-warning "cannot optimize.*overflow" } */
+     g();
+ 
+   for(k = 5;k <= n;k += 5) /* { dg-warning "cannot optimize.*overflow" } */
+     g();
+ 
+   for(k = 15;k >= n;k--) /* { dg-warning "cannot optimize.*infinite" } */
+     g();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19210-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19210-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19210-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19210-2.c	Thu Jul 21 07:24:34 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -funsafe-loop-optimizations -Wunsafe-loop-optimizations" } */
+ extern void g(void);
+ 
+ void
+ f (unsigned n)
+ {
+   unsigned k;
+   for(k = 0;k <= n;k++) /* { dg-warning "assuming.*not infinite" } */
+     g();
+ 
+   for(k = 5;k <= n;k += 4) /* { dg-warning "assuming.*not overflow" } */
+     g();
+ 
+   for(k = 5;k <= n;k += 5) /* { dg-warning "assuming.*not overflow" } */
+     g();
+ 
+   for(k = 15;k >= n;k--) /* { dg-warning "assuming.*not infinite" } */
+     g();
+ 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19633.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19633.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr19633.c	Thu Jan 27 04:45:20 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr19633.c	Thu Mar 31 18:34:19 2005
*************** foo (int a, struct T b)
*** 23,25 ****
--- 23,26 ----
  /* Make sure that .GLOBAL_VAR is not created when there are no
     clobbering calls.  */
  /* { dg-final { scan-tree-dump-times "GLOBAL_VAR" 0 "ssa"} } */
+ /* { dg-final { cleanup-tree-dump "ssa" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20139.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20139.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20139.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20139.c	Fri Jul  8 19:11:55 2005
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/20139
+    This testcase is derived from gcc.dg/20020720-1.c.  Here we check
+    that the optimization happens at tree level.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-final_cleanup" } */
+ 
+ extern double fabs (double);
+ extern void link_error (void);
+ 
+ void
+ foo (double x)
+ {
+   double p, q;
+ 
+   p = fabs (x);
+   q = 0.0;
+   if (p < q)
+     link_error ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "link_error" 0 "final_cleanup" } } */
+ /* { dg-final { cleanup-tree-dump "final_cleanup" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20470.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20470.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20470.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20470.c	Fri May 13 13:57:19 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ /* PR tree-optimization/20470:
+     Missing fold to abs(x) when x == MINUS_EXPR.  */
+ #define abs(x)  ((x) >= 0 ? (x) : -(x))
+ 
+ int i,j,k;
+ void f1()
+ {
+   i = abs(j-k);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "ABS_EXPR" 1 "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20490.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20490.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20490.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20490.c	Wed Mar 16 16:22:45 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -ftree-pre" } */
+ static int  a;
+ static int  b;
+ 
+ typedef int gint;
+ 
+ int blah ()
+ {
+ 	gint x = a;
+ 	gint y = b;
+ 
+ 	x *= (x < 0) ? -1 : 0;
+ 	y *= (y < 0) ? -1 : 0;
+ 
+ 	return (y * x);
+ 
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20657.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20657.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20657.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20657.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,18 ----
+ /* PR tree-optimization/20657
+    VRP did not pick up a conditional equivalence from the first "if"
+    statement, which was needed to eliminate the second "if" statement.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp-details" } */
+ 
+ int
+ foo (int a)
+ {
+   if (a == 0)
+     if (a == 0)
+       return 1;
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate" 1 "vrp"} } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20701.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ typedef struct {
+   int code;
+ } *rtx;
+ 
+ int
+ can_combine_p (rtx insn, rtx elt)
+ {
+   rtx set;
+ 
+   set = 0;
+   if (insn->code == 3)
+     set = insn;
+   else
+     {
+       set = elt;
+       if (set == 0)
+ 	return 0;
+     }
+ 
+   if (set == 0)
+     return 1;
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate.*to 0" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20702.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20702.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20702.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20702.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,29 ----
+ /* PR tree-optimization/20702
+    VRP did not insert ASSERT_EXPRs into dominator dominator children
+    of a basic block ending with COND_EXPR unless the children are also
+    immediate successors of the basic block.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp-details" } */
+ 
+ extern void bar (int);
+ 
+ int
+ foo (int *p, int b)
+ {
+   int a;
+ 
+   if (b)
+     bar (123);
+   else
+     bar (321);
+ 
+   a = *p;
+   if (p == 0)
+     return 0;
+ 
+   return a;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate" 1 "vrp"} } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20913.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20913.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20913.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20913.c	Wed May 11 02:24:44 2005
***************
*** 0 ****
--- 1,34 ----
+ /* PR tree-optimization/20913
+    COPY-PROP did not fold COND_EXPR, blocking some copy propagation
+    opportunities.  */
+ 
+ /* { dg-do link } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts" } */
+ 
+ int
+ foo (int a, int b, int c, int d)
+ {
+   int x, y;
+ 
+   b = a;
+   if (a == b)
+     x = c;
+   else
+     {
+       link_error ();
+       x = d;
+     }
+ 
+   if (x == c)
+     return a;
+   else
+     {
+       link_error ();
+       return b;
+     }
+ }
+ 
+ main()
+ {
+   foo (1, 2, 3, 4);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20933.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20933.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr20933.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr20933.c	Mon Apr 11 22:06:46 2005
***************
*** 0 ****
--- 1,70 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ extern __SIZE_TYPE__ strlen (__const char *__s)
+      __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+ extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
+      __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
+ extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+ extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
+ extern void * xmalloc (__SIZE_TYPE__) __attribute__ ((__malloc__));
+ 
+ static __inline__ const char *
+ try (const char *dir, const char *base)
+ {
+   if (base != 0)
+     return base;
+   if (dir != 0
+       && access (dir, 4 | 2 | 1) == 0)
+     return dir;
+   return 0;
+ }
+ 
+ static const char tmp[] = { '/', 't', 'm', 'p', 0 };
+ static const char usrtmp[] =
+ { '/', 'u', 's', 'r', '/', 't', 'm', 'p', 0 };
+ static const char vartmp[] =
+ { '/', 'v', 'a', 'r', '/', 't', 'm', 'p', 0 };
+ 
+ static char *memoized_tmpdir;
+ char *
+ choose_tmpdir (void)
+ {
+   const char *base = 0;
+   char *tmpdir;
+   unsigned int len;
+ 
+   if (memoized_tmpdir)
+     return memoized_tmpdir;
+ 
+   base = try (getenv ("TMPDIR"), base);
+   base = try (getenv ("TMP"), base);
+   base = try (getenv ("TEMP"), base);
+ 
+ 
+   base = try ("/tmp", base);
+ 
+ 
+ 
+   base = try (vartmp, base);
+   base = try (usrtmp, base);
+   base = try (tmp, base);
+ 
+ 
+   if (base == 0)
+     base = ".";
+ 
+ 
+ 
+   len = strlen (base);
+   tmpdir = xmalloc (len + 2);
+   strcpy (tmpdir, base);
+   /* Alias analysis was associating read-only memory tags to pointers
+      that are not read-only.  We would then not issue any V_MAY_DEF in
+      this store.  */
+   tmpdir[len] = '/';
+   tmpdir[len+1] = '\0';
+ 
+   memoized_tmpdir = tmpdir;
+   return tmpdir;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21001.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,21 ----
+ /* PR tree-optimization/21001
+    VRP did not insert ASSERT_EXPRs when the variable tested in a
+    COND_EXPR is a single-use variable.  By propagating the definition
+    of the single-use variable into the COND_EXPR, we can get useful
+    range infomation out of the conditional.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp-details" } */
+ 
+ int
+ foo (int a)
+ {
+   int b = a != 0;
+   if (b)
+     if (a != 0)
+       return 1;
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate" 1 "vrp"} } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21029.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21029.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21029.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21029.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,118 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -fwrapv" } */
+ 
+ /* PR tree-optimization/21029
+ 
+    f() used to get optimized to an infinite loop by tree-vrp, because
+    j is assumed to be non-negative.  Even though the conversion from
+    unsigned to signed has unspecified results if the expression value
+    is not representable in the signed type, the compiler itself (e.g.,
+    the Ada front end) depends on wrap-around behavior.  */
+ 
+ unsigned int f(void) {
+   unsigned char i = 123;
+   signed char j;
+ 
+   do
+     if ((j = (signed char) i) < 0)
+       break;
+     else
+       i++;
+   while (1);
+ 
+   return i;
+ }
+ 
+ /* Now let's torture it a bit further.  Narrowing conversions need
+    similar treatment.  */
+ 
+ unsigned int f1 (void) {
+   unsigned short i = 123;
+   signed char j;
+ 
+   do
+     if ((j = (signed char) i) < 0)
+       break;
+     else
+       i++;
+   while (1);
+ 
+   return i;
+ }
+ 
+ /* And so do widening conversions.  */
+ 
+ unsigned int f2 (void) {
+   unsigned char i = 123;
+   signed short j;
+ 
+   do
+     if ((j = (signed short) (signed char) i) < 0)
+       break;
+     else
+       i++;
+   while (1);
+ 
+   return i;
+ }
+ 
+ /* Check same-sign truncations with an increment that turns into
+    decrements.  */
+ 
+ unsigned int f3 (void) {
+   signed short i = 5;
+   signed char j;
+ 
+   do
+     if ((j = (signed char) i) < 0)
+       break;
+     else
+       i += 255;
+   while (1);
+ 
+   return i;
+ }
+ 
+ /* Check that the truncation above doesn't confuse the result of the
+    test after a widening conversion.  */
+ 
+ unsigned int f4 (void) {
+   signed short i = -123;
+   signed int j;
+ 
+   do
+     if ((j = (signed int) (signed char) i) > 0)
+       break;
+     else
+       i += 255;
+   while (1);
+ 
+   return i;
+ }
+ 
+ /* Even if we omit the widening truncation, the narrowing truncation
+    is implementation-defined.  */
+ 
+ unsigned int f5 (void) {
+   signed long i = -123;
+   signed char j;
+ 
+   do
+     if ((j = (signed char) i) > 0)
+       break;
+     else
+       i += 255;
+   while (1);
+ 
+   return i;
+ }
+ 
+ int main (void) {
+   f ();
+   f1 ();
+   f2 ();
+   f3 ();
+   f4 ();
+   f5 ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21031.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21031.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21031.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21031.c	Fri Apr 15 18:42:38 2005
***************
*** 0 ****
--- 1,20 ----
+ /* PR tree-optimization/21031
+ 
+    Make sure that a != 0 is propagated into the "if" statement.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-forwprop1-details" } */
+ 
+ int
+ foo (int a)
+ {
+   int b = a != 0;
+   unsigned char c = b;
+   if (c)
+     return 1;
+   else
+     return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Replaced" 2 "forwprop1"} } */
+ /* { dg-final { cleanup-tree-dump "forwprop1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21086.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21086.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21086.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21086.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ int
+ foo (int *p)
+ {
+   int a = *p;
+   int b = p != 0;
+ 
+   *p = b;
+ 
+   if (b)
+     return a;
+   else
+     return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate " 2 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21090.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21090.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21090.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21090.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ int g, h;
+ 
+ int
+ foo (int a)
+ {
+   int *p;
+ 
+   if (a)
+     p = &g;
+   else
+     p = &h;
+ 
+   if (p != 0)
+     return 1;
+   else
+     return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21171.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21171.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21171.c	Tue Jun 14 12:33:51 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21171.c	Wed Apr 27 14:28:11 2005
*************** int main()
*** 26,28 ****
--- 26,29 ----
  }
  
  /* { dg-final { scan-tree-dump-times "SVR" 1 "vars"} } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21294.c	Mon May  2 18:06:27 2005
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/21294
+    VRP did not notice that an address of the form &p->i is nonnull
+    when p is known to be nonnull.  In this testcase, noticing that
+    allows us to eliminate the second "if" statement.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp-details" } */
+ 
+ struct f {
+   int i;
+ };
+ 
+ int
+ foo (struct f *p)
+ {
+   if (p != 0)
+     if (&p->i != 0)
+       return 123;
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate" 1 "vrp"} } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21332.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21332.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21332.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21332.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ // this testcase fails also on amd64:
+ 
+ extern void abort (void);
+ 
+ int f ()
+ {
+   return -1;
+ }
+ 
+ int main ()
+ {
+   int b, c, i;
+ 
+   b = 0;
+   c = f ();
+   if (c <= 0)
+     {
+       c = -c;
+       for (i = 0; i < c; i++)
+ 	  b = 1;
+       if (!b)
+ 	abort ();
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21458.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ extern void g (void);
+ extern void bar (int);
+ 
+ int
+ foo (int a)
+ {
+   int i;
+ 
+   for (i = 1; i < 100; i++)
+     {
+       if (i)
+ 	g ();
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21563.c	Sat May 14 20:32:59 2005
***************
*** 0 ****
--- 1,17 ----
+ /* PR tree-optimization/21563
+    Make sure VRP folds the second "if" statement.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-vrp-details" } */
+ 
+ int
+ foo (int a)
+ {
+   if (a > 1)
+     if (a == 0)
+       return 1;
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate" 1 "vrp"} } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21574.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21574.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21574.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21574.c	Wed Aug 17 07:27:47 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-store_ccp" } */
+ 
+ int
+ foo (int *p)
+ {
+   *p = 0;
+   return *p;
+ }
+ 
+ /* The store to *p should be propagated to the return statement.  */
+ /* { dg-final { scan-tree-dump-times "return 0" 1 "store_ccp" } } */
+ /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21582.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21582.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21582.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21582.c	Thu Jun  2 18:26:07 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do link }  */
+ /* { dg-options "-O2 -fdump-tree-vrp" }  */
+ 
+ static inline void do_thing(char *s, int *p, char *q)
+ {
+   	/* This should be folded away.  */
+         if (s == 0 || q == 0)
+                 link_error ();
+ 
+ 	/* This should not be folded as 'p' is not marked nonnull.  */
+ 	if (p)
+ 	  	*p = 3;
+ }
+ 
+ void __attribute__((nonnull (1, 3))) do_other_thing(char *s, int *p, char *q)
+ {
+         do_thing(s, p, q);
+ }
+ 
+ int i;
+ 
+ main()
+ {
+   do_other_thing ("xxx", &i, "yyy");
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.*" 0 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21658.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21658.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21658.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21658.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,21 ----
+ /* PR tree-optimization/21658
+    CCP did not propagate an ADDR_EXPR far enough, preventing the "if"
+    statement below from being folded.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-ccp-details" } */
+ 
+ void link_error (void);
+ 
+ void
+ f (void)
+ {
+   int a[10];
+   int *p = &a[5];
+   int *q = p - 1;
+   if (q != &a[4])
+     link_error ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folded statement: if " 1 "ccp"} } */
+ /* { dg-final { cleanup-tree-dump "ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21959.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21959.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21959.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21959.c	Tue Jun 28 00:52:35 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ unsigned char c[0xFF];
+ void f(void)
+ {
+   unsigned char i;
+   c[128] = 128;
+   i = 0;
+   while (1)
+   {
+     /* This predicate should not be folded out.  */
+     if (((signed char) i) < 0) break;
+     c[i] = ' ';
+     i++;
+   }
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate " 0 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21985.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21985.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr21985.c	Fri Jun 24 03:44:46 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr21985.c	Tue Sep 13 23:46:26 2005
*************** main (void)
*** 31,33 ****
--- 31,34 ----
  /* Two of the calls to foo should be folded to just foo(constant).  */
  
  /* { dg-final { scan-tree-dump-times "foo \\(\[0-9\]*\\)" 2 "vars" } } */
+ /* { dg-final { cleanup-tree-dump "vars" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22018.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22018.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22018.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22018.c	Wed Jun 15 11:33:13 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run }  */
+ /* { dg-options -O2 }  */
+ 
+ void abort (void);
+ void g(int);
+ void f(int l)
+ {
+   unsigned i;
+   for (i = 0; i < l; i++)
+     {
+       int y = i;
+       /* VRP was wrongfully computing z's range to be [0, 0] instead
+ 	 of [-INF, 0].  */
+       int z = y*-32;
+       g(z);
+     }
+ }
+ 
+ void g(int i)
+ {
+   static int x = 0;
+   if (i == 0)
+     x ++;
+   if (x > 1)
+     abort ();
+ }
+ 
+ int main(void)
+ {
+   f(3);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22026.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22026.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22026.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22026.c	Sun Jun 26 03:49:20 2005
***************
*** 0 ****
--- 1,49 ----
+ /* PR tree-optimization/22026
+    VRP used think that ~[0,0] + ~[0,0] = ~[0,0], which is wrong.  The
+    same applies to subtraction and unsigned multiplication.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ int
+ plus (int x, int y)
+ {
+   if (x != 0)
+     if (y != 0)
+       {
+         int z = x + y;
+         if (z != 0)
+           return 1;
+       }
+   return 0;
+ }
+ 
+ int
+ minus (int x, int y)
+ {
+   if (x != 0)
+     if (y != 0)
+       {
+         int z = x - y;
+         if (z != 0)
+           return 1;
+       }
+   return 0;
+ }
+ 
+ int
+ mult (unsigned x, unsigned y)
+ {
+   if (x != 0)
+     if (y != 0)
+       {
+ 	unsigned z = x * y;
+ 	if (z != 0)
+ 	  return 1;
+       }
+   return 0;
+ }
+ 
+ /* None of the predicates can be folded in these functions.  */
+ /* { dg-final { scan-tree-dump-times "Folding predicate" 0 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22051-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22051-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22051-1.c	Mon Jul 11 22:41:08 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22051-1.c	Sat Jul  2 14:15:11 2005
*************** foo()
*** 18,22 ****
--- 18,23 ----
     are complete so that function pointer canonicalization works on those
     targets which require it.  */
  /* { dg-final { scan-tree-dump-times "if \\(\\(void \\(\\*<.*>\\) \\(void\\)\\) p" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
  
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c	Wed Jul 13 17:42:02 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22051-2.c	Wed Jul 13 17:29:33 2005
*************** foo()
*** 21,24 ****
--- 21,25 ----
     so that we do not try to canonicalize a function pointer for the
     comparison when no such canonicalization is wanted.  */
  /* { dg-final { scan-tree-dump-times "if \\(\\(int\\).*q" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22117.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22117.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22117.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22117.c	Thu Jun 23 16:04:09 2005
***************
*** 0 ****
--- 1,23 ----
+ /* PR tree-optimization/22117
+    VRP used think that &p[q] is nonzero even though p and q are both
+    known to be zero after entering the first two "if" statements.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ void
+ foo (int *p, int q)
+ {
+   if (p == 0)
+     {
+       if (q == 0)
+ 	{
+ 	  int *r = &p[q];
+ 	  if (r != 0)
+ 	    link_error ();
+ 	}
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate r_.* != 0B to 0" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22230.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22230.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22230.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22230.c	Thu Jul 14 22:54:42 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run } */
+ /* { dg-options "-O1 -ftree-vrp" } */
+ 
+ /* PR tree-optimization/22230
+ 
+    The meet of the ranges in "i*i" was not computed correctly, leading
+    gcc to believe that a was equal to 0 after the loop.  */
+ 
+ extern void abort (void) __attribute__((noreturn));
+ 
+ int main (void)
+ {
+   long a, i;
+ 
+   for (i = 0; i < 5; i++)
+     a = i * i;
+   if (a != 16)
+     abort ();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22236.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22236.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22236.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22236.c	Sat Aug 13 17:28:43 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do run } */
+ /* { dg-options "-O1 -fno-tree-vrp -fwrapv" } */
+ 
+ /* PR tree-optimization/22236
+ 
+     Avoid conversion of (signed char) {(uchar)1, +, (uchar)1}_x when
+     it is not possible to prove that the scev does not wrap.  
+ 
+     In this PR, a sequence 1, 2, ..., 255 has to be converted to
+     signed char, but this would wrap: 1, 2, ..., 127, -128, ...  The
+     result should not be a linear scev {(schar)1, +, (schar)1}_x.
+     The conversion should be kept: (schar) {(uchar)1, +, (uchar)1}_x.
+  */
+ 
+ void abort(void);
+ 
+ static inline void
+ foo (signed char a)
+ {
+   int b = a - 0x7F;
+   if (b > 1)
+     abort();
+ }
+ 
+ int main()
+ {
+   unsigned char b;
+   for(b = 0; b < 0xFF; b++)
+     foo (b);
+ 
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22321.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22321.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr22321.c	Wed Jul 13 16:43:59 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr22321.c	Wed Jul 13 16:31:23 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fno-tree-ccp -fdump-tree-optimized" } */
  
  
  volatile int x;
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fno-tree-vrp -fno-tree-copy-prop -fno-tree-ccp -fdump-tree-optimized" } */
  
  
  volatile int x;
*************** int main ()
*** 16,18 ****
--- 16,20 ----
  }
  
  /* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23048.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23048.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23048.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23048.c	Fri Aug 19 17:54:16 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -ftree-vectorize" } */
+ 
+ void f(unsigned char *mem)
+ {
+    int i;
+ 
+    for(i=0;i<4;i++) {
+      while(mem[i]==0) ;
+    }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23109.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23109.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23109.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23109.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -funsafe-math-optimizations -fdump-tree-recip -fdump-tree-lim" } */
+ 
+ double F[2] = { 0., 0. }, e = 0.;
+ 
+ int main()
+ {
+ 	int i;
+ 	double E, W, P, d;
+ 
+         /* make sure the program crashes on FP exception */
+         unsigned short int Mask;
+ 
+ 	W = 1.;
+ 	d = 2.*e;
+ 	E = 1. - d;
+ 
+ 	for( i=0; i < 2; i++ )
+ 		if( d > 0.01 )
+ 		{
+ 			P = ( W < E ) ? (W - E)/d : (E - W)/d;
+ 			F[i] += P;
+ 		}
+ 
+ 	return 0;
+ }
+ 
+ /* LIM only performs the transformation in the no-trapping-math case.  In
+    the future we will do it for trapping-math as well in recip, check that
+    this is not wrongly optimized.  */
+ /* { dg-final { scan-tree-dump-not "reciptmp" "lim" } } */
+ /* { dg-final { scan-tree-dump-not "reciptmp" "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23115.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23115.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23115.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23115.c	Tue Nov  8 20:21:15 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2 -ftree-vectorize" } */
+ 
+ extern void abort (void);
+ 
+ #define MIN2(a,b) (((a)<(b)) ? (a) : (b))
+ #define MAX2(a,b) (((a)>(b)) ? (a) : (b))
+ 
+ double p[2] = { 4., 5. };
+ 
+ int main()
+ {
+   long j;
+   double R, n, x;
+ 
+   n = 1.e300;
+   x = -1.e300;
+   for( j=0; j < 2; j++ )
+     {
+       x = MAX2(x,p[j]);
+       n = MIN2(n,p[j]);
+     }
+   R = x-n;
+ 
+   if( R < 0.1 )
+       abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23234.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23234.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23234.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23234.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,58 ----
+ /* The problem in this PR was mostly finding a suitable place to insert
+    the reciprocals of the function arguments.  This test case tries to
+    test three possible ways of how this may go wrong.  */
+ /* { dg-options "-O2 -ffast-math" } */
+ /* { dg-do compile } */
+ 
+ /* The original test case.  */
+ double
+ f1 (double a, double b, double c)
+ {
+   double y0;
+   double y1;
+ 
+   if (a == 0.0)
+     {
+       y0 = -c / b;
+       return y0;
+     }
+   y0 = c / b;
+   y1 = a / b;
+   return y0 * y1;
+ }
+ 
+ /* Labels may end up in the middle of a block.  Also bad.  */
+ double
+ f2 (double a, double b, double c)
+ {
+   double y0;
+   double y1;
+ 
+ a_label:
+ another_label:
+   if (a == 0.0)
+     {
+       y0 = -c / b;
+       return y0;
+     }
+   y0 = c / b;
+   y1 = a / b;
+   return y0 * y1;
+ }
+ 
+ /* Uses must still be dominated by their defs.  */
+ double
+ f3 (double a, double b, double c)
+ {
+   double y0;
+   double y1;
+ 
+   y0 = -c / b;
+   if (a == 0.0)
+     {
+       return y0;
+     }
+   y0 = c / b;
+   y1 = a / b;
+   return y0 * y1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23382.c	Tue Nov  8 16:34:48 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-alias-vops" } */
+ struct a
+ {
+   int length;
+   int a1[256];
+ };
+ 
+ void *malloc(long size) __attribute__((malloc));
+ 
+ void f(void)
+ {
+    struct a *a = malloc(sizeof(struct a));
+ }
+ /* { dg-final { scan-tree-dump-times "V_MAY_DEF <HEAP" 1 "alias1"} } */
+ /* { dg-final { scan-tree-dump-times "V_MAY_DEF <HEAP" 1 "alias2"} } */
+ /* { dg-final { scan-tree-dump-times "V_MAY_DEF <HEAP" 1 "alias3"} } */
+ /* { dg-final { scan-tree-dump-times "V_MAY_DEF <HEAP" 1 "alias4"} } */
+ /* { dg-final { scan-tree-dump-times "V_MAY_DEF <HEAP" 1 "alias5"} } */
+ /* { dg-final { cleanup-tree-dump "alias1" } } */
+ /* { dg-final { cleanup-tree-dump "alias2" } } */
+ /* { dg-final { cleanup-tree-dump "alias3" } } */
+ /* { dg-final { cleanup-tree-dump "alias4" } } */
+ /* { dg-final { cleanup-tree-dump "alias5" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23386.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23386.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23386.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23386.c	Mon Aug 15 07:51:42 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ int f[100];
+ int g[100];
+ unsigned char
+ f1 (int a, int b)
+ {
+   __SIZE_TYPE__ ix;
+   if (a)
+     return 1;
+   for (ix = 4; ix--;)
+       if (f[ix] != g[ix])
+ 	  return 0;
+   return 1;
+ }
+ 
+ int main(void)
+ {
+   if (!f1 (0, 2))
+     __builtin_abort();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23391.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23391.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23391.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23391.c	Sun Aug 21 10:54:09 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ void 
+ foo (int N) 
+ { 
+   int C; 
+   double R; 
+  
+   R = 0.0; 
+   do 
+     { 
+       R += 0.001; 
+       C = (int) (R * N); 
+       if (-R * N <= R * N) 
+         { 
+           C++; 
+         } 
+     } 
+   while (C < 0); 
+  
+   return; 
+ } 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23433.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23433.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23433.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23433.c	Sun Aug 21 10:59:15 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ double transport_sumexp(int numexp)
+ {
+   int k,j;
+   double xk1 = 1.0;
+   for(k=1; k<=numexp;k++)
+     for(j=1;j<=3;j++)
+       xk1 += 1.0;
+   return xk1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23434.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23434.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr23434.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr23434.c	Sun Aug 21 10:48:23 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ cblas_csyr2k (int N, void *A, int lda, float *B, int ldb, float *C, int k)
+ {
+   int i, j;
+   for (;; k ++)
+     {
+       for (i = 0; i < N; i ++)
+ 	{
+ 	  float t = ((float * ) A) [i];
+ 	  for (j = i; j < N; j ++)
+ 	    {
+ 	      C [i + j] = B [ldb] * ((float *) A) [k];
+ 	      C [lda] = 0 ;
+ 	    }
+ 	}
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24117.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24117.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24117.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24117.c	Thu Sep 29 19:38:00 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ typedef struct  {
+   int x;
+   int z;
+ } Foo_t;
+ 
+ char *xm;
+ void bar(void);
+ 
+ void foo(void)
+ {
+   Foo_t x;
+   x.x = 1;
+   x.z = 2;
+   xm = (char *)&x;
+   bar();
+   /* We can't propagate x.z past bar, so this link_error should still be there.  */
+   if (x.z != 2)
+     link_error ();
+ }
+ /* { dg-final { scan-tree-dump-times "link_error" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24627.c	Fri Nov  4 19:56:28 2005
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-do run } */
+ /* { dg-options "-O" } */
+ 
+ extern void abort (void);
+ typedef unsigned int u_int32;
+ 
+ typedef struct {
+   union {u_int32 Xl_ui;} Ul_i;
+   union {u_int32 Xl_uf;} Ul_f;
+ } l_fp;
+ 
+ void
+ dolfptoa (short ndec)
+ {
+   l_fp work, ftmp;
+ 
+   work.Ul_i.Xl_ui = 0;
+   work.Ul_f.Xl_uf = 0x535f3d8;
+ 
+   while (ndec > 0)
+     {
+       u_int32 lo_tmp;
+       u_int32 hi_tmp;
+ 
+       ndec--;
+       work.Ul_i.Xl_ui = 0;
+       work.Ul_i.Xl_ui <<= 1;
+       if ((work.Ul_f.Xl_uf) & 0x80000000)
+ 	(work.Ul_i.Xl_ui) |= 0x1;
+       (work.Ul_f.Xl_uf) <<= 1;
+ 
+       ftmp = work;
+       (work.Ul_i.Xl_ui) <<= 1;
+       if ((work.Ul_f.Xl_uf) & 0x80000000)
+ 	(work.Ul_i.Xl_ui) |= 0x1;
+       (work.Ul_f.Xl_uf) <<= 1;
+ 
+       (work.Ul_i.Xl_ui) <<= 1;
+       if ((work.Ul_f.Xl_uf) & 0x80000000)
+ 	(work.Ul_i.Xl_ui) |= 0x1;
+       (work.Ul_f.Xl_uf) <<= 1;
+ 
+       lo_tmp = ((work.Ul_f.Xl_uf) & 0xffff) + ((ftmp.Ul_f.Xl_uf) & 0xffff);
+       hi_tmp = (((work.Ul_f.Xl_uf) >> 16) & 0xffff)
+                + (((ftmp.Ul_f.Xl_uf) >> 16) & 0xffff);
+ 
+       if (lo_tmp & 0x10000)
+ 	hi_tmp++;
+ 
+       (work.Ul_f.Xl_uf) = ((hi_tmp & 0xffff) << 16) | (lo_tmp & 0xffff);
+       (work.Ul_i.Xl_ui) += (ftmp.Ul_i.Xl_ui);
+ 
+       if (hi_tmp & 0x10000)
+ 	(work.Ul_i.Xl_ui)++;
+ 
+ 
+       if (!(work.Ul_i.Xl_ui < 10))
+ 	abort ();
+     }
+ }
+ 
+ int main()
+ {
+   dolfptoa(6);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24670.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24670.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24670.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24670.c	Sun Nov  6 14:51:16 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ __inline__ void
+ shift128Right (int count, long long int *z1Ptr)
+ {
+   long long int z1;
+   if (count == 0);
+   else if (count < 64);
+   else
+     z1 = (count < 64) ? count : 0;
+   *z1Ptr = z1;
+ }
+ 
+ float128_rem ()
+ {
+   signed int expDiff;
+   long long int aSig1;
+   long long int sigMean1;
+   if (-64 < expDiff)
+     shift128Right (-expDiff, &aSig1);
+   add128 (&sigMean1);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24840.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24840.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr24840.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr24840.c	Tue Nov 15 02:59:03 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ typedef struct
+ {
+   int tag, y;
+ } Object;
+ 
+ void Err_Handler () __attribute__ ((__noreturn__));
+ 
+ int
+ P_Error (int argc, Object * argv)
+ {
+     if (((argv[1]).tag >> 1) != 11)
+       Wrong_Type (argv[1], 11);
+   Err_Handler (argv[0], argv[1], argc - 2, argv + 2);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pr26180.c	Thu Feb  9 13:40:52 2006
***************
*** 0 ****
--- 1,43 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ void abort(void);
+ int bar(int x, int y)
+ {
+     int x1, y1;
+     int x2, y2;
+     unsigned int x3, y3, w;
+     int z = 1;
+ 
+     x1 = (x < (1 << 30));
+     y1 = (y < (1 << 30));
+     if (x1)
+     if (y1) {
+         x2 = ((x > 0)? (x): -(x));
+         y2 = ((y > 0)? (y): -(y));
+ 
+         x3 = x2;
+         y3 = y2;
+         w = x3 * y3;
+ 
+         if (w >= (1 << 30)) {
+           z = 1;
+         } else    {
+           z = -1;
+         }
+     }
+ 
+         return z;
+ }
+ 
+ 
+ int main()
+ {
+   int x, y, z;
+   x = 536870912;  /* 2^29 */
+   y = 2;
+   z = bar(x, y);
+   if (z != 1)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/pta-fp.c	Sun Jul 10 00:28:01 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-alias1" } */
+ extern double cos (double);
+ extern double sin (double);
+ double f(double a)
+ {
+   double b;
+   double c,d;
+   double (*fp) (double);
+   if (a < 2.0)
+     {
+       fp = sin;
+       c = fp (a);
+     }
+   else
+     {
+       c = 1.0; 
+       fp = cos;
+     }
+   d = fp (a);
+   return d + c;
+ }
+ /* The points-to set of the final function pointer should be "sin cos" */
+ 
+ /* { dg-final { scan-tree-dump-times "sin cos" 1 "alias1"} } */
+ /* { dg-final { cleanup-tree-dump "alias1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-1.c	Mon Jun  6 18:55:59 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ int a, b, c, d;
+ extern int printf (const char *, ...);
+ int main(void)
+ {
+   int e;
+   int f;
+   /* We should be able to transform these into the same expression, and only have two additions.  */
+   e = a + b;
+   e = e + c;
+   f = c + a;
+   f = f + b;
+   printf ("%d %d\n", e, f);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "a \\\+ b" 1 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-2.c	Mon Jun  6 18:55:59 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized -fdump-tree-reassoc-details" } */
+ extern int a0, a1, a2, a3, a4; 
+ int f () 
+ { 
+ int b0, b1, b2, b3, b4; 
+   /* this can be optimized to four additions... */ 
+   b4 = a4 + a3 + a2 + a1 + a0; 
+   b3 = a3 + a2 + a1 + a0; 
+   b2 = a2 + a1 + a0; 
+   b1 = a1 + a0; 
+   /* This is actually 0 */
+   return b4 - b3 + b2 - b1 - a4 - a2;
+ } 
+ /* { dg-final { scan-tree-dump-times "Reassociating by rank" 3 "reassoc" } } */
+ /* { dg-final { scan-tree-dump-times "return 0" 1 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "reassoc" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-3.c	Mon Jul 25 20:23:50 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-optimized -ffast-math" } */
+ float a, b, c, d;
+ extern int printf (const char *, ...);
+ int main(void)
+ {
+   float e;
+   float f;
+   /* We should be able to transform these into the same expression, and only have two additions.  */
+   e = a + b;
+   e = e + c;
+   f = c + a;
+   f = f + b;
+   printf ("%f %f\n", e, f);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "\\\+" 2 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/reassoc-4.c	Mon Jul 25 20:23:50 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ float a, b, c, d;
+ extern int printf (const char *, ...);
+ int main(void)
+ {
+   float e;
+   float f;
+   /* We should not be able to transform these into the same expression, and only have two additions.  */
+   e = a + b;
+   e = e + c;
+   f = c + a;
+   f = f + b;
+   printf ("%f %f\n", e, f);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "\\\+" 4 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-1.c	Tue May 17 09:55:44 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -funsafe-math-optimizations -fdump-tree-recip" } */
+ 
+ float e(float *x, float *y, float *z)
+ {
+   float m = __builtin_sqrt (*x * *x + *y * *y + *z * *z);
+   *x /= m;
+   *y /= m;
+   *z /= m;
+ }
+ 
+ /* Look for only one division.  */
+ /* { dg-final { scan-tree-dump-times "= .* /" 1 "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-2.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -funsafe-math-optimizations -fdump-tree-recip" } */
+ 
+ float e(float a, float b, float c, float d, float e, float f)
+ {
+   if (a < b)
+     {
+       a = a + b;
+       c = c + d;
+     }
+ 
+   /* The PHI nodes for these divisions should be combined.  */
+   d = d / a;
+   e = e / a;
+   f = f / a;
+   
+   a = a / c;
+   b = b / c;
+ 
+   /* This should not be left as a multiplication.  */
+   c = 1 / c;
+ 
+   return a + b + c + d + e + f;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times " / " 2 "recip" } } */
+ /* { dg-final { scan-tree-dump-times " \\* " 5 "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-3.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fno-trapping-math -funsafe-math-optimizations -fdump-tree-recip" } */
+ 
+ double F[2] = { 0.0, 0.0 }, e;
+ 
+ /* In this case the optimization is interesting.  */
+ float h ()
+ {
+ 	int i;
+ 	double E, W, P, d;
+ 
+ 	W = 1.;
+ 	d = 2.*e;
+ 	E = 1. - d;
+ 
+ 	for( i=0; i < 2; i++ )
+ 		if( d > 0.01 )
+ 		{
+ 			P = ( W < E ) ? (W - E)/d : (E - W)/d;
+ 			F[i] += P;
+ 		}
+ 
+ 	F[0] += E / d;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-4.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,45 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fno-trapping-math -funsafe-math-optimizations -fdump-tree-recip" } */
+ 
+ /* based on the test case in pr23109 */
+ 
+ double F[2] = { 0., 0. }, e = 0.;
+ 
+ /* Nope, we cannot prove the optimization is worthwhile in this case.  */
+ void f ()
+ {
+ 	int i;
+ 	double E, W, P, d;
+ 
+ 	W = 1.;
+ 	d = 2.*e;
+ 	E = 1. - d;
+ 
+ 	if( d > 0.01 )
+ 	{
+ 		P = ( W < E ) ? (W - E)/d : (E - W)/d;
+ 		F[i] += P;
+ 	}
+ }
+ 
+ /* We also cannot prove the optimization is worthwhile in this case.  */
+ float g ()
+ {
+ 	int i;
+ 	double E, W, P, d;
+ 
+ 	W = 1.;
+ 	d = 2.*e;
+ 	E = 1. - d;
+ 
+ 	if( d > 0.01 )
+ 	{
+ 		P = ( W < E ) ? (W - E)/d : (E - W)/d;
+ 		F[i] += P;
+ 	}
+ 
+ 	return 1.0 / d;
+ }
+ 
+ /* { dg-final { scan-tree-dump-not "reciptmp" "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-5.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-options "-O1 -funsafe-math-optimizations -ftrapping-math -fdump-tree-recip -fdump-tree-optimized" } */
+ /* { dg-do compile } */
+ 
+ /* Test the reciprocal optimizations together with trapping math.  */
+ 
+ extern int f2();
+ 
+ double f1(double y, double z, double w, double j, double k)
+ {
+   double b, c, d, e, f, g;
+ 
+   if (f2 ())
+     /* inserts one division here */
+     b = 1 / y, c = z / y, d = j / y;
+   else
+     /* one division here */
+     b = 3 / y, c = w / y, d = k / y;
+ 
+   /* and one here, that should be removed afterwards but is not right now */
+   e = b / y;
+   f = c / y;
+   g = d / y;
+ 
+   return e + f + g;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times " / " 3 "recip" } } */
+ /* { dg-final { scan-tree-dump-times " / " 2 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-6.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-options "-O1 -funsafe-math-optimizations -fno-trapping-math -fdump-tree-recip" } */
+ /* { dg-do compile } */
+ 
+ /* Test inserting in a block that does not contain a division.  */
+ 
+ extern int f2();
+ 
+ double f1(double y, double z, double w)
+ {
+   double b, c, d, e, f;
+ 
+   if (g ())
+     b = 1 / y, c = z / y;
+   else
+     b = 3 / y, c = w / y;
+ 
+   d = b / y;
+   e = c / y;
+   f = 1 / y;
+ 
+   return d + e + f;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/recip-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/recip-7.c	Wed Jan 11 14:29:29 2006
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-options "-O1 -funsafe-math-optimizations -fno-trapping-math -fdump-tree-recip" } */
+ /* { dg-do compile } */
+ 
+ /* Test inserting in a block that does not contain a division.  */
+ 
+ extern double h();
+ 
+ double f(int x, double z, double w)
+ {
+   double b, c, d, e, f;
+   double y = h ();
+ 
+   if (x)
+     b = 1 / y, c = z / y;
+   else
+     b = 3 / y, c = w / y;
+ 
+   d = b / y;
+   e = c / y;
+   f = 1 / y;
+ 
+   return d + e + f;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times " / " 1 "recip" } } */
+ /* { dg-final { cleanup-tree-dump "recip" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/salias-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/salias-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/salias-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/salias-1.c	Wed Jul 27 11:15:32 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-salias" } */
+ 
+ struct {
+   struct {
+     struct {
+ 	int i, j;
+     } c;
+   } b;
+ } a;
+ 
+ int foo(void)
+ {
+   a.b.c.i = 0;
+   return a.b.c.j;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "SFT" 2 "salias" } } */
+ /* { dg-final { cleanup-tree-dump "salias" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/sra-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/sra-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/sra-1.c	Wed Oct 27 21:02:16 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/sra-1.c	Thu Mar 31 18:34:19 2005
*************** copystruct111111 (teststruct param)
*** 70,72 ****
--- 70,73 ----
  
  /* There should be no referenc to link_error. */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/sra-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/sra-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/sra-2.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/sra-2.c	Tue Jul 19 18:46:15 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fdump-tree-optimized" } */
  
  /* Test for SRA. */
  
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fdump-tree-optimized --param sra-max-structure-size=32" } */
  
  /* Test for SRA. */
  
*************** copystruct11 (teststruct *param)
*** 23,25 ****
--- 23,26 ----
  
  /* There should be no reference to link_error. */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/sra-3.c	Tue Jul 19 00:10:16 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fdump-tree-optimized" } */
  
  /* Test for SRA. */
  
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fdump-tree-optimized --param sra-max-structure-size=32" } */
  
  /* Test for SRA. */
  
*************** copystruct1 (void)
*** 25,27 ****
--- 25,28 ----
  
  /* There should be no reference to link_error. */
  /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-1.c	Tue May 10 00:57:28 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fdump-tree-ccp" } */
  
  extern void link_error (void);
  
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-store_ccp" } */
  
  extern void link_error (void);
  
*************** void test11111 (int p, int q, int r)
*** 71,74 ****
  
  /* There should be not link_error calls, if there is any the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "ccp"} } */
--- 71,75 ----
  
  /* There should be not link_error calls, if there is any the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "store_ccp"} } */
! /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-10.c	Thu Mar 31 18:34:19 2005
*************** middle:
*** 31,33 ****
--- 31,34 ----
  
  /* There should be no calls to strlen.  */
  /* { dg-final { scan-tree-dump-times "strlen" 0 "fab"} } */
+ /* { dg-final { cleanup-tree-dump "fab" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-11.c	Thu Sep 29 15:54:28 2005
*************** int test1111 (int param)
*** 38,41 ****
  }
  
  /* All ifs should be eliminated. */
! /* { dg-final { scan-tree-dump-times "if" 0 "optimized" { xfail *-*-* } } } */
--- 38,42 ----
  }
  
  /* All ifs should be eliminated. */
! /* { dg-final { scan-tree-dump-times "if " 0 "optimized" } } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-12.c	Sat Apr  9 01:37:54 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run } */ 
+ /* { dg-options "-O2" } */
+ 
+ struct A
+ {
+   int a;
+   int b;
+ };
+ 
+ struct A a;
+ const int B = 42;
+ 
+ void foo (int i)
+ {
+   if (i > 10)
+     a.a = 42;
+   else
+     {
+       a.b = 21;
+       a.a = a.b + 21;
+     }
+ 
+   /* This should be folded to 'if (0)' as a.a and B are both 42.  */
+   if (a.a != B)
+     link_error ();
+ }
+ 
+ main ()
+ {
+   foo (3);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-2.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-2.c	Wed May 11 02:24:44 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O1 -fdump-tree-ccp" } */
  
  extern void link_error (void);
  
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  
  extern void link_error (void);
  
*************** int test99999 (void)
*** 168,171 ****
  
  /* There should be not link_error calls, if there is any the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "ccp"} } */
--- 168,172 ----
  
  /* There should be not link_error calls, if there is any the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-3.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-3.c	Tue May 10 00:57:28 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-ccp" } */
  
  extern void link_error (void);
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-store_ccp" } */
  
  extern void link_error (void);
  
*************** int* test666 (int * __restrict__ rp1, in
*** 131,134 ****
     optimization has failed */
  /* ??? While we indeed don't handle some of these, a couple of the
     restrict tests are incorrect.  */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "ccp" { xfail *-*-* } } } */
--- 131,135 ----
     optimization has failed */
  /* ??? While we indeed don't handle some of these, a couple of the
     restrict tests are incorrect.  */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "store_ccp" { xfail *-*-* } } } */
! /* { dg-final { cleanup-tree-dump "store_ccp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-7.c	Wed May 11 02:24:44 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-ccp" } */
  
  extern void link_error (void);
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized" } */
  
  extern void link_error (void);
  
*************** int test7 (int a)
*** 23,27 ****
  
  /* There should be not link_error calls, if there is any the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "ccp"} } */
! 
--- 23,27 ----
  
  /* There should be not link_error calls, if there is any the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-9.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-9.c	Wed May 11 02:24:44 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-ccp" } */
  
  /* Check that cprop works for assignments to array elements and structs.  */
  
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-optimized" } */
  
  /* Check that cprop works for assignments to array elements and structs.  */
  
*************** test99999 (int *arr, int j)
*** 51,54 ****
  
  /* There should be no link_error calls, if there is any, the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "ccp"} } */
--- 51,55 ----
  
  /* There should be no link_error calls, if there is any, the
     optimization has failed */
! /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-1.c	Thu Mar 31 18:34:19 2005
*************** q()
*** 10,12 ****
--- 10,13 ----
  }
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dce3"} } */
+ /* { dg-final { cleanup-tree-dump "dce3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-2.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-2.c	Mon Nov 28 18:10:05 2005
***************
*** 1,12 ****
  /* { dg-do compile } */
! /* { dg-options "-O1 -fdump-tree-dce3" } */
  
  /* We should notice constantness of this function. */
! int t(int a) 
  {
  	return a+1;
  }
! q()
  {
    int i = t(1);
    if (!i)
--- 1,12 ----
  /* { dg-do compile } */
! /* { dg-options "-O2 -fdump-tree-dce3" } */
  
  /* We should notice constantness of this function. */
! static int __attribute__((noinline)) t(int a) 
  {
  	return a+1;
  }
! void q(void)
  {
    int i = t(1);
    if (!i)
*************** q()
*** 14,16 ****
--- 14,17 ----
  }
  /* There should be no IF conditionals.  */
  /* { dg-final { scan-tree-dump-times "if " 0 "dce3"} } */
+ /* { dg-final { cleanup-tree-dump "dce3" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-3.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dce-3.c	Thu Mar 31 18:34:19 2005
*************** int main(void)
*** 27,29 ****
--- 27,31 ----
  
  /* And one if (for the exit condition of the loop):  */
  /* { dg-final { scan-tree-dump-times "if " 1 "cddce"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "cddce" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-ccp-1.c	Wed May 11 02:24:44 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-dom1-details" } */
  int t(int a) __attribute__ ((const));
  void abort (void);
  int
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-optimized" } */
  int t(int a) __attribute__ ((const));
  void abort (void);
  int
*************** ccp(int b)
*** 14,17 ****
  	return a;
  }
  /* We should propagate constant 4 into return.  */
! /* { dg-final { scan-tree-dump-times "Replaced.*with constant '4'" 1 "dom1"} } */
--- 14,18 ----
  	return a;
  }
  /* We should propagate constant 4 into return.  */
! /* { dg-final { scan-tree-dump-times "return 4" 1 "optimized"} } */
! /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c	Wed Jul 28 05:13:10 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-cse-1.c	Mon May 16 01:12:07 2005
***************
*** 1,5 ****
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-dom1-details" } */
  int t(int a) __attribute__ ((const));
  void q (void);
  void
--- 1,5 ----
  /* { dg-do compile } */ 
! /* { dg-options "-O2 -fdump-tree-fre-details" } */
  int t(int a) __attribute__ ((const));
  void q (void);
  void
*************** threading(int a,int b)
*** 12,15 ****
  	}
  }
  /* We should thread the jump twice and eliminate it.  */
! /* { dg-final { scan-tree-dump-times "Replaced.* t " 1 "dom1"} } */
--- 12,16 ----
  	}
  }
  /* We should thread the jump twice and eliminate it.  */
! /* { dg-final { scan-tree-dump-times "Replaced.* t " 1 "fre"} } */
! /* { dg-final { cleanup-tree-dump "fre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dom-thread-1.c	Thu Mar 31 18:34:19 2005
*************** threading(int a,int b)
*** 15,17 ****
--- 15,18 ----
  }
  /* We should thread the jump twice and elliminate it.  */
  /* { dg-final { scan-tree-dump-times "Threaded" 2 "dom1"} } */
+ /* { dg-final { cleanup-tree-dump "dom1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-1.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-dse1" } */
+ 
+ int
+ foo (int a, int b, int c)
+ {
+   int *p;
+   if (c)
+     p = &a;
+   else
+     p = &b;
+ 
+   *p = 3;
+   *p = 4;
+   return *p;
+ }
+ 
+ 
+ /* We should eliminate both assignments to *p.  */
+ /* { dg-final { scan-tree-dump-times " = 3" 0 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times " = 4" 0 "dse1"} } */
+ 
+ /* The return *p should be turned into return 4.  */
+ /* { dg-final { scan-tree-dump-times " return 4" 1 "dse1"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dse1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-2.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-dse1" } */
+ 
+ int a, b, c;
+ int
+ foo ()
+ {
+   int *p;
+   if (c)
+     p = &a;
+   else
+     p = &b;
+ 
+   *p = 3;
+   *p = 4;
+   return *p;
+ }
+ 
+ 
+ /* We should eliminate the first assignment to *p, but not the second.  */
+ /* { dg-final { scan-tree-dump-times " = 3" 0 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times " = 4" 1 "dse1"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dse1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-3.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-dse1" } */
+ 
+ char Bool_Glob;
+ void f(void)
+ {
+   Bool_Glob = 0;
+   Bool_Glob = 1;
+ }
+ 
+ /* We should eliminate the first assignment to *p, but not the second.  */
+ /* { dg-final { scan-tree-dump-times "Bool_Glob = 0" 0 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times "Bool_Glob = 1" 1 "dse1"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dse1" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-4.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-dse1" } */
+ 
+ foo( int *a)
+ {
+   *a = 5;
+   *a = 3;
+ }
+ 
+ 
+ 
+ 
+ /* We should eliminate the first assignment to *p, but not the second.  */
+ /* { dg-final { scan-tree-dump-times "= 5" 0 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times "= 3" 1 "dse1"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dse1" } } */
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-5.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ int x; 
+  
+ int 
+ f1 (int i, int j, int k) 
+ { 
+   int *p = k ? &i : &j; 
+   i = 3;
+   *p = 5; 
+   x = j; 
+ } 
+ 
+ /* The assignment "i = 3" is partialy dead.  Our DSE pass doesn't handle
+    detection of partially dead assignments.
+ 
+    There's two outputs which would indicate that the optimization was
+    performed.
+ 
+    If we used block copying to detect and eliminate the partially dead
+    store, then we should see an assignment "i = 5" somewhere in the
+    dump file.
+ 
+    Another approach would be to redirect the path from the true arm
+    of the first conditional so that it reaches the statement *p = 5
+    rather than i = 3.  */
+ 
+ /* { dg-final { scan-tree-dump-times "i = 5" 1 "optimized" { xfail *-*-* }} } */
+ /* { dg-final { scan-tree-dump-times "<L.*>:;\[\n\t \]*\\*p = 5" 1 "optimized" { xfail *-*-*}} } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-6.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-dse1" } */
+ 
+ int foo11 (int c)
+ {
+   static int local1, local2;
+   local1 = 0;
+   local2 += c;
+   local1 = 2;
+   local2++;
+   return local1 + local2;
+ }
+ 
+ /* There should only be one assignment to local1 and local2.  */
+ /* { dg-final { scan-tree-dump-times "local1 = " 1 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times "local2 = " 1 "dse1"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dse1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-7.c	Tue Apr 26 17:15:46 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-dse1" } */
+ 
+ int glob1, glob2;
+ 
+ int foo1 (void)
+ {
+   glob1 = 0;
+   glob2 = 1;
+   glob1 = 2;
+   glob2 = 3;
+   return glob1 + glob2;
+ }
+ 
+ 
+ 
+ /* There should only be one assignment to glob1 and glob2, the final
+    return statement should just return a constant.  */
+ /* { dg-final { scan-tree-dump-times "glob1 = " 1 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times "glob2 = " 1 "dse1"} } */
+ /* { dg-final { scan-tree-dump-times "return 5" 1 "dse1"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "dse1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-dse-8.c	Thu Dec 15 07:15:56 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-dce -fno-tree-ccp -fno-tree-copy-prop -fno-tree-dominator-opts" } */
+ 
+ /* This caused the compiler to enter an infinite loop if copies are not
+    fully propagated.   The options are to disable copy propagation and
+    thus expose the bug.   */
+ 
+ int foo (void);
+ 
+ struct A {
+   struct B {
+     struct B *n;
+   } *p;
+ };
+ 
+ static inline void baz (struct A *a)
+ {
+   a->p = a->p->n;
+ }
+ 
+ void bar (struct A a)
+ {
+   while (foo ())
+     baz (&a);
+   while (foo ());
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-eustores.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-eustores.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-eustores.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-eustores.c	Sun Jul 17 17:13:53 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-eustores-all" } */
+ static int a;
+ int foo()
+ {
+   int alocal;
+   int b;
+   alocal = a;
+   b = alocal;
+   a = b;
+ }
+ /* We should eliminate the store back to a.  */
+ /* { dg-final { scan-tree-dump-times "Eliminating useless store" 1 "eustores"} } */
+ /* { dg-final { cleanup-tree-dump "eustores" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-1.c	Mon Apr  4 19:02:16 2005
*************** int main(int argc, char **argv)
*** 17,20 ****
  }
  /* We should eliminate one evaluation of b + c along the main path, 
     causing one reload. */
! /* { dg-final { scan-tree-dump-times "Eliminated:1" 1 "pre"} } */
--- 17,21 ----
  }
  /* We should eliminate one evaluation of b + c along the main path, 
     causing one reload. */
! /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
! /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-10.c	Mon May 16 01:12:07 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-fre-stats" } */
+ double cos (double);
+ void link_error();
+ void f(double a)
+ {
+   double b = cos (a);
+   double c = cos (a);
+   if (b != c)
+     link_error();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "fre"} } */
+ /* { dg-final { cleanup-tree-dump "fre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-11.c	Mon May 16 01:12:07 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-pre-stats" } */
+ double cos (double);
+ double f(double a)
+ {
+   double b;
+   double c,d;
+  if (a < 2.0)
+    {
+      c = cos (a);
+    }
+  else
+    {
+      c = 1.0; 
+    }
+  d = cos (a);
+  return d + c;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
+ /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-12.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-12.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-12.c	Mon May 16 01:12:07 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-pre-stats" } */
+ double cos (double) __attribute__ ((const));
+ double sin (double) __attribute__ ((const));
+ double f(double a)
+ {
+   double b;
+   double c,d;
+   double (*fp) (double) __attribute__ ((const));
+   /* Fully redundant call, but we need a phi node to merge the results.  */
+   if (a < 2.0)
+     {
+       fp = sin;
+       c = fp (a);
+     }
+   else
+     {
+       c = 1.0; 
+       fp = cos;
+       c = fp (a);
+     }
+   d = fp (a);
+   return d + c;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
+ /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-13.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-13.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-13.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-13.c	Mon May 16 01:12:07 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-pre-stats" } */
+ double cos (double) __attribute__ ((const));
+ double sin (double) __attribute__ ((const));
+ double f(double a)
+ {
+   double b;
+   double c,d;
+   double (*fp) (double) __attribute__ ((const));
+   /* Partially redundant call */
+   if (a < 2.0)
+     {
+       fp = sin;
+       c = fp (a);
+     }
+   else
+     {
+       c = 1.0; 
+       fp = cos;
+     }
+   d = fp (a);
+   return d + c;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
+ /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-14.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-14.c	Thu May 26 07:27:21 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ extern __SIZE_TYPE__ strlen (const char *) __attribute__ ((__pure__));
+ 
+ void
+ foo (const char *str)
+ {
+   __SIZE_TYPE__ a = strlen (str);
+   __SIZE_TYPE__ b = strlen (str);
+   if (a != b)
+     link_error ();
+ }
+ /* { dg-final { scan-tree-dump-times "link_error" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c	Sat Jun 12 00:18:35 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-2.c	Mon Apr  4 19:02:16 2005
*************** int motion_test1(int data, int data_0, i
*** 17,20 ****
  }
  /* We should eliminate one computation of data_0 + data_3 along the 
     main path, causing one reload. */
! /* { dg-final { scan-tree-dump-times "Eliminated:1" 1 "pre"} } */
--- 17,21 ----
  }
  /* We should eliminate one computation of data_0 + data_3 along the 
     main path, causing one reload. */
! /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
! /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-3.c	Mon Jan 17 00:45:51 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-3.c	Mon Apr  4 19:02:16 2005
*************** unsigned foo1 (unsigned a, unsigned b)
*** 11,14 ****
    return j + k;
  }
  /* We should eliminate both 4*b and 4*a from the main body of the loop */
! /* { dg-final { scan-tree-dump-times "Eliminated:2" 1 "pre"} } */
--- 11,15 ----
    return j + k;
  }
  /* We should eliminate both 4*b and 4*a from the main body of the loop */
! /* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "pre"} } */
! /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c	Sun Jan 30 19:08:37 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-4.c	Mon Apr  4 19:02:16 2005
*************** int main(void)
*** 11,14 ****
  }
  /* We should eliminate the x+1 computation from this routine, replacing
     it with a phi of 3, 4 */
! /* { dg-final { scan-tree-dump-times "Eliminated:1" 1 "pre"} } */
--- 11,15 ----
  }
  /* We should eliminate the x+1 computation from this routine, replacing
     it with a phi of 3, 4 */
! /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
! /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c	Sun Jan 30 19:08:37 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-5.c	Mon Apr  4 19:02:16 2005
*************** foo (int i)
*** 12,15 ****
  }
  /* We should detect that a+b is the same along both edges, and replace it with
     5  */
! /* { dg-final { scan-tree-dump-times "Constified:1" 1 "pre"} } */
--- 12,16 ----
  }
  /* We should detect that a+b is the same along both edges, and replace it with
     5  */
! /* { dg-final { scan-tree-dump-times "Constified: 1" 1 "pre"} } */
! /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c	Sun Jan 30 19:08:37 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-6.c	Mon Apr  4 19:02:16 2005
*************** int main(int x)
*** 10,13 ****
  }
  /* We should eliminate one evaluation of x + 1 along the x = 2 path,
     causing one elimination.  */
! /* { dg-final { scan-tree-dump-times "Eliminated:1" 1 "pre"} } */
--- 10,14 ----
  }
  /* We should eliminate one evaluation of x + 1 along the x = 2 path,
     causing one elimination.  */
! /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */
! /* { dg-final { cleanup-tree-dump "pre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-7.c	Wed May 11 02:24:44 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-fre-stats" } */
+ int
+ foo (int *array)
+ {
+     if (array[1] != 0)
+           return array[1];
+       return 0;
+ }
+ /* We should eliminate one address calculation, and one load.  */
+ /* { dg-final { scan-tree-dump-times "Eliminated: 2" 1 "fre"} } */
+ /* { dg-final { cleanup-tree-dump "fre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-8.c	Wed May 11 02:24:44 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-fre-stats" } */
+ struct s {
+       int *n;
+ };
+ 
+ int
+ foo (__SIZE_TYPE__ i, struct s *array)
+ {
+   int *p = array[i].n;
+   if (p)
+     {
+       int *q = array[i].n;
+       if (p != q)
+ 	return 1;
+     }
+   return 0;
+ }
+ /* We should eliminate two address calculations, one cast, and one load.  */
+ /* { dg-final { scan-tree-dump-times "Eliminated: 4" 1 "fre"} } */
+ /* { dg-final { cleanup-tree-dump "fre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-pre-9.c	Mon May 16 01:12:07 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fno-tree-dominator-opts -fdump-tree-fre-stats" } */
+ int
+ foo (unsigned long a)
+ {
+   int b = __builtin_clzl (a);
+   int c = __builtin_clzl (a);
+   if (b == c)
+     return 1;
+   return 0;
+ }
+ /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "fre"} } */
+ /* { dg-final { cleanup-tree-dump "fre" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-1.c	Thu Mar 31 18:34:19 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-sink-stats" } */
+ int
+ foo (int a, int b, int c)
+ {
+   int x = a * b;
+   return c ? x : a;
+ }
+ /* We should sink the x = a * b calculation into the branch that returns x. */
+ /* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */
+ /* { dg-final { cleanup-tree-dump "sink" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-2.c	Thu Mar 31 18:34:19 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-sink-stats" } */
+ int
+ bar (int a, int b, int c)
+ {
+   int y = a * b;
+   if (c)
+     y = 12;
+   return y;
+ }
+ /* We should sink the x = a * b calculation into the else branch  */
+ /* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */
+ /* { dg-final { cleanup-tree-dump "sink" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-3.c	Thu Mar 31 18:34:19 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-sink-stats" } */
+ extern void foo(int a);
+ int
+ main (int argc)
+ {
+   int a;
+   a = argc + 1;
+   if (argc + 3)
+     {
+       foo (a);
+     }
+ }
+ /* We should sink the a = argc + 1 calculation into the if branch  */
+ /* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */
+ /* { dg-final { cleanup-tree-dump "sink" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/ssa-sink-4.c	Thu Mar 31 18:34:19 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */ 
+ /* { dg-options "-O2 -fdump-tree-sink-stats" } */
+ extern int foo (int *, int *);
+ extern int foo2 (int);
+ int
+ main (int argc)
+ {
+   int a, b, c;
+   b = argc + 1;
+   c = argc + 2;
+   a = b + c;
+   if (argc)
+     {
+       foo (&b, &c);
+       a = b + c;
+     }
+   foo2 (a);
+ }
+ /* We should sink the first a = b + c calculation into the else branch  */
+ /* { dg-final { scan-tree-dump-times "Sunk statements:1" 1 "sink" } } */
+ /* { dg-final { cleanup-tree-dump "sink" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-1.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-stdarg" } */
+ 
+ #include <stdarg.h>
+ 
+ /* This can be handled on all arches.  If there is no va_start, registers don't need
+    to be saved.  */
+ void
+ f1 (int i, ...)
+ {
+ }
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" } } */
+ /* { dg-final { cleanup-tree-dump "stdarg" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-2.c	Mon Dec 12 22:37:46 2005
***************
*** 0 ****
--- 1,298 ----
+ /* First dg-final line after each function is for architectures that use
+    a struct {...} va_list[1] with separate GPR and FPR counters in the
+    structure.  Second dg-final line is for architectures that use void *
+    or char * va_list.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-stdarg" } */
+ 
+ #include <stdarg.h>
+ 
+ extern void foo (int, va_list);
+ extern void bar (int);
+ long x;
+ double d;
+ va_list gap;
+ va_list *pap;
+ 
+ void
+ f1 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f2 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   bar (d);
+   x = va_arg (ap, long);
+   bar (x);
+   va_end (ap);
+ }
+ /* Assume the counters can be number of registers or bytes on 32-bit
+    architecture or bytes on 64-bit architecture.  */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 8 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 1 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f3 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   d = va_arg (ap, double);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and 1 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[1-9\]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f4 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   x = va_arg (ap, double);
+   foo (i, ap);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f5 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   va_copy (gap, ap);
+   bar (i);
+   va_end (ap);
+   va_end (gap);
+ }
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f6 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   bar (d);
+   va_arg (ap, long);
+   va_arg (ap, long);
+   x = va_arg (ap, long);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 24 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 3 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f7 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   pap = &ap;
+   bar (6);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f8 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   pap = &ap;
+   bar (d);
+   x = va_arg (ap, long);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f9 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   __asm __volatile ("" : "=r" (pap) : "0" (&ap));
+   bar (6);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f9: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f10 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   __asm __volatile ("" : "=r" (pap) : "0" (&ap));
+   bar (d);
+   x = va_arg (ap, long);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f11 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   bar (d);
+   x = va_arg (ap, long);
+   x += va_arg (ap, long);
+   x += va_arg (ap, long);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save 24 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save 3 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 0, needs to save (3|12|24) GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f12 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   bar (d);
+   va_arg (ap, double);
+   va_arg (ap, double);
+   x = va_arg (ap, double);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 24 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save 0 GPR units and 3 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f13 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   bar (d);
+   x = va_arg (ap, double);
+   x += va_arg (ap, double);
+   x += va_arg (ap, double);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 24 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save 0 GPR units and 3 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f13: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f14 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   bar (d);
+   x = va_arg (ap, double);
+   x += va_arg (ap, long);
+   x += va_arg (ap, double);
+   bar (x);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save 24 GPR units and 3" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save 1 GPR units and 2 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f14: va_list escapes 0, needs to save \[1-9]\[0-9\]* GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ inline void __attribute__((always_inline))
+ f15_1 (va_list ap)
+ {
+   x = va_arg (ap, double);
+   x += va_arg (ap, long);
+   x += va_arg (ap, double);
+ }
+ 
+ void
+ f15 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   f15_1 (ap);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f15: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f15: va_list escapes 0, needs to save \[148\] GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f15: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f15: va_list escapes 0, needs to save 1 GPR units and 2 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump-not "f15: va_list escapes 0, needs to save 0 GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ /* { dg-final { cleanup-tree-dump "stdarg" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-3.c	Mon Dec 12 22:37:46 2005
***************
*** 0 ****
--- 1,193 ----
+ /* First dg-final line after each function is for architectures that use
+    a struct {...} va_list[1] with separate GPR and FPR counters in the
+    structure.  Second dg-final line is for architectures that use void *
+    or char * va_list.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-stdarg" } */
+ 
+ #include <stdarg.h>
+ 
+ extern void foo (int, va_list);
+ extern void bar (int);
+ long x;
+ va_list gap;
+ 
+ /* If va_list is not local variable, it escapes the function.  */
+ void
+ f1 (int i, ...)
+ {
+   va_start (gap, i);
+   x = va_arg (gap, long);
+   va_end (gap);
+ }
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f2 (int i, ...)
+ {
+   va_start (gap, i);
+   bar (i);
+   va_end (gap);
+ }
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ /* tree-stdarg.c only handles va_list variables, not arrays of them or
+    va_list fields embedded in structures.  */
+ void
+ f3 (int i, ...)
+ {
+   va_list aps[10];
+   va_start (aps[4], i);
+   x = va_arg (aps[4], long);
+   va_end (aps[4]);
+ }
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f4 (int i, ...)
+ {
+   va_list aps[10];
+   va_start (aps[4], i);
+   bar (i);
+   va_end (aps[4]);
+ }
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f5 (int i, ...)
+ {
+   va_list aps[10];
+   va_start (aps[4], i);
+   foo (i, aps[4]);
+   va_end (aps[4]);
+ }
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ struct A { int i; va_list g; va_list h[2]; };
+ 
+ void
+ f6 (int i, ...)
+ {
+   struct A a;
+   va_start (a.g, i);
+   x = va_arg (a.g, long);
+   va_end (a.g);
+ }
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f7 (int i, ...)
+ {
+   struct A a;
+   va_start (a.g, i);
+   bar (i);
+   va_end (a.g);
+ }
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f8 (int i, ...)
+ {
+   struct A a;
+   va_start (a.g, i);
+   foo (i, a.g);
+   va_end (a.g);
+ }
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f8: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f10 (int i, ...)
+ {
+   struct A a;
+   va_start (a.h[1], i);
+   x = va_arg (a.h[1], long);
+   va_end (a.h[1]);
+ }
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f10: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f11 (int i, ...)
+ {
+   struct A a;
+   va_start (a.h[1], i);
+   bar (i);
+   va_end (a.h[1]);
+ }
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f11: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f12 (int i, ...)
+ {
+   struct A a;
+   va_start (a.h[1], i);
+   foo (i, a.h[1]);
+   va_end (a.h[1]);
+ }
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f12: va_list escapes 1, needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ /* { dg-final { cleanup-tree-dump "stdarg" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-4.c	Mon Dec 12 22:37:46 2005
***************
*** 0 ****
--- 1,94 ----
+ /* First dg-final line after each function is for architectures that use
+    a struct {...} va_list[1] with separate GPR and FPR counters in the
+    structure.  Second dg-final line is for architectures that use void *
+    or char * va_list.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-stdarg" } */
+ 
+ #include <stdarg.h>
+ 
+ extern void foo (int, va_list);
+ extern void bar (int);
+ long x;
+ double d;
+ 
+ /* Here va_arg can be executed more than once for one va_start.  All GPR
+    registers needs to be saved.  */
+ void
+ f1 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   while (i-- > 0)
+     x = va_arg (ap, long);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f2 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   while (i-- > 0)
+     d = va_arg (ap, double);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save 0 GPR units and all FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes \[01\], needs to save all GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ /* Here va_arg can be executed at most as many times as va_start.
+    Only one GPR needs to be saved.  */
+ void
+ f3 (int i, ...)
+ {
+   va_list ap;
+   int j = i;
+   while (j-- > 0)
+     {
+       va_start (ap, i);
+       x = va_arg (ap, long);
+       va_end (ap);
+       bar (x);
+     }
+ }
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units and 0 FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 8 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 1 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ 
+ void
+ f4 (int i, ...)
+ {
+   va_list ap;
+   int j = i;
+   while (j-- > 0)
+     {
+       va_start (ap, i);
+       d = va_arg (ap, double);
+       va_end (ap);
+       bar (d + 2.5);
+     }
+ }
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and \[1-9\]\[0-9\]* FPR units" "stdarg" { target { powerpc*-*-linux* && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 8 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 0 GPR units and 1 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target ia64-*-* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save \[148\] GPR units" "stdarg" { target { powerpc*-*-* && lp64 } } } } */
+ /* { dg-final { cleanup-tree-dump "stdarg" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/stdarg-5.c	Mon Dec 12 22:37:46 2005
***************
*** 0 ****
--- 1,119 ----
+ /* This test has architecture specific function passing details.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-stdarg" } */
+ 
+ #include <stdarg.h>
+ 
+ extern void foo (int, va_list);
+ extern void bar (int);
+ struct S1 { int i; double d; int j; double e; } s1;
+ struct S2 { double d; long i; } s2;
+ int y;
+ _Complex int ci;
+ _Complex double cd;
+ 
+ /* Here va_arg can be executed more than once for one va_start.  */
+ void
+ f1 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   while (i-- > 0)
+     s1 = va_arg (ap, struct S1);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f1: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ 
+ void
+ f2 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   while (i-- > 0)
+     s2 = va_arg (ap, struct S2);
+   va_end (ap);
+ }
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and all FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f2: va_list escapes 0, needs to save all GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ 
+ /* Here va_arg can be executed at most as many times as va_start.  */
+ void
+ f3 (int i, ...)
+ {
+   va_list ap;
+   int j = i;
+   while (j-- > 0)
+     {
+       va_start (ap, i);
+       s1 = va_arg (ap, struct S1);
+       va_end (ap);
+       bar (s1.i);
+     }
+ }
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 0 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 32 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f3: va_list escapes 0, needs to save 1 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ 
+ void
+ f4 (int i, ...)
+ {
+   va_list ap;
+   int j = i;
+   while (j-- > 0)
+     {
+       va_start (ap, i);
+       s2 = va_arg (ap, struct S2);
+       y = va_arg (ap, int);
+       va_end (ap);
+       bar (s2.i);
+     }
+ }
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 16 GPR units and 16 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 24 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f4: va_list escapes 0, needs to save 2 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ 
+ void
+ f5 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   ci = va_arg (ap, _Complex int);
+   ci += va_arg (ap, _Complex int);
+   va_end (ap);
+   bar (__real__ ci + __imag__ ci);
+ }
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 16 GPR units and 0 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save 32 GPR units and 1" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f5: va_list escapes 0, needs to save (4|2) GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ 
+ void
+ f6 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   ci = va_arg (ap, _Complex int);
+   cd = va_arg (ap, _Complex double);
+   va_end (ap);
+   bar (__real__ ci + __imag__ cd);
+ }
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 8 GPR units and 32 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save 32 GPR units and 3" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f6: va_list escapes 0, needs to save (3|2) GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ 
+ void
+ f7 (int i, ...)
+ {
+   va_list ap;
+   va_start (ap, i);
+   cd = va_arg (ap, _Complex double);
+   cd += va_arg (ap, _Complex double);
+   va_end (ap);
+   bar (__real__ cd + __imag__ cd);
+ }
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 0 GPR units and 64 FPR units" "stdarg" { target { { i?86-*-* x86_64-*-* } && lp64 } } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 32 GPR units and 2" "stdarg" { target alpha*-*-linux* } } } */
+ /* { dg-final { scan-tree-dump "f7: va_list escapes 0, needs to save 2 GPR units and 0 FPR units" "stdarg" { target s390*-*-linux* } } } */
+ /* { dg-final { cleanup-tree-dump "stdarg" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/structopt-1.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-lim-details" } */
+ int x; int y;
+ struct { int x; int y; } global;
+ int foo() {
+ 	int i;
+ 	for ( i=0; i<10; i++)
+ 		y += x*x;
+ 	for ( i=0; i<10; i++)
+ 		global.y += global.x*global.x;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Executing store motion of global.y" 1 "lim" } } */
+ /* XXX: We should also check for the load motion of global.x, but there is no easy way to do this.  */
+ /* { dg-final { cleanup-tree-dump "lim" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/structopt-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/structopt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/structopt-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/structopt-2.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,46 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized -fno-tree-sra" } */
+ 
+ /* Even without SRA being enabled, we should be able to eliminate every structure store and load here. */
+ extern void foo (const int);
+ int main(void)
+ {
+ 	struct a
+ 	{
+ 		int e;
+ 		int f;
+ 		int g;
+ 	}  a;
+ 	struct a b;
+ 	int x, c;
+ 	a.e = 50;
+ 	a.f = 9;
+ 	a.g = a.e * a.f;
+ 	foo (a.f);
+ 	foo (a.g);
+ 	x = a.f;
+ 	c = a.e;
+ 	foo (x);
+ 	foo (c);
+ 	a.e = 5;
+ 	a.f = 40;
+ 	a.g = 90;
+ 	foo (a.e);
+ 	foo (a.f);
+ 	foo (a.g);
+ 	c = a.f;
+ 	foo (c);
+ 	b.e = 9;
+ 	a.e = b.e + 1 * c;
+ 	a.f = 30;
+ 	foo (a.e);
+ 	foo (a.f);
+ 	x = a.e * a.f;
+ 	foo (x);
+ 
+ }
+ /* { dg-final { scan-tree-dump-times "a.e" 0 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "a.f" 0 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "a.g" 0 "optimized" } } */
+ /* { dg-final { scan-tree-dump-times "b.e" 0 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/structopt-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/structopt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/structopt-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/structopt-3.c	Thu Apr 28 16:38:13 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ struct foo
+ {
+ 	int a;
+ 	int b;
+ } temp;
+ /* We should be able to optimize this to return 11. */
+ int main(void)
+ {
+ 	temp.a = 5;
+ 	temp.b = 6;
+ 	return temp.a + temp.b;
+ }
+ /* { dg-final { scan-tree-dump-times "return 11" 1 "optimized" } } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailcall-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailcall-1.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-1.c	Thu Mar 31 18:34:19 2005
*************** t(int a)
*** 17,19 ****
--- 17,20 ----
  	return r;
  }
  /* { dg-final { scan-tree-dump-times "Found tail call" 1 "tailc"} } */
+ /* { dg-final { cleanup-tree-dump "tailc" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailcall-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailcall-2.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailcall-2.c	Thu Mar 31 18:34:19 2005
*************** foo (int *x)
*** 21,23 ****
--- 21,24 ----
     variables, they ought to be ignored.  There should be two tail
     calls here.  */
  /* { dg-final { scan-tree-dump-times "Found tail call" 2 "tailc"} } */
+ /* { dg-final { cleanup-tree-dump "tailc" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-1.c	Thu Mar 31 18:34:19 2005
*************** t(int a)
*** 9,11 ****
--- 9,12 ----
  		return 0;
  }
  /* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr"} } */
+ /* { dg-final { cleanup-tree-dump "tailr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-2.c	Thu Mar 31 18:34:19 2005
*************** t(char *a)
*** 10,12 ****
--- 10,13 ----
  		return 0;
  }
  /* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr"} } */
+ /* { dg-final { cleanup-tree-dump "tailr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-3.c	Thu Mar 31 18:34:19 2005
*************** t(int a)
*** 13,15 ****
--- 13,16 ----
  	return r;
  }
  /* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 1 "tailr"} } */
+ /* { dg-final { cleanup-tree-dump "tailr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-4.c	Thu Mar 31 18:34:19 2005
*************** t(int a)
*** 15,17 ****
--- 15,18 ----
  	return r;
  }
  /* { dg-final { scan-tree-dump-times "Eliminated tail recursion" 2 "tailr"} } */
+ /* { dg-final { cleanup-tree-dump "tailr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c	Tue Aug  3 08:22:25 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tailrecursion-5.c	Thu Mar 31 18:34:19 2005
*************** int main(void)
*** 73,75 ****
--- 73,77 ----
  
  /* There is one recursive call to fib.  */
  /* { dg-final { scan-tree-dump-times "\\mfib\\M" 5 "optimized"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/tree-ssa.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/upcast-1.c	Tue Jul 26 07:34:58 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { do-go compile } */
+ /* { dg-options "-fdump-tree-gimple" } */
+ 
+ typedef struct { int i; } Foo;
+ Foo foo;
+ Foo *bar(void)
+ {
+   return (Foo *)&foo.i;
+ }
+ 
+ /* { dg-final { scan-tree-dump "&foo;" "gimple" } } */
+ /* { dg-final { cleanup-tree-dump "gimple" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/update-cunroll.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/update-cunroll.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/update-cunroll.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/update-cunroll.c	Thu Aug  4 17:53:51 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ int a[8];
+ int t()
+ {
+ 	int i;
+ 	for (i = 0; i < 3; i++)
+ 		if (a[i])
+ 			break;
+ 	return i;
+ }
+ /* { dg-final { scan-tree-dump-times "Invalid sum" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/update-threading.c	Tue Aug  2 19:14:45 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-optimized" } */
+ 
+ typedef struct { unsigned short a; } A;
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ void foo (unsigned int x)
+ {
+   if (x != 0x800 && x != 0x810)
+     abort ();
+ }
+ 
+ int
+ main (int argc, char **argv)
+ {
+   int i;
+   for (i = 0; i < 2; ++i)
+     foo (((A) { ((!(i >> 4) ? 8 : 64 + (i >> 4)) << 8) + (i << 4) } ).a);
+   exit (0);
+ }
+ /* { dg-final { scan-tree-dump-times "Invalid sum" 0 "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/useless-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/useless-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/useless-1.c	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/useless-1.c	Thu Mar 31 18:34:19 2005
*************** foo (void)
*** 14,16 ****
--- 14,17 ----
     GIMPLE lowering, at the cost of an extra statement, label,
     and basic block.  */
  /* { dg-final { scan-tree-dump-times "goto" 3 "useless"} } */ 
+ /* { dg-final { cleanup-tree-dump "useless" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp01.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp01.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp01.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp01.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ foo (int *p, int i)
+ {
+   int x;
+ 
+   if (i > 10)
+     {
+       if (p)
+ 	{
+ 	  x = *p;
+ 	  p = 0;
+ 	}
+     }
+   else
+     p = 0;
+ 
+   /* This should be folded to if (1), but only if we insert an
+      assertion on the ELSE edge from the inner 'if (p)'.  */
+   if (p == 0)
+     return x + 1;
+ 
+   return i;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp02.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ struct A
+ {
+   int a;
+   int b;
+ };
+ 
+ foo (struct A *p, struct A *q)
+ {
+   int x = p->a;
+   if (p == q)
+     return q->a;
+ 
+   /* We should fold this to 'if (1)' but the assertion for 'p == q'
+      was overwriting the assertion 'p != 0' from the first dereference
+      of 'p'.  */
+   if (p)
+     return x + p->b;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp03.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ struct A
+ {
+   int a;
+   int b;
+ };
+ 
+ foo (struct A *p, struct A *q)
+ {
+   int *r = 0;
+ 
+   if (p)
+     {
+       if (p == q)
+ 	{
+ 	  /* This should be folded to 'if (1)' because q is [p, p]
+ 	     and p is ~[0, 0].  */
+ 	  if (q)
+ 	    r = &q->a;
+ 
+ 	  /* This should be folded to 'if (1)' because q should be
+ 	     ~[0, 0] and thus &q->a should be ~[0, 0].  */
+ 	  if (r)
+ 	    return 5;
+ 	}
+     }
+ 
+   return q->a;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate q_.*to 1" 1 "vrp" } } */
+ /* { dg-final { scan-tree-dump-times "Folding predicate r_.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp04.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp04.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp04.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp04.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ foo (int a, int b)
+ {
+   if (a == b)
+     /* This should be folded to if (1)  */
+     if (a == b)
+       return a + b;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate a_.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp05.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ foo (int k, int j)
+ {
+   if (k >= 10)
+     {
+       if (j > k)
+ 	{
+ 	  /* We should fold this to if (1).  */
+ 	  if (j > 0)
+ 	    return j;
+ 	}
+     }
+ 
+   return j;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate j_.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp06.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ foo (int i, int j, int a)
+ {
+   if (i >= 10)
+     if (i <= 30)
+       if (i == j)
+ 	{
+ 	  a--;
+ 
+ 	  /* This should fold to 'if (0)'.  */
+ 	  if (i < 0)
+ 	    i = baz ();
+ 
+ 	  /* This should fold to 'if (1)'.  */
+ 	  if (j > 0)
+ 	    a--;
+ 
+ 	  /* This should fold to 'if (0)'.  */
+ 	  if (i != j)
+ 	    return 0;
+ 	}
+ 
+   return i + a + j;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate i_.*to 0" 1 "vrp" } } */
+ /* { dg-final { scan-tree-dump-times "Folding predicate j_.*to 1" 1 "vrp" } } */
+ /* { dg-final { scan-tree-dump-times "Folding predicate i_.*to 0" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp07.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp-details" } */
+ 
+ foo (int i, int *p)
+ {
+   int j;
+ 
+   if (i > 10)
+     {
+       if (p)
+ 	{
+ 	  j = *p;
+ 	  /* This should be folded to if (1) because of the parent 'if
+ 	     (p)'.  But the dereference of p above does not need an
+ 	     assertion.  */
+ 	  if (p)
+ 	    return j + 1;
+ 	}
+     }
+   else
+     {
+       j = *p - 3;
+       /* This should be folded to if (0), because p has just been
+ 	 dereferenced.  But we were not inserting enough ASSERT_EXPRs
+ 	 to figure it out.  */
+       if (!p)
+ 	return j - 4;
+     }
+ 
+   return i;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.*to 1" 1 "vrp" } } */
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.*to 0" 1 "vrp" } } */
+ /* { dg-final { scan-tree-dump-times "PREDICATE: p_\[0-9\] ne_expr 0B" 2 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp08.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fno-tree-fre -fdump-tree-vrp-details" } */
+ 
+ /* Compile with -fno-tree-fre -O2 to prevent CSEing *p.  */
+ foo (int a, int *p)
+ {
+   int x = *p + 2;
+   int y = *p - 1;
+   int z = *p + 9;
+ 
+   /* This should be folded to if (1), but only one ASSERT_EXPR should
+      be inserted.  */
+   if (p)
+     a = x + y + z;
+   else
+     a = x - y;
+ 
+   return a;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.*to 1" 1 "vrp" } } */
+ /* { dg-final { scan-tree-dump-times "PREDICATE: p_. ne_expr 0" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp09.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ foo (int *p)
+ {
+   int x = baz ();
+ 
+   if (p == 0)
+     goto L78;
+   else
+     {
+       x = *p;
+       /* This should be folded to if (1).  */
+       if (p)
+ 	x = x + 1;
+ L78:
+       /* This should not be folded to if (1).  */
+       if (p)
+ 	{
+ 	  x = baz (*p);
+ 	  /* This should be folded to if (1).  */
+ 	  if (p)
+ 	    return x + 3;
+ 	}
+ 
+       return x - 3;
+     }
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate p_.. != 0B to 1" 2 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp10.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp10.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void);
+ 
+ foo (int k, int j)
+ {
+   if (k >= 10)
+     {
+       if (j > k)
+ 	{
+ 	  /* We should fold this to if (0).  */
+ 	  if (j < 10)
+ 	    abort ();
+ 	}
+     }
+ 
+   return j;
+ }
+ 
+ main()
+ {
+   foo (10, 3);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp11.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp11.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ foo (int k, int j, int z)
+ {
+   if (k > z)
+     {
+       if (j > k)
+ 	{
+ 	  /* We should fold this to if (1).  */
+ 	  if (j > z)
+ 	    return j;
+ 	}
+     }
+ 
+   return j;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate.*to 1" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp12.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp12.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp12.c	Thu Jun  2 02:57:15 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do link } */
+ /* { dg-options -O2 } */
+ 
+ foo (int i)
+ {
+   int x;
+ 
+   x = i;
+   if (i < -10)
+     {
+       x = __builtin_abs (i);
+       /* VRP was incorrectly folding this to if (1).  */
+       if (x < 0)
+ 	link_error ();
+     }
+ 
+   return x;
+ }
+ 
+ main()
+ {
+   foo (-30);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp13.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp13.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp13.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp13.c	Wed Jun 15 11:33:13 2005
***************
*** 0 ****
--- 1,258 ----
+ /* { dg-do run }  */
+ /* { dg-options -O2 }  */
+ 
+ extern void abort (void);
+ 
+ foo_div (int i, int j)
+ {
+   int k;
+ 
+   /* [-INF, -1] / [1, +INF] should not give [-1, -1].  */
+   if (i <= -1)
+     if (j >= 1)
+       {
+ 	k = i / j;
+ 	if (k == -1)
+ 	  abort ();
+ 
+ 	return k;
+       }
+ 
+   /* [-20, -10] / [2, 10] should give [-10, -1].  */
+   if (i >= -20)
+     if (i <= -10)
+       if (j >= 2)
+ 	if (j <= 10)
+ 	  {
+ 	    k = i / j;
+ 	    if (k < -10)
+ 	      link_error ();
+ 	    if (k > -1)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [-20, -10] / [-10, -2] should give [1, 10].  */
+   if (i >= -20)
+     if (i <= -10)
+       if (j >= -10)
+ 	if (j <= -2)
+ 	  {
+ 	    k = i / j;
+ 	    if (k < 1)
+ 	      link_error ();
+ 	    if (k > 10)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [-20, 10] / [2, 10] should give [-10, 5].  */
+   if (i >= -20)
+     if (i <= 10)
+       if (j >= 2)
+ 	if (j <= 10)
+ 	  {
+ 	    k = i / j;
+ 	    if (k < -10)
+ 	      link_error ();
+ 	    if (k > 5)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [-20, 10] / [-10, -2] should give [-5, 10].  */
+   if (i >= -20)
+     if (i <= 10)
+       if (j >= -10)
+ 	if (j <= -2)
+ 	  {
+ 	    k = i / j;
+ 	    if (k < -5)
+ 	      link_error ();
+ 	    if (k > 10)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [10, 20] / [2, 10] should give [1, 10].  */
+   if (i >= 10)
+     if (i <= 20)
+       if (j >= 2)
+ 	if (j <= 10)
+ 	  {
+ 	    k = i / j;
+ 	    if (k < 1)
+ 	      link_error ();
+ 	    if (k > 10)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [10, 20] / [-10, -2] should give [-10, -1].  */
+   if (i >= 10)
+     if (i <= 20)
+       if (j >= -10)
+ 	if (j <= -2)
+ 	  {
+ 	    k = i / j;
+ 	    if (k > -1)
+ 	      link_error ();
+ 	    if (k < -10)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   abort ();
+ }
+ 
+ 
+ foo_mult (int i, int j)
+ {
+   int k;
+ 
+   /* [-20, -10] * [2, 10] should give [-200, -20].  */
+   if (i >= -20)
+     if (i <= -10)
+       if (j >= 2)
+ 	if (j <= 10)
+ 	  {
+ 	    k = i * j;
+ 	    if (k < -200)
+ 	      link_error ();
+ 	    if (k > -20)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [-20, -10] * [-10, -2] should give [20, 200].  */
+   if (i >= -20)
+     if (i <= -10)
+       if (j >= -10)
+ 	if (j <= -2)
+ 	  {
+ 	    k = i * j;
+ 	    if (k < 20)
+ 	      link_error ();
+ 	    if (k > 200)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [-20, 10] * [2, 10] should give [-200, 100].  */
+   if (i >= -20)
+     if (i <= 10)
+       if (j >= 2)
+ 	if (j <= 10)
+ 	  {
+ 	    k = i * j;
+ 	    if (k < -200)
+ 	      link_error ();
+ 	    if (k > 100)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [-20, 10] * [-10, -2] should give [-100, 200].  */
+   if (i >= -20)
+     if (i <= 10)
+       if (j >= -10)
+ 	if (j <= -2)
+ 	  {
+ 	    k = i * j;
+ 	    if (k < -100)
+ 	      link_error ();
+ 	    if (k > 200)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [10, 20] * [2, 10] should give [20, 200].  */
+   if (i >= 10)
+     if (i <= 20)
+       if (j >= 2)
+ 	if (j <= 10)
+ 	  {
+ 	    k = i * j;
+ 	    if (k < 20)
+ 	      link_error ();
+ 	    if (k > 200)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   /* [10, 20] * [-10, -2] should give [-200, -20].  */
+   if (i >= 10)
+     if (i <= 20)
+       if (j >= -10)
+ 	if (j <= -2)
+ 	  {
+ 	    k = i * j;
+ 	    if (k < -200)
+ 	      link_error ();
+ 	    if (k > -20)
+ 	      link_error ();
+ 
+ 	    return k;
+ 	  }
+ 
+   abort ();
+ }
+ 
+ 
+ main()
+ {
+   if (foo_div (-10, 5) != -2)
+     abort ();
+ 
+   if (foo_div (-16, 4) != -4)
+     abort ();
+ 
+   if (foo_div (-15, -5) != 3)
+     abort ();
+ 
+   if (foo_div (8, 2) != 4)
+     abort ();
+ 
+   if (foo_div (10, -2) != -5)
+     abort ();
+ 
+   if (foo_div (20, 5) != 4)
+     abort ();
+ 
+   if (foo_div (15, -3) != -5)
+     abort ();
+ 
+   if (foo_mult (-10, 5) != -50)
+     abort ();
+ 
+   if (foo_mult (-16, 4) != -64)
+     abort ();
+ 
+   if (foo_mult (-15, -5) != 75)
+     abort ();
+ 
+   if (foo_mult (8, 2) != 16)
+     abort ();
+ 
+   if (foo_mult (10, -2) != -20)
+     abort ();
+ 
+   if (foo_mult (20, 5) != 100)
+     abort ();
+ 
+   if (foo_mult (15, -3) != -45)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp14.c	Fri Jun  3 21:07:11 2005
***************
*** 0 ****
--- 1,46 ----
+ /* { dg-do run } */
+ /* { dg-options "-O2" } */
+ 
+ struct tree_decl
+ {
+   union tree_decl_u1 {
+     int f;
+     long i;
+     struct tree_decl_u1_a {
+       unsigned int align : 24;
+       unsigned int off_align : 8;
+     } a;
+   } u1;
+ };
+ 
+ extern void abort (void);
+ 
+ unsigned int
+ assemble_variable (struct tree_decl decl)
+ {
+   unsigned int align;
+ 
+   align = decl.u1.a.align;
+ 
+   if (align > (1 << ((8 * 4) < 64 ? (8 * 4) - 2 : 62)))
+     align = (1 << ((8 * 4) < 64 ? (8 * 4) - 2 : 62));
+ 
+   /* VRP should not be propagating 0 to the RHS of this assignment.
+      But it was erroneously applying a cast operation between types of
+      different precision.  align is an unsigned int with range [0,
+      0x4000000] but the .align field holds only 24 bits.  So the cast
+      was returning a [0, 0] range.  */
+   decl.u1.a.align = align;
+ 
+   return decl.u1.a.align;
+ }
+ 
+ main ()
+ {
+   struct tree_decl decl;
+   decl.u1.a.align = 13;
+   unsigned int x = assemble_variable (decl);
+   if (x == 0)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp15.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp15.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp15.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp15.c	Tue Jun 21 18:46:33 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ 
+ extern void abort (void) __attribute__ ((__noreturn__));
+ union tree_node;
+ typedef union tree_node *tree;
+ enum tree_code
+ {
+   ERROR_MARK,
+   COND_EXPR = 42,
+ };
+ extern const unsigned char tree_code_length[];
+ struct tree_common
+ {
+   enum tree_code code:8;
+ };
+ union tree_node
+ {
+   struct tree_common common;
+ };
+ void
+ blah (tree t)
+ {
+   if (t->common.code != COND_EXPR)
+     abort ();
+   if (1 >= tree_code_length[t->common.code])
+     abort ();
+ 
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "tree_code_length.42." 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp16.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp16.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp16.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp16.c	Thu Jun 23 22:00:44 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp-details" } */
+ 
+ 
+ extern void abort (void) __attribute__ ((__noreturn__));
+ struct rtx_def;
+ typedef struct rtx_def *rtx;
+ struct rtx_def
+ {
+   int code;
+ };
+ int
+ nonlocal_mentioned_p (rtx x)
+ {
+   if (x->code == 6 || x->code == 7)
+     if (x->code == 7)
+       if (x->code != 7)
+ 	abort ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Folding predicate .*to 0" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp17.c	Thu Jul 28 16:12:03 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ extern void abort (void) __attribute__ ((__noreturn__));
+ union tree_node;
+ typedef union tree_node *tree;
+ extern const unsigned char tree_code_length[];
+ struct tree_common
+ {
+   int code;
+ };
+ struct tree_exp
+ {
+   tree operands[1];
+ };
+ union tree_node
+ {
+   struct tree_common common;
+   struct tree_exp exp;
+ };
+ int
+ gimplify_for_stmt (tree stmt)
+ {
+   if (2 >= tree_code_length[stmt->common.code])
+     abort ();
+   if (3 >= tree_code_length[stmt->common.code])
+     abort ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp18.c	Thu Jul 28 16:12:03 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fdump-tree-vrp" } */
+ 
+ static int blocksize = 4096;
+ 
+ int bar (int);
+ 
+ void foo (void)
+ {
+   int toread;
+   int bytes;
+   static char eof_reached = 0;
+ 
+   toread = blocksize;
+   bytes = 1;
+ 
+   while (toread != 0)
+     {
+       bytes = bar (toread);
+       if (bytes <= 0)
+         {
+           if (bytes < 0)
+             continue;
+           break;
+         }
+       toread -= bytes;
+     }
+ 
+   if (bytes == 0)
+     eof_reached = 1;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "Simplified relational" 1 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp19.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp19.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp19.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp19.c	Fri Jul 29 15:22:07 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fwrapv -O1 -ftree-vrp -fdump-tree-vrp" } */
+ 
+ #include <limits.h>
+ extern void abort ();
+ extern void exit (int);
+ 
+ int f (int a) {
+ 	if (a != INT_MIN) {
+ 		a = a > 0 ? a : -a;
+ 		if (a < 0)
+ 		  return 1;
+ 	}
+ 	return 0;
+ }
+ 
+ int g (int b) {
+ 	if (b != INT_MIN) {
+ 		b = b > 0 ? b : -b;
+ 		if (b >= 0)
+ 		  return 0;
+ 	}
+ 	return 1;
+ }
+ /* { dg-final { scan-tree-dump "Folding predicate a_. < 0 to 0" "vrp" } } */
+ /* { dg-final { scan-tree-dump "Folding predicate b_. >= 0 to 1" "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp20.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp20.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp20.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp20.c	Fri Jul 29 15:22:07 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fwrapv -O1 -ftree-vrp -fdump-tree-vrp" } */
+ 
+ extern void abort ();
+ extern void exit (int);
+ 
+ int f (int a) {
+ 	if (a != 0) {
+ 		a = a > 0 ? a : -a;
+ 		if (a == 0)
+ 		  return 1;
+ 		return 0;
+ 	}
+ 	return 0;
+ }
+ 
+ int g (int b) {
+ 	if (b != 0) {
+ 		b = b > 0 ? b : -b;
+ 		if (b != 0)
+ 		  return 0;
+ 	}
+ 	return 1;
+ }
+ 
+ /* { dg-final { scan-tree-dump "Folding predicate a_. == 0 to 0" "vrp" } } */
+ /* { dg-final { scan-tree-dump "Folding predicate b_. != 0 to 1" "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/vrp21.c	Sat Aug  6 05:35:31 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -ftree-vrp -fdump-tree-vrp" } */
+ 
+ extern void link_error ();
+ 
+ void test01(unsigned int a, unsigned int b)
+ {
+   unsigned int x = 0x80000000;
+   if (a < x)
+     if (b < x)
+       if (a > 5)
+         if (a + b == 0U)
+           link_error ();
+ }
+ 
+ void test02(unsigned int a, unsigned int b)
+ {
+   unsigned int x = 0x80000000;
+   if (a > x)
+     if (b < x)
+       if (a - b == 1U)
+         link_error ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "link_error" 0 "vrp" } } */
+ /* { dg-final { cleanup-tree-dump "vrp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-1.c	Fri Jun 24 15:14:04 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fwhole-program" } */
+ int b[100];
+ void abort (void);
+ 
+ void
+ large_function ()
+ {
+   int i;
+   for (i = 0; i < 99; i++)
+     if (b[i] / (b[i+1] + 1))
+       abort ();
+ }
+ 
+ main ()
+ {
+   large_function ();
+ }
+ 
+ /* Function should be inlined as called once.  */
+ /* { dg-final { scan-tree-dump-not "large_function" "optimized"} } */
+ 
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/tree-ssa/wholeprogram-2.c	Fri Jun 24 15:14:04 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-options "-O2 -fdump-tree-optimized -fwhole-program" } */
+ __attribute__ ((externally_visible))
+ void
+ externally_visible_function ()
+ {
+ }
+ /* { dg-final { scan-tree-dump "externally_visible_function" "optimized"} } */
+ /* { dg-final { cleanup-tree-dump "optimized" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-1.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do run } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ void abort (void);
+ 
+ int main (void)
+ {
+   int \u00C0 = 1;
+   int \u00C1 = 2;
+   int \U000000C2 = 3;
+   int wh\u00ff = 4;
+   int a\u00c4b\u0441\U000003b4e = 5;
+   
+   if (\u00C0 != 1)
+     abort ();
+   if (\u00c1 != 2)
+     abort ();
+   if (\u00C2 != 3)
+     abort ();
+   if (wh\u00ff != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e != 5)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-2.c	Mon Oct 10 16:58:53 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ void abort (void);
+ 
+ static int \u00C0 = 1;
+ static int \u00C1 = 2;
+ static int \U000000C2 = 3;
+ static int wh\u00ff = 4;
+ static int a\u00c4b\u0441\U000003b4e = 5;
+ 
+ int main (void)
+ {
+   
+   if (\u00C0 != 1)
+     abort ();
+   if (\u00c1 != 2)
+     abort ();
+   if (\u00C2 != 3)
+     abort ();
+   if (wh\u00ff != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e != 5)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-3.c	Mon Oct 10 16:58:53 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ void abort (void);
+ 
+ int \u00C0 = 1;
+ int \u00C1 = 2;
+ int \U000000C2 = 3;
+ int wh\u00ff = 4;
+ int a\u00c4b\u0441\U000003b4e = 5;
+ 
+ int main (void)
+ {
+   
+   if (\u00C0 != 1)
+     abort ();
+   if (\u00c1 != 2)
+     abort ();
+   if (\u00C2 != 3)
+     abort ();
+   if (wh\u00ff != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e != 5)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-4.c	Mon Oct 10 16:58:53 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do run } */
+ /* { dg-xfail-if "" { powerpc-ibm-aix* *-*-solaris2.* } { "*" } { "" } } */
+ /* { dg-options "-std=c99 -fextended-identifiers" } */
+ void abort (void);
+ 
+ int \u00C0(void) { return 1; }
+ int \u00C1(void) { return 2; }
+ int \U000000C2(void) { return 3; }
+ int wh\u00ff(void) { return 4; }
+ int a\u00c4b\u0441\U000003b4e(void) { return 5; }
+ 
+ int main (void)
+ {
+   
+   if (\u00C0() != 1)
+     abort ();
+   if (\u00c1() != 2)
+     abort ();
+   if (\u00C2() != 3)
+     abort ();
+   if (wh\u00ff() != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e() != 5)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-5.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do run } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-std=c99 -fdollars-in-identifiers -fextended-identifiers" } */
+ void abort (void);
+ 
+ int a$b(void) { return 1; }
+ 
+ int main (void)
+ {
+   
+   if (a\u0024b() != 1)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/ucnid-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/ucnid-6.c	Tue Sep 20 20:31:37 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do run */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-std=c99 -fextended-identifiers -save-temps" } */
+ void abort (void);
+ 
+ int \u00C0(void) { return 1; }
+ int \u00C1(void) { return 2; }
+ int \U000000C2(void) { return 3; }
+ int wh\u00ff(void) { return 4; }
+ int a\u00c4b\u0441\U000003b4e(void) { return 5; }
+ 
+ int main (void)
+ {
+   
+   if (\u00C0() != 1)
+     abort ();
+   if (\u00c1() != 2)
+     abort ();
+   if (\u00C2() != 3)
+     abort ();
+   if (wh\u00ff() != 4)
+     abort ();
+   if (a\u00c4b\u0441\U000003b4e() != 5)
+     abort ();
+   
+   return 0;
+ }
+ /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-12.c gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-12.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-12.c	Wed Nov 16 23:43:39 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR 23497 */
+ /* { dg-do compile } */
+ /* { dg-options "-O -Wuninitialized" } */
+ 
+ typedef _Complex float C;
+ C foo()
+ {
+   C f;
+   __real__ f = 0;
+   __imag__ f = 0;
+   return f;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-13.c gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-13.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-13.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-13.c	Wed Nov 16 23:43:39 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O -Wuninitialized" } */
+ 
+ typedef _Complex float C;
+ C foo()
+ {
+   C f;
+   __imag__ f = 0;
+   return f;		/* { dg-warning "" "uninit" { xfail *-*-* } } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-14.c gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-14.c	Mon Nov 21 00:55:57 2005
***************
*** 0 ****
--- 1,20 ----
+ /* PR 24931 */
+ /* { dg-do compile } */
+ /* { dg-options "-O -Wuninitialized" } */
+ 
+ struct p {
+         short x, y;
+ };
+ 
+ struct s {
+         int i;
+         struct p p;
+ };
+ 
+ struct s f()
+ {
+         struct s s;
+         s.p = (struct p){};
+         s.i = (s.p.x || s.p.y);
+         return s;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-4.c	Wed Feb  9 00:17:32 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-4.c	Tue May 24 23:41:44 2005
*************** extern struct operation cpp_lex (void);
*** 23,29 ****
  void
  cpp_parse_expr (void)
  {
!   int rprio; /* { dg-bogus "rprio" "uninitialized variable warning PR19833" { xfail { powerpc*-*-* && lp64 } } } */
    struct operation op;
  
    for (;;)
--- 23,29 ----
  void
  cpp_parse_expr (void)
  {
!   int rprio; /* { dg-bogus "rprio" "uninitialized variable warning PR19833" } */
    struct operation op;
  
    for (;;)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-5.c	Fri Dec 17 22:20:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-5.c	Sat Apr 23 00:48:47 2005
*************** extern void foo(void);
*** 9,15 ****
  void
  func1(int cond)
  {
!     int x;  /* { dg-bogus "x" "uninitialized variable warning" { xfail *-*-* } } */
  
      if(cond)
  	x = 1;
--- 9,15 ----
  void
  func1(int cond)
  {
!     int x;  /* { dg-bogus "x" "uninitialized variable warning" } */
  
      if(cond)
  	x = 1;
*************** func1(int cond)
*** 23,29 ****
  void
  func2 (int cond)
  {
!     int x;  /* { dg-bogus "x" "uninitialized variable warning" { xfail *-*-* } } */
      int flag = 0;
  
      if(cond)
--- 23,29 ----
  void
  func2 (int cond)
  {
!     int x;  /* { dg-bogus "x" "uninitialized variable warning" } */
      int flag = 0;
  
      if(cond)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/uninit-9.c	Fri Dec 17 22:20:33 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/uninit-9.c	Tue May 24 23:41:44 2005
*************** func(struct foo *list, int count)
*** 23,29 ****
  {
      int n_clobbers = 0;
      int i;
!     struct foo **clob_list;   /* { dg-bogus "clob_list" "uninitialized variable warning" { xfail *-*-* } } */
  
      if(list[0].type == PARALLEL)
      {
--- 23,29 ----
  {
      int n_clobbers = 0;
      int i;
!     struct foo **clob_list;   /* { dg-bogus "clob_list" "uninitialized variable warning" } */
  
      if(list[0].type == PARALLEL)
      {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/union-cast-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/union-cast-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/union-cast-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/union-cast-1.c	Thu Nov  3 16:15:53 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=gnu89" } */
+ /* A combine of two extensions to C89 are used here.
+    First casts to unions is used.
+    Second subscripting non lvalue arrays, this is in C99. */
+ 
+ union vx {short f[8]; int v;};
+ int vec;
+ 
+ void
+ foo5 (int vec)
+ {
+   ((union vx) vec).f[5] = 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/union-cast-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/union-cast-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/union-cast-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/union-cast-2.c	Thu Nov  3 16:15:53 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c89 -pedantic-errors" } */
+ /* PR 23155
+    We should get two error messages, one about union cast
+    and the other about array access for non lvalues.  */
+ 
+ 
+ union vx {short f[8]; int v;};
+ int vec;
+ 
+ void
+ foo5 (int vec)
+ {
+   ((union vx) vec).f[5] = 1; /* { dg-error "(forbids subscripting)|(forbids casts to union type)" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/union-cast-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/union-cast-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/union-cast-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/union-cast-3.c	Thu Nov  3 16:15:53 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-std=c99 -pedantic-errors" } */
+ /* PR 23155
+    We should get one error messag, one about union cast. */
+ 
+ 
+ union vx {short f[8]; int v;};
+ int vec;
+ 
+ void
+ foo5 (int vec)
+ {
+   ((union vx) vec).f[5] = 1; /* { dg-error "forbids casts to union type" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/unroll-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/unroll-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/unroll-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/unroll-1.c	Sat Dec 10 13:47:29 2005
***************
*** 1,8 ****
  /* PR optimization/8599 */
  /* { dg-do run } */
  /* { dg-options "-O2 -funroll-loops" } */
! /* { dg-options "-mtune=k6 -O2 -funroll-loops" { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void abort (void);
  
--- 1,8 ----
  /* PR optimization/8599 */
  /* { dg-do run } */
  /* { dg-options "-O2 -funroll-loops" } */
! /* { dg-options "-mtune=k6 -O2 -funroll-loops" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
! 
  
  extern void abort (void);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/unsigned-long-compare.c gcc-4.1.0/gcc/testsuite/gcc.dg/unsigned-long-compare.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/unsigned-long-compare.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/unsigned-long-compare.c	Tue Jan 31 21:59:53 2006
***************
*** 0 ****
--- 1,24 ----
+ /* Copyright (C) 2006 Free Software Foundation, Inc. */
+ /* Contributed by Carlos O'Donell on 2006-01-30 */
+ 
+ /* Test a division corner case where the expression simplifies
+    to a comparison, and the optab expansion is wrong. The optab 
+    expansion emits a function whose return is unbiased and needs
+    adjustment. */
+ /* Origin: Carlos O'Donell <carlos@codesourcery.com> */
+ /* { dg-do run { target arm-*-*eabi* } } */
+ /* { dg-options "" } */
+ #include <stdlib.h>
+ 
+ #define BIG_CONSTANT 0xFFFFFFFF80000000ULL
+ 
+ int main (void)
+ {
+   unsigned long long OneULL = 1ULL;
+   unsigned long long result;
+ 
+   result = OneULL / BIG_CONSTANT; 
+   if (result)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/unused-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/unused-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/unused-3.c	Mon May  8 14:55:42 2000
--- gcc-4.1.0/gcc/testsuite/gcc.dg/unused-3.c	Sat Mar 12 15:40:35 2005
***************
*** 1,10 ****
  /* Copyright (C) 2000  Free Software Foundation.  */
  /* { dg-do compile } */
  /* { dg-options "-Wunused" } */
  
  typedef short unused_type __attribute__ ((unused));
  main ()
  {
!   short x;  /* { dg-warning "unused variable" "unused variable warning" } */
    unused_type y;
  }
--- 1,14 ----
  /* Copyright (C) 2000  Free Software Foundation.  */
+ /* Added extra line-breaks to check that diagnostics refer to correct token.
+    --Per Bothner. */
  /* { dg-do compile } */
  /* { dg-options "-Wunused" } */
  
  typedef short unused_type __attribute__ ((unused));
  main ()
  {
!   short
!     x   /* { dg-warning "unused variable" "unused variable warning" } */
!     ;
    unused_type y;
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/varpool-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/varpool-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/varpool-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/varpool-1.c	Wed Mar 30 22:28:02 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler-not "unnecesary_static_initialized_variable" } } */
+ 
+ static int unnecesary_static_initialized_variable;
+ static int *unnecesary_static_initialized_variable2 =
+   &unnecesary_static_initialized_variable;
+ static inline
+ simplify_after_inline (int param1, int *param2)
+ {
+   if (unnecesary_static_initialized_variable != param1)
+     return unnecesary_static_initialized_variable;
+   if (unnecesary_static_initialized_variable2 != param2)
+     return unnecesary_static_initialized_variable;
+ }
+ 
+ main ()
+ {
+   return simplify_after_inline (unnecesary_static_initialized_variable,
+ 				unnecesary_static_initialized_variable2) +
+     simplify_after_inline (unnecesary_static_initialized_variable,
+ 			   unnecesary_static_initialized_variable2);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/Os-vect-95.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/Os-vect-95.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/Os-vect-95.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/Os-vect-95.c	Tue Sep 20 08:12:46 2005
***************
*** 0 ****
--- 1,60 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 256
+ 
+ void bar (float *pd, float *pa, float *pb, float *pc) 
+ {
+   int i;
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (pa[i] != (pb[i] * pc[i]))
+ 	abort ();
+       if (pd[i] != 5.0)
+ 	abort ();
+     }
+ 
+   return;
+ }
+ 
+ 
+ int
+ main1 (int n, float * __restrict__ pd, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
+ {
+   int i;
+ 
+   for (i = 0; i < n; i++)
+     {
+       pa[i] = pb[i] * pc[i];
+       pd[i] = 5.0;
+     }
+ 
+   bar (pd,pa,pb,pc);
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float d[N+1] __attribute__ ((__aligned__(16)));
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+ 
+   check_vect ();
+ 
+   main1 (N,&d[1],a,b,c);
+   main1 (N-2,&d[1],a,b,c);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 2 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-5.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,54 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ /* need -funsafe-math-optimizations to vectorize the summation.
+    also need -ffinite-math-only to create the min/max expr.  */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ int main1 (float x, float max_result)
+ {
+   int i;
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   float diff = 2;
+   float max = x;
+   float min = 10;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (b[i] - c[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != 0)
+     abort ();
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100);
+   main1 (0, 15);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/fast-math-vect-reduc-7.c	Fri Sep 30 06:17:54 2005
***************
*** 0 ****
--- 1,54 ----
+ /* { dg-require-effective-target vect_double } */
+ 
+ /* need -funsafe-math-optimizations to vectorize the summation.
+    also need -ffinite-math-only to create the min/max expr.  */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ int main1 (double x, double max_result)
+ {
+   int i;
+   double b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   double c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   double diff = 2;
+   double max = x;
+   double min = 10;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (b[i] - c[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != 0)
+     abort ();
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100);
+   main1 (0, 15);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/nodump-pr23073.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/nodump-pr23073.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/nodump-pr23073.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/nodump-pr23073.c	Wed Jul 27 15:19:45 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ extern struct {
+   int o[2];
+   int p[2];
+ } d;
+ 
+ void C()
+ {
+   int i;
+ 
+   for( i=0; i<2; ++i )
+     {
+       d.o[i] = 0;
+       d.p[i] = 0;
+     }
+   return;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr16105.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr16105.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr16105.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr16105.c	Tue Sep 20 07:40:41 2005
***************
*** 2,13 ****
  /* { dg-require-effective-target vect_float } */
  
  #define VECTOR_SIZE 512
- typedef float afloat __attribute__ ((__aligned__(16)));
  
! extern void check(const afloat * __restrict__ v);
  
! void square(const afloat * __restrict__ a,
! 	    afloat * __restrict__ out)
  {
      unsigned int i;
      for (i = 0; i < VECTOR_SIZE; i++) {
--- 2,12 ----
  /* { dg-require-effective-target vect_float } */
  
  #define VECTOR_SIZE 512
  
! extern void check(const float * __restrict__ v);
  
! void square(const float * __restrict__ a,
! 	    float * __restrict__ out)
  {
      unsigned int i;
      for (i = 0; i < VECTOR_SIZE; i++) {
*************** void square(const afloat * __restrict__ 
*** 18,21 ****
      check(out);
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */
--- 17,21 ----
      check(out);
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18308.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18308.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18308.c	Tue Jan  4 14:37:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18308.c	Thu Mar 31 18:34:19 2005
*************** void bar(int j)
*** 11,13 ****
--- 11,14 ----
    if (k) foo();
  }
  
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18400.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18400.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18400.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18400.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 34,36 ****
--- 34,37 ----
  } 
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18425.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18425.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18425.c	Tue Nov 23 22:03:30 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18425.c	Thu Mar 31 18:34:19 2005
*************** _M_fill_insert(unsigned int __n)
*** 14,16 ****
--- 14,17 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18536.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18536.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr18536.c	Mon Nov 22 13:55:05 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr18536.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 32,34 ****
--- 32,35 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr20122.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr20122.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr20122.c	Tue Mar  8 11:36:09 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr20122.c	Tue Sep 20 07:40:41 2005
***************
*** 3,15 ****
  #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++)
--- 3,14 ----
  #include <stdarg.h>
  #include "tree-vect.h"
  
! short Kernshort[24] __attribute__ ((__aligned__(16)));
! static void VecBug(short Kernel[8][24]) __attribute__((noinline));
! static void VecBug2(short Kernel[8][24]) __attribute__((noinline));
  
! /* Not vectorizable: Kernel may alias Kernshort - a global array.  */
! static void VecBug(short Kernel[8][24])
  {
    int k,i;
      for (k = 0; k<8; k++)
*************** static void VecBug(ashort Kernel[8][24])
*** 17,27 ****
              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++)
--- 16,41 ----
              Kernshort[i] = Kernel[k][i];
  }
  
+ /* Vectorizable: Kernshort2 is local.  */
+ static void VecBug2(short Kernel[8][24])
+ {
+   int k,i;
+   short Kernshort2[24] __attribute__ ((__aligned__(16)));
+     for (k = 0; k<8; k++)
+         for (i = 0; i<24; i++)
+             Kernshort2[i] = Kernel[k][i];
+ 
+     for (k = 0; k<8; k++)
+         for (i = 0; i<24; i++)
+             if (Kernshort2[i] != Kernel[k][i])
+                 abort ();
+ }
+ 
  int main (int argc, char **argv)
  {
      check_vect ();
  
!     short Kernel[8][24] __attribute__ ((__aligned__(16)));
      int k,i;
  
      for (k = 0; k<8; k++)
*************** int main (int argc, char **argv)
*** 29,38 ****
              Kernel[k][i] = 0;
  
      VecBug(Kernel);
  
      return 0;
  }
  
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
! 
--- 43,53 ----
              Kernel[k][i] = 0;
  
      VecBug(Kernel);
+     VecBug2(Kernel);
  
      return 0;
  }
  
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_align} } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr21969.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr21969.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr21969.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr21969.c	Wed Jun 29 15:38:34 2005
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_float } */
+ 
+ typedef float vsf __attribute__((vector_size(2048)));
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr22480.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr22480.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr22480.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr22480.c	Mon Oct  3 05:24:08 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_shift } */
+ 
+ void
+ test_1 (void)
+ {
+   static unsigned int bm[16];
+   int j;
+   for (j = 0; j < 16; j++)
+     bm[j] <<= 8;
+ }
+ 
+ void
+ test_2 (int a)
+ {
+   static unsigned int bm[16];
+   int j;
+   for (j = 0; j < 16; j++)
+     bm[j] <<= a;
+ }
+ 
+ void
+ test_3 (void)
+ {
+  static unsigned bm[16];
+  int am[16];
+  int j;
+  for (j = 0; j < 16;j++)
+    bm[j] <<= am[j];
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr22506.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr22506.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr22506.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr22506.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ float x[3];
+ 
+ void foo()
+ {
+     int i;
+ 
+     for (i=0; i<5; ++i) x[i]=0;
+     for (i=0; i<4; ++i) ;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr23816-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr23816-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr23816-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr23816-1.c	Fri Sep 30 06:17:54 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_condition } */
+ 
+ void
+ foo (float a[32], float b[2][32])
+ {
+   int i;
+   for (i = 0; i < 32; i++)
+     a[i] = (b[0][i] > b[1][i]) ? b[0][i] : b[1][i];
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr23816-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr23816-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr23816-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr23816-2.c	Fri Sep 30 06:17:54 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_condition } */
+ 
+ void
+ foo (double a[32], double b[2][32])
+ {
+   int i;
+   for (i = 0; i < 32; i++)
+     a[i] = (b[0][i] > b[1][i]) ? b[0][i] : b[1][i];
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr23831.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr23831.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr23831.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr23831.c	Fri Sep 30 06:17:54 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ void foo (void)
+ {
+   static unsigned int bm[16];
+   int j;
+   for (j = 0; j < 16; j++)
+     bm[j] = bm[j] * 8;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr24049.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr24049.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr24049.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr24049.c	Thu Oct  6 08:41:47 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -ftree-vectorize --param ggc-min-heapsize=0 --param ggc-min-expand=0" } */
+ 
+ int DES_CBCUpdate(unsigned char * output, int len)
+ {
+   int work[2];
+   unsigned int i;
+   for(i = 0;i < len/8;i++)
+     unscrunch (&output[8*i], work);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr24059.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr24059.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr24059.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr24059.c	Fri Sep 30 05:30:18 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_condition } */
+ 
+ struct pred_data
+ {
+   unsigned char codes[((int) 100)];
+ };
+ 
+ void compute_predicate_codes (char *codes, struct pred_data *p)
+ {
+   int i;
+   for (i = 0; i < ((int) 100); i++)
+     codes[i] = p->codes[i] ? 2 : 0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr24300.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr24300.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/pr24300.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/pr24300.c	Mon Nov  7 14:37:45 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile } */
+ 
+ static int *** foo (int);
+ 
+ void
+ bar ()
+ {
+   int ***p = foo (2);
+ }
+ 
+ extern int *nd;
+ extern int ***tc;
+ extern int *ap;
+ extern int *as;
+ extern float ss;
+ 
+ static int ***
+ foo (int Fc)
+ {
+   int i, j, s, p, n, t;
+ 
+   n = 0;
+   for (s = 0; s < 4; s++)
+     n += nd[s];
+ 
+   for (i = 0; i < n; i++)
+     {
+       p = ap[i];
+       s = as[i];
+       for (j = 0; j < Fc; j++)
+ 	tc[p][s][j] = i * ss + j;
+     }
+ 
+   return (tc);
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/trapv-vect-reduc-4.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-require-effective-target vect_int } */
+ /* { dg-do compile } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ int main1 (int x, int max_result)
+ {
+   int i;
+   int b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   int diff = 2;
+   int max = x;
+   int min = 10;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (b[i] - c[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != 0)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100);
+   main1 (0, 15);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-1.c	Sun Jan  9 17:30:21 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-1.c	Thu Mar 31 18:34:19 2005
*************** foo (int n)
*** 100,102 ****
--- 100,103 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-10.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-10.c	Thu Mar 31 18:34:19 2005
*************** int foo ()
*** 24,26 ****
--- 24,27 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-100.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-100.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-100.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-100.c	Tue Sep  6 10:59:58 2005
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 9
+ 
+ struct extraction
+ {
+   int a[N];
+   int b[N];
+ };
+ 
+ static int a[N] = {1,2,3,4,5,6,7,8,9};
+ static int b[N] = {2,3,4,5,6,7,8,9,0};
+ 
+ int main1 () {
+   int i;
+   struct extraction *p;
+   
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   /* Vectorizable: alias analysis determines that p can't point to a and/or b.  */
+   for (i = 0; i < N; i++)
+     {
+       p->a[i] = a[i];
+       p->b[i] = b[i];
+     }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+     {
+        if (p->a[i] != a[i] || p->b[i] != b[i])
+          abort();
+     }
+ 
+   return 0;
+ }
+ 
+ int main2 () {
+   int i;
+   int c[N] = {1,2,3,4,5,6,7,8,9};
+   int d[N] = {2,3,4,5,6,7,8,9,0};
+   struct extraction *p;
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   /* Vectorizable: c and d are local arrays.  */
+   for (i = 0; i < N; i++)
+     {
+       p->a[i] = c[i];
+       p->b[i] = d[i];
+     }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+     {
+        if (p->a[i] != c[i] || p->b[i] != d[i])
+          abort();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+ 
+   main1 ();
+   main2 ();
+   
+   return 0;	
+ }
+ 
+ /* Requires versioning.  */
+ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-101.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-101.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-101.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-101.c	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 9
+ 
+ struct extraction
+ {
+   int a[N];
+   int b[N];
+ };
+ 
+ static int a[N] = {1,2,3,4,5,6,7,8,9};
+ static int b[N] = {2,3,4,5,6,7,8,9,0};
+ 
+ int main1 (int x, int y) {
+   int i;
+   struct extraction *p;
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   /* Not vectorizable: different unknown offset.  */
+   for (i = 0; i < N; i++)
+     {
+       *((int *)p + x + i) = a[i];
+       *((int *)p + y + i) = b[i];
+     }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+     {
+        if (p->a[i] != a[i] || p->b[i] != b[i])
+          abort();
+     }
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+ 
+   return main1 (0, N);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "can't determine dependence" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-102.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-102.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-102.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-102.c	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,55 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 9
+ 
+ struct extraction
+ {
+   int a[N];
+   int b[N];
+ };
+ 
+ static int a[N] = {1,2,3,4,5,6,7,8,9};
+ static int b[N] = {2,3,4,5,6,7,8,9,9};
+ 
+ int main1 (int x, int y) {
+   int i;
+   struct extraction *p;
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   for (i = 0; i < N; i++)
+     {
+        p->a[i] = a[i];
+        if (x == 135)
+ 	 abort (); /* to avoid vectorization  */
+     }
+ 
+   /* Not vectorizable: distance 1.  */
+   for (i = 0; i < N - 1; i++)
+     {
+        *((int *)p + x + i) = *((int *)p + x + i + 1);
+     }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+     {
+        if (p->a[i] != b[i])
+          abort();
+     }
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+ 
+   return main1 (0, N);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-103.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-103.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-103.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-103.c	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,57 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 9
+ 
+ struct extraction
+ {
+   int a[N];
+   int b[N];
+ };
+ 
+ static int a[N] = {1,2,3,4,5,6,7,8,9};
+ static int b[N] = {17,24,7,0,2,3,4,31,82};
+ static int c[N] = {9,17,24,7,0,2,3,4,31};
+ 
+ int main1 (int x, int y) {
+   int i;
+   struct extraction *p;
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   for (i = 0; i < N; i++)
+     {
+        p->a[i] = a[i];
+        p->b[i] = b[i];
+        if (x == 135)
+ 	 abort (); /* to avoid vectorization  */
+     }
+ 
+   /* Vectorizable: distance > VF.  */
+   for (i = 0; i < N; i++)
+     {
+        *((int *)p + x + i) = *((int *)p + x + i + 8);
+     }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+     {
+        if (p->a[i] != c[i])
+          abort();
+     }
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+ 
+   return main1 (0, N);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "dependence distance modulo vf == 0" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-104.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-104.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-104.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-104.c	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 3
+ 
+ struct extraction
+ {
+   int a[N][N];
+   int b[N][N];
+ };
+ 
+ static int a[N][N] = {{1,2,3},{4,5,6},{7,8,9}};
+ static int b[N][N] = {{17,24,7},{0,2,3},{4,31,82}};
+ static int c[N][N] = {{1,2,3},{4,6,8},{8,9,9}};
+ 
+ int main1 (int x) {
+   int i,j;
+   struct extraction *p;
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   for (i = 0; i < N; i++)
+    {
+     for (j = 0; j < N; j++)
+      {
+        p->a[i][j] = a[i][j];
+        p->b[i][j] = b[i][j];
+        if (x == 135)
+ 	 abort (); /* to avoid vectorization  */
+      }
+    }
+ 
+   /* Not vectorizable: distance = 1.  */
+   for (i = 1; i < N; i++)
+   {
+     for (j = 0; j < N; j++)
+     {
+        *((int *)p + x + i + j) = *((int *)p + x + i + j + 1);
+     }
+   }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+    {
+     for (j = 0; j < N; j++)
+      {
+        if (p->a[i][j] != c[i][j])
+          abort();
+      }
+   }
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+ 
+   return main1 (N);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-105.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-105.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-105.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-105.c	Sun Aug 14 06:13:30 2005
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdlib.h>
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 4
+ 
+ struct extraction
+ {
+   int a[N][N];
+   int b[N][N];
+ };
+ 
+ static int a[N][N] = {{1,2,3,11},{4,5,6,12},{7,8,9,13},{34,45,67,83}};
+ static int b[N][N] = {{17,28,15,23},{0,2,3,24},{4,31,82,25},{29,31,432,256}};
+ static int c[N][N] = {{1,2,3,11},{4,9,13,34},{45,67,83,13},{34,45,67,83}};
+ 
+ int main1 (int x) {
+   int i,j;
+   struct extraction *p;
+   p = (struct extraction *) malloc (sizeof (struct extraction));
+ 
+   for (i = 0; i < N; i++)
+    {
+     for (j = 0; j < N; j++)
+      {
+        p->a[i][j] = a[i][j];
+        p->b[i][j] = b[i][j];
+        if (x == 135)
+ 	 abort (); /* to avoid vectorization  */
+      }
+    }
+ 
+   /* Vectorizable: distance > number of iterations.  */
+   for (i = 1; i < N; i++)
+   {
+     for (j = 0; j < N; j++)
+     {
+        *((int *)p + x + i + j) = *((int *)p + x + i + j + 5);
+     }
+   }
+ 
+   /* check results: */
+   for (i = 0; i < N; i++)
+    {
+     for (j = 0; j < N; j++)
+      {
+        if (p->a[i][j] != c[i][j])
+          abort();
+      }
+   }
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+ 
+   return main1 (N);
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { scan-tree-dump-times "possible dependence between data-refs" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-106.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-106.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-106.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-106.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int ia[N];
+ 
+   /* Type cast.  */
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = (int) sb[i];
+     }
+ 
+ 
+   /* Check results.  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != (int) sb[i])
+ 	abort();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-107.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-107.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-107.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-107.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   float a[N];
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   float d[N] = {0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
+ 
+   /* Strided access pattern.  */
+   for (i = 0; i < N/2; i++)
+     {
+       a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i];
+       d[i] = b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i];
+     }
+ 
+   /* Check results.  */
+   for (i = 0; i < N/2; i++)
+     {
+       if (a[i] != b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i]
+ 	  || d[i] != b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i])
+ 	abort();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-108.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-108.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-108.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-108.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-require-effective-target vect_int_mult } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   int ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int ia[N];
+ 
+   /* This loop is vectorized on platforms that support vect_int_mult.  */
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = ib[i] * ic[i];
+     }
+ 
+   /* Check results.  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != ib[i] * ic[i])
+ 	abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-109.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-109.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-109.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-109.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,44 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 ()
+ {
+   int i;
+   short sc[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   short sa[N];
+   int ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int ia[N];
+ 
+   /* Two types with different nunits in vector.  */
+   for (i = 0; i < N; i++)
+     {
+       ia[i] = ib[i] + ic[i];
+       sa[i] = sb[i] + sc[i];
+     }
+ 
+   /* Check results.  */
+   for (i = 0; i < N; i++)
+     {
+       if (ia[i] != ib[i] + ic[i] || sa[i] != sb[i] + sc[i])
+ 	abort();
+     }
+ 
+  return 0;
+ }
+      
+ int main (void)
+ {    
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-11.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-11.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-11.c	Mon Apr 18 15:50:53 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-require-effective-target vect_int_mult } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
*************** int main (void)
*** 35,38 ****
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
--- 36,40 ----
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-110.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-110.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-110.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-110.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   float a[N];
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+ 
+   /* Too conservative dependence test.  */
+   for (i = 0; i < N - 1; i++){
+     a[i] = b[i] + c[i];
+     a[i+1] = b[i] + c[i];
+   }
+ 
+   /* Check results.  */
+   for (i = 0; i < N - 1; i++){
+     if (a[i] != b[i] + c[i])
+ 	abort ();
+   }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+      
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-111.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-111.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-111.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-111.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   float a[N];
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ 
+   /* Condition in loop.  */
+   /* This loop is vectorized on platforms that support vect_condition.  */
+   for (i = 0; i < N; i++)
+   {
+     a[i] = (b[i] > 0 ? b[i] : 0);
+   }
+ 
+   for (i = 0; i < N; i++)
+   {
+     if (a[i] != b[i])
+ 	abort ();
+   }
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target powerpc*-*-* } } } */
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target i?86-*-* x86_64-*-* ia64-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-112.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-112.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-112.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-112.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   int diff = 0;
+   char cb[N] = {2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17};
+   char cc[N] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
+ 
+   /* Cross-iteration cycle.  */
+   diff = 0;
+   for (i = 0; i < N; i++) {
+     diff += (cb[i] - cc[i]);
+   }
+ 
+   /* Check results.  */
+   if (diff != 16)
+     abort();
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-113.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-113.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-113.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-113.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   float a[N];
+ 
+   /* Induction.  */
+   for ( i = 0; i < N; i++) 
+   {
+     a[i] = i;
+   }
+ 
+   for ( i = 0; i < N; i++) 
+   {
+     if (a[i] != i)
+ 	abort ();
+   }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-114.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-114.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-114.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-114.c	Tue May 24 11:56:58 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ int
+ main1 (void)
+ {
+   int i;
+   float a[N];
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+ 
+   /* Reverse access and forward access.  */
+   for (i = N; i > 0; i--)
+     {
+       a[N-i] = b[i-1];
+     }
+ 
+   /* Check results.  */
+   for (i = 0; i <N; i++)
+     {
+       if (a[i] != b[N-1-i])
+ 	abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   check_vect ();
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-115.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-115.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-115.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-115.c	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,75 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ struct s{
+   int b[N];
+   int c[N];
+   int m;
+ };
+ 
+ struct t{
+   struct s strc_s;
+   int m;
+ };
+ 
+ struct test1{
+   struct t strc_t;
+   struct t *ptr_t;
+   int k;
+   int l;
+ };
+ 
+ int main1 ()
+ {
+   int i;
+   struct test1 tmp1;
+   int a[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   struct t tmp2;
+ 
+   tmp1.ptr_t = &tmp2;
+ 
+   /* DR bases comparison: record and array.  */
+   for (i = 0; i < N; i++)
+     {
+       tmp1.strc_t.strc_s.b[i] = a[i];
+     }
+ 
+   /* Check results.  */
+   for (i = 0; i < N; i++)
+     {
+       if (tmp1.strc_t.strc_s.b[i] != a[i])
+ 	abort();
+     }
+ 
+   /* DR bases comparison: record containing ptr and array.  */
+   for (i = 0; i < N; i++)
+     {
+       tmp1.ptr_t->strc_s.c[i] = a[i];
+     }
+ 
+   /* Check results.  */
+   for (i = 0; i < N; i++)
+     {
+       if (tmp1.ptr_t->strc_s.c[i] != a[i])
+ 	abort();
+     }
+ 
+     
+   return 0;
+ }
+        
+ int main (void)
+ {
+   check_vect ();
+     
+   return main1 ();
+ }
+           
+ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
+   
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-116.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-116.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-116.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-116.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Assuming we can vectorize char multiplication, here's an execute test.  */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ extern void abort (void);
+ void foo()
+ {
+   static unsigned char A[256], B[256], C[256];
+   int i;
+ 
+   for (i = 0; i < 256; ++i)
+     A[i] = B[i] = i;
+ 
+   for (i = 0; i < 256; ++i)
+     C[i] = A[i] * B[i];
+ 
+   for (i = 0; i < 256; ++i)
+     if (C[i] != (unsigned char)(i * i))
+       abort ();
+ }
+ 
+ int main()
+ {
+   check_vect ();
+   foo();
+   return 0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-11a.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-11a.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-11a.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-11a.c	Mon Apr 18 15:50:53 2005
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-require-effective-target vect_int } */
+ /* { dg-require-effective-target vect_int_mult } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ extern void abort (void);
+ void u ()
+ {  
+   unsigned int A[4] = {0x08000000,0xffffffff,0xff0000ff,0xf0000001};
+   unsigned int B[4] = {0x08000000,0x08000001,0xff0000ff,0xf0000001};
+   unsigned int Answer[4] = {0,0xf7ffffff,0x0200fe01,0xe0000001};
+   unsigned int C[4];
+   int i, j;
+   
+   for (i=0; i<4; i++)
+     C[i] = A[i] * B[i];
+   for (i=0; i<4; i++)
+     if (C[i] != Answer[i])
+       abort ();
+ }
+ void s()
+ {
+   signed int A[4] = {0x08000000,0xffffffff,0xff0000ff,0xf0000001};
+   signed int B[4] = {0x08000000,0x08000001,0xff0000ff,0xf0000001};
+   signed int Answer[4] = {0,0xf7ffffff,0x0200fe01, 0xe0000001};
+   signed int C[4];
+   int i, j;
+   
+   for (i=0; i<4; i++)
+     C[i] = A[i] * B[i];
+   for (i=0; i<4; i++)
+     if (C[i] != Answer[i])
+       abort ();
+ }
+ 
+ int main1 ()
+ {
+   u();
+   s();
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   return main1 ();
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-12.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-12.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-12.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 40,42 ****
--- 40,43 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-13.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-13.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-13.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-13.c	Wed Jun 29 18:25:12 2005
*************** int main (void)
*** 36,40 ****
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_max } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 36,41 ----
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_max } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-14.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-14.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-14.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 34,36 ****
--- 34,37 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-15.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-15.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-15.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-15.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 35,37 ****
--- 35,38 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-16.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-16.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-16.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-16.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 34,36 ****
--- 34,37 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-17.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-17.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-17.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-17.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 126,128 ****
--- 126,129 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-18.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-18.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-18.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-18.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 125,127 ****
--- 125,128 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-19.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-19.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-19.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-19.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 125,127 ****
--- 125,128 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-2.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-2.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 35,37 ****
--- 35,38 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-20.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-20.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-20.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-20.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 97,99 ****
--- 97,100 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_bitwise } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-21.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-21.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-21.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-21.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 126,128 ****
--- 126,129 ----
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-22.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-22.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-22.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-22.c	Tue Sep 20 22:42:06 2005
***************
*** 1,4 ****
--- 1,5 ----
  /* { dg-require-effective-target vect_int } */
+ /* { dg-require-effective-target vect_float } */
  
  #include <stdarg.h>
  #include "tree-vect.h"
*************** main1 ()
*** 42,47 ****
--- 43,59 ----
       1,1,0,0,1,0,1,0,
       1,1,0,0,1,0,1,0};
  
+   float fa[N];
+   float fb[N] =
+     {1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0,
+      1,1,0,0,1,0,1,0};
+ 
    /* Check ints.  */
  
    for (i = 0; i < N; i++)
*************** main1 ()
*** 84,89 ****
--- 96,115 ----
          abort ();
      }
  
+   /* Check floats.  */
+ 
+   for (i = 0; i < N; i++)
+     {
+       fa[i] = -fb[i];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i <N; i++)
+     {
+       if (fa[i] != -fb[i])
+         abort ();
+     }
+ 
    return 0;
  }
  
*************** int main (void)
*** 94,99 ****
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  
--- 120,126 ----
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-23.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-23.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-23.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-23.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 125,128 ****
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! 
--- 125,128 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-24.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-24.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-24.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-24.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 125,128 ****
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! 
--- 125,128 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-25.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-25.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-25.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-25.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 51,53 ****
--- 51,54 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-26.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-26.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-26.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-26.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 37,40 ****
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! 
--- 37,40 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-27.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-27.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-27.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-27.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 43,45 ****
--- 43,46 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-28.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-28.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-28.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-28.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 40,43 ****
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! 
--- 40,43 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-29.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-29.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-29.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-29.c	Tue Sep  6 10:59:58 2005
*************** int main (void)
*** 43,49 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
! 
--- 43,53 ----
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the load.
!    (The store is aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" {target vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-3.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-3.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 47,52 ****
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! 
! 
! 
--- 47,50 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-30.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-30.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-30.c	Mon Jan  3 19:59:13 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-30.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 62,64 ****
--- 62,65 ----
  /* Need misalignment support, or cgraph to delay emitting the arrays until
     after vectorization can force-align them.  */
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-31.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-31.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-31.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-31.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 88,90 ****
--- 88,91 ----
  /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-32.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-32.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-32.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-32.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 36,38 ****
--- 36,39 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-33.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-33.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-33.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-33.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 39,41 ****
--- 39,42 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-34.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-34.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-34.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-34.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 37,39 ****
--- 37,40 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-35.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-35.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-35.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-35.c	Tue Aug 16 15:02:39 2005
***************
*** 3,26 ****
  #include <stdarg.h>
  #include "tree-vect.h"
  
- typedef char achar __attribute__ ((__aligned__(16)));
- 
  #define N 16
- achar x[N];
   
  int main1 ()
  {  
    union {
!     achar a[N];
!     achar b[N];
    } s;
    int i;
  
    for (i = 0; i < N; i++)
      {
        s.b[i] = 3*i;
      }
  
    for (i = 0; i < N; i++)
      {
        s.a[i] = s.b[i] + 1;
--- 3,26 ----
  #include <stdarg.h>
  #include "tree-vect.h"
  
  #define N 16
   
  int main1 ()
  {  
    union {
!     char a[N] __attribute__ ((__aligned__(16)));
!     char b[N] __attribute__ ((__aligned__(16)));
    } s;
    int i;
  
+   /* Initialization.  */
    for (i = 0; i < N; i++)
      {
        s.b[i] = 3*i;
      }
  
+   /* Can't vectorize - dependence analysis fails cause s.a and s.b may
+      overlap.  */
    for (i = 0; i < N; i++)
      {
        s.a[i] = s.b[i] + 1;
*************** int main1 ()
*** 29,35 ****
    /* check results:  */
    for (i = 0; i < N; i++)
      {
!       if (s.a[i] != s.b[i])
  	abort ();
      }
  
--- 29,35 ----
    /* check results:  */
    for (i = 0; i < N; i++)
      {
!       if (s.a[i] != 3*i + 1)
  	abort ();
      }
  
*************** int main (void)
*** 44,48 ****
  } 
  
  
! /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 44,49 ----
  } 
  
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
! /* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-36.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-36.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-36.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-36.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 43,45 ****
--- 43,46 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-37.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-37.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-37.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-37.c	Tue Sep 20 07:40:41 2005
***************
*** 3,22 ****
  #include <stdarg.h>
  #include "tree-vect.h"
  
- typedef char achar __attribute__ ((__aligned__(16)));
- 
  #define N 16
! achar x[N];
   
! int main1 (achar *y)
  {  
    struct {
!     achar *p;
!     achar *q;
    } s;
!   achar cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
    int i;
  
    s.p = y;
    for (i = 0; i < N; i++)
      {
--- 3,21 ----
  #include <stdarg.h>
  #include "tree-vect.h"
  
  #define N 16
! char x[N] __attribute__ ((__aligned__(16)));
   
! int main1 (char *y)
  {  
    struct {
!     char *p;
!     char *q;
    } s;
!   char cb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
    int i;
  
+   /* Not vectorized - can't antialias the pointer s.p from the array cb.  */
    s.p = y;
    for (i = 0; i < N; i++)
      {
*************** int main1 (achar *y)
*** 30,35 ****
--- 29,35 ----
          abort ();
      }
  
+   /* Not vectorized - can't antialias the pointer s.p from the pointer s.q.  */
    s.q = cb;
    for (i = 0; i < N; i++)
      {
*************** int main (void)
*** 53,59 ****
    return main1 (x);
  } 
  
! 
! /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 53,61 ----
    return main1 (x);
  } 
  
! /* Currently the loops fail to vectorize due to aliasing problems.
!    If/when the aliasing problems are resolved, unalignment may
!    prevent vectorization on some targets.  */
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */
! /* { dg-final { scan-tree-dump-times "can't determine dependence between" 2 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-38.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-38.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-38.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-38.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 36,38 ****
--- 36,39 ----
  
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-4.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-4.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 37,39 ****
--- 37,40 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-40.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-40.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-40.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-40.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc) 
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc) 
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 21,53 ****
    return;
  }
  
  
  int
! main1 (afloat * __restrict__ pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < N; i++)
      {
        pa[i] = pb[i] * pc[i];
      }
  
    return 0;
  }
  
  int main (void)
  {
-   int i;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- 
    check_vect ();
! 
!   main1 (a,b,c);
!   bar (a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 19,58 ----
    return;
  }
  
+ /* Aligned pointer accesses.
+    The loop bound is known and divisible by the vectorization factor.
+    No aliasing problems.
+    vect-46.c is similar to this one with one difference: 
+         the loop bound is unknown.  */
  
  int
! main1 ()
  {
    int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pa = a;
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < N; i++)
      {
        pa[i] = pb[i] * pc[i];
      }
  
+   bar (pa,pb,pc);
+ 
    return 0;
  }
  
  int main (void)
  {
    check_vect ();
!   main1 ();
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-41.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-41.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-41.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-41.c	Thu Jan  1 00:00:00 1970
***************
*** 1,54 ****
- /* { dg-require-effective-target vect_float } */
- 
- #include <stdarg.h>
- #include "tree-vect.h"
- 
- #define N 256
- 
- typedef float afloat __attribute__ ((__aligned__(16)));
- 
- void bar (afloat *pa, afloat *pb, afloat *pc) 
- {
-   int i;
- 
-   /* check results:  */
-   for (i = 0; i < N; i++)
-     {
-       if (pa[i] != (pb[i] * pc[i]))
- 	abort ();
-     }
- 
-   return;
- }
- 
- 
- int
- main1 (afloat * pa, afloat * pb, afloat * pc)
- {
-   int i;
- 
-   for (i = 0; i < N; i++)
-     {
-       pa[i] = pb[i] * pc[i];
-     }
- 
-   bar (pa,pb,pc);
- 
-   return 0;
- }
- 
- int main (void)
- {
-   int i;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- 
-   check_vect ();
- 
-   main1 (a,b,c);
-   return 0;
- }
- 
- /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
- /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-42.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-42.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-42.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-42.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc) 
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc) 
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 21,34 ****
    return;
  }
  
  
  int
! main1 (afloat * __restrict__ pa)
  {
    int i;
!   afloat pb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   afloat pc[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
! 
  
    for (i = 0; i < N; i++)
      {
--- 19,36 ----
    return;
  }
  
+ /* Unaligned write access, aligned read accesses.
+    Since we are handling an unaligned store by peeling the loop,
+    the loads will become unaligned.
+    The loop bound is known and divisible by the vectorization factor.
+    No aliasing problems.  */
  
  int
! main1 (float * __restrict__ pa)
  {
    int i;
!   float pb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   float pc[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    for (i = 0; i < N; i++)
      {
*************** main1 (afloat * __restrict__ pa)
*** 41,49 ****
  int main (void)
  {
    int i;
!   afloat a[N];
!   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
--- 43,51 ----
  int main (void)
  {
    int i;
!   float a[N] __attribute__ ((__aligned__(16)));
!   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
*************** int main (void)
*** 52,56 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"} } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 54,60 ----
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-43.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-43.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-43.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-43.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc) 
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc) 
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 23,35 ****
  
  
  int
! main1 (afloat * pa)
  {
    int i;
!   afloat pb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   afloat pc[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
! 
  
    for (i = 0; i < N; i++)
      {
        pa[i] = pb[i] * pc[i];
--- 21,33 ----
  
  
  int
! main1 (float *pa)
  {
    int i;
!   float pb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   float pc[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
+  /* Not vectorizable: pa may alias pb and/or pc, since their addresses escape.  */
    for (i = 0; i < N; i++)
      {
        pa[i] = pb[i] * pc[i];
*************** main1 (afloat * pa)
*** 40,57 ****
    return 0;
  }
  
  int main (void)
  {
    int i;
!   afloat a[N];
!   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
    main1 (a);
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 38,77 ----
    return 0;
  }
  
+ int
+ main2 (float * pa)
+ {
+   int i;
+   float pb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float pc[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+ 
+   /* Vectorizable: pb and pc addresses do not escape.  */
+   for (i = 0; i < N; i++)
+     {
+       pa[i] = pb[i] * pc[i];
+     }   
+   
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (pa[i] != (pb[i] * pc[i]))
+         abort ();
+     }
+   
+   return 0;
+ }
+ 
  int main (void)
  {
    int i;
!   float a[N] __attribute__ ((__aligned__(16)));
  
    check_vect ();
  
    main1 (a);
+   main2 (a);
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-44.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-44.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-44.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-44.c	Tue Sep 20 08:12:46 2005
***************
*** 5,12 ****
  
  #define N 256
  
- typedef float afloat __attribute__ ((__aligned__(16)));
- 
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
--- 5,10 ----
*************** void bar (float *pa, float *pb, float *p
*** 21,26 ****
--- 19,31 ----
    return;
  }
  
+ /* Unaligned pointer accesses, with unknown alignment.
+    The loop bound is known and divisible by the vectorization factor.
+    No aliasing problems.
+    vect-50.c is similar to this one with one difference:
+         the loop bound is unknown.
+    vect-45.c is similar to this one with one difference:
+         can't prove that pointers don't alias.  */
  
  int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
*************** main1 (float * __restrict__ pa, float * 
*** 40,48 ****
  int main (void)
  {
    int i;
!   afloat a[N+4];
!   afloat b[N+4] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69};
!   afloat c[N+4] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};
  
    check_vect ();
  
--- 45,53 ----
  int main (void)
  {
    int i;
!   float a[N+4] __attribute__ ((__aligned__(16)));
!   float b[N+4] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69};
!   float c[N+4] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23};
  
    check_vect ();
  
*************** int main (void)
*** 54,59 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
--- 59,70 ----
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the 
!    all three accesses (peeling to align the store will not force the
!    two loads to be aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-45.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-45.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-45.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-45.c	Tue Sep 20 08:12:46 2005
***************
*** 5,11 ****
  
  #define N 256
  
- 
  void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
--- 5,10 ----
*************** void bar (const float *pa, const float *
*** 20,25 ****
--- 19,31 ----
    return;
  }
  
+ /* Unaligned pointer accesses, with unknown alignment.
+    The loop bound is known and divisible by the vectorization factor.
+    Can't prove that the pointers don't alias.
+    vect-51.c is similar to this one with one difference:
+         the loop bound is unknown.
+    vect-44.c is similar to this one with one difference:
+         Aliasing is not a problem.  */
  
  int
  main1 (float *pa, float *pb, float *pc)
*************** int main (void)
*** 50,52 ****
--- 56,59 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-46.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-46.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-46.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-46.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 21,37 ****
    return;
  }
  
  
  int
! main1 (int n , afloat * __restrict__ pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < n; i++)
      {
        pa[i] = pb[i] * pc[i];
      }
  
    return 0;
  }
  
--- 19,46 ----
    return;
  }
  
+ /* Aligned pointer accesses.
+    The loop bound is unknown.
+    No aliasing problems.
+    vect-40.c is similar to this one with one difference:
+         the loop bound is known.  */
  
  int
! main1 (int n)
  {
    int i;
+   float a[N] __attribute__ ((__aligned__(16)));  float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};  float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pa = a;
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < n; i++)
      {
        pa[i] = pb[i] * pc[i];
      }
  
+   bar (pa,pb,pc);
+ 
    return 0;
  }
  
*************** int main (void)
*** 39,54 ****
  {
    int i;
    int n=N;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- 
    check_vect ();
! 
!   main1 (n,a,b,c);
!   bar (a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 48,58 ----
  {
    int i;
    int n=N;
    check_vect ();
!   main1 (n);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-47.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-47.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-47.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-47.c	Thu Jan  1 00:00:00 1970
***************
*** 1,55 ****
- /* { dg-require-effective-target vect_float } */
- 
- #include <stdarg.h>
- #include "tree-vect.h"
- 
- #define N 256
- 
- typedef float afloat __attribute__ ((__aligned__(16)));
- 
- void bar (afloat *pa, afloat *pb, afloat *pc)
- {
-   int i;
- 
-   /* check results:  */
-   for (i = 0; i < N; i++)
-     {
-       if (pa[i] != (pb[i] * pc[i]))
- 	abort ();
-     }
- 
-   return;
- }
- 
- 
- int
- main1 (int n , afloat *  pa, afloat *  pb, afloat *  pc)
- {
-   int i;
- 
-   for (i = 0; i < n; i++)
-     {
-       pa[i] = pb[i] * pc[i];
-     }
- 
-   bar (pa,pb,pc);
- 
-   return 0;
- }
- 
- int main (void)
- {
-   int i;
-   int n=N;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- 
-   check_vect ();
- 
-   main1 (n,a,b,c);
-   return 0;
- }
- 
- /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
- /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-48.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-48.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-48.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-48.c	Tue Sep 20 08:12:46 2005
***************
*** 5,57 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
  
! void bar (float *pa, float *pb, float *pc) 
  {
    int i;
  
-   /* check results:  */
    for (i = 0; i < N; i++)
      {
!       if (pa[i] != (pb[i] * pc[i]))
! 	abort ();
      }
  
!   return;
! }
! 
! 
! int
! main1 (afloat * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
! {
!   int i;
! 
    for (i = 0; i < N; i++)
      {
!       pa[i] = pb[i] * pc[i];
      }
  
-   bar (pa,pb,pc);
- 
    return 0;
  }
  
  int main (void)
  {
    int i;
!   afloat a[N];
!   afloat b[N+1] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
!   main1 (a,b,c);
!   main1 (a,&b[1],c);
  
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 5,60 ----
  
  #define N 256
  
! /* Unaligned pointer read accesses, aligned write access.
!    The loop bound is known and divisible by the vectorization factor.
!    No aliasing problems.
!    vect-56.c is similar to this one with one difference:
!         the alignment of the read accesses is known.
!    vect-52.c is similar to this one with one difference:
!         the loop bound is unknown.
!    vect-49.c is similar to this one with one difference:
!         aliasing is a problem.  */
  
! int
! main1 (float *pb, float *pc)
  {
+   float pa[N] __attribute__ ((__aligned__(16)));
    int i;
  
    for (i = 0; i < N; i++)
      {
!       pa[i] = pb[i] * pc[i];
      }
  
!   /* check results:  */
    for (i = 0; i < N; i++)
      {
!       if (pa[i] != (pb[i] * pc[i]))
! 	abort ();
      }
  
    return 0;
  }
  
  int main (void)
  {
    int i;
!   float b[N+1] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
!   main1 (b,c);
!   main1 (&b[1],c);
  
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the two loads.
!    (The store is aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 2 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-49.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-49.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-49.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-49.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc) 
  {
    int i;
  
*************** void bar (const float *pa, const float *
*** 21,30 ****
    return;
  }
  
  
  int
! main1 (afloat *pa, float *pb, float *pc)
  {
    int i;
  
    for (i = 0; i < N; i++)
--- 19,36 ----
    return;
  }
  
+ /* Unaligned pointer read accesses, aligned pointer write access.
+    The loop bound is known and divisible by the vectorization factor.
+    Can't prove that the pointers don't alias.
+    vect-53.c is similar to this one with one difference:
+         the loop bound is unknown.
+    vect-48.c is similar to this one with one difference:
+         aliasing is not a problem.  */
  
  int
! main1 (float *pb, float *pc)
  {
+   float pa[N] __attribute__ ((__aligned__(16)));
    int i;
  
    for (i = 0; i < N; i++)
*************** main1 (afloat *pa, float *pb, float *pc)
*** 40,53 ****
  int main (void)
  {
    int i;
!   float a[N];
!   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
!   main1 (a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 46,61 ----
  int main (void)
  {
    int i;
!   float b[N+1] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
!   main1 (b,c);
!   main1 (&b[1],c);
! 
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-5.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-5.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 53,55 ****
--- 53,56 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-50.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-50.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-50.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-50.c	Tue Sep 20 08:12:46 2005
***************
*** 5,11 ****
  
  #define N 256
  
- 
  void bar (float *pa, float *pb, float *pc) 
  {
    int i;
--- 5,10 ----
*************** void bar (float *pa, float *pb, float *p
*** 20,26 ****
    return;
  }
  
- 
  int
  main1 (int n, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
--- 19,24 ----
*************** main1 (int n, float * __restrict__ pa, f
*** 36,41 ****
--- 34,47 ----
    return 0;
  }
  
+ /* Unaligned pointer accesses, with unknown alignment.
+    The loop bound is unknown.
+    No aliasing problems.
+    vect-44.c is similar to this one with one difference:
+         the loop bound is known.  
+    vect-51.c is similar to this one with one difference:
+         can't prove that pointers don't alias.  */
+ 
  int main (void)
  {
    int i;
*************** int main (void)
*** 49,54 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
--- 55,66 ----
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the
!    all three accesses (peeling to align the store will not force the
!    two loads to be aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-51.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-51.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-51.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-51.c	Tue Sep 20 08:12:46 2005
***************
*** 5,11 ****
  
  #define N 256
  
- 
  void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
--- 5,10 ----
*************** void bar (const float *pa, const float *
*** 20,25 ****
--- 19,31 ----
    return;
  }
  
+ /* Unaligned pointer accesses, with unknown alignment.
+    The loop bound is unknown.
+    Can't prove that the pointers don't alias.
+    vect-45.c is similar to this one with one difference:
+         the loop bound is known.
+    vect-50.c is similar to this one with one difference:
+         Aliasing is not a problem.  */
  
  int
  main1 (int n, float *pa, float *pb, float *pc)
*************** int main (void)
*** 50,52 ****
--- 56,59 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-52.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-52.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-52.c	Sun Jan  9 17:30:22 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-52.c	Tue Sep 20 08:12:46 2005
***************
*** 5,30 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (float *pa, float *pb, float *pc) 
! {
!   int i;
! 
!   /* check results:  */
!   for (i = 0; i < N; i++)
!     {
!       if (pa[i] != (pb[i] * pc[i]))
! 	abort ();
!     }
! 
!   return;
! }
! 
  
  int
! main1 (int n, afloat * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < n; i++)
--- 5,24 ----
  
  #define N 256
  
! /* Unaligned pointer read accesses, aligned write access.
!    The loop bound is unknown.
!    No aliasing problems.
!    vect-60.c is similar to this one with one difference:
!         the alignment of the read accesses is known.
!    vect-48.c is similar to this one with one difference:
!         the loop bound is known.
!    vect-53.c is similar to this one with one difference:
!         aliasing is a problem.  */
  
  int
! main1 (int n, float *pb, float *pc)
  {
+   float pa[N] __attribute__ ((__aligned__(16)));
    int i;
  
    for (i = 0; i < n; i++)
*************** main1 (int n, afloat * __restrict__ pa, 
*** 32,38 ****
        pa[i] = pb[i] * pc[i];
      }
  
!   bar (pa,pb,pc);
  
    return 0;
  }
--- 26,37 ----
        pa[i] = pb[i] * pc[i];
      }
  
!   /* check results:  */
!   for (i = 0; i < N; i++)
!     { 
!       if (pa[i] != (pb[i] * pc[i]))
!         abort ();
!     }
  
    return 0;
  }
*************** main1 (int n, afloat * __restrict__ pa, 
*** 40,56 ****
  int main (void)
  {
    int i;
!   afloat a[N];
!   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
  
    check_vect ();
  
!   main1 (N,a,&b[1],c);
!   main1 (N,a,&b[1],&c[1]);
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 39,61 ----
  int main (void)
  {
    int i;
!   float a[N] __attribute__ ((__aligned__(16)));
!   float b[N+1] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   float c[N+1] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
  
    check_vect ();
  
!   main1 (N,&b[1],c);
!   main1 (N,&b[1],&c[1]);
! 
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the two loads.
!    (The store is aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 2 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-53.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-53.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-53.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-53.c	Tue Sep 20 08:12:46 2005
***************
*** 5,12 ****
  
  #define N 256
  
- typedef float afloat __attribute__ ((__aligned__(16)));
- 
  void bar (const float *pa, const float *pb, const float *pc) 
  {
    int i;
--- 5,10 ----
*************** void bar (const float *pa, const float *
*** 21,30 ****
    return;
  }
  
  
  int
! main1 (int n, afloat *pa, float *pb, float *pc)
  {
    int i;
  
    for (i = 0; i < n; i++)
--- 19,36 ----
    return;
  }
  
+ /* Unaligned pointer read accesses, aligned pointer write access.
+    The loop bound is unknown.
+    Can't prove that the pointers don't alias.
+    vect-49.c is similar to this one with one difference:
+         the loop bound is known.
+    vect-52.c is similar to this one with one difference:
+         aliasing is not a problem.  */
  
  int
! main1 (int n, float *pb, float *pc)
  {
+   float pa[N] __attribute__ ((__aligned__(16)));
    int i;
  
    for (i = 0; i < n; i++)
*************** main1 (int n, afloat *pa, float *pb, flo
*** 40,54 ****
  int main (void)
  {
    int i;
!   afloat a[N];
!   afloat b[N+1] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   afloat c[N+1] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
  
    check_vect ();
  
!   main1 (N,a,&b[1],c);
!   main1 (N,a,&b[1],&c[1]);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 46,62 ----
  int main (void)
  {
    int i;
!   float a[N] __attribute__ ((__aligned__(16)));
!   float b[N+1] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57,60};
!   float c[N+1] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20};
  
    check_vect ();
  
!   main1 (N,&b[1],c);
!   main1 (N,&b[1],&c[1]);
! 
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-54.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-54.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-54.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-54.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 21,38 ****
    return;
  }
  
  
  int
! main1 (afloat * __restrict__ pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < N/2; i++)
      {
        pa[i+1] = pb[i+1] * pc[i+1];
      }
  
!   bar (pa,pb,pc);
  
    return 0;
  }
--- 19,47 ----
    return;
  }
  
+ /* Unaligned pointer accesses, with a known alignment.
+    The loop bound is known and divisible by the vectorization factor.
+    No aliasing problems.
+    vect-58.c is similar to this one with one difference:
+         the loop bound is unknown.  */
  
  int
! main1 ()
  {
    int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pa = a;
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < N/2; i++)
      {
        pa[i+1] = pb[i+1] * pc[i+1];
      }
  
!   bar (a,b,c);
  
    return 0;
  }
*************** main1 (afloat * __restrict__ pa, afloat 
*** 40,55 ****
  int main (void)
  {
    int i;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
-   main1 (a,b,c);
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
--- 49,62 ----
  int main (void)
  {
    int i;
  
    check_vect ();
+   main1 ();
  
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-55.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-55.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-55.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-55.c	Thu Jan  1 00:00:00 1970
***************
*** 1,53 ****
- /* { dg-require-effective-target vect_float } */
- 
- #include <stdarg.h>
- #include "tree-vect.h"
- 
- #define N 256
- 
- typedef float afloat __attribute__ ((__aligned__(16)));
- 
- void bar (afloat *pa, afloat *pb, afloat *pc)
- {
-   int i;
- 
-   /* check results:  */
-   for (i = 0; i < N/2; i++)
-     {
-       if (pa[i+1] != (pb[i+1] * pc[i+1]))
- 	abort ();
-     }
- 
-   return;
- }
- 
- 
- int
- main1 (afloat *  pa, afloat *  pb, afloat *  pc)
- {
-   int i;
- 
-   for (i = 0; i < N/2; i++)
-     {
-       pa[i+1] = pb[i+1] * pc[i+1];
-     }
- 
-   bar (pa,pb,pc);
- 
-   return 0;
- }
- 
- int main (void)
- {
-   int i;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- 
-   check_vect ();
- 
-   main1 (a,b,c);
-   return 0;
- }
- 
- /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-56.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-56.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-56.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-56.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 15,38 ****
    for (i = 0; i < N/2; i++)
      {
        if (pa[i] != (pb[i+1] * pc[i+1]))
! 	abort ();
      }
  
    return;
  }
  
  
  int
! main1 (afloat * __restrict__ pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < N/2; i++)
      {
        pa[i] = pb[i+1] * pc[i+1];
      }
  
!   bar (pa,pb,pc);
  
    return 0;
  }
--- 13,56 ----
    for (i = 0; i < N/2; i++)
      {
        if (pa[i] != (pb[i+1] * pc[i+1]))
!         abort ();
      }
  
    return;
  }
  
+ /* Unaligned pointer read accesses, aligned write access.
+    The loop bound is known and divisible by the vectorization factor.
+    No aliasing problems.
+    vect-48.c is similar to this one with one difference:
+         the alignment of the read accesses is unknown.
+    vect-60.c is similar to this one with one difference:
+         the loop bound is unknown.
+    vect-57.c is similar to this one with two differences:
+         aliasing is a problem, and the write access has unknown alignment.  */
  
  int
! main1 ()
  {
    int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pa = a;
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < N/2; i++)
      {
        pa[i] = pb[i+1] * pc[i+1];
      }
  
!   /* check results:  */
!   for (i = 0; i < N/2; i++)
!     {
!       if (pa[i] != (pb[i+1] * pc[i+1]))
!         abort ();
!     }
  
    return 0;
  }
*************** main1 (afloat * __restrict__ pa, afloat 
*** 40,55 ****
  int main (void)
  {
    int i;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
-   main1 (a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 58,71 ----
  int main (void)
  {
    int i;
  
    check_vect ();
+   main1 ();
  
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-57.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-57.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-57.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-57.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 15,38 ****
    for (i = 0; i < N/2; i++)
      {
        if (pa[i] != (pb[i+1] * pc[i+1]))
! 	abort ();
      }
  
    return;
  }
  
  
  int
! main1 (afloat *  pa, afloat *  pb, afloat * pc)
  {
    int i;
  
    for (i = 0; i < N/2; i++)
      {
        pa[i] = pb[i+1] * pc[i+1];
      }
  
!   bar (pa,pb,pc);
  
    return 0;
  }
--- 13,48 ----
    for (i = 0; i < N/2; i++)
      {
        if (pa[i] != (pb[i+1] * pc[i+1]))
!         abort ();
      }
  
    return;
  }
  
+ /* Unaligned pointer read accesses with known alignment,
+    and an unaligned write access with unknown alignment.
+    The loop bound is known and divisible by the vectorization factor.
+    Can't prove that the pointers don't alias.
+    vect-61.c is similar to this one with one difference:
+         the loop bound is unknown.
+    vect-56.c is similar to this one with two differences:
+         aliasing is a problem, and the write access is aligned.  */
  
  int
! main1 (float *pa)
  {
    int i;
+   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < N/2; i++)
      {
        pa[i] = pb[i+1] * pc[i+1];
      }
  
!   bar (pa, pb, pc);
  
    return 0;
  }
*************** main1 (afloat *  pa, afloat *  pb, afloa
*** 40,53 ****
  int main (void)
  {
    int i;
!   afloat a[N];
!   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
-   main1 (a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 50,62 ----
  int main (void)
  {
    int i;
!   float a[N] __attribute__ ((__aligned__(16)));
  
    check_vect ();
+   main1 (a);
  
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-58.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-58.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-58.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-58.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 21,38 ****
    return;
  }
  
  
  int
! main1 (int n , afloat * __restrict__ pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < n/2; i++)
      {
        pa[i+1] = pb[i+1] * pc[i+1];
      }
  
!   bar (pa,pb,pc);
  
    return 0;
  }
--- 19,45 ----
    return;
  }
  
+ /* Unaligned pointer accesses, with a known alignment.
+    The loop bound is unknown.
+    No aliasing problems.
+    vect-54.c is similar to this one with one difference:
+         the loop bound is known.  */
  
  int
! main1 (int n)
  {
    int i;
+   float a[N] __attribute__ ((__aligned__(16)));  float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};  float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pa = a;
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < n/2; i++)
      {
        pa[i+1] = pb[i+1] * pc[i+1];
      }
  
!   bar (a,b,c);
  
    return 0;
  }
*************** int main (void)
*** 41,56 ****
  {
    int i;
    int n=N;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
-   main1 (n,a,b,c);
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
--- 48,61 ----
  {
    int i;
    int n=N;
  
    check_vect ();
+   main1 (n);
  
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-59.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-59.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-59.c	Wed Nov 17 23:47:20 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-59.c	Thu Jan  1 00:00:00 1970
***************
*** 1,54 ****
- /* { dg-require-effective-target vect_float } */
- 
- #include <stdarg.h>
- #include "tree-vect.h"
- 
- #define N 256
- 
- typedef float afloat __attribute__ ((__aligned__(16)));
- 
- void bar (afloat *pa, afloat *pb, afloat *pc)
- {
-   int i;
- 
-   /* check results:  */
-   for (i = 0; i < N/2; i++)
-     {
-       if (pa[i+1] != (pb[i+1] * pc[i+1]))
- 	abort ();
-     }
- 
-   return;
- }
- 
- 
- int
- main1 (int n , afloat *  pa, afloat *  pb, afloat *  pc)
- {
-   int i;
- 
-   for (i = 0; i < n/2; i++)
-     {
-       pa[i+1] = pb[i+1] * pc[i+1];
-     }
- 
-   bar (pa,pb,pc);
- 
-   return 0;
- }
- 
- int main (void)
- {
-   int i;
-   int n=N;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
- 
-   check_vect ();
- 
-   main1 (n,a,b,c);
-   return 0;
- }
- 
- /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-6.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-6.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 54,58 ****
  
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! 
! 
--- 54,57 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-60.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-60.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-60.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-60.c	Tue Sep 20 08:12:46 2005
***************
*** 5,13 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 5,11 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 21,38 ****
    return;
  }
  
  
  int
! main1 (int n , afloat * __restrict__ pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
  
    for (i = 0; i < n/2; i++)
      {
        pa[i] = pb[i+1] * pc[i+1];
      }
  
!   bar (pa,pb,pc);
  
    return 0;
  }
--- 19,56 ----
    return;
  }
  
+ /* Unaligned pointer read accesses, aligned write access.
+    The loop bound is unknown
+    No aliasing problems.
+    vect-52.c is similar to this one with one difference:
+         the alignment of the read accesses is unknown.
+    vect-56.c is similar to this one with one difference:
+         the loop bound is known.
+    vect-61.c is similar to this one with two differences:
+         aliasing is not a problem, and the write access has unknown alignment.  */
  
  int
! main1 (int n)
  {
    int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pa = a;
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < n/2; i++)
      {
        pa[i] = pb[i+1] * pc[i+1];
      }
  
!   /* check results:  */
!   for (i = 0; i < N/2; i++)
!     {
!       if (pa[i] != (pb[i+1] * pc[i+1]))
!         abort ();
!     }
  
    return 0;
  }
*************** int main (void)
*** 41,56 ****
  {
    int i;
    int n=N;
-   afloat a[N];
-   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
-   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
-   main1 (n,a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 59,72 ----
  {
    int i;
    int n=N;
  
    check_vect ();
+   main1 (n);
  
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-61.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-61.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-61.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-61.c	Tue Sep 20 08:12:46 2005
***************
*** 6,14 ****
  
  #define N 256
  
! typedef float afloat __attribute__ ((__aligned__(16)));
! 
! void bar (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
  
--- 6,12 ----
  
  #define N 256
  
! void bar (float *pa, float *pb, float *pc)
  {
    int i;
  
*************** void bar (afloat *pa, afloat *pb, afloat
*** 22,32 ****
    return;
  }
  
  
  int
! main1 (int n , afloat *  pa, afloat *  pb, afloat *  pc)
  {
    int i;
  
    for (i = 0; i < n/2; i++)
      {
--- 20,42 ----
    return;
  }
  
+ /* Unaligned pointer read accesses with known alignment,
+    and an unaligned write access with unknown alignment.
+    The loop bound is iunknown.
+    Can't prove that the pointers don't alias.
+    vect-57.c is similar to this one with one difference:
+         the loop bound is known.
+    vect-60.c is similar to this one with two differences:
+         aliasing is not a problem, and the write access is unaligned.  */
  
  int
! main1 (int n , float *pa)
  {
    int i;
+   float b[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+   float *pb = b;
+   float *pc = c;
  
    for (i = 0; i < n/2; i++)
      {
*************** int main (void)
*** 42,55 ****
  {
    int i;
    int n=N;
!   afloat a[N];
!   afloat b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
!   afloat c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
  
    check_vect ();
  
-   main1 (n,a,b,c);
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 52,64 ----
  {
    int i;
    int n=N;
!   float a[N] __attribute__ ((__aligned__(16)));
  
    check_vect ();
+   main1 (n,a);
  
    return 0;
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-62.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-62.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-62.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-62.c	Mon Dec  5 18:54:22 2005
*************** int main1 ()
*** 32,38 ****
      }
  
    /* Multidimensional array. Aligned. The "inner" dimensions
!      are invariant in the inner loop. Store. */
    for (i = 0; i < N; i++)
      {
        for (j = 0; j < N; j++)
--- 32,40 ----
      }
  
    /* Multidimensional array. Aligned. The "inner" dimensions
!      are invariant in the inner loop. Vectorizable, but the
!      vectorizer detects that everything is invariant and that
!      the loop is better left untouched. (it should be optimized away). */
    for (i = 0; i < N; i++)
      {
        for (j = 0; j < N; j++)
*************** int main (void)
*** 62,66 ****
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 64,69 ----
    return main1 ();
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-63.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-63.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-63.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-63.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 42,44 ****
--- 42,45 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-64.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-64.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-64.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-64.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 83,85 ****
--- 83,86 ----
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-65.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-65.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-65.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-65.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 80,82 ****
--- 80,83 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-66.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-66.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-66.c	Wed Jan 19 08:59:05 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-66.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 79,81 ****
--- 79,82 ----
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-67.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-67.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-67.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-67.c	Thu Aug 11 05:15:34 2005
*************** int main (void)
*** 41,45 ****
    return main1 (2 ,7);
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 41,46 ----
    return main1 (2 ,7);
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-68.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-68.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-68.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-68.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 87,89 ****
--- 87,90 ----
  /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-69.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-69.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-69.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-69.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 114,116 ****
--- 114,117 ----
  /* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-7.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-7.c	Mon Jan  9 04:37:09 2006
*************** int main (void)
*** 45,50 ****
    return main1 ();
  }
  
! /* Fails for targets that don't vectorize PLUS.  */
! /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail alpha*-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 45,51 ----
    return main1 ();
  }
  
! /* Fails for 32-bit targets that don't vectorize PLUS.  */
! /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-70.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-70.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-70.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-70.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 64,67 ****
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
!   
--- 64,67 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-71.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-71.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-71.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-71.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 36,39 ****
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail *-*-* } } } */
! 
--- 36,39 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail *-*-* } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-72.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-72.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-72.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-72.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 43,46 ****
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
! 
--- 43,46 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-73.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-73.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-73.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-73.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 38,40 ****
--- 38,41 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-74.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-74.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-74.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-74.c	Tue Sep 20 07:40:41 2005
***************
*** 5,21 ****
  
  #define N 16
  
! typedef float afloat __attribute__ ((__aligned__(16)));
  
! afloat a[N];
! afloat b[N+4] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 
! afloat c[N] = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
  int
! main1 (afloat *__restrict__  pa, afloat * __restrict__ pb, afloat * __restrict__ pc)
  {
    int i;
!   afloat *q = pb + 4;
  
    for (i = 0; i < N; i++)
      {
--- 5,23 ----
  
  #define N 16
  
! /* Check handling of accesses for which the "initial condition" -
!    the expression that represents the first location accessed - is
!    more involved than just an ssa_name.  */
  
! float a[N] __attribute__ ((__aligned__(16)));
! float b[N+4] __attribute__ ((__aligned__(16))) = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0}; 
! float c[N] __attribute__ ((__aligned__(16))) = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
  int
! main1 (float *__restrict__  pa, float * __restrict__ pb, float * __restrict__ pc)
  {
    int i;
!   float *q = pb + 4;
  
    for (i = 0; i < N; i++)
      {
*************** int main (void)
*** 40,44 ****
    return 0;	
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
--- 42,48 ----
    return 0;	
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-75.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-75.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-75.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-75.c	Tue Sep 20 07:40:41 2005
***************
*** 6,16 ****
  #define N 8
  #define OFF 8
  
! typedef int aint __attribute__ ((__aligned__(16)));
  
! aint ib[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  
! int main1 (aint *ib)
  {
    int i;
    int ia[N];
--- 6,18 ----
  #define N 8
  #define OFF 8
  
! /* Check handling of accesses for which the "initial condition" -
!    the expression that represents the first location accessed - is
!    more involved than just an ssa_name.  */
  
! int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  
! int main1 (int *ib)
  {
    int i;
    int ia[N];
*************** int main (void)
*** 40,45 ****
  }
  
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! 
--- 42,47 ----
  }
  
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-76.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-76.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-76.c	Sun Jan  9 17:30:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-76.c	Mon Dec  5 18:54:22 2005
***************
*** 6,16 ****
  #define N 8
  #define OFF 4
  
! typedef int aint __attribute__ ((__aligned__(16)));
  
! aint ib[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10};
  
! int main1 (aint *pib)
  {
    int i;
    int ia[N+OFF];
--- 6,18 ----
  #define N 8
  #define OFF 4
  
! /* Check handling of accesses for which the "initial condition" -
!    the expression that represents the first location accessed - is
!    more involved than just an ssa_name.  */
  
! int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10};
  
! int main1 (int *pib)
  {
    int i;
    int ia[N+OFF];
*************** int main (void)
*** 68,72 ****
  
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! 
--- 70,74 ----
  
  
  /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-77.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-77.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-77.c	Tue Feb  1 21:31:20 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-77.c	Tue Sep 20 07:40:41 2005
***************
*** 6,16 ****
  #define N 8
  #define OFF 8
  
! typedef int aint __attribute__ ((__aligned__(16)));
  
! aint ib[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  
! int main1 (aint *ib, int off)
  {
    int i;
    int ia[N];
--- 6,18 ----
  #define N 8
  #define OFF 8
  
! /* Check handling of accesses for which the "initial condition" -
!    the expression that represents the first location accessed - is
!    more involved than just an ssa_name.  */
  
! int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  
! int main1 (int *ib, int off)
  {
    int i;
    int ia[N];
*************** int main (void)
*** 39,44 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { lp64 || vect_no_align } } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { lp64 || vect_no_align } } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 41,51 ----
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the load.
!    (The store is aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align } } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-78.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-78.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-78.c	Tue Feb  1 21:31:20 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-78.c	Tue Sep 20 07:40:41 2005
***************
*** 6,17 ****
  #define N 8
  #define OFF 8
  
! typedef int aint __attribute__ ((__aligned__(16)));
  
! aint ib[N+OFF] = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  int off = 8;
  
! int main1 (aint *ib)
  {
    int i;
    int ia[N];
--- 6,19 ----
  #define N 8
  #define OFF 8
  
! /* Check handling of accesses for which the "initial condition" -
!    the expression that represents the first location accessed - is
!    more involved than just an ssa_name.  */
  
! int ib[N+OFF] __attribute__ ((__aligned__(16))) = {0, 1, 3, 5, 7, 11, 13, 17, 0, 2, 6, 10, 14, 22, 26, 34};
  int off = 8;
  
! int main1 (int *ib)
  {
    int i;
    int ia[N];
*************** int main (void)
*** 40,45 ****
    return 0;
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail { lp64 || vect_no_align } } } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { lp64 || vect_no_align } } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 42,52 ----
    return 0;
  }
  
! /* For targets that don't support misaligned loads we version for the load.
!    (The store is aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align } } } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-79.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-79.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-79.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-79.c	Tue Sep 20 07:40:41 2005
***************
*** 5,22 ****
  
  #define N 16
  
! typedef float afloat __attribute__ ((__aligned__(16)));
  
! afloat a[N];
! afloat b[N+4] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0};
! afloat c[N] = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
- /* Not vectorizable. Alias. */
  int
! main1 (afloat *pa, afloat *pb, afloat *pc)
  {
    int i;
!   afloat *q = pb + 4;
  
    for (i = 0; i < N; i++)
      {
--- 5,22 ----
  
  #define N 16
  
! float fa[N] __attribute__ ((__aligned__(16)));
! float fb[N+4] __attribute__ ((__aligned__(16))) = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0};
! float fc[N] __attribute__ ((__aligned__(16))) = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
! /* Like vect-80.c but the pointers are not annotated as restricted,
!    and therefore can't be antialiased.  */
  
  int
! main1 (float *pa, float *pb, float *pc)
  {
    int i;
!   float *q = pb + 4;
  
    for (i = 0; i < N; i++)
      {
*************** int main (void)
*** 37,45 ****
  { 
    check_vect ();
  
!   main1 (a, b, c);
  
    return 0;	
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail *-*-* } } } */
--- 37,50 ----
  { 
    check_vect ();
  
!   main1 (fa, fb, fc);
  
    return 0;	
  }
  
+ /* Currently the loops fail to vectorize due to aliasing problems.
+   If/when the aliasing problems are resolved, unalignment may
+   prevent vectorization on some targets.  */
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect"  { xfail *-*-* } } } */
+ /* { dg-final { scan-tree-dump-times "can't determine dependence between" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-8.c	Mon Jan  3 19:59:13 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-8.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 37,39 ****
--- 37,40 ----
  /* Need misalignment support, or cgraph to delay emitting the arrays until
     after vectorization can force-align them.  */
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-80.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-80.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-80.c	Sun Jan  9 17:30:24 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-80.c	Tue Sep  6 10:59:58 2005
***************
*** 5,17 ****
  
  #define N 16
  
! typedef float afloat __attribute__ ((__aligned__(16)));
  
! afloat fa[N];
! afloat fb[N+4] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0};
! afloat fc[N] = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
- /* Not vectorizable: not aligned pointers. */
  int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float *__restrict__ pc)
  {
--- 5,18 ----
  
  #define N 16
  
! float fa[N] __attribute__ ((__aligned__(16)));
! float fb[N+4] __attribute__ ((__aligned__(16))) = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0, 7.0, 9.0, 10.0, 11.0, 12.0, 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0};
! float fc[N] __attribute__ ((__aligned__(16))) = {0.5, 1.5, 2.5, 3.5, 4.5, 5.5, 7.5, 9.5, 10.5, 11.5, 12.5, 13.5, 14.5, 15.5};
  
! /* Check handling of accesses for which the "initial condition" -
!    the expression that represents the first location accessed - is
!    more involved than just an ssa_name.  */
  
  int
  main1 (float * __restrict__ pa, float * __restrict__ pb, float *__restrict__ pc)
  {
*************** int main (void)
*** 42,47 ****
    return 0;	
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
--- 43,54 ----
    return 0;	
  }
  
! /* For targets that don't support misaligned loads we version for the
!    all three accesses (peeling to align the store will not force the
!    two loads to be aligned).  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-82.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-82.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-82.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-82.c	Wed Apr 27 09:12:05 2005
*************** int main (void)
*** 32,35 ****
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
--- 32,36 ----
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-82_64.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-82_64.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-82_64.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-82_64.c	Wed Apr 27 09:12:05 2005
***************
*** 1,4 ****
! /* { dg-do run { target powerpc*-*-* } } */
  /* { dg-options "-O2 -ftree-vectorize -mpowerpc64 -fdump-tree-vect-stats -maltivec" } */
  
  #include <stdarg.h>
--- 1,5 ----
! /* { dg-do run { target { powerpc*-*-* && lp64 } } } */
! /* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
  /* { dg-options "-O2 -ftree-vectorize -mpowerpc64 -fdump-tree-vect-stats -maltivec" } */
  
  #include <stdarg.h>
*************** int main (void)
*** 33,36 ****
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
--- 34,38 ----
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-83.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-83.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-83.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-83.c	Wed Apr 27 09:12:05 2005
*************** int main (void)
*** 32,35 ****
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
--- 32,36 ----
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-83_64.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-83_64.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-83_64.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-83_64.c	Wed Apr 27 09:12:05 2005
***************
*** 1,4 ****
! /* { dg-do run { target powerpc*-*-* } } */
  /* { dg-options "-O2 -ftree-vectorize -mpowerpc64 -fdump-tree-vect-stats -maltivec" } */
  
  #include <stdarg.h>
--- 1,5 ----
! /* { dg-do run { target { powerpc*-*-* && lp64 } } } */
! /* { dg-do compile { target { powerpc*-*-* && ilp32 } } } */
  /* { dg-options "-O2 -ftree-vectorize -mpowerpc64 -fdump-tree-vect-stats -maltivec" } */
  
  #include <stdarg.h>
*************** int main (void)
*** 33,36 ****
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } } */
--- 34,38 ----
    return main1 ();
  } 
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-85.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-85.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-85.c	Thu Feb  3 08:19:46 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-85.c	Tue Aug 16 15:02:39 2005
***************
*** 5,12 ****
  
  #define N 16
  
- typedef int aint __attribute__ ((__aligned__(16)));
- 
  int main1 (int *a)
  {
    int i, j, k;
--- 5,10 ----
*************** int main1 (int *a)
*** 36,42 ****
  
  int main (void)
  { 
!   aint a[N];
  
    check_vect ();
  
--- 34,40 ----
  
  int main (void)
  { 
!   int a[N] __attribute__ ((__aligned__(16)));
  
    check_vect ();
  
*************** int main (void)
*** 46,49 ****
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */
--- 44,48 ----
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-86.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-86.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-86.c	Thu Feb  3 08:19:46 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-86.c	Thu Apr 21 17:51:11 2005
*************** int main (void)
*** 46,51 ****
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
--- 46,52 ----
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-87.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-87.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-87.c	Thu Feb  3 08:19:46 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-87.c	Tue Aug 16 15:02:39 2005
***************
*** 5,12 ****
  
  #define N 16
  
- typedef int aint __attribute__ ((__aligned__(16)));
- 
  int main1 (int n, int *a)
  {
    int i, j, k;
--- 5,10 ----
*************** int main1 (int n, int *a)
*** 36,42 ****
  
  int main (void)
  { 
!   aint a[N];
  
    check_vect ();
  
--- 34,40 ----
  
  int main (void)
  { 
!   int a[N] __attribute__ ((__aligned__(16)));
  
    check_vect ();
  
*************** int main (void)
*** 50,55 ****
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail alpha*-*-* } } } */
--- 48,54 ----
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-88.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-88.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-88.c	Thu Feb  3 08:19:46 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-88.c	Tue Aug 16 15:02:39 2005
***************
*** 5,12 ****
  
  #define N 16
  
- typedef int aint __attribute__ ((__aligned__(16)));
- 
  int main1 (int n, int *a)
  {
    int i, j, k;
--- 5,10 ----
*************** int main1 (int n, int *a)
*** 36,42 ****
  
  int main (void)
  { 
!   aint a[N+1];
  
    check_vect ();
  
--- 34,40 ----
  
  int main (void)
  { 
!   int a[N+1] __attribute__ ((__aligned__(16)));
  
    check_vect ();
  
*************** int main (void)
*** 50,55 ****
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail alpha*-*-* } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail alpha*-*-* } } } */
--- 48,54 ----
  }
  
  /* Fails for targets that don't vectorize PLUS (e.g alpha).  */
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-89.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-89.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-89.c	Sun Jan  9 17:30:24 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-89.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 46,48 ****
--- 46,49 ----
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-9.c	Wed Nov 17 23:47:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-9.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 35,37 ****
--- 35,38 ----
  }
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-91.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-91.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-91.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-91.c	Tue Sep 20 22:42:06 2005
***************
*** 0 ****
--- 1,64 ----
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 256
+ 
+ extern int a[N];
+ 
+ /* The alignment of 'pa' is unknown. 
+    Yet we do know that both the read access and write access have 
+    the same alignment. Peeling to align one of the accesses will 
+    align the other.  */
+ 
+ int
+ main1 (int * pa)
+ {
+   int i;
+ 
+   for (i = 0; i < N; i++)
+     {
+       pa[i] = pa[i] + 1;
+     }
+ 
+   return 0;
+ }
+ 
+ /* The alignment of 'a' is unknown. 
+    Yet we do know that both the read access and write access have 
+    the same alignment. Peeling to align one of the accesses will 
+    align the other.  */
+ 
+ int
+ main2 ()
+ {
+   int i;
+ 
+   for (i = 0; i < N; i++)
+     {
+       a[i] = a[i] + 1;
+     }
+ 
+   return 0;
+ }
+ 
+ int 
+ main3 ()
+ {
+   int i;
+ 
+   for (i = 0; i < N; i++)
+     {
+       a[i] = a[i+20];
+     }
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" { xfail vect_no_int_add } } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "accesses have the same alignment." 3 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-92.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-92.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-92.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-92.c	Tue Aug 16 15:02:39 2005
***************
*** 0 ****
--- 1,96 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 256
+ 
+ float pa[N] __attribute__ ((__aligned__(16)));
+ float pb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+ float pc[N] __attribute__ ((__aligned__(16))) = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+ 
+ /* Check handling of unaligned accesses when the misalignment is
+    known at compile time and different accesses have the same
+    misalignment (e.g. peeling to align one access will align all
+    accesses with the same misalignment.  Also, the number of 
+    peeled iterations is known in this case, and the vectorizer
+    can use this information (generate prolog and epilog loops
+    with known number of iterations, and only if needed).  */
+ 
+ int
+ main1 ()
+ {
+   int i;
+ 
+   for (i = 0; i < 5; i++)
+     {
+       pa[i+1] = pb[i+1] * pc[i+1];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < 5; i++)
+     {
+       if (pa[i+1] != (pb[i+1] * pc[i+1]))
+ 	abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ int
+ main2 ()
+ {
+   int i;
+ 
+   for (i = 0; i < 6; i++)
+     {
+       pa[i+1] = pb[i+1] * pc[i+1];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < 6; i++)
+     {
+       if (pa[i+1] != (pb[i+1] * pc[i+1]))
+ 	abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ int
+ main3 (int n)
+ {
+   int i;
+ 
+   for (i = 0; i < n; i++)
+     {
+       pa[i+1] = pb[i+1] * pc[i+1];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < n; i++)
+     {
+       if (pa[i+1] != (pb[i+1] * pc[i+1]))
+ 	abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   int i;
+ 
+   check_vect ();
+ 
+   main1 ();
+   main2 ();
+   main3 (N-1);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 3 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-93.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-93.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-93.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-93.c	Tue Aug 16 15:02:39 2005
***************
*** 0 ****
--- 1,76 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 3001
+ 
+ 
+ int
+ main1 (float *pa)
+ {
+   int i;
+ 
+   for (i = 0; i < 3001; i++)
+     {
+       pa[i] = 2.0;
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < 3001; i++)
+     {
+       if (pa[i] != 2.0)
+ 	abort ();
+     }
+ 
+   for (i = 1; i <= 10; i++)
+     {
+       pa[i] = 3.0;
+     }
+ 
+   /* check results:  */
+   for (i = 1; i <= 10; i++)
+     {
+       if (pa[i] != 3.0)
+ 	abort ();
+     }
+   
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float b[N] __attribute__ ((__aligned__(16)));
+ 
+   check_vect ();
+ 
+   /* from bzip2: */
+   for (i=0; i<N; i++) b[i] = i;
+   a[0] = 0;
+   for (i = 1; i <= 256; i++) a[i] = b[i-1];
+ 
+   /* check results:  */
+   for (i = 1; i <= 256; i++)
+     {
+       if (a[i] != i-1)
+ 	abort ();
+     }
+   if (a[0] != 0)
+     abort ();
+ 
+   main1 (a);
+ 
+   return 0;
+ }
+ 
+ /* in main1 */
+ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target vect_no_align } } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail vect_no_align } } } */
+ 
+ /* in main */
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-95.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-95.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-95.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-95.c	Tue Sep 20 08:12:46 2005
***************
*** 0 ****
--- 1,68 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 256
+ 
+ void bar (float *pd, float *pa, float *pb, float *pc) 
+ {
+   int i;
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     {
+       if (pa[i] != (pb[i] * pc[i]))
+ 	abort ();
+       if (pd[i] != 5.0)
+ 	abort ();
+     }
+ 
+   return;
+ }
+ 
+ 
+ int
+ main1 (int n, float * __restrict__ pd, float * __restrict__ pa, float * __restrict__ pb, float * __restrict__ pc)
+ {
+   int i;
+ 
+   for (i = 0; i < n; i++)
+     {
+       pa[i] = pb[i] * pc[i];
+       pd[i] = 5.0;
+     }
+ 
+   bar (pd,pa,pb,pc);
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   int i;
+   float a[N] __attribute__ ((__aligned__(16)));
+   float d[N+1] __attribute__ ((__aligned__(16)));
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57};
+   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19};
+ 
+   check_vect ();
+ 
+   main1 (N,&d[1],a,b,c);
+   main1 (N-2,&d[1],a,b,c);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ 
+ /* For targets that support unaligned loads we version for the two unaligned 
+    stores and generate misaligned accesses for the loads. For targets that 
+    don't support unaligned loads we version for all four accesses.  */
+ 
+ /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
+ /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 2 "vect" { xfail vect_no_align } } } */
+ /*  { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" { target vect_no_align } } } */
+ /*  { dg-final { scan-tree-dump-times "Alignment of access forced using versioning" 4 "vect" { target vect_no_align } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-96.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-96.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-96.c	Sat Feb 12 19:33:44 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-96.c	Tue Sep  6 10:59:58 2005
*************** int main (void)
*** 37,42 ****
    return main1 (8);
  }
  
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } } */
--- 37,48 ----
    return main1 (8);
  }
  
! /* The store is unaligned, the load is aligned. For targets that support unaligned
!    loads, peel to align the store and generated unaligned access for the loads.
!    For targets that don't support unaligned loads, version for the store.  */
! 
! /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
! /* { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 1 "vect" { target vect_no_align } } } */
! /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-97.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-97.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-97.c	Sat Feb 12 12:57:12 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-97.c	Tue Sep 20 07:40:41 2005
***************
*** 3,22 ****
  #include <stdarg.h>
  #include "tree-vect.h"
  
- typedef char achar __attribute__ ((__aligned__(16)));
- 
  #define N 16
   
  int main1 ()
  {  
    struct {
!     achar *p;
!     achar *q;
    } s;
    int i;
!   achar x[N];
!   achar cb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  
    s.p = x;
    for (i = 0; i < N; i++)
      {
--- 3,23 ----
  #include <stdarg.h>
  #include "tree-vect.h"
  
  #define N 16
   
  int main1 ()
  {  
    struct {
!     char *p;
!     char *q;
    } s;
    int i;
!   char x[N] __attribute__ ((__aligned__(16)));
!   char cb[N] __attribute__ ((__aligned__(16))) = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
  
+   /* Check that datarefs analysis can determine that the access via pointer
+      s.p is based off array x, which enables us to antialias this access from
+      the access to array cb.  */
    s.p = x;
    for (i = 0; i < N; i++)
      {
*************** int main1 ()
*** 30,35 ****
--- 31,39 ----
          abort ();
      }
  
+   /* Check that datarefs analysis can determine that the access via pointer
+      s.p is based off array x, and that the access via pointer s.q is based off
+      array cb, which enables us to antialias these two accesses.  */
    s.q = cb;
    for (i = 0; i < N; i++)
      {
*************** int main (void)
*** 56,58 ****
--- 60,63 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-98.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-98.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-98.c	Thu Feb 17 11:37:03 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-98.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 38,40 ****
--- 38,41 ----
  
  /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
  /* { dg-final { scan-tree-dump-times "not vectorized: complicated access pattern" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-99.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-99.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-99.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-99.c	Sat Apr 23 21:33:15 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ int ca[100];
+ 
+ void foo (int n)
+ {
+   unsigned int i;
+ 
+   for (i = 0; i < n; i++)
+     ca[i] = 2;
+ }
+ 
+ int main (void)
+ {
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-all.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-all.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-all.c	Sun Jan  9 17:30:24 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-all.c	Thu Mar 31 18:34:19 2005
*************** int main (void)
*** 215,217 ****
--- 215,218 ----
  /* { dg-final { scan-tree-dump-times "vectorized 10 loops" 1 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
  /* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 0 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-dv-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-dv-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-dv-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-dv-1.c	Tue May  3 00:19:38 2005
***************
*** 0 ****
--- 1,22 ----
+ /* Test compiler crash when dependence analyzer can not represent
+    dependence relation by distance vector.  */
+ /* { dg-do compile } */
+ /* { dg-require-effective-target vect_int } */
+ 
+ int x[199];
+ 
+ void foo()
+   
+ {
+   int t,j;
+ 
+   for (j=99;j>0;j--) 
+     x [j+j]=x[j];
+ 
+   for (j=198;j>=100;j--) 
+     if(x[j]) 
+       {
+ 	x[j-63]=x[j-3]-x[j];
+       }
+ }
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-dv-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-dv-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-dv-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-dv-2.c	Wed Sep 21 10:26:39 2005
***************
*** 0 ****
--- 1,77 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 64
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N];
+   int B[N];
+   int C[N];
+   int D[N];
+ 
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < N; i++)
+     {
+       A[i] = i;
+       B[i] = i;
+       C[i] = i;
+       D[i] = i;
+     }
+ 
+   /* Vectorizable */
+   for (i = 0; i < N-20; i++)
+     {
+       A[i] = A[i+20];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < N-20; i++)
+     {
+       if (A[i] != D[i+20])
+ 	abort ();
+     }
+ 
+   /* Vectorizable */
+   for (i = 0; i < 16; i++)
+     {
+       B[i] = B[i] + 5;
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < 16; i++)
+     {
+       if (B[i] != C[i] + 5)
+ 	abort ();
+     }
+ 
+   /* Not vectorizable */
+   for (i = 0; i < 4; i++)
+     {
+       C[i] = C[i+3];
+     }
+ 
+   /* check results:  */
+   for (i = 0; i < 4; i++)
+     {
+       if (C[i] != D[i+3])
+ 	abort ();
+     }
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" } } */
+ /* { dg-final { scan-tree-dump-times "accesses have the same alignment." 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-10.c	Tue May  3 00:19:38 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR 21272 */
+ /* { dg-do compile } */
+ double
+ foo (int j, double *v, double x)
+ {
+   int i;
+   for (i = 0; i < j; i++)
+     if (v[i] < x)
+       x = v[i];
+   return x;
+ }
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-2.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+   int B[N] = {0,0,42,42,42,0,0,0,0,0,42,42,42,42,42,0};
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] >= MAX ? MAX : 0); 
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-3.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+   int B[N] = {0,0,0,42,42,0,0,0,0,0,42,42,42,42,42,0};
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] > MAX ? MAX : 0); 
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-4.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+   int B[N] = {42,42,42,0,0,42,42,42,42,42,0,0,0,0,0,42};
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] <= MAX ? MAX : 0); 
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-5.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+   int B[N] = {42,42,0,0,0,42,42,42,42,42,0,0,0,0,0,42};
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] < MAX ? MAX : 0); 
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-6.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N] = {36,39,42,45,43,32,21,42,23,34,45,56,67,42,89,11};
+   int B[N] = {42,42,0,42,42,42,42,0,42,42,42,42,42,0,42,42};
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] != MAX ? MAX : 0); 
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-7.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int main ()
+ {  
+   int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,42,78,89,11};
+   int B[N] = {42,42,0,42,42,42,42,42,42,42,42,42,0,42,42,42};
+   int i, j;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] == MAX ? 0 : MAX); 
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ 
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-ifcvt-9.c	Thu Jun 16 23:39:51 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-require-effective-target vect_condition } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define MAX 42
+ 
+ extern void abort(void); 
+ 
+ int A[N] = {36,39,42,45,43,32,21,12,23,34,45,56,67,78,89,11};
+ int B[N] = {0,0,42,42,42,0,0,0,0,0,42,42,42,42,42,0};
+ void foo ()  __attribute__((always_inline));
+ void foo ()
+ {  
+   int i, j;
+ 
+   for (i = 0; i < 16; i++)
+     A[i] = ( A[i] >= MAX ? MAX : 0); 
+ }
+ 
+ int main ()
+ {
+ 
+   int i, j;
+   check_vect ();
+   foo ();
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-none.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-none.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-none.c	Sun Jan  9 17:30:24 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-none.c	Thu Jan  1 00:00:00 1970
***************
*** 1,184 ****
- /* { dg-do compile } */
- /* { dg-require-effective-target vect_int } */
- /* { dg-require-effective-target vect_float } */
- 
- #define N 16
- 
- extern void abort (void);
- 
- int iadd_results[N] = {0,6,12,18,24,30,36,42,48,54,60,66,72,78,84,90};
- float fadd_results[N] = {0.0,6.0,12.0,18.0,24.0,30.0,36.0,42.0,48.0,54.0,60.0,66.0,72.0,78.0,84.0,90.0};
- float fmul_results[N] = {0.0,3.0,12.0,27.0,48.0,75.0,108.0,147.0,192.0,243.0,300.0,363.0,432.0,507.0,588.0,675.0};
- float fresults1[N] = {192.00,240.00,288.00,336.00,384.00,432.00,480.00,528.00,48.00,54.00,60.00,66.00,72.00,78.00,84.00,90.00};
- float fresults2[N] = {0.00,6.00,12.00,18.00,24.00,30.00,36.00,42.00,0.00,54.00,120.00,198.00,288.00,390.00,504.00,630.00};
- 
- /****************************************************/
- void icheck_results (int *a, int *results)
- {
-   int i;
-   for (i = 0; i < N; i++)
-     {
-       if (a[i] != results[i])
- 	abort ();
-     }
- }
- 
- void fcheck_results (float *a, float *results)
- {
-   int i;
-   for (i = 0; i < N; i++)
-     {
-       if (a[i] != results[i])
- 	abort ();
-     }
- }   
- 
- void 
- fbar_mul (float *a)
- {
-   fcheck_results (a, fmul_results);
- } 
- 
- void 
- fbar_add (float *a)
- {
-   fcheck_results (a, fadd_results);
- } 
- 
- void 
- ibar_add (int *a)
- {
-   icheck_results (a, iadd_results);
- } 
- 
- void 
- fbar1 (float *a)
- {
-   fcheck_results (a, fresults1);
- } 
- 
- void 
- fbar2 (float *a)
- {
-   fcheck_results (a, fresults2);
- } 
- 
- 
- /* None of the loops below is currently vectorizable. The vectorizer will
-    be enhanced to vectorize most of these loops.  */
- 
- int
- foo (int n)
- {
-   int i,j;
-   float a[N];
-   float e[N];
-   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
-   float d[N] = {0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30};
-   short sc[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-   short sb[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-   short sa[N];
-   int ic[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-   int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
-   int ia[N];
-   int diff = 0;
-   char cb[N];
-   char cc[N];
-   char image[N][N];
-   char block[N][N];
- 
- 
-   /* Test 1 - type cast.  */
-   for (i = 0; i < N; i++)
-     {
-       ia[i] = (int) sb[i];
-     }
-   fbar (a);
- 
- 
-   /* Test 2 - strided access pattern.  */
-   for (i = 0; i < N/2; i++)
-     {
-       a[i] = b[2*i+1] * c[2*i+1] - b[2*i] * c[2*i];
-       d[i] = b[2*i] * c[2*i+1] + b[2*i+1] * c[2*i];
-     }
-   fbar (a);
- 
- 
-   /* Test 3 - no target support for integer mult.  */
-   for (i = 0; i < N; i++)
-     {
-       ia[i] = ib[i] * ic[i];
-     }
-   ibar (ia);
- 
- 
-   /* Test 4 - two types with different nunits in vector.  */
-   for (i = 0; i < N; i++)
-     {
-       ia[i] = ib[i] + ic[i];
-       sa[i] = sb[i] + sc[i];
-     }
-   ibar (ia);
-   sbar (sa);
- 
- 
-   /* Test 5 - too conservative dependence test.  */
-   for (i = 0; i < N; i++){
-     a[i] = b[i] + c[i];
-     a[i+1] = b[i] + c[i];
-   }
-   fbar (a);
- 
- 
-   /* Test 6 - condition in loop.  */
-   for (i = 0; i < N; i++){
-     a[i] = (b[i] > 0 ? b[i] : 0);
-   }
-   fbar (a);
- 
- 
-   /* Test 7 - cross-iteration cycle.  */
-   diff = 0;
-   for (i = 0; i < N; i++) {
-     diff += (cb[i] - cc[i]);
-   }
-   ibar (&diff);
- 
- 
-   /* Test 8 - outer-loop not attempted; inner-loop has cross 
-      iteration cycle and multi-dimensional arrays.  */
-   diff = 0;
-   for (i = 0; i < N; i++) {
-     for (i = 0; i < N; i++) {
-       diff += (image[i][j] - block[i][j]);
-     }
-   }
-   ibar (&diff);
- 
- 
-   /* Test 9 - induction.  */
-   for ( i = 0; i < N; i++) {
-     a[i] = i;
-   }
-   fbar (a);
- 
- 
-   /* Test 10 - reverse access and forward access.  */
-   for (i = N; i > 0; i--)
-     {
-       a[N-i] = b[i-1];
-     }
-   /* check results:  */
-   for (i = 0; i <N; i++)
-     {
-       if (a[i] != b[N-1-i])
- 	abort ();
-     }
- 
-   return 0;
- }
- 
- /* { dg-final { scan-tree-dump-times "vectorized " 3 "vect"} } */
- /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 3 "vect"} } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-1.c	Wed Jun 29 18:25:12 2005
***************
*** 0 ****
--- 1,54 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ /* Test vectorization of reduction of unsigned-int.  */
+ 
+ void main1 (unsigned int x, unsigned int max_result, unsigned int min_result)
+ {
+   int i;
+   unsigned int ub[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   unsigned int uc[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   unsigned int udiff = 2;
+   unsigned int umax = x;
+   unsigned int umin = x;
+ 
+   /* Summation.  */
+   for (i = 0; i < N; i++) {
+     udiff += (ub[i] - uc[i]);
+   }
+ 
+   /* Maximum.  */
+   for (i = 0; i < N; i++) {
+     umax = umax < uc[i] ? uc[i] : umax;
+   }
+ 
+   /* Minimum.  */
+   for (i = 0; i < N; i++) {
+     umin = umin > uc[i] ? uc[i] : umin;
+   }
+ 
+   /* check results:  */
+   if (udiff != DIFF)
+     abort ();
+   if (umax != max_result)
+     abort ();
+   if (umin != min_result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100, 1);
+   main1 (0, 15, 0);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-1char.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-1char.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-1char.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-1char.c	Mon Dec  5 18:54:22 2005
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ void
+ main1 (unsigned char x, unsigned char max_result, unsigned char min_result)
+ {
+   int i;
+   unsigned char ub[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   unsigned char uc[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   unsigned char udiff = 2;
+   unsigned char umax = x;
+   unsigned char umin = x;
+ 
+   for (i = 0; i < N; i++) {
+     udiff += (unsigned char)(ub[i] - uc[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     umax = umax < uc[i] ? uc[i] : umax;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     umin = umin > uc[i] ? uc[i] : umin;
+   }
+ 
+   /* check results:  */
+   if (udiff != DIFF)
+     abort ();
+   if (umax != max_result)
+     abort ();
+   if (umin != min_result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100, 1);
+   main1 (0, 15, 0);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-1short.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-1short.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-1short.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-1short.c	Mon Dec  5 18:54:22 2005
***************
*** 0 ****
--- 1,50 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ void
+ main1 (unsigned short x, unsigned short max_result, unsigned short min_result)
+ {
+   int i;
+   unsigned short ub[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   unsigned short uc[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   unsigned short  udiff = 2;
+   unsigned short umax = x;
+   unsigned short umin = x;
+ 
+   for (i = 0; i < N; i++) {
+     udiff += (unsigned short)(ub[i] - uc[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     umax = umax < uc[i] ? uc[i] : umax;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     umin = umin > uc[i] ? uc[i] : umin;
+   }
+ 
+   /* check results:  */
+   if (udiff != DIFF)
+     abort ();
+   if (umax != max_result)
+     abort ();
+   if (umin != min_result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100, 1);
+   main1 (0, 15, 0);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail vect_no_int_max } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-2.c	Wed Jun 29 18:25:12 2005
***************
*** 0 ****
--- 1,51 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 240
+ 
+ /* Test vectorization of reduction of signed-int.  */
+ 
+ void main1 (int x, int max_result, int min_result)
+ {
+   int i;
+   int b[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   int c[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   int diff = 0;
+   int max = x;
+   int min = x;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (b[i] - c[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != min_result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100, 1);
+   main1 (0, 15, 0);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail { vect_no_int_add || vect_no_int_max } } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-2char.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-2char.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-2char.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-2char.c	Mon Jan  9 04:37:09 2006
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 121
+ 
+ void main1 (signed char x, signed char max_result, signed char min_result)
+ {
+   int i;
+   signed char b[N] = {1,2,3,6,8,10,12,14,16,18,20,22,24,26,28,30};
+   signed char c[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   signed char diff = 2;
+   signed char max = x;
+   signed char min = x;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (signed char)(b[i] - c[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != min_result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100, 1);
+   main1 (0, 15, 0);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-2short.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-2short.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-2short.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-2short.c	Mon Jan  9 04:37:09 2006
***************
*** 0 ****
--- 1,48 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ void main1 (short x, short max_result, short min_result)
+ {
+   int i;
+   short b[N] = {1,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   short c[N] = {1,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   short diff = 2;
+   short max = x;
+   short min = x;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (short)(b[i] - c[i]);
+   }
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != min_result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100, 100, 1);
+   main1 (0, 15, 0);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" { xfail *-*-* } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-3.c	Wed Jun 29 18:25:12 2005
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ 
+ /* Test vectorization of reduction of unsigned-int in the presence
+    of unknown-loop-bound.  */
+ 
+ int main1 (int n, int res)
+ {
+   int i;
+   unsigned int ub[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   unsigned int uc[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   unsigned int udiff;
+ 
+   udiff = 0;
+   for (i = 0; i < n; i++) {
+     udiff += (ub[i] - uc[i]);
+   }
+ 
+   /* check results:  */
+   if (udiff != res)
+     abort ();
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (N, 240);
+   main1 (N-1, 210);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_int_add } } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-6.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-require-effective-target vect_float } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 16
+ #define DIFF 242
+ 
+ int main1 (float x, float max_result)
+ {
+   int i;
+   float b[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45};
+   float c[N] = {0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
+   float diff = 2;
+   float max = x;
+   float min = 10;
+ 
+   for (i = 0; i < N; i++) {
+     diff += (b[i] - c[i]);
+   }
+ 
+   for (i = 0; i < N; i++) {
+     max = max < c[i] ? c[i] : max;
+   }
+ 
+   for (i = 0; i < N; i++) {
+     min = min > c[i] ? c[i] : min;
+   }
+ 
+   /* check results:  */
+   if (diff != DIFF)
+     abort ();
+   if (max != max_result)
+     abort ();
+   if (min != 0)
+     abort ();
+ 
+   return 0;
+ }
+ 
+ int main (void)
+ { 
+   check_vect ();
+   
+   main1 (100 ,100);
+   main1 (0, 15);
+   return 0;
+ }
+ 
+ /* need -ffast-math to vectorizer these loops.  */
+ /* { dg-final { scan-tree-dump-times "vectorized 0 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-7.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-7.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include "tree-vect.h"
+ 
+ #define N 32
+ 
+ extern void abort (void);
+ typedef unsigned char T;
+ 
+ void
+ testmax (const T *c, T init, T result)
+ {
+   T lc[N], accum = init;
+   int i;
+ 
+   __builtin_memcpy (lc, c, sizeof(lc));
+ 
+   for (i = 0; i < N; i++) {
+     accum = accum < lc[i] ? lc[i] : accum;
+   }
+ 
+   if (accum != result)
+     abort ();
+ }
+ 
+ void
+ testmin (const T *c, T init, T result)
+ {
+   T lc[N], accum = init;
+   int i;
+ 
+   __builtin_memcpy (lc, c, sizeof(lc));
+ 
+   for (i = 0; i < N; i++) {
+     accum = accum > lc[i] ? lc[i] : accum;
+   }
+ 
+   if (accum != result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   static unsigned char const A[N] = {
+     0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+     0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+     0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f
+   };
+ 
+   static unsigned char const B[N] = {
+     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+     0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+     0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f
+   };
+ 
+   static unsigned char const C[N] = {
+     0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
+     0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+   };
+ 
+   check_vect ();
+   
+   testmin (A, 10, 1);
+   testmin (B, 0x7f, 0x70);
+   testmin (C, 0x7f, 0x09);
+ 
+   testmax (A, 0, 0x7f);
+   testmax (B, 0, 0x8f);
+   testmax (C, 0, 0xff);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-8.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-8.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include "tree-vect.h"
+ 
+ #define N 32
+ 
+ extern void abort (void);
+ typedef signed char T;
+ 
+ void
+ testmax (const T *c, T init, T result)
+ {
+   T lc[N], accum = init;
+   int i;
+ 
+   __builtin_memcpy (lc, c, sizeof(lc));
+ 
+   for (i = 0; i < N; i++) {
+     accum = accum < lc[i] ? lc[i] : accum;
+   }
+ 
+   if (accum != result)
+     abort ();
+ }
+ 
+ void
+ testmin (const T *c, T init, T result)
+ {
+   T lc[N], accum = init;
+   int i;
+ 
+   __builtin_memcpy (lc, c, sizeof(lc));
+ 
+   for (i = 0; i < N; i++) {
+     accum = accum > lc[i] ? lc[i] : accum;
+   }
+ 
+   if (accum != result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   static signed char const A[N] = {
+     0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08,
+     0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+     0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f
+   };
+ 
+   static signed char const B[N] = {
+     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+     0x78, 0x79, 0x7a, 0x7b, 0x7c, 0x7d, 0x7e, 0x7f,
+     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+     0x88, 0x89, 0x8a, 0x8b, 0x8c, 0x8d, 0x8e, 0x8f
+   };
+ 
+   static signed char const C[N] = {
+     0xff, 0xfe, 0xfd, 0xfc, 0xfb, 0xfa, 0xf9, 0xf8,
+     0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10,
+     0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87,
+     0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
+   };
+ 
+   check_vect ();
+   
+   testmin (A, 0, 0);
+   testmin (B, 0, 0x80);
+   testmin (C, 0, 0x80);
+ 
+   testmax (A, 0, 0x7f);
+   testmax (B, 0, 0x7f);
+   testmax (C, 0, 0x77);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-9.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-reduc-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-reduc-9.c	Tue Sep 13 23:46:26 2005
***************
*** 0 ****
--- 1,78 ----
+ /* { dg-require-effective-target vect_int } */
+ 
+ #include "tree-vect.h"
+ 
+ #define N 32
+ 
+ extern void abort (void);
+ typedef unsigned short T;
+ 
+ void
+ testmax (const T *c, T init, T result)
+ {
+   T lc[N], accum = init;
+   int i;
+ 
+   __builtin_memcpy (lc, c, sizeof(lc));
+ 
+   for (i = 0; i < N; i++) {
+     accum = accum < lc[i] ? lc[i] : accum;
+   }
+ 
+   if (accum != result)
+     abort ();
+ }
+ 
+ void
+ testmin (const T *c, T init, T result)
+ {
+   T lc[N], accum = init;
+   int i;
+ 
+   __builtin_memcpy (lc, c, sizeof(lc));
+ 
+   for (i = 0; i < N; i++) {
+     accum = accum > lc[i] ? lc[i] : accum;
+   }
+ 
+   if (accum != result)
+     abort ();
+ }
+ 
+ int main (void)
+ { 
+   static unsigned short const A[N] = {
+     0x0001, 0x0002, 0x0003, 0x0004, 0x0005, 0x0006, 0x0007, 0x0008,
+     0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
+     0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700,
+     0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff
+   };
+ 
+   static unsigned short const B[N] = {
+     0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700,
+     0x7ff8, 0x7ff9, 0x7ffa, 0x7ffb, 0x7ffc, 0x7ffd, 0x7ffe, 0x7fff,
+     0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007,
+     0x8008, 0x8009, 0x800a, 0x800b, 0x800c, 0x800d, 0x800e, 0x800f
+   };
+ 
+   static unsigned short const C[N] = {
+     0xffff, 0xfffe, 0xfffd, 0xfffc, 0xfffb, 0xfffa, 0xfff9, 0xfff8,
+     0x0009, 0x000a, 0x000b, 0x000c, 0x000d, 0x000e, 0x000f, 0x0010,
+     0x8000, 0x8001, 0x8002, 0x8003, 0x8004, 0x8005, 0x8006, 0x8007,
+     0x7000, 0x7100, 0x7200, 0x7300, 0x7400, 0x7500, 0x7600, 0x7700,
+   };
+ 
+   check_vect ();
+   
+   testmin (A, 10, 1);
+   testmin (B, 0x7fff, 0x7000);
+   testmin (C, 0x7fff, 0x0009);
+ 
+   testmax (A, 0, 0x7fff);
+   testmax (B, 0, 0x800f);
+   testmax (C, 0, 0xffff);
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-shift-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-shift-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect-shift-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect-shift-1.c	Wed Oct  5 08:47:29 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-require-effective-target vect_shift } */
+ 
+ #include <stdarg.h>
+ #include "tree-vect.h"
+ 
+ #define N 4
+ 
+ int main ()
+ {
+   unsigned int A[N] = { 0x08000000, 0x08000001, 0x0ff0000ff, 0xf0000001 };
+   unsigned int B[N] = { 0x01000000, 0x01000000, 0x01fe0001f, 0x1e000000 };
+   int i;
+ 
+   check_vect ();
+ 
+   for (i = 0; i < N; i++)
+     A[i] = A[i] >> 3;
+ 
+   /* check results:  */
+   for (i = 0; i < N; i++)
+     if (A[i] != B[i])
+       abort ();
+ 
+   return 0;
+ }
+ 
+ /* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+ /* { dg-final { cleanup-tree-dump "vect" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect.exp gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vect/vect.exp	Mon Feb  7 10:07:07 2005
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vect/vect.exp	Tue Sep  6 10:59:58 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
*************** load_lib gcc-dg.exp
*** 23,30 ****
  set DEFAULT_VECTCFLAGS ""
  
  # These flags are used for all targets.
! 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.
--- 23,29 ----
  set DEFAULT_VECTCFLAGS ""
  
  # These flags are used for all targets.
! lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize"
  
  # If the target system supports vector instructions, the default action
  # for a test is 'run', otherwise it's 'compile'.  Save current default.
*************** if [istarget "powerpc*-*-*"] {
*** 75,84 ****
  # Initialize `dg'.
  dg-init
  
  # Main loop.
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]]  \
  	"" $DEFAULT_VECTCFLAGS
  
  # Clean up.
  set dg-do-what-default ${save-dg-do-what-default}
  
--- 74,112 ----
  # Initialize `dg'.
  dg-init
  
+ # Tests that should be run without generating dump info
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/nodump-*.\[cS\]]]  \
+ 	"" $DEFAULT_VECTCFLAGS
+ 
+ lappend DEFAULT_VECTCFLAGS "-ftree-vectorizer-verbose=4" "-fdump-tree-vect-stats"
+ 
  # Main loop.
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/pr*.\[cS\]]]  \
! 	"" $DEFAULT_VECTCFLAGS
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/vect-*.\[cS\]]]  \
! 	"" $DEFAULT_VECTCFLAGS
! 
! #### Tests with special options
! global SAVED_DEFAULT_VECTCFLAGS
! set SAVED_DEFAULT_VECTCFLAGS $DEFAULT_VECTCFLAGS
! 
! # -ffast-math tests
! set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
! lappend DEFAULT_VECTCFLAGS "-ffast-math"
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/fast-math-vect*.\[cS\]]]  \
! 	"" $DEFAULT_VECTCFLAGS
! 
! # -ftrapv tests
! set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS
! lappend DEFAULT_VECTCFLAGS "-ftrapv"
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/trapv-vect*.\[cS\]]]  \
  	"" $DEFAULT_VECTCFLAGS
  
+ # With -Os
+ lappend DEFAULT_VECTCFLAGS "-Os"
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/Os-vect-*.\[cS\]]]  \
+         "" $DEFAULT_VECTCFLAGS
+ 
  # Clean up.
  set dg-do-what-default ${save-dg-do-what-default}
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/visibility-d.c gcc-4.1.0/gcc/testsuite/gcc.dg/visibility-d.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/visibility-d.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/visibility-d.c	Mon Jul 25 07:38:58 2005
***************
*** 0 ****
--- 1,205 ----
+ /* PR middle-end/20303 */
+ /* Test nesting of #pragma GCC visibility. */
+ /* { dg-do compile } */
+ /* { dg-require-visibility "" } */
+ /* { dg-final { scan-not-hidden "foo00" } } */
+ /* { dg-final { scan-hidden "foo01" } } */
+ /* { dg-final { scan-not-hidden "foo02" } } */
+ /* { dg-final { scan-hidden "foo03" } } */
+ /* { dg-final { scan-not-hidden "foo04" } } */
+ /* { dg-final { scan-not-hidden "foo05" } } */
+ /* { dg-final { scan-not-hidden "foo06" } } */
+ /* { dg-final { scan-hidden "foo07" } } */
+ /* { dg-final { scan-not-hidden "foo08" } } */
+ /* { dg-final { scan-hidden "foo09" } } */
+ /* { dg-final { scan-not-hidden "foo10" } } */
+ /* { dg-final { scan-hidden "foo11" } } */
+ /* { dg-final { scan-hidden "foo12" } } */
+ /* { dg-final { scan-hidden "foo13" } } */
+ /* { dg-final { scan-not-hidden "foo14" } } */
+ /* { dg-final { scan-hidden "foo15" } } */
+ /* { dg-final { scan-not-hidden "foo16" } } */
+ /* { dg-final { scan-hidden "foo17" } } */
+ /* { dg-final { scan-not-hidden "foo18" } } */
+ /* { dg-final { scan-hidden "foo19" } } */
+ /* { dg-final { scan-not-hidden "foo20" } } */
+ /* { dg-final { scan-hidden "foo21" } } */
+ /* { dg-final { scan-not-hidden "foo22" } } */
+ /* { dg-final { scan-hidden "foo23" } } */
+ /* { dg-final { scan-not-hidden "foo24" } } */
+ /* { dg-final { scan-hidden "foo25" } } */
+ /* { dg-final { scan-not-hidden "foo26" } } */
+ /* { dg-final { scan-hidden "foo27" } } */
+ /* { dg-final { scan-not-hidden "foo28" } } */
+ /* { dg-final { scan-hidden "foo29" } } */
+ /* { dg-final { scan-not-hidden "foo30" } } */
+ /* { dg-final { scan-hidden "foo31" } } */
+ /* { dg-final { scan-not-hidden "foo32" } } */
+ /* { dg-final { scan-hidden "foo33" } } */
+ /* { dg-final { scan-not-hidden "foo34" } } */
+ /* { dg-final { scan-hidden "foo35" } } */
+ /* { dg-final { scan-not-hidden "foo36" } } */
+ /* { dg-final { scan-hidden "foo37" } } */
+ /* { dg-final { scan-not-hidden "foo38" } } */
+ /* { dg-final { scan-hidden "foo39" } } */
+ /* { dg-final { scan-not-hidden "foo40" } } */
+ /* { dg-final { scan-hidden "foo41" } } */
+ /* { dg-final { scan-not-hidden "foo42" } } */
+ /* { dg-final { scan-hidden "foo43" } } */
+ /* { dg-final { scan-not-hidden "foo44" } } */
+ /* { dg-final { scan-hidden "foo45" } } */
+ /* { dg-final { scan-hidden "foo46" } } */
+ /* { dg-final { scan-hidden "foo47" } } */
+ /* { dg-final { scan-not-hidden "foo48" } } */
+ /* { dg-final { scan-hidden "foo49" } } */
+ /* { dg-final { scan-not-hidden "foo50" } } */
+ /* { dg-final { scan-hidden "foo51" } } */
+ /* { dg-final { scan-not-hidden "foo52" } } */
+ /* { dg-final { scan-not-hidden "foo53" } } */
+ /* { dg-final { scan-not-hidden "foo54" } } */
+ /* { dg-final { scan-hidden "foo55" } } */
+ /* { dg-final { scan-not-hidden "foo56" } } */
+ /* { dg-final { scan-hidden "foo57" } } */
+ /* { dg-final { scan-not-hidden "foo58" } } */
+ /* { dg-final { scan-hidden "foo59" } } */
+ 
+ #pragma GCC visibility push(default)
+ void foo00();
+ #pragma GCC visibility push(hidden)
+ void foo01();
+ #pragma GCC visibility push(default)
+ void foo02();
+ #pragma GCC visibility push(hidden)
+ void foo03();
+ #pragma GCC visibility push(default)
+ void foo04();
+ #pragma GCC visibility push(default)
+ void foo05();
+ #pragma GCC visibility push(default)
+ void foo06();
+ #pragma GCC visibility push(hidden)
+ void foo07();
+ #pragma GCC visibility push(default)
+ void foo08();
+ #pragma GCC visibility push(hidden)
+ void foo09();
+ #pragma GCC visibility push(default)
+ void foo10();
+ #pragma GCC visibility push(hidden)
+ void foo11();
+ #pragma GCC visibility push(hidden)
+ void foo12();
+ #pragma GCC visibility push(hidden)
+ void foo13();
+ #pragma GCC visibility push(default)
+ void foo14();
+ #pragma GCC visibility push(hidden)
+ void foo15();
+ #pragma GCC visibility push(default)
+ void foo16();
+ #pragma GCC visibility push(hidden)
+ void foo17();
+ #pragma GCC visibility push(default)
+ void foo18();
+ #pragma GCC visibility push(hidden)
+ void foo19();
+ #pragma GCC visibility push(default)
+ void foo20();
+ #pragma GCC visibility push(hidden)
+ void foo21();
+ #pragma GCC visibility push(default)
+ void foo22();
+ #pragma GCC visibility push(hidden)
+ void foo23();
+ #pragma GCC visibility push(default)
+ void foo24();
+ #pragma GCC visibility push(hidden)
+ void foo25();
+ #pragma GCC visibility push(default)
+ void foo26();
+ #pragma GCC visibility push(hidden)
+ void foo27();
+ #pragma GCC visibility push(default)
+ void foo28();
+ #pragma GCC visibility push(hidden)
+ void foo29();
+ #pragma GCC visibility pop
+ void foo30();
+ #pragma GCC visibility pop
+ void foo31();
+ #pragma GCC visibility pop
+ void foo32();
+ #pragma GCC visibility pop
+ void foo33();
+ #pragma GCC visibility pop
+ void foo34();
+ #pragma GCC visibility pop
+ void foo35();
+ #pragma GCC visibility pop
+ void foo36();
+ #pragma GCC visibility pop
+ void foo37();
+ #pragma GCC visibility pop
+ void foo38();
+ #pragma GCC visibility pop
+ void foo39();
+ #pragma GCC visibility pop
+ void foo40();
+ #pragma GCC visibility pop
+ void foo41();
+ #pragma GCC visibility pop
+ void foo42();
+ #pragma GCC visibility pop
+ void foo43();
+ #pragma GCC visibility pop
+ void foo44();
+ #pragma GCC visibility pop
+ void foo45();
+ #pragma GCC visibility pop
+ void foo46();
+ #pragma GCC visibility pop
+ void foo47();
+ #pragma GCC visibility pop
+ void foo48();
+ #pragma GCC visibility pop
+ void foo49();
+ #pragma GCC visibility pop
+ void foo50();
+ #pragma GCC visibility pop
+ void foo51();
+ #pragma GCC visibility pop
+ void foo52();
+ #pragma GCC visibility pop
+ void foo53();
+ #pragma GCC visibility pop
+ void foo54();
+ #pragma GCC visibility pop
+ void foo55();
+ #pragma GCC visibility pop
+ void foo56();
+ #pragma GCC visibility pop
+ void foo57();
+ #pragma GCC visibility pop
+ void foo58();
+ #pragma GCC visibility push (hidden)
+ void foo59();
+ #pragma GCC visibility pop
+ #pragma GCC visibility pop
+ 
+ #define D(N) \
+ void foo##N##0() { } \
+ void foo##N##1() { } \
+ void foo##N##2() { } \
+ void foo##N##3() { } \
+ void foo##N##4() { } \
+ void foo##N##5() { } \
+ void foo##N##6() { } \
+ void foo##N##7() { } \
+ void foo##N##8() { } \
+ void foo##N##9() { }
+ D(0)
+ D(1)
+ D(2)
+ D(3)
+ D(4)
+ D(5)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vmx/varargs-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vmx/varargs-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vmx/varargs-1.c	Fri Jul 23 18:22:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vmx/varargs-1.c	Sat Apr  9 17:19:58 2005
*************** void f1(int a, ...)
*** 25,30 ****
--- 25,31 ----
    va_start (ap, a);
    while (a-- > 0)
      printx(va_arg(ap, T));
+   va_end (ap);
  }
  
  void f2(int a, T b, ...)
*************** void f2(int a, T b, ...)
*** 35,40 ****
--- 36,42 ----
    va_start (ap, b);
    while (a-- > 0)
      printx(va_arg(ap, T));
+   va_end (ap);
  }
  
  void f3(int a, T b, T c, ...)
*************** void f3(int a, T b, T c, ...)
*** 47,52 ****
--- 49,55 ----
    va_start (ap, c);
    while (a-- > 0)
      printx(va_arg(ap, T));
+   va_end (ap);
  }
  
  void f4(int a, T b, T c,
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vmx/vmx.exp gcc-4.1.0/gcc/testsuite/gcc.dg/vmx/vmx.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vmx/vmx.exp	Fri Jul 30 18:37:03 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vmx/vmx.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vr-mult-1.c gcc-4.1.0/gcc/testsuite/gcc.dg/vr-mult-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vr-mult-1.c	Sat Apr 17 07:02:32 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vr-mult-1.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* Make sure that mul/addu is preferred over mtlo/macc on targets that
-    support both.  */
- /* { dg-do compile { target mips*-*-* } } */
- /* { dg-options "-O2" } */
- #if defined (_MIPS_ARCH_VR5400) || defined (_MIPS_ARCH_VR5500)
- int f (int a, int b, int c) { return a + b * c; }
- #else
- void f () { asm volatile ("mul/addu"); }
- #endif
- /* { dg-final { scan-assembler "mul.*addu" } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/vr-mult-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/vr-mult-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/vr-mult-2.c	Sat Apr 17 07:02:32 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/vr-mult-2.c	Thu Jan  1 00:00:00 1970
***************
*** 1,10 ****
- /* Make sure that mul/subu is preferred over mtlo/msac on targets that
-    support both.  */
- /* { dg-do compile { target mips*-*-* } } */
- /* { dg-options "-O2" } */
- #if defined (_MIPS_ARCH_VR5400) || defined (_MIPS_ARCH_VR5500)
- int f (int a, int b, int c) { return a - b * c; }
- #else
- void f () { asm volatile ("mul/subu"); }
- #endif
- /* { dg-final { scan-assembler "mul.*subu" } } */
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/weak/typeof-2.c gcc-4.1.0/gcc/testsuite/gcc.dg/weak/typeof-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/weak/typeof-2.c	Thu Oct 28 00:16:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/weak/typeof-2.c	Thu Dec 22 19:24:56 2005
*************** int bar3 (int x)
*** 35,38 ****
--- 35,42 ----
  // { dg-final { if [string match {sh[elb1-9]*-*-*} $target_triplet ] {return} } }
  // Likewise for S/390 targets
  // { dg-final { if [string match s390*-*-* $target_triplet ] {return} } }
+ // Likewise for CRIS targets.
+ // { dg-final { if [string match cris-*-* $target_triplet ] {return} } }
+ // Likewise for m68k targets.
+ // { dg-final { if [string match m68k-*-* $target_triplet ] {return} } }
  // { dg-final { scan-assembler "baz3.*baz3.*baz3.*baz3.*baz3.*baz3" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/weak/weak-14.c gcc-4.1.0/gcc/testsuite/gcc.dg/weak/weak-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/weak/weak-14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/weak/weak-14.c	Sun Dec 11 16:12:48 2005
***************
*** 0 ****
--- 1,34 ----
+ // { dg-do run }
+ // { dg-require-weak "" }
+ // { dg-require-alias "" }
+ // { dg-options "-O2 -fno-common" }
+ 
+ // Copyright 2005 Free Software Foundation, Inc.
+ // Contributed by Alexandre Oliva <aoliva@redhat.com>
+ 
+ // PR middle-end/24295
+ 
+ // The unit-at-a-time call graph code used to fail to emit variables
+ // without external linkage that were only used indirectly, through
+ // aliases.  We might then get linker failures because the static
+ // variable was not defined, or run-time errors because the weak alias
+ // ended up pointing somewhere random.
+ 
+ #include <stdlib.h>
+ 
+ static unsigned long lv1 = 0xdeadbeefUL;
+ #pragma weak Av1a = lv1
+ extern unsigned long Av1a;
+ 
+ static unsigned long lf1(void) { return 0x510bea7UL; }
+ #pragma weak Af1a = lf1
+ extern unsigned long Af1a(void);
+ 
+ int main (void) {
+   if (! &Av1a
+       || ! &Af1a
+       || Av1a != 0xdeadbeefUL
+       || Af1a() != 0x510bea7UL)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/weak/weak.exp gcc-4.1.0/gcc/testsuite/gcc.dg/weak/weak.exp
*** gcc-4.0.2/gcc/testsuite/gcc.dg/weak/weak.exp	Fri Jun  6 21:34:41 2003
--- gcc-4.1.0/gcc/testsuite/gcc.dg/weak/weak.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/winline-5.c gcc-4.1.0/gcc/testsuite/gcc.dg/winline-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/winline-5.c	Sun Jan  4 14:39:13 2004
--- gcc-4.1.0/gcc/testsuite/gcc.dg/winline-5.c	Tue Nov 15 12:27:33 2005
***************
*** 1,5 ****
  /* { dg-do compile } */
! /* { dg-options "-Winline -O2 --param inline-unit-growth=0" } */
  
  void big (void);
  inline int q(void)		 
--- 1,5 ----
  /* { dg-do compile } */
! /* { dg-options "-Winline -O2 --param inline-unit-growth=0 --param large-unit-insns=0" } */
  
  void big (void);
  inline int q(void)		 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.dg/wtypequal.c gcc-4.1.0/gcc/testsuite/gcc.dg/wtypequal.c
*** gcc-4.0.2/gcc/testsuite/gcc.dg/wtypequal.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.dg/wtypequal.c	Thu Jun  2 20:09:01 2005
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile } */
+ 
+ int *__restrict *p;
+ void f(void)
+ {
+   __typeof(*p) *q = p; /* { dg-bogus "discards qualifiers" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/acker1.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/acker1.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/acker1.exp	Thu Feb  8 02:29:38 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/acker1.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/arm-isr.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/arm-isr.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/arm-isr.exp	Fri Dec 21 11:46:01 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/arm-isr.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # This file is based on a bug report submitted to gcc-bugs:
  # http://gcc.gnu.org/ml/gcc-patches/2001-12/msg02158.html
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # This file is based on a bug report submitted to gcc-bugs:
  # http://gcc.gnu.org/ml/gcc-patches/2001-12/msg02158.html
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/bprob.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/bprob.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/bprob.exp	Thu Sep 16 20:37:09 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/bprob.exp	Thu Jul 28 21:48:38 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Test the functionality of programs compiled with profile-directed block
  # ordering using -fprofile-arcs followed by -fbranch-probabilities.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Test the functionality of programs compiled with profile-directed block
  # ordering using -fprofile-arcs followed by -fbranch-probabilities.
*************** if { ![check_profiling_available "-fprof
*** 27,33 ****
  
  # The procedures in profopt.exp need these parameters.
  set tool gcc
! set prof_ext gcda
  set perf_ext tim
  
  # Override the list defined in profopt.exp.
--- 27,33 ----
  
  # The procedures in profopt.exp need these parameters.
  set tool gcc
! set prof_ext "gcda gcno"
  set perf_ext tim
  
  # Override the list defined in profopt.exp.
*************** load_lib profopt.exp
*** 49,58 ****
  
  set profile_options "-fprofile-arcs"
  set feedback_options "-fbranch-probabilities"
- if {[check_profiling_available "-ftree-based-profiling"]} {
-     lappend profile_options "-ftree-based-profiling -fprofile-arcs"
-     lappend feedback_options "-ftree-based-profiling -fbranch-probabilities"
- }
  
  foreach profile_option $profile_options feedback_option $feedback_options {
      foreach src [lsort [glob -nocomplain $srcdir/$subdir/bprob-*.c]] {
--- 49,54 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/dhry.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/dhry.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/dhry.exp	Thu Feb  8 02:29:38 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/dhry.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/gcov-4b.c gcc-4.1.0/gcc/testsuite/gcc.misc-tests/gcov-4b.c
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/gcov-4b.c	Tue Aug  3 08:22:26 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/gcov-4b.c	Wed Aug  3 22:10:54 2005
*************** test_switch (int i, int j)
*** 207,213 ****
  {
    int result = 0;
  
!   switch (i)				/* branch(80 25) */
      					/* branch(end) */
      {
        case 1:
--- 207,213 ----
  {
    int result = 0;
  
!   switch (i)				/* branch(20 0 60 20) */
      					/* branch(end) */
      {
        case 1:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/gcov.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/gcov.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/gcov.exp	Wed Jul  9 14:57:20 2003
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/gcov.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Gcov test driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Gcov test driver.
  
*************** if { ![is_remote host] && [string match 
*** 33,41 ****
  dg-init
  
  # Delete old .gcda files.
! set files [glob -nocomplain gcov-*.gcda];
  if { $files != "" } {
!     eval "remote_file build delete $files";
  }
  
  # Main loop.
--- 33,41 ----
  dg-init
  
  # Delete old .gcda files.
! set files [glob -nocomplain gcov-*.gcda]
  if { $files != "" } {
!     eval "remote_file build delete $files"
  }
  
  # Main loop.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-3dnow-1.c	Thu May 26 19:10:52 2005
***************
*** 1,8 ****
  /* Test that the correct data prefetch instructions are generated for i386
     variants that use 3DNow! prefetch instructions.  */
  
! /* { dg-do compile { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void exit (int);
  
--- 1,8 ----
  /* Test that the correct data prefetch instructions are generated for i386
     variants that use 3DNow! prefetch instructions.  */
  
! /* { dg-do compile { target i?86-*-* x86_64-*-*} } */
! /* { dg-require-effective-target ilp32 } */
  
  extern void exit (int);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c	Wed Nov 17 17:21:45 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-athlon-1.c	Thu May 26 19:10:52 2005
***************
*** 2,9 ****
     variants that use 3DNow! prefetchw or SSE prefetch instructions with
     locality hints.  */
  
! /* { dg-do compile { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void exit (int);
  
--- 2,9 ----
     variants that use 3DNow! prefetchw or SSE prefetch instructions with
     locality hints.  */
  
! /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
! /* { dg-require-effective-target ilp32 } */
  
  extern void exit (int);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c	Wed Nov 17 17:21:46 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-none-1.c	Thu May 26 19:10:52 2005
***************
*** 1,8 ****
  /* Test that data prefetch instructions are not generated for i386 variants
     that do not support those instructions.  */
  
! /* { dg-do compile { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void exit (int);
  
--- 1,8 ----
  /* Test that data prefetch instructions are not generated for i386 variants
     that do not support those instructions.  */
  
! /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
! /* { dg-require-effective-target ilp32 } */
  
  extern void exit (int);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c	Wed Nov 17 17:21:46 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-pf-sse-1.c	Thu May 26 19:10:52 2005
***************
*** 1,8 ****
  /* Test that the correct data prefetch instructions are generated for i386
     variants that use SSE prefetch instructions.  */
  
! /* { dg-do compile { target i?86-*-* } } */
! /* { dg-skip-if "" { i?86-*-* } { "-m64" } { "" } } */
  
  extern void exit (int);
  
--- 1,8 ----
  /* Test that the correct data prefetch instructions are generated for i386
     variants that use SSE prefetch instructions.  */
  
! /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
! /* { dg-require-effective-target ilp32 } */
  
  extern void exit (int);
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp	Thu Jul  8 15:58:22 2004
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/i386-prefetch.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Test that the correct data prefetch instructions (SSE or 3DNow! variant,
  # or none) are used for various i386 cpu-type and instruction set
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Test that the correct data prefetch instructions (SSE or 3DNow! variant,
  # or none) are used for various i386 cpu-type and instruction set
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/linkage.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/linkage.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/linkage.exp	Tue Feb 15 12:23:40 2005
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/linkage.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # This file used to be gcc.c-torture/special/special.exp, which
  # was written by Rob Savoye. (rob@cygnus.com)
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # This file used to be gcc.c-torture/special/special.exp, which
  # was written by Rob Savoye. (rob@cygnus.com)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/matrix1.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/matrix1.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/matrix1.exp	Thu Feb  8 02:29:38 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/matrix1.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/mg-2.c gcc-4.1.0/gcc/testsuite/gcc.misc-tests/mg-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/mg-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/mg-2.c	Fri Oct 21 18:04:22 2005
***************
*** 0 ****
--- 1,9 ----
+ /* PR 15220 */
+ 
+ #include <nonexist0.h>
+ #include "nonexist.h"
+ int
+ main ()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/mg-2.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/mg-2.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/mg-2.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/mg-2.exp	Fri Oct 21 18:04:22 2005
***************
*** 0 ****
--- 1,24 ----
+ #   Copyright (C) 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Test the -MG flag with a system header file.
+ 
+ load_lib mike-gcc.exp
+ 
+ prebase
+ set actions none-of-the-above
+ set compiler_output "mg-2.o ?: .*mg-2.c \[ \\\\\n\]*nonexist.h"
+ postbase mg-2.c "" "" "-MM -MG"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/mg.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/mg.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/mg.exp	Sun Jul  1 18:55:46 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/mg.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Test the -MG flag.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Test the -MG flag.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/options.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/options.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/options.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/options.exp	Sat Jun 25 01:45:27 2005
***************
*** 0 ****
--- 1,54 ----
+ # Copyright (C) 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Run the LANGUAGE compiler with GCC_OPTIONS and inspect the compiler,
+ # assembler and linker output (from gcc -v) to make sure that they
+ # match the patterns COMPILER_PATTERN, AS_PATTERN and LD_PATTERN,
+ # respectively.
+ 
+ proc check_for_options {language gcc_options compiler_pattern as_pattern ld_pattern} {
+     set filename test-[pid]
+     set fd [open $filename.c w]
+     puts $fd "int main (void) \{ return 0; \}"
+     close $fd
+     remote_download host $filename.c
+ 
+     set test "compiler driver $gcc_options option(s)"
+     set gcc_options "\{additional_flags=$gcc_options -v\}"
+ 
+     switch "$language" {
+ 	"c" { set compiler cc1 }
+ 	default { error "unknown language" }
+     }
+     set gcc_output [gcc_target_compile $filename.c $filename.x executable $gcc_options]
+     remote_file build delete $filename.c $filename.x $filename.gcno
+ 
+     if {![regexp -- "/$compiler -quiet.*$compiler_pattern" $gcc_output]} {
+ 	fail "$test (compiler options)"
+ 	return
+     }
+     if {![regexp -- " *as .*$as_pattern" $gcc_output]} {
+ 	fail "$test (assembler options)"
+ 	return
+     }
+     if {![regexp -- "/collect2 .*$ld_pattern" $gcc_output]} {
+ 	fail "$test (linker options)"
+ 	return
+     }
+     pass $test
+ }
+ 
+ check_for_options c {--coverage} {-fprofile-arcs -ftest-coverage} {} {-lgcov}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/sieve.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/sieve.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/sieve.exp	Thu Feb  8 02:29:38 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/sieve.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.misc-tests/sort2.exp gcc-4.1.0/gcc/testsuite/gcc.misc-tests/sort2.exp
*** gcc-4.0.2/gcc/testsuite/gcc.misc-tests/sort2.exp	Thu Feb  8 02:29:38 2001
--- gcc-4.1.0/gcc/testsuite/gcc.misc-tests/sort2.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  global PERF_TEST
  if { ![info exists PERF_TEST] || "$PERF_TEST" != "yes" } {
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/20000715-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/20000715-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/20000715-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/20000715-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target alpha*-*-* } } */
+ /* { dg-options "-O2 -mieee" } */
+ 
+ float foo(unsigned char n)
+ {
+   float r = 10 * n;
+   asm volatile("" : : : "memory");
+   return r;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/20011018-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/20011018-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/20011018-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/20011018-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target alpha*-*-* } } */
+ /* { dg-options "-O2 -mieee" } */
+ 
+ double foo (void);
+ void bar (float, float);
+ 
+ void test (void)
+ {
+   float f, g;
+ 
+   f = foo();
+   g = foo();
+   asm ("");
+   bar (f, g);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/980217-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/980217-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/980217-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/980217-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,39 ----
+ /* Test float on alpha. */
+ 
+ /* { dg-do run { target alpha*-*-* } } */
+ /* { dg-options "-mieee -O2" } */
+ 
+ extern void abort(void);
+ extern int printf(const char *, ...);
+ 
+ typedef int int32_t __attribute__ ((__mode__ (  __SI__ ))) ;
+ typedef union
+ {
+   float value;
+   int32_t word;
+ } ieee_float_shape_type;
+ 
+ int isinff(float x)
+ {
+   int32_t ix,t;
+   ieee_float_shape_type gf_u;
+   gf_u.value = x;
+   ix = gf_u.word;
+   printf ("%x\n", ix);
+   t = ix & 0x7fffffff;
+   t ^= 0x7f800000;
+   t |= -t;
+   return ~(t >> 31) & (1 - ((ix & 0x80000000) >> 30));
+ }
+ 
+ main ()
+ {
+   float x = 1.0 / 0.0;
+   int i = isinff (x);
+ 
+   if (i == 0)
+     abort ();
+ 
+   printf ("%d\n", i);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/alpha.exp gcc-4.1.0/gcc/testsuite/gcc.target/alpha/alpha.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/alpha.exp	Thu Jan 20 03:59:00 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/alpha.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/asm-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/asm-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/asm-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,82 ----
+ /* Asm operands that are given as hard registers must keep the same
+    hard register all the way through compilation.  Example derived
+    from glibc source.  */
+ /* { dg-do compile { target alpha*-*-* } } */
+ /* { dg-options "-O2 -frename-registers -fcprop-registers" } */
+ /* { dg-final { scan-assembler "callsys1 .0 .19 .0 .16 .17" } } */
+ /* { dg-final { scan-assembler "callsys2 .0 .19 .0 .16 .17" } } */
+ 
+ struct stat {
+   int dummy;
+ };
+ 
+ struct kernel_stat {
+   int dummy;
+ };
+ 
+ extern int xstat_conv (int vers, struct kernel_stat *kbuf, void *ubuf);
+ extern int *__errno_location (void) __attribute__ ((__const__));
+ 
+ int
+ __fxstat (int vers, int fd, struct stat *buf)
+ {
+   struct kernel_stat kbuf;
+   int result;
+ 
+   if (vers == 0)
+     return
+       ({
+ 	long _sc_ret, _sc_err;
+ 	{
+ 	  register long _sc_0 __asm__("$0");
+ 	  register long _sc_16 __asm__("$16");
+ 	  register long _sc_17 __asm__("$17");
+ 	  register long _sc_19 __asm__("$19");
+ 	  _sc_0 = 91;
+ 	  _sc_16 = (long) (fd);
+ 	  _sc_17 = (long) (((struct kernel_stat *) buf));
+ 	  __asm__("callsys1 %0 %1 %2 %3 %4"
+ 		  : "=r"(_sc_0), "=r"(_sc_19)
+ 		  : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)
+ 		  : "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",
+ 		    "$22", "$23", "$24", "$25", "$27", "$28", "memory");
+ 	  _sc_ret = _sc_0, _sc_err = _sc_19;
+ 	}
+ 	if (_sc_err)
+ 	  {
+ 	    (*__errno_location ()) = (_sc_ret);
+ 	    _sc_ret = -1L;
+ 	  }
+ 	_sc_ret;
+       });
+ 
+   result =
+       ({
+ 	long _sc_ret, _sc_err;
+ 	{
+ 	  register long _sc_0 __asm__("$0");
+ 	  register long _sc_16 __asm__("$16");
+ 	  register long _sc_17 __asm__("$17");
+ 	  register long _sc_19 __asm__("$19");
+ 	  _sc_0 = 91;
+ 	  _sc_16 = (long) (fd);
+ 	  _sc_17 = (long) ((&kbuf));
+ 	  __asm__("callsys2 %0 %1 %2 %3 %4"
+ 		  : "=r"(_sc_0), "=r"(_sc_19)
+ 		  : "0"(_sc_0), "r"(_sc_16), "r"(_sc_17)
+ 		  : "$1", "$2", "$3", "$4", "$5", "$6", "$7", "$8",
+ 		    "$22", "$23", "$24", "$25", "$27", "$28", "memory");
+ 	  _sc_ret = _sc_0, _sc_err = _sc_19;
+ 	}
+ 	if (_sc_err)
+ 	  {
+ 	    (*__errno_location ()) = (_sc_ret);
+ 	    _sc_ret = -1L;
+ 	  }
+ 	_sc_ret;
+       });
+   if (result == 0)
+     result = xstat_conv (vers, &kbuf, buf);
+ 
+   return result;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/base-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/base-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/base-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/base-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,73 ----
+ /* Test that the base isa builtins compile.  */
+ /* { dg-do link { target alpha*-*-* } } */
+ /* { dg-options "-mcpu=ev4" } */
+ 
+ void test_BASE (long x, long y)
+ {
+   volatile long sink;
+   long z;
+ 
+   sink = __builtin_alpha_implver ();
+   sink = __builtin_alpha_rpcc ();
+ 
+   sink = __builtin_alpha_amask (-1);
+   sink = __builtin_alpha_amask (x);
+ 
+   sink = __builtin_alpha_cmpbge (x, y);
+   sink = __builtin_alpha_cmpbge (-1, x);
+ 
+   sink = __builtin_alpha_extbl (x, y);
+   sink = __builtin_alpha_extwl (x, y);
+   sink = __builtin_alpha_extll (x, y);
+   sink = __builtin_alpha_extql (x, y);
+   sink = __builtin_alpha_extwh (x, y);
+   sink = __builtin_alpha_extlh (x, y);
+   sink = __builtin_alpha_extqh (x, y);
+ 
+   sink = __builtin_alpha_insbl (x, y);
+   sink = __builtin_alpha_inswl (x, y);
+   sink = __builtin_alpha_insll (x, y);
+   sink = __builtin_alpha_insql (x, y);
+   sink = __builtin_alpha_inswh (x, y);
+   sink = __builtin_alpha_inslh (x, y);
+   sink = __builtin_alpha_insqh (x, y);
+ 
+   sink = __builtin_alpha_mskbl (x, y);
+   sink = __builtin_alpha_mskwl (x, y);
+   sink = __builtin_alpha_mskll (x, y);
+   sink = __builtin_alpha_mskql (x, y);
+   sink = __builtin_alpha_mskwh (x, y);
+   sink = __builtin_alpha_msklh (x, y);
+   sink = __builtin_alpha_mskqh (x, y);
+ 
+   sink = __builtin_alpha_umulh (x, y);
+ }
+ 
+ void test_zap (long x, long y)
+ {
+   volatile long sink;
+   long z;
+   sink = __builtin_alpha_zap (x, y);
+   sink = __builtin_alpha_zap (x, 0xaa);
+   z = 0xaa;
+   sink = __builtin_alpha_zap (x, z);
+   z = 0;
+   sink = __builtin_alpha_zap (z, x);
+   sink = __builtin_alpha_zap (x, z);
+ }
+ 
+ void test_zapnot (long x, long y)
+ {
+   volatile long sink;
+   long z;
+ 
+   sink = __builtin_alpha_zapnot (x, y);
+   sink = __builtin_alpha_zapnot (x, 0xaa);
+   z = 0xaa;
+   sink = __builtin_alpha_zapnot (x, z);
+   z = 0;
+   sink = __builtin_alpha_zapnot (z, x);
+   sink = __builtin_alpha_zapnot (x, z);
+ }
+ 
+ int main() { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/base-2.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/base-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/base-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/base-2.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,5 ----
+ /* Test that alpha-base-1.c compiles with optimization.  */
+ /* { dg-do link { target alpha*-*-* } } */
+ /* { dg-options "-mcpu=ev4 -O2" } */
+ 
+ #include "base-1.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/cix-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/cix-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/cix-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/cix-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,14 ----
+ /* Test that the CIX isa builtins compile.  */
+ /* { dg-do link { target alpha*-*-* } } */
+ /* { dg-options "-mcpu=ev67" } */
+ 
+ void test_CIX (long x)
+ {
+   volatile long sink;
+ 
+   sink = __builtin_alpha_cttz (x);
+   sink = __builtin_alpha_ctlz (x);
+   sink = __builtin_alpha_ctpop (x);
+ }
+ 
+ int main() { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/cix-2.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/cix-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/cix-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/cix-2.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,5 ----
+ /* Test that alpha-cix-1.c compiles with optimization.  */
+ /* { dg-do link { target alpha*-*-* } } */
+ /* { dg-options "-mcpu=ev67 -O2" } */
+ 
+ #include "cix-1.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/max-1.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/max-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/max-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/max-1.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Test that the MAX isa builtins compile.  */
+ /* { dg-do link { target alpha*-*-* } } */
+ /* { dg-options "-mcpu=pca56" } */
+ 
+ void test_MAX (long x, long y)
+ {
+   volatile long sink;
+ 
+   sink = __builtin_alpha_pklb (x);
+   sink = __builtin_alpha_pkwb (x);
+   sink = __builtin_alpha_unpkbl (x);
+   sink = __builtin_alpha_unpkbw (x);
+ 
+   sink = __builtin_alpha_minub8 (0, x);
+   sink = __builtin_alpha_minub8 (1, x);
+   sink = __builtin_alpha_minub8 (x, y);
+   sink = __builtin_alpha_minsb8 (x, y);
+   sink = __builtin_alpha_minuw4 (x, y);
+   sink = __builtin_alpha_minsw4 (x, y);
+   sink = __builtin_alpha_maxub8 (x, y);
+   sink = __builtin_alpha_maxsb8 (x, y);
+   sink = __builtin_alpha_maxuw4 (x, y);
+   sink = __builtin_alpha_maxsw4 (x, y);
+   sink = __builtin_alpha_perr (x, y);
+ }
+ 
+ int main() { return 0; }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/max-2.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/max-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/max-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/max-2.c	Sat Nov  5 23:30:25 2005
***************
*** 0 ****
--- 1,5 ----
+ /* Test that alpha-max-1.c compiles with optimization.  */
+ /* { dg-do link { target alpha*-*-* } } */
+ /* { dg-options "-mcpu=pca56 -O2" } */
+ 
+ #include "max-1.c"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/alpha/pr24178.c gcc-4.1.0/gcc/testsuite/gcc.target/alpha/pr24178.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/alpha/pr24178.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/alpha/pr24178.c	Wed Nov  2 18:20:07 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mcpu=ev4" } */
+ 
+ struct S {
+     long l;
+     unsigned char c;
+ };
+ unsigned long f(unsigned char *p10) {
+     struct S *p = (struct S *) (p10 + 10);
+     return p->c;
+ }
+ 
+ /* { dg-final { scan-assembler "ldl.*,18\\(" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/cris/cris.exp gcc-4.1.0/gcc/testsuite/gcc.target/cris/cris.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/cris/cris.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/cris/cris.exp	Sat Nov 12 21:10:23 2005
***************
*** 0 ****
--- 1,41 ----
+ #   Copyright (C) 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # GCC testsuite that uses the `gcc-dg.exp' driver, just a single option, no
+ # looping over tests.
+ 
+ # Exit immediately if this isn't a CRIS target.
+ if ![istarget cris-*-*] then {
+   return
+ }
+ 
+ # Load support procs.
+ load_lib gcc-dg.exp
+ 
+ # If a testcase doesn't have special options, use these.
+ global DEFAULT_CFLAGS
+ if ![info exists DEFAULT_CFLAGS] then {
+     set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+ }
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Main loop.
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] "" $DEFAULT_CFLAGS
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/cris/rld-legit1.c gcc-4.1.0/gcc/testsuite/gcc.target/cris/rld-legit1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/cris/rld-legit1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/cris/rld-legit1.c	Sat Nov 12 21:10:23 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Check that we don't get unnecessary insns due to reload using more
+    insns than needed due to reloading of more locations than
+    needed.  */
+ /* { dg-options -O2 } */
+ /* { dg-final { scan-assembler-not "movs.w" } } */
+ /* { dg-final { scan-assembler-not "move.w" } } */
+ 
+ /* As torture/pr24750-2.c, except we need to clobber R8 for thorough
+    testing and know we can do, since we replace the frame-pointer.  */
+ 
+ int
+ f (short *a, char *y)
+ {
+   __asm__ ("" : : :
+ #ifndef __PIC__
+ 	   "r0",
+ #endif
+ 	   "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8",
+ 	   "r9", "r10", "r11", "r12", "r13");
+   return y[*a];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/cris/rld-legit2.c gcc-4.1.0/gcc/testsuite/gcc.target/cris/rld-legit2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/cris/rld-legit2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/cris/rld-legit2.c	Sat Nov 12 21:10:23 2005
***************
*** 0 ****
--- 1,16 ----
+ /* A variant of rld-legit1.c only for full code coverage of the
+    initial version of cris_reload_address_legitimized.  */
+ /* { dg-options -O2 } */
+ 
+ short *
+ g (short *a, char *y)
+ {
+   __asm__ ("" : : :
+ #ifndef __PIC__
+ 	   "r0",
+ #endif
+ 	   "r1", "r2", "r3", "r4", "r5", "r6", "r7", "r8",
+ 	   "r9", "r10", "r11", "r12", "r13");
+   y[*a++] = 0;
+   return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp gcc-4.1.0/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/cris/torture/cris-torture.exp	Sat Jun 25 01:45:27 2005
***************
*** 0 ****
--- 1,41 ----
+ #   Copyright (C) 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # GCC testsuite that uses the `gcc-dg.exp' driver, looping over
+ # optimization options.
+ 
+ # Exit immediately if this isn't a CRIS target.
+ if ![istarget cris-*-*] then {
+   return
+ }
+ 
+ # Load support procs.
+ load_lib gcc-dg.exp
+ 
+ # If a testcase doesn't have special options, use these.
+ global DEFAULT_CFLAGS
+ if ![info exists DEFAULT_CFLAGS] then {
+     set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+ }
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Main loop.
+ gcc-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] $DEFAULT_CFLAGS
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c gcc-4.1.0/gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/cris/torture/no-pro-epi-1.c	Wed Apr 13 18:19:41 2005
***************
*** 0 ****
--- 1,4 ----
+ /* { dg-options -mno-prologue-epilogue } */
+ void f (void)
+ {
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/cris/torture/pr24750-2.c gcc-4.1.0/gcc/testsuite/gcc.target/cris/torture/pr24750-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/cris/torture/pr24750-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/cris/torture/pr24750-2.c	Fri Nov 11 23:19:26 2005
***************
*** 0 ****
--- 1,20 ----
+ /* As the invalid insn in this test got as far as to the target output
+    code and was "near enough" to output invalid assembly-code, we need
+    to pass it through the assembler as well.
+    { dg-do assemble } */
+ 
+ int
+ f (short *a, char *y)
+ {
+   __asm__ ("" : : :
+ #ifndef __PIC__
+ 	   "r0",
+ #endif
+ 	   "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+ 	   /* Register R8 is frame-pointer, and we don't have a means
+ 	      to not clobber it for the test-runs that don't eliminate
+ 	      it.  But that's ok; we have enough general-register
+ 	      pressure to repeat the bug without that.  */
+ 	   "r9", "r10", "r11", "r12", "r13");
+   return y[*a];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/frv/all-read-write-1.c gcc-4.1.0/gcc/testsuite/gcc.target/frv/all-read-write-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/frv/all-read-write-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/frv/all-read-write-1.c	Thu Jul 28 02:03:45 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do run } */
+ extern void abort (void);
+ extern void exit (int);
+ 
+ volatile unsigned long long x[2];
+ 
+ int main ()
+ {
+   volatile char *addr = (volatile char *) &x[0];
+ 
+   x[0] = ~0ULL;
+   x[1] = ~0ULL;
+   __builtin_write64 (addr, 0x1122334455667788ULL);
+   __builtin_write32 (addr + 8, 0x12345678);
+   __builtin_write16 (addr + 12, 0xaabb);
+   __builtin_write8 (addr + 14, 0xcc);
+ 
+   if (x[0] != 0x1122334455667788ULL
+       || x[1] != 0x12345678aabbccffULL
+       || __builtin_read8 (addr) != 0x11
+       || __builtin_read16 (addr + 2) != 0x3344
+       || __builtin_read32 (addr + 4) != 0x55667788
+       || __builtin_read64 (addr + 8) != 0x12345678aabbccffULL)
+     abort ();
+ 
+   __builtin_write64 (addr, 0);
+   __builtin_write32 (addr + 8, 0);
+   __builtin_write16 (addr + 12, 0);
+   __builtin_write8 (addr + 14, 0);
+   if (x[0] != 0 || x[1] != 0xff)
+     abort ();
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000609-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000609-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000609-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000609-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O1 -ffast-math -march=i686" } */
+ 
+ 
+ /* Sanity check for fp_jcc_* with TARGET_CMOVE.  */
+ 
+ extern void abort (void);
+ 
+ static int test(double a)
+ {
+   if (a)
+     return 0;
+ }
+ 
+ static double zero = 0.0;
+ 
+ int main ()
+ {
+   test (zero);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000614-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000614-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000614-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000614-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ void bar(char *p)
+ {
+ }
+ 
+ static inline void foo (unsigned long base, unsigned char val)
+ {
+   val ^= (1<<2);
+   bar (val & (1<<5) ? "1" : "2");
+   bar (val & (1<<4) ? "1" : "2");
+   bar (val & (1<<3) ? "1" : "2");
+   bar (val & (1<<2) ? "1" : "2");
+   bar (val & (1<<1) ? "1" : "2");
+   bar (val & (1<<0) ? "1" : "2");
+   asm volatile ("": :"a" (val), "d" (base));
+ }
+ 
+ int main (void)
+ {
+   foo (23, 1);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000614-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000614-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000614-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000614-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-*} } */
+ /* { dg-options "-O2 -fno-strength-reduce" } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ char buf[8];
+ 
+ void bar(char *p)
+ {
+ }
+ 
+ int main()
+ {
+   union {
+     unsigned int val;
+     unsigned char p[4];
+   } serial;
+ 
+   int i;
+   serial.val = 0;
+   bar(buf);
+   for(i = 0; i < 8; i += 4)
+     {
+       serial.p [0] += buf [i + 0];
+       serial.p [1] += buf [i + 1];
+       serial.p [2] += buf [i + 2];
+       serial.p [3] += buf [i + 3];
+     }
+   if (serial.val)
+     abort();
+   exit(0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000720-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000720-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000720-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000720-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-mpreferred-stack-boundary=2 -march=i586 -O2 -fomit-frame-pointer" } */
+ 
+ extern void *foo(void *a, const void *b, unsigned c);
+ 
+ extern inline void *
+ bar(void *a, const void *b, unsigned c)
+ {
+   int d0, d1, d2;
+   __asm__ __volatile__(
+     "" :
+     "=&c" (d0), "=&D" (d1), "=&S" (d2) :
+     "0" (c/4), "q" (c), "1" (a), "2" (b) :
+     "memory");
+   return a;
+ }
+ 
+ typedef struct {
+   unsigned char a;
+   unsigned b : 2;
+   unsigned c : 4;
+   unsigned d : 2;
+ } *baz;
+ 
+ static int
+ dead(unsigned short *v, char *w, unsigned char *x, int y, int z)
+ {
+   int i = 0;
+   unsigned short j = *v;
+ 
+   while (y > 0) {
+     ((baz)x)->a = j;
+     ((baz)x)->b = 0;
+     ((baz)x)->c = 0;
+     ((baz)x)->d = 0;
+     __builtin_constant_p(i) ? foo(x, w, i) : bar(x, w, i);
+   }
+   return z - y;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000807-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000807-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000807-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000807-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-Os -fpic" } */
+ 
+ #include <string.h>
+ 
+ typedef struct
+ {
+   char *a;
+   char *b;
+ } *foo;
+ 
+ void
+ bar (foo x)
+ {
+   char *c = x->b;
+   char *d = (void *)0;
+   unsigned int e = 0, f = 0, g;
+   while (*c != ':')
+     if (*c == '%')
+       {
+         ++c;
+         switch (*c++)
+           {
+           case 'N':
+             g = strlen (x->a);
+             if (e + g >= f) {
+ 		char *h = d;
+ 		f += 256 + g;
+ 		d = (char *) __builtin_alloca (f);
+ 		memcpy (d, h, e);
+ 	    };
+             memcpy (&d[e], x->a, g);
+             e += g;
+             break;
+ 	  }
+       }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000904-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000904-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20000904-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20000904-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0 -fpic" } */
+ 
+ static struct {
+   unsigned short a, b, c, d;
+ } x[10];
+ 
+ int foo(int i)
+ {
+   return ((*((char *)&x[i] + i)) | (*((char *)&x[i] + i)));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20001127-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20001127-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20001127-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20001127-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ extern inline float bar (float x)
+ {
+   register long double value;
+   asm volatile ("frndint" : "=t" (value) : "0" (x));
+   return value;
+ }
+ 
+ float a;
+ 
+ float foo (float b)
+ {
+   return a + bar (b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20010202-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20010202-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20010202-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20010202-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile { target i?86-*-* sparc*-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ typedef enum { false, true } __attribute__ ((packed)) boolean;
+ typedef struct {
+   enum {
+     A0 = 0, A1 = 1, A2 = 2
+   } __attribute__((packed)) A:3;
+   enum {
+     B0 = 0, B1 = 1, B2 = 2
+   } __attribute__((packed)) B:3;
+   boolean C:1;
+   boolean D:1;
+   unsigned char :8;
+ } foo;
+ foo x = { A2, B1, false, true };
+ 
+ int main(void)
+ {
+   if (sizeof (foo) != 2 || __alignof__ (foo) != 1)
+     abort ();
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20010520-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20010520-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20010520-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20010520-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-w" } */
+ 
+ void f ()
+ {
+   int i __asm__ ("%eax");
+   __asm__ volatile ("" : "=a" (i));
+ }
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011009-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011009-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011009-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011009-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ int main ()
+ {
+   int x;
+ 
+   asm ("movl $26, %0 # 26 |-> reg \n\t"
+        "movl $28, %0" : "=r" (x));
+   if (x != 28)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011029-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011029-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011029-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011029-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ int foo (int s)
+ {
+   for (;;)
+     {
+       int a[32];
+       int y, z;
+       __asm__ __volatile__ ("" : "=c" (y), "=D" (z)
+ 			    : "a" (0), "0" (32), "1" (a) : "memory");
+       if (({ register char r;
+ 	     __asm__ __volatile__ ("" : "=q" (r)
+ 				   : "r" (s % 32), "m" (a[s / 32])
+ 				   : "cc"); r; }))
+         continue;
+       else if (({ register char r;
+ 		  __asm__ __volatile__ ("" : "=q" (r)
+ 					: "r" (0), "m" (a[0])
+ 					: "cc"); r; }))
+         continue;
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011107-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011107-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011107-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011107-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,46 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -mtune=k6" } */
+ 
+ void
+ foo (unsigned char *x, const unsigned char *y)
+ {
+   int a = 6;
+   unsigned char *b;
+   for (;;)
+     {
+       unsigned char *c = x;
+ 
+       while (1)
+ 	{
+ 	  if (c + 2 < y)
+ 	    c += 3;
+ 	  else
+ 	    break;
+ 	}
+       b = x + a;
+       if (*c == 4 || *c == 5)
+ 	{
+ 	  unsigned char d = c[2];
+ 
+ 	  if (b[3] == 7 || b[3] == 8)
+ 	    {
+ 	      int e = b[3] == 8;
+ 	      if (d < b[4] * 8 && b[5 + d / 8] & (1 << (d % 8)))
+ 		e = !e;
+ 	      if (!e)
+ 		x[-3] = 26;
+ 	    }
+ 	}
+       else if (*c == 7 && b[3] == 8)
+ 	{
+ 	  int f;
+ 	  for (f = 0; f < (int) c[1]; f++)
+ 	    if (!(c[2 + f] == 0))
+ 	      break;
+ 	  if (f == c[1])
+ 	    x[-3] = 26;
+ 	}
+       x -= 2;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011119-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011119-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20011119-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20011119-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,82 ----
+ /* Test for reload failing to eliminate from argp to sp.  */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-skip-if "" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */
+ /* { dg-options "-O2 -fomit-frame-pointer" } */
+ 
+ static int ustrsize (const char *s);
+ static int (*ucwidth) (int c);
+ static int (*ugetxc) (const char **s);
+ static int (*usetc) (char *s, int c);
+ 
+ char *ustrzcat(char *dest, int size, const char *src)
+ {
+    int pos = ustrsize(dest);
+    int c;
+ 
+    size -= pos + ucwidth(0);
+ 
+    while ((c = ugetxc(&src)) != 0) {
+       size -= ucwidth(c);
+       if (size < 0)
+          break;
+ 
+       pos += usetc(dest+pos, c);
+    }
+ 
+    usetc(dest+pos, 0);
+ 
+    return dest;
+ }
+ 
+ static int __attribute__((noinline))
+ ustrsize (const char *s)
+ {
+   return 0;
+ }
+ 
+ static int
+ ucwidth_ (int c)
+ {
+   return 1;
+ }
+ 
+ static int
+ ugetxc_ (const char **s)
+ {
+   return '\0';
+ }
+ 
+ static int
+ usetc_ (char *s, int c)
+ {
+   return 1;
+ }
+ 
+ int
+ main()
+ {
+   ucwidth = ucwidth_;
+   ugetxc = ugetxc_;
+   usetc = usetc_;
+   
+   /* ??? It is impossible to explicitly modify the hard frame pointer.
+      This will run afoul of code in flow.c that declines to mark regs
+      in eliminate_regs in regs_ever_used.  Apparently, we have to wait
+      for reload to decide that it won't need a frame pointer before a
+      variable can be allocated to %ebp.
+ 
+      So save, restore, and clobber %ebp by hand.  */
+ 
+   asm ("pushl %%ebp\n\t"
+        "movl $-1, %%ebp\n\t"
+        "pushl $0\n\t"
+        "pushl $0\n\t"
+        "pushl $0\n\t"
+        "call %P0\n\t"
+        "addl $12, %%esp\n\t"
+        "popl %%ebp"
+        : : "i"(ustrzcat) : "memory" );
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020201-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020201-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020201-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020201-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,16 ----
+ /* This testcase ICEd because a SFmode variable was given a MMX register
+    for which there is no movsf exists.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=i686 -mmmx -fno-strict-aliasing" } */
+ 
+ struct A { unsigned int a, b; };
+ 
+ void foo (struct A *x, int y, int z)
+ {
+    const float d = 1.0;
+    float e = (float) y + z;
+ 
+    x->a = *(unsigned int *) &d;
+    x->b = *(unsigned int *) &e;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020218-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020218-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020218-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020218-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,35 ----
+ /* Verify that X86-64 only SSE registers aren't restored on IA-32.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -msse" } */
+ /* { dg-final { scan-assembler-not "xmm8" } } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ void *bar (void *p, void *q)
+ {
+   if (p != (void *) 26 || q != (void *) 35)
+     abort ();
+   return (void *) 76;
+ }
+ 
+ void *foo (void **args)
+ {
+   void *argcookie = &args[1];
+ 
+   __builtin_return (__builtin_apply (args[0], &argcookie,
+ 				     2 * sizeof (void *)));
+ }
+ 
+ int main (void)
+ {
+   void *args[3];
+ 
+   args[0] = (void *) bar;
+   args[1] = (void *) 26;
+   args[2] = (void *) 35;
+   if (foo (args) != (void *) 76)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020224-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020224-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020224-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020224-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,41 ----
+ /* PR target/5755
+    This testcase failed because the caller of a function returning struct
+    expected the callee to pop up the hidden return structure pointer,
+    while callee was actually not poping it up (as the hidden argument
+    was passed in register).  */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -fomit-frame-pointer" } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ typedef struct {
+    int a1, a2;
+ } A;
+ 
+ A a;
+ 
+ A __attribute__ ((regparm (2)))
+ foo (int x)
+ {
+   return a;
+ }
+ 
+ int __attribute__ ((regparm (2)))
+ bar (int x)
+ {
+   int r = foo(0).a2;
+   return r;
+ }
+ 
+ int
+ main ()
+ {
+   int f;
+   a.a1 = 530;
+   a.a2 = 980;
+   f = bar (0);
+   if (f != 980)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020426-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020426-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020426-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020426-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,7 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-msoft-float -mfp-ret-in-387" } */
+ 
+ void f() {
+   __builtin_apply(0, 0, 0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020523-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020523-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020523-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020523-1.c	Wed Dec 14 17:34:21 2005
***************
*** 0 ****
--- 1,67 ----
+ /* PR target/6753
+    This testcase was miscompiled because sse_mov?fcc_const0*
+    patterns were missing earlyclobber.  */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ float one = 1.f;
+ 
+ void bar (float f)
+ {
+   if (__builtin_memcmp (&one, &f, sizeof (float)))
+     abort ();
+ }
+ 
+ float foo (void)
+ {
+   return 1.f;
+ }
+ 
+ typedef struct
+ {
+   float t;
+ } T;
+ 
+ void bail_if_no_sse (void)
+ {
+   int fl1, fl2;
+ 
+   /* See if we can use cpuid.  */
+   __asm__ ("pushfl; pushfl; popl %0; movl %0,%1; xorl %2,%0;"
+ 	   "pushl %0; popfl; pushfl; popl %0; popfl"
+ 	   : "=&r" (fl1), "=&r" (fl2)
+ 	   : "i" (0x00200000));
+   if (((fl1 ^ fl2) & 0x00200000) == 0)
+     exit (0);
+ 
+   /* See if cpuid gives capabilities.  */
+   __asm__ ("cpuid" : "=a" (fl1) : "0" (0) : "ebx", "ecx", "edx", "cc");
+   if (fl1 == 0)
+     exit (0);
+ 
+   /* See if capabilities include SSE (25th bit; 26 for SSE2).  */
+   __asm__ ("cpuid" : "=a" (fl1), "=d" (fl2) : "0" (1) : "ebx", "ecx", "cc");
+   if ((fl2 & (1 << 25)) == 0)
+     exit (0);
+ }
+ 
+ int main (void)
+ {
+   int i;
+   T x[1];
+ 
+   bail_if_no_sse ();
+   for (i = 0; i < 1; i++)
+     {
+       x[i].t = foo ();
+       x[i].t = 0.f > x[i].t ? 0.f : x[i].t;
+       bar (x[i].t);
+     }
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020523-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020523-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020523-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020523-2.c	Sat Nov  5 08:03:11 2005
***************
*** 0 ****
--- 1,53 ----
+ /* PR target/6753
+    This testcase was miscompiled because sse_mov?fcc_const0*
+    patterns were missing earlyclobber.  */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-march=pentium3 -msse -ffast-math -O2" } */
+ 
+ #include "../../gcc.dg/i386-cpuid.h"
+ extern void abort (void);
+ extern void exit (int);
+ 
+ float one = 1.f;
+ 
+ void bar (float f)
+ {
+   if (__builtin_memcmp (&one, &f, sizeof (float)))
+     abort ();
+ }
+ 
+ float foo (void)
+ {
+   return 1.f;
+ }
+ 
+ typedef struct
+ {
+   float t;
+ } T;
+ 
+ void bail_if_no_sse (void)
+ {
+   unsigned int edx;
+   /* See if capabilities include SSE (25th bit; 26 for SSE2).  */
+   edx = i386_cpuid();
+   if (!(edx & bit_SSE))
+     exit (0);
+ }
+ 
+ int main (void)
+ {
+   int i;
+   T x[1];
+ 
+   bail_if_no_sse ();
+   for (i = 0; i < 1; i++)
+     {
+       x[i].t = foo ();
+       x[i].t = 0.f > x[i].t ? 0.f : x[i].t;
+       bar (x[i].t);
+     }
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020531-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020531-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020531-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020531-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,21 ----
+ /* PR optimization/6842
+    This testcase caused ICE when trying to optimize V8QI subreg of VOIDmode
+    CONST_DOUBLE.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -mmmx" } */
+ 
+ typedef unsigned char __v8qi __attribute__ ((vector_size (8)));
+ extern void abort (void);
+ extern void exit (int);
+ 
+ void foo (void)
+ {
+   unsigned long long a = 0x0102030405060708LL;
+   unsigned long long b = 0x1020304050607080LL;
+   unsigned long long c;
+ 
+   c = (unsigned long long) __builtin_ia32_paddusb ((__v8qi) a, (__v8qi) b);
+   __builtin_ia32_emms ();
+   if (c != 0x1122334455667788LL)
+     abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020616-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020616-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020616-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020616-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,29 ----
+ /* PR opt/6722 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ register int k asm("%ebx");
+ 
+ void __attribute__((noinline))
+ foo()
+ {
+   k = 1;
+ }
+ 
+ void test()
+ {
+   int i;
+   for (i = 0; i < 10; i += k)
+     {
+       k = 0;
+       foo();
+     }
+ }
+ 
+ int main()
+ {
+   int old = k;
+   test();
+   k = old;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020729-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020729-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20020729-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20020729-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,52 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=k6" } */
+ 
+ static inline void *
+ baz (void *s, unsigned long c, unsigned int count)
+ {
+   int d0, d1;
+   __asm__ __volatile__ (""
+ 			: "=&c" (d0), "=&D" (d1)
+ 			:"a" (c), "q" (count), "0" (count / 4), "1" ((long) s)
+ 			:"memory");
+   return s;
+ }
+ 
+ struct A
+ {
+   unsigned long *a;
+ };
+ 
+ inline static void *
+ bar (struct A *x, int y)
+ {
+   char *ptr;
+ 
+   ptr = (void *) x->a[y >> 12];
+   ptr += y % (1UL << 12);
+   return (void *) ptr;
+ }
+ 
+ int
+ foo (struct A *x, unsigned int *y, int z, int u)
+ {
+   int a, b, c, d, e;
+ 
+   z += *y;
+   c = z + u;
+   a = (z >> 12) + 1;
+   do
+     {
+       b = (a << 12);
+       d = b - z;
+       e = c - z;
+       if (e < d)
+ 	d = e;
+       baz (bar (x, z), 0, d);
+       z = b;
+       a++;
+     }
+   while (z < c);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20030217-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20030217-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20030217-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20030217-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,18 ----
+ /* Test whether denormal floating point constants in hexadecimal notation
+    are parsed correctly.  */
+ /* { dg-do run { target i?86-*-linux* x86_64-*-* } } */
+ /* { dg-options "-std=c99" } */
+ 
+ long double d = 0x0.0000003ffffffff00000p-16357L;
+ long double e = 0x0.0000003ffffffff00000p-16356L;
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ int
+ main (void)
+ {
+   if (d != e / 2.0)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20030926-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20030926-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20030926-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20030926-1.c	Sat Dec 10 13:47:29 2005
***************
*** 0 ****
--- 1,18 ----
+ /* PR optimization/11741  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -minline-all-stringops" } */
+ /* { dg-options "-O2 -minline-all-stringops -march=pentium4" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ 
+ extern void *memcpy (void *, const void *, __SIZE_TYPE__);
+ extern __SIZE_TYPE__ strlen (const char *);
+ 
+ void
+ foo (char *p)
+ {
+   for (;;)
+     {
+       memcpy (p, p + 1, strlen (p));
+       p++;
+     }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20040112-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20040112-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20040112-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20040112-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler "testb" } } */
+ ftn (char *sp)
+ {
+   char status;
+ 
+   while (1)
+     {
+       *sp = 0xE8;
+       status = *(volatile char *) sp;
+       if (status & 0x80)
+ 	break;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20050113-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20050113-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20050113-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20050113-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,6 ----
+ /* PR middle-end/19164 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-mmmx" } */
+ 
+ typedef short int V __attribute__ ((vector_size (8)));
+ static V v = (V) 0x00FF00FF00FF00FFLL; /* { dg-error "is not constant" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/20060218-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/20060218-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/20060218-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/20060218-1.c	Mon Feb 20 09:26:29 2006
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile } */
+ 
+ void
+ foo (void)
+ {
+   register int cc __asm ("cc"); /* { dg-error "invalid register name" } */
+   __asm ("" : : "r" (cc) : "cc");
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Verify that -mno-fancy-math-387 works.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
+ /* { dg-final { scan-assembler "call\t_?sin" } } */
+ /* { dg-final { scan-assembler "call\t_?cos" } } */
+ /* { dg-final { scan-assembler "call\t_?sqrt" } } */
+ /* { dg-final { scan-assembler "call\t_?atan2" } } */
+ /* { dg-final { scan-assembler "call\t_?log" } } */
+ /* { dg-final { scan-assembler "call\t_?exp" } } */
+ /* { dg-final { scan-assembler "call\t_?tan" } } */
+ /* { dg-final { scan-assembler "call\t_?fmod" } } */
+ 
+ double f1(double x) { return __builtin_sin(x); }
+ double f2(double x) { return __builtin_cos(x); }
+ double f3(double x) { return __builtin_sqrt(x); }
+ double f4(double x, double y) { return __builtin_atan2(x,y); }
+ double f5(double x) { return __builtin_log(x); }
+ double f6(double x) { return __builtin_exp(x); }
+ double f7(double x) { return __builtin_tan(x); }
+ double f8(double x, double y) { return __builtin_fmod(x,y); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Verify that -march overrides -mno-fancy-math-387.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O -ffast-math -mfpmath=387 -march=i686 -mno-fancy-math-387" } */
+ /* { dg-final { scan-assembler "fsin" } } */
+ /* { dg-final { scan-assembler "fcos" } } */
+ /* { dg-final { scan-assembler "fsqrt" } } */
+ /* { dg-final { scan-assembler "fpatan" } } */
+ /* { dg-final { scan-assembler "fyl2x" } } */
+ /* { dg-final { scan-assembler "f2xm1" } } */
+ /* { dg-final { scan-assembler "fptan" } } */
+ /* { dg-final { scan-assembler "fprem" } } */
+ 
+ double f1(double x) { return __builtin_sin(x); }
+ double f2(double x) { return __builtin_cos(x); }
+ double f3(double x) { return __builtin_sqrt(x); }
+ double f4(double x, double y) { return __builtin_atan2(x,y); }
+ double f5(double x) { return __builtin_log(x); }
+ double f6(double x) { return __builtin_exp(x); }
+ double f7(double x) { return __builtin_tan(x); }
+ double f8(double x, double y) { return __builtin_fmod(x,y); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Verify that 387 mathematical constants are recognized.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=i686" } */
+ /* { dg-final { scan-assembler "fldpi" } } */
+ 
+ long double add_pi(long double x)
+ {
+   return x + 3.1415926535897932385128089594061862044L;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=i686" } */
+ /* { dg-final { scan-assembler "fldpi" } } */
+ 
+ long double atanl (long double);
+ 
+ long double pi()
+ {
+   return 4.0 * atanl (1.0);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-5.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Verify that -mno-fancy-math-387 works.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O -ffast-math -mfpmath=387 -mno-fancy-math-387 -march=i386" } */
+ /* { dg-final { scan-assembler "call\t_?atan" } } */
+ /* { dg-final { scan-assembler "call\t_?log1p" } } */
+ /* { dg-final { scan-assembler "call\t_?drem" } } */
+ 
+ double f1(double x) { return __builtin_atan(x); }
+ double f2(double x) { return __builtin_log1p(x); }
+ double f3(double x, double y) { return __builtin_drem(x,y); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-6.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-6.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Verify that -march overrides -mno-fancy-math-387.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O -ffast-math -mfpmath=387 -march=i686 -mno-fancy-math-387" } */
+ /* { dg-final { scan-assembler "fpatan" } } */
+ /* { dg-final { scan-assembler "fyl2xp1" } } */
+ /* { dg-final { scan-assembler "fprem1" } } */
+ 
+ double f1(double x) { return __builtin_atan(x); }
+ double f2(double x) { return __builtin_log1p(x); }
+ double f3(double x, double y) { return __builtin_drem(x,y); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-7.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-7.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,14 ----
+ /* Verify that 387 fsincos instruction is generated.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O -ffast-math -march=i686" } */
+ /* { dg-final { scan-assembler "fsincos" } } */
+ 
+ extern double sin (double);
+ extern double cos (double);
+ 
+ double f1(double x)
+ {
+   return sin(x) + cos (x);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-8.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/387-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/387-8.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* Verify that 387 fptan instruction is generated. Also check fptan
+    peephole2 optimizer.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -ffast-math -march=i686" } */
+ /* { dg-final { scan-assembler "fptan" } } */
+ /* { dg-final { scan-assembler-not "fld1" } } */
+ 
+ extern double tan (double);
+ 
+ double f1(double x)
+ {
+   return 1.0 / tan(x);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnow-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnow-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnow-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnow-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -Werror-implicit-function-declaration -m3dnow" } */
+ 
+ /* Test that the intrinsics compile with optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <mm3dnow.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnow-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnow-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnow-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnow-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0 -Werror-implicit-function-declaration -m3dnow" } */
+ 
+ /* Test that the intrinsics compile without optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <mm3dnow.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnowA-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnowA-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnowA-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnowA-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
+ /* { 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
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <mm3dnow.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnowA-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnowA-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/3dnowA-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/3dnowA-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do assemble { target i?86-*-* x86_64-*-* } } */
+ /* { 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
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <mm3dnow.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/980211-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/980211-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/980211-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/980211-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,29 ----
+ /* Test long double on x86 and x86-64. */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-*} } */
+ /* { dg-options -O2 } */
+ 
+ extern void abort (void);
+ 
+ __inline int
+ __signbitl (long double __x)
+ {
+   union { long double __l; int __i[3]; } __u = { __l: __x };
+ 
+   return (__u.__i[2] & 0x8000) != 0;
+ }
+ 
+ void
+ foo (long double x, long double y)
+ {
+   long double z = x / y;
+   if (__signbitl (x) && __signbitl (z))
+     abort ();
+ }
+ 
+ int main()
+ {
+   if (sizeof (long double) > sizeof (double))
+     foo (-0.0, -1.0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/980226-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/980226-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/980226-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/980226-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options -O2 } */
+ 
+ extern int printf (const char *, ...);
+ extern double bar (double);
+ 
+ int
+ baz (double d)
+ {
+   double e = bar (d);
+   asm volatile ("" : : : "st");
+   return printf ("%lg\n", e);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/980414-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/980414-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/980414-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/980414-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,78 ----
+ /* Test double on x86. */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options -O2 } */
+ 
+ extern void abort (void);
+ 
+ static __inline  double
+ mypow (double __x, double __y)
+ {
+   register double __value, __exponent;
+   long __p = (long) __y;
+   if (__y == (double) __p)
+     {
+       double __r = 1.0;
+       if (__p == 0)
+ 	return 1.0;
+       if (__p < 0)
+ 	{
+ 	  __p = -__p;
+ 	  __x = 1.0 / __x;
+ 	}
+       while (1)
+ 	{
+ 	  if (__p & 1)
+ 	    __r *= __x;
+ 	  __p >>= 1;
+ 	  if (__p == 0)
+ 	    return __r;
+ 	  __x *= __x;
+ 	}
+     }
+   __asm __volatile__
+     ("fmul	%%st(1),%%st\n\t"	/* y * log2(x) */
+      "fst	%%st(1)\n\t"
+      "frndint\n\t"			/* int(y * log2(x)) */
+      "fxch  %%st(1)\n\t"
+      "fsub	%%st(1),%%st\n\t"	/* fract(y * log2(x)) */
+      "f2xm1\n\t"			/* 2^(fract(y * log2(x))) - 1 */
+      : "=t" (__value), "=u" (__exponent) :  "0" (__x), "1" (__y));
+   __value += 1.0;
+   __asm __volatile__
+     ("fscale"
+      : "=t" (__value) : "0" (__value), "u" (__exponent));
+   return __value;
+ }
+ 
+ const double E1 = 2.71828182845904523536028747135;
+ 
+ double fact (double x)
+ {
+   double corr;
+   corr = 1.0;
+   return corr * mypow(x/E1, x);
+ }
+ 
+ int main ()
+ {
+   double y, z;
+ 
+   y = fact (46.2);
+   z = mypow (46.2/E1, 46.2);
+ 
+ #if 0
+   printf ("%26.19e, %26.19e\n", y, z);
+ #endif
+ 
+   if (y > z)
+     y -= z;
+   else
+     y = z - y;
+ 
+   y /= z;
+   if (y > 0.1)
+     abort ();
+  
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/980520-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/980520-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/980520-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/980520-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options -O2 } */
+ 
+ int bug(void)
+ {
+         unsigned long a, b;
+    
+         __asm__(""
+                 : "=d" (a)
+                 :
+                 : "memory");
+         __asm__ __volatile__(""
+                              :
+                              : "g" (b)
+                              : "memory");
+         return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/980709-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/980709-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/980709-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/980709-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options -O2 } */
+ 
+ extern __inline__ int test_and_set_bit(int nr, volatile void * addr)
+ {
+ 	int oldbit;
+ 	__asm__ __volatile__( "" 
+ 		"btsl %2,%1\n\tsbbl %0,%0"
+ 		:"=r" (oldbit),"=m" (addr)
+ 		:"ir" (nr));
+ 	return oldbit;
+ }
+ struct buffer_head {
+ 	unsigned long b_state;		 
+ };
+ extern void lock_buffer(struct buffer_head * bh)
+ {
+ 	while (test_and_set_bit(2 , &bh->b_state))
+ 		__wait_on_buffer(bh);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/990117-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/990117-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/990117-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/990117-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=pentiumpro" } */
+ 
+ extern __inline  double
+ fabs (double __x)
+ {
+   register double __value;
+   __asm __volatile__
+     ("fabs"
+      : "=t" (__value) : "0" (__x));
+   return __value;
+ }
+ int
+ foo ()
+ {
+   int i, j, k;
+   double x = 0, y = ((i == j) ? 1 : 0);
+   for (i = 0; i < 10; i++)
+     ;
+   fabs (x - y);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/990130-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/990130-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/990130-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/990130-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options -O0 } */
+ 
+ typedef 	 int SItype	__attribute__ ((mode (SI)));
+ typedef		 int DItype	__attribute__ ((mode (DI)));
+ typedef unsigned int USItype	__attribute__ ((mode (SI)));
+   struct DIstruct {SItype low, high;};
+ typedef union
+ {
+   struct DIstruct s;
+   DItype ll;
+ } DIunion;
+ DItype
+ __muldi3 (DItype u, DItype v)
+ {
+   DIunion w;
+   DIunion uu, vv;
+   uu.ll = u,
+   vv.ll = v;
+   w.ll = ({DIunion __w;	__asm__ ("mull %3"	: "=a" ((USItype) (  __w.s.low )),	"=d" ((USItype) ( __w.s.high ))	: "%0" ((USItype) (   uu.s.low  )),	"rm" ((USItype) (    vv.s.low  ))) ;	__w.ll; }) ;
+   w.s.high += ((USItype) uu.s.low * (USItype) vv.s.high
+ 	       + (USItype) uu.s.high * (USItype) vv.s.low);
+   return w.ll;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/990213-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/990213-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/990213-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/990213-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-fPIC" } */
+ 
+ struct normal_encoding {};
+ struct unknown_encoding {};
+ static const struct normal_encoding latin1_encoding = {};
+ 
+ struct encoding*
+ XmlInitUnknownEncoding(void *mem)
+ {
+   int i;
+   struct unknown_encoding *e = mem;
+   for (i = 0; i < sizeof(struct normal_encoding); i++)
+     ((char *)mem)[i] = ((char *)&latin1_encoding)[i];
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/990214-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/990214-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/990214-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/990214-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-fPIC" } */
+ 
+ typedef int int64_t __attribute__ ((__mode__ (  __DI__ ))) ;
+ unsigned *
+ bar (int64_t which)
+ {
+ 	switch (which & 15 ) {
+ 	case 0 :
+ 		break;
+ 	case 1 :
+ 	case 5 :
+ 	case 2 : ;
+ 	}
+ 
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/990424-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/990424-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/990424-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/990424-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test that stack alignment is preserved with pending_stack_adjust
+    with stdcall functions.  */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options -mpreferred-stack-boundary=4 } */
+ 
+ void __attribute__((stdcall)) foo(int a, int b, int c);
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ int
+ main ()
+ {
+   foo(1, 2, 3);
+   foo(1, 2, 3);
+   exit (0);
+ }
+ 
+ void __attribute__((stdcall))
+ foo(int a, int b, int c)
+ {
+   static int last_align = -1;
+   int dummy, align = (int)&dummy & 15;
+   if (last_align < 0)
+     last_align = align;
+   else if (align != last_align)
+     abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/990524-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/990524-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/990524-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/990524-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=pentiumpro" } */
+ 
+ typedef struct t_anim_info {
+    char        *new_filename;
+    long         first_frame_nr; 
+ } t_anim_info;
+ static int
+ p_frames_to_multilayer(t_anim_info *ainfo_ptr,
+                       long range_from, long range_to)
+ {
+   long    l_cur_frame_nr;
+   long    l_step, l_begin, l_end;
+   int  l_tmp_image_id;
+   int  l_new_image_id;
+   if(range_from > range_to)
+   {
+     l_step  = -1;      
+     if(range_to < ainfo_ptr->first_frame_nr)
+     { l_begin = ainfo_ptr->first_frame_nr; 
+      }
+   }
+   else
+   {
+     l_step  = 1;       
+   }
+   l_cur_frame_nr = l_begin;
+   while(1)
+   {
+     if(ainfo_ptr->new_filename == ((void *)0) )
+     if(l_tmp_image_id < 0)
+       gimp_image_delete(l_tmp_image_id);
+     if(l_cur_frame_nr == l_end)
+        break;
+     l_cur_frame_nr += l_step;
+   }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/991129-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/991129-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/991129-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/991129-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* Test against a problem in push_reload.  */
+ 
+ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-O2" } */
+ 
+ unsigned long foo (unsigned long long x, unsigned long y)
+ {
+     unsigned long a;
+ 
+     x += y;
+ 
+     asm ("" : "=a" (a) : "A" (x), "rm" (y));
+ 
+     return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/991209-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/991209-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/991209-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/991209-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-ansi -pedantic" } */
+ 
+ int foo ()
+ {
+   return 1;
+ }
+ 
+ register char *stack_ptr __asm ("%esp"); /* { dg-warning "warning: file-scope declaration of 'stack_ptr' specifies 'register'" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/991214-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/991214-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/991214-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/991214-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ /* { dg-options "-O2" } */
+ 
+ /* Test against a problem with the combiner substituting explicit hard reg
+    references when it shouldn't.  */
+ void foo (int, int) __attribute__ ((regparm (3)));
+ void __attribute__((regparm(3))) foo (int x, int y)
+ {
+   __asm__ __volatile__("" : : "d" (x), "r" (y));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/991230-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/991230-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/991230-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/991230-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O -ffast-math -mtune=i486" } */
+ 
+ /* Test that floating point greater-than tests are compiled correctly with
+    -ffast-math.  */
+ 
+ extern void abort (void);
+ 
+ static int gt (double a, double b)
+ {
+   if (a > b)
+     return 4;
+   return 0;
+ }
+ 
+ static double zero = 0.0;
+ 
+ int main ()
+ {
+   if (gt (zero, zero))
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/amd64-abi-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/amd64-abi-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/amd64-abi-1.c	Tue Jan  4 06:15:28 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/amd64-abi-1.c	Mon Dec 12 22:37:46 2005
***************
*** 1,6 ****
! /* { dg-do compile { target x86_64-*-* } } */
  /* { dg-options "-mno-sse" } */
- /* { dg-require-effective-target lp64 } */
  
  double foo(void) { return 0; }	/* { dg-error "SSE disabled" } */
  void bar(double x) { }
--- 1,5 ----
! /* { dg-do compile { target { { i?86-*-* x86_64-*-* } && lp64 } } } */
  /* { dg-options "-mno-sse" } */
  
  double foo(void) { return 0; }	/* { dg-error "SSE disabled" } */
  void bar(double x) { }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,62 ----
+ /* PR opt/13862 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O" } */
+ 
+ typedef struct _fame_syntax_t_ {
+ } fame_syntax_t;
+ 
+ typedef struct _fame_bitbuffer_t_
+ {
+   unsigned char * base;
+   unsigned char * data;
+   unsigned long shift;
+ } fame_bitbuffer_t;
+ 
+ #define fast_bitbuffer_write(data, shift, c, l)				\
+ {									\
+   int d;								\
+ 									\
+   asm("add %1, %%ecx\n"            /* ecx = shift + length */		\
+       "shrd %%cl, %2, %3\n"        /* adjust code to fit in */		\
+       "shr %%cl, %2\n"             /* adjust code to fit in */		\
+       "mov %%ecx, %1\n"            /* shift += length */		\
+       "bswap %2\n"                 /* reverse byte order of code */	\
+       "shr $5, %%ecx\n"            /* get dword increment */            \
+       "or %2, (%0)\n"              /* put first 32 bits */		\
+       "bswap %3\n"                 /* reverse byte order of code */	\
+       "lea   (%0, %%ecx, 4), %0\n" /* data += (ecx>32) */		\
+       "andl $31, %1\n"             /* mask shift */			\
+       "orl %3, (%0)\n"             /* put last 32 bits */		\
+       : "=r"(data), "=r"(shift), "=a"(d), "=d"(d), "=c"(d)		\
+       : "0"(data), "1"(shift), "2"((unsigned long) c), "3"(0),		\
+ 	"c"((unsigned long) l)						\
+       : "memory");							\
+ }
+ 
+ #define bitbuffer_write(bb, c, l) \
+   fast_bitbuffer_write((bb)->data, (bb)->shift, c, l)
+ 
+ typedef enum { frame_type_I, frame_type_P } frame_type_t;
+ 
+ typedef struct _fame_syntax_mpeg1_t_ {
+   fame_bitbuffer_t buffer;
+   frame_type_t frame_type;
+ } fame_syntax_mpeg1_t;
+ 
+ #define FAME_SYNTAX_MPEG1(x) ((fame_syntax_mpeg1_t *) x)
+ 
+ void mpeg1_start_picture(fame_syntax_t *syntax)
+ {
+   fame_syntax_mpeg1_t *syntax_mpeg1 = FAME_SYNTAX_MPEG1(syntax);
+   bitbuffer_write(&syntax_mpeg1->buffer, 0xFFFF, 16); 
+ 
+   switch(syntax_mpeg1->frame_type) {
+     case frame_type_I:
+       bitbuffer_write(&syntax_mpeg1->buffer, 0, 1);  
+     break;
+     case frame_type_P:
+       bitbuffer_write(&syntax_mpeg1->buffer, 0, 1);
+     break;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-3.c	Sat Dec 10 00:04:44 2005
***************
*** 0 ****
--- 1,35 ----
+ /* PR inline-asm/6806 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ /* { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } } */
+ 
+ extern void abort (void);
+ 
+ volatile int out = 1;
+ volatile int a = 2;
+ volatile int b = 4;
+ volatile int c = 8;
+ volatile int d = 16;
+ volatile int e = 32;
+ volatile int f = 64;
+ 
+ int
+ main ()
+ {
+   asm volatile ("xorl %%eax, %%eax	\n\t"
+ 		"xorl %%esi, %%esi	\n\t"
+ 		"addl %1, %0		\n\t"
+ 		"addl %2, %0		\n\t"
+ 		"addl %3, %0		\n\t"
+ 		"addl %4, %0		\n\t"
+ 		"addl %5, %0		\n\t"
+ 		"addl %6, %0"
+ 		: "+r" (out)
+ 		: "r" (a), "r" (b), "r" (c), "g" (d), "g" (e), "g" (f)
+ 		: "%eax", "%esi");
+ 
+   if (out != 127)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,39 ----
+ /* Test if functions marked __attribute__((used)), but with address never
+    taken in C code, don't use alternate calling convention for local
+    functions on IA-32.  */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void);
+ 
+ static int foo (int, int, int, int) __asm ("foo");
+ static __attribute__((noinline, used)) int
+ foo (int i, int j, int k, int l)
+ {
+   return i + j + k + l;
+ }
+ 
+ void
+ bar (void)
+ {
+   if (foo (1, 2, 3, 4) != 10)
+     abort ();
+ }
+ 
+ int (*fn) (int, int, int, int);
+ 
+ void
+ baz (void)
+ {
+   __asm ("movl $foo, %k0" : "=r" (fn));
+   if (fn (2, 3, 4, 5) != 14)
+     abort ();
+ }
+ 
+ int
+ main (void)
+ {
+   bar ();
+   baz ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/asm-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/asm-5.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,26 ----
+ /* PR inline-asm/11676 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void);
+ static int bar(int x) __asm__("bar") __attribute__((regparm(1)));
+ static int __attribute__((regparm(1), noinline, used))
+ bar(int x)
+ {
+   if (x != 0)
+     abort ();
+ }
+ 
+ static int __attribute__((regparm(1), noinline))
+ foo(int x)
+ {
+   x = 0;
+   __asm__ __volatile__("call bar" : "=a"(x) : "a"(x));
+ }
+ 
+ int main()
+ {
+   foo(1);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/attributes-error.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/attributes-error.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/attributes-error.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/attributes-error.c	Thu Dec  8 01:32:54 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ void foo1(int i, int j) __attribute__((fastcall, cdecl)); /* { dg-error "not compatible" } */
+ void foo2(int i, int j) __attribute__((fastcall, stdcall)); /* { dg-error "not compatible" } */
+ void foo3(int i, int j) __attribute__((fastcall, regparm(2))); /* { dg-error "not compatible" } */
+ void foo4(int i, int j) __attribute__((stdcall, cdecl)); /* { dg-error "not compatible" } */
+ void foo5(int i, int j) __attribute__((stdcall, fastcall)); /* { dg-error "not compatible" } */
+ void foo6(int i, int j) __attribute__((cdecl, fastcall)); /* { dg-error "not compatible" } */
+ void foo7(int i, int j) __attribute__((cdecl, stdcall)); /* { dg-error "not compatible" } */
+ void foo8(int i, int j) __attribute__((regparm(2), fastcall)); /* { dg-error "not compatible" } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/bitfield1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/bitfield1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/bitfield1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/bitfield1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,55 ----
+ // Test for bitfield alignment in structs on IA-32
+ // { dg-do run { target i?86-*-* x86_64-*-* } }
+ // { dg-require-effective-target ilp32 }
+ // { dg-options "-O2" }
+ // { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-interix* i?86-*-cygwin* i?86-*-mingw*} }
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ struct A
+ {
+   char a;
+   long long b : 61;
+   char c;
+ } a, a4[4];
+ 
+ struct B
+ {
+   char d;
+   struct A e;
+   char f;
+ } b;
+ 
+ struct C
+ {
+   char g;
+   union U
+   {
+     char u1;
+     long long u2;
+     long long u3 : 64;
+   } h;
+   char i;
+ } c;
+ 
+ int main (void)
+ {
+   if (&a.c - &a.a != 12)
+     abort ();
+   if (sizeof (a) != 16)
+     abort ();
+   if (sizeof (a4) != 4 * 16)
+     abort ();
+   if (sizeof (b) != 2 * 4 + 16)
+     abort ();
+   if (__alignof__ (b.e) != 4)
+     abort ();
+   if (&c.i - &c.g != 12)
+     abort ();
+   if (sizeof (c) != 16)
+     abort ();
+   if (__alignof__ (c.h) != 4)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/bitfield2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/bitfield2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/bitfield2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/bitfield2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,23 ----
+ // Test for bitfield alignment in structs on IA-32
+ // { dg-do run { target i?86-*-* x86_64-*-* } }
+ // { dg-require-effective-target ilp32 }
+ // { dg-options "-O2" }
+ // { dg-options "-mno-align-double -mno-ms-bitfields" { target i?86-*-interix* i?86-*-cygwin* i?86-*-mingw* } }
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ struct X {
+   char a;
+   long long : 0;
+   char b;
+ } x;
+ 
+ int main () {
+   if (&x.b - &x.a != 4)
+     abort ();
+   if (sizeof (x) != 5)
+     abort ();
+   
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/bitfield3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/bitfield3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/bitfield3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/bitfield3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,24 ----
+ // Test for bitfield alignment in structs on IA-32
+ // { dg-do run { target i?86-*-* x86_64-*-* } }
+ // { dg-options "-O2" }
+ // { dg-options "-mno-align-double -mno-ms-bitfields" { target *-*-interix* } }
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ struct X {
+   int : 32;
+ };
+ 
+ struct Y {
+   int i : 32;
+ };
+ 
+ int main () {
+   if (__alignof__(struct X) != 1)
+     abort ();
+   if (__alignof__(struct Y) != 4)
+     abort ();
+   
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/builtin-apply-mmx.c	Tue Sep 27 21:04:42 2005
***************
*** 0 ****
--- 1,52 ----
+ /* __builtin_apply_args () and __builtin_return () built-in functions does
+    not function properly when -mmmx is used in compile flags.
+    __builtin_apply_args () saves all registers that pass arguments to a
+    function, including %mm0-%mm3, to a memory block, and __builtin_return ()
+    restores %mm0, from a return memory block, as it can be used as a
+    function return register.  Unfortunatelly, when MMX registers are touched,
+    i387 FPU switches to MMX mode, and no FP operation is possible until emms
+    instruction is issued.  */
+ 
+ /* This test case is adapted from gcc.dg/builtin-apply4.c.  */
+  
+ /* { dg-do run { xfail "*-*-*" } } */
+ /* { dg-options "-O2 -mmmx" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ extern void abort (void);
+ 
+ double
+ foo (double arg)
+ {
+   if (arg != 116.0)
+     abort ();
+ 
+   return arg + 1.0;
+ }
+ 
+ inline double
+ bar (double arg)
+ {
+   foo (arg);
+   __builtin_return (__builtin_apply ((void (*)()) foo,
+ 				     __builtin_apply_args (), 16));
+ }
+ 
+ int
+ main (int argc, char **argv)
+ {
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if (!(cpu_facilities & bit_MMX))
+     /* If host has no MMX support, pass.  */
+     return 0;
+ 
+   if (bar (116.0) != 117.0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cadd.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cadd.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cadd.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cadd.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "sbb" } } */
+ 
+ extern void abort (void);
+ 
+ /* Conditional increment is best done using sbb $-1, val.  */
+ int t[]={0,0,0,0,1,1,1,1,1,1};
+ q()
+ {
+   int sum=0;
+   int i;
+   for (i=0;i<10;i++)
+     if (t[i])
+        sum++;
+   if (sum != 6)
+     abort ();
+ }
+ main()
+ {
+   int i;
+   for (i=0;i<10000000;i++)
+     q();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/call-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/call-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/call-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/call-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,39 ----
+ /* PR optimization/11304 */
+ /* Originator: <manuel.serrano@sophia.inria.fr> */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O -fomit-frame-pointer" } */
+ 
+ /* Verify that %eax is always restored after a call.  */
+ 
+ extern void abort(void);
+ 
+ volatile int r;
+ 
+ void set_eax(int val)
+ {
+   __asm__ __volatile__ ("mov %0, %%eax" : : "m" (val));
+ }
+ 
+ void foo(int val)
+ {
+   r = val;
+ }
+ 
+ int bar(int x)
+ {
+   if (x)
+   {
+     set_eax(0);
+     return x;
+   }
+ 
+   foo(x);
+ }
+ 
+ int main(void)
+ {
+   if (bar(1) != 1)
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/clobbers.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/clobbers.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/clobbers.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/clobbers.c	Sat Dec 10 00:04:44 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test asm clobbers on x86. */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } } */
+ 
+ extern void abort (void);
+ 
+ int main ()
+ {
+         int i;
+         __asm__ ("movl $1,%0\n\txorl %%eax,%%eax" : "=r" (i) : : "eax");
+         if (i != 1)
+                 abort ();
+         __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx");
+         if (i != 1)
+                 abort ();
+         __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx");
+         if (i != 1)
+                 abort ();
+         __asm__ ("movl $1,%0\n\txorl %%edx,%%edx" : "=r" (i) : : "edx");
+         if (i != 1)
+                 abort ();
+         __asm__ ("movl $1,%0\n\txorl %%esi,%%esi" : "=r" (i) : : "esi");
+         if (i != 1)
+                 abort ();
+         __asm__ ("movl $1,%0\n\txorl %%edi,%%edi" : "=r" (i) : : "edi");
+         if (i != 1)
+                 abort ();
+         return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov1.c	Mon Nov 28 18:10:05 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "sar\[^\\n\]*magic_namea" } } */
+ /* { dg-final { scan-assembler "sar\[^\\n\]*magic_nameb" } } */
+ /* { dg-final { scan-assembler "sar\[^\\n\]*magic_namec" } } */
+ /* { dg-final { scan-assembler "shr\[^\\n\]*magic_named" } } */
+ /* { dg-final { scan-assembler "shr\[^\\n\]*magic_namee" } } */
+ /* { dg-final { scan-assembler "shr\[^\\n\]*magic_namef" } } */
+ 
+ /* Check code generation for several conditional moves doable by single arithmetics.  */
+ 
+ static int magic_namea;
+ static char magic_nameb;
+ static short magic_namec;
+ static int magic_named;
+ static char magic_namee;
+ static short magic_namef;
+ 
+ unsigned int gen;
+ void m(void)
+ {
+   magic_namec=magic_namec>=0?0:-1;
+   magic_namea=magic_namea>=0?0:-1;
+   magic_nameb=magic_nameb>=0?0:-1;
+   magic_named=magic_named>=0?0:1;
+   magic_namee=magic_namee>=0?0:1;
+   magic_namef=magic_namef>=0?0:1;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "sbb" } } */
+ 
+ /* This conditional move is fastest to be done using sbb.  */
+ t(unsigned int a, unsigned int b)
+ {
+   return (a<=b?5:-5);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "cmov" } } */
+ 
+ /* This conditional move is fastest to be done using cmov.  */
+ t(int a, int b)
+ {
+   return (a<=b?5:-5);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "cmov" } } */
+ 
+ /* Verify that if conversion happends for memory references.  */
+ int ARCHnodes;
+ int *nodekind;
+ float *nodekindf;
+ t()
+ {
+ int i;
+ /* Redefine nodekind to be 1 for all surface nodes */
+ 
+   for (i = 0; i < ARCHnodes; i++) {
+     nodekind[i] = (int) nodekindf[i];
+     if (nodekind[i] == 3)
+       nodekind[i] = 1;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cmov5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cmov5.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "sbb" } } */
+ 
+ int
+ t(float a, float b)
+ {
+ 	return a<=b?0:-1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-387-pic.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-387-pic.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-387-pic.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-387-pic.c	Tue Jul 12 20:33:02 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target i?86*-*-* } } */
+ /* { dg-options "-O2 -march=pentium4 -mtune=prescott -mfpmath=387 -fpic" } */
+ double foo (double x) {
+   return x + 1.75;
+ }
+ /* { dg-final { scan-assembler "flds" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-387.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-387.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-387.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-387.c	Tue Jul 12 20:33:02 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target i?86*-*-* } } */
+ /* { dg-options "-O2 -march=pentium4 -mtune=prescott -mfpmath=387" } */
+ double foo (double x) {
+   return x + 1.75;
+ }
+ /* { dg-final { scan-assembler "flds" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-sse-pic.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-sse-pic.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-sse-pic.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-sse-pic.c	Tue Jul 12 20:33:02 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target i?86*-*-* } } */
+ /* { dg-options "-O2 -march=pentium4 -mtune=prescott -mfpmath=sse -fpic" } */
+ double foo (double x) {
+   return x + 1.75;
+ }
+ /* { dg-final { scan-assembler "movsd" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-sse.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-sse.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/compress-float-sse.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/compress-float-sse.c	Tue Jul 12 20:33:02 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target i?86*-*-* } } */
+ /* { dg-options "-O2 -march=pentium4 -mtune=prescott -mfpmath=sse" } */
+ double foo (double x) {
+   return x + 1.75;
+ }
+ /* { dg-final { scan-assembler "movsd" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/cvt-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/cvt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/cvt-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/cvt-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8 -mfpmath=sse" } */
+ /* { dg-final { scan-assembler "cvttsd2si\[^\\n\]*xmm" } } */
+ /* { dg-final { scan-assembler "cvttss2si\[^\\n\]*xmm" } } */
+ int a,a1;
+ double b;
+ float b1;
+ t()
+ {
+ 	a=b;
+ 	a1=b1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/fastcall-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/fastcall-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/fastcall-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/fastcall-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target i386-pc-mingw32* i386-pc-cygwin* } } */
+ 
+ void
+ __attribute__ ((fastcall))
+ f1() { }
+ 
+ void
+ _fastcall
+ f2() { }
+ 
+ void
+ __fastcall
+ f3() { }
+ 
+ int
+ __attribute__ ((fastcall))
+ f4(int x, int y, int z) { }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/fastcall-sseregparm.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/fastcall-sseregparm.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/fastcall-sseregparm.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/fastcall-sseregparm.c	Mon Jun 20 04:37:58 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run } */
+ /* { dg-options "-mpreferred-stack-boundary=4 -msse" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ extern void abort(void);
+ 
+ void __attribute__((fastcall, sseregparm)) foo(int i, int j, float x)
+ {
+   static int last_align = -1;
+   int dummy, align = (int)&dummy & 15;
+   if (last_align < 0)
+     last_align = align;
+   else if (align != last_align)
+     abort ();
+ }
+ 
+ int main()
+ {
+ 	foo(0,0,0.0);
+ 	foo(0,0,0.0);
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ float a,b;
+ main()
+ {
+   a=b*3.0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ float a,b;
+ main()
+ {
+ 	return a<0.0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler-not "cvtss2sd" } } */
+ extern double fabs (double);
+ float a,b;
+ main()
+ {
+ 	a=fabs(b)+1.0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/fpcvt-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/fpcvt-4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8 -mfpmath=sse" } */
+ /* { dg-final { scan-assembler "cvtsi2sd" } } */
+ /* Check that conversions will get folded.  */
+ double
+ t(short a)
+ {
+   float b=a;
+   return b;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/i386.exp gcc-4.1.0/gcc/testsuite/gcc.target/i386/i386.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/i386.exp	Wed Dec 15 17:41:58 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/i386.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,22 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
! # Exit immediately if this isn't a SPARC target.
  if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then {
    return
  }
--- 12,22 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
! # Exit immediately if this isn't a x86 target.
  if { ![istarget i?86*-*-*] && ![istarget x86_64-*-*] } then {
    return
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/lea.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/lea.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/lea.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/lea.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=i686" } */
+ /* { dg-final { scan-assembler "leal" } } */
+ typedef struct {
+   char **visbuf;
+   char **allbuf;
+ } TScreen;
+ 
+ void
+ VTallocbuf(TScreen *screen, unsigned long savelines)
+ {
+   screen->visbuf = &screen->allbuf[savelines];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/local.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/local.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/local.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/local.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -funit-at-a-time" } */
+ /* { dg-final { scan-assembler "magic\[^\\n\]*eax" { target ilp32 } } } */
+ /* { dg-final { scan-assembler "magic\[^\\n\]*edi" { target lp64 } } } */
+ 
+ /* Verify that local calling convention is used.  */
+ static t(int) __attribute__ ((noinline));
+ m()
+ {
+ 	t(1);
+ }
+ static t(int a)
+ {
+ 	asm("magic %0"::"g"(a));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/local2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/local2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/local2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/local2.c	Sat Dec 31 00:54:00 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -funit-at-a-time -fomit-frame-pointer" } */
+ /* { dg-skip-if "PR 25214" { ilp32 } { "-fpic" "-fPIC" } { "" } } */
+ /* { dg-final { scan-assembler-not "sub\[^\\n\]*sp" } } */
+ 
+ static __attribute__ ((noinline)) q ();
+ int a;
+ 
+ /* This function should not require any stack manipulation
+    for preferred stack bounday.  */
+ void
+ e ()
+ {
+   if (a)
+   {
+     e ();
+     a--;
+   }
+   q ();
+ }
+ 
+ static __attribute__ ((noinline)) q ()
+ {
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/loop-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/loop-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/loop-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/loop-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,106 ----
+ /* PR optimization/9888 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-mtune=k6 -O3" } */
+ 
+ /* Verify that GCC doesn't emit out of range 'loop' instructions.  */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+    
+ f1 (a)
+      long a;
+ {
+   int i;
+   for (i = 0; i < 10; i++)
+     {
+       if (--a == -1)
+ 	return i;
+     }
+   return -1;
+ }
+ 
+ f2 (a)
+      long a;
+ {
+   int i;
+   for (i = 0; i < 10; i++)
+     {
+       if (--a != -1)
+ 	return i;
+     }
+   return -1;
+ }
+ 
+ f3 (a)
+      long a;
+ {
+   int i;
+   for (i = 0; i < 10; i++)
+     {
+       if (--a == 0)
+ 	return i;
+     }
+   return -1;
+ }
+ 
+ f4 (a)
+      long a;
+ {
+   int i;
+   for (i = 0; i < 10; i++)
+     {
+       if (--a != 0)
+ 	return i;
+     }
+   return -1;
+ }
+ 
+ f5 (a)
+      long a;
+ {
+   int i;
+   for (i = 0; i < 10; i++)
+     {
+       if (++a == 0)
+ 	return i;
+     }
+   return -1;
+ }
+ 
+ f6 (a)
+      long a;
+ {
+   int i;
+   for (i = 0; i < 10; i++)
+     {
+       if (++a != 0)
+ 	return i;
+     }
+   return -1;
+ }
+ 
+ 
+ int main()
+ {
+   if (f1 (5L) != 5)
+     abort ();
+   if (f2 (1L) != 0)
+     abort ();
+   if (f2 (0L) != 1)
+     abort ();
+   if (f3 (5L) != 4)
+     abort ();
+   if (f4 (1L) != 1)
+     abort ();
+   if (f4 (0L) != 0)
+     abort ();
+   if (f5 (-5L) != 4)
+     abort ();
+   if (f6 (-1L) != 1)
+     abort ();
+   if (f6 (0L) != 0)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/loop-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/loop-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/loop-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/loop-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,81 ----
+ /* PR optimization/9888 */
+ /* Originator: Jim Bray <jb@as220.org> */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-mtune=k6 -Os" } */
+ 
+ enum reload_type
+ {
+   RELOAD_FOR_INPUT, RELOAD_FOR_OUTPUT, RELOAD_FOR_INSN,
+   RELOAD_FOR_INPUT_ADDRESS, RELOAD_FOR_INPADDR_ADDRESS,
+   RELOAD_FOR_OUTPUT_ADDRESS, RELOAD_FOR_OUTADDR_ADDRESS,
+   RELOAD_FOR_OPERAND_ADDRESS, RELOAD_FOR_OPADDR_ADDR,
+   RELOAD_OTHER, RELOAD_FOR_OTHER_ADDRESS
+ };
+ 
+ #define FOO_SIZE 3
+ 
+ /* My results, varying with FOO_SIZE:
+    30: asm error "value of ..fff77 too large:
+    3 to 29: ....ff7d...
+    1 to 2: no error.  */
+ 
+ struct reload
+ {
+    int foo[FOO_SIZE];
+    int opnum; 
+    enum reload_type when_needed;
+    unsigned int optional:1; 
+    unsigned int secondary_p:1;
+ };
+ 
+ #define N_RELOADS  2
+ 
+ struct reload rld[N_RELOADS];
+ int n_reloads = N_RELOADS;
+ 
+ int main(void)
+ {
+   int i;
+ 
+   enum reload_type operand_type[1];
+ 
+   enum reload_type address_type[1];
+ 
+   int operand_reloadnum[1];
+   int goal_alternative_matches[1];
+ 
+   for (i = 0; i < n_reloads; i++)
+     {
+       if (rld[i].secondary_p
+           && rld[i].when_needed == operand_type[rld[i].opnum])
+         rld[i].when_needed = address_type[rld[i].opnum];
+ 
+       if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS
+            || rld[i].when_needed == RELOAD_FOR_OUTPUT_ADDRESS
+            || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS
+            || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
+           && (operand_reloadnum[rld[i].opnum] < 0
+               || rld[operand_reloadnum[rld[i].opnum]].optional))
+         {
+ 
+           if (rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS
+               || rld[i].when_needed == RELOAD_FOR_OUTADDR_ADDRESS)
+             rld[i].when_needed = RELOAD_FOR_OPADDR_ADDR;
+           else
+             rld[i].when_needed = RELOAD_FOR_OPERAND_ADDRESS;
+         }
+ 
+       if ((rld[i].when_needed == RELOAD_FOR_INPUT_ADDRESS
+            || rld[i].when_needed == RELOAD_FOR_INPADDR_ADDRESS)
+           && operand_reloadnum[rld[i].opnum] >= 0
+           && (rld[operand_reloadnum[rld[i].opnum]].when_needed
+               == RELOAD_OTHER))
+         rld[i].when_needed = RELOAD_FOR_OTHER_ADDRESS;
+ 
+       if (goal_alternative_matches[rld[i].opnum] >= 0)
+         rld[i].opnum = goal_alternative_matches[rld[i].opnum];
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/loop-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/loop-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/loop-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/loop-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,80 ----
+ /* PR target/11044 */
+ /* Originator: Tim McGrath <misty-@charter.net> */
+ /* Testcase contributed by Eric Botcazou <ebotcazou@libertysurf.fr> */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-mtune=k6 -O3 -ffast-math -funroll-loops" } */
+ 
+ extern void *memset (void *, int, __SIZE_TYPE__);
+ extern void abort (void);
+ 
+ typedef struct
+ {
+         unsigned char colormod;
+ } entity_state_t;
+ 
+ typedef struct
+ {
+         int num_entities;
+         entity_state_t *entities;
+ } packet_entities_t;
+ 
+ typedef struct
+ {
+         double senttime;
+         float ping_time;
+         packet_entities_t entities;
+ } client_frame_t;
+ 
+ typedef enum
+ {
+         cs_free,
+         cs_server,
+         cs_zombie,
+         cs_connected,
+         cs_spawned
+ } sv_client_state_t;
+ 
+ typedef struct client_s
+ {
+         sv_client_state_t state;
+         int ping;
+         client_frame_t frames[64];
+ } client_t;
+ 
+ int CalcPing (client_t *cl)
+ {
+         float ping;
+         int count, i;
+         register client_frame_t *frame;
+ 
+         if (cl->state == cs_server)
+                 return cl->ping;
+         ping = 0;
+         count = 0;
+         for (frame = cl->frames, i = 0; i < 64; i++, frame++) {
+                 if (frame->ping_time > 0) {
+                         ping += frame->ping_time;
+                         count++;
+                 }
+         }
+         if (!count)
+                 return 9999;
+         ping /= count;
+ 
+         return ping * 1000;
+ }
+ 
+ int main(void)
+ {
+    client_t cl;
+ 
+    memset(&cl, 0, sizeof(cl));
+ 
+    cl.frames[0].ping_time = 1.0f;
+ 
+    if (CalcPing(&cl) != 1000)
+      abort();
+ 
+    return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/memset-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/memset-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/memset-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/memset-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,104 ----
+ /* Copyright (C) 2002, 2005  Free Software Foundation.
+ 
+    Test -minline-all-stringops memset with various combinations of pointer
+    alignments and lengths to make sure builtin optimizations are correct.
+    PR target/6456.
+ 
+    Written by Michael Meissner, March 9, 2002.
+    Target by Roger Sayle, April 25, 2002.  */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -minline-all-stringops" } */
+ 
+ extern void *memset (void *, int, __SIZE_TYPE__);
+ extern void abort (void);
+ extern void exit (int);
+ 
+ #ifndef MAX_OFFSET
+ #define MAX_OFFSET (sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_COPY
+ #define MAX_COPY (8 * sizeof (long long))
+ #endif
+ 
+ #ifndef MAX_EXTRA
+ #define MAX_EXTRA (sizeof (long long))
+ #endif
+ 
+ #define MAX_LENGTH (MAX_OFFSET + MAX_COPY + MAX_EXTRA)
+ 
+ static union {
+   char buf[MAX_LENGTH];
+   long long align_int;
+   long double align_fp;
+ } u;
+ 
+ char A = 'A';
+ 
+ main ()
+ {
+   int off, len, i;
+   char *p, *q;
+ 
+   for (off = 0; off < MAX_OFFSET; off++)
+     for (len = 1; len < MAX_COPY; len++)
+       {
+ 	for (i = 0; i < MAX_LENGTH; i++)
+ 	  u.buf[i] = 'a';
+ 
+ 	p = memset (u.buf + off, '\0', len);
+ 	if (p != u.buf + off)
+ 	  abort ();
+ 
+ 	q = u.buf;
+ 	for (i = 0; i < off; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	for (i = 0; i < len; i++, q++)
+ 	  if (*q != '\0')
+ 	    abort ();
+ 
+ 	for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	p = memset (u.buf + off, A, len);
+ 	if (p != u.buf + off)
+ 	  abort ();
+ 
+ 	q = u.buf;
+ 	for (i = 0; i < off; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	for (i = 0; i < len; i++, q++)
+ 	  if (*q != 'A')
+ 	    abort ();
+ 
+ 	for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	p = memset (u.buf + off, 'B', len);
+ 	if (p != u.buf + off)
+ 	  abort ();
+ 
+ 	q = u.buf;
+ 	for (i = 0; i < off; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+ 
+ 	for (i = 0; i < len; i++, q++)
+ 	  if (*q != 'B')
+ 	    abort ();
+ 
+ 	for (i = 0; i < MAX_EXTRA; i++, q++)
+ 	  if (*q != 'a')
+ 	    abort ();
+       }
+ 
+   exit(0);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/minmax-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/minmax-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/minmax-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/minmax-1.c	Sat Nov 12 17:35:06 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -march=opteron" } */
+ /* { dg-final { scan-assembler "test" } } */
+ /* { dg-final { scan-assembler-not "cmp" } } */
+ #define max(a,b) (((a) > (b))? (a) : (b))
+ t(int a)
+ {
+   return (max(a,1));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/minmax-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/minmax-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/minmax-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/minmax-2.c	Sat Nov 12 17:35:06 2005
***************
*** 0 ****
--- 1,9 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler "test" } } */
+ /* { dg-final { scan-assembler-not "cmp" } } */
+ #define max(a,b) (((a) > (b))? (a) : (b))
+ t(unsigned int a)
+ {
+   return (max(a,1));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -mmmx" } */
+ 
+ /* Test that the intrinsics compile with optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <mmintrin.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0 -mmmx" } */
+ 
+ /* Test that the intrinsics compile without optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <mmintrin.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,17 ----
+ /* PR target/8870 */
+ /* Originator: otaylor@redhat.com */
+ /* { dg-do compile { target i?86-*-* x86_64-*-*} } */
+ /* { dg-options "-O1 -mmmx -march=k8" } */
+ 
+ typedef short v4hi __attribute__ ((vector_size (8)));
+ 
+ static inline v4hi cvtsi_v4hi (int i)
+ {
+   long long tmp = i;
+   return (v4hi) tmp;
+ }
+ 
+ v4hi bar (unsigned short a)
+ {
+   return cvtsi_v4hi (a);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,245 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -mmmx" } */
+ #include <mmintrin.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ #ifndef NOINLINE
+ #define NOINLINE __attribute__ ((noinline))
+ #endif
+ 
+ #define SHIFT (4)
+ 
+ typedef union {
+   __m64 v;
+   unsigned char c[8];
+   unsigned short int s[4];
+   unsigned long long t;
+   unsigned int u[2];
+ }vecInWord;
+ 
+ void mmx_tests (void) NOINLINE;
+ void dump64_16 (char *, char *, vecInWord);
+ void dump64_32 (char *, char *, vecInWord);
+ void dump64_64 (char *, char *, vecInWord);
+ int check (const char *, const char *[]);
+ 
+ char buf[8000];
+ char comparison[8000];
+ static int errors = 0;
+ 
+ vecInWord a64, b64, c64, d64, e64;
+ __m64 m64_16, s64, m64_32, m64_64;
+ 
+ const char *reference_mmx[] = {
+   "_mm_srai_pi16 0012 0012 0012 0012 \n",
+   "_mm_sra_pi16 0012 0012 0012 0012 \n",
+   "_mm_srai_pi32 00123456 00123456 \n",
+   "_mm_sra_pi32 00123456 00123456 \n",
+   "_mm_srli_pi16 0012 0012 0012 0012 \n",
+   "_mm_srl_pi16 0012 0012 0012 0012 \n",
+   "_mm_srli_pi32 00123456 00123456 \n",
+   "_mm_srl_pi32 00123456 00123456 \n",
+   "_mm_srli_si64 00123456789abcde\n",
+   "_mm_srl_si64 00123456789abcde\n",
+   "_mm_slli_pi16 1230 1230 1230 1230 \n",
+   "_mm_sll_pi16 1230 1230 1230 1230 \n",
+   "_mm_slli_pi32 12345670 12345670 \n",
+   "_mm_sll_pi32 12345670 12345670 \n",
+   "_mm_slli_si64 123456789abcdef0\n",
+   "_mm_sll_si64 123456789abcdef0\n",
+   ""
+ };
+ 
+ int main()
+ {
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if ((cpu_facilities & bit_MMX) == 0)
+     exit (0);
+ 
+   d64.u[0]  = 0x01234567;
+   d64.u[1]  = 0x01234567;
+ 
+   m64_32 = d64.v;
+ 
+   e64.t  = 0x0123456789abcdefULL;
+ 
+   m64_64 = e64.v;
+ 
+   a64.s[0] = 0x0123;
+   a64.s[1] = 0x0123;
+   a64.s[2] = 0x0123;
+   a64.s[3] = 0x0123;
+ 
+   m64_16 = a64.v;
+ 
+   b64.s[0] = SHIFT;
+   b64.s[1] = 0;
+   b64.s[2] = 0;
+   b64.s[3] = 0;
+ 
+   s64 = b64.v;
+ 
+   if (cpu_facilities & bit_MMX)
+     {
+       mmx_tests();
+       check (buf, reference_mmx);
+ #ifdef DEBUG
+       printf ("mmx testing:\n");
+       printf (buf);
+       printf ("\ncomparison:\n");
+       printf (comparison);
+ #endif
+       buf[0] = '\0';
+     }
+ 
+   if (errors != 0)
+     abort ();
+   exit (0);
+ }
+ 
+ void NOINLINE
+ mmx_tests (void)
+ {
+   /* psraw */
+   c64.v = _mm_srai_pi16 (m64_16, SHIFT);
+   dump64_16 (buf, "_mm_srai_pi16", c64);
+   c64.v  = _mm_sra_pi16 (m64_16, s64);
+   dump64_16 (buf, "_mm_sra_pi16", c64);
+ 
+   /* psrad */
+   c64.v  = _mm_srai_pi32 (m64_32, SHIFT);
+   dump64_32 (buf, "_mm_srai_pi32", c64);
+   c64.v = _mm_sra_pi32 (m64_32, s64);
+   dump64_32 (buf, "_mm_sra_pi32", c64);
+ 
+   /* psrlw */
+   c64.v = _mm_srli_pi16 (m64_16, SHIFT);
+   dump64_16 (buf, "_mm_srli_pi16", c64);
+   c64.v = _mm_srl_pi16 (m64_16, s64);
+   dump64_16 (buf, "_mm_srl_pi16", c64);
+ 
+   /* psrld */
+   c64.v = _mm_srli_pi32 (m64_32, SHIFT);
+   dump64_32 (buf, "_mm_srli_pi32", c64);
+   c64.v = _mm_srl_pi32 (m64_32, s64);
+   dump64_32 (buf, "_mm_srl_pi32", c64);
+ 
+   /* psrlq */
+   c64.v = _mm_srli_si64 (m64_64, SHIFT);
+   dump64_64 (buf, "_mm_srli_si64", c64);
+   c64.v = _mm_srl_si64 (m64_64, s64);
+   dump64_64 (buf, "_mm_srl_si64", c64);
+ 
+   /* psllw */
+   c64.v = _mm_slli_pi16 (m64_16, SHIFT);
+   dump64_16 (buf, "_mm_slli_pi16", c64);
+   c64.v = _mm_sll_pi16 (m64_16, s64);
+   dump64_16 (buf, "_mm_sll_pi16", c64);
+ 
+   /* pslld */
+   c64.v = _mm_slli_pi32 (m64_32, SHIFT);
+   dump64_32 (buf, "_mm_slli_pi32", c64);
+   c64.v = _mm_sll_pi32 (m64_32, s64);
+   dump64_32 (buf, "_mm_sll_pi32", c64);
+ 
+   /* psllq */
+   c64.v = _mm_slli_si64 (m64_64, SHIFT);
+   dump64_64 (buf, "_mm_slli_si64", c64);
+   c64.v = _mm_sll_si64 (m64_64, s64);
+   dump64_64 (buf, "_mm_sll_si64", c64);
+ }
+ 
+ void
+ dump64_16 (char *buf, char *name, vecInWord x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=0; i<4; i++)
+     {
+       sprintf (p, "%4.4x ", x.s[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ void
+ dump64_32 (char *buf, char *name, vecInWord x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=0; i<2; i++)
+     {
+       sprintf (p, "%8.8x ", x.u[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ void
+ dump64_64 (char *buf, char *name, vecInWord x)
+ {
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   sprintf (p, "%16.16llx\n", x.t);
+ }
+ 
+ int
+ check (const char *input, const char *reference[])
+ {
+   int broken, i, j, len;
+   const char *p_input;
+   char *p_comparison;
+   int new_errors = 0;
+ 
+   p_comparison = &comparison[0];
+   p_input = input;
+ 
+   for (i = 0; *reference[i] != '\0'; i++)
+     {
+       broken = 0;
+       len = strlen (reference[i]);
+       for (j = 0; j < len; j++)
+ 	{
+ 	  /* Ignore the terminating NUL characters at the end of every string in 'reference[]'.  */
+ 	  if (!broken && *p_input != reference[i][j])
+ 	    {
+ 	      *p_comparison = '\0';
+ 	      strcat (p_comparison, " >>> ");
+ 	      p_comparison += strlen (p_comparison);
+ 	      new_errors++;
+ 	      broken = 1;
+ 	    }
+ 	  *p_comparison = *p_input;
+ 	  p_comparison++;
+ 	  p_input++;
+ 	}
+       if (broken)
+ 	{
+ 	  *p_comparison = '\0';
+ 	  strcat (p_comparison, "expected:\n");
+ 	  strcat (p_comparison, reference[i]);
+ 	  p_comparison += strlen (p_comparison);
+ 	}
+     }
+   *p_comparison = '\0';
+   strcat (p_comparison, new_errors ? "failure\n\n" : "O.K.\n\n") ;
+   errors += new_errors;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-5.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,18 ----
+ /* PR rtl-optimization/17853 */
+ /* Contributed by Stuart Hastings <stuart@apple.com> */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -mmmx" } */
+ #include <mmintrin.h>
+ #include <stdlib.h>
+ 
+ __m64 global_mask;
+ 
+ int main()
+ {
+     __m64 zero = _mm_setzero_si64();
+     __m64 mask = _mm_cmpeq_pi8( zero, zero );
+     mask = _mm_unpacklo_pi8( mask, zero );
+     global_mask = mask;
+     return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-6.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-6.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,17 ----
+ /* PR middle-end/17767 */
+ /* Contributed by Volker Reichelt <reichelt@igpm.rwth-aachen.de> */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O -mmmx" } */
+ typedef int __m64 __attribute__ ((vector_size (8)));
+ typedef short __v4hi __attribute__ ((vector_size (8)));
+ 
+ __m64 foo ()
+ {
+   int i;
+   __m64 m;
+ 
+   for (i = 0; i < 2; i++)
+     m = (__m64) __builtin_ia32_pcmpeqw ((__v4hi) m, (__v4hi) m);
+ 
+   return m;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-7.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mmx-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mmx-7.c	Fri Feb 24 01:37:22 2006
***************
*** 0 ****
--- 1,18 ----
+ /* PR middle-end/26379 */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mmmx" } */
+ 
+ #include <mmintrin.h>
+ 
+ void
+ foo (__m64 *p)
+ {
+   __m64 m;
+ 
+   m = p[0];
+   m = _mm_srli_pi16(m, 2);
+   m = _mm_slli_pi16(m, 8);
+ 
+   p[0] = m;
+   _mm_empty();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/movq-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/movq-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/movq-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/movq-2.c	Mon Dec  5 07:49:01 2005
***************
*** 0 ****
--- 1,26 ----
+ /* PR target/25199 */
+ /* { dg-do compile } */
+ /* { dg-options "-Os -mtune=pentium4" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ struct S
+ {
+   void *p[30];
+   unsigned char c[4];
+ };
+ 
+ unsigned char d;
+ 
+ void
+ foo (struct S *x)
+ {
+   register unsigned char e __asm ("esi");
+   e = x->c[3];
+   __asm __volatile ("" : : "r" (e));
+   e = x->c[0];
+   __asm __volatile ("" : : "r" (e));
+ }
+ 
+ /* { dg-final { scan-assembler-not "movl\[ \t\]*123" } } */
+ /* { dg-final { scan-assembler "movzbl\[ \t\]*123" } } */
+ /* { dg-final { scan-assembler "movl\[ \t\]*120" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/movq.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/movq.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/movq.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/movq.c	Fri Dec  2 22:57:03 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile }
+ /* { dg-options "-Os -march=pentium4 -mtune=prescott" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ register char foo asm("edi");
+ char x;
+ int bar() {
+   foo = x;
+ }
+ /* { dg-final { scan-assembler "movz" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/mul.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/mul.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/mul.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/mul.c	Mon Nov 28 18:10:05 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -march=k8" } */
+ /* { dg-final { scan-assembler "and\[^\\n\]*magic" } } */
+ 
+ /* Should be done as "andw $32767, magic".  */
+ static unsigned short magic;
+ void t(void)
+ {
+ 	magic%=(unsigned short)0x8000U;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pentium4-not-mull.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -march=pentium4" } */
+ /* { dg-final { scan-assembler-not "imull" } } */
+ 
+ /* Should be done not using imull.  */
+ int t(int x)
+ {
+   return x*29;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pic-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pic-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pic-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pic-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,19 ----
+ /* PR target/8340 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-fPIC" } */
+ 
+ int foo ()
+ {
+   static int a;
+ 
+   __asm__ __volatile__ (  /* { dg-error "PIC register" } */
+     "xorl %%ebx, %%ebx\n"
+     "movl %%ebx, %0\n"
+     : "=m" (a)
+     :
+     : "%ebx"
+   );
+ 
+   return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr12092-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr12092-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr12092-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr12092-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,13 ----
+ /* PR rtl-optimization/12092  */
+ /* Test case reduced by Andrew Pinski <pinskia@physics.uc.edu> */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -mtune=i486 -march=pentium4 -fprefetch-loop-arrays" } */
+ 
+ void DecodeAC(int index,int *matrix)
+ {
+   int *mptr;
+ 
+   for(mptr=matrix+index;mptr<matrix+64;mptr++) {*mptr = 0;}
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr14289-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr14289-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr14289-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr14289-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR middle-end/14289 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0" } */
+ 
+ register int a[2] asm("ebx");
+ 
+ void Nase(void)
+ {
+   int i=6;
+   a[i]=5;  /* { dg-error "address of global" } */
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr18614-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr18614-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr18614-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr18614-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* PR rtl-optimization/18614 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2" } */
+ 
+ typedef double v2df __attribute__ ((vector_size (16)));
+ 
+ v2df foo (void)
+ {
+   v2df yd = { 1.0, 4.0 };
+   v2df xd;
+ 
+   xd = __builtin_ia32_cvtps2pd (__builtin_ia32_rsqrtps
+ 				(__builtin_ia32_cvtpd2ps (yd)));
+   return xd;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr19236-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr19236-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr19236-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr19236-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,14 ----
+ /* PR target/19236 */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-ffast-math" } */
+ 
+ extern float log1pf (float);
+ extern double log1p (double);  
+ 
+ float testf (float __x) { 
+   return log1pf(1.0); 
+ }
+ 
+ double test (double __x) { 
+   return log1p(1.0); 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr20204.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr20204.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr20204.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr20204.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { 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 -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr21518.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr21518.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr21518.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr21518.c	Wed Nov  2 02:12:32 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fPIC -fno-tree-pre" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ extern void __attribute__ ((regparm (3)))
+ drawPointsLines (char type, int first, int *dd);
+ 
+ int
+ do_locator (int *call)
+ {
+   char prephitmp5;
+   int type;
+   int i;
+ 
+   if (call == 0)
+     prephitmp5 = 1;
+   else
+     {
+       type = *call;
+       i = 0;
+       do
+ 	{
+ 	  if (i != type)
+ 	    drawPointsLines ((int) (char) type, 0, call);
+ 	  i = i + 1;
+ 	}
+       while (i != 2);
+       prephitmp5 = (char) type;
+     }
+   drawPointsLines ((int) prephitmp5, 0, call);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr22432.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr22432.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr22432.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr22432.c	Sun Nov  6 05:34:38 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -mmmx" } */
+ /* { dg-final { scan-assembler-not "paddb" } } */
+ 
+ typedef int v2si __attribute__ ((__vector_size__ (8)));
+ typedef short v4hi __attribute__ ((__vector_size__ (8)));
+ typedef char v8qi __attribute__ ((__vector_size__ (8)));
+ 
+ int
+ foo (unsigned int *a, unsigned int *b)
+ {
+   long long i, j, k;
+ 
+   i = (long long) __builtin_ia32_vec_init_v2si (*a, 0);
+   j = (long long) __builtin_ia32_vec_init_v2si (*b, 0);
+   i = (long long) __builtin_ia32_punpcklbw ((v8qi) i, (v8qi) 0ll);
+   j = (long long) __builtin_ia32_punpcklbw ((v8qi) j, (v8qi) 0ll);
+   k = (long long) __builtin_ia32_paddw ((v4hi) i, (v4hi) j);
+   return __builtin_ia32_vec_ext_v2si ((v2si) k, 0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr22576.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr22576.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr22576.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr22576.c	Mon Sep 26 19:19:43 2005
***************
*** 0 ****
--- 1,10 ----
+ /* PR target/22576 */
+ /* Testcase reduced by Volker Reichelt */
+ /* { dg-do compile } */
+ /* { dg-options "-ffast-math" } */
+ 
+ int
+ foo (long double d)
+ {
+   return d == 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr22585.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr22585.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr22585.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr22585.c	Tue Sep 27 21:04:42 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR target/22585 */
+ /* Testcase reduced by Volker Reichelt */
+ /* { dg-do compile } */
+ /* { dg-options "-march=i386 -O -ffast-math" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ int
+ foo (long double d, int i)
+ {
+   if (d == (long double) i)
+     return 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23268.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23268.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23268.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23268.c	Mon Sep 26 19:19:43 2005
***************
*** 0 ****
--- 1,13 ----
+ /* PR target/23268 */
+ /* Testcase reduced by Andrew Pinski */
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -ffast-math" } */
+ 
+ int
+ f (float x)
+ {
+   int a, b;
+   a = __builtin_log (2.f);
+   b = __builtin_lrint (x);
+   return (a + b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23376.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23376.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23376.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23376.c	Mon Nov  7 14:22:07 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -mmmx -funroll-loops -fvariable-expansion-in-unroller" } */
+ 
+ typedef int __m64 __attribute__ ((__vector_size__ (8)));
+ typedef int __v2si __attribute__ ((__vector_size__ (8)));
+ 
+ static __inline __m64 __attribute__((__always_inline__))
+ _mm_add_pi32 (__m64 __m1, __m64 __m2)
+ {
+   return (__m64) __builtin_ia32_paddd ((__v2si)__m1, (__v2si)__m2);
+ }
+ 
+ __m64
+ simple_block_diff_up_mmx_4 (const int width, __m64 ref1)
+ {
+   __m64 sum;
+   int count = width >>1;
+   while (count--)
+     sum = _mm_add_pi32 (sum, ref1);
+   return sum;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23570.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23570.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23570.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23570.c	Wed Aug 31 17:27:53 2005
***************
*** 0 ****
--- 1,92 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse2" } */
+ 
+ typedef float __v4sf __attribute__ ((__vector_size__ (16)));
+ typedef float __m128 __attribute__ ((__vector_size__ (16)));
+ typedef long long __v2di __attribute__ ((__vector_size__ (16)));
+ 
+ static __inline __m128
+ _mm_cmpeq_ps (__m128 __A, __m128 __B)
+ {
+   return (__m128) __builtin_ia32_cmpeqps ((__v4sf)__A, (__v4sf)__B);
+ }
+ 
+ static __inline __m128
+ _mm_setr_ps (float __Z, float __Y, float __X, float __W)
+ {
+   return __extension__ (__m128)(__v4sf){__Z, __Y, __X, __W };
+ }
+ 
+ static __inline __m128
+ _mm_and_si128 (__m128 __A, __m128 __B)
+ {
+   return (__m128)__builtin_ia32_pand128 ((__v2di)__A, (__v2di)__B);
+ }
+ 
+ static __inline __m128
+ _mm_or_si128 (__m128 __A, __m128 __B)
+ {
+   return (__m128)__builtin_ia32_por128 ((__v2di)__A, (__v2di)__B);
+ }
+ 
+ typedef union
+ {
+   __m128 xmmi;
+   int si[4];
+ }
+ __attribute__ ((aligned (16))) um128;
+ 
+ um128 u;
+ 
+ static inline int
+ sse_max_abs_indexf (float *v, int step, int n)
+ {
+   __m128 m1, mm;
+   __m128 mim, mi, msk;
+   um128 u, ui;
+   int n4, step2, step3;
+   mm = __builtin_ia32_andps ((__m128) (__v4sf)
+ 			     { 0.0, v[step], v[step2], v[step3] }
+ 			     , u.xmmi);
+   if (n4)
+     {
+       int i;
+       for (i = 0; i < n4; ++i);
+       msk = (__m128) _mm_cmpeq_ps (m1, mm);
+       mim = _mm_or_si128 (_mm_and_si128 (msk, mi), mim);
+     }
+   ui.xmmi = (__m128) mim;
+   return ui.si[n];
+ }
+ 
+ static void
+ sse_swap_rowf (float *r1, float *r2, int n)
+ {
+   int n4 = (n / 4) * 4;
+   float *r14end = r1 + n4;
+   while (r1 < r14end)
+     {
+       *r1 = *r2;
+       r1++;
+     }
+ }
+ 
+ void
+ ludcompf (float *m, int nw, int *prow, int n)
+ {
+   int i, s = 0;
+   float *pm;
+   for (i = 0, pm = m; i < n - 1; ++i, pm += nw)
+     {
+       int vi = sse_max_abs_indexf (pm + i, nw, n - i);
+       float *pt;
+       int j;
+       if (vi != 0)
+ 	{
+ 	  sse_swap_rowf (pm, pm + vi * nw, nw);
+ 	  swap_index (prow, i, i + vi);
+ 	}
+       for (j = i + 1, pt = pm + nw; j < n; ++j, pt += nw)
+ 	sse_add_rowf (pt + i + 1, pm + i + 1, -1.0, n - i - 1);
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23943.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23943.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr23943.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr23943.c	Mon Dec 12 22:37:46 2005
***************
*** 0 ****
--- 1,20 ----
+ /* This used to ICE in side_effects_p, due to a problem in cse.c.
+    Origin: marcus at jet dot franken dot de.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -fPIC" } */
+ 
+ typedef long unsigned int size_t;
+ 
+ extern size_t strlen (__const char *__s)
+     __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
+ 
+ static char savecallsin[256] = "";
+ 
+ int read_agent_config(void)
+ {
+   savecallsin[0] = '\0';
+ 
+   if (savecallsin[strlen(savecallsin) - 1] != '/')
+     __builtin___strncat_chk (savecallsin, "/", sizeof(savecallsin) - strlen(savecallsin) - 1, __builtin_object_size (savecallsin, 2 > 1)) ;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr24055.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr24055.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr24055.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr24055.c	Mon Sep 26 17:25:48 2005
***************
*** 0 ****
--- 1,26 ----
+ /* PR target/24055 */
+ /* Testcase reduced by Serge Belyshev */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -ffast-math" } */
+ 
+ extern double rint(double);
+ 
+ void foo_1 (int *p, double x)
+ {
+   *p = rint (x);
+ }
+ 
+ void foo_2 (long long *p, double x)
+ {
+   *p = rint (x);
+ }
+ 
+ int foo_3 (double x)
+ {
+   return rint (x);
+ }
+ 
+ long long foo_4 (double x)
+ {
+   return rint (x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr24306.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr24306.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr24306.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr24306.c	Tue Dec 20 17:23:12 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do run } */
+ /* { dg-options "-msse" } */
+ 
+ extern void abort(void);
+ typedef int __attribute__ ((vector_size (16))) foo_t;
+ 
+ struct s
+ {
+   foo_t f[0];
+ } s1;
+ 
+ void
+ check (int x, ...) __attribute__((noinline));
+ void
+ check (int x, ...)
+ {
+   int y;
+   __builtin_va_list ap;
+ 
+   __builtin_va_start (ap, x);
+   __builtin_va_arg (ap, struct s);
+   y = __builtin_va_arg (ap, int);
+ 
+   if (y != 7)
+     abort ();
+ }
+ 
+ int main()
+ {
+   check (3, s1, 7);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr24315.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr24315.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr24315.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr24315.c	Mon Oct 17 07:09:24 2005
***************
*** 0 ****
--- 1,9 ----
+ /* PR target/24315 */
+ /* { dg-do compile } */
+ /* { dg-options "-O0 -fpeephole2" } */
+ 
+ void s48_double_to_bignum (int exponent)
+ {
+   long length = ((((exponent) + ((((sizeof (long)) * 8) - 2) - 1)) /
+ 		  (((sizeof (long)) * 8) - 2)));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr25254.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr25254.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr25254.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr25254.c	Wed Dec 14 11:01:15 2005
***************
*** 0 ****
--- 1,11 ----
+ /* PR target/25254 */
+ /* { dg-do compile { target lp64 } } */
+ /* { dg-options "-mcmodel=medium -mlarge-data-threshold=1" } */
+ 
+ const struct { int i; int j; } c = { 2, 6 };
+ 
+ const char *
+ foo (void)
+ {
+   return "OK";
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr25293.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr25293.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr25293.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr25293.c	Tue Dec 13 08:17:18 2005
***************
*** 0 ****
--- 1,51 ----
+ /* PR target/25293 */
+ /* { dg-do compile } */
+ /* { dg-options "-mpreferred-stack-boundary=2 -mtune=i586 -O2 -fomit-frame-pointer -g" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ struct T { unsigned short t1, t2, t3, t4, t5, t6, t7; };
+ struct S { struct T s1; unsigned short s2, s3; };
+ unsigned short v1;
+ int f1 (void);
+ int f2 (struct T);
+ int f3 (const char *);
+ 
+ int
+ foo (struct S *x, struct T y)
+ {
+   unsigned short a, b, c;
+   unsigned long d, e;
+   int f = 0;
+   y.t6 = 6;
+   a = y.t7;
+   b = y.t6;
+   c = y.t7;
+   switch (a)
+     {
+     case 8:
+     case 7:
+       c = 9;
+       break;
+     case 1:
+     case 6:
+     case 3:
+       b = 16;
+       c = 9;
+       break;
+     }
+   if ((f = f1 ()))
+     goto error;
+   if ((f = f2 (y)))
+     goto error;
+   d = (long) &y;
+   e = (long) &x->s1;
+   __asm __volatile ("" : "+D" (e), "+S" (d) :: "memory");
+   x->s2 = b;
+   x->s3 = c;
+   f3 ("foo");
+   return 0;
+ error:
+   if (v1 >= 1)
+     f3 ("bar");
+   return f;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr25654.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr25654.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr25654.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr25654.c	Mon Jan 23 09:50:07 2006
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do run { target ilp32 } } */
+ /* { dg-options "-O2 -mpreferred-stack-boundary=2 -march=i686 -frename-registers" } */
+ 
+ extern void abort (void) __attribute__((noreturn));
+ 
+ struct wrapper {
+ union setconflict
+ {
+   short a[20];
+   int b[10];
+ } a;
+ };
+ 
+ int
+ main ()
+ {
+   int sum = 0;
+   {
+     struct wrapper a;
+     short *c;
+     c = a.a.a;
+     asm ("": "=r" (c):"0" (c));
+     *c = 0;
+     asm ("": "=r" (c):"0" (c));
+     sum += *c;
+   }
+   {
+     struct wrapper a;
+     int *c;
+     c = a.a.b;
+     asm ("": "=r" (c):"0" (c));
+     *c = 1;
+     asm ("": "=r" (c):"0" (c));
+     sum += *c;
+   }
+ 
+   if (sum != 1)
+     abort();
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr9771-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr9771-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/pr9771-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/pr9771-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,44 ----
+ /* PR rtl-optimization/9771 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2 -fomit-frame-pointer -ffixed-ebp" } */
+ 
+ extern void abort(void);
+ extern void exit(int);
+ 
+ register long *B asm ("ebp");
+ 
+ long x = 10;
+ long y = 20;
+ 
+ void bar(void)
+ {
+   B = &y;
+ }
+ 
+ void foo()
+ {
+   long *adr = B;
+   long save = *adr;
+ 
+   *adr = 123;
+ 
+   bar();
+ 
+   *adr = save;
+ }
+ 
+ int main()
+ {
+   B = &x;
+ 
+   foo();
+ 
+   if (x != 10 || y != 20)
+     abort();
+ 
+   /* We can't return, as our caller may assume %ebp is preserved!  */
+   /* We could save/restore it (like foo), but its easier to exit.  */
+   exit(0);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/regparm-stdcall.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/regparm-stdcall.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/regparm-stdcall.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/regparm-stdcall.c	Mon Jun 20 04:37:58 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run } */
+ /* { dg-options -mpreferred-stack-boundary=4 } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ extern void abort(void);
+ 
+ void __attribute__((regparm(2), stdcall)) foo(int i, int j, float x)
+ {
+   static int last_align = -1;
+   int dummy, align = (int)&dummy & 15;
+   if (last_align < 0)
+     last_align = align;
+   else if (align != last_align)
+     abort ();
+ }
+ 
+ int main()
+ {
+ 	foo(0,0,0.0);
+ 	foo(0,0,0.0);
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/regparm.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/regparm.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/regparm.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/regparm.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-W -Wall" } */
+ 
+ /* Verify that GCC correctly detects non-matching regparm attributes.  */
+ int __attribute__((regparm(3))) f (void);  /* { dg-error "previous" } */
+ 
+ int __attribute__((regparm(2))) f (void) { /* { dg-error "conflicting" } */
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/rotate-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/rotate-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/rotate-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/rotate-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,16 ----
+ /* Verify that rolb instruction is emitted on IA-32/x86-64.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ void foo (unsigned char *);
+ 
+ int
+ main (void)
+ {
+   unsigned char c = 0;
+   foo (&c);
+   c = c >> 1 | c << 7;
+   return c;
+ }
+ 
+ /* { dg-final { scan-assembler "rolb" { target i?86-*-* x86_64-*-* } } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sibcall-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sibcall-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sibcall-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sibcall-5.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,44 ----
+ /* Check that indirect sibcalls understand regparm.  */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O2" } */
+ 
+ extern void abort (void);
+ 
+ int (*f)(int, int) __attribute__((regparm(2)));
+ int (*g)(int, int, int) __attribute__((regparm(3)));
+ 
+ int __attribute__((noinline))
+ foo(void)
+ {
+   return f(1, 2);
+ }
+ 
+ int __attribute__((noinline))
+ bar(void)
+ {
+   return g(1, 2, 3);
+ }
+ 
+ int __attribute__((regparm(2)))
+ f1(int x, int y)
+ {
+   return x*3 + y;
+ }
+ 
+ int __attribute__((regparm(3)))
+ g1(int x, int y, int z)
+ {
+   return x*9 + y*3 + z;
+ }
+ 
+ int main()
+ {
+   f = f1;
+   g = g1;
+   if (foo() != 1*3 + 2)
+     abort ();
+   if (bar() != 1*9 + 2*3 + 3)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/signbit-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/signbit-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/signbit-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/signbit-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,29 ----
+ /* PR optimization/8746 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O1 -mtune=i586" } */
+ 
+ extern void abort (void);
+ 
+ unsigned char r0;
+ 
+ int foo(int x)
+ {
+   unsigned char r = x&0xf0;
+ 
+   if (!(r&0x80))
+   {
+     r0 = r;
+     return 0;
+   }
+   else
+     return 1;
+ }
+ 
+ int main(void)
+ {
+   if (foo(0x80) != 1)
+     abort();
+ 
+    return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/signbit-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/signbit-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/signbit-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/signbit-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,29 ----
+ /* PR optimization/8746 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O1 -mtune=i586" } */
+ 
+ extern void abort (void);
+ 
+ unsigned short r0;
+ 
+ int foo(int x)
+ {
+   unsigned short r = x&0xf000;
+ 
+   if (!(r&0x8000))
+   {
+     r0 = r;
+     return 0;
+   }
+   else
+     return 1;
+ }
+ 
+ int main(void)
+ {
+   if (foo(0x8000) != 1)
+     abort();
+ 
+    return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/signbit-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/signbit-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/signbit-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/signbit-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,33 ----
+ /* PR optimization/8746 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-O1 -mtune=i586" } */
+ 
+ extern void abort (void);
+ 
+ volatile int j;
+ 
+ void f0() { j=0; }
+ void f1() { j=1; }
+ 
+ int foo(int x)
+ {
+   if ((short int)(x&0x8000) > (short int)0)
+   {
+     f0();
+     return 0;
+   }
+   else
+   {
+     f1();
+     return 1;
+   }
+ }
+ 
+ int main(void)
+ {
+   if (foo(0x8000) != 1)
+     abort();
+ 
+    return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-10.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-10.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,34 ----
+ /* PR 17930 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O1 -msse2 -mfpmath=sse -mno-accumulate-outgoing-args -fno-omit-frame-pointer" } */
+ 
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ typedef _Complex double complex_16;
+ 
+ void NOINLINE
+ test (complex_16 a[5][5])
+ {
+   int i, j, k;
+   complex_16 x;
+ 
+   for (j = 0; j < 5; j++)
+     for (i = 0; i < 5; i++)
+       {
+         for (k = 0; k < j - 1; ++k)
+ 	  x = a[k][i] * ~a[k][j];
+ 	a[j][i] = x;
+       }
+ }
+ 
+ int main()
+ {
+   static complex_16 work[5][5];
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+   if (cpu_facilities & bit_SSE2)
+     test (work); 
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-11.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-11.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,92 ----
+ /* PR rtl-optimization/21239 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2" } */
+ #include <emmintrin.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ extern void abort (void);
+ 
+ void
+ foo (unsigned int x, double *y, const double *z)
+ {
+   __m128d tmp;
+   while (x)
+     {
+       tmp = _mm_load_sd (z);
+       _mm_store_sd (y, tmp);
+       --x; ++z; ++y;
+     }
+ }
+ 
+ void
+ bar (unsigned int x, float *y, const float *z)
+ {
+   __m128 tmp;
+   unsigned int i;
+   for (i = 0; i < x; ++i)
+     {
+       tmp = (__m128) { *z, 0, 0, 0 };
+       *y = __builtin_ia32_vec_ext_v4sf (tmp, 0);
+       ++z; ++y;
+     }
+   for (i = 0; i < x; ++i)
+     {
+       tmp = (__m128) { 0, *z, 0, 0 };
+       *y = __builtin_ia32_vec_ext_v4sf (tmp, 1);
+       ++z; ++y;
+     }
+   for (i = 0; i < x; ++i)
+     {
+       tmp = (__m128) { 0, 0, *z, 0 };
+       *y = __builtin_ia32_vec_ext_v4sf (tmp, 2);
+       ++z; ++y;
+     }
+   for (i = 0; i < x; ++i)
+     {
+       tmp = (__m128) { 0, 0, 0, *z };
+       *y = __builtin_ia32_vec_ext_v4sf (tmp, 3);
+       ++z; ++y;
+     }
+ }
+ 
+ void __attribute__((noinline))
+ run_tests (void)
+ {
+   unsigned int i;
+   double a[16], b[16];
+   float c[16], d[16];
+   for (i = 0; i < 16; ++i)
+     {
+       a[i] = 1;
+       b[i] = 2;
+       c[i] = 3;
+       d[i] = 4;
+     }
+   foo (16, a, b);
+   bar (4, c, d);
+   for (i = 0; i < 16; ++i)
+     {
+       if (a[i] != 2)
+ 	abort ();
+       if (c[i] != 4)
+ 	abort ();
+     }
+ }
+ 
+ int
+ main ()
+ {
+   unsigned long cpu_facilities;
+   unsigned int i;
+   double a[19], b[19];
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
+       != (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
+     /* If host has no vector support, pass.  */
+     return 0;
+ 
+   run_tests ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-12.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-12.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-12.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Test that {,x,e,p}mmintrin.h and mm_malloc.h are
+    usable with -std=c89 -pedantic-errors.  */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-std=c89 -pedantic-errors -msse3" } */
+ 
+ #include <mmintrin.h>
+ #include <xmmintrin.h>
+ #include <emmintrin.h>
+ #include <pmmintrin.h>
+ #include <mm_malloc.h>
+ 
+ int dummy;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-13.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-13.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-13.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-13.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse" } */
+ 
+ /* Test that the intrinsics compile with optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <xmmintrin.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-14.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-14.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0 -msse" } */
+ 
+ /* Test that the intrinsics compile without optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <xmmintrin.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-15.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-15.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-15.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-15.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse -msse2" } */
+ 
+ /* Test that the intrinsics compile with optimization.  These were not
+    tested in i386-sse-[12].c because these builtins require immediate
+    operands.  */
+ 
+ #include <xmmintrin.h>
+ 
+ __m128
+ test_shuf (void)
+ {
+   __m128 a = _mm_set1_ps (1.0);
+   __m128 b = _mm_set1_ps (2.0);
+   return _mm_shuffle_ps (a, b, _MM_SHUFFLE (0,1,2,3));
+ }
+ 
+ __m64
+ test_ins_ext (__m64 a)
+ {
+   return _mm_insert_pi16 (a, _mm_extract_pi16 (a, 0), 3);
+ }
+ 
+ __m64
+ test_shuf2 (__m64 a)
+ {
+   return _mm_shuffle_pi16 (a, 0xA5);
+ }
+ 
+ void
+ test_prefetch (char *p)
+ {
+   _mm_prefetch (p, _MM_HINT_T0);
+   _mm_prefetch (p+4, _MM_HINT_T1);
+   _mm_prefetch (p+8, _MM_HINT_T2);
+   _mm_prefetch (p+12, _MM_HINT_NTA);
+ }
+ 
+ __m128i
+ test__slli_si128 (__m128i a)
+ {
+   return _mm_slli_si128 (a, 3);
+ }
+ 
+ __m128i
+ test__srli_si128 (__m128i a)
+ {
+   return _mm_srli_si128 (a, 3);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-16.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-16.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-16.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-16.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0 -msse" } */
+ 
+ typedef float __vr __attribute__ ((vector_size (16)));
+ 
+ struct vector
+ {
+   union
+   {
+     __vr v;
+     float f[4];
+   };
+ };
+ 
+ void
+ doit ()
+ {
+   float f[4];
+   struct vector v;
+ 
+   f[0] = 0;
+   f[1] = 1;
+   f[2] = 2;
+   f[3] = 3;
+ 
+   v.v = __builtin_ia32_loadups (f);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-2.c	Mon Mar 21 17:51:02 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O3 -msse" } */
+ #include <xmmintrin.h>
+ static const __m128 v_sign = {-.0f, -.0f, -.0f, -.0f};
+ static const __m128 v_half = {0.5f, 0.5f, 0.5f, 0.5f};
+ static const __m128 v_one  = {1.0f, 1.0f, 1.0f, 1.0f};
+ static inline __m128 insn_ABS (__m128 a)
+ {
+   return _mm_andnot_ps (v_sign, a);
+ }
+ __m128 voodoo (__m128 a)
+ {
+   __m128 x = insn_ABS (a), y = _mm_rsqrt_ps (x);
+   y = _mm_add_ps (_mm_mul_ps (_mm_sub_ps (_mm_setzero_ps(), _mm_sub_ps (_mm_mul_ps (x, _mm_add_ps (_mm_mul_ps (y, y), _mm_setzero_ps())), v_one)), _mm_add_ps (_mm_mul_ps (y, v_half), _mm_setzero_ps())), y);
+   return y;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-5.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-Winline -O2 -march=i386" } */
+ 
+ typedef double v2df __attribute__ ((vector_size (16)));
+ v2df p;
+ q(v2df t)
+ {			 /* { dg-warning "SSE" "" } */
+ 	p=t;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-6.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-6.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,316 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2" } */
+ #include <xmmintrin.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ #ifndef NOINLINE
+ #define NOINLINE __attribute__ ((noinline))
+ #endif
+ 
+ #define SHIFT (4)
+ 
+ typedef union {
+   __m128i v;
+   unsigned int s[4];
+   unsigned short int t[8];
+   unsigned long long u[2];
+   unsigned char c[16];
+ }vecInLong;
+ 
+ void sse2_tests (void) NOINLINE;
+ void dump128_16 (char *, char *, vecInLong);
+ void dump128_32 (char *, char *, vecInLong);
+ void dump128_64 (char *, char *, vecInLong);
+ void dump128_128 (char *, char *, vecInLong);
+ int check (const char *, const char *[]);
+ 
+ char buf[8000];
+ char comparison[8000];
+ static int errors = 0;
+ 
+ vecInLong a128, b128, c128, d128, e128, f128;
+ __m128i m128_16, m128_32, s128, m128_64, m128_128;
+ __m64 m64_16, s64, m64_32, m64_64;
+ 
+ const char *reference_sse2[] = {
+   "_mm_srai_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
+   "_mm_sra_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
+   "_mm_srai_epi32 00123456 00123456 00123456 00123456 \n",
+   "_mm_sra_epi32 00123456 00123456 00123456 00123456 \n",
+   "_mm_srli_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
+   "_mm_srl_epi16 0012 0012 0012 0012 0012 0012 0012 0012 \n",
+   "_mm_srli_epi32 00123456 00123456 00123456 00123456 \n",
+   "_mm_srl_epi32 00123456 00123456 00123456 00123456 \n",
+   "_mm_srli_epi64 00123456789abcde 00123456789abcde \n",
+   "_mm_srl_epi64 00123456789abcde 00123456789abcde \n",
+   "_mm_srli_si128 (byte shift)  00000000ffeeddccbbaa998877665544\n",
+   "_mm_slli_epi16 1230 1230 1230 1230 1230 1230 1230 1230 \n",
+   "_mm_sll_epi16 1230 1230 1230 1230 1230 1230 1230 1230 \n",
+   "_mm_slli_epi32 12345670 12345670 12345670 12345670 \n",
+   "_mm_sll_epi32 12345670 12345670 12345670 12345670 \n",
+   "_mm_slli_epi64 123456789abcdef0 123456789abcdef0 \n",
+   "_mm_sll_epi64 123456789abcdef0 123456789abcdef0 \n",
+   "_mm_sll_si128 (byte shift) bbaa9988776655443322110000000000\n",
+   "_mm_shuffle_epi32 ffeeddcc bbaa9988 77665544 33221100 \n",
+   "_mm_shuffelo_epi16 7766 5544 3322 1100 9988 bbaa ddcc ffee \n",
+   "_mm_shuffehi_epi16 1100 3322 5544 7766 ffee ddcc bbaa 9988 \n",
+   ""
+ };
+ 
+ int main()
+ {
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
+       != (bit_MMX | bit_SSE | bit_SSE2 | bit_CMOV))
+     /* If host has no vector support, pass.  */
+     exit (0);
+ 
+   a128.s[0] = 0x01234567;
+   a128.s[1] = 0x01234567;
+   a128.s[2] = 0x01234567;
+   a128.s[3] = 0x01234567;
+ 
+   m128_32 = a128.v;
+ 
+   d128.u[0] = 0x0123456789abcdefULL;
+   d128.u[1] = 0x0123456789abcdefULL;
+ 
+   m128_64 = d128.v;
+ 
+   /* This is the 128-bit constant 0x00112233445566778899aabbccddeeff,
+      expressed as two little-endian 64-bit words.  */
+   e128.u[0] = 0x7766554433221100ULL;
+   e128.u[1] = 0xffeeddccbbaa9988ULL;
+ 
+   f128.t[0] = 0x0123;
+   f128.t[1] = 0x0123;
+   f128.t[2] = 0x0123;
+   f128.t[3] = 0x0123;
+   f128.t[4] = 0x0123;
+   f128.t[5] = 0x0123;
+   f128.t[6] = 0x0123;
+   f128.t[7] = 0x0123;
+ 
+   m128_16 = f128.v;
+ 
+   m128_128 = e128.v;
+ 
+   b128.s[0] = SHIFT;
+   b128.s[1] = 0;
+   b128.s[2] = 0;
+   b128.s[3] = 0;
+ 
+   s128 = b128.v;
+ 
+   if (cpu_facilities & bit_SSE2)
+     {
+       sse2_tests();
+       check (buf, reference_sse2);
+ #ifdef DEBUG
+       printf ("sse2 testing:\n");
+       printf (buf);
+       printf ("\ncomparison:\n");
+       printf (comparison);
+ #endif
+       buf[0] = '\0';
+     }
+ 
+   if (errors != 0)
+     abort ();
+   exit (0);
+ }
+ 
+ void NOINLINE
+ sse2_tests (void)
+ {
+   /* psraw */
+   c128.v = _mm_srai_epi16 (m128_16, SHIFT);
+   dump128_16 (buf, "_mm_srai_epi16", c128);
+   c128.v = _mm_sra_epi16 (m128_16, s128);
+   dump128_16 (buf, "_mm_sra_epi16", c128);
+ 
+   /* psrad */
+   c128.v = _mm_srai_epi32 (m128_32, SHIFT);
+   dump128_32 (buf, "_mm_srai_epi32", c128);
+   c128.v = _mm_sra_epi32 (m128_32, s128);
+   dump128_32 (buf, "_mm_sra_epi32", c128);
+ 
+   /* psrlw */
+   c128.v = _mm_srli_epi16 (m128_16, SHIFT);
+   dump128_16 (buf, "_mm_srli_epi16", c128);
+   c128.v = _mm_srl_epi16 (m128_16, s128);
+   dump128_16 (buf, "_mm_srl_epi16", c128);
+ 
+   /* psrld */
+   c128.v = _mm_srli_epi32 (m128_32, SHIFT);
+   dump128_32 (buf, "_mm_srli_epi32", c128);
+   c128.v = _mm_srl_epi32 (m128_32, s128);
+   dump128_32 (buf, "_mm_srl_epi32", c128);
+ 
+   /* psrlq */
+   c128.v = _mm_srli_epi64 (m128_64, SHIFT);
+   dump128_64 (buf, "_mm_srli_epi64", c128);
+   c128.v = _mm_srl_epi64 (m128_64, s128);
+   dump128_64 (buf, "_mm_srl_epi64", c128);
+ 
+   /* psrldq */
+   c128.v = _mm_srli_si128 (m128_128, SHIFT);
+   dump128_128 (buf, "_mm_srli_si128 (byte shift) ", c128);
+ 
+   /* psllw */
+   c128.v = _mm_slli_epi16 (m128_16, SHIFT);
+   dump128_16 (buf, "_mm_slli_epi16", c128);
+   c128.v = _mm_sll_epi16 (m128_16, s128);
+   dump128_16 (buf, "_mm_sll_epi16", c128);
+ 
+   /* pslld */
+   c128.v = _mm_slli_epi32 (m128_32, SHIFT);
+   dump128_32 (buf, "_mm_slli_epi32", c128);
+   c128.v = _mm_sll_epi32 (m128_32, s128);
+   dump128_32 (buf, "_mm_sll_epi32", c128);
+ 
+   /* psllq */
+   c128.v = _mm_slli_epi64 (m128_64, SHIFT);
+   dump128_64 (buf, "_mm_slli_epi64", c128);
+   c128.v = _mm_sll_epi64 (m128_64, s128);
+   dump128_64 (buf, "_mm_sll_epi64", c128);
+ 
+   /* pslldq */
+   c128.v = _mm_slli_si128 (m128_128, SHIFT);
+   dump128_128 (buf, "_mm_sll_si128 (byte shift)", c128);
+ 
+   /* Shuffle constant 0x1b == 0b_00_01_10_11, e.g. swap words: ABCD => DCBA.  */
+ 
+   /* pshufd */
+   c128.v = _mm_shuffle_epi32 (m128_128, 0x1b);
+   dump128_32 (buf, "_mm_shuffle_epi32", c128);
+ 
+   /* pshuflw */
+   c128.v = _mm_shufflelo_epi16 (m128_128, 0x1b);
+   dump128_16 (buf, "_mm_shuffelo_epi16", c128);
+ 
+   /* pshufhw */
+   c128.v = _mm_shufflehi_epi16 (m128_128, 0x1b);
+   dump128_16 (buf, "_mm_shuffehi_epi16", c128);
+ }
+ 
+ void
+ dump128_16 (char *buf, char *name, vecInLong x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=0; i<8; i++)
+     {
+       sprintf (p, "%4.4x ", x.t[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ void
+ dump128_32 (char *buf, char *name, vecInLong x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=0; i<4; i++)
+     {
+       sprintf (p, "%8.8x ", x.s[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ void
+ dump128_64 (char *buf, char *name, vecInLong x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=0; i<2; i++)
+     {
+       sprintf (p, "%16.16llx ", x.u[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ void
+ dump128_128 (char *buf, char *name, vecInLong x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=15; i>=0; i--)
+     {
+       /* This is cheating; we don't have a 128-bit int format code.
+ 	 Running the loop backwards to compensate for the
+ 	 little-endian layout. */
+       sprintf (p, "%2.2x", x.c[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ int
+ check (const char *input, const char *reference[])
+ {
+   int broken, i, j, len;
+   const char *p_input;
+   char *p_comparison;
+   int new_errors = 0;
+ 
+   p_comparison = &comparison[0];
+   p_input = input;
+ 
+   for (i = 0; *reference[i] != '\0'; i++)
+     {
+       broken = 0;
+       len = strlen (reference[i]);
+       for (j = 0; j < len; j++)
+ 	{
+ 	  /* Ignore the terminating NUL characters at the end of every string in 'reference[]'.  */
+ 	  if (!broken && *p_input != reference[i][j])
+ 	    {
+ 	      *p_comparison = '\0';
+ 	      strcat (p_comparison, " >>> ");
+ 	      p_comparison += strlen (p_comparison);
+ 	      new_errors++;
+ 	      broken = 1;
+ 	    }
+ 	  *p_comparison = *p_input;
+ 	  p_comparison++;
+ 	  p_input++;
+ 	}
+       if (broken)
+ 	{
+ 	  *p_comparison = '\0';
+ 	  strcat (p_comparison, "expected:\n");
+ 	  strcat (p_comparison, reference[i]);
+ 	  p_comparison += strlen (p_comparison);
+ 	}
+     }
+   *p_comparison = '\0';
+   strcat (p_comparison, new_errors ? "failure\n\n" : "O.K.\n\n") ;
+   errors += new_errors;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-7.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-7.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,139 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse" } */
+ #include <xmmintrin.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ #ifndef NOINLINE
+ #define NOINLINE __attribute__ ((noinline))
+ #endif
+ 
+ #define SHIFT (4)
+ 
+ typedef union {
+   __m64 v;
+   unsigned char c[8];
+   unsigned short int s[4];
+   unsigned long long t;
+   unsigned int u[2];
+ }vecInWord;
+ 
+ void sse_tests (void) NOINLINE;
+ void dump64_16 (char *, char *, vecInWord);
+ int check (const char *, const char *[]);
+ 
+ char buf[8000];
+ char comparison[8000];
+ static int errors = 0;
+ 
+ vecInWord c64, e64;
+ __m64 m64_64;
+ 
+ const char *reference_sse[] = {
+   "_mm_shuffle_pi16 0123 4567 89ab cdef \n",
+   ""
+ };
+ 
+ int main()
+ {
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if ((cpu_facilities & (bit_MMX | bit_SSE | bit_CMOV))
+       != (bit_MMX | bit_SSE | bit_CMOV))
+     /* If host has no vector support, pass.  */
+     exit (0);
+ 
+   e64.t  = 0x0123456789abcdefULL;
+ 
+   m64_64 = e64.v;
+ 
+   if (cpu_facilities & bit_SSE)
+     {
+       sse_tests();
+       check (buf, reference_sse);
+ #ifdef DEBUG
+       printf ("sse testing:\n");
+       printf (buf);
+       printf ("\ncomparison:\n");
+       printf (comparison);
+ #endif
+       buf[0] = '\0';
+     }
+ 
+   if (errors != 0)
+     abort ();
+   exit (0);
+ }
+ 
+ void NOINLINE
+ sse_tests (void)
+ {
+   /* pshufw */
+   c64.v = _mm_shuffle_pi16 (m64_64, 0x1b);
+   dump64_16 (buf, "_mm_shuffle_pi16", c64);
+ }
+ 
+ void
+ dump64_16 (char *buf, char *name, vecInWord x)
+ {
+   int i;
+   char *p = buf + strlen (buf);
+ 
+   sprintf (p, "%s ", name);
+   p += strlen (p);
+ 
+   for (i=0; i<4; i++)
+     {
+       sprintf (p, "%4.4x ", x.s[i]);
+       p += strlen (p);
+     }
+   strcat (p, "\n");
+ }
+ 
+ int
+ check (const char *input, const char *reference[])
+ {
+   int broken, i, j, len;
+   const char *p_input;
+   char *p_comparison;
+   int new_errors = 0;
+ 
+   p_comparison = &comparison[0];
+   p_input = input;
+ 
+   for (i = 0; *reference[i] != '\0'; i++)
+     {
+       broken = 0;
+       len = strlen (reference[i]);
+       for (j = 0; j < len; j++)
+ 	{
+ 	  /* Ignore the terminating NUL characters at the end of every string in 'reference[]'.  */
+ 	  if (!broken && *p_input != reference[i][j])
+ 	    {
+ 	      *p_comparison = '\0';
+ 	      strcat (p_comparison, " >>> ");
+ 	      p_comparison += strlen (p_comparison);
+ 	      new_errors++;
+ 	      broken = 1;
+ 	    }
+ 	  *p_comparison = *p_input;
+ 	  p_comparison++;
+ 	  p_input++;
+ 	}
+       if (broken)
+ 	{
+ 	  *p_comparison = '\0';
+ 	  strcat (p_comparison, "expected:\n");
+ 	  strcat (p_comparison, reference[i]);
+ 	  p_comparison += strlen (p_comparison);
+ 	}
+     }
+   *p_comparison = '\0';
+   strcat (p_comparison, new_errors ? "failure\n\n" : "O.K.\n\n") ;
+   errors += new_errors;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-8.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-8.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* PR target/14343 */
+ /* Origin: <Pawe Sikora <pluto@ds14.agh.edu.pl> */
+ 
+ /* The xstormy16 doesn't support V2DI.  */
+ /* { dg-do compile { xfail xstormy16-*-* } } */
+ /* { dg-options "" } */
+ /* { dg-options "-march=pentium3" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */
+ 
+ int main() 
+ { 
+   typedef long long int v __attribute__ ((vector_size (16))); 
+   v a, b; 
+   a = b; 
+   return 0; 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-9.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-9.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse" } */
+ #include <xmmintrin.h>
+ #include <stdlib.h>
+ #include <stddef.h>
+ #include <string.h>
+ 
+ int
+ main()
+ {
+   int alignment, n;
+   void *ptr;
+   int errors = 0;
+   const char test [] = "This is a test.";
+ 
+   for (alignment = 1; alignment <= (1 << 20); alignment += alignment)
+     {
+       ptr = _mm_malloc (alignment, alignment);
+       if (((ptrdiff_t) ptr) & (alignment - 1))
+ 	abort ();
+       if (ptr)
+ 	{
+ 	  n = alignment > sizeof test ? sizeof test : alignment;
+ 	  memcpy (ptr, test, n);
+ 	  if (memcmp (ptr, test, n) != 0)
+ 	    errors++;
+ 	  _mm_free (ptr);
+ 	}
+       else
+ 	errors++;
+     }
+    
+   if (errors != 0)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-vect-types.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-vect-types.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sse-vect-types.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sse-vect-types.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O0 -msse2" } */
+ 
+ /* Test the intrinsics without optimization.  All of them are
+    defined as inline functions in mmintrin.h that reference the proper
+    builtin functions.  Defining away "static" and "__inline" results in
+    all of them being compiled as proper functions.  */
+ 
+ #define static
+ #define __inline
+ 
+ #include <xmmintrin.h>
+ 
+ __m128d foo1(__m128d z, __m128d  a, int N) { 
+   int i;
+   for (i=0; i<N; i++) {
+     a = _mm_add_ps(z, a); /* { dg-error "incompatible type" } */
+   }
+   return a;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Test argument passing with SSE and local functions
+    Written by Paolo Bonzini, 25 January 2005 */
+ 
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-final { scan-assembler "movss" } } */
+ /* { dg-final { scan-assembler "mulss" } } */
+ /* { dg-final { scan-assembler-not "movsd" } } */
+ /* { dg-final { scan-assembler-not "mulsd" } } */
+ /* { dg-options "-O2 -msse -mfpmath=sse -fno-inline" } */
+ 
+ static float xs (void)
+ {
+   return 3.14159265;
+ }
+ 
+ float ys (float a)
+ {
+   return xs () * a;
+ }
+ 
+ static double xd (void)
+ {
+   return 3.1415926535;
+ }
+ 
+ double yd (double a)
+ {
+   return xd () * a;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Test argument passing with SSE2 and local functions
+    Written by Paolo Bonzini, 25 January 2005 */
+ 
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-final { scan-assembler "movss" } } */
+ /* { dg-final { scan-assembler "mulss" } } */
+ /* { dg-final { scan-assembler "movsd" } } */
+ /* { dg-final { scan-assembler "mulsd" } } */
+ /* { dg-options "-O2 -msse2 -mfpmath=sse -fno-inline" } */
+ 
+ static float xs (void)
+ {
+   return 3.14159265;
+ }
+ 
+ float ys (float a)
+ {
+   return xs () * a;
+ }
+ 
+ static double xd (void)
+ {
+   return 3.1415926535;
+ }
+ 
+ double yd (double a)
+ {
+   return xd () * a;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-3.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,43 ----
+ /* Execution test for argument passing with SSE and local functions
+    Written by Paolo Bonzini, 25 January 2005 */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse -mfpmath=sse" } */
+ #include <assert.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ static float xs (void)
+ {
+   return 3.14159265;
+ }
+ 
+ float ys (float a)
+ {
+   return xs () * a;
+ }
+ 
+ static double xd (void)
+ {
+   return 3.1415926535;
+ }
+ 
+ double yd (double a)
+ {
+   return xd () * a;
+ }
+ 
+ int main()
+ {
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if (cpu_facilities & bit_SSE)
+     {
+       assert (ys (1) == xs ());
+       assert (ys (2) == xs () * 2);
+       assert (yd (1) == xd ());
+       assert (yd (2) == xd () * 2);
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefn-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefn-4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,43 ----
+ /* Execution test for argument passing with SSE2 and local functions
+    Written by Paolo Bonzini, 25 January 2005 */
+ 
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -mfpmath=sse" } */
+ #include <assert.h>
+ #include "../../gcc.dg/i386-cpuid.h"
+ 
+ static float xs (void)
+ {
+   return 3.14159265;
+ }
+ 
+ float ys (float a)
+ {
+   return xs () * a;
+ }
+ 
+ static double xd (void)
+ {
+   return 3.1415926535;
+ }
+ 
+ double yd (double a)
+ {
+   return xd () * a;
+ }
+ 
+ int main()
+ {
+   unsigned long cpu_facilities;
+ 
+   cpu_facilities = i386_cpuid ();
+ 
+   if (cpu_facilities & bit_SSE2)
+     {
+       assert (ys (1) == xs ());
+       assert (ys (2) == xs () * 2);
+       assert (yd (1) == xd ());
+       assert (yd (2) == xd () * 2);
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefp-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefp-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefp-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefp-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
+ /* { dg-final { scan-assembler "maxsd" } } */
+ /* { dg-final { scan-assembler "minsd" } } */
+ double x;
+ t()
+ {
+   x=x>5?x:5;
+ }
+ 
+ double x;
+ q()
+ {
+   x=x<5?x:5;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefp-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssefp-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssefp-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8 -mfpmath=sse" } */
+ /* { dg-final { scan-assembler "maxsd" } } */
+ /* { dg-final { scan-assembler "minsd" } } */
+ double x;
+ q()
+ {
+   x=x<5?5:x;
+ }
+ 
+ double x;
+ q1()
+ {
+   x=x>5?5:x;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-1.c	Mon Jun 20 04:37:58 2005
***************
*** 0 ****
--- 1,19 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -msse" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ float essef(float) __attribute__((sseregparm));
+ double essed(double) __attribute__((sseregparm));
+ float __attribute__((sseregparm, noinline)) ssef(float f) { return f; }
+ double __attribute__((sseregparm, noinline)) ssed(double d) { return d; }
+ extern double d;
+ extern float f;
+ void test(void)
+ {
+   f = essef(f);
+   d = essed(d);
+   f = ssef(f);
+   d = ssed(d);
+ }
+ 
+ /* { dg-final { scan-assembler-not "fldl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-2.c	Mon Jun 20 04:37:58 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mno-sse" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ float essef(float) __attribute__((sseregparm));
+ double essed(double) __attribute__((sseregparm));
+ float __attribute__((sseregparm, noinline)) ssef(float f) { return f; } /* { dg-warning "SSE" } */
+ double __attribute__((sseregparm, noinline)) ssed(double d) { return d; } /* { dg-warning "SSE" } */
+ extern double d;
+ extern float f;
+ void test(void)
+ {
+   f = essef(f); /* { dg-warning "SSE" } */
+   d = essed(d); /* { dg-warning "SSE" } */
+   f = ssef(f); /* { dg-warning "SSE" } */
+   d = ssed(d); /* { dg-warning "SSE" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-3.c	Thu Jul 14 07:46:23 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+ 
+ double __attribute__((sseregparm)) mysin(double x);
+ double __attribute__((sseregparm)) (*mysinfp)(double) = mysin;
+ double bar(double x)
+ {
+   return 1.0+mysinfp(x);
+ }
+ 
+ /* { dg-final { scan-assembler "fldl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-4.c	Thu Jul 14 07:46:23 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+ 
+ double __attribute__((sseregparm)) mysin(double x);
+ double __attribute__((sseregparm)) (*mysinfp)(double) = mysin;
+ double bar(double x)
+ {
+   return mysinfp(x);
+ }
+ 
+ /* { dg-final { scan-assembler "fldl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-5.c	Thu Jul 14 07:46:23 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+ 
+ double __attribute__((sseregparm)) mysin(void);
+ double __attribute__((sseregparm)) (*mysinfp)(void) = mysin;
+ double bar(double x)
+ {
+   return mysinfp();
+ }
+ 
+ /* { dg-final { scan-assembler "fldl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-6.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-6.c	Thu Jul 14 07:46:23 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+ 
+ double __attribute__((sseregparm)) mysin(double x);
+ double bar(double x)
+ {
+   return mysin(x);
+ }
+ 
+ /* { dg-final { scan-assembler "fldl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-7.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/sseregparm-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/sseregparm-7.c	Thu Jul 14 07:46:23 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile } */
+ /* { dg-options "-msse2 -O2" } */
+ /* { dg-require-effective-target ilp32 } */
+ 
+ /* Make sure we know that mysinfp returns in %xmm0.  */
+ 
+ double __attribute__((sseregparm)) mysin(void);
+ double bar(double x)
+ {
+   return mysin();
+ }
+ 
+ /* { dg-final { scan-assembler "fldl" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-1.c	Mon Nov 28 18:10:05 2005
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andpd\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "andnpd\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "xorpd\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "orpd\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler-not "movdqa" } } */
+ /* { dg-final { scan-assembler "movapd\[^\\n\]*magic" } } */
+ 
+ /* Verify that we generate proper instruction with memory operand.  */
+ 
+ #include <xmmintrin.h>
+ 
+ static __m128d magic_a, magic_b;
+ 
+ __m128d
+ t1(void)
+ {
+ return _mm_and_pd (magic_a,magic_b);
+ }
+ __m128d
+ t2(void)
+ {
+ return _mm_andnot_pd (magic_a,magic_b);
+ }
+ __m128d
+ t3(void)
+ {
+ return _mm_or_pd (magic_a,magic_b);
+ }
+ __m128d
+ t4(void)
+ {
+ return _mm_xor_pd (magic_a,magic_b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-2.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-2.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,39 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andpd" } } */
+ /* { dg-final { scan-assembler "andnpd" } } */
+ /* { dg-final { scan-assembler "xorpd" } } */
+ /* { dg-final { scan-assembler "orpd" } } */
+ /* { dg-final { scan-assembler-not "movdqa" } } */
+ 
+ /* Verify that we generate proper instruction without memory operand.  */
+ 
+ #include <xmmintrin.h>
+ __m128d
+ t1(__m128d a, __m128d b)
+ {
+ a=_mm_sqrt_pd(a);
+ b=_mm_sqrt_pd(b);
+ return _mm_and_pd (a,b);
+ }
+ __m128d
+ t2(__m128d a, __m128d b)
+ {
+ a=_mm_sqrt_pd(a);
+ b=_mm_sqrt_pd(b);
+ return _mm_andnot_pd (a,b);
+ }
+ __m128d
+ t3(__m128d a, __m128d b)
+ {
+ a=_mm_sqrt_pd(a);
+ b=_mm_sqrt_pd(b);
+ return _mm_or_pd (a,b);
+ }
+ __m128d
+ t4(__m128d a, __m128d b)
+ {
+ a=_mm_sqrt_pd(a);
+ b=_mm_sqrt_pd(b);
+ return _mm_xor_pd (a,b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-3.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-3.c	Wed Dec 14 17:34:21 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andps\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "andnps\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "xorps\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "orps\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler-not "movdqa" } } */
+ /* { dg-final { scan-assembler "movaps\[^\\n\]*magic" } } */
+ 
+ /* Verify that we generate proper instruction with memory operand.  */
+ 
+ #include <xmmintrin.h>
+ 
+ static __m128 magic_a, magic_b;
+ __m128
+ t1(void)
+ {
+ return _mm_and_ps (magic_a,magic_b);
+ }
+ __m128
+ t2(void)
+ {
+ return _mm_andnot_ps (magic_a,magic_b);
+ }
+ __m128
+ t3(void)
+ {
+ return _mm_or_ps (magic_a,magic_b);
+ }
+ __m128
+ t4(void)
+ {
+ return _mm_xor_ps (magic_a,magic_b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-4.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-4.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,38 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "andps" } } */
+ /* { dg-final { scan-assembler "andnps" } } */
+ /* { dg-final { scan-assembler "xorps" } } */
+ /* { dg-final { scan-assembler "orps" } } */
+ 
+ /* Verify that we generate proper instruction without memory operand.  */
+ 
+ #include <xmmintrin.h>
+ __m128
+ t1(__m128 a, __m128 b)
+ {
+ a=_mm_sqrt_ps(a);
+ b=_mm_sqrt_ps(b);
+ return _mm_and_ps (a,b);
+ }
+ __m128
+ t2(__m128 a, __m128 b)
+ {
+ a=_mm_sqrt_ps(a);
+ b=_mm_sqrt_ps(b);
+ return _mm_andnot_ps (a,b);
+ }
+ __m128
+ t3(__m128 a, __m128 b)
+ {
+ a=_mm_sqrt_ps(a);
+ b=_mm_sqrt_ps(b);
+ return _mm_or_ps (a,b);
+ }
+ __m128
+ t4(__m128 a, __m128 b)
+ {
+ a=_mm_sqrt_ps(a);
+ b=_mm_sqrt_ps(b);
+ return _mm_xor_ps (a,b);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-5.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/ssetype-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/ssetype-5.c	Wed Dec 14 17:34:21 2005
***************
*** 0 ****
--- 1,34 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O2 -msse2 -march=k8" } */
+ /* { dg-final { scan-assembler "pand\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "pandn\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "pxor\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "por\[^\\n\]*magic" } } */
+ /* { dg-final { scan-assembler "movdqa" } } */
+ /* { dg-final { scan-assembler-not "movaps\[^\\n\]*magic" } } */
+ 
+ /* Verify that we generate proper instruction with memory operand.  */
+ 
+ #include <xmmintrin.h>
+ static __m128i magic_a, magic_b;
+ __m128i
+ t1(void)
+ {
+ return _mm_and_si128 (magic_a,magic_b);
+ }
+ __m128i
+ t2(void)
+ {
+ return _mm_andnot_si128 (magic_a,magic_b);
+ }
+ __m128i
+ t3(void)
+ {
+ return _mm_or_si128 (magic_a,magic_b);
+ }
+ __m128i
+ t4(void)
+ {
+ return _mm_xor_si128 (magic_a,magic_b);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/tailcall-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/tailcall-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/tailcall-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/tailcall-1.c	Wed Dec 14 17:34:21 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */
+ /* { dg-options "-O2" } */
+ 
+ typedef unsigned int Cardinal;
+ typedef char *String;
+ typedef struct _WidgetRec *Widget;
+ 
+ typedef union _XEvent {
+         int type;
+  long pad[24];
+ } XEvent;
+ 
+ 
+ extern int SendMousePosition (Widget w, XEvent* event);
+ 
+ 
+ void
+ HandleIgnore(Widget w,
+       XEvent * event,
+       String * params ,
+       Cardinal *param_count )
+ {
+ 
+     (void) SendMousePosition(w, event);
+ }
+ 
+ /* { dg-final { scan-assembler "jmp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/unroll-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/unroll-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/unroll-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/unroll-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,18 ----
+ /* PR optimization/8599 */
+ /* { dg-do run { target i?86-*-* x86_64-*-* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-mtune=k6 -O2 -funroll-loops" } */
+ 
+ extern void exit (int);
+ 
+ void *array[4];
+ 
+ int main ()
+ {
+   int i;
+  
+   for (i = 0; i < 4; i++)
+     array[i] = 0;
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/volatile-1.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/volatile-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/volatile-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/volatile-1.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,14 ----
+ /* PR optimization/11381 */
+ /* Originator: <tobias@ringstrom.mine.nu> */
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-O" } */
+ 
+ /* Verify that the comparison is not optimized away. */
+ 
+ void foo(volatile unsigned int *vaddr)
+ {
+   while (*vaddr != *vaddr)
+     ;
+ }
+ 
+ /* { dg-final { scan-assembler "cmp" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/i386/xorps.c gcc-4.1.0/gcc/testsuite/gcc.target/i386/xorps.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/i386/xorps.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/i386/xorps.c	Fri Nov  4 20:31:24 2005
***************
*** 0 ****
--- 1,31 ----
+ /* { dg-do compile { target i?86-*-* x86_64-*-* } } */
+ /* { dg-options "-Os -msse2" } */
+ 
+ typedef float __m128 __attribute__ ((vector_size (16)));
+ 
+ static __inline __m128
+ _mm_mul_ps (__m128 __A, __m128 __B)
+ {
+   return __builtin_ia32_mulps (__A, __B);
+ }
+ 
+ static __inline __m128
+ _mm_sub_ps (__m128 __A, __m128 __B)
+ {
+   return  __builtin_ia32_subps (__A, __B);
+ }
+ 
+ __m128 POW_FUNC (__m128 x, __m128 y)
+ {
+     __m128 xmm0 = x, xmm1 = y, xmm2;
+ 
+     xmm0 = __builtin_ia32_xorps (xmm1, xmm1);
+ 
+     xmm0 = _mm_mul_ps (xmm0, xmm1);
+ 
+     xmm0 = _mm_sub_ps (xmm0, xmm1);
+ 
+     xmm0 = _mm_mul_ps (xmm0, xmm1);
+ 
+     return xmm0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20010423-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20010423-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20010423-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20010423-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ int __sync_fetch_and_add_si (int *, int);
+ 
+ inline unsigned int
+ bar (volatile unsigned int *mem, unsigned int val)
+ {
+   return __sync_fetch_and_add_si((int *)mem, (int)val);
+ }
+ 
+ volatile unsigned int x;
+ 
+ void foo (unsigned short *a)
+ {
+   *a = bar (&x, 1) + 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20020313-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20020313-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20020313-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20020313-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,72 ----
+ /* PR 5312 
+    The problem here is that the ia64 scheduler saw a sequence of L L M type
+    insns, and messed up its internal state on which slot it was issuing
+    to, and aborted.  */
+ 
+ /* { dg-do compile } */
+ /* In ILP32 mode, we get warnings about large integer constants.
+    Those cause spurious FAILs.  */
+ /* { dg-options "-w -O2 -mconstant-gp" } */
+ 
+ typedef unsigned long __u64;
+ typedef unsigned int __u32;
+ typedef struct { } spinlock_t;
+ struct cpuinfo_ia64 {
+         union {
+                 struct {
+                         __u32 irq_count;
+                         __u32 bh_count;
+                 } f;
+                 __u64 irq_and_bh_counts;
+         } irq_stat;
+         __u32 softirq_pending;
+ } __attribute__ ((aligned ((1UL << 14)))) ;
+ enum
+ {
+         TCA_UNSPEC,
+         TCA_KIND,
+         TCA_OPTIONS,
+         TCA_STATS,
+         TCA_XSTATS,
+         TCA_RATE,
+ };
+ struct tc_stats
+ {
+         __u64 bytes;
+         __u32 packets;
+         __u32 drops;
+         __u32 overlimits;
+         __u32 bps;
+         __u32 pps;
+         __u32 qlen;
+         __u32 backlog;
+         spinlock_t *lock;
+ };
+ struct sk_buff {
+         unsigned int data_len;
+         unsigned char *tail;
+         unsigned char *end;
+ };
+ static inline int skb_is_nonlinear(const struct sk_buff *skb)
+ {
+         return skb->data_len;
+ }
+ static inline int skb_tailroom(const struct sk_buff *skb)
+ {
+         return skb_is_nonlinear(skb) ? 0 : skb->end-skb->tail;
+ }
+ struct rtattr
+ {
+         unsigned short rta_len;
+         unsigned short rta_type;
+ };
+ int qdisc_copy_stats(struct sk_buff *skb, struct tc_stats *st)
+ {
+         do { do { (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count)++; __asm__ __volatile__("": : :"memory"); } while (0); (void)(st->lock); } while (0);
+         ({ if (skb_tailroom(skb) < (int)( (((( ((sizeof(struct rtattr))+4 -1) & ~(4 -1) ) + ((char*)&st->lock - (char*)st)))+4 -1) & ~(4 -1) )) goto rtattr_failure; __rta_fill(skb, TCA_STATS, (char*)&st->lock - (char*)st, st); });
+         do { do { } while(0); do { do { __asm__ __volatile__("": : :"memory"); (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count)--; } while (0); if (__builtin_expect((((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->softirq_pending), 0) && (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count) == 0) do_softirq(); } while (0); } while (0);
+         return 0;
+ rtattr_failure:
+         do { do { } while(0); do { do { __asm__ __volatile__("": : :"memory"); (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count)--; } while (0); if (__builtin_expect((((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->softirq_pending), 0) && (((struct cpuinfo_ia64 *) (0xa000000000000000 + 2*(1UL << 14)))->irq_stat.f.bh_count) == 0) do_softirq(); } while (0); } while (0);
+         return -1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20020326-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20020326-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20020326-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20020326-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,11 ----
+ /* PR target/6054 */
+ /* { dg-do compile } */
+ /* { dg-options "-O -mconstant-gp" } */
+ /* { dg-final { scan-assembler "mov r1 =" } } */
+ 
+ extern void direct (void);
+ void foo(void (*indirect) (void))
+ {
+   indirect ();
+   direct ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20030225-2.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20030225-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20030225-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20030225-2.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,46 ----
+ /* { dg-do run } */
+ /* { dg-options "-O3" } */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ int __attribute__((noinline, const))
+ ret4 (float value)
+ {
+   return 4;
+ }
+ 
+ int __attribute__((noinline, const))
+ ret0 (float value)
+ {
+   return 0;
+ }
+ 
+ float __attribute__((noinline))
+ test (float x, float y)
+ {
+   int clsx = ret4 (x);
+   int clsy = ret0 (y);
+ 
+   if (clsx == 0 || clsy == 0
+       || (y < 0 && clsx == 1 && clsy == 1))
+     return x - y;
+ 
+   return x < y ? 0 : x - y;
+ }
+ 
+ float a = 0.0, b;
+ 
+ int main (void)
+ {
+   unsigned long e;
+   b = a / a;
+   __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (e));
+   e &= ~0x7e000UL;
+   __asm__ __volatile__ ("mov.m ar.fpsr=%0" :: "r" (e) : "memory");
+   a = test (0, b);
+   __asm__ __volatile__ ("mov.m %0=ar.fpsr" : "=r" (e));
+   if (e & 0x2000)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20030405-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20030405-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20030405-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20030405-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ 
+ int
+ foo (int x, int y)
+ {
+   if (y == 0)
+     {
+       register long r8 asm ("r8");
+       register long r15 asm ("r15") = 1;
+       long retval;
+       __asm __volatile ("foo" : "=r" (r8), "=r" (r15) : "1" (r15));
+       retval = r8;
+       y = retval;
+     }
+ 
+   {
+     register long r8 asm ("r8");
+     register long r15 asm ("r15") = 2;
+     long retval;
+     register long _out1 asm ("out1") = x;
+     register long _out0 asm ("out0") = y;
+     __asm __volatile ("foo"
+ 		      : "=r" (r8), "=r" (r15) , "=r" (_out0), "=r" (_out1)
+ 		      : "1" (r15) , "2" (_out0), "3" (_out1));
+     retval = r8;
+     return retval;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20030811-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20030811-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20030811-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20030811-1.c	Thu Jan 26 22:40:15 2006
***************
*** 0 ****
--- 1,59 ----
+ /* Origin: PR target/11693 from Andreas Schwab <schwab@suse.de> */
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -frename-registers" } */
+ 
+ static inline unsigned long long
+ foo (void)
+ {
+   unsigned long long x;
+   __asm__ __volatile__ ("" : "=r" (x) :: "memory");
+   return x;
+ }
+ 
+ static inline void
+ bar (unsigned long long x, unsigned long long y)
+ {
+   __asm__ __volatile__ ("" :: "r"(x), "r"(y) : "memory");
+ }
+ 
+ static inline void
+ baz (unsigned long long x, unsigned long long y, unsigned long long z,
+      unsigned long long p, unsigned long long q)
+ {
+   __asm__ __volatile__ ("" :: "r" (q << 2) : "memory");
+   __asm__ __volatile__ ("" :: "r" (z) : "memory");
+   if (x & 0x1)
+     __asm__ __volatile__ ("" :: "r" (y), "r" (p) : "memory");
+   if (x & 0x2)
+     __asm__ __volatile__ ("" :: "r" (y), "r" (p) : "memory");
+ }
+ 
+ static inline unsigned long long
+ ffz (unsigned long long x)
+ {
+   unsigned long long r;
+   __asm__ ("" : "=r" (r) : "r" (x & (~x - 1)));
+   return r;
+ }
+ 
+ void die (const char *, ...) __attribute__ ((noreturn));
+ 
+ void
+ test (void *x)
+ {
+   unsigned long long a, c;
+ 
+   a = foo ();
+   bar (0xc000000000000000LL, 0x660);
+   bar (0xa00000000000c000LL, 0x539);
+   baz (2, 1, 0xa000000000008000LL,
+        ({ unsigned long long b;
+ 	  b = ({ unsigned long long d; __asm__ ("" : "=r" (d) : "r" (x)); d; })
+ 	      + 0x10000000000661LL;
+ 	  b;
+ 	}),
+        14);
+   c = ffz (0x1fffffffffffffffLL);
+   if (c < 51 || c > 61)
+     die ("die", c - 1);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20040303-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20040303-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/20040303-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/20040303-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,20 ----
+ /* Test floating point division on ia64.  There was a bug in the
+    max-throughput version of the inline division code.  Expecting an
+    exact value from a floating point expression is unwise but GCC
+    depends on it in allocno_compare.  */
+ 
+ /* { dg-do run } */
+ /* { dg-options "-minline-float-divide-max-throughput" } */
+ 
+ extern void abort (void);
+ 
+ volatile int i = 24;
+ volatile int j = 30;
+ volatile int k = 1;
+ 
+ int main()
+ {
+         int pri2 = (((double) i / j) * (10000 / 1000) * k);
+         if (pri2 != 8) abort();
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/asm-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/asm-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/asm-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run } */
+ /* { dg-options } */
+ 
+ extern void abort (void);
+ 
+ /* Test that "=S" properly avoids the post-increment on the memory address.  */
+ 
+ static void foo(int *x)
+ {
+   long i;
+   for (i = 0; i < 100; ++i)
+     __asm__("st4 %0 = r0" : "=S"(x[i]));
+ }
+ 
+ int main()
+ {
+   int array[100];
+   long i;
+ 
+   for (i = 0; i < 100; ++i)
+     array[i] = -1;
+ 
+   foo(array);
+ 
+   for (i = 0; i < 100; ++i)
+     if (array[i])
+       abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/float80-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/float80-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/float80-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/float80-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Bug 14610 */
+ /* { dg-do run } */
+ 
+ extern void abort(void);
+ volatile __float80 x = 30.0;
+ 
+ int main(void)
+ {
+   double d = x;
+   if (d != 30.0) abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/float80-2.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/float80-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/float80-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/float80-2.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,13 ----
+ /* Bug 14610 */
+ /* { dg-do run } */
+ /* { dg-options "-minline-int-divide-max-throughput" } */
+ 
+ extern void abort(void);
+ volatile int j = 30;
+ 
+ int main(void)
+ {
+   if (29 % j != 29) abort();
+   if (30 % j != 0)  abort();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/float80-varargs-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/float80-varargs-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/float80-varargs-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/float80-varargs-1.c	Sat Jun 18 11:56:42 2005
***************
*** 0 ****
--- 1,33 ----
+ /* Test for a bug with passing __float80 in varargs.  The __float80
+    value was wrongly passed, leading to an abort.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do run } */
+ /* { dg-options "" } */
+ 
+ #include <stdarg.h>
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ __float80 s = 1.234L;
+ __float80 d;
+ 
+ void vf (int a0, ...);
+ 
+ int
+ main (void)
+ {
+   vf (0, s);
+   if (d != s)
+     abort ();
+   exit (0);
+ }
+ 
+ void
+ vf (int a0, ...)
+ {
+   va_list ap;
+   va_start (ap, a0);
+   d = va_arg (ap, __float80);
+   va_end (ap);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/fpreg-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/fpreg-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/fpreg-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/fpreg-1.c	Tue Jun 28 21:55:24 2005
***************
*** 0 ****
--- 1,82 ----
+ /* Test permitted and invalid uses of __fpreg.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ 
+ __float80 f80;
+ double d;
+ /* Default initialized __fpreg is OK.  */
+ __fpreg fpreg, fpreg2;
+ /* But explicitly zero-initialized is an invalid conversion.  */
+ __fpreg fi = 0; /* { dg-error "error: invalid conversion to '__fpreg'" } */
+ 
+ __fpreg f0 (__fpreg);
+ int f1 (__float80);
+ 
+ /* __fpreg in a structure is OK.  */
+ struct s {
+   __float80 b;
+   __fpreg a;
+ } x;
+ 
+ void
+ f (void)
+ {
+   __fpreg *p;
+   /* Valid operations.  */
+   fpreg = fpreg2;
+   fpreg2 = (__fpreg) fpreg;
+   fpreg = f0 (fpreg2);
+   fpreg = +fpreg2;
+   p = &fpreg;
+   (void) fpreg;
+   fpreg = x.a;
+   fpreg2 = (struct s) { 0 }.a;
+   fpreg = (d ? fpreg : fpreg2);
+   d = sizeof (fpreg);
+   (void)(fpreg, fpreg);
+   /* Invalid operations.  */
+   ++fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   --fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg++; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg--; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = -fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = ~fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = !fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = *fpreg; /* { dg-error "error: invalid type argument" } */
+   if (fpreg) /* { dg-error "error: invalid operation on '__fpreg'" } */
+     return;
+   d = fpreg; /* { dg-error "error: invalid conversion from '__fpreg'" } */
+   d = (double) fpreg; /* { dg-error "error: invalid conversion from '__fpreg'" } */
+   fpreg = (__fpreg) d; /* { dg-error "error: invalid conversion to '__fpreg'" } */
+   fpreg = fpreg * fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = fpreg / fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = fpreg % fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = fpreg + fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = fpreg - fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = fpreg << fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = fpreg >> fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg < fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg > fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg <= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg >= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg == fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg != fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg & fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg ^ fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg | fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg && fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = fpreg || fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   d = (fpreg ? 1 : 2); /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg = (d ? fpreg : d); /* { dg-error "error: invalid conversion to '__fpreg'" } */
+   fpreg *= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg /= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg %= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg += fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg -= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg <<= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg >>= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg &= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg ^= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+   fpreg |= fpreg; /* { dg-error "error: invalid operation on '__fpreg'" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/fpreg-2.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/fpreg-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/fpreg-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/fpreg-2.c	Tue Jun 28 21:55:24 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Test __fpreg ABI.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile } */
+ /* { dg-options "" } */
+ /* { dg-final { scan-assembler "ldf.fill" } } */
+ /* { dg-final { scan-assembler "stf.spill" } } */
+ 
+ __fpreg x;
+ 
+ void f (void);
+ 
+ void
+ g (void)
+ {
+   __fpreg b = x;
+   f ();
+   x = b;
+ }
+ 
+ char t1[(sizeof (__fpreg) == sizeof (__float80) ? 1 : -1)];
+ char t2[(__alignof (__fpreg) == __alignof (__float80) ? 1 : -1)];
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/fptr-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/fptr-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/fptr-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/fptr-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,37 ----
+ /* { dg-do run { target ia64-*-linux* } } */
+ /* { dg-options "-O2" } */
+ 
+ /* Test function descriptor access.  */
+ 
+ extern unsigned long *_GLOBAL_OFFSET_TABLE_;
+ extern void abort(void);
+ 
+ struct ia64_fdesc
+ {
+   unsigned long func;
+   unsigned long gp;
+ };
+ 
+ void
+ os_boot_rendez (void)
+ {
+ }
+ 
+ static int
+ check (unsigned long gp)
+ {
+   return gp != (unsigned long) &_GLOBAL_OFFSET_TABLE_;
+ }
+ 
+ int
+ main (int argc, char **argv)
+ {
+   int i;
+   int res = 0;
+ 
+   for (i = 0; i < 1; i++)
+     res += check (((struct ia64_fdesc *) os_boot_rendez)->gp);
+   if (res)
+     abort ();
+   return res;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/got-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/got-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/got-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/got-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2 -fPIC" } */
+ 
+ /* { dg-final { scan-assembler "@ltoffx\\(object#\\)" } } */
+ /* { dg-final { scan-assembler "@ltoffx\\(object#\[-+\]16384\\)" } } */
+ /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]1\\)" } } */
+ /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]8191\\)" } } */
+ /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]8192\\)" } } */
+ /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]8193\\)" } } */
+ /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]16383\\)" } } */
+ /* { dg-final { scan-assembler-not "@ltoffx\\(object#\[-+\]16385\\)" } } */
+ 
+ /* must not be in sdata */
+ extern char object[];
+ 
+ #define r(n) char *r_##n (void) { return &object[n]; }
+ #define R(n) char *R_##n (void) { return &object[-n]; }
+ 
+ #define t(n) r(n) R(n)
+ 
+ t(0) t(1)
+ t(8191) t(8192) t(8193)
+ t(16383) t(16384) t(16385)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/ia64.exp gcc-4.1.0/gcc/testsuite/gcc.target/ia64/ia64.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/ia64.exp	Fri Jan 14 19:45:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/ia64.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/postinc-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/postinc-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/postinc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/postinc-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O2" } */
+ /* { dg-options "-O2 -mlp64" { target ia64-*-hpux* } } */
+ 
+ void copy_loop_ldouble (void *xdest,
+                         const void *xsrc,
+                         long roff,
+                         long soff,
+                         long len,
+                         long shift)
+ { __float128 *dest = xdest;
+   const long double *src;
+   long i;
+   roff /= sizeof (__float128);
+   soff /= sizeof (__float128);
+   src = xsrc;
+   src += shift * soff;
+   for (i = 0; i < len - shift; ++i) {
+         *dest = *src;
+         dest += roff;
+         src += soff;
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/types-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/types-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/types-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/types-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,41 ----
+ /* { dg-do compile { target ia64*-hp-hpux* } } */
+ 
+ /* Test that __fpreg is distinct from any other builtin type.  */
+ 
+ extern float fr1; /* { dg-error "" } */
+ extern __fpreg fr1; /* { dg-error "" } */
+ extern double fr2; /* { dg-error "" } */
+ extern __fpreg fr2; /* { dg-error "" } */
+ extern long double fr3; /* { dg-error "" } */
+ extern __fpreg fr3; /* { dg-error "" } */
+ extern __float80 fr4; /* { dg-error "" } */
+ extern __fpreg fr4; /* { dg-error "" } */
+ extern __float128 fr5; /* { dg-error "" } */
+ extern __fpreg fr5; /* { dg-error "" } */
+ 
+ /* Test that __float80 is distinct from any other builtin type.  */
+ 
+ extern float f801; /* { dg-error "" } */
+ extern __float80 f801; /* { dg-error "" } */
+ extern double f802; /* { dg-error "" } */
+ extern __float80 f802; /* { dg-error "" } */
+ extern long double f803; /* { dg-error "" } */
+ extern __float80 f803; /* { dg-error "" } */
+ extern __fpreg f804;  /* { dg-error "" } */
+ extern __float80 f804; /* { dg-error "" } */
+ extern __float128 f805; /* { dg-error "" } */
+ extern __float80 f805; /* { dg-error "" } */
+ 
+ /* Test that __float128 is distinct from any other builtin type --
+    except "long double", for which it is a synonym.  */
+ 
+ extern float f1281; /* { dg-error "" } */
+ extern __float128 f1281; /* { dg-error "" } */
+ extern double f1282; /* { dg-error "" } */
+ extern __float128 f1282; /* { dg-error "" } */
+ extern long double f1283;
+ extern __float128 f1283;
+ extern __fpreg f1284; /* { dg-error "" } */
+ extern __float128 f1284; /* { dg-error "" } */
+ extern __float80 f1285; /* { dg-error "" } */
+ extern __float128 f1285; /* { dg-error "" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/types-2.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/types-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/types-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/types-2.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do run { target ia64*-hp-hpux* } } */
+ /* { dg-options } */
+ 
+ /* Test that the sizes and alignments of the extra floating-point
+    types are correct.  */
+ 
+ int main () {
+   if (sizeof (__fpreg) != 16)
+     return 1;
+   if (__alignof__ (__fpreg) != 16)
+     return 2;
+ 
+   if (sizeof (__float80) != 16)
+     return 3;
+   if (__alignof__ (__float80) != 16)
+     return 4;
+ 
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/visibility-1.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/visibility-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/visibility-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/visibility-1.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,36 ----
+ /* Test visibility attribute.  */
+ /* { dg-do compile { target ia64*-*-linux* } } */
+ /* { dg-options "-O2 -fpic" } */
+ /* { dg-final { scan-assembler "\\.hidden.*variable_j" } } */
+ /* { dg-final { scan-assembler "\\.hidden.*variable_m" } } */
+ /* { dg-final { scan-assembler "\\.protected.*baz" } } */
+ /* { dg-final { scan-assembler "gprel.*variable_i" } } */
+ /* { dg-final { scan-assembler "gprel.*variable_j" } } */
+ /* { dg-final { scan-assembler "ltoff.*variable_k" } } */
+ /* { dg-final { scan-assembler "gprel.*variable_l" } } */
+ /* { dg-final { scan-assembler "gprel.*variable_m" } } */
+ /* { dg-final { scan-assembler "ltoff.*variable_n" } } */
+ 
+ static int variable_i;
+ int variable_j __attribute__((visibility ("hidden")));
+ int variable_k;
+ struct A { char a[64]; };
+ static struct A variable_l __attribute__((section (".sbss")));
+ struct A variable_m __attribute__((visibility ("hidden"), section(".sbss")));
+ struct A variable_n __attribute__((section (".sbss")));
+ 
+ int foo (void)
+ {
+   return variable_i + variable_j + variable_k;
+ }
+ 
+ void bar (void)
+ {
+   variable_l.a[10] = 0;
+   variable_m.a[10] = 0;
+   variable_n.a[10] = 0;
+ }
+ 
+ void __attribute__((visibility ("protected"))) baz (void)
+ {
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/ia64/visibility-2.c gcc-4.1.0/gcc/testsuite/gcc.target/ia64/visibility-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/ia64/visibility-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/ia64/visibility-2.c	Sat Nov 19 02:19:43 2005
***************
*** 0 ****
--- 1,15 ----
+ /* Test visibility attribute.  */
+ /* { dg-do link { target ia64*-*-linux* } } */
+ /* { dg-options "-O2 -fpic" } */
+ 
+ int foo (int x);
+ int bar (int x) __asm__ ("foo") __attribute__ ((visibility ("hidden")));
+ int bar (int x)
+ {
+   return x;
+ }
+ 
+ int main ()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/args-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/args-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/args-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/args-1.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,35 ----
+ /* Check that certain preprocessor macros are defined, and do some
+    consistency checks.  */
+ /* { dg-do compile } */
+ 
+ const char *compiled_for = _MIPS_ARCH;
+ const char *optimized_for = _MIPS_TUNE;
+ 
+ #if __mips_fpr != 32 && __mips_fpr != 64
+ #error Bad __mips_fpr
+ #endif
+ 
+ /* Test complementary macro pairs: exactly one of each pair
+    must be defined.  */
+ 
+ #if defined (_R3000) == defined (_R4000) && !defined (__sgi__)
+ #error _R3000 / _R4000 mismatch
+ #endif
+ 
+ #if defined (__mips_hard_float) == defined (__mips_soft_float)
+ #error __mips_hard_float / __mips_soft_float mismatch
+ #endif
+ 
+ #if defined (_MIPSEL) == defined (_MIPSEB)
+ #error _MIPSEL / _MIPSEB mismatch
+ #endif
+ 
+ /* Check for __mips64 consistency.  */
+ 
+ #if defined (__mips64) != defined (_R4000) && !defined (__sgi__)
+ #error __mips64 / _R4000 mismatch
+ #endif
+ 
+ #if defined (__mips64) && __mips != 3 && __mips != 4 && __mips != 64
+ #error __mips64 / __mips mismatch
+ #endif
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/args-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/args-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/args-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/args-2.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,18 ----
+ /* Check the _MIPSEB and _MIPSEL macros are accurate.  */
+ /* { dg-do run } */
+ extern void abort (void);
+ extern void exit (int);
+ 
+ short foo = 1;
+ int main ()
+ {
+   char *p = (char *) &foo;
+ 
+ #ifdef _MIPSEB
+   if (p[0] != 0 || p[1] != 1)
+ #else
+   if (p[0] != 1 || p[1] != 0)
+ #endif
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/args-3.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/args-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/args-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/args-3.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,38 ----
+ /* __mips, and related defines, guarantee that certain assembly
+    instructions can be used.  Check a few examples.  */
+ /* { dg-do run } */
+ extern void abort (void);
+ extern void exit (int);
+ 
+ typedef int int32 __attribute__ ((mode (SI)));
+ typedef int int64 __attribute__ ((mode (DI)));
+ int foo (float inf, int64 in64, int32 in32)
+ {
+   int64 res64;
+   int32 res32;
+ 
+ #if __mips != 1 && defined (__mips_hard_float)
+   __asm__ ("trunc.w.s %0, %1" : "=f" (res32) : "f" (inf));
+   if (res32 != 11)
+     abort ();
+ #endif
+ 
+ #if defined (__mips64)
+   __asm__ ("daddu %0, %1, %1" : "=r" (res64) : "r" (in64));
+   if (res64 != 50)
+     abort ();
+ #endif
+ 
+ #if (__mips == 4 || __mips == 32 || __mips == 64) && !defined (__mips16)
+   __asm__ ("move %0,%.\n\tmovn %0,%1,%2"
+ 	   : "=&r" (res32) : "r" (in32), "r" (in64 != 0));
+   if (res32 != 60)
+     abort ();
+ #endif
+ }
+ 
+ int main ()
+ {
+   foo (11.4f, 25, 60);
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/asm-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/asm-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/asm-1.c	Mon Sep 20 06:54:52 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/asm-1.c	Mon Apr 18 20:34:36 2005
***************
*** 1,7 ****
  /* PR target/17565.  GCC used to put the asm into the delay slot
     of the call.  */
  /* { dg-do assemble } */
! /* { dg-options "-O" } */
  int foo (int n)
  {
    register int k asm ("$16") = n;
--- 1,7 ----
  /* PR target/17565.  GCC used to put the asm into the delay slot
     of the call.  */
  /* { dg-do assemble } */
! /* { dg-mips-options "-O -mno-mips16" } */
  int foo (int n)
  {
    register int k asm ("$16") = n;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/branch-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/branch-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/branch-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/branch-1.c	Thu Apr 21 19:58:20 2005
***************
*** 0 ****
--- 1,11 ----
+ /* We should implement these "if" statements using an "andi" instruction
+    followed by a branch on zero.  */
+ /* { dg-mips-options "-O2 -mno-mips16" } */
+ void bar (void);
+ void f1 (int x) { if (x & 4) bar (); }
+ void f2 (int x) { if ((x >> 2) & 1) bar (); }
+ void f3 (unsigned int x) { if (x & 0x10) bar (); }
+ void f4 (unsigned int x) { if ((x >> 4) & 1) bar (); }
+ /* { dg-final { scan-assembler "\tandi\t.*\tandi\t.*\tandi\t.*\tandi\t" } } */
+ /* { dg-final { scan-assembler-not "\tsrl\t" } } */
+ /* { dg-final { scan-assembler-not "\tsra\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/ext_ins.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/ext_ins.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/ext_ins.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/ext_ins.c	Thu May 26 17:23:35 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-march=mips32r2" } */
+ /* { dg-final { scan-assembler "ext" } } */
+ /* { dg-final { scan-assembler "ins" } } */
+ 
+ struct A 
+ {
+   unsigned int i : 2;
+   unsigned int j : 3;
+   unsigned int k : 4;
+   unsigned int l : 5;
+ };
+ 
+ void func (struct A);
+ 
+ unsigned int f1 (struct A a)
+ {
+   return a.j;
+ }
+ 
+ void f2 (int i)
+ {
+   struct A c;
+   c.j = i;
+   func (c);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c	Mon Mar 14 09:21:54 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-1.c	Mon Apr 18 20:34:36 2005
***************
*** 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" } } */
--- 1,4 ----
! /* { dg-do compile } */
! /* { dg-mips-options "-march=vr4130 -mfix-vr4130" } */
  int foo (void) { int r; asm ("# foo" : "=h" (r)); return r; }
  /* { dg-final { scan-assembler "\tmacchi\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c	Mon Mar 14 09:21:54 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-2.c	Mon Apr 18 20:34:36 2005
***************
*** 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" } } */
--- 1,4 ----
! /* { dg-do compile } */
! /* { dg-mips-options "-march=vr4130 -mfix-vr4130" } */
  int foo (void) { int r; asm ("# foo" : "=l" (r)); return r; }
  /* { dg-final { scan-assembler "\tmacc\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c	Mon Mar 14 09:21:54 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-3.c	Mon Apr 18 20:34:36 2005
***************
*** 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" } } */
--- 1,4 ----
! /* { dg-do compile } */
! /* { dg-mips-options "-march=vr4130 -mgp64 -mfix-vr4130" } */
  long long foo (void) { long long r; asm ("# foo" : "=h" (r)); return r; }
  /* { dg-final { scan-assembler "\tdmacchi\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c	Mon Mar 14 09:21:54 2005
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/fix-vr4130-4.c	Mon Apr 18 20:34:36 2005
***************
*** 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" } } */
--- 1,4 ----
! /* { dg-do compile } */
! /* { dg-mips-options "-march=vr4130 -mgp64 -mfix-vr4130" } */
  long long foo (void) { long long r; asm ("# foo" : "=l" (r)); return r; }
  /* { dg-final { scan-assembler "\tdmacc\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/fpcmp-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/fpcmp-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/fpcmp-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/fpcmp-1.c	Sun May  8 12:06:55 2005
***************
*** 0 ****
--- 1,6 ----
+ /* We used to use c.lt.fmt instead of c.ule.fmt here.  */
+ /* { dg-mips-options "-mhard-float -O2" } */
+ int f1 (float x, float y) { return __builtin_isless (x, y); }
+ int f2 (double x, double y) { return __builtin_isless (x, y); }
+ /* { dg-final { scan-assembler "c\\.ule\\.s" } } */
+ /* { dg-final { scan-assembler "c\\.ule\\.d" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/fpcmp-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/fpcmp-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/fpcmp-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/fpcmp-2.c	Sun May  8 12:06:55 2005
***************
*** 0 ****
--- 1,6 ----
+ /* We used to use c.le.fmt instead of c.ult.fmt here.  */
+ /* { dg-mips-options "-mhard-float -O2" } */
+ int f1 (float x, float y) { return __builtin_islessequal (x, y); }
+ int f2 (double x, double y) { return __builtin_islessequal (x, y); }
+ /* { dg-final { scan-assembler "c\\.ult\\.s" } } */
+ /* { dg-final { scan-assembler "c\\.ult\\.d" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-1.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-1.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-2.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-2.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D branch-if-any-two builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D branch-if-any-two builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-3.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-3.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-3.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D absolute compare builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D absolute compare builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-4.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-4.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-4.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D branch-if-any-four builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D branch-if-any-four builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-5.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-5.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-5.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D absolute-compare & branch-if-any-four builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-6.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-6.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-6.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D absolute compare (floats) builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D absolute compare (floats) builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-7.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-7.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-7.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D absolute compare (doubles) builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D absolute compare (doubles) builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-8.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-8.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-8.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Test MIPS-3D absolute compare and conditional move builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Test MIPS-3D absolute compare and conditional move builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-9.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-3d-9.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-3d-9.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mips3d -mhard-float -mfp64" } */
  
  /* Matrix Multiplications */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mips3d -mhard-float -mgp64" } */
  
  /* Matrix Multiplications */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-1.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-1.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mpaired-single -mhard-float -mfp64" } */
  
  /* Test v2sf calculations */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mpaired-single -mhard-float -mgp64" } */
  
  /* Test v2sf calculations */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-2.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-2.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mpaired-single -mhard-float -mfp64" } */
  
  /* Test MIPS paired-single builtin functions */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mpaired-single -mhard-float -mgp64" } */
  
  /* Test MIPS paired-single builtin functions */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-3.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-3.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-3.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mpaired-single -mhard-float -mfp64" } */
  
  /* Test MIPS paired-single conditional move */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mpaired-single -mhard-float -mgp64" } */
  
  /* Test MIPS paired-single conditional move */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-4.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-4.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-4.c	Mon Apr 18 20:34:36 2005
***************
*** 1,5 ****
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-options "-mips64 -O2 -mpaired-single -mhard-float -mfp64" } */
  
  /* Test MIPS paired-single comparisons */
  #include <stdlib.h>
--- 1,5 ----
  /* { dg-do run { target mipsisa64*-*-* } } */
! /* { dg-mips-options "-mips64 -O2 -mpaired-single -mhard-float -mgp64" } */
  
  /* Test MIPS paired-single comparisons */
  #include <stdlib.h>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-type.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-type.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips-ps-type.c	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips-ps-type.c	Mon Apr 18 20:34:36 2005
***************
*** 1,6 ****
  /* Test v2sf calculations */
! /* { dg-do compile { target mipsisa64*-*-* } } */ 
! /* { dg-options "-mips64 -O2 -mpaired-single -mhard-float -mfp64" } */ 
  /* { dg-final { scan-assembler "cvt.ps.s" } } */ 
  /* { dg-final { scan-assembler "mov.ps" } } */ 
  /* { dg-final { scan-assembler "ldc1" } } */ 
--- 1,6 ----
  /* Test v2sf calculations */
! /* { dg-do compile } */ 
! /* { dg-mips-options "-mips64 -O2 -mpaired-single -mhard-float -mgp64" } */
  /* { dg-final { scan-assembler "cvt.ps.s" } } */ 
  /* { dg-final { scan-assembler "mov.ps" } } */ 
  /* { dg-final { scan-assembler "ldc1" } } */ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips.exp gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips.exp	Thu Sep  2 19:14:57 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips.exp	Sun Jul 10 09:40:11 2005
***************
*** 12,41 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
  # Exit immediately if this isn't a MIPS target.
! if ![istarget mips*-*-*] then {
    return
  }
  
  # Load support procs.
  load_lib gcc-dg.exp
  
! # If a testcase doesn't have special options, use these.
! global DEFAULT_CFLAGS
! if ![info exists DEFAULT_CFLAGS] then {
!     set DEFAULT_CFLAGS " -ansi -pedantic-errors"
  }
  
! # Initialize `dg'.
! dg-init
  
! # Main loop.
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
! 	"" $DEFAULT_CFLAGS
  
! # All done.
  dg-finish
--- 12,186 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
  # Exit immediately if this isn't a MIPS target.
! if ![istarget mips*-*-*] {
    return
  }
  
  # Load support procs.
  load_lib gcc-dg.exp
  
! # Find out which target is selected by the default compiler flags.
! # Also remember which aspects of the target are forced on the command
! # line (as opposed to being overridable defaults).
! #
! #    $mips_isa:		 the ISA level specified by __mips
! #    $mips_arch:	 the architecture specified by _MIPS_ARCH
! #    $mips_mips16:	 true if MIPS16 mode is selected
! #    $mips_mips64:	 true if 64-bit output is selected
! #    $mips_float:	 "hard" or "soft"
! #
! #    $mips_forced_isa:	 true if the command line uses -march=* or -mips*
! #    $mips_forced_abi:	 true if the command line uses -mabi=* or -mgp*
! #    $mips_forced_float: true if the command line uses -mhard/soft-float
! proc setup_mips_tests {} {
!     global mips_isa
!     global mips_arch
!     global mips_mips16
!     global mips_mips64
!     global mips_float
! 
!     global mips_forced_isa
!     global mips_forced_abi
!     global mips_forced_float
! 
!     global compiler_flags
!     global tool
! 
!     set src dummy[pid].c
!     set f [open $src "w"]
!     puts $f {
! 	int isa = __mips;
! 	const char *arch = _MIPS_ARCH;
! 	#ifdef __mips16
! 	int mips16 = 1;
! 	#endif
! 	#ifdef __mips64
! 	int mips64 = 1;
! 	#endif
! 	#ifdef __mips_hard_float
! 	const char *float = "hard";
! 	#else
! 	const char *float = "soft";
! 	#endif
!     }
!     close $f
!     set output [${tool}_target_compile $src "" preprocess ""]
!     file delete $src
! 
!     regexp {isa = ([^;]*)} $output dummy mips_isa
!     regexp {arch = "([^"]*)} $output dummy mips_arch
!     set mips_mips16 [regexp {mips16 = 1} $output]
!     set mips_mips64 [regexp {mips64 = 1} $output]
!     regexp {float = "([^"]*)} $output dummy mips_float
! 
!     set mips_forced_isa [regexp -- {(-mips|-march)} $compiler_flags]
!     set mips_forced_abi [regexp -- {(-mgp|-mabi)} $compiler_flags]
!     set mips_forced_float [regexp -- {-m(hard|soft)-float} $compiler_flags]
  }
  
! # Return true if command-line option FLAG forces 32-bit code.
! proc is_gp32_flag {flag} {
!     switch -glob -- $flag {
! 	-march=mips32* -
! 	-mgp32 { return 1 }
! 	default { return 0 }
!     }
! }
  
! # Like dg-options, but treats certain MIPS-specific options specially:
! #
! #    -mgp32
! #    -march=mips32*
! #	Force 32-bit code.  Skip the test if the multilib flags force
! #	a 64-bit ABI.
! #
! #    -mgp64
! #	Force 64-bit code.  Also force a 64-bit target architecture
! #	if the other flags don't do so.  Skip the test if the multilib
! #	flags force a 32-bit ABI or a 32-bit architecture.
! #
! #    -mno-mips16
! #	Skip the test for MIPS16 targets.
! #
! #    -march=*
! #    -mips*
! #	Select the target architecture.  Skip the test for MIPS16 targets
! #	or if the multilib flags force a different architecture.
! #
! #    -msoft-float
! #    -mhard-float
! #	Select the given floating-point mode.  Skip the test if the
! #	multilib flags force a different selection.
! proc dg-mips-options {args} {
!     upvar dg-extra-tool-flags extra_tool_flags
!     upvar dg-do-what do_what
  
!     global mips_isa
!     global mips_arch
!     global mips_mips16
!     global mips_mips64
!     global mips_float
! 
!     global mips_forced_isa
!     global mips_forced_abi
!     global mips_forced_float
! 
!     set flags [lindex $args 1]
!     set matches 1
! 
!     # First handle the -mgp* options.  Add an architecture option if necessary.
!     foreach flag $flags {
! 	if {[is_gp32_flag $flag] && $mips_mips64} {
! 	    if {$mips_forced_abi} {
! 		set matches 0
! 	    } else {
! 		append flags " -mabi=32"
! 	    }
! 	} elseif {$flag == "-mgp64" && !$mips_mips64} {
! 	    if {$mips_forced_abi} {
! 		set matches 0
! 	    } else {
! 		append flags " -mabi=o64"
! 		if {[lsearch -regexp $flags {^(-mips|-march)}] < 0} {
! 		    append flags " -mips3"
! 		}
! 	    }
! 	}
!     }
!     # Handle the other options.
!     foreach flag $flags {
! 	if {$flag == "-mno-mips16"} {
! 	    if {$mips_mips16} {
! 		set matches 0
! 	    }
! 	} elseif {[regexp -- {^-march=(.*)} $flag dummy arch]} {
! 	    if {$mips_mips16 || ($arch != $mips_arch && $mips_forced_isa)} {
! 		set matches 0
! 	    }
! 	} elseif {[regexp -- {^-mips(.*)} $flag dummy isa] && $isa != 16} {
! 	    if {$mips_mips16 || ($isa != $mips_isa && $mips_forced_isa)} {
! 		set matches 0
! 	    }
! 	} elseif {[regexp -- {^-m(hard|soft)-float} $flag dummy float]} {
! 	    if {$mips_float != $float && $mips_forced_float} {
! 		set matches 0
! 	    }
! 	}
!     }
!     if {$matches} {
! 	set extra_tool_flags $flags
!     } else {
! 	set do_what [list [lindex $do_what 0] "N" "P"]
!     }
! }
! 
! setup_mips_tests
! 
! dg-init
! dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.c]] "" ""
  dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips16e-extends.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips16e-extends.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips16e-extends.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips16e-extends.c	Wed Jun 15 12:40:26 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-Os -march=mips32 -mips16" } */
+ 
+ short cksum16 (unsigned long n)
+ {
+   unsigned long l;
+   l = validate (n, (n >> 16) + (n & 0xffff));
+   return l;
+ }
+ 
+ char cksum8 (unsigned long n)
+ {
+   unsigned long l;
+   l = validate (n, (n >> 8) + (n & 0xff));
+   return l;
+ }
+ 
+ /* { dg-final { scan-assembler "zeh" } } */
+ /* { dg-final { scan-assembler "seh" } } */
+ /* { dg-final { scan-assembler "zeb" } } */
+ /* { dg-final { scan-assembler "seb" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips32-dsp-type.c	Thu Jul 28 08:17:27 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test MIPS32 DSP instructions */
+ /* { dg-do compile } */
+ /* { dg-mips-options "-march=mips32 -mdsp" } */
+ /* { dg-final { scan-assembler "addq.ph" } } */
+ /* { dg-final { scan-assembler "addu.qb" } } */
+ /* { dg-final { scan-assembler "subq.ph" } } */
+ /* { dg-final { scan-assembler "subu.qb" } } */
+ 
+ typedef char v4qi __attribute__ ((vector_size(4)));
+ typedef short v2hi __attribute__ ((vector_size(4)));
+ 
+ v2hi add_v2hi (v2hi a, v2hi b)
+ {
+   return a + b;
+ }
+ 
+ v4qi add_v4qi (v4qi a, v4qi b)
+ {
+   return a + b;
+ }
+ 
+ v2hi sub_v2hi (v2hi a, v2hi b)
+ {
+   return a - b;
+ }
+ 
+ v4qi sub_v4qi (v4qi a, v4qi b)
+ {
+   return a - b;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips32-dsp.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips32-dsp.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/mips32-dsp.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/mips32-dsp.c	Thu Jul 28 08:17:27 2005
***************
*** 0 ****
--- 1,1092 ----
+ /* Test MIPS32 DSP instructions */
+ /* { dg-do compile } */
+ /* { dg-mips-options "-march=mips32 -mdsp" } */
+ /* { dg-final { scan-assembler "addq.ph" } } */
+ /* { dg-final { scan-assembler "addq_s.ph" } } */
+ /* { dg-final { scan-assembler "addq_s.w" } } */
+ /* { dg-final { scan-assembler "addu.qb" } } */
+ /* { dg-final { scan-assembler "addu_s.qb" } } */
+ /* { dg-final { scan-assembler "subq.ph" } } */
+ /* { dg-final { scan-assembler "subq_s.ph" } } */
+ /* { dg-final { scan-assembler "subq_s.w" } } */
+ /* { dg-final { scan-assembler "subu.qb" } } */
+ /* { dg-final { scan-assembler "subu_s.qb" } } */
+ /* { dg-final { scan-assembler "addsc" } } */
+ /* { dg-final { scan-assembler "addwc" } } */
+ /* { dg-final { scan-assembler "modsub" } } */
+ /* { dg-final { scan-assembler "raddu.w.qb" } } */
+ /* { dg-final { scan-assembler "absq_s.ph" } } */
+ /* { dg-final { scan-assembler "absq_s.w" } } */
+ /* { dg-final { scan-assembler "precrq.qb.ph" } } */
+ /* { dg-final { scan-assembler "precrq.ph.w" } } */
+ /* { dg-final { scan-assembler "precrq_rs.ph.w" } } */
+ /* { dg-final { scan-assembler "precrqu_s.qb.ph" } } */
+ /* { dg-final { scan-assembler "preceq.w.phl" } } */
+ /* { dg-final { scan-assembler "preceq.w.phr" } } */
+ /* { dg-final { scan-assembler "precequ.ph.qbl" } } */
+ /* { dg-final { scan-assembler "precequ.ph.qbr" } } */
+ /* { dg-final { scan-assembler "precequ.ph.qbla" } } */
+ /* { dg-final { scan-assembler "precequ.ph.qbra" } } */
+ /* { dg-final { scan-assembler "preceu.ph.qbl" } } */
+ /* { dg-final { scan-assembler "preceu.ph.qbr" } } */
+ /* { dg-final { scan-assembler "preceu.ph.qbla" } } */
+ /* { dg-final { scan-assembler "preceu.ph.qbra" } } */
+ /* { dg-final { scan-assembler "shllv?.qb" } } */
+ /* { dg-final { scan-assembler "shllv?.ph" } } */
+ /* { dg-final { scan-assembler "shllv?_s.ph" } } */
+ /* { dg-final { scan-assembler "shllv?_s.w" } } */
+ /* { dg-final { scan-assembler "shrlv?.qb" } } */
+ /* { dg-final { scan-assembler "shrav?.ph" } } */
+ /* { dg-final { scan-assembler "shrav?_r.ph" } } */
+ /* { dg-final { scan-assembler "shrav?_r.w" } } */
+ /* { dg-final { scan-assembler "muleu_s.ph.qbl" } } */
+ /* { dg-final { scan-assembler "muleu_s.ph.qbr" } } */
+ /* { dg-final { scan-assembler "mulq_rs.ph" } } */
+ /* { dg-final { scan-assembler "muleq_s.w.phl" } } */
+ /* { dg-final { scan-assembler "muleq_s.w.phr" } } */
+ /* { dg-final { scan-assembler "dpau.h.qbl" } } */
+ /* { dg-final { scan-assembler "dpau.h.qbr" } } */
+ /* { dg-final { scan-assembler "dpsu.h.qbl" } } */
+ /* { dg-final { scan-assembler "dpsu.h.qbr" } } */
+ /* { dg-final { scan-assembler "dpaq_s.w.ph" } } */
+ /* { dg-final { scan-assembler "dpsq_s.w.ph" } } */
+ /* { dg-final { scan-assembler "mulsaq_s.w.ph" } } */
+ /* { dg-final { scan-assembler "dpaq_sa.l.w" } } */
+ /* { dg-final { scan-assembler "dpsq_sa.l.w" } } */
+ /* { dg-final { scan-assembler "maq_s.w.phl" } } */
+ /* { dg-final { scan-assembler "maq_s.w.phr" } } */
+ /* { dg-final { scan-assembler "maq_sa.w.phl" } } */
+ /* { dg-final { scan-assembler "maq_sa.w.phr" } } */
+ /* { dg-final { scan-assembler "bitrev" } } */
+ /* { dg-final { scan-assembler "insv" } } */
+ /* { dg-final { scan-assembler "replv?.qb" } } */
+ /* { dg-final { scan-assembler "repl.ph" } } */
+ /* { dg-final { scan-assembler "replv.ph" } } */
+ /* { dg-final { scan-assembler "cmpu.eq.qb" } } */
+ /* { dg-final { scan-assembler "cmpu.lt.qb" } } */
+ /* { dg-final { scan-assembler "cmpu.le.qb" } } */
+ /* { dg-final { scan-assembler "cmpgu.eq.qb" } } */
+ /* { dg-final { scan-assembler "cmpgu.lt.qb" } } */
+ /* { dg-final { scan-assembler "cmpgu.le.qb" } } */
+ /* { dg-final { scan-assembler "cmp.eq.ph" } } */
+ /* { dg-final { scan-assembler "cmp.lt.ph" } } */
+ /* { dg-final { scan-assembler "cmp.le.ph" } } */
+ /* { dg-final { scan-assembler "pick.qb" } } */
+ /* { dg-final { scan-assembler "pick.ph" } } */
+ /* { dg-final { scan-assembler "packrl.ph" } } */
+ /* { dg-final { scan-assembler "extrv?.w" } } */
+ /* { dg-final { scan-assembler "extrv?_s.h" } } */
+ /* { dg-final { scan-assembler "extrv?_r.w" } } */
+ /* { dg-final { scan-assembler "extrv?_rs.w" } } */
+ /* { dg-final { scan-assembler "extpv?" } } */
+ /* { dg-final { scan-assembler "extpdpv?" } } */
+ /* { dg-final { scan-assembler "shilov?" } } */
+ /* { dg-final { scan-assembler "mthlip" } } */
+ /* { dg-final { scan-assembler "mfhi" } } */
+ /* { dg-final { scan-assembler "mflo" } } */
+ /* { dg-final { scan-assembler "mthi" } } */
+ /* { dg-final { scan-assembler "mtlo" } } */
+ /* { dg-final { scan-assembler "wrdsp" } } */
+ /* { dg-final { scan-assembler "rddsp" } } */
+ /* { dg-final { scan-assembler "lbux?" } } */
+ /* { dg-final { scan-assembler "lhx?" } } */
+ /* { dg-final { scan-assembler "lwx?" } } */
+ /* { dg-final { scan-assembler "bposge32" } } */
+ 
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+ typedef char v4i8 __attribute__ ((vector_size(4)));
+ typedef short v2q15 __attribute__ ((vector_size(4)));
+ 
+ typedef int q31;
+ typedef int i32;
+ typedef long long a64;
+ 
+ void test_MIPS_DSP();
+ 
+ char array[100];
+ int little_endian;
+ 
+ int main()
+ {
+   int i;
+ 
+   union { long long ll; int i[2]; } endianness_test;
+   endianness_test.ll = 1;
+   little_endian = endianness_test.i[0];
+ 
+   for (i = 0; i < 100; i++)
+     array[i] = i;
+ 
+   test_MIPS_DSP();
+ 
+   exit (0);
+ }
+ 
+ v2q15 add_v2q15 (v2q15 a, v2q15 b)
+ {
+   return __builtin_mips_addq_ph (a, b);
+ }
+ 
+ v4i8 add_v4i8 (v4i8 a, v4i8 b)
+ {
+   return __builtin_mips_addu_qb (a, b);
+ }
+ 
+ v2q15 sub_v2q15 (v2q15 a, v2q15 b)
+ {
+   return __builtin_mips_subq_ph (a, b);
+ }
+ 
+ v4i8 sub_v4i8 (v4i8 a, v4i8 b)
+ {
+   return __builtin_mips_subu_qb (a, b);
+ }
+ 
+ void test_MIPS_DSP()
+ {
+   v4i8 v4i8_a,v4i8_b,v4i8_c,v4i8_r,v4i8_s;
+   v2q15 v2q15_a,v2q15_b,v2q15_c,v2q15_r,v2q15_s;
+   q31 q31_a,q31_b,q31_c,q31_r,q31_s;
+   i32 i32_a,i32_b,i32_c,i32_r,i32_s;
+   a64 a64_a,a64_b,a64_c,a64_r,a64_s;
+ 
+   void *ptr_a;
+   int r,s;
+   long long lr,ls;
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   v2q15_s = (v2q15) {0x81bd, 0x6789};
+   v2q15_r = add_v2q15 (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   v2q15_s = (v2q15) {0x7fff, 0x6789};
+   v2q15_r = __builtin_mips_addq_s_ph (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = 0x70000000;
+   q31_b = 0x71234567;
+   q31_s = 0x7fffffff;
+   q31_r = __builtin_mips_addq_s_w (q31_a, q31_b);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0xff, 0x89, 0x11, 0x11};
+   v4i8_s = (v4i8) {0xf1, 0xbd, 0x67, 0x89};
+   v4i8_r = add_v4i8 (v4i8_a, v4i8_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0xff, 0x89, 0x11, 0x11};
+   v4i8_s = (v4i8) {0xff, 0xbd, 0x67, 0x89};
+   v4i8_r = __builtin_mips_addu_s_qb (v4i8_a, v4i8_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   v2q15_s = (v2q15) {0xa2ab, 0x4567};
+   v2q15_r = sub_v2q15 (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x8000, 0x5678};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   v2q15_s = (v2q15) {0x8000, 0x4567};
+   v2q15_r = __builtin_mips_subq_s_ph (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = 0x70000000;
+   q31_b = 0x71234567;
+   q31_s = 0xfedcba99;
+   q31_r = __builtin_mips_subq_s_w (q31_a, q31_b);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0xff, 0x89, 0x11, 0x11};
+   v4i8_s = (v4i8) {0xf3, 0xab, 0x45, 0x67};
+   v4i8_r = sub_v4i8 (v4i8_a, v4i8_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0xff, 0x89, 0x11, 0x11};
+   v4i8_s = (v4i8) {0x0, 0x0, 0x45, 0x67};
+   v4i8_r = __builtin_mips_subu_s_qb (v4i8_a, v4i8_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   i32_a = 0xf5678900;
+   i32_b = 0x7abcdef0;
+   i32_s = 0x702467f0;
+   i32_r = __builtin_mips_addsc (i32_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x75678900;
+   i32_b = 0x7abcdef0;
+   i32_s = 0xf02467f1;
+   i32_r = __builtin_mips_addwc (i32_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0;
+   i32_b = 0x00000901;
+   i32_s = 9;
+   i32_r = __builtin_mips_modsub (i32_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   i32_s = 0x1f4;
+   i32_r = __builtin_mips_raddu_w_qb (v4i8_a);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x8000, 0x8134};
+   v2q15_s = (v2q15) {0x7fff, 0x7ecc};
+   v2q15_r = __builtin_mips_absq_s_ph (v2q15_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = (q31) 0x80000000;
+   q31_s = (q31) 0x7fffffff;
+   q31_r = __builtin_mips_absq_s_w (q31_a);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x9999, 0x5612};
+   v2q15_b = (v2q15) {0x5612, 0x3333};
+   if (little_endian)
+     v4i8_s = (v4i8) {0x56, 0x33, 0x99, 0x56};
+   else
+     v4i8_s = (v4i8) {0x99, 0x56, 0x56, 0x33};
+   v4i8_r = __builtin_mips_precrq_qb_ph (v2q15_a, v2q15_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = 0x12348678;
+   q31_b = 0x44445555;
+   if (little_endian)
+     v2q15_s = (v2q15) {0x4444, 0x1234};
+   else
+     v2q15_s = (v2q15) {0x1234, 0x4444};
+   v2q15_r = __builtin_mips_precrq_ph_w (q31_a, q31_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = 0x12348678;
+   q31_b = 0x44445555;
+   if (little_endian)
+     v2q15_s = (v2q15) {0x4444, 0x1235};
+   else
+     v2q15_s = (v2q15) {0x1235, 0x4444};
+   v2q15_r = __builtin_mips_precrq_rs_ph_w (q31_a, q31_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x9999, 0x5612};
+   v2q15_b = (v2q15) {0x5612, 0x3333};
+   if (little_endian)
+     v4i8_s = (v4i8) {0xac, 0x66, 0x00, 0xac};
+   else
+     v4i8_s = (v4i8) {0x00, 0xac, 0xac, 0x66};
+   v4i8_r = __builtin_mips_precrqu_s_qb_ph (v2q15_a, v2q15_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x3589, 0x4444};
+   if (little_endian)
+     q31_s = 0x44440000;
+   else
+     q31_s = 0x35890000;
+   q31_r = __builtin_mips_preceq_w_phl (v2q15_a);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x3589, 0x4444};
+   if (little_endian)
+     q31_s = 0x35890000;
+   else
+     q31_s = 0x44440000;
+   q31_r = __builtin_mips_preceq_w_phr (v2q15_a);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x56, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x2b00, 0x1980};
+   else
+     v2q15_s = (v2q15) {0x0900, 0x2b00};
+   v2q15_r = __builtin_mips_precequ_ph_qbl (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x56, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x0900, 0x2b00};
+   else
+     v2q15_s = (v2q15) {0x2b00, 0x1980};
+   v2q15_r = __builtin_mips_precequ_ph_qbr (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x56, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x2b00, 0x1980};
+   else
+     v2q15_s = (v2q15) {0x0900, 0x2b00};
+   v2q15_r = __builtin_mips_precequ_ph_qbla (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x56, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x0900, 0x2b00};
+   else
+     v2q15_s = (v2q15) {0x2b00, 0x1980};
+   v2q15_r = __builtin_mips_precequ_ph_qbra (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x56, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x56, 0x33};
+   else
+     v2q15_s = (v2q15) {0x12, 0x56};
+   v2q15_r = __builtin_mips_preceu_ph_qbl (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x56, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x12, 0x56};
+   else
+     v2q15_s = (v2q15) {0x56, 0x33};
+   v2q15_r = __builtin_mips_preceu_ph_qbr (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x99, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x99, 0x33};
+   else
+     v2q15_s = (v2q15) {0x12, 0x56};
+   v2q15_r = __builtin_mips_preceu_ph_qbla (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x99, 0x56, 0x33};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x12, 0x56};
+   else
+     v2q15_s = (v2q15) {0x99, 0x33};
+   v2q15_r = __builtin_mips_preceu_ph_qbra (v4i8_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   v4i8_s = (v4i8) {0xc8, 0xd0, 0x58, 0xe0};
+   v4i8_r = __builtin_mips_shll_qb (v4i8_a, 2);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   i32_b = 1;
+   v4i8_s = (v4i8) {0xe4, 0x68, 0xac, 0xf0};
+   v4i8_r = __builtin_mips_shll_qb (v4i8_a, i32_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_s = (v2q15) {0x48d0, 0x59e0};
+   v2q15_r = __builtin_mips_shll_ph (v2q15_a, 2);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   i32_b = 1;
+   v2q15_s = (v2q15) {0x2468, 0xacf0};
+   v2q15_r = __builtin_mips_shll_ph (v2q15_a, i32_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_s = (v2q15) {0x48d0, 0x7fff};
+   v2q15_r = __builtin_mips_shll_s_ph (v2q15_a, 2);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   i32_b = 1;
+   v2q15_s = (v2q15) {0x2468, 0x7fff};
+   v2q15_r = __builtin_mips_shll_s_ph (v2q15_a, i32_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = 0x70000000;
+   q31_s = 0x7fffffff;
+   q31_r = __builtin_mips_shll_s_w (q31_a, 2);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   q31_a = 0x70000000;
+   i32_b = 1;
+   q31_s = 0x7fffffff;
+   q31_r = __builtin_mips_shll_s_w (q31_a, i32_b);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   v4i8_s = (v4i8) {0x3c, 0xd, 0x15, 0x1e};
+   v4i8_r = __builtin_mips_shrl_qb (v4i8_a, 2);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0xf2, 0x34, 0x56, 0x78};
+   i32_b = 1;
+   v4i8_s = (v4i8) {0x79, 0x1a, 0x2b, 0x3c};
+   v4i8_r = __builtin_mips_shrl_qb (v4i8_a, i32_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_s = (v2q15) {0x48d, 0x159e};
+   v2q15_r = __builtin_mips_shra_ph (v2q15_a, 2);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   i32_b = 1;
+   v2q15_s = (v2q15) {0x91a, 0x2b3c};
+   v2q15_r = __builtin_mips_shra_ph (v2q15_a, i32_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_s = (v2q15) {0x48d, 0x159e};
+   v2q15_r = __builtin_mips_shra_r_ph (v2q15_a, 2);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   i32_b = 3;
+   v2q15_s = (v2q15) {0x247, 0xacf};
+   v2q15_r = __builtin_mips_shra_r_ph (v2q15_a, i32_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   q31_a = 0x70000000;
+   q31_s = 0x1c000000;
+   q31_r = __builtin_mips_shra_r_w (q31_a, 2);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   q31_a = 0x70000004;
+   i32_b = 3;
+   q31_s = 0x0e000001;
+   q31_r = __builtin_mips_shra_r_w (q31_a, i32_b);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x1, 0x2, 0x3, 0x4};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   if (little_endian)
+     v2q15_s = (v2q15) {0xffff, 0x4444};
+   else
+     v2q15_s = (v2q15) {0x6f89, 0x2222};
+   v2q15_r = __builtin_mips_muleu_s_ph_qbl (v4i8_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x1, 0x2, 0x3, 0x4};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x6f89, 0x2222};
+   else
+     v2q15_s = (v2q15) {0xffff, 0x4444};
+   v2q15_r = __builtin_mips_muleu_s_ph_qbr (v4i8_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x6f89, 0x1111};
+   v2q15_s = (v2q15) {0x0fdd, 0x0b87};
+   v2q15_r = __builtin_mips_mulq_rs_ph (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x8000, 0x8000};
+   v2q15_b = (v2q15) {0x8000, 0x8000};
+   q31_s = 0x7fffffff;
+   q31_r = __builtin_mips_muleq_s_w_phl (v2q15_a, v2q15_b);
+   if(q31_r != q31_s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x8000, 0x8000};
+   v2q15_b = (v2q15) {0x8000, 0x8000};
+   q31_s = 0x7fffffff;
+   q31_r = __builtin_mips_muleq_s_w_phr (v2q15_a, v2q15_b);
+   if(q31_r != q31_s)
+     abort ();
+ 
+ #ifndef __mips64
+   a64_a = 0x22221111;
+   v4i8_b = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_c = (v4i8) {0xaa, 0x89, 0x11, 0x34};
+   if (little_endian)
+     a64_s = 0x22222f27;
+   else
+     a64_s = 0x222238d9;
+   a64_r = __builtin_mips_dpau_h_qbl (a64_a, v4i8_b, v4i8_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x22221111;
+   v4i8_b = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_c = (v4i8) {0xaa, 0x89, 0x11, 0x34};
+   if (little_endian)
+     a64_s = 0x222238d9;
+   else
+     a64_s = 0x22222f27;
+   a64_r = __builtin_mips_dpau_h_qbr (a64_a, v4i8_b, v4i8_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x22221111;
+   v4i8_b = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_c = (v4i8) {0xaa, 0x89, 0x11, 0x34};
+   if (little_endian)
+     a64_s = 0x2221f2fb;
+   else
+     a64_s = 0x2221e949;
+   a64_r = __builtin_mips_dpsu_h_qbl (a64_a, v4i8_b, v4i8_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x22221111;
+   v4i8_b = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_c = (v4i8) {0xaa, 0x89, 0x11, 0x34};
+   if (little_endian)
+     a64_s = 0x2221e949;
+   else
+     a64_s = 0x2221f2fb;
+   a64_r = __builtin_mips_dpsu_h_qbr (a64_a, v4i8_b, v4i8_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x5678};
+   v2q15_c = (v2q15) {0x8000, 0x1111};
+   a64_s = 0x8b877d00;
+   a64_r = __builtin_mips_dpaq_s_w_ph (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x5678};
+   v2q15_c = (v2q15) {0x8000, 0x1111};
+   a64_s = 0xffffffff7478a522LL;
+   a64_r = __builtin_mips_dpsq_s_w_ph (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x5678};
+   v2q15_c = (v2q15) {0x8000, 0x1111};
+   if (little_endian)
+     a64_s = 0xffffffff8b877d02LL;
+   else
+     a64_s = 0x7478a520;
+   a64_r = __builtin_mips_mulsaq_s_w_ph (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   q31_b = 0x80000000;
+   q31_c = 0x80000000;
+   a64_s = 0x7fffffffffffffffLL;
+   a64_r = __builtin_mips_dpaq_sa_l_w (a64_a, q31_b, q31_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   q31_b = 0x80000000;
+   q31_c = 0x80000000;
+   a64_s = 0x8000000000001112LL;
+   a64_r = __builtin_mips_dpsq_sa_l_w (a64_a, q31_b, q31_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x1};
+   v2q15_c = (v2q15) {0x8000, 0x2};
+   if (little_endian)
+     a64_s = 0x1115;
+   else
+     a64_s = 0x80001110;
+   a64_r = __builtin_mips_maq_s_w_phl (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x1};
+   v2q15_c = (v2q15) {0x8000, 0x2};
+   if (little_endian)
+     a64_s = 0x80001110;
+   else
+     a64_s = 0x1115;
+   a64_r = __builtin_mips_maq_s_w_phr (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x1};
+   v2q15_c = (v2q15) {0x8000, 0x2};
+   if (little_endian)
+     a64_s = 0x1115;
+   else
+     a64_s = 0x7fffffff;
+   a64_r = __builtin_mips_maq_sa_w_phl (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x00001111;
+   v2q15_b = (v2q15) {0x8000, 0x1};
+   v2q15_c = (v2q15) {0x8000, 0x2};
+   if (little_endian)
+     a64_s = 0x7fffffff;
+   else
+     a64_s = 0x1115;
+   a64_r = __builtin_mips_maq_sa_w_phr (a64_a, v2q15_b, v2q15_c);
+   if(a64_r != a64_s)
+     abort ();
+ #endif
+ 
+   i32_a = 0x12345678;
+   i32_s = 0x00001e6a;
+   i32_r = __builtin_mips_bitrev (i32_a);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x00000208; // pos is 8, size is 4
+   __builtin_mips_wrdsp (i32_a, 31);
+   i32_a = 0x12345678;
+   i32_b = 0x87654321;
+   i32_s = 0x12345178;
+   i32_r = __builtin_mips_insv (i32_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   v4i8_s = (v4i8) {1, 1, 1, 1};
+   v4i8_r = __builtin_mips_repl_qb (1);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   i32_a = 99;
+   v4i8_s = (v4i8) {99, 99, 99, 99};
+   v4i8_r = __builtin_mips_repl_qb (i32_a);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_s = (v2q15) {30, 30};
+   v2q15_r = __builtin_mips_repl_ph (30);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   i32_a = 0x5612;
+   v2q15_s = (v2q15) {0x5612, 0x5612};
+   v2q15_r = __builtin_mips_repl_ph (i32_a);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x12, 0x34, 0x78, 0x56};
+   if (little_endian)
+     i32_s = 0x03000000;
+   else
+     i32_s = 0x0c000000;
+   __builtin_mips_cmpu_eq_qb (v4i8_a, v4i8_b);
+   i32_r = __builtin_mips_rddsp (16);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x12, 0x34, 0x78, 0x56};
+   if (little_endian)
+     i32_s = 0x04000000;
+   else
+     i32_s = 0x02000000;
+   __builtin_mips_cmpu_lt_qb (v4i8_a, v4i8_b);
+   i32_r = __builtin_mips_rddsp (16);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x12, 0x34, 0x78, 0x56};
+   if (little_endian)
+     i32_s = 0x07000000;
+   else
+     i32_s = 0x0e000000;
+   __builtin_mips_cmpu_le_qb (v4i8_a, v4i8_b);
+   i32_r = __builtin_mips_rddsp (16);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x12, 0x34, 0x78, 0x56};
+   if (little_endian)
+     i32_s = 0x3;
+   else
+     i32_s = 0xc;
+   i32_r=__builtin_mips_cmpgu_eq_qb (v4i8_a, v4i8_b);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x12, 0x34, 0x78, 0x56};
+   if (little_endian)
+     i32_s = 0x4;
+   else
+     i32_s = 0x2;
+   i32_r = __builtin_mips_cmpgu_lt_qb (v4i8_a, v4i8_b);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x12, 0x34, 0x78, 0x56};
+   if (little_endian)
+     i32_s = 0x7;
+   else
+     i32_s = 0xe;
+   i32_r = __builtin_mips_cmpgu_le_qb (v4i8_a, v4i8_b);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   __builtin_mips_wrdsp (0,31); // Clear all condition code bits.
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x1234, 0x7856};
+   if (little_endian)
+     i32_s = 0x01000000;
+   else
+     i32_s = 0x02000000;
+   __builtin_mips_cmp_eq_ph (v2q15_a, v2q15_b);
+   i32_r = __builtin_mips_rddsp (16);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x1234, 0x7856};
+   if (little_endian)
+     i32_s = 0x02000000;
+   else
+     i32_s = 0x01000000;
+   __builtin_mips_cmp_lt_ph (v2q15_a, v2q15_b);
+   i32_r = __builtin_mips_rddsp (16);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x1234, 0x7856};
+   i32_s = 0x03000000;
+   __builtin_mips_cmp_le_ph (v2q15_a, v2q15_b);
+   i32_r = __builtin_mips_rddsp (16);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x0a000000; // cc: 0000 1010
+   __builtin_mips_wrdsp (i32_a, 31);
+   v4i8_a = (v4i8) {0x12, 0x34, 0x56, 0x78};
+   v4i8_b = (v4i8) {0x21, 0x43, 0x65, 0x87};
+   if (little_endian)
+     v4i8_s = (v4i8) {0x21, 0x34, 0x65, 0x78};
+   else
+     v4i8_s = (v4i8) {0x12, 0x43, 0x56, 0x87};
+   v4i8_r = __builtin_mips_pick_qb (v4i8_a, v4i8_b);
+   r = (int) v4i8_r;
+   s = (int) v4i8_s;
+   if(r != s)
+     abort ();
+ 
+   i32_a = 0x02000000; // cc: 0000 0010
+   __builtin_mips_wrdsp (i32_a, 31);
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x2143, 0x6587};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x2143, 0x5678};
+   else
+     v2q15_s = (v2q15) {0x1234, 0x6587};
+   v2q15_r = __builtin_mips_pick_ph (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+   v2q15_a = (v2q15) {0x1234, 0x5678};
+   v2q15_b = (v2q15) {0x1234, 0x7856};
+   if (little_endian)
+     v2q15_s = (v2q15) {0x7856, 0x1234};
+   else
+     v2q15_s = (v2q15) {0x5678, 0x1234};
+   v2q15_r = __builtin_mips_packrl_ph (v2q15_a, v2q15_b);
+   r = (int) v2q15_r;
+   s = (int) v2q15_s;
+   if(r != s)
+     abort ();
+ 
+ #ifndef __mips64
+   a64_a = 0x1234567887654321LL;
+   i32_s = 0x88765432;
+   i32_r = __builtin_mips_extr_w (a64_a, 4);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x1234567887658321LL;
+   i32_s = 0x56788766;
+   i32_r = __builtin_mips_extr_r_w (a64_a, 16);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x12345677fffffff8LL;
+   i32_s = 0x7fffffff;
+   i32_r = __builtin_mips_extr_rs_w (a64_a, 4);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x1234567887658321LL;
+   i32_s = 0x7fff;
+   i32_r = __builtin_mips_extr_s_h (a64_a, 16);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x0000007887658321LL;
+   i32_b = 24;
+   i32_s = 0x7887;
+   i32_r = __builtin_mips_extr_s_h (a64_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x1234567887654321LL;
+   i32_b = 4;
+   i32_s = 0x88765432;
+   i32_r = __builtin_mips_extr_w (a64_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x1234567887658321LL;
+   i32_b = 16;
+   i32_s = 0x56788766;
+   i32_r = __builtin_mips_extr_r_w (a64_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x12345677fffffff8LL;
+   i32_b = 4;
+   i32_s = 0x7fffffff;
+   i32_r = __builtin_mips_extr_rs_w (a64_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x0000021f; // pos is 31
+   __builtin_mips_wrdsp (i32_a, 31);
+   a64_a = 0x1234567887654321LL;
+   i32_s = 8;
+   i32_r = __builtin_mips_extp (a64_a, 3); // extract 4 bits
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x0000021f; // pos is 31
+   __builtin_mips_wrdsp (i32_a, 31);
+   a64_a = 0x1234567887654321LL;
+   i32_b = 7; // size is 8. NOTE!! we should use 7
+   i32_s = 0x87;
+   i32_r = __builtin_mips_extp (a64_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x0000021f; // pos is 31
+   __builtin_mips_wrdsp (i32_a, 31);
+   a64_a = 0x1234567887654321LL;
+   i32_s = 8;
+   i32_r = __builtin_mips_extpdp (a64_a, 3); // extract 4 bits
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_s = 0x0000021b; // pos is 27
+   i32_r = __builtin_mips_rddsp (31);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x0000021f; // pos is 31
+   __builtin_mips_wrdsp (i32_a, 31);
+   a64_a = 0x1234567887654321LL;
+   i32_b = 11; // size is 12. NOTE!!! We should use 11
+   i32_s = 0x876;
+   i32_r = __builtin_mips_extpdp (a64_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_s = 0x00000213; // pos is 19
+   i32_r = __builtin_mips_rddsp (31);
+   if (i32_r != i32_s)
+     abort ();
+ 
+   a64_a = 0x1234567887654321LL;
+   a64_s = 0x0012345678876543LL;
+   a64_r = __builtin_mips_shilo (a64_a, 8);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   a64_a = 0x1234567887654321LL;
+   i32_b = -16;
+   a64_s = 0x5678876543210000LL;
+   a64_r = __builtin_mips_shilo (a64_a, i32_b);
+   if(a64_r != a64_s)
+     abort ();
+ 
+   i32_a = 0x0;
+   __builtin_mips_wrdsp (i32_a, 31);
+   a64_a = 0x1234567887654321LL;
+   i32_b = 0x11112222;
+   a64_s = 0x8765432111112222LL;
+   a64_r = __builtin_mips_mthlip (a64_a, i32_b);
+   if(a64_r != a64_s)
+     abort ();
+   i32_s = 32;
+   i32_r = __builtin_mips_rddsp (31);
+   if(i32_r != i32_s)
+     abort ();
+ #endif
+ 
+   i32_a = 0x1357a468;
+   __builtin_mips_wrdsp (i32_a, 63);
+   i32_s = 0x03572428;
+   i32_r = __builtin_mips_rddsp (63);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   ptr_a = &array;
+   i32_b = 37;
+   i32_s = 37;
+   i32_r = __builtin_mips_lbux (ptr_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   ptr_a = &array;
+   i32_b = 38;
+   if (little_endian)
+     i32_s = 0x2726;
+   else
+     i32_s = 0x2627;
+   i32_r = __builtin_mips_lhx (ptr_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   ptr_a = &array;
+   i32_b = 40;
+   if (little_endian)
+     i32_s = 0x2b2a2928;
+   else
+     i32_s = 0x28292a2b;
+   i32_r = __builtin_mips_lwx (ptr_a, i32_b);
+   if(i32_r != i32_s)
+     abort ();
+ 
+   i32_a = 0x00000220; // pos is 32, size is 4
+   __builtin_mips_wrdsp (i32_a, 63);
+   i32_s = 1;
+   i32_r = __builtin_mips_bposge32 ();
+   if(i32_r != i32_s)
+     abort ();
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/movcc-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/movcc-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/movcc-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/movcc-1.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -mips4" } */
+ /* { dg-final { scan-assembler "movz" } } */
+ /* { dg-final { scan-assembler "movn" } } */
+ 
+ void ext_int (int);
+ 
+ int
+ sub1 (int i, int j, int k)
+ {
+   ext_int (k ? i : j);
+ }
+ 
+ int
+ sub2 (int i, int j, long l)
+ {
+   ext_int (!l ? i : j);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/movcc-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/movcc-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/movcc-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/movcc-2.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -mips4" } */
+ /* { dg-final { scan-assembler "movz" } } */
+ /* { dg-final { scan-assembler "movn" } } */
+ 
+ void ext_long (long);
+ 
+ long
+ sub4 (long i, long j, long k)
+ {
+   ext_long (k ? i : j);
+ }
+ 
+ long
+ sub5 (long i, long j, int k)
+ {
+   ext_long (!k ? i : j);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/movcc-3.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/movcc-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/movcc-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/movcc-3.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,63 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -mips4 -mhard-float" } */
+ /* { dg-final { scan-assembler "movt" } } */
+ /* { dg-final { scan-assembler "movf" } } */
+ /* { dg-final { scan-assembler "movz.s" } } */
+ /* { dg-final { scan-assembler "movn.s" } } */
+ /* { dg-final { scan-assembler "movt.s" } } */
+ /* { dg-final { scan-assembler "movz.d" } } */
+ /* { dg-final { scan-assembler "movn.d" } } */
+ /* { dg-final { scan-assembler "movf.d" } } */
+ 
+ void ext_int (int);
+ void ext_long (long);
+ void ext_float (float);
+ void ext_double (double);
+ 
+ int
+ sub3 (int i, int j, float f)
+ {
+   ext_int (f ? i : j);
+ }
+ 
+ long
+ sub6 (long i, long j, float f)
+ {
+   ext_long (!f ? i : j);
+ }
+ 
+ float
+ sub7 (float f, float g, int i)
+ {
+   ext_float (i ? f : g);
+ }
+ 
+ float
+ sub8 (float f, float g, long l)
+ {
+   ext_float (!l ? f : g);
+ }
+ 
+ float
+ sub9 (float f, float g, float h)
+ {
+   ext_float (h ? f : g);
+ }
+ 
+ double
+ suba (double f, double g, int i)
+ {
+   ext_double (i ? f : g);
+ }
+ 
+ double
+ subb (double f, double g, long l)
+ {
+   ext_double (!l ? f : g);
+ }
+ 
+ double
+ subc (double f, double g, double h)
+ {
+   ext_double (!h ? f : g);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/nmadd-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/nmadd-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/nmadd-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/nmadd-1.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -ffast-math -mips4 -mhard-float" } */
+ /* { dg-final { scan-assembler "nmadd.s" } } */
+ /* { dg-final { scan-assembler "nmadd.d" } } */
+ /* { dg-final { scan-assembler "nmsub.s" } } */
+ /* { dg-final { scan-assembler "nmsub.d" } } */
+ 
+ float
+ sub1 (float f, float g, float h)
+ {
+   return -((f * g) + h);
+ }
+ 
+ double
+ sub2 (double f, double g, double h)
+ {
+   return -((f * g) + h);
+ }
+ 
+ float
+ sub3 (float f, float g, float h)
+ {
+   return -((f * g) - h);
+ }
+ 
+ double
+ sub4 (double f, double g, double h)
+ {
+   return -((f * g) - h);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/nmadd-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/nmadd-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/nmadd-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/nmadd-2.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -fno-fast-math -mips4 -mhard-float" } */
+ /* { dg-final { scan-assembler "nmadd.s" } } */
+ /* { dg-final { scan-assembler "nmadd.d" } } */
+ /* { dg-final { scan-assembler "nmsub.s" } } */
+ /* { dg-final { scan-assembler "nmsub.d" } } */
+ 
+ float
+ sub1 (float f, float g, float h)
+ {
+   return -((f * g) + h);
+ }
+ 
+ double
+ sub2 (double f, double g, double h)
+ {
+   return -((f * g) + h);
+ }
+ 
+ float
+ sub3 (float f, float g, float h)
+ {
+   return -((f * g) - h);
+ }
+ 
+ double
+ sub4 (double f, double g, double h)
+ {
+   return -((f * g) - h);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/rsqrt-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/rsqrt-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/rsqrt-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/rsqrt-1.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -ffast-math -mips4 -mhard-float" } */
+ /* { dg-final { scan-assembler "rsqrt.d" } } */
+ /* { dg-final { scan-assembler "rsqrt.s" } } */
+ 
+ extern double sqrt(double);
+ extern float sqrtf(float);
+ 
+ double foo(double x)
+ {
+   return 1.0/sqrt(x);
+ }
+ 
+ float bar(float x)
+ {
+   return 1.0f/sqrtf(x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/rsqrt-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/rsqrt-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/rsqrt-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/rsqrt-2.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -ffast-math -mips4 -mhard-float" } */
+ /* { dg-final { scan-assembler "rsqrt.d" } } */
+ /* { dg-final { scan-assembler "rsqrt.s" } } */
+ 
+ extern double sqrt(double);
+ extern float sqrtf(float);
+ 
+ double foo(double x)
+ {
+   return sqrt(1.0/x);
+ }
+ 
+ float bar(float x)
+ {
+   return sqrtf(1.0f/x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/rsqrt-3.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/rsqrt-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/rsqrt-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/rsqrt-3.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -mips4 -mhard-float" } */
+ /* { dg-final { scan-assembler-not "rsqrt.d" } } */
+ /* { dg-final { scan-assembler-not "rsqrt.s" } } */
+ 
+ extern double sqrt(double);
+ extern float sqrtf(float);
+ 
+ double foo(double x)
+ {
+   return 1.0/sqrt(x);
+ }
+ 
+ double bar(double x)
+ {
+   return sqrt(1.0/x);
+ }
+ 
+ float foof(float x)
+ {
+   return 1.0f/sqrtf(x);
+ }
+ 
+ float barf(float x)
+ {
+   return sqrtf(1.0f/x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/sb1-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/sb1-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/sb1-1.c	Mon Sep 13 19:32:04 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/sb1-1.c	Mon Apr 18 20:34:36 2005
***************
*** 1,6 ****
  /* Test SB-1 v2sf extensions.  */
! /* { dg-do compile { target mipsisa64*-*-* } } */ 
! /* { dg-options "-march=sb1 -O2 -mpaired-single -mhard-float -mfp64 -ffast-math" } */ 
  /* { dg-final { scan-assembler "div.ps" } } */ 
  /* { dg-final { scan-assembler "recip.ps" } } */ 
  /* { dg-final { scan-assembler "sqrt.ps" } } */ 
--- 1,6 ----
  /* Test SB-1 v2sf extensions.  */
! /* { dg-do compile } */ 
! /* { dg-mips-options "-march=sb1 -O2 -mpaired-single -mhard-float -mgp64 -ffast-math" } */ 
  /* { dg-final { scan-assembler "div.ps" } } */ 
  /* { dg-final { scan-assembler "recip.ps" } } */ 
  /* { dg-final { scan-assembler "sqrt.ps" } } */ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/vr-mult-1.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/vr-mult-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/vr-mult-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/vr-mult-1.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,7 ----
+ /* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu
+    is preferred over mtlo/msac.  */
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -march=vr5400" } */
+ int f1 (int a, int b, int c) { return a + b * c; }
+ int f2 (int a, int b, int c) { return a - b * c; }
+ /* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/mips/vr-mult-2.c gcc-4.1.0/gcc/testsuite/gcc.target/mips/vr-mult-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/mips/vr-mult-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/mips/vr-mult-2.c	Mon Apr 18 20:34:36 2005
***************
*** 0 ****
--- 1,7 ----
+ /* Make sure that mul/addu is preferred over mtlo/macc and that mul/subu
+    is preferred over mtlo/msac.  */
+ /* { dg-do compile } */
+ /* { dg-mips-options "-O2 -march=vr5500" } */
+ int f1 (int a, int b, int c) { return a + b * c; }
+ int f2 (int a, int b, int c) { return a - b * c; }
+ /* { dg-final { scan-assembler "\tmul\t.*\tmul\t" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20020118-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20020118-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20020118-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20020118-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do run { target powerpc*-*-* } }*/
+ 
+ /* Test local alignment.  Test new target macro STARTING_FRAME_PHASE.  */
+ /* Origin: Aldy Hernandez <aldyh@redhat.com>.  */
+ 
+ extern void abort(void);
+ 
+ int main ()
+ {       
+   int darisa[4] __attribute__((aligned(16))) ;
+   int *stephanie = (int *) darisa;
+ 
+   if ((unsigned long) stephanie % 16 != 0)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20030218-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20030218-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20030218-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20030218-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target powerpc-*-eabi* } } */
+ /* { dg-options "-mspe=yes" } */
+ 
+ /* Test vectors that can interconvert without a cast.  */
+ 
+ __ev64_opaque__ opp;
+ int vint   __attribute__((vector_size (8)));
+ short vshort __attribute__((vector_size (8)));
+ float vfloat __attribute__((vector_size (8)));
+ 
+ int
+ main (void)
+ {
+   __ev64_opaque__ george = { 1, 2 }; /* { dg-error "opaque vector types cannot be initialized" } */
+ 
+   opp = vfloat;
+   vshort = opp;
+   vfloat = vshort; /* { dg-error "incompatible types in assignment" } */
+ 
+   /* Just because this is a V2SI, it doesn't make it an opaque.  */
+   vint = vshort; /* { dg-error "incompatible types in assignment" } */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20030505.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20030505.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20030505.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20030505.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,20 ----
+ /* { dg-do compile { target powerpc-*-eabispe* } } */
+ /* { dg-options "-W" } */
+ 
+ #define __vector __attribute__((vector_size(8)))
+ 
+ typedef float                   __vector __ev64_fs__;
+ 
+ __ev64_opaque__ *p1;
+ __ev64_fs__ *p2;
+ int *x;
+ 
+ extern void f (__ev64_opaque__ *);
+ 
+ int main ()
+ {
+ 	f (x);	/* { dg-warning "incompatible pointer type" } */
+ 	f (p1);
+ 	f (p2);
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20040121-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20040121-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20040121-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20040121-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-options "-O2 -mcpu=G5 " } */
+ 
+ long long (*y)(int t);
+ long long get_alias_set (int t)
+ {
+   return y(t);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20040622-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20040622-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20040622-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20040622-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-options "-Os -mlong-double-128" } */
+ /* { dg-do compile { target rs6000-*-* powerpc-*-* } } */
+ /* Make sure compiler doesn't generate [reg+reg] address mode
+    for long doubles. */
+ union arg {
+   int intarg;
+   long double longdoublearg;
+ };
+ long double d;
+ int va(int n, union arg **argtable)
+ {
+   (*argtable)[n].longdoublearg = d;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20041111-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20041111-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20041111-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20041111-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-mcpu=power4 -O2" } */
+ 
+ extern unsigned long long set_mask[65];
+ extern  unsigned long long xyzzy(int) __attribute__((pure));
+ 
+ int valid (int x)
+ {
+   return(xyzzy(x) & set_mask[x]);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20050603-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20050603-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20050603-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20050603-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-options "-O2" } */
+ #include <locale.h>
+ #include <stdlib.h>
+ register int *testreg asm ("r29");
+ 
+ int x;
+ int y;
+ int *ext_func (int *p) { return p; }
+ 
+ void test_reg_save_restore (int*) __attribute__((noinline));
+ void
+ test_reg_save_restore (int *p)
+ {
+     setlocale (LC_ALL, "C");
+     testreg = ext_func(p);
+ }
+ main() {
+   testreg = &x;
+   test_reg_save_restore (&y);
+   if (testreg != &y)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20050603-3.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20050603-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20050603-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20050603-3.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target "powerpc-*-*" } } */
+ /* { dg-options "-O2" } */
+ struct Q 
+ {
+   long x:20;
+   long y:4;
+   long z:8;
+ }b;
+ /* This should generate a single rl[w]imi. */
+ void rotins (unsigned int x)
+ {
+   b.y = (x<<12) | (x>>20);
+ }
+ 
+ /* { dg-final { scan-assembler-not "inm" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20050830-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20050830-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/20050830-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/20050830-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,13 ----
+ /* Make sure the doloop optimization is done for this loop. */
+ /* { dg-do compile { target powerpc-*-* } } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler "bdn" } } */
+ extern int a[];
+ int foo(int w) {
+   int n = w;
+   while (n >= 512)
+     {
+     a[n] = 42;
+     n -= 256;
+     }
+   }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/980827-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/980827-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/980827-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/980827-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do run { target rs6000-*-linux* powerpc-*-linux*} } */
+ /* { dg-options -O2 } */
+ 
+ extern void exit (int);
+ extern void abort (void);
+ 
+ double dval = 0;
+ 
+ void splat (double d);
+ 
+ int main(void)
+ {
+   splat(0);
+   if (dval == 0)
+     abort();
+   exit (0);
+ }
+ 
+ void splat (double d)
+ {
+   union {
+     double f;
+     unsigned int l[2];
+   } u;
+   
+   u.f = d + d;
+   u.l[1] |= 1;
+   asm volatile ("stfd %0,dval@sdarel(13)" : : "f" (u.f));
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-1.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,42 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* Program to test PowerPC AltiVec instructions.  */
+ 
+ #include <altivec.h>
+ #include "altivec_check.h"
+ 
+ extern void abort (void);
+ 
+ vector int a1 = { 100, 200, 300, 400 };
+ vector int a2 = { 500, 600, 700, 800 };
+ vector int addi = { 600, 800, 1000, 1200 };
+ vector int avgi = { 300, 400, 500, 600 };
+ 
+ vector float f1 = { 1.0, 2.0, 3.0, 4.0 };  
+ vector float f2 = { 5.0, 6.0, 7.0, 8.0 };
+ vector float f3;
+ vector float addf = { 6.0, 8.0, 10.0, 12.0 };
+ 
+ vector int k;
+ vector float f, g, h;
+ 
+ int main ()
+ {
+   altivec_check();  /* Exits if AltiVec not supported */
+ 
+   k = vec_add (a1, a2);
+   if (!vec_all_eq (addi, k))
+     abort ();
+ 
+   k = vec_avg (a1, a2);
+   if (!vec_all_eq (k, avgi))
+     abort ();
+ 
+   h = vec_add (f1, f2);
+   if (!vec_all_eq (h, addf))
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-10.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-10.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-10.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,80 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
+ 
+ #include <altivec.h>
+ #include <signal.h>
+ 
+ #include "altivec_check.h"
+ 
+ typedef union
+ {
+   float         f[4];
+   unsigned int  i[4];
+   vector float  v;
+ } vec_float_t;
+ 
+ void 
+ check_vec_all_num ()
+ {
+   vec_float_t a, b, c;
+ 
+   a.i[0] = 0xfffa5a5a;
+   a.f[1] = 1.0;
+   a.f[2] = 1.0;
+   a.f[3] = 1.0;
+ 
+   b.f[0] = 1.0;
+   b.f[1] = 1.0;
+   b.f[2] = 1.0;
+   b.f[3] = 1.0;
+ 
+   c.i[0] = 0xfffa5a5a;
+   c.i[1] = 0xfffa5a5a;
+   c.i[2] = 0xfffa5a5a;
+   c.i[3] = 0xfffa5a5a;
+ 
+   if (vec_all_numeric (a.v))
+     abort ();
+ 
+   if (vec_all_nan (a.v))
+     abort ();
+ 
+   if (!vec_all_numeric (b.v))
+     abort ();
+ 
+   if (vec_all_nan (b.v))
+     abort ();
+ 
+   if (vec_all_numeric (c.v))
+     abort ();
+ 
+   if (!vec_all_nan (c.v))
+     abort ();
+ 
+ }
+ 
+ void 
+ check_cmple()
+ {
+   vector float a = {1.0, 2.0, 3.0, 4.0};
+   vector float b = {1.0, 3.0, 2.0, 5.0};
+   vector bool int aux;
+   vector signed int le = {-1, -1, 0, -1};
+ 
+   aux = vec_cmple (a, b);
+ 
+   if (!vec_all_eq (aux, le))
+     abort ();
+ }
+ 
+ 
+ int 
+ main()
+ {
+   altivec_check ();
+ 
+   check_cmple ();
+   check_vec_all_num ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-11.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-11.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-11.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-11.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,59 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-O2 -maltivec -mabi=altivec" } */
+ /* { dg-final { scan-assembler-not "lvx" } } */
+ #include <altivec.h>
+ 
+ void foo (vector int);
+ void foo_s (vector short);
+ void foo_c (vector char);
+ 
+ /* All constants should be loaded into vector register without
+    load from memory.  */
+ void
+ bar (void) 
+ {
+   foo ((vector int) {0, 0, 0, 0});
+   foo ((vector int) {1, 1, 1, 1});
+   foo ((vector int) {15, 15, 15, 15});
+   foo ((vector int) {-16, -16, -16, -16});
+   foo ((vector int) {0x10001, 0x10001, 0x10001, 0x10001});
+   foo ((vector int) {0xf000f, 0xf000f, 0xf000f, 0xf000f});
+   foo ((vector int) {0xfff0fff0, 0xfff0fff0, 0xfff0fff0, 0xfff0fff0});
+   foo ((vector int) {0x1010101, 0x1010101, 0x1010101, 0x1010101});  
+   foo ((vector int) {0xf0f0f0f, 0xf0f0f0f, 0xf0f0f0f, 0xf0f0f0f});  
+   foo ((vector int) {0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0, 0xf0f0f0f0});
+   foo ((vector int) {0x10101010, 0x10101010, 0x10101010, 0x10101010});
+   foo ((vector int) {0x1e1e1e1e, 0x1e1e1e1e, 0x1e1e1e1e, 0x1e1e1e1e});
+   foo ((vector int) {0x100010, 0x100010, 0x100010, 0x100010});
+   foo ((vector int) {0x1e001e, 0x1e001e, 0x1e001e, 0x1e001e});
+   foo ((vector int) {0x10, 0x10, 0x10, 0x10});
+   foo ((vector int) {0x1e, 0x1e, 0x1e, 0x1e});
+ 
+   foo_s ((vector short int) {0, 0, 0, 0, 0, 0, 0, 0});
+   foo_s ((vector short int) {1, 1, 1, 1, 1, 1, 1, 1});
+   foo_s ((vector short int) {15, 15, 15, 15, 15, 15, 15, 15});
+   foo_s ((vector short int) {-16, -16, -16, -16, -16, -16, -16, -16});
+   foo_s ((vector short int) {0xf0f0, 0xf0f0, 0xf0f0, 0xf0f0, 
+ 			       0xf0f0, 0xf0f0, 0xf0f0, 0xf0f0});
+   foo_s ((vector short int) {0xf0f, 0xf0f, 0xf0f, 0xf0f, 
+ 			       0xf0f, 0xf0f, 0xf0f, 0xf0f});
+   foo_s ((vector short int) {0x1010, 0x1010, 0x1010, 0x1010, 
+ 			       0x1010, 0x1010, 0x1010, 0x1010});
+   foo_s ((vector short int) {0x1e1e, 0x1e1e, 0x1e1e, 0x1e1e, 
+ 			       0x1e1e, 0x1e1e, 0x1e1e, 0x1e1e});
+ 
+   foo_c ((vector char) {0, 0, 0, 0, 0, 0, 0, 0,
+ 			  0, 0, 0, 0, 0, 0, 0, 0});
+   foo_c ((vector char) {1, 1, 1, 1, 1, 1, 1, 1, 
+ 			  1, 1, 1, 1, 1, 1, 1, 1});
+   foo_c ((vector char) {15, 15, 15, 15, 15, 15, 15, 15,
+ 			  15, 15, 15, 15, 15, 15, 15, 15});
+   foo_c ((vector char) {-16, -16, -16, -16, -16, -16, -16, -16,
+ 			  -16, -16, -16, -16, -16, -16, -16, -16});
+   foo_c ((vector char) {16, 16, 16, 16, 16, 16, 16, 16,
+ 			  16, 16, 16, 16, 16, 16, 16, 16});
+   foo_c ((vector char) {30, 30, 30, 30, 30, 30, 30, 30,
+ 			  30, 30, 30, 30, 30, 30, 30, 30});
+ 
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-12.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-12.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-12.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-12.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,96 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* Program to test PowerPC AltiVec instructions.  */
+ 
+ #include <altivec.h>
+ #include "altivec_check.h"
+ 
+ extern void abort (void);
+ #define CHECK_IF(E) if(!(E)) abort()
+ 
+ vector int a1 = (vector int){ 100, 200, 300, 400 };
+ vector int a2 = (vector int){ 500, 600, 700, 800 };
+ vector int addi = (vector int){ 600, 800, 1000, 1200 };
+ vector int avgi = (vector int){ 300, 400, 500, 600 };
+ 
+ vector float f1 = (vector float){ 1.0, 2.0, 3.0, 4.0 };
+ vector float f2 = (vector float){ 5.0, 6.0, 7.0, 8.0 };
+ vector float f3;
+ vector float addf1 = (vector float){ 6.0, 8.0, 10.0, 12.0 };
+ vector float addf2 = (vector float){ 6.1, 8.1, 10.1, 12.1 };
+ vector float addf3 = (vector float){ 6.0, 8.0, 9.9, 12.1 };
+ vector int k;
+ vector float f, g, h;
+ 
+ int main ()
+ {
+ 
+   altivec_check();  /* Exit if AltiVec not available.  */
+ 
+   k = vec_add (a1, a2);
+   CHECK_IF (vec_all_eq (addi, k));
+   CHECK_IF (vec_all_ge (addi, k));
+   CHECK_IF (vec_all_le (addi, k));
+   CHECK_IF (vec_any_eq (addi, k));
+   CHECK_IF (vec_any_ge (addi, k));
+   CHECK_IF (vec_any_le (addi, k));
+   CHECK_IF (!vec_any_ne (addi, k));
+   CHECK_IF (!vec_any_lt (addi, k));
+   CHECK_IF (!vec_any_gt (addi, k));
+   CHECK_IF (!vec_any_ne (addi, k));
+   CHECK_IF (!vec_any_lt (addi, k));
+   CHECK_IF (!vec_any_gt (addi, k));
+ 
+   k = vec_avg (a1, a2);
+   CHECK_IF (vec_all_eq (k, avgi));
+ 
+   h = vec_add (f1, f2);
+   CHECK_IF (vec_all_eq (h, addf1));
+   CHECK_IF (vec_all_ge (h, addf1));
+   CHECK_IF (vec_all_le (h, addf1));
+   CHECK_IF (vec_any_eq (h, addf1));
+   CHECK_IF (vec_any_ge (h, addf1));
+   CHECK_IF (vec_any_le (h, addf1));
+   CHECK_IF (!vec_any_ne (h, addf1));
+   CHECK_IF (!vec_any_lt (h, addf1));
+   CHECK_IF (!vec_any_gt (h, addf1));
+   CHECK_IF (!vec_any_ne (h, addf1));
+   CHECK_IF (!vec_any_lt (h, addf1));
+   CHECK_IF (!vec_any_gt (h, addf1));
+ 
+   CHECK_IF (vec_all_gt (addf2, addf1));
+   CHECK_IF (vec_any_gt (addf2, addf1));
+   CHECK_IF (vec_all_ge (addf2, addf1));
+   CHECK_IF (vec_any_ge (addf2, addf1));
+   CHECK_IF (vec_all_ne (addf2, addf1));
+   CHECK_IF (vec_any_ne (addf2, addf1));
+   CHECK_IF (!vec_all_lt (addf2, addf1));
+   CHECK_IF (!vec_any_lt (addf2, addf1));
+   CHECK_IF (!vec_all_le (addf2, addf1));
+   CHECK_IF (!vec_any_le (addf2, addf1));
+   CHECK_IF (!vec_all_eq (addf2, addf1));
+   CHECK_IF (!vec_any_eq (addf2, addf1));
+ 
+   CHECK_IF (vec_any_eq (addf3, addf1));
+   CHECK_IF (vec_any_ne (addf3, addf1));
+   CHECK_IF (vec_any_lt (addf3, addf1));
+   CHECK_IF (vec_any_le (addf3, addf1));
+   CHECK_IF (vec_any_gt (addf3, addf1));
+   CHECK_IF (vec_any_ge (addf3, addf1));
+   CHECK_IF (!vec_all_eq (addf3, addf1));
+   CHECK_IF (!vec_all_ne (addf3, addf1));
+   CHECK_IF (!vec_all_lt (addf3, addf1));
+   CHECK_IF (!vec_all_le (addf3, addf1));
+   CHECK_IF (!vec_all_gt (addf3, addf1));
+   CHECK_IF (!vec_all_ge (addf3, addf1));
+ 
+   CHECK_IF (vec_all_numeric (addf3));
+   CHECK_IF (vec_all_in (addf1, addf2));
+ 
+   CHECK_IF (vec_step (vector bool char) == 16);
+   CHECK_IF (vec_step (addf3) == 4);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-13.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-13.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-13.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-13.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ /* Author: Ziemowit Laski  <zlaski@apple.com>  */
+ 
+ /* This test case exercises intrinsic/argument combinations that,
+    while not in the Motorola AltiVec PIM, have nevertheless crept
+    into the AltiVec vernacular over the years.  */
+ 
+ #include <altivec.h>
+ 
+ void foo (void) 
+ {
+   vector bool int boolVec1 = (vector bool int) vec_splat_u32(3);
+   vector bool short boolVec2 = (vector bool short) vec_splat_u16(3);
+   vector bool char boolVec3 = (vector bool char) vec_splat_u8(3);
+ 
+   boolVec1 = vec_sld( boolVec1, boolVec1, 4 );
+   boolVec2 = vec_sld( boolVec2, boolVec2, 2 );
+   boolVec3 = vec_sld( boolVec3, boolVec3, 1 );
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-14.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-14.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-14.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-14.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target powerpc-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ #include <altivec.h>
+ 
+ vector bool long vbl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ vector signed long vsl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ vector unsigned long vul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ vector bool long *pvbl;		/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ vector signed long *pvsl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ vector unsigned long *pvul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ 
+ void fvbl (vector bool long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ void fvsl (vector signed long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ void fvul (vector unsigned long v) { }	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+ 
+ int main ()
+ {
+   vector bool long lvbl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+   vector signed long lvsl;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+   vector unsigned long lvul;	/* { dg-warning "use of .long. in AltiVec types is deprecated; use .int." } */
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-15.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-15.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-15.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-15.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ #include <altivec.h>
+ 
+ /* Test whether the C front-end is not excessively picky about
+    the integral types and literals that AltiVec instrinsics will
+    accept.  */
+ 
+ vector int vi = { 1, 2, 3, 4 };
+ 
+ int
+ main (void)
+ {
+     unsigned long ul = 2;
+     signed long sl = 2;
+     unsigned int ui = 2;
+     signed int si = 2;
+     float fl = 2.0;
+ 
+     vec_dst (&vi, ul, '\0');
+     vec_dst (&vi, sl, 0);
+     vec_dst (&vi, ui, '\0');
+     vec_dst (&vi, si, 0);
+     vec_dstst (&vi, (short)fl, '\0');
+ 
+     return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-16.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-16.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-16.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-16.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,22 ----
+ /* This is a compile-only test for interaction of "-maltivec" and "-save-temps".  */
+ /* Author:  Ziemowit Laski  <zlaski@apple.com>.  */
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-save-temps -maltivec" } */
+ 
+ #include <altivec.h>
+ 
+ #define vector_float vector float
+ #define vector_float_foo vector float foo
+ #define vector_float_bar_eq vector float bar =
+ 
+ /* NB: Keep the following split across three lines.  */
+ vector
+ int
+ a1 = { 100, 200, 300, 400 };
+ 
+ vector_float f1 = { 1.0, 2.0, 3.0, 4.0 };  
+ vector_float_foo = { 3.0, 4.0, 5.0, 6.0 };
+ vector_float_bar_eq { 8.0, 7.0, 6.0, 5.0 };
+ 
+ /* { dg-final { cleanup-saved-temps } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-17.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-17.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-17.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-17.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Verify a statement in the GCC Manual that GCC allows the use of a
+    typedef name as a vector type specifier.  */
+ 
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec -mabi=altivec" } */
+ 
+ typedef unsigned int ui;
+ typedef signed char sc;
+ __vector ui vui;
+ __vector sc vsc;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-18.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-18.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-18.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-18.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec -mabi=altivec" } */
+ /* { dg-final { scan-assembler "vcmpgtub" { target *-*-linux* } } } */
+ /* { dg-final { scan-assembler "vcmpgtsb" { target *-*-darwin* } } } */
+ /* { dg-final { scan-assembler "vcmpgtsh" } } */
+ /* { dg-final { scan-assembler "vcmpgtsw" } } */
+ 
+ /* Verify a statement in the GCC Manual that vector type specifiers can
+    omit "signed" or "unsigned".  The default is the default signedness
+    of the base type, which differs depending on the ABI.  */
+ 
+ #include <altivec.h>
+ 
+ extern vector char vc1, vc2;
+ extern vector short vs1, vs2;
+ extern vector int vi1, vi2;
+ 
+ int signedness (void)
+ {
+     return vec_all_le (vc1, vc2) 
+            && vec_all_le (vs1, vs2)
+            && vec_all_le (vi1, vi2);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-19.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-19.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-19.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-19.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-maltivec" } */
+ /* { dg-final { scan-assembler "dst" } } */
+ 
+ void foo ( char* image )
+ {
+   while ( 1 )
+     {
+       __builtin_altivec_dst( (void *)( (long)image & ~0x0f ), 0, 0 );
+       image += 48;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-2.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* Program to test the vector_size attribute.  This needs to run on a
+    target that has vectors, so use AltiVec.  */
+ 
+ #define vector __attribute__((vector_size(16)))
+ 
+ vector int foobar;
+ 
+ /* Only floats and integrals allowed.  We don't care if they map to SIs.  */
+ struct X { int frances; };
+ vector struct X hotdog;	/* { dg-error "invalid vector type" } */
+ 
+ /* Arrays of vectors.  */
+ vector char b[10], ouch;
+ 
+ /* Pointers of vectors.  */
+ vector short *shoe, polish;
+ 
+ int xxx[sizeof(foobar) == 16 ? 69 : -1];
+ 
+ int nc17[sizeof(shoe) == sizeof (char *) ? 69 : -1];
+ 
+ code ()
+ {
+   *shoe = polish;
+   b[1] = ouch;
+ }
+ 
+ vector short
+ hoop ()
+ {
+   return polish;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-20.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-20.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-20.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-20.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,23 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-maltivec -mcpu=G5 -O2" } */
+ 
+ #include <altivec.h>
+ 
+ void foo( float scalar)
+ {
+     unsigned long width;
+     unsigned long x;
+     vector float vColor;
+     vector unsigned int selectMask;
+     vColor = vec_perm( vec_ld( 0, &scalar), vec_ld( 3, &scalar), vec_lvsl( 0, &scalar) );
+ 
+     float *destRow;
+     vector float store, load0;
+ 
+     for( ; x < width; x++)
+     {
+             load0 = vec_sel( vColor, load0, selectMask );
+             vec_st( store, 0, destRow );
+             store = load0;
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-21.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-21.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-21.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-21.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-maltivec" } */
+ 
+ #include <altivec.h>
+ 
+ extern void preansi();
+ 
+ typedef void (*pvecfunc) ();
+ 
+ void foo(pvecfunc pvf) {
+    vector int v = (vector int){1, 2, 3, 4};
+ #ifndef __LP64__
+    preansi (4, 4.0, v); /* { dg-error "AltiVec argument passed to unprototyped function" "" { target ilp32 } } */
+    (*pvf)  (4, 4.0, v); /* { dg-error "AltiVec argument passed to unprototyped function" "" { target ilp32 } } */
+ #endif /* __LP64__ */
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-22.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-22.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-22.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-22.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target powerpc-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-O3 -maltivec" } */
+ /* { dg-final { scan-assembler-not "mfcr" } } */
+ 
+ #include <altivec.h>
+ 
+ int foo(vector float x, vector float y) {
+         if (vec_all_eq(x,y)) return 3245;
+         else return 12;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-3.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-3.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,79 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ #include "altivec_check.h"
+ 
+ typedef int int4 __attribute__ ((vector_size (16)));
+ typedef float float4 __attribute__ ((vector_size (16)));
+ 
+ int4 a1 = (int4) { 100, 200, 300, 400 };
+ int4 a2 = (int4) { 500, 600, 700, 800 };
+ 
+ float4 f1 = (float4) { 1.0, 2.0, 3.0, 4.0 };  
+ float4 f2 = (float4) { 5.0, 6.0, 7.0, 8.0 };
+ 
+ int i3[4] __attribute__((aligned(16)));
+ int j3[4] __attribute__((aligned(16)));
+ float h3[4] __attribute__((aligned(16)));
+ float g3[4] __attribute__((aligned(16)));
+ 
+ #define vec_store(dst, src) \
+   __builtin_vec_st (src, 0, (__typeof__ (src) *) dst)
+ 
+ #define vec_add_int4(x, y) \
+   __builtin_altivec_vaddsws (x, y)
+ 
+ #define vec_add_float4(x, y) \
+   __builtin_altivec_vaddfp (x, y)
+ 
+ #define my_abs(x) (x > 0.0F ? x : -x)
+ 
+ void
+ compare_int4 (int *a, int *b)
+ {
+   int i;
+ 
+   for (i = 0; i < 4; ++i)
+     if (a[i] != b[i])
+       abort ();
+ }
+ 
+ void
+ compare_float4 (float *a, float *b)
+ {
+   int i;
+ 
+   for (i = 0; i < 4; ++i)
+     if (my_abs(a[i] - b[i]) >= 1.0e-6)
+       abort ();
+ }
+ 
+ void
+ main1 ()
+ {
+   int loc1 = 600, loc2 = 800;
+   int4 a3 = (int4) { loc1, loc2, 1000, 1200 };
+   int4 itmp;
+   double locf = 12.0;
+   float4 f3 = (float4) { 6.0, 8.0, 10.0, 12.0 };
+   float4 ftmp;
+ 
+   vec_store (i3, a3);
+   itmp = vec_add_int4 (a1, a2);
+   vec_store (j3, itmp);
+   compare_int4 (i3, j3);
+ 
+   vec_store (g3, f3);
+   ftmp = vec_add_float4 (f1, f2);
+   vec_store (h3, ftmp);
+   compare_float4 (g3, h3);
+ }
+ 
+ int
+ main ()
+ {
+   altivec_check ();
+   main1 ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-4.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-4.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,65 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec -O0 -Wall" } */
+ 
+ #define vector __attribute__((vector_size(16)))
+ 
+ static int vector x, y;
+ 
+ static vector signed int i,j;
+ static vector signed short s,t;
+ static vector signed char c,d;
+ static vector float f,g;
+ 
+ static vector unsigned char uc;
+ 
+ static vector signed int *pi;
+ 
+ static int int1, int2;
+ 
+ void
+ b()
+ {
+   __builtin_altivec_vadduwm (x, y);
+ 
+   /* Make sure the predicates accept correct argument types.  */
+   
+   int1 = __builtin_altivec_vcmpbfp_p (0, f, g);
+   int1 = __builtin_altivec_vcmpeqfp_p (0, f, g);
+   int1 = __builtin_altivec_vcmpequb_p (0, c, d);
+   int1 = __builtin_altivec_vcmpequh_p (0, s, t);
+   int1 = __builtin_altivec_vcmpequw_p (0, i, j);
+   int1 = __builtin_altivec_vcmpgefp_p (0, f, g);
+   int1 = __builtin_altivec_vcmpgtfp_p (0, f, g);
+   int1 = __builtin_altivec_vcmpgtsb_p (0, c, d);
+   int1 = __builtin_altivec_vcmpgtsh_p (0, s, t);
+   int1 = __builtin_altivec_vcmpgtsw_p (0, i, j);
+   int1 = __builtin_altivec_vcmpgtub_p (0, c, d);
+   int1 = __builtin_altivec_vcmpgtuh_p (0, s, t);
+   int1 = __builtin_altivec_vcmpgtuw_p (0, i, j);
+ 
+   __builtin_altivec_mtvscr (i);
+   __builtin_altivec_dssall ();
+   s = __builtin_altivec_mfvscr ();
+   __builtin_altivec_dss (3);
+ 
+   __builtin_altivec_dst (pi, int1 + int2, 3);
+   __builtin_altivec_dstst (pi, int1 + int2, 3);
+   __builtin_altivec_dststt (pi, int1 + int2, 3);
+   __builtin_altivec_dstt (pi, int1 + int2, 3);
+ 
+   uc = (vector unsigned char) __builtin_altivec_lvsl (int1 + 69, pi);
+   uc = (vector unsigned char) __builtin_altivec_lvsr (int1 + 69, pi);
+ 
+   c = __builtin_altivec_lvebx (int1, pi);
+   s = __builtin_altivec_lvehx (int1, pi);
+   i = __builtin_altivec_lvewx (int1, pi);
+   i = __builtin_altivec_lvxl (int1, pi);
+   i = __builtin_altivec_lvx (int1, pi);
+ 
+   __builtin_altivec_stvx (i, int2, pi);
+   __builtin_altivec_stvebx (c, int2, pi);
+   __builtin_altivec_stvehx (s, int2, pi);
+   __builtin_altivec_stvewx (i, int2, pi);
+   __builtin_altivec_stvxl (i, int2, pi);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-5.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-5.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-5.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -O2" } */
+ 
+ #define vector __attribute__((vector_size(16)))
+ 
+ void foo (const unsigned long x,
+ 	  vector signed int a, vector signed int b)
+ {
+   unsigned char d[64];
+ 
+   __builtin_altivec_stvewx (b, 0, d);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-6.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-6.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-6.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-6.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,66 ----
+ /* { dg-do compile { target powerpc-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec -O0 -Wall" } */
+ 
+ #include <altivec.h>
+ 
+ /* These denote "generic" GCC vectors.  */
+ static int __attribute__((vector_size(16))) x, y;
+ 
+ static vector signed int i,j;
+ static vector signed short s,t;
+ static vector signed char c,d;
+ static vector float f,g;
+ 
+ static vector unsigned char uc;
+ 
+ static vector signed int *pi;
+ 
+ static int int1, int2;
+ 
+ void
+ b()
+ {
+   vec_add (x, y);
+ 
+   /* Make sure the predicates accept correct argument types.  */
+ 
+   int1 = vec_all_in (f, g);
+   int1 = vec_all_ge (f, g);
+   int1 = vec_all_eq (c, d);
+   int1 = vec_all_ne (s, t);
+   int1 = vec_any_eq (i, j);
+   int1 = vec_any_ge (f, g);
+   int1 = vec_all_ngt (f, g);
+   int1 = vec_any_ge (c, d);
+   int1 = vec_any_ge (s, t);
+   int1 = vec_any_ge (i, j);
+   int1 = vec_any_ge (c, d);
+   int1 = vec_any_ge (s, t);
+   int1 = vec_any_ge (i, j);
+ 
+   vec_mtvscr (i);
+   vec_dssall ();
+   s = (vector signed short) vec_mfvscr ();
+   vec_dss (3);
+ 
+   vec_dst (pi, int1 + int2, 3);
+   vec_dstst (pi, int1 + int2, 3);
+   vec_dststt (pi, int1 + int2, 3);
+   vec_dstt (pi, int1 + int2, 3);
+ 
+   uc = (vector unsigned char) vec_lvsl (int1 + 69, (signed int *) pi);
+   uc = (vector unsigned char) vec_lvsr (int1 + 69, (signed int *) pi);
+ 
+   c = vec_lde (int1, (signed char *) pi);
+   s = vec_lde (int1, (signed short *) pi);
+   i = vec_lde (int1, (signed int *) pi);
+   i = vec_ldl (int1, pi);
+   i = vec_ld (int1, pi);
+ 
+   vec_st (i, int2, pi);
+   vec_ste (c, int2, (signed char *) pi);
+   vec_ste (s, int2, (signed short *) pi);
+   vec_ste (i, int2, (signed int *) pi);
+   vec_stl (i, int2, pi);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-7.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-7.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-7.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-7.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,46 ----
+ /* Origin: Aldy Hernandez  <aldyh@redhat.com>  */
+ 
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ #include <altivec.h>
+ 
+ int **intp;
+ int *var_int;
+ unsigned int **uintp;
+ vector pixel *varpixel;
+ vector signed char *vecchar;
+ vector signed int *vecint;
+ vector signed short *vecshort;
+ vector unsigned char *vecuchar;
+ vector unsigned int *vecuint;
+ vector unsigned short *vecushort;
+ vector float *vecfloat;
+ 
+ int main ()
+ {
+   *vecfloat++ = vec_andc((vector bool int)vecint[0], vecfloat[1]);
+   *vecfloat++ = vec_andc(vecfloat[0], (vector bool int)vecint[1]);
+   *vecfloat++ = vec_vxor((vector bool int)vecint[0], vecfloat[1]);
+   *vecfloat++ = vec_vxor(vecfloat[0], (vector bool int)vecint[1]);
+   *varpixel++ = vec_packpx(vecuint[0], vecuint[1]);
+   *varpixel++ = vec_vpkpx(vecuint[0], vecuint[1]);
+   *vecshort++ = vec_vmulosb(vecchar[0], vecchar[1]);
+   *vecint++ = vec_ld(var_int[0], intp[1]);
+   *vecint++ = vec_lde(var_int[0], intp[1]);
+   *vecint++ = vec_ldl(var_int[0], intp[1]);
+   *vecint++ = vec_lvewx(var_int[0], intp[1]);
+   *vecint++ = vec_unpackh(vecshort[0]);
+   *vecint++ = vec_unpackl(vecshort[0]);
+   *vecushort++ = vec_andc((vector bool short)vecshort[0], vecushort[1]);
+   *vecushort++ = vec_andc(vecushort[0], (vector bool short)vecshort[1]);
+   *vecushort++ = vec_vxor((vector bool short)vecshort[0], vecushort[1]);
+   *vecushort++ = vec_vxor(vecushort[0], (vector bool short)vecshort[1]);
+   *vecuint++ = vec_ld(var_int[0], uintp[1]);
+   *vecuint++ = vec_lvx(var_int[0], uintp[1]);
+   *vecuint++ = vec_vmsumubm(vecuchar[0], vecuchar[1], vecuint[2]);
+   *vecuchar++ = vec_xor(vecuchar[0], (vector unsigned char)vecchar[1]);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-8.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-8.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-8.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-8.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,19 ----
+ /* Origin: Aldy Hernandez  <aldyh@redhat.com>  */
+ /* Test rs6000_legitimate_address.  PRE_INC should be invalid.  */
+ 
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-ibm-aix*" } { "-maltivec" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ #include <altivec.h>
+ 
+ vector signed short *hannah;
+ 
+ int
+ main ()
+ {
+   *hannah++ = __builtin_altivec_vspltish (5);
+   *hannah++ = __builtin_altivec_vspltish (6);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-9.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-9.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-9.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-9.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-maltivec -mabi=altivec -g" } */
+ 
+ /* PR9564 */
+ 
+ extern int vfork(void);
+ 
+ void
+ boom (void)
+ {
+   char buf[65536];
+   vfork();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-consts.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-consts.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-consts.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-consts.c	Wed Nov 23 02:32:41 2005
***************
*** 0 ****
--- 1,321 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -mabi=altivec -O2" } */
+ 
+ /* Check that "easy" AltiVec constants are correctly synthesized.  */
+ 
+ #include "altivec_check.h"
+ 
+ extern void abort (void);
+ 
+ typedef __attribute__ ((vector_size (16))) unsigned char v16qi;
+ typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
+ typedef __attribute__ ((vector_size (16))) unsigned int v4si;
+ 
+ char w[16] __attribute__((aligned(16)));
+  
+ 
+ /* Emulate the vspltis? instructions on a 16-byte array of chars.  */
+ 
+ void vspltisb (char *v, int val)
+ {
+   int i;
+   for (i = 0; i < 16; i++)
+     v[i] = val;
+ }
+ 
+ void vspltish (char *v, int val)
+ {
+   int i;
+   for (i = 0; i < 16; i += 2)
+     v[i] = val >> 7, v[i + 1] = val;
+ }
+ 
+ void vspltisw (char *v, int val)
+ {
+   int i;
+   for (i = 0; i < 16; i += 4)
+     v[i] = v[i + 1] = v[i + 2] = val >> 7, v[i + 3] = val;
+ }
+ 
+ 
+ /* Use three different check functions for each mode-instruction pair.
+    The callers have no typecasting and no addressable vectors, to make
+    the test more robust.  */
+ 
+ void __attribute__ ((noinline)) check_v16qi (v16qi v1, char *v2)
+ {
+   if (memcmp (&v1, v2, 16))
+     abort ();
+ }
+ 
+ void __attribute__ ((noinline)) check_v8hi (v8hi v1, char *v2)
+ {
+   if (memcmp (&v1, v2, 16))
+     abort ();
+ }
+ 
+ void __attribute__ ((noinline)) check_v4si (v4si v1, char *v2)
+ {
+   if (memcmp (&v1, v2, 16))
+     abort ();
+ }
+ 
+ 
+ /* V16QI tests.  */
+ 
+ void v16qi_vspltisb ()
+ {
+   v16qi v = { 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15 };
+   vspltisb (w, 15);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltisb_neg ()
+ {
+   v16qi v = { -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5, -5 };
+   vspltisb (w, -5);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltisb_addself ()
+ {
+   v16qi v = { 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30 };
+   vspltisb (w, 30);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltisb_neg_addself ()
+ {
+   v16qi v = { -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24, -24 };
+   vspltisb (w, -24);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltish ()
+ {
+   v16qi v = { 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15, 0, 15 };
+   vspltish (w, 15);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltish_addself ()
+ {
+   v16qi v = { 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30, 0, 30 };
+   vspltish (w, 30);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltish_neg ()
+ {
+   v16qi v = { -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5, -1, -5 };
+   vspltish (w, -5);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltisw ()
+ {
+   v16qi v = { 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15, 0, 0, 0, 15 };
+   vspltisw (w, 15);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltisw_addself ()
+ {
+   v16qi v = { 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30, 0, 0, 0, 30 };
+   vspltisw (w, 30);
+   check_v16qi (v, w);
+ }
+ 
+ void v16qi_vspltisw_neg ()
+ {
+   v16qi v = { -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5, -1, -1, -1, -5 };
+   vspltisw (w, -5);
+   check_v16qi (v, w);
+ }
+ 
+ 
+ /* V8HI tests. */
+ 
+ void v8hi_vspltisb ()
+ {
+   v8hi v = { 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F, 0x0F0F };
+   vspltisb (w, 15);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltisb_addself ()
+ {
+   v8hi v = { 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E, 0x1E1E };
+   vspltisb (w, 30);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltisb_neg ()
+ {
+   v8hi v = { 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB, 0xFBFB };
+   vspltisb (w, -5);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltish ()
+ {
+   v8hi v = { 15, 15, 15, 15, 15, 15, 15, 15 };
+   vspltish (w, 15);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltish_neg ()
+ {
+   v8hi v = { -5, -5, -5, -5, -5, -5, -5, -5 };
+   vspltish (w, -5);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltish_addself ()
+ {
+   v8hi v = { 30, 30, 30, 30, 30, 30, 30, 30 };
+   vspltish (w, 30);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltish_neg_addself ()
+ {
+   v8hi v = { -24, -24, -24, -24, -24, -24, -24, -24 };
+   vspltish (w, -24);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltisw ()
+ {
+   v8hi v = { 0, 15, 0, 15, 0, 15, 0, 15 };
+   vspltisw (w, 15);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltisw_addself ()
+ {
+   v8hi v = { 0, 30, 0, 30, 0, 30, 0, 30 };
+   vspltisw (w, 30);
+   check_v8hi (v, w);
+ }
+ 
+ void v8hi_vspltisw_neg ()
+ {
+   v8hi v = { -1, -5, -1, -5, -1, -5, -1, -5 };
+   vspltisw (w, -5);
+   check_v8hi (v, w);
+ }
+ 
+ /* V4SI tests. */
+ 
+ void v4si_vspltisb ()
+ {
+   v4si v = { 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F, 0x0F0F0F0F };
+   vspltisb (w, 15);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltisb_addself ()
+ {
+   v4si v = { 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E, 0x1E1E1E1E };
+   vspltisb (w, 30);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltisb_neg ()
+ {
+   v4si v = { 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB, 0xFBFBFBFB };
+   vspltisb (w, -5);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltish ()
+ {
+   v4si v = { 0x000F000F, 0x000F000F, 0x000F000F, 0x000F000F };
+   vspltish (w, 15);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltish_addself ()
+ {
+   v4si v = { 0x001E001E, 0x001E001E, 0x001E001E, 0x001E001E };
+   vspltish (w, 30);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltish_neg ()
+ {
+   v4si v = { 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB, 0xFFFBFFFB };
+   vspltish (w, -5);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltisw ()
+ {
+   v4si v = { 15, 15, 15, 15 };
+   vspltisw (w, 15);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltisw_neg ()
+ {
+   v4si v = { -5, -5, -5, -5 };
+   vspltisw (w, -5);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltisw_addself ()
+ {
+   v4si v = { 30, 30, 30, 30 };
+   vspltisw (w, 30);
+   check_v4si (v, w);
+ }
+ 
+ void v4si_vspltisw_neg_addself ()
+ {
+   v4si v = { -24, -24, -24, -24 };
+   vspltisw (w, -24);
+   check_v4si (v, w);
+ }
+ 
+ 
+ 
+ int main ()
+ {
+   altivec_check ();   /* Exit if hardware doesn't support AltiVec.  */
+ 
+   v16qi_vspltisb ();
+   v16qi_vspltisb_neg ();
+   v16qi_vspltisb_addself ();
+   v16qi_vspltisb_neg_addself ();
+   v16qi_vspltish ();
+   v16qi_vspltish_addself ();
+   v16qi_vspltish_neg ();
+   v16qi_vspltisw ();
+   v16qi_vspltisw_addself ();
+   v16qi_vspltisw_neg ();
+ 
+   v8hi_vspltisb ();
+   v8hi_vspltisb_addself ();
+   v8hi_vspltisb_neg ();
+   v8hi_vspltish ();
+   v8hi_vspltish_neg ();
+   v8hi_vspltish_addself ();
+   v8hi_vspltish_neg_addself ();
+   v8hi_vspltisw ();
+   v8hi_vspltisw_addself ();
+   v8hi_vspltisw_neg ();
+ 
+   v4si_vspltisb ();
+   v4si_vspltisb_addself ();
+   v4si_vspltisb_neg ();
+   v4si_vspltish ();
+   v4si_vspltish_addself ();
+   v4si_vspltish_neg ();
+   v4si_vspltisw ();
+   v4si_vspltisw_neg ();
+   v4si_vspltisw_addself ();
+   v4si_vspltisw_neg_addself ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-pr22085.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -fpreprocessed" } */
+ 
+ /* Program to test AltiVec with -fpreprocessed.  */
+ int foo(__attribute__((altivec(vector__))) float x,
+         __attribute__((altivec(vector__))) float y)
+ {
+   if (__builtin_vec_vcmpeq_p (2, (x), (y)))
+     return 3245;
+   else
+     return 12;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-splat.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-splat.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-splat.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-splat.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,49 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -mabi=altivec -O2" } */
+ 
+ /* Testcase by Richard Guenther and Steven Bosscher.
+    Check that "easy" AltiVec constants are correctly synthesized
+    if they need to be reloaded.  */
+ 
+ typedef __attribute__ ((vector_size (16))) unsigned char v16qi;
+ typedef __attribute__ ((vector_size (16))) unsigned short v8hi;
+ typedef __attribute__ ((vector_size (16))) unsigned int v4si;
+ 
+ #define REGLIST								\
+   "77",  "78",  "79",  "80",  "81",  "82",  "83",  "84",  "85",  "86",	\
+   "87",  "88",  "89",  "90",  "91",  "92",  "93",  "94",  "95",  "96",	\
+   "97",  "98",  "99", "100", "101", "102", "103", "104", "105", "106",	\
+  "107", "108"
+ 
+ 
+ #define TEST(a, result, b)				\
+   void a##_##b (int h)					\
+   {							\
+     volatile a tmp;					\
+     while (h-- > 0)					\
+       {							\
+         asm ("" : : : REGLIST);				\
+         tmp = (a) (result) __builtin_altivec_##b (5);	\
+       }							\
+   }							\
+ 							\
+   void a##_##b##_neg (int h)				\
+   {							\
+     volatile a tmp;					\
+     while (h-- > 0)					\
+       {							\
+         asm ("" : : : REGLIST);				\
+         tmp = (a) (result) __builtin_altivec_##b (-5);	\
+       }							\
+   }
+ 
+ TEST(v16qi, v16qi, vspltisb)
+ TEST(v16qi, v8hi, vspltish)
+ TEST(v16qi, v4si, vspltisw)
+ TEST(v8hi, v16qi, vspltisb)
+ TEST(v8hi, v8hi, vspltish)
+ TEST(v8hi, v4si, vspltisw)
+ TEST(v4si, v16qi, vspltisb)
+ TEST(v4si, v8hi, vspltish)
+ TEST(v4si, v4si, vspltisw)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,87 ----
+ /* { dg-do compile { target powerpc*-*-linux* } } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* Valid AltiVec vector types should be accepted with no warnings.  */
+ 
+ __vector char vc;
+ __vector unsigned char vuc;
+ __vector signed char vsc;
+ __vector __bool char vbc;
+ __vector short vh;
+ __vector signed short vsh;
+ __vector unsigned short vuh;
+ __vector short int vhi;
+ __vector signed short int vshi;
+ __vector unsigned short int vuhi;
+ __vector __bool short vbh;
+ __vector __bool short int vbhi;
+ __vector int vi;
+ __vector unsigned int vui;
+ __vector signed int vsi;
+ __vector __bool int vbi;
+ __vector unsigned vuj;
+ __vector signed vsj;
+ __vector __bool vbj;
+ __vector float vf;
+ 
+ /* These should be rejected as invalid AltiVec types.  */
+ 
+ __vector long long vll;			/* { dg-error "AltiVec types" "" } */
+ __vector unsigned long long vull;	/* { dg-error "AltiVec types" "" } */
+ __vector signed long long vsll;		/* { dg-error "AltiVec types" "" } */
+ __vector __bool long long vbll;		/* { dg-error "AltiVec types" "" } */
+ __vector long long int vlli;		/* { dg-error "AltiVec types" "" } */
+ __vector unsigned long long int vulli;	/* { dg-error "AltiVec types" "" } */
+ __vector signed long long int vslli;	/* { dg-error "AltiVec types" "" } */
+ __vector __bool long long int vblli;	/* { dg-error "AltiVec types" "" } */
+ __vector double vd1;			/* { dg-error "AltiVec types" "" } */
+ __vector long double vld;		/* { dg-error "AltiVec types" "" } */
+ __vector _Bool vb;			/* { dg-error "AltiVec types" "" } */
+ __vector _Complex float vcf;		/* { dg-error "AltiVec types" "" } */
+ __vector _Complex double vcd;		/* { dg-error "AltiVec types" "" } */
+ __vector _Complex long double vcld;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex signed char vcsc;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex unsigned char vcuc;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex short vcss;		/* { dg-error "AltiVec types" "" } */
+ __vector _Complex unsigned short vcus;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex int vcsi;		/* { dg-error "AltiVec types" "" } */
+ __vector _Complex unsigned int vcui;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex long vcsl;		/* { dg-error "AltiVec types" "" } */
+ __vector _Complex unsigned long vcul;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex long long vcsll;	/* { dg-error "AltiVec types" "" } */
+ __vector _Complex unsigned long long vcull; /* { dg-error "AltiVec types" "" } */
+ __vector __complex float v_cf;		/* { dg-error "AltiVec types" "" } */
+ __vector __complex double v_cd;		/* { dg-error "AltiVec types" "" } */
+ __vector __complex long double v_cld;	/* { dg-error "AltiVec types" "" } */
+ __vector __complex signed char v_csc;	/* { dg-error "AltiVec types" "" } */
+ __vector __complex unsigned char v_cuc;	/* { dg-error "AltiVec types" "" } */
+ __vector __complex short v_css;		/* { dg-error "AltiVec types" "" } */
+ __vector __complex unsigned short v_cus; /* { dg-error "AltiVec types" "" } */
+ __vector __complex int v_csi;		/* { dg-error "AltiVec types" "" } */
+ __vector __complex unsigned int v_cui;	/* { dg-error "AltiVec types" "" } */
+ __vector __complex long v_csl;		/* { dg-error "AltiVec types" "" } */
+ __vector __complex unsigned long v_cul;	/* { dg-error "AltiVec types" "" } */
+ __vector __complex long long v_csll;	/* { dg-error "AltiVec types" "" } */
+ __vector __complex unsigned long long v_cull; /* { dg-error "AltiVec types" "" } */
+ 
+ /* These should be rejected because the component types are invalid.  We
+    don't care about the actual error messages here.  */
+ 
+ __vector __bool unsigned char vbuc;	/* { dg-error "error" "" } */
+ __vector __bool signed char vbsc;	/* { dg-error "error" "" } */
+ __vector __bool unsigned short vbuh;	/* { dg-error "error" "" } */
+ __vector __bool signed short vbsh;	/* { dg-error "error" "" } */
+ __vector __bool unsigned int vbui;	/* { dg-error "error" "" } */
+ __vector __bool signed int vbsi;	/* { dg-error "error" "" } */
+ __vector __bool unsigned vbuj;		/* { dg-error "error" "" } */
+ __vector __bool signed vbsj;		/* { dg-error "error" "" } */
+ __vector signed float vsf;		/* { dg-error "error" "" } */
+ __vector unsigned float vuf;		/* { dg-error "error" "" } */
+ __vector short float vsf;		/* { dg-error "error" "" } */
+ __vector signed double vsd;		/* { dg-error "error" "" } */
+ __vector unsigned double vud;		/* { dg-error "error" "" } */
+ __vector short double vsd;		/* { dg-error "error" "" } */
+ __vector __bool float vbf;		/* { dg-error "error" "" } */
+ __vector __bool double vbd;		/* { dg-error "error" "" } */
+ __vector __bool short float blf;	/* { dg-error "error" "" } */
+ __vector __bool short double vlbd;	/* { dg-error "error" "" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target powerpc*-*-linux* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* These should get warnings for 32-bit code.  */
+ 
+ __vector long vl;			/* { dg-warning "deprecated" "" } */
+ __vector unsigned long vul;		/* { dg-warning "deprecated" "" } */
+ __vector signed long vsl;		/* { dg-warning "deprecated" "" } */
+ __vector __bool long int vbli;		/* { dg-warning "deprecated" "" } */
+ __vector long int vli;			/* { dg-warning "deprecated" "" } */
+ __vector unsigned long int vuli;	/* { dg-warning "deprecated" "" } */
+ __vector signed long int vsli;		/* { dg-warning "deprecated" "" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-3.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-3.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target powerpc*-*-linux* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* These should be rejected for 64-bit code.  */
+ 
+ __vector long vl;			/* { dg-error "invalid for 64" "" } */
+ __vector unsigned long vul;		/* { dg-error "invalid for 64" "" } */
+ __vector signed long vsl;		/* { dg-error "invalid for 64" "" } */
+ __vector __bool long int vbli;		/* { dg-error "invalid for 64" "" } */
+ __vector long int vli;			/* { dg-error "invalid for 64" "" } */
+ __vector unsigned long int vuli;	/* { dg-error "invalid for 64" "" } */
+ __vector signed long int vsli;		/* { dg-error "invalid for 64" "" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-4.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-4.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-types-4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-types-4.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target powerpc*-*-linux* } } */
+ /* { dg-require-effective-target ilp32 } */
+ /* { dg-options "-maltivec -mno-warn-altivec-long" } */
+ 
+ /* These should not get warnings for 32-bit code when the warning is
+    disabled.  */
+ 
+ __vector long vl;
+ __vector unsigned long vul;
+ __vector signed long vsl;
+ __vector __bool long int vbli;
+ __vector long int vli;
+ __vector unsigned long int vuli;
+ __vector signed long int vsli;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-varargs-1.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,84 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -mabi=altivec -fno-inline" } */
+ 
+ #include <stdarg.h>
+ #include <signal.h>
+ 
+ #include "altivec_check.h"
+ 
+ #define vector __attribute__((vector_size (16)))
+ 
+ const vector unsigned int v1 = {10,11,12,13};
+ const vector unsigned int v2 = {20,21,22,23};
+ const vector unsigned int v3 = {30,31,32,33};
+ const vector unsigned int v4 = {40,41,42,43};
+ 
+ void foo(vector unsigned int a, ...)
+ {
+   va_list args;
+   vector unsigned int v;
+ 
+   va_start (args, a);
+   if (memcmp (&a, &v1, sizeof (v)) != 0)
+     abort ();
+   v = va_arg (args, vector unsigned int);
+   if (memcmp (&v, &v2, sizeof (v)) != 0)
+     abort ();
+   v = va_arg (args, vector unsigned int);
+   if (memcmp (&v, &v3, sizeof (v)) != 0)
+     abort ();
+   v = va_arg (args, vector unsigned int);
+   if (memcmp (&v, &v4, sizeof (v)) != 0)
+     abort ();
+   va_end (args);
+ }
+ 
+ void bar(vector unsigned int a, ...)
+ {
+   va_list args;
+   vector unsigned int v;
+   int b;
+ 
+   va_start (args, a);
+   if (memcmp (&a, &v1, sizeof (v)) != 0)
+     abort ();
+   b = va_arg (args, int);
+   if (b != 2)
+     abort ();
+   v = va_arg (args, vector unsigned int);
+   if (memcmp (&v, &v2, sizeof (v)) != 0)
+     abort ();
+   v = va_arg (args, vector unsigned int);
+   if (memcmp (&v, &v3, sizeof (v)) != 0)
+     abort ();
+   va_end (args);
+ }
+ 
+ 
+ int main1(void)
+ {
+   /* In this call, in the Darwin ABI, the first argument goes into v2
+      the second one into r9-r10 and memory,
+      and the next two in memory.  */
+   foo ((vector unsigned int){10,11,12,13},
+        (vector unsigned int){20,21,22,23},
+        (vector unsigned int){30,31,32,33},
+        (vector unsigned int){40,41,42,43});
+   /* In this call, in the Darwin ABI, the first argument goes into v2
+      the second one into r9, then r10 is reserved and
+      there are two words of padding in memory, and the next two arguments
+      go after the padding.  */
+   bar ((vector unsigned int){10,11,12,13}, 2,
+        (vector unsigned int){20,21,22,23},
+        (vector unsigned int){30,31,32,33});
+   return 0;
+ }
+ 
+ int main (void)
+ {
+   /* Exit on systems without AltiVec.  */
+   altivec_check ();
+ 
+   return main1 ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec-vec-merge.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,606 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -O2" } */
+ 
+ #include <altivec.h>
+ #include "altivec_check.h"
+ 
+ int printf(const char * , ...);
+ extern void abort();
+ 
+ void foo(char *bS, char *bS_edge, int field_MBAFF, int top){
+   char intra[16]       __attribute__ ((aligned(16)));
+   signed short mv_const[8] __attribute__((aligned(16)));
+   
+   vector signed short v_three, v_ref_mask00, v_ref_mask01, v_vec_maskv, v_vec_maskh;
+   vector unsigned char v_permv, v_permh, v_bS, v_bSh, v_bSv, v_cbp_maskv, v_cbp_maskvn, v_cbp_maskh, v_cbp_maskhn, v_intra_maskh, v_intra_maskv, v_intra_maskhn, v_intra_maskvn;
+   vector unsigned char tmp7, tmp8, tmp9, tmp10, v_c1, v_cbp1, v_cbp2, v_pocl, v_poch;
+   vector signed short v0, v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6;
+   vector signed short idx0;
+   vector signed short tmp00, tmp01, tmp02, tmp03;
+   vector unsigned char v_zero   = (vector unsigned char) {'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p'};
+   v_three  = (vector signed short) vec_ld (0, (vector signed short *) mv_const);
+ 
+   vector unsigned char v_coef_mask = vec_ld(0, (vector unsigned char *)mv_const);
+   vector unsigned char v_coef_mask_hi = vec_splat(v_coef_mask, 0);
+   vector unsigned char v_coef_mask_lo = vec_splat(v_coef_mask, 1);
+   v_coef_mask = vec_sld(v_coef_mask_hi, v_coef_mask_lo, 8);
+   vector unsigned char v_bit_mask = vec_sub(vec_splat_u8(7), vec_lvsl(0, (unsigned char *)0));
+   v_bit_mask  = vec_sld(vec_sld(v_bit_mask, v_bit_mask, 8), v_bit_mask, 8);
+   v_bit_mask  = vec_sl(vec_splat_u8(1), v_bit_mask);
+   tmp5        = (vector signed short) vec_and(v_coef_mask, v_bit_mask);
+ 
+   intra[0] = 1;
+   tmp8     = vec_ld (0, (vector unsigned char *) intra);
+   tmp9     = vec_ld (0, (vector unsigned char *) mv_const);
+   tmp10    = vec_ld (0, (vector unsigned char *) mv_const);
+   v_permv  = vec_ld (0, (vector unsigned char *) mv_const);
+   v_permh  = vec_ld (0, (vector unsigned char *) mv_const);
+   tmp6     = vec_ld (0, (vector signed short *) mv_const);
+ 
+   tmp8     = vec_splat((vector unsigned char) tmp8, 0);
+   tmp9     = vec_splat((vector unsigned char) tmp9, 12);
+   tmp10    = vec_splat((vector unsigned char) tmp10, 12);
+   tmp9     = vec_sld ((vector unsigned char) tmp9,(vector unsigned char) tmp8, 12);
+   tmp10    = vec_sld ((vector unsigned char) tmp10, (vector unsigned char) tmp8, 12);
+   v_intra_maskv  = vec_or (tmp9, tmp8);
+   v_intra_maskh  = vec_or (tmp10, tmp8);
+   v_intra_maskv  = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_intra_maskv, (vector unsigned char) v_zero);
+   v_intra_maskh  = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_intra_maskh, (vector unsigned char) v_zero);
+ 
+   tmp9   = vec_lvsl (4 + (top<<2), (unsigned char *) 0x0);
+   v_cbp1 = vec_perm ((vector unsigned char) tmp6, (vector unsigned char) tmp6, tmp9);
+   v_cbp2 = (vector unsigned char) vec_perm ((vector unsigned char) tmp5, (vector unsigned char) tmp5, (vector unsigned char) v_permv);
+   v_cbp1 = (vector unsigned char) vec_sld  ((vector unsigned char) v_cbp1,(vector unsigned char) v_cbp2, 12);
+   v_cbp_maskv = vec_or (v_cbp1, v_cbp2);
+ 
+   tmp9   = vec_lvsl (12 + (top<<2), (unsigned char *) 0x0);
+   v_cbp1 = vec_perm ((vector unsigned char) tmp6, (vector unsigned char) tmp6, tmp9);
+   v_cbp2 = (vector unsigned char) vec_perm ((vector unsigned char) tmp5, (vector unsigned char) tmp5, (vector unsigned char) v_permh);
+   v_cbp1 = (vector unsigned char) vec_sld  ((vector unsigned char) v_cbp1,(vector unsigned char) v_cbp2, 12);
+   v_cbp_maskh = vec_or (v_cbp1, v_cbp2);
+ 
+   v_cbp_maskv = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_cbp_maskv, (vector unsigned char) v_zero);
+   v_cbp_maskh = (vector unsigned char) vec_cmpgt ((vector unsigned char) v_cbp_maskh, (vector unsigned char) v_zero);
+ 
+   intra[0]  =0; 
+   intra[1]  =1;
+   intra[2]  =2;
+   intra[3]  =3;
+   intra[4]  =4;
+   intra[5]  = 5;
+   intra[6]  =6;
+   intra[7]  =7;
+   intra[8]  =8;
+   intra[9]  =9;
+   intra[10] =9;
+   intra[11] =9;
+   intra[12] = 0xff;
+ 
+   idx0   = vec_ld (0, (signed short *) intra);
+   
+   v_c1   = (vector unsigned char)  {'1','2','3','4','5','6','7','8','1','2','3','4','5','6','7','8'};
+ 
+   if (field_MBAFF){
+     v0   = (vector signed short) vec_and ((vector unsigned char) idx0, v_c1);
+     idx0 = (vector signed short) vec_sra ((vector unsigned char) idx0, v_c1);
+ 
+     v1   = vec_sld (v0, v0, 15);
+     v1   = (vector signed short) vec_pack (v1, v0);
+     
+     v2   = vec_sld (v1, v1, 2);
+     v3   = vec_sld (v1, v1, 10);
+     
+     v4   = (vector signed short) vec_cmpeq ((vector signed char) v1, (vector signed char) v2);
+     v5   = (vector signed short) vec_cmpeq ((vector signed char) v1, (vector signed char) v3);
+     v6   = (vector signed short) vec_cmpeq ((vector signed char) v2, (vector signed char) v3);
+   }
+   else  {
+     v4 = v5 = v6 = vec_nor (v_zero, v_zero);
+   }
+ 
+   tmp1   = (vector signed short) vec_sl ((vector unsigned char) idx0, v_c1);
+   v_c1   = vec_mergeh ((vector unsigned char) v_zero, v_c1);
+   tmp1   = (vector signed short) vec_add (tmp1, (vector signed short) v_c1); 
+ 
+   v_pocl = vec_ld (0, (vector unsigned char *) mv_const);
+   v_poch = vec_ld (0, (vector unsigned char *) mv_const);
+   tmp2   = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);      
+ 
+   v_pocl = vec_ld (0,  (vector unsigned char *) mv_const);
+   v_poch = vec_ld (16, (vector unsigned char *) mv_const);
+   tmp1   = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+   tmp1   = vec_sel (tmp1, tmp2, (vector unsigned short) {0xffff,0xffff,0,0,0,0,0,0});
+ 
+   tmp3   = (vector signed short) vec_splat ((vector unsigned char) idx0, 12);
+   v_c1   = (vector unsigned char) vec_nor (v_zero, v_zero);
+   tmp0   = (vector signed short) vec_cmpeq ((vector signed char) idx0, (vector signed char) v_c1);
+   tmp1   = vec_sel (tmp1, (vector signed short) tmp3, (vector unsigned short) tmp0);
+ 
+   tmp2   = vec_sld (tmp1, tmp1, 15);
+   tmp1   = (vector signed short) vec_pack (tmp2, tmp1);
+   
+   tmp2   = vec_sld (tmp1, tmp1, 2);
+   tmp3   = vec_sld (tmp1, tmp1, 10);
+ 
+   tmp0   = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp2);
+   tmp4   = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp3);
+   tmp1   = (vector signed short) vec_cmpeq ((vector signed char) tmp2, (vector signed char) tmp3);
+   tmp0   = vec_and (tmp0, v4);
+   tmp4   = vec_and (tmp4, v5);
+   tmp1   = vec_and (tmp1, v6);
+   tmp2   = vec_sld ((vector signed short) tmp0, (vector signed short) tmp0, 8);
+   tmp3   = vec_sld ((vector signed short) tmp4, (vector signed short) tmp4, 8);
+   tmp5   = vec_sld ((vector signed short) tmp1, (vector signed short) tmp1, 8);
+   tmp0   = vec_and (tmp0, tmp2);
+   tmp4   = vec_and (tmp4, tmp3);
+   tmp1   = vec_and (tmp1, tmp5);
+   v_ref_mask00 = vec_mergeh ((vector signed short) tmp0, (vector signed short) v_c1);
+   v_ref_mask01 = vec_mergeh ((vector signed short) tmp4, (vector signed short) tmp1);
+   v_ref_mask00 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask00, (vector unsigned char) v_ref_mask00);
+   v_ref_mask01 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask01, (vector unsigned char) v_ref_mask01);
+   
+   v0     = vec_ld (0,  (vector signed short *) mv_const);
+   v1     = vec_ld (16, (vector signed short *) mv_const);
+   v4     = vec_ld (64, (vector signed short *) mv_const);
+   v5     = vec_ld (80, (vector signed short *) mv_const);
+   v8     = vec_ld (0,  (vector signed short *) mv_const);
+   v9     = vec_ld (16, (vector signed short *) mv_const);
+ 
+   tmp0   = (vector signed short) vec_perm ((vector unsigned char) v8, 
+ 		(vector unsigned char) v8, (vector unsigned char) {0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15});
+   tmp1   = (vector signed short) vec_mergeh ((vector signed int) v0, (vector signed int) v1);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp3   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp4   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp0   = (vector signed short) vec_perm ((vector unsigned char) v9, (vector unsigned char) v9, 
+ 			(vector unsigned char) {0,1,2,3,8,9,10,11,4,5,6,7,12,13,14,15});
+   tmp1   = (vector signed short) vec_mergeh ((vector signed int) v4, (vector signed int) v5);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp5   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp6   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 12);
+   tmp6   = vec_sld (tmp4, tmp4, 12);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp00  = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+ 
+   tmp0   = (vector signed short) vec_mergeh ((vector signed int) v0, (vector signed int) v1);
+   tmp1   = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp3   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp4   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp0   = (vector signed short) vec_mergeh ((vector signed int) v4, (vector signed int) v5);
+   tmp1   = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp5   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp6   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 12);
+   tmp6   = vec_sld (tmp4, tmp4, 12);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp01  = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+ 
+   v2     = vec_ld (32, (vector signed short *) mv_const);
+   v3     = vec_ld (48, (vector signed short *) mv_const);
+   v6     = vec_ld (96, (vector signed short *) mv_const);
+   v7     = vec_ld (112,(vector signed short *) mv_const);
+ 
+   tmp0   = (vector signed short) vec_mergel ((vector signed int) v0, (vector signed int) v1);
+   tmp1   = (vector signed short) vec_mergeh ((vector signed int) v2, (vector signed int) v3);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp3   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp4   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp0   = (vector signed short) vec_mergel ((vector signed int) v4, (vector signed int) v5);
+   tmp1   = (vector signed short) vec_mergeh ((vector signed int) v6, (vector signed int) v7);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp5   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp6   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 12);
+   tmp6   = vec_sld (tmp4, tmp4, 12);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp02  = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+ 
+   tmp0   = (vector signed short) vec_mergeh ((vector signed int) v2, (vector signed int) v3);
+   tmp1   = (vector signed short) vec_mergel ((vector signed int) v2, (vector signed int) v3);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp3   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp4   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp0   = (vector signed short) vec_mergeh ((vector signed int) v6, (vector signed int) v7);
+   tmp1   = (vector signed short) vec_mergel ((vector signed int) v6, (vector signed int) v7);
+   tmp2   = vec_sld (tmp1, tmp1, 8);
+   tmp5   = vec_sub (vec_max (tmp0, tmp1), vec_min (tmp0, tmp1));
+   tmp6   = vec_sub (vec_max (tmp0, tmp2), vec_min (tmp0, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 12);
+   tmp6   = vec_sld (tmp4, tmp4, 12);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp03  = (vector signed short) vec_pack ((vector unsigned short) tmp3, (vector unsigned short) tmp4);
+ 
+   tmp0   = (vector signed short) vec_pack ((vector unsigned int) tmp00, (vector unsigned int) tmp01);
+   tmp1   = (vector signed short) vec_pack ((vector unsigned int) tmp02, (vector unsigned int) tmp03);
+   tmp2   = (vector signed short) vec_mergeh ((vector signed int) tmp0, (vector signed int) tmp1);
+   tmp3   = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+   tmp4   = (vector signed short) vec_mergeh ((vector signed int) tmp2, (vector signed int) tmp3);
+   tmp5   = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+   tmp4   = vec_and (v_ref_mask00, tmp4);
+   tmp5   = vec_and (v_ref_mask01, tmp5);
+ 
+   tmp0   = vec_nor (v_ref_mask00, v_ref_mask01);
+   tmp1   = vec_and (v_ref_mask00, v_ref_mask01);
+   tmp2   = vec_and (tmp4, tmp5);
+   tmp2   = vec_and (tmp2, tmp1);
+   tmp3   = vec_nor (tmp4, tmp5);
+   tmp3   = vec_nor (tmp3, tmp1);
+   v_vec_maskv = vec_or (tmp0, tmp2);
+   v_vec_maskv = vec_or (v_vec_maskv, tmp3);
+ 
+   intra[0]  = 1; 
+   intra[1]  = 1;
+   intra[2]  = 2;
+   intra[3]  = 3;
+   intra[4]  = 2;
+   intra[5]  = 2;
+   intra[6]  = 2;
+   intra[7]  = 1;
+   intra[8]  = 1;
+   intra[9]  = 5;
+   intra[10] = 5;
+   intra[11] = 5;
+   
+   intra[13] = 0;
+   intra[14] = 0;
+   intra[15] = 0;
+ 
+   idx0   = vec_ld (0, (signed short *) intra);
+   
+   v_c1   = (vector unsigned char)  {'1','2','3','4','5','6','7','8','1','2','3','4','5','6','7','8'};
+ 
+   if (field_MBAFF){
+     v8   = (vector signed short) vec_and ((vector unsigned char) idx0, v_c1);
+     idx0 = (vector signed short) vec_sra ((vector unsigned char) idx0, v_c1);
+ 
+     v9   = vec_sld (v8, v8, 15);
+     v9   = (vector signed short) vec_pack (v9, v8);
+     
+     v10  = vec_sld (v9, v9, 2);
+     v11  = vec_sld (v9, v9, 10);
+     
+     v8   = (vector signed short) vec_cmpeq ((vector signed char) v9, (vector signed char) v10);
+     v9   = (vector signed short) vec_cmpeq ((vector signed char) v9, (vector signed char) v11);
+     v10  = (vector signed short) vec_cmpeq ((vector signed char) v10, (vector signed char) v11);
+   }
+   else  {
+     v8 = v9 = v10 = vec_nor (v_zero, v_zero);
+   }
+ 
+   tmp1   = (vector signed short) vec_sl ((vector unsigned char) idx0, v_c1);
+   
+ if (1){
+ 	int m;
+ 	unsigned char toto2[16] __attribute__((aligned(16)));
+ 	
+ 	printf("vc1\n");
+ 	vec_st(v_c1, 0, (unsigned char *) toto2);
+ 	for (m=0; m<16;m++) {printf("%c ", toto2[m]);}
+ 	
+ 	printf("\nv_zero\n");
+ 	
+ 	vec_st (v_zero, 0, (unsigned char *) toto2);
+ 	for (m=0; m< 16; m++) {printf("%c ", toto2[m]);}
+ 	printf("\n");
+ }
+ 
+   v_c1   = vec_mergeh ((vector unsigned char) v_zero, v_c1);
+   tmp1   = (vector signed short) vec_add (tmp1, (vector signed short) v_c1); 
+ 
+ if (1){
+ 	vector unsigned char vres = 
+         (vector unsigned char){'a','1','b','2','c','3','d','4','e','5','f','6','g','7','h','8'};
+ 	unsigned char toto2[16] __attribute__((aligned(16)));
+ 	int m;
+ 	
+ 	printf("vc1\n");
+ 	vec_st(v_c1, 0, (unsigned char *) toto2);
+ 	for (m=0; m<16;m++) {printf("%c ", toto2[m]);}
+ 	printf("\n");
+ 	if (!vec_all_eq (vres, v_c1))
+ 	  abort();
+ }
+ 
+   v_pocl = vec_ld (32, (vector unsigned char *) mv_const);
+   v_poch = vec_ld (48, (vector unsigned char *) mv_const);
+   tmp2   = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);      
+ 
+   v_pocl = vec_ld (0,  (vector unsigned char *) mv_const);
+   v_poch = vec_ld (16, (vector unsigned char *) mv_const);
+ 
+   tmp1   = (vector signed short) vec_perm (v_pocl, v_poch, (vector unsigned char) tmp1);
+  
+   tmp1   = vec_sel (tmp1, tmp2, (vector unsigned short) {0xffff,0xffff,0,0,0,0,0,0});
+ 
+ 
+   tmp3   = (vector signed short) vec_splat ((vector unsigned char) idx0, 12);
+   v_c1   = (vector unsigned char) vec_nor (v_zero, v_zero);
+   tmp0   = (vector signed short) vec_cmpeq ((vector signed char) idx0, (vector signed char) v_c1);
+   tmp1   = vec_sel (tmp1, (vector signed short) tmp3, (vector unsigned short) tmp0);
+ 
+   tmp2   = vec_sld (tmp1, tmp1, 15);
+   tmp1   = (vector signed short) vec_pack (tmp2, tmp1);
+   
+ 
+   tmp2   = vec_sld (tmp1, tmp1, 2);
+   tmp3   = vec_sld (tmp1, tmp1, 10);
+ 
+   tmp0   = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp2);
+   tmp4   = (vector signed short) vec_cmpeq ((vector signed char) tmp1, (vector signed char) tmp3);
+   tmp1   = (vector signed short) vec_cmpeq ((vector signed char) tmp2, (vector signed char) tmp3);
+   tmp0   = vec_and (tmp0, v8);
+   tmp4   = vec_and (tmp4, v9);
+   tmp1   = vec_and (tmp1, v10);
+   tmp2   = vec_sld ((vector signed short) tmp0, (vector signed short) tmp0, 8);
+   tmp3   = vec_sld ((vector signed short) tmp4, (vector signed short) tmp4, 8);
+   tmp5   = vec_sld ((vector signed short) tmp1, (vector signed short) tmp1, 8);
+   tmp0   = vec_and (tmp0, tmp2);
+   tmp4   = vec_and (tmp4, tmp3);
+   tmp1   = vec_and (tmp1, tmp5);
+   v_ref_mask00 = vec_mergeh ((vector signed short) tmp0, (vector signed short) v_c1);
+   v_ref_mask01 = vec_mergeh ((vector signed short) tmp4, (vector signed short) tmp1);
+   v_ref_mask00 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask00, (vector unsigned char) v_ref_mask00);
+   v_ref_mask01 = (vector signed short) vec_mergeh ((vector unsigned char) v_ref_mask01, (vector unsigned char) v_ref_mask01);
+   
+ 
+   v_permv= vec_ld (0, (vector unsigned char *) mv_const);
+   v8     = vec_ld (0,  (vector signed short *) mv_const);
+   v9     = vec_ld (16, (vector signed short *) mv_const);
+   tmp2   = vec_perm (v0, v0, v_permv);
+   tmp3   = vec_sub (vec_max (v8, v0), vec_min (v8, v0));
+   tmp4   = vec_sub (vec_max (v8, tmp2), vec_min (v8, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp2   = vec_perm (v2, v2, v_permv);
+   tmp5   = vec_sub (vec_max (v9, v2), vec_min (v9, v2));
+   tmp6   = vec_sub (vec_max (v9, tmp2), vec_min (v9, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp00  = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+ 
+   tmp2   = vec_perm (v1, v1, v_permv);
+   tmp3   = vec_sub (vec_max (v0, v1), vec_min (v0, v1));
+   tmp4   = vec_sub (vec_max (v0, tmp2), vec_min (v0, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp2   = vec_perm (v3, v3, v_permv);
+   tmp5   = vec_sub (vec_max (v2, v3), vec_min (v2, v3));
+   tmp6   = vec_sub (vec_max (v2, tmp2), vec_min (v2, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp01  = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+ 
+   tmp2   = vec_perm (v4, v4, v_permv);
+   tmp3   = vec_sub (vec_max (v1, v4), vec_min (v1, v4));
+   tmp4   = vec_sub (vec_max (v1, tmp2), vec_min (v1, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp2   = vec_perm (v6, v6, v_permv);
+   tmp5   = vec_sub (vec_max (v3, v6), vec_min (v3, v6));
+   tmp6   = vec_sub (vec_max (v3, tmp2), vec_min (v3, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp02  = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+ 
+ 
+   tmp2   = vec_perm (v5, v5, v_permv);
+   tmp3   = vec_sub (vec_max (v4, v5), vec_min (v4, v5));
+   tmp4   = vec_sub (vec_max (v4, tmp2), vec_min (v4, tmp2));
+   tmp3   = (vector signed short) vec_cmpgt (tmp3, v_three); 
+   tmp4   = (vector signed short) vec_cmpgt (tmp4, v_three);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   
+   tmp2   = vec_perm (v7, v7, v_permv);
+   tmp5   = vec_sub (vec_max (v6, v7), vec_min (v6, v7));
+   tmp6   = vec_sub (vec_max (v6, tmp2), vec_min (v6, tmp2));
+   tmp5   = (vector signed short) vec_cmpgt (tmp5, v_three); 
+   tmp6   = (vector signed short) vec_cmpgt (tmp6, v_three);
+   tmp0   = vec_sld (tmp5, tmp5, 14);
+   tmp1   = vec_sld (tmp6, tmp6, 14);
+   tmp5   = vec_or (tmp0, tmp5);
+   tmp6   = vec_or (tmp1, tmp6);
+   
+   tmp3   = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp5);
+   tmp4   = (vector signed short) vec_pack ((vector unsigned int) tmp4, (vector unsigned int) tmp6);
+   tmp5   = vec_sld (tmp3, tmp3, 14);
+   tmp6   = vec_sld (tmp4, tmp4, 14);
+   tmp3   = vec_or (tmp3, tmp5);
+   tmp4   = vec_or (tmp4, tmp6);
+   tmp03  = (vector signed short) vec_pack ((vector unsigned int) tmp3, (vector unsigned int) tmp4);
+ 
+   tmp0   = (vector signed short) vec_pack ((vector unsigned short) tmp00, (vector unsigned short) tmp01);
+   tmp1   = (vector signed short) vec_pack ((vector unsigned short) tmp02, (vector unsigned short) tmp03);
+   tmp2   = (vector signed short) vec_mergeh ((vector signed int) tmp0, (vector signed int) tmp1);
+   tmp3   = (vector signed short) vec_mergel ((vector signed int) tmp0, (vector signed int) tmp1);
+   tmp4   = (vector signed short) vec_mergeh ((vector signed int) tmp2, (vector signed int) tmp3);
+   tmp5   = (vector signed short) vec_mergel ((vector signed int) tmp2, (vector signed int) tmp3);
+   tmp4   = vec_and (v_ref_mask00, tmp4);
+   tmp5   = vec_and (v_ref_mask01, tmp5);
+ 
+   tmp0   = vec_nor (v_ref_mask00, v_ref_mask01);
+   tmp1   = vec_and (v_ref_mask00, v_ref_mask01);
+   tmp2   = vec_and (tmp4, tmp5);
+   tmp2   = vec_and (tmp2, tmp1);
+   tmp3   = vec_nor (tmp4, tmp5);
+   tmp3   = vec_nor (tmp3, tmp1);
+   v_vec_maskh = vec_or (tmp0, tmp2);
+   v_vec_maskh = vec_or (v_vec_maskh, tmp3);
+ 
+ 
+   v_intra_maskvn = vec_nor (v_intra_maskv, v_intra_maskv);
+   v_intra_maskhn = vec_nor (v_intra_maskh, v_intra_maskh);
+   v_cbp_maskvn = (vector unsigned char) vec_cmpeq ((vector unsigned char) v_cbp_maskv, (vector unsigned char) v_zero);
+   v_cbp_maskhn = (vector unsigned char) vec_cmpeq ((vector unsigned char) v_cbp_maskh, (vector unsigned char) v_zero);
+ 
+   v_cbp_maskv  = vec_and (v_cbp_maskv, v_intra_maskvn);
+   v_cbp_maskh  = vec_and (v_cbp_maskh, v_intra_maskhn);
+   v_vec_maskv  = vec_and (v_vec_maskv, (vector signed short) v_intra_maskvn);
+   v_vec_maskv  = vec_and (v_vec_maskv, (vector signed short) v_cbp_maskvn);
+   v_vec_maskh  = vec_and (v_vec_maskh, (vector signed short) v_intra_maskhn);
+   v_vec_maskh  = vec_and (v_vec_maskh, (vector signed short) v_cbp_maskhn);
+ 
+   tmp9        = vec_splat_u8(2);
+   tmp8        = vec_splat_u8(1);
+   v_bS        = vec_ld (0, (vector unsigned char *) mv_const);
+   
+   v_bSv       = vec_and ((vector unsigned char) v_bS, (vector unsigned char)v_intra_maskv);
+   tmp7        = vec_and ((vector unsigned char)tmp9, (vector unsigned char)v_cbp_maskv);
+   tmp6        = (vector signed short) vec_and ((vector unsigned char)tmp8, (vector unsigned char)v_vec_maskv);
+   tmp7        = vec_or  ((vector unsigned char)tmp7, (vector unsigned char)tmp6);
+   v_bSv       = vec_or  ((vector unsigned char)tmp7, (vector unsigned char)v_bSv);
+ 
+   v_bS        = vec_ld (0, (vector unsigned char *) mv_const);
+   v_bSh       = vec_and ((vector unsigned char) v_bS, (vector unsigned char)v_intra_maskh);
+   tmp7        = vec_and ((vector unsigned char)tmp9, (vector unsigned char)v_cbp_maskh);
+   tmp6        = (vector signed short) vec_and ((vector unsigned char)tmp8, (vector unsigned char)v_vec_maskh);
+   tmp7        = vec_or  ((vector unsigned char)tmp7, (vector unsigned char)tmp6);
+   v_bSh       = vec_or  ((vector unsigned char)tmp7, (vector unsigned char)v_bSh);
+ 
+   v_permh     = (vector unsigned char) vec_ld (0 , (vector unsigned char *) mv_const);
+   v_permv     = (vector unsigned char) vec_ld (0, (vector unsigned char *) mv_const);
+   v_bSv       = vec_and (v_bSv, v_permv);
+   v_bSh       = vec_and (v_bSh, v_permh);
+ 
+   vec_st (v_bSv, 0, (unsigned char *) mv_const);
+   vec_st (v_bSh, 0, (unsigned char *) mv_const);
+ 
+   v_bSv = vec_mergeh (v_bSv, v_bSv);
+   v_bSv = vec_mergeh (v_bSv, v_bSv);
+   v_bSh = vec_mergeh (v_bSh, v_bSh);
+   v_bSh = vec_mergeh (v_bSh, v_bSh);
+     
+   vec_st (v_bSv, 0, (vector unsigned char *) mv_const);
+   vec_st (v_bSh, 0,(vector unsigned char *) mv_const);
+ }
+ 
+ 
+ int main(int argc, char **argv)
+ {
+     char toto[32] __attribute__((aligned(16)));
+ 
+     altivec_check ();	/* Exit if hardware doesn't support AltiVec.  */
+     foo(toto, toto, 0, 0);
+     return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec_check.h gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec_check.h
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/altivec_check.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/altivec_check.h	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,24 ----
+ /* A runtime check for AltiVec capability.  */
+ /* Contributed by Ziemowit Laski  <zlaski@apple.com>  */
+ 
+ #include <signal.h>
+ extern void exit (int);
+ extern void abort (void);
+ 
+ void 
+ sig_ill_handler (int sig)
+ {
+     exit (0);
+ }
+ 
+ void altivec_check(void) {
+ 
+   /* Exit on systems without AltiVec.  */
+   signal (SIGILL, sig_ill_handler);
+ #ifdef __MACH__
+   asm volatile ("vor v0,v0,v0");
+ #else
+   asm volatile ("vor 0,0,0");
+ #endif
+   signal (SIGILL, SIG_DFL);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/compress-float-ppc-pic.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O2 -fpic" } */
+ double foo (double x) {
+   return x + 1.75;
+ }
+ /* { dg-final { scan-assembler "lfs" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/compress-float-ppc.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O2" } */
+ double foo (double x) {
+   return x + 1.75;
+ }
+ /* { dg-final { scan-assembler "lfs" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,12 ----
+ /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-options "-O" } */
+ /* { dg-final { scan-assembler "li r3,12345\n\t(bl|jbsr) " } } */
+ 
+ /* Check that zero-size structures don't affect parameter passing.  */
+ 
+ struct empty { };
+ extern void foo (struct empty e, int a);
+ void bar (void) {
+   struct empty e;
+   foo (e, 12345);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-abi-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-abi-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-abi-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do run { target powerpc*-*-darwin* } } */
+ 
+ /* You might think you'd need -maltivec for this, but actually you
+    don't; GCC will happily do everything in GPRs, and it still
+    tests that the ABI is correct.  */
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ #define vector __attribute__((vector_size(16)))
+ 
+ int main(void)
+ {
+   vector unsigned int v = { 100, 200, 300, 400 };
+   vector unsigned int w = { 4, 5, 6, 7 };
+   char x[64];
+   sprintf (x, "%lvu,%d,%lvu", v, 1, w);
+   if (strcmp (x, "100 200 300 400,1,4 5 6 7") != 0)
+     {
+       puts (x);
+       abort ();
+     }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Check that sizeof(bool) is 4 if we don't use special options. */
+ /* Matt Austern  <austern@apple.com> */
+ /* { dg-do run { target powerpc*-*-darwin* } } */
+ 
+ int dummy1[sizeof(_Bool) - 3];
+ int dummy2[5 - sizeof(_Bool)];
+ 
+ int main()
+ {
+   return sizeof(_Bool) == 4 ? 0 : 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-bool-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Check that sizeof(bool) is 1 if we use the -mone-byte-bool option. */
+ /* Matt Austern  <austern@apple.com> */
+ /* { dg-do run { target powerpc*-*-darwin* } } */
+ /* { dg-options "-mone-byte-bool" } */
+ 
+ int dummy1[sizeof(_Bool)];
+ int dummy2[2 - sizeof(_Bool)];
+ 
+ int main()
+ {
+   return sizeof(_Bool) == 1 ? 0 : 1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-longdouble.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,119 ----
+ /* { dg-do run { target powerpc*-*-darwin* } } */
+ /* { dg-options "" } */
+ /* No options so 'long long' can be used.  */
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ typedef unsigned long long uint64_t;
+ typedef uint64_t ldbits[2];
+ 
+ union ldu 
+ {
+   ldbits lb;
+   long double ld;
+ };
+ 
+ static const struct {
+   ldbits a;
+   ldbits b;
+   ldbits result;
+ } single_tests[] = {
+   /* Test of values that add to near +Inf.  */
+   { { 0x7FEFFFFFFFFFFFFFLL, 0xFC88000000000000LL },
+     { 0x7C94000000000000LL, 0x0000000000000000LL },
+     { 0x7FEFFFFFFFFFFFFFLL, 0x7C80000000000000LL } },
+   { { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL },
+     { 0x792FFFFFFFFFFFFFLL, 0x0000000000000000LL },
+     { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL } },
+   { { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL },
+     { 0x7930000000000000LL, 0xF5DFFFFFFFFFFFFFLL },
+     /* correct result is: { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL } */
+     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
+   /* Test of values that add to +Inf.  */
+   { { 0x7FEFFFFFFFFFFFFFLL, 0x7C8FFFFFFFFFFFFFLL },
+     { 0x7930000000000000LL, 0x0000000000000000LL },
+     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
+   /* Tests of Inf addition.  */
+   { { 0x7FF0000000000000LL, 0x0000000000000000LL },
+     { 0x0000000000000000LL, 0x0000000000000000LL },
+     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
+   { { 0x7FF0000000000000LL, 0x0000000000000000LL },
+     { 0x7FF0000000000000LL, 0x0000000000000000LL },
+     { 0x7FF0000000000000LL, 0x0000000000000000LL } },
+   /* Test of Inf addition producing NaN.  */
+   { { 0x7FF0000000000000LL, 0x0000000000000000LL },
+     { 0xFFF0000000000000LL, 0x0000000000000000LL },
+     { 0x7FF8000000000000LL, 0x0000000000000000LL } },
+   /* Tests of NaN addition.  */
+   { { 0x7FF8000000000000LL, 0x0000000000000000LL },
+     { 0x0000000000000000LL, 0x0000000000000000LL },
+     { 0x7FF8000000000000LL, 0x7FF8000000000000LL } },
+   { { 0x7FF8000000000000LL, 0x0000000000000000LL },
+     { 0x7FF0000000000000LL, 0x0000000000000000LL },
+     { 0x7FF8000000000000LL, 0x7FF8000000000000LL } },
+   /* Addition of positive integers, with interesting rounding properties.  */
+   { { 0x4690000000000000LL, 0x4330000000000000LL },
+     { 0x4650000000000009LL, 0xC2FFFFFFFFFFFFF2LL },
+     /* correct result is: { 0x4691000000000001LL, 0xC32C000000000000LL } */
+     { 0x4691000000000001LL, 0xc32bfffffffffffeLL } },
+   { { 0x4690000000000000LL, 0x4330000000000000LL },
+     { 0x4650000000000008LL, 0x42F0000000000010LL },
+     { 0x4691000000000001LL, 0xC32E000000000000LL } },
+   { { 0x469FFFFFFFFFFFFFLL, 0x433FFFFFFFFFFFFFLL },
+     { 0x4340000000000000LL, 0x3FF0000000000000LL },
+     { 0x46A0000000000000LL, 0x0000000000000000LL } },
+   { { 0x469FFFFFFFFFFFFFLL, 0x433FFFFFFFFFFFFFLL },
+     { 0x4340000000000000LL, 0x0000000000000000LL },
+     { 0x46A0000000000000LL, 0xBFF0000000000000LL } },
+   /* Subtraction of integers, with cancellation.  */
+   { { 0x4690000000000000LL, 0x4330000000000000LL },
+     { 0xC690000000000000LL, 0xC330000000000000LL },
+     { 0x0000000000000000LL, 0x0000000000000000LL } },
+   { { 0x4690000000000000LL, 0x4330000000000000LL },
+     { 0xC330000000000000LL, 0x0000000000000000LL },
+     { 0x4690000000000000LL, 0x0000000000000000LL } },
+   { { 0x4690000000000000LL, 0x4330000000000000LL },
+     { 0xC330000000000000LL, 0x3FA0000000000000LL },
+     { 0x4690000000000000LL, 0x3FA0000000000000LL } },
+   { { 0x4690000000000000LL, 0x4330000000000000LL },
+     { 0xC690000000000000LL, 0x3FA0000000000000LL },
+     /* correct result is: { 0x4330000000000000LL, 0x3FA0000000000000LL } */
+     { 0x4330000000000000LL, 0x0000000000000000LL } }
+ };
+     
+ static int fail = 0;
+ 
+ static void
+ run_single_tests (void)
+ {
+   size_t i;
+   for (i = 0; i < sizeof (single_tests) / sizeof (single_tests[0]); i++)
+     {
+       union ldu a, b, result, expected;
+       memcpy (a.lb, single_tests[i].a, sizeof (ldbits));
+       memcpy (b.lb, single_tests[i].b, sizeof (ldbits));
+       memcpy (expected.lb, single_tests[i].result, sizeof (ldbits));
+       result.ld = a.ld + b.ld;
+       if (memcmp (result.lb, expected.lb,
+ 		  result.ld == result.ld ? sizeof (ldbits) : sizeof (double))
+ 	  != 0)
+ 	{
+ 	  printf ("FAIL: %016llx %016llx + %016llx %016llx\n",
+ 		  a.lb[0], a.lb[1], b.lb[0], b.lb[1]);
+ 	  printf (" = %016llx %016llx not %016llx %016llx\n",
+ 		  result.lb[0], result.lb[1], expected.lb[0], expected.lb[1]);
+ 	  fail = 1;
+ 	}
+     }
+ }
+ 
+ int main(void)
+ {
+   run_single_tests();
+   if (fail)
+     abort ();
+   else
+     exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-longlong.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,40 ----
+ /* { dg-do run { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-mcpu=G5" } */
+ 
+ #include <signal.h>
+ #include <stdlib.h>
+ 
+ void
+ sig_ill_handler (int sig)
+ {
+     exit(0);
+ }
+ 
+ 
+ int  msw(long long in)
+ {
+   union {
+     long long ll;
+     int  i[2];
+   } ud;
+   ud.ll = in;
+   return ud.i[0];
+ }
+ 
+ int main()
+ {
+ 
+   /* Exit on systems without 64bit instructions.  */
+   signal (SIGILL, sig_ill_handler);
+ #ifdef __MACH__
+   asm volatile ("extsw r0,r0");
+ #else
+   asm volatile ("extsw 0,0");
+ #endif
+   signal (SIGILL, SIG_DFL);
+ 
+   if (msw(1) != 0)
+     abort();
+   exit(0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/darwin-misaligned.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,32 ----
+ /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-options "-O2 -mpowerpc64" } */
+ 
+ typedef struct Nlm_rect {
+   short sh1;
+   short sh2;
+   short sh3;
+   short sh4;
+ } S8;
+ 
+ typedef struct udv_mouse_select {
+     short Action_type;
+     S8 rcClip;
+     int pgp;
+   } UDVselect;
+ 
+ UDVselect ms;
+ int UDV(S8 rcClip);
+ 
+ int main()
+ {
+     ms.rcClip.sh1 = 1;
+     ms.rcClip.sh4 = 4;
+     return UDV(ms.rcClip);
+ }
+ 
+ int UDV(S8 rcClip){
+ 
+ 	return !(rcClip.sh1 == 1 && rcClip.sh4 == 4);
+ }
+ 	
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/doloop-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/doloop-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/doloop-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/doloop-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,17 ----
+ /* Make sure both loops are recognized as doloops.
+    If so, "bdnz" will be generated on ppc; if not,
+    you will get "ble" or "blt" or "bge".  */
+ 
+ /* { dg-do compile { target powerpc-*-* } } */
+ /* { dg-options "-O2" } */
+ void foo (int count, char* pca, char* pcb) {
+     int i;
+     if (count > 10)
+         for (i = 0; i < count; ++i)
+             pcb += i;
+     else
+         for (i = 0; i < count; ++i)
+             pca += i;
+     *pca = *pcb;
+ }
+ /* { dg-final { scan-assembler "bdnz" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/macho-lo-sum.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/macho-lo-sum.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/macho-lo-sum.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/macho-lo-sum.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,29 ----
+ /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-options "-O2 -mpowerpc64 -mdynamic-no-pic" } */
+ 
+ long long knight_attacks[64];
+ long long InitializeAttackBoards(void);
+ 
+ int main()
+ {
+ 	return InitializeAttackBoards();
+ }
+ 
+ long long InitializeAttackBoards(void)
+ {
+ 
+   int i,j;
+ 
+   for(i=0;i<64;i++) { }
+ 
+   for(i=0;i<64;i++) {
+     knight_attacks[i]=0;
+     for(j=0;j<8;j++) {
+       knight_attacks[i]= 0;
+     }
+   }
+ 
+   return knight_attacks[0];
+ 
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/powerpc.exp gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/powerpc.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/powerpc.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/powerpc.exp	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,41 ----
+ #   Copyright (C) 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # GCC testsuite that uses the 'dg.exp' driver.
+ 
+ # Exit immediately if this isn't a PowerPC target.
+ if { ![istarget powerpc*-*-*] && ![istarget rs6000-*-*] } then {
+   return
+ }
+ 
+ # Load support procs.
+ load_lib gcc-dg.exp
+ 
+ # If a testcase doesn't have special options, use these.
+ global DEFAULT_CFLAGS
+ if ![info exists DEFAULT_CFLAGS] then {
+     set DEFAULT_CFLAGS " -ansi -pedantic-errors"
+ }
+ 
+ # Initialize 'dg'.
+ dg-init
+ 
+ # Main loop.
+ dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[cS\]]] \
+ 	"" $DEFAULT_CFLAGS
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-and-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-and-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-and-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-and-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile { target powerpc64-*-* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O2" } */
+ 
+ /* { dg-final { scan-assembler "rlwinm \[0-9\]+,\[0-9\]+,0,0,30"  } } */
+ /* { dg-final { scan-assembler "rlwinm \[0-9\]+,\[0-9\]+,0,29,30"  } } */
+ /* { dg-final { scan-assembler-not "rldicr" } } */
+ 
+ /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
+ 
+ /* PR 16457 - use rlwinm insn.  */
+ 
+ char *foo1 (char *p, unsigned int x)
+ {
+   return p - (x & ~1);
+ }
+ 
+ char *foo2 (char *p, unsigned int x)
+ {
+   return p - (x & 6);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-bitfield1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,68 ----
+ /* { dg-do compile { target powerpc64-*-* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O2" } */
+ 
+ /* { dg-final { scan-assembler-not "rlwinm \[0-9\]+,\[0-9\]+,\[0-9\]+,1,31"  } } */
+ /* { dg-final { scan-assembler-not "rlwinm \[0-9\]+,\[0-9\]+,\[0-9\]+,0xffffffff" } } */
+ 
+ /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
+ 
+ /* PR 17104 many sign extends added.  */
+ 
+ struct {
+  int f1 : 1;
+  int f2 : 1;
+  int f3 : 1;
+  int f4 : 1;
+  int f5 : 1;
+  int f6 : 1;
+  int f7 : 1;
+  int f8 : 1;
+  int f9 : 1;
+  int f10 : 1;
+  int f11 : 1;
+  int f12 : 1;
+  int f13 : 1;
+  int f14 : 1;
+  int f15 : 1;
+  int f16 : 1;
+  int f17 : 2;
+  int f18 : 2;
+  int f19 : 2;
+  int f20 : 2;
+  int f21 : 2;
+  int f22 : 2;
+  int f23 : 2;
+  int f24 : 2;
+  } s;
+ 
+ void foo ()
+ {
+ 
+     s.f1 = 0;
+     s.f2 = 0;
+     s.f3 = 0;
+     s.f4 = 0;
+     s.f5 = 0;
+     s.f6 = 0;
+     s.f7 = 0;
+     s.f8 = 0;
+     s.f9 = 0;
+     s.f10 = 0;
+     s.f11 = 0;
+     s.f12 = 0;
+     s.f13 = 0;
+     s.f14 = 0;
+     s.f15 = 0;
+     s.f16 = 0;
+     s.f17 = 0;
+     s.f18 = 0;
+     s.f19 = 0;
+     s.f20 = 0;
+     s.f21 = 0;
+     s.f22 = 0;
+     s.f23 = 0;
+     s.f24 = 0;
+ 
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-compare-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do compile { target powerpc64-*-* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O2" } */
+ 
+ /* { dg-final { scan-assembler-not "cmpw" } } */
+ 
+ /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
+ 
+ /* PR 16458: Extraneous compare.  */
+ 
+ int foo (unsigned a, unsigned b)
+ {
+   if (a == b) return 1;
+   if (a > b)  return 2;
+   if (a < b)  return 3;
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-eabi.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-eabi.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-eabi.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-eabi.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,4 ----
+ /* PR target/16952 */
+ /* { dg-do compile { target { powerpc*-*-linux* && ilp32 } } } */
+ /* { dg-options "-meabi -mrelocatable" } */
+ char *s = "boo";
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,43 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-ffast-math -O2" } */
+ /* { dg-final { scan-assembler-not "f(add|sub|mul|neg)" } } */
+ 
+ void foo(double *a, double *b, double *c, double *d)
+ {
+   a[0] =  b[0] + c[0] * d[0];		// fmadd
+   a[1] =  b[1] - c[1] * d[1];		// fnmsub with fast-math
+   a[2] = -b[2] + c[2] * d[2];   	// fmsub
+   a[3] = -b[3] - c[3] * d[3];		// fnmadd with fast-math
+   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
+   a[5] = -( b[5] - c[5] * d[5]);	// fmsub with fast-math
+   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
+   a[7] = -(-b[7] - c[7] * d[7]);	// fmadd with fast-math
+   a[10] =  b[10] - c[10] * -d[10];	// fmadd
+   a[11] =  b[11] + c[11] * -d[11];	// fnmsub with fast-math
+   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
+   a[13] = -b[13] + c[13] * -d[13];	// fnmadd with fast-math
+   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
+   a[15] = -( b[15] + c[15] * -d[15]);	// fmsub with fast-math
+   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
+   a[17] = -(-b[17] + c[17] * -d[17]);	// fmadd with fast-math
+ }
+ 
+ void foos(float *a, float *b, float *c, float *d)
+ {
+   a[0] =  b[0] + c[0] * d[0];		// fmadd
+   a[1] =  b[1] - c[1] * d[1];		// fnmsub with fast-math
+   a[2] = -b[2] + c[2] * d[2];   	// fmsub
+   a[3] = -b[3] - c[3] * d[3];		// fnmadd with fast-math
+   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
+   a[5] = -( b[5] - c[5] * d[5]);	// fmsub with fast-math
+   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
+   a[7] = -(-b[7] - c[7] * d[7]);	// fmadd with fast-math
+   a[10] =  b[10] - c[10] * -d[10];	// fmadd
+   a[11] =  b[11] + c[11] * -d[11];	// fnmsub with fast-math
+   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
+   a[13] = -b[13] + c[13] * -d[13];	// fnmadd with fast-math
+   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
+   a[15] = -( b[15] + c[15] * -d[15]);	// fmsub with fast-math
+   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
+   a[17] = -(-b[17] + c[17] * -d[17]);	// fmadd with fast-math
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler-not "f(add|sub|mul|neg)" } } */
+ 
+ void foo(double *a, double *b, double *c, double *d)
+ {
+   a[0] =  b[0] + c[0] * d[0];		// fmadd
+   a[2] = -b[2] + c[2] * d[2];   	// fmsub
+   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
+   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
+   a[10] =  b[10] - c[10] * -d[10];	// fmadd
+   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
+   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
+   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
+ }
+ 
+ void foos(float *a, float *b, float *c, float *d)
+ {
+   a[0] =  b[0] + c[0] * d[0];		// fmadd
+   a[2] = -b[2] + c[2] * d[2];   	// fmsub
+   a[4] = -( b[4] + c[4] * d[4]);	// fnmadd
+   a[6] = -(-b[6] + c[6] * d[6]);	// fnmsub
+   a[10] =  b[10] - c[10] * -d[10];	// fmadd
+   a[12] = -b[12] - c[12] * -d[12];   	// fmsub
+   a[14] = -( b[14] - c[14] * -d[14]);	// fnmadd
+   a[16] = -(-b[16] - c[16] * -d[16]);	// fnmsub
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fmadd-3.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O2" } */
+ /* { dg-final { scan-assembler-not "f(add|sub|mul)" } } */
+ 
+ void foo(double *a, double *b, double *c, double *d)
+ {
+ #if 0
+   a[1] =  b[1] - c[1] * d[1];		// fneg, fmadd without fast-math
+ #endif
+   a[3] = -b[3] - c[3] * d[3];		// fneg, fmsub without fast-math
+ #if 0
+   a[5] = -( b[5] - c[5] * d[5]);	// fneg, fnmadd without fast-math
+ #endif
+   a[7] = -(-b[7] - c[7] * d[7]);	// fneg, fnmsub without fast-math
+   a[11] =  b[11] + c[11] * -d[11];	// fneg, fmadd without fast-math
+   a[13] = -b[13] + c[13] * -d[13];	// fneg, fmsub without fast-math
+   a[15] = -( b[15] + c[15] * -d[15]);	// fneg, fnmadd without fast-math
+   a[17] = -(-b[17] + c[17] * -d[17]);	// fneg, fnmsub without fast-math
+ }
+ 
+ void foos(float *a, float *b, float *c, float *d)
+ {
+ #if 0
+   a[1] =  b[1] - c[1] * d[1];		// fneg, fmadd without fast-math
+ #endif
+   a[3] = -b[3] - c[3] * d[3];		// fneg, fmsub without fast-math
+ #if 0
+   a[5] = -( b[5] - c[5] * d[5]);	// fneg, fnmadd without fast-math
+ #endif
+   a[7] = -(-b[7] - c[7] * d[7]);	// fneg, fnmsub without fast-math
+   a[11] =  b[11] + c[11] * -d[11];	// fneg, fmadd without fast-math
+   a[13] = -b[13] + c[13] * -d[13];	// fneg, fmsub without fast-math
+   a[15] = -( b[15] + c[15] * -d[15]);	// fneg, fnmadd without fast-math
+   a[17] = -(-b[17] + c[17] * -d[17]);	// fneg, fnmsub without fast-math
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fsel-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fsel-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fsel-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fsel-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O -mpowerpc-gfxopt -fno-trapping-math" } */
+ /* { dg-final { scan-assembler "fsel" } } */
+ 
+ /* If the user doesn't care about signals, fsel can be used in many cases.  */
+ 
+ double foo(double a, double b, double c, double d)
+ {
+   return a < b ? c : d;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fsel-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fsel-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fsel-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fsel-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,80 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O -mpowerpc-gfxopt -g0 -ffinite-math-only" } */
+ /* { dg-final { scan-assembler-not "^L" } } */
+ 
+ /* Every single one of these should be compiled into straight-line
+    code using fsel (or, in a few cases, hardwired to 'true' or
+    'false'), no branches anywhere.  */
+ 
+ double
+ test_isunordered(double x, double y, double a, double b)
+ {
+   return __builtin_isunordered(x, y) ? a : b;
+ }
+ 
+ double
+ test_not_isunordered(double x, double y, double a, double b)
+ {
+   return !__builtin_isunordered(x, y) ? a : b;
+ }
+ 
+ double
+ test_isless(double x, double y, double a, double b)
+ {
+   return __builtin_isless(x, y) ? a : b;
+ }
+ 
+ double
+ test_not_isless(double x, double y, double a, double b)
+ {
+   return !__builtin_isless(x, y) ? a : b;
+ }
+ 
+ double
+ test_islessequal(double x, double y, double a, double b)
+ {
+   return __builtin_islessequal(x, y) ? a : b;
+ }
+ 
+ double
+ test_not_islessequal(double x, double y, double a, double b)
+ {
+   return !__builtin_islessequal(x, y) ? a : b;
+ }
+ 
+ double
+ test_isgreater(double x, double y, double a, double b)
+ {
+   return __builtin_isgreater(x, y) ? a : b;
+ }
+ 
+ double
+ test_not_isgreater(double x, double y, double a, double b)
+ {
+   return !__builtin_isgreater(x, y) ? a : b;
+ }
+ 
+ double
+ test_isgreaterequal(double x, double y, double a, double b)
+ {
+   return __builtin_isgreaterequal(x, y) ? a : b;
+ }
+ 
+ double
+ test_not_isgreaterequal(double x, double y, double a, double b)
+ {
+   return !__builtin_isgreaterequal(x, y) ? a : b;
+ }
+ 
+ double
+ test_islessgreater(double x, double y, double a, double b)
+ {
+   return __builtin_islessgreater(x, y) ? a : b;
+ }
+ 
+ double
+ test_not_islessgreater(double x, double y, double a, double b)
+ {
+   return !__builtin_islessgreater(x, y) ? a : b;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fsel-3.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fsel-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-fsel-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-fsel-3.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-O -mpowerpc-gfxopt" } */
+ /* { dg-final { scan-assembler-not "fsub" } } */
+ 
+ /* Check that an fsub isn't generated when no arithmetic was requested;
+    such an fsub might incorrectly set floating-point exception flags.  */
+ 
+ double foo(double a, double b, double c, double d)
+ {
+   return a < b ? c : d;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-ldstruct.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-ldstruct.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-ldstruct.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-ldstruct.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do run { target powerpc*-*-eabi* powerpc*-*-elf* powerpc*-*-linux* } } */
+ /* { dg-options "-O -mlong-double-128" } */
+ 
+ #include <stdlib.h>
+ 
+ /* SVR4 and EABI both specify that 'long double' is aligned to a 128-bit
+    boundary in structures.  */
+ 
+ struct {
+   int x;
+   long double d;
+ } s;
+ 
+ int main(void)
+ {
+   if (sizeof (s) != 32)
+     abort ();
+   if ((char *)&s.d - (char *)&s != 16)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-mov-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,53 ----
+ /* { dg-do compile { target powerpc64-*-* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O2" } */
+ 
+ /* { dg-final { scan-assembler-not "fmr \[0-9\]+,\[0-9\]+" } }
+ 
+ /* Origin:Pete Steinmetz <steinmtz@us.ibm.com> */
+ 
+ /* PR 16796: Extraneous move.  */
+ 
+ static const double huge = 1.0e300;
+ typedef int int64_t __attribute__ ((__mode__ (__DI__)));
+ typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
+ 
+ double __floor(double x)
+ {
+   union {
+     double dbl_val;
+     long int long_val;
+   } temp;
+ 
+   int64_t i0,j0;
+   u_int64_t i;
+   temp.dbl_val = x;
+   i0 = temp.long_val;
+ 
+   j0 = ((i0>>52)&0x7ff)-0x3ff;
+   if(j0<52) {
+     if(j0<0) {
+       if(huge+x>0.0) {
+         if(i0>=0) {i0=0;}
+         else if((i0&0x7fffffffffffffff)!=0)
+         { i0=0xbff0000000000000;}
+       }
+     } else {
+       i = (0x000fffffffffffff)>>j0;
+       if((i0&i)==0) return x;
+       if(huge+x>0.0) {
+         if(i0<0) i0 += (0x0010000000000000)>>j0;
+         i0 &= (~i);
+       }
+     }
+   } else {
+     if (j0==0x400)
+       return x+x;
+     else
+       return x;
+   }
+   temp.long_val = i0;
+   x = temp.dbl_val;
+   return x;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target powerpc-*-linux* powerpc-*-sysv* powerpc-*-eabi* } } */
+ /* { dg-options "-O2 -fno-common -G 8 -meabi -msdata=eabi" } */
+ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */
+ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata2," } } */
+ /* { dg-final { scan-assembler "sdat@sda21\\((13|0)\\)" } } */
+ /* { dg-final { scan-assembler "sdat2@sda21\\((2|0)\\)" } } */
+ 
+ 
+ int sdat = 2;
+ const char sdat2[] = "1234";
+ 
+ const char * test (void)
+ {
+   return sdat ? sdat2 : 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile { target powerpc-*-linux* powerpc-*-sysv* powerpc-*-eabi* } } */
+ /* { dg-options "-O2 -fno-common -G 8 -msdata=sysv" } */
+ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */
+ /* { dg-final { scan-assembler-not "\\.section\[ \t\]\\.sdata2," } } */
+ /* { dg-final { scan-assembler "sdat@sdarel\\(13\\)" } } */
+ /* { dg-final { scan-assembler "sdat2@sdarel\\(13\\)" } } */
+ 
+ 
+ int sdat = 2;
+ const char sdat2[] = "1234";
+ 
+ const char * test (void)
+ {
+   return sdat ? sdat2 : 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-spe.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-spe.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-spe.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-spe.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,662 ----
+ /* { dg-do compile { target powerpc-*-eabispe } } */
+ /* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+ 
+ /* (Test with -O0 so we don't optimize any of them away).  */
+ 
+ #include <spe.h>
+ 
+ /* Test PowerPC SPE extensions.  */
+ 
+ #define vector __attribute__((vector_size(8)))
+ 
+ vector int a, b, c, *ap;
+ vector float f, g, h;
+ unsigned int *uip;
+ unsigned short *usp;
+ int i, j, *ip;
+ uint64_t ull;
+ int64_t sll;
+ unsigned ui;
+ float fl;
+ uint16_t u16;
+ int16_t s16;
+ 
+ /* These are the only documented/supported accesor functions for the
+    SPE builtins.  */
+ void
+ test_api ()
+ {
+   c = __ev_addw (a, b);
+   c = __ev_addiw (a, 8);
+   c = __ev_subfw (a, b);
+   c = __ev_subifw (8, a);
+   c = __ev_abs (a);
+   c = __ev_neg (a);
+   c = __ev_extsb (a);
+   c = __ev_extsh (a);
+   c = __ev_and (a, b);
+   c = __ev_or (a, b);
+   c = __ev_xor (a, b);
+   c = __ev_nand (a, b);
+   c = __ev_nor (a, b);
+   c = __ev_eqv (a, b);
+   c = __ev_andc (a, b);
+   c = __ev_orc (a, b);
+   c = __ev_rlw (a, b);
+   c = __ev_rlwi (a, 8);
+   c = __ev_slw (a, b);
+   c = __ev_slwi (a, 8);
+   c = __ev_srws (a, b);
+   c = __ev_srwu (a, b);
+   c = __ev_srwis (a, 8);
+   c = __ev_srwiu (a, 8);
+   c = __ev_cntlzw (a);
+   c = __ev_cntlsw (a);
+   c = __ev_rndw (a);
+   c = __ev_mergehi (a, b);
+   c = __ev_mergelo (a, b);
+   c = __ev_mergelohi (a, b);
+   c = __ev_mergehilo (a, b);
+   c = __ev_splati (5);
+   c = __ev_splatfi (6);
+   c = __ev_divws (a, b);
+   c = __ev_divwu (a, b);
+   c = __ev_mra (a);
+   i = __brinc (5, 6);
+ 
+   /* Loads.  */
+   c = __ev_lddx (ap, i);
+   c = __ev_ldwx (ap, i);
+   c = __ev_ldhx (ap, i);
+ 
+   c = __ev_lwhex (uip, i);
+   c = __ev_lwhoux (uip, i);
+   c = __ev_lwhosx (uip, i);
+   c = __ev_lwwsplatx (uip, i);
+   c = __ev_lwhsplatx (uip, i);
+ 
+   c = __ev_lhhesplatx (usp, i);
+   c = __ev_lhhousplatx (usp, i);
+   c = __ev_lhhossplatx (usp, i);
+ 
+   c = __ev_ldd (ap, 5);
+   c = __ev_ldw (ap, 6);
+   c = __ev_ldh (ap, 7);
+   c = __ev_lwhe (uip, 6);
+   c = __ev_lwhou (uip, 6);
+   c = __ev_lwhos (uip, 7);
+   c = __ev_lwwsplat (uip, 7);
+   c = __ev_lwhsplat (uip, 7);
+   c = __ev_lhhesplat (usp, 7);
+   c = __ev_lhhousplat (usp, 7);
+   c = __ev_lhhossplat (usp, 7);
+ 
+   /* Stores.  */
+   __ev_stddx (a, ap, 9);
+   __ev_stdwx (a, ap, 9);
+   __ev_stdhx (a, ap, 9);
+   __ev_stwwex (a, uip, 9);
+   __ev_stwwox (a, uip, 9);
+   __ev_stwhex (a, uip, 9);
+   __ev_stwhox (a, uip, 9);
+   __ev_stdd (a, ap, 9);
+   __ev_stdw (a, ap, 9);
+   __ev_stdh (a, ap, 9);
+   __ev_stwwe (a, uip, 9);
+   __ev_stwwo (a, uip, 9);
+   __ev_stwhe (a, uip, 9);
+   __ev_stwho (a, uip, 9);
+ 
+   /* Fixed point complex.  */
+   c = __ev_mhossf (a, b);
+   c = __ev_mhosmf (a, b);
+   c = __ev_mhosmi (a, b);
+   c = __ev_mhoumi (a, b);
+   c = __ev_mhessf (a, b);
+   c = __ev_mhesmf (a, b);
+   c = __ev_mhesmi (a, b);
+   c = __ev_mheumi (a, b);
+   c = __ev_mhossfa (a, b);
+   c = __ev_mhosmfa (a, b);
+   c = __ev_mhosmia (a, b);
+   c = __ev_mhoumia (a, b);
+   c = __ev_mhessfa (a, b);
+   c = __ev_mhesmfa (a, b);
+   c = __ev_mhesmia (a, b);
+   c = __ev_mheumia (a, b);
+ 
+   c = __ev_mhoumf (a, b);
+   c = __ev_mheumf (a, b);
+   c = __ev_mhoumfa (a, b);
+   c = __ev_mheumfa (a, b);
+ 
+   c = __ev_mhossfaaw (a, b);
+   c = __ev_mhossiaaw (a, b);
+   c = __ev_mhosmfaaw (a, b);
+   c = __ev_mhosmiaaw (a, b);
+   c = __ev_mhousiaaw (a, b);
+   c = __ev_mhoumiaaw (a, b);
+   c = __ev_mhessfaaw (a, b);
+   c = __ev_mhessiaaw (a, b);
+   c = __ev_mhesmfaaw (a, b);
+   c = __ev_mhesmiaaw (a, b);
+   c = __ev_mheusiaaw (a, b);
+   c = __ev_mheumiaaw (a, b);
+ 
+   c = __ev_mhousfaaw (a, b);
+   c = __ev_mhoumfaaw (a, b);
+   c = __ev_mheusfaaw (a, b);
+   c = __ev_mheumfaaw (a, b);
+ 
+   c = __ev_mhossfanw (a, b);
+   c = __ev_mhossianw (a, b);
+   c = __ev_mhosmfanw (a, b);
+   c = __ev_mhosmianw (a, b);
+   c = __ev_mhousianw (a, b);
+   c = __ev_mhoumianw (a, b);
+   c = __ev_mhessfanw (a, b);
+   c = __ev_mhessianw (a, b);
+   c = __ev_mhesmfanw (a, b);
+   c = __ev_mhesmianw (a, b);
+   c = __ev_mheusianw (a, b);
+   c = __ev_mheumianw (a, b);
+ 
+   c = __ev_mhousfanw (a, b);
+   c = __ev_mhoumfanw (a, b);
+   c = __ev_mheusfanw (a, b);
+   c = __ev_mheumfanw (a, b);
+ 
+   c = __ev_mhogsmfaa (a, b);
+   c = __ev_mhogsmiaa (a, b);
+   c = __ev_mhogumiaa (a, b);
+   c = __ev_mhegsmfaa (a, b);
+   c = __ev_mhegsmiaa (a, b);
+   c = __ev_mhegumiaa (a, b);
+ 
+   c = __ev_mhogumfaa (a, b);
+   c = __ev_mhegumfaa (a, b);
+ 
+   c = __ev_mhogsmfan (a, b);
+   c = __ev_mhogsmian (a, b);
+   c = __ev_mhogumian (a, b);
+   c = __ev_mhegsmfan (a, b);
+   c = __ev_mhegsmian (a, b);
+   c = __ev_mhegumian (a, b);
+ 
+   c = __ev_mhogumfan (a, b);
+   c = __ev_mhegumfan (a, b);
+ 
+   c = __ev_mwhssf (a, b);
+   c = __ev_mwhsmf (a, b);
+   c = __ev_mwhsmi (a, b);
+   c = __ev_mwhumi (a, b);
+   c = __ev_mwhssfa (a, b);
+   c = __ev_mwhsmfa (a, b);
+   c = __ev_mwhsmia (a, b);
+   c = __ev_mwhumia (a, b);
+ 
+   c = __ev_mwhumf (a, b);
+   c = __ev_mwhumfa (a, b);
+ 
+   c = __ev_mwlumi (a, b);
+   c = __ev_mwlumia (a, b);
+   c = __ev_mwlumiaaw (a, b);
+ 
+   c = __ev_mwlssiaaw (a, b);
+   c = __ev_mwlsmiaaw (a, b);
+   c = __ev_mwlusiaaw (a, b);
+   c = __ev_mwlusiaaw (a, b);
+ 
+   c = __ev_mwlssianw (a, b);
+   c = __ev_mwlsmianw (a, b);
+   c = __ev_mwlusianw (a, b);
+   c = __ev_mwlumianw (a, b);
+ 
+   c = __ev_mwssf (a, b);
+   c = __ev_mwsmf (a, b);
+   c = __ev_mwsmi (a, b);
+   c = __ev_mwumi (a, b);
+   c = __ev_mwssfa (a, b);
+   c = __ev_mwsmfa (a, b);
+   c = __ev_mwsmia (a, b);
+   c = __ev_mwumia (a, b);
+   c = __ev_mwumf (a, b);
+   c = __ev_mwumfa (a, b);
+   c = __ev_mwssfaa (a, b);
+   c = __ev_mwsmfaa (a, b);
+   c = __ev_mwsmiaa (a, b);
+   c = __ev_mwumiaa (a, b);
+   c = __ev_mwumfaa (a, b);
+   c = __ev_mwssfan (a, b);
+   c = __ev_mwsmfan (a, b);
+   c = __ev_mwsmian (a, b);
+   c = __ev_mwumian (a, b);
+   c = __ev_mwumfan (a, b);
+   c = __ev_addssiaaw (a);
+   c = __ev_addsmiaaw (a);
+   c = __ev_addusiaaw (a);
+   c = __ev_addumiaaw (a);
+   c = __ev_addusfaaw (a);
+   c = __ev_addumfaaw (a);
+   c = __ev_addsmfaaw (a);
+   c = __ev_addssfaaw (a);
+   c = __ev_subfssiaaw (a);
+   c = __ev_subfsmiaaw (a);
+   c = __ev_subfusiaaw (a);
+   c = __ev_subfumiaaw (a);
+   c = __ev_subfusfaaw (a);
+   c = __ev_subfumfaaw (a);
+   c = __ev_subfsmfaaw (a);
+   c = __ev_subfssfaaw (a);
+ 
+   /* Floating point SIMD instructions.  */
+   c = __ev_fsabs (a);
+   c = __ev_fsnabs (a);
+   c = __ev_fsneg (a);
+   c = __ev_fsadd (a, b);
+   c = __ev_fssub (a, b);
+   c = __ev_fsmul (a, b);
+   c = __ev_fsdiv (a, b);
+   c = __ev_fscfui (a);
+   c = __ev_fscfsi (a);
+   c = __ev_fscfuf (a);
+   c = __ev_fscfsf (a);
+   c = __ev_fsctui (a);
+   c = __ev_fsctsi (a);
+   c = __ev_fsctuf (a);
+   c = __ev_fsctsf (a);
+   c = __ev_fsctuiz (a);
+   c = __ev_fsctsiz (a);
+ 
+   /* Non supported sythetic instructions made from two instructions.  */
+ 
+   c = __ev_mwhssfaaw (a, b);
+   c = __ev_mwhssiaaw (a, b);
+   c = __ev_mwhsmfaaw (a, b);
+   c = __ev_mwhsmiaaw (a, b);
+   c = __ev_mwhusiaaw (a, b);
+   c = __ev_mwhumiaaw (a, b);
+   c = __ev_mwhusfaaw (a, b);
+   c = __ev_mwhumfaaw (a, b);
+   c = __ev_mwhssfanw (a, b);
+   c = __ev_mwhssianw (a, b);
+   c = __ev_mwhsmfanw (a, b);
+   c = __ev_mwhsmianw (a, b);
+   c = __ev_mwhusianw (a, b);
+   c = __ev_mwhumianw (a, b);
+   c = __ev_mwhusfanw (a, b);
+   c = __ev_mwhumfanw (a, b);
+ 
+   c = __ev_mwhgssfaa (a, b);
+   c = __ev_mwhgsmfaa (a, b);
+   c = __ev_mwhgsmiaa (a, b);
+   c = __ev_mwhgumiaa (a, b);
+   c = __ev_mwhgssfan (a, b);
+   c = __ev_mwhgsmfan (a, b);
+   c = __ev_mwhgsmian (a, b);
+   c = __ev_mwhgumian (a, b);
+ 
+   /* Creating, insertion, and extraction.  */
+ 
+   a = __ev_create_u64 ((uint64_t) 55);
+   a = __ev_create_s64 ((int64_t) 66);
+   a = __ev_create_fs (3.14F, 2.18F);
+   a = __ev_create_u32 ((uint32_t) 5, (uint32_t) i);
+   a = __ev_create_s32 ((int32_t) 5, (int32_t) 6);
+   a = __ev_create_u16 ((uint16_t) 6, (uint16_t) 6, (uint16_t) 7, (uint16_t) 1);
+   a = __ev_create_s16 ((int16_t) 6, (int16_t) 6, (int16_t) 7, (int16_t) 9);
+   a = __ev_create_sfix32_fs (3.0F, 2.0F);
+   a = __ev_create_ufix32_fs (3.0F, 2.0F);
+   a = __ev_create_ufix32_u32 (3U, 5U);
+   a = __ev_create_sfix32_s32 (6, 9);
+   ull = __ev_convert_u64 (a);
+   sll = __ev_convert_s64 (a);
+   i = __ev_get_upper_u32 (a);
+   ui = __ev_get_lower_u32 (a);
+   i = __ev_get_upper_s32 (a);
+   i = __ev_get_lower_s32 (a);
+   fl = __ev_get_upper_fs (a);
+   fl = __ev_get_lower_fs (a);
+   u16 = __ev_get_u16 (a, 5U);
+   s16 = __ev_get_s16 (a, 5U);
+   ui = __ev_get_upper_ufix32_u32 (a);
+   ui = __ev_get_lower_ufix32_u32 (a);
+   i = __ev_get_upper_sfix32_s32 (a);
+   i = __ev_get_lower_sfix32_s32 (a);
+   fl = __ev_get_upper_sfix32_fs (a);
+   fl = __ev_get_lower_sfix32_fs (a);
+   fl = __ev_get_upper_ufix32_fs (a);
+   fl = __ev_get_lower_ufix32_fs (a);
+   a = __ev_set_upper_u32 (a, 5U);
+   a = __ev_set_lower_u32 (a, 5U);
+   a = __ev_set_upper_s32 (a, 5U);
+   a = __ev_set_lower_s32 (a, 6U);
+   a = __ev_set_upper_fs (a, 6U);
+   a = __ev_set_lower_fs (a, fl);
+   a = __ev_set_upper_ufix32_u32 (a, 5U);
+   a = __ev_set_lower_ufix32_u32 (a, 5U);
+   a = __ev_set_upper_sfix32_s32 (a, 5);
+   a = __ev_set_lower_sfix32_s32 (a, 5);
+   a =  __ev_set_upper_sfix32_fs (a, fl);
+   a = __ev_set_lower_sfix32_fs (a, fl);
+   a = __ev_set_upper_ufix32_fs (a, fl);
+   a = __ev_set_lower_ufix32_fs (a, fl);
+   a = __ev_set_acc_u64 ((uint64_t) 640);
+   a = __ev_set_acc_s64 ((int64_t) 460);
+   a = __ev_set_acc_vec64 (b);
+   a = __ev_set_u32 (a, 5, 6);
+   a = __ev_set_s32 (a, 5, 6);
+   a = __ev_set_fs (a, fl, 5);
+   a = __ev_set_u16 (a, 5U, 3);
+   a = __ev_set_s16 (a, 5, 6);
+   a = __ev_set_ufix32_u32 (a, 5U, 6U);
+   a = __ev_set_sfix32_s32 (a, 3, 6);
+   a = __ev_set_ufix32_fs (a, fl, 5);
+   a = __ev_set_sfix32_fs (a, fl, 5);
+   ui = __ev_get_u32 (a, 1);
+   i = __ev_get_s32 (a, 0);
+   fl = __ev_get_fs (a, 1);
+   u16 = __ev_get_u16 (a, 2);
+   s16 = __ev_get_s16 (a, 2);
+   ui = __ev_get_ufix32_u32 (a, 1);
+   i = __ev_get_sfix32_s32 (a, 0);
+   fl = __ev_get_ufix32_fs (a, 1);
+   fl = __ev_get_sfix32_fs (a, 0);
+ 
+   /* Predicates.  */
+   i = __ev_any_gts (a, b);
+   i = __ev_all_gts (a, b);
+   i = __ev_upper_gts (a, b);
+   i = __ev_lower_gts (a, b);
+   a = __ev_select_gts (a, b, c, c);
+ 
+   i = __ev_any_gtu (a, b);
+   i = __ev_all_gtu (a, b);
+   i = __ev_upper_gtu (a, b);
+   i = __ev_lower_gtu (a, b);
+   a = __ev_select_gtu (a, b, c, c);
+ 
+   i = __ev_any_lts (a, b);
+   i = __ev_all_lts (a, b);
+   i = __ev_upper_lts (a, b);
+   i = __ev_lower_lts (a, b);
+   a = __ev_select_lts (a, b, c, c);
+ 
+   i = __ev_any_ltu (a, b);
+   i = __ev_all_ltu (a, b);
+   i = __ev_upper_ltu (a, b);
+   i = __ev_lower_ltu (a, b);
+   a = __ev_select_ltu (a, b, c, c);
+ 
+   i = __ev_any_eq (a, b);
+   i = __ev_all_eq (a, b);
+   i = __ev_upper_eq (a, b);
+   i = __ev_lower_eq (a, b);
+   a = __ev_select_eq (a, b, c, c);
+ 
+   i = __ev_any_fs_gt (a, b);
+   i = __ev_all_fs_gt (a, b);
+   i = __ev_upper_fs_gt (a, b);
+   i = __ev_lower_fs_gt (a, b);
+   a = __ev_select_fs_gt (a, b, c, c);
+ 
+   i = __ev_any_fs_lt (a, b);
+   i = __ev_all_fs_lt (a, b);
+   i = __ev_upper_fs_lt (a, b);
+   i = __ev_lower_fs_lt (a, b);
+   a = __ev_select_fs_lt (a, b, c, b);
+ 
+   i = __ev_any_fs_eq (a, b);
+   i = __ev_all_fs_eq (a, b);
+   i = __ev_upper_fs_eq (a, b);
+   i = __ev_lower_fs_eq (a, b);
+   a = __ev_select_fs_eq (a, b, c, c);
+ 
+   i = __ev_any_fs_tst_gt (a, b);
+   i = __ev_all_fs_tst_gt (a, b);
+   i = __ev_upper_fs_tst_gt (a, b);
+   i = __ev_lower_fs_tst_gt (a, b);
+   a = __ev_select_fs_tst_gt (a, b, c, c);
+ 
+   i = __ev_any_fs_tst_lt (a, b);
+   i = __ev_all_fs_tst_lt (a, b);
+   i = __ev_upper_fs_tst_lt (a, b);
+   i = __ev_lower_fs_tst_lt (a, b);
+   a = __ev_select_fs_tst_lt (a, b, c, c);
+ 
+   i = __ev_any_fs_tst_eq (a, b);
+   i = __ev_all_fs_tst_eq (a, b);
+   i = __ev_upper_fs_tst_eq (a, b);
+   i = __ev_lower_fs_tst_eq (a, b);
+   a = __ev_select_fs_tst_eq (a, b, c, c);
+ }
+ 
+ int
+ main (void)
+ {
+   /* Generic binary operations.  */
+   c = __builtin_spe_evaddw (a, b);
+   c = __builtin_spe_evand (a, b);
+   c = __builtin_spe_evandc (a, b);
+   c = __builtin_spe_evdivws (a, b);
+   c = __builtin_spe_evdivwu (a, b);
+   c = __builtin_spe_eveqv (a, b);
+   h = __builtin_spe_evfsadd (f, g);
+   h = __builtin_spe_evfsdiv (f, g);
+   h = __builtin_spe_evfsmul (f, g);
+   h = __builtin_spe_evfssub (f, g);
+   c = __builtin_spe_evlddx (ap, j);
+   c = __builtin_spe_evldhx (ap, j);
+   c = __builtin_spe_evldwx (ap, j);
+   c = __builtin_spe_evlhhesplatx (usp, j);
+   c = __builtin_spe_evlhhossplatx (usp, j);
+   c = __builtin_spe_evlhhousplatx (usp, j);
+   c = __builtin_spe_evlwhex (uip, j);
+   c = __builtin_spe_evlwhosx (uip, j);
+   c = __builtin_spe_evlwhoux (uip, j);
+   c = __builtin_spe_evlwhsplatx (uip, j);
+   c = __builtin_spe_evlwwsplatx (uip, j);
+   c = __builtin_spe_evmergehi (a, b);
+   c = __builtin_spe_evmergehilo (a, b);
+   c = __builtin_spe_evmergelo (a, b);
+   c = __builtin_spe_evmergelohi (a, b);
+   c = __builtin_spe_evmhegsmfaa (a, b);
+   c = __builtin_spe_evmhegsmfan (a, b);
+   c = __builtin_spe_evmhegsmiaa (a, b);
+   c = __builtin_spe_evmhegsmian (a, b);
+   c = __builtin_spe_evmhegumiaa (a, b);
+   c = __builtin_spe_evmhegumian (a, b);
+   c = __builtin_spe_evmhesmf (a, b);
+   c = __builtin_spe_evmhesmfa (a, b);
+   c = __builtin_spe_evmhesmfaaw (a, b);
+   c = __builtin_spe_evmhesmfanw (a, b);
+   c = __builtin_spe_evmhesmi (a, b);
+   c = __builtin_spe_evmhesmia (a, b);
+   c = __builtin_spe_evmhesmiaaw (a, b);
+   c = __builtin_spe_evmhesmianw (a, b);
+   c = __builtin_spe_evmhessf (a, b);
+   c = __builtin_spe_evmhessfa (a, b);
+   c = __builtin_spe_evmhessfaaw (a, b);
+   c = __builtin_spe_evmhessfanw (a, b);
+   c = __builtin_spe_evmhessiaaw (a, b);
+   c = __builtin_spe_evmhessianw (a, b);
+   c = __builtin_spe_evmheumi (a, b);
+   c = __builtin_spe_evmheumia (a, b);
+   c = __builtin_spe_evmheumiaaw (a, b);
+   c = __builtin_spe_evmheumianw (a, b);
+   c = __builtin_spe_evmheusiaaw (a, b);
+   c = __builtin_spe_evmheusianw (a, b);
+   c = __builtin_spe_evmhogsmfaa (a, b);
+   c = __builtin_spe_evmhogsmfan (a, b);
+   c = __builtin_spe_evmhogsmiaa (a, b);
+   c = __builtin_spe_evmhogsmian (a, b);
+   c = __builtin_spe_evmhogumiaa (a, b);
+   c = __builtin_spe_evmhogumian (a, b);
+   c = __builtin_spe_evmhosmf (a, b);
+   c = __builtin_spe_evmhosmfa (a, b);
+   c = __builtin_spe_evmhosmfaaw (a, b);
+   c = __builtin_spe_evmhosmfanw (a, b);
+   c = __builtin_spe_evmhosmi (a, b);
+   c = __builtin_spe_evmhosmia (a, b);
+   c = __builtin_spe_evmhosmiaaw (a, b);
+   c = __builtin_spe_evmhosmianw (a, b);
+   c = __builtin_spe_evmhossf (a, b);
+   c = __builtin_spe_evmhossfa (a, b);
+   c = __builtin_spe_evmhossfaaw (a, b);
+   c = __builtin_spe_evmhossfanw (a, b);
+   c = __builtin_spe_evmhossiaaw (a, b);
+   c = __builtin_spe_evmhossianw (a, b);
+   c = __builtin_spe_evmhoumi (a, b);
+   c = __builtin_spe_evmhoumia (a, b);
+   c = __builtin_spe_evmhoumiaaw (a, b);
+   c = __builtin_spe_evmhoumianw (a, b);
+   c = __builtin_spe_evmhousiaaw (a, b);
+   c = __builtin_spe_evmhousianw (a, b);
+   c = __builtin_spe_evmwhsmf (a, b);
+   c = __builtin_spe_evmwhsmfa (a, b);
+   c = __builtin_spe_evmwhsmi (a, b);
+   c = __builtin_spe_evmwhsmia (a, b);
+   c = __builtin_spe_evmwhssf (a, b);
+   c = __builtin_spe_evmwhssfa (a, b);
+   c = __builtin_spe_evmwhumi (a, b);
+   c = __builtin_spe_evmwhumia (a, b);
+   c = __builtin_spe_evmwlsmiaaw (a, b);
+   c = __builtin_spe_evmwlsmianw (a, b);
+   c = __builtin_spe_evmwlssiaaw (a, b);
+   c = __builtin_spe_evmwlssianw (a, b);
+   c = __builtin_spe_evmwlumi (a, b);
+   c = __builtin_spe_evmwlumia (a, b);
+   c = __builtin_spe_evmwlumiaaw (a, b);
+   c = __builtin_spe_evmwlumianw (a, b);
+   c = __builtin_spe_evmwlusiaaw (a, b);
+   c = __builtin_spe_evmwlusianw (a, b);
+   c = __builtin_spe_evmwsmf (a, b);
+   c = __builtin_spe_evmwsmfa (a, b);
+   c = __builtin_spe_evmwsmfaa (a, b);
+   c = __builtin_spe_evmwsmfan (a, b);
+   c = __builtin_spe_evmwsmi (a, b);
+   c = __builtin_spe_evmwsmia (a, b);
+   c = __builtin_spe_evmwsmiaa (a, b);
+   c = __builtin_spe_evmwsmian (a, b);
+   c = __builtin_spe_evmwssf (a, b);
+   c = __builtin_spe_evmwssfa (a, b);
+   c = __builtin_spe_evmwssfaa (a, b);
+   c = __builtin_spe_evmwssfan (a, b);
+   c = __builtin_spe_evmwumi (a, b);
+   c = __builtin_spe_evmwumia (a, b);
+   c = __builtin_spe_evmwumiaa (a, b);
+   c = __builtin_spe_evmwumian (a, b);
+   c = __builtin_spe_evnand (a, b);
+   c = __builtin_spe_evnor (a, b);
+   c = __builtin_spe_evor (a, b);
+   c = __builtin_spe_evorc (a, b);
+   c = __builtin_spe_evrlw (a, b);
+   c = __builtin_spe_evslw (a, b);
+   c = __builtin_spe_evsrws (a, b);
+   c = __builtin_spe_evsrwu (a, b);
+   c = __builtin_spe_evsubfw (a, b);
+   c = __builtin_spe_evxor (a, b);
+ 
+   c = __builtin_spe_evmwhssfaa (a, b);
+   c = __builtin_spe_evmwhssmaa (a, b);
+   c = __builtin_spe_evmwhsmfaa (a, b);
+   c = __builtin_spe_evmwhsmiaa (a, b);
+   c = __builtin_spe_evmwhusiaa (a, b);
+   c = __builtin_spe_evmwhumiaa (a, b);
+   c = __builtin_spe_evmwhssfan (a, b);
+   c = __builtin_spe_evmwhssian (a, b);
+   c = __builtin_spe_evmwhsmfan (a, b);
+   c = __builtin_spe_evmwhsmian (a, b);
+   c = __builtin_spe_evmwhusian (a, b);
+   c = __builtin_spe_evmwhumian (a, b);
+   c = __builtin_spe_evmwhgssfaa (a, b);
+   c = __builtin_spe_evmwhgsmfaa (a, b);
+   c = __builtin_spe_evmwhgsmiaa (a, b);
+   c = __builtin_spe_evmwhgumiaa (a, b);
+   c = __builtin_spe_evmwhgssfan (a, b);
+   c = __builtin_spe_evmwhgsmfan (a, b);
+   c = __builtin_spe_evmwhgsmian (a, b);
+   c = __builtin_spe_evmwhgumian (a, b);
+   i = __builtin_spe_brinc (i, j);
+ 
+   /* Generic unary operations.  */
+   a = __builtin_spe_evabs (b);
+   a = __builtin_spe_evaddsmiaaw (b);
+   a = __builtin_spe_evaddssiaaw (b);
+   a = __builtin_spe_evaddumiaaw (b);
+   a = __builtin_spe_evaddusiaaw (b);
+   a = __builtin_spe_evcntlsw (b);
+   a = __builtin_spe_evcntlzw (b);
+   a = __builtin_spe_evextsb (b);
+   a = __builtin_spe_evextsh (b);
+   f = __builtin_spe_evfsabs (g);
+   f = __builtin_spe_evfscfsf (g);
+   a = __builtin_spe_evfscfsi (g);
+   f = __builtin_spe_evfscfuf (g);
+   f = __builtin_spe_evfscfui (a);
+   f = __builtin_spe_evfsctsf (g);
+   a = __builtin_spe_evfsctsi (g);
+   a = __builtin_spe_evfsctsiz (g);
+   f = __builtin_spe_evfsctuf (g);
+   a = __builtin_spe_evfsctui (g);
+   a = __builtin_spe_evfsctuiz (g);
+   f = __builtin_spe_evfsnabs (g);
+   f = __builtin_spe_evfsneg (g);
+   a = __builtin_spe_evmra (b);
+   a = __builtin_spe_evneg (b);
+   a = __builtin_spe_evrndw (b);
+   a = __builtin_spe_evsubfsmiaaw (b);
+   a = __builtin_spe_evsubfssiaaw (b);
+   a = __builtin_spe_evsubfumiaaw (b);
+   a = __builtin_spe_evsubfusiaaw (b);
+ 
+   /* Unary operations of the form: X = foo (5_bit_signed_immediate).  */
+   a = __builtin_spe_evsplatfi (5);
+   a = __builtin_spe_evsplati (5);
+ 
+   /* Binary operations of the form: X = foo(Y, 5_bit_immediate).  */
+   a = __builtin_spe_evaddiw (b, 13);
+   a = __builtin_spe_evldd (ap, 13);
+   a = __builtin_spe_evldh (ap, 13);
+   a = __builtin_spe_evldw (ap, 13);
+   a = __builtin_spe_evlhhesplat (usp, 13);
+   a = __builtin_spe_evlhhossplat (usp, 13);
+   a = __builtin_spe_evlhhousplat (usp, 13);
+   a = __builtin_spe_evlwhe (uip, 13);
+   a = __builtin_spe_evlwhos (uip, 13);
+   a = __builtin_spe_evlwhou (uip, 13);
+   a = __builtin_spe_evlwhsplat (uip, 13);
+   a = __builtin_spe_evlwwsplat (uip, 13);
+ 
+   a = __builtin_spe_evrlwi (b, 13);
+   a = __builtin_spe_evslwi (b, 13);
+   a = __builtin_spe_evsrwis (b, 13);
+   a = __builtin_spe_evsrwiu (b, 13);
+   a = __builtin_spe_evsubifw (b, 13);
+ 
+   /* Store indexed builtins.  */
+   __builtin_spe_evstddx (b, ap, j);
+   __builtin_spe_evstdhx (b, ap, j);
+   __builtin_spe_evstdwx (b, ap, j);
+   __builtin_spe_evstwhex (b, uip, j);
+   __builtin_spe_evstwhox (b, uip, j);
+   __builtin_spe_evstwwex (b, uip, j);
+   __builtin_spe_evstwwox (b, uip, j);
+ 
+   /* Store indexed immediate builtins.  */
+   __builtin_spe_evstdd (b, ap, 5);
+   __builtin_spe_evstdh (b, ap, 5);
+   __builtin_spe_evstdw (b, ap, 5);
+   __builtin_spe_evstwhe (b, uip, 5);
+   __builtin_spe_evstwho (b, uip, 5);
+   __builtin_spe_evstwwe (b, uip, 5);
+   __builtin_spe_evstwwo (b, uip, 5);
+ 
+   /* SPEFSCR builtins.  */
+   i = __builtin_spe_mfspefscr ();
+   __builtin_spe_mtspefscr (j);
+ 
+   test_api ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-spe64-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,6 ----
+ /* Test that SPE targets do not permit -m64.  */
+ /* Origin: Joseph Myers <joseph@codesourcery.com> */
+ /* { dg-do compile { target powerpc-*-*spe } } */
+ /* { dg-options "-m64" } */
+ 
+ /* { dg-error "-m64 not supported in this configuration" "SPE not 64-bit" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-stackalign-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,35 ----
+ /* { dg-do run { target powerpc-*-linux* powerpc-*-sysv* } } */
+ /* { dg-options {} } */
+ 
+ /* Test stack pointer alignment against variable alloca.  */
+ /* Inspired by PR libgcj/10610.  */
+ /* Origin: Franz Sirl <Franz.Sirl-kernel@lauterbach.com>.  */
+ 
+ extern void abort (void);
+ extern void exit (int);
+ 
+ register unsigned long sp __asm__ ("r1");
+ 
+ void g (int * val __attribute__ ((unused)))
+ {
+   if (sp & 0xf)
+     abort ();
+ }
+ 
+ void f (int val)
+ {
+   int *val1 = __builtin_alloca (val);
+ 
+   g (val1);
+   return;
+ }
+ 
+ int main (void)
+ {
+   int i;
+ 
+   for (i = 1; i < 32; i++)
+     f (i);
+   
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-stfiwx.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-stfiwx.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-stfiwx.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-stfiwx.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-options "-mpowerpc-gfxopt" } */
+ /* { dg-final { scan-assembler "stfiwx" } } */
+ 
+ int foo (double x)
+ {
+   return x;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-vector-memcpy.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-O -maltivec" } */
+ /* { dg-final { scan-assembler "lvx" } } */
+ 
+ void foo(void)
+ {
+   int x[8] __attribute__((aligned(128))) = { 1, 1, 1, 1, 1, 1, 1, 1 };
+   bar (x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc-vector-memset.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-O -maltivec" } */
+ /* { dg-final { scan-assembler "stvx" } } */
+ 
+ #include <string.h>
+ 
+ void foo(void)
+ {
+   int x[8] __attribute__((aligned(128)));
+   memset (x, 0, sizeof (x));
+   bar (x);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-abi-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-abi-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-abi-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-abi-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,364 ----
+ /* { dg-do run { target powerpc64-*-* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O2" } */
+ #include <stdarg.h>
+ #include <signal.h>
+ #include <stdio.h>
+ 
+ /* Testcase to check for ABI compliance of parameter passing
+    for the PowerPC64 ABI.  
+    Parameter passing of integral and floating point is tested.  */
+ 
+ extern void abort (void);
+ 
+ typedef struct
+ {
+   unsigned long gprs[8];
+   double fprs[13];
+ } reg_parms_t;
+ 
+ reg_parms_t gparms;
+ 
+ 
+ /* Testcase could break on future gcc's, if parameter regs
+    are changed before this asm.  */
+ 
+ #ifndef __MACH__
+ #define save_parms(lparms)				\
+     asm volatile ("ld 11,gparms@got(2)\n\t"                \
+                   "std 3,0(11)\n\t"		        \
+ 	          "std 4,8(11)\n\t"			\
+ 	          "std 5,16(11)\n\t"			\
+ 	          "std 6,24(11)\n\t"			\
+ 	          "std 7,32(11)\n\t"			\
+ 	          "std 8,40(11)\n\t"			\
+ 	          "std 9,48(11)\n\t"			\
+ 	          "std 10,56(11)\n\t"                 \
+                   "stfd 1,64(11)\n\t"		        \
+ 	          "stfd 2,72(11)\n\t"			\
+ 	          "stfd 3,80(11)\n\t"			\
+ 	          "stfd 4,88(11)\n\t"			\
+ 	          "stfd 5,96(11)\n\t"			\
+ 	          "stfd 6,104(11)\n\t"			\
+ 	          "stfd 7,112(11)\n\t"			\
+ 	          "stfd 8,120(11)\n\t"			\
+ 	          "stfd 9,128(11)\n\t"			\
+ 	          "stfd 10,136(11)\n\t"			\
+ 	          "stfd 11,144(11)\n\t"			\
+ 	          "stfd 12,152(11)\n\t"                 \
+ 	          "stfd 13,160(11)\n\t":::"11", "memory");  \
+                   lparms = gparms;
+ #else
+ #define save_parms(lparms)				\
+     asm volatile ("ld r11,gparms@got(r2)\n\t"           \
+                   "std r3,0(r11)\n\t"		        \
+ 	          "std r4,8(r11)\n\t"			\
+ 	          "std r5,16(r11)\n\t"			\
+ 	          "std r6,24(r11)\n\t"			\
+ 	          "std r7,32(r11)\n\t"			\
+ 	          "std r8,40(r11)\n\t"			\
+ 	          "std r9,48(r11)\n\t"			\
+ 	          "std r10,56(r11)\n\t"                 \
+                   "stfd f1,64(r11)\n\t"		        \
+ 	          "stfd f2,72(r11)\n\t"			\
+ 	          "stfd f3,80(r11)\n\t"			\
+ 	          "stfd f4,88(r11)\n\t"			\
+ 	          "stfd f5,96(r11)\n\t"			\
+ 	          "stfd f6,104(r11)\n\t"		\
+ 	          "stfd f7,112(r11)\n\t"		\
+ 	          "stfd f8,120(r11)\n\t"		\
+ 	          "stfd f9,128(r11)\n\t"		\
+ 	          "stfd f10,136(r11)\n\t"		\
+ 	          "stfd f11,144(r11)\n\t"		\
+ 	          "stfd f12,152(r11)\n\t"               \
+ 	          "stfd f13,160(r11)\n\t":::"r11", "memory");  \
+                   lparms = gparms;
+ #endif
+ 
+ /* Stackframe structure relevant for parameter passing.  */
+ typedef union
+ {
+   double d;
+   unsigned long l;
+   unsigned int i[2];
+ } parm_t;
+ 
+ typedef struct sf
+ {
+   struct sf *backchain;
+   long a1;
+   long a2;
+   long a3;
+   long a4;
+   long a5;
+   parm_t slot[100];
+ } stack_frame_t;
+ 
+ 
+ /* Paramter passing.
+    s : gpr 3
+    l : gpr 4
+    d : fpr 1
+ */
+ void __attribute__ ((noinline)) fcld (char *s, long l, double d)
+ {
+   reg_parms_t lparms;
+   save_parms (lparms);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort ();
+ 
+   if (l != lparms.gprs[1])
+     abort ();
+ 
+   if (d != lparms.fprs[0])
+     abort ();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    l : gpr 4
+    d : fpr 2
+    i : gpr 5
+ */
+ void __attribute__ ((noinline))
+ fcldi (char *s, long l, double d, signed int i)
+ {
+   reg_parms_t lparms;
+   save_parms (lparms);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort ();
+ 
+   if (l != lparms.gprs[1])
+     abort ();
+ 
+   if (d != lparms.fprs[0])
+     abort ();
+ 
+   if ((signed long) i != lparms.gprs[3])
+     abort ();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    l : gpr 4
+    d : fpr 2
+    i : gpr 5
+ */
+ void __attribute__ ((noinline))
+ fcldu (char *s, long l, float d, unsigned int i)
+ {
+   reg_parms_t lparms;
+   save_parms (lparms);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort ();
+ 
+   if (l != lparms.gprs[1])
+     abort ();
+ 
+   if ((double) d != lparms.fprs[0])
+     abort ();
+ 
+   if ((unsigned long) i != lparms.gprs[3])
+     abort ();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    l : slot 1
+    d : slot 2
+ */
+ 
+ void __attribute__ ((noinline)) fceld (char *s, ...)
+ {
+   stack_frame_t *sp;
+   reg_parms_t lparms;
+   va_list arg;
+   double d;
+   long l;
+   save_parms (lparms);
+ 
+   va_start (arg, s);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort ();
+ 
+   l = va_arg (arg, long);
+   d = va_arg (arg, double);
+ 
+   /* Go back one frame.  */
+   sp = __builtin_frame_address (0);
+   sp = sp->backchain;
+ 
+   if (sp->slot[1].l != l)
+     abort ();
+ 
+   if (sp->slot[2].d != d)
+     abort ();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    i : gpr 4
+    j : gpr 5
+    d : slot 3
+    l : slot 4
+ */
+ void __attribute__ ((noinline)) fciiedl (char *s, int i, int j, ...)
+ {
+   stack_frame_t *sp;
+   reg_parms_t lparms;
+   va_list arg;
+   double d;
+   long l;
+   save_parms (lparms);
+ 
+   va_start (arg, j);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort ();
+ 
+   if ((long) i != lparms.gprs[1])
+     abort ();
+ 
+   if ((long) j != lparms.gprs[2])
+     abort ();
+ 
+   d = va_arg (arg, double);
+   l = va_arg (arg, long);
+ 
+   sp = __builtin_frame_address (0);
+   sp = sp->backchain;
+ 
+   if (sp->slot[3].d != d)
+     abort ();
+ 
+   if (sp->slot[4].l != l)
+     abort ();
+ }
+ 
+ /* 
+ Parameter     Register     Offset in parameter save area
+ c             r3           0-7    (not stored in parameter save area)
+ ff            f1           8-15   (not stored)
+ d             r5           16-23  (not stored)
+ ld            f2           24-31  (not stored)
+ f             r7           32-39  (not stored)
+ s             r8,r9        40-55  (not stored)
+ gg            f3           56-63  (not stored)
+ t             (none)       64-79  (stored in parameter save area)
+ e             (none)       80-87  (stored)
+ hh            f4           88-95  (stored)  
+ 
+ */
+ 
+ typedef struct
+ {
+   int a;
+   double dd;
+ } sparm;
+ 
+ typedef union
+ {
+   int i[2];
+   long l;
+   double d;
+ } double_t;
+ 
+ /* Example from ABI documentation with slight changes.
+    Paramter passing. 
+    c  : gpr 3
+    ff : fpr 1
+    d  : gpr 5
+    ld : fpr 2
+    f  : gpr 7
+    s  : gpr 8 - 9
+    gg : fpr 3
+    t  : save area offset 64 - 79 
+    e  : save area offset 80 - 88
+    hh : fpr 4   
+ */
+ 
+ void __attribute__ ((noinline))
+ fididisdsid (int c, double ff, int d, double ld, int f,
+ 	     sparm s, double gg, sparm t, int e, double hh)
+ {
+   stack_frame_t *sp;
+   reg_parms_t lparms;
+   double_t dx, dy;
+ 
+   save_parms (lparms);
+ 
+   /* Parm 0: int.  */
+   if ((long) c != lparms.gprs[0])
+     abort ();
+ 
+   /* Parm 1: double.  */
+   if (ff != lparms.fprs[0])
+     abort ();
+ 
+   /* Parm 2: int.  */
+   if ((long) d != lparms.gprs[2])
+     abort ();
+ 
+   /* Parm 3: double.  */
+   if (ld != lparms.fprs[1])
+     abort ();
+ 
+   /* Parm 4: int.  */
+   if ((long) f != lparms.gprs[4])
+     abort ();
+ 
+   /* Parm 5: struct sparm.  */
+   dx.l = lparms.gprs[5];
+   dy.l = lparms.gprs[6];
+ 
+   if (s.a != dx.i[0])
+     abort ();
+   if (s.dd != dy.d)
+     abort ();
+ 
+   /* Parm 6: double.  */
+   if (gg != lparms.fprs[2])
+     abort ();
+ 
+   sp = __builtin_frame_address (0);
+   sp = sp->backchain;
+ 
+   /* Parm 7: struct sparm.  */
+   dx.l = sp->slot[8].l;
+   dy.l = sp->slot[9].l;
+   if (t.a != dx.i[0])
+     abort ();
+   if (t.dd != dy.d)
+     abort ();
+ 
+   /* Parm 8: int.  */
+   if (e != sp->slot[10].l)
+     abort ();
+ 
+   /* Parm 9: double.  */
+ 
+   if (hh != lparms.fprs[3])
+     abort ();
+ }
+ 
+ int
+ main ()
+ {
+   char *s = "ii";
+ 
+   fcld (s, 1, 1.0);
+   fcldi (s, 1, 1.0, -2);
+   fcldu (s, 1, 1.0, 2);
+   fceld (s, 1, 1.0);
+   fciiedl (s, 1, 2, 1.0, 3);
+   fididisdsid (1, 1.0, 2, 2.0, -1, (sparm)
+ 	       {
+ 	       3, 3.0}, 4.0, (sparm)
+ 	       {
+ 	       5, 5.0}, 6, 7.0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-abi-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,404 ----
+ /* { dg-do run { target powerpc64-*-linux* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-O2 -fprofile -mprofile-kernel -maltivec -mabi=altivec" } */
+ #include <stdarg.h>
+ #include <signal.h>
+ #include <altivec.h>
+ #include <stdlib.h>
+ 
+ /* Testcase to check for ABI compliance of parameter passing
+    for the PowerPC64 ABI.  */
+ 
+ void __attribute__((no_instrument_function))
+ sig_ill_handler (int sig)
+ {
+     exit(0);
+ }
+ 
+ extern void abort (void);
+ 
+ typedef struct
+ {
+   unsigned long gprs[8];
+   double fprs[13];
+   long pad;
+   vector int vrs[12];
+ } reg_parms_t;
+ 
+ reg_parms_t gparms;
+ 
+ /* _mcount call is done on Linux ppc64 early in the prologue.
+    my_mcount will provide a entry point _mcount,
+    which will save all register to gparms. 
+    Note that _mcount need to restore lr to original value,
+    therefor use ctr to return.  
+ */
+ 
+ void __attribute__((no_instrument_function))
+ my_mcount() 
+ {
+   asm volatile (".type	_mcount,@function\n\t"
+ 		".globl	_mcount\n\t"
+ 		"_mcount:\n\t"
+                 "mflr 0\n\t"
+                 "mtctr 0\n\t"
+                 "ld 0,16(1)\n\t"
+ 		"mtlr 0\n\t"
+ 		"ld 11,gparms@got(2)\n\t" 
+ 		"std 3,0(11)\n\t"		
+ 		"std 4,8(11)\n\t"
+ 		"std 5,16(11)\n\t"	
+ 		"std 6,24(11)\n\t"	
+ 		"std 7,32(11)\n\t"	
+ 		"std 8,40(11)\n\t"	
+ 		"std 9,48(11)\n\t"	
+ 		"std 10,56(11)\n\t"   
+ 		"stfd 1,64(11)\n\t"	
+ 		"stfd 2,72(11)\n\t"	
+ 		"stfd 3,80(11)\n\t"	
+ 		"stfd 4,88(11)\n\t"	
+ 		"stfd 5,96(11)\n\t"	
+ 		"stfd 6,104(11)\n\t"	
+ 		"stfd 7,112(11)\n\t"	
+ 		"stfd 8,120(11)\n\t"	
+ 		"stfd 9,128(11)\n\t"	
+ 		"stfd 10,136(11)\n\t"	
+ 		"stfd 11,144(11)\n\t"	
+ 		"stfd 12,152(11)\n\t" 
+ 		"stfd 13,160(11)\n\t" 
+ 		"li 3,176\n\t"        
+ 		"stvx 2,3,11\n\t"	
+ 		"addi 3,3,16\n\t" 
+ 		"stvx 3,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 4,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 5,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 6,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 7,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 8,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 9,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 10,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 11,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 12,3,11\n\t"	
+ 		"addi 3,3,16\n\t"     
+ 		"stvx 13,3,11\n\t"	
+ 		"ld 3,0(11)\n\t"
+ 		"bctr");
+ }
+ 
+ /* Stackframe structure relevant for parameter passing.  */
+ typedef union
+ {
+   double d;
+   unsigned long l;
+   unsigned int i[2];
+ } parm_t;
+ 
+ typedef struct sf
+ {
+   struct sf *backchain;
+   long a1;
+   long a2;
+   long a3;
+   long a4;
+   long a5;
+   parm_t slot[100];
+ } stack_frame_t;
+ 
+ typedef union
+ {
+   unsigned int i[4];
+   unsigned long l[2];
+   vector int v;
+ } vector_int_t;
+ 
+ /* Paramter passing.
+    s : gpr 3
+    v : vpr 2
+    i : gpr 7
+ */
+ void __attribute__ ((noinline))
+ fcvi (char *s, vector int v, int i)
+ {
+   reg_parms_t lparms = gparms;
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort();
+ 
+   if (!vec_all_eq (v, lparms.vrs[0]))
+     abort ();
+ 
+   if ((long) i != lparms.gprs[4])
+     abort();
+ }
+ /* Paramter passing.
+    s : gpr 3
+    v : vpr 2
+    w : vpr 3
+ */
+ 
+ void __attribute__ ((noinline))
+ fcvv (char *s, vector int v, vector int w)
+ {
+   vector int a, c = {6, 8, 10, 12};
+   reg_parms_t lparms = gparms;
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort();
+ 
+   if (!vec_all_eq (v, lparms.vrs[0]))
+     abort ();
+ 
+   if (!vec_all_eq (w, lparms.vrs[1]))
+     abort ();
+ 
+   a = vec_add (v,w);
+ 
+   if (!vec_all_eq (a, c))
+     abort ();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    i : gpr 4
+    v : vpr 2
+    w : vpr 3
+ */
+ void __attribute__ ((noinline))
+ fcivv (char *s, int i, vector int v, vector int w)
+ {
+   vector int a, c = {6, 8, 10, 12};
+   reg_parms_t lparms = gparms;
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort();
+ 
+   if ((long) i != lparms.gprs[1])
+     abort();
+ 
+   if (!vec_all_eq (v, lparms.vrs[0]))
+     abort ();
+ 
+   if (!vec_all_eq (w, lparms.vrs[1]))
+     abort ();
+ 
+   a = vec_add (v,w);
+   
+   if (!vec_all_eq (a, c))
+     abort ();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    v : slot 2-3
+    w : slot 4-5
+ */
+ 
+ void __attribute__ ((noinline))
+ fcevv (char *s, ...)
+ {
+   vector int a, c = {6, 8, 10, 12};
+   vector int v,w;
+   stack_frame_t *sp;
+   reg_parms_t lparms = gparms;
+   va_list arg;
+ 
+   va_start (arg, s);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort();
+ 
+   v = va_arg(arg, vector int);
+   w = va_arg(arg, vector int);
+   a = vec_add (v,w);
+   
+   if (!vec_all_eq (a, c))
+     abort ();
+ 
+   /* Go back one frame.  */
+   sp = __builtin_frame_address(0);
+   sp = sp->backchain;
+   
+   if (sp->slot[2].l != 0x100000002ULL
+       || sp->slot[4].l != 0x500000006ULL)
+     abort();
+ }
+ 
+ /* Paramter passing.
+    s : gpr 3
+    i : gpr 4
+    j : gpr 5
+    v : slot 4-5
+    w : slot 6-7
+ */
+ void __attribute__ ((noinline))
+ fciievv (char *s, int i, int j, ...)
+ {
+   vector int a, c = {6, 8, 10, 12};
+   vector int v,w;
+   stack_frame_t *sp;
+   reg_parms_t lparms = gparms;
+   va_list arg;
+ 
+   va_start (arg, j);
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort();
+ 
+   if ((long) i != lparms.gprs[1])
+     abort();
+ 
+   if ((long) j != lparms.gprs[2])
+     abort();
+   
+   v = va_arg(arg, vector int);
+   w = va_arg(arg, vector int);
+   a = vec_add (v,w);
+   
+   if (!vec_all_eq (a, c))
+     abort ();
+ 
+   sp = __builtin_frame_address(0);
+   sp = sp->backchain;
+   
+   if (sp->slot[4].l != 0x100000002ULL
+       || sp->slot[6].l != 0x500000006ULL)
+     abort();
+ }
+ 
+ void __attribute__ ((noinline))
+ fcvevv (char *s, vector int x, ...)
+ {
+   vector int a, c = {7, 10, 13, 16};
+   vector int v,w;
+   stack_frame_t *sp;
+   reg_parms_t lparms = gparms;
+   va_list arg;
+ 
+   va_start (arg, x);
+   
+   v = va_arg(arg, vector int);
+   w = va_arg(arg, vector int);
+ 
+   a = vec_add (v,w);
+   a = vec_add (a, x);
+  
+   if (!vec_all_eq (a, c))
+     abort ();
+ 
+   sp = __builtin_frame_address(0);
+   sp = sp->backchain;
+   
+   if (sp->slot[4].l != 0x100000002ULL
+       || sp->slot[6].l != 0x500000006ULL)
+     abort();
+ }
+ 
+ int __attribute__((no_instrument_function, noinline))
+ main1() 
+ {   
+   char *s = "vv";
+   vector int v = {1, 2, 3, 4};
+   vector int w = {5, 6, 7, 8};
+  
+   fcvi (s, v, 2);
+   fcvv (s, v, w);
+   fcivv (s, 1, v, w);
+   fcevv (s, v, w);
+   fciievv (s, 1, 2, v, w);
+   fcvevv (s, v, v, w);
+   return 0;
+ }
+ 
+ int __attribute__((no_instrument_function)) 
+ main()
+ {
+   /* Exit on systems without altivec.  */
+   signal (SIGILL, sig_ill_handler);
+   /* Altivec instruction, 'vor %v0,%v0,%v0'.  */
+   asm volatile (".long 0x10000484");
+   signal (SIGILL, SIG_DFL);
+ 
+   return main1 ();
+ }
+ 
+ /* Paramter passing.
+    Function called with no prototype.
+    s : gpr 3
+    v : vpr 2 gpr 5-6
+    w : vpr 3 gpr 7-8
+    x : vpr 4 gpr 9-10
+    y : vpr 5 slot 8-9
+ */
+ void
+ fnp_cvvvv (char *s, vector int v, vector int w,
+ 	   vector int x, vector int y)
+ {
+   vector int a, c = {12, 16, 20, 24};
+   reg_parms_t lparms = gparms;
+   stack_frame_t *sp;
+   vector_int_t v0, v1, v2, v3;
+ 
+   if (s != (char *) lparms.gprs[0])
+     abort();
+ 
+   if (!vec_all_eq (v, lparms.vrs[0]))
+     abort ();
+ 
+   if (!vec_all_eq (w, lparms.vrs[1]))
+     abort ();
+ 
+   if (!vec_all_eq (x, lparms.vrs[2]))
+     abort ();
+ 
+   if (!vec_all_eq (y, lparms.vrs[3]))
+     abort ();
+ 
+   a = vec_add (v,w);
+   a = vec_add (a,x);  
+   a = vec_add (a,y);  
+   
+   if (!vec_all_eq (a, c))
+     abort ();
+   
+   v0.v = lparms.vrs[0];
+   v1.v = lparms.vrs[1];
+   v2.v = lparms.vrs[2];
+   v3.v = lparms.vrs[3];
+ 
+   if (v0.l[0] != lparms.gprs[2])
+     abort ();
+ 
+   if (v0.l[1] != lparms.gprs[3])
+     abort ();
+ 
+   if (v1.l[0] != lparms.gprs[4])
+     abort ();
+ 
+   if (v1.l[1] != lparms.gprs[5])
+     abort ();
+ 
+   if (v2.l[0] != lparms.gprs[6])
+     abort ();
+ 
+   if (v2.l[1] != lparms.gprs[7])
+     abort ();
+ 
+   sp = __builtin_frame_address(0);
+   sp = sp->backchain;
+   
+   if (sp->slot[8].l != v3.l[0])
+     abort ();
+ 
+   if (sp->slot[9].l != v3.l[1])
+     abort ();
+ }  
+   
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-abi-3.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-abi-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-abi-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-abi-3.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do compile { target powerpc64-*-linux* } } */
+ /* { dg-require-effective-target lp64 } */
+ /* { dg-options "-Wall" } */
+ /* Testcase to check for ABI compliance of parameter passing
+    for the PowerPC64 ABI.  */
+ 
+ typedef int __attribute__((vector_size(16))) v4si;
+ typedef int __attribute__((vector_size(8))) v2si;
+ 
+ v4si 
+ f(v4si v)
+ { /* { dg-error "altivec instructions are disabled" "PR18631" { xfail *-*-* } } */
+     return v;
+ }
+ 
+ v2si 
+ g(v2si v)
+ {
+     return v;
+ }
+ 
+ int 
+ main()
+ {
+     v4si v;
+     v2si w;
+     v = f (v); /* { dg-error "altivec instructions are disabled" "PR18631" { xfail *-*-* } } */
+     w = g (w);
+     return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-toc.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-toc.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/ppc64-toc.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/ppc64-toc.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do link } */
+ /* { dg-options "-mminimal-toc" { target { powerpc64-*-* && lp64 } } } */
+ 
+ char *strchr (const char *, int);
+ 
+ int
+ foo (int a)
+ {
+   int b;
+ 
+   b = 0;
+   if ("/"[1] != '\0')
+     if (strchr ("/", a))
+       b = 1;
+   return b;
+ }
+ 
+ int
+ main (void)
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr16155.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr16155.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr16155.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr16155.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec -ansi" } */
+ 
+ /* PR 16155
+  * Compilation of a simple altivec test program fails if the -ansi flag is
+  * given to gcc, when compiling with -maltivec.
+  */
+ 
+ #include <altivec.h>
+ 
+ void foo(void)
+ {
+   vector unsigned short a, b;
+   a = vec_splat(b, 0);
+ }
+ 
+ /* { dg-bogus "parse error before \"typeof\"" "-maltivec -mansi" { target powerpc*-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr16286.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr16286.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr16286.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr16286.c	Tue Nov  8 16:05:15 2005
***************
*** 0 ****
--- 1,27 ----
+ /* { dg-do compile { target powerpc*-*-* } } */
+ /* { dg-xfail-if "" { "powerpc-*-eabispe*" "powerpc-ibm-aix*" } { "*" } { "" } } */
+ /* { dg-options "-maltivec" } */
+ 
+ /* PR 16286
+    Compilation of a simple Altivec test program fails if vector, pixel
+    and/or bool are #undefined when compiling with -maltivec.  This may be
+    done for building C++ programs that use the STL <vector>.  */
+ 
+ #include <altivec.h>
+ #undef vector
+ #undef pixel
+ #undef bool
+ 
+ void test(void)
+ {
+         __vector unsigned int a, b;
+ 	__vector __pixel v0;
+ 	__vector __bool v1;
+ 
+         a = vec_and(a, b);
+ 	vec_step (b);
+ }
+ 
+ /* { dg-bogus "(syntax|parse) error before \"vector\"" "-maltivec" { target powerpc*-*-* } 0 } */
+ /* { dg-bogus "(syntax|parse) error before \"pixel\"" "-maltivec" { target powerpc*-*-* } 0 } */
+ /* { dg-bogus "(syntax|parse) error before \"bool\"" "-maltivec" { target powerpc*-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr18096-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr18096-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr18096-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr18096-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,12 ----
+ /* PR middle-end/18096  */
+ /* { dg-do compile { target powerpc-*-* } } */
+ /* { dg-options "-O2" } */
+ 
+ void f(char*);
+ 
+ void mkcatdefs(char *fname) 
+ {
+   char line [2147483647];
+   f(line);
+ } /* { dg-warning "stack frame too large" "stack frame too large" } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr25960.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr25960.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/pr25960.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/pr25960.c	Fri Feb  3 12:05:51 2006
***************
*** 0 ****
--- 1,17 ----
+ /* { dg-do run { target { powerpc*-*-darwin* powerpc*-*-aix* rs6000-*-* powerpc*-*-linux* } } } */
+ /* { dg-options "-O2 -mlong-double-128" } */
+ 
+ extern void abort (void);
+ 
+ volatile long double l, m, n;
+ 
+ int
+ main (void)
+ {
+   l = __builtin_copysignl (0.0L, -1.0L);
+   m = __builtin_copysignl (0.0L, -1.0L);
+   n = l + m;
+   if (__builtin_copysignl (1.0L, n) >= 0.0L)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-fpint-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target powerpc*-*-darwin* powerpc*-*-linux* } } */
+ /* { dg-options "-mno-powerpc-gfxopt -mpowerpc64" } */
+ extern void bar (void *);
+ extern double x;
+ void
+ foo (void)
+ {
+   char buf2 [32][1024];
+   bar (buf2 [(int) x]);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-fpint.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile { target powerpc*-*-* rs6000-*-* } } */
+ /* { dg-options "-mno-powerpc-gfxopt" } */
+ /* { dg-final { scan-assembler-not "stfiwx" } } */
+ 
+ /* A basic test of the old-style (not stfiwx) fp -> int conversion.  */
+ int f(double a, double b)
+ {
+   int a1 = a;
+   int b1 = b;
+   return a1+b1;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,26 ----
+ /* { dg-do run { target powerpc*-*-darwin* powerpc*-*-aix* powerpc64-*-linux rs6000-*-* } } */
+ /* { dg-options "-mlong-double-128" } */
+ 
+ /* Check that long double values are rounded correctly when being converted
+    to 32-bit integers.  All these values are of the form +/- 2 +/- 2^-60.  */
+ 
+ extern void abort(void);
+ extern void exit(int);
+ 
+ int main(void)
+ {
+   long double l1 = 1.9999999999999999991326382620115964527941L;
+   long double l2 = 2.0000000000000000008673617379884035472059L;
+   long double l3 = -2.0000000000000000008673617379884035472059L;
+   long double l4 = -1.9999999999999999991326382620115964527941L;
+   
+   if ((int) l1 != 1)
+     abort ();
+   if ((int) l2 != 2)
+     abort ();
+   if ((int) l3 != -2)
+     abort ();
+   if ((int) l4 != -1)
+     abort ();
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-ldouble-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do run { target powerpc*-*-darwin* powerpc*-*-aix* powerpc64-*-linux rs6000-*-* } } */
+ /* { dg-options "-mlong-double-128" } */
+ 
+ /* Check that LDBL_EPSILON is right for 'long double'.  */
+ 
+ #include <float.h>
+ 
+ extern void abort (void);
+ 
+ int main(void)
+ {
+   volatile long double ee = 1.0;
+   long double eps = ee;
+   while (ee + 1.0 != 1.0)
+     {
+       eps = ee;
+       ee = eps / 2;
+     }
+   if (eps != LDBL_EPSILON)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-power2-1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-power2-1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-power2-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-power2-1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,21 ----
+ /* { dg-do compile { target powerpc-*-* rs6000-*-* }  } */
+ /* { dg-options "-O3 -mcpu=power2 -fno-schedule-insns -w -mhard-float" } */
+ /* This used to ICE as the peephole was not checking to see
+    if the register is a floating point one (I think this cannot
+    happen in real life except in this example).  */
+ 
+ register volatile double t1 __asm__("r14");
+ register volatile double t2 __asm__("r15");
+ register volatile double t3 __asm__("r16"), t4 __asm__("r17");
+ void t(double *a, double *b)
+ {
+         t1 = a[-1];
+         t2 = a[0];
+         t3 = a[1];
+         t4 = a[2];
+         b[-1] = t1;
+         b[0] = t2;
+         b[1] = t3;
+         b[2] = t4;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-power2-2.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-power2-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/rs6000-power2-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/rs6000-power2-2.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,22 ----
+ /* { dg-do compile { target powerpc-*-* rs6000-*-* }  } */
+ /* { dg-options "-O3 -mcpu=power2 -fno-schedule-insns -w -mhard-float" } */
+ /* { dg-final { scan-assembler-not "lfd" } } */
+ /* { dg-final { scan-assembler-not "sfd" } } */
+ /* { dg-final { scan-assembler "lfq" } } */
+ /* { dg-final { scan-assembler "stfq" } } */
+ 
+ register volatile double t1 __asm__("fr0");
+ register volatile double t2 __asm__("fr1");
+ register volatile double t3 __asm__("fr2"), t4 __asm__("fr3");
+ void t(double *a, double *b)
+ {
+         t1 = a[-1];
+         t2 = a[0];
+         t3 = a[1];
+         t4 = a[2];
+         b[-1] = t1;
+         b[0] = t2;
+         b[1] = t3;
+         b[2] = t4;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/spe1.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/spe1.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/spe1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/spe1.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile { target powerpc-*-eabi* } } */
+ /* { dg-options "-mcpu=8540 -mabi=spe -O0" } */
+ 
+ /* (Test with -O0 so we don't optimize any of them away).  */
+ 
+ 
+ typedef float __attribute__((vector_size(8))) __ev64_fs__;
+ 
+ static __ev64_opaque__ Foo (void);
+ 
+ void Bar ()
+ {
+   __ev64_fs__ fs = Foo ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/powerpc/stabs-attrib-vect-darwin.c	Thu Nov  3 22:20:22 2005
***************
*** 0 ****
--- 1,11 ----
+ /* Test Attribute Vector associated with vector type stabs.  */
+ /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-options "-gstabs -fno-eliminate-unused-debug-types -faltivec" } */
+ 
+ int main ()
+ {
+   vector int vi = { 6,7,8,9 };
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler ".stabs.*vi\:\\(0,16\\)=\@V" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/fexpand-2.c gcc-4.1.0/gcc/testsuite/gcc.target/sparc/fexpand-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/fexpand-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/fexpand-2.c	Wed Jun  8 16:03:31 2005
***************
*** 0 ****
--- 1,11 ----
+ /* { dg-do compile } */
+ /* { dg-options "-O1 -fdump-tree-final_cleanup -mcpu=ultrasparc -mvis" } */
+ typedef short vec16 __attribute__((vector_size(8)));
+ typedef unsigned char vec8 __attribute__((vector_size(4)));
+ 
+ vec16 foo () {
+   vec8 a = {(unsigned char)1,(unsigned char)2,(unsigned char)4,(unsigned char)8};
+   return __builtin_vis_fexpand (a);
+ }
+ 
+ /* { dg-final { scan-tree-dump "{ 16, 32, 64, 128 }" "final_cleanup" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/fpmerge-2.c gcc-4.1.0/gcc/testsuite/gcc.target/sparc/fpmerge-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/fpmerge-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/fpmerge-2.c	Wed Jun  8 16:03:31 2005
***************
*** 0 ****
--- 1,15 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcpu=ultrasparc -mvis -O1 -fdump-tree-final_cleanup" } */
+ typedef unsigned char pixel __attribute__((vector_size(8)));
+ typedef unsigned char vec8 __attribute__((vector_size(4)));
+ 
+ #define _(ARG) (unsigned char)ARG
+ 
+ pixel foo () {
+   vec8 a = { _(1), _(3), _(5), _(7) };
+   vec8 b = { _(2), _(4), _(6), _(8) };
+   return __builtin_vis_fpmerge (a, b);
+ }
+ 
+ /* { dg-final { scan-assembler-not "fpmerge\t%" } } */
+ /* { dg-final { scan-tree-dump "{ 1, 2, 3, 4, 5, 6, 7, 8 }" "final_cleanup" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/fpmul-2.c gcc-4.1.0/gcc/testsuite/gcc.target/sparc/fpmul-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/fpmul-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/fpmul-2.c	Wed Jun  8 16:03:31 2005
***************
*** 0 ****
--- 1,47 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcpu=ultrasparc -mvis -O1 -fdump-tree-final_cleanup" } */
+ 
+ typedef int vec32 __attribute__((vector_size(8)));
+ typedef short vec16 __attribute__((vector_size(8)));
+ typedef unsigned char vec8 __attribute__((vector_size(8)));
+ 
+ typedef unsigned char pixel __attribute__((vector_size(4)));
+ typedef short pixel16 __attribute__((vector_size(4)));
+ 
+ vec16 foo1 () {
+   pixel a = { (unsigned char)1, (unsigned char)2, (unsigned char)3, (unsigned char)4 };
+   vec16 b = { (short)1, (short)2, (short)3, (short)4 };
+   return __builtin_vis_fmul8x16 (a, b);
+ }
+ 
+ vec16 foo1_1 () {
+   pixel a = { (unsigned char)1, (unsigned char)1, (unsigned char)1, (unsigned char)1 };
+   vec16 b = { (short)256, (short)512, (short)1024, (short)2048 };
+   return __builtin_vis_fmul8x16 (a, b);
+ }
+ 
+ vec16 foo1_2 () {
+   pixel a = { (unsigned char)255, (unsigned char)255, (unsigned char)255, (unsigned char)255 };
+   vec16 b = { (short)256, (short)512, (short)1024, (short)32767 };
+   return __builtin_vis_fmul8x16 (a, b);
+ }
+ /* { dg-final { scan-assembler-not "fmul8x16\t%" } } */
+ /* { dg-final { scan-tree-dump "{ 0, 0, 0, 0 }" "final_cleanup" } } */
+ /* { dg-final { scan-tree-dump "{ 1, 2, 4, 8 }" "final_cleanup" } } */
+ /* { dg-final { scan-tree-dump "{ 255, 510, 1020, 32639 }" "final_cleanup" } } */
+ 
+ vec16 foo2 () {
+   pixel a = { 1, 2, 3, 4 };
+   pixel16 b = { 256, 512 };
+   return __builtin_vis_fmul8x16au (a, b);
+ }
+ /* { dg-final { scan-assembler-not "fmul8x16au\t%" } } */
+ /* { dg-final { scan-tree-dump "{ 1, 2, 3, 4 }" "final_cleanup" } } */
+ 
+ vec16 foo3 () {
+   pixel a = { 1, 2, 3, 4 };
+   pixel16 b = { 256, 512 };
+   return __builtin_vis_fmul8x16al (a, b);
+ }
+ /* { dg-final { scan-assembler-not "fmul8x16al\t%" } } */
+ /* { dg-final { scan-tree-dump "{ 2, 4, 6, 8 }" "final_cleanup" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/noresult.c gcc-4.1.0/gcc/testsuite/gcc.target/sparc/noresult.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/noresult.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/noresult.c	Wed Jun  8 16:03:31 2005
***************
*** 0 ****
--- 1,10 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcpu=ultrasparc -mvis" } */
+ typedef short vec16 __attribute__((vector_size(8)));
+ typedef char vec8 __attribute__((vector_size(4)));
+ 
+ void foo (vec16 a) {
+   __builtin_vis_fpack16 (a);
+ }
+ 
+ /* { dg-final { scan-assembler-not "fpack16\t%" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/pdist-2.c gcc-4.1.0/gcc/testsuite/gcc.target/sparc/pdist-2.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/pdist-2.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/pdist-2.c	Wed Jun  8 16:03:31 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ /* { dg-options "-mcpu=ultrasparc -mvis -O1 -fdump-tree-final_cleanup" } */
+ 
+ typedef long long int64_t;
+ typedef unsigned char vec8 __attribute__((vector_size(8)));
+ 
+ #define _(A) (unsigned char)A
+ 
+ int64_t foo () {
+   int64_t d = 2;
+   vec8 a = { _(1), _(2), _(3), _(4), _(5), _(6), _(7), _(255) };
+   vec8 b = { _(2), _(4), _(8), _(16), _(32), _(64), _(128), _(8) };
+   d = __builtin_vis_pdist (a, b, d);
+   return d;
+ }
+ 
+ /* { dg-final { scan-assembler-not "pdist\t%" } } */
+ /* { dg-final { scan-tree-dump "return 475" "final_cleanup" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/pdist-3.c gcc-4.1.0/gcc/testsuite/gcc.target/sparc/pdist-3.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/pdist-3.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/pdist-3.c	Wed Jun  8 16:03:31 2005
***************
*** 0 ****
--- 1,36 ----
+ /* { dg-do run } */
+ /* { dg-options "-mcpu=ultrasparc -mvis -O1" } */
+ 
+ typedef long long int64_t;
+ typedef unsigned char vec8 __attribute__((vector_size(8)));
+ 
+ extern void abort ();
+ extern void exit (int);
+ 
+ #define _(A) (unsigned char)A
+ 
+ int64_t foo (vec8 a, vec8 b) {
+   int64_t d = 2;
+   d = __builtin_vis_pdist (a, b, d);
+   return d;
+ }
+ 
+ int64_t bar () {
+   int64_t d = 2;
+   vec8 a = { _(1), _(2), _(3), _(4), _(5), _(6), _(7), _(255) };
+   vec8 b = { _(2), _(4), _(8), _(16), _(32), _(64), _(128), _(8) };
+   d = __builtin_vis_pdist (a, b, d);
+   return d;
+ }
+ 
+ 
+ static vec8 a = { 1, 2, 3, 4, 5, 6, 7, 255 };
+ static vec8 b = { 2, 4, 8, 16, 32, 64, 128, 8 };
+ 
+ int main (int argc, char *argv[]) {
+ 
+   if (foo (a, b) != bar ())
+     abort ();
+ 
+   exit (0);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/sparc/sparc.exp gcc-4.1.0/gcc/testsuite/gcc.target/sparc/sparc.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/sparc/sparc.exp	Wed Nov 10 10:14:36 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/sparc/sparc.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/README.gcc gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/README.gcc
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/README.gcc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/README.gcc	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,18 ----
+ This contains a testsuite for the AMD64 psABI.
+ The ABI document is at http://www.x86-64.org/documentation/abi.pdf .
+ The content of this directory in the GCC tree is just a (partial) copy of the
+ ABI testsuite at cvs.x86-64.org.
+ 
+ See http://www.x86-64.org/cvsaccess for accessing the anonymous CVS server.
+ The module 'abitest' contains the master copy of this directory.
+ 
+ The whole testsuite is licensed under GPL v2.
+ 
+ Be aware that some of the test_*.c files here are generated, with the
+ generators only being in the master copy of the testsuite.
+ 
+ To change anything, please contact discuss@x86-64.org or the current
+ maintainer of the testuite directly.
+ 
+ The current maintainer is:
+   matz@suse.de
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/abi-x86_64.exp	Sat Jun 25 01:45:27 2005
***************
*** 0 ****
--- 1,37 ----
+ # Copyright (C) 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ 
+ # The x86-64 ABI testsuite needs one additional assembler file for most
+ # testcases.  For simplicity we will just link it into each test.
+ 
+ load_lib c-torture.exp
+ load_lib target-supports.exp
+ 
+ if { (![istarget x86_64-*-*] && ![istarget i?86-*-*])
+      || ![is-effective-target lp64] } then {
+   return
+ }
+ 
+ 
+ set additional_flags "-W -Wall"
+ 
+ foreach src [lsort [find $srcdir/$subdir test_*.c]] {
+     if {[runtest_file_p $runtests $src]} {
+ 	c-torture-execute [list $src \
+ 			        $srcdir/$subdir/asm-support.s] \
+ 				$additional_flags
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/args.h gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/args.h
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/args.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/args.h	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,144 ----
+ #ifndef INCLUDED_ARGS_H
+ #define INCLUDED_ARGS_H
+ 
+ #include <string.h>
+ 
+ /* This defines the calling sequences for integers and floats.  */
+ #define I0 rdi
+ #define I1 rsi
+ #define I2 rdx
+ #define I3 rcx
+ #define I4 r8
+ #define I5 r9
+ #define F0 xmm0
+ #define F1 xmm1
+ #define F2 xmm2
+ #define F3 xmm3
+ #define F4 xmm4
+ #define F5 xmm5
+ #define F6 xmm6
+ #define F7 xmm7
+ 
+ typedef union {
+   float _float[4];
+   double _double[2];
+   long _long[2];
+   int _int[4];
+   unsigned long _ulong[2];
+ } XMM_T;
+ 
+ typedef union {
+   float _float;
+   double _double;
+   ldouble _ldouble;
+   ulong _ulong[2];
+ } X87_T;
+ extern void (*callthis)(void);
+ extern unsigned long rax,rbx,rcx,rdx,rsi,rdi,rsp,rbp,r8,r9,r10,r11,r12,r13,r14,r15;
+ XMM_T xmm_regs[16];
+ X87_T x87_regs[8];
+ extern volatile unsigned long volatile_var;
+ extern void snapshot (void);
+ extern void snapshot_ret (void);
+ #define WRAP_CALL(N) \
+   (callthis = (void (*)()) (N), (typeof (&N)) snapshot)
+ #define WRAP_RET(N) \
+   (callthis = (void (*)()) (N), (typeof (&N)) snapshot_ret)
+ 
+ /* Clear all integer registers.  */
+ #define clear_int_hardware_registers \
+   asm __volatile__ ("xor %%rax, %%rax\n\t" \
+ 		    "xor %%rbx, %%rbx\n\t" \
+ 		    "xor %%rcx, %%rcx\n\t" \
+ 		    "xor %%rdx, %%rdx\n\t" \
+ 		    "xor %%rsi, %%rsi\n\t" \
+ 		    "xor %%rdi, %%rdi\n\t" \
+ 		    "xor %%r8, %%r8\n\t" \
+ 		    "xor %%r9, %%r9\n\t" \
+ 		    "xor %%r10, %%r10\n\t" \
+ 		    "xor %%r11, %%r11\n\t" \
+ 		    "xor %%r12, %%r12\n\t" \
+ 		    "xor %%r13, %%r13\n\t" \
+ 		    "xor %%r14, %%r14\n\t" \
+ 		    "xor %%r15, %%r15\n\t" \
+ 		    ::: "rax", "rbx", "rcx", "rdx", "rsi", "rdi", "r8", \
+ 		    "r9", "r10", "r11", "r12", "r13", "r14", "r15");
+ 
+ /* This is the list of registers available for passing arguments. Not all of
+    these are used or even really available.  */
+ struct IntegerRegisters
+ {
+   unsigned long rax, rbx, rcx, rdx, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15;
+ };
+ struct FloatRegisters
+ {
+   double mm0, mm1, mm2, mm3, mm4, mm5, mm6, mm7;
+   ldouble st0, st1, st2, st3, st4, st5, st6, st7;
+   XMM_T xmm0, xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7, xmm8, xmm9,
+         xmm10, xmm11, xmm12, xmm13, xmm14, xmm15;
+ };
+ 
+ /* Implemented in scalarargs.c  */
+ extern struct IntegerRegisters iregs;
+ extern struct FloatRegisters fregs;
+ extern unsigned int num_iregs, num_fregs;
+ 
+ #define check_int_arguments do { \
+   assert (num_iregs <= 0 || iregs.I0 == I0); \
+   assert (num_iregs <= 1 || iregs.I1 == I1); \
+   assert (num_iregs <= 2 || iregs.I2 == I2); \
+   assert (num_iregs <= 3 || iregs.I3 == I3); \
+   assert (num_iregs <= 4 || iregs.I4 == I4); \
+   assert (num_iregs <= 5 || iregs.I5 == I5); \
+   } while (0)
+ 
+ #define check_char_arguments check_int_arguments
+ #define check_short_arguments check_int_arguments
+ #define check_long_arguments check_int_arguments
+ 
+ /* Clear register struct.  */
+ #define clear_struct_registers \
+   rax = rbx = rcx = rdx = rdi = rsi = rbp = rsp \
+     = r8 = r9 = r10 = r11 = r12 = r13 = r14 = r15 = 0; \
+   memset (&iregs, 0, sizeof (iregs)); \
+   memset (&fregs, 0, sizeof (fregs)); \
+   memset (xmm_regs, 0, sizeof (xmm_regs)); \
+   memset (x87_regs, 0, sizeof (x87_regs));
+ 
+ /* Clear both hardware and register structs for integers.  */
+ #define clear_int_registers \
+   clear_struct_registers \
+   clear_int_hardware_registers
+ 
+ /* TODO: Do the checking.  */
+ #define check_f_arguments(T) { \
+   assert (num_fregs <= 0 || fregs.xmm0._ ## T [0] == xmm_regs[0]._ ## T [0]); \
+   assert (num_fregs <= 1 || fregs.xmm1._ ## T [0] == xmm_regs[1]._ ## T [0]); \
+   assert (num_fregs <= 2 || fregs.xmm2._ ## T [0] == xmm_regs[2]._ ## T [0]); \
+   assert (num_fregs <= 3 || fregs.xmm3._ ## T [0] == xmm_regs[3]._ ## T [0]); \
+   assert (num_fregs <= 4 || fregs.xmm4._ ## T [0] == xmm_regs[4]._ ## T [0]); \
+   assert (num_fregs <= 5 || fregs.xmm5._ ## T [0] == xmm_regs[5]._ ## T [0]); \
+   assert (num_fregs <= 6 || fregs.xmm6._ ## T [0] == xmm_regs[6]._ ## T [0]); \
+   assert (num_fregs <= 7 || fregs.xmm7._ ## T [0] == xmm_regs[7]._ ## T [0]); \
+   } while (0)
+ 
+ #define check_float_arguments check_f_arguments(float)
+ #define check_double_arguments check_f_arguments(double)
+ 
+ /* ldoubles are not passed in registers */
+ #define check_ldouble_arguments
+ 
+ /* TODO: Do the clearing.  */
+ #define clear_float_hardware_registers
+ #define clear_x87_hardware_registers
+ 
+ #define clear_float_registers \
+   clear_struct_registers \
+   clear_float_hardware_registers
+ 
+ #define clear_x87_registers \
+   clear_struct_registers \
+   clear_x87_hardware_registers
+ 
+ 
+ #endif /* INCLUDED_ARGS_H  */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/asm-support.s gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/asm-support.s
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/asm-support.s	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/asm-support.s	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,80 ----
+ 	.file	"snapshot.S"
+ 	.text
+ 	.p2align 4,,15
+ .globl snapshot
+ 	.type	snapshot, @function
+ snapshot:
+ .LFB3:
+ 	movq	%rax, rax(%rip)
+ 	movq	%rbx, rbx(%rip)
+ 	movq	%rcx, rcx(%rip)
+ 	movq	%rdx, rdx(%rip)
+ 	movq	%rdi, rdi(%rip)
+ 	movq	%rsi, rsi(%rip)
+ 	movq	%rbp, rbp(%rip)
+ 	movq	%rsp, rsp(%rip)
+ 	movq	%r8, r8(%rip)
+ 	movq	%r9, r9(%rip)
+ 	movq	%r10, r10(%rip)
+ 	movq	%r11, r11(%rip)
+ 	movq	%r12, r12(%rip)
+ 	movq	%r13, r13(%rip)
+ 	movq	%r14, r14(%rip)
+ 	movq	%r15, r15(%rip)
+ 	movdqu	%xmm0, xmm_regs+0(%rip)
+ 	movdqu	%xmm1, xmm_regs+16(%rip)
+ 	movdqu	%xmm2, xmm_regs+16*2(%rip)
+ 	movdqu	%xmm3, xmm_regs+16*3(%rip)
+ 	movdqu	%xmm4, xmm_regs+16*4(%rip)
+ 	movdqu	%xmm5, xmm_regs+16*5(%rip)
+ 	movdqu	%xmm6, xmm_regs+16*6(%rip)
+ 	movdqu	%xmm7, xmm_regs+16*7(%rip)
+ 	movdqu	%xmm8, xmm_regs+16*8(%rip)
+ 	movdqu	%xmm9, xmm_regs+16*9(%rip)
+ 	movdqu	%xmm10, xmm_regs+16*10(%rip)
+ 	movdqu	%xmm11, xmm_regs+16*11(%rip)
+ 	movdqu	%xmm12, xmm_regs+16*12(%rip)
+ 	movdqu	%xmm13, xmm_regs+16*13(%rip)
+ 	movdqu	%xmm14, xmm_regs+16*14(%rip)
+ 	movdqu	%xmm15, xmm_regs+16*15(%rip)
+ 	jmp	*callthis(%rip)
+ .LFE3:
+ 	.size	snapshot, .-snapshot
+ 
+ 	.p2align 4,,15
+ .globl snapshot_ret
+ 	.type	snapshot_ret, @function
+ snapshot_ret:
+ 	movq	%rdi, rdi(%rip)
+ 	call	*callthis(%rip)
+ 	movq	%rax, rax(%rip)
+ 	movq	%rdx, rdx(%rip)
+ 	movdqu	%xmm0, xmm_regs+0(%rip)
+ 	movdqu	%xmm1, xmm_regs+16(%rip)
+ 	fstpt	x87_regs(%rip)
+ 	fstpt	x87_regs+16(%rip)
+ 	fldt	x87_regs+16(%rip)
+ 	fldt	x87_regs(%rip)
+ 	ret
+ 	.size	snapshot_ret, .-snapshot_ret
+ 
+ 	.comm	callthis,8,8
+ 	.comm	rax,8,8
+ 	.comm	rbx,8,8
+ 	.comm	rcx,8,8
+ 	.comm	rdx,8,8
+ 	.comm	rsi,8,8
+ 	.comm	rdi,8,8
+ 	.comm	rsp,8,8
+ 	.comm	rbp,8,8
+ 	.comm	r8,8,8
+ 	.comm	r9,8,8
+ 	.comm	r10,8,8
+ 	.comm	r11,8,8
+ 	.comm	r12,8,8
+ 	.comm	r13,8,8
+ 	.comm	r14,8,8
+ 	.comm	r15,8,8
+ 	.comm	xmm_regs,256,32
+ 	.comm	x87_regs,128,32
+ 	.comm   volatile_var,8,8
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/defines.h gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/defines.h
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/defines.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/defines.h	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,145 ----
+ #ifndef DEFINED_DEFINES_H
+ #define DEFINED_DEFINES_H
+ 
+ typedef unsigned long ulong;
+ typedef long double ldouble;
+ 
+ /* These defines determines what part of the test should be run.  When
+    GCC implements these parts, the defines should be uncommented to
+    enable testing.  */
+ 
+ /* Scalar type __int128.  */
+ /* #define CHECK_INT128 */
+ 
+ /* Scalar type long double.  */
+ #define CHECK_LONG_DOUBLE
+ 
+ /* Scalar type __float128.  */
+ /* #define CHECK_FLOAT128 */
+ 
+ /* Scalar types __m64 and __m128.  */
+ /* #define CHECK_M64_M128 */
+ 
+ /* Returning of complex type.  */
+ #define CHECK_COMPLEX
+ 
+ /* Structs with size >= 16.  */
+ #define CHECK_LARGER_STRUCTS
+ 
+ /* Checks for passing floats and doubles.  */
+ #define CHECK_FLOAT_DOUBLE_PASSING
+ 
+ /* Union passing with not-extremely-simple unions.  */
+ #define CHECK_LARGER_UNION_PASSING
+ 
+ /* Variable args.  */
+ #define CHECK_VARARGS
+ 
+ /* Check argument passing and returning for scalar types with sizeof = 16.  */
+ /* TODO: Implement these tests. Don't activate them for now.  */
+ #define CHECK_LARGE_SCALAR_PASSING
+ 
+ /* Defines for sizing and alignment.  */
+ 
+ #define TYPE_SIZE_CHAR         1
+ #define TYPE_SIZE_SHORT        2
+ #define TYPE_SIZE_INT          4
+ #define TYPE_SIZE_LONG         8
+ #define TYPE_SIZE_LONG_LONG    8
+ #define TYPE_SIZE_INT128       16
+ #define TYPE_SIZE_FLOAT        4
+ #define TYPE_SIZE_DOUBLE       8
+ #define TYPE_SIZE_LONG_DOUBLE  16
+ #define TYPE_SIZE_FLOAT128     16
+ #define TYPE_SIZE_M64          8
+ #define TYPE_SIZE_M128         16
+ #define TYPE_SIZE_ENUM         4
+ #define TYPE_SIZE_POINTER      8
+ 
+ #define TYPE_ALIGN_CHAR        1
+ #define TYPE_ALIGN_SHORT       2
+ #define TYPE_ALIGN_INT         4
+ #define TYPE_ALIGN_LONG        8
+ #define TYPE_ALIGN_LONG_LONG   8
+ #define TYPE_ALIGN_INT128      16
+ #define TYPE_ALIGN_FLOAT       4
+ #define TYPE_ALIGN_DOUBLE      8
+ #define TYPE_ALIGN_LONG_DOUBLE 16
+ #define TYPE_ALIGN_FLOAT128    16
+ #define TYPE_ALIGN_M64         8
+ #define TYPE_ALIGN_M128        16
+ #define TYPE_ALIGN_ENUM        4
+ #define TYPE_ALIGN_POINTER     8
+ 
+ /* These defines control the building of the list of types to check. There
+    is a string identifying the type (with a comma after), a size of the type
+    (also with a comma and an integer for adding to the total amount of types)
+    and an alignment of the type (which is currently not really needed since
+    the abi specifies that alignof == sizeof for all scalar types).  */
+ #ifdef CHECK_INT128
+ #define CI128_STR "__int128",
+ #define CI128_SIZ TYPE_SIZE_INT128,
+ #define CI128_ALI TYPE_ALIGN_INT128,
+ #define CI128_RET "???",
+ #else
+ #define CI128_STR
+ #define CI128_SIZ
+ #define CI128_ALI
+ #define CI128_RET
+ #endif
+ #ifdef CHECK_LONG_DOUBLE
+ #define CLD_STR "long double",
+ #define CLD_SIZ TYPE_SIZE_LONG_DOUBLE,
+ #define CLD_ALI TYPE_ALIGN_LONG_DOUBLE,
+ #define CLD_RET "x87_regs[0]._ldouble",
+ #else
+ #define CLD_STR
+ #define CLD_SIZ
+ #define CLD_ALI
+ #define CLD_RET
+ #endif
+ #ifdef CHECK_FLOAT128
+ #define CF128_STR "__float128",
+ #define CF128_SIZ TYPE_SIZE_FLOAT128,
+ #define CF128_ALI TYPE_ALIGN_FLOAT128, 
+ #define CF128_RET "???",
+ #else
+ #define CF128_STR
+ #define CF128_SIZ
+ #define CF128_ALI
+ #define CF128_RET
+ #endif
+ #ifdef CHECK_M64_M128
+ #define CMM_STR "__m64", "__m128",
+ #define CMM_SIZ TYPE_SIZE_M64, TYPE_SIZE_M128,
+ #define CMM_ALI TYPE_ALIGN_M64, TYPE_ALIGN_M128,
+ #define CMM_RET "???", "???",
+ #else
+ #define CMM_STR
+ #define CMM_SIZ
+ #define CMM_ALI
+ #define CMM_RET
+ #endif
+ 
+ /* Used in size and alignment tests.  */
+ enum dummytype { enumtype };
+ 
+ extern void abort (void);
+ 
+ /* Assertion macro.  */
+ #define assert(test) if (!(test)) abort()
+ 
+ #ifdef __GNUC__
+ #define ATTRIBUTE_UNUSED __attribute__((__unused__))
+ #else
+ #define ATTRIBUTE_UNUSED
+ #endif
+ 
+ #ifdef __GNUC__
+ #define PACKED __attribute__((__packed__))
+ #else
+ #warning Some tests will fail due to missing __packed__ support
+ #define PACKED
+ #endif
+ 
+ #endif /* DEFINED_DEFINES_H */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/macros.h gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/macros.h
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/macros.h	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/macros.h	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,53 ----
+ #ifndef MACROS_H
+ 
+ #define check_size(_t, _size) assert(sizeof(_t) == (_size))
+ 
+ #define check_align(_t, _align) assert(__alignof__(_t) == (_align))
+ 
+ #define check_align_lv(_t, _align) assert(__alignof__(_t) == (_align) \
+ 					  && (((unsigned long)&(_t)) & ((_align) - 1) ) == 0)
+ 
+ #define check_basic_struct_size_and_align(_type, _size, _align) { \
+   struct _str { _type dummy; } _t; \
+   check_size(_t, _size); \
+   check_align_lv(_t, _align); \
+ }
+ 
+ #define check_array_size_and_align(_type, _size, _align) { \
+   _type _a[1]; _type _b[2]; _type _c[16]; \
+   struct _str { _type _a[1]; } _s; \
+   check_align_lv(_a[0], _align); \
+   check_size(_a, _size); \
+   check_size(_b, (_size*2)); \
+   check_size(_c, (_size*16)); \
+   check_size(_s, _size); \
+   check_align_lv(_s._a[0], _align); \
+ }
+ 
+ #define check_basic_union_size_and_align(_type, _size, _align) { \
+   union _union { _type dummy; } _u; \
+   check_size(_u, _size); \
+   check_align_lv(_u, _align); \
+ }
+ 
+ #define run_signed_tests2(_function, _arg1, _arg2) \
+   _function(_arg1, _arg2); \
+   _function(signed _arg1, _arg2); \
+   _function(unsigned _arg1, _arg2);
+ 
+ #define run_signed_tests3(_function, _arg1, _arg2, _arg3) \
+   _function(_arg1, _arg2, _arg3); \
+   _function(signed _arg1, _arg2, _arg3); \
+   _function(unsigned _arg1, _arg2, _arg3);
+ 
+ /* Check size of a struct and a union of three types.  */
+ 
+ #define check_struct_and_union3(type1, type2, type3, struct_size, align_size) \
+ { \
+   struct _str { type1 t1; type2 t2; type3 t3; } _t; \
+   union _uni { type1 t1; type2 t2; type3 t3; } _u; \
+   check_size(_t, struct_size); \
+   check_size(_u, align_size); \
+ }
+ 
+ #endif // MACROS_H
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_3_element_struct_and_unions.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,523 ----
+ /* This is an autogenerated file. Do not edit.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ /* Check structs and unions of all permutations of 3 basic types.  */
+ int
+ main (void)
+ {
+   check_struct_and_union3(char, char, char, 3, 1);
+   check_struct_and_union3(char, char, short, 4, 2);
+   check_struct_and_union3(char, char, int, 8, 4);
+   check_struct_and_union3(char, char, long, 16, 8);
+   check_struct_and_union3(char, char, long long, 16, 8);
+   check_struct_and_union3(char, char, float, 8, 4);
+   check_struct_and_union3(char, char, double, 16, 8);
+   check_struct_and_union3(char, char, long double, 32, 16);
+   check_struct_and_union3(char, short, char, 6, 2);
+   check_struct_and_union3(char, short, short, 6, 2);
+   check_struct_and_union3(char, short, int, 8, 4);
+   check_struct_and_union3(char, short, long, 16, 8);
+   check_struct_and_union3(char, short, long long, 16, 8);
+   check_struct_and_union3(char, short, float, 8, 4);
+   check_struct_and_union3(char, short, double, 16, 8);
+   check_struct_and_union3(char, short, long double, 32, 16);
+   check_struct_and_union3(char, int, char, 12, 4);
+   check_struct_and_union3(char, int, short, 12, 4);
+   check_struct_and_union3(char, int, int, 12, 4);
+   check_struct_and_union3(char, int, long, 16, 8);
+   check_struct_and_union3(char, int, long long, 16, 8);
+   check_struct_and_union3(char, int, float, 12, 4);
+   check_struct_and_union3(char, int, double, 16, 8);
+   check_struct_and_union3(char, int, long double, 32, 16);
+   check_struct_and_union3(char, long, char, 24, 8);
+   check_struct_and_union3(char, long, short, 24, 8);
+   check_struct_and_union3(char, long, int, 24, 8);
+   check_struct_and_union3(char, long, long, 24, 8);
+   check_struct_and_union3(char, long, long long, 24, 8);
+   check_struct_and_union3(char, long, float, 24, 8);
+   check_struct_and_union3(char, long, double, 24, 8);
+   check_struct_and_union3(char, long, long double, 32, 16);
+   check_struct_and_union3(char, long long, char, 24, 8);
+   check_struct_and_union3(char, long long, short, 24, 8);
+   check_struct_and_union3(char, long long, int, 24, 8);
+   check_struct_and_union3(char, long long, long, 24, 8);
+   check_struct_and_union3(char, long long, long long, 24, 8);
+   check_struct_and_union3(char, long long, float, 24, 8);
+   check_struct_and_union3(char, long long, double, 24, 8);
+   check_struct_and_union3(char, long long, long double, 32, 16);
+   check_struct_and_union3(char, float, char, 12, 4);
+   check_struct_and_union3(char, float, short, 12, 4);
+   check_struct_and_union3(char, float, int, 12, 4);
+   check_struct_and_union3(char, float, long, 16, 8);
+   check_struct_and_union3(char, float, long long, 16, 8);
+   check_struct_and_union3(char, float, float, 12, 4);
+   check_struct_and_union3(char, float, double, 16, 8);
+   check_struct_and_union3(char, float, long double, 32, 16);
+   check_struct_and_union3(char, double, char, 24, 8);
+   check_struct_and_union3(char, double, short, 24, 8);
+   check_struct_and_union3(char, double, int, 24, 8);
+   check_struct_and_union3(char, double, long, 24, 8);
+   check_struct_and_union3(char, double, long long, 24, 8);
+   check_struct_and_union3(char, double, float, 24, 8);
+   check_struct_and_union3(char, double, double, 24, 8);
+   check_struct_and_union3(char, double, long double, 32, 16);
+   check_struct_and_union3(char, long double, char, 48, 16);
+   check_struct_and_union3(char, long double, short, 48, 16);
+   check_struct_and_union3(char, long double, int, 48, 16);
+   check_struct_and_union3(char, long double, long, 48, 16);
+   check_struct_and_union3(char, long double, long long, 48, 16);
+   check_struct_and_union3(char, long double, float, 48, 16);
+   check_struct_and_union3(char, long double, double, 48, 16);
+   check_struct_and_union3(char, long double, long double, 48, 16);
+   check_struct_and_union3(short, char, char, 4, 2);
+   check_struct_and_union3(short, char, short, 6, 2);
+   check_struct_and_union3(short, char, int, 8, 4);
+   check_struct_and_union3(short, char, long, 16, 8);
+   check_struct_and_union3(short, char, long long, 16, 8);
+   check_struct_and_union3(short, char, float, 8, 4);
+   check_struct_and_union3(short, char, double, 16, 8);
+   check_struct_and_union3(short, char, long double, 32, 16);
+   check_struct_and_union3(short, short, char, 6, 2);
+   check_struct_and_union3(short, short, short, 6, 2);
+   check_struct_and_union3(short, short, int, 8, 4);
+   check_struct_and_union3(short, short, long, 16, 8);
+   check_struct_and_union3(short, short, long long, 16, 8);
+   check_struct_and_union3(short, short, float, 8, 4);
+   check_struct_and_union3(short, short, double, 16, 8);
+   check_struct_and_union3(short, short, long double, 32, 16);
+   check_struct_and_union3(short, int, char, 12, 4);
+   check_struct_and_union3(short, int, short, 12, 4);
+   check_struct_and_union3(short, int, int, 12, 4);
+   check_struct_and_union3(short, int, long, 16, 8);
+   check_struct_and_union3(short, int, long long, 16, 8);
+   check_struct_and_union3(short, int, float, 12, 4);
+   check_struct_and_union3(short, int, double, 16, 8);
+   check_struct_and_union3(short, int, long double, 32, 16);
+   check_struct_and_union3(short, long, char, 24, 8);
+   check_struct_and_union3(short, long, short, 24, 8);
+   check_struct_and_union3(short, long, int, 24, 8);
+   check_struct_and_union3(short, long, long, 24, 8);
+   check_struct_and_union3(short, long, long long, 24, 8);
+   check_struct_and_union3(short, long, float, 24, 8);
+   check_struct_and_union3(short, long, double, 24, 8);
+   check_struct_and_union3(short, long, long double, 32, 16);
+   check_struct_and_union3(short, long long, char, 24, 8);
+   check_struct_and_union3(short, long long, short, 24, 8);
+   check_struct_and_union3(short, long long, int, 24, 8);
+   check_struct_and_union3(short, long long, long, 24, 8);
+   check_struct_and_union3(short, long long, long long, 24, 8);
+   check_struct_and_union3(short, long long, float, 24, 8);
+   check_struct_and_union3(short, long long, double, 24, 8);
+   check_struct_and_union3(short, long long, long double, 32, 16);
+   check_struct_and_union3(short, float, char, 12, 4);
+   check_struct_and_union3(short, float, short, 12, 4);
+   check_struct_and_union3(short, float, int, 12, 4);
+   check_struct_and_union3(short, float, long, 16, 8);
+   check_struct_and_union3(short, float, long long, 16, 8);
+   check_struct_and_union3(short, float, float, 12, 4);
+   check_struct_and_union3(short, float, double, 16, 8);
+   check_struct_and_union3(short, float, long double, 32, 16);
+   check_struct_and_union3(short, double, char, 24, 8);
+   check_struct_and_union3(short, double, short, 24, 8);
+   check_struct_and_union3(short, double, int, 24, 8);
+   check_struct_and_union3(short, double, long, 24, 8);
+   check_struct_and_union3(short, double, long long, 24, 8);
+   check_struct_and_union3(short, double, float, 24, 8);
+   check_struct_and_union3(short, double, double, 24, 8);
+   check_struct_and_union3(short, double, long double, 32, 16);
+   check_struct_and_union3(short, long double, char, 48, 16);
+   check_struct_and_union3(short, long double, short, 48, 16);
+   check_struct_and_union3(short, long double, int, 48, 16);
+   check_struct_and_union3(short, long double, long, 48, 16);
+   check_struct_and_union3(short, long double, long long, 48, 16);
+   check_struct_and_union3(short, long double, float, 48, 16);
+   check_struct_and_union3(short, long double, double, 48, 16);
+   check_struct_and_union3(short, long double, long double, 48, 16);
+   check_struct_and_union3(int, char, char, 8, 4);
+   check_struct_and_union3(int, char, short, 8, 4);
+   check_struct_and_union3(int, char, int, 12, 4);
+   check_struct_and_union3(int, char, long, 16, 8);
+   check_struct_and_union3(int, char, long long, 16, 8);
+   check_struct_and_union3(int, char, float, 12, 4);
+   check_struct_and_union3(int, char, double, 16, 8);
+   check_struct_and_union3(int, char, long double, 32, 16);
+   check_struct_and_union3(int, short, char, 8, 4);
+   check_struct_and_union3(int, short, short, 8, 4);
+   check_struct_and_union3(int, short, int, 12, 4);
+   check_struct_and_union3(int, short, long, 16, 8);
+   check_struct_and_union3(int, short, long long, 16, 8);
+   check_struct_and_union3(int, short, float, 12, 4);
+   check_struct_and_union3(int, short, double, 16, 8);
+   check_struct_and_union3(int, short, long double, 32, 16);
+   check_struct_and_union3(int, int, char, 12, 4);
+   check_struct_and_union3(int, int, short, 12, 4);
+   check_struct_and_union3(int, int, int, 12, 4);
+   check_struct_and_union3(int, int, long, 16, 8);
+   check_struct_and_union3(int, int, long long, 16, 8);
+   check_struct_and_union3(int, int, float, 12, 4);
+   check_struct_and_union3(int, int, double, 16, 8);
+   check_struct_and_union3(int, int, long double, 32, 16);
+   check_struct_and_union3(int, long, char, 24, 8);
+   check_struct_and_union3(int, long, short, 24, 8);
+   check_struct_and_union3(int, long, int, 24, 8);
+   check_struct_and_union3(int, long, long, 24, 8);
+   check_struct_and_union3(int, long, long long, 24, 8);
+   check_struct_and_union3(int, long, float, 24, 8);
+   check_struct_and_union3(int, long, double, 24, 8);
+   check_struct_and_union3(int, long, long double, 32, 16);
+   check_struct_and_union3(int, long long, char, 24, 8);
+   check_struct_and_union3(int, long long, short, 24, 8);
+   check_struct_and_union3(int, long long, int, 24, 8);
+   check_struct_and_union3(int, long long, long, 24, 8);
+   check_struct_and_union3(int, long long, long long, 24, 8);
+   check_struct_and_union3(int, long long, float, 24, 8);
+   check_struct_and_union3(int, long long, double, 24, 8);
+   check_struct_and_union3(int, long long, long double, 32, 16);
+   check_struct_and_union3(int, float, char, 12, 4);
+   check_struct_and_union3(int, float, short, 12, 4);
+   check_struct_and_union3(int, float, int, 12, 4);
+   check_struct_and_union3(int, float, long, 16, 8);
+   check_struct_and_union3(int, float, long long, 16, 8);
+   check_struct_and_union3(int, float, float, 12, 4);
+   check_struct_and_union3(int, float, double, 16, 8);
+   check_struct_and_union3(int, float, long double, 32, 16);
+   check_struct_and_union3(int, double, char, 24, 8);
+   check_struct_and_union3(int, double, short, 24, 8);
+   check_struct_and_union3(int, double, int, 24, 8);
+   check_struct_and_union3(int, double, long, 24, 8);
+   check_struct_and_union3(int, double, long long, 24, 8);
+   check_struct_and_union3(int, double, float, 24, 8);
+   check_struct_and_union3(int, double, double, 24, 8);
+   check_struct_and_union3(int, double, long double, 32, 16);
+   check_struct_and_union3(int, long double, char, 48, 16);
+   check_struct_and_union3(int, long double, short, 48, 16);
+   check_struct_and_union3(int, long double, int, 48, 16);
+   check_struct_and_union3(int, long double, long, 48, 16);
+   check_struct_and_union3(int, long double, long long, 48, 16);
+   check_struct_and_union3(int, long double, float, 48, 16);
+   check_struct_and_union3(int, long double, double, 48, 16);
+   check_struct_and_union3(int, long double, long double, 48, 16);
+   check_struct_and_union3(long, char, char, 16, 8);
+   check_struct_and_union3(long, char, short, 16, 8);
+   check_struct_and_union3(long, char, int, 16, 8);
+   check_struct_and_union3(long, char, long, 24, 8);
+   check_struct_and_union3(long, char, long long, 24, 8);
+   check_struct_and_union3(long, char, float, 16, 8);
+   check_struct_and_union3(long, char, double, 24, 8);
+   check_struct_and_union3(long, char, long double, 32, 16);
+   check_struct_and_union3(long, short, char, 16, 8);
+   check_struct_and_union3(long, short, short, 16, 8);
+   check_struct_and_union3(long, short, int, 16, 8);
+   check_struct_and_union3(long, short, long, 24, 8);
+   check_struct_and_union3(long, short, long long, 24, 8);
+   check_struct_and_union3(long, short, float, 16, 8);
+   check_struct_and_union3(long, short, double, 24, 8);
+   check_struct_and_union3(long, short, long double, 32, 16);
+   check_struct_and_union3(long, int, char, 16, 8);
+   check_struct_and_union3(long, int, short, 16, 8);
+   check_struct_and_union3(long, int, int, 16, 8);
+   check_struct_and_union3(long, int, long, 24, 8);
+   check_struct_and_union3(long, int, long long, 24, 8);
+   check_struct_and_union3(long, int, float, 16, 8);
+   check_struct_and_union3(long, int, double, 24, 8);
+   check_struct_and_union3(long, int, long double, 32, 16);
+   check_struct_and_union3(long, long, char, 24, 8);
+   check_struct_and_union3(long, long, short, 24, 8);
+   check_struct_and_union3(long, long, int, 24, 8);
+   check_struct_and_union3(long, long, long, 24, 8);
+   check_struct_and_union3(long, long, long long, 24, 8);
+   check_struct_and_union3(long, long, float, 24, 8);
+   check_struct_and_union3(long, long, double, 24, 8);
+   check_struct_and_union3(long, long, long double, 32, 16);
+   check_struct_and_union3(long, long long, char, 24, 8);
+   check_struct_and_union3(long, long long, short, 24, 8);
+   check_struct_and_union3(long, long long, int, 24, 8);
+   check_struct_and_union3(long, long long, long, 24, 8);
+   check_struct_and_union3(long, long long, long long, 24, 8);
+   check_struct_and_union3(long, long long, float, 24, 8);
+   check_struct_and_union3(long, long long, double, 24, 8);
+   check_struct_and_union3(long, long long, long double, 32, 16);
+   check_struct_and_union3(long, float, char, 16, 8);
+   check_struct_and_union3(long, float, short, 16, 8);
+   check_struct_and_union3(long, float, int, 16, 8);
+   check_struct_and_union3(long, float, long, 24, 8);
+   check_struct_and_union3(long, float, long long, 24, 8);
+   check_struct_and_union3(long, float, float, 16, 8);
+   check_struct_and_union3(long, float, double, 24, 8);
+   check_struct_and_union3(long, float, long double, 32, 16);
+   check_struct_and_union3(long, double, char, 24, 8);
+   check_struct_and_union3(long, double, short, 24, 8);
+   check_struct_and_union3(long, double, int, 24, 8);
+   check_struct_and_union3(long, double, long, 24, 8);
+   check_struct_and_union3(long, double, long long, 24, 8);
+   check_struct_and_union3(long, double, float, 24, 8);
+   check_struct_and_union3(long, double, double, 24, 8);
+   check_struct_and_union3(long, double, long double, 32, 16);
+   check_struct_and_union3(long, long double, char, 48, 16);
+   check_struct_and_union3(long, long double, short, 48, 16);
+   check_struct_and_union3(long, long double, int, 48, 16);
+   check_struct_and_union3(long, long double, long, 48, 16);
+   check_struct_and_union3(long, long double, long long, 48, 16);
+   check_struct_and_union3(long, long double, float, 48, 16);
+   check_struct_and_union3(long, long double, double, 48, 16);
+   check_struct_and_union3(long, long double, long double, 48, 16);
+   check_struct_and_union3(long long, char, char, 16, 8);
+   check_struct_and_union3(long long, char, short, 16, 8);
+   check_struct_and_union3(long long, char, int, 16, 8);
+   check_struct_and_union3(long long, char, long, 24, 8);
+   check_struct_and_union3(long long, char, long long, 24, 8);
+   check_struct_and_union3(long long, char, float, 16, 8);
+   check_struct_and_union3(long long, char, double, 24, 8);
+   check_struct_and_union3(long long, char, long double, 32, 16);
+   check_struct_and_union3(long long, short, char, 16, 8);
+   check_struct_and_union3(long long, short, short, 16, 8);
+   check_struct_and_union3(long long, short, int, 16, 8);
+   check_struct_and_union3(long long, short, long, 24, 8);
+   check_struct_and_union3(long long, short, long long, 24, 8);
+   check_struct_and_union3(long long, short, float, 16, 8);
+   check_struct_and_union3(long long, short, double, 24, 8);
+   check_struct_and_union3(long long, short, long double, 32, 16);
+   check_struct_and_union3(long long, int, char, 16, 8);
+   check_struct_and_union3(long long, int, short, 16, 8);
+   check_struct_and_union3(long long, int, int, 16, 8);
+   check_struct_and_union3(long long, int, long, 24, 8);
+   check_struct_and_union3(long long, int, long long, 24, 8);
+   check_struct_and_union3(long long, int, float, 16, 8);
+   check_struct_and_union3(long long, int, double, 24, 8);
+   check_struct_and_union3(long long, int, long double, 32, 16);
+   check_struct_and_union3(long long, long, char, 24, 8);
+   check_struct_and_union3(long long, long, short, 24, 8);
+   check_struct_and_union3(long long, long, int, 24, 8);
+   check_struct_and_union3(long long, long, long, 24, 8);
+   check_struct_and_union3(long long, long, long long, 24, 8);
+   check_struct_and_union3(long long, long, float, 24, 8);
+   check_struct_and_union3(long long, long, double, 24, 8);
+   check_struct_and_union3(long long, long, long double, 32, 16);
+   check_struct_and_union3(long long, long long, char, 24, 8);
+   check_struct_and_union3(long long, long long, short, 24, 8);
+   check_struct_and_union3(long long, long long, int, 24, 8);
+   check_struct_and_union3(long long, long long, long, 24, 8);
+   check_struct_and_union3(long long, long long, long long, 24, 8);
+   check_struct_and_union3(long long, long long, float, 24, 8);
+   check_struct_and_union3(long long, long long, double, 24, 8);
+   check_struct_and_union3(long long, long long, long double, 32, 16);
+   check_struct_and_union3(long long, float, char, 16, 8);
+   check_struct_and_union3(long long, float, short, 16, 8);
+   check_struct_and_union3(long long, float, int, 16, 8);
+   check_struct_and_union3(long long, float, long, 24, 8);
+   check_struct_and_union3(long long, float, long long, 24, 8);
+   check_struct_and_union3(long long, float, float, 16, 8);
+   check_struct_and_union3(long long, float, double, 24, 8);
+   check_struct_and_union3(long long, float, long double, 32, 16);
+   check_struct_and_union3(long long, double, char, 24, 8);
+   check_struct_and_union3(long long, double, short, 24, 8);
+   check_struct_and_union3(long long, double, int, 24, 8);
+   check_struct_and_union3(long long, double, long, 24, 8);
+   check_struct_and_union3(long long, double, long long, 24, 8);
+   check_struct_and_union3(long long, double, float, 24, 8);
+   check_struct_and_union3(long long, double, double, 24, 8);
+   check_struct_and_union3(long long, double, long double, 32, 16);
+   check_struct_and_union3(long long, long double, char, 48, 16);
+   check_struct_and_union3(long long, long double, short, 48, 16);
+   check_struct_and_union3(long long, long double, int, 48, 16);
+   check_struct_and_union3(long long, long double, long, 48, 16);
+   check_struct_and_union3(long long, long double, long long, 48, 16);
+   check_struct_and_union3(long long, long double, float, 48, 16);
+   check_struct_and_union3(long long, long double, double, 48, 16);
+   check_struct_and_union3(long long, long double, long double, 48, 16);
+   check_struct_and_union3(float, char, char, 8, 4);
+   check_struct_and_union3(float, char, short, 8, 4);
+   check_struct_and_union3(float, char, int, 12, 4);
+   check_struct_and_union3(float, char, long, 16, 8);
+   check_struct_and_union3(float, char, long long, 16, 8);
+   check_struct_and_union3(float, char, float, 12, 4);
+   check_struct_and_union3(float, char, double, 16, 8);
+   check_struct_and_union3(float, char, long double, 32, 16);
+   check_struct_and_union3(float, short, char, 8, 4);
+   check_struct_and_union3(float, short, short, 8, 4);
+   check_struct_and_union3(float, short, int, 12, 4);
+   check_struct_and_union3(float, short, long, 16, 8);
+   check_struct_and_union3(float, short, long long, 16, 8);
+   check_struct_and_union3(float, short, float, 12, 4);
+   check_struct_and_union3(float, short, double, 16, 8);
+   check_struct_and_union3(float, short, long double, 32, 16);
+   check_struct_and_union3(float, int, char, 12, 4);
+   check_struct_and_union3(float, int, short, 12, 4);
+   check_struct_and_union3(float, int, int, 12, 4);
+   check_struct_and_union3(float, int, long, 16, 8);
+   check_struct_and_union3(float, int, long long, 16, 8);
+   check_struct_and_union3(float, int, float, 12, 4);
+   check_struct_and_union3(float, int, double, 16, 8);
+   check_struct_and_union3(float, int, long double, 32, 16);
+   check_struct_and_union3(float, long, char, 24, 8);
+   check_struct_and_union3(float, long, short, 24, 8);
+   check_struct_and_union3(float, long, int, 24, 8);
+   check_struct_and_union3(float, long, long, 24, 8);
+   check_struct_and_union3(float, long, long long, 24, 8);
+   check_struct_and_union3(float, long, float, 24, 8);
+   check_struct_and_union3(float, long, double, 24, 8);
+   check_struct_and_union3(float, long, long double, 32, 16);
+   check_struct_and_union3(float, long long, char, 24, 8);
+   check_struct_and_union3(float, long long, short, 24, 8);
+   check_struct_and_union3(float, long long, int, 24, 8);
+   check_struct_and_union3(float, long long, long, 24, 8);
+   check_struct_and_union3(float, long long, long long, 24, 8);
+   check_struct_and_union3(float, long long, float, 24, 8);
+   check_struct_and_union3(float, long long, double, 24, 8);
+   check_struct_and_union3(float, long long, long double, 32, 16);
+   check_struct_and_union3(float, float, char, 12, 4);
+   check_struct_and_union3(float, float, short, 12, 4);
+   check_struct_and_union3(float, float, int, 12, 4);
+   check_struct_and_union3(float, float, long, 16, 8);
+   check_struct_and_union3(float, float, long long, 16, 8);
+   check_struct_and_union3(float, float, float, 12, 4);
+   check_struct_and_union3(float, float, double, 16, 8);
+   check_struct_and_union3(float, float, long double, 32, 16);
+   check_struct_and_union3(float, double, char, 24, 8);
+   check_struct_and_union3(float, double, short, 24, 8);
+   check_struct_and_union3(float, double, int, 24, 8);
+   check_struct_and_union3(float, double, long, 24, 8);
+   check_struct_and_union3(float, double, long long, 24, 8);
+   check_struct_and_union3(float, double, float, 24, 8);
+   check_struct_and_union3(float, double, double, 24, 8);
+   check_struct_and_union3(float, double, long double, 32, 16);
+   check_struct_and_union3(float, long double, char, 48, 16);
+   check_struct_and_union3(float, long double, short, 48, 16);
+   check_struct_and_union3(float, long double, int, 48, 16);
+   check_struct_and_union3(float, long double, long, 48, 16);
+   check_struct_and_union3(float, long double, long long, 48, 16);
+   check_struct_and_union3(float, long double, float, 48, 16);
+   check_struct_and_union3(float, long double, double, 48, 16);
+   check_struct_and_union3(float, long double, long double, 48, 16);
+   check_struct_and_union3(double, char, char, 16, 8);
+   check_struct_and_union3(double, char, short, 16, 8);
+   check_struct_and_union3(double, char, int, 16, 8);
+   check_struct_and_union3(double, char, long, 24, 8);
+   check_struct_and_union3(double, char, long long, 24, 8);
+   check_struct_and_union3(double, char, float, 16, 8);
+   check_struct_and_union3(double, char, double, 24, 8);
+   check_struct_and_union3(double, char, long double, 32, 16);
+   check_struct_and_union3(double, short, char, 16, 8);
+   check_struct_and_union3(double, short, short, 16, 8);
+   check_struct_and_union3(double, short, int, 16, 8);
+   check_struct_and_union3(double, short, long, 24, 8);
+   check_struct_and_union3(double, short, long long, 24, 8);
+   check_struct_and_union3(double, short, float, 16, 8);
+   check_struct_and_union3(double, short, double, 24, 8);
+   check_struct_and_union3(double, short, long double, 32, 16);
+   check_struct_and_union3(double, int, char, 16, 8);
+   check_struct_and_union3(double, int, short, 16, 8);
+   check_struct_and_union3(double, int, int, 16, 8);
+   check_struct_and_union3(double, int, long, 24, 8);
+   check_struct_and_union3(double, int, long long, 24, 8);
+   check_struct_and_union3(double, int, float, 16, 8);
+   check_struct_and_union3(double, int, double, 24, 8);
+   check_struct_and_union3(double, int, long double, 32, 16);
+   check_struct_and_union3(double, long, char, 24, 8);
+   check_struct_and_union3(double, long, short, 24, 8);
+   check_struct_and_union3(double, long, int, 24, 8);
+   check_struct_and_union3(double, long, long, 24, 8);
+   check_struct_and_union3(double, long, long long, 24, 8);
+   check_struct_and_union3(double, long, float, 24, 8);
+   check_struct_and_union3(double, long, double, 24, 8);
+   check_struct_and_union3(double, long, long double, 32, 16);
+   check_struct_and_union3(double, long long, char, 24, 8);
+   check_struct_and_union3(double, long long, short, 24, 8);
+   check_struct_and_union3(double, long long, int, 24, 8);
+   check_struct_and_union3(double, long long, long, 24, 8);
+   check_struct_and_union3(double, long long, long long, 24, 8);
+   check_struct_and_union3(double, long long, float, 24, 8);
+   check_struct_and_union3(double, long long, double, 24, 8);
+   check_struct_and_union3(double, long long, long double, 32, 16);
+   check_struct_and_union3(double, float, char, 16, 8);
+   check_struct_and_union3(double, float, short, 16, 8);
+   check_struct_and_union3(double, float, int, 16, 8);
+   check_struct_and_union3(double, float, long, 24, 8);
+   check_struct_and_union3(double, float, long long, 24, 8);
+   check_struct_and_union3(double, float, float, 16, 8);
+   check_struct_and_union3(double, float, double, 24, 8);
+   check_struct_and_union3(double, float, long double, 32, 16);
+   check_struct_and_union3(double, double, char, 24, 8);
+   check_struct_and_union3(double, double, short, 24, 8);
+   check_struct_and_union3(double, double, int, 24, 8);
+   check_struct_and_union3(double, double, long, 24, 8);
+   check_struct_and_union3(double, double, long long, 24, 8);
+   check_struct_and_union3(double, double, float, 24, 8);
+   check_struct_and_union3(double, double, double, 24, 8);
+   check_struct_and_union3(double, double, long double, 32, 16);
+   check_struct_and_union3(double, long double, char, 48, 16);
+   check_struct_and_union3(double, long double, short, 48, 16);
+   check_struct_and_union3(double, long double, int, 48, 16);
+   check_struct_and_union3(double, long double, long, 48, 16);
+   check_struct_and_union3(double, long double, long long, 48, 16);
+   check_struct_and_union3(double, long double, float, 48, 16);
+   check_struct_and_union3(double, long double, double, 48, 16);
+   check_struct_and_union3(double, long double, long double, 48, 16);
+   check_struct_and_union3(long double, char, char, 32, 16);
+   check_struct_and_union3(long double, char, short, 32, 16);
+   check_struct_and_union3(long double, char, int, 32, 16);
+   check_struct_and_union3(long double, char, long, 32, 16);
+   check_struct_and_union3(long double, char, long long, 32, 16);
+   check_struct_and_union3(long double, char, float, 32, 16);
+   check_struct_and_union3(long double, char, double, 32, 16);
+   check_struct_and_union3(long double, char, long double, 48, 16);
+   check_struct_and_union3(long double, short, char, 32, 16);
+   check_struct_and_union3(long double, short, short, 32, 16);
+   check_struct_and_union3(long double, short, int, 32, 16);
+   check_struct_and_union3(long double, short, long, 32, 16);
+   check_struct_and_union3(long double, short, long long, 32, 16);
+   check_struct_and_union3(long double, short, float, 32, 16);
+   check_struct_and_union3(long double, short, double, 32, 16);
+   check_struct_and_union3(long double, short, long double, 48, 16);
+   check_struct_and_union3(long double, int, char, 32, 16);
+   check_struct_and_union3(long double, int, short, 32, 16);
+   check_struct_and_union3(long double, int, int, 32, 16);
+   check_struct_and_union3(long double, int, long, 32, 16);
+   check_struct_and_union3(long double, int, long long, 32, 16);
+   check_struct_and_union3(long double, int, float, 32, 16);
+   check_struct_and_union3(long double, int, double, 32, 16);
+   check_struct_and_union3(long double, int, long double, 48, 16);
+   check_struct_and_union3(long double, long, char, 32, 16);
+   check_struct_and_union3(long double, long, short, 32, 16);
+   check_struct_and_union3(long double, long, int, 32, 16);
+   check_struct_and_union3(long double, long, long, 32, 16);
+   check_struct_and_union3(long double, long, long long, 32, 16);
+   check_struct_and_union3(long double, long, float, 32, 16);
+   check_struct_and_union3(long double, long, double, 32, 16);
+   check_struct_and_union3(long double, long, long double, 48, 16);
+   check_struct_and_union3(long double, long long, char, 32, 16);
+   check_struct_and_union3(long double, long long, short, 32, 16);
+   check_struct_and_union3(long double, long long, int, 32, 16);
+   check_struct_and_union3(long double, long long, long, 32, 16);
+   check_struct_and_union3(long double, long long, long long, 32, 16);
+   check_struct_and_union3(long double, long long, float, 32, 16);
+   check_struct_and_union3(long double, long long, double, 32, 16);
+   check_struct_and_union3(long double, long long, long double, 48, 16);
+   check_struct_and_union3(long double, float, char, 32, 16);
+   check_struct_and_union3(long double, float, short, 32, 16);
+   check_struct_and_union3(long double, float, int, 32, 16);
+   check_struct_and_union3(long double, float, long, 32, 16);
+   check_struct_and_union3(long double, float, long long, 32, 16);
+   check_struct_and_union3(long double, float, float, 32, 16);
+   check_struct_and_union3(long double, float, double, 32, 16);
+   check_struct_and_union3(long double, float, long double, 48, 16);
+   check_struct_and_union3(long double, double, char, 32, 16);
+   check_struct_and_union3(long double, double, short, 32, 16);
+   check_struct_and_union3(long double, double, int, 32, 16);
+   check_struct_and_union3(long double, double, long, 32, 16);
+   check_struct_and_union3(long double, double, long long, 32, 16);
+   check_struct_and_union3(long double, double, float, 32, 16);
+   check_struct_and_union3(long double, double, double, 32, 16);
+   check_struct_and_union3(long double, double, long double, 48, 16);
+   check_struct_and_union3(long double, long double, char, 48, 16);
+   check_struct_and_union3(long double, long double, short, 48, 16);
+   check_struct_and_union3(long double, long double, int, 48, 16);
+   check_struct_and_union3(long double, long double, long, 48, 16);
+   check_struct_and_union3(long double, long double, long long, 48, 16);
+   check_struct_and_union3(long double, long double, float, 48, 16);
+   check_struct_and_union3(long double, long double, double, 48, 16);
+   check_struct_and_union3(long double, long double, long double, 48, 16);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_alignment.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,42 ----
+ /* This checks alignment of basic types.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ 
+ int
+ main (void)
+ {
+   /* Integral types.  */
+   run_signed_tests2(check_align, char, TYPE_ALIGN_CHAR);
+   run_signed_tests2(check_align, short, TYPE_ALIGN_SHORT);
+   run_signed_tests2(check_align, int, TYPE_ALIGN_INT);
+   run_signed_tests2(check_align, long, TYPE_ALIGN_LONG);
+   run_signed_tests2(check_align, long long, TYPE_ALIGN_LONG_LONG);
+ #ifdef CHECK_INT128
+   run_signed_tests2(check_align, __int128, TYPE_ALIGN_INT128);
+ #endif
+   check_align(enumtype, TYPE_ALIGN_ENUM);
+ 
+   /* Floating point types.  */
+   check_align(float, TYPE_ALIGN_FLOAT);
+   check_align(double, TYPE_ALIGN_DOUBLE);
+ #ifdef CHECK_LONG_DOUBLE
+   check_align(long double, TYPE_ALIGN_LONG_DOUBLE);
+ #endif
+ #ifdef CHECK_FLOAT128
+   check_align(__float128, TYPE_ALIGN_FLOAT128);
+ #endif
+ 
+   /* Packed types - MMX, 3DNow!, SSE and SSE2.  */
+ #ifdef CHECK_M64_M128
+   check_align(__m64, TYPE_ALIGN_M64);
+   check_align(__m128, TYPE_ALIGN_M128);
+ #endif
+ 
+   /* Pointer types.  */
+   check_align(void *, TYPE_ALIGN_POINTER);
+   check_align(void (*)(), TYPE_ALIGN_POINTER);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_array_size_and_align.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,41 ----
+ /* This checks .  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ 
+ int
+ main (void)
+ {
+   /* Integral types.  */
+   run_signed_tests3(check_array_size_and_align, char, TYPE_SIZE_CHAR, TYPE_ALIGN_CHAR);
+   run_signed_tests3(check_array_size_and_align, short, TYPE_SIZE_SHORT, TYPE_ALIGN_SHORT);
+   run_signed_tests3(check_array_size_and_align, int, TYPE_SIZE_INT, TYPE_ALIGN_INT);
+   run_signed_tests3(check_array_size_and_align, long, TYPE_SIZE_LONG, TYPE_ALIGN_LONG);
+   run_signed_tests3(check_array_size_and_align, long long, TYPE_SIZE_LONG_LONG, TYPE_ALIGN_LONG_LONG);
+ #ifdef CHECK_INT128
+   run_signed_tests3(check_array_size_and_align, __int128, TYPE_SIZE_INT128, TYPE_ALIGN_INT128);
+ #endif
+   check_array_size_and_align(enum dummytype, TYPE_SIZE_ENUM, TYPE_ALIGN_ENUM);
+ 
+   /* Floating point types.  */
+   check_array_size_and_align(float, TYPE_SIZE_FLOAT, TYPE_ALIGN_FLOAT);
+   check_array_size_and_align(double, TYPE_SIZE_DOUBLE, TYPE_ALIGN_DOUBLE);
+ #ifdef CHECK_LONG_DOUBLE
+   check_array_size_and_align(long double, TYPE_SIZE_LONG_DOUBLE, TYPE_ALIGN_LONG_DOUBLE);
+ #endif
+ #ifdef CHECK_FLOAT128
+   check_array_size_and_align(__float128, TYPE_SIZE_FLOAT128, TYPE_ALIGN_FLOAT128);
+ #endif
+ 
+   /* Packed types - MMX, 3DNow!, SSE and SSE2.  */
+ #ifdef CHECK_M64_M128
+   check_array_size_and_align(__m64, TYPE_SIZE_M64, TYPE_ALIGN_M64);
+   check_array_size_and_align(__m128, TYPE_SIZE_M128, TYPE_ALIGN_M128);
+ #endif
+ 
+   /* Pointer types. The function pointer doesn't work with these macros.  */
+   check_array_size_and_align(void *, TYPE_SIZE_POINTER, TYPE_ALIGN_POINTER);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_returning.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,78 ----
+ /* This is an autogenerated file. Do not edit.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ #include "args.h"
+ 
+ char
+ fun_test_returning_char (void)
+ {
+   volatile_var++;
+   return 64;
+ }
+ 
+ short
+ fun_test_returning_short (void)
+ {
+   volatile_var++;
+   return 65;
+ }
+ 
+ int
+ fun_test_returning_int (void)
+ {
+   volatile_var++;
+   return 66;
+ }
+ 
+ long
+ fun_test_returning_long (void)
+ {
+   volatile_var++;
+   return 67;
+ }
+ 
+ long long
+ fun_test_returning_long_long (void)
+ {
+   volatile_var++;
+   return 68;
+ }
+ 
+ float
+ fun_test_returning_float (void)
+ {
+   volatile_var++;
+   return 69;
+ }
+ 
+ double
+ fun_test_returning_double (void)
+ {
+   volatile_var++;
+   return 70;
+ }
+ 
+ long double
+ fun_test_returning_long_double (void)
+ {
+   volatile_var++;
+   return 71;
+ }
+ 
+ #define def_test_returning_type_xmm(fun, type, ret, reg) \
+   { type var = WRAP_RET (fun) (); \
+   assert (ret == (type) reg && ret == var); }
+ int
+ main (void)
+ {
+   def_test_returning_type_xmm(fun_test_returning_char, char, 64, rax);
+   def_test_returning_type_xmm(fun_test_returning_short, short, 65, rax);
+   def_test_returning_type_xmm(fun_test_returning_int, int, 66, rax);
+   def_test_returning_type_xmm(fun_test_returning_long, long, 67, rax);
+   def_test_returning_type_xmm(fun_test_returning_long_long, long long, 68, rax);
+   def_test_returning_type_xmm(fun_test_returning_float, float, 69, xmm_regs[0]._float[0]);
+   def_test_returning_type_xmm(fun_test_returning_double, double, 70, xmm_regs[0]._double[0]);
+   def_test_returning_type_xmm(fun_test_returning_long_double, long double, 71, x87_regs[0]._ldouble);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_sizes.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_sizes.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_sizes.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_sizes.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,42 ----
+ /* This checks sizes of basic types.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ 
+ int
+ main (void)
+ {
+   /* Integral types.  */
+   run_signed_tests2(check_size, char, TYPE_SIZE_CHAR);
+   run_signed_tests2(check_size, short, TYPE_SIZE_SHORT);
+   run_signed_tests2(check_size, int, TYPE_SIZE_INT);
+   run_signed_tests2(check_size, long, TYPE_SIZE_LONG);
+   run_signed_tests2(check_size, long long, TYPE_SIZE_LONG_LONG);
+ #ifdef CHECK_INT128
+   run_signed_tests2(check_size, __int128, TYPE_SIZE_INT128);
+ #endif
+   check_size(enumtype, TYPE_SIZE_ENUM);
+ 
+   /* Floating point types.  */
+   check_size(float, TYPE_SIZE_FLOAT);
+   check_size(double, TYPE_SIZE_DOUBLE);
+ #ifdef CHECK_LONG_DOUBLE
+   check_size(long double, TYPE_SIZE_LONG_DOUBLE);
+ #endif
+ #ifdef CHECK_FLOAT128
+   check_size(__float128, TYPE_SIZE_FLOAT128);
+ #endif
+ 
+   /* Packed types - MMX, 3DNow!, SSE and SSE2.  */
+ #ifdef CHECK_M64_M128
+   check_size(__m64, TYPE_SIZE_M64);
+   check_size(__m128, TYPE_SIZE_M128);
+ #endif
+ 
+   /* Pointer types.  */
+   check_size(void *, TYPE_SIZE_POINTER);
+   check_size(void (*)(), TYPE_SIZE_POINTER);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_struct_size_and_align.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_struct_size_and_align.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_struct_size_and_align.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_struct_size_and_align.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,42 ----
+ /* This checks size and alignment of structs with a single basic type
+    element. All basic types are checked.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ 
+ int
+ main (void)
+ {
+   /* Integral types.  */
+   run_signed_tests3(check_basic_struct_size_and_align, char, TYPE_SIZE_CHAR, TYPE_ALIGN_CHAR);
+   run_signed_tests3(check_basic_struct_size_and_align, short, TYPE_SIZE_SHORT, TYPE_ALIGN_SHORT);
+   run_signed_tests3(check_basic_struct_size_and_align, int, TYPE_SIZE_INT, TYPE_ALIGN_INT);
+   run_signed_tests3(check_basic_struct_size_and_align, long, TYPE_SIZE_LONG, TYPE_ALIGN_LONG);
+   run_signed_tests3(check_basic_struct_size_and_align, long long, TYPE_SIZE_LONG_LONG, TYPE_ALIGN_LONG_LONG);
+ #ifdef CHECK_INT128
+   run_signed_tests3(check_basic_struct_size_and_align, __int128, TYPE_SIZE_INT128, TYPE_ALIGN_INT128);
+ #endif
+   check_basic_struct_size_and_align(enum dummytype, TYPE_SIZE_ENUM, TYPE_ALIGN_ENUM);
+ 
+   /* Floating point types.  */
+   check_basic_struct_size_and_align(float, TYPE_SIZE_FLOAT, TYPE_ALIGN_FLOAT);
+   check_basic_struct_size_and_align(double, TYPE_SIZE_DOUBLE, TYPE_ALIGN_DOUBLE);
+ #ifdef CHECK_LONG_DOUBLE
+   check_basic_struct_size_and_align(long double, TYPE_SIZE_LONG_DOUBLE, TYPE_ALIGN_LONG_DOUBLE);
+ #endif
+ #ifdef CHECK_FLOAT128
+   check_basic_struct_size_and_align(__float128, TYPE_SIZE_FLOAT128, TYPE_ALIGN_FLOAT128);
+ #endif
+ 
+   /* Packed types - MMX, 3DNow!, SSE and SSE2.  */
+ #ifdef CHECK_M64_M128
+   check_basic_struct_size_and_align(__m64, TYPE_SIZE_M64, TYPE_ALIGN_M64);
+   check_basic_struct_size_and_align(__m128, TYPE_SIZE_M128, TYPE_ALIGN_M128);
+ #endif
+ 
+   /* Pointer types. The function pointer doesn't work with these macros.  */
+   check_basic_struct_size_and_align(void *, TYPE_SIZE_POINTER, TYPE_ALIGN_POINTER);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_union_size_and_align.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_union_size_and_align.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_basic_union_size_and_align.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_basic_union_size_and_align.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,41 ----
+ /* Test of simple unions, size and alignment.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ 
+ int
+ main (void)
+ {
+   /* Integral types.  */
+   run_signed_tests3(check_basic_union_size_and_align, char, TYPE_SIZE_CHAR, TYPE_ALIGN_CHAR);
+   run_signed_tests3(check_basic_union_size_and_align, short, TYPE_SIZE_SHORT, TYPE_ALIGN_SHORT);
+   run_signed_tests3(check_basic_union_size_and_align, int, TYPE_SIZE_INT, TYPE_ALIGN_INT);
+   run_signed_tests3(check_basic_union_size_and_align, long, TYPE_SIZE_LONG, TYPE_ALIGN_LONG);
+   run_signed_tests3(check_basic_union_size_and_align, long long, TYPE_SIZE_LONG_LONG, TYPE_ALIGN_LONG_LONG);
+ #ifdef CHECK_INT128
+   run_signed_tests3(check_basic_union_size_and_align, __int128, TYPE_SIZE_INT128, TYPE_ALIGN_INT128);
+ #endif
+   check_basic_union_size_and_align(enum dummytype, TYPE_SIZE_ENUM, TYPE_ALIGN_ENUM);
+ 
+   /* Floating point types.  */
+   check_basic_union_size_and_align(float, TYPE_SIZE_FLOAT, TYPE_ALIGN_FLOAT);
+   check_basic_union_size_and_align(double, TYPE_SIZE_DOUBLE, TYPE_ALIGN_DOUBLE);
+ #ifdef CHECK_LONG_DOUBLE
+   check_basic_union_size_and_align(long double, TYPE_SIZE_LONG_DOUBLE, TYPE_ALIGN_LONG_DOUBLE);
+ #endif
+ #ifdef CHECK_FLOAT128
+   check_basic_union_size_and_align(__float128, TYPE_SIZE_FLOAT128, TYPE_ALIGN_FLOAT128);
+ #endif
+ 
+   /* Packed types - MMX, 3DNow!, SSE and SSE2.  */
+ #ifdef CHECK_M64_M128
+   check_basic_union_size_and_align(__m64, TYPE_SIZE_M64, TYPE_ALIGN_M64);
+   check_basic_union_size_and_align(__m128, TYPE_SIZE_M128, TYPE_ALIGN_M128);
+ #endif
+ 
+   /* Pointer types. The function pointer doesn't work with these macros.  */
+   check_basic_union_size_and_align(void *, TYPE_SIZE_POINTER, TYPE_ALIGN_POINTER);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_bitfields.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_bitfields.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_bitfields.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_bitfields.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,162 ----
+ /* This is a small test to see if bitfields are working.  It is only a
+    few structs and a union and a test to see if they have the correct
+    size, if values can be read and written and a couple of argument
+    passing tests.  No alignment testing is done.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ 
+ 
+ /* These five bitfields are taken from the System V ABI, Intel 386
+    architecture supplement.  */
+ 
+ /* Word aligned, sizeof is 4.  */
+ struct RightToLeft
+ {
+   int j:5;
+   int k:6;
+   int m:7;
+ };
+ 
+ /* Word aligned, sizeof is 12.  */
+ struct BoundaryAlignment
+ {
+   short s:9;
+   int   j:9;
+   char  c;
+   short t:9;
+   short u:9;
+   char  d;
+ };
+ 
+ /* Halfword aligned, sizeof is 2.  */
+ struct StorageUnitSharing
+ {
+   char  c;
+   short s:8;
+ };
+ 
+ /* Halfword aligned, sizeof is 2.  */
+ union Allocation
+ {
+   char  c;
+   short s:8;
+ };
+ 
+ /* Byte aligned, sizeof is 9.  */
+ struct Unnamed
+ {
+   char  c;
+   int    :0;
+   char  d;
+   short  :9;
+   char  e;
+   char   :0;
+ };
+ 
+ /* Extra struct testing bitfields in larger types.
+    Doubleword aligned, sizeof is 8.  */
+ struct LargerTypes
+ {
+   long long l:33;
+   int       i:31;
+ };
+ 
+ 
+ void
+ passing1 (struct RightToLeft str, int j, int k, int m)
+ {
+   assert (str.j == j);
+   assert (str.k == k);
+   assert (str.m == m);
+ }
+ 
+ void
+ passing2 (struct BoundaryAlignment str, short s, int j, char c, short t,
+ 	  short u, char d)
+ {
+   assert (str.s == s);
+   assert (str.j == j);
+   assert (str.c == c);
+   assert (str.t == t);
+   assert (str.u == u);
+   assert (str.d == d);
+ }
+ 
+ void
+ passing3 (struct StorageUnitSharing str, char c, short s)
+ {
+   assert (str.c == c);
+   assert (str.s == s);
+ }
+ 
+ void
+ passing4 (struct Unnamed str, char c, char d, char e)
+ {
+   assert (str.c == c);
+   assert (str.d == d);
+   assert (str.e == e);
+ }
+ 
+ void
+ passing5 (struct LargerTypes str, long long l, int i)
+ {
+   assert (str.l == l);
+   assert (str.i == i);
+ }
+ 
+ 
+ void
+ passingU (union Allocation u, char c)
+ {
+   assert (u.c == c);
+   assert (u.s == c);
+ }
+ 
+ 
+ int
+ main (void)
+ {
+   struct RightToLeft str1;
+   struct BoundaryAlignment str2;
+   struct StorageUnitSharing str3;
+   struct Unnamed str4;
+   struct LargerTypes str5;
+   union Allocation u;
+ 
+   /* Check sizeof's.  */
+   check_size(str1, 4);
+   check_size(str2, 12);
+   check_size(str3, 2);
+   check_size(str4, 9);
+   check_size(str5, 8);
+   check_size(u, 2);
+ 
+   /* Check alignof's.  */
+   check_align_lv(str1, 4);
+   check_align_lv(str2, 4);
+   check_align_lv(str3, 2);
+   check_align_lv(str4, 1);
+   check_align_lv(str5, 8);
+   check_align_lv(u, 2);
+ 
+   /* Check passing.  */
+   str1.j = str2.s = str3.c = str4.c = str5.l = 4;
+   str1.k = str2.j = str3.s = str4.d = str5.i = 5;
+   str1.m = str2.c = str4.e = 6;
+   str2.t = 7;
+   str2.u = 8;
+   str2.d = 9;
+   passing1 (str1, 4, 5, 6);
+   passing2 (str2, 4, 5, 6, 7, 8, 9);
+   passing3 (str3, 4, 5);
+   passing4 (str4, 4, 5, 6);
+   passing5 (str5, 4, 5);
+ 
+   u.c = 5;
+   passingU (u, 5);
+   u.s = 6;
+   passingU (u, 6);
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_complex_returning.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_complex_returning.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_complex_returning.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_complex_returning.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,83 ----
+ /* This is a small test case for returning a complex number. Written by
+    Andreas Jaeger.  */
+ 
+ #include "defines.h"
+ 
+ 
+ #define BUILD_F_COMPLEX(real, imag) \
+   ({ __complex__ float __retval; \
+      __real__ __retval = (real); \
+      __imag__ __retval = (imag); \
+      __retval; })
+ 
+ #define BUILD_D_COMPLEX(real, imag) \
+   ({ __complex__ double __retval; \
+      __real__ __retval = (real); \
+      __imag__ __retval = (imag); \
+      __retval; })
+ 
+ #define BUILD_LD_COMPLEX(real, imag) \
+   ({ __complex__ long double __retval; \
+      __real__ __retval = (real); \
+      __imag__ __retval = (imag); \
+      __retval; })
+ 
+ __complex__ float
+ aj_f_times2 (__complex__ float x)
+ {
+   __complex__ float res;
+ 
+   __real__ res = (2.0 * __real__ x);
+   __imag__ res = (2.0 * __imag__ x);
+ 
+   return res;
+ }
+ 
+ __complex__ double
+ aj_d_times2 (__complex__ double x)
+ {
+   __complex__ double res;
+ 
+   __real__ res = (2.0 * __real__ x);
+   __imag__ res = (2.0 * __imag__ x);
+ 
+   return res;
+ }
+ 
+ __complex__ long double
+ aj_ld_times2 (__complex__ long double x)
+ {
+   __complex__ long double res;
+ 
+   __real__ res = (2.0 * __real__ x);
+   __imag__ res = (2.0 * __imag__ x);
+ 
+   return res;
+ }
+ 
+ int
+ main (void)
+ {
+ #ifdef CHECK_COMPLEX
+   _Complex float fc, fd;
+   _Complex double dc, dd;
+   _Complex long double ldc, ldd;
+ 
+   fc = BUILD_LD_COMPLEX (2.0f, 3.0f);
+   fd = aj_f_times2 (fc);
+ 
+   assert (__real__ fd == 4.0f && __imag__ fd == 6.0f);
+ 
+   dc = BUILD_LD_COMPLEX (2.0, 3.0);
+   dd = aj_ld_times2 (dc);
+ 
+   assert (__real__ dd == 4.0 && __imag__ dd == 6.0);
+ 
+   ldc = BUILD_LD_COMPLEX (2.0L, 3.0L);
+   ldd = aj_ld_times2 (ldc);
+ 
+   assert (__real__ ldd == 4.0L && __imag__ ldd == 6.0L);
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_floats.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,502 ----
+ /* This is an autogenerated file. Do not edit.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ #include "args.h"
+ 
+ struct IntegerRegisters iregs;
+ struct FloatRegisters fregs;
+ unsigned int num_iregs, num_fregs;
+ 
+ /* This struct holds values for argument checking.  */
+ struct 
+ {
+   float f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23;
+ } values_float;
+ 
+ struct 
+ {
+   double f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23;
+ } values_double;
+ 
+ struct 
+ {
+   ldouble f0, f1, f2, f3, f4, f5, f6, f7, f8, f9, f10, f11, f12, f13, f14, f15, f16, f17, f18, f19, f20, f21, f22, f23;
+ } values_ldouble;
+ 
+ void
+ fun_check_float_passing_float8_values (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_float.f0 == f0);
+   assert (values_float.f1 == f1);
+   assert (values_float.f2 == f2);
+   assert (values_float.f3 == f3);
+   assert (values_float.f4 == f4);
+   assert (values_float.f5 == f5);
+   assert (values_float.f6 == f6);
+   assert (values_float.f7 == f7);
+ 
+ }
+ 
+ void
+ fun_check_float_passing_float8_regs (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_float_arguments;
+ }
+ 
+ void
+ fun_check_float_passing_float16_values (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_float.f0 == f0);
+   assert (values_float.f1 == f1);
+   assert (values_float.f2 == f2);
+   assert (values_float.f3 == f3);
+   assert (values_float.f4 == f4);
+   assert (values_float.f5 == f5);
+   assert (values_float.f6 == f6);
+   assert (values_float.f7 == f7);
+   assert (values_float.f8 == f8);
+   assert (values_float.f9 == f9);
+   assert (values_float.f10 == f10);
+   assert (values_float.f11 == f11);
+   assert (values_float.f12 == f12);
+   assert (values_float.f13 == f13);
+   assert (values_float.f14 == f14);
+   assert (values_float.f15 == f15);
+ 
+ }
+ 
+ void
+ fun_check_float_passing_float16_regs (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_float_arguments;
+ }
+ 
+ void
+ fun_check_float_passing_float20_values (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED, float f16 ATTRIBUTE_UNUSED, float f17 ATTRIBUTE_UNUSED, float f18 ATTRIBUTE_UNUSED, float f19 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_float.f0 == f0);
+   assert (values_float.f1 == f1);
+   assert (values_float.f2 == f2);
+   assert (values_float.f3 == f3);
+   assert (values_float.f4 == f4);
+   assert (values_float.f5 == f5);
+   assert (values_float.f6 == f6);
+   assert (values_float.f7 == f7);
+   assert (values_float.f8 == f8);
+   assert (values_float.f9 == f9);
+   assert (values_float.f10 == f10);
+   assert (values_float.f11 == f11);
+   assert (values_float.f12 == f12);
+   assert (values_float.f13 == f13);
+   assert (values_float.f14 == f14);
+   assert (values_float.f15 == f15);
+   assert (values_float.f16 == f16);
+   assert (values_float.f17 == f17);
+   assert (values_float.f18 == f18);
+   assert (values_float.f19 == f19);
+ 
+ }
+ 
+ void
+ fun_check_float_passing_float20_regs (float f0 ATTRIBUTE_UNUSED, float f1 ATTRIBUTE_UNUSED, float f2 ATTRIBUTE_UNUSED, float f3 ATTRIBUTE_UNUSED, float f4 ATTRIBUTE_UNUSED, float f5 ATTRIBUTE_UNUSED, float f6 ATTRIBUTE_UNUSED, float f7 ATTRIBUTE_UNUSED, float f8 ATTRIBUTE_UNUSED, float f9 ATTRIBUTE_UNUSED, float f10 ATTRIBUTE_UNUSED, float f11 ATTRIBUTE_UNUSED, float f12 ATTRIBUTE_UNUSED, float f13 ATTRIBUTE_UNUSED, float f14 ATTRIBUTE_UNUSED, float f15 ATTRIBUTE_UNUSED, float f16 ATTRIBUTE_UNUSED, float f17 ATTRIBUTE_UNUSED, float f18 ATTRIBUTE_UNUSED, float f19 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_float_arguments;
+ }
+ 
+ void
+ fun_check_float_passing_double8_values (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_double.f0 == f0);
+   assert (values_double.f1 == f1);
+   assert (values_double.f2 == f2);
+   assert (values_double.f3 == f3);
+   assert (values_double.f4 == f4);
+   assert (values_double.f5 == f5);
+   assert (values_double.f6 == f6);
+   assert (values_double.f7 == f7);
+ 
+ }
+ 
+ void
+ fun_check_float_passing_double8_regs (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_double_arguments;
+ }
+ 
+ void
+ fun_check_float_passing_double16_values (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_double.f0 == f0);
+   assert (values_double.f1 == f1);
+   assert (values_double.f2 == f2);
+   assert (values_double.f3 == f3);
+   assert (values_double.f4 == f4);
+   assert (values_double.f5 == f5);
+   assert (values_double.f6 == f6);
+   assert (values_double.f7 == f7);
+   assert (values_double.f8 == f8);
+   assert (values_double.f9 == f9);
+   assert (values_double.f10 == f10);
+   assert (values_double.f11 == f11);
+   assert (values_double.f12 == f12);
+   assert (values_double.f13 == f13);
+   assert (values_double.f14 == f14);
+   assert (values_double.f15 == f15);
+ 
+ }
+ 
+ void
+ fun_check_float_passing_double16_regs (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_double_arguments;
+ }
+ 
+ void
+ fun_check_float_passing_double20_values (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED, double f16 ATTRIBUTE_UNUSED, double f17 ATTRIBUTE_UNUSED, double f18 ATTRIBUTE_UNUSED, double f19 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_double.f0 == f0);
+   assert (values_double.f1 == f1);
+   assert (values_double.f2 == f2);
+   assert (values_double.f3 == f3);
+   assert (values_double.f4 == f4);
+   assert (values_double.f5 == f5);
+   assert (values_double.f6 == f6);
+   assert (values_double.f7 == f7);
+   assert (values_double.f8 == f8);
+   assert (values_double.f9 == f9);
+   assert (values_double.f10 == f10);
+   assert (values_double.f11 == f11);
+   assert (values_double.f12 == f12);
+   assert (values_double.f13 == f13);
+   assert (values_double.f14 == f14);
+   assert (values_double.f15 == f15);
+   assert (values_double.f16 == f16);
+   assert (values_double.f17 == f17);
+   assert (values_double.f18 == f18);
+   assert (values_double.f19 == f19);
+ 
+ }
+ 
+ void
+ fun_check_float_passing_double20_regs (double f0 ATTRIBUTE_UNUSED, double f1 ATTRIBUTE_UNUSED, double f2 ATTRIBUTE_UNUSED, double f3 ATTRIBUTE_UNUSED, double f4 ATTRIBUTE_UNUSED, double f5 ATTRIBUTE_UNUSED, double f6 ATTRIBUTE_UNUSED, double f7 ATTRIBUTE_UNUSED, double f8 ATTRIBUTE_UNUSED, double f9 ATTRIBUTE_UNUSED, double f10 ATTRIBUTE_UNUSED, double f11 ATTRIBUTE_UNUSED, double f12 ATTRIBUTE_UNUSED, double f13 ATTRIBUTE_UNUSED, double f14 ATTRIBUTE_UNUSED, double f15 ATTRIBUTE_UNUSED, double f16 ATTRIBUTE_UNUSED, double f17 ATTRIBUTE_UNUSED, double f18 ATTRIBUTE_UNUSED, double f19 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_double_arguments;
+ }
+ 
+ void
+ fun_check_x87_passing_ldouble8_values (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_ldouble.f0 == f0);
+   assert (values_ldouble.f1 == f1);
+   assert (values_ldouble.f2 == f2);
+   assert (values_ldouble.f3 == f3);
+   assert (values_ldouble.f4 == f4);
+   assert (values_ldouble.f5 == f5);
+   assert (values_ldouble.f6 == f6);
+   assert (values_ldouble.f7 == f7);
+ 
+ }
+ 
+ void
+ fun_check_x87_passing_ldouble8_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_ldouble_arguments;
+ }
+ 
+ void
+ fun_check_x87_passing_ldouble16_values (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_ldouble.f0 == f0);
+   assert (values_ldouble.f1 == f1);
+   assert (values_ldouble.f2 == f2);
+   assert (values_ldouble.f3 == f3);
+   assert (values_ldouble.f4 == f4);
+   assert (values_ldouble.f5 == f5);
+   assert (values_ldouble.f6 == f6);
+   assert (values_ldouble.f7 == f7);
+   assert (values_ldouble.f8 == f8);
+   assert (values_ldouble.f9 == f9);
+   assert (values_ldouble.f10 == f10);
+   assert (values_ldouble.f11 == f11);
+   assert (values_ldouble.f12 == f12);
+   assert (values_ldouble.f13 == f13);
+   assert (values_ldouble.f14 == f14);
+   assert (values_ldouble.f15 == f15);
+ 
+ }
+ 
+ void
+ fun_check_x87_passing_ldouble16_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_ldouble_arguments;
+ }
+ 
+ void
+ fun_check_x87_passing_ldouble20_values (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED, ldouble f16 ATTRIBUTE_UNUSED, ldouble f17 ATTRIBUTE_UNUSED, ldouble f18 ATTRIBUTE_UNUSED, ldouble f19 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_ldouble.f0 == f0);
+   assert (values_ldouble.f1 == f1);
+   assert (values_ldouble.f2 == f2);
+   assert (values_ldouble.f3 == f3);
+   assert (values_ldouble.f4 == f4);
+   assert (values_ldouble.f5 == f5);
+   assert (values_ldouble.f6 == f6);
+   assert (values_ldouble.f7 == f7);
+   assert (values_ldouble.f8 == f8);
+   assert (values_ldouble.f9 == f9);
+   assert (values_ldouble.f10 == f10);
+   assert (values_ldouble.f11 == f11);
+   assert (values_ldouble.f12 == f12);
+   assert (values_ldouble.f13 == f13);
+   assert (values_ldouble.f14 == f14);
+   assert (values_ldouble.f15 == f15);
+   assert (values_ldouble.f16 == f16);
+   assert (values_ldouble.f17 == f17);
+   assert (values_ldouble.f18 == f18);
+   assert (values_ldouble.f19 == f19);
+ 
+ }
+ 
+ void
+ fun_check_x87_passing_ldouble20_regs (ldouble f0 ATTRIBUTE_UNUSED, ldouble f1 ATTRIBUTE_UNUSED, ldouble f2 ATTRIBUTE_UNUSED, ldouble f3 ATTRIBUTE_UNUSED, ldouble f4 ATTRIBUTE_UNUSED, ldouble f5 ATTRIBUTE_UNUSED, ldouble f6 ATTRIBUTE_UNUSED, ldouble f7 ATTRIBUTE_UNUSED, ldouble f8 ATTRIBUTE_UNUSED, ldouble f9 ATTRIBUTE_UNUSED, ldouble f10 ATTRIBUTE_UNUSED, ldouble f11 ATTRIBUTE_UNUSED, ldouble f12 ATTRIBUTE_UNUSED, ldouble f13 ATTRIBUTE_UNUSED, ldouble f14 ATTRIBUTE_UNUSED, ldouble f15 ATTRIBUTE_UNUSED, ldouble f16 ATTRIBUTE_UNUSED, ldouble f17 ATTRIBUTE_UNUSED, ldouble f18 ATTRIBUTE_UNUSED, ldouble f19 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_ldouble_arguments;
+ }
+ 
+ #define def_check_float_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \
+   values_ ## TYPE .f0 = _f0; \
+   values_ ## TYPE .f1 = _f1; \
+   values_ ## TYPE .f2 = _f2; \
+   values_ ## TYPE .f3 = _f3; \
+   values_ ## TYPE .f4 = _f4; \
+   values_ ## TYPE .f5 = _f5; \
+   values_ ## TYPE .f6 = _f6; \
+   values_ ## TYPE .f7 = _f7; \
+   WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
+   \
+   clear_float_registers; \
+   fregs.F0._ ## TYPE [0] = _f0; \
+   fregs.F1._ ## TYPE [0] = _f1; \
+   fregs.F2._ ## TYPE [0] = _f2; \
+   fregs.F3._ ## TYPE [0] = _f3; \
+   fregs.F4._ ## TYPE [0] = _f4; \
+   fregs.F5._ ## TYPE [0] = _f5; \
+   fregs.F6._ ## TYPE [0] = _f6; \
+   fregs.F7._ ## TYPE [0] = _f7; \
+   num_fregs = 8; \
+   WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);
+ 
+ #define def_check_float_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \
+   values_ ## TYPE .f0 = _f0; \
+   values_ ## TYPE .f1 = _f1; \
+   values_ ## TYPE .f2 = _f2; \
+   values_ ## TYPE .f3 = _f3; \
+   values_ ## TYPE .f4 = _f4; \
+   values_ ## TYPE .f5 = _f5; \
+   values_ ## TYPE .f6 = _f6; \
+   values_ ## TYPE .f7 = _f7; \
+   values_ ## TYPE .f8 = _f8; \
+   values_ ## TYPE .f9 = _f9; \
+   values_ ## TYPE .f10 = _f10; \
+   values_ ## TYPE .f11 = _f11; \
+   values_ ## TYPE .f12 = _f12; \
+   values_ ## TYPE .f13 = _f13; \
+   values_ ## TYPE .f14 = _f14; \
+   values_ ## TYPE .f15 = _f15; \
+   WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \
+   \
+   clear_float_registers; \
+   fregs.F0._ ## TYPE [0] = _f0; \
+   fregs.F1._ ## TYPE [0] = _f1; \
+   fregs.F2._ ## TYPE [0] = _f2; \
+   fregs.F3._ ## TYPE [0] = _f3; \
+   fregs.F4._ ## TYPE [0] = _f4; \
+   fregs.F5._ ## TYPE [0] = _f5; \
+   fregs.F6._ ## TYPE [0] = _f6; \
+   fregs.F7._ ## TYPE [0] = _f7; \
+   num_fregs = 8; \
+   WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);
+ 
+ #define def_check_float_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \
+   values_ ## TYPE .f0 = _f0; \
+   values_ ## TYPE .f1 = _f1; \
+   values_ ## TYPE .f2 = _f2; \
+   values_ ## TYPE .f3 = _f3; \
+   values_ ## TYPE .f4 = _f4; \
+   values_ ## TYPE .f5 = _f5; \
+   values_ ## TYPE .f6 = _f6; \
+   values_ ## TYPE .f7 = _f7; \
+   values_ ## TYPE .f8 = _f8; \
+   values_ ## TYPE .f9 = _f9; \
+   values_ ## TYPE .f10 = _f10; \
+   values_ ## TYPE .f11 = _f11; \
+   values_ ## TYPE .f12 = _f12; \
+   values_ ## TYPE .f13 = _f13; \
+   values_ ## TYPE .f14 = _f14; \
+   values_ ## TYPE .f15 = _f15; \
+   values_ ## TYPE .f16 = _f16; \
+   values_ ## TYPE .f17 = _f17; \
+   values_ ## TYPE .f18 = _f18; \
+   values_ ## TYPE .f19 = _f19; \
+   WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \
+   \
+   clear_float_registers; \
+   fregs.F0._ ## TYPE [0] = _f0; \
+   fregs.F1._ ## TYPE [0] = _f1; \
+   fregs.F2._ ## TYPE [0] = _f2; \
+   fregs.F3._ ## TYPE [0] = _f3; \
+   fregs.F4._ ## TYPE [0] = _f4; \
+   fregs.F5._ ## TYPE [0] = _f5; \
+   fregs.F6._ ## TYPE [0] = _f6; \
+   fregs.F7._ ## TYPE [0] = _f7; \
+   num_fregs = 8; \
+   WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);
+ 
+ #define def_check_x87_passing8(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _func1, _func2, TYPE) \
+   values_ ## TYPE .f0 = _f0; \
+   values_ ## TYPE .f1 = _f1; \
+   values_ ## TYPE .f2 = _f2; \
+   values_ ## TYPE .f3 = _f3; \
+   values_ ## TYPE .f4 = _f4; \
+   values_ ## TYPE .f5 = _f5; \
+   values_ ## TYPE .f6 = _f6; \
+   values_ ## TYPE .f7 = _f7; \
+   WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7); \
+   \
+   clear_x87_registers; \
+   num_fregs = 0; \
+   WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7);
+ 
+ #define def_check_x87_passing16(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _func1, _func2, TYPE) \
+   values_ ## TYPE .f0 = _f0; \
+   values_ ## TYPE .f1 = _f1; \
+   values_ ## TYPE .f2 = _f2; \
+   values_ ## TYPE .f3 = _f3; \
+   values_ ## TYPE .f4 = _f4; \
+   values_ ## TYPE .f5 = _f5; \
+   values_ ## TYPE .f6 = _f6; \
+   values_ ## TYPE .f7 = _f7; \
+   values_ ## TYPE .f8 = _f8; \
+   values_ ## TYPE .f9 = _f9; \
+   values_ ## TYPE .f10 = _f10; \
+   values_ ## TYPE .f11 = _f11; \
+   values_ ## TYPE .f12 = _f12; \
+   values_ ## TYPE .f13 = _f13; \
+   values_ ## TYPE .f14 = _f14; \
+   values_ ## TYPE .f15 = _f15; \
+   WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15); \
+   \
+   clear_x87_registers; \
+   num_fregs = 0; \
+   WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15);
+ 
+ #define def_check_x87_passing20(_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19, _func1, _func2, TYPE) \
+   values_ ## TYPE .f0 = _f0; \
+   values_ ## TYPE .f1 = _f1; \
+   values_ ## TYPE .f2 = _f2; \
+   values_ ## TYPE .f3 = _f3; \
+   values_ ## TYPE .f4 = _f4; \
+   values_ ## TYPE .f5 = _f5; \
+   values_ ## TYPE .f6 = _f6; \
+   values_ ## TYPE .f7 = _f7; \
+   values_ ## TYPE .f8 = _f8; \
+   values_ ## TYPE .f9 = _f9; \
+   values_ ## TYPE .f10 = _f10; \
+   values_ ## TYPE .f11 = _f11; \
+   values_ ## TYPE .f12 = _f12; \
+   values_ ## TYPE .f13 = _f13; \
+   values_ ## TYPE .f14 = _f14; \
+   values_ ## TYPE .f15 = _f15; \
+   values_ ## TYPE .f16 = _f16; \
+   values_ ## TYPE .f17 = _f17; \
+   values_ ## TYPE .f18 = _f18; \
+   values_ ## TYPE .f19 = _f19; \
+   WRAP_CALL(_func1) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19); \
+   \
+   clear_x87_registers; \
+   num_fregs = 0; \
+   WRAP_CALL(_func2) (_f0, _f1, _f2, _f3, _f4, _f5, _f6, _f7, _f8, _f9, _f10, _f11, _f12, _f13, _f14, _f15, _f16, _f17, _f18, _f19);
+ 
+ void
+ test_floats_on_stack ()
+ {
+   def_check_float_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_float_passing_float8_values, fun_check_float_passing_float8_regs, float);
+ 
+   def_check_float_passing16(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, fun_check_float_passing_float16_values, fun_check_float_passing_float16_regs, float);
+ }
+ 
+ void
+ test_too_many_floats ()
+ {
+   def_check_float_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_float_passing_float20_values, fun_check_float_passing_float20_regs, float);
+ }
+ 
+ void
+ test_doubles_on_stack ()
+ {
+   def_check_float_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_float_passing_double8_values, fun_check_float_passing_double8_regs, double);
+ 
+   def_check_float_passing16(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, fun_check_float_passing_double16_values, fun_check_float_passing_double16_regs, double);
+ }
+ 
+ void
+ test_too_many_doubles ()
+ {
+   def_check_float_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_float_passing_double20_values, fun_check_float_passing_double20_regs, double);
+ }
+ 
+ void
+ test_long_doubles_on_stack ()
+ {
+   def_check_x87_passing8(32, 33, 34, 35, 36, 37, 38, 39, fun_check_x87_passing_ldouble8_values, fun_check_x87_passing_ldouble8_regs, ldouble);
+ }
+ 
+ void
+ test_too_many_long_doubles ()
+ {
+   def_check_x87_passing20(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, fun_check_x87_passing_ldouble20_values, fun_check_x87_passing_ldouble20_regs, ldouble);
+ }
+ 
+ void
+ test_float128s_on_stack ()
+ {
+ }
+ 
+ void
+ test_too_many_float128s ()
+ {
+ }
+ 
+ 
+ int
+ main (void)
+ {
+   test_floats_on_stack ();
+   test_too_many_floats ();
+   test_doubles_on_stack ();
+   test_too_many_doubles ();
+   test_long_doubles_on_stack ();
+   test_too_many_long_doubles ();
+   test_float128s_on_stack ();
+   test_too_many_float128s ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_integers.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,203 ----
+ /* This is an autogenerated file. Do not edit.  */
+ 
+ #include "defines.h"
+ #include "macros.h"
+ #include "args.h"
+ 
+ struct IntegerRegisters iregs;
+ struct FloatRegisters fregs;
+ unsigned int num_iregs, num_fregs;
+ 
+ /* This struct holds values for argument checking.  */
+ struct 
+ {
+   int i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23;
+ } values_int;
+ 
+ struct 
+ {
+   long i0, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, i21, i22, i23;
+ } values_long;
+ 
+ void
+ fun_check_int_passing_int6_values (int i0 ATTRIBUTE_UNUSED, int i1 ATTRIBUTE_UNUSED, int i2 ATTRIBUTE_UNUSED, int i3 ATTRIBUTE_UNUSED, int i4 ATTRIBUTE_UNUSED, int i5 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_int.i0 == i0);
+   assert (values_int.i1 == i1);
+   assert (values_int.i2 == i2);
+   assert (values_int.i3 == i3);
+   assert (values_int.i4 == i4);
+   assert (values_int.i5 == i5);
+ 
+ }
+ 
+ void
+ fun_check_int_passing_int6_regs (int i0 ATTRIBUTE_UNUSED, int i1 ATTRIBUTE_UNUSED, int i2 ATTRIBUTE_UNUSED, int i3 ATTRIBUTE_UNUSED, int i4 ATTRIBUTE_UNUSED, int i5 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_int_arguments;
+ }
+ 
+ void
+ fun_check_int_passing_int12_values (int i0 ATTRIBUTE_UNUSED, int i1 ATTRIBUTE_UNUSED, int i2 ATTRIBUTE_UNUSED, int i3 ATTRIBUTE_UNUSED, int i4 ATTRIBUTE_UNUSED, int i5 ATTRIBUTE_UNUSED, int i6 ATTRIBUTE_UNUSED, int i7 ATTRIBUTE_UNUSED, int i8 ATTRIBUTE_UNUSED, int i9 ATTRIBUTE_UNUSED, int i10 ATTRIBUTE_UNUSED, int i11 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_int.i0 == i0);
+   assert (values_int.i1 == i1);
+   assert (values_int.i2 == i2);
+   assert (values_int.i3 == i3);
+   assert (values_int.i4 == i4);
+   assert (values_int.i5 == i5);
+   assert (values_int.i6 == i6);
+   assert (values_int.i7 == i7);
+   assert (values_int.i8 == i8);
+   assert (values_int.i9 == i9);
+   assert (values_int.i10 == i10);
+   assert (values_int.i11 == i11);
+ 
+ }
+ 
+ void
+ fun_check_int_passing_int12_regs (int i0 ATTRIBUTE_UNUSED, int i1 ATTRIBUTE_UNUSED, int i2 ATTRIBUTE_UNUSED, int i3 ATTRIBUTE_UNUSED, int i4 ATTRIBUTE_UNUSED, int i5 ATTRIBUTE_UNUSED, int i6 ATTRIBUTE_UNUSED, int i7 ATTRIBUTE_UNUSED, int i8 ATTRIBUTE_UNUSED, int i9 ATTRIBUTE_UNUSED, int i10 ATTRIBUTE_UNUSED, int i11 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_int_arguments;
+ }
+ 
+ void
+ fun_check_int_passing_long6_values (long i0 ATTRIBUTE_UNUSED, long i1 ATTRIBUTE_UNUSED, long i2 ATTRIBUTE_UNUSED, long i3 ATTRIBUTE_UNUSED, long i4 ATTRIBUTE_UNUSED, long i5 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_long.i0 == i0);
+   assert (values_long.i1 == i1);
+   assert (values_long.i2 == i2);
+   assert (values_long.i3 == i3);
+   assert (values_long.i4 == i4);
+   assert (values_long.i5 == i5);
+ 
+ }
+ 
+ void
+ fun_check_int_passing_long6_regs (long i0 ATTRIBUTE_UNUSED, long i1 ATTRIBUTE_UNUSED, long i2 ATTRIBUTE_UNUSED, long i3 ATTRIBUTE_UNUSED, long i4 ATTRIBUTE_UNUSED, long i5 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_long_arguments;
+ }
+ 
+ void
+ fun_check_int_passing_long12_values (long i0 ATTRIBUTE_UNUSED, long i1 ATTRIBUTE_UNUSED, long i2 ATTRIBUTE_UNUSED, long i3 ATTRIBUTE_UNUSED, long i4 ATTRIBUTE_UNUSED, long i5 ATTRIBUTE_UNUSED, long i6 ATTRIBUTE_UNUSED, long i7 ATTRIBUTE_UNUSED, long i8 ATTRIBUTE_UNUSED, long i9 ATTRIBUTE_UNUSED, long i10 ATTRIBUTE_UNUSED, long i11 ATTRIBUTE_UNUSED)
+ {
+   /* Check argument values.  */
+   assert (values_long.i0 == i0);
+   assert (values_long.i1 == i1);
+   assert (values_long.i2 == i2);
+   assert (values_long.i3 == i3);
+   assert (values_long.i4 == i4);
+   assert (values_long.i5 == i5);
+   assert (values_long.i6 == i6);
+   assert (values_long.i7 == i7);
+   assert (values_long.i8 == i8);
+   assert (values_long.i9 == i9);
+   assert (values_long.i10 == i10);
+   assert (values_long.i11 == i11);
+ 
+ }
+ 
+ void
+ fun_check_int_passing_long12_regs (long i0 ATTRIBUTE_UNUSED, long i1 ATTRIBUTE_UNUSED, long i2 ATTRIBUTE_UNUSED, long i3 ATTRIBUTE_UNUSED, long i4 ATTRIBUTE_UNUSED, long i5 ATTRIBUTE_UNUSED, long i6 ATTRIBUTE_UNUSED, long i7 ATTRIBUTE_UNUSED, long i8 ATTRIBUTE_UNUSED, long i9 ATTRIBUTE_UNUSED, long i10 ATTRIBUTE_UNUSED, long i11 ATTRIBUTE_UNUSED)
+ {
+   /* Check register contents.  */
+   check_long_arguments;
+ }
+ 
+ #define def_check_int_passing6(_i0, _i1, _i2, _i3, _i4, _i5, _func1, _func2, TYPE) \
+   values_ ## TYPE .i0 = _i0; \
+   values_ ## TYPE .i1 = _i1; \
+   values_ ## TYPE .i2 = _i2; \
+   values_ ## TYPE .i3 = _i3; \
+   values_ ## TYPE .i4 = _i4; \
+   values_ ## TYPE .i5 = _i5; \
+   WRAP_CALL(_func1) (_i0, _i1, _i2, _i3, _i4, _i5); \
+   \
+   clear_int_registers; \
+   iregs.I0 = _i0; \
+   iregs.I1 = _i1; \
+   iregs.I2 = _i2; \
+   iregs.I3 = _i3; \
+   iregs.I4 = _i4; \
+   iregs.I5 = _i5; \
+   num_iregs = 6; \
+   WRAP_CALL(_func2) (_i0, _i1, _i2, _i3, _i4, _i5);
+ 
+ #define def_check_int_passing12(_i0, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8, _i9, _i10, _i11, _func1, _func2, TYPE) \
+   values_ ## TYPE .i0 = _i0; \
+   values_ ## TYPE .i1 = _i1; \
+   values_ ## TYPE .i2 = _i2; \
+   values_ ## TYPE .i3 = _i3; \
+   values_ ## TYPE .i4 = _i4; \
+   values_ ## TYPE .i5 = _i5; \
+   values_ ## TYPE .i6 = _i6; \
+   values_ ## TYPE .i7 = _i7; \
+   values_ ## TYPE .i8 = _i8; \
+   values_ ## TYPE .i9 = _i9; \
+   values_ ## TYPE .i10 = _i10; \
+   values_ ## TYPE .i11 = _i11; \
+   WRAP_CALL(_func1) (_i0, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8, _i9, _i10, _i11); \
+   \
+   clear_int_registers; \
+   iregs.I0 = _i0; \
+   iregs.I1 = _i1; \
+   iregs.I2 = _i2; \
+   iregs.I3 = _i3; \
+   iregs.I4 = _i4; \
+   iregs.I5 = _i5; \
+   num_iregs = 6; \
+   WRAP_CALL(_func2) (_i0, _i1, _i2, _i3, _i4, _i5, _i6, _i7, _i8, _i9, _i10, _i11);
+ 
+ void
+ test_ints_on_stack ()
+ {
+   def_check_int_passing6(32, 33, 34, 35, 36, 37, fun_check_int_passing_int6_values, fun_check_int_passing_int6_regs, int);
+ }
+ 
+ void
+ test_too_many_ints ()
+ {
+   def_check_int_passing12(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, fun_check_int_passing_int12_values, fun_check_int_passing_int12_regs, int);
+ }
+ 
+ void
+ test_longs_on_stack ()
+ {
+   def_check_int_passing6(32, 33, 34, 35, 36, 37, fun_check_int_passing_long6_values, fun_check_int_passing_long6_regs, long);
+ }
+ 
+ void
+ test_too_many_longs ()
+ {
+   def_check_int_passing12(32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, fun_check_int_passing_long12_values, fun_check_int_passing_long12_regs, long);
+ }
+ 
+ void
+ test_int128s_on_stack ()
+ {
+ }
+ 
+ void
+ test_too_many_int128s ()
+ {
+ }
+ 
+ 
+ int
+ main (void)
+ {
+   test_ints_on_stack ();
+   test_too_many_ints ();
+   test_longs_on_stack ();
+   test_too_many_longs ();
+   test_int128s_on_stack ();
+   test_too_many_int128s ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,94 ----
+ /* This tests passing of structs. Only integers are tested.  */
+ 
+ #include "defines.h"
+ #include "args.h"
+ 
+ struct IntegerRegisters iregs;
+ struct FloatRegisters fregs;
+ unsigned int num_iregs, num_fregs;
+ 
+ struct int_struct
+ {
+   int i;
+ };
+ 
+ struct long_struct
+ {
+   long l;
+ };
+ 
+ struct long2_struct
+ {
+   long l1, l2;
+ };
+ 
+ struct long3_struct
+ {
+   long l1, l2, l3;
+ };
+ 
+ 
+ /* Check that the struct is passed as the individual members in iregs.  */
+ void
+ check_struct_passing1 (struct int_struct is ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ void
+ check_struct_passing2 (struct long_struct ls ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ void
+ check_struct_passing3 (struct long2_struct ls ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ void
+ check_struct_passing4 (struct long3_struct ls ATTRIBUTE_UNUSED)
+ {
+   /* Check the passing on the stack by comparing the address of the
+      stack elements to the expected place on the stack.  */
+   assert ((unsigned long)&ls.l1 == rsp+8);
+   assert ((unsigned long)&ls.l2 == rsp+16);
+   assert ((unsigned long)&ls.l3 == rsp+24);
+ }
+ 
+ 
+ int
+ main (void)
+ {
+   struct int_struct is = { 48 };
+   struct long_struct ls = { 49 };
+ #ifdef CHECK_LARGER_STRUCTS
+   struct long2_struct l2s = { 50, 51 };
+   struct long3_struct l3s = { 52, 53, 54 };
+ #endif
+ 
+   clear_struct_registers;
+   iregs.I0 = is.i;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   WRAP_CALL (check_struct_passing1)(is);
+ 
+   clear_struct_registers;
+   iregs.I0 = ls.l;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   WRAP_CALL (check_struct_passing2)(ls);
+ 
+ #ifdef CHECK_LARGER_STRUCTS
+   clear_struct_registers;
+   iregs.I0 = l2s.l1;
+   iregs.I1 = l2s.l2;
+   num_iregs = 2;
+   clear_int_hardware_registers;
+   WRAP_CALL (check_struct_passing3)(l2s);
+   WRAP_CALL (check_struct_passing4)(l3s);
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs_and_unions.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs_and_unions.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs_and_unions.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_structs_and_unions.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,95 ----
+ /* This tests passing of structs. Only integers are tested.  */
+ 
+ #include "defines.h"
+ #include "args.h"
+ 
+ struct IntegerRegisters iregs;
+ struct FloatRegisters fregs;
+ unsigned int num_iregs, num_fregs;
+ 
+ struct int_struct
+ {
+   int i;
+ };
+ 
+ struct long_struct
+ {
+   long l;
+ };
+ 
+ struct long2_struct
+ {
+   long l1, l2;
+ };
+ 
+ struct long3_struct
+ {
+   long l1, l2, l3;
+ };
+ 
+ union un1
+ {
+   char c;
+   int i;
+ };
+ 
+ union un2
+ {
+   char c1;
+   long l;
+   char c2;
+ };
+ 
+ union un3
+ {
+   struct int_struct is;
+   struct long_struct ls;
+   union un1 un;
+ };
+ 
+ 
+ void
+ check_mixed_passing1 (char c1 ATTRIBUTE_UNUSED, struct int_struct is ATTRIBUTE_UNUSED, char c2 ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ void
+ check_mixed_passing2 (char c1 ATTRIBUTE_UNUSED, struct long3_struct ls ATTRIBUTE_UNUSED, char c2 ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ 
+   /* Check the passing on the stack by comparing the address of the
+      stack elements to the expected place on the stack.  */
+   assert ((unsigned long)&ls.l1 == rsp+8);
+   assert ((unsigned long)&ls.l2 == rsp+16);
+   assert ((unsigned long)&ls.l3 == rsp+24);
+ }
+ 
+ int
+ main (void)
+ {
+   struct int_struct is = { 64 };
+ #ifdef CHECK_LARGER_STRUCTS
+   struct long3_struct l3s = { 65, 66, 67 };
+ #endif
+ 
+   clear_struct_registers;
+   iregs.I0 = 8;
+   iregs.I1 = 64;
+   iregs.I2 = 9;
+   num_iregs = 3;
+   clear_int_hardware_registers;
+   WRAP_CALL (check_mixed_passing1)(8, is, 9);
+ 
+ #ifdef CHECK_LARGER_STRUCTS 
+   clear_struct_registers;
+   iregs.I0 = 10;
+   iregs.I1 = 11;
+   num_iregs = 2;
+   clear_int_hardware_registers;
+   WRAP_CALL (check_mixed_passing2)(10, l3s, 11);
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_passing_unions.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,144 ----
+ /* This tests passing of structs. Only integers are tested.  */
+ 
+ #include "defines.h"
+ #include "args.h"
+ 
+ struct IntegerRegisters iregs;
+ struct FloatRegisters fregs;
+ unsigned int num_iregs, num_fregs;
+ 
+ struct int_struct
+ {
+   int i;
+ };
+ 
+ struct long_struct
+ {
+   long l;
+ };
+ 
+ union un1
+ {
+   char c;
+   int i;
+ };
+ 
+ union un2
+ {
+   char c1;
+   long l;
+   char c2;
+ };
+ 
+ union un3
+ {
+   struct int_struct is;
+   struct long_struct ls;
+   union un1 un;
+ };
+ 
+ 
+ void
+ check_union_passing1(union un1 u ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ void
+ check_union_passing2(union un2 u ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ void
+ check_union_passing3(union un3 u ATTRIBUTE_UNUSED)
+ {
+   check_int_arguments;
+ }
+ 
+ #define check_union_passing1 WRAP_CALL(check_union_passing1)
+ #define check_union_passing2 WRAP_CALL(check_union_passing2)
+ #define check_union_passing3 WRAP_CALL(check_union_passing3)
+ 
+ int
+ main (void)
+ {
+   union un1 u1;
+ #ifdef CHECK_LARGER_UNION_PASSING
+   union un2 u2;
+   union un3 u3;
+   struct int_struct is;
+   struct long_struct ls;
+ #endif /* CHECK_LARGER_UNION_PASSING */
+ 
+   /* Check a union with char, int.  */
+   clear_struct_registers;
+   u1.i = 0;  /* clear the struct to not have high bits left */
+   u1.c = 32;
+   iregs.I0 = 32;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing1(u1);
+   u1.i = 0;  /* clear the struct to not have high bits left */
+   u1.i = 33;
+   iregs.I0 = 33;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing1(u1);
+ 
+   /* Check a union with char, long, char.  */
+ #ifdef CHECK_LARGER_UNION_PASSING
+   clear_struct_registers;
+   u2.l = 0;  /* clear the struct to not have high bits left */
+   u2.c1 = 34;
+   iregs.I0 = 34;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing2(u2);
+   u2.l = 0;  /* clear the struct to not have high bits left */
+   u2.l = 35;
+   iregs.I0 = 35;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing2(u2);
+   u2.l = 0;  /* clear the struct to not have high bits left */
+   u2.c2 = 36;
+   iregs.I0 = 36;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing2(u2);
+ 
+   /* check a union containing two structs and a union.  */
+   clear_struct_registers;
+   is.i = 37;
+   u3.ls.l = 0;  /* clear the struct to not have high bits left */
+   u3.is = is;
+   iregs.I0 = 37;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing3(u3);
+   ls.l = 38;
+   u3.ls.l = 0;  /* clear the struct to not have high bits left */
+   u3.ls = ls;
+   iregs.I0 = 38;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing3(u3);
+   u1.c = 39;
+   u3.ls.l = 0;  /* clear the struct to not have high bits left */
+   u3.un = u1;
+   iregs.I0 = 39;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing3(u3);
+   u1.i = 40;
+   u3.ls.l = 0;  /* clear the struct to not have high bits left */
+   u3.un = u1;
+   iregs.I0 = 40;
+   num_iregs = 1;
+   clear_int_hardware_registers;
+   check_union_passing3(u3);
+ #endif /* CHECK_LARGER_UNION_PASSING */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_struct_returning.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_struct_returning.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_struct_returning.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_struct_returning.c	Mon Jun 27 06:42:32 2005
***************
*** 0 ****
--- 1,230 ----
+ /* This tests returning of structures.  */
+ 
+ #include <stdio.h>
+ #include "defines.h"
+ #include "macros.h"
+ #include "args.h"
+ 
+ struct IntegerRegisters iregs;
+ struct FloatRegisters fregs;
+ unsigned int num_iregs, num_fregs;
+ 
+ int current_test;
+ int num_failed = 0;
+ 
+ #undef assert
+ #define assert(test) do { if (!(test)) {fprintf (stderr, "failed in test %d\n", current_test); num_failed++; } } while (0)
+ 
+ #define xmm0f xmm_regs[0]._float
+ #define xmm0d xmm_regs[0]._double
+ #define xmm1f xmm_regs[1]._float
+ #define xmm1d xmm_regs[1]._double
+ 
+ typedef enum {
+   INT = 0,
+   SSE_F,
+   SSE_D,
+   X87,
+   MEM,
+   INT_SSE,
+   SSE_INT,
+   SSE_F_V
+ } Type;
+ 
+ /* Structures which should be returned in INTEGER.  */
+ #define D(I,MEMBERS,B) struct S_ ## I { MEMBERS ; }; Type class_ ## I = INT; \
+ struct S_ ## I f_ ## I (void) { struct S_ ## I s; memset (&s, 0, sizeof(s)); B; return s; }
+ 
+ D(1,char m1, s.m1=42)
+ D(2,short m1, s.m1=42)
+ D(3,int m1, s.m1=42)
+ D(4,long m1, s.m1=42)
+ D(5,long long m1, s.m1=42)
+ D(6,char m1;short s, s.m1=42)
+ D(7,char m1;int i, s.m1=42)
+ D(8,char m1; long l, s.m1=42)
+ D(9,char m1; long long l, s.m1=42)
+ D(10,char m1[16], s.m1[0]=42)
+ D(11,short m1[8], s.m1[0]=42)
+ D(12,int m1[4], s.m1[0]=42)
+ D(13,long m1[2], s.m1[0]=42)
+ D(14,long long m1[2], s.m1[0]=42)
+ 
+ #undef D
+ 
+ /* Structures which should be returned in SSE.  */
+ #define D(I,MEMBERS,C,B) struct S_ ## I { MEMBERS ; }; Type class_ ## I = C; \
+ struct S_ ## I f_ ## I (void) { struct S_ ## I s; memset (&s, 0, sizeof(s)); B; return s; }
+ 
+ D(100,float f,SSE_F, s.f=42)
+ D(101,double d,SSE_D, s.d=42)
+ D(102,float f;float f2,SSE_F, s.f=42)
+ D(103,float f;double d,SSE_F, s.f=42)
+ D(104,double d; float f,SSE_D, s.d=42)
+ D(105,double d; double d2,SSE_D, s.d=42)
+ D(106,float f[2],SSE_F, s.f[0]=42)
+ D(107,float f[3],SSE_F, s.f[0]=42)
+ D(108,float f[4],SSE_F, s.f[0]=42)
+ D(109,double d[2],SSE_D, s.d[0]=42)
+ D(110,float f[2]; double d,SSE_F, s.f[0]=42)
+ D(111,double d;float f[2],SSE_D, s.d=42)
+ 
+ #undef D
+ 
+ /* Structures which should be returned on x87 stack.  */
+ #define D(I,MEMBERS) struct S_ ## I { MEMBERS ; }; Type class_ ## I = X87; \
+ struct S_ ## I f_ ## I (void) { struct S_ ## I s = { 42 }; return s; }
+ 
+ /* The only struct containing a long double, which is returned in
+    registers at all, is the singleton struct.  All others are too large.
+    This includes a struct containing complex long double, which is passed
+    in memory, although a complex long double type itself is returned in
+    two registers.  */
+ D(200,long double ld)
+ 
+ #undef D
+ 
+ /* Structures which should be returned in INT (low) and SSE (high).  */
+ #define D(I,MEMBERS) struct S_ ## I { MEMBERS ; }; Type class_ ## I = INT_SSE; \
+ struct S_ ## I f_ ## I (void) { struct S_ ## I s = { 42,43 }; return s; }
+ 
+ D(300,char m1; float m2)
+ D(301,char m1; double m2)
+ D(302,short m1; float m2)
+ D(303,short m1; double m2)
+ D(304,int m1; float m2)
+ D(305,int m1; double m2)
+ D(306,long m1; float m2)
+ D(307,long m1; double m2)
+ 
+ #undef D
+ 
+ void check_300 (void)
+ {
+   XMM_T x;
+   x._ulong[0] = rax;
+   switch (current_test) {
+     case 300: assert ((rax & 0xff) == 42 && x._float[1] == 43); break;
+     case 301: assert ((rax & 0xff) == 42 && xmm0d[0] == 43); break;
+     case 302: assert ((rax & 0xffff) == 42 && x._float[1] == 43); break;
+     case 303: assert ((rax & 0xffff) == 42 && xmm0d[0] == 43); break;
+     case 304: assert ((rax & 0xffffffff) == 42 && x._float[1] == 43); break;
+     case 305: assert ((rax & 0xffffffff) == 42 && xmm0d[0] == 43); break;
+     case 306: assert (rax == 42 && xmm0f[0] == 43); break;
+     case 307: assert (rax == 42 && xmm0d[0] == 43); break;
+     default: assert (0); break;
+   }
+ }
+ 
+ /* Structures which should be returned in SSE (low) and INT (high).  */
+ #define D(I,MEMBERS,B) struct S_ ## I { MEMBERS ; }; Type class_ ## I = SSE_INT; \
+ struct S_ ## I f_ ## I (void) { struct S_ ## I s; memset (&s, 0, sizeof(s));  B; return s; }
+ 
+ D(400,float f[2];char c, s.f[0]=42; s.c=43)
+ D(401,double d;char c, s.d=42; s.c=43)
+ 
+ #undef D
+ 
+ void check_400 (void)
+ {
+   switch (current_test) {
+     case 400: assert (xmm0f[0] == 42 && (rax & 0xff) == 43); break;
+     case 401: assert (xmm0d[0] == 42 && (rax & 0xff) == 43); break;
+     default: assert (0); break;
+   }
+ }
+ 
+ /* Structures which should be returned in MEM.  */
+ void *struct_addr;
+ #define D(I,MEMBERS) struct S_ ## I { MEMBERS ; }; Type class_ ## I = MEM; \
+ struct S_ ## I f_ ## I (void) { union {unsigned char c; struct S_ ## I s;} u; memset (&u.s, 0, sizeof(u.s)); u.c = 42; return u.s; }
+ 
+ /* Too large.  */
+ D(500,char m1[17])
+ D(501,short m1[9])
+ D(502,int m1[5])
+ D(503,long m1[3])
+ D(504,short m1[8];char c)
+ D(505,char m1[1];int i[4])
+ D(506,float m1[5])
+ D(507,double m1[3])
+ D(508,char m1[1];float f[4])
+ D(509,char m1[1];double d[2])
+ D(510,__complex long double m1[1])
+ 
+ /* Too large due to padding.  */
+ D(520,char m1[1];int i;char c2; int i2; char c3)
+ 
+ /* Unnaturally aligned members.  */
+ D(530,short m1[1];int i PACKED)
+ 
+ #undef D
+ 
+ 
+ /* Special tests.  */
+ #define D(I,MEMBERS,C,B) struct S_ ## I { MEMBERS ; }; Type class_ ## I = C; \
+ struct S_ ## I f_ ## I (void) { struct S_ ## I s; B; return s; }
+ D(600,float f[4], SSE_F_V, s.f[0] = s.f[1] = s.f[2] = s.f[3] = 42)
+ #undef D
+ 
+ void clear_all (void)
+ {
+   clear_int_registers;
+   clear_float_registers;
+   clear_x87_registers;
+ }
+ 
+ void check_all (Type class, unsigned long size)
+ {
+   switch (class) {
+     case INT: if (size < 8) rax &= ~0UL >> (64-8*size); assert (rax == 42); break;
+     case SSE_F: assert (xmm0f[0] == 42); break;
+     case SSE_D: assert (xmm0d[0] == 42); break;
+     case SSE_F_V: assert (xmm0f[0] == 42 && xmm0f[1]==42 && xmm1f[0] == 42 && xmm1f[1] == 42); break;
+     case X87: assert (x87_regs[0]._ldouble == 42); break;
+     case INT_SSE: check_300(); break;
+     case SSE_INT: check_400(); break;
+     /* Ideally we would like to check that rax == struct_addr.
+        Unfortunately the address of the target struct escapes (for setting
+        struct_addr), so the return struct is a temporary one whose address
+        is given to the f_* functions, otherwise a conforming program
+        could notice the struct changing already before the function returns.
+        This temporary struct could be anywhere.  For GCC it will be on
+        stack, but noone is forbidding that it could be a static variable
+        if there's no threading or proper locking.  Nobody in his right mind
+        will not use the stack for that.  */
+     case MEM: assert (*(unsigned char*)struct_addr == 42 && rdi == rax); break;
+   }
+ }
+ 
+ #define D(I) { struct S_ ## I s; current_test = I; struct_addr = (void*)&s; \
+   clear_all(); \
+   s = WRAP_RET(f_ ## I) (); \
+   check_all(class_ ## I, sizeof(s)); \
+ }
+ 
+ int
+ main (void)
+ {
+   D(1) D(2) D(3) D(4) D(5) D(6) D(7) D(8) D(9) D(10) D(11) D(12) D(13) D(14)
+   
+   D(100) D(101) D(102) D(103) D(104) D(105) D(106) D(107) D(108) D(109) D(110)
+   D(111)
+ 
+   D(200)
+ 
+   D(300) D(301) D(302) D(303) D(304) D(305) D(306) D(307)
+ 
+   D(400) D(401)
+ 
+   D(500) D(501) D(502) D(503) D(504) D(505) D(506) D(507) D(508) D(509)
+   D(520)
+   D(530)
+ 
+   D(600)
+   if (num_failed)
+     abort ();
+ 
+   return 0;
+ }
+ #undef D
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c
*** gcc-4.0.2/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.target/x86_64/abi/test_varargs.c	Wed Jun 22 14:51:07 2005
***************
*** 0 ****
--- 1,97 ----
+ /* Test variable number of arguments passed to functions. For now this is
+    just a simple test to see if it's working.  */
+ 
+ #include <stdarg.h>
+ #include "defines.h"
+ 
+ 
+ #define ARG_INT     1
+ #define ARG_DOUBLE  2
+ #define ARG_POINTER 3
+ 
+ union types
+ {
+   int ivalue;
+   double dvalue;
+   void *pvalue;
+ };
+ 
+ struct arg
+ {
+   int type;
+   union types value;
+ };
+ 
+ struct arg *arglist;
+ 
+ /* This tests the argumentlist to see if it matches the format string which
+    is printf-like. Nothing will be printed of course. It can handle ints,
+    doubles and void pointers. The given value will be tested against the
+    values given in arglist.  
+    This test only assures that the variable argument passing is working.
+    No attempt is made to see if argument passing is done the right way.
+    Since the ABI doesn't say how it's done, checking this is not really
+    relevant.  */
+ void
+ my_noprintf (char *format, ...)
+ {
+   va_list va_arglist;
+   char *c;
+ 
+   int ivalue;
+   double dvalue;
+   void *pvalue;
+   struct arg *argp = arglist;
+ 
+   va_start (va_arglist, format);
+   for (c = format; *c; c++)
+     if (*c == '%')
+       {
+ 	switch (*++c)
+ 	  {
+ 	  case 'd':
+ 	    assert (argp->type == ARG_INT);
+ 	    ivalue = va_arg (va_arglist, int);
+ 	    assert (argp->value.ivalue == ivalue);
+ 	    break;
+ 	  case 'f':
+ 	    assert (argp->type == ARG_DOUBLE);
+ 	    dvalue = va_arg (va_arglist, double);
+ 	    assert (argp->value.dvalue == dvalue);
+ 	    break;
+ 	  case 'p':
+ 	    assert (argp->type == ARG_POINTER);
+ 	    pvalue = va_arg (va_arglist, void *);
+ 	    assert (argp->value.pvalue == pvalue);
+ 	    break;
+ 	  default:
+ 	    abort ();
+ 	  }
+ 
+ 	argp++;
+       }
+ }
+ 
+ int
+ main (void)
+ {
+ #ifdef CHECK_VARARGS
+   struct arg al[5];
+ 
+   al[0].type = ARG_INT;
+   al[0].value.ivalue = 256;
+   al[1].type = ARG_DOUBLE;
+   al[1].value.dvalue = 257.0;
+   al[2].type = ARG_POINTER;
+   al[2].value.pvalue = al;
+   al[3].type = ARG_DOUBLE;
+   al[3].value.dvalue = 258.0;
+   al[4].type = ARG_INT;
+   al[4].value.ivalue = 259;
+ 
+   arglist = al;
+   my_noprintf("%d%f%p%f%d", 256, 257.0, al, 258.0, 259);
+ #endif
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp gcc-4.1.0/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp
*** gcc-4.0.2/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp	Wed Dec  8 11:15:21 2004
--- gcc-4.1.0/gcc/testsuite/gcc.target/xstormy16/xstormy16.exp	Tue Mar  8 22:10:34 2005
*************** set dg-do-what-default run
*** 19,25 ****
  
  # Main loop.
  foreach testcase [lsort [find $srcdir/$subdir *.c]] {
!     global test_counts;
  
      set base "[file rootname [file tail $testcase]]"
  
--- 19,25 ----
  
  # Main loop.
  foreach testcase [lsort [find $srcdir/$subdir *.c]] {
!     global test_counts
  
      set base "[file rootname [file tail $testcase]]"
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-P.c gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-P.c
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-P.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-P.c	Mon Dec  5 22:51:40 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do run { target { *-*-* && yes } } } */
+ /* { dg-skip-if "comment" { no && yes } { "*" } { "" } } */
+ 
+ int
+ main ()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-U.c gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-U.c
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-U.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-sif-exp-U.c	Mon Dec  5 22:51:40 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do run { target { *-*-* || no } } } */
+ /* { dg-skip-if "comment" { *-*-* && yes } { "*" } { "" } } */
+ 
+ int
+ main ()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-P.c gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-P.c
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-P.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-P.c	Mon Dec  5 22:51:40 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do run { target { *-*-* && yes } } } */
+ /* { dg-xfail-if "comment" { empty-*-* && yes } { "*" } { "" } } */
+ 
+ int
+ main ()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-XP.c gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-XP.c
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-XP.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-dot-run-xif-exp-XP.c	Mon Dec  5 22:51:40 2005
***************
*** 0 ****
--- 1,8 ----
+ /* { dg-do compile { target { *-*-* empty-*-* } } } */
+ /* { dg-xfail-if "comment" { *-*-* && yes } { "*" } { "" } } */
+ 
+ int
+ main ()
+ {
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-error-exp-P.c gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-error-exp-P.c
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-error-exp-P.c	Tue Feb  1 17:37:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-error-exp-P.c	Mon Feb 28 23:43:05 2005
***************
*** 4,9 ****
  
  int main (int argc, char *argv[])
  {
!   +;		/* { dg-error "syntax error" "error test" } */
    return 0;
  }
--- 4,9 ----
  
  int main (int argc, char *argv[])
  {
!   +;		/* { dg-error "expected expression" "error test" } */
    return 0;
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c	Tue Feb  1 17:37:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/dg-error-exp-XP.c	Mon Feb 28 23:43:05 2005
***************
*** 5,11 ****
  int main (int argc, char *argv[])
  {
    +;
!               /* { dg-error "syntax error" "error test" { xfail *-*-* } 7 } */
    return 0;
  }
  /* { dg-excess-errors "expect failure" { xfail *-*-* } } */
--- 5,11 ----
  int main (int argc, char *argv[])
  {
    +;
!               /* { dg-error "expected expression" "error test" { xfail *-*-* } 7 } */
    return 0;
  }
  /* { dg-excess-errors "expect failure" { xfail *-*-* } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/gen_directive_tests gcc-4.1.0/gcc/testsuite/gcc.test-framework/gen_directive_tests
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/gen_directive_tests	Thu Feb  3 00:41:35 2005
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/gen_directive_tests	Sat Jun 25 01:45:27 2005
***************
*** 27,34 ****
  # GNU General Public License for more details.
  #
  # For a copy of the GNU General Public License, write the the
! # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
! # Boston, MA 02111-1307, USA.
  #
  ########################################################################
  
--- 27,34 ----
  # GNU General Public License for more details.
  #
  # For a copy of the GNU General Public License, write the the
! # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
! # Boston, MA 02110-1301, USA.
  #
  ########################################################################
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/test-framework.awk gcc-4.1.0/gcc/testsuite/gcc.test-framework/test-framework.awk
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/test-framework.awk	Tue Feb  1 17:37:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/test-framework.awk	Sat Jun 25 01:45:27 2005
***************
*** 16,23 ****
  # GNU General Public License for more details.
  #
  # For a copy of the GNU General Public License, write the the
! # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
! # Boston, MA 02111-1307, USA.
  
  function pass(msg)	{
  			  passes++;
--- 16,23 ----
  # GNU General Public License for more details.
  #
  # For a copy of the GNU General Public License, write the the
! # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
! # Boston, MA 02110-1301, USA.
  
  function pass(msg)	{
  			  passes++;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gcc.test-framework/test-framework.exp gcc-4.1.0/gcc/testsuite/gcc.test-framework/test-framework.exp
*** gcc-4.0.2/gcc/testsuite/gcc.test-framework/test-framework.exp	Tue Feb  1 17:37:23 2005
--- gcc-4.1.0/gcc/testsuite/gcc.test-framework/test-framework.exp	Mon Dec  5 22:51:40 2005
***************
*** 11,18 ****
  # GNU General Public License for more details.
  #
  # For a copy of the GNU General Public License, write the the
! # Free Software Foundation, Inc., 59 Temple Place - Suite 330,
! # Boston, MA 02111-1307, USA.
  
  # Based on gcc/testsuite/gcc.dg/dg.exp.
  
--- 11,18 ----
  # GNU General Public License for more details.
  #
  # For a copy of the GNU General Public License, write the the
! # Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
! # Boston, MA 02110-1301, USA.
  
  # Based on gcc/testsuite/gcc.dg/dg.exp.
  
*************** dg-init
*** 51,56 ****
--- 51,62 ----
  # Run tests from the source directory.
  dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/dg-*.c]] "" ""
  
+ # Skip generated tests unless CHECK_TEST_FRAMEWORK is 1.
+ if { $env(CHECK_TEST_FRAMEWORK) != 1 } {
+     verbose "skipping generated test framework tests, CHECK_TEST_FRAMEWORK is not 1" 0
+     return
+ }
+ 
  # Generate additional tests.
  set tstobjdir "$tmpdir/gcc.test-framework"
  set generator "$srcdir/$subdir/gen_directive_tests"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/PR19872.f gcc-4.1.0/gcc/testsuite/gfortran.dg/PR19872.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/PR19872.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/PR19872.f	Sun Apr 10 03:46:22 2005
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do run } 
+ ! PR 19872 - closed and re-opened file not overwriten
+       implicit none
+       integer i(4)
+       data i / 4 * 0 /
+       open(1,form='FORMATTED',status='UNKNOWN')
+       write(1,'("1 2 3 4 5 6 7 8 9")')
+       close(1)
+       open(1,form='FORMATTED')
+       write(1,'("9 8 7 6")')
+       close(1)
+       open(1,form='FORMATTED')
+       read(1,*)i
+       if(i(1).ne.9.and.i(2).ne.8.and.i(3).ne.7.and.i(4).ne.9)call abort
+       read(1,*,end=200)i
+ ! should only be able to read one line from the file
+       call abort
+  200  continue
+       close(1,STATUS='DELETE')
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/PR24188.f gcc-4.1.0/gcc/testsuite/gfortran.dg/PR24188.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/PR24188.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/PR24188.f	Wed Dec 14 11:01:15 2005
***************
*** 0 ****
--- 1,7 ----
+ C PR target/24188
+ C { dg-do compile }
+ C { dg-options "-O2" }
+ C { dg-options "-O2 -mcmodel=medium" { target { x86_64-*-* && lp64 } } }
+ C { dg-options "-O2 -mcmodel=medium" { target { i?86-*-* && lp64 } } }
+       WRITE(6,*) ''
+       END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/advance.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/advance.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/advance.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/advance.f90	Wed Dec 21 05:08:53 2005
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do run }
+ ! PR25463 Check that advance='no' works correctly.
+ ! Derived from example given in PR by Thomas Koenig
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
+ program pr25463
+   character(10) :: str
+   write (10,'(A)',advance="no") 'ab'
+   write (10,'(TL2,A)') 'c'
+   rewind (10)
+   read (10, '(a)') str
+   if (str.ne.'abc') call abort()
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/aint_anint_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/aint_anint_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/aint_anint_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/aint_anint_1.f90	Tue Oct 11 23:58:17 2005
***************
*** 0 ****
--- 1,26 ----
+ program aint_anint_1
+     
+   implicit none
+ 
+   real(4) :: r = 42.7, r1, r2
+   real(8) :: s = 42.7D0, s1, s2
+ 
+   r1 = aint(r)
+   r2 = aint(r,kind=8)
+   if (abs(r1 - r2) > 0.1) call abort()
+ 
+   r1 = anint(r)
+   r2 = anint(r,kind=8)
+   if (abs(r1 - r2) > 0.1) call abort()
+ 
+   s1 = aint(s)
+   s2 = aint(s, kind=4)
+   if (abs(s1 - s2) > 0.1) call abort()
+ 
+   s1 = anint(s)
+   s2 = anint(s, kind=4)
+   if (abs(s1 - s2) > 0.1) call abort()
+ 
+ 
+ end program aint_anint_1
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/aliasing_dummy_1.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,64 ----
+ ! { dg-do run }
+ ! This tests the fix for PR24276, which originated from the Loren P. Meissner example,
+ ! Array_List.  The PR concerns dummy argument aliassing of components of arrays of derived
+ ! types as arrays of the type of the component.  gfortran would compile and run this
+ ! example but the stride used did not match the actual argument.  This test case exercises
+ ! a procedure call (to foo2, below) that is identical to Array_List's.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ 
+ program test_lex
+   type :: dtype
+     integer :: n
+     character*5 :: word
+   end type dtype
+ 
+   type :: list
+     type(dtype), dimension(4) :: list
+     integer :: l = 4
+   end type list
+  
+   type(list) :: table
+   type(dtype) :: elist(2,2)
+ 
+   table%list = (/dtype (1 , "one  "), dtype (2 , "two  "), dtype (3 , "three"), dtype (4 , "four ")/)
+ 
+ ! Test 1D with assumed shape (original bug) and assumed size.
+   call bar (table, 2, 4)
+   if (any (table%list%word.ne.(/"one  ","i=  2","three","i=  4"/))) call abort ()
+ 
+   elist = reshape (table%list, (/2,2/))
+ 
+ ! Check 2D is OK with assumed shape and assumed size.
+   call foo3 (elist%word, 1)
+   call foo1 (elist%word, 3)
+   if (any (elist%word.ne.reshape ((/"i=  1","i=  2","i=  3","i=  4"/), (/2,2/)))) call abort ()
+ 
+ contains
+ 
+   subroutine bar (table, n, m)
+     type(list) :: table
+     integer n, m
+     call foo1 (table%list(:table%l)%word, n)
+     call foo2 (table%list(:table%l)%word, m)
+   end subroutine bar
+ 
+   subroutine foo1 (slist, i)
+     character(*), dimension(*) :: slist
+     integer i
+     write (slist(i), '(2hi=,i3)') i
+   end subroutine foo1
+ 
+   subroutine foo2 (slist, i)
+     character(5), dimension(:) :: slist
+     integer i
+     write (slist(i), '(2hi=,i3)') i
+   end subroutine foo2
+ 
+   subroutine foo3 (slist, i)
+     character(5), dimension(:,:) :: slist
+     integer i
+     write (slist(1,1), '(2hi=,i3)') i
+   end subroutine foo3
+ 
+ end program test_lex
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/allocate_char_star_scalar_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/allocate_char_star_scalar_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/allocate_char_star_scalar_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/allocate_char_star_scalar_1.f90	Mon Feb 13 19:32:02 2006
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do compile }
+ ! Tests the patch for PR26038 that used to ICE in gfc_trans_allocate
+ ! for the want of a string_length to pass to the library.
+ ! Contributed by hjl@lucon.org && Erik Edelmann  <eedelmanncc.gnu.org>
+ module moo
+ 
+ contains
+ 
+     subroutine foo(self)
+         character(*) :: self
+         pointer :: self
+ 
+         nullify(self)
+         allocate(self)          ! Used to ICE here
+         print *, len(self)
+     end subroutine
+ 
+ end module moo
+ 
+ 
+ program hum
+ 
+     use moo
+ 
+     character(5), pointer :: p
+     character(10), pointer :: q
+ 
+     call foo(p)
+     call foo(q)
+ 
+ end program hum
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_alloc_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_alloc_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_alloc_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_alloc_1.f90	Fri Sep  9 06:22:28 2005
***************
*** 0 ****
--- 1,21 ----
+ ! PR 21104.  Make sure that either f() or its caller will allocate
+ ! the array data.  We've decided to make the caller allocate it.
+ ! { dg-do run }
+ program main
+   implicit none
+   call test (f ())
+ contains
+   subroutine test (x)
+     integer, dimension (10) :: x
+     integer :: i
+     do i = 1, 10
+       if (x (i) .ne. i * 100) call abort
+     end do
+   end subroutine test
+ 
+   function f
+     integer, dimension (10) :: f
+     integer :: i
+     forall (i = 1:10) f (i) = i * 100
+   end function f
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_alloc_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_alloc_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_alloc_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_alloc_2.f90	Fri Sep  9 06:22:28 2005
***************
*** 0 ****
--- 1,38 ----
+ ! Like array_alloc_1.f90, but check cases in which the array length is
+ ! not a literal constant.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n = 100
+   call test (n, f1 ())
+   call test (47, f2 (50))
+   call test (n, f3 (f1 ()))
+ contains
+   subroutine test (expected, x)
+     integer, dimension (:) :: x
+     integer :: i, expected
+     if (size (x, 1) .ne. expected) call abort
+     do i = 1, expected
+       if (x (i) .ne. i * 100) call abort
+     end do
+   end subroutine test
+ 
+   function f1
+     integer, dimension (n) :: f1
+     integer :: i
+     forall (i = 1:n) f1 (i) = i * 100
+   end function f1
+ 
+   function f2 (howmuch)
+     integer :: i, howmuch
+     integer, dimension (4:howmuch) :: f2
+     forall (i = 4:howmuch) f2 (i) = i * 100 - 300
+   end function f2
+ 
+   function f3 (x)
+     integer, dimension (:) :: x
+     integer, dimension (size (x, 1)) :: f3
+     integer :: i
+     forall (i = 1:size(x)) f3 (i) = i * 100
+   end function f3
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_alloc_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_alloc_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_alloc_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_alloc_3.f90	Fri Sep  9 06:22:28 2005
***************
*** 0 ****
--- 1,35 ----
+ ! Like array_alloc_1.f90, but check multi-dimensional arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   call test ((/ 3, 4, 5 /), f ((/ 3, 4, 5 /)))
+ contains
+   subroutine test (expected, x)
+     integer, dimension (:,:,:) :: x
+     integer, dimension (3) :: expected
+     integer :: i, i1, i2, i3
+     do i = 1, 3
+       if (size (x, i) .ne. expected (i)) call abort
+     end do
+     do i1 = 1, expected (1)
+       do i2 = 1, expected (2)
+         do i3 = 1, expected (3)
+           if (x (i1, i2, i3) .ne. i1 + i2 * 10 + i3 * 100) call abort
+         end do
+       end do
+     end do
+   end subroutine test
+ 
+   function f (x)
+     integer, dimension (3) :: x
+     integer, dimension (x(1), x(2), x(3)) :: f
+     integer :: i1, i2, i3
+     do i1 = 1, x(1)
+       do i2 = 1, x(2)
+         do i3 = 1, x(3)
+           f (i1, i2, i3) = i1 + i2 * 10 + i3 * 100
+         end do
+       end do
+     end do
+   end function f
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_1.f90	Wed May 18 19:20:31 2005
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do run }
+ ! Check that [...] style array constructors work
+ program bracket_array_constructor
+     implicit none
+     integer :: a(4), i
+ 
+     a = [ 1, 2, 3, 4 ]  ! { dg-warning "array constructor" }
+     do i = 1, size(a)
+         if (a(i) /= i) call abort()
+     end do
+ 
+     a = [ (/ 1, 2, 3, 4 /) ]  ! { dg-warning "array constructor" }
+     do i = 1, size(a)
+         if (a(i) /= i) call abort()
+     end do
+ 
+ end program bracket_array_constructor
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_10.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_10.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_10.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,27 ----
+ ! Like array_constructor_6.f90, but check constructors that apply
+ ! an elemental function to an array.
+ ! { dg-do run }
+ program main
+   implicit none
+   call build (200)
+ contains
+   subroutine build (order)
+     integer :: order, i
+ 
+     call test (order, (/ (abs ((/ i, -i, -i * 2 /)), i = 1, order) /))
+     call test (order, abs ((/ ((/ -i, -i, i * 2 /), i = 1, order) /)))
+     call test (order, (/ abs ((/ ((/ i, i, -i * 2 /), i = 1, order) /)) /))
+   end subroutine build
+ 
+   subroutine test (order, values)
+     integer, dimension (3:) :: values
+     integer :: order, i
+ 
+     if (size (values, dim = 1) .ne. order * 3) call abort
+     do i = 1, order
+       if (values (i * 3) .ne. i) call abort
+       if (values (i * 3 + 1) .ne. i) call abort
+       if (values (i * 3 + 2) .ne. i * 2) call abort
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_11.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_11.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_11.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_11.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,47 ----
+ ! Like array_constructor_6.f90, but check iterators with non-default stride,
+ ! including combinations which lead to zero-length vectors.
+ ! { dg-do run }
+ program main
+   implicit none
+   call build (77)
+ contains
+   subroutine build (order)
+     integer :: order, i, j
+ 
+     call test (1, 11, 3, (/ (i, i = 1, 11, 3) /))
+     call test (3, 20, 2, (/ (i, i = 3, 20, 2) /))
+     call test (4, 0, 11, (/ (i, i = 4, 0, 11) /))
+ 
+     call test (110, 10, -3,  (/ (i, i = 110, 10, -3) /))
+     call test (200, 20, -12, (/ (i, i = 200, 20, -12) /))
+     call test (29, 30, -6,   (/ (i, i = 29, 30, -6) /))
+ 
+     call test (1, order, 3,  (/ (i, i = 1, order, 3) /))
+     call test (order, 1, -3, (/ (i, i = order, 1, -3) /))
+ 
+     ! Triggers compile-time iterator calculations in trans-array.c
+     call test (1, 1000, 2,   (/ (i, i = 1, 1000, 2),   (i, i = order, 0, 1) /))
+     call test (1, 0, 3,      (/ (i, i = 1, 0, 3),      (i, i = order, 0, 1) /))
+     call test (1, 2000, -5,  (/ (i, i = 1, 2000, -5),  (i, i = order, 0, 1) /))
+     call test (3000, 99, 4,  (/ (i, i = 3000, 99, 4),  (i, i = order, 0, 1) /))
+     call test (400, 77, -39, (/ (i, i = 400, 77, -39), (i, i = order, 0, 1) /))
+ 
+     do j = -10, 10
+       call test (order + j, order, 5,  (/ (i, i = order + j, order, 5) /))
+       call test (order + j, order, -5, (/ (i, i = order + j, order, -5) /))
+     end do
+ 
+   end subroutine build
+ 
+   subroutine test (from, to, step, values)
+     integer, dimension (:) :: values
+     integer :: from, to, step, last, i
+ 
+     last = 0
+     do i = from, to, step
+       last = last + 1
+       if (values (last) .ne. i) call abort
+     end do
+     if (size (values, dim = 1) .ne. last) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_12.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_12.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_12.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_12.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,51 ----
+ ! Like array_constructor_6.f90, but check integer(8) iterators.
+ ! { dg-do run }
+ program main
+   integer (kind = 8) :: i, l8, u8, step8
+   integer (kind = 4) :: l4, step4
+   integer (kind = 8), parameter :: big = 10000000000_8
+ 
+   l4 = huge (1)
+   u8 = l4 + 10_8
+   step4 = 2
+   call test ((/ (i, i = l4, u8, step4) /), l4 + 0_8, u8, step4 + 0_8)
+ 
+   l8 = big
+   u8 = big * 20
+   step8 = big
+   call test ((/ (i, i = l8, u8, step8) /), l8, u8, step8)
+ 
+   u8 = big + 100
+   l8 = big
+   step4 = -20
+   call test ((/ (i, i = u8, l8, step4) /), u8, l8, step4 + 0_8)
+ 
+   u8 = big * 40
+   l8 = big * 20
+   step8 = -big * 2
+   call test ((/ (i, i = u8, l8, step8) /), u8, l8, step8)
+ 
+   u8 = big
+   l4 = big / 100
+   step4 = -big / 500
+   call test ((/ (i, i = u8, l4, step4) /), u8, l4 + 0_8, step4 + 0_8)
+ 
+   u8 = big * 40 + 200
+   l4 = 200
+   step8 = -big
+   call test ((/ (i, i = u8, l4, step8) /), u8, l4 + 0_8, step8)
+ contains
+   subroutine test (a, l, u, step)
+     integer (kind = 8), dimension (:), intent (in) :: a
+     integer (kind = 8), intent (in) :: l, u, step
+     integer (kind = 8) :: i
+     integer :: j
+ 
+     j = 1
+     do i = l, u, step
+       if (a (j) .ne. i) call abort
+       j = j + 1
+     end do
+     if (size (a, 1) .ne. j - 1) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_2.f90	Wed May 18 19:20:31 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! Check that array constructor delimiters match
+ program bracket_array_constr_2
+     implicit none
+     integer :: a(4)
+     a = (/ 1, 2, 3, 4 ] ! { dg-error "array constructor" }
+     a = (/ [ 1, 2, 3, 4 /) ] ! { dg-error "array constructor" }
+ end program bracket_array_constr_2
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_6.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,25 ----
+ ! PR 12840.  Make sure that array constructors can be used to determine
+ ! the bounds of a scalarization loop.
+ ! { dg-do run }
+ program main
+   implicit none
+   call build (11)
+ contains
+   subroutine build (order)
+     integer :: order, i
+ 
+     call test (order, (/ (i * 2, i = 1, order) /))
+     call test (17, (/ (i * 2, i = 1, 17) /))
+     call test (5, (/ 2, 4, 6, 8, 10 /))
+   end subroutine build
+ 
+   subroutine test (order, values)
+     integer, dimension (:) :: values
+     integer :: order, i
+ 
+     if (size (values, dim = 1) .ne. order) call abort
+     do i = 1, order
+       if (values (i) .ne. i * 2) call abort
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_7.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,26 ----
+ ! Like array_constructor_6.f90, but test for nested iterators.
+ ! { dg-do run }
+ program main
+   implicit none
+   call build (17)
+ contains
+   subroutine build (order)
+     integer :: order, i, j
+ 
+     call test (order, (/ (((j + 100) * i, j = 1, i), i = 1, order) /))
+     call test (9, (/ (((j + 100) * i, j = 1, i), i = 1, 9) /))
+     call test (3, (/ 101, 202, 204, 303, 306, 309 /))
+   end subroutine build
+ 
+   subroutine test (order, values)
+     integer, dimension (:) :: values
+     integer :: order, i, j
+ 
+     if (size (values, dim = 1) .ne. order * (order + 1) / 2) call abort
+     do i = 1, order
+       do j = 1, i
+         if (values (i * (i - 1) / 2 + j) .ne. (j + 100) * i) call abort
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_8.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_8.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_8.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_8.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,46 ----
+ ! Like array_constructor_6.f90, but check constructors that mix iterators
+ ! and individual scalar elements.
+ ! { dg-do run }
+ program main
+   implicit none
+   call build (42)
+ contains
+   subroutine build (order)
+     integer :: order, i
+ 
+     call test (order, 8, 5, (/ ((/ 1, 2, 3, 4, 5, 6, 7, 8 /), i = 1, order), &
+                                100, 200, 300, 400, 500 /))
+ 
+     call test (order, 2, 3, (/ ((/ 1, 2 /), i = 1, order), &
+                                100, 200, 300 /))
+ 
+     call test (order, 3, 5, (/ ((/ 1, 2, 3 /), i = 1, order), &
+                                100, 200, 300, 400, 500 /))
+ 
+     call test (order, 6, 1, (/ ((/ 1, 2, 3, 4, 5, 6 /), i = 1, order), &
+                                100 /))
+ 
+     call test (order, 5, 0, (/ ((/ 1, 2, 3, 4, 5 /), i = 1, order) /))
+ 
+     call test (order, 0, 4, (/ 100, 200, 300, 400 /))
+ 
+     call test (11, 5, 2, (/ ((/ 1, 2, 3, 4, 5 /), i = 1, 11), &
+                             100, 200 /))
+ 
+     call test (6, 2, order, (/ ((/ 1, 2 /), i = 1, 6), &
+                                (i * 100, i = 1, order) /))
+   end subroutine build
+ 
+   subroutine test (order, repeat, trail, values)
+     integer, dimension (:) :: values
+     integer :: order, repeat, trail, i
+ 
+     if (size (values, dim = 1) .ne. order * repeat + trail) call abort
+     do i = 1, order * repeat
+       if (values (i) .ne. mod (i - 1, repeat) + 1) call abort
+     end do
+     do i = 1, trail
+       if (values (i + order * repeat) .ne. i * 100) call abort
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_9.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_9.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/array_constructor_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/array_constructor_9.f90	Fri Sep  9 06:00:40 2005
***************
*** 0 ****
--- 1,43 ----
+ ! Like array_constructor_6.f90, but check constructors in which the length
+ ! of each subarray can only be determined at run time.
+ ! { dg-do run }
+ program main
+   implicit none
+   call build (9)
+ contains
+   function gen (order)
+     real, dimension (:, :), pointer :: gen
+     integer :: order, i, j
+ 
+     allocate (gen (order, order + 1))
+     forall (i = 1 : order, j = 1 : order + 1) gen (i, j) = i * i + j
+   end function gen
+ 
+   ! Deliberately leaky!
+   subroutine build (order)
+     integer :: order, i
+ 
+     call test (order, 0, (/ (gen (i), i = 1, order) /))
+     call test (3, 2, (/ ((/ 1.5, 1.5, gen (i) /), i = 1, 3) /))
+   end subroutine build
+ 
+   subroutine test (order, prefix, values)
+     real, dimension (:) :: values
+     integer :: order, prefix, last, i, j, k
+ 
+     last = 0
+     do i = 1, order
+       do j = 1, prefix
+         last = last + 1
+         if (values (last) .ne. 1.5) call abort
+       end do
+       do j = 1, i + 1
+         do k = 1, i
+           last = last + 1
+           if (values (last) .ne. j + k * k) call abort
+         end do
+       end do
+     end do
+     if (size (values, dim = 1) .ne. last) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_0.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_0.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_0.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_0.f90	Sun Nov  6 20:05:12 2005
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! Tests fix for PR20840 - would ICE with vector subscript in 
+ ! internal unit.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+   character(len=12), dimension(4) :: iu, buff
+   character(len=48), dimension(2) :: iue
+   equivalence (iu, iue)
+   integer, dimension(4) :: v = (/2,1,4,3/)
+   iu = (/"Vector","subscripts","not","allowed!"/)
+   read (iu, '(a12/)') buff
+   read (iue(1), '(4a12)') buff
+   read (iu(4:1:-1), '(a12/)') buff
+   read (iu(v), '(a12/)') buff           ! { dg-error "with vector subscript" }
+   read (iu((/2,4,3,1/)), '(a12/)') buff ! { dg-error "with vector subscript" }
+   print *, buff
+   end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_1.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,32 ----
+ ! { dg-do run }
+ ! PR 21875 : Test formatted input/output to/from character arrays.
+ ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+       program arrayio_1
+       implicit none
+       integer         :: i(6),j,k
+       character(12)  :: r(12,2) = '0123456789AB'
+  
+ ! Write to and read from a whole character array
+ 
+       i = (/(j,j=1,6)/)
+       write(r,'(3(2x,i4/)/3(3x,i6/))') i
+       i = 0
+       read(r,'(3(2x,i4/)/3(3x,i6/))') i
+       if (any(i.ne.(/(j,j=1,6)/))) call abort()
+       do j=1,12
+ 	do k=1,2
+ 	  if ((j.gt.8.and.k.eq.1).or.(k.eq.2)) then
+ 	    if (r(j,k).ne.'0123456789AB') call abort()
+ 	  end if
+ 	end do
+       end do
+ 
+  ! Write to a portion of a character array      
+       r = '0123456789AB'
+       write(r(3:9,1),'(6(i12/))') i
+       if (r(2,1).ne.'0123456789AB') call abort()
+       do j=3,8
+         if (iachar(trim(adjustl(r(j,1))))-46.ne.j) call abort()
+       end do
+       if (r(9,1).ne.'            ') call abort()
+       end program arrayio_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_2.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do run }
+ ! PR 21875 : Test formatted input/output to/from character arrays.
+ ! This test ckecks proper positioning and padding with trailing blanks
+ ! after write operations.  Contributed by Paul Thomas.
+      program arrayio_2
+      implicit none
+      integer :: i=2
+      character(len=12), dimension(4,2)  :: r = "0123456789ab"
+      character(len=80)                  :: f
+ 
+      f = '("hello"/"world")'
+ 
+      write(r(1:4,i-1), f)
+ 
+      f = '("hello",t1,"HELLO",1x,"!"/"world",tl12,"WORLD")'
+ 
+      write(r((i-1):(i+1),i), f)
+ 
+      if ( r(1,1).ne.'hello       ' .or. &
+ 	  r(2,1).ne.'world       ' .or. &
+ 	  r(3,1).ne.'0123456789ab' .or. &
+ 	  r(4,1).ne.'0123456789ab' .or. &
+ 	  r(1,2).ne.'HELLO !     ' .or. &
+ 	  r(2,2).ne.'WORLD       ' .or. &
+ 	  r(3,2).ne.'0123456789ab' .or. &
+ 	  r(4,2).ne.'0123456789ab') call abort()
+ 
+      end program arrayio_2 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_3.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+ ! PR 21875 : Test formatted input/output to/from character arrays.
+ ! This test deliberately exceeds the record length in a write and verifies
+ ! the error message.  Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+       program arrayio_3
+       implicit none
+       integer        :: i(6),j,ierr
+       character(12)  :: r(4,2) = '0123456789AB'
+  
+ ! Write using a format string that defines a record greater than 
+ ! the length of an element in the character array.
+ 
+       i = (/(j,j=1,6)/)
+       write(r,'(3(2x,i4/)/3(4x,i9/))', iostat=ierr) i
+       if (ierr.ne.-2) call abort()
+       end program arrayio_3
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_4.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do run }
+ ! PR 24244 : Test formatted input/output to/from character arrays.
+ ! This test checks array I/O with strides other than 1.
+ ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+ program arrayio_4
+   implicit none
+   integer        :: ierr
+   character(12)  :: r(2,3,4) = '0123456789AB'
+    
+   write(r(::2,:,::1),'(i5)', iostat=ierr) 1,2,3,4,5
+   if (ierr.ne.0) call abort()
+ 
+   write(r(:,:,::2),'(i5)', iostat=ierr) 1,2,3,4,5
+   if (ierr.ne.0) call abort()
+ 
+   write(r(::1,::2,::1),'(i5)', iostat=ierr) 1,2,3,4,5
+   if (ierr.ne.0) call abort()
+ 
+   write(r(::1,::1,::1),'(i5)', iostat=ierr) 1,2,3,4,5
+   if (ierr.ne.0) call abort()
+ end program arrayio_4
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_5.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do run }
+ ! PR 21875 : Test formatted input/output to/from character arrays.
+ ! This test checks the error checking for end of file condition.
+ ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+ program arrayio_5
+   implicit none
+   integer        :: i,ierr
+   character(12)  :: r(10) = '0123456789AB'
+ 
+   write(r,'(i12)',iostat=ierr) 1,2,3,4,5,6,7,8,9,10,11
+   if (ierr.ne.-1) call abort()
+  end program arrayio_5
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_6.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do run }
+ ! PR24224 Test formatted input/output to/from character arrays with strides
+ ! other than 1.  Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+       program arrayio_6
+       implicit none
+       integer         :: i(3),j,k(3)
+       character(12)  :: r(4,4,4) = '0123456789AB'
+       character(12)  :: s(64)
+       equivalence(r,s)
+  
+       i = (/(j,j=1,3)/)
+       write(r(1:4:2,2:4:1,3:4:2),'(3(2x,i4/)/3(3x,i6/))') i
+ 
+       if (s(36).ne.'0123456789AB') call abort()
+       if (s(37).ne.'     1      ') call abort()
+       if (s(38).ne.'0123456789AB') call abort()
+       if (s(39).ne.'     2      ') call abort()
+       if (s(40).ne.'0123456789AB') call abort()
+       if (s(41).ne.'     3      ') call abort()
+       if (s(42).ne.'0123456789AB') call abort()
+       if (s(43).ne.'            ') call abort()
+       if (s(44).ne.'0123456789AB') call abort()
+       if (s(45).ne.'            ') call abort()
+       if (s(46).ne.'0123456789AB') call abort()
+  
+       k = i
+       i = 0
+       read(r(1:4:2,2:4:1,3:4:2),'(3(2x,i4/)/3(3x,i6/))') i
+       if (any(i.ne.k)) call abort()
+       
+       end program arrayio_6
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_7.f90	Tue Oct 25 01:45:02 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do run }
+ ! PR24224 Test formatted input/output to/from character arrays with strides
+ ! other than 1.  Test that reading stops at the end of the current record.
+ ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+ program arrayio_7
+   character*4, dimension(8) :: abuf = (/"0123","4567","89AB","CDEF", &
+                                         "0123","4567","89AB","CDEF"/)
+   character*4, dimension(2,4) :: buf
+   character*8 :: a
+   equivalence (buf,abuf)
+   read(buf(2, 1:3:2), '(a8)') a
+   if (a.ne."4567") call abort()
+ end program arrayio_7
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_derived_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_derived_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_derived_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_derived_1.f90	Sat Nov 19 22:03:41 2005
***************
*** 0 ****
--- 1,33 ----
+ ! { dg-do run }
+ ! PR 24862: IO for arrays of derived type handled incorrectly.
+ program arrayio_derived_1
+   implicit none
+   type tp
+      integer :: i
+      character(len=1) :: c
+   end type tp
+   type(tp) :: x(5)
+   character(len=100) :: a
+   integer :: i, b(5)
+ 
+   x%i = 256
+   x%c = "q"
+ 
+   write(a, *) x%i
+   read(a, *) b
+   do i = 1, 5
+      if (b(i) /= 256) then
+         call abort ()
+      end if
+   end do
+   write(a, *) x ! Just test that the library doesn't abort.
+   write(a, *) x(:)%i
+   b = 0
+   read(a, *) b
+   do i = 1, 5
+      if (b(i) /= 256) then
+         call abort ()
+      end if
+   end do
+ 
+ end program arrayio_derived_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/arrayio_derived_2.f90	Tue Jan 31 20:45:40 2006
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! PR 24266: IO to/from arrays that are components of derived types.
+ program main
+   implicit none
+ 
+   type ice
+     character(len=80) :: mess(3)
+   end type ice
+   type(ice) :: tp
+   integer :: i
+   character(len=80) :: mess
+ 
+   write(tp%mess,*) "message"
+   read(tp%mess,*) mess
+   print *, mess
+ 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_1.f90	Wed Dec  8 12:27:54 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_1.f90	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  ! { dg-do compile }
  ! Option passed to avoid excess errors from obsolete warning
  ! { dg-options "-w" }
!       integer*4 i(5)
        assign 1000 to i   ! { dg-error "scalar default INTEGER" }
   1000 continue
        end
--- 1,7 ----
  ! { dg-do compile }
  ! Option passed to avoid excess errors from obsolete warning
  ! { dg-options "-w" }
!       integer i(5)
        assign 1000 to i   ! { dg-error "scalar default INTEGER" }
   1000 continue
        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_5.f90	Tue Oct 25 14:06:22 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! Assign a label to a dummy argument.
+ ! Option passed to avoid excess errors from obsolete warning
+ ! { dg-options "-w" }
+ 
+ subroutine s1 (a)
+ integer a
+ assign 777 to a
+ go to a
+ 777 continue
+ end
+ program test
+ call s1 (1)
+ end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_6.f gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_6.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_6.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_6.f	Tue Oct 25 14:06:22 2005
***************
*** 0 ****
--- 1,10 ----
+ C { dg-do run }
+ C Option passed to avoid excess errors from obsolete warning
+ C { dg-options "-w" }
+ C PR22290
+ 
+       integer nz
+       assign 93 to nz
+       go to nz,(93)
+   93  continue
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_7.f gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_7.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_7.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_7.f	Thu Feb  9 14:46:04 2006
***************
*** 0 ****
--- 1,16 ----
+ C { dg-do compile }
+ C Option passed to avoid excess errors from obsolete warning
+ C { dg-options "-w" }
+ 
+       PROGRAM FM013
+       IF (ICZERO) 31270, 1270, 31270
+  1270 CONTINUE
+  1272 ASSIGN 1273 TO J
+  1273 ASSIGN 1274 TO J
+  1274 ASSIGN 1275 TO J
+       GOTO 1276
+  1275 continue
+  1276 GOTO J, ( 1272, 1273, 1274, 1275 )
+ 31270 IVDELE = IVDELE + 1
+       END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_func_dtcomp_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_func_dtcomp_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assign_func_dtcomp_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assign_func_dtcomp_1.f90	Sun Oct 23 06:59:17 2005
***************
*** 0 ****
--- 1,47 ----
+ ! { dg-do run }
+ ! { dg-options "-O0" }
+ !
+ ! Test fix for PR18022.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+ program assign_func_dtcomp
+  implicit none
+  type                         ::  mytype
+    real                       ::  x
+    real                       ::  y
+  end type mytype
+  type (mytype), dimension (4) ::  z
+ 
+  type                         ::  thytype
+    real                       ::  x(4)
+  end type thytype
+  type (thytype)               ::  w
+  real, dimension (4)          ::  a = (/1.,2.,3.,4./)
+  real, dimension (4)          ::  b = (/5.,6.,7.,8./)
+ 
+ 
+ ! Test the original problem is fixed.
+  z(:)%x = foo (a)
+  z(:)%y = foo (b)
+ 
+ 
+  if (any(z%x.ne.a).or.any(z%y.ne.b)) call abort ()
+ 
+ ! Make sure we did not break anything on the way.
+  w%x(:) = foo (b)
+  a = foo (b)
+ 
+  if (any(w%x.ne.b).or.any(a.ne.b)) call abort ()
+ 
+ contains
+ 
+  function foo (v) result (ans)
+    real, dimension (:), intent(in)   ::  v
+    real, dimension (size(v))  ::  ans
+    ans = v
+  end function foo
+ 
+ 
+ end program assign_func_dtcomp
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/associated_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/associated_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/associated_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/associated_1.f90	Thu Dec  8 17:00:26 2005
***************
*** 0 ****
--- 1,23 ----
+ ! { dg-do run }
+ ! PR 25292: Check that the intrinsic associated works with functions returning
+ ! pointers as arguments
+ program test
+    real, pointer :: a, b
+ 
+    allocate(a)
+    if (.not.associated(x(a))) call abort ()
+    if (.not.associated(a, x(a))) call abort ()
+ 
+    nullify(b)
+    if (associated(x(b))) call abort ()
+    allocate(b)
+    if (associated(x(b), x(a))) call abort ()
+ 
+ contains
+ 
+   function x(a) RESULT(b)
+     real, pointer :: a,b
+     b => a
+   end function x
+ 
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_charlen_function_1.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,83 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=legacy" }
+ ! Tests the patch for PRs 25084, 20852, 25085 and 25086, all of
+ ! which involve assumed character length functions.
+ ! Compiled from original PR testcases, which were all contributed
+ ! by Joost VandeVondele  <jv244@cam.ac.uk>
+ !
+ ! PR25084 - the error is not here but in any use of .IN.
+ ! It is OK to define an assumed character length function
+ ! in an interface but it cannot be invoked (5.1.1.5).
+ 
+ MODULE M1
+  TYPE  SET
+   INTEGER  CARD
+  END  TYPE  SET
+ END MODULE M1
+ 
+ MODULE  INTEGER_SETS
+  INTERFACE  OPERATOR  (.IN.)
+   FUNCTION ELEMENT(X,A)
+      USE M1
+      CHARACTER(LEN=*)      :: ELEMENT
+      INTEGER, INTENT(IN)   ::  X
+      TYPE(SET), INTENT(IN) ::   A
+   END FUNCTION ELEMENT
+  END  INTERFACE
+ END MODULE
+ 
+ ! 5.1.1.5 of the Standard: A function name declared with an asterisk
+ ! char-len-param shall not be array-valued, pointer-valued, recursive
+ ! or pure
+ ! 
+ ! PR20852
+ RECURSIVE FUNCTION TEST() ! { dg-error "cannot be recursive" }
+  CHARACTER(LEN=*) :: TEST
+  TEST = ""
+ END FUNCTION
+ 
+ !PR25085
+ FUNCTION F1()             ! { dg-error "cannot be array-valued" }
+   CHARACTER(LEN=*), DIMENSION(10) :: F1
+   F1 = ""
+ END FUNCTION F1
+ 
+ !PR25086
+ FUNCTION F2() result(f4)  ! { dg-error "cannot be pointer-valued" }
+   CHARACTER(LEN=*), POINTER  :: f4
+   f4 = ""
+ END FUNCTION F2
+ 
+ !PR?????
+ pure FUNCTION F3()        ! { dg-error "cannot be pure" }
+   CHARACTER(LEN=*)  :: F3
+   F3 = ""
+ END FUNCTION F3
+ 
+ function not_OK (ch)
+   character(*) not_OK, ch ! OK in an external function
+   not_OK = ch
+ end function not_OK
+ 
+   use INTEGER_SETS
+   use m1
+ 
+   character(4) :: answer
+   character(*), external :: not_OK
+   integer :: i
+   type (set) :: z
+ 
+   interface
+     function ext (i)
+       character(*) :: ext
+       integer :: i
+     end function ext
+   end interface
+ 
+   answer = i.IN.z   ! { dg-error "cannot be used|Operands of user operator" }
+   answer = ext (2)  ! { dg-error "but cannot be used" }
+ 
+   answer = not_OK ("unOK") ! { dg-error "since it is not a dummy" }
+ 
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_charlen_function_2.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! Tests the fix for PR25416, which ICED in gfc_conv_function_call, when
+ ! treating SPREAD in the statement below.
+ !
+ ! Contributed by Ulrich Weigand  <uweigand@gcc.gnu.org>
+ function bug(self,strvec) result(res)
+   character(*) :: self
+   character(*), dimension(:), intent(in) :: strvec
+   logical(kind=kind(.true.)) :: res
+ 
+   res = any(index(strvec,spread(self,1,size(strvec))) /= 0)
+ end function
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_charlen_function_3.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,39 ----
+ ! { dg-do compile }
+ ! Tests the patch for PRs 25084, 20852, 25085 and 25086, all of
+ ! which involve assumed character length functions.
+ ! This test checks the things that should not emit errors.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ function is_OK (ch)                ! { dg-warning "is obsolescent in fortran 95" }
+   character(*) is_OK, ch           ! OK in an external function
+   is_OK = ch
+ end function is_OK
+ 
+ ! The warning occurs twice for the next line; for 'more_OK' and for 'fcn';
+ function more_OK (ch, fcn)         ! { dg-warning "is obsolescent in fortran 95" }
+   character(*) more_OK, ch
+   character (*), external :: fcn   ! OK as a dummy argument
+   more_OK = fcn (ch)
+ end function more_OK
+ 
+   character(4) :: answer
+   character(4), external :: is_OK, more_OK
+ 
+   answer = is_OK ("isOK")          ! LEN defined in calling scope
+   print *, answer
+ 
+   answer = more_OK ("okay", is_OK) ! Actual arg has defined LEN
+   print *, answer
+ 
+   answer = also_OK ("OKOK")
+   print *, answer
+ 
+ contains
+   function also_OK (ch)
+     character(4) also_OK
+     character(*) ch
+     also_OK = is_OK (ch)            ! LEN obtained by host association
+   end function also_OK
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_dummy_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_dummy_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_dummy_1.f90	Tue Sep 13 19:02:48 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_dummy_1.f90	Wed Sep 14 05:12:04 2005
*************** contains
*** 44,47 ****
  end program test
  
  
- 
--- 44,46 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_dummy_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_dummy_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_dummy_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_dummy_2.f90	Fri Oct 21 18:50:52 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ 
+   double precision :: arr(5, 8)
+   call bar (arr)
+ contains
+   subroutine foo (arr)
+     double precision :: arr(:,:)
+     arr(3, 4) = 24
+   end subroutine foo
+   subroutine bar (arr)
+     double precision :: arr(5,*)
+     call foo (arr)	! { dg-error "cannot be an assumed-size array" }
+     call foo (arr (:, :8))
+   end subroutine
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_present.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_present.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_present.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_present.f90	Wed Jan 18 18:56:43 2006
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! This tests the fix for the regression PR25785, where line 7 started
+ ! generating an assumed size error.
+ ! Contributed by Dale Ranta  <dir@lanl.gov>
+       subroutine my_sio_file_write_common(data_c1)
+         character,   intent(in), optional :: data_c1(*)
+         if (present(data_c1)) then
+         endif
+       end subroutine my_sio_file_write_common
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_shape_nml.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_shape_nml.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_shape_nml.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_shape_nml.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! One of two tests for the fix of PR23152 - There used to be
+ ! no warning for assumed shape arrays in namelists.
+ !
+ ! Conributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ program assumed_shape_nml
+   real, dimension (10) :: z
+   z = 42.0
+   call foo (z)
+ contains
+   subroutine foo (y)
+     real, DIMENSION (1:) :: y
+     namelist /mynml/ y     ! { dg-warning "is an extension" }
+     write (*, mynml)
+   end subroutine foo
+ end program assumed_shape_nml
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_shape_ranks_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_shape_ranks_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_shape_ranks_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_shape_ranks_1.f90	Mon Feb 13 19:32:02 2006
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ ! Tests fix for PR25070; was no error for actual and assumed shape
+ ! dummy ranks not matching.
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ 
+ module addon
+   interface extra
+     function foo (y)
+       integer :: foo (2), y (:)
+     end function foo
+   end interface extra
+ end module addon
+ 
+   use addon
+   INTEGER :: I(2,2)
+   I=RESHAPE((/1,2,3,4/),(/2,2/))
+   CALL TST(I)   ! { dg-error "Type/rank mismatch in argument" }
+   i = foo (i)   ! { dg-error "Type/rank mismatch|Incompatible ranks" }
+ CONTAINS
+   SUBROUTINE TST(I)
+     INTEGER :: I(:)
+     write(6,*) I
+   END SUBROUTINE TST
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_dt_dummy.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_dt_dummy.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_dt_dummy.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_dt_dummy.f90	Fri Oct 21 04:33:09 2005
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! PR20853 - No array size information for initializer.
+ ! PR24440 - patch for PR20853 caused a segfault at line 12.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ MODULE TEST
+   TYPE init
+     INTEGER :: I=0
+   END TYPE init
+ CONTAINS
+   SUBROUTINE try (A, B) ! { dg-error "cannot have a default initializer" }
+     TYPE(init), DIMENSION(*), INTENT(OUT) :: A
+     TYPE(init)              , INTENT(OUT) :: B ! PR24440 => segfault
+   END SUBROUTINE try
+ END MODULE TEST
+ 
+ end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_nml.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_nml.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_nml.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_nml.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! One of two tests for the fix of PR23152 - An ICE would
+ ! ensue from assumed shape arrays in namelists.
+ !
+ ! Conributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ program assumed_size_nml
+   real, dimension (10) :: z
+   z = 42.0
+   call foo (z)
+ contains
+   subroutine foo (y)
+     real, DIMENSION (*) :: y
+     namelist /mynml/ y     ! { dg-error "is not allowed" }
+     write (6, mynml)
+   end subroutine foo
+ end program assumed_size_nml
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_refs_1.f90	Sat Jan 14 06:31:08 2006
***************
*** 0 ****
--- 1,64 ----
+ !==================assumed_size_refs_1.f90==================
+ ! { dg-do compile }
+ ! Test the fix for PR25029, PR21256 in which references to
+ ! assumed size arrays without an upper bound to the last
+ ! dimension were generating no error. The first version of
+ ! the patch failed in DHSEQR, as pointed out by Toon Moene
+ ! in http://gcc.gnu.org/ml/fortran/2005-12/msg00466.html
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ program assumed_size_test_1
+   implicit none
+   real a(2, 4)
+ 
+   a = 1.0
+   call foo (a)
+ 
+ contains
+   subroutine foo(m)
+     real, target :: m(1:2, *)
+     real x(2,2,2)
+     real, external :: bar
+     real, pointer :: p(:,:), q(:,:)
+     allocate (q(2,2))
+ 
+ ! PR25029
+     p => m                     ! { dg-error "upper bound in the last dimension" }
+     q = m                      ! { dg-error "upper bound in the last dimension" }
+ 
+ ! PR21256( and PR25060)
+     m = 1                      ! { dg-error "upper bound in the last dimension" }
+ 
+     m(1,1) = 2.0
+     x = bar (m)
+     x = fcn (m)                ! { dg-error "upper bound in the last dimension" }
+     m(:, 1:2) = fcn (q)
+     call sub (m, x)            ! { dg-error "upper bound in the last dimension" }
+     call sub (m(1:2, 1:2), x)
+     print *, p
+ 
+     call DHSEQR(x)
+ 
+   end subroutine foo
+ 
+   elemental function fcn (a) result (b)
+     real, intent(in) :: a
+     real :: b
+     b = 2.0 * a
+   end function fcn
+ 
+   elemental subroutine sub (a, b)
+     real, intent(inout) :: a, b
+     b = 2.0 * a
+   end subroutine sub
+   
+   SUBROUTINE DHSEQR( WORK )
+     REAL WORK( * )
+     EXTERNAL           DLARFX
+     INTRINSIC          MIN
+     WORK( 1 ) = 1.0
+     CALL DLARFX( MIN( 1, 8 ), WORK )
+   END SUBROUTINE DHSEQR
+ 
+ end program assumed_size_test_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_refs_2.f90	Sat Jan 14 06:31:08 2006
***************
*** 0 ****
--- 1,44 ----
+ !==================assumed_size_refs_1.f90==================
+ ! { dg-do compile }
+ ! Test the fix for PR20868 & PR20870 in which references to
+ ! assumed size arrays without an upper bound to the last
+ ! dimension were generating no error.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ program assumed_size_test_2
+   implicit none
+   real a(2, 4)
+ 
+   a = 1.0
+   call foo (a)
+ 
+ contains
+   subroutine foo(m)
+     real, target :: m(1:2, *)
+     real x(2,2,2)
+     real, pointer :: q(:,:)
+     integer :: i
+     allocate (q(2,2))
+ 
+     q = cos (1.0 + abs(m))     ! { dg-error "upper bound in the last dimension" }
+ 
+     x = reshape (m, (/2,2,2/)) ! { dg-error "upper bound in the last dimension" }
+ 
+ ! PR20868
+     print *, ubound (m)        ! { dg-error "upper bound in the last dimension" }
+     print *, lbound (m)
+ 
+ ! PR20870
+     print *, size (m)          ! { dg-error "upper bound in the last dimension" }
+ 
+ ! Check non-array valued intrinsics
+     print *, ubound (m, 1)
+     print *, ubound (m, 2)     ! { dg-error "not a valid dimension index" }
+     
+     i = 2
+     print *, size (m, i)
+ 
+   end subroutine foo
+ 
+ end program assumed_size_test_2
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/assumed_size_refs_3.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! Tests the fix for PR25951, a regression caused by the assumed
+ ! size patch.
+ ! Test case provided by Mark Hesselink  <mhesseli@caltech.edu>
+ PROGRAM loc_1
+   integer i(10)
+   call f (i)
+ CONTAINS
+    SUBROUTINE f (x)
+       INTEGER, DIMENSION(*)   :: x
+       INTEGER                 :: address
+ ! The next line would cause:
+ ! Error: The upper bound in the last dimension must appear in the
+ ! reference to the assumed size array 'x' at (1)
+       address=LOC(x)
+    END SUBROUTINE f
+ END PROGRAM loc_1
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/auto_char_dummy_array_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/auto_char_dummy_array_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/auto_char_dummy_array_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/auto_char_dummy_array_1.f90	Wed Dec  7 06:20:21 2005
***************
*** 0 ****
--- 1,56 ----
+ ! { dg-do run }
+ ! This tests the fix for pr15809 in which automatic character length,
+ ! dummy, pointer arrays were broken.
+ !
+ ! contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ module global
+   character(12), dimension(2), target :: t
+ end module global
+ 
+ program oh_no_not_pr15908_again
+   character(12), dimension(:), pointer :: ptr
+ 
+   call a (ptr, 12)
+   if (.not.associated (ptr) ) call abort ()
+   if (any (ptr.ne."abc")) call abort ()
+ 
+   ptr => null ()              ! ptr points to 't' here.
+   allocate (ptr(3))
+   ptr = "xyz"
+   call a (ptr, 12)
+ 
+   if (.not.associated (ptr)) call abort ()
+   if (any (ptr.ne."lmn")) call abort ()
+ 
+   call a (ptr, 0)
+ 
+   if (associated (ptr)) call abort ()
+ 
+ contains
+ 
+   subroutine a (p, l)
+     use global
+     character(l), dimension(:), pointer :: p
+     character(l), dimension(3)          :: s
+ 
+     s = "lmn"
+ 
+     if (l.ne.12) then
+       deallocate (p)           ! ptr was allocated in main.
+       p => null ()
+       return
+     end if
+ 
+     if (.not.associated (p)) then
+       t = "abc"
+       p => t
+     else
+       if (size (p,1).ne.3) call abort ()
+       if (any (p.ne."xyz")) call abort ()
+       p = s
+     end if
+   end subroutine a
+ 
+ end program oh_no_not_pr15908_again
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/auto_internal_assumed.f90	Wed Nov 30 19:26:23 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! Test fix of PR24705 - ICE on assumed character length
+ ! internal function.
+ !
+ character (6) :: c
+   c = f1 ()        ! { dg-error "must not be assumed length" }
+   if (c .ne. 'abcdef') call abort
+ contains
+   function f1 ()
+     character (*) :: f1
+     f1 = 'abcdef'
+   end function f1
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/automatic_char_len_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/automatic_char_len_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/automatic_char_len_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/automatic_char_len_1.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR18082 - Compiler would get stuck in loop, whilst treating
+ ! the assignments.
+ ! Test is one of PR cases.
+ subroutine snafu (i)
+ character*(i) :: c1, c2
+ c1 = ""
+ c2 = ""
+ end subroutine snafu
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/automatic_char_len_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/automatic_char_len_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/automatic_char_len_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/automatic_char_len_2.f90	Mon Oct 17 20:52:37 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+ ! { dg-options "-O0" }
+ !
+ ! Tests fix for PR21459 - This is the original example.
+ !
+ program format_string
+   implicit none
+   character(len=*), parameter :: rform='(F15.5)', &
+   cform="(' (', F15.5, ',' F15.5, ') ')"
+   call print_a_number(cform)
+ contains
+ subroutine print_a_number(style)
+   character(len=*) :: style
+   write(*, style) cmplx(42.0, 99.0) ! { dg-output "99.00000" }
+ end subroutine print_a_number
+ end program format_string
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/automatic_module_variable.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/automatic_module_variable.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/automatic_module_variable.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/automatic_module_variable.f90	Tue Feb 14 07:18:44 2006
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! Tests fix for PR15976
+ !
+ module sd
+   integer, parameter :: n = 20
+   integer :: i(n)
+   integer :: j(m) ! { dg-error "must have constant shape" }
+   integer, pointer :: p(:)
+   integer, allocatable :: q(:)
+ contains
+   function init (x, l)
+     integer :: x(l)
+     integer :: init(l)
+     init = x
+   end function init
+ end module sd
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/backspace_2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/backspace_2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/backspace_2.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/backspace_2.f	Sun Jan  1 03:53:12 2006
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do run }
+ ! PR25139 Repeated backspaces and reads.
+ ! Derived from example given in PR by Dale Ranta and FX Coudert
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
+       integer dat(5)
+       dat = (/ 0, 0, 0, 0, 1 /)
+       write(11) dat,dat,dat,dat
+       rewind 11
+       write(11) dat
+       read(11,end=1008) dat
+       call abort()
+  1008 continue
+       backspace 11
+       write(11) dat
+       read(11,end=1011) dat
+       call abort()
+  1011 continue
+       backspace 11
+       backspace 11
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/backspace_3.f gcc-4.1.0/gcc/testsuite/gfortran.dg/backspace_3.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/backspace_3.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/backspace_3.f	Sun Jan  8 02:17:54 2006
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do run }
+ ! PR25598 Error on repeated backspaces.
+ ! Derived from example given in PR by Dale Ranta
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
+        integer data
+        data=-1
+        open(unit=11,status='scratch',form='unformatted')
+        write(11)data
+        read(11,end=        1000 )data
+        call abort()
+  1000  continue
+        backspace 11
+        backspace 11
+        backspace 11
+        read(11,end=        1001 )data
+  1001  continue
+        if (data.ne.-1) call abort
+        close(11)
+        end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/backspace_4.f gcc-4.1.0/gcc/testsuite/gfortran.dg/backspace_4.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/backspace_4.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/backspace_4.f	Sun Jan  8 02:17:54 2006
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do run }
+ ! PR25598 Error on repeated backspaces.
+ ! Derived from example given in PR by Dale Ranta
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
+        integer data
+        data=-1
+        open(unit=11,status='scratch',form='unformatted')
+        write(11)data
+        read(11,end=        1000 )data
+        call abort()
+  1000  continue
+        backspace 11
+        backspace 11
+        read(11,end=        1001 )data
+  1001  continue
+        if (data.ne.-1) call abort
+        close(11)
+        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/bad_automatic_objects_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/bad_automatic_objects_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/bad_automatic_objects_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/bad_automatic_objects_1.f90	Mon Feb 13 21:35:09 2006
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do compile }
+ ! Tests the fix for 25103, in which the presence of automatic objects
+ ! in the main program and the specification part of a module was not
+ ! detected.
+ !
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ !
+ module foo
+   integer    ::  i
+ end module foo
+ module bar
+   use foo
+   integer, dimension (i) :: j ! { dg-error "must have constant shape" }
+   character (len = i) :: c1   ! { dg-error "must have constant character length" }
+ end module bar
+ program foobar
+   use foo
+   integer, dimension (i) :: k ! { dg-error "must have constant shape" }
+   character (len = i) :: c2   ! { dg-error "must have constant character length" }
+ end program foobar
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/boz_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/boz_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/boz_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/boz_5.f90	Fri Oct 14 19:40:29 2005
***************
*** 0 ****
--- 1,4 ----
+ ! { dg-do compile }
+   integer, dimension (2) :: i
+   i = (/Z'abcde', Z'abcde/)	! { dg-error "Illegal character" }
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/boz_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/boz_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/boz_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/boz_6.f90	Sun Nov 27 15:51:54 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! { dg-options "-std=gnu" }
+ ! PR 24917
+ program test
+   integer ib, io, iz, ix
+   integer jb, jo, jz, jx
+   data ib, jb /b'111', '111'b/
+   data io, jo /o'234', '234'o/
+   data iz, jz /z'abc', 'abc'z/
+   data ix, jx /x'abc', 'abc'x/
+   if (ib /= jb) call abort
+   if (io /= jo) call abort
+   if (iz /= jz) call abort
+   if (ix /= jx) call abort
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/byte_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/byte_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/byte_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/byte_1.f90	Sun Oct 23 20:42:27 2005
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ program testbyte
+   integer(1) :: ii = 7
+   call foo(ii)
+ end program testbyte
+ 
+ subroutine foo(ii)
+   integer(1) ii
+   byte b          ! { dg-error "BYTE type" }
+   b = ii
+   call bar(ii,b)
+ end subroutine foo
+ 
+ subroutine bar(ii,b)
+   integer (1) ii
+   byte b          ! { dg-error "BYTE type" }
+   if (b.ne.ii) then
+ !     print *,"Failed"
+      call abort
+   end if
+ end subroutine bar
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/byte_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/byte_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/byte_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/byte_2.f90	Sun Oct 23 20:42:27 2005
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do run }
+ ! { dg-options "-std=gnu" }
+ program testbyte
+   integer(1) :: ii = 7
+   call foo(ii)
+ end program testbyte
+ 
+ subroutine foo(ii)
+   integer(1) ii
+   byte b
+   b = ii
+   call bar(ii,b)
+ end subroutine foo
+ 
+ subroutine bar(ii,b)
+   integer (1) ii
+   byte b
+   if (b.ne.ii) then
+ !     print *,"Failed"
+      call abort
+   end if
+ end subroutine bar
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_associated_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_associated_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_associated_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_associated_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,8 ----
+ ! Check that associated works correctly for character arrays.
+ ! { dg-do run }
+ program main
+   character (len = 5), dimension (:), pointer :: ptr
+   character (len = 5), dimension (2), target :: a = (/ 'abcde', 'fghij' /)
+   ptr => a
+   if (.not. associated (ptr, a)) call abort
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_cshift_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_cshift_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_cshift_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_cshift_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,40 ----
+ ! Test cshift0 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 2, n2 = 3, n3 = 4, slen = 3
+   character (len = slen), dimension (n1, n2, n3) :: a
+   integer (kind = 1) :: shift1 = 3
+   integer (kind = 2) :: shift2 = 4
+   integer (kind = 4) :: shift3 = 5
+   integer (kind = 8) :: shift4 = 6
+   integer :: i1, i2, i3
+ 
+   do i3 = 1, n3
+     do i2 = 1, n2
+       do i1 = 1, n1
+         a (i1, i2, i3) = 'ab'(i1:i1) // 'cde'(i2:i2) // 'fghi'(i3:i3)
+       end do
+     end do
+   end do
+ 
+   call test (cshift (a, shift1, 1), int (shift1), 0, 0)
+   call test (cshift (a, shift2, 2), 0, int (shift2), 0)
+   call test (cshift (a, shift3, 3), 0, 0, int (shift3))
+   call test (cshift (a, shift4, 3), 0, 0, int (shift4))
+ contains
+   subroutine test (b, d1, d2, d3)
+     character (len = slen), dimension (n1, n2, n3) :: b
+     integer :: d1, d2, d3
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           if (b (i1, i2, i3) .ne. a (mod (d1 + i1 - 1, n1) + 1, &
+                                      mod (d2 + i2 - 1, n2) + 1, &
+                                      mod (d3 + i3 - 1, n3) + 1)) call abort
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_cshift_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_cshift_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_cshift_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_cshift_2.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,45 ----
+ ! Test cshift1 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 2, n2 = 3, n3 = 4, slen = 3
+   character (len = slen), dimension (n1, n2, n3) :: a
+   integer (kind = 1), dimension (2, 4) :: shift1
+   integer (kind = 2), dimension (2, 4) :: shift2
+   integer (kind = 4), dimension (2, 4) :: shift3
+   integer (kind = 8), dimension (2, 4) :: shift4
+   integer :: i1, i2, i3
+ 
+   do i3 = 1, n3
+     do i2 = 1, n2
+       do i1 = 1, n1
+         a (i1, i2, i3) = 'ab'(i1:i1) // 'cde'(i2:i2) // 'fghi'(i3:i3)
+       end do
+     end do
+   end do
+ 
+   shift1 (1, :) = (/ 4, 11, 19, 20 /)
+   shift1 (2, :) = (/ 55, 5, 1, 2 /)
+   shift2 = shift1
+   shift3 = shift1
+   shift4 = shift1
+ 
+   call test (cshift (a, shift1, 2))
+   call test (cshift (a, shift2, 2))
+   call test (cshift (a, shift3, 2))
+   call test (cshift (a, shift4, 2))
+ contains
+   subroutine test (b)
+     character (len = slen), dimension (n1, n2, n3) :: b
+     integer :: i2p
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           i2p = mod (shift1 (i1, i3) + i2 - 1, n2) + 1
+           if (b (i1, i2, i3) .ne. a (i1, i2p, i3)) call abort
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,50 ----
+ ! Test eoshift0 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 6, n2 = 5, n3 = 4, slen = 3
+   character (len = slen), dimension (n1, n2, n3) :: a
+   character (len = slen) :: filler
+   integer (kind = 1) :: shift1 = 4
+   integer (kind = 2) :: shift2 = 2
+   integer (kind = 4) :: shift3 = 3
+   integer (kind = 8) :: shift4 = 1
+   integer :: i1, i2, i3
+ 
+   do i3 = 1, n3
+     do i2 = 1, n2
+       do i1 = 1, n1
+         a (i1, i2, i3) = 'abcdef'(i1:i1) // 'ghijk'(i2:i2) // 'lmno'(i3:i3)
+       end do
+     end do
+   end do
+ 
+   call test (eoshift (a, shift1, 'foo', 1), int (shift1), 0, 0, 'foo')
+   call test (eoshift (a, shift2, 'foo', 2), 0, int (shift2), 0, 'foo')
+   call test (eoshift (a, shift3, 'foo', 2), 0, int (shift3), 0, 'foo')
+   call test (eoshift (a, shift4, 'foo', 3), 0, 0, int (shift4), 'foo')
+ 
+   filler = ''
+   call test (eoshift (a, shift1, dim = 1), int (shift1), 0, 0, filler)
+   call test (eoshift (a, shift2, dim = 2), 0, int (shift2), 0, filler)
+   call test (eoshift (a, shift3, dim = 2), 0, int (shift3), 0, filler)
+   call test (eoshift (a, shift4, dim = 3), 0, 0, int (shift4), filler)
+ contains
+   subroutine test (b, d1, d2, d3, filler)
+     character (len = slen), dimension (n1, n2, n3) :: b
+     character (len = slen) :: filler
+     integer :: d1, d2, d3
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           if (i1 + d1 .gt. n1 .or. i2 + d2 .gt. n2 .or. i3 + d3 .gt. n3) then
+             if (b (i1, i2, i3) .ne. filler) call abort
+           else
+             if (b (i1, i2, i3) .ne. a (i1 + d1, i2 + d2, i3 + d3)) call abort
+           end if
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_2.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,57 ----
+ ! Test eoshift1 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 2, n2 = 5, n3 = 4, slen = 3
+   character (len = slen), dimension (n1, n2, n3) :: a
+   character (len = slen) :: filler
+   integer (kind = 1), dimension (n1, n3) :: shift1
+   integer (kind = 2), dimension (n1, n3) :: shift2
+   integer (kind = 4), dimension (n1, n3) :: shift3
+   integer (kind = 8), dimension (n1, n3) :: shift4
+   integer :: i1, i2, i3
+ 
+   shift1 (1, :) = (/ 1, 3, 2, 2 /)
+   shift1 (2, :) = (/ 2, 1, 1, 3 /)
+   shift2 = shift1
+   shift3 = shift1
+   shift4 = shift1
+ 
+   do i3 = 1, n3
+     do i2 = 1, n2
+       do i1 = 1, n1
+         a (i1, i2, i3) = 'ab'(i1:i1) // 'cdefg'(i2:i2) // 'hijk'(i3:i3)
+       end do
+     end do
+   end do
+ 
+   call test (eoshift (a, shift1, 'foo', 2), 'foo')
+   call test (eoshift (a, shift2, 'foo', 2), 'foo')
+   call test (eoshift (a, shift3, 'foo', 2), 'foo')
+   call test (eoshift (a, shift4, 'foo', 2), 'foo')
+ 
+   filler = ''
+   call test (eoshift (a, shift1, dim = 2), filler)
+   call test (eoshift (a, shift2, dim = 2), filler)
+   call test (eoshift (a, shift3, dim = 2), filler)
+   call test (eoshift (a, shift4, dim = 2), filler)
+ contains
+   subroutine test (b, filler)
+     character (len = slen), dimension (n1, n2, n3) :: b
+     character (len = slen) :: filler
+     integer :: i2p
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           i2p = i2 + shift1 (i1, i3)
+           if (i2p .gt. n2) then
+             if (b (i1, i2, i3) .ne. filler) call abort
+           else
+             if (b (i1, i2, i3) .ne. a (i1, i2p, i3)) call abort
+           end if
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_3.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,54 ----
+ ! Test eoshift2 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 2, n2 = 5, n3 = 4, slen = 3
+   character (len = slen), dimension (n1, n2, n3) :: a
+   character (len = slen), dimension (n1, n3) :: filler
+   integer (kind = 1) :: shift1 = 4
+   integer (kind = 2) :: shift2 = 2
+   integer (kind = 4) :: shift3 = 3
+   integer (kind = 8) :: shift4 = 1
+   integer :: i1, i2, i3
+ 
+   filler (1, :) = (/ 'tic', 'tac', 'toe', 'tip' /)
+   filler (2, :) = (/ 'zzz', 'yyy', 'xxx', 'www' /)
+ 
+   do i3 = 1, n3
+     do i2 = 1, n2
+       do i1 = 1, n1
+         a (i1, i2, i3) = 'ab'(i1:i1) // 'cdefg'(i2:i2) // 'hijk'(i3:i3)
+       end do
+     end do
+   end do
+ 
+   call test (eoshift (a, shift1, filler, 2), int (shift1), .true.)
+   call test (eoshift (a, shift2, filler, 2), int (shift2), .true.)
+   call test (eoshift (a, shift3, filler, 2), int (shift3), .true.)
+   call test (eoshift (a, shift4, filler, 2), int (shift4), .true.)
+ 
+   call test (eoshift (a, shift1, dim = 2), int (shift1), .false.)
+   call test (eoshift (a, shift2, dim = 2), int (shift2), .false.)
+   call test (eoshift (a, shift3, dim = 2), int (shift3), .false.)
+   call test (eoshift (a, shift4, dim = 2), int (shift4), .false.)
+ contains
+   subroutine test (b, d2, has_filler)
+     character (len = slen), dimension (n1, n2, n3) :: b
+     logical :: has_filler
+     integer :: d2
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           if (i2 + d2 .le. n2) then
+             if (b (i1, i2, i3) .ne. a (i1, i2 + d2, i3)) call abort
+           else if (has_filler) then
+             if (b (i1, i2, i3) .ne. filler (i1, i3)) call abort
+           else
+             if (b (i1, i2, i3) .ne. '') call abort
+           end if
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_eoshift_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_eoshift_4.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,61 ----
+ ! Test eoshift3 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 2, n2 = 5, n3 = 4, slen = 3
+   character (len = slen), dimension (n1, n2, n3) :: a
+   character (len = slen), dimension (n1, n3) :: filler
+   integer (kind = 1), dimension (n1, n3) :: shift1
+   integer (kind = 2), dimension (n1, n3) :: shift2
+   integer (kind = 4), dimension (n1, n3) :: shift3
+   integer (kind = 8), dimension (n1, n3) :: shift4
+   integer :: i1, i2, i3
+ 
+   filler (1, :) = (/ 'tic', 'tac', 'toe', 'tip' /)
+   filler (2, :) = (/ 'zzz', 'yyy', 'xxx', 'www' /)
+ 
+   shift1 (1, :) = (/ 1, 3, 2, 2 /)
+   shift1 (2, :) = (/ 2, 1, 1, 3 /)
+   shift2 = shift1
+   shift3 = shift1
+   shift4 = shift1
+ 
+   do i3 = 1, n3
+     do i2 = 1, n2
+       do i1 = 1, n1
+         a (i1, i2, i3) = 'ab'(i1:i1) // 'cdefg'(i2:i2) // 'hijk'(i3:i3)
+       end do
+     end do
+   end do
+ 
+   call test (eoshift (a, shift1, filler, 2), .true.)
+   call test (eoshift (a, shift2, filler, 2), .true.)
+   call test (eoshift (a, shift3, filler, 2), .true.)
+   call test (eoshift (a, shift4, filler, 2), .true.)
+ 
+   call test (eoshift (a, shift1, dim = 2), .false.)
+   call test (eoshift (a, shift2, dim = 2), .false.)
+   call test (eoshift (a, shift3, dim = 2), .false.)
+   call test (eoshift (a, shift4, dim = 2), .false.)
+ contains
+   subroutine test (b, has_filler)
+     character (len = slen), dimension (n1, n2, n3) :: b
+     logical :: has_filler
+     integer :: i2p
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           i2p = i2 + shift1 (i1, i3)
+           if (i2p .le. n2) then
+             if (b (i1, i2, i3) .ne. a (i1, i2p, i3)) call abort
+           else if (has_filler) then
+             if (b (i1, i2, i3) .ne. filler (i1, i3)) call abort
+           else
+             if (b (i1, i2, i3) .ne. '') call abort
+           end if
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_pack_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_pack_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_pack_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_pack_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,59 ----
+ ! Test (non-scalar) pack for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 3, n2 = 4, nv = 10, slen = 9
+   character (len = slen), dimension (n1, n2) :: a
+   character (len = slen), dimension (nv) :: vector
+   logical, dimension (n1, n2) :: mask
+   integer :: i1, i2, i
+ 
+   do i2 = 1, n2
+     do i1 = 1, n1
+       a (i1, i2) = 'abc'(i1:i1) // 'defg'(i2:i2) // 'cantrip'
+     end do
+   end do
+   mask (1, :) = (/ .true., .false., .true., .true. /)
+   mask (2, :) = (/ .true., .false., .false., .false. /)
+   mask (3, :) = (/ .false., .true., .true., .true. /)
+ 
+   do i = 1, nv
+     vector (i) = 'crespo' // '0123456789'(i:i)
+   end do
+ 
+   call test1 (pack (a, mask))
+   call test2 (pack (a, mask, vector))
+ contains
+   subroutine test1 (b)
+     character (len = slen), dimension (:) :: b
+ 
+     i = 0
+     do i2 = 1, n2
+       do i1 = 1, n1
+         if (mask (i1, i2)) then
+           i = i + 1
+           if (b (i) .ne. a (i1, i2)) call abort
+         end if
+       end do
+     end do
+     if (size (b, 1) .ne. i) call abort
+   end subroutine test1
+ 
+   subroutine test2 (b)
+     character (len = slen), dimension (:) :: b
+ 
+     if (size (b, 1) .ne. nv) call abort
+     i = 0
+     do i2 = 1, n2
+       do i1 = 1, n1
+         if (mask (i1, i2)) then
+           i = i + 1
+           if (b (i) .ne. a (i1, i2)) call abort
+         end if
+       end do
+     end do
+     do i = i + 1, nv
+       if (b (i) .ne. vector (i)) call abort
+     end do
+   end subroutine test2
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_pack_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_pack_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_pack_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_pack_2.f90	Tue Sep 13 11:01:23 2005
***************
*** 0 ****
--- 1,53 ----
+ ! Test scalar pack for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 3, n2 = 4, nv = 16, slen = 9
+   character (len = slen), dimension (n1, n2) :: a
+   character (len = slen), dimension (nv) :: vector
+   logical :: mask
+   integer :: i1, i2, i
+ 
+   do i2 = 1, n2
+     do i1 = 1, n1
+       a (i1, i2) = 'abc'(i1:i1) // 'defg'(i2:i2) // 'cantrip'
+     end do
+   end do
+ 
+   do i = 1, nv
+     vector (i) = 'crespo' // '0123456789abcdef'(i:i)
+   end do
+ 
+   mask = .true.
+   call test1 (pack (a, mask))
+   call test2 (pack (a, mask, vector))
+ contains
+   subroutine test1 (b)
+     character (len = slen), dimension (:) :: b
+ 
+     i = 0
+     do i2 = 1, n2
+       do i1 = 1, n1
+         i = i + 1
+         if (b (i) .ne. a (i1, i2)) call abort
+       end do
+     end do
+     if (size (b, 1) .ne. i) call abort
+   end subroutine test1
+ 
+   subroutine test2 (b)
+     character (len = slen), dimension (:) :: b
+ 
+     if (size (b, 1) .ne. nv) call abort
+     i = 0
+     do i2 = 1, n2
+       do i1 = 1, n1
+         i = i + 1
+         if (b (i) .ne. a (i1, i2)) call abort
+       end do
+     end do
+     do i = i + 1, nv
+       if (b (i) .ne. vector (i)) call abort
+     end do
+   end subroutine test2
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_pointer_assign_2.f90	Mon Jan 30 05:45:06 2006
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! Tests the fix for PRs20895 and 25030, where pointer assignments
+ ! of different length characters were accepted.
+   character(4), target :: ch1(2)
+   character(4), pointer :: ch2(:)
+   character(5), pointer :: ch3(:)
+ 
+   ch2 => ch1  ! Check correct is OK
+   ch3 => ch1  ! { dg-error "Different character lengths" }
+ 
+ end
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_reshape_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_reshape_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_reshape_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_reshape_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,43 ----
+ ! Test reshape for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n = 20, slen = 9
+   character (len = slen), dimension (n) :: a, pad
+   integer, dimension (3) :: shape, order
+   integer :: i
+ 
+   do i = 1, n
+     a (i) = 'abcdefghijklmnopqrstuvwxyz'(i:i+6)
+     pad (i) = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'(i:i+6)
+   end do
+ 
+   shape = (/ 4, 6, 5 /)
+   order = (/ 3, 1, 2 /)
+   call test (reshape (a, shape, pad, order))
+ contains
+   subroutine test (b)
+     character (len = slen), dimension (:, :, :) :: b
+     integer :: i1, i2, i3, ai, padi
+ 
+     do i = 1, 3
+       if (size (b, i) .ne. shape (i)) call abort
+     end do
+     ai = 0
+     padi = 0
+     do i2 = 1, shape (2)
+       do i1 = 1, shape (1)
+         do i3 = 1, shape (3)
+           if (ai .lt. n) then
+             ai = ai + 1
+             if (b (i1, i2, i3) .ne. a (ai)) call abort
+           else
+             padi = padi + 1
+             if (padi .gt. n) padi = 1
+             if (b (i1, i2, i3) .ne. pad (padi)) call abort
+           end if
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_1.f90	Mon Jan 30 05:45:06 2006
***************
*** 0 ****
--- 1,114 ----
+ ! Related to PR 15326.  Try calling string functions whose lengths depend
+ ! on the lengths of other strings.
+ ! { dg-do run }
+ pure function double (string)
+   character (len = *), intent (in) :: string
+   character (len = len (string) * 2) :: double
+   double = string // string
+ end function double
+ 
+ function f1 (string)
+   character (len = *) :: string
+   character (len = len (string)) :: f1
+   f1 = ''
+ end function f1
+ 
+ function f2 (string1, string2)
+   character (len = *) :: string1
+   character (len = len (string1) - 20) :: string2
+   character (len = len (string1) + len (string2) / 2) :: f2
+   f2 = ''
+ end function f2
+ 
+ program main
+   implicit none
+ 
+   interface
+     pure function double (string)
+       character (len = *), intent (in) :: string
+       character (len = len (string) * 2) :: double
+     end function double
+     function f1 (string)
+       character (len = *) :: string
+       character (len = len (string)) :: f1
+     end function f1
+     function f2 (string1, string2)
+       character (len = *) :: string1
+       character (len = len (string1) - 20) :: string2
+       character (len = len (string1) + len (string2) / 2) :: f2
+     end function f2
+   end interface
+ 
+   integer :: a
+   character (len = 80)  :: text
+   character (len = 70), target :: textt
+   character (len = 70), pointer :: textp
+ 
+   a = 42
+   textp => textt
+ 
+   call test (f1 (text), 80)
+   call test (f2 (text, text), 110)
+   call test (f3 (text), 115)
+   call test (f4 (text), 192)
+   call test (f5 (text), 160)
+   call test (f6 (text), 39)
+ 
+   call test (f1 (textp), 70)
+   call test (f2 (textp, text), 95)
+   call test (f3 (textp), 105)
+   call test (f4 (textp), 192)
+   call test (f5 (textp), 140)
+   call test (f6 (textp), 29)
+ 
+   call indirect (textp)
+ contains
+   function f3 (string)
+     integer, parameter :: l1 = 30
+     character (len = *) :: string
+     character (len = len (string) + l1 + 5) :: f3
+     f3 = ''
+   end function f3
+ 
+   function f4 (string)
+     character (len = len (text) - 10) :: string
+     character (len = len (string) + len (text) + a) :: f4
+     f4 = ''
+   end function f4
+ 
+   function f5 (string)
+     character (len = *) :: string
+     character (len = len (double (string))) :: f5
+     f5 = ''
+   end function f5
+ 
+   function f6 (string)
+     character (len = *) :: string
+     character (len = len (string (a:))) :: f6
+     f6 = ''
+   end function f6
+ 
+   subroutine indirect (text2)
+     character (len = *) :: text2
+ 
+     call test (f1 (text), 80)
+     call test (f2 (text, text), 110)
+     call test (f3 (text), 115)
+     call test (f4 (text), 192)
+     call test (f5 (text), 160)
+     call test (f6 (text), 39)
+ 
+     call test (f1 (text2), 70)
+     call test (f2 (text2, text2), 95)
+     call test (f3 (text2), 105)
+     call test (f4 (text2), 192)
+     call test (f5 (text2), 140)
+     call test (f6 (text2), 29)
+   end subroutine indirect
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_10.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_10.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_10.f90	Sun Oct 30 22:43:45 2005
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do compile }
+ ! PR 18883: Fake result variables of non-constant length, with ENTRY
+ function s_to_c(chars)
+     character, pointer :: chars(:)
+     character(len=len(chars)) :: s_to_c, s_to_c_2
+     s_to_c = 'a'
+     return
+ entry s_to_c_2(chars)
+     s_to_c_2 = 'b'
+     return
+ end function s_to_c
+ 
+ program huj
+ 
+     implicit none
+     interface
+         function s_to_c(chars)
+             character, pointer :: chars(:)
+             character(len=len(chars)) :: s_to_c
+         end function s_to_c
+ 
+         function s_to_c_2(chars)
+             character, pointer :: chars(:)
+             character(len=len(chars)) :: s_to_c_2
+         end function s_to_c_2
+     end interface
+ 
+     character, pointer :: c(:)
+     character(3) :: s
+ 
+     allocate(c(5))
+     c = (/"a", "b", "c" /)
+     s = s_to_c(c)
+     s = s_to_c_2(c)
+ 
+ end program huj
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_11.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_11.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_11.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_11.f90	Fri Feb  3 21:32:14 2006
***************
*** 0 ****
--- 1,115 ----
+ ! { dg-do link }
+ ! PR 23675: Character function of module-variable length
+ ! PR 25716: Implicit kind conversions in in expressions written to *.mod-files.
+ module cutils
+ 
+     implicit none
+     private
+    
+     type t
+         integer :: k = 25
+         integer :: kk(3) = (/30, 40, 50 /)
+     end type t
+ 
+     integer :: m1 = 25, m2 = 25, m3 = 25, m4 = 25, m5 = 25
+     integer :: n5 = 3, n7 = 3, n9 = 3
+     integer(1) :: n1 = 3, n2 = 3, n3 = 3, n4 = 3, n6 = 3, n8 = 3
+     character(10) :: s = "abcdefghij"
+     integer :: x(4) = (/ 30, 40, 50, 60 /)
+     type(t), save :: tt1(5), tt2(5)
+ 
+     public :: IntToChar1, IntToChar2, IntToChar3, IntToChar4, IntToChar5, &
+                 IntToChar6, IntToChar7, IntToChar8
+ 
+ contains
+ 
+     pure integer function get_k(tt)
+         type(t), intent(in) :: tt
+ 
+         get_k = tt%k
+     end function get_k
+  
+     function IntToChar1(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=m1)  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar1
+  
+     function IntToChar2(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=m2+n1)  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar2
+  
+     function IntToChar3(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=iachar(s(n2:n3)))  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar3
+  
+     function IntToChar4(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=tt1(n4)%k)  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar4
+  
+     function IntToChar5(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=maxval((/m3, n5/)))  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar5
+  
+     function IntToChar6(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=x(n6))  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar6
+  
+     function IntToChar7(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=tt2(min(m4, n7, 2))%kk(n8))  :: a
+      
+         write(a, *) integerValue
+     end function IntToChar7
+  
+     function IntToChar8(integerValue) result(a)
+         integer, intent(in) :: integerValue
+         character(len=get_k(t(m5, (/31, n9, 53/))))  :: a
+  
+         write(a, *) integerValue
+     end function IntToChar8
+ 
+ end module cutils
+ 
+ 
+ program test
+ 
+     use cutils
+ 
+     implicit none
+     character(25) :: str
+     
+     str = IntToChar1(3)
+     print *, str
+     str = IntToChar2(3)
+     print *, str
+     str = IntToChar3(3)
+     print *, str
+     str = IntToChar4(3)
+     print *, str
+     str = IntToChar5(3)
+     print *, str
+     str = IntToChar6(3)
+     print *, str
+     str = IntToChar7(3)
+     print *, str
+     str = IntToChar8(3)
+     print *, str
+ 
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_2.f90	Mon Jan 30 05:45:06 2006
***************
*** 0 ****
--- 1,106 ----
+ ! Like char_result_1.f90, but the string arguments are pointers.
+ ! { dg-do run }
+ pure function double (string)
+   character (len = *), intent (in) :: string
+   character (len = len (string) * 2) :: double
+   double = string // string
+ end function double
+ 
+ function f1 (string)
+   character (len = *), pointer :: string
+   character (len = len (string)) :: f1
+   f1 = ''
+ end function f1
+ 
+ function f2 (string1, string2)
+   character (len = *), pointer :: string1
+   character (len = len (string1) - 20), pointer :: string2
+   character (len = len (string1) + len (string2) / 2) :: f2
+   f2 = ''
+ end function f2
+ 
+ program main
+   implicit none
+ 
+   interface
+     pure function double (string)
+       character (len = *), intent (in) :: string
+       character (len = len (string) * 2) :: double
+     end function double
+     function f1 (string)
+       character (len = *), pointer :: string
+       character (len = len (string)) :: f1
+     end function f1
+     function f2 (string1, string2)
+       character (len = *), pointer :: string1
+       character (len = len (string1) - 20), pointer :: string2
+       character (len = len (string1) + len (string2) / 2) :: f2
+     end function f2
+   end interface
+ 
+   integer :: a
+   character (len = 80) :: text
+   character (len = 70), target :: textt
+   character (len = 70), pointer :: textp
+ 
+   a = 42
+   textp => textt
+ 
+   call test (f1 (textp), 70)
+   call test (f2 (textp, textp), 95)
+   call test (f3 (textp), 105)
+   call test (f4 (textp), 192)
+   call test (f5 (textp), 140)
+   call test (f6 (textp), 29)
+ 
+   call indirect (textp)
+ contains
+   function f3 (string)
+     integer, parameter :: l1 = 30
+     character (len = *), pointer :: string
+     character (len = len (string) + l1 + 5) :: f3
+     f3 = ''
+   end function f3
+ 
+   function f4 (string)
+     character (len = len (text) - 10), pointer :: string
+     character (len = len (string) + len (text) + a) :: f4
+     f4 = ''
+   end function f4
+ 
+   function f5 (string)
+     character (len = *), pointer :: string
+     character (len = len (double (string))) :: f5
+     f5 = ''
+   end function f5
+ 
+   function f6 (string)
+     character (len = *), pointer :: string
+     character (len = len (string (a:))) :: f6
+     f6 = ''
+   end function f6
+ 
+   subroutine indirect (textp2)
+     character (len = 50), pointer :: textp2
+ 
+     call test (f1 (textp), 70)
+     call test (f2 (textp, textp), 95)
+     call test (f3 (textp), 105)
+     call test (f4 (textp), 192)
+     call test (f5 (textp), 140)
+     call test (f6 (textp), 29)
+ 
+     call test (f1 (textp2), 50)
+     call test (f2 (textp2, textp), 65)
+     call test (f3 (textp2), 85)
+     call test (f4 (textp2), 192)
+     call test (f5 (textp2), 100)
+     call test (f6 (textp2), 9)
+   end subroutine indirect
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_3.f90	Thu Sep  8 18:46:06 2005
***************
*** 0 ****
--- 1,78 ----
+ ! Related to PR 15326.  Try calling string functions whose lengths involve
+ ! some sort of array calculation.
+ ! { dg-do run }
+ pure elemental function double (x)
+   integer, intent (in) :: x
+   integer :: double
+   double = x * 2
+ end function double
+ 
+ program main
+   implicit none
+ 
+   interface
+     pure elemental function double (x)
+       integer, intent (in) :: x
+       integer :: double
+     end function double
+   end interface
+ 
+   integer, dimension (100:104), target :: a
+   integer, dimension (:), pointer :: ap
+   integer :: i, lower
+ 
+   a = (/ (i + 5, i = 0, 4) /)
+   ap => a
+   lower = 11
+ 
+   call test (f1 (a), 35)
+   call test (f1 (ap), 35)
+   call test (f1 ((/ 5, 10, 50 /)), 65)
+   call test (f1 (a (101:103)), 21)
+ 
+   call test (f2 (a), 115)
+   call test (f2 (ap), 115)
+   call test (f2 ((/ 5, 10, 50 /)), 119)
+   call test (f2 (a (101:103)), 116)
+ 
+   call test (f3 (a), 60)
+   call test (f3 (ap), 60)
+   call test (f3 ((/ 5, 10, 50 /)), 120)
+   call test (f3 (a (101:103)), 30)
+ 
+   call test (f4 (a, 13, 1), 21)
+   call test (f4 (ap, 13, 2), 14)
+   call test (f4 ((/ 5, 10, 50 /), 12, 1), 60)
+   call test (f4 (a (101:103), 12, 1), 15)
+ contains
+   function f1 (array)
+     integer, dimension (10:) :: array
+     character (len = sum (array)) :: f1
+     f1 = ''
+   end function f1
+ 
+   function f2 (array)
+     integer, dimension (10:) :: array
+     character (len = array (11) + a (104) + 100) :: f2
+     f2 = ''
+   end function f2
+ 
+   function f3 (array)
+     integer, dimension (:) :: array
+     character (len = sum (double (array (2:)))) :: f3
+     f3 = ''
+   end function f3
+ 
+   function f4 (array, upper, stride)
+     integer, dimension (10:) :: array
+     integer :: upper, stride
+     character (len = sum (array (lower:upper:stride))) :: f4
+     f4 = ''
+   end function f4
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_4.f90	Thu Sep  8 18:46:06 2005
***************
*** 0 ****
--- 1,62 ----
+ ! Like char_result_3.f90, but the array arguments are pointers.
+ ! { dg-do run }
+ pure elemental function double (x)
+   integer, intent (in) :: x
+   integer :: double
+   double = x * 2
+ end function double
+ 
+ program main
+   implicit none
+ 
+   interface
+     pure elemental function double (x)
+       integer, intent (in) :: x
+       integer :: double
+     end function double
+   end interface
+ 
+   integer, dimension (100:104), target :: a
+   integer, dimension (:), pointer :: ap
+   integer :: i, lower
+ 
+   a = (/ (i + 5, i = 0, 4) /)
+   ap => a
+   lower = 1
+ 
+   call test (f1 (ap), 35)
+   call test (f2 (ap), 115)
+   call test (f3 (ap), 60)
+   call test (f4 (ap, 5, 2), 21)
+ contains
+   function f1 (array)
+     integer, dimension (:), pointer :: array
+     character (len = sum (array)) :: f1
+     f1 = ''
+   end function f1
+ 
+   function f2 (array)
+     integer, dimension (:), pointer :: array
+     character (len = array (2) + a (104) + 100) :: f2
+     f2 = ''
+   end function f2
+ 
+   function f3 (array)
+     integer, dimension (:), pointer :: array
+     character (len = sum (double (array (2:)))) :: f3
+     f3 = ''
+   end function f3
+ 
+   function f4 (array, upper, stride)
+     integer, dimension (:), pointer :: array
+     integer :: upper, stride
+     character (len = sum (array (lower:upper:stride))) :: f4
+     f4 = ''
+   end function f4
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_5.f90	Thu Sep  8 18:46:06 2005
***************
*** 0 ****
--- 1,137 ----
+ ! Related to PR 15326.  Test calls to string functions whose lengths
+ ! depend on various types of scalar value.
+ ! { dg-do run }
+ pure function select (selector, iftrue, iffalse)
+   logical, intent (in) :: selector
+   integer, intent (in) :: iftrue, iffalse
+   integer :: select
+ 
+   if (selector) then
+     select = iftrue
+   else
+     select = iffalse
+   end if
+ end function select
+ 
+ program main
+   implicit none
+ 
+   interface
+     pure function select (selector, iftrue, iffalse)
+       logical, intent (in) :: selector
+       integer, intent (in) :: iftrue, iffalse
+       integer :: select
+     end function select
+   end interface
+ 
+   type pair
+     integer :: left, right
+   end type pair
+ 
+   integer, target :: i
+   integer, pointer :: ip
+   real, target :: r
+   real, pointer :: rp
+   logical, target :: l
+   logical, pointer :: lp
+   complex, target :: c
+   complex, pointer :: cp
+   character, target :: ch
+   character, pointer :: chp
+   type (pair), target :: p
+   type (pair), pointer :: pp
+ 
+   character (len = 10) :: dig
+ 
+   i = 100
+   r = 50.5
+   l = .true.
+   c = (10.9, 11.2)
+   ch = '1'
+   p%left = 40
+   p%right = 50
+ 
+   ip => i
+   rp => r
+   lp => l
+   cp => c
+   chp => ch
+   pp => p
+ 
+   dig = '1234567890'
+ 
+   call test (f1 (i), 200)
+   call test (f1 (ip), 200)
+   call test (f1 (-30), 60)
+   call test (f1 (i / (-4)), 50)
+ 
+   call test (f2 (r), 100)
+   call test (f2 (rp), 100)
+   call test (f2 (70.1), 140)
+   call test (f2 (r / 4), 24)
+   call test (f2 (real (i)), 200)
+ 
+   call test (f3 (l), 50)
+   call test (f3 (lp), 50)
+   call test (f3 (.false.), 55)
+   call test (f3 (i < 30), 55)
+ 
+   call test (f4 (c), 10)
+   call test (f4 (cp), 10)
+   call test (f4 (cmplx (60.0, r)), 60)
+   call test (f4 (cmplx (r, 1.0)), 50)
+ 
+   call test (f5 (ch), 11)
+   call test (f5 (chp), 11)
+   call test (f5 ('23'), 12)
+   call test (f5 (dig (3:)), 13)
+   call test (f5 (dig (10:)), 10)
+ 
+   call test (f6 (p), 145)
+   call test (f6 (pp), 145)
+   call test (f6 (pair (20, 10)), 85)
+   call test (f6 (pair (i / 2, 1)), 106)
+ contains
+   function f1 (i)
+     integer :: i
+     character (len = abs (i) * 2) :: f1
+     f1 = ''
+   end function f1
+ 
+   function f2 (r)
+     real :: r
+     character (len = floor (r) * 2) :: f2
+     f2 = ''
+   end function f2
+ 
+   function f3 (l)
+     logical :: l
+     character (len = select (l, 50, 55)) :: f3
+     f3 = ''
+   end function f3
+ 
+   function f4 (c)
+     complex :: c
+     character (len = int (c)) :: f4
+     f4 = ''
+   end function f4
+ 
+   function f5 (c)
+     character :: c
+     character (len = scan ('123456789', c) + 10) :: f5
+     f5 = ''
+   end function f5
+ 
+   function f6 (p)
+     type (pair) :: p
+     integer :: i
+     character (len = sum ((/ p%left, p%right, (i, i = 1, 10) /))) :: f6
+     f6 = ''
+   end function f6
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_6.f90	Thu Sep  8 18:46:06 2005
***************
*** 0 ****
--- 1,107 ----
+ ! Like char_result_5.f90, but the function arguments are pointers to scalars.
+ ! { dg-do run }
+ pure function select (selector, iftrue, iffalse)
+   logical, intent (in) :: selector
+   integer, intent (in) :: iftrue, iffalse
+   integer :: select
+ 
+   if (selector) then
+     select = iftrue
+   else
+     select = iffalse
+   end if
+ end function select
+ 
+ program main
+   implicit none
+ 
+   interface
+     pure function select (selector, iftrue, iffalse)
+       logical, intent (in) :: selector
+       integer, intent (in) :: iftrue, iffalse
+       integer :: select
+     end function select
+   end interface
+ 
+   type pair
+     integer :: left, right
+   end type pair
+ 
+   integer, target :: i
+   integer, pointer :: ip
+   real, target :: r
+   real, pointer :: rp
+   logical, target :: l
+   logical, pointer :: lp
+   complex, target :: c
+   complex, pointer :: cp
+   character, target :: ch
+   character, pointer :: chp
+   type (pair), target :: p
+   type (pair), pointer :: pp
+ 
+   i = 100
+   r = 50.5
+   l = .true.
+   c = (10.9, 11.2)
+   ch = '1'
+   p%left = 40
+   p%right = 50
+ 
+   ip => i
+   rp => r
+   lp => l
+   cp => c
+   chp => ch
+   pp => p
+ 
+   call test (f1 (ip), 200)
+   call test (f2 (rp), 100)
+   call test (f3 (lp), 50)
+   call test (f4 (cp), 10)
+   call test (f5 (chp), 11)
+   call test (f6 (pp), 145)
+ contains
+   function f1 (i)
+     integer, pointer :: i
+     character (len = abs (i) * 2) :: f1
+     f1 = ''
+   end function f1
+ 
+   function f2 (r)
+     real, pointer :: r
+     character (len = floor (r) * 2) :: f2
+     f2 = ''
+   end function f2
+ 
+   function f3 (l)
+     logical, pointer :: l
+     character (len = select (l, 50, 55)) :: f3
+     f3 = ''
+   end function f3
+ 
+   function f4 (c)
+     complex, pointer :: c
+     character (len = int (c)) :: f4
+     f4 = ''
+   end function f4
+ 
+   function f5 (c)
+     character, pointer :: c
+     character (len = scan ('123456789', c) + 10) :: f5
+     f5 = ''
+   end function f5
+ 
+   function f6 (p)
+     type (pair), pointer :: p
+     integer :: i
+     character (len = sum ((/ p%left, p%right, (i, i = 1, 10) /))) :: f6
+     f6 = ''
+   end function f6
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_7.f90	Thu Sep  8 18:46:06 2005
***************
*** 0 ****
--- 1,55 ----
+ ! Related to PR 15326.  Try calling string functions whose lengths depend
+ ! on a dummy procedure.
+ ! { dg-do run }
+ integer pure function double (x)
+   integer, intent (in) :: x
+   double = x * 2
+ end function double
+ 
+ program main
+   implicit none
+ 
+   interface
+     integer pure function double (x)
+       integer, intent (in) :: x
+     end function double
+   end interface
+ 
+   call test (f1 (double, 100), 200)
+   call test (f2 (double, 70), 140)
+ 
+   call indirect (double)
+ contains
+   function f1 (fn, i)
+     integer :: i
+     interface
+       integer pure function fn (x)
+         integer, intent (in) :: x
+       end function fn
+     end interface
+     character (len = fn (i)) :: f1
+     f1 = ''
+   end function f1
+ 
+   function f2 (fn, i)
+     integer :: i, fn
+     character (len = fn (i)) :: f2
+     f2 = ''
+   end function f2
+ 
+   subroutine indirect (fn)
+     interface
+       integer pure function fn (x)
+         integer, intent (in) :: x
+       end function fn
+     end interface
+     call test (f1 (fn, 100), 200)
+     call test (f2 (fn, 70), 140)
+   end subroutine indirect
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_8.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_8.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_8.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_8.f90	Mon Jan 30 05:45:06 2006
***************
*** 0 ****
--- 1,51 ----
+ ! Related to PR 15326.  Compare functions that return string pointers with
+ ! functions that return strings.
+ ! { dg-do run }
+ program main
+   implicit none
+ 
+   character (len = 30), target :: string
+ 
+   call test (f1 (), 30)
+   call test (f2 (50), 50)
+   call test (f3 (), 30)
+   call test (f4 (70), 70)
+ 
+   call indirect (100)
+ contains
+   function f1
+     character (len = 30) :: f1
+     f1 = ''
+   end function f1
+ 
+   function f2 (i)
+     integer :: i
+     character (len = i) :: f2
+     f2 = ''
+   end function f2
+ 
+   function f3
+     character (len = 30), pointer :: f3
+     f3 => string
+   end function f3
+ 
+   function f4 (i)
+     integer :: i
+     character (len = i), pointer :: f4
+     f4 => string
+   end function f4
+ 
+   subroutine indirect (i)
+     integer :: i
+     call test (f1 (), 30)
+     call test (f2 (i), i)
+     call test (f3 (), 30)
+     call test (f4 (i), i)
+   end subroutine indirect
+ 
+   subroutine test (string, length)
+     character (len = *) :: string
+     integer, intent (in) :: length
+     if (len (string) .ne. length) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_9.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_9.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_result_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_result_9.f90	Sun Oct 30 22:43:45 2005
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! PR 18883: Fake result variables of non-constant length, in module
+ module foo
+ contains
+     function s_to_c(chars)
+         character, pointer :: chars(:)
+         character(len=len(chars)) :: s_to_c
+         s_to_c = 'a'
+     end function s_to_c
+ end module foo
+ 
+ program huj
+ 
+     use foo
+ 
+     implicit none
+     character, pointer :: c(:)
+     character(3) :: s
+ 
+     allocate(c(5))
+     c = (/"a", "b", "c" /)
+     s = s_to_c(c)
+ 
+ end program huj
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_spread_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_spread_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_spread_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_spread_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,32 ----
+ ! Test spread for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 3, n2 = 10, n3 = 4, slen = 9
+   character (len = slen), dimension (n1, n3) :: a
+   integer :: i1, i2, i3
+ 
+   do i3 = 1, n3
+     do i1 = 1, n1
+       a (i1, i3) = 'ab'(i1:i1) // 'cde'(i3:i3) // 'cantrip'
+     end do
+   end do
+ 
+   call test (spread (a, 2, n2))
+ contains
+   subroutine test (b)
+     character (len = slen), dimension (:, :, :) :: b
+ 
+     if (size (b, 1) .ne. n1) call abort
+     if (size (b, 2) .ne. n2) call abort
+     if (size (b, 3) .ne. n3) call abort
+ 
+     do i3 = 1, n3
+       do i2 = 1, n2
+         do i1 = 1, n1
+           if (b (i1, i2, i3) .ne. a (i1, i3)) call abort
+         end do
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_transpose_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_transpose_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_transpose_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_transpose_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,29 ----
+ ! Test transpose for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 3, n2 = 4, slen = 9
+   character (len = slen), dimension (n1, n2) :: a
+   integer :: i1, i2
+ 
+   do i2 = 1, n2
+     do i1 = 1, n1
+       a (i1, i2) = 'ab'(i1:i1) // 'cde'(i2:i2) // 'cantrip'
+     end do
+   end do
+ 
+   call test (transpose (a))
+ contains
+   subroutine test (b)
+     character (len = slen), dimension (:, :) :: b
+ 
+     if (size (b, 1) .ne. n2) call abort
+     if (size (b, 2) .ne. n1) call abort
+ 
+     do i2 = 1, n2
+       do i1 = 1, n1
+         if (b (i2, i1) .ne. a (i1, i2)) call abort
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_unpack_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_unpack_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_unpack_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_unpack_1.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,44 ----
+ ! Test unpack0 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 3, n2 = 4, nv = 10, slen = 9
+   character (len = slen), dimension (n1, n2) :: field
+   character (len = slen), dimension (nv) :: vector
+   logical, dimension (n1, n2) :: mask
+   integer :: i1, i2, i
+ 
+   do i2 = 1, n2
+     do i1 = 1, n1
+       field (i1, i2) = 'abc'(i1:i1) // 'defg'(i2:i2) // 'cantrip'
+     end do
+   end do
+   mask (1, :) = (/ .true., .false., .true., .true. /)
+   mask (2, :) = (/ .true., .false., .false., .false. /)
+   mask (3, :) = (/ .false., .true., .true., .true. /)
+ 
+   do i = 1, nv
+     vector (i) = 'crespo' // '0123456789'(i:i)
+   end do
+ 
+   call test (unpack (vector, mask, field))
+ contains
+   subroutine test (a)
+     character (len = slen), dimension (:, :) :: a
+ 
+     if (size (a, 1) .ne. n1) call abort
+     if (size (a, 2) .ne. n2) call abort
+ 
+     i = 0
+     do i2 = 1, n2
+       do i1 = 1, n1
+         if (mask (i1, i2)) then
+           i = i + 1
+           if (a (i1, i2) .ne. vector (i)) call abort
+         else
+           if (a (i1, i2) .ne. field (i1, i2)) call abort
+         end if
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/char_unpack_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/char_unpack_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/char_unpack_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/char_unpack_2.f90	Tue Sep 13 07:15:01 2005
***************
*** 0 ****
--- 1,40 ----
+ ! Test unpack1 for character arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n1 = 3, n2 = 4, nv = 10, slen = 9
+   character (len = slen) :: field
+   character (len = slen), dimension (nv) :: vector
+   logical, dimension (n1, n2) :: mask
+   integer :: i1, i2, i
+ 
+   field = 'broadside'
+   mask (1, :) = (/ .true., .false., .true., .true. /)
+   mask (2, :) = (/ .true., .false., .false., .false. /)
+   mask (3, :) = (/ .false., .true., .true., .true. /)
+ 
+   do i = 1, nv
+     vector (i) = 'crespo' // '0123456789'(i:i)
+   end do
+ 
+   call test (unpack (vector, mask, field))
+ contains
+   subroutine test (a)
+     character (len = slen), dimension (:, :) :: a
+ 
+     if (size (a, 1) .ne. n1) call abort
+     if (size (a, 2) .ne. n2) call abort
+ 
+     i = 0
+     do i2 = 1, n2
+       do i1 = 1, n1
+         if (mask (i1, i2)) then
+           i = i + 1
+           if (a (i1, i2) .ne. vector (i)) call abort
+         else
+           if (a (i1, i2) .ne. field) call abort
+         end if
+       end do
+     end do
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/chkbits.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/chkbits.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/chkbits.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/chkbits.f90	Tue Dec 20 18:15:19 2005
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do run }
+ ! NOT() was not return the two's complement value as reported by
+ ! PR fortran/25458.  In checking other bit manipulation intrinsics,
+ ! IBSET was found to be in error.
+ program chkbits
+ 
+   implicit none
+ 
+   integer(kind=1) i1
+   integer(kind=2) i2
+   integer(kind=4) i4
+   integer(kind=8) i8
+ 
+   i1 = ibset(2147483647,bit_size(i4)-1)
+   i2 = ibset(2147483647,bit_size(i4)-1)
+   i4 = ibset(2147483647,bit_size(i4)-1)
+   i8 = ibset(2147483647,bit_size(i4)-1)
+   if (i1 /= -1 .or. i2 /= -1 .or. i4 /= -1 .or. i8 /= -1) call abort
+ 
+   i1 = not(0)
+   i2 = not(0)
+   i4 = not(0)
+   i8 = not(0)
+   if (i1 /= -1 .or. i2 /= -1 .or. i4 /= -1 .or. i8 /= -1) call abort
+ 
+ end program chkbits
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/comma.f gcc-4.1.0/gcc/testsuite/gfortran.dg/comma.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/comma.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/comma.f	Sun Jan  1 05:06:05 2006
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do run }
+ ! PR25419 Default input with commas.
+ ! Derived from example given in PR.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
+       stuff = 1
+       stuff2 = 2
+       write(11,'(a)') ",,"
+       rewind(11)
+       read(11,*)stuff, stuff2
+       if (stuff.ne.1.0) call abort()
+       if (stuff2.ne.2.0) call abort()
+       rewind (11)
+       write(11,'(a)') ","
+       rewind(11)
+       read(11,*)stuff
+       if (stuff.ne.1.0) call abort()
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/comma_format_extension_3.f gcc-4.1.0/gcc/testsuite/gfortran.dg/comma_format_extension_3.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/comma_format_extension_3.f	Sat Jul 16 20:46:22 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/comma_format_extension_3.f	Sat Jul 23 03:26:27 2005
***************
*** 2,8 ****
  ! We used to accept this as an extension but
  ! did do the correct thing at runtime.
  ! Note the missing , before i1 in the format.
! ! { do-do run }
  ! { dg-options "" }
        character*12 c
  
--- 2,8 ----
  ! We used to accept this as an extension but
  ! did do the correct thing at runtime.
  ! Note the missing , before i1 in the format.
! ! { dg-do run }
  ! { dg-options "" }
        character*12 c
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/comma_format_extension_4.f gcc-4.1.0/gcc/testsuite/gfortran.dg/comma_format_extension_4.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/comma_format_extension_4.f	Sat Jul 30 21:59:22 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/comma_format_extension_4.f	Sat Jul 30 20:56:02 2005
***************
*** 1,6 ****
  ! PR fortran/13257
  ! Note the missing , before i1 in the format.
! ! { do-do run }
  ! { dg-options "" }
        character*6 c
        write (c,1001) 1
--- 1,6 ----
  ! PR fortran/13257
  ! Note the missing , before i1 in the format.
! ! { dg-do run }
  ! { dg-options "" }
        character*6 c
        write (c,1001) 1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/common_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/common_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/common_4.f90	Sun Jan 16 12:05:53 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/common_4.f90	Thu Dec 22 16:29:18 2005
***************
*** 4,11 ****
  ! Check misaligned common blocks.
  program prog
    common /block/ a, b, c
!   integer*1 a
!   integer*4 b, c
    a = 1
    b = HUGE(b)
    c = 2
--- 4,11 ----
  ! Check misaligned common blocks.
  program prog
    common /block/ a, b, c
!   integer(kind=1) a
!   integer b, c
    a = 1
    b = HUGE(b)
    c = 2
*************** program prog
*** 13,19 ****
  end program
  subroutine foo
    common /block/ a, b, c
!   integer*1 a
!   integer*4 b, c
    if (a .ne. 1 .or. b .ne. HUGE(b) .or. c .ne. 2) call abort
  end subroutine
--- 13,19 ----
  end program
  subroutine foo
    common /block/ a, b, c
!   integer(kind=1) a
!   integer b, c
    if (a .ne. 1 .or. b .ne. HUGE(b) .or. c .ne. 2) call abort
  end subroutine
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/complex_intrinsic_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/complex_intrinsic_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/complex_intrinsic_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/complex_intrinsic_1.f90	Sun Nov 13 09:33:19 2005
***************
*** 0 ****
--- 1,5 ----
+ ! Testcase for the COMPLEX intrinsic
+ ! { dg-do run }
+   if (complex(1_1, -1_2) /= complex(1.0_4, -1.0_8)) call abort
+   if (complex(1_4, -1.0) /= complex(1.0_4, -1_8)) call abort
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/complex_intrinsic_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/complex_intrinsic_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/complex_intrinsic_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/complex_intrinsic_2.f90	Sun Nov 13 09:33:19 2005
***************
*** 0 ****
--- 1,7 ----
+ ! Testcase for the COMPLEX intrinsic
+ ! { dg-do compile }
+   complex c
+   c = complex(.true.,1.0) ! { dg-error "must be INTEGER or REAL" }
+   c = complex(1) ! { dg-error "Missing actual argument" }
+   c = complex(1,c) ! { dg-error "must be INTEGER or REAL" }
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/constant_substring.f gcc-4.1.0/gcc/testsuite/gfortran.dg/constant_substring.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/constant_substring.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/constant_substring.f	Wed Aug  3 01:58:30 2005
***************
*** 0 ****
--- 1,11 ----
+ ! Simplify constant substring
+ ! { dg-do run }
+       character*2 a
+       character*4 b
+       character*6 c
+       parameter (a="12")
+       parameter (b = a(1:2))
+       write (c,'("#",A,"#")') b
+       if (c .ne. '#12  #') call abort
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/contained_equivalence_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/contained_equivalence_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/contained_equivalence_1.f90	Fri Sep  9 09:05:55 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/contained_equivalence_1.f90	Fri Sep  9 00:23:09 2005
*************** contains
*** 16,19 ****
      b = 2.0
    end subroutine foo
  end program contained_equiv
- 
--- 16,18 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/convert_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/convert_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/convert_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/convert_1.f90	Mon Feb 20 20:06:49 2006
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! PR 26201: Check that the __convert_*_* functions are treated as intrinsics
+ ! rather than module functions.
+ ! Testcase contributed by Philippe Schaffnit and Fran�§ois-Xavier Coudert.
+ MODULE MODULE_A
+     REAL :: a = 0
+ END MODULE MODULE_A
+ 
+ MODULE MODULE_B
+     REAL :: b = 0
+ END MODULE MODULE_B
+ 
+ USE MODULE_A
+ USE MODULE_B
+ a = 0
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_1.f90	Mon Oct 24 19:28:18 2005
***************
*** 0 ****
--- 1,68 ----
+ ! { dg-do compile }
+ ! { dg-options "-fcray-pointer" }
+ 
+ ! Bad type for pointer
+ subroutine err1
+   real ipt
+   real array(10)
+   pointer (ipt, array) ! { dg-error "integer" }
+ end subroutine err1
+ 
+ ! Multiple declarations for the same pointee
+ subroutine err2
+   real array(10)
+   pointer (ipt1, array)
+   pointer (ipt2, array) ! { dg-error "multiple" }
+ end subroutine err2
+ 
+ ! Vector assignment to an assumed size array
+ subroutine err3
+   real target(10)
+   real array(*)
+   pointer (ipt, array)
+   ipt = loc (target)
+   array = 0    ! { dg-error "Vector assignment" }
+ end subroutine err3
+ 
+ subroutine err4
+   pointer (ipt, ipt) ! { dg-error "POINTER attribute" }
+ end subroutine err4
+ 
+ ! duplicate array specs
+ subroutine err5
+   pointer (ipt, array(7))
+   real array(10)      ! { dg-error "Duplicate array" }  
+ end subroutine err5
+ 
+ subroutine err6
+   real array(10)
+   pointer (ipt, array(7))  ! { dg-error "Duplicate array" }
+ end subroutine err6
+ 
+ ! parsing stuff
+ subroutine err7
+   pointer (                  ! { dg-error "variable name" }
+   pointer (ipt               ! { dg-error "Expected" }
+   pointer (ipt,              ! { dg-error "variable name" }
+   pointer (ipt,a1            ! { dg-error "Expected" }
+   pointer (ipt,a2),          ! { dg-error "Expected" }
+   pointer (ipt,a3),(         ! { dg-error "variable name" }
+   pointer (ipt,a4),(ipt2     ! { dg-error "Expected" }
+   pointer (ipt,a5),(ipt2,    ! { dg-error "variable name" }
+   pointer (ipt,a6),(ipt2,a7  ! { dg-error "Expected" }
+ end subroutine err7
+ 
+ ! more attributes
+ subroutine err8(array)
+   real array(10)
+   integer dim(2)
+   integer, pointer :: f90ptr
+   integer, target :: f90targ
+   pointer (ipt, array)    ! { dg-error "DUMMY" }
+   pointer (dim, elt1)     ! { dg-error "DIMENSION" }
+   pointer (f90ptr, elt2)  ! { dg-error "POINTER" }
+   pointer (ipt, f90ptr)   ! { dg-error "POINTER" }
+   pointer (f90targ, elt3) ! { dg-error "TARGET" }
+   pointer (ipt, f90targ)  ! { dg-error "TARGET" }
+ end subroutine err8
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_2.f90	Mon Oct 24 19:28:18 2005
***************
*** 0 ****
--- 1,3606 ----
+ ! { dg-do run }
+ ! { dg-options "-fcray-pointer" }
+ ! Series of routines for testing a Cray pointer implementation
+ program craytest
+   common /errors/errors(400)
+   common /foo/foo ! To prevent optimizations
+   integer foo
+   integer i
+   logical errors
+   errors = .false.
+   foo = 0
+   call ptr1
+   call ptr2
+   call ptr3
+   call ptr4
+   call ptr5
+   call ptr6
+   call ptr7
+   call ptr8
+   call ptr9(9,10,11)
+   call ptr10(9,10,11)
+   call ptr11(9,10,11)
+   call ptr12(9,10,11)
+   call ptr13(9,10)
+   call parmtest
+ ! NOTE: Tests 1 through 12 were removed from this file
+ ! and placed in loc_1.f90, so we start at 13
+   do i=13,400
+      if (errors(i)) then
+ !        print *,"Test",i,"failed."
+         call abort()
+      endif
+   end do
+   if (foo.eq.0) then
+ !     print *,"Test did not run correctly."
+      call abort()
+   endif
+ end program craytest
+ 
+ ! ptr1 through ptr13 that Cray pointees are correctly used with
+ ! a variety of declaration styles
+ subroutine ptr1
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   type(drvd) dpte1(n)
+   type(drvd) dpte2(m,n)
+   type(drvd) dpte3(o,m,n)
+   integer ipte1 (n)
+   integer ipte2 (m,n)
+   integer ipte3 (o,m,n)
+   real rpte1(n)
+   real rpte2(m,n)
+   real rpte3(o,m,n)
+   character chpte1(n)
+   character chpte2(m,n)
+   character chpte3(o,m,n)
+   character*8 ch8pte1(n)
+   character*8 ch8pte2(m,n)
+   character*8 ch8pte3(o,m,n)
+ 
+   pointer(iptr1,dpte1)
+   pointer(iptr2,dpte2)
+   pointer(iptr3,dpte3)
+   pointer(iptr4,ipte1)
+   pointer(iptr5,ipte2)
+   pointer(iptr6,ipte3)
+   pointer(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+   pointer(iptr9,rpte3)
+   pointer(iptr10,chpte1)
+   pointer(iptr11,chpte2)
+   pointer(iptr12,chpte3)
+   pointer(iptr13,ch8pte1)
+   pointer(iptr14,ch8pte2)
+   pointer(iptr15,ch8pte3)
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #13
+         errors(13) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #14
+         errors(14) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #15
+         errors(15) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #16
+         errors(16) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #17
+         errors(17) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #18
+         errors(18) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #19
+         errors(19) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #20
+         errors(20) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #21
+         errors(21) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #22
+         errors(22) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #23
+            errors(23) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #24
+            errors(24) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #25
+            errors(25) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #26
+            errors(26) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #27
+            errors(27) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #28
+            errors(28) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #29
+            errors(29) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #30
+            errors(30) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #31
+            errors(31) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #32
+            errors(32) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #33
+               errors(33) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #34
+               errors(34) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #35
+               errors(35) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #36
+               errors(36) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #37
+               errors(37) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #38
+               errors(38) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #39
+               errors(39) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #40
+               errors(40) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #41
+               errors(41) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #42
+               errors(42) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #43
+               errors(43) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #44
+               errors(44) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr1
+ 
+ 
+ subroutine ptr2
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   type(drvd) dpte1
+   type(drvd) dpte2
+   type(drvd) dpte3
+   integer ipte1
+   integer ipte2
+   integer ipte3
+   real rpte1
+   real rpte2
+   real rpte3
+   character chpte1
+   character chpte2
+   character chpte3
+   character*8 ch8pte1
+   character*8 ch8pte2
+   character*8 ch8pte3
+ 
+   pointer(iptr1,dpte1(n))
+   pointer(iptr2,dpte2(m,n))
+   pointer(iptr3,dpte3(o,m,n))
+   pointer(iptr4,ipte1(n))
+   pointer(iptr5,ipte2 (m,n))
+   pointer(iptr6,ipte3(o,m,n))
+   pointer(iptr7,rpte1(n))
+   pointer(iptr8,rpte2(m,n))
+   pointer(iptr9,rpte3(o,m,n))
+   pointer(iptr10,chpte1(n))
+   pointer(iptr11,chpte2(m,n))
+   pointer(iptr12,chpte3(o,m,n))
+   pointer(iptr13,ch8pte1(n))
+   pointer(iptr14,ch8pte2(m,n))
+   pointer(iptr15,ch8pte3(o,m,n))
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #45
+         errors(45) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #46
+         errors(46) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #47
+         errors(47) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #48
+         errors(48) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #49
+         errors(49) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #50
+         errors(50) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #51
+         errors(51) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #52
+         errors(52) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #53
+         errors(53) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #54
+         errors(54) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #55
+            errors(55) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #56
+            errors(56) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #57
+            errors(57) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #58
+            errors(58) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #59
+            errors(59) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #60
+            errors(60) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #61
+            errors(61) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #62
+            errors(62) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #63
+            errors(63) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #64
+            errors(64) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #65
+               errors(65) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #66
+               errors(66) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #67
+               errors(67) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #68
+               errors(68) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #69
+               errors(69) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #70
+               errors(70) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #71
+               errors(71) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #72
+               errors(72) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #73
+               errors(73) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #74
+               errors(74) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #75
+               errors(75) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #76
+               errors(76) = .true.
+            endif
+         end do
+      end do
+   end do
+ end subroutine ptr2
+ 
+ subroutine ptr3
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   pointer(iptr1,dpte1(n))
+   pointer(iptr2,dpte2(m,n))
+   pointer(iptr3,dpte3(o,m,n))
+   pointer(iptr4,ipte1(n))
+   pointer(iptr5,ipte2 (m,n))
+   pointer(iptr6,ipte3(o,m,n))
+   pointer(iptr7,rpte1(n))
+   pointer(iptr8,rpte2(m,n))
+   pointer(iptr9,rpte3(o,m,n))
+   pointer(iptr10,chpte1(n))
+   pointer(iptr11,chpte2(m,n))
+   pointer(iptr12,chpte3(o,m,n))
+   pointer(iptr13,ch8pte1(n))
+   pointer(iptr14,ch8pte2(m,n))
+   pointer(iptr15,ch8pte3(o,m,n))
+ 
+   type(drvd) dpte1
+   type(drvd) dpte2
+   type(drvd) dpte3
+   integer ipte1
+   integer ipte2
+   integer ipte3
+   real rpte1
+   real rpte2
+   real rpte3
+   character chpte1
+   character chpte2
+   character chpte3
+   character*8 ch8pte1
+   character*8 ch8pte2
+   character*8 ch8pte3
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #77
+         errors(77) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #78
+         errors(78) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #79
+         errors(79) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #80
+         errors(80) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #81
+         errors(81) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #82
+         errors(82) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #83
+         errors(83) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #84
+         errors(84) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #85
+         errors(85) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #86
+         errors(86) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #87
+            errors(87) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #88
+            errors(88) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #89
+            errors(89) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #90
+            errors(90) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #91
+            errors(91) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #92
+            errors(92) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #93
+            errors(93) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #94
+            errors(94) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #95
+            errors(95) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #96
+            errors(96) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #97
+               errors(97) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #98
+               errors(98) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #99
+               errors(99) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #100
+               errors(100) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #101
+               errors(101) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #102
+               errors(102) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #103
+               errors(103) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #104
+               errors(104) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #105
+               errors(105) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #106
+               errors(106) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #107
+               errors(107) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #108
+               errors(108) = .true.
+            endif
+         end do
+      end do
+   end do
+ end subroutine ptr3
+ 
+ subroutine ptr4
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   pointer(iptr1,dpte1),(iptr2,dpte2),(iptr3,dpte3)
+   pointer    (iptr4,ipte1),  (iptr5,ipte2) ,(iptr6,ipte3),(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+   pointer(iptr9,rpte3),(iptr10,chpte1)
+   pointer(iptr11,chpte2),(iptr12,chpte3),(iptr13,ch8pte1)
+   pointer(iptr14,ch8pte2)
+   pointer(iptr15,ch8pte3)
+ 
+   type(drvd) dpte1(n)
+   type(drvd) dpte2(m,n)
+   type(drvd) dpte3(o,m,n)
+   integer ipte1 (n)
+   integer ipte2 (m,n)
+   integer ipte3 (o,m,n)
+   real rpte1(n)
+   real rpte2(m,n)
+   real rpte3(o,m,n)
+   character chpte1(n)
+   character chpte2(m,n)
+   character chpte3(o,m,n)
+   character*8 ch8pte1(n)
+   character*8 ch8pte2(m,n)
+   character*8 ch8pte3(o,m,n)
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #109
+         errors(109) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #110
+         errors(110) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #111
+         errors(111) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #112
+         errors(112) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #113
+         errors(113) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #114
+         errors(114) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #115
+         errors(115) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #116
+         errors(116) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #117
+         errors(117) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #118
+         errors(118) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #119
+            errors(119) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #120
+            errors(120) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #121
+            errors(121) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #122
+            errors(122) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #123
+            errors(123) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #124
+            errors(124) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #125
+            errors(125) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #126
+            errors(126) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #127
+            errors(127) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #128
+            errors(128) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #129
+               errors(129) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #130
+               errors(130) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #131
+               errors(131) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #132
+               errors(132) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #133
+               errors(133) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #134
+               errors(134) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #135
+               errors(135) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #136
+               errors(136) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #137
+               errors(137) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #138
+               errors(138) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #139
+               errors(139) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #140
+               errors(140) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr4
+ 
+ subroutine ptr5
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   type(drvd) dpte1(*)
+   type(drvd) dpte2(m,*)
+   type(drvd) dpte3(o,m,*)
+   integer ipte1 (*)
+   integer ipte2 (m,*)
+   integer ipte3 (o,m,*)
+   real rpte1(*)
+   real rpte2(m,*)
+   real rpte3(o,m,*)
+   character chpte1(*)
+   character chpte2(m,*)
+   character chpte3(o,m,*)
+   character*8 ch8pte1(*)
+   character*8 ch8pte2(m,*)
+   character*8 ch8pte3(o,m,*)
+ 
+   pointer(iptr1,dpte1)
+   pointer(iptr2,dpte2)
+   pointer(iptr3,dpte3)
+   pointer(iptr4,ipte1)
+   pointer(iptr5,ipte2)
+   pointer(iptr6,ipte3)
+   pointer(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+   pointer(iptr9,rpte3)
+   pointer(iptr10,chpte1)
+   pointer(iptr11,chpte2)
+   pointer(iptr12,chpte3)
+   pointer(iptr13,ch8pte1)
+   pointer(iptr14,ch8pte2)
+   pointer(iptr15,ch8pte3)
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #141
+         errors(141) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #142
+         errors(142) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #143
+         errors(143) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #144
+         errors(144) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #145
+         errors(145) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #146
+         errors(146) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #147
+         errors(147) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #148
+         errors(148) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #149
+         errors(149) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #150
+         errors(150) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #151
+            errors(151) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #152
+            errors(152) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #153
+            errors(153) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #154
+            errors(154) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #155
+            errors(155) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #156
+            errors(156) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #157
+            errors(157) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #158
+            errors(158) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #159
+            errors(159) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #160
+            errors(160) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #161
+               errors(161) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #162
+               errors(162) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #163
+               errors(163) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #164
+               errors(164) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #165
+               errors(165) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #166
+               errors(166) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #167
+               errors(167) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #168
+               errors(168) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #169
+               errors(169) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #170
+               errors(170) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr5
+ 
+ 
+ subroutine ptr6
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   type(drvd) dpte1
+   type(drvd) dpte2
+   type(drvd) dpte3
+   integer ipte1
+   integer ipte2
+   integer ipte3
+   real rpte1
+   real rpte2
+   real rpte3
+   character chpte1
+   character chpte2
+   character chpte3
+   character*8 ch8pte1
+   character*8 ch8pte2
+   character*8 ch8pte3
+ 
+   pointer(iptr1,dpte1(*))
+   pointer(iptr2,dpte2(m,*))
+   pointer(iptr3,dpte3(o,m,*))
+   pointer(iptr4,ipte1(*))
+   pointer(iptr5,ipte2 (m,*))
+   pointer(iptr6,ipte3(o,m,*))
+   pointer(iptr7,rpte1(*))
+   pointer(iptr8,rpte2(m,*))
+   pointer(iptr9,rpte3(o,m,*))
+   pointer(iptr10,chpte1(*))
+   pointer(iptr11,chpte2(m,*))
+   pointer(iptr12,chpte3(o,m,*))
+   pointer(iptr13,ch8pte1(*))
+   pointer(iptr14,ch8pte2(m,*))
+   pointer(iptr15,ch8pte3(o,m,*))
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #171
+         errors(171) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #172
+         errors(172) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #173
+         errors(173) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #174
+         errors(174) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #175
+         errors(175) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #176
+         errors(176) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #177
+         errors(177) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #178
+         errors(178) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #179
+         errors(179) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #180
+         errors(180) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #181
+            errors(181) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #182
+            errors(182) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #183
+            errors(183) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #184
+            errors(184) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #185
+            errors(185) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #186
+            errors(186) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #187
+            errors(187) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #188
+            errors(188) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #189
+            errors(189) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #190
+            errors(190) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #191
+               errors(191) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #192
+               errors(192) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #193
+               errors(193) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #194
+               errors(194) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #195
+               errors(195) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #196
+               errors(196) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #197
+               errors(197) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #198
+               errors(198) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #199
+               errors(199) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #200
+               errors(200) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr6
+ 
+ subroutine ptr7
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   pointer(iptr1,dpte1(*))
+   pointer(iptr2,dpte2(m,*))
+   pointer(iptr3,dpte3(o,m,*))
+   pointer(iptr4,ipte1(*))
+   pointer(iptr5,ipte2 (m,*))
+   pointer(iptr6,ipte3(o,m,*))
+   pointer(iptr7,rpte1(*))
+   pointer(iptr8,rpte2(m,*))
+   pointer(iptr9,rpte3(o,m,*))
+   pointer(iptr10,chpte1(*))
+   pointer(iptr11,chpte2(m,*))
+   pointer(iptr12,chpte3(o,m,*))
+   pointer(iptr13,ch8pte1(*))
+   pointer(iptr14,ch8pte2(m,*))
+   pointer(iptr15,ch8pte3(o,m,*))
+ 
+   type(drvd) dpte1
+   type(drvd) dpte2
+   type(drvd) dpte3
+   integer ipte1
+   integer ipte2
+   integer ipte3
+   real rpte1
+   real rpte2
+   real rpte3
+   character chpte1
+   character chpte2
+   character chpte3
+   character*8 ch8pte1
+   character*8 ch8pte2
+   character*8 ch8pte3
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #201
+         errors(201) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #202
+         errors(202) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #203
+         errors(203) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #204
+         errors(204) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #205
+         errors(205) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #206
+         errors(206) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #207
+         errors(207) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #208
+         errors(208) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #209
+         errors(209) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #210
+         errors(210) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #211
+            errors(211) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #212
+            errors(212) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #213
+            errors(213) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #214
+            errors(214) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #215
+            errors(215) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #216
+            errors(216) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #217
+            errors(217) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #218
+            errors(218) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #219
+            errors(219) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #220
+            errors(220) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #221
+               errors(221) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #222
+               errors(222) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #223
+               errors(223) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #224
+               errors(224) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #225
+               errors(225) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #226
+               errors(226) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #227
+               errors(227) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #228
+               errors(228) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #229
+               errors(229) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #230
+               errors(230) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr7
+ 
+ subroutine ptr8
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   pointer(iptr1,dpte1)
+   pointer(iptr2,dpte2)
+   pointer(iptr3,dpte3)
+   pointer(iptr4,ipte1)
+   pointer(iptr5,ipte2)
+   pointer(iptr6,ipte3)
+   pointer(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+   pointer(iptr9,rpte3)
+   pointer(iptr10,chpte1)
+   pointer(iptr11,chpte2)
+   pointer(iptr12,chpte3)
+   pointer(iptr13,ch8pte1)
+   pointer(iptr14,ch8pte2)
+   pointer(iptr15,ch8pte3)
+ 
+   type(drvd) dpte1(*)
+   type(drvd) dpte2(m,*)
+   type(drvd) dpte3(o,m,*)
+   integer ipte1 (*)
+   integer ipte2 (m,*)
+   integer ipte3 (o,m,*)
+   real rpte1(*)
+   real rpte2(m,*)
+   real rpte3(o,m,*)
+   character chpte1(*)
+   character chpte2(m,*)
+   character chpte3(o,m,*)
+   character*8 ch8pte1(*)
+   character*8 ch8pte2(m,*)
+   character*8 ch8pte3(o,m,*)
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #231
+         errors(231) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #232
+         errors(232) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #233
+         errors(233) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #234
+         errors(234) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #235
+         errors(235) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #236
+         errors(236) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #237
+         errors(237) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #238
+         errors(238) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #239
+         errors(239) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #240
+         errors(240) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #241
+            errors(241) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #242
+            errors(242) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #243
+            errors(243) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #244
+            errors(244) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #245
+            errors(245) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #246
+            errors(246) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #247
+            errors(247) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #248
+            errors(248) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #249
+            errors(249) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #250
+            errors(250) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #251
+               errors(251) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #252
+               errors(252) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #253
+               errors(253) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #254
+               errors(254) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #255
+               errors(255) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #256
+               errors(256) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #257
+               errors(257) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #258
+               errors(258) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #259
+               errors(259) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #260
+               errors(260) = .true.
+            endif
+         end do
+      end do
+   end do
+ end subroutine ptr8
+ 
+ 
+ subroutine ptr9(nnn,mmm,ooo)
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer :: nnn,mmm,ooo
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   type(drvd) dpte1(nnn)
+   type(drvd) dpte2(mmm,nnn)
+   type(drvd) dpte3(ooo,mmm,nnn)
+   integer ipte1 (nnn)
+   integer ipte2 (mmm,nnn)
+   integer ipte3 (ooo,mmm,nnn)
+   real rpte1(nnn)
+   real rpte2(mmm,nnn)
+   real rpte3(ooo,mmm,nnn)
+   character chpte1(nnn)
+   character chpte2(mmm,nnn)
+   character chpte3(ooo,mmm,nnn)
+   character*8 ch8pte1(nnn)
+   character*8 ch8pte2(mmm,nnn)
+   character*8 ch8pte3(ooo,mmm,nnn)
+ 
+   pointer(iptr1,dpte1)
+   pointer(iptr2,dpte2)
+   pointer(iptr3,dpte3)
+   pointer(iptr4,ipte1)
+   pointer(iptr5,ipte2)
+   pointer(iptr6,ipte3)
+   pointer(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+   pointer(iptr9,rpte3)
+   pointer(iptr10,chpte1)
+   pointer(iptr11,chpte2)
+   pointer(iptr12,chpte3)
+   pointer(iptr13,ch8pte1)
+   pointer(iptr14,ch8pte2)
+   pointer(iptr15,ch8pte3)
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #261
+         errors(261) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #262
+         errors(262) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #263
+         errors(263) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #264
+         errors(264) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #265
+         errors(265) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #266
+         errors(266) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #267
+         errors(267) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #268
+         errors(268) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #269
+         errors(269) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #270
+         errors(270) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #271
+            errors(271) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #272
+            errors(272) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #273
+            errors(273) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #274
+            errors(274) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #275
+            errors(275) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #276
+            errors(276) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #277
+            errors(277) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #278
+            errors(278) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #279
+            errors(279) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #280
+            errors(280) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #281
+               errors(281) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #282
+               errors(282) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #283
+               errors(283) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #284
+               errors(284) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #285
+               errors(285) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #286
+               errors(286) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #287
+               errors(287) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #288
+               errors(288) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #289
+               errors(289) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #290
+               errors(290) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #291
+               errors(291) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #292
+               errors(292) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr9
+ 
+ subroutine ptr10(nnn,mmm,ooo)
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer :: nnn,mmm,ooo
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   type(drvd) dpte1
+   type(drvd) dpte2
+   type(drvd) dpte3
+   integer ipte1
+   integer ipte2
+   integer ipte3
+   real rpte1
+   real rpte2
+   real rpte3
+   character chpte1
+   character chpte2
+   character chpte3
+   character*8 ch8pte1
+   character*8 ch8pte2
+   character*8 ch8pte3
+ 
+   pointer(iptr1,dpte1(nnn))
+   pointer(iptr2,dpte2(mmm,nnn))
+   pointer(iptr3,dpte3(ooo,mmm,nnn))
+   pointer(iptr4,ipte1(nnn))
+   pointer(iptr5,ipte2 (mmm,nnn))
+   pointer(iptr6,ipte3(ooo,mmm,nnn))
+   pointer(iptr7,rpte1(nnn))
+   pointer(iptr8,rpte2(mmm,nnn))
+   pointer(iptr9,rpte3(ooo,mmm,nnn))
+   pointer(iptr10,chpte1(nnn))
+   pointer(iptr11,chpte2(mmm,nnn))
+   pointer(iptr12,chpte3(ooo,mmm,nnn))
+   pointer(iptr13,ch8pte1(nnn))
+   pointer(iptr14,ch8pte2(mmm,nnn))
+   pointer(iptr15,ch8pte3(ooo,mmm,nnn))
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #293
+         errors(293) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #294
+         errors(294) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #295
+         errors(295) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #296
+         errors(296) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #297
+         errors(297) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #298
+         errors(298) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #299
+         errors(299) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #300
+         errors(300) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #301
+         errors(301) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #302
+         errors(302) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #303
+            errors(303) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #304
+            errors(304) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #305
+            errors(305) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #306
+            errors(306) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #307
+            errors(307) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #308
+            errors(308) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #309
+            errors(309) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #310
+            errors(310) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #311
+            errors(311) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #312
+            errors(312) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #313
+               errors(313) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #314
+               errors(314) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #315
+               errors(315) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #316
+               errors(316) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #317
+               errors(317) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #318
+               errors(318) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #319
+               errors(319) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #320
+               errors(320) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #321
+               errors(321) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #322
+               errors(322) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #323
+               errors(323) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #324
+               errors(324) = .true.
+            endif
+         end do
+      end do
+   end do
+ end subroutine ptr10
+ 
+ subroutine ptr11(nnn,mmm,ooo)
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer :: nnn,mmm,ooo
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   pointer(iptr1,dpte1(nnn))
+   pointer(iptr2,dpte2(mmm,nnn))
+   pointer(iptr3,dpte3(ooo,mmm,nnn))
+   pointer(iptr4,ipte1(nnn))
+   pointer(iptr5,ipte2 (mmm,nnn))
+   pointer(iptr6,ipte3(ooo,mmm,nnn))
+   pointer(iptr7,rpte1(nnn))
+   pointer(iptr8,rpte2(mmm,nnn))
+   pointer(iptr9,rpte3(ooo,mmm,nnn))
+   pointer(iptr10,chpte1(nnn))
+   pointer(iptr11,chpte2(mmm,nnn))
+   pointer(iptr12,chpte3(ooo,mmm,nnn))
+   pointer(iptr13,ch8pte1(nnn))
+   pointer(iptr14,ch8pte2(mmm,nnn))
+   pointer(iptr15,ch8pte3(ooo,mmm,nnn))
+ 
+   type(drvd) dpte1
+   type(drvd) dpte2
+   type(drvd) dpte3
+   integer ipte1
+   integer ipte2
+   integer ipte3
+   real rpte1
+   real rpte2
+   real rpte3
+   character chpte1
+   character chpte2
+   character chpte3
+   character*8 ch8pte1
+   character*8 ch8pte2
+   character*8 ch8pte3
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #325
+         errors(325) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #326
+         errors(326) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #327
+         errors(327) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #328
+         errors(328) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #329
+         errors(329) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #330
+         errors(330) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #331
+         errors(331) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #332
+         errors(332) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #333
+         errors(333) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #334
+         errors(334) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #335
+            errors(335) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #336
+            errors(336) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #337
+            errors(337) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #338
+            errors(338) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #339
+            errors(339) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #340
+            errors(340) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #341
+            errors(341) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #342
+            errors(342) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #343
+            errors(343) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #344
+            errors(344) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #345
+               errors(345) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #346
+               errors(346) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #347
+               errors(347) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #348
+               errors(348) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #349
+               errors(349) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #350
+               errors(350) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #351
+               errors(351) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #352
+               errors(352) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #353
+               errors(353) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #354
+               errors(354) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #355
+               errors(355) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #356
+               errors(356) = .true.
+            endif
+         end do
+      end do
+   end do
+ end subroutine ptr11
+ 
+ subroutine ptr12(nnn,mmm,ooo)
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: i,j,k
+   integer :: nnn,mmm,ooo
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+   type drvd
+      real r1
+      integer i1
+      integer i2(5)
+   end type drvd
+   type(drvd) dtarg1(n)
+   type(drvd) dtarg2(m,n)
+   type(drvd) dtarg3(o,m,n)
+ 
+   pointer(iptr1,dpte1)
+   pointer(iptr2,dpte2)
+   pointer(iptr3,dpte3)
+   pointer(iptr4,ipte1)
+   pointer(iptr5,ipte2)
+   pointer(iptr6,ipte3)
+   pointer(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+   pointer(iptr9,rpte3)
+   pointer(iptr10,chpte1)
+   pointer(iptr11,chpte2)
+   pointer(iptr12,chpte3)
+   pointer(iptr13,ch8pte1)
+   pointer(iptr14,ch8pte2)
+   pointer(iptr15,ch8pte3)
+ 
+   type(drvd) dpte1(nnn)
+   type(drvd) dpte2(mmm,nnn)
+   type(drvd) dpte3(ooo,mmm,nnn)
+   integer ipte1 (nnn)
+   integer ipte2 (mmm,nnn)
+   integer ipte3 (ooo,mmm,nnn)
+   real rpte1(nnn)
+   real rpte2(mmm,nnn)
+   real rpte3(ooo,mmm,nnn)
+   character chpte1(nnn)
+   character chpte2(mmm,nnn)
+   character chpte3(ooo,mmm,nnn)
+   character*8 ch8pte1(nnn)
+   character*8 ch8pte2(mmm,nnn)
+   character*8 ch8pte3(ooo,mmm,nnn)
+ 
+   iptr1 = loc(dtarg1)
+   iptr2 = loc(dtarg2)
+   iptr3 = loc(dtarg3)
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr6 = loc(itarg3)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)
+   iptr9 = loc(rtarg3)
+   iptr10= loc(chtarg1)
+   iptr11= loc(chtarg2)
+   iptr12= loc(chtarg3)
+   iptr13= loc(ch8targ1)
+   iptr14= loc(ch8targ2)
+   iptr15= loc(ch8targ3)
+ 
+ 
+   do, i=1,n
+      dpte1(i)%i1=i
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #357
+         errors(357) = .true.
+      endif
+ 
+      dtarg1(i)%i1=2*dpte1(i)%i1
+      if (intne(dpte1(i)%i1, dtarg1(i)%i1)) then
+         ! Error #358
+         errors(358) = .true.
+      endif
+ 
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #359
+         errors(359) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #360
+         errors(360) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #361
+         errors(361) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #362
+         errors(362) = .true.
+      endif
+ 
+      chpte1(i) = 'a'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #363
+         errors(363) = .true.
+      endif
+ 
+      chtarg1(i) = 'z'
+      if (chne(chpte1(i), chtarg1(i))) then
+         ! Error #364
+         errors(364) = .true.
+      endif
+ 
+      ch8pte1(i) = 'aaaaaaaa'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #365
+         errors(365) = .true.
+      endif
+ 
+      ch8targ1(i) = 'zzzzzzzz'
+      if (ch8ne(ch8pte1(i), ch8targ1(i))) then
+         ! Error #366
+         errors(366) = .true.
+      endif
+ 
+      do, j=1,m
+         dpte2(j,i)%r1=1.0
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #367
+            errors(367) = .true.
+         endif
+ 
+         dtarg2(j,i)%r1=2*dpte2(j,i)%r1
+         if (realne(dpte2(j,i)%r1, dtarg2(j,i)%r1)) then
+            ! Error #368
+            errors(368) = .true.
+         endif
+ 
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #369
+            errors(369) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #370
+            errors(370) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #371
+            errors(371) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #372
+            errors(372) = .true.
+         endif
+ 
+         chpte2(j,i) = 'a'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #373
+            errors(373) = .true.
+         endif
+ 
+         chtarg2(j,i) = 'z'
+         if (chne(chpte2(j,i), chtarg2(j,i))) then
+            ! Error #374
+            errors(374) = .true.
+         endif
+ 
+         ch8pte2(j,i) = 'aaaaaaaa'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #375
+            errors(375) = .true.
+         endif
+ 
+         ch8targ2(j,i) = 'zzzzzzzz'
+         if (ch8ne(ch8pte2(j,i), ch8targ2(j,i))) then
+            ! Error #376
+            errors(376) = .true.
+         endif
+         do k=1,o
+            dpte3(k,j,i)%i2(1+mod(i,5))=i
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #377
+               errors(377) = .true.
+            endif
+ 
+            dtarg3(k,j,i)%i2(1+mod(i,5))=2*dpte3(k,j,i)%i2(1+mod(i,5))
+            if (intne(dpte3(k,j,i)%i2(1+mod(i,5)), &
+                 dtarg3(k,j,i)%i2(1+mod(i,5)))) then
+               ! Error #378
+               errors(378) = .true.
+            endif
+ 
+            ipte3(k,j,i) = i
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #379
+               errors(379) = .true.
+            endif
+ 
+            itarg3(k,j,i) = -ipte3(k,j,i)
+            if (intne(ipte3(k,j,i), itarg3(k,j,i))) then
+               ! Error #380
+               errors(380) = .true.
+            endif
+ 
+            rpte3(k,j,i) = i * 2.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #381
+               errors(381) = .true.
+            endif
+ 
+            rtarg3(k,j,i) = i * 3.0
+            if (realne(rpte3(k,j,i), rtarg3(k,j,i))) then
+               ! Error #382
+               errors(382) = .true.
+            endif
+ 
+            chpte3(k,j,i) = 'a'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #383
+               errors(383) = .true.
+            endif
+ 
+            chtarg3(k,j,i) = 'z'
+            if (chne(chpte3(k,j,i), chtarg3(k,j,i))) then
+               ! Error #384
+               errors(384) = .true.
+            endif
+ 
+            ch8pte3(k,j,i) = 'aaaaaaaa'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #385
+               errors(385) = .true.
+            endif
+ 
+            ch8targ3(k,j,i) = 'zzzzzzzz'
+            if (ch8ne(ch8pte3(k,j,i), ch8targ3(k,j,i))) then
+               ! Error #386
+               errors(386) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+   rtarg3 = .5
+   ! Vector syntax
+   do, i=1,n
+      ipte3 = i
+      rpte3 = rpte3+1
+      do, j=1,m
+         do k=1,o
+            if (intne(itarg3(k,j,i), i)) then
+               ! Error #387
+               errors(387) = .true.
+            endif
+ 
+            if (realne(rtarg3(k,j,i), i+.5)) then
+               ! Error #388
+               errors(388) = .true.
+            endif
+         end do
+      end do
+   end do
+ 
+ end subroutine ptr12
+ 
+ ! Misc
+ subroutine ptr13(nnn,mmm)
+   common /errors/errors(400)
+   logical :: errors, intne, realne, chne, ch8ne
+   integer :: nnn,mmm
+   integer :: i,j
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+ 
+   integer ipte1
+   integer ipte2
+   real rpte1
+   real rpte2
+ 
+   dimension ipte1(n)
+   dimension rpte2(mmm,nnn)
+ 
+   pointer(iptr4,ipte1)
+   pointer(iptr5,ipte2)
+   pointer(iptr7,rpte1)
+   pointer(iptr8,rpte2)
+ 
+   dimension ipte2(mmm,nnn)
+   dimension rpte1(n)
+ 
+   iptr4 = loc(itarg1)
+   iptr5 = loc(itarg2)
+   iptr7 = loc(rtarg1)
+   iptr8 = loc(rtarg2)  
+ 
+   do, i=1,n
+      ipte1(i) = i
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #389
+         errors(389) = .true.
+      endif
+ 
+      itarg1(i) = -ipte1(i)
+      if (intne(ipte1(i), itarg1(i))) then
+         ! Error #390
+         errors(390) = .true.
+      endif
+ 
+      rpte1(i) = i * 5.0
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #391
+         errors(391) = .true.
+      endif
+ 
+      rtarg1(i) = i * (-5.0)
+      if (realne(rpte1(i), rtarg1(i))) then
+         ! Error #392
+         errors(392) = .true.
+      endif
+ 
+      do, j=1,m
+         ipte2(j,i) = i
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #393
+            errors(393) = .true.
+         endif
+ 
+         itarg2(j,i) = -ipte2(j,i)
+         if (intne(ipte2(j,i), itarg2(j,i))) then
+            ! Error #394
+            errors(394) = .true.
+         endif
+ 
+         rpte2(j,i) = i * (-2.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #395
+            errors(395) = .true.
+         endif
+ 
+         rtarg2(j,i) = i * (-3.0)
+         if (realne(rpte2(j,i), rtarg2(j,i))) then
+            ! Error #396
+            errors(396) = .true.
+         endif
+ 
+      end do
+   end do
+ end subroutine ptr13
+ 
+ 
+ ! Test the passing of pointers and pointees as parameters
+ subroutine parmtest
+   integer, parameter :: n = 12
+   integer, parameter :: m = 13
+   integer iarray(m,n)
+   pointer (ipt,iptee)
+   integer iptee (m,n)
+ 
+   ipt = loc(iarray)
+   !  write(*,*) "loc(iarray)",loc(iarray)
+   call parmptr(ipt,iarray,n,m)
+   !  write(*,*) "loc(iptee)",loc(iptee)
+   call parmpte(iptee,iarray,n,m)
+ end subroutine parmtest
+ 
+ subroutine parmptr(ipointer,intarr,n,m)
+   common /errors/errors(400)
+   logical :: errors, intne
+   integer :: n,m,i,j
+   integer intarr(m,n)
+   pointer (ipointer,newpte)
+   integer newpte(m,n)
+   ! write(*,*) "loc(newpte)",loc(newpte)
+   ! write(*,*) "loc(intarr)",loc(intarr) 
+   ! write(*,*) "loc(newpte(1,1))",loc(newpte(1,1))
+   ! newpte(1,1) = 101
+   ! write(*,*) "newpte(1,1)=",newpte(1,1)
+   ! write(*,*) "intarr(1,1)=",intarr(1,1)
+   do, i=1,n
+      do, j=1,m
+         newpte(j,i) = i
+         if (intne(newpte(j,i),intarr(j,i))) then
+            ! Error #397
+            errors(397) = .true.
+         endif
+ 
+         call donothing(newpte(j,i),intarr(j,i))
+         intarr(j,i) = -newpte(j,i)
+         if (intne(newpte(j,i),intarr(j,i))) then
+            ! Error #398
+            errors(398) = .true.
+         endif
+      end do
+   end do
+ end subroutine parmptr
+ 
+ subroutine parmpte(pointee,intarr,n,m)
+   common /errors/errors(400)
+   logical :: errors, intne
+   integer :: n,m,i,j
+   integer pointee (m,n)
+   integer intarr (m,n)
+   !  write(*,*) "loc(pointee)",loc(pointee)
+   !  write(*,*) "loc(intarr)",loc(intarr)
+   !  write(*,*) "loc(pointee(1,1))",loc(pointee(1,1))
+   !  pointee(1,1) = 99
+   !  write(*,*) "pointee(1,1)=",pointee(1,1)
+   !  write(*,*) "intarr(1,1)=",intarr(1,1)
+ 
+   do, i=1,n
+      do, j=1,m
+         pointee(j,i) = i
+         if (intne(pointee(j,i),intarr(j,i))) then
+            ! Error #399
+            errors(399) = .true.
+         endif
+ 
+         intarr(j,i) = 2*pointee(j,i)
+         call donothing(pointee(j,i),intarr(j,i))
+         if (intne(pointee(j,i),intarr(j,i))) then
+            ! Error #400
+            errors(400) = .true.
+         endif
+      end do
+   end do
+ end subroutine parmpte
+ 
+ ! Separate function calls to break Cray pointer-indifferent optimization
+ logical function intne(ii,jj)
+   integer :: i,j
+   common /foo/foo
+   integer foo
+   foo = foo + 1
+   intne = ii.ne.jj
+   if (intne) then
+      write (*,*) ii," doesn't equal ",jj
+   endif
+ end function intne
+ 
+ logical function realne(r1,r2)
+   real :: r1, r2  
+   common /foo/foo
+   integer foo
+   foo = foo + 1
+   realne = r1.ne.r2
+   if (realne) then
+      write (*,*) r1," doesn't equal ",r2
+   endif
+ end function realne
+ 
+ logical function chne(ch1,ch2)
+   character :: ch1, ch2  
+   common /foo/foo
+   integer foo
+   foo = foo + 1
+   chne = ch1.ne.ch2
+   if (chne) then
+      write (*,*) ch1," doesn't equal ",ch2
+   endif
+ end function chne
+ 
+ logical function ch8ne(ch1,ch2)
+   character*8 :: ch1, ch2  
+   common /foo/foo
+   integer foo
+   foo = foo + 1
+   ch8ne = ch1.ne.ch2
+   if (ch8ne) then
+      write (*,*) ch1," doesn't equal ",ch2
+   endif
+ end function ch8ne
+ 
+ subroutine donothing(ii,jj)
+   common/foo/foo
+   integer :: ii,jj,foo
+   if (foo.le.1) then
+      foo = 1
+   else
+      foo = foo - 1
+   endif
+   if (foo.eq.0) then
+      ii = -1
+      jj = 1
+ !     print *,"Test did not run correctly"
+      call abort()
+   endif
+ end subroutine donothing
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_3.f90	Mon Oct 24 19:28:18 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do compile }
+ program crayerr
+   real dpte1(10)
+   pointer (iptr1,dpte1) ! { dg-error "fcray-pointer" }
+ end program crayerr
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_4.f90	Tue Oct 25 18:43:22 2005
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do compile }
+ ! { dg-options "-fcray-pointer" }
+ 
+ subroutine err1
+   integer :: in_common1, in_common2, v, w, equiv1, equiv2
+   common /in_common1/ in_common1
+   pointer (ipt1, in_common1)		! { dg-error "conflicts with COMMON" }
+   pointer (ipt2, in_common2)
+   common /in_common2/ in_common2	! { dg-error "conflicts with COMMON" }
+   equivalence (v, equiv1)
+   pointer (ipt3, equiv1)		! { dg-error "conflicts with EQUIVALENCE" }
+   pointer (ipt4, equiv2)
+   equivalence (w, equiv2)		! { dg-error "conflicts with EQUIVALENCE" }
+ end subroutine err1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/cray_pointers_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/cray_pointers_5.f90	Tue Oct 25 18:43:22 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! { dg-options "-fcray-pointer -fno-strict-aliasing" }
+ 
+ module cray_pointers_5
+   integer :: var (10), arr(100)
+   pointer (ipt, var)
+ end module cray_pointers_5
+ 
+   use cray_pointers_5
+   integer :: i
+ 
+   forall (i = 1:100) arr(i) = i
+   ipt = loc (arr)
+   if (any (var .ne. (/1, 2, 3, 4, 5, 6, 7, 8, 9, 10/))) call abort
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/csqrt_2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/csqrt_2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/csqrt_2.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/csqrt_2.f	Tue Oct 11 23:35:27 2005
***************
*** 0 ****
--- 1,19 ----
+ c { dg-do run { xfail *-*-linux-gnu } }
+ c Fix PR libgfortran/24313
+       complex x, y
+       complex z
+       z = cmplx(0.707106, -0.707106)
+       x = cmplx(0.0,-1.0)
+       y = sqrt(x)
+       if (abs(y - z) / abs(z) > 1.e-4) call abort
+ 
+       x = cmplx(tiny(1.),-1.0)
+       y = sqrt(x)
+       if (abs(y - z) / abs(z) > 1.e-4) call abort
+ 
+       x = cmplx(-tiny(1.),-1.0)
+       y = sqrt(x)
+       if (abs(y - z) / abs(z) > 1.e-4) call abort
+ 
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_1.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_1.f	Sun Aug 21 15:28:27 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do compile }
+ ! { dg-options "-fd-lines-as-comments" }
+ d This is a comment.
+ D This line, too.
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_2.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_2.f	Sun Aug 21 15:28:27 2005
***************
*** 0 ****
--- 1,6 ----
+ ! { dg-do compile }
+ c { dg-options "-fd-lines-as-code" }
+       i = 0
+ d     end
+       subroutine s
+ D     end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_3.f gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_3.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_3.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_3.f	Sun Aug 21 15:28:27 2005
***************
*** 0 ****
--- 1,10 ----
+ C { dg-do compile }
+ C { dg-options "-fd-lines-as-code" }
+ C Verifies that column numbers are dealt with correctly when handling D lines.
+ C234567890
+ d     i = 0 ! this may not move to the left
+ d    1  + 1 ! this should be a continuation line
+       goto 2345
+ d23450continue ! statement labels are correctly identified
+       end
+       
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_4.f gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_4.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_4.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_4.f	Sun Aug 21 15:28:27 2005
***************
*** 0 ****
--- 1,3 ----
+ ! { dg-do compile }
+ c verify that debug lines are rejected if none of -fd-lines-as-* are given.
+ d ! { dg-error "Non-numeric character" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_5.f gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_5.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/d_lines_5.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/d_lines_5.f	Sun Aug 21 15:28:27 2005
***************
*** 0 ****
--- 1,3 ----
+ ! { dg-do compile }
+ c { dg-options "-fd-lines-as-code" }
+ d ! This didn't work in an early version of the support for -fd-lines*
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/data_char_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/data_char_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/data_char_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/data_char_2.f90	Fri Feb  3 18:31:14 2006
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do run }
+ !  Test that getting a character from a
+ ! string data works.
+ 
+ CHARACTER*10       INTSTR
+ CHARACTER          C1
+ DATA               INTSTR / '0123456789' /
+ 
+ C1 = INTSTR(1:1)
+ if(C1 .ne. '0')  call abort()
+ 
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/data_constraints_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/data_constraints_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/data_constraints_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/data_constraints_1.f90	Sun Nov  6 20:05:12 2005
***************
*** 0 ****
--- 1,30 ----
+ ! { dg-do compile }
+ ! Tests standard indepedendent constraints for variables in a data statement
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+   module global
+    integer n
+   end module global
+ 
+   use global
+   integer q
+   data n /0/            ! { dg-error "Cannot change attributes" }
+   n = 1
+   n = foo (n)
+ contains
+   function foo (m) result (bar)
+   integer p (m), bar
+   integer, allocatable :: l(:)
+   allocate (l(1))
+   data l /42/           ! { dg-error "conflicts with ALLOCATABLE" }
+   data p(1) /1/         ! { dg-error "non-constant array in DATA" }
+   data q /1/            ! { dg-error "Host associated variable" }
+   data m /1/            ! { dg-error "conflicts with DUMMY attribute" }
+   data bar /99/         ! { dg-error "conflicts with RESULT" }
+   end function foo
+   function foobar ()
+   integer foobar
+   data foobar /0/       ! { dg-error "conflicts with FUNCTION" }
+   end function foobar
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/data_constraints_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/data_constraints_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/data_constraints_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/data_constraints_2.f90	Sun Nov  6 20:05:12 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ ! Tests constraints for variables in a data statement that are commonly
+ ! relaxed.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+   common // a
+   common /b/ c
+   integer d
+   data a /1/            ! { dg-error "common block variable" }
+   data c /2/            ! { dg-error "common block variable" }
+   data d /3/
+   data d /4/            ! { dg-error " re-initialization" }
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/data_initialized.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/data_initialized.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/data_initialized.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/data_initialized.f90	Sun Nov  6 20:05:12 2005
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ ! Tests fix for PR17737 - already initialized variable cannot appear
+ ! in data statement
+       integer :: i, j = 1
+       data i/0/
+       data i/0/   ! { dg-error "Extension: re-initialization" }
+       data j/2/   ! { dg-error "Extension: re-initialization" }
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/deallocate_stat.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/deallocate_stat.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/deallocate_stat.f90	Fri Jul  8 21:21:38 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/deallocate_stat.f90	Sat Jun 11 22:33:11 2005
***************
*** 1,4 ****
--- 1,5 ----
  ! { dg-do run }
+ ! PR 17792
  ! PR 21375
  ! Test that the STAT argument to DEALLOCATE works with POINTERS and 
  ! ALLOCATABLE arrays.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/default_initialization.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/default_initialization.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/default_initialization.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/default_initialization.f90	Fri Feb  3 21:32:14 2006
***************
*** 0 ****
--- 1,18 ----
+ !
+ ! { dg-do compile }
+ ! PR 20845
+ !
+ ! In ISO/IEC 1539-1:1997(E), 4th constraint in section 11.3:
+ !
+ !   If an object of a type for which component-initialization is specified
+ !   (R429) appears in the specification-part of a module and does not have
+ !   the ALLOCATABLE or POINTER attribute, the object shall have the SAVE
+ !   attribute.
+ !
+ module bad
+    implicit none
+    type default_initialization
+       integer :: x = 42
+    end type default_initialization
+    type (default_initialization) t ! { dg-error "default initialization" }
+ end module bad
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/dependency_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/dependency_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/dependency_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/dependency_1.f90	Fri Sep 16 03:26:37 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR23906
+ ! Dependency analysis was using the stride from the wrong expression and
+ ! segfaulting
+ subroutine foo(a)
+   real, dimension(:) :: a
+ 
+   a(1:3:2) = a(1:2) 
+   a(1:2) = a(1:3:2) 
+ end subroutine
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_charlen_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_charlen_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_charlen_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_charlen_1.f90	Sat Dec 24 13:20:56 2005
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! PR 18990
+ ! we used to ICE on these examples
+ module core
+   type, public  :: T
+      character(len=I)  :: str ! { dg-error "needs to be a constant specification expression" }
+   end type T
+   private
+ CONTAINS
+   subroutine FOO(X)
+     type(T), intent(in)          :: X
+   end subroutine
+ end module core
+ 
+ module another_core
+   type :: T
+      character(len=*)  :: s ! { dg-error "needs to be a constant specification expr" }
+   end type T
+   private
+ CONTAINS
+   subroutine FOO(X)
+     type(T), intent(in)          :: X
+   end subroutine
+ end module another_core
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_io_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_io_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_io_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_io_2.f90	Thu Sep 22 21:52:09 2005
***************
*** 0 ****
--- 1,55 ----
+ ! { dg-do compile }
+ ! PR 23843
+ ! IO of derived types with private components is allowed in the module itself,
+ ! but not elsewhere
+ module gfortran2
+     type :: tp1
+         private
+         integer :: i
+     end type tp1
+ 
+     type :: tp1b
+         integer :: i
+     end type tp1b
+ 
+     type :: tp2
+         real :: a
+         type(tp1) :: t
+     end type tp2
+     
+ contains
+     
+     subroutine test()
+         type(tp1) :: x
+         type(tp2) :: y
+ 
+         write (*, *) x
+         write (*, *) y
+     end subroutine test
+ 
+ end module gfortran2
+ 
+ program prog
+ 
+     use gfortran2
+ 
+     implicit none
+     type :: tp3
+         type(tp2) :: t
+     end type tp3
+     type :: tp3b
+         type(tp1b) :: t
+     end type tp3b
+ 
+     type(tp1) :: x
+     type(tp2) :: y
+     type(tp3) :: z
+     type(tp3b) :: zb
+ 
+     write (*, *) x   ! { dg-error "PRIVATE components" }
+     write (*, *) y   ! { dg-error "PRIVATE components" }
+     write (*, *) z   ! { dg-error "PRIVATE components" }
+     write (*, *) zb
+ end program prog
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_io_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_io_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_io_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_io_3.f90	Thu Sep 22 21:52:09 2005
***************
*** 0 ****
--- 1,40 ----
+ ! PR23843
+ ! Make sure derived type I/O with PRIVATE components works where it's allowed
+ module m1
+   type t1
+      integer i
+   end type t1
+ end module m1
+ 
+ module m2
+   use m1
+ 
+   type t2
+      private
+      type (t1) t
+   end type t2
+ 
+   type t3
+      private
+      integer i
+   end type t3
+ 
+ contains
+   subroutine test
+     character*20 c
+     type(t2) :: a
+     type(t3) :: b
+ 
+     a % t % i = 31337
+     b % i = 255
+     
+     write(c,*) a
+     if (trim(adjustl(c)) /= "31337") call abort
+     write(c,*) b
+     if (trim(adjustl(c)) /= "255") call abort
+   end subroutine test
+ end module m2
+ 
+ use m2
+ call test
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_pointer_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_pointer_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_pointer_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_pointer_2.f90	Sun Sep 18 05:50:04 2005
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do compile }
+ ! PR 15975, PR 16606
+ ! Pointers to derived types with initialized components
+ !
+ ! Contributed by Erik Edelmann <erik.edelmann@iki.fi>
+ !
+ SUBROUTINE N
+   TYPE T
+     INTEGER :: I = 99
+   END TYPE T
+   TYPE(T), POINTER :: P
+   TYPE(T), TARGET  :: Q
+   P => Q
+   if (P%I.ne.99) call abort ()
+ END SUBROUTINE N
+ 
+ program test_pr15975
+   call n ()
+ end program test_pr15975
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_pointer_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_pointer_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_pointer_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_pointer_3.f90	Thu Oct  6 15:44:01 2005
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do compile }
+ ! PR 18568
+ ! Find pointer-to-array components
+ module ints
+    type :: bar
+       integer, pointer :: th(:)
+    end type bar
+ contains
+    function foo(b)
+       type(bar), intent(in) :: b
+       integer :: foo(size(b%th))
+       foo = 0
+    end function foo
+ end module ints
+ 
+ program size_test
+   use ints
+ end program size_test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_pointer_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_pointer_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_pointer_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_pointer_4.f90	Fri Feb  3 21:32:14 2006
***************
*** 0 ****
--- 1,11 ----
+ ! {dg-do compile }
+ ! PR 24426
+ ! Pointer-components of derived type with initialized components
+ module crash
+   implicit none
+   type foo
+     integer :: i = 0
+     type (foo), pointer :: next
+   end type foo
+   type (foo), save :: bar
+ end module crash
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/der_ptr_component_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/der_ptr_component_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/der_ptr_component_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/der_ptr_component_1.f90	Wed Sep 21 17:05:16 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! PR 19929
+ ! Deallocation of pointer components of derived type arrays
+ program der_ptr_component
+     type :: t
+         integer, pointer :: p
+     end type t
+     type(t) :: a(1)
+ 
+     allocate(a(1)%p)
+     deallocate(a(1)%p)
+ 
+ end program der_ptr_component
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_init_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_init_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_init_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_init_1.f90	Wed Oct 19 22:20:56 2005
***************
*** 0 ****
--- 1,32 ----
+ ! { dg-do run }
+ ! Check that allocatable/pointer variables of derived types with initialized
+ ! components are are initialized when allocated
+ ! PR 21625
+ program test
+ 
+     implicit none
+     type :: t
+         integer :: a = 3
+     end type t
+     type :: s
+         type(t), pointer :: p(:)
+         type(t), pointer :: p2
+     end type s
+     type(t), pointer :: p
+     type(t), allocatable :: q(:,:)
+     type(s) :: z
+     type(s) :: x(2)
+ 
+     allocate(p, q(2,2))
+     if (p%a /= 3) call abort()
+     if (any(q(:,:)%a /= 3)) call abort()
+ 
+     allocate(z%p2, z%p(2:3))
+     if (z%p2%a /= 3) call abort()
+     if (any(z%p(:)%a /= 3)) call abort()
+ 
+     allocate(x(1)%p2, x(1)%p(2))
+     if (x(1)%p2%a /= 3) call abort()
+     if (any(x(1)%p(:)%a /= 3)) call abort()
+ end program test
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_pointer_null_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_pointer_null_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_pointer_null_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_pointer_null_1.f90	Sun Sep 18 15:58:58 2005
***************
*** 0 ****
--- 1,32 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=gnu" }
+ !
+ ! Test of fix (patch unknown) for pr19181 and pr21300. This test is based
+ ! on the example given in 21300.  Note that this can be executed.
+ !
+ ! Contributed by Paul Thomas  <pault@gnu.org>
+ !
+   TYPE ast_obs
+     real, DIMENSION(:), POINTER :: geopos
+   END TYPE ast_obs
+ 
+   TYPE(ast_obs), PARAMETER    :: undefined_ast_obs = AST_OBS(NULL())
+   type(ast_obs)               :: my_ast_obs
+   real, target, dimension(10) :: rt
+ 
+   my_ast_obs%geopos => rt
+   if (.not.associated (my_ast_obs%geopos)) call abort ()
+ 
+   call get_null_ast_obs (my_ast_obs)
+   if (associated (my_ast_obs%geopos)) call abort ()
+ 
+ CONTAINS
+ 
+   SUBROUTINE get_null_ast_obs (obs1)
+     TYPE(ast_obs)  :: obs1
+     obs1 = undefined_ast_obs
+     RETURN
+   END SUBROUTINE get_null_ast_obs
+ 
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_pointer_recursion.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_pointer_recursion.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_pointer_recursion.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_pointer_recursion.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ !  Tests patch for PR24092 - This would ICE because of the loop in the
+ !  derived type definitions.
+ !
+    module llo
+       type :: it
+          character*10  :: k
+          integer :: c(2)
+       end type it
+       type :: bt
+          type (nt), pointer :: p
+       end type bt
+       type :: nt
+          type (it) :: i
+          type (bt) :: b
+       end type nt
+       type (bt), pointer :: ptr
+    end module llo
+ !  copyright 1996 Loren P. Meissner -- May be distributed if this line is included.
+ !  Linked List operations with Pointer to Pointer
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_recursion.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_recursion.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/derived_recursion.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/derived_recursion.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ ! Tests patch for PR24158 - The module would compile, in spite
+ ! of the recursion between the derived types. This would cause
+ ! an ICE in the commented out main program. The standard demands
+ ! that derived type components be already defined, to break
+ ! recursive derived type definitions.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+ module snafu
+   type       ::   a
+     integer    :: v
+     type(b)    :: i ! { dg-error "not been previously defined" }
+   end type a
+   type       ::   b
+     type(a)    :: i
+   end type b
+   type (a)   :: foo
+ end module snafu
+ 
+ !  use snafu
+ !  foo%v = 1
+ !  end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/dev_null.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/dev_null.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/dev_null.f90	Tue Jul 19 18:03:25 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/dev_null.f90	Tue Jul 12 20:39:11 2005
***************
*** 1,7 ****
  ! { dg-do run }
- ! This test currently only runs on systems where using ftruncate on
- !   /dev/null fails (errno set to EINVAL). See PR 21593 for details.
- !
  ! pr19478 read from /dev/null
  ! Thomas.Koenig@online.de
        character*20 foo
--- 1,4 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/dg.exp gcc-4.1.0/gcc/testsuite/gfortran.dg/dg.exp
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/dg.exp	Fri Jul  9 15:46:42 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # GCC testsuite that uses the `dg.exp' driver.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/direct_io_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/direct_io_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/direct_io_3.f90	Thu Dec  2 19:39:15 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/direct_io_3.f90	Thu Dec 22 16:29:18 2005
***************
*** 2,8 ****
  ! PR 18710 : We used to not read and write the imaginary part of 
  ! complex numbers
         COMPLEX C, D
!        DOUBLE COMPLEX E, F
  
         OPEN(UNIT=9,FILE='PR18710',ACCESS='DIRECT',RECL=132)
  
--- 2,8 ----
  ! PR 18710 : We used to not read and write the imaginary part of 
  ! complex numbers
         COMPLEX C, D
!        COMPLEX(KIND=8) E, F
  
         OPEN(UNIT=9,FILE='PR18710',ACCESS='DIRECT',RECL=132)
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/dummy_functions_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/dummy_functions_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/dummy_functions_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/dummy_functions_1.f90	Fri Dec 16 18:54:33 2005
***************
*** 0 ****
--- 1,37 ----
+ ! { dg-do run }
+ ! PR 18197: Check that dummy functions with RESULT variable and dimension works.
+ module innerfun
+ contains
+   function f(n,x) result(y)
+     integer, intent(in) :: n
+     real, dimension(:), intent(in) :: x
+     real, dimension(n) :: y
+     y = 1
+   end function f
+ end module innerfun
+ 
+ module outerfun
+ contains
+    subroutine foo(n,funname)
+      integer, intent(in) :: n
+      real, dimension(n) :: y
+      real, dimension(2) :: x
+      interface
+        function funname(n,x) result(y)
+          integer, intent(in) :: n
+          real, dimension(:), intent(in) :: x
+          real, dimension(n)  :: y
+        end function funname
+      end interface
+ 
+      y = funname(n, (/ 0.2, 0.3 /) )
+      if (any(y /= 1.0)) call abort()
+ 
+    end subroutine foo
+ end module outerfun
+ 
+ program test
+    use outerfun
+    use innerfun
+    call foo(3,f)
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/dup_save_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/dup_save_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/dup_save_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/dup_save_1.f90	Mon Oct 24 14:50:18 2005
***************
*** 0 ****
--- 1,57 ----
+ ! { dg-do run }
+ program save_1
+   implicit none
+   integer i
+   integer foo1, foo2, foo3, foo4
+   do i=1,10
+      if (foo1().ne.i) then
+         call abort
+      end if
+      if (foo2().ne.i) then
+         call abort
+      end if
+      if (foo3().ne.i) then
+         call abort
+      end if
+      if (foo4().ne.i) then
+         call abort
+      end if
+   end do
+ end program save_1
+ 
+ integer function foo1
+   integer j
+   save
+   save ! { dg-warning "Blanket SAVE" }
+   data j /0/
+   j = j + 1
+   foo1 = j
+ end function foo1
+ 
+ integer function foo2
+   integer j
+   save j
+   save j ! { dg-warning "Duplicate SAVE" }
+   data j /0/
+   j = j + 1
+   foo2 = j
+ end function foo2
+ 
+ integer function foo3
+   integer j ! { dg-warning "Duplicate SAVE" }
+   save
+   save j ! { dg-warning "SAVE statement" }
+   data j /0/
+   j = j + 1
+   foo3 = j
+ end function foo3
+ 
+ integer function foo4
+   integer j ! { dg-warning "Duplicate SAVE" }
+   save j
+   save
+   data j /0/
+   j = j + 1
+   foo4 = j
+ end function foo4
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/dup_save_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/dup_save_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/dup_save_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/dup_save_2.f90	Mon Oct 24 14:50:18 2005
***************
*** 0 ****
--- 1,57 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ program save_2
+   implicit none
+   integer i
+   integer foo1, foo2, foo3, foo4
+   do i=1,10
+      if (foo1().ne.i) then
+         call abort
+      end if
+      if (foo2().ne.i) then
+         call abort
+      end if
+      if (foo3().ne.i) then
+         call abort
+      end if
+      if (foo4().ne.i) then
+         call abort
+      end if
+   end do
+ end program save_2
+ 
+ integer function foo1
+   integer j
+   save
+   save ! { dg-error "Blanket SAVE" }
+   data j /0/
+   j = j + 1
+   foo1 = j
+ end function foo1
+ 
+ integer function foo2
+   integer j
+   save j
+   save j ! { dg-error "Duplicate SAVE" }
+   data j /0/
+   j = j + 1
+   foo2 = j
+ end function foo2
+ 
+ integer function foo3
+   integer j
+   save
+   save j ! { dg-error "SAVE statement" }
+   data j /0/
+   j = j + 1
+   foo3 = j
+ end function foo3
+ 
+ integer function foo4
+   integer j ! { dg-error "Duplicate SAVE" }
+   save j
+   save
+   data j /0/
+   j = j + 1
+   foo4 = j
+ end function foo4
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/e_d_fmt.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/e_d_fmt.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/e_d_fmt.f90	Sun Feb 27 20:28:56 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/e_d_fmt.f90	Thu Dec 22 16:29:18 2005
***************
*** 2,8 ****
  ! 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
--- 2,8 ----
  ! Verify that the D format uses 'D' as the exponent character.
  !   "     "    "  E   "     "   'E' "   "     "         " 
  CHARACTER*10 c1, c2
! REAL(kind=8) r
  r = 1.0
  write(c1,"(e9.2)") r
  write(c2,"(d9.2)") r
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/elemental_pointer_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/elemental_pointer_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/elemental_pointer_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/elemental_pointer_1.f90	Wed Jan 18 18:56:43 2006
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! Tests the fix for pr20875.
+ ! Note 12.7.1 "For a function, the result shall be scalar and shall not have the POINTER attribute."
+ MODULE Test
+ CONTAINS
+   ELEMENTAL FUNCTION LL(I)
+     INTEGER, INTENT(IN) :: I
+     INTEGER :: LL
+     POINTER  :: LL ! { dg-error " POINTER attribute conflicts with ELEMENTAL attribute" }
+   END FUNCTION LL
+ END MODULE Test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/elemental_subroutine_1.f90	Sat Jan 14 06:31:08 2006
***************
*** 0 ****
--- 1,58 ----
+ ! { dg-do run }
+ ! Test the fix for pr22146, where and elemental subroutine with
+ ! array actual arguments would cause an ICE in gfc_conv_function_call.
+ ! The module is the original test case and the rest is a basic
+ ! functional test of the scalarization of the function call.
+ !
+ ! Contributed by Erik Edelmann  <erik.edelmann@iki.fi>
+ !             and Paul Thomas   <pault@gcc.gnu.org>
+ 
+   module pr22146
+ 
+ contains
+ 
+     elemental subroutine foo(a)
+       integer, intent(out) :: a
+       a = 0
+     end subroutine foo
+ 
+     subroutine bar()
+       integer :: a(10)
+       call foo(a)
+     end subroutine bar
+ 
+ end module pr22146
+ 
+   use pr22146
+   real, dimension (2)  :: x, y
+   real :: u, v
+   x = (/1.0, 2.0/)
+   u = 42.0
+ 
+   call bar ()
+ 
+ ! Check the various combinations of scalar and array.
+   call foobar (x, y)
+   if (any(y.ne.-x)) call abort ()
+ 
+   call foobar (u, y)
+   if (any(y.ne.-42.0)) call abort ()
+ 
+   call foobar (u, v)
+   if (v.ne.-42.0) call abort ()
+ 
+   call foobar (x, v)
+   if (v.ne.-2.0) call abort ()
+ 
+ ! Test an expression in the INTENT(IN) argument
+   call foobar (cos (x) + u, y)
+   if (any(abs (y + cos (x) + u) .gt. 2.0e-6)) call abort ()
+ 
+ contains
+ 
+   elemental subroutine foobar (a, b)
+     real, intent(IN) :: a
+     real, intent(out) :: b
+     b = -a
+   end subroutine foobar
+ end
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/elemental_subroutine_2.f90	Sat Jan 14 06:31:08 2006
***************
*** 0 ****
--- 1,64 ----
+ ! { dg-do run }
+ ! Test the fix for pr22146, where and elemental subroutine with
+ ! array actual arguments would cause an ICE in gfc_conv_function_call.
+ ! This test checks that the main uses for elemental subroutines work
+ ! correctly; namely, as module procedures and as procedures called
+ ! from elemental functions. The compiler would ICE on the former with
+ ! the first version of the patch.
+ !
+ ! Contributed by Paul Thomas   <pault@gcc.gnu.org>
+ 
+ module type
+   type itype
+     integer :: i
+     character(1) :: ch
+   end type itype
+ end module type
+ 
+ module assign
+   interface assignment (=)
+     module procedure itype_to_int
+   end interface
+ contains
+   elemental subroutine itype_to_int (i, it)
+     use type
+     type(itype), intent(in) :: it
+     integer, intent(out) :: i
+     i = it%i
+   end subroutine itype_to_int
+ 
+   elemental function i_from_itype (it) result (i)
+     use type
+     type(itype), intent(in) :: it
+     integer :: i
+     i = it
+   end function i_from_itype
+ 
+ end module assign
+ 
+ program test_assign
+   use type
+   use assign
+   type(itype) :: x(2, 2)
+   integer :: i(2, 2)
+ 
+ ! Test an elemental subroutine call from an elementary function.
+   x = reshape ((/(itype (j, "a"), j = 1,4)/), (/2,2/))
+   forall (j = 1:2, k = 1:2)
+     i(j, k) = i_from_itype (x (j, k))
+   end forall
+   if (any(reshape (i, (/4/)).ne.(/1,2,3,4/))) call abort ()
+ 
+ ! Check the interface assignment (not part of the patch).
+   x = reshape ((/(itype (j**2, "b"), j = 1,4)/), (/2,2/))
+   i = x
+   if (any(reshape (i, (/4/)).ne.(/1,4,9,16/))) call abort ()
+ 
+ ! Use the interface assignment within a forall block.
+   x = reshape ((/(itype (j**3, "c"), j = 1,4)/), (/2,2/))
+   forall (j = 1:2, k = 1:2)
+     i(j, k) = x (j, k)
+   end forall
+   if (any(reshape (i, (/4/)).ne.(/1,8,27,64/))) call abort ()
+ 
+ end program test_assign
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/endfile.f gcc-4.1.0/gcc/testsuite/gfortran.dg/endfile.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/endfile.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/endfile.f	Sun Jan  1 04:20:41 2006
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do run }
+ ! PR25550 file data corrupted after reading end of file.
+ ! Derived from example given in PR from Dale Ranta.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org> 
+       integer data
+       data=-1
+       open(unit=11,status='scratch',form='unformatted')
+       write(11)data
+       read(11,end=1000 )data
+       call abort()
+  1000 continue
+       rewind (11)
+       read(11)data
+  1001 continue
+       if(data.ne.-1) call abort
+       end
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/entry_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/entry_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/entry_4.f90	Fri Apr 29 16:01:16 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/entry_4.f90	Thu Dec 22 16:29:18 2005
*************** return
*** 17,24 ****
  entry e2 ()
  e2 (:, :, :) = 2
  end function
! integer*8 function f3 ()		! { dg-error "can't be of type" }
! complex*16 e3				! { dg-error "can't be of type" }
  f3 = 1
  return
  entry e3 ()
--- 17,24 ----
  entry e2 ()
  e2 (:, :, :) = 2
  end function
! integer(kind=8) function f3 ()		! { dg-error "can't be of type" }
! complex(kind=8) e3		        ! { dg-error "can't be of type" }
  f3 = 1
  return
  entry e3 ()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/entry_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/entry_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/entry_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/entry_5.f90	Tue Nov  1 21:55:02 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! PR 24008
+ ! an argument list to the entry is required
+ REAL FUNCTION funct()
+   funct = 0.0
+   RETURN
+ !
+   ENTRY enter RESULT (answer)  ! { dg-error "Unclassifiable statement" }
+   answer = 1.0
+   RETURN
+ END FUNCTION funct
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_1.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do run }
+ ! Program to test ENUM parsing 
+ 
+ program main
+   implicit none
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" }
+     enumerator :: red, black
+     enumerator blue
+   end enum
+   if (red /= 0) call abort
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_10.c gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_10.c
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_10.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_10.c	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,27 ----
+ /* This testcase is meant to be compiled together with enum_10.f90  */
+ 
+ extern void abort (void);
+ 
+ typedef enum
+   { MAX1 = 127 } onebyte;
+ 
+ void f1_ (onebyte *i, int *j)
+ {
+   if (*i != *j) abort ();
+ }
+ 
+ typedef enum
+   { MAX2 = 32767 } twobyte;
+ 
+ void f2_ (twobyte *i, int *j)
+ {
+   if (*i != *j) abort ();
+ }
+ 
+ typedef enum
+   { MAX4 = 2000000 } fourbyte; /* don't need the precise value. */
+ 
+ void f4_ (fourbyte *i, int *j)
+ {
+   if (*i != *j) abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_10.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_10.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_10.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_10.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,61 ----
+ ! { dg-do run }
+ ! { dg-additional-sources enum_10.c }
+ ! { dg-options "-fshort-enums" }
+ ! Make sure short enums are indeed interoperable with the
+ ! corresponding C type.
+ 
+ module enum_10
+ enum, bind( c )   ! { dg-warning "New in Fortran 2003" }
+    enumerator :: one1 = 1, two1, max1 = huge(1_1)
+ end enum
+ 
+ enum, bind( c )   ! { dg-warning "New in Fortran 2003" }
+    enumerator :: one2 = 1, two2, max2 = huge(1_2)
+ end enum
+ 
+ enum, bind( c )   ! { dg-warning "New in Fortran 2003" }
+    enumerator :: one4 = 1, two4, max4 = huge(1_4)
+ end enum
+ end module enum_10
+ 
+ use enum_10
+ 
+ interface f1
+   subroutine f1(i,j)
+     use enum_10
+     integer (kind(max1)) :: i
+     integer :: j
+   end subroutine f1
+ end interface
+ 
+ 
+ interface f2
+   subroutine f2(i,j)
+     use enum_10
+     integer (kind(max2)) :: i
+     integer :: j
+   end subroutine f2
+ end interface
+ 
+ 
+ interface f4
+   subroutine f4(i,j)
+     use enum_10
+     integer (kind(max4)) :: i
+     integer :: j
+   end subroutine f4
+ end interface
+ 
+ 
+ call f1 (one1, 1)
+ call f1 (two1, 2)
+ call f1 (max1, huge(1_1)+0) ! Adding 0 to get default integer
+ 
+ call f2 (one2, 1)
+ call f2 (two2, 2)
+ call f2 (max2, huge(1_2)+0)
+ 
+ call f4 (one4, 1)
+ call f4 (two4, 2)
+ call f4 (max4, huge(1_4)+0)
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_2.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! Program to test ENUM parsing errors 
+ 
+ program main
+   implicit none
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" }
+     enumerator :: red, black
+     integer :: x  ! { dg-error "Unexpected data declaration" }
+     enumerator blue = 1  ! { dg-error "Syntax error in ENUMERATOR definition" }
+   end enum
+ 
+   enumerator :: sun  ! { dg-error "ENUM" }
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_3.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! Program to test ENUM parsing errors 
+ 
+ program main
+   implicit none
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" } 
+     enumerator :: red, black = 2.2  ! { dg-error "initialized with integer expression" }
+     enumerator :: blue = "x"  ! { dg-error "initialized with integer expression" }
+   end enum  ! { dg-error "has no ENUMERATORS" }
+ 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_4.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! Program to test ENUM parsing errors 
+ 
+ program main
+   implicit none
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" } 
+     enumerator :: red, black = 2     
+     enumerator :: blue = 1, red  ! { dg-error "already" }
+   end enum
+ 
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" } 
+     enumerator :: r, b(10) = 2  ! { dg-error "cannot be array" }
+     enumerator , save :: g = 1  ! { dg-error "cannot have attributes" }  
+   end  ! { dg-error " END ENUM" } 
+ 
+ end program main  ! { dg-excess-errors "" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_5.f90	Mon Dec 26 09:07:27 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! Program to test ENUM parsing errors 
+ 
+ program main
+   implicit none
+   integer :: i = 1
+ 
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" } 
+     enumerator :: red, black = i  ! { dg-error "is a variable" }
+     enumerator :: blue = 1  
+   end enum junk  ! { dg-error "Syntax error" }
+ 
+   blue = 10  ! { dg-error "Expected VARIABLE" }
+ 
+ end program main  ! { dg-excess-errors "" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_6.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! Program to test ENUM parsing errors 
+ 
+ program main
+   implicit none
+   integer :: i = 1
+ 
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" } 
+     enumerator :: sun, mon = 2    
+     i = 2  ! { dg-error "Unexpected" }  
+     enumerator :: wed = 1    
+   end enum       
+ 
+   i = 1
+ 
+   enum, bind (c)  ! { dg-error "Unexpected" } 
+     enumerator :: red, black = 2  ! { dg-error "ENUM definition statement expected" }
+     enumerator :: blue = 1  ! { dg-error "ENUM definition statement expected" }
+   end enum  ! { dg-excess-errors "Expecting END PROGRAM" }
+ 
+ end program main        
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_7.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! Program to test ENUM parsing errors 
+ 
+ program main
+   implicit none
+ 
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" } 
+     enumerator :: sun, mon = 2    
+     enum, bind (c)  ! { dg-error "Unexpected" }
+       enumerator :: apple, mango
+     end enum  
+     enumerator :: wed = 1  ! { dg-error "ENUM definition statement expected" }  
+   end enum  ! { dg-error "Expecting END PROGRAM" }  
+ 
+ end program main        
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_8.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_8.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_8.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_8.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! Program to test the initialisation range of enumerators 
+ ! and kind values check
+ 
+ program main
+   implicit none
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" }
+     enumerator :: pp , qq = 4294967295, rr  ! { dg-error "not initialized with integer" }
+   end enum  ! { dg-error "has no ENUMERATORS" }
+ 
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" }
+     enumerator :: p , q = 4294967299_8, r  ! { dg-error "Arithmetic overflow" }
+   end enum  ! { dg-error "has no ENUMERATORS" }
+ 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_9.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_9.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/enum_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/enum_9.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do run }
+ ! { dg-options "-fshort-enums" }
+ ! Program to test enumerations when option -fshort-enums is given
+ 
+ program main
+   implicit none
+   enum, bind (c)  ! { dg-warning "New in Fortran 2003" }
+     enumerator :: red, black = 127
+     enumerator blue
+   end enum
+   if (red /= 0) call abort
+   if (black /= 127) call abort
+   if (blue /= 128) call abort
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_5.f90	Wed Dec 14 18:55:31 2005
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! PR fortran/25078
+ ! An equivalence statement requires two or more objcets.
+ program a
+   real x
+   equivalence(x) ! { dg-error "two or more objects" }
+ end program a
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_1.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ ! PR20901 - F95 constrains mixing of types in equivalence.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+  character(len=4) :: a
+  integer :: i
+  equivalence(a,i) ! { dg-error "in default CHARACTER EQUIVALENCE statement at" }
+  END
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_2.f90	Thu Dec 22 16:29:18 2005
***************
*** 0 ****
--- 1,74 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+ !
+ ! PR20901 - Checks resolution of types in EQUIVALENCE statement when
+ ! f95 standard is imposed.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+   type   :: numeric_type
+     sequence
+     integer      :: i
+     real         :: x
+     real(kind=8) :: d
+     complex      :: z
+     logical      :: l
+   end type numeric_type
+ 
+   type (numeric_type) :: my_num, thy_num
+ 
+   type   :: numeric_type2
+     sequence
+     integer      :: i
+     real         :: x
+     real(kind=8) :: d
+     complex      :: z
+     logical      :: l
+   end type numeric_type2
+ 
+   type (numeric_type2) :: his_num
+ 
+   type       :: char_type
+     sequence
+     character*4 :: ch
+     character*4 :: cha (6)
+   end type char_type
+ 
+   type (char_type) ::  my_char
+ 
+   type       :: mixed_type
+     sequence
+     integer     :: i(4)
+     character*4 :: cha (6)
+   end type mixed_type
+ 
+   type (mixed_type) ::  my_mixed, thy_mixed
+ 
+   character(len=4) :: ch
+   integer         :: num
+   integer(kind=8) :: non_def
+   complex(kind=8) :: my_z, thy_z
+ 
+ ! Permitted: character with character sequence
+ !            numeric with numeric sequence
+ !            numeric sequence with numeric sequence
+ !            non-default of same type
+ !            mixed sequences of same type
+   equivalence (ch, my_char)
+   equivalence (num, my_num)
+   equivalence (my_num, his_num, thy_num)
+   equivalence (my_z, thy_z)
+   equivalence (my_mixed, thy_mixed)
+ 
+ ! Not permitted by the standard - OK with -std=gnu
+   equivalence (my_mixed, my_num) ! { dg-error "with mixed components in EQUIVALENCE" }
+   equivalence (my_z, num) ! { dg-error "Non-default type object or sequence" }
+   equivalence (my_char, my_num) ! { dg-error "in default CHARACTER EQUIVALENCE" }
+   equivalence (ch, my_num) ! { dg-error "in default CHARACTER EQUIVALENCE" }
+   equivalence (my_num, ch) ! { dg-error "in default NUMERIC EQUIVALENCE" }
+   equivalence (num, my_char) ! { dg-error "in default NUMERIC EQUIVALENCE" }
+   equivalence (my_char, num) ! { dg-error "in default CHARACTER EQUIVALENCE" }
+   equivalence (non_def, ch) ! { dg-error "Non-default type object or sequence" }
+   equivalence (my_z, ch) ! { dg-error "Non-default type object or sequence" }
+   equivalence (my_z, num) ! { dg-error "Non-default type object or sequence" }
+  END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_3.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! PR20900 - USE associated variables cannot be equivalenced.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ MODULE TEST
+  INTEGER :: I
+ END MODULE
+ ! note 11.7
+ USE TEST, ONLY : K=>I
+ INTEGER :: L
+ EQUIVALENCE(K,L) ! { dg-error "conflicts with USE ASSOCIATED attribute" }
+ END
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_4.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+ ! { dg-options "-O0" }
+ ! PR20901 - check that derived/numeric equivalence works with std!=f95.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ TYPE data_type
+  SEQUENCE
+  INTEGER :: I
+ END TYPE data_type
+ INTEGER :: J = 7
+ TYPE(data_type) :: dd
+ EQUIVALENCE(dd,J)
+ if (dd%i.ne.7) call abort ()
+ END
+ 
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_5.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ ! PR20902 - Structure with default initializer cannot be equivalence memeber.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ TYPE T1
+  sequence
+  integer :: i=1
+ END TYPE T1
+ TYPE T2
+  sequence
+  integer :: i      ! drop original initializer to pick up error below.
+ END TYPE T2
+ TYPE(T1) :: a1
+ TYPE(T2) :: a2
+ EQUIVALENCE(a1,a2) ! { dg-error "initializer cannot be an EQUIVALENCE" }
+ write(6,*) a1,a2
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_6.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR16404 test 3 and PR20835 - Target cannot be equivalence object.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+   REAL :: A
+   REAL, TARGET :: B
+   EQUIVALENCE(A,B) ! { dg-error "conflicts with TARGET attribute" }
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_7.f90	Tue Feb 14 07:18:44 2006
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ ! PR20890 - Equivalence cannot contain more than one initialized variables.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ ! Started out being in BLOCK DATA; however, blockdata variables must be in
+ ! COMMON and therefore cannot have F95 style initializers....
+  MODULE DATA
+   INTEGER :: I=1,J=2
+   EQUIVALENCE(I,J)  ! { dg-error "cannot both be in the EQUIVALENCE" }
+  END MODULE DATA
+  END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_8.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_8.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/equiv_constraint_8.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/equiv_constraint_8.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ ! PR20899 - Common block variables cannot be equivalenced in a pure procedure.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ common /z/ i
+ contains
+ pure integer function test(j)
+   integer, intent(in) :: j
+   common /z/ i
+   integer :: k
+   equivalence(i,k) ! { dg-error "EQUIVALENCE object in the pure" }
+   k=1 ! { dg-error "in PURE procedure at" }
+   test=i*j
+ end function test
+ end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/external_implicit_none.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/external_implicit_none.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/external_implicit_none.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/external_implicit_none.f90	Tue Nov  1 05:53:29 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! Tests fix for PR18737 - ICE on external symbol of unknown type.
+ program test
+   implicit none
+   real(8) :: x
+   external bug  ! { dg-error "has no IMPLICIT type" }
+ 
+   x = 2
+   print *, bug(x)
+   
+ end program test
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/external_initializer.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/external_initializer.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/external_initializer.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/external_initializer.f90	Mon Oct 17 20:52:37 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do compile }
+ ! PR20849 - An external symbol may not have a initializer.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ REAL, EXTERNAL :: X=0 ! { dg-error "may not have an initializer" }
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/external_procedures_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/external_procedures_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/external_procedures_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/external_procedures_1.f90	Wed Jan 18 18:56:43 2006
***************
*** 0 ****
--- 1,41 ----
+ ! { dg-do compile }
+ ! This tests the patch for PR25024.
+ 
+ ! PR25024 - The external attribute for subroutine a would cause an ICE.
+   subroutine A ()
+     EXTERNAL A  ! { dg-error "EXTERNAL attribute conflicts with SUBROUTINE" }
+   END
+ function ext (y)
+   real ext, y
+   external ext      ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
+   ext = y * y
+ end function ext
+ 
+ function ext1 (y)
+   real ext1, y
+   external z        ! OK no conflict
+   ext1 = y * y
+ end function ext1
+ 
+ program main
+   real ext, inval
+   external ext       ! OK, valid external reference.
+   external main      ! { dg-error "PROGRAM attribute conflicts with EXTERNAL" }
+   interface
+     function ext1 (y)
+       real ext1, y
+       external ext1  ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
+     end function ext1
+   end interface
+   inval = 1.0
+   print *, ext(inval)
+   print *, ext1(inval)
+   print *, inv(inval)
+ contains
+   function inv (y)
+     real inv, y
+     external inv     ! { dg-error "EXTERNAL attribute conflicts with FUNCTION" }
+     inv = y * y * y
+   end function inv
+ end program main
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_2.f90	Wed Jun  1 23:02:11 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_2.f90	Thu Dec 22 16:29:18 2005
***************
*** 2,8 ****
  ! -ff2c
  !
  ! Once the library has support for f2c calling conventions (i.e. passing
! ! a REAL*4 or COMPLEX-valued intrinsic as procedure argument works), we
  ! can simply add -ff2c to the list of options to cycle through, and get
  ! complete coverage.  As of 2005-03-05 this doesn't work.
  ! { dg-do run }
--- 2,8 ----
  ! -ff2c
  !
  ! Once the library has support for f2c calling conventions (i.e. passing
! ! a REAL(kind=4) or COMPLEX-valued intrinsic as procedure argument works), we
  ! can simply add -ff2c to the list of options to cycle through, and get
  ! complete coverage.  As of 2005-03-05 this doesn't work.
  ! { dg-do run }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_4.c gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_4.c
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_4.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_4.c	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,79 ----
+ /*  Check -ff2c calling conventions
+     Return value of COMPLEX function is via an extra argument in the
+      calling sequence that points to where to store the return value
+     Additional underscore appended to function name
+   
+    Simplified from f2c output and tested with g77 */
+ 
+ typedef float real;
+ typedef double doublereal;
+ typedef struct { real r, i; } complex;
+ typedef struct { doublereal r, i; } doublecomplex;
+ 
+ extern double f2c_4b__(double *);
+ extern void f2c_4d__( complex *, complex *);
+ extern void f2c_4f__( complex *, int *,complex *);
+ extern void f2c_4h__( doublecomplex *, doublecomplex *);
+ extern void f2c_4j__( doublecomplex *, int *, doublecomplex *);
+ extern void abort (void);
+ 
+ void f2c_4a__(void) {
+   double a,b;
+   a = 1023.0;
+   b=f2c_4b__(&a);
+   if ( a != b ) abort();
+ }
+ 
+ void f2c_4c__(void) {
+   complex x,ret_val;
+   x.r = 1234;
+   x.i = 5678;
+   f2c_4d__(&ret_val,&x);
+   if ( x.r != ret_val.r && x.i != ret_val.i ) abort();
+ }
+ 
+ void f2c_4e__(void) {
+   complex x,ret_val;
+   int i=0;
+   x.r = 1234;
+   x.i = 5678;
+   f2c_4f__(&ret_val,&i,&x);
+   if ( x.r != ret_val.r && x.i != ret_val.i ) abort();
+ }
+ 
+ void f2c_4g__(void) {
+   doublecomplex x,ret_val;
+   x.r = 1234;
+   x.i = 5678.0f;
+   f2c_4h__(&ret_val,&x);
+   if ( x.r != ret_val.r && x.i != ret_val.i ) abort();
+ }
+ 
+ void f2c_4i__(void) {
+   doublecomplex x,ret_val;
+   int i=0;
+   x.r = 1234.0f;
+   x.i = 5678.0f;
+   f2c_4j__(&ret_val,&i,&x);
+   if ( x.r != ret_val.r && x.i != ret_val.i ) abort();
+ }
+ 
+ void f2c_4k__(complex *ret_val, complex *x) {
+   ret_val->r = x->r;
+   ret_val->i = x->i;
+ }
+ 
+ void f2c_4l__(complex *ret_val, int *i, complex *x) {
+   ret_val->r = x->r;
+   ret_val->i = x->i;
+ }
+ 
+ void f2c_4m__(doublecomplex *ret_val, doublecomplex *x) {
+   ret_val->r = x->r;
+   ret_val->i = x->i;
+ }
+ 
+ void f2c_4n__(doublecomplex *ret_val, int *i, doublecomplex *x) {
+   ret_val->r = x->r;
+   ret_val->i = x->i;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_4.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,58 ----
+ ! { dg-do run }
+ ! { dg-additional-sources f2c_4.c }
+ ! { dg-options "-ff2c -w" }
+ 
+ ! Check -ff2c calling conventions
+ !   Return value of REAL function is promoted to C type double
+ !   Return value of COMPLEX function is via an extra argument in the
+ !    calling sequence that points to where to store the return value
+ !   Addional underscore appended to function name
+ program f2c_4
+   complex c, f2c_4k, f2c_4l
+   double complex z, f2c_4m, f2c_4n
+   integer i
+ 
+   ! Promotion of REAL function
+   call f2c_4a()
+ 
+   ! Return COMPLEX arg - call Fortran routines from C
+   call f2c_4c()
+   call f2c_4e()
+   call f2c_4g()
+   call f2c_4i()
+ 
+   !  Return COMPLEX arg - call C routines from Fortran 
+   c = cmplx(1234.0,5678.0)
+   z = dcmplx(1234.0d0,5678.0d0)
+   if ( c .ne. f2c_4k(c) )   call abort
+   if ( c .ne. f2c_4l(i,c) ) call abort
+   if ( z .ne. f2c_4m(z) )   call abort
+   if ( z .ne. f2c_4n(i,z) ) call abort
+ 
+ end
+ 
+ real function f2c_4b(x)
+   double precision x
+   f2c_4b = x
+ end
+ 
+ complex function f2c_4d(x)
+   complex x
+   f2c_4d = x
+ end
+ 
+ complex function f2c_4f(i,x)
+   complex x
+   integer i
+   f2c_4f = x
+ end
+ 
+ double complex function f2c_4h(x)
+   double complex x
+   f2c_4h = x
+ end
+ 
+ double complex function f2c_4j(i,x)
+   double complex x
+   f2c_4j = x
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_5.c gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_5.c
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_5.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_5.c	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,9 ----
+ extern float f2c_5b_(double *);
+ extern void abort (void);
+ 
+ void f2c_5a_(void) {
+   double a,b;
+   a = 1023.0;
+   b=f2c_5b_(&a);
+   if ( a != b ) abort();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_5.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do run }
+ ! { dg-additional-sources f2c_5.c }
+ ! { dg-options "-fno-f2c -w" }
+ ! Check calling conventions without -ff2c
+ program f2c_5  
+   call f2c_5a()
+ end
+ 
+ real function f2c_5b(x)
+   double precision x
+   f2c_5b = x
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/f2c_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/f2c_6.f90	Sat Jun 18 11:51:47 2005
***************
*** 0 ****
--- 1,84 ----
+ ! { dg-do run }
+ ! { dg-options "-ff2c" }
+ ! Verifies that complex pointer results work with -ff2c
+ ! try all permutations of result clause in function yes/no
+ !                     and result clause in interface yes/no
+ ! this is not possible in Fortran 77, but this exercises a previously
+ ! buggy codepath
+ function c() result (r)
+   common // z
+   complex, pointer :: r
+   complex, target :: z
+ 
+   r=>z
+ end function c
+ 
+ function d()
+   common // z
+   complex, pointer :: d
+   complex, target :: z
+ 
+   d=>z
+ end function d
+ 
+ function e()
+   common // z
+   complex, pointer :: e
+   complex, target :: z
+ 
+   e=>z
+ end function e
+ 
+ function f() result(r)
+   common // z
+   complex, pointer :: r
+   complex, target :: z
+ 
+   r=>z
+ end function f
+ 
+ interface
+    function c
+      complex, pointer :: c
+    end function c
+ end interface
+ interface
+    function d
+      complex, pointer :: d
+    end function d
+ end interface
+ interface
+    function e result(r)
+      complex, pointer :: r
+    end function e
+ end interface
+ interface
+    function f result(r)
+      complex, pointer :: r
+    end function f
+ end interface
+ 
+ common // z
+ complex, target :: z
+ complex, pointer :: p
+ 
+ z = (1.,0.)
+ p => c()
+ z = (2.,0.)
+ if (p /= z) call abort ()
+ 
+ NULLIFY(p)
+ p => d()
+ z = (3.,0.)
+ if (p /= z) call abort ()
+ 
+ NULLIFY(p)
+ p => e()
+ z = (4.,0.)
+ if (p /= z) call abort ()
+ 
+ NULLIFY(p)
+ p => f()
+ z = (5.,0.)
+ if (p /= z) call abort ()
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fgetc_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/fgetc_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fgetc_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fgetc_1.f90	Sun Nov 13 09:33:19 2005
***************
*** 0 ****
--- 1,39 ----
+ ! Testcase for the FGETC and FPUTC intrinsics
+ ! { dg-do run }
+   character(len=5) s
+   integer st
+ 
+   s = "12345"
+   open(10,status="scratch")
+   write(10,"(A)") "abcde"
+   rewind(10)
+   call fgetc(10,s,st)
+   if ((st /= 0) .or. (s /= "a    ")) call abort
+   call fgetc(10,s,st)
+   close(10)
+ 
+   open(10,status="scratch")
+   s = "12345"
+   call fputc(10,s,st)
+   if (st /= 0) call abort
+   call fputc(10,"2",st)
+   if (st /= 0) call abort
+   call fputc(10,"3 ",st)
+   if (st /= 0) call abort
+   rewind(10)
+   call fgetc(10,s)
+   if (s(1:1) /= "1") call abort
+   call fgetc(10,s)
+   if (s(1:1) /= "2") call abort
+   call fgetc(10,s,st)
+   if ((s(1:1) /= "3") .or. (st /= 0)) call abort
+   call fgetc(10,s,st)
+   if (st /= -1) call abort
+   close (10)
+ 
+ ! FGETC and FPUTC on units not opened should not work
+   call fgetc(12,s,st)
+   if (st /= -1) call abort
+   call fputc(12,s,st)
+   if (st /= -1) call abort
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fgetc_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/fgetc_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fgetc_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fgetc_2.f90	Sun Nov 13 09:33:19 2005
***************
*** 0 ****
--- 1,39 ----
+ ! Testcase for the FGETC and FPUTC intrinsics
+ ! { dg-do run }
+   character(len=5) s
+   integer st
+ 
+   s = "12345"
+   open(10,status="scratch")
+   write(10,"(A)") "abcde"
+   rewind(10)
+   st = fgetc(10,s)
+   if ((st /= 0) .or. (s /= "a    ")) call abort
+   st = fgetc(10,s)
+   close(10)
+ 
+   open(10,status="scratch")
+   s = "12345"
+   st = fputc(10,s)
+   if (st /= 0) call abort
+   st = fputc(10,"2")
+   if (st /= 0) call abort
+   st = fputc(10,"3 ")
+   if (st /= 0) call abort
+   rewind(10)
+   st = fgetc(10,s)
+   if (s(1:1) /= "1") call abort
+   st = fgetc(10,s)
+   if (s(1:1) /= "2") call abort
+   st = fgetc(10,s)
+   if ((s(1:1) /= "3") .or. (st /= 0)) call abort
+   st = fgetc(10,s)
+   if (st /= -1) call abort
+   close (10)
+ 
+ ! FGETC and FPUTC on units not opened should not work
+   st = fgetc(12,s)
+   if (st /= -1) call abort
+   st = fputc(12,s)
+   if (st /= -1) call abort
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fgetc_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/fgetc_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fgetc_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fgetc_3.f90	Sun Nov 13 09:33:19 2005
***************
*** 0 ****
--- 1,34 ----
+ ! Testcase for the FGETC and FPUTC intrinsics
+ ! { dg-do compile }
+   character(len=5) s
+   integer st
+ 
+   s = "12345"
+   open(status="scratch")
+   write(*,"(A)") "abcde"
+   rewind(10)
+   st = fget(s)
+   if ((st /= 0) .or. (s /= "a    ")) call abort
+   st = fget(s)
+   close(10)
+ 
+   open(status="scratch")
+   s = "12345"
+   st = fput(s)
+   if (st /= 0) call abort
+   st = fput("2")
+   if (st /= 0) call abort
+   st = fput("3 ")
+   if (st /= 0) call abort
+   rewind(10)
+   st = fget(s)
+   if (s(1:1) /= "1") call abort
+   st = fget(s)
+   if (s(1:1) /= "2") call abort
+   st = fget(s)
+   if ((s(1:1) /= "3") .or. (st /= 0)) call abort
+   st = fget(s)
+   if (st /= -1) call abort
+   close (10)
+ 
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/flush_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/flush_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/flush_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/flush_1.f90	Sun Aug  7 22:56:19 2005
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do run }
+ ! PR 22390 Implement flush statement
+ program flush_1
+ 
+    character(len=256) msg
+    integer ios
+ 
+    open (unit=10, access='SEQUENTIAL', status='SCRATCH')
+ 
+    write (10, *) 42
+    flush 10                   ! { dg-warning "Fortran 2003: FLUSH statement" }
+ 
+    write (10, *) 42
+    flush(10)                  ! { dg-warning "Fortran 2003: FLUSH statement" }
+ 
+    write (10, *) 42
+    flush(unit=10, iostat=ios) ! { dg-warning "Fortran 2003: FLUSH statement" }
+    if (ios /= 0) call abort
+ 
+    write (10, *) 42
+    flush (unit=10, err=20)    ! { dg-warning "Fortran 2003: FLUSH statement" }
+    goto 30
+ 20 call abort
+ 30 continue
+ 
+    call flush(10)
+ 
+ end program flush_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_read_bz_bn.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_read_bz_bn.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_read_bz_bn.f90	Sun Jul 24 00:52:36 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_read_bz_bn.f90	Thu Dec 22 16:29:18 2005
*************** program test_bn
*** 6,12 ****
          
  integer I1(2,2), I2(2,2,2)
  real A1(5)
! real*8 A2(0:3)
  character*80 :: IDATA1="111 2 2 3 3. 3E-1  44 5 5 6 . 67 . 78 8. 8E-1"
  character*80 :: IDATA2="2345 1 34512 45123 51234 2345 1 34512 45123 5"
  character*80 :: IDATA3="-8.0D0  1.0D-4  0.50D0  0.250D0"
--- 6,12 ----
          
  integer I1(2,2), I2(2,2,2)
  real A1(5)
! real(kind=8) A2(0:3)
  character*80 :: IDATA1="111 2 2 3 3. 3E-1  44 5 5 6 . 67 . 78 8. 8E-1"
  character*80 :: IDATA2="2345 1 34512 45123 51234 2345 1 34512 45123 5"
  character*80 :: IDATA3="-8.0D0  1.0D-4  0.50D0  0.250D0"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_t_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_t_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_t_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_t_2.f90	Fri Nov 11 20:31:06 2005
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-options "" }
+ ! { dg-do run }
+ ! pr24699, handle end-of-record on READ with T format
+ ! test contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+       character*132 :: foost1, foost2, foost3
+       open (11, status="scratch", action="readwrite")
+       write(11, '(a)') "ab cdefghijkl mnop qrst"
+       write(11, '(a)') "123456789 123456789 123456789"
+       write(11, '(a)') "  Now is the time for all good."
+       rewind(11)
+       
+       read (11, '(a040,t1,040a)', end = 999)  foost1 , foost2
+       if (foost1.ne.foost2) call abort()
+ 
+       read (11, '(a032,t2,a032t3,a032)', end = 999)  foost1 , foost2, foost3
+       if (foost1(1:32).ne."123456789 123456789 123456789   ") call abort()
+       if (foost2(1:32).ne."23456789 123456789 123456789    ") call abort()
+       if (foost3(1:32).ne."3456789 123456789 123456789     ") call abort()
+          
+       read (11, '(a017,t1,a0017)', end = 999)  foost1 , foost2
+       if (foost1.ne.foost2) call abort()
+       if (foost2(1:17).ne."  Now is the time ") call abort()
+       goto 1000
+  999  call abort()
+  1000 continue
+       close(11)
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_tl.f gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_tl.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_tl.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_tl.f	Wed Jan 18 04:32:16 2006
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do run }
+ ! PR25631 Check that TL editing works for special case of no bytes written yet.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+       real x
+       character*15 line
+       x = 12.34
+       write(line,10) x
+  10   format(tr2,tl2,g11.4)
+       if (line.ne.'  12.34        ') call abort()
+       write(line,20) x
+  20   format(tr5,tl3,g11.4)
+       if (line.ne.'    12.34      ') call abort()
+       write(line,30) x
+  30   format(tr5,tl3,tl3,g11.4)
+       if (line.ne.'  12.34        ') call abort()
+       write(line,40) x
+  40   format(tr25,tl35,f11.4)
+       if (line.ne.'    12.3400    ') call abort()
+       write(line,50) x
+  50   format(tl5,tr3,f11.4)
+       if (line.ne.'       12.3400 ') call abort()
+       write(line,60) x
+  60   format(t5,tl3,f11.4)
+       if (line.ne.'     12.3400   ') call abort()
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_white.f gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_white.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fmt_white.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fmt_white.f	Sun Jan  8 01:56:22 2006
***************
*** 0 ****
--- 1,18 ----
+ ! { dg-do run }
+ ! PR24268 Test case derived from example given by Iwan Kawrakow
+ ! Embedded spaces in format strings should be ignored.
+ ! Prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+       program pr24268
+       real x
+       character*13 line
+       line = "12.34"
+       read(line,*) x
+       write(line,10) x
+  10                                                            format(g1
+      *      1.4)
+       if (line.ne."  12.34") call abort()
+       line = ""
+       write(line,20) x
+  20   format(t r 2 , g 1 1 . 4)
+       if (line.ne."    12.34") call abort()
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/fold_nearest.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/fold_nearest.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/fold_nearest.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/fold_nearest.f90	Mon Apr 11 21:48:27 2005
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do run }
+ ! Tests for the constant folding of the NEAREST intrinsic
+ ! We compare against the results of the runtime implementation,
+ ! thereby making sure that they remain consistent
+ REAL, PARAMETER :: x(10) = (/ 1., 0.49999997, 0.5, 8388609.0, -1., &
+                                       -0.49999997, -0.5, -8388609.0, &
+                                       0., 0. /), &
+                  dir(10) = (/ -1.,       +1., -1.,       -1., +1., &
+                                              -1.,  +1.,        +1., &
+                                      +1.,-1./)
+ REAL :: a(10)
+ 
+ a = x
+ if (nearest (x(1), dir(1)) /= nearest (a(1), dir(1))) call abort ()
+ if (nearest (x(2), dir(2)) /= nearest (a(2), dir(2))) call abort ()
+ if (nearest (x(3), dir(3)) /= nearest (a(3), dir(3))) call abort ()
+ if (nearest (x(4), dir(4)) /= nearest (a(4), dir(4))) call abort ()
+ if (nearest (x(5), dir(5)) /= nearest (a(5), dir(5))) call abort ()
+ if (nearest (x(6), dir(6)) /= nearest (a(6), dir(6))) call abort ()
+ if (nearest (x(7), dir(7)) /= nearest (a(7), dir(7))) call abort ()
+ if (nearest (x(8), dir(8)) /= nearest (a(8), dir(8))) call abort ()
+ ! These last two tests are commented out because mpfr provides no support
+ ! for denormals, and therefore we get TINY instead of the correct result.
+ !if (nearest (x(9), dir(9)) /= nearest (a(9), dir(9))) call abort ()
+ !if (nearest (x(10), dir(10)) /= nearest (a(10), dir(10))) call abort ()
+ 
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/forall_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/forall_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/forall_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/forall_2.f90	Fri Jan  6 20:04:15 2006
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! PR fortran/25101  -- Stride must be nonzero.
+ program forall_2
+    integer :: a(10),j(2),i
+    forall(i=1:2:0)  ! { dg-error "stride expression at" }
+      a(i)=1
+    end forall
+ end program forall_2
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/forall_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/forall_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/forall_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/forall_3.f90	Mon Jan  9 20:44:48 2006
***************
*** 0 ****
--- 1,18 ----
+ ! the problem here was that we had forgot to call
+ ! fold_convert in gfc_trans_pointer_assign_need_temp
+ ! so that we got a pointer to char instead of a 
+ ! pointer to an array
+ ! we really don't need a temp here.
+ ! { dg-do compile }
+ 
+       program test_forall
+          type element
+             character(32), pointer :: name
+          end type element
+          type(element)     :: charts(50)
+          character(32), target :: names(50)
+          forall(i=1:50)
+             charts(i)%name => names(i)
+          end forall
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/ftell_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/ftell_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/ftell_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/ftell_1.f90	Thu Dec 22 16:29:18 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+   integer(kind=8) o, o2
+ 
+   open (10, status="scratch")
+   call ftell (10, o)
+   if (o /= 0) call abort
+   write (10,"(A)") "1234567"
+   call ftell (10, o)
+   if (o /= 8 .and. o /= 9) call abort
+   write (10,"(A)") "1234567"
+   call ftell (10, o2)
+   if (o2 /= 2 * o) call abort
+   close (10)
+   call ftell (10, o)
+   if (o /= -1) call abort
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/ftell_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/ftell_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/ftell_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/ftell_2.f90	Thu Dec 22 16:29:18 2005
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do run }
+   integer(kind=8) o
+   open (10, status="scratch")
+   if (ftell(10) /= 0) call abort
+   write (10,"(A)") "1234567"
+   if (ftell(10) /= 8 .and. ftell(10) /= 9) call abort
+   o = ftell(10)
+   write (10,"(A)") "1234567"
+   if (ftell(10) /= 2 * o) call abort
+   close (10)
+   if (ftell(10) /= -1) call abort
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/func_derived_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/func_derived_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/func_derived_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/func_derived_2.f90	Tue Jun 21 08:46:33 2005
***************
*** 0 ****
--- 1,42 ----
+ ! { dg-do run }
+ ! This tests the "virtual fix" for PR19561, where functions returning
+ ! pointers to derived types were not generating correct code.  This
+ ! testcase is based on a simplified example in the PR discussion.
+ !
+ ! Submitted by Paul Thomas  pault@gcc.gnu.org
+ ! Slightly extended by Tobias Schl�ĵter
+ module mpoint
+   type           ::       mytype
+     integer      ::       i
+   end type mytype
+ 
+ contains
+ 
+   function get (a) result (b)
+     type (mytype), target   ::      a
+     type (mytype), pointer  ::      b
+     b => a
+   end function get
+ 
+   function get2 (a)
+     type (mytype), target   ::      a
+     type (mytype), pointer  ::      get2
+     get2 => a
+   end function get2
+ 
+ end module mpoint
+ 
+ program func_derived_2
+   use mpoint
+   type (mytype), target  ::       x
+   type (mytype), pointer ::       y
+   x = mytype (42)
+   y => get (x)
+   if (y%i.ne.42) call abort ()
+ 
+   x = mytype (112)
+   y => get2 (x)
+   if (y%i.ne.112) call abort ()
+ end program func_derived_2
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/func_derived_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/func_derived_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/func_derived_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/func_derived_3.f90	Tue Jun 21 08:46:33 2005
***************
*** 0 ****
--- 1,125 ----
+ ! { dg-do run }
+ ! This tests the "virtual fix" for PR19561, where pointers to derived
+ ! types were not generating correct code.  This testcase is based on
+ ! the original PR example.  This example not only tests the
+ ! original problem but throughly tests derived types in modules,
+ ! module interfaces and compound derived types.
+ !
+ ! Original by Martin Reinecke  martin@mpa-garching.mpg.de  
+ ! Submitted by Paul Thomas  pault@gcc.gnu.org
+ ! Slightly modified by Tobias Schl�ĵter
+ module func_derived_3
+   implicit none
+   type objA
+     private
+     integer :: i
+   end type objA
+ 
+   interface new
+     module procedure oaInit
+   end interface
+ 
+   interface print
+     module procedure oaPrint
+   end interface
+ 
+   private
+   public objA,new,print
+ 
+ contains
+ 
+   subroutine oaInit(oa,i)
+     integer :: i
+     type(objA) :: oa
+     oa%i=i
+   end subroutine oaInit
+ 
+   subroutine oaPrint (oa)
+     type (objA) :: oa
+     write (10, '("simple  = ",i5)') oa%i
+     end subroutine oaPrint
+ 
+ end module func_derived_3
+ 
+ module func_derived_3a
+   use func_derived_3
+   implicit none
+ 
+   type objB
+     private
+     integer :: i
+     type(objA), pointer :: oa
+   end type objB
+ 
+   interface new
+     module procedure obInit
+   end interface
+ 
+   interface print
+     module procedure obPrint
+   end interface
+ 
+   private
+   public objB, new, print, getOa, getOa2
+ 
+ contains
+ 
+   subroutine obInit (ob,oa,i)
+     integer :: i
+     type(objA), target :: oa
+     type(objB) :: ob
+ 
+     ob%i=i
+     ob%oa=>oa
+   end subroutine obInit
+ 
+   subroutine obPrint (ob)
+     type (objB) :: ob
+     write (10, '("derived = ",i5)') ob%i
+     call print (ob%oa)
+   end subroutine obPrint
+ 
+   function getOa (ob) result (oa)
+     type (objB),target :: ob
+     type (objA), pointer :: oa
+ 
+     oa=>ob%oa
+   end function getOa
+ 
+ ! without a result clause 
+   function getOa2 (ob)
+     type (objB),target :: ob
+     type (objA), pointer :: getOa2
+ 
+     getOa2=>ob%oa
+   end function getOa2
+     
+ end module func_derived_3a
+ 
+   use func_derived_3
+   use func_derived_3a
+   implicit none
+   type (objA),target :: oa
+   type (objB),target :: ob
+   character (len=80) :: line
+ 
+   open (10, status='scratch')
+ 
+   call new (oa,1)
+   call new (ob, oa, 2)
+ 
+   call print (ob)
+   call print (getOa (ob))
+   call print (getOa2 (ob))
+   
+   rewind (10)
+   read (10, '(80a)') line
+   if (trim (line).ne."derived =     2") call abort ()
+   read (10,  '(80a)') line
+   if (trim (line).ne."simple  =     1") call abort ()
+   read (10,  '(80a)') line
+   if (trim (line).ne."simple  =     1") call abort ()
+   read (10,  '(80a)') line
+   if (trim (line).ne."simple  =     1") call abort ()
+   close (10)
+ end program
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/1832.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/1832.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/1832.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/1832.f	Thu Sep  8 06:52:04 2005
***************
*** 1,9 ****
  c { dg-do run }
-       character*120 file
        character*5   string
!       file = "c:/dos/adir/bdir/cdir/text.doc"
!       write(string, *) "a ", file
        if (string .ne. ' a') call abort
  C-- The leading space is normal for list-directed output
! C-- "file" is not printed because it would overflow "string".
        end
--- 1,7 ----
  c { dg-do run }
        character*5   string
!       write(string, *) "a "
        if (string .ne. ' a') call abort
  C-- The leading space is normal for list-directed output
! 
        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19981216-0.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19981216-0.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19981216-0.f	Tue Jul 13 13:27:52 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19981216-0.f	Mon Dec 26 09:07:27 2005
*************** c { dg-do compile }
*** 24,40 ****
  * -------------------------------------------
          PROGRAM WAP
  
!         integer*2  ios
          character*80  name
  
          name = 'blah'
          open(unit=8,status='unknown',file=name,form='formatted',
!      F       iostat=ios)
  
        END
  * -------------------------------------------
  * 
! * The problem seems to be caused by the "integer*2 ios" declaration.
  * So far I solved it by simply using a plain integer instead.
  * 
  * I'm running gcc on a Linux system compiled/installed
--- 24,40 ----
  * -------------------------------------------
          PROGRAM WAP
  
!         integer(kind=8)  ios
          character*80  name
  
          name = 'blah'
          open(unit=8,status='unknown',file=name,form='formatted',
!      F       iostat=ios)  ! { dg-warning "Fortran 95 requires default INTEGER" }
  
        END
  * -------------------------------------------
  * 
! * The problem seems to be caused by the "integer(kind=2) ios" declaration.
  * So far I solved it by simply using a plain integer instead.
  * 
  * I'm running gcc on a Linux system compiled/installed
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990305-0.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990305-0.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990305-0.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990305-0.f	Thu Dec 22 16:29:18 2005
*************** C---------------------------------------
*** 34,40 ****
  C     Integral  LOG(A-EPSI-BY(1-Y))/(Y-Y0)
  C-----------------------------------------------------------------------
        IMPLICIT NONE
!       DOUBLE COMPLEX HWUCI2,HWULI2,EPSI,Y1,Y2,Z1,Z2,Z3,Z4
        DOUBLE PRECISION A,B,Y0,ZERO,ONE,FOUR,HALF
        EXTERNAL HWULI2
        COMMON/SMALL/EPSI
--- 34,40 ----
  C     Integral  LOG(A-EPSI-BY(1-Y))/(Y-Y0)
  C-----------------------------------------------------------------------
        IMPLICIT NONE
!       complex(kind=8) HWUCI2,HWULI2,EPSI,Y1,Y2,Z1,Z2,Z3,Z4
        DOUBLE PRECISION A,B,Y0,ZERO,ONE,FOUR,HALF
        EXTERNAL HWULI2
        COMMON/SMALL/EPSI
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-0.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-0.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-0.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-0.f	Thu Dec 22 16:29:18 2005
*************** c { dg-do run }
*** 8,18 ****
  * User-Agent: Gnus/5.07007 (Pterodactyl Gnus v0.70) Emacs/20.3
  * X-UIDL: d442bafe961c2a6ec6904f492e05d7b0
  * 
! * ISTM that there is a real problem printing integer*8 (on x86):
  * 
  * $ cat x.f
  *[modified for test suite]
!         integer *8 foo, bar
          data r/4e10/
          foo = 4e10
          bar = r
--- 8,18 ----
  * User-Agent: Gnus/5.07007 (Pterodactyl Gnus v0.70) Emacs/20.3
  * X-UIDL: d442bafe961c2a6ec6904f492e05d7b0
  * 
! * ISTM that there is a real problem printing integer(kind=8) (on x86):
  * 
  * $ cat x.f
  *[modified for test suite]
!         integer(kind=8) foo, bar
          data r/4e10/
          foo = 4e10
          bar = r
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-1.f	Mon Mar  7 05:36:50 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-1.f	Thu Dec 22 16:29:18 2005
***************
*** 1,5 ****
  c { dg-do run }
!         integer *8 foo, bar
          double precision r
          data r/4d10/
          foo = 4d10
--- 1,5 ----
  c { dg-do run }
!         integer(kind=8) foo, bar
          double precision r
          data r/4d10/
          foo = 4d10
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-2.f	Mon Mar  7 05:36:50 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-2.f	Thu Dec 22 16:29:18 2005
***************
*** 1,5 ****
  c { dg-do run }
!        integer *8 foo, bar
         complex c
          data c/(4e10,0)/
          foo = 4e10
--- 1,5 ----
  c { dg-do run }
!        integer(kind=8) foo, bar
         complex c
          data c/(4e10,0)/
          foo = 4e10
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-3.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-3.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990313-3.f	Mon Mar  7 05:36:50 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990313-3.f	Thu Dec 22 16:29:18 2005
***************
*** 1,6 ****
  c { dg-do run }
!         integer *8 foo, bar
!         double complex c
          data c/(4d10,0)/
          foo = 4d10
          bar = c
--- 1,6 ----
  c { dg-do run }
!         integer(kind=8) foo, bar
!         complex(kind=8) c
          data c/(4d10,0)/
          foo = 4d10
          bar = c
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990502-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990502-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990502-1.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990502-1.f	Thu Dec 22 16:29:18 2005
***************
*** 1,6 ****
  c { dg-do compile }
        SUBROUTINE G(IGAMS,IWRK,NADC,NCellsInY)
!       INTEGER*2 IGAMS(2,NADC)
        in = 1
        do while (in.le.nadc.and.IGAMS(2,in).le.in)
        enddo
--- 1,6 ----
  c { dg-do compile }
        SUBROUTINE G(IGAMS,IWRK,NADC,NCellsInY)
!       INTEGER(kind=2) IGAMS(2,NADC)
        in = 1
        do while (in.le.nadc.and.IGAMS(2,in).le.in)
        enddo
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990905-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990905-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990905-1.f	Thu Aug 19 15:04:37 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990905-1.f	Fri Jan 27 22:16:04 2006
*************** c  Invalid declaration of or reference t
*** 12,19 ****
  * =foo7.f in Burley's g77 test suite.
        subroutine x
        real a(n)
!       common /foo/n
        continue
        entry y(a)
!       call foo(a(1))
        end
--- 12,19 ----
  * =foo7.f in Burley's g77 test suite.
        subroutine x
        real a(n)
!       common /foo/n  ! { dg-error "is already being used as a COMMON" }
        continue
        entry y(a)
!       call foo(a(1)) ! { dg-error "is already being used as a COMMON" }
        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990905-2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990905-2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/19990905-2.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/19990905-2.f	Thu Dec 22 16:29:18 2005
*************** c { dg-do compile }
*** 4,10 ****
  * Too small to worry about copyright issues, IMO, since it
  * doesn't do anything substantive.
        SUBROUTINE OUTDNS(A,B,LCONV)
!       IMPLICIT REAL*8(A-H,O-Z),INTEGER*4(I-N)
        COMMON/ARRAYS/Z(64,8),AB(30,30),PAIRS(9,9),T(9,9),TEMP(9,9),C1(3),
       >  C2(3),AA(30),BB(30)
        EQUIVALENCE (X1,C1(1)),(Y1,C1(2)),(Z1,C1(3))
--- 4,10 ----
  * Too small to worry about copyright issues, IMO, since it
  * doesn't do anything substantive.
        SUBROUTINE OUTDNS(A,B,LCONV)
!       IMPLICIT REAL(kind=8) (A-H,O-Z),INTEGER(I-N)
        COMMON/ARRAYS/Z(64,8),AB(30,30),PAIRS(9,9),T(9,9),TEMP(9,9),C1(3),
       >  C2(3),AA(30),BB(30)
        EQUIVALENCE (X1,C1(1)),(Y1,C1(2)),(Z1,C1(3))
*************** c { dg-do compile }
*** 13,19 ****
       >  SHIFT,CONV,SCION,DIVERG,
       >  IOPT,KCNDO,KINDO,KMINDO,I2EINT,KOHNO,KSLATE,
       >  N,NG,NUMAT,NSEK,NELECS,NIT,OCCA,OCCB,NOLDAT,NOLDFN
!       INTEGER*4 OCCA,OCCB
        DIMENSION W(N),A(N,N),B(N,N)
        DIMENSION BUF(100)
        occb=5
--- 13,19 ----
       >  SHIFT,CONV,SCION,DIVERG,
       >  IOPT,KCNDO,KINDO,KMINDO,I2EINT,KOHNO,KSLATE,
       >  N,NG,NUMAT,NSEK,NELECS,NIT,OCCA,OCCB,NOLDAT,NOLDFN
!       INTEGER OCCA,OCCB
        DIMENSION W(N),A(N,N),B(N,N)
        DIMENSION BUF(100)
        occb=5
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20000629-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20000629-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20000629-1.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20000629-1.f	Thu Dec 22 16:29:18 2005
***************
*** 1,6 ****
  c { dg-do compile }
        SUBROUTINE MIST(N, BETA)
!       IMPLICIT REAL*8 (A-H,O-Z)
        INTEGER  IA, IQ, M1
        DIMENSION BETA(N)
        DO 80 IQ=1,M1
--- 1,6 ----
  c { dg-do compile }
        SUBROUTINE MIST(N, BETA)
!       IMPLICIT REAL(kind=8) (A-H,O-Z)
        INTEGER  IA, IQ, M1
        DIMENSION BETA(N)
        DO 80 IQ=1,M1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20010216-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20010216-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20010216-1.f	Thu Jul  8 23:43:13 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20010216-1.f	Mon Dec 12 22:37:46 2005
***************
*** 1,7 ****
  C Test for bug in reg-stack handling conditional moves.
  C Reported by Tim Prince <tprince@computer.org>
  C
! C { dg-do run { target "i[6789]86-*-*" } }
  C { dg-options "-ffast-math -march=pentiumpro" }
  
        double precision function foo(x, y)
--- 1,7 ----
  C Test for bug in reg-stack handling conditional moves.
  C Reported by Tim Prince <tprince@computer.org>
  C
! C { dg-do run { target { { i[6789]86-*-* x86_64-*-* } && ilp32 } } }
  C { dg-options "-ffast-math -march=pentiumpro" }
  
        double precision function foo(x, y)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20010426.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20010426.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20010426.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20010426.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  c { dg-do compile }
        function f(c)
        implicit none
!       real*8 c, f
        f = sqrt(c)
        return
        end
--- 1,7 ----
  c { dg-do compile }
        function f(c)
        implicit none
!       real(kind=8) c, f
        f = sqrt(c)
        return
        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20010519-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20010519-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20010519-1.f	Tue Jul 13 07:08:22 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20010519-1.f	Thu Dec 22 16:29:18 2005
*************** C..##ENDIF
*** 237,243 ****
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
  C:::##INCLUDE '~/charmm_fcm/number.fcm'
!       REAL*8     ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX,
       &           SEVEN, EIGHT, NINE, TEN, ELEVEN, TWELVE, THIRTN,
       &           FIFTN, NINETN, TWENTY, THIRTY
  C..##IF SINGLE
--- 237,243 ----
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
  C:::##INCLUDE '~/charmm_fcm/number.fcm'
!       REAL(KIND=8)     ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX,
       &           SEVEN, EIGHT, NINE, TEN, ELEVEN, TWELVE, THIRTN,
       &           FIFTN, NINETN, TWENTY, THIRTY
  C..##IF SINGLE
*************** C..##ELSE
*** 249,255 ****
       &           TWELVE = 12.D0, THIRTN = 13.D0, FIFTN  = 15.D0,
       &           NINETN = 19.D0, TWENTY = 20.D0, THIRTY = 30.D0)
  C..##ENDIF
!       REAL*8     FIFTY, SIXTY, SVNTY2, EIGHTY, NINETY, HUNDRD,
       &           ONE2TY, ONE8TY, THRHUN, THR6TY, NINE99, FIFHUN, THOSND,
       &           FTHSND,MEGA
  C..##IF SINGLE
--- 249,255 ----
       &           TWELVE = 12.D0, THIRTN = 13.D0, FIFTN  = 15.D0,
       &           NINETN = 19.D0, TWENTY = 20.D0, THIRTY = 30.D0)
  C..##ENDIF
!       REAL(KIND=8)     FIFTY, SIXTY, SVNTY2, EIGHTY, NINETY, HUNDRD,
       &           ONE2TY, ONE8TY, THRHUN, THR6TY, NINE99, FIFHUN, THOSND,
       &           FTHSND,MEGA
  C..##IF SINGLE
*************** C..##ELSE
*** 260,268 ****
       &           THR6TY=360.D0,   NINE99 = 999.D0,  FIFHUN = 1500.D0,
       &           THOSND = 1000.D0,FTHSND = 5000.D0, MEGA   =   1.0D6)
  C..##ENDIF
!       REAL*8     MINONE, MINTWO, MINSIX
        PARAMETER (MINONE = -1.D0,  MINTWO = -2.D0,  MINSIX = -6.D0)
!       REAL*8     TENM20,TENM14,TENM8,TENM5,PT0001,PT0005,PT001,PT005,
       &           PT01, PT02, PT05, PTONE, PT125, PT25, SIXTH, THIRD,
       &           PTFOUR, PTSIX, HALF, PT75, PT9999, ONEPT5, TWOPT4
  C..##IF SINGLE
--- 260,268 ----
       &           THR6TY=360.D0,   NINE99 = 999.D0,  FIFHUN = 1500.D0,
       &           THOSND = 1000.D0,FTHSND = 5000.D0, MEGA   =   1.0D6)
  C..##ENDIF
!       REAL(KIND=8)     MINONE, MINTWO, MINSIX
        PARAMETER (MINONE = -1.D0,  MINTWO = -2.D0,  MINSIX = -6.D0)
!       REAL(KIND=8) TENM20,TENM14,TENM8,TENM5,PT0001,PT0005,PT001,PT005,
       &           PT01, PT02, PT05, PTONE, PT125, PT25, SIXTH, THIRD,
       &           PTFOUR, PTSIX, HALF, PT75, PT9999, ONEPT5, TWOPT4
  C..##IF SINGLE
*************** C..##ELSE
*** 276,289 ****
       &           PTSIX  = 0.6D0,    PT75   = 0.75D0, PT9999 = 0.9999D0,
       &           ONEPT5 = 1.5D0,    TWOPT4 = 2.4D0)
  C..##ENDIF
!       REAL*8 ANUM,FMARK
!       REAL*8 RSMALL,RBIG
  C..##IF SINGLE
  C..##ELSE
        PARAMETER (ANUM=9999.0D0, FMARK=-999.0D0)
        PARAMETER (RSMALL=1.0D-10,RBIG=1.0D20)
  C..##ENDIF
!       REAL*8 RPRECI,RBIGST
  C..##IF VAX DEC
  C..##ELIF IBM
  C..##ELIF CRAY
--- 276,289 ----
       &           PTSIX  = 0.6D0,    PT75   = 0.75D0, PT9999 = 0.9999D0,
       &           ONEPT5 = 1.5D0,    TWOPT4 = 2.4D0)
  C..##ENDIF
!       REAL(KIND=8) ANUM,FMARK
!       REAL(KIND=8) RSMALL,RBIG
  C..##IF SINGLE
  C..##ELSE
        PARAMETER (ANUM=9999.0D0, FMARK=-999.0D0)
        PARAMETER (RSMALL=1.0D-10,RBIG=1.0D20)
  C..##ENDIF
!       REAL(KIND=8) RPRECI,RBIGST
  C..##IF VAX DEC
  C..##ELIF IBM
  C..##ELIF CRAY
*************** C..##ENDIF
*** 297,337 ****
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
  C:::##INCLUDE '~/charmm_fcm/consta.fcm'
!       REAL*8 PI,RADDEG,DEGRAD,TWOPI
        PARAMETER(PI=3.141592653589793D0,TWOPI=2.0D0*PI)
        PARAMETER (RADDEG=180.0D0/PI)
        PARAMETER (DEGRAD=PI/180.0D0)
!       REAL*8 COSMAX
        PARAMETER (COSMAX=0.9999999999D0)
!       REAL*8 TIMFAC
        PARAMETER (TIMFAC=4.88882129D-02)
!       REAL*8 KBOLTZ
        PARAMETER (KBOLTZ=1.987191D-03)
!       REAL*8 CCELEC
  C..##IF AMBER
  C..##ELIF DISCOVER
  C..##ELSE
        PARAMETER (CCELEC=332.0716D0)
  C..##ENDIF
!       REAL*8 CNVFRQ
        PARAMETER (CNVFRQ=2045.5D0/(2.99793D0*6.28319D0))
!       REAL*8 SPEEDL
        PARAMETER (SPEEDL=2.99793D-02)
!       REAL*8 ATMOSP
        PARAMETER (ATMOSP=1.4584007D-05)
!       REAL*8 PATMOS
        PARAMETER (PATMOS = 1.D0 / ATMOSP )
!       REAL*8 BOHRR
        PARAMETER (BOHRR = 0.529177249D0 )
!       REAL*8 TOKCAL
        PARAMETER (TOKCAL = 627.5095D0 )
  C..##IF MMFF
!       real*8 MDAKCAL
        parameter(MDAKCAL=143.9325D0)
  C..##ENDIF
!       REAL*8 DEBYEC
        PARAMETER ( DEBYEC = 2.541766D0 / BOHRR )
!       REAL*8 ZEROC
        PARAMETER ( ZEROC = 298.15D0 )
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
--- 297,337 ----
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
  C:::##INCLUDE '~/charmm_fcm/consta.fcm'
!       REAL(KIND=8) PI,RADDEG,DEGRAD,TWOPI
        PARAMETER(PI=3.141592653589793D0,TWOPI=2.0D0*PI)
        PARAMETER (RADDEG=180.0D0/PI)
        PARAMETER (DEGRAD=PI/180.0D0)
!       REAL(KIND=8) COSMAX
        PARAMETER (COSMAX=0.9999999999D0)
!       REAL(KIND=8) TIMFAC
        PARAMETER (TIMFAC=4.88882129D-02)
!       REAL(KIND=8) KBOLTZ
        PARAMETER (KBOLTZ=1.987191D-03)
!       REAL(KIND=8) CCELEC
  C..##IF AMBER
  C..##ELIF DISCOVER
  C..##ELSE
        PARAMETER (CCELEC=332.0716D0)
  C..##ENDIF
!       REAL(KIND=8) CNVFRQ
        PARAMETER (CNVFRQ=2045.5D0/(2.99793D0*6.28319D0))
!       REAL(KIND=8) SPEEDL
        PARAMETER (SPEEDL=2.99793D-02)
!       REAL(KIND=8) ATMOSP
        PARAMETER (ATMOSP=1.4584007D-05)
!       REAL(KIND=8) PATMOS
        PARAMETER (PATMOS = 1.D0 / ATMOSP )
!       REAL(KIND=8) BOHRR
        PARAMETER (BOHRR = 0.529177249D0 )
!       REAL(KIND=8) TOKCAL
        PARAMETER (TOKCAL = 627.5095D0 )
  C..##IF MMFF
!       REAL(KIND=8) MDAKCAL
        parameter(MDAKCAL=143.9325D0)
  C..##ENDIF
!       REAL(KIND=8) DEBYEC
        PARAMETER ( DEBYEC = 2.541766D0 / BOHRR )
!       REAL(KIND=8) ZEROC
        PARAMETER ( ZEROC = 298.15D0 )
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
*************** C..##ENDIF
*** 357,363 ****
        LOGICAL     CHKPTR, EQST, EQSTA, EQSTWC, EQWDWC, DOTRIM, CHECQUE,
       *            HYDROG, INITIA, LONE, LTSTEQ, ORDER, ORDER5,
       *            ORDERR, USEDDT, QTOKDEL, QDIGIT, QALPHA
!       REAL*8      DECODF, DOTVEC, GTRMF, LENVEC, NEXTF, RANDOM, GTRR8,
       *            RANUMB, R8VAL, RETVAL8, SUMVEC
  C..##IF ADUMB
       *           ,UMFI
--- 357,363 ----
        LOGICAL     CHKPTR, EQST, EQSTA, EQSTWC, EQWDWC, DOTRIM, CHECQUE,
       *            HYDROG, INITIA, LONE, LTSTEQ, ORDER, ORDER5,
       *            ORDERR, USEDDT, QTOKDEL, QDIGIT, QALPHA
!       REAL(KIND=8)      DECODF, DOTVEC, GTRMF, LENVEC, NEXTF, RANDOM, GTRR8,
       *            RANUMB, R8VAL, RETVAL8, SUMVEC
  C..##IF ADUMB
       *           ,UMFI
*************** C..##IF MMFF
*** 403,409 ****
        external LEQUIV, LPATH
        external nbndx, nbnd2, nbnd3, NTERMA
        external find_loc
!       real*8   vangle, OOPNGL, TORNGL, ElementMass
        external vangle, OOPNGL, TORNGL, ElementMass
  C..##ENDIF
  C-----------------------------------------------------------------------
--- 403,409 ----
        external LEQUIV, LPATH
        external nbndx, nbnd2, nbnd3, NTERMA
        external find_loc
!       REAL(KIND=8)   vangle, OOPNGL, TORNGL, ElementMass
        external vangle, OOPNGL, TORNGL, ElementMass
  C..##ENDIF
  C-----------------------------------------------------------------------
*************** C..##ENDIF
*** 468,474 ****
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
  C:::##INCLUDE '~/charmm_fcm/deriv.fcm'
!       REAL*8 DX,DY,DZ
        COMMON /DERIVR/ DX(MAXAIM),DY(MAXAIM),DZ(MAXAIM)
  C..##IF SAVEFCM
  C..##ENDIF
--- 468,474 ----
  C-----------------------------------------------------------------------
  C-----------------------------------------------------------------------
  C:::##INCLUDE '~/charmm_fcm/deriv.fcm'
!       REAL(KIND=8) DX,DY,DZ
        COMMON /DERIVR/ DX(MAXAIM),DY(MAXAIM),DZ(MAXAIM)
  C..##IF SAVEFCM
  C..##ENDIF
*************** C..##ENDIF
*** 580,590 ****
        COMMON /ANER/ CEPROP(LENENP), CETERM(LENENT), CEPRSS(LENENV)
        LOGICAL  QEPROP, QETERM, QEPRSS
        COMMON /QENER/ QEPROP(LENENP), QETERM(LENENT), QEPRSS(LENENV)
!       REAL*8   EPROP, ETERM, EPRESS
        COMMON /ENER/ EPROP(LENENP), ETERM(LENENT), EPRESS(LENENV)
  C..##IF SAVEFCM
  C..##ENDIF
!       REAL*8   EPRPA, EPRP2A, EPRPP, EPRP2P,
       &         ETRMA, ETRM2A, ETRMP, ETRM2P,
       &         EPRSA, EPRS2A, EPRSP, EPRS2P
        COMMON /ENACCM/ EPRPA(LENENP), ETRMA(LENENT), EPRSA(LENENV),
--- 580,590 ----
        COMMON /ANER/ CEPROP(LENENP), CETERM(LENENT), CEPRSS(LENENV)
        LOGICAL  QEPROP, QETERM, QEPRSS
        COMMON /QENER/ QEPROP(LENENP), QETERM(LENENT), QEPRSS(LENENV)
!       REAL(KIND=8)   EPROP, ETERM, EPRESS
        COMMON /ENER/ EPROP(LENENP), ETERM(LENENT), EPRESS(LENENV)
  C..##IF SAVEFCM
  C..##ENDIF
!       REAL(KIND=8)   EPRPA, EPRP2A, EPRPP, EPRP2P,
       &         ETRMA, ETRM2A, ETRMP, ETRM2P,
       &         EPRSA, EPRS2A, EPRSP, EPRS2P
        COMMON /ENACCM/ EPRPA(LENENP), ETRMA(LENENT), EPRSA(LENENV),
*************** C..##IF SAVEFCM
*** 595,601 ****
  C..##ENDIF
        INTEGER  ECALLS, TOT1ST, TOT2ND
        COMMON /EMISCI/ ECALLS, TOT1ST, TOT2ND
!       REAL*8   EOLD, FITA, DRIFTA, EAT0A, CORRA, FITP, DRIFTP,
       &         EAT0P, CORRP
        COMMON /EMISCR/ EOLD, FITA, DRIFTA, EAT0A, CORRA,
       &                     FITP, DRIFTP, EAT0P, CORRP
--- 595,601 ----
  C..##ENDIF
        INTEGER  ECALLS, TOT1ST, TOT2ND
        COMMON /EMISCI/ ECALLS, TOT1ST, TOT2ND
!       REAL(KIND=8)   EOLD, FITA, DRIFTA, EAT0A, CORRA, FITP, DRIFTP,
       &         EAT0P, CORRP
        COMMON /EMISCR/ EOLD, FITA, DRIFTA, EAT0A, CORRA,
       &                     FITP, DRIFTP, EAT0P, CORRP
*************** C..##ENDIF
*** 612,623 ****
  C..##IF FLUCQ
  C..##ENDIF
  C..##IF TSM
!       REAL*8 TSMTRM(LENENT),TSMTMP(LENENT)
        COMMON /TSMENG/ TSMTRM,TSMTMP
  C...##IF SAVEFCM
  C...##ENDIF
  C..##ENDIF
!       REAL*8 EHQBM
        LOGICAL HQBM
        COMMON /HQBMVAR/HQBM
  C..##IF SAVEFCM
--- 612,623 ----
  C..##IF FLUCQ
  C..##ENDIF
  C..##IF TSM
!       REAL(KIND=8) TSMTRM(LENENT),TSMTMP(LENENT)
        COMMON /TSMENG/ TSMTRM,TSMTMP
  C...##IF SAVEFCM
  C...##ENDIF
  C..##ENDIF
!       REAL(KIND=8) EHQBM
        LOGICAL HQBM
        COMMON /HQBMVAR/HQBM
  C..##IF SAVEFCM
*************** C Passed variables
*** 666,677 ****
        INTEGER INBCMP(*),JNBCMP(*),PARDIM
        INTEGER ITMX,IUNMOD,IUNRMD,SAVF
        INTEGER NBOND,IB(*),JB(*)
!       REAL*8 X(*),Y(*),Z(*),AMASS(*),DDSCR(*)
!       REAL*8 DDV(NAT3,*),PARDDV(PARDIM,*),DDM(*),DDS(*)
!       REAL*8 DDF(*),PARDDF(*),DDEV(*),PARDDE(*)
!       REAL*8 DD1BLK(*),DD1BLL(*),DD1CMP(*)
!       REAL*8 TOLDIM,DDVALM
!       REAL*8 PARFRQ,CUTF1
        LOGICAL LNOMA,LRAISE,LSCI,LBIG
  C Local variables
        INTEGER NATOM,NATP,NDIM,I,J,II,OLDFAS,OLDPRN,IUPD
--- 666,677 ----
        INTEGER INBCMP(*),JNBCMP(*),PARDIM
        INTEGER ITMX,IUNMOD,IUNRMD,SAVF
        INTEGER NBOND,IB(*),JB(*)
!       REAL(KIND=8) X(*),Y(*),Z(*),AMASS(*),DDSCR(*)
!       REAL(KIND=8) DDV(NAT3,*),PARDDV(PARDIM,*),DDM(*),DDS(*)
!       REAL(KIND=8) DDF(*),PARDDF(*),DDEV(*),PARDDE(*)
!       REAL(KIND=8) DD1BLK(*),DD1BLL(*),DD1CMP(*)
!       REAL(KIND=8) TOLDIM,DDVALM
!       REAL(KIND=8) PARFRQ,CUTF1
        LOGICAL LNOMA,LRAISE,LSCI,LBIG
  C Local variables
        INTEGER NATOM,NATP,NDIM,I,J,II,OLDFAS,OLDPRN,IUPD
*************** C Local variables
*** 687,693 ****
        INTEGER SCIFV1,SCIFV2,SCIFV3,SCIFV4,SCIFV6
        INTEGER DRATQ,ERATQ,E2RATQ,BDRATQ,INRATQ
        INTEGER I620,I640,I660,I700,I720,I760,I800,I840,I880,I920
!       REAL*8 CVGMX,TOLER
        LOGICAL LCARD,LAPPE,LPURG,LWDINI,QCALC,QMASWT,QMIX,QDIAG
  C Begin
        QCALC=.TRUE.
--- 687,693 ----
        INTEGER SCIFV1,SCIFV2,SCIFV3,SCIFV4,SCIFV6
        INTEGER DRATQ,ERATQ,E2RATQ,BDRATQ,INRATQ
        INTEGER I620,I640,I660,I700,I720,I760,I800,I840,I880,I920
!       REAL(KIND=8) CVGMX,TOLER
        LOGICAL LCARD,LAPPE,LPURG,LWDINI,QCALC,QMASWT,QMIX,QDIAG
  C Begin
        QCALC=.TRUE.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20020307-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20020307-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20020307-1.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20020307-1.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  c { dg-do compile }
        SUBROUTINE SWEEP
        PARAMETER(MAXDIM=4,MAXVEC=4**3*8,MAXT=20)
!       REAL*8 B,W1,W2,BNORM,BINV,WT,W0,C1,C2,R1,R2
        DIMENSION B(MAXVEC,0:3),W1(MAXVEC,0:3),W2(MAXVEC,0:3)
        DIMENSION BNORM(MAXVEC),BINV(MAXVEC),WT(MAXVEC),W0(MAXVEC)
        DIMENSION C1(MAXVEC),C2(MAXVEC),R1(MAXVEC),R2(MAXVEC)
--- 1,7 ----
  c { dg-do compile }
        SUBROUTINE SWEEP
        PARAMETER(MAXDIM=4,MAXVEC=4**3*8,MAXT=20)
!       REAL(KIND=8) B,W1,W2,BNORM,BINV,WT,W0,C1,C2,R1,R2
        DIMENSION B(MAXVEC,0:3),W1(MAXVEC,0:3),W2(MAXVEC,0:3)
        DIMENSION BNORM(MAXVEC),BINV(MAXVEC),WT(MAXVEC),W0(MAXVEC)
        DIMENSION C1(MAXVEC),C2(MAXVEC),R1(MAXVEC),R2(MAXVEC)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20030326-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20030326-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/20030326-1.f	Fri Oct 29 04:41:49 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/20030326-1.f	Sat Mar 26 18:37:15 2005
***************
*** 1,15 ****
! C { dg-do compile }
! C      PR fortran/9793
! C      larson@w6yx.stanford.edu
! C
!        integer a, b, c
! 
!        c = -2147483648 / -1 ! { dg-warning "outside symmetric range" "" }
! 
!        a = 1
!        b = 0
!        c = a / b
! 
!        print *, c
! 
         end
--- 1,10 ----
! ! { dg-do compile }
! ! { dg-options -pedantic }
! !      PR fortran/9793
! !      larson@w6yx.stanford.edu
! !
! ! For gfortran, see PR 13490
! !
!        integer c
!        c = -2147483648 / (-1) ! { dg-warning "outside symmetric range" "" }
         end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/8485.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/8485.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/8485.f	Mon Jul 12 12:49:11 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/8485.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  c { dg-do compile }
  C      Extracted from PR fortran/8485
         PARAMETER (PPMULT = 1.0E5)
!        INTEGER*8 NWRONG
         PARAMETER (NWRONG = 8)
         PARAMETER (DDMULT = PPMULT * NWRONG)
         PRINT 10, DDMULT
--- 1,7 ----
  c { dg-do compile }
  C      Extracted from PR fortran/8485
         PARAMETER (PPMULT = 1.0E5)
!        INTEGER(kind=8) NWRONG
         PARAMETER (NWRONG = 8)
         PARAMETER (DDMULT = PPMULT * NWRONG)
         PRINT 10, DDMULT
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/947.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/947.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/947.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/947.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  c { dg-do run }
        DIMENSION A(-5:5)
!       INTEGER*1 IM5, IZ, IP5
!       INTEGER*2 IM1, IP1
        PARAMETER (IM5=-5, IM1=-1, IZ=0, IP1=1, IP5=5)
        DATA A(IM5) /-5./, A(IM1) /-1./
        DATA A(IZ)  /0./
--- 1,7 ----
  c { dg-do run }
        DIMENSION A(-5:5)
!       INTEGER(kind=1) IM5, IZ, IP5
!       INTEGER(kind=2) IM1, IP1
        PARAMETER (IM5=-5, IM1=-1, IZ=0, IP1=1, IP5=5)
        DATA A(IM5) /-5./, A(IM1) /-1./
        DATA A(IZ)  /0./
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/970125-0.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/970125-0.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/970125-0.f	Tue Jul 13 07:08:22 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/970125-0.f	Thu Dec 22 16:29:18 2005
*************** C ../../egcs/gcc/expr.c:7291: Internal c
*** 26,34 ****
  
  c     Frontend bug fixed by JCB 1998-06-01 com.c &c changes.
  
!         integer*4 i4
!         integer*8 i8
!         integer*8 max4
          data max4/2147483647/
          i4 = %loc(i4)
          i8 = %loc(i8)
--- 26,34 ----
  
  c     Frontend bug fixed by JCB 1998-06-01 com.c &c changes.
  
!         integer i4
!         integer(kind=8) i8
!         integer(kind=8) max4
          data max4/2147483647/
          i4 = %loc(i4)
          i8 = %loc(i8)
*************** c     Frontend bug fixed by JCB 1998-06-
*** 39,45 ****
          end
          subroutine foo(i4, i4a, i8, i8a)
          integer(kind=7) i4a, i8a
!         integer*8 i8
          print *, i4, i4a
          print *, i8, i8a
          end
--- 39,45 ----
          end
          subroutine foo(i4, i4a, i8, i8a)
          integer(kind=7) i4a, i8a
!         integer(kind=8) i8
          print *, i4, i4a
          print *, i8, i8a
          end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980616-0.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980616-0.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980616-0.f	Tue Jul 13 13:27:52 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980616-0.f	Mon Dec 26 09:07:27 2005
*************** c { dg-do compile }
*** 5,10 ****
  * Date: Mon, 15 Jun 1998 21:54:32 -0500
  * From: Ian A Watson <WATSON_IAN_A@lilly.com>
  * Subject: Mangler Crash
!       EQUIVALENCE(I,glerf(P)) ! { dg-error "cannot appear"  "cannot appear" }
        COMMON /foo/ glerf(3)
  c { dg-error "end of file" "end of file" { target *-*-* } 0 }
--- 5,10 ----
  * Date: Mon, 15 Jun 1998 21:54:32 -0500
  * From: Ian A Watson <WATSON_IAN_A@lilly.com>
  * Subject: Mangler Crash
!       EQUIVALENCE(I,glerf(P)) ! { dg-error "is a variable"  "is a variable" }
        COMMON /foo/ glerf(3)
  c { dg-error "end of file" "end of file" { target *-*-* } 0 }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-10.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-10.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-10.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-10.f	Sat Oct  1 07:39:08 2005
***************
*** 1,4 ****
--- 1,5 ----
  c { dg-do run }
+ c { dg-options "-std=gnu" }
  * g77 0.5.23 and previous had bugs involving too little space
  * allocated for EQUIVALENCE and COMMON areas needing initial
  * padding to meet alignment requirements of the system.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-2.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-2.f	Sat Oct  1 07:39:08 2005
***************
*** 1,4 ****
--- 1,5 ----
  c { dg-do run }
+ c { dg-options "-std=gnu" }
  * g77 0.5.23 and previous had bugs involving too little space
  * allocated for EQUIVALENCE and COMMON areas needing initial
  * padding to meet alignment requirements of the system.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-3.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-3.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-3.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-3.f	Sat Oct  1 07:39:08 2005
***************
*** 1,4 ****
--- 1,6 ----
  c { dg-do run }
+ c { dg-options "-std=gnu" }
+ c
  * g77 0.5.23 and previous had bugs involving too little space
  * allocated for EQUIVALENCE and COMMON areas needing initial
  * padding to meet alignment requirements of the system.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-9.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-9.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/980628-9.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/980628-9.f	Sat Oct  1 07:39:08 2005
***************
*** 1,4 ****
--- 1,5 ----
  c { dg-do run }
+ c { dg-options "-std=gnu" }
  * g77 0.5.23 and previous had bugs involving too little space
  * allocated for EQUIVALENCE and COMMON areas needing initial
  * padding to meet alignment requirements of the system.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/990115-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/990115-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/990115-1.f	Tue Jul 13 07:08:22 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/990115-1.f	Thu Dec 22 16:29:18 2005
*************** c { dg-do compile }
*** 2,8 ****
  C Derived from lapack
        SUBROUTINE ZGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK,
       $                   WORK, RWORK, INFO )
!       COMPLEX*16         WORK( * )
  c     Following declaration added on transfer to gfortran testsuite.
  c     It is present in original lapack source
        integer rank
--- 2,8 ----
  C Derived from lapack
        SUBROUTINE ZGELSX( M, N, NRHS, A, LDA, B, LDB, JPVT, RCOND, RANK,
       $                   WORK, RWORK, INFO )
!       COMPLEX(kind=8)         WORK( * )
  c     Following declaration added on transfer to gfortran testsuite.
  c     It is present in original lapack source
        integer rank
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/alpha1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/alpha1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/alpha1.f	Mon Mar  7 05:36:50 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/alpha1.f	Thu Dec 22 16:29:18 2005
***************
*** 1,6 ****
  c { dg-do compile }
!       REAL*8 A,B,C
!       REAL*4 RARRAY(19)
        DATA RARRAY /19*-1/
        INTEGER BOTTOM,RIGHT
        INTEGER IARRAY(19)
--- 1,6 ----
  c { dg-do compile }
!       REAL(kind=8) A,B,C
!       REAL(kind=4) RARRAY(19)
        DATA RARRAY /19*-1/
        INTEGER BOTTOM,RIGHT
        INTEGER IARRAY(19)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/cabs.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/cabs.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/cabs.f	Mon Aug  2 06:00:55 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/cabs.f	Thu Dec 22 16:29:18 2005
*************** c { dg-do run { xfail mips-sgi-irix6* } 
*** 2,9 ****
        program cabs_1
        complex      z0
        real         r0
!       complex*16   z1
!       real*8       r1
  
        z0 = cmplx(3.,4.)
        r0 = cabs(z0)
--- 2,9 ----
        program cabs_1
        complex      z0
        real         r0
!       complex(kind=8)   z1
!       real(kind=8)       r1
  
        z0 = cmplx(3.,4.)
        r0 = cabs(z0)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/dcomplex.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/dcomplex.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/dcomplex.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/dcomplex.f	Thu Dec 22 16:29:18 2005
***************
*** 1,6 ****
  c { dg-do run }
        program foo
!       complex*16      z0, z1, z2
  
        z0 = dcmplx(0.,.5)
        z1 = 1./z0
--- 1,6 ----
  c { dg-do run }
        program foo
!       complex(kind=8)      z0, z1, z2
  
        z0 = dcmplx(0.,.5)
        z1 = 1./z0
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/erfc.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/erfc.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/erfc.f	Mon Mar  7 05:36:50 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/erfc.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  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
--- 1,7 ----
  c { dg-do run }
  c============================================== test.f
        real x, y
!       real(kind=8) x1, y1
        x=0.
        y = erfc(x)
        if (y .ne. 1.) call abort
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-bit.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-bit.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-bit.f	Mon Dec 27 16:43:25 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-bit.f	Thu Dec 22 16:29:18 2005
*************** c  * third argument of ISHFTC is not opt
*** 12,20 ****
  
        logical fail
        integer   i, i2, ia, i3
!       integer*2 j, j2, j3, ja
!       integer*1 k, k2, k3, ka
!       integer*8 m, m2, m3, ma
  
        common /flags/ fail
        fail = .false.
--- 12,20 ----
  
        logical fail
        integer   i, i2, ia, i3
!       integer(kind=2) j, j2, j3, ja
!       integer(kind=1) k, k2, k3, ka
!       integer(kind=8) m, m2, m3, ma
  
        common /flags/ fail
        fail = .false.
*************** c     Determine BIT_SIZE by counting the
*** 36,42 ****
           ja = ja + 1
           j = ishft(j,-1)
        end do
!       call c_i2(BIT_SIZE(j),ja,'BIT_SIZE(integer*2)')
        ka = 0
        k = 0
        k = not(k)
--- 36,42 ----
           ja = ja + 1
           j = ishft(j,-1)
        end do
!       call c_i2(BIT_SIZE(j),ja,'BIT_SIZE(integer(2))')
        ka = 0
        k = 0
        k = not(k)
*************** c     Determine BIT_SIZE by counting the
*** 44,50 ****
           ka = ka + 1
           k = ishft(k,-1)
        end do
!       call c_i1(BIT_SIZE(k),ka,'BIT_SIZE(integer*1)')
        ma = 0
        m = 0
        m = not(m)
--- 44,50 ----
           ka = ka + 1
           k = ishft(k,-1)
        end do
!       call c_i1(BIT_SIZE(k),ka,'BIT_SIZE(integer(1))')
        ma = 0
        m = 0
        m = not(m)
*************** c     Determine BIT_SIZE by counting the
*** 52,58 ****
           ma = ma + 1
           m = ishft(m,-1)
        end do
!       call c_i8(BIT_SIZE(m),ma,'BIT_SIZE(integer*8)')
  
  c     BTEST  - Section 13.13.17
        j  = 7
--- 52,58 ----
           ma = ma + 1
           m = ishft(m,-1)
        end do
!       call c_i8(BIT_SIZE(m),ma,'BIT_SIZE(integer(8))')
  
  c     BTEST  - Section 13.13.17
        j  = 7
*************** c     BTEST  - Section 13.13.17
*** 62,82 ****
        m  = 7
        m2 = 3
        call c_l(BTEST(7,3),.true.,'BTEST(integer,integer)')
!       call c_l(BTEST(7,j2),.true.,'BTEST(integer,integer*2)')
!       call c_l(BTEST(7,k2),.true.,'BTEST(integer,integer*1)')
!       call c_l(BTEST(7,m2),.true.,'BTEST(integer,integer*8)')
!       call c_l(BTEST(j,3),.true.,'BTEST(integer*2,integer)')
!       call c_l(BTEST(j,j2),.true.,'BTEST(integer*2,integer*2)')
!       call c_l(BTEST(j,k2),.true.,'BTEST(integer*2,integer*1)')
!       call c_l(BTEST(j,m2),.true.,'BTEST(integer*2,integer*8)')
!       call c_l(BTEST(k,3),.true.,'BTEST(integer*1,integer)')
!       call c_l(BTEST(k,j2),.true.,'BTEST(integer*1,integer*2)')
!       call c_l(BTEST(k,k2),.true.,'BTEST(integer*1,integer*1)')
!       call c_l(BTEST(k,m2),.true.,'BTEST(integer*1,integer*8)')
!       call c_l(BTEST(m,3),.true.,'BTEST(integer*8,integer)')
!       call c_l(BTEST(m,j2),.true.,'BTEST(integer*8,integer*2)')
!       call c_l(BTEST(m,k2),.true.,'BTEST(integer*8,integer*1)')
!       call c_l(BTEST(m,m2),.true.,'BTEST(integer*8,integer*8)')
   
  c     IAND   - Section 13.13.40
        j  = 3
--- 62,82 ----
        m  = 7
        m2 = 3
        call c_l(BTEST(7,3),.true.,'BTEST(integer,integer)')
!       call c_l(BTEST(7,j2),.true.,'BTEST(integer,integer(2))')
!       call c_l(BTEST(7,k2),.true.,'BTEST(integer,integer(1))')
!       call c_l(BTEST(7,m2),.true.,'BTEST(integer,integer(8))')
!       call c_l(BTEST(j,3),.true.,'BTEST(integer(2),integer)')
!       call c_l(BTEST(j,j2),.true.,'BTEST(integer(2),integer(2))')
!       call c_l(BTEST(j,k2),.true.,'BTEST(integer(2),integer(1))')
!       call c_l(BTEST(j,m2),.true.,'BTEST(integer(2),integer(8))')
!       call c_l(BTEST(k,3),.true.,'BTEST(integer(1),integer)')
!       call c_l(BTEST(k,j2),.true.,'BTEST(integer(1),integer(2))')
!       call c_l(BTEST(k,k2),.true.,'BTEST(integer(1),integer(1))')
!       call c_l(BTEST(k,m2),.true.,'BTEST(integer(1),integer(8))')
!       call c_l(BTEST(m,3),.true.,'BTEST(integer(8),integer)')
!       call c_l(BTEST(m,j2),.true.,'BTEST(integer(8),integer(2))')
!       call c_l(BTEST(m,k2),.true.,'BTEST(integer(8),integer(1))')
!       call c_l(BTEST(m,m2),.true.,'BTEST(integer(8),integer(8))')
   
  c     IAND   - Section 13.13.40
        j  = 3
*************** c     IAND   - Section 13.13.40
*** 89,97 ****
        m2 = 1
        ma = 1
        call c_i(IAND(3,1),1,'IAND(integer,integer)')
!       call c_i2(IAND(j,j2),ja,'IAND(integer*2,integer*2)')
!       call c_i1(IAND(k,k2),ka,'IAND(integer*1,integer*1)')
!       call c_i8(IAND(m,m2),ma,'IAND(integer*8,integer*8)')
  
  
  c     IBCLR  - Section 13.13.41
--- 89,97 ----
        m2 = 1
        ma = 1
        call c_i(IAND(3,1),1,'IAND(integer,integer)')
!       call c_i2(IAND(j,j2),ja,'IAND(integer(2),integer(2)')
!       call c_i1(IAND(k,k2),ka,'IAND(integer(1),integer(1))')
!       call c_i8(IAND(m,m2),ma,'IAND(integer(8),integer(8))')
  
  
  c     IBCLR  - Section 13.13.41
*************** c     IBCLR  - Section 13.13.41
*** 105,125 ****
        m2 = 1
        ma = 12
        call c_i(IBCLR(14,1),12,'IBCLR(integer,integer)')
!       call c_i(IBCLR(14,j2),12,'IBCLR(integer,integer*2)')
!       call c_i(IBCLR(14,k2),12,'IBCLR(integer,integer*1)')
!       call c_i(IBCLR(14,m2),12,'IBCLR(integer,integer*8)')
!       call c_i2(IBCLR(j,1),ja,'IBCLR(integer*2,integer)')
!       call c_i2(IBCLR(j,j2),ja,'IBCLR(integer*2,integer*2)')
!       call c_i2(IBCLR(j,k2),ja,'IBCLR(integer*2,integer*1)')
!       call c_i2(IBCLR(j,m2),ja,'IBCLR(integer*2,integer*8)')
!       call c_i1(IBCLR(k,1),ka,'IBCLR(integer*1,integer)')
!       call c_i1(IBCLR(k,j2),ka,'IBCLR(integer*1,integer*2)')
!       call c_i1(IBCLR(k,k2),ka,'IBCLR(integer*1,integer*1)')
!       call c_i1(IBCLR(k,m2),ka,'IBCLR(integer*1,integer*8)')
!       call c_i8(IBCLR(m,1),ma,'IBCLR(integer*8,integer)')
!       call c_i8(IBCLR(m,j2),ma,'IBCLR(integer*8,integer*2)')
!       call c_i8(IBCLR(m,k2),ma,'IBCLR(integer*8,integer*1)')
!       call c_i8(IBCLR(m,m2),ma,'IBCLR(integer*8,integer*8)')
  
  c     IBSET  - Section 13.13.43
        j  = 12
--- 105,125 ----
        m2 = 1
        ma = 12
        call c_i(IBCLR(14,1),12,'IBCLR(integer,integer)')
!       call c_i(IBCLR(14,j2),12,'IBCLR(integer,integer(2))')
!       call c_i(IBCLR(14,k2),12,'IBCLR(integer,integer(1))')
!       call c_i(IBCLR(14,m2),12,'IBCLR(integer,integer(8))')
!       call c_i2(IBCLR(j,1),ja,'IBCLR(integer(2),integer)')
!       call c_i2(IBCLR(j,j2),ja,'IBCLR(integer(2),integer(2))')
!       call c_i2(IBCLR(j,k2),ja,'IBCLR(integer(2),integer(1))')
!       call c_i2(IBCLR(j,m2),ja,'IBCLR(integer(2),integer(8))')
!       call c_i1(IBCLR(k,1),ka,'IBCLR(integer(1),integer)')
!       call c_i1(IBCLR(k,j2),ka,'IBCLR(integer(1),integer(2))')
!       call c_i1(IBCLR(k,k2),ka,'IBCLR(integer(1),integer(1))')
!       call c_i1(IBCLR(k,m2),ka,'IBCLR(integer(1),integer(8))')
!       call c_i8(IBCLR(m,1),ma,'IBCLR(integer(8),integer)')
!       call c_i8(IBCLR(m,j2),ma,'IBCLR(integer(8),integer(2))')
!       call c_i8(IBCLR(m,k2),ma,'IBCLR(integer(8),integer(1))')
!       call c_i8(IBCLR(m,m2),ma,'IBCLR(integer(8),integer(8))')
  
  c     IBSET  - Section 13.13.43
        j  = 12
*************** c     IBSET  - Section 13.13.43
*** 132,152 ****
        m2 = 1
        ma = 14
        call c_i(IBSET(12,1),14,'IBSET(integer,integer)')
!       call c_i(IBSET(12,j2),14,'IBSET(integer,integer*2)')
!       call c_i(IBSET(12,k2),14,'IBSET(integer,integer*1)')
!       call c_i(IBSET(12,m2),14,'IBSET(integer,integer*8)')
!       call c_i2(IBSET(j,1),ja,'IBSET(integer*2,integer)')
!       call c_i2(IBSET(j,j2),ja,'IBSET(integer*2,integer*2)')
!       call c_i2(IBSET(j,k2),ja,'IBSET(integer*2,integer*1)')
!       call c_i2(IBSET(j,m2),ja,'IBSET(integer*2,integer*8)')
!       call c_i1(IBSET(k,1),ka,'IBSET(integer*1,integer)')
!       call c_i1(IBSET(k,j2),ka,'IBSET(integer*1,integer*2)')
!       call c_i1(IBSET(k,k2),ka,'IBSET(integer*1,integer*1)')
!       call c_i1(IBSET(k,m2),ka,'IBSET(integer*1,integer*8)')
!       call c_i8(IBSET(m,1),ma,'IBSET(integer*8,integer)')
!       call c_i8(IBSET(m,j2),ma,'IBSET(integer*8,integer*2)')
!       call c_i8(IBSET(m,k2),ma,'IBSET(integer*8,integer*1)')
!       call c_i8(IBSET(m,m2),ma,'IBSET(integer*8,integer*8)')
  
  c     IEOR   - Section 13.13.45
        j  = 3
--- 132,152 ----
        m2 = 1
        ma = 14
        call c_i(IBSET(12,1),14,'IBSET(integer,integer)')
!       call c_i(IBSET(12,j2),14,'IBSET(integer,integer(2))')
!       call c_i(IBSET(12,k2),14,'IBSET(integer,integer(1))')
!       call c_i(IBSET(12,m2),14,'IBSET(integer,integer(8))')
!       call c_i2(IBSET(j,1),ja,'IBSET(integer(2),integer)')
!       call c_i2(IBSET(j,j2),ja,'IBSET(integer(2),integer(2))')
!       call c_i2(IBSET(j,k2),ja,'IBSET(integer(2),integer(1))')
!       call c_i2(IBSET(j,m2),ja,'IBSET(integer(2),integer(8))')
!       call c_i1(IBSET(k,1),ka,'IBSET(integer(1),integer)')
!       call c_i1(IBSET(k,j2),ka,'IBSET(integer(1),integer(2))')
!       call c_i1(IBSET(k,k2),ka,'IBSET(integer(1),integer(1))')
!       call c_i1(IBSET(k,m2),ka,'IBSET(integer(1),integer(8))')
!       call c_i8(IBSET(m,1),ma,'IBSET(integer(8),integer)')
!       call c_i8(IBSET(m,j2),ma,'IBSET(integer(8),integer(2))')
!       call c_i8(IBSET(m,k2),ma,'IBSET(integer(8),integer(1))')
!       call c_i8(IBSET(m,m2),ma,'IBSET(integer(8),integer(8))')
  
  c     IEOR   - Section 13.13.45
        j  = 3
*************** c     IEOR   - Section 13.13.45
*** 159,167 ****
        m2 = 1
        ma = 2
        call c_i(IEOR(3,1),2,'IEOR(integer,integer)')
!       call c_i2(IEOR(j,j2),ja,'IEOR(integer*2,integer*2)')
!       call c_i1(IEOR(k,k2),ka,'IEOR(integer*1,integer*1)')
!       call c_i8(IEOR(m,m2),ma,'IEOR(integer*8,integer*8)')
  
  c     ISHFT  - Section 13.13.49
        i  = 3
--- 159,167 ----
        m2 = 1
        ma = 2
        call c_i(IEOR(3,1),2,'IEOR(integer,integer)')
!       call c_i2(IEOR(j,j2),ja,'IEOR(integer(2),integer(2))')
!       call c_i1(IEOR(k,k2),ka,'IEOR(integer(1),integer(1))')
!       call c_i8(IEOR(m,m2),ma,'IEOR(integer(8),integer(8))')
  
  c     ISHFT  - Section 13.13.49
        i  = 3
*************** c     ISHFT  - Section 13.13.49
*** 184,207 ****
        call c_i(ISHFT(i,BIT_SIZE(i)),i3,'ISHFT(integer,integer) 2')
        call c_i(ISHFT(i,-BIT_SIZE(i)),i3,'ISHFT(integer,integer) 3')
        call c_i(ISHFT(i,0),i,'ISHFT(integer,integer) 4')
!       call c_i2(ISHFT(j,j2),ja,'ISHFT(integer*2,integer*2)')
        call c_i2(ISHFT(j,BIT_SIZE(j)),j3,
!      $     'ISHFT(integer*2,integer*2) 2')
        call c_i2(ISHFT(j,-BIT_SIZE(j)),j3,
!      $     'ISHFT(integer*2,integer*2) 3')
!       call c_i2(ISHFT(j,0),j,'ISHFT(integer*2,integer*2) 4')
!       call c_i1(ISHFT(k,k2),ka,'ISHFT(integer*1,integer*1)')
        call c_i1(ISHFT(k,BIT_SIZE(k)),k3,
!      $     'ISHFT(integer*1,integer*1) 2')
        call c_i1(ISHFT(k,-BIT_SIZE(k)),k3,
!      $     'ISHFT(integer*1,integer*1) 3')
!       call c_i1(ISHFT(k,0),k,'ISHFT(integer*1,integer*1) 4')
!       call c_i8(ISHFT(m,m2),ma,'ISHFT(integer*8,integer*8)')
        call c_i8(ISHFT(m,BIT_SIZE(m)),m3,
!      $     'ISHFT(integer*8,integer*8) 2')
        call c_i8(ISHFT(m,-BIT_SIZE(m)),m3,
!      $     'ISHFT(integer*8,integer*8) 3')
!       call c_i8(ISHFT(m,0),m,'ISHFT(integer*8,integer*8) 4')
  
  c     ISHFTC - Section 13.13.50
  c     The third argument is not optional in g77
--- 184,207 ----
        call c_i(ISHFT(i,BIT_SIZE(i)),i3,'ISHFT(integer,integer) 2')
        call c_i(ISHFT(i,-BIT_SIZE(i)),i3,'ISHFT(integer,integer) 3')
        call c_i(ISHFT(i,0),i,'ISHFT(integer,integer) 4')
!       call c_i2(ISHFT(j,j2),ja,'ISHFT(integer(2),integer(2))')
        call c_i2(ISHFT(j,BIT_SIZE(j)),j3,
!      $     'ISHFT(integer(2),integer(2)) 2')
        call c_i2(ISHFT(j,-BIT_SIZE(j)),j3,
!      $     'ISHFT(integer(2),integer(2)) 3')
!       call c_i2(ISHFT(j,0),j,'ISHFT(integer(2),integer(2)) 4')
!       call c_i1(ISHFT(k,k2),ka,'ISHFT(integer(1),integer(1))')
        call c_i1(ISHFT(k,BIT_SIZE(k)),k3,
!      $     'ISHFT(integer(1),integer(1)) 2')
        call c_i1(ISHFT(k,-BIT_SIZE(k)),k3,
!      $     'ISHFT(integer(1),integer(1)) 3')
!       call c_i1(ISHFT(k,0),k,'ISHFT(integer(1),integer(1)) 4')
!       call c_i8(ISHFT(m,m2),ma,'ISHFT(integer(8),integer(8))')
        call c_i8(ISHFT(m,BIT_SIZE(m)),m3,
!      $     'ISHFT(integer(8),integer(8)) 2')
        call c_i8(ISHFT(m,-BIT_SIZE(m)),m3,
!      $     'ISHFT(integer(8),integer(8)) 3')
!       call c_i8(ISHFT(m,0),m,'ISHFT(integer(8),integer(8)) 4')
  
  c     ISHFTC - Section 13.13.50
  c     The third argument is not optional in g77
*************** c     The third argument is not optional
*** 222,338 ****
        ma = 5
  c     test all the combinations of arguments
        call c_i(ISHFTC(i,i2,i3),5,'ISHFTC(integer,integer,integer)')
!       call c_i(ISHFTC(i,i2,j3),5,'ISHFTC(integer,integer,integer*2)')
!       call c_i(ISHFTC(i,i2,k3),5,'ISHFTC(integer,integer,integer*1)')
!       call c_i(ISHFTC(i,i2,m3),5,'ISHFTC(integer,integer,integer*8)')
!       call c_i(ISHFTC(i,j2,i3),5,'ISHFTC(integer,integer*2,integer)')
!       call c_i(ISHFTC(i,j2,j3),5,'ISHFTC(integer,integer*2,integer*2)')
!       call c_i(ISHFTC(i,j2,k3),5,'ISHFTC(integer,integer*2,integer*1)')
!       call c_i(ISHFTC(i,j2,m3),5,'ISHFTC(integer,integer*2,integer*8)')
!       call c_i(ISHFTC(i,k2,i3),5,'ISHFTC(integer,integer*1,integer)')
!       call c_i(ISHFTC(i,k2,j3),5,'ISHFTC(integer,integer*1,integer*2)')
!       call c_i(ISHFTC(i,k2,k3),5,'ISHFTC(integer,integer*1,integer*1)')
!       call c_i(ISHFTC(i,k2,m3),5,'ISHFTC(integer,integer*1,integer*8)')
!       call c_i(ISHFTC(i,m2,i3),5,'ISHFTC(integer,integer*8,integer)')
!       call c_i(ISHFTC(i,m2,j3),5,'ISHFTC(integer,integer*8,integer*2)')
!       call c_i(ISHFTC(i,m2,k3),5,'ISHFTC(integer,integer*8,integer*1)')
!       call c_i(ISHFTC(i,m2,m3),5,'ISHFTC(integer,integer*8,integer*8)')
  
!       call c_i2(ISHFTC(j,i2,i3),ja,'ISHFTC(integer*2,integer,integer)')
        call c_i2(ISHFTC(j,i2,j3),ja,
!      $     'ISHFTC(integer*2,integer,integer*2)')
        call c_i2(ISHFTC(j,i2,k3),ja,
!      $     'ISHFTC(integer*2,integer,integer*1)')
        call c_i2(ISHFTC(j,i2,m3),ja,
!      $     'ISHFTC(integer*2,integer,integer*8)')
        call c_i2(ISHFTC(j,j2,i3),ja,
!      $     'ISHFTC(integer*2,integer*2,integer)')
        call c_i2(ISHFTC(j,j2,j3),ja,
!      $     'ISHFTC(integer*2,integer*2,integer*2)')
        call c_i2(ISHFTC(j,j2,k3),ja,
!      $     'ISHFTC(integer*2,integer*2,integer*1)')
        call c_i2(ISHFTC(j,j2,m3),ja,
!      $     'ISHFTC(integer*2,integer*2,integer*8)')
        call c_i2(ISHFTC(j,k2,i3),ja,
!      $     'ISHFTC(integer*2,integer*1,integer)')
        call c_i2(ISHFTC(j,k2,j3),ja,
!      $     'ISHFTC(integer*2,integer*1,integer*2)')
        call c_i2(ISHFTC(j,k2,k3),ja,
!      $     'ISHFTC(integer*2,integer*1,integer*1)')
        call c_i2(ISHFTC(j,k2,m3),ja,
!      $     'ISHFTC(integer*2,integer*1,integer*8)')
        call c_i2(ISHFTC(j,m2,i3),ja,
!      $     'ISHFTC(integer*2,integer*8,integer)')
        call c_i2(ISHFTC(j,m2,j3),ja,
!      $     'ISHFTC(integer*2,integer*8,integer*2)')
        call c_i2(ISHFTC(j,m2,k3),ja,
!      $     'ISHFTC(integer*2,integer*8,integer*1)')
        call c_i2(ISHFTC(j,m2,m3),ja,
!      $     'ISHFTC(integer*2,integer*8,integer*8)')
  
!       call c_i1(ISHFTC(k,i2,i3),ka,'ISHFTC(integer*1,integer,integer)')
        call c_i1(ISHFTC(k,i2,j3),ka,
!      $     'ISHFTC(integer*1,integer,integer*2)')
        call c_i1(ISHFTC(k,i2,k3),ka,
!      $     'ISHFTC(integer*1,integer,integer*1)')
        call c_i1(ISHFTC(k,i2,m3),ka,
!      $     'ISHFTC(integer*1,integer,integer*8)')
        call c_i1(ISHFTC(k,j2,i3),ka,
!      $     'ISHFTC(integer*1,integer*2,integer)')
        call c_i1(ISHFTC(k,j2,j3),ka,
!      $     'ISHFTC(integer*1,integer*2,integer*2)')
        call c_i1(ISHFTC(k,j2,k3),ka,
!      $     'ISHFTC(integer*1,integer*2,integer*1)')
        call c_i1(ISHFTC(k,j2,m3),ka,
!      $     'ISHFTC(integer*1,integer*2,integer*8)')
        call c_i1(ISHFTC(k,k2,i3),ka,
!      $     'ISHFTC(integer*1,integer*1,integer)')
        call c_i1(ISHFTC(k,k2,j3),ka,
!      $     'ISHFTC(integer*1,integer*1,integer*2)')
        call c_i1(ISHFTC(k,k2,k3),ka,
!      $     'ISHFTC(integer*1,integer*1,integer*1)')
        call c_i1(ISHFTC(k,k2,m3),ka,
!      $     'ISHFTC(integer*1,integer*1,integer*8)')
        call c_i1(ISHFTC(k,m2,i3),ka,
!      $     'ISHFTC(integer*1,integer*8,integer)')
        call c_i1(ISHFTC(k,m2,j3),ka,
!      $     'ISHFTC(integer*1,integer*8,integer*2)')
        call c_i1(ISHFTC(k,m2,k3),ka,
!      $     'ISHFTC(integer*1,integer*8,integer*1)')
        call c_i1(ISHFTC(k,m2,m3),ka,
!      $     'ISHFTC(integer*1,integer*8,integer*8)')
  
!       call c_i8(ISHFTC(m,i2,i3),ma,'ISHFTC(integer*8,integer,integer)')
        call c_i8(ISHFTC(m,i2,j3),ma,
!      $     'ISHFTC(integer*8,integer,integer*2)')
        call c_i8(ISHFTC(m,i2,k3),ma,
!      $     'ISHFTC(integer*8,integer,integer*1)')
        call c_i8(ISHFTC(m,i2,m3),ma,
!      $     'ISHFTC(integer*8,integer,integer*8)')
        call c_i8(ISHFTC(m,j2,i3),ma,
!      $     'ISHFTC(integer*8,integer*2,integer)')
        call c_i8(ISHFTC(m,j2,j3),ma,
!      $     'ISHFTC(integer*8,integer*2,integer*2)')
        call c_i8(ISHFTC(m,j2,k3),ma,
!      $     'ISHFTC(integer*8,integer*2,integer*1)')
        call c_i8(ISHFTC(m,j2,m3),ma,
!      $     'ISHFTC(integer*8,integer*2,integer*8)')
        call c_i8(ISHFTC(m,k2,i3),ma,
!      $     'ISHFTC(integer*8,integer*1,integer)')
        call c_i8(ISHFTC(m,k2,j3),ma,
!      $     'ISHFTC(integer*1,integer*8,integer*2)')
        call c_i8(ISHFTC(m,k2,k3),ma,
!      $     'ISHFTC(integer*1,integer*8,integer*1)')
        call c_i8(ISHFTC(m,k2,m3),ma,
!      $     'ISHFTC(integer*1,integer*8,integer*8)')
        call c_i8(ISHFTC(m,m2,i3),ma,
!      $     'ISHFTC(integer*8,integer*8,integer)')
        call c_i8(ISHFTC(m,m2,j3),ma,
!      $     'ISHFTC(integer*8,integer*8,integer*2)')
        call c_i8(ISHFTC(m,m2,k3),ma,
!      $     'ISHFTC(integer*8,integer*8,integer*1)')
        call c_i8(ISHFTC(m,m2,m3),ma,
!      $     'ISHFTC(integer*8,integer*8,integer*8)')
  
  c     test the corner cases
        call c_i(ISHFTC(i,BIT_SIZE(i),BIT_SIZE(i)),i,
--- 222,347 ----
        ma = 5
  c     test all the combinations of arguments
        call c_i(ISHFTC(i,i2,i3),5,'ISHFTC(integer,integer,integer)')
!       call c_i(ISHFTC(i,i2,j3),5,'ISHFTC(integer,integer,integer(2))')
!       call c_i(ISHFTC(i,i2,k3),5,'ISHFTC(integer,integer,integer(1))')
!       call c_i(ISHFTC(i,i2,m3),5,'ISHFTC(integer,integer,integer(8))')
!       call c_i(ISHFTC(i,j2,i3),5,'ISHFTC(integer,integer(2),integer)')
!       call c_i(ISHFTC(i,j2,j3),5,
!      &  'ISHFTC(integer,integer(2),integer(2))')
!       call c_i(ISHFTC(i,j2,k3),5,
!      &  'ISHFTC(integer,integer(2),integer(1))')
!       call c_i(ISHFTC(i,j2,m3),5,
!      &  'ISHFTC(integer,integer(2),integer(8))')
!       call c_i(ISHFTC(i,k2,i3),5,'ISHFTC(integer,integer(1),integer)')
!       call c_i(ISHFTC(i,k2,j3),5,
!      &  'ISHFTC(integer,integer(1),integer(2))')
!       call c_i(ISHFTC(i,k2,k3),5,
!      &  'ISHFTC(integer,integer(1),integer(1))')
!       call c_i(ISHFTC(i,k2,m3),5,
!      &  'ISHFTC(integer,integer(1),integer(8))')
!       call c_i(ISHFTC(i,m2,i3),5,'ISHFTC(integer,integer(8),integer)')
!       call c_i(ISHFTC(i,m2,j3),5,
!      &  'ISHFTC(integer,integer(8),integer(2))')
!       call c_i(ISHFTC(i,m2,k3),5,
!      &  'ISHFTC(integer,integer(8),integer(1))')
!       call c_i(ISHFTC(i,m2,m3),5,
!      &  'ISHFTC(integer,integer(8),integer(8))')
  
!       call c_i2(ISHFTC(j,i2,i3),ja,'ISHFTC(integer(2),integer,integer)')
        call c_i2(ISHFTC(j,i2,j3),ja,
!      $     'ISHFTC(integer(2),integer,integer(2))')
        call c_i2(ISHFTC(j,i2,k3),ja,
!      $     'ISHFTC(integer(2),integer,integer(1))')
        call c_i2(ISHFTC(j,i2,m3),ja,
!      $     'ISHFTC(integer(2),integer,integer(8))')
        call c_i2(ISHFTC(j,j2,i3),ja,
!      $     'ISHFTC(integer(2),integer(2),integer)')
        call c_i2(ISHFTC(j,j2,j3),ja,
!      $     'ISHFTC(integer(2),integer(2),integer(2))')
        call c_i2(ISHFTC(j,j2,k3),ja,
!      $     'ISHFTC(integer(2),integer(2),integer(1))')
        call c_i2(ISHFTC(j,j2,m3),ja,
!      $     'ISHFTC(integer(2),integer(2),integer(8))')
        call c_i2(ISHFTC(j,k2,i3),ja,
!      $     'ISHFTC(integer(2),integer(1),integer)')
        call c_i2(ISHFTC(j,k2,j3),ja,
!      $     'ISHFTC(integer(2),integer(1),integer(2))')
        call c_i2(ISHFTC(j,k2,k3),ja,
!      $     'ISHFTC(integer(2),integer(1),integer(1))')
        call c_i2(ISHFTC(j,k2,m3),ja,
!      $     'ISHFTC(integer(2),integer(1),integer(8))')
        call c_i2(ISHFTC(j,m2,i3),ja,
!      $     'ISHFTC(integer(2),integer(8),integer)')
        call c_i2(ISHFTC(j,m2,j3),ja,
!      $     'ISHFTC(integer(2),integer(8),integer(2))')
        call c_i2(ISHFTC(j,m2,k3),ja,
!      $     'ISHFTC(integer(2),integer(8),integer(1))')
        call c_i2(ISHFTC(j,m2,m3),ja,
!      $     'ISHFTC(integer(2),integer(8),integer(8))')
  
!       call c_i1(ISHFTC(k,i2,i3),ka,'ISHFTC(integer(1),integer,integer)')
        call c_i1(ISHFTC(k,i2,j3),ka,
!      $     'ISHFTC(integer(1),integer,integer(2))')
        call c_i1(ISHFTC(k,i2,k3),ka,
!      $     'ISHFTC(integer(1),integer,integer(1))')
        call c_i1(ISHFTC(k,i2,m3),ka,
!      $     'ISHFTC(integer(1),integer,integer(8))')
        call c_i1(ISHFTC(k,j2,i3),ka,
!      $     'ISHFTC(integer(1),integer(2),integer)')
        call c_i1(ISHFTC(k,j2,j3),ka,
!      $     'ISHFTC(integer(1),integer(2),integer(2))')
        call c_i1(ISHFTC(k,j2,k3),ka,
!      $     'ISHFTC(integer(1),integer(2),integer(1))')
        call c_i1(ISHFTC(k,j2,m3),ka,
!      $     'ISHFTC(integer(1),integer(2),integer(8))')
        call c_i1(ISHFTC(k,k2,i3),ka,
!      $     'ISHFTC(integer(1),integer(1),integer)')
        call c_i1(ISHFTC(k,k2,j3),ka,
!      $     'ISHFTC(integer(1),integer(1),integer(2))')
        call c_i1(ISHFTC(k,k2,k3),ka,
!      $     'ISHFTC(integer(1),integer(1),integer(1))')
        call c_i1(ISHFTC(k,k2,m3),ka,
!      $     'ISHFTC(integer(1),integer(1),integer(8))')
        call c_i1(ISHFTC(k,m2,i3),ka,
!      $     'ISHFTC(integer(1),integer(8),integer)')
        call c_i1(ISHFTC(k,m2,j3),ka,
!      $     'ISHFTC(integer(1),integer(8),integer(2))')
        call c_i1(ISHFTC(k,m2,k3),ka,
!      $     'ISHFTC(integer(1),integer(8),integer(1))')
        call c_i1(ISHFTC(k,m2,m3),ka,
!      $     'ISHFTC(integer(1),integer(8),integer(8))')
  
!       call c_i8(ISHFTC(m,i2,i3),ma,'ISHFTC(integer(8),integer,integer)')
        call c_i8(ISHFTC(m,i2,j3),ma,
!      $     'ISHFTC(integer(8),integer,integer(2))')
        call c_i8(ISHFTC(m,i2,k3),ma,
!      $     'ISHFTC(integer(8),integer,integer(1))')
        call c_i8(ISHFTC(m,i2,m3),ma,
!      $     'ISHFTC(integer(8),integer,integer(8))')
        call c_i8(ISHFTC(m,j2,i3),ma,
!      $     'ISHFTC(integer(8),integer(2),integer)')
        call c_i8(ISHFTC(m,j2,j3),ma,
!      $     'ISHFTC(integer(8),integer(2),integer(2))')
        call c_i8(ISHFTC(m,j2,k3),ma,
!      $     'ISHFTC(integer(8),integer(2),integer(1))')
        call c_i8(ISHFTC(m,j2,m3),ma,
!      $     'ISHFTC(integer(8),integer(2),integer(8))')
        call c_i8(ISHFTC(m,k2,i3),ma,
!      $     'ISHFTC(integer(8),integer(1),integer)')
        call c_i8(ISHFTC(m,k2,j3),ma,
!      $     'ISHFTC(integer(1),integer(8),integer(2))')
        call c_i8(ISHFTC(m,k2,k3),ma,
!      $     'ISHFTC(integer(1),integer(8),integer(1))')
        call c_i8(ISHFTC(m,k2,m3),ma,
!      $     'ISHFTC(integer(1),integer(8),integer(8))')
        call c_i8(ISHFTC(m,m2,i3),ma,
!      $     'ISHFTC(integer(8),integer(8),integer)')
        call c_i8(ISHFTC(m,m2,j3),ma,
!      $     'ISHFTC(integer(8),integer(8),integer(2))')
        call c_i8(ISHFTC(m,m2,k3),ma,
!      $     'ISHFTC(integer(8),integer(8),integer(1))')
        call c_i8(ISHFTC(m,m2,m3),ma,
!      $     'ISHFTC(integer(8),integer(8),integer(8))')
  
  c     test the corner cases
        call c_i(ISHFTC(i,BIT_SIZE(i),BIT_SIZE(i)),i,
*************** c     test the corner cases
*** 342,364 ****
        call c_i(ISHFTC(i,-BIT_SIZE(i),BIT_SIZE(i)),i,
       $     'ISHFTC(i,-BIT_SIZE(i),BIT_SIZE(i)) i = integer')
        call c_i2(ISHFTC(j,BIT_SIZE(j),BIT_SIZE(j)),j,
!      $     'ISHFTC(j,BIT_SIZE(j),BIT_SIZE(j)) j = integer*2')
        call c_i2(ISHFTC(j,0,BIT_SIZE(j)),j,
!      $     'ISHFTC(j,0,BIT_SIZE(j)) j = integer*2')
        call c_i2(ISHFTC(j,-BIT_SIZE(j),BIT_SIZE(j)),j,
!      $     'ISHFTC(j,-BIT_SIZE(j),BIT_SIZE(j)) j = integer*2')
        call c_i1(ISHFTC(k,BIT_SIZE(k),BIT_SIZE(k)),k,
!      $     'ISHFTC(k,BIT_SIZE(k),BIT_SIZE(k)) k = integer*1')
        call c_i1(ISHFTC(k,0,BIT_SIZE(k)),k,
!      $     'ISHFTC(k,0,BIT_SIZE(k)) k = integer*1')
        call c_i1(ISHFTC(k,-BIT_SIZE(k),BIT_SIZE(k)),k,
!      $     'ISHFTC(k,-BIT_SIZE(k),BIT_SIZE(k)) k = integer*1')
        call c_i8(ISHFTC(m,BIT_SIZE(m),BIT_SIZE(m)),m,
!      $     'ISHFTC(m,BIT_SIZE(m),BIT_SIZE(m)) m = integer*8')
        call c_i8(ISHFTC(m,0,BIT_SIZE(m)),m,
!      $     'ISHFTC(m,0,BIT_SIZE(m)) m = integer*8')
        call c_i8(ISHFTC(m,-BIT_SIZE(m),BIT_SIZE(m)),m,
!      $     'ISHFTC(m,-BIT_SIZE(m),BIT_SIZE(m)) m = integer*8')
  
  c     MVBITS - Section 13.13.74
        i = 6
--- 351,373 ----
        call c_i(ISHFTC(i,-BIT_SIZE(i),BIT_SIZE(i)),i,
       $     'ISHFTC(i,-BIT_SIZE(i),BIT_SIZE(i)) i = integer')
        call c_i2(ISHFTC(j,BIT_SIZE(j),BIT_SIZE(j)),j,
!      $     'ISHFTC(j,BIT_SIZE(j),BIT_SIZE(j)) j = integer(2)')
        call c_i2(ISHFTC(j,0,BIT_SIZE(j)),j,
!      $     'ISHFTC(j,0,BIT_SIZE(j)) j = integer(2)')
        call c_i2(ISHFTC(j,-BIT_SIZE(j),BIT_SIZE(j)),j,
!      $     'ISHFTC(j,-BIT_SIZE(j),BIT_SIZE(j)) j = integer(2)')
        call c_i1(ISHFTC(k,BIT_SIZE(k),BIT_SIZE(k)),k,
!      $     'ISHFTC(k,BIT_SIZE(k),BIT_SIZE(k)) k = integer(1)')
        call c_i1(ISHFTC(k,0,BIT_SIZE(k)),k,
!      $     'ISHFTC(k,0,BIT_SIZE(k)) k = integer(1)')
        call c_i1(ISHFTC(k,-BIT_SIZE(k),BIT_SIZE(k)),k,
!      $     'ISHFTC(k,-BIT_SIZE(k),BIT_SIZE(k)) k = integer(1)')
        call c_i8(ISHFTC(m,BIT_SIZE(m),BIT_SIZE(m)),m,
!      $     'ISHFTC(m,BIT_SIZE(m),BIT_SIZE(m)) m = integer(8)')
        call c_i8(ISHFTC(m,0,BIT_SIZE(m)),m,
!      $     'ISHFTC(m,0,BIT_SIZE(m)) m = integer(8)')
        call c_i8(ISHFTC(m,-BIT_SIZE(m),BIT_SIZE(m)),m,
!      $     'ISHFTC(m,-BIT_SIZE(m),BIT_SIZE(m)) m = integer(8)')
  
  c     MVBITS - Section 13.13.74
        i = 6
*************** c     Rather than assume integer sizes, 
*** 392,400 ****
        m2 = 31
        ma = 10
        call c_i(IAND(NOT(21),31),10,'NOT(integer)')
!       call c_i2(IAND(NOT(j),j2),ja,'NOT(integer*2)')
!       call c_i1(IAND(NOT(k),k2),ka,'NOT(integer*1)')
!       call c_i8(IAND(NOT(m),m2),ma,'NOT(integer*8)')
  
        if ( fail ) call abort()
        end
--- 401,409 ----
        m2 = 31
        ma = 10
        call c_i(IAND(NOT(21),31),10,'NOT(integer)')
!       call c_i2(IAND(NOT(j),j2),ja,'NOT(integer(2))')
!       call c_i1(IAND(NOT(k),k2),ka,'NOT(integer(1))')
!       call c_i8(IAND(NOT(m),m2),ma,'NOT(integer(8))')
  
        if ( fail ) call abort()
        end
*************** c     Check if INTEGER i equals j, and f
*** 429,436 ****
        end
  
        subroutine c_i2(i,j,label)
! c     Check if INTEGER*2 i equals j, and fail otherwise
!       integer*2 i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
--- 438,445 ----
        end
  
        subroutine c_i2(i,j,label)
! c     Check if INTEGER(kind=2) i equals j, and fail otherwise
!       integer(kind=2) i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
*************** c     Check if INTEGER*2 i equals j, and
*** 439,446 ****
        end
  
        subroutine c_i1(i,j,label)
! c     Check if INTEGER*1 i equals j, and fail otherwise
!       integer*1 i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
--- 448,455 ----
        end
  
        subroutine c_i1(i,j,label)
! c     Check if INTEGER(kind=1) i equals j, and fail otherwise
!       integer(kind=1) i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
*************** c     Check if INTEGER*1 i equals j, and
*** 449,456 ****
        end
  
        subroutine c_i8(i,j,label)
! c     Check if INTEGER*8 i equals j, and fail otherwise
!       integer*8 i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
--- 458,465 ----
        end
  
        subroutine c_i8(i,j,label)
! c     Check if INTEGER(kind=8) i equals j, and fail otherwise
!       integer(kind=8) i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-mathematical.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-mathematical.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-mathematical.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-mathematical.f	Thu Dec 22 16:29:18 2005
*************** c     COS - Section 13.13.22
*** 35,41 ****
        call c_d(COS(1.d0),0.54030231d0,'COS(double)')
        call c_c(COS((1.,0.)),(0.54030231,0.),'COS(complex)')
        call c_z(COS((1.d0,0.d0)),(0.54030231d0,0.d0),
!      $     'COS(double complex)')
  
  c     COSH - Section 13.13.23
        call c_r(COSH(1.0),1.5430806,'COSH(real)')
--- 35,41 ----
        call c_d(COS(1.d0),0.54030231d0,'COS(double)')
        call c_c(COS((1.,0.)),(0.54030231,0.),'COS(complex)')
        call c_z(COS((1.d0,0.d0)),(0.54030231d0,0.d0),
!      $     'COS(complex(kind=8))')
  
  c     COSH - Section 13.13.23
        call c_r(COSH(1.0),1.5430806,'COSH(real)')
*************** c     EXP - Section 13.13.34
*** 46,59 ****
        call c_d(EXP(1.d0),2.7182818d0,'EXP(double)')
        call c_c(EXP((1.,0.)),(2.7182818,0.),'EXP(complex)')
        call c_z(EXP((1.d0,0.d0)),(2.7182818d0,0.d0),
!      $     'EXP(double complex)')
  
  c     LOG - Section 13.13.59
        call c_r(LOG(10.0),2.3025851,'LOG(real)')
        call c_d(LOG(10.d0),2.3025851d0,'LOG(double)')
        call c_c(LOG((10.,0.)),(2.3025851,0.),'LOG(complex)')
        call c_z(LOG((10.d0,0.)),(2.3025851d0,0.d0),
!      $     'LOG(double complex)')
  
  c     LOG10 - Section 13.13.60
        call c_r(LOG10(10.0),1.0,'LOG10(real)')
--- 46,59 ----
        call c_d(EXP(1.d0),2.7182818d0,'EXP(double)')
        call c_c(EXP((1.,0.)),(2.7182818,0.),'EXP(complex)')
        call c_z(EXP((1.d0,0.d0)),(2.7182818d0,0.d0),
!      $     'EXP(complex(kind=8))')
  
  c     LOG - Section 13.13.59
        call c_r(LOG(10.0),2.3025851,'LOG(real)')
        call c_d(LOG(10.d0),2.3025851d0,'LOG(double)')
        call c_c(LOG((10.,0.)),(2.3025851,0.),'LOG(complex)')
        call c_z(LOG((10.d0,0.)),(2.3025851d0,0.d0),
!      $     'LOG(complex(kind=8))')
  
  c     LOG10 - Section 13.13.60
        call c_r(LOG10(10.0),1.0,'LOG10(real)')
*************** c     SIN - Section 13.13.97
*** 64,70 ****
        call c_d(SIN(1.d0),0.84147098d0,'SIN(double)')
        call c_c(SIN((1.,0.)),(0.84147098,0.),'SIN(complex)')
        call c_z(SIN((1.d0,0.d0)),(0.84147098d0,0.d0),
!      $     'SIN(double complex)')
  
  c     SINH - Section 13.13.98
        call c_r(SINH(1.0),1.175201,'SINH(real)')
--- 64,70 ----
        call c_d(SIN(1.d0),0.84147098d0,'SIN(double)')
        call c_c(SIN((1.,0.)),(0.84147098,0.),'SIN(complex)')
        call c_z(SIN((1.d0,0.d0)),(0.84147098d0,0.d0),
!      $     'SIN(complex(kind=8))')
  
  c     SINH - Section 13.13.98
        call c_r(SINH(1.0),1.175201,'SINH(real)')
*************** c     SQRT - Section 13.13.102
*** 75,81 ****
        call c_d(SQRT(4.d0),2.d0,'SQRT(double)')
        call c_c(SQRT((4.,0.)),(2.,0.),'SQRT(complex)')
        call c_z(SQRT((4.d0,0.)),(2.d0,0.),
!      $     'SQRT(double complex)')
   
  c     TAN - Section 13.13.105
        call c_r(TAN(1.0),1.5574077,'TAN(real)')
--- 75,81 ----
        call c_d(SQRT(4.d0),2.d0,'SQRT(double)')
        call c_c(SQRT((4.,0.)),(2.,0.),'SQRT(complex)')
        call c_z(SQRT((4.d0,0.)),(2.d0,0.),
!      $     'SQRT(complex(kind=8))')
   
  c     TAN - Section 13.13.105
        call c_r(TAN(1.0),1.5574077,'TAN(real)')
*************** c     Check if COMPLEX a equals b, and f
*** 129,135 ****
  
        subroutine c_z(a,b,label)
  c     Check if COMPLEX a equals b, and fail otherwise
!       double complex a, b
        character*(*) label
        if ( abs(a-b) .gt. 1.0d-5 ) then
           call failure(label)
--- 129,135 ----
  
        subroutine c_z(a,b,label)
  c     Check if COMPLEX a equals b, and fail otherwise
!       complex(kind=8) a, b
        character*(*) label
        if ( abs(a-b) .gt. 1.0d-5 ) then
           call failure(label)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-numeric.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-numeric.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-numeric.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/f90-intrinsic-numeric.f	Thu Dec 22 16:29:18 2005
*************** c  * Section 13.12: Specific names for i
*** 10,17 ****
  c intrinsic77.f
  
        logical fail
!       integer*2 j, j2, ja
!       integer*1 k, k2, ka
  
        common /flags/ fail
        fail = .false.
--- 10,17 ----
  c intrinsic77.f
  
        logical fail
!       integer(kind=2) j, j2, ja
!       integer(kind=1) k, k2, ka
  
        common /flags/ fail
        fail = .false.
*************** c     ABS - Section 13.13.1
*** 22,38 ****
        k = j
        ka = ja
        call c_i(ABS(-7),7,'ABS(integer)')
!       call c_i2(ABS(j),ja,'ABS(integer*2)')
!       call c_i1(ABS(k),ka,'ABS(integer*1)')
        call c_r(ABS(-7.),7.,'ABS(real)')
        call c_d(ABS(-7.d0),7.d0,'ABS(double)')
        call c_r(ABS((3.,-4.)),5.0,'ABS(complex)')
!       call c_d(ABS((3.d0,-4.d0)),5.0d0,'ABS(double complex)')
  
  c     AIMAG - Section 13.13.6
        call c_r(AIMAG((2.,-7.)),-7.,'AIMAG(complex)')
! c     g77: AIMAG(double complex) does not comply with F90
! c     call c_d(AIMAG((2.d0,-7.d0)),-7.d0,'AIMAG(double complex)')
  
  c     AINT - Section 13.13.7
        call c_r(AINT(2.783),2.0,'AINT(real) 1')
--- 22,38 ----
        k = j
        ka = ja
        call c_i(ABS(-7),7,'ABS(integer)')
!       call c_i2(ABS(j),ja,'ABS(integer(2))')
!       call c_i1(ABS(k),ka,'ABS(integer(1))')
        call c_r(ABS(-7.),7.,'ABS(real)')
        call c_d(ABS(-7.d0),7.d0,'ABS(double)')
        call c_r(ABS((3.,-4.)),5.0,'ABS(complex)')
!       call c_d(ABS((3.d0,-4.d0)),5.0d0,'ABS(complex(kind=8))')
  
  c     AIMAG - Section 13.13.6
        call c_r(AIMAG((2.,-7.)),-7.,'AIMAG(complex)')
! c     g77: AIMAG(complex(kind=8)) does not comply with F90
! c     call c_d(AIMAG((2.d0,-7.d0)),-7.d0,'AIMAG(complex(kind=8))')
  
  c     AINT - Section 13.13.7
        call c_r(AINT(2.783),2.0,'AINT(real) 1')
*************** c     CMPLX - Section 13.13.20
*** 58,88 ****
        ka = 2
        call c_c(CMPLX(1),(1.,0.),'CMPLX(integer)')
        call c_c(CMPLX(1,2),(1.,2.),'CMPLX(integer, integer)')
!       call c_c(CMPLX(j),(1.,0.),'CMPLX(integer*2)')
!       call c_c(CMPLX(j,ja),(1.,2.),'CMPLX(integer*2, integer*2)')
!       call c_c(CMPLX(k),(1.,0.),'CMPLX(integer*1)')
!       call c_c(CMPLX(k,ka),(1.,2.),'CMPLX(integer*1, integer*1)')
        call c_c(CMPLX(1.),(1.,0.),'CMPLX(real)')
        call c_c(CMPLX(1.d0),(1.,0.),'CMPLX(double)')
        call c_c(CMPLX(1.d0,2.d0),(1.,2.),'CMPLX(double,double)')
        call c_c(CMPLX(1.,2.),(1.,2.),'CMPLX(complex)')
!       call c_c(CMPLX(1.d0,2.d0),(1.,2.),'CMPLX(double complex)')
  c     NOTE: g77 does not support optional argument KIND
     
  c     CONJG - Section 13.13.21
        call c_c(CONJG((2.,-7.)),(2.,7.),'CONJG(complex)')
!       call c_z(CONJG((2.d0,-7.d0)),(2.d0,7.d0),'CONJG(double complex)')
  
  c     DBLE - Section 13.13.27
        j = 5
        k = 5
        call c_d(DBLE(5),5.0d0,'DBLE(integer)')
!       call c_d(DBLE(j),5.0d0,'DBLE(integer*2)')
!       call c_d(DBLE(k),5.0d0,'DBLE(integer*1)')
        call c_d(DBLE(5.),5.0d0,'DBLE(real)')
        call c_d(DBLE(5.0d0),5.0d0,'DBLE(double)')
        call c_d(DBLE((5.0,0.5)),5.0d0,'DBLE(complex)')
!       call c_d(DBLE((5.0d0,0.5d0)),5.0d0,'DBLE(double complex)')
  
  c     DIM - Section 13.13.29
        j = -8
--- 58,88 ----
        ka = 2
        call c_c(CMPLX(1),(1.,0.),'CMPLX(integer)')
        call c_c(CMPLX(1,2),(1.,2.),'CMPLX(integer, integer)')
!       call c_c(CMPLX(j),(1.,0.),'CMPLX(integer(2))')
!       call c_c(CMPLX(j,ja),(1.,2.),'CMPLX(integer(2), integer(2))')
!       call c_c(CMPLX(k),(1.,0.),'CMPLX(integer(1)')
!       call c_c(CMPLX(k,ka),(1.,2.),'CMPLX(integer(1), integer(1))')
        call c_c(CMPLX(1.),(1.,0.),'CMPLX(real)')
        call c_c(CMPLX(1.d0),(1.,0.),'CMPLX(double)')
        call c_c(CMPLX(1.d0,2.d0),(1.,2.),'CMPLX(double,double)')
        call c_c(CMPLX(1.,2.),(1.,2.),'CMPLX(complex)')
!       call c_c(CMPLX(1.d0,2.d0),(1.,2.),'CMPLX(complex(kind=8))')
  c     NOTE: g77 does not support optional argument KIND
     
  c     CONJG - Section 13.13.21
        call c_c(CONJG((2.,-7.)),(2.,7.),'CONJG(complex)')
!       call c_z(CONJG((2.d0,-7.d0)),(2.d0,7.d0),'CONJG(complex(kind=8))')
  
  c     DBLE - Section 13.13.27
        j = 5
        k = 5
        call c_d(DBLE(5),5.0d0,'DBLE(integer)')
!       call c_d(DBLE(j),5.0d0,'DBLE(integer(2))')
!       call c_d(DBLE(k),5.0d0,'DBLE(integer(1))')
        call c_d(DBLE(5.),5.0d0,'DBLE(real)')
        call c_d(DBLE(5.0d0),5.0d0,'DBLE(double)')
        call c_d(DBLE((5.0,0.5)),5.0d0,'DBLE(complex)')
!       call c_d(DBLE((5.0d0,0.5d0)),5.0d0,'DBLE(complex(kind=8))')
  
  c     DIM - Section 13.13.29
        j = -8
*************** c     DIM - Section 13.13.29
*** 92,99 ****
        k2 = -3
        ka = 0
        call c_i(DIM(-8,-3),0,'DIM(integer)')
!       call c_i2(DIM(j,j2),ja,'DIM(integer*2)')
!       call c_i1(DIM(k,k2),ka,'DIM(integer*1)')
        call c_r(DIM(-8.,-3.),0.,'DIM(real,real)')
        call c_d(DIM(-8.d0,-3.d0),0.d0,'DIM(double,double)')
   
--- 92,99 ----
        k2 = -3
        ka = 0
        call c_i(DIM(-8,-3),0,'DIM(integer)')
!       call c_i2(DIM(j,j2),ja,'DIM(integer(2))')
!       call c_i1(DIM(k,k2),ka,'DIM(integer(1)')
        call c_r(DIM(-8.,-3.),0.,'DIM(real,real)')
        call c_d(DIM(-8.d0,-3.d0),0.d0,'DIM(double,double)')
   
*************** c     INT - Section 13.13.47
*** 107,114 ****
        j = 5
        k = 5
        call c_i(INT(5),5,'INT(integer)')
!       call c_i(INT(j),5,'INT(integer*2)')
!       call c_i(INT(k),5,'INT(integer*1)')
        call c_i(INT(5.01),5,'INT(real)')
        call c_i(INT(5.01d0),5,'INT(double)')
  c     Note: Does not accept optional second argument KIND
--- 107,114 ----
        j = 5
        k = 5
        call c_i(INT(5),5,'INT(integer)')
!       call c_i(INT(j),5,'INT(integer(2))')
!       call c_i(INT(k),5,'INT(integer(1))')
        call c_i(INT(5.01),5,'INT(real)')
        call c_i(INT(5.01d0),5,'INT(double)')
  c     Note: Does not accept optional second argument KIND
*************** c     MAX - Section 13.13.63
*** 121,128 ****
        k2 = 2
        ka = 2
        call c_i(MAX(1,2,3),3,'MAX(integer,integer,integer)')
!       call c_i2(MAX(j,j2),ja,'MAX(integer*2,integer*2)')
!       call c_i1(MAX(k,k2),ka,'MAX(integer*1,integer*1)')
        call c_r(MAX(1.,2.,3.),3.,'MAX(real,real,real)')
        call c_d(MAX(1.d0,2.d0,3.d0),3.d0,'MAX(double,double,double)')
  
--- 121,128 ----
        k2 = 2
        ka = 2
        call c_i(MAX(1,2,3),3,'MAX(integer,integer,integer)')
!       call c_i2(MAX(j,j2),ja,'MAX(integer(2),integer(2))')
!       call c_i1(MAX(k,k2),ka,'MAX(integer(1),integer(1))')
        call c_r(MAX(1.,2.,3.),3.,'MAX(real,real,real)')
        call c_d(MAX(1.d0,2.d0,3.d0),3.d0,'MAX(double,double,double)')
  
*************** c     MIN - Section 13.13.68
*** 134,141 ****
        k2 = 2
        ka = 1
        call c_i(MIN(1,2,3),1,'MIN(integer,integer,integer)')
!       call c_i2(MIN(j,j2),ja,'MIN(integer*2,integer*2)')
!       call c_i1(MIN(k,k2),ka,'MIN(integer*1,integer*1)')
        call c_r(MIN(1.,2.,3.),1.,'MIN(real,real,real)')
        call c_d(MIN(1.d0,2.d0,3.d0),1.d0,'MIN(double,double,double)')
  
--- 134,141 ----
        k2 = 2
        ka = 1
        call c_i(MIN(1,2,3),1,'MIN(integer,integer,integer)')
!       call c_i2(MIN(j,j2),ja,'MIN(integer(2),integer(2))')
!       call c_i1(MIN(k,k2),ka,'MIN(integer(1),integer(1))')
        call c_r(MIN(1.,2.,3.),1.,'MIN(real,real,real)')
        call c_d(MIN(1.d0,2.d0,3.d0),1.d0,'MIN(double,double,double)')
  
*************** c     MOD - Section 13.13.72
*** 147,163 ****
        j = 8
        j2 = 5
        ja = 3
!       call c_i2(MOD(j,j2),ja,'MOD(integer*2,integer*2) 1')
!       call c_i2(MOD(-j,j2),-ja,'MOD(integer*2,integer*2) 2')
!       call c_i2(MOD(j,-j2),ja,'MOD(integer*2,integer*2) 3')
!       call c_i2(MOD(-j,-j2),-ja,'MOD(integer*2,integer*2) 4')
        k = 8
        k2 = 5
        ka = 3
!       call c_i1(MOD(k,k2),ka,'MOD(integer*1,integer*1) 1')
!       call c_i1(MOD(-k,k2),-ka,'MOD(integer*1,integer*1) 2')
!       call c_i1(MOD(k,-k2),ka,'MOD(integer*1,integer*1) 3')
!       call c_i1(MOD(-k,-k2),-ka,'MOD(integer*1,integer*1) 4')
        call c_r(MOD(8.,5.),3.,'MOD(real,real) 1')
        call c_r(MOD(-8.,5.),-3.,'MOD(real,real) 2')
        call c_r(MOD(8.,-5.),3.,'MOD(real,real) 3')
--- 147,163 ----
        j = 8
        j2 = 5
        ja = 3
!       call c_i2(MOD(j,j2),ja,'MOD(integer(2),integer(2)) 1')
!       call c_i2(MOD(-j,j2),-ja,'MOD(integer(2),integer(2)) 2')
!       call c_i2(MOD(j,-j2),ja,'MOD(integer(2),integer(2)) 3')
!       call c_i2(MOD(-j,-j2),-ja,'MOD(integer(2),integer(2)) 4')
        k = 8
        k2 = 5
        ka = 3
!       call c_i1(MOD(k,k2),ka,'MOD(integer(1),integer(1)) 1')
!       call c_i1(MOD(-k,k2),-ka,'MOD(integer(1),integer(1)) 2')
!       call c_i1(MOD(k,-k2),ka,'MOD(integer(1),integer(1)) 3')
!       call c_i1(MOD(-k,-k2),-ka,'MOD(integer(1),integer(1)) 4')
        call c_r(MOD(8.,5.),3.,'MOD(real,real) 1')
        call c_r(MOD(-8.,5.),-3.,'MOD(real,real) 2')
        call c_r(MOD(8.,-5.),3.,'MOD(real,real) 3')
*************** c     REAL - Section 13.13.86
*** 179,191 ****
        j = -2
        k = -2
        call c_r(REAL(-2),-2.0,'REAL(integer)')
!       call c_r(REAL(j),-2.0,'REAL(integer*2)')
!       call c_r(REAL(k),-2.0,'REAL(integer*1)')
        call c_r(REAL(-2.0),-2.0,'REAL(real)')
        call c_r(REAL(-2.0d0),-2.0,'REAL(double)')
        call c_r(REAL((-2.,9.)),-2.0,'REAL(complex)')
! c     REAL(double complex) not implemented
! c     call c_r(REAL((-2.d0,9.d0)),-2.0,'REAL(double complex)')
  
  c     SIGN - Section 13.13.96
        j = -3
--- 179,191 ----
        j = -2
        k = -2
        call c_r(REAL(-2),-2.0,'REAL(integer)')
!       call c_r(REAL(j),-2.0,'REAL(integer(2))')
!       call c_r(REAL(k),-2.0,'REAL(integer(1))')
        call c_r(REAL(-2.0),-2.0,'REAL(real)')
        call c_r(REAL(-2.0d0),-2.0,'REAL(double)')
        call c_r(REAL((-2.,9.)),-2.0,'REAL(complex)')
! c     REAL(complex(kind=8)) not implemented
! c     call c_r(REAL((-2.d0,9.d0)),-2.0,'REAL(complex(kind=8))')
  
  c     SIGN - Section 13.13.96
        j = -3
*************** c     SIGN - Section 13.13.96
*** 195,202 ****
        k2 = 2
        ka = 3
        call c_i(SIGN(-3,2),3,'SIGN(integer)')
!       call c_i2(SIGN(j,j2),ja,'SIGN(integer*2)')
!       call c_i1(SIGN(k,k2),ka,'SIGN(integer*1)')
        call c_r(SIGN(-3.0,2.),3.,'SIGN(real,real)')
        call c_d(SIGN(-3.d0,2.d0),3.d0,'SIGN(double,double)')
   
--- 195,202 ----
        k2 = 2
        ka = 3
        call c_i(SIGN(-3,2),3,'SIGN(integer)')
!       call c_i2(SIGN(j,j2),ja,'SIGN(integer(2))')
!       call c_i1(SIGN(k,k2),ka,'SIGN(integer(1))')
        call c_r(SIGN(-3.0,2.),3.,'SIGN(real,real)')
        call c_d(SIGN(-3.d0,2.d0),3.d0,'SIGN(double,double)')
   
*************** c     Check if INTEGER i equals j, and f
*** 223,230 ****
        end
  
        subroutine c_i2(i,j,label)
! c     Check if INTEGER*2 i equals j, and fail otherwise
!       integer*2 i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
--- 223,230 ----
        end
  
        subroutine c_i2(i,j,label)
! c     Check if INTEGER(kind=2) i equals j, and fail otherwise
!       integer(kind=2) i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
*************** c     Check if INTEGER*2 i equals j, and
*** 233,240 ****
        end
  
        subroutine c_i1(i,j,label)
! c     Check if INTEGER*1 i equals j, and fail otherwise
!       integer*1 i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
--- 233,240 ----
        end
  
        subroutine c_i1(i,j,label)
! c     Check if INTEGER(kind=1) i equals j, and fail otherwise
!       integer(kind=1) i,j
        character*(*) label
        if ( i .ne. j ) then
           call failure(label)
*************** c     Check if COMPLEX a equals b, and f
*** 274,280 ****
  
        subroutine c_z(a,b,label)
  c     Check if COMPLEX a equals b, and fail otherwise
!       double complex a, b
        character*(*) label
        if ( abs(a-b) .gt. 1.0d-5 ) then
           call failure(label)
--- 274,280 ----
  
        subroutine c_z(a,b,label)
  c     Check if COMPLEX a equals b, and fail otherwise
!       complex(kind=8) a, b
        character*(*) label
        if ( abs(a-b) .gt. 1.0d-5 ) then
           call failure(label)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/int8421.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/int8421.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/int8421.f	Wed Jul 21 00:00:24 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/int8421.f	Thu Dec 22 16:29:18 2005
***************
*** 1,13 ****
  c { dg-do run }
!       integer*1 i1, i11
!       integer*2 i2, i22
!       integer   i, ii
!       integer*4 i4, i44
!       integer*8 i8, i88
        real      r, rr
!       real*4    r4, r44
        double precision d, dd
!       real*8    r8, r88
        parameter (i1 = 1, i2 = 2, i4 = 4, i = 5, i8 = i + i4*i2 + i2*i1)
        parameter (r = 3.0, r4 = 4.0, r8 = 8.d0, d = i8*r + r4*i2 + r8*i1)
        if (i8 .ne. 15   ) call abort
--- 1,13 ----
  c { dg-do run }
!       integer(kind=1) i1, i11
!       integer(kind=2) i2, i22
!       integer         i, ii
!       integer(kind=4) i4, i44
!       integer(kind=8) i8, i88
        real      r, rr
!       real(kind=4)    r4, r44
        double precision d, dd
!       real(kind=8)   r8, r88
        parameter (i1 = 1, i2 = 2, i4 = 4, i = 5, i8 = i + i4*i2 + i2*i1)
        parameter (r = 3.0, r4 = 4.0, r8 = 8.d0, d = i8*r + r4*i2 + r8*i1)
        if (i8 .ne. 15   ) call abort
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/intrinsic-unix-bessel.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/intrinsic-unix-bessel.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77/intrinsic-unix-bessel.f	Sun Aug 29 15:58:15 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77/intrinsic-unix-bessel.f	Thu Dec 22 16:29:18 2005
*************** c
*** 9,17 ****
        real x, a
        double precision dx, da
        integer i
!       integer*2 j
!       integer*1 k
!       integer*8 m
        logical fail
        common /flags/ fail
        fail = .false.
--- 9,17 ----
        real x, a
        double precision dx, da
        integer i
!       integer(kind=2) j
!       integer(kind=1) k
!       integer(kind=8) m
        logical fail
        common /flags/ fail
        fail = .false.
*************** c     BESJN  - Bessel function of first 
*** 40,53 ****
        a = 0.3528340
        da = a
        call c_r(BESJN(i,x),a,'BESJN(integer,real)')
!       call c_r(BESJN(j,x),a,'BESJN(integer*2,real)')
!       call c_r(BESJN(k,x),a,'BESJN(integer*1,real)')
        call c_d(BESJN(i,dx),da,'BESJN(integer,double)')
!       call c_d(BESJN(j,dx),da,'BESJN(integer*2,double)')
!       call c_d(BESJN(k,dx),da,'BESJN(integer*1,double)')
        call c_d(DBESJN(i,dx),da,'DBESJN(integer,double)')
!       call c_d(DBESJN(j,dx),da,'DBESJN(integer*2,double)')
!       call c_d(DBESJN(k,dx),da,'DBESJN(integer*1,double)')
  
  c     BESY0  - Bessel function of second kind of order zero
        a = 0.51037567
--- 40,53 ----
        a = 0.3528340
        da = a
        call c_r(BESJN(i,x),a,'BESJN(integer,real)')
!       call c_r(BESJN(j,x),a,'BESJN(integer(2),real)')
!       call c_r(BESJN(k,x),a,'BESJN(integer(1),real)')
        call c_d(BESJN(i,dx),da,'BESJN(integer,double)')
!       call c_d(BESJN(j,dx),da,'BESJN(integer(2),double)')
!       call c_d(BESJN(k,dx),da,'BESJN(integer(1),double)')
        call c_d(DBESJN(i,dx),da,'DBESJN(integer,double)')
!       call c_d(DBESJN(j,dx),da,'DBESJN(integer(2),double)')
!       call c_d(DBESJN(k,dx),da,'DBESJN(integer(1),double)')
  
  c     BESY0  - Bessel function of second kind of order zero
        a = 0.51037567
*************** c     BESYN  - Bessel function of second
*** 67,80 ****
        a = -0.6174081
        da = a
        call c_r(BESYN(i,x),a,'BESYN(integer,real)')
!       call c_r(BESYN(j,x),a,'BESYN(integer*2,real)')
!       call c_r(BESYN(k,x),a,'BESYN(integer*1,real)')
        call c_d(BESYN(i,dx),da,'BESYN(integer,double)')
!       call c_d(BESYN(j,dx),da,'BESYN(integer*2,double)')
!       call c_d(BESYN(k,dx),da,'BESYN(integer*1,double)')
        call c_d(DBESYN(i,dx),da,'DBESYN(integer,double)')
!       call c_d(DBESYN(j,dx),da,'DBESYN(integer*2,double)')
!       call c_d(DBESYN(k,dx),da,'DBESYN(integer*1,double)')
  
        if ( fail ) call abort()
        end
--- 67,80 ----
        a = -0.6174081
        da = a
        call c_r(BESYN(i,x),a,'BESYN(integer,real)')
!       call c_r(BESYN(j,x),a,'BESYN(integer(2),real)')
!       call c_r(BESYN(k,x),a,'BESYN(integer(1),real)')
        call c_d(BESYN(i,dx),da,'BESYN(integer,double)')
!       call c_d(BESYN(j,dx),da,'BESYN(integer(2),double)')
!       call c_d(BESYN(k,dx),da,'BESYN(integer(1),double)')
        call c_d(DBESYN(i,dx),da,'DBESYN(integer,double)')
!       call c_d(DBESYN(j,dx),da,'DBESYN(integer(2),double)')
!       call c_d(DBESYN(k,dx),da,'DBESYN(integer(1),double)')
  
        if ( fail ) call abort()
        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f	Tue Apr  5 08:30:35 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77_intrinsics_funcs.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  ! { dg-do compile }
  ! Testing g77 intrinsics as subroutines
!       integer*8 i8
!       integer*4 i4
        integer i
        character*80 c
  
--- 1,7 ----
  ! { dg-do compile }
  ! Testing g77 intrinsics as subroutines
!       integer(kind=8) i8
!       integer i4
        integer i
        character*80 c
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f gcc-4.1.0/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f	Tue Apr  5 08:30:35 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/g77_intrinsics_sub.f	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  ! { dg-do compile }
  ! Testing g77 intrinsics as subroutines
!       integer*8 i8, j8
!       integer*4 i4, j4
        integer i, j
        character*80 c
  
--- 1,7 ----
  ! { dg-do compile }
  ! Testing g77 intrinsics as subroutines
!       integer(kind=8) i8, j8
!       integer i4, j4
        integer i, j
        character*80 c
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/generic_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/generic_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/generic_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/generic_4.f90	Tue Sep 13 21:46:04 2005
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do run }
+ ! reduced testcase from PR 17740
+ module FOO
+ 
+   interface BAR
+      module procedure BAR2
+   end interface
+ 
+ contains
+ 
+   elemental integer function BAR2(X)
+     integer, intent(in) :: X
+     BAR2 = X
+   end function
+ 
+   subroutine BAZ(y,z)
+     integer :: Y(3), Z(3)
+     Z = BAR(Y)
+   end subroutine
+ 
+ end module
+ 
+ use foo
+ integer :: y(3), z(3)
+ y = (/1,2,3/)
+ call baz(y,z)
+ if (any (y /= z)) call abort ()
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/global_references_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/global_references_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/global_references_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/global_references_1.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,98 ----
+ ! { dg-do compile }
+ ! This program tests the patch for PRs 20881, 23308, 25538 & 25710
+ ! Assembled from PRs by Paul Thomas  <pault@gcc.gnu.org>
+ module m
+ contains
+   subroutine g(x)   ! Local entity
+     REAL :: x
+     x = 1.0
+   end subroutine g
+ end module m
+ ! Error only appears once but testsuite associates with both lines.
+ function f(x)       ! { dg-error "is already being used as a FUNCTION" }
+   REAL :: f, x
+   f = x
+ end function f
+ 
+ function g(x)       ! Global entity
+   REAL :: g, x
+   g = x
+ 
+ ! PR25710==========================================================
+ ! Lahey -2607-S: "SOURCE.F90", line 26: 
+ ! Function 'f' cannot be referenced as a subroutine. The previous
+ ! definition is in 'line 12'.
+ 
+   call f(g) ! { dg-error "is already being used as a FUNCTION" }
+ end function g
+ ! Error only appears once but testsuite associates with both lines.
+ function h(x)       ! { dg-error "is already being used as a FUNCTION" }
+   REAL :: h, x
+   h = x
+ end function h
+ 
+ SUBROUTINE TT()
+   CHARACTER(LEN=10), EXTERNAL :: j
+   CHARACTER(LEN=10)          :: T
+ ! PR20881=========================================================== 
+ ! Error only appears once but testsuite associates with both lines.
+   T = j () ! { dg-error "is already being used as a FUNCTION" }
+   print *, T
+ END SUBROUTINE TT
+ 
+   use m             ! Main program
+   real x
+   integer a(10)
+ 
+ ! PR23308===========================================================
+ ! Lahey - 2604-S: "SOURCE.F90", line 52:
+ ! The name 'foo' cannot be specified as both external procedure name
+ ! and common block name. The previous appearance is in 'line 68'.
+ ! Error only appears once but testsuite associates with both lines.
+   common /foo/ a    ! { dg-error "is already being used as a COMMON" }
+ 
+   call f (x)        ! OK - reference to local entity
+   call g (x)        !             -ditto-
+ 
+ ! PR25710===========================================================
+ ! Lahey - 2607-S: "SOURCE.F90", line 62:
+ ! Function 'h' cannot be referenced as a subroutine. The previous
+ ! definition is in 'line 29'.
+ 
+   call h (x) ! { dg-error "is already being used as a FUNCTION" }
+ 
+ ! PR23308===========================================================
+ ! Lahey - 2521-S: "SOURCE.F90", line 68: Intrinsic procedure name or
+ ! external procedure name same as common block name 'foo'.
+ 
+   call foo () ! { dg-error "is already being used as a COMMON" }
+ 
+ contains
+   SUBROUTINE f (x)  ! Local entity
+     real x
+     x = 2
+   end SUBROUTINE f
+ end
+ 
+ ! PR20881=========================================================== 
+ ! Lahey - 2636-S: "SOURCE.F90", line 81:
+ ! Subroutine 'j' is previously referenced as a function in 'line 39'.
+ 
+ SUBROUTINE j (x)    ! { dg-error "is already being used as a FUNCTION" }
+   integer a(10)
+   common /bar/ a    ! Global entity foo
+   real x
+   x = bar(1.0)      ! OK for local procedure to have common block name
+ contains
+   function bar (x)
+     real bar, x
+     bar = 2.0*x
+   end function bar
+ END SUBROUTINE j
+ 
+ ! PR25538===========================================================
+ ! would ICE with entry and procedure having same names.
+   subroutine link2 (namef) ! { dg-error "is already being used as a SUBROUTINE" }
+     entry link2 (nameg)    ! { dg-error "is already being used as a SUBROUTINE" }
+     return
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/global_references_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/global_references_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/global_references_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/global_references_2.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! This program tests the patch for PR25964. This is a
+ ! regression that would not allow a common block and a statement
+ ! to share the same name.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+   common /foo/ a, b, c
+   foo (x) = x + 1.0
+   print *, foo (0.0)
+   end
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/gnu_logical_1.F gcc-4.1.0/gcc/testsuite/gfortran.dg/gnu_logical_1.F
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/gnu_logical_1.F	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/gnu_logical_1.F	Thu Dec 22 16:29:18 2005
***************
*** 0 ****
--- 1,91 ----
+ ! Testcases for the AND, OR and XOR functions (GNU intrinsics).
+ ! { dg-do run }
+ ! { dg-options "-ffixed-line-length-none" }
+       integer(kind=1) i1, j1
+       integer(kind=2) i2, j2
+       integer         i4, j4
+       integer(kind=8) i8, j8
+       logical(kind=1) l1, k1
+       logical(kind=2) l2, k2
+       logical         l4, k4
+       logical(kind=8) l8, k8
+ 
+ #define TEST_INTEGER(u,ukind,v,vkind) \
+       ukind = u;\
+       vkind = v;\
+       if (iand(u,v) /= and(ukind, vkind)) call abort;\
+       if (iand(u,v) /= and(vkind, ukind)) call abort;\
+       if (ieor(u,v) /= xor(ukind, vkind)) call abort;\
+       if (ieor(u,v) /= xor(vkind, ukind)) call abort;\
+       if (ior(u,v) /= or(ukind, vkind)) call abort;\
+       if (ior(u,v) /= or(vkind, ukind)) call abort
+ 
+       TEST_INTEGER(19,i1,6,j1)
+       TEST_INTEGER(19,i1,6,j2)
+       TEST_INTEGER(19,i1,6,j4)
+       TEST_INTEGER(19,i1,6,j8)
+ 
+       TEST_INTEGER(19,i2,6,j1)
+       TEST_INTEGER(19,i2,6,j2)
+       TEST_INTEGER(19,i2,6,j4)
+       TEST_INTEGER(19,i2,6,j8)
+ 
+       TEST_INTEGER(19,i4,6,j1)
+       TEST_INTEGER(19,i4,6,j2)
+       TEST_INTEGER(19,i4,6,j4)
+       TEST_INTEGER(19,i4,6,j8)
+ 
+       TEST_INTEGER(19,i8,6,j1)
+       TEST_INTEGER(19,i8,6,j2)
+       TEST_INTEGER(19,i8,6,j4)
+       TEST_INTEGER(19,i8,6,j8)
+ 
+ 
+ 
+ #define TEST_LOGICAL(u,ukind,v,vkind) \
+       ukind = u;\
+       vkind = v;\
+       if ((u .and. v) .neqv. and(ukind, vkind)) call abort;\
+       if ((u .and. v) .neqv. and(vkind, ukind)) call abort;\
+       if (((u .and. .not. v) .or. (.not. u .and. v)) .neqv. xor(ukind, vkind)) call abort;\
+       if (((u .and. .not. v) .or. (.not. u .and. v)) .neqv. xor(vkind, ukind)) call abort;\
+       if ((u .or. v) .neqv. or(ukind, vkind)) call abort;\
+       if ((u .or. v) .neqv. or(vkind, ukind)) call abort
+ 
+       TEST_LOGICAL(.true.,l1,.false.,k1)
+       TEST_LOGICAL(.true.,l1,.true.,k1)
+       TEST_LOGICAL(.true.,l1,.false.,k2)
+       TEST_LOGICAL(.true.,l1,.true.,k2)
+       TEST_LOGICAL(.true.,l1,.false.,k4)
+       TEST_LOGICAL(.true.,l1,.true.,k4)
+       TEST_LOGICAL(.true.,l1,.false.,k8)
+       TEST_LOGICAL(.true.,l1,.true.,k8)
+ 
+       TEST_LOGICAL(.true.,l2,.false.,k1)
+       TEST_LOGICAL(.true.,l2,.true.,k1)
+       TEST_LOGICAL(.true.,l2,.false.,k2)
+       TEST_LOGICAL(.true.,l2,.true.,k2)
+       TEST_LOGICAL(.true.,l2,.false.,k4)
+       TEST_LOGICAL(.true.,l2,.true.,k4)
+       TEST_LOGICAL(.true.,l2,.false.,k8)
+       TEST_LOGICAL(.true.,l2,.true.,k8)
+ 
+       TEST_LOGICAL(.true.,l4,.false.,k1)
+       TEST_LOGICAL(.true.,l4,.true.,k1)
+       TEST_LOGICAL(.true.,l4,.false.,k2)
+       TEST_LOGICAL(.true.,l4,.true.,k2)
+       TEST_LOGICAL(.true.,l4,.false.,k4)
+       TEST_LOGICAL(.true.,l4,.true.,k4)
+       TEST_LOGICAL(.true.,l4,.false.,k8)
+       TEST_LOGICAL(.true.,l4,.true.,k8)
+ 
+       TEST_LOGICAL(.true.,l8,.false.,k1)
+       TEST_LOGICAL(.true.,l8,.true.,k1)
+       TEST_LOGICAL(.true.,l8,.false.,k2)
+       TEST_LOGICAL(.true.,l8,.true.,k2)
+       TEST_LOGICAL(.true.,l8,.false.,k4)
+       TEST_LOGICAL(.true.,l8,.true.,k4)
+       TEST_LOGICAL(.true.,l8,.false.,k8)
+       TEST_LOGICAL(.true.,l8,.true.,k8)
+ 
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/gnu_logical_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/gnu_logical_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/gnu_logical_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/gnu_logical_2.f90	Sun Nov 13 09:33:19 2005
***************
*** 0 ****
--- 1,29 ----
+ ! Testcases for the AND, OR and XOR functions (GNU intrinsics).
+ ! { dg-do compile }
+   integer i
+   logical l
+   real r
+   complex c
+ 
+   print *, and(i,i)
+   print *, and(l,l)
+   print *, and(i,r) ! { dg-error "must be INTEGER or LOGICAL" }
+   print *, and(c,l) ! { dg-error "must be INTEGER or LOGICAL" }
+   print *, and(i,l) ! { dg-error "must have the same type" }
+   print *, and(l,i) ! { dg-error "must have the same type" }
+ 
+   print *, or(i,i)
+   print *, or(l,l)
+   print *, or(i,r) ! { dg-error "must be INTEGER or LOGICAL" }
+   print *, or(c,l) ! { dg-error "must be INTEGER or LOGICAL" }
+   print *, or(i,l) ! { dg-error "must have the same type" }
+   print *, or(l,i) ! { dg-error "must have the same type" }
+ 
+   print *, xor(i,i)
+   print *, xor(l,l)
+   print *, xor(i,r) ! { dg-error "must be INTEGER or LOGICAL" }
+   print *, xor(c,l) ! { dg-error "must be INTEGER or LOGICAL" }
+   print *, xor(i,l) ! { dg-error "must have the same type" }
+   print *, xor(l,i) ! { dg-error "must have the same type" }
+ 
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/goto_1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/goto_1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/goto_1.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/goto_1.f	Wed Jan 25 23:38:34 2006
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! { dg-options "-std=legacy" }
+ ! PR 18540
+ ! Verify that old-style cross-block GOTOs work
+       I = 1
+       GO TO 2
+       IF (I .EQ. 0) THEN
+  2       IF (I .NE. 1) CALL ABORT
+          I = 0
+          GOTO 3
+       ELSE
+  3       I = 2
+       END IF
+       IF (I .NE. 2) CALL ABORT
+       END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith.f90	Tue Jul 12 01:50:34 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith.f90	Thu Dec 22 16:41:41 2005
***************
*** 1,15 ****
  ! { dg-do run }
  ! PR15966, PR18781 & PR16531
  implicit none
! complex*16 x(2) 
! complex*8 a(2,2)
  character*4 z
  character z1(4)
  character*4 z2(2,2)
  character*80 line
! integer*4 i
! logical*4 l
! real*4 r
  character*8 c
  
  data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
--- 1,15 ----
  ! { dg-do run }
  ! PR15966, PR18781 & PR16531
  implicit none
! complex(kind=8) x(2) 
! complex a(2,2)
  character*4 z
  character z1(4)
  character*4 z2(2,2)
  character*80 line
! integer i
! logical l
! real r
  character*8 c
  
  data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
*************** call test (8h   hello)
*** 52,58 ****
  end
  
  subroutine test (h)
! integer*8 h
  character*80 line
  
  write (line, '(8a)') h
--- 52,58 ----
  end
  
  subroutine test (h)
! integer(kind=8) h
  character*80 line
  
  write (line, '(8a)') h
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith2.f90	Tue Jul 12 01:50:34 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith2.f90	Thu Dec 22 16:41:41 2005
***************
*** 2,8 ****
         ! Program to test Hollerith constant.
         Program test
         implicit none
!        integer* 4 i,j
         real r, x, y
         parameter (i = 4h1234)
         parameter (r = 4hdead)
--- 2,8 ----
         ! Program to test Hollerith constant.
         Program test
         implicit none
!        integer i,j
         real r, x, y
         parameter (i = 4h1234)
         parameter (r = 4hdead)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith_f95.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith_f95.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith_f95.f90	Tue Jul 12 01:50:34 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith_f95.f90	Thu Dec 22 16:29:18 2005
***************
*** 2,16 ****
  ! { dg-options "-std=f95" }
  ! PR15966, PR18781 & PR16531
  implicit none
! complex*16 x(2) 
! complex*8 a(2,2)
  character*4 z
  character z1(4)
  character*4 z2(2,2)
  character*80 line
! integer*4 i
! logical*4 l
! real*4 r
  character*8 c
  
  data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
--- 2,16 ----
  ! { dg-options "-std=f95" }
  ! PR15966, PR18781 & PR16531
  implicit none
! complex(kind=8) x(2) 
! complex a(2,2)
  character*4 z
  character z1(4)
  character*4 z2(2,2)
  character*80 line
! integer i
! logical l
! real r
  character*8 c
  
  data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
*************** call test (8h   hello)
*** 53,59 ****
  end
  
  subroutine test (h)
! integer*8 h
  character*80 line
  
  write (line, '(8a)') h
--- 53,59 ----
  end
  
  subroutine test (h)
! integer(kind=8) h
  character*80 line
  
  write (line, '(8a)') h
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith_legacy.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith_legacy.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/hollerith_legacy.f90	Tue Jul 12 01:50:34 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/hollerith_legacy.f90	Thu Dec 22 16:41:41 2005
***************
*** 2,16 ****
  ! { dg-options "-std=legacy" }
  ! PR15966, PR18781 & PR16531
  implicit none
! complex*16 x(2) 
! complex*8 a(2,2)
  character*4 z
  character z1(4)
  character*4 z2(2,2)
  character*80 line
! integer*4 i
! logical*4 l
! real*4 r
  character*8 c
  
  data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
--- 2,16 ----
  ! { dg-options "-std=legacy" }
  ! PR15966, PR18781 & PR16531
  implicit none
! complex(kind=8) x(2) 
! complex a(2,2)
  character*4 z
  character z1(4)
  character*4 z2(2,2)
  character*80 line
! integer i
! logical l
! real r
  character*8 c
  
  data x /16Habcdefghijklmnop, 16Hqrstuvwxyz012345/
*************** call test (8h   hello)
*** 53,59 ****
  end
  
  subroutine test (h)
! integer*8 h
  character*80 line
  
  write (line, '(8a)') h
--- 53,59 ----
  end
  
  subroutine test (h)
! integer(kind=8) h
  character*80 line
  
  write (line, '(8a)') h
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/host_dummy_index_1.f90	Mon Oct 17 20:52:37 2005
***************
*** 0 ****
--- 1,29 ----
+ ! { dg-do run }
+ ! Tests the fix for PR23446. Based on PR example.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ PROGRAM TST
+   INTEGER IMAX
+   INTEGER :: A(4) = 1
+   IMAX=2
+ 
+   CALL S(A)
+   CALL T(A)
+   CALL U(A)
+   if ( ALL(A.ne.(/2,2,3,4/))) CALL ABORT ()
+ 
+ CONTAINS
+   SUBROUTINE S(A)
+     INTEGER A(IMAX)
+     a = 2
+   END SUBROUTINE S
+   SUBROUTINE T(A)
+     INTEGER A(3:IMAX+4)
+     A(5:IMAX+4) = 3
+   END SUBROUTINE T
+   SUBROUTINE U(A)
+     INTEGER A(2,IMAX)
+     A(2,2) = 4
+   END SUBROUTINE U
+ ENDPROGRAM TST
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/host_used_types_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/host_used_types_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/host_used_types_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/host_used_types_1.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,40 ----
+ ! { dg-do compile }
+ ! Tests the fix for PR25532, which was a regression introduced by
+ ! the fix for PR20244.
+ !
+ ! Contributed by Erik Edelmann  <eedelman@gcc.gnu.org>
+ module ModelParams
+         implicit none
+ 
+         type ReionizationParams
+              real   :: fraction
+         end type ReionizationParams
+ 
+         type CAMBparams
+              type(ReionizationParams) :: Reion
+          end type CAMBparams
+ 
+         type(CAMBparams) CP
+ end module ModelParams
+ 
+ 
+ module ThermoData
+     use ModelParams
+     implicit none
+ 
+ contains
+ 
+     subroutine inithermo()
+         use ModelParams
+         if (0 < CP%Reion%fraction) then
+         end if
+     end subroutine inithermo
+ 
+ ! The bug expressed itself in this subroutine because the component type
+ ! information was not being copied from the parent namespace.
+     subroutine SetTimeSteps
+         if (0 < CP%Reion%fraction) then
+         end if
+     end subroutine SetTimeSteps
+ 
+ end module ThermoData
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/ichar_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/ichar_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/ichar_1.f90	Mon Apr 25 00:09:17 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/ichar_1.f90	Sun Oct 23 22:16:38 2005
*************** subroutine test (c)
*** 14,19 ****
--- 14,27 ----
  end subroutine
  
  program ichar_1
+    type derivedtype
+       character(len=4) :: addr
+    end type derivedtype
+ 
+    type derivedtype1
+       character(len=1) :: addr
+    end type derivedtype1
+ 
     integer i
     integer, parameter :: j = 2
     character(len=8) :: c = 'abcd'
*************** program ichar_1
*** 21,26 ****
--- 29,36 ----
     character(len=1) :: g2(2,2)
     character*1, parameter :: s1 = 'e'
     character*2, parameter :: s2 = 'ef'
+    type(derivedtype) :: dt
+    type(derivedtype1) :: dt1
  
     if (ichar(c(3:3)) /= 97) call abort
     if (ichar(c(:1)) /= 97) call abort
*************** program ichar_1
*** 45,50 ****
--- 55,69 ----
  
     if (ichar(c(3:3)) /= 97) call abort
     i = ichar(c)      ! { dg-error "must be of length one" "" }
+    
+    i = ichar(dt%addr(1:1))
+    i = ichar(dt%addr) ! { dg-error "must be of length one" "" }
+    i = ichar(dt%addr(1:2)) ! { dg-error "must be of length one" "" }
+    i = ichar(dt%addr(1:)) ! { dg-error "must be of length one" "" }
+    
+    i = ichar(dt1%addr(1:1))
+    i = ichar(dt1%addr)
+ 
  
     call test(g1(1))
  end program ichar_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/ichar_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/ichar_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/ichar_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/ichar_2.f90	Mon Jan  9 02:54:25 2006
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do run }
+ ! Test char and ichar intrinsic functions
+ Program test
+ integer i
+ 
+ if (ichar (char (0)) .ne. 0) call abort ()
+ if (ichar (char (255)) .ne. 255) call abort ()
+ if (ichar (char (127)) .ne. 127) call abort ()
+ 
+ i = 0
+ if (ichar (char (i)) .ne. i) call abort ()
+ i = 255
+ if (ichar (char (i)) .ne. i) call abort ()
+ i = 127
+ if (ichar (char (i)) .ne. i) call abort ()
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/imag_1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/imag_1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/imag_1.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/imag_1.f	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+       program bug
+       implicit none
+       complex(kind=8) z
+       double precision x,y
+       z = cmplx(1.e0_8,2.e0_8)
+       y = imag(z)
+       y = imagpart(z)
+       x = realpart(z)
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/imag_2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/imag_2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/imag_2.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/imag_2.f	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do compile }
+ ! { dg-options "-std=f95" }
+       program bug
+       implicit none
+       complex(kind=8) z
+       double precision x
+       z = cmplx(1.e0_8, 2.e0_8)
+       x = imag(z)         ! { dg-error "has no IMPLICIT type" "" }
+       x = imagpart(z)     ! { dg-error "has no IMPLICIT type" "" }
+       x = realpart(z)     ! { dg-error "has no IMPLICIT type" "" }
+       x = imag(x)         ! { dg-error "has no IMPLICIT type" "" }
+       x = imagpart(x)     ! { dg-error "has no IMPLICIT type" "" }
+       x = realpart(x)     ! { dg-error "has no IMPLICIT type" "" }
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_4.f90	Fri Apr 29 00:13:08 2005
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! Verify error diagnosis for invalid combinations of IMPLICIT statements
+ IMPLICIT NONE
+ IMPLICIT NONE ! { dg-error "Duplicate" }
+ END
+ 
+ SUBROUTINE a
+ IMPLICIT REAL(b-j) ! { dg-error "cannot follow" }
+ implicit none      ! { dg-error "cannot follow" }
+ END SUBROUTINE a
+ 
+ subroutine b
+ implicit none
+ implicit real(g-k) ! { dg-error "Cannot specify" }
+ end subroutine b
+ 
+ subroutine c
+ implicit real(a-b)
+ implicit integer (b-c) ! { dg-error "already" }
+ implicit real(d-f), complex(f-g) ! { dg-error "already" }
+ end subroutine c
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_6.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_6.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_6.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_6.f90	Thu Nov 10 21:49:29 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR 24643
+ ! substring references on implicitly typed CHARACTER variables didn't work
+         PROGRAM P
+         IMPLICIT CHARACTER*8 (Y)
+         YLOCAL='A'
+         YBTABLE=YLOCAL(1:2)
+         END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_7.f90	Thu Nov 10 21:49:29 2005
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! PR 24643
+ ! This tests a case where the compiler used to ICE in an early
+ ! incarnation of the patch
+ ylocal=1
+ ybtable=ylocal(1:2)  ! { dg-error "Unclassifiable" }
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_actual.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_actual.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/implicit_actual.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/implicit_actual.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,34 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ ! Tests patch for problem that was found whilst investigating
+ ! PR24158. The call to foo would cause an ICE because the
+ ! actual argument was of a type that was not defined.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+ module global
+   type :: t2
+     type(t3), pointer :: d
+   end type t2
+ end module global
+ 
+ program snafu
+   use global
+   implicit type (t3) (z)
+ 
+   call foo (zin) ! { dg-error "defined|Type/rank" }
+ 
+ contains
+ 
+   subroutine foo (z)
+ 
+     type :: t3
+       integer :: i
+     end type t3
+ 
+     type(t3)  :: z
+     z%i = 1
+ 
+   end subroutine foo
+ end program snafu
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/impure_assignment_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/impure_assignment_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/impure_assignment_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/impure_assignment_1.f90	Mon Feb 13 19:32:02 2006
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do compile }
+ ! Tests fix for PR25059, which gave and ICE after error message  
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ MODULE M1
+  TYPE T1
+   INTEGER :: I
+  END TYPE T1
+  INTERFACE ASSIGNMENT(=)
+    MODULE PROCEDURE S1
+  END INTERFACE
+ CONTAINS
+    SUBROUTINE S1(I,J)
+      TYPE(T1), INTENT(OUT):: I
+      TYPE(T1), INTENT(IN) :: J
+      I%I=J%I**2
+    END SUBROUTINE S1
+ END MODULE M1
+ 
+ USE M1
+ CONTAINS
+ PURE SUBROUTINE S2(I,J)
+      TYPE(T1), INTENT(OUT):: I
+      TYPE(T1), INTENT(IN) :: J
+      I=J                      ! { dg-error "must be PURE" }
+ END SUBROUTINE S2
+ END
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/in_pack_rank7.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/in_pack_rank7.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/in_pack_rank7.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/in_pack_rank7.f90	Wed May  4 21:38:23 2005
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do run }
+ ! PR 21354:  Rank 7 was not handled correctly by many library
+ !            functions, including in_pack.
+ program main
+   real, dimension (2,2,2,2,2,2,2):: a
+   a = 1.0
+   call foo(a(2:1:-1,:,:,:,:,:,:))
+ end program main
+ 
+ subroutine foo(a)
+   real, dimension (2,2,2,2,2,2,2):: a
+ end subroutine foo
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/initialization_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/initialization_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/initialization_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/initialization_1.f90	Sat Jan 14 06:31:08 2006
***************
*** 0 ****
--- 1,38 ----
+ !==================initialization_1.f90======================
+ !
+ ! { dg-do compile }
+ ! Tests fix for PR25018 in which an ICE resulted from using a
+ ! variable in a parameter initialization expression. In the course
+ ! of developing the fix, various other constraints and limitations
+ ! were tested.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ module const
+ ! The next line is the original error
+   real(8), parameter :: g = - sqrt(2._8) * Gf ! { dg-error "not been declared or is a variable" }
+ contains
+   subroutine foo(ch1, x, y)
+     character(*)        :: ch1
+ 
+ ! This is OK because it is a restricted expression.
+     character(len(ch1)) :: ch2
+ 
+     real(8) :: x (1:2, *)
+     real(8) :: y (0:,:)
+ 
+ ! However, this gives a warning because it is an initialization expression.
+     integer :: l1 = len (ch1)     ! { dg-warning "assumed character length variable" }
+ 
+ ! Dependence on upper bound of final dimension of assumed size array knocks these out.
+     integer :: m1 = size (x, 2)   ! { dg-error "not a valid dimension index" }
+     integer :: m2(2) = shape (x)  ! { dg-error "assumed size array" }
+ 
+ ! These are warnings because they are gfortran extensions.
+     integer :: m3 = size (x, 1)   ! { dg-warning "upper bound in the last dimension" }
+     integer :: m4(2) = shape (z)  ! { dg-warning "Evaluation of nonstandard initialization" }
+ 
+ ! This does not depend on non-constant properties.
+     real(8) :: big = huge (x)
+   end subroutine foo  
+ end module const
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/inquire_9.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/inquire_9.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/inquire_9.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/inquire_9.f90	Tue Nov 22 10:58:47 2005
***************
*** 0 ****
--- 1,24 ----
+ ! PR fortran/24774
+ ! { dg-do run }
+   logical :: l
+   l = .true.
+   inquire (file='inquire_9 file that should not exist', exist=l)
+   if (l) call abort
+   l = .true.
+   inquire (unit=-16, exist=l)
+   if (l) call abort
+   open (unit=16, file='inquire_9.tst')
+   print (unit=16, fmt='(a)'), 'Test'
+   l = .false.
+   inquire (unit=16, exist=l)
+   if (.not.l) call abort
+   l = .false.
+   inquire (file='inquire_9.tst', exist=l)
+   if (.not.l) call abort
+   close (unit=16)
+   l = .false.
+   inquire (file='inquire_9.tst', exist=l)
+   if (.not.l) call abort
+   open (unit=16, file='inquire_9.tst')
+   close (unit=16, status='delete')
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/intent_out_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/intent_out_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/intent_out_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/intent_out_1.f90	Mon Jan 30 05:45:06 2006
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! Tests the fix for PRs 18578, 18579 and their repeats 20857 and 20885.
+ ! Contributed by Paul Thomas  <pault@gcc@gnu.org>
+   real, parameter :: a =42.0
+   real :: b
+   call foo(b + 2.0)    ! { dg-error "must be definable" }
+   call foo(a)          ! { dg-error "must be definable" }
+   call bar(b + 2.0)    ! { dg-error "must be definable" }
+   call bar(a)          ! { dg-error "must be definable" }
+ contains
+   subroutine foo(a)
+     real, intent(out) :: a
+     a = 0.0
+   end subroutine foo
+   subroutine bar(a)
+     real, intent(INout) :: a
+     a = 0.0
+   end subroutine bar
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/intent_used_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/intent_used_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/intent_used_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/intent_used_1.f90	Mon Jan 23 05:37:47 2006
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! Tests the fix for the regression caused by the patch for PR20869
+ ! which itself is tested and described by intrinsic_external_1.f90
+ !
+ ! reported to the fortran list by Dominique Dhumieres  dominiq@lps.ens.fr
+ 
+ MODULE global
+    INTERFACE
+       SUBROUTINE foo(i, j)
+       IMPLICIT NONE
+       INTEGER :: j
+       integer, DIMENSION(j,*) :: i ! This constituted usage of j and so triggered....
+       INTENT (IN) j  ! Would give "Cannot change attributes of symbol at (1) after it has been used"
+       INTENT (INOUT) i
+       END SUBROUTINE foo
+    END INTERFACE
+ END MODULE global
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/interface_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/interface_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/interface_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/interface_1.f90	Thu Sep 22 22:47:45 2005
***************
*** 0 ****
--- 1,40 ----
+ ! { dg-do compile }
+ ! This program would segfault without the patch for PR fortran/24005.
+ module y
+   !
+   ! If private statement is removed, then we get a bunch of errors
+   !
+   private f
+   !
+   ! If we rename 'f' in module y to say 'g', then gfortran correctly
+   ! identifies ambiguous as being ambiguous.
+   !
+   interface ambiguous
+     module procedure f
+   end interface
+ 
+   contains
+ 
+     real function f(a)
+       real a
+       f = a
+     end function
+ 
+ end module y
+ 
+ module z
+ 
+   use y
+ 
+   interface ambiguous
+     module procedure f    ! { dg-error "in generic interface" "" }
+   end interface
+ 
+   contains
+ 
+     real function f(a)
+       real a
+       f = a
+     end function
+ 
+ end module z
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/interface_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/interface_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/interface_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/interface_2.f90	Fri Oct 28 20:05:56 2005
***************
*** 0 ****
--- 1,29 ----
+ ! { dg-do compile }
+ ! PR fortran/24545
+ MODULE Compare_Float_Numbers
+ 
+   IMPLICIT NONE
+ 
+   INTERFACE Compare_Float
+     MODULE PROCEDURE Compare_Float_Single
+   END INTERFACE Compare_Float
+ 
+   INTERFACE OPERATOR (.EqualTo.)
+     MODULE PROCEDURE Is_Equal_To_Single
+   END INTERFACE OPERATOR (.EqualTo.)
+ 
+ CONTAINS
+ 
+   FUNCTION Is_Equal_To_Single(x, y) RESULT(Equal_To)
+     REAL(4), INTENT(IN) :: x, y
+     LOGICAL :: Equal_To
+     Equal_To = .true.
+   END FUNCTION Is_Equal_To_Single
+ 
+   FUNCTION Compare_Float_Single(x, y) RESULT(Compare)
+     REAL(4), INTENT(IN) :: x, y
+     LOGICAL :: Compare
+     Compare = .true.
+   END FUNCTION Compare_Float_Single
+ 
+ END MODULE Compare_Float_Numbers
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/internal_dummy_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/internal_dummy_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/internal_dummy_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/internal_dummy_1.f90	Mon Feb 13 21:35:09 2006
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! Tests the fix for 20861, in which internal procedures were permitted to
+ ! be dummy arguments.
+ !
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ !
+ CALL DD(TT) ! { dg-error "is not allowed as an actual argument" }
+ CONTAINS
+ SUBROUTINE DD(F)
+   INTERFACE
+    SUBROUTINE F(X)
+     REAL :: X
+    END SUBROUTINE F
+   END INTERFACE
+ END SUBROUTINE DD
+ SUBROUTINE TT(X)
+   REAL :: X
+ END SUBROUTINE
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/internal_references_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/internal_references_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/internal_references_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/internal_references_1.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do compile }
+ ! This tests the patch for PRs 24327, 25024 & 25625, which
+ ! are all connected with references to internal procedures.
+ ! This is a composite of the PR testcases; and each is
+ ! labelled by PR.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ ! PR25625 - would neglect to point out that there were 2 subroutines p.
+ module m
+   implicit none
+ contains
+ 
+   subroutine p (i)   ! { dg-error "is already defined" }
+     integer :: i
+   end subroutine
+ 
+   subroutine p (i)   ! { dg-error "is already defined" }
+    integer :: i
+   end subroutine
+ end module
+ !
+ ! PR25124 - would happily ignore the declaration of foo in the main program.
+ program test
+ real :: foo, x      ! { dg-error "explicit interface and must not have attributes declared" }
+ x = bar ()          ! This is OK because it is a regular reference.
+ x = foo ()
+ contains
+     function foo () ! { dg-error "explicit interface and must not have attributes declared" }
+       foo = 1.0
+     end function foo
+     function bar ()
+       bar = 1.0
+     end function bar
+ end program test
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/internal_references_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/internal_references_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/internal_references_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/internal_references_2.f90	Fri Jan 27 22:16:04 2006
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do compile }
+ ! This tests the fix for the regression caused by the internal references
+ ! patc, which is tested by internal_references_1.f90. Reported as PR25901.
+ !
+ ! Based on test cases provided by Toon Moene  <toon@moene.indiv.nluug.nl>
+ !                          and by Martin Reinecke <martin@mpa-garching.mpg.de>
+ module aap
+   interface s
+     module procedure sub,sub1
+   end interface
+ contains
+   subroutine sub1(i)
+     integer i
+     real a
+     call sub(a)      ! For the original test, this "defined" the procedure.
+   end subroutine sub1
+   subroutine sub(a)  ! Would give an error on "already defined" here
+     real a
+   end subroutine sub
+ end module aap
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/intrinsic_external_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/intrinsic_external_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/intrinsic_external_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/intrinsic_external_1.f90	Wed Jan 18 18:56:43 2006
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR fortran/20869
+ ! Note 12.11 "A name shall not appear in both an EXTERNAL and an
+ ! INTRINSIC statement in the same scoping unit.
+ program u
+   intrinsic :: nint
+   external :: nint  ! { dg-error "EXTERNAL attribute conflicts with INTRINSIC attribute" }
+ end program u
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/io_constraints_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/io_constraints_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/io_constraints_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/io_constraints_1.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,78 ----
+ ! { dg-do compile }
+ ! Part I of the test  of the IO constraints patch, which fixes PRs:
+ ! PRs 25053, 25063, 25064, 25066, 25067, 25068, 25069, 25307 and 20862.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ module fails
+ 
+  2000 format (1h , 2i6)                        ! { dg-error "Format statement in module" }
+ 
+ end module fails
+ 
+ module global
+ 
+   integer :: modvar
+   namelist /NL/ modvar
+ 
+ contains
+ 
+   subroutine foo (i)
+     integer :: i
+     write (*, 100) i
+  100 format (1h , "i=", i6)                     ! This is OK.
+   end subroutine foo
+ 
+ end module global
+ 
+  use global
+  integer :: a,b, c(20)
+  integer(8) :: ierr
+  character*80 :: buffer(3)
+ 
+ ! Appending to a USE associated namelist is an extension.
+ 
+  NAMELIST /NL/ a,b                              ! { dg-warning "already is USE associated" }
+ 
+  a=1 ; b=2
+ 
+ !9.2.2.1:
+  write(c, *) a, b                               !  { dg-error "array" }
+ !Was correctly picked up before patch.
+  write(buffer((/3,1,2/)), *) a, b               !  { dg-error "vector subscript" }
+ 
+ !9.2.2.2 and one of 9.4.1
+ !________________________
+ 
+  write(6, NML=NL, FMT = '(i6)')                 !  { dg-error "group name and format" }
+  write(6, NML=NL, FMT = 200)                    !  { dg-error "group name and format" }
+ 
+ !9.4.1
+ !_____
+ !
+ 
+ ! R912
+ !Was correctly picked up before patch.
+  write(6, NML=NL, iostat = ierr)                ! { dg-warning "requires default INTEGER" }
+  READ(1, fmt='(i6)', advance='NO', size = ierr) ! { dg-warning "requires default INTEGER" }
+ 
+ ! Constraints
+ !Was correctly picked up before patch.
+  write(1, fmt='(i6)', end = 100) a              ! { dg-error "END tag" }
+ !Was correctly picked up before patch.
+  write(1, fmt='(i6)', eor = 100) a              ! { dg-error "EOR tag" }
+ !Was correctly picked up before patch.
+  write(1, fmt='(i6)', size = b) a               ! { dg-error "SIZE=specifier not allowed" }
+ 
+ 
+  READ(1, fmt='(i6)', end = 900) a               ! { dg-error "not defined" }
+  READ(1, fmt='(i6)', eor = 900, advance='NO') a ! { dg-error "not defined" }
+  READ(1, fmt='(i6)', ERR = 900) a               ! { dg-error "not defined" }
+ 
+ !Was correctly picked up before patch.
+  READ(1, fmt=800) a                             ! { dg-error "not defined" }
+ 
+ 
+ 100 continue
+ 200 format (2i6)
+  END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/io_constraints_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/io_constraints_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/io_constraints_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/io_constraints_2.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,69 ----
+ ! { dg-do compile }
+ ! Part II of the test  of the IO constraints patch, which fixes PRs:
+ ! PRs 25053, 25063, 25064, 25066, 25067, 25068, 25069, 25307 and 20862.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ 
+ module global
+ 
+   integer :: modvar
+   namelist /NL/ modvar
+ 
+ contains
+ 
+   subroutine foo (i)
+     integer :: i
+     write (*, 100) i
+  100 format (1h , "i=", i6)                     ! This is OK.
+   end subroutine foo
+ 
+ end module global
+ 
+  use global
+  integer :: a,b, c(20)
+  integer(8) :: ierr
+  character*80 :: buffer(3)
+ 
+ 
+ ! Appending to a USE associated namelist is an extension.
+ 
+  NAMELIST /NL/ a,b                              ! { dg-warning "already is USE associated" }
+ 
+  a=1 ; b=2
+ 
+  write(*, NML=NL) z                             !  { dg-error "followed by IO-list" }
+ !Was correctly picked up before patch.
+  print NL, z                                    !  { dg-error "followed by IO-list" }
+ !
+ ! Not allowed with internal unit
+ !Was correctly picked up before patch.
+  write(buffer, NML=NL)                          !  { dg-error "incompatible with namelist" }
+ !Was correctly picked up before patch.
+  write(buffer, fmt='(i6)', REC=10) a            !  { dg-error "REC tag" }
+  write(buffer, fmt='(i6)', END=10) a            !  { dg-error "END tag" }
+ 
+ ! Not allowed with REC= specifier
+ !Was correctly picked up before patch.
+  read(10, REC=10, END=100)                      !  { dg-error "END tag is not allowed" }
+  write(*, *, REC=10)                            !  { dg-error "FMT=" }
+ 
+ ! Not allowed with an ADVANCE=specifier
+  READ(buffer, fmt='(i6)', advance='YES') a      ! { dg-error "internal file" }
+  READ(1, NML=NL, advance='YES')                 ! { dg-error "NAMELIST IO is not allowed" }
+ 
+  write(1, fmt='(i6)', advance='YES', size = c(1)) a ! { dg-error "output" }
+  write(1, fmt='(i6)', advance='YES', eor = 100) a   ! { dg-error "output" }
+ 
+  read(1, fmt='(i6)', advance='YES', size = c(1)) a  ! { dg-error "ADVANCE = 'NO'" }
+  read(1, fmt='(i6)', advance='YES', eor = 100) a    ! { dg-error "ADVANCE = 'NO'" }
+ 
+  READ(1, fmt='(i6)', advance='NO', size = buffer) a ! { dg-error "INTEGER" }
+ !Was correctly picked up before patch. -correct syntax error
+  READ(1, fmt='(i6)', advance='YES', size = 10) a    ! { dg-error "Syntax error" }
+ 
+  READ(1, fmt='(i6)', advance='MAYBE')               !  { dg-error "YES or NO" }
+ 
+ 100 continue
+ 200 format (2i6)
+  END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/iomsg_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/iomsg_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/iomsg_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/iomsg_1.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,28 ----
+ ! { dg-do run }
+ ! Test implementation of the iomsg tag.
+ program iomsg_test
+   character(len=70) ch
+ 
+   ! Test that iomsg is left unchanged with no error
+   ch = 'asdf'
+   open(10, status='scratch', iomsg=ch, iostat=i) ! { dg-warning "Fortran 2003: IOMSG tag" }
+   if (ch .ne. 'asdf') call abort
+ 
+   ! Test iomsg with data transfer statement
+   read(10,'(I2)', iomsg=ch, end=100) k ! { dg-warning "Fortran 2003: IOMSG tag" }
+   call abort
+ 100 continue
+   if (ch .ne. 'End of file') call abort
+ 
+   ! Test iomsg with open
+   open (-3, err=200, iomsg=ch) ! { dg-warning "Fortran 2003: IOMSG tag" }
+ 
+   call abort
+ 200 continue
+   if (ch .ne. 'Bad unit number in OPEN statement') call abort
+ 
+   ! Test iomsg with close
+   close(23,status="no_idea", err=500, iomsg=ch) ! { dg-warning "Fortran 2003: IOMSG tag" }
+ 500 continue
+   if (ch .ne. "Bad STATUS parameter in CLOSE statement") call abort
+ end program iomsg_test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/label_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/label_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/label_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/label_1.f90	Sat Dec 31 18:55:30 2005
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! Test the fix for PR 25106 and 25055.
+ 
+ program a
+ 0056780 continue    ! { dg-error "Too many digits" }
+ 0 continue          ! { dg-error "Statement label at" }
+   stop 001234       ! { dg-error "Too many digits" }
+ end program a
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/label_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/label_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/label_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/label_2.f90	Fri Jan  6 20:04:15 2006
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do compile }
+ ! PR fortran/24640.  We needed to check that whitespace follows
+ ! a statement label in free form.
+ !
+ program pr24640
+ 
+ 10: a=10   ! { dg-error "character in statement" }
+ 
+ end program
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/label_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/label_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/label_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/label_3.f90	Fri Feb 10 23:20:10 2006
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do compile }
+ ! PR fortran/25756.
+ ! This used to ICE due to the space after the label.
+ 1 ! { dg-warning "Ignoring statement label in empty statement" }
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/large_integer_kind_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/large_integer_kind_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/large_integer_kind_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/large_integer_kind_1.f90	Thu Jun 23 18:50:25 2005
***************
*** 0 ****
--- 1,38 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target fortran_large_int }
+ 
+ module testmod
+   integer,parameter :: k = selected_int_kind (range (0_8) + 1)
+ contains
+   subroutine testoutput (a,b,length,f)
+     integer(kind=k),intent(in) :: a
+     integer(kind=8),intent(in) ::  b
+     integer,intent(in) :: length
+     character(len=*),intent(in) :: f
+ 
+     character(len=length) :: ca
+     character(len=length) :: cb
+ 
+     write (ca,f) a
+     write (cb,f) b
+     if (ca /= cb) call abort
+   end subroutine testoutput
+ end module testmod
+ 
+ 
+ ! Testing I/O of large integer kinds (larger than kind=8)
+ program test
+   use testmod
+   implicit none
+ 
+   integer(kind=k) :: x
+   character(len=50) :: c1, c2
+ 
+   call testoutput (0_k,0_8,50,'(I50)')
+   call testoutput (1_k,1_8,50,'(I50)')
+   call testoutput (-1_k,-1_8,50,'(I50)')
+   x = huge(0_8)
+   call testoutput (x,huge(0_8),50,'(I50)')
+   x = -huge(0_8)
+   call testoutput (x,-huge(0_8),50,'(I50)')
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/large_integer_kind_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/large_integer_kind_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/large_integer_kind_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/large_integer_kind_2.f90	Mon Oct  3 07:22:20 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target fortran_large_int }
+ 
+ ! Testing library calls on large integer kinds (larger than kind=8)
+   implicit none
+ 
+   integer,parameter :: k = selected_int_kind (range (0_8) + 1)
+ 
+   integer(kind=k) :: i, j
+   integer(8) :: a, b
+ 
+   i = 0; j = 1; a = i; b = j
+   if (i ** j /= a ** b) call abort
+ 
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_1.f90	Thu Jun 23 18:50:25 2005
***************
*** 0 ****
--- 1,77 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target fortran_large_real }
+ 
+ module testmod
+   integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
+ contains
+   subroutine testoutput (a,b,length,f)
+     real(kind=k),intent(in) :: a
+     real(kind=8),intent(in) ::  b
+     integer,intent(in) :: length
+     character(len=*),intent(in) :: f
+ 
+     character(len=length) :: ca
+     character(len=length) :: cb
+ 
+     write (ca,f) a
+     write (cb,f) b
+     if (ca /= cb) call abort
+   end subroutine testoutput
+ 
+   subroutine outputstring (a,f,s)
+     real(kind=k),intent(in) :: a
+     character(len=*),intent(in) :: f
+     character(len=*),intent(in) :: s
+ 
+     character(len=len(s)) :: c
+     
+     write (c,f) a
+     if (c /= s) call abort
+   end subroutine outputstring
+ end module testmod
+ 
+ 
+ ! Testing I/O of large real kinds (larger than kind=8)
+ program test
+   use testmod
+   implicit none
+ 
+   real(kind=k) :: x
+   character(len=20) :: c1, c2
+ 
+   call testoutput (0.0_k,0.0_8,40,'(F40.35)')
+ 
+   call testoutput (1.0_k,1.0_8,40,'(F40.35)')
+   call testoutput (0.1_k,0.1_8,15,'(F15.10)')
+   call testoutput (1e10_k,1e10_8,15,'(F15.10)')
+   call testoutput (7.51e100_k,7.51e100_8,15,'(F15.10)')
+   call testoutput (1e-10_k,1e-10_8,15,'(F15.10)')
+   call testoutput (7.51e-100_k,7.51e-100_8,15,'(F15.10)')
+ 
+   call testoutput (-1.0_k,-1.0_8,40,'(F40.35)')
+   call testoutput (-0.1_k,-0.1_8,15,'(F15.10)')
+   call testoutput (-1e10_k,-1e10_8,15,'(F15.10)')
+   call testoutput (-7.51e100_k,-7.51e100_8,15,'(F15.10)')
+   call testoutput (-1e-10_k,-1e-10_8,15,'(F15.10)')
+   call testoutput (-7.51e-100_k,-7.51e-100_8,15,'(F15.10)')
+ 
+   x = huge(x)
+   call outputstring (2*x,'(F20.15)','           +Infinity')
+   call outputstring (-2*x,'(F20.15)','           -Infinity')
+ 
+   write (c1,'(G20.10E5)') x
+   write (c2,'(G20.10E5)') -x
+   if (c2(1:1) /= '-') call abort
+   c2(1:1) = ' '
+   if (c1 /= c2) call abort
+ 
+   x = tiny(x)
+   call outputstring (x,'(F20.15)','   0.000000000000000')
+   call outputstring (-x,'(F20.15)','   0.000000000000000')
+ 
+   write (c1,'(G20.10E5)') x
+   write (c2,'(G20.10E5)') -x
+   if (c2(1:1) /= '-') call abort
+   c2(1:1) = ' '
+   if (c1 /= c2) call abort
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_2.F90 gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_2.F90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_2.F90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_2.F90	Mon Oct  3 07:22:20 2005
***************
*** 0 ****
--- 1,106 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target fortran_large_real }
+ 
+ ! Testing library calls on large real kinds (larger than kind=8)
+   implicit none
+ 
+   integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
+   real(8),parameter :: eps = 1e-8
+ 
+   real(kind=k) :: x, x1
+   real(8) :: y, y1
+   complex(kind=k) :: z, z1
+   complex(8) :: w, w1
+ 
+ #define TEST_FUNCTION(func,val) \
+  x = val ;\
+  y = x ;\
+  x = func (x) ;\
+  y = func (y) ;\
+  if (abs((y - x) / y) > eps) call abort
+   
+ #define CTEST_FUNCTION(func,valc) \
+  z = valc ;\
+  w = z ;\
+  z = func (z) ;\
+  w = func (w) ;\
+  if (abs((z - w) / w) > eps) call abort
+ 
+  TEST_FUNCTION(cos,17.456)
+  TEST_FUNCTION(sin,17.456)
+  TEST_FUNCTION(tan,1.456)
+  TEST_FUNCTION(cosh,-2.45)
+  TEST_FUNCTION(sinh,7.1)
+  TEST_FUNCTION(tanh,12.7)
+  TEST_FUNCTION(acos,0.78)
+  TEST_FUNCTION(asin,-0.24)
+  TEST_FUNCTION(atan,-17.123)
+  TEST_FUNCTION(acosh,0.2)
+  TEST_FUNCTION(asinh,0.3)
+  TEST_FUNCTION(atanh,0.4)
+  TEST_FUNCTION(exp,1.74)
+  TEST_FUNCTION(log,0.00178914)
+  TEST_FUNCTION(log10,123789.123)
+  TEST_FUNCTION(sqrt,789.1356)
+  TEST_FUNCTION(erf,1.45123231)
+  TEST_FUNCTION(erfc,-0.123789)
+ 
+  CTEST_FUNCTION(cos,(17.456,-1.123))
+  CTEST_FUNCTION(sin,(17.456,-7.6))
+  CTEST_FUNCTION(exp,(1.74,-1.01))
+  CTEST_FUNCTION(log,(0.00178914,-1.207))
+  CTEST_FUNCTION(sqrt,(789.1356,2.4))
+ 
+ #define TEST_POWER(val1,val2) \
+  x = val1 ; \
+  y = x ; \
+  x1 = val2 ; \
+  y1 = x1; \
+  if (abs((x**x1 - y**y1)/(y**y1)) > eps) call abort
+  
+ #define CTEST_POWER(val1,val2) \
+  z = val1 ; \
+  w = z ; \
+  z1 = val2 ; \
+  w1 = z1; \
+  if (abs((z**z1 - w**w1)/(w**w1)) > eps) call abort
+ 
+  CTEST_POWER (1.0,1.0)
+  CTEST_POWER (1.0,5.4)
+  CTEST_POWER (1.0,-5.4)
+  CTEST_POWER (1.0,0.0)
+  CTEST_POWER (-1.0,1.0)
+  CTEST_POWER (-1.0,5.4)
+  CTEST_POWER (-1.0,-5.4)
+  CTEST_POWER (-1.0,0.0)
+  CTEST_POWER (0.0,1.0)
+  CTEST_POWER (0.0,5.4)
+  CTEST_POWER (0.0,-5.4)
+  CTEST_POWER (0.0,0.0)
+  CTEST_POWER (7.6,1.0)
+  CTEST_POWER (7.6,5.4)
+  CTEST_POWER (7.6,-5.4)
+  CTEST_POWER (7.6,0.0)
+  CTEST_POWER (-7.6,1.0)
+  CTEST_POWER (-7.6,5.4)
+  CTEST_POWER (-7.6,-5.4)
+  CTEST_POWER (-7.6,0.0)
+ 
+  CTEST_POWER ((10.78,123.213),(14.123,13279.5))
+  CTEST_POWER ((-10.78,123.213),(14.123,13279.5))
+  CTEST_POWER ((10.78,-123.213),(14.123,13279.5))
+  CTEST_POWER ((10.78,123.213),(-14.123,13279.5))
+  CTEST_POWER ((10.78,123.213),(14.123,-13279.5))
+  CTEST_POWER ((-10.78,-123.213),(14.123,13279.5))
+  CTEST_POWER ((-10.78,123.213),(-14.123,13279.5))
+  CTEST_POWER ((-10.78,123.213),(14.123,-13279.5))
+  CTEST_POWER ((10.78,-123.213),(-14.123,13279.5))
+  CTEST_POWER ((10.78,-123.213),(14.123,-13279.5))
+  CTEST_POWER ((10.78,123.213),(-14.123,-13279.5))
+  CTEST_POWER ((-10.78,-123.213),(-14.123,13279.5))
+  CTEST_POWER ((-10.78,-123.213),(14.123,-13279.5))
+  CTEST_POWER ((-10.78,123.213),(-14.123,-13279.5))
+  CTEST_POWER ((10.78,-123.213),(-14.123,-13279.5))
+  CTEST_POWER ((-10.78,-123.213),(-14.123,-13279.5))
+  
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_form_io_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_form_io_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_form_io_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_form_io_1.f90	Sun Nov  6 18:28:22 2005
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target fortran_large_real }
+ ! PR 24174 and PR 24305
+ program large_real_kind_form_io_1
+   ! This should be 10 on systems that support kind=10
+   integer, parameter :: k = selected_real_kind (precision (0.0_8) + 1)
+   real(kind=k) :: a,b(2), c, eps
+   complex(kind=k) :: d, e, f(2), g
+   character(len=180) :: tmp
+   ! Test real(k) scalar and array formatted IO
+   eps = 10 * spacing (2.0_k) ! 10 ulp precision is enough.
+   b(:) = 2.0_k
+   write (tmp, *) b
+   read (tmp, *) a, c
+   if (abs (a - b(1)) > eps) call abort ()
+   if (abs (c - b(2)) > eps) call abort ()
+   ! Complex(k) scalar and array formatted and list formatted IO
+   d = cmplx ( 1.0_k, 2.0_k, k)
+   f = d
+   write (tmp, *) f
+   read (tmp, *) e, g
+   if (abs (e - d) > eps) call abort ()
+   if (abs (g - d) > eps) call abort ()
+   write (tmp, '(2(e12.4e5, 2x))') d
+   read (tmp, '(2(e12.4e5, 2x))') e
+   if (abs (e - d) > eps) call abort()
+ end program large_real_kind_form_io_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/large_real_kind_form_io_2.f90	Tue Feb 14 15:47:49 2006
***************
*** 0 ****
--- 1,33 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target fortran_large_real }
+ ! PR libfortran/24685
+ program large_real_kind_form_io_2
+   ! This should be 10 or 16 on systems that support kind=10 or kind=16
+   integer, parameter :: k = selected_real_kind (precision (0.0_8) + 1)
+   real(kind=k) :: a,b(2), c
+   character(len=180) :: tmp
+ 
+   b(:) = huge(0.0_k)
+   write (tmp, *) b
+   read (tmp, *) a, c
+   if (a /= b(1)) call abort ()
+   if (c /= b(2)) call abort ()
+ 
+   b(:) = -huge(0.0_k)
+   write (tmp, *) b
+   read (tmp, *) a, c
+   if (a /= b(1)) call abort ()
+   if (c /= b(2)) call abort ()
+ 
+   b(:) = tiny(0.0_k)
+   write (tmp, *) b
+   read (tmp, *) a, c
+   if (a /= b(1)) call abort ()
+   if (c /= b(2)) call abort ()
+ 
+   b(:) = -tiny(0.0_k)
+   write (tmp, *) b
+   read (tmp, *) a, c
+   if (a /= b(1)) call abort ()
+   if (c /= b(2)) call abort ()
+ end program large_real_kind_form_io_2
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/line_length_1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/line_length_1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/line_length_1.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/line_length_1.f	Fri Dec  2 00:35:41 2005
***************
*** 0 ****
--- 1,7 ----
+ ! Testcase for -ffixed-line-length-none
+ ! { dg-do compile }
+ ! { dg-options "-ffixed-line-length-none" }
+       program one
+        if (abs(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa).gt.999.d0.or.abs(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb).gt.999.d0.or.abs(cccccccccccccccccccc).gt.999.d0) THEN
+        endif
+       end program one
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/line_length_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/line_length_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/line_length_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/line_length_2.f90	Fri Dec  2 00:35:41 2005
***************
*** 0 ****
--- 1,8 ----
+ ! Testcase for -ffree-line-length-none
+ ! See PR fortran/21302
+ ! { dg-do compile }
+ ! { dg-options "-ffree-line-length-none" }
+ program two
+  if (abs(aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa).gt.999.d0.or.abs(bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb).gt.999.d0.or.abs(cccccccccccccccccccc).gt.999.d0) THEN
+  endif
+ end program two
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/list_read_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/list_read_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/list_read_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/list_read_5.f90	Fri Dec 23 02:59:37 2005
***************
*** 0 ****
--- 1,38 ----
+ ! { dg-do run }
+ ! PR25307 Check handling of end-of-file conditions for list directed reads.
+ ! Prepared by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ program pr25307
+    character(len=10) :: str
+    character(len=10) :: a(5)
+    a=""
+    a(1)="123"
+    a(3)="234"
+    str = '123'
+ ! Check internal unit
+    i = 0
+    j = 0
+    read( str, *, end=10 ) i,j
+    call abort()
+ 10 continue
+    if (i.ne.123) call abort()
+    if (j.ne.0) call abort()
+ ! Check file unit
+    i = 0
+    write(10,'(a)') "123"
+    rewind(10)
+    read(10, *, end=20) i,j
+    call abort()
+ 20 continue
+    if (i.ne.123) call abort()
+    if (j.ne.0) call abort()
+ ! Check internal array unit
+    i = 0
+    j = 0
+    k = 0
+    read(a(1:5:2),*, end=30)i,j,k
+    call abort()
+ 30 continue
+    if (i.ne.123) call abort()
+    if (j.ne.234) call abort()
+    if (k.ne.0) call abort()
+ end program pr25307
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1.inc gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1.inc
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1.inc	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1.inc	Wed Jan 11 17:06:44 2006
***************
*** 0 ****
--- 1,20 ----
+ C     fixed-form literal character constant with continuation line padding test
+ C     PR fortran/25486
+       program a
+       character(len=90) c
+       character(90) :: fil
+ c A tab is between 8 and 9.
+       c = '1234567
+      &8	9'
+       write(fil,'(a)') c
+ #ifdef LL_NONE
+       if(fil.ne. "12345678	9")
+      &  call abort
+ #else
+       if(fil.ne.
+      &"1234567                                                      8	9"
+      &)
+      &  call abort
+ #endif
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1_x.F gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1_x.F
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1_x.F	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1_x.F	Wed Jan 11 17:06:44 2006
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do run }
+ C     fixed-form literal character constant with continuation line padding test
+ C     PR fortran/25486
+ ! { dg-options "" }
+ #include "literal_character_constant_1.inc"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1_y.F gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1_y.F
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1_y.F	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1_y.F	Wed Jan 11 17:06:44 2006
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do run }
+ C     fixed-form literal character constant with continuation line padding test
+ C     PR fortran/25486
+ ! { dg-options "-ffixed-line-length-72" }
+ #include "literal_character_constant_1.inc"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1_z.F gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1_z.F
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/literal_character_constant_1_z.F	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/literal_character_constant_1_z.F	Wed Jan 11 17:06:44 2006
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do run }
+ C     fixed-form literal character constant with continuation line padding test
+ C     PR fortran/25486
+ ! { dg-options "-ffixed-line-length-none -DLL_NONE" }
+ #include "literal_character_constant_1.inc"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/loc_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/loc_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/loc_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/loc_1.f90	Mon Oct 24 19:28:18 2005
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do run }
+ 
+ ! This test is here to prevent a regression in gfc_conv_intrinsic_loc.
+ ! Taking the loc of something in a common block was a special case
+ ! that caused in internal compiler error in gcc/expr.c, in
+ ! expand_expr_addr_expr_1().
+ program test
+   common /targ/targ
+   integer targ(10)
+   call fn
+ end program test
+ 
+ subroutine fn
+   common /targ/targ
+   integer targ(10)
+   call foo (loc (targ)) ! Line that caused ICE
+ end subroutine fn
+ 
+ subroutine foo (ii)
+   common /targ/targ
+   integer targ(10)
+   integer ii
+   targ(2) = ii
+ end subroutine foo
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/loc_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/loc_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/loc_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/loc_2.f90	Mon Oct 24 19:28:18 2005
***************
*** 0 ****
--- 1,113 ----
+ ! { dg-do run }
+ ! Series of routines for testing a loc() implementation
+ program test
+   common /errors/errors(12)
+   integer i
+   logical errors
+   errors = .false.
+   call testloc
+   do i=1,12
+      if (errors(i)) then
+         call abort()
+      endif
+   end do
+ end program test
+ 
+ ! Test loc
+ subroutine testloc
+   common /errors/errors(12)
+   logical errors
+   integer, parameter :: n = 9
+   integer, parameter :: m = 10
+   integer, parameter :: o = 11
+   integer :: offset
+   integer :: i,j,k,intsize,realsize,dblsize,chsize,ch8size
+   integer itarg1 (n)
+   integer itarg2 (m,n)
+   integer itarg3 (o,m,n)
+   real rtarg1(n)
+   real rtarg2(m,n)
+   real rtarg3(o,m,n)
+   character chtarg1(n)
+   character chtarg2(m,n)
+   character chtarg3(o,m,n)
+   character*8 ch8targ1(n)
+   character*8 ch8targ2(m,n)
+   character*8 ch8targ3(o,m,n)
+ 
+   intsize = kind(itarg1(1))
+   realsize = kind(rtarg1(1))
+   chsize = kind(chtarg1(1))*len(chtarg1(1))
+   ch8size = kind(ch8targ1(1))*len(ch8targ1(1))
+ 
+   do, i=1,n
+      offset = i-1
+      if (loc(itarg1).ne.loc(itarg1(i))-offset*intsize) then
+         ! Error #1
+         errors(1) = .true.
+      end if
+      if (loc(rtarg1).ne.loc(rtarg1(i))-offset*realsize) then
+         ! Error #2
+         errors(2) = .true.
+      end if
+      if (loc(chtarg1).ne.loc(chtarg1(i))-offset*chsize) then
+         ! Error #3
+         errors(3) = .true.
+      end if
+      if (loc(ch8targ1).ne.loc(ch8targ1(i))-offset*ch8size) then
+         ! Error #4
+         errors(4) = .true.
+      end if
+ 
+      do, j=1,m
+         offset = (j-1)+m*(i-1)
+         if (loc(itarg2).ne. &
+              loc(itarg2(j,i))-offset*intsize) then
+            ! Error #5
+            errors(5) = .true.
+         end if
+         if (loc(rtarg2).ne. &
+              loc(rtarg2(j,i))-offset*realsize) then
+            ! Error #6
+            errors(6) = .true.
+         end if
+         if (loc(chtarg2).ne. &
+              loc(chtarg2(j,i))-offset*chsize) then
+            ! Error #7
+            errors(7) = .true.
+         end if
+         if (loc(ch8targ2).ne. &
+              loc(ch8targ2(j,i))-offset*ch8size) then
+            ! Error #8
+            errors(8) = .true.
+         end if
+ 
+         do k=1,o
+            offset = (k-1)+o*(j-1)+o*m*(i-1)
+            if (loc(itarg3).ne. &
+                 loc(itarg3(k,j,i))-offset*intsize) then
+               ! Error #9
+               errors(9) = .true.
+            end if
+            if (loc(rtarg3).ne. &
+                 loc(rtarg3(k,j,i))-offset*realsize) then
+               ! Error #10
+               errors(10) = .true.
+            end if
+            if (loc(chtarg3).ne. &
+                 loc(chtarg3(k,j,i))-offset*chsize) then
+               ! Error #11
+               errors(11) = .true.
+            end if
+            if (loc(ch8targ3).ne. &
+                 loc(ch8targ3(k,j,i))-offset*ch8size) then
+               ! Error #12
+               errors(12) = .true.
+            end if
+ 
+         end do
+      end do
+   end do
+ 
+ end subroutine testloc
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/logint-1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/logint-1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/logint-1.f	Mon Jul 11 09:08:05 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/logint-1.f	Thu Dec 22 16:41:41 2005
***************
*** 1,11 ****
  c { dg-do compile }
  c { dg-options "-O2 -std=legacy" }
!        LOGICAL*1 l1
!        LOGICAL*2 l2
!        LOGICAL*4 l4
!        INTEGER*1 i1
!        INTEGER*2 i2
!        INTEGER*4 i4
  
         i1 = .TRUE.
         i2 = .TRUE.
--- 1,11 ----
  c { dg-do compile }
  c { dg-options "-O2 -std=legacy" }
!        LOGICAL(kind=1) l1
!        LOGICAL(kind=2) l2
!        LOGICAL         l4
!        INTEGER(kind=1) i1
!        INTEGER(kind=2) i2
!        INTEGER         i4
  
         i1 = .TRUE.
         i2 = .TRUE.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/logint-2.f gcc-4.1.0/gcc/testsuite/gfortran.dg/logint-2.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/logint-2.f	Mon Jul 11 09:08:05 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/logint-2.f	Thu Dec 22 16:41:41 2005
***************
*** 1,11 ****
  c { dg-do compile }
  c { dg-options "-O2 -std=f95" }
!        LOGICAL*1 l1
!        LOGICAL*2 l2
!        LOGICAL*4 l4
!        INTEGER*1 i1
!        INTEGER*2 i2
!        INTEGER*4 i4
  
         i1 = .TRUE.  ! { dg-error "convert" }
         i2 = .TRUE.  ! { dg-error "convert" }
--- 1,11 ----
  c { dg-do compile }
  c { dg-options "-O2 -std=f95" }
!        LOGICAL(kind=1) l1
!        LOGICAL(kind=2) l2
!        LOGICAL         l4
!        INTEGER(kind=1) i1
!        INTEGER(kind=2) i2
!        INTEGER         i4
  
         i1 = .TRUE.  ! { dg-error "convert" }
         i2 = .TRUE.  ! { dg-error "convert" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/logint-3.f gcc-4.1.0/gcc/testsuite/gfortran.dg/logint-3.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/logint-3.f	Mon Jul 11 09:08:05 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/logint-3.f	Thu Dec 22 16:41:41 2005
***************
*** 1,11 ****
  c { dg-do compile }
  c { dg-options "-O2" }
!        LOGICAL*1 l1
!        LOGICAL*2 l2
!        LOGICAL*4 l4
!        INTEGER*1 i1
!        INTEGER*2 i2
!        INTEGER*4 i4
  
         i1 = .TRUE.  ! { dg-warning "Extension: Conversion" }
         i2 = .TRUE.  ! { dg-warning "Extension: Conversion" }
--- 1,11 ----
  c { dg-do compile }
  c { dg-options "-O2" }
!        LOGICAL(kind=1) l1
!        LOGICAL(kind=2) l2
!        LOGICAL         l4
!        INTEGER(kind=1) i1
!        INTEGER(kind=2) i2
!        INTEGER         i4
  
         i1 = .TRUE.  ! { dg-warning "Extension: Conversion" }
         i2 = .TRUE.  ! { dg-warning "Extension: Conversion" }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/malloc_free_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/malloc_free_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/malloc_free_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/malloc_free_1.f90	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,11 ----
+ ! Test for the MALLOC and FREE intrinsics
+ ! If something is wrong with them, this test might segfault
+ ! { dg-do run }
+   integer j
+   integer(kind=8) i8
+ 
+   do j = 1, 10000
+     i8 = malloc (10 * j)
+     call free (i8)
+   end do
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/maxval_maxloc_conformance_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/maxval_maxloc_conformance_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/maxval_maxloc_conformance_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/maxval_maxloc_conformance_1.f90	Sun Feb  5 00:14:37 2006
***************
*** 0 ****
--- 1,35 ----
+ ! { dg-do compile }
+ ! PR 26039:  Tests for different ranks for (min|max)loc, (min|max)val, product
+ !            and sum were missing.
+ program main
+   integer, dimension(2) :: a
+   logical, dimension(2,1) :: lo
+   logical, dimension(3) :: lo2
+   a = (/ 1, 2 /)
+   lo = .true.
+   print *,minloc(a,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,maxloc(a,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,minval(a,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,maxval(a,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,sum(a,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,product(a,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,minloc(a,1,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,maxloc(a,1,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,minval(a,1,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,maxval(a,1,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,sum(a,1,mask=lo) ! { dg-error "Incompatible ranks" }
+   print *,product(a,1,mask=lo) ! { dg-error "Incompatible ranks" }
+ 
+   print *,minloc(a,mask=lo2) ! { dg-error "different shape" }
+   print *,maxloc(a,mask=lo2) ! { dg-error "different shape" }
+   print *,minval(a,mask=lo2) ! { dg-error "different shape" }
+   print *,maxval(a,mask=lo2) ! { dg-error "different shape" }
+   print *,sum(a,mask=lo2) ! { dg-error "different shape" }
+   print *,product(a,mask=lo2) ! { dg-error "different shape" }
+   print *,minloc(a,1,mask=lo2) ! { dg-error "different shape" }
+   print *,maxloc(a,1,mask=lo2) ! { dg-error "different shape" }
+   print *,minval(a,1,mask=lo2) ! { dg-error "different shape" }
+   print *,maxval(a,1,mask=lo2) ! { dg-error "different shape" }
+   print *,sum(a,1,mask=lo2) ! { dg-error "different shape" }
+   print *,product(a,1,mask=lo2) ! { dg-error "different shape" }
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/merge_char_const.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/merge_char_const.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/merge_char_const.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/merge_char_const.f90	Sun Oct 23 06:59:17 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do run }
+ ! { dg-options "-O0" }
+ ! This tests the patch for PR24311 in which the PRINT statement would
+ ! ICE on trying to print a MERGE statement with character constants
+ ! for the first two arguments.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+   integer, dimension(6) :: i = (/1,0,0,1,1,0/)
+   print '(6a1)', Merge ("a", "b", i  == 1) ! { dg-output "abbaab" }
+   end
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/mixed_io_1.c gcc-4.1.0/gcc/testsuite/gfortran.dg/mixed_io_1.c
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/mixed_io_1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/mixed_io_1.c	Sun Oct 30 12:48:52 2005
***************
*** 0 ****
--- 1,4 ----
+ #include <stdio.h>
+ void cio_(void){
+   printf("12345");
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/mixed_io_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/mixed_io_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/mixed_io_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/mixed_io_1.f90	Sun Oct 30 12:48:52 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do run }
+ ! { dg-additional-sources mixed_io_1.c }
+       call cio
+       write(*,"(A)") '6789' ! { dg-output "123456789" }
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/module_interface_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/module_interface_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/module_interface_1.f90	Fri Jul 22 19:03:28 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/module_interface_1.f90	Tue Jul 19 20:13:53 2005
***************
*** 33,38 ****
        if (N(1).ne.5) call abort ()
        return
      end subroutine Selection_Sort
!   end program module_interface
! 
! 
--- 33,36 ----
        if (N(1).ne.5) call abort ()
        return
      end subroutine Selection_Sort
!   end program module_interface
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/module_parameter_array_refs_1.f90	Mon Feb 13 21:35:09 2006
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! Tests the fix for 26074, in which the array reference below would
+ ! be determined not to be constant within modules.
+ !
+ ! Contributed by Jonathan Dursi  <ljdursi@cita.utoronto.ca>
+ !
+ module foo
+ 
+    integer, parameter :: len = 5
+    integer :: arr(max(len,1))
+ 
+ end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/modulo_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/modulo_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/modulo_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/modulo_1.f90	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do compile }
+ ! PR fortran/23912
+   integer i4
+   integer(kind=8) i8
+ 
+   i4 = modulo(i4,i8) ! { dg-warning "Extension" }
+   i4 = modulo(i8,i4) ! { dg-warning "Extension" }
+ 
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/mvbits_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/mvbits_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/mvbits_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/mvbits_1.f90	Wed Feb  8 13:14:43 2006
***************
*** 0 ****
--- 1,39 ----
+ ! PR 25577
+ ! MVBITS didn't work correctly for integer types wider than a C int
+ ! The testcase is based on the one Dale Ranta posted in the bug report
+ implicit none
+ integer(1) i1,j1
+ integer(2) i2,j2
+ integer(4) i4,j4
+ integer(8) i8,j8
+ integer ibits,n
+ 
+ ibits=bit_size(1_1)
+ do n=1,ibits
+    i1=-1
+    call mvbits(1_1, 0,n,i1,0)
+    j1=-1-2_1**n+2
+    if(i1.ne.j1)call abort
+ enddo
+ ibits=bit_size(1_2)
+ do n=1,ibits
+    i2=-1
+    call mvbits(1_2, 0,n,i2,0)
+    j2=-1-2_2**n+2
+    if(i2.ne.j2)call abort
+ enddo
+ ibits=bit_size(1_4)
+ do n=1,ibits
+    i4=-1
+    call mvbits(1_4, 0,n,i4,0)
+    j4=-1-2_4**n+2
+    if(i4.ne.j4)call abort
+ enddo
+ ibits=bit_size(1_8)
+ do n=1,ibits
+    i8=-1
+    call mvbits(1_8, 0,n,i8,0)
+    j8=-1-2_8**n+2
+    if(i8.ne.j8)call abort
+ enddo
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_11.f gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_11.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_11.f	Sun Jun  5 23:33:51 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_11.f	Thu Dec 22 16:41:41 2005
*************** c provided by Paul Thomas - pault@gcc.gn
*** 7,14 ****
  
        program namelist_1
  
!       REAL*4 x(10)
!       REAL*8 xx
        integer ier
        namelist /mynml/ x, xx
  
--- 7,14 ----
  
        program namelist_1
  
!       REAL x(10)
!       REAL(kind=8) xx
        integer ier
        namelist /mynml/ x, xx
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_12.f gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_12.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_12.f	Sun Jun  5 23:33:51 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_12.f	Thu Dec 22 16:41:41 2005
***************
*** 1,15 ****
  c{ dg-do run }
! c This program repeats many of the same tests as test_nml_1 but for integer instead of real.
! c  It also tests repeat nulls, comma delimited character read, a triplet qualifier, a range with
! c and assumed start, a quote delimited string, a qualifier with an assumed end and a fully
! c explicit range.  It also tests that integers and characters are successfully read back by
! c namelist.
  c Provided by Paul Thomas - pault@gcc.gnu.org
  
        program namelist_12
  
!       integer*4 x(10)
!       integer*8 xx
        integer ier
        character*10 ch , check
        namelist /mynml/ x, xx, ch
--- 1,15 ----
  c{ dg-do run }
! c This program repeats many of the same tests as test_nml_1 but for integer
! c instead of real. It also tests repeat nulls, comma delimited character read,
! c a triplet qualifier, a range with and assumed start, a quote delimited string,
! c a qualifier with an assumed end and a fully explicit range.  It also tests
! c that integers and characters are successfully read back by namelist.
  c Provided by Paul Thomas - pault@gcc.gnu.org
  
        program namelist_12
  
!       integer x(10)
!       integer(kind=8) xx
        integer ier
        character*10 ch , check
        namelist /mynml/ x, xx, ch
*************** c set debug = 0 or 1 in the namelist! (l
*** 25,38 ****
        ch ="zzzzzzzzzz"
        check="abcdefghij"
  
!       open (10,status="scratch")
!       write (10, *) "!mynml"
!       write (10, *) " "
!       write (10, *) "&mynml  x(7) =+99 x=1, 2 ,"
!       write (10, *) " 2*3, ,, 2* !comment"
!       write (10, *) " 9 ch=qqqdefghqq , x(8:7:-1) = 8 , 7"
!       write (10, *) " ch(:3) =""abc"","
!       write (10, *) " ch(9:)='ij' x(4:5)=4 ,5 xx = 42/"
        rewind (10)
  
        read (10, nml=mynml, IOSTAT=ier)
--- 25,38 ----
        ch ="zzzzzzzzzz"
        check="abcdefghij"
  
!       open (10,status="scratch", delim="apostrophe")
!       write (10, '(a)') "!mynml"
!       write (10, '(a)') " "
!       write (10, '(a)') "&mynml  x(7) =+99 x=1, 2 ,"
!       write (10, '(a)') " 2*3, ,, 2* !comment"
!       write (10, '(a)') " 9 ch='qqqdefghqq' , x(8:7:-1) = 8 , 7"
!       write (10, '(a)') " ch(:3) =""abc"","
!       write (10, '(a)') " ch(9:)='ij' x(4:5)=4 ,5 xx = 42/"
        rewind (10)
  
        read (10, nml=mynml, IOSTAT=ier)
*************** c set debug = 0 or 1 in the namelist! (l
*** 52,56 ****
          if ( ch(i:i).ne.check(I:I) ) call abort
        end do
        if (xx.ne.42) call abort ()
- 
        end program
--- 52,55 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_13.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_13.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_13.f90	Sun Jun  5 23:33:51 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_13.f90	Wed Nov 23 02:28:44 2005
*************** program namelist_13
*** 25,31 ****
    zeros = 0
    zeros(5) = 1
  
!   open(10,status="scratch")
    write (10, nml=mynml, iostat=ier)
    if (ier.ne.0) call abort
  
--- 25,31 ----
    zeros = 0
    zeros(5) = 1
  
!   open(10,status="scratch", delim="apostrophe")
    write (10, nml=mynml, iostat=ier)
    if (ier.ne.0) call abort
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_14.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_14.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_14.f90	Sun Jun  5 23:33:51 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_14.f90	Thu Dec 22 16:29:18 2005
*************** program namelist_14
*** 16,22 ****
    integer          ::  i(2) = (/101,201/)
    type(mt)         ::  dt(2)
    type(mt)         ::  cdt
!   real*8           ::  pi = 3.14159_8
    character*10     ::  chs="singleton"
    character*10     ::  cha(2)=(/"first     ","second    "/)
  
--- 16,22 ----
    integer          ::  i(2) = (/101,201/)
    type(mt)         ::  dt(2)
    type(mt)         ::  cdt
!   real(kind=8)           ::  pi = 3.14159_8
    character*10     ::  chs="singleton"
    character*10     ::  cha(2)=(/"first     ","second    "/)
  
*************** contains
*** 37,43 ****
    subroutine foo (i, dt, pi, chs, cha)
      use global
      common /myc/ cdt
!     real *8        :: pi                   !local real scalar
      integer        :: i(2)                 !dummy arg. array
      integer        :: j(2) = (/21, 21/)    !equivalenced array
      integer        :: jj                   !    -||-     scalar
--- 37,43 ----
    subroutine foo (i, dt, pi, chs, cha)
      use global
      common /myc/ cdt
!     real(kind=8)        :: pi                   !local real scalar
      integer        :: i(2)                 !dummy arg. array
      integer        :: j(2) = (/21, 21/)    !equivalenced array
      integer        :: jj                   !    -||-     scalar
*************** contains
*** 55,61 ****
      dts = mt ((/1, 2, 3, 4/))
      dtl = mt ((/41, 42, 43, 44/))
  
!     open (10, status = "scratch")
      write (10, nml = z, iostat = ier)
      if (ier /= 0 ) call abort()
      rewind (10)
--- 55,61 ----
      dts = mt ((/1, 2, 3, 4/))
      dtl = mt ((/41, 42, 43, 44/))
  
!     open (10, status = "scratch", delim='apostrophe')
      write (10, nml = z, iostat = ier)
      if (ier /= 0 ) call abort()
      rewind (10)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_15.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_15.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_15.f90	Sun Jun  5 23:33:51 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_15.f90	Wed Nov 23 02:28:44 2005
*************** program namelist_15
*** 25,45 ****
    write (10, '(A)') " x = 3, 4, 'dd', 'ee', 'ff', 'gg',"
    write (10, '(A)') "     4, 5, 'hh', 'ii', 'jj', 'kk',"
    write (10, '(A)') " x%i = , ,-3, -4"
!   write (10, '(A)') " x(2)%m(1)%ch(2) =q,"
!   write (10, '(A)') " x(2)%m(2)%ch(1)(1) =w,"
!   write (10, '(A)') " x%m%ch(:)(2) =z z z z z z z z,"
    write (10, '(A)') "&end"
     
    rewind (10)
    read (10, nml = mynml, iostat = ier)
!   if (ier .ne. 0) call abort () 
    close (10)
  
!   open (10, status = "scratch")
    write (10, nml = mynml)
    rewind (10)
    read (10, nml = mynml, iostat = ier)
!   if (ier .ne. 0) call abort () 
    close(10)
  
    if (.not. ((x(1)%i(1) == 3)          .and. &
--- 25,46 ----
    write (10, '(A)') " x = 3, 4, 'dd', 'ee', 'ff', 'gg',"
    write (10, '(A)') "     4, 5, 'hh', 'ii', 'jj', 'kk',"
    write (10, '(A)') " x%i = , ,-3, -4"
!   write (10, '(A)') " x(2)%m(1)%ch(2) ='q',"
!   write (10, '(A)') " x(2)%m(2)%ch(1)(1) ='w',"
!   write (10, '(A)') " x%m%ch(:)(2) = 'z','z','z','z','z','z','z','z',"
    write (10, '(A)') "&end"
     
    rewind (10)
    read (10, nml = mynml, iostat = ier)
!   if (ier .ne. 0) print *, 'First read.' !call abort () 
    close (10)
  
!   open (10, status = "scratch", delim='apostrophe')
    write (10, nml = mynml)
    rewind (10)
+ 
    read (10, nml = mynml, iostat = ier)
!   if (ier .ne. 0) print *, 'Second read.' !call abort () 
    close(10)
  
    if (.not. ((x(1)%i(1) == 3)          .and. &
*************** program namelist_15
*** 55,58 ****
               (x(2)%m(2)%ch(1) == "wz") .and. &
  	     (x(2)%m(2)%ch(2) == "kz"))) call abort ()
  
! end program namelist_15 
--- 56,59 ----
               (x(2)%m(2)%ch(1) == "wz") .and. &
  	     (x(2)%m(2)%ch(2) == "kz"))) call abort ()
  
! end program namelist_15
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_21.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_21.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_21.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_21.f90	Wed Nov 23 02:28:44 2005
***************
*** 0 ****
--- 1,41 ----
+ !{ dg-do run }
+ ! Tests filling arrays from a namelist read when object list is not complete.
+ ! Developed from a test case provided by Christoph Jacob.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>.
+ program pr24794
+ 
+    implicit none
+    integer, parameter :: maxop=15, iunit=7
+    character*8 namea(maxop), nameb(maxop)
+    integer i, ier
+ 
+    namelist/ccsopr/ namea,nameb
+    namea=""
+    nameb=""
+    open (12, status="scratch", delim="apostrophe")
+    write (12, '(a)') "&ccsopr"
+    write (12, '(a)') "    namea='spi01h','spi02o','spi03h','spi04o','spi05h',"
+    write (12, '(a)') "          'spi07o','spi08h','spi09h',"
+    write (12, '(a)') "    nameb='spi01h','spi03h','spi05h','spi06h','spi08h',"
+    write (12, '(a)') "&end"
+ 
+    rewind (12)
+    read (12, nml=ccsopr, iostat=ier)
+    if (ier.ne.0) call abort()
+    
+    rewind (12)
+    write(12,nml=ccsopr)
+    
+    rewind (12)
+    read (12, nml=ccsopr, iostat=ier)
+    if (ier.ne.0) call abort()
+    
+    if (namea(2).ne."spi02o  ") call abort()
+    if (namea(9).ne."        ") call abort()
+    if (namea(15).ne."        ") call abort()
+    if (nameb(1).ne."spi01h  ") call abort()
+    if (nameb(6).ne."        ") call abort()
+    if (nameb(15).ne."        ") call abort()
+    
+    close (12)
+ end program pr24794
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_22.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_22.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_22.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_22.f90	Wed Nov 23 02:28:44 2005
***************
*** 0 ****
--- 1,41 ----
+ !{ dg-do run }
+ ! Tests filling arrays from a namelist read when object list is not complete.
+ ! This is the same as namelist_21.f90 except using spaces as seperators instead
+ ! of commas. Developed from a test case provided by Christoph Jacob.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>.
+ program pr24794
+ 
+    implicit none
+    integer, parameter :: maxop=15, iunit=7
+    character*8 namea(maxop), nameb(maxop)
+    integer i, ier
+ 
+    namelist/ccsopr/ namea,nameb
+    namea=""
+    nameb=""
+    open (12, status="scratch", delim="apostrophe")
+    write (12, '(a)') "&ccsopr"
+    write (12, '(a)') "    namea='spi01h' 'spi02o' 'spi03h' 'spi04o' 'spi05h'"
+    write (12, '(a)') "          'spi07o' 'spi08h' 'spi09h'"
+    write (12, '(a)') "    nameb='spi01h' 'spi03h' 'spi05h' 'spi06h' 'spi08h'"
+    write (12, '(a)') "&end"
+ 
+    rewind (12)
+    read (12, nml=ccsopr, iostat=ier)
+    if (ier.ne.0) call abort()
+    
+    rewind (12)
+    write(12,nml=ccsopr)
+    
+    rewind (12)
+    read (12, nml=ccsopr, iostat=ier)
+    if (ier.ne.0) call abort()
+    if (namea(2).ne."spi02o  ") call abort()
+    if (namea(9).ne."        ") call abort()
+    if (namea(15).ne."        ") call abort()
+    if (nameb(1).ne."spi01h  ") call abort()
+    if (nameb(6).ne."        ") call abort()
+    if (nameb(15).ne."        ") call abort()
+    
+    close (12)
+ end program pr24794
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_blockdata.f gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_blockdata.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_blockdata.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_blockdata.f	Tue Nov  1 05:53:29 2005
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! Tests fix for PR21565 - object cannot be in namelist and block data.
+       block data
+       common /foo/ a
+       namelist /foo_n/ a ! { dg-error "not allowed in BLOCK DATA" }
+       data a /1.0/
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_char_only.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_char_only.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_char_only.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_char_only.f90	Mon Oct 24 20:25:40 2005
***************
*** 0 ****
--- 1,29 ----
+ ! { dg-do run }
+ ! { dg-options "-O0" }
+ ! Test patch for PR24416.f90 - a used to come back from the read with var
+ ! prepended.
+ !
+   IMPLICIT NONE
+   CHARACTER(len=10)  :: var = "hello"
+   character(len=10)  :: a = ""
+   NAMELIST /inx/ var
+ 
+   OPEN(unit=11, status='scratch')
+   write (11, *) "&INX"
+   write (11, *) "  var = 'goodbye'"
+   write (11, *) "&END"
+   rewind (11)
+ 
+   READ(11,NML=inx)
+   CLOSE(11)
+ 
+   OPEN(unit=11, status='scratch')
+   write (11, *) "alls_well"
+   rewind (11)
+ 
+   READ(11,*) a
+   CLOSE(11)
+ 
+   if (a /= "alls_well") call abort ()
+ 
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_empty.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_empty.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_empty.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_empty.f90	Fri Nov 11 20:31:06 2005
***************
*** 0 ****
--- 1,17 ----
+ ! pr24584, segfault on namelist reading an empty string
+ ! Contributed by Jerry DeLisle  <jvdelisle@verizon.net> 
+       implicit none 
+       character*20   temp
+       character(len=10) var
+       namelist /input/ var
+       var = 'Howdy'
+       open(unit=7, status="scratch")
+       temp = '   var='''''  ! var='' in the file
+       write(7,'(A6)') '&INPUT'
+       write(7,'(A10)') temp
+       write(7,'(A1)') '/'
+       rewind(7)
+       read(7,NML=input)
+       close(7)
+       if (var.ne.'') call abort
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_use.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_use.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_use.f90	Fri Aug  5 05:31:14 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_use.f90	Mon Dec 26 09:07:27 2005
*************** end module global
*** 15,24 ****
  program namelist_use
    use global
    real    :: rrr
!   namelist /nml2/ ii, rrr    ! Concatenate use and host associated variables.
    open (10, status="scratch")
!   write (10,*) "&NML1 aa=lmno ii=1 rr=2.5 /"
!   write (10,*) "&NML2 aa=pqrs ii=2 rrr=3.5 /"
    rewind (10)
    read (10,nml=nml1,iostat=i)
    if ((i.ne.0).or.(aa.ne."lmno").or.(ii.ne.1).or.(rr.ne.2.5)) call abort ()
--- 15,25 ----
  program namelist_use
    use global
    real    :: rrr
! ! Concatenating use and host associated variables is an extension.
!   namelist /nml2/ ii, rrr ! { dg-warning "already is USE associated" }
    open (10, status="scratch")
!   write (10,*) "&NML1 aa='lmno' ii=1 rr=2.5 /"
!   write (10,*) "&NML2 aa='pqrs' ii=2 rrr=3.5 /"
    rewind (10)
    read (10,nml=nml1,iostat=i)
    if ((i.ne.0).or.(aa.ne."lmno").or.(ii.ne.1).or.(rr.ne.2.5)) call abort ()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_use_only.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_use_only.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/namelist_use_only.f90	Fri Aug  5 05:31:14 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/namelist_use_only.f90	Wed Nov 23 02:28:44 2005
*************** program namelist_use_only
*** 22,29 ****
    use global, only : nml1, aa, ii, rr
    use global, only : nml2, rrrr=>rrr, foo
    open (10, status="scratch")
!   write (10,*) "&NML1 aa=lmno ii=1 rr=2.5 /"
!   write (10,*) "&NML2 aaa=pqrs iii=2 rrr=3.5 /"
    rewind (10)
    read (10,nml=nml1,iostat=i)
    if ((i.ne.0).or.(aa.ne."lmno").or.(ii.ne.1).or.(rr.ne.2.5)) call abort ()
--- 22,29 ----
    use global, only : nml1, aa, ii, rr
    use global, only : nml2, rrrr=>rrr, foo
    open (10, status="scratch")
!   write (10,'(a)') "&NML1 aa='lmno' ii=1 rr=2.5 /"
!   write (10,'(a)') "&NML2 aaa='pqrs' iii=2 rrr=3.5 /"
    rewind (10)
    read (10,nml=nml1,iostat=i)
    if ((i.ne.0).or.(aa.ne."lmno").or.(ii.ne.1).or.(rr.ne.2.5)) call abort ()
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/negative-z-descriptor.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/negative-z-descriptor.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/negative-z-descriptor.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/negative-z-descriptor.f90	Sat Jul  9 09:33:31 2005
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do run }
+ ! PR 22217:  Z edit descriptor with negative numbers used to give lots of *
+ 
+ program main
+   character(len=70) line
+   character(len=20) fmt
+   write(unit=line,fmt='(Z4)') -1_1
+   if (line(1:4) .ne. '  FF') call abort
+   write(unit=line,fmt='(Z5)') -1_2
+   if (line(1:5) .ne. ' FFFF') call abort
+   write(unit=line,fmt='(Z9)') -1_4
+   if (line(1:9) .ne. ' FFFFFFFF') call abort
+   write(unit=line,fmt='(Z17)') -2_8
+   if (line(1:17) .ne. ' FFFFFFFFFFFFFFFE') call abort
+   write(unit=line,fmt='(Z2)') 10_8
+   if (line(1:2) .ne. ' A') call abort
+ 
+   write(unit=line,fmt='(Z8)') -43_8
+   if (line(1:1) .ne. '*') call abort
+ 
+   write(unit=line,fmt='(B65)') -1_8
+   if (line(1:2) .ne. ' 1') call abort
+   if (line(64:66) .ne. '11 ') call abort
+ 
+   write(unit=line,fmt='(O4)') -2_1
+   if (line(1:4) .ne. ' 376') call abort
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_1.f90	Fri Sep  9 09:05:55 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_1.f90	Thu Dec 22 16:29:18 2005
***************
*** 4,10 ****
  ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
  !
         module mod0
!          double complex FOO, KANGA
           common /bar/ FOO, KANGA
         contains
           subroutine eyeore ()    
--- 4,10 ----
  ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
  !
         module mod0
!          complex(kind=8) FOO, KANGA
           common /bar/ FOO, KANGA
         contains
           subroutine eyeore ()    
***************
*** 20,31 ****
         module mod2
           use mod0
           use mod1
!          real*8 re1, im1, re2, im2, re, im
           common /bar/ re1, im1, re2, im2
           equivalence (re1, re), (im1, im)
         contains
           subroutine tigger (w)
!            double complex w
             if (FOO.ne.(1.0d0, 1.0d0)) call abort ()
             if (KANGA.ne.(-1.0d0, -1.0d0)) call abort ()
             if (ROBIN.ne.(99.0d0, 99.0d0)) CALL abort ()
--- 20,31 ----
         module mod2
           use mod0
           use mod1
!          real(kind=8) re1, im1, re2, im2, re, im
           common /bar/ re1, im1, re2, im2
           equivalence (re1, re), (im1, im)
         contains
           subroutine tigger (w)
!            complex(kind=8) w
             if (FOO.ne.(1.0d0, 1.0d0)) call abort ()
             if (KANGA.ne.(-1.0d0, -1.0d0)) call abort ()
             if (ROBIN.ne.(99.0d0, 99.0d0)) CALL abort ()
***************
*** 41,44 ****
         call eyeore ()
         call tigger (w)
         end
- 
--- 41,43 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_2.f90	Sun Sep 18 05:18:54 2005
***************
*** 0 ****
--- 1,38 ----
+ ! { dg do-run }
+ ! This tests the patch for PR16861.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+ module foo
+ INTEGER :: i
+ end module foo
+ 
+ module bar
+ contains
+ subroutine sub1 (j)
+   use foo
+   integer, dimension(i) :: j
+   j = 42
+ end subroutine sub1
+ subroutine sub2 (k)
+   use foo
+   integer, dimension(i) :: k
+   k = 84
+ end subroutine sub2
+ end module bar
+ 
+ module foobar
+   use foo                      !This used to cause an ICE
+   use bar
+ end module foobar
+ 
+ program testfoobar
+   use foobar
+   integer, dimension(3)  :: l = 0
+   i = 2
+   call sub1 (l)
+   i = 1
+   call sub2 (l)
+   if (all (l.ne.(/84,42,0/))) call abort ()
+ end program testfoobar
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_3.f90	Fri Sep 23 17:16:07 2005
***************
*** 0 ****
--- 1,55 ----
+ ! { dg-do run }
+ !
+ ! This tests the improved version of the patch for PR16861.  Testing
+ ! after committing the first version, revealed that this test did
+ ! not work but was not regtested for, either.
+ !
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ !
+ MODULE foo
+   TYPE type1
+     INTEGER i1
+   END TYPE type1
+ END MODULE
+ 
+ MODULE bar
+ CONTAINS
+   SUBROUTINE sub1 (x, y)
+     USE foo
+     TYPE (type1)  :: x
+     INTEGER  :: y(x%i1)
+     y = 1
+   END SUBROUTINE SUB1
+   SUBROUTINE sub2 (u, v)
+     USE foo
+     TYPE (type1)  :: u
+     INTEGER  :: v(u%i1)
+     v = 2
+   END SUBROUTINE SUB2
+ END MODULE
+ 
+ MODULE foobar
+   USE foo
+   USE bar
+ CONTAINS
+   SUBROUTINE sub3 (s, t)
+     USE foo
+     TYPE (type1)  :: s
+     INTEGER  :: t(s%i1)
+     t = 3
+   END SUBROUTINE SUB3
+ END MODULE foobar
+ 
+ PROGRAM use_foobar
+   USE foo
+   USE foobar
+   INTEGER :: j(3) = 0
+   TYPE (type1)   :: z
+   z%i1 = 3
+   CALL sub1 (z, j)
+   z%i1 = 2
+   CALL sub2 (z, j)
+   z%i1 = 1
+   CALL sub3 (z, j)
+   IF (ALL (j.ne.(/3,2,1/))) CALL abort ()
+ END PROGRAM use_foobar
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_4.f90	Thu Nov 10 22:24:28 2005
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-do compile }
+ !
+ ! Test for the fix to PR24409 - the name clash between the module
+ ! name and the interface formal argument would cause an ICE.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ module string 
+   interface
+     function  lc(string )
+       character(len=*), intent(in)  :: string 
+       character(len=len(string ))    :: lc
+     end function lc
+   end interface
+ end module string
+ 
+ module serial
+   use string
+ end module serial
+ 
+   use serial
+   use string
+   character*15  :: buffer  
+   buffer = lc ("Have a Nice DAY")
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nested_modules_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nested_modules_5.f90	Thu Nov 10 22:24:28 2005
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do compile }
+ !
+ ! Test for supplementary fix to PR24409 - the name clash between the module
+ ! variable and the interface formal argument would cause an ICE.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+ module anything 
+   interface
+     function  lc(string )
+       character(len=*), intent(in)  :: string 
+       character(len=len(string ))    :: lc
+     end function lc
+   end interface
+   character(len=12) :: string
+ end module anything
+ 
+ module serial
+   use anything
+ end module serial
+ 
+   use serial
+   use anything
+   character*15  :: buffer  
+   buffer = lc ("Have a Nice DAY")
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nesting_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nesting_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nesting_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nesting_2.f90	Mon Jan  9 20:20:32 2006
***************
*** 0 ****
--- 1,16 ----
+ ! check to make the nested function dawsonseries_v gets the correct
+ ! fake return decl and that the outer (dawson_v) has an assignment of
+ ! just the fake return decl for real and not the inner's return decl.
+ ! { dg-do compile }
+ FUNCTION dawson_v()
+   IMPLICIT NONE
+   REAL  :: dawson_v
+   dawson_v = 1.0
+ 
+   CONTAINS
+     FUNCTION dawsonseries_v()
+       IMPLICIT NONE
+       REAL, DIMENSION(1) :: dawsonseries_v
+       dawsonseries_v=1.0
+     END FUNCTION dawsonseries_v
+ END FUNCTION dawson_v
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nesting_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nesting_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nesting_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nesting_3.f90	Mon Jan  9 20:20:32 2006
***************
*** 0 ****
--- 1,15 ----
+ ! check to make the nested function dawsonseries_v gets the correct
+ ! fake return decl and that the outer (dawson_v) has an assignment of
+ ! just the fake return decl for real and not the inner's return decl.
+ ! { dg-do compile }
+ FUNCTION dawson_v()
+   IMPLICIT NONE
+   REAL,DIMENSION(1)  :: dawson_v
+   dawson_v = 1.0
+   CONTAINS
+     FUNCTION dawsonseries_v()
+       IMPLICIT NONE
+       REAL, DIMENSION(1) :: dawsonseries_v
+       dawsonseries_v=1.0
+     END FUNCTION dawsonseries_v
+ END FUNCTION dawson_v
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nint_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nint_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nint_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nint_1.f90	Sat Apr  9 23:21:12 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ program nint_1
+   if (int(anint(8388609.0)) /= 8388609) call abort
+   if (int(anint(0.49999997)) /= 0) call abort
+   if (nint(8388609.0) /= 8388609) call abort
+   if (nint(0.49999997) /= 0) call abort
+   if (int(dnint(4503599627370497.0d0),8) /= 4503599627370497_8) call abort
+   if (int(dnint(0.49999999999999994d0)) /= 0) call abort
+   if (int(anint(-8388609.0)) /= -8388609) call abort
+   if (int(anint(-0.49999997)) /= 0) call abort
+   if (nint(-8388609.0) /= -8388609) call abort
+   if (nint(-0.49999997) /= 0) call abort
+   if (int(dnint(-4503599627370497.0d0),8) /= -4503599627370497_8) call abort
+   if (int(dnint(-0.49999999999999994d0)) /= 0) call abort
+ end program nint_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/non_module_public.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/non_module_public.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/non_module_public.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/non_module_public.f90	Mon Oct 17 20:52:37 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do compile }
+ ! PR20837 - A symbol may not be declared PUBLIC or PRIVATE outside a module.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ integer, parameter, public :: i=1 ! { dg-error "allowed outside of a MODULE" }
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nonreturning_statements.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nonreturning_statements.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nonreturning_statements.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nonreturning_statements.f90	Wed Aug 24 20:04:20 2005
***************
*** 0 ****
--- 1,25 ----
+ ! { dg-final { scan-assembler-not "should_be_noreturn" } }
+ ! PR 17758
+ ! This checks that non-returning subroutines and statements
+ ! really don't return by calling non-existing subroutines
+ ! afterwards.  These calls are supposed to be optimized away, so
+ ! they won't show up in the generated assembly.
+ program main
+   character(len=5) :: c
+   c = '12345'
+   read(unit=c,fmt='(A)') i
+   select case(i)
+      case(1)
+         call abort
+         call abort_should_be_noreturn
+      case(2)
+         stop 65
+         call stop_numeric_should_be_noreturn
+      case(3)
+         stop "foobar"
+         call stop_string_should_be_noreturn
+      case(4)
+         call exit
+         call exit_should_be_noreturn
+      end select
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/null_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/null_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/null_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/null_1.f90	Fri Feb 10 20:09:41 2006
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! PR fortran/20858
+ ! If we have "x = null(i)", then "null()" acquires the type, kind type,
+ ! and rank of i and these need to match those of x.
+ program null_1
+    integer, parameter :: sp = kind(1.e0), dp = kind(1.d0)
+    integer,  pointer :: i => null()
+    real(sp), pointer :: x => null()
+    real(dp), pointer :: y => null()
+    real(sp), pointer :: z(:) => null()
+    x => null(i)     ! { dg-error "types in pointer assignment" }
+    x => null(y)     ! { dg-error "types in pointer assignment" }
+    z => null(i)     ! { dg-error "types in pointer assignment" }
+    z => null(y)     ! { dg-error "types in pointer assignment" }
+    x => null(z)     ! { dg-error "ranks in pointer assignment" }
+    z => null(x)     ! { dg-error "ranks in pointer assignment" }
+    z => null(z)
+    nullify(i, x, y, z)
+ end program null_1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/nullify_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/nullify_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/nullify_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/nullify_2.f90	Fri Feb  3 21:32:14 2006
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! PR fortran/25146
+ program i
+    implicit none
+    TYPE (a) t1     ! { dg-error "is being used before" }
+    nullify(t1%x)   ! { dg-error "error in NULLIFY" }
+ end program
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/open_access_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/open_access_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/open_access_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/open_access_1.f90	Tue Nov 29 12:01:56 2005
***************
*** 0 ****
--- 1,6 ----
+ ! { dg-do compile }
+ 
+   real :: a
+   a = 6.0
+   open (unit = 6, file = 'foo', access = a) ! { dg-error "must be of type CHARACTER" }
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/open_access_append_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/open_access_append_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/open_access_append_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/open_access_append_1.f90	Thu Nov 17 12:46:57 2005
***************
*** 0 ****
--- 1,20 ----
+ ! { dg-do run }
+ ! Testcase for the GNU extension OPEN(...,ACCESS="APPEND")
+   open (10,file="foo")
+   close (10,status="delete")
+ 
+   open (10,file="foo",access="append") ! { dg-output ".*Extension.*" }
+   write (10,*) 42
+   close (10,status="keep")
+   open (10,file="foo",access="append") ! { dg-output ".*Extension.*" }
+   write (10,*) -42
+   close (10,status="keep")
+ 
+   open (10,file="foo")
+   read (10,*) i
+   if (i /= 42) call abort
+   read (10,*) i
+   if (i /= -42) call abort
+   close (10,status="delete")
+ 
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/open_access_append_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/open_access_append_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/open_access_append_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/open_access_append_2.f90	Thu Nov 17 12:46:57 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do run }
+ ! Testcase for the GNU extension OPEN(...,ACCESS="APPEND")
+   open (10,err=900,access="append",position="asis") ! { dg-output ".*Extension.*" }
+   call abort
+  900 end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/open_status_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/open_status_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/open_status_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/open_status_1.f90	Fri Sep 30 18:47:54 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do run }
+ ! Test reopening with io status='old'
+ program iostatus
+   open (1, file='foo', status='replace') ! Make sure file exists.
+   open (1, file='foo', status='old')
+   open (1, file='foo', status='old')
+   close (1, status='delete')
+ end program iostatus
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/open_status_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/open_status_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/open_status_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/open_status_2.f90	Sat Nov 26 09:27:22 2005
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do run } 
+ ! PR 24945
+ ! Test reopening file without status specifier or with
+ ! status='unknown'. The standard says that these two must behave
+ ! identically, but the actual behaviour is processor dependent.
+ program open_status_2
+   open(10, file="f", form='unformatted', status='unknown')
+   open(10, file="f", form='unformatted', status='unknown')
+   open(10, file="f", form='unformatted')
+   close(10, status='delete')
+ end program open_status_2
+  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_1.f90	Sun Feb 12 18:31:40 2006
***************
*** 0 ****
--- 1,8 ----
+ ! PR 20894
+ ! { dg-do compile }
+ ! Originally contributed by Joost VandeVondele
+ INTEGER, POINTER :: I,J
+ INTEGER :: K
+ ALLOCATE(I)
+ J=>(I)   ! { dg-error "Pointer assignment target is neither TARGET nor POINTER" }
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_2.f90	Sun Feb 12 18:31:40 2006
***************
*** 0 ****
--- 1,11 ----
+ ! PR 25048
+ ! { dg-do compile }
+ ! Originally contributed by Joost VandeVondele
+ INTEGER, POINTER :: I
+ CALL S1((I)) ! { dg-error "Actual argument for .i. must be a pointer" }
+ CONTAINS
+  SUBROUTINE S1(I)
+   INTEGER, POINTER ::I
+  END SUBROUTINE S1
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_3.f90	Sun Feb 12 18:31:40 2006
***************
*** 0 ****
--- 1,48 ----
+ ! PR 14771
+ ! { dg-do run }
+ ! Originally contributed by Walt Brainerd, modified for the testsuite
+       PROGRAM fc107
+ 
+ ! Submitted by Walt Brainerd, The Fortran Company
+ ! GNU Fortran 95 (GCC 4.1.0 20050322 (experimental))
+ ! Windows XP
+ 
+ ! Return value should be 3
+ 
+       INTEGER I, J, M(2), N(2)
+       integer, pointer :: k
+       integer, target :: l
+       INTEGER TRYME
+ 
+       interface
+         FUNCTION TRYyou(RTNME,HITME)
+           INTEGER RTNME(2),HITME(2), tryyou(2)
+         END function tryyou
+       end interface
+ 
+       m = 7
+       l = 5
+       I = 3
+       k => l
+ 
+       j = tryme((i),i)
+       if (j .ne. 3) call abort ()
+ 
+       j = tryme((k),k)
+       if (j .ne. 5) call abort ()
+ 
+       n = tryyou((m),m)
+       if (any(n .ne. 7)) call abort ()
+       END
+ 
+       INTEGER FUNCTION TRYME(RTNME,HITME)
+       INTEGER RTNME,HITME
+       HITME = 999
+       TRYME = RTNME
+       END
+ 
+       FUNCTION TRYyou(RTNME,HITME)
+       INTEGER RTNME(2),HITME(2), tryyou(2)
+       HITME = 999
+       TRYyou = RTNME
+       END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_4.f90	Sun Feb 12 18:31:40 2006
***************
*** 0 ****
--- 1,12 ----
+ ! { dg-do compile }
+ ! Fallout from the patch for PR 14771
+ ! Testcase by Erik Zeek
+ program test
+     call bob(5)
+ contains
+     subroutine bob(n)
+         integer, intent(in) :: n
+         character(len=n) :: temp1
+         character(len=(n)) :: temp2 ! Fails here
+     end subroutine bob
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/parens_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/parens_5.f90	Sun Feb 12 18:31:40 2006
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do run }
+ ! Another case of fallout from the original patch for PR14771
+ ! Testcase by Erik Zeek
+ module para
+ contains
+    function bobo(n)
+        integer, intent(in) :: n
+        character(len=(n)) :: bobo ! Used to fail here
+        bobo = "1234567890"
+    end function bobo
+ end module para
+ 
+ program test
+    use para
+    implicit none
+    character*5 c
+    c = bobo(5)
+    if (c .ne. "12345") call abort
+ end program test
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pointer_assign_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pointer_assign_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pointer_assign_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pointer_assign_1.f90	Sun Nov  6 20:05:12 2005
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! Tests fix for PR20838 - would ICE with vector subscript in 
+ ! pointer assignment.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !
+   integer, parameter, dimension(3) :: i = (/2,1,3/)
+   integer, dimension(3), target   :: tar
+   integer, dimension(2, 3), target   :: tar2
+   integer, dimension(:), pointer  :: ptr
+   ptr => tar
+   ptr => tar(3:1:-1)
+   ptr => tar(i)     ! { dg-error "with vector subscript" }
+   ptr => tar2(1, :)
+   ptr => tar2(2, i) ! { dg-error "with vector subscript" }
+   end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pointer_component_type_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pointer_component_type_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pointer_component_type_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pointer_component_type_1.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do compile }
+ ! This checks the fix for PR20889 in wrong pointer types in derived
+ ! type constructors would either give no message or would segfault.
+ !
+ ! Contributed by Joost VandVondele  <jv244@cam.ac.uk>
+ !==============
+   TYPE TEST
+     REAL, POINTER :: A
+   END TYPE
+ 
+   TYPE TEST1
+     REAL :: A
+   END TYPE
+ 
+   INTEGER, POINTER :: IP
+   real, POINTER :: RP
+   TYPE(TEST) :: DD
+   TYPE(TEST1) :: EE
+ ! Next line is the original => gave no warning/error.
+   DD=TEST(NULL(IP))    ! { dg-error "INTEGER but should be REAL" }
+ ! Would segfault here.
+   DD=TEST(IP)          ! { dg-error "INTEGER but should be REAL" }
+ ! Check right target type is OK.
+   DD=TEST(NULL(RP))
+ !
+   DD=TEST(NULL())
+ ! Check non-pointer is OK.
+   EE= TEST1(1)
+ ! Test attempted conversion from character to real.
+   EE= TEST1("e")       ! { dg-error "convert CHARACTER" }
+ END
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr15140.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pr15140.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr15140.f90	Thu Jul 15 18:50:17 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr15140.f90	Sat Jan 14 06:31:08 2006
***************
*** 3,9 ****
  ! argument of the subroutine directly, but instead use a copy of it.
  function M(NAMES)
    CHARACTER*(*) NAMES(*)
!   if (any(names.ne."asdfg")) call abort
    m = LEN(NAMES(1))
  END function M
  
--- 3,9 ----
  ! argument of the subroutine directly, but instead use a copy of it.
  function M(NAMES)
    CHARACTER*(*) NAMES(*)
!   if (any(names(1:2).ne."asdfg")) call abort
    m = LEN(NAMES(1))
  END function M
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr17143.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pr17143.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr17143.f90	Thu Jan 20 22:48:56 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr17143.f90	Thu Dec 22 16:29:18 2005
***************
*** 2,8 ****
  ! pr17143
  ! does not print 2*63 correctly
         character*25 l
!        integer*8 i
         data i /1/
         do j = 1,63
            i = i * 2
--- 2,8 ----
  ! pr17143
  ! does not print 2*63 correctly
         character*25 l
!        integer(kind=8) i
         data i /1/
         do j = 1,63
            i = i * 2
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr19928-1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pr19928-1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr19928-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr19928-1.f90	Thu Sep  8 16:06:54 2005
***************
*** 0 ****
--- 1,11 ----
+ ! PR 19928.  Check the use of constant substring indexes in a
+ ! scalarization loop.
+ ! { dg-do run }
+ program main
+   implicit none
+   character (len = 5), dimension (2) :: a
+   character (len = 3), dimension (2) :: b
+   a = (/ 'abcde', 'ghijk' /)
+   b = a(:)(2:4)
+   if (b(1) .ne. 'bcd' .or. b(2) .ne. 'hij') call abort
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr19928-2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pr19928-2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr19928-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr19928-2.f90	Thu Sep  8 16:06:54 2005
***************
*** 0 ****
--- 1,23 ----
+ ! Related to PR 19928.  Check that foo() is only called once per statement.
+ ! { dg-do run }
+ program main
+   implicit none
+   type t
+     integer, dimension (5) :: field
+   end type t
+   type (t), dimension (2) :: a
+   integer :: calls, i, j
+ 
+   forall (i = 1:2, j = 1:5) a(i)%field(j) = i * 100 + j
+   calls = 0
+   if (sum (a%field(foo(calls))) .ne. 304) call abort
+   if (calls .ne. 1) call abort
+   if (sum (a(foo(calls))%field) .ne. 1015) call abort
+   if (calls .ne. 2) call abort
+ contains
+   function foo (calls)
+     integer :: calls, foo
+     calls = calls + 1
+     foo = 2
+   end function foo 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr21730.f gcc-4.1.0/gcc/testsuite/gfortran.dg/pr21730.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr21730.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr21730.f	Sat Jul 23 03:26:27 2005
***************
*** 0 ****
--- 1,11 ----
+ ! PR fortran/21730
+ ! { dg-do run }
+       character*2 a
+       character*4 b
+       character*6 c
+       parameter (a="12")
+       parameter (b = a)
+       write (c,'("#",A,"#")') b
+       if (c .ne. '#12  #') call abort
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr22491.f gcc-4.1.0/gcc/testsuite/gfortran.dg/pr22491.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr22491.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr22491.f	Wed Aug  3 01:58:30 2005
***************
*** 0 ****
--- 1,11 ----
+ ! PR fortran/21730
+ ! { dg-do run }
+       character*2 a (1)
+       character*4 b (1)
+       character*6 c
+       parameter (a="12")
+       parameter (b = a)
+       write (c,'("#",A,"#")') b
+       if (c .ne. '#12  #') call abort
+       end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr23095.f gcc-4.1.0/gcc/testsuite/gfortran.dg/pr23095.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr23095.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr23095.f	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,22 ----
+       ! { dg-do compile { target i?86-*-* x86_64-*-* } }
+       ! { dg-options "-w -m32 -O2 -ffloat-store -fgcse-after-reload" }
+       !
+       ! GCSE after reload made a stack register live across an abnormal
+       ! edges for one of the computed jumps.  This bombed in reg-stack.
+       function foo(n) 
+       real(kind=8) foo 
+       integer ix, n, next 
+       real(kind=8) xmax, absx 
+       foo  = 0.0d0 
+       assign 20 to next 
+       do ix = 1,n 
+          go to next,(10, 30) 
+    10    assign 40 to next 
+          go to 40 
+    20    if (absx .gt. 8.232d-11) go to 40 
+    30    if (absx .le. xmax) go to 40 
+          xmax = absx 
+    40    go to next,(10, 30) 
+       end do 
+       return 
+       end 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr24823.f gcc-4.1.0/gcc/testsuite/gfortran.dg/pr24823.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr24823.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr24823.f	Fri Dec 16 09:02:49 2005
***************
*** 0 ****
--- 1,78 ----
+ !     { dg-do compile }
+ !     { dg-options "-O2" }
+ !     PR24823 Flow didn't handle a PARALLEL as destination of a SET properly.
+       SUBROUTINE ZLATMR( M, N, DIST, ISEED, SYM, D, MODE, COND, DMAX,
+      $     RSIGN, GRADE, DL, MODEL, CONDL, DR, MODER,
+      $     PACK, A, LDA, IWORK, INFO )
+       COMPLEX*16         A( LDA, * ), D( * ), DL( * ), DR( * )
+       LOGICAL            BADPVT, DZERO, FULBND
+       COMPLEX*16         ZLATM2, ZLATM3
+       IF( IGRADE.EQ.4 .AND. MODEL.EQ.0 ) THEN
+       END IF
+       IF( IPVTNG.GT.0 ) THEN
+       END IF
+       IF( M.LT.0 ) THEN
+       ELSE IF( IPACK.EQ.-1 .OR. ( ( IPACK.EQ.1 .OR. IPACK.EQ.2 .OR.
+      $        IPACK.EQ.5 .OR. IPACK.EQ.6 ) .AND. ISYM.EQ.1 ) .OR.
+      $        ( IPACK.EQ.3 .AND. ISYM.EQ.1 .AND. ( KL.NE.0 .OR. M.NE.
+      $        6 ) .AND. LDA.LT.KUU+1 ) .OR.
+      $        ( IPACK.EQ.7 .AND. LDA.LT.KLL+KUU+1 ) ) THEN
+          INFO = -26
+       END IF
+       IF( INFO.NE.0 ) THEN
+          RETURN
+       END IF
+       IF( KUU.EQ.N-1 .AND. KLL.EQ.M-1 )
+      $     FULBND = .TRUE.
+       IF( MODE.NE.0 .AND. MODE.NE.-6 .AND. MODE.NE.6 ) THEN
+          TEMP = ABS( D( 1 ) )
+          IF( TEMP.EQ.ZERO .AND. DMAX.NE.CZERO ) THEN
+             INFO = 2
+          END IF
+       END IF
+       IF( ISYM.EQ.0 ) THEN
+       END IF
+       IF( IGRADE.EQ.1 .OR. IGRADE.EQ.3 .OR. IGRADE.EQ.4 .OR. IGRADE.EQ.
+      $     5 .OR. IGRADE.EQ.6 ) THEN
+          IF( INFO.NE.0 ) THEN
+          END IF
+       END IF
+       IF( FULBND ) THEN
+          IF( IPACK.EQ.0 ) THEN
+             IF( ISYM.EQ.0 ) THEN
+                CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
+      $              IWORK, SPARSE )
+                DO 120 I = 1, M
+                   CTEMP = ZLATM3( M, N, I, J, ISUB, JSUB, KL, KU,
+      $                 IWORK, SPARSE )
+  120           CONTINUE
+             END IF
+             IF( I.LT.1 ) THEN
+                IF( ISYM.EQ.0 ) THEN
+                   A( J-I+1, I ) = DCONJG( ZLATM2( M, N, I, J, KL,
+      $                 DR, IPVTNG, IWORK, SPARSE ) )
+                ELSE
+                   A( J-I+1, I ) = ZLATM2( M, N, I, J, KL, KU,
+      $                 IPVTNG, IWORK, SPARSE )
+                END IF
+             END IF
+             IF( ISYM.NE.1 ) THEN
+                IF( I.GE.1 .AND. I.NE.J ) THEN
+                   IF( ISYM.EQ.0 ) THEN
+                   END IF
+                END IF
+                A( I-J+KUU+1, J ) = ZLATM2( M, N, I, J, KL, KU,
+      $              DR, IPVTNG, IWORK, SPARSE )
+             END IF
+          END IF
+       END IF
+       IF( IPACK.EQ.0 ) THEN
+          ONORM = ZLANGB( 'M', N, KLL, KUU, A, LDA, TEMPA )
+       END IF
+       IF( ANORM.GE.ZERO ) THEN
+          IF( ANORM.GT.ZERO .AND. ONORM.EQ.ZERO ) THEN
+             IF( IPACK.LE.2 ) THEN
+             END IF
+          END IF
+       END IF
+       END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pr25603.f gcc-4.1.0/gcc/testsuite/gfortran.dg/pr25603.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pr25603.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pr25603.f	Fri Feb 24 01:18:27 2006
***************
*** 0 ****
--- 1,60 ----
+ C { dg-do run }
+ C
+ C PR rtl-optimization/25603
+ C Check if reload handles REG_INC notes correctly.
+       PROGRAM BAR
+       IMPLICIT REAL (A-H, O-Z)
+       DIMENSION WORK(250)
+ 
+       XSTART = 201.0
+ 
+       CALL BAR1(NX,NY,NZ,NT,NTIME,NWINDX,NWINDY,NSINKS,NFILT,
+      *XSTART,YSTART,ZSTART,TSTART,DELTAX,DELTAY,DELTAZ,DELTAT,PHI,DL,
+      *DX,DY,DZ,WORK,IB,IK,ITY,NCOUNT,NPRINT,NGRAPH,NPSTEP,NGSTEP)
+       STOP
+       END
+ 
+       SUBROUTINE BAR2(NX,NY,NZ,NT,NTIME,NWINDX,ISH,NSMT,NFILT,
+      * XSTART,YSTART,ZSTART,TSTART,DELTAX,DELTAY,DELTAZ,DELTAT,PHI,DL,
+      * DX,DY,DZ,IB,IK,ITY,NCOUNT,NPRINT,NGRAPH,NPSTEP,NGSTEP,LFINAL,
+      * C,STEPC,POTT,STEPT,UX,STEPU,VY,STEPV,WZ,PRES,STEPP,Q,DKZM,DKZH,
+      * ELEV,ELEVX,ELEVY,Z0,HMIX,STEPH,TAVR,OBUK,USTR,TSTR,VDEP,DEP,
+      * ZET,HVAR,UM,VM,UG,VG,TM,DKM,DCDX,DCDY,AN,BN,CN,HELP,HELPA)
+       IMPLICIT REAL (A-H, O-Z)
+ 
+       DIMENSION  C(*),STEPC(*),POTT(*),STEPT(*),UX(*),STEPU(*),
+      * VY(*),STEPV(*),WZ(*),PRES(*),STEPP(*),Q(*),DKZM(*),DKZH(*),
+      * ELEV(*),ELEVX(*),ELEVY(*),Z0(*),HMIX(*),STEPH(*),TAVR(*),
+      * OBUK(*),USTR(*),TSTR(*),VDEP(*), DEP(*),ZET(*),HVAR(*),
+      * UM(*),VM(*),UG(*),VG(*),TM(*),DKM(*), DCDX(*),DCDY(*),
+      * AN(*),BN(*),CN(*),HELP(*),HELPA(*)
+ C
+ 
+       RETURN
+       END
+ 
+       SUBROUTINE BAR1(NX,NY,NZ,NT,NTIME,NWINDX,NWINDY,NSINKS,NFILT,
+      *XSTART,YSTART,ZSTART,TSTART,DELTAX,DELTAY,DELTAZ,DELTAT,PHI,DL,
+      *DX,DY,DZ,WORK,IB,IK,ITY,NCOUNT,NPRINT,NGRAPH,NPSTEP,NGSTEP)
+ 
+       IMPLICIT REAL (A-H, O-Z)
+       DIMENSION  WORK(*)
+ 
+       if (XSTART .NE. 201.0) then
+ 	call abort
+       endif
+ 
+       CALL BAR2(NX,NY,NZ,NT,NTIME,NWINDX,NWINDY,NSINKS,NFILT,XSTART,
+      * YSTART,ZSTART,TSTART,DELTAX,DELTAY,DELTAZ,DELTAT,PHI,DL,
+      * DX,DY,DZ,IB,IK,ITY,NCOUNT,NPRINT,NGRAPH,NPSTEP,NGSTEP,LAST,
+      * WORK(LC),WORK(LCSTEP),WORK(LPOT),WORK(LTSTEP),WORK(LUX),
+      * WORK(LUSTEP),WORK(LVY),WORK(LVSTEP),WORK(LWZ),WORK(LPI),
+      * WORK(LPSTEP),WORK(LQ),WORK(LDKZM),WORK(LDKZH),WORK(LELEV),
+      * WORK(LELEVX),WORK(LELEVY),WORK(LZ0),WORK(LHMIX),WORK(LSTEPH),
+      * WORK(LTAVR),WORK(LOBUK),WORK(LUSTR),WORK(LTSTR),WORK(LVDEP),
+      * WORK(LDEP),WORK(LZET),WORK(LHVAR),WORK(LUM),WORK(LVM),WORK(LUG),
+      * WORK(LVG),WORK(LTM),WORK(LKM),WORK(LDCDX),WORK(LDCDY),WORK(LAN),
+      * WORK(LBN),WORK(LCN),WORK(LHELP),WORK(LHELPA))
+ 
+       RETURN
+       END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/print_fmt_4.f gcc-4.1.0/gcc/testsuite/gfortran.dg/print_fmt_4.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/print_fmt_4.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/print_fmt_4.f	Tue Sep 20 15:05:32 2005
***************
*** 0 ****
--- 1,3 ----
+ ! { dg-do compile }
+       print precision(1.) ! { dg-error "must be of type default CHARACTER" }
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_1.f90	Sat Oct  1 07:39:08 2005
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! PR21986 - test based on original example.
+ ! A public subroutine must not have private-type, dummy arguments.
+ ! Contributed by Paul Thomas <pault@gcc.gnu.org>
+ module modboom
+   implicit none
+   private
+   public:: dummysub ! { dg-error "PRIVATE type and cannot be a dummy argument" }
+   type:: intwrapper
+     integer n
+   end type intwrapper
+ contains
+   subroutine dummysub(size, arg_array)
+    type(intwrapper) :: size
+    real, dimension(size%n) :: arg_array
+    real :: local_array(4)
+   end subroutine dummysub
+ end module modboom
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_2.f90	Sun Nov  6 20:05:12 2005
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! PR16404 test 6 - If a component of a derived type is of a type declared to
+ ! be private, either the derived type definition must contain the PRIVATE
+ ! statement, or the derived type must be private.
+ ! Modified on 20051105 to test PR24534.
+ !
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ MODULE TEST
+   PRIVATE
+   TYPE :: info_type
+    INTEGER :: value
+   END TYPE info_type
+   TYPE :: all_type! { dg-error "PRIVATE type and cannot be a component" }
+     TYPE(info_type) :: info
+   END TYPE
+   TYPE :: any_type! This is OK because of the PRIVATE statement.
+     PRIVATE
+     TYPE(info_type) :: info
+   END TYPE
+   public  all_type, any_type
+ END MODULE
+ END
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_3.f90	Sun Nov  6 20:21:28 2005
***************
*** 0 ****
--- 1,33 ----
+ ! { dg-do compile }
+ ! { dg-options "-O0" }
+ ! Tests the fix for PR24207 and the problems associated
+ ! with the fix for PR21986. In two cases, use associated
+ ! public symbols were taking on the default private access
+ ! attribute of the local namespace. In the third, a private
+ ! symbol was not available to a namelist in contained 
+ ! procedure in the same module.
+ !
+ ! Based on the example in PR24207.
+ !
+ module a
+   implicit none
+   real b
+   type :: mytype
+     integer :: c
+   end type mytype
+ end module a
+ module c
+   use a
+   implicit none
+   public d
+   private
+   real x
+   contains
+      subroutine d (arg_t)   ! This would cause an error
+         type (mytype) :: arg_t
+         namelist /e/ b, x   ! .... as would this.
+         read(5,e)
+ 	arg_t%c = 42
+      end subroutine d
+ end module c
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/private_type_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/private_type_4.f90	Mon Jan  9 16:19:22 2006
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do compile }
+ ! PR 25093: Check that a PUBLIC function can't be of PRIVATE type
+ module m1
+ 
+     type :: t1
+         integer :: i
+     end type t1
+ 
+     private :: t1
+     public :: f1     ! { dg-error "cannot be of PRIVATE type" }
+ 
+ contains
+ 
+     type(t1) function f1()
+     end function
+ 
+ end module
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/procedure_lvalue.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/procedure_lvalue.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/procedure_lvalue.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/procedure_lvalue.f90	Mon Jan 30 05:45:06 2006
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do compile }
+ ! Tests the fix for PR17911, where a USE associated l-value
+ ! would cause an ICE in gfc_conv_variable.
+ ! Test contributed by Tobias Schlueter  <tobi@gcc.gnu.org>
+ module t
+   interface a
+      module procedure b
+   end interface
+ contains
+   integer function b(x)
+     b = x
+   end function b
+ end module t
+ 
+ subroutine r
+   use t
+   b = 1.       ! { dg-error "l-value since it is a procedure" }
+   y = a(1.)
+ end subroutine r
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/promotion.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/promotion.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/promotion.f90	Wed Mar 30 01:46:33 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/promotion.f90	Thu May 26 19:10:52 2005
***************
*** 1,4 ****
! ! { dg-do run { target i?86-*-* } }
  ! { dg-options "-fdefault-integer-8 -fdefault-real-8" }
  program a
     logical l
--- 1,5 ----
! ! { dg-do run { target i?86-*-* x86_64-*-* } }
! ! { dg-require-effective-target ilp32 }
  ! { dg-options "-fdefault-integer-8 -fdefault-real-8" }
  program a
     logical l
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_byref_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_byref_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_byref_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_byref_1.f90	Wed Nov  9 11:27:56 2005
***************
*** 0 ****
--- 1,15 ----
+ ! { dg-do run }
+ ! PR 22607: PURE/ELEMENTAL return-by-reference functions
+ program main
+   implicit none
+   character(2), dimension(2) :: a, b
+   a = 'ok'
+   b = fun(a)
+   if (.not.all(b == 'ok')) call abort()
+ contains
+   elemental function fun(a) 
+     character(*), intent(in) :: a
+     character(len(a)) :: fun
+     fun = a
+   end function fun
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_byref_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_byref_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_byref_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_byref_2.f90	Wed Nov  9 11:27:56 2005
***************
*** 0 ****
--- 1,17 ----
+ ! { dg-do run }
+ ! PR 22607: PURE return-by-reference functions
+ program main
+   implicit none
+   integer, dimension(2) :: b
+   b = fun(size(b))
+   if (b(1) /= 1 .or. b(2) /= 2) call abort()
+ contains
+   pure function fun(n) 
+     integer, intent(in) :: n
+     integer :: fun(n)
+     integer :: i
+     do i = 1, n
+         fun(i) = i
+     end do
+   end function fun
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_byref_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_byref_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_byref_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_byref_3.f90	Fri Dec 30 15:07:48 2005
***************
*** 0 ****
--- 1,33 ----
+ ! { dg-do run }
+ ! PR 22607: External/module pure return-by-reference functions
+ 
+ pure function hoj()
+     integer :: hoj(3)
+     hoj = (/1, 2, 3/)
+ end function hoj
+ 
+ module huj_mod
+ contains
+     pure function huj()
+         integer :: huj(3)
+         huj = (/1, 2, 3/)
+     end function huj
+ end module huj_mod
+ 
+ program pure_byref_3
+     use huj_mod
+     implicit none
+ 
+     interface
+         pure function hoj()
+             integer :: hoj(3)
+         end function hoj
+     end interface
+     integer :: a(3)
+ 
+     a = huj()
+     if (.not. all(a == (/1, 2, 3/))) call abort()
+ 
+     a = hoj()
+     if (.not. all(a == (/1, 2, 3/))) call abort()
+ end program pure_byref_3
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_non_intrinsic_dummy_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_non_intrinsic_dummy_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/pure_non_intrinsic_dummy_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/pure_non_intrinsic_dummy_1.f90	Mon Feb 13 21:35:09 2006
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! Tests the fix for 20871, in which pure non-intrinsic procedures were permitted to
+ ! be dummy arguments.
+ !
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ !
+ MODULE TT
+ CONTAINS
+    ELEMENTAL INTEGER FUNCTION two(N)
+      INTEGER, INTENT(IN) :: N
+      two=2**N
+    END FUNCTION
+ END MODULE
+ USE TT
+  INTEGER, EXTERNAL  :: SUB
+  write(6,*) SUB(two)    ! { dg-error "not allowed as an actual argument " }
+ END
+ INTEGER FUNCTION SUB(XX)
+   INTEGER :: XX
+   SUB=XX()
+ END
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_comma.f gcc-4.1.0/gcc/testsuite/gfortran.dg/read_comma.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_comma.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_comma.f	Fri Dec 16 20:40:13 2005
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do run }
+ ! PR25039 This test checks that commas in input fields for formatted sequential
+ ! reads are interpreted as the read completion.  If no comma is encountered the
+ ! normal field width determines the end of the read.  The test case also checks
+ ! that default blanks are interpreted as NULL in numerics.
+ ! Test case derived from sample provided in PR by Iwan Kawrakow.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+ !
+       program pr25039
+       implicit none
+       integer :: i1, i2, i3
+       character(10) :: a1
+       open(10, status="scratch")
+       write(10,'(a)') "1, 235"
+       rewind(10)
+       read(10,'(3i2)') i1,i2,i3
+       if(i1.ne.1) call abort()
+       if(i2.ne.2) call abort()
+       if(i3.ne.35) call abort()
+       rewind(10)
+ !     Make sure commas are read in character strings.      
+       write(10,'(a)') "1234,6789,"
+       rewind(10)
+       read(10,'(a10)') a1
+       if(a1.ne."1234,6789,") call abort()
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eof_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eof_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eof_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eof_1.f90	Sun Jan 29 03:58:42 2006
***************
*** 0 ****
--- 1,27 ----
+ ! { dg-do run }
+ ! PR25697 Check that reading from a file that is at end-of-file does not
+ ! segfault or give error.  Test case derived from example in PR from Dale Ranta.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+        integer data(9)
+        do i = 1,9
+          data(i)=-3
+        enddo
+        open(unit=11,status='scratch',form='unformatted')
+        write(11)data
+        read(11,end=        1000 )data
+        call abort()
+  1000  continue
+        backspace 11
+        backspace 11
+        write(11)data
+        rewind 11
+        data = 0
+        read(11,end=        1001 )data
+  1001  continue
+        read(11,end=        1002 )data
+        call abort
+  1002  continue
+        if (.not. all(data == -3)) call abort()
+        close(11)
+        end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eof_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eof_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eof_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eof_2.f90	Sun Jan 29 03:58:42 2006
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do run }
+ ! PR25835 Check that reading from a file that is at end-of-file does not
+ ! segfault or give error.  Test case derived from example in PR from Dale Ranta.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+        integer data(2045) ! Exceed internal buffer size
+        data=-1
+        open(unit=11,status='scratch', form='unformatted')
+        write(11)data
+        read(11,end=        1000 )data
+        call abort()
+  1000  continue
+        backspace 11
+        backspace 11
+        data = 0
+        read(11)data
+        if (.not. all(data == -1)) call abort()
+        read(11,end=        1002 )data
+        call abort()
+  1002  continue
+        close(11)
+        end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eof_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eof_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eof_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eof_3.f90	Sun Jan 29 03:58:42 2006
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do run }
+ ! PR25835 Check that reading from a file that is at end-of-file does not
+ ! segfault or give error.  Test case derived from example in PR from Dale Ranta.
+ ! Contributed by Jerry DeLisle  <jvdelisle@gcc.gnu.org>
+        integer data(5000)
+        data=-256
+        open(unit=11,status='scratch', form='unformatted')
+        write(11)data
+        write(11)data
+        read(11,end=        1000 )data
+        call abort()
+  1000  continue
+        backspace 11
+        rewind 11
+        write(11)data
+        read(11,end=        1001 )data
+        call abort()
+  1001  continue
+        data = 0
+        backspace 11
+        rewind 11
+        read(11,end=        1002 )data
+        if (.not. all(data == -256)) call abort()
+  1002  continue
+        read(11,end=        1003 )data
+        call abort()
+  1003  continue
+        close(11)
+        end
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eor.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eor.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_eor.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_eor.f90	Fri Nov 11 20:31:06 2005
***************
*** 0 ****
--- 1,14 ----
+ ! { dg-do run }
+ ! PR24489 Assure that read does not go past the end of record. The width of
+ ! the format specifier is 8, but the internal unit record length is 4 so only
+ ! the first 4 characters should be read.
+ ! Contributed by Jerry DeLisle <jvdelisle@verizon.net>.
+ program pr24489
+   character*4, dimension(8) :: abuf = (/"0123","4567","89AB","CDEF", &
+                                         "0123","4567","89AB","CDEF"/)
+   character*4, dimension(2,4) :: buf
+   character*8 :: a
+   equivalence (buf,abuf)
+   read(buf, '(a8)') a
+   if (a.ne.'0123') call abort()
+ end program pr24489
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_float_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_float_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_float_1.f90	Wed Nov 10 02:16:06 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_float_1.f90	Thu Dec 22 16:41:41 2005
***************
*** 4,10 ****
  ! resulting in introducing large cumulative floating point errors.
  program foo
    character*20 s
!   real*8 d
    s = "-.18774312893273    "
    read(unit=s, fmt='(g20.14)') d
    if (d + 0.18774312893273d0 .gt. 1d-13) call abort
--- 4,10 ----
  ! resulting in introducing large cumulative floating point errors.
  program foo
    character*20 s
!   real(kind=8) d
    s = "-.18774312893273    "
    read(unit=s, fmt='(g20.14)') d
    if (d + 0.18774312893273d0 .gt. 1d-13) call abort
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_noadvance.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_noadvance.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_noadvance.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_noadvance.f90	Fri Nov 11 20:31:06 2005
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do run }
+ ! pr24719, non-advancing read should read more than one line
+ ! test contributed by jerry delisle <jvdelisle@gcc.gnu.org>
+       implicit none
+       character(1) :: chr
+       character(20) :: correct = 'foo: bar 123abc'
+       integer :: i
+       open(unit = 11, status = "scratch", action="readwrite")
+       write(11,'(a)') "foo: bar"
+       write(11,'(a)') "123abc"
+       rewind(11)
+       i = 0
+       do
+         i = i + 1
+ 10      read(unit = 11, fmt = '(a)', advance = 'no', end = 99, eor = 11) chr
+         if (chr.ne.correct(i:i)) call abort()
+         cycle
+ 11      continue
+       end do
+ 99    close(11)
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/read_x_eor.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/read_x_eor.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/read_x_eor.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/read_x_eor.f90	Fri Nov 11 20:31:06 2005
***************
*** 0 ****
--- 1,10 ----
+ ! { dg-do run }
+ ! ( dg-output "^" }
+ !
+ ! Test fix for pr24785 - EOR used to scrub the 2X.
+ ! Reduced from PR example submitted by Harald Anlauf <anlauf@gmx.de>
+ !
+      program x_with_advance_bug
+      write (*,'(A,2X)',  advance="no") "<"
+      write (*,'(A)') ">" ! { dg-output "<  >" }
+      end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/recursive_statement_functions.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/recursive_statement_functions.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/recursive_statement_functions.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/recursive_statement_functions.f90	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,31 ----
+ ! { dg-do compile }
+ ! PR20866 - A statement function cannot be recursive.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ !
+ ! Modified 20051110 to check that regressions PR24655 and PR24755
+ ! are fixed. Thanks to pavarini@pv.infn.it and tdeutsch@cea.fr for
+ ! the tests.
+ !
+   INTEGER :: i, st1, st2, st3, lambda, n
+   REAL :: x, z(2,2)
+   character(8) :: ch
+   real(8)   :: fi, arg, sigma, dshpfunc
+   real(8), parameter :: one=1d0
+ !
+ ! Test check for recursion via other statement functions, string
+ ! length references, function actual arguments and array index
+ ! references.
+ !
+   st1 (i) = len (ch(st2 (1):8))
+   st2 (i) = max (st3 (1), 4)
+   st3 (i) = 2 + cos (z(st1 (1), i)) ! { dg-error "is recursive" }
+ !
+ ! Test the two regressions.
+ !
+   fi (n) = n *one
+   dshpfunc (arg)=-lambda/sigma*(arg/sigma)**(lambda-1)*exp(-(arg/sigma)**lambda)
+ !
+ ! References to each statement function.
+ !
+   write(6,*) st1 (1), fi (2), dshpfunc (1.0_8)
+   END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/ret_pointer_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/ret_pointer_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/ret_pointer_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/ret_pointer_2.f90	Tue Feb 14 17:34:07 2006
***************
*** 0 ****
--- 1,38 ----
+ ! { dg-do run }
+ ! PR 25806: Functions returning pointers to arrays
+ program a 
+     integer, target :: storage(5)
+     integer :: s(3)
+ 
+ 
+     print *, x(3)  ! { dg-output " *1  *2  *3" }
+ 
+     if (ssum(x(3)) /= 6) call abort()
+ 
+     s = 0
+     s = x(3)
+     if (any(s /= (/1, 2, 3/))) call abort()
+ 
+ contains
+ 
+     function x(n) result(t)
+         integer, intent(in) :: n
+         integer, pointer :: t(:)
+         integer :: i
+ 
+         t => storage(1:n)
+         t = (/ (i, i = 1, n) /)
+ 
+     end function x
+ 
+ 
+     integer function ssum(a)
+         integer, intent(in) :: a(:)
+ 
+         ssum = sum(a)
+         
+     end function ssum
+ 
+ end program a
+ 
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/runtime_warning_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/runtime_warning_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/runtime_warning_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/runtime_warning_1.f90	Thu Aug 11 13:50:13 2005
***************
*** 0 ****
--- 1,17 ----
+ ! Test runtime warnings using non-standard $ editing - PR20006.
+ !
+ ! Contributor Francois-Xavier Coudert  <coudert@clipper.ens.fr>
+ !
+ ! { dg-options "-pedantic" }
+ ! { dg-do run }
+ !
+      character*5 c
+      open (42,status='scratch')
+      write (42,'(A,$)') 'abc' ! { dg-warning ".*descriptor" "" }
+      write (42,'(A)') 'de'
+      rewind (42)
+      read (42,'(A)') c
+      close (42)
+      if (c /= 'abcde') call abort ()
+      end
+ ! { dg-warning ".*descriptor" "" 10}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/save_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/save_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/save_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/save_1.f90	Mon Sep 26 20:06:37 2005
***************
*** 0 ****
--- 1,30 ----
+ ! { dg-options "-O2 -fno-automatic" }
+       subroutine foo (b)
+ 	logical b
+ 	integer i, j
+ 	character*24 s
+ 	save i
+ 	if (b) then
+ 	  i = 26
+ 	  j = 131
+ 	  s = 'This is a test string'
+ 	else
+ 	  if (i .ne. 26 .or. j .ne. 131) call abort
+ 	  if (s .ne. 'This is a test string') call abort
+ 	end if
+       end subroutine foo
+       subroutine bar (s)
+ 	character*42 s
+ 	if (s .ne. '0123456789012345678901234567890123456') call abort
+ 	call foo (.false.)
+       end subroutine bar
+       subroutine baz
+ 	character*42 s
+ 	! Just clobber stack a little bit.
+ 	s = '0123456789012345678901234567890123456'
+ 	call bar (s)
+       end subroutine baz
+       call foo (.true.)
+       call baz
+       call foo (.false.)
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/save_common.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/save_common.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/save_common.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/save_common.f90	Wed Oct 12 20:12:46 2005
***************
*** 0 ****
--- 1,6 ----
+ ! { dg-do compile }
+ ! PR20847 - A common variable may not have the SAVE attribute.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ INTEGER, SAVE :: X
+ COMMON /COM/ X ! { dg-error "conflicts with SAVE attribute" }
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/save_result.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/save_result.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/save_result.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/save_result.f90	Wed Oct 12 20:12:46 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! PR20856 - A function result may not have SAVE attribute.
+ ! Contributed by Joost VandeVondele <jv244@cam.ac.uk>
+ FUNCTION X() RESULT(Y)
+ REAL, SAVE :: Y ! { dg-error "RESULT attribute conflicts with SAVE" }
+ y = 1
+ END FUNCTION X
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/scale_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/scale_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/scale_1.f90	Sat Dec 11 11:06:31 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/scale_1.f90	Thu Dec 22 16:41:41 2005
*************** DOUBLE PRECISION Y
*** 5,14 ****
  
  INTEGER, PARAMETER :: DP = KIND(Y)
  
! INTEGER*1 I1
! INTEGER*2 I2
! INTEGER*4 I4
! INTEGER*8 I8
  
  X = 1.
  Y = 1._DP
--- 5,14 ----
  
  INTEGER, PARAMETER :: DP = KIND(Y)
  
! INTEGER(kind=1) I1
! INTEGER(kind=2) I2
! INTEGER(kind=4) I4
! INTEGER(kind=8) I8
  
  X = 1.
  Y = 1._DP
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/scan_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/scan_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/scan_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/scan_1.f90	Sat Nov 12 19:16:40 2005
***************
*** 0 ****
--- 1,31 ----
+ program b
+    integer w
+    character(len=2) s, t
+    s = 'xi'
+ 
+    w = scan(s, 'iI')
+    if (w /= 2) call abort
+    w = scan(s, 'xX', .true.)
+    if (w /= 1) call abort
+    w = scan(s, 'ab')
+    if (w /= 0) call abort
+    w = scan(s, 'ab', .true.)
+    if (w /= 0) call abort
+ 
+    s = 'xi'
+    t = 'iI'
+    w = scan(s, t)
+    if (w /= 2) call abort
+    t = 'xX'
+    w = scan(s, t, .true.)
+    if (w /= 1) call abort
+    t = 'ab'
+    w = scan(s, t)
+    if (w /= 0) call abort
+    w = scan(s, t, .true.)
+    if (w /= 0) call abort
+ 
+ end program b
+    
+ 
+    
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/secnds.f gcc-4.1.0/gcc/testsuite/gfortran.dg/secnds.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/secnds.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/secnds.f	Thu Dec 22 16:29:18 2005
***************
*** 0 ****
--- 1,29 ----
+ C { dg-do run }
+ C { dg-options "-O0" }
+ C Tests fix for PR14994 - SECNDS intrinsic not supported.
+ C Note1: The test uses +/-20ms accuracy in the check that
+ C date_and_time and secnds give the same values.
+ C
+ C Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ C
+       character*20 dum1, dum2, dum3
+       real t1, t2
+       real dat1, dat2
+       real dt
+       integer i, j, values(8)
+       dt = 40e-3
+       t1 = secnds (0.0)
+       call date_and_time (dum1, dum2, dum3, values)
+       dat1 = 0.001*real (values(8)) + real (values(7)) +
+      &        60.0*real (values(6)) + 3600.0* real (values(5))
+       if (int ((dat1 - t1 + dt * 0.5) / dt) .ne. 0) call abort ()
+       do j=1,10000
+         do i=1,10000
+         end do
+       end do
+       call date_and_time (dum1, dum2, dum3, values)
+       dat2 = 0.001*real (values(8)) + real (values(7)) +
+      &        60.0*real (values(6)) + 3600.0* real (values(5))
+       t2 = secnds (t1)
+       if (int ((dat1-dat2 + t2 + dt * 0.5) / dt) .ne. 0.0) call abort ()
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/select_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/select_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/select_5.f90	Sun Jan 16 12:51:04 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/select_5.f90	Thu Dec 22 16:29:18 2005
***************
*** 1,7 ****
  ! { dg-do run }
  ! Test mismatched type kinds in a select statement.
  program select_5
!   integer*1 i          ! kind = 1, -128 <= i < 127
    do i = 1, 3
      select case (i)     
      case (1_4)         ! kind = 4, reachable
--- 1,7 ----
  ! { dg-do run }
  ! Test mismatched type kinds in a select statement.
  program select_5
!   integer(kind=1) i          ! kind = 1, -128 <= i < 127
    do i = 1, 3
      select case (i)     
      case (1_4)         ! kind = 4, reachable
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/shape_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/shape_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/shape_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/shape_2.f90	Tue Sep 13 08:07:15 2005
***************
*** 0 ****
--- 1,30 ----
+ ! Check that lbound() and ubound() work correctly for assumed shapes.
+ ! { dg-do run }
+ program main
+   integer, dimension (40, 80) :: a = 1
+   call test (a)
+ contains
+   subroutine test (b)
+     integer, dimension (11:, -8:), target :: b
+     integer, dimension (:, :), pointer :: ptr
+ 
+     if (lbound (b, 1) .ne. 11) call abort
+     if (ubound (b, 1) .ne. 50) call abort
+     if (lbound (b, 2) .ne. -8) call abort
+     if (ubound (b, 2) .ne. 71) call abort
+ 
+     if (lbound (b (:, :), 1) .ne. 1) call abort
+     if (ubound (b (:, :), 1) .ne. 40) call abort
+     if (lbound (b (:, :), 2) .ne. 1) call abort
+     if (ubound (b (:, :), 2) .ne. 80) call abort
+ 
+     if (lbound (b (20:30:3, 40), 1) .ne. 1) call abort
+     if (ubound (b (20:30:3, 40), 1) .ne. 4) call abort
+ 
+     ptr => b
+     if (lbound (ptr, 1) .ne. 1) call abort
+     if (ubound (ptr, 1) .ne. 40) call abort
+     if (lbound (ptr, 2) .ne. 1) call abort
+     if (ubound (ptr, 2) .ne. 80) call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/single_char_string.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/single_char_string.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/single_char_string.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/single_char_string.f90	Mon Jan  9 02:54:25 2006
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ ! { dg-options "-fdump-tree-original" }
+ ! PR12456 - Optimize string(k:k) as single character.
+ 
+ Program pr12456
+ character a
+ character b
+ character (len=5) :: c
+ integer i
+ 
+ b = 'a'
+ a = b
+ if (a .ne. 'a') call abort()
+ if (a .ne. b) call abort()
+ c (3:3) = 'a'
+ if (c (3:3) .ne. b) call abort ()
+ if (c (3:3) .ne. 'a') call abort ()
+ if (LGT (a, c (3:3))) call abort ()
+ if (LGT (a, 'a')) call abort ()
+ 
+ i = 3
+ c (i:i) = 'a'
+ if (c (i:i) .ne. b) call abort ()
+ if (c (i:i) .ne. 'a') call abort ()
+ if (LGT (a, c (i:i))) call abort ()
+ 
+ if (a .gt. char (255)) call abort ()
+ end
+ 
+ ! There should not be _gfortran_compare_string and _gfortran_copy_string in
+ ! the dumped file.
+ 
+ ! { dg-final { scan-tree-dump-times "_gfortran_compare_string" 0 "original" } }
+ ! { dg-final { scan-tree-dump-times "_gfortran_copy_string" 0 "original" } }
+ 
+ ! { dg-final { cleanup-tree-dump "original" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/slash_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/slash_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/slash_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/slash_1.f90	Tue Jun 28 11:47:15 2005
***************
*** 0 ****
--- 1,13 ----
+ ! PR libfortran/22170
+ ! { dg-do run }
+   integer i
+   open (10,status='scratch')
+   write (10,'(A,2/,A)') '12', '17'
+   rewind (10)
+   read (10,'(I2)') i
+   if (i /= 12) call abort
+   read (10,'(I2)') i
+   if (i /= 0) call abort
+   read (10,'(I2)') i
+   if (i /= 17) call abort
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/spec_expr_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/spec_expr_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/spec_expr_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/spec_expr_2.f90	Sun Oct 16 13:59:36 2005
***************
*** 0 ****
--- 1,7 ----
+ ! { dg-do compile }
+ ! PR 22273: Allow INTENT(OUT) dummy:s as arguments to LEN() in specification
+ ! expr:s
+ subroutine lecligne (ligne)
+     character(len=*), intent(out) :: ligne
+     character(len=len(ligne)) :: comment
+ end subroutine lecligne
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/spread_scalar_source.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/spread_scalar_source.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/spread_scalar_source.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/spread_scalar_source.f90	Thu Dec 22 16:29:18 2005
***************
*** 0 ****
--- 1,52 ----
+ ! { dg-do run }
+ ! { dg-options "-O0" }
+ 
+   character*1 :: i, j(10)
+   character*8 :: buffer
+   integer(kind=1) :: ii, jj(10)
+   type :: mytype
+     real(kind=8) :: x
+     integer(kind=1) :: i
+     character*15 :: ch
+   end type mytype
+   type(mytype) :: iii, jjj(10)
+ 
+   i = "w"
+   ii = 42
+   iii = mytype (41.9999_8, 77, "test_of_spread_")
+ 
+ ! Test constant sources.
+ 
+   j = spread ("z", 1 , 10)
+   if (any (j /= "z")) call abort ()
+   jj = spread (19, 1 , 10)
+   if (any (jj /= 19)) call abort ()
+ 
+ ! Test variable sources.
+ 
+   j = spread (i, 1 , 10)
+   if (any (j /= "w")) call abort ()
+   jj = spread (ii, 1 , 10)
+   if (any (jj /= 42)) call abort ()
+   jjj = spread (iii, 1 , 10)
+   if (any (jjj%x /= 41.9999_8)) call abort ()
+   if (any (jjj%i /= 77)) call abort ()
+   if (any (jjj%ch /= "test_of_spread_")) call abort ()
+ 
+ ! Check that spread != 1 is OK.
+ 
+   jj(2:10:2) = spread (1, 1, 5)
+   if (any (jj(1:9:2) /= 42) .or. any (jj(2:10:2) /= 1)) call abort ()
+ 
+ ! Finally, check that temporaries and trans-io.c work correctly.
+ 
+   write (buffer, '(4a1)') spread (i, 1 , 4)
+   if (trim(buffer) /= "wwww") call abort ()
+   write (buffer, '(4a1)') spread ("r", 1 , 4)
+   if (trim(buffer) /= "rrrr") call abort ()
+   write (buffer, '(4i2)') spread (ii, 1 , 4)
+   if (trim(buffer) /= "42424242") call abort ()
+   write (buffer, '(4i2)') spread (31, 1 , 4)
+   if (trim(buffer) /= "31313131") call abort ()
+ 
+   end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/static_linking_1.c gcc-4.1.0/gcc/testsuite/gfortran.dg/static_linking_1.c
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/static_linking_1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/static_linking_1.c	Fri Nov  4 08:44:29 2005
***************
*** 0 ****
--- 1,6 ----
+ extern void f_(void);
+ int main (void)
+ {
+   f_();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/static_linking_1.f gcc-4.1.0/gcc/testsuite/gfortran.dg/static_linking_1.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/static_linking_1.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/static_linking_1.f	Fri Nov 11 21:41:55 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do run }
+ ! { dg-require-effective-target static_libgfortran }
+ ! { dg-additional-sources static_linking_1.c }
+ ! { dg-options "-static" }
+ !
+ ! This testcase checks that statically linking libgfortran with C main()
+ ! really calls the constructor function
+ ! PR libfortran/22298
+       subroutine f
+         print *, "subroutine output"
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/stfunc_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/stfunc_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/stfunc_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/stfunc_1.f90	Sun Mar 13 19:28:18 2005
***************
*** 0 ****
--- 1,9 ----
+ ! { dg-do run }
+ ! this is a problem which disappeared between 2005-01-02 and 2005-03-13
+ ! PR 18600
+       logical a, b
+       a(b) = .true.
+       b = .false.
+       if (a(.false.)) b = .true.
+       if (.not.b) call abort
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/subnormal_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/subnormal_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/subnormal_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/subnormal_1.f90	Sat May 28 18:35:20 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do run }
+ ! { dg-options "-Wno-underflow" }
+ ! Check that the chopping of bits of subnormal numbers works.
+ !
+ program chop
+   real x
+   x = 1.
+   if (tiny(x)/2. /= tiny(x)/2. - (nearest(tiny(x),1.) - tiny(x))/2.) then
+     call abort
+   end if
+ end program chop
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/substring_equivalence.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/substring_equivalence.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/substring_equivalence.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/substring_equivalence.f90	Wed Nov 30 19:26:23 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do compile }
+ ! Tests fix for PR24223 - ICE on equivalence statement.
+ !
+ module FLAGS
+   character(len=5) :: Encodings
+   character :: at, dev
+   equivalence ( encodings(1:1),at ), ( encodings(2:2),dev)
+ end module FLAGS
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/t_editing.f gcc-4.1.0/gcc/testsuite/gfortran.dg/t_editing.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/t_editing.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/t_editing.f	Sun Dec 18 08:32:09 2005
***************
*** 0 ****
--- 1,8 ----
+ ! { dg-do run }     
+ ! PR25349 Check T editing. Test case from PR submitted by Thomas Koenig
+ ! Contributed by Jerry DeLisle <jvdelisle@gcc.gnu.org>
+       program main
+       character(len=10) line
+       write (line,'(1X,A,T1,A)') 'A','B'
+       if (line.ne.'BA') call abort()
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/tl_editing.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/tl_editing.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/tl_editing.f90	Thu Jul 14 13:34:43 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/tl_editing.f90	Sun Dec 18 08:32:09 2005
***************
*** 3,14 ****
  ! Left tabbing, followed by X or T-tabbing to the right would
  ! cause spaces to be overwritten on output data.
  ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
!   program tl_editting
!     character*10           ::  line
!     character*10           ::  aline = "abcdefxyij"
!     character*2            ::  bline = "gh"
!     character*10           ::  cline = "abcdefghij"
!     write (line, '(a10,tl6,2x,a2)') aline, bline
!     if (line.ne.cline) call abort ()
!   end program tl_editting
  
--- 3,32 ----
  ! Left tabbing, followed by X or T-tabbing to the right would
  ! cause spaces to be overwritten on output data.
  ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
! ! PR25349 Revised by Jerry DeLisle <jvdelisle@gcc.gnu.org> 
! program tl_editting
!   character*10           ::  line, many(5), s
!   character*10           ::  aline = "abcdefxyij"
!   character*2            ::  bline = "gh"
!   character*10           ::  cline = "abcdefghij"
! 
! ! Character unit test
!   write (line, '(a10,tl6,2x,a2)') aline, bline
!   if (line.ne.cline) call abort ()
! 
! ! Character array unit test
!   many = "0123456789"
!   write(many(1:5:2), '(a10,tl6,2x,a2)') aline, bline, aline, bline, aline,&
!   &bline
!   if (many(1).ne.cline) call abort ()
!   if (many(3).ne.cline) call abort ()
!   if (many(5).ne.cline) call abort ()
! 
! ! File unit test
!   write (10, '(a10,tl6,2x,a2)') aline, bline
!   rewind(10)
!   read(10, '(a)') s
!   if (s.ne.cline) call abort
!   
! end program tl_editting
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/typed_subroutine_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/typed_subroutine_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/typed_subroutine_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/typed_subroutine_1.f90	Mon Feb 13 21:35:09 2006
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! Tests the fix for 20858, in which the compiler failed to detect that
+ ! a called object had a type.
+ !
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ !
+  INTEGER :: S ! { dg-error "has a type, which is not consistent with the CALL " }
+  CALL S()     ! { dg-error "has a type, which is not consistent with the CALL " }
+  END
+  SUBROUTINE S
+  END SUBROUTINE
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/uncommon_block_data_1.f90	Mon Feb 13 21:35:09 2006
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! Tests the fix for 25083, in which the compiler failed to detect that
+ ! data variables in BLOCK DATA were not in COMMON.
+ !
+ ! Contributed by Joost VandeVondele  <jv244@cam.ac.uk>
+ !
+  BLOCK DATA D
+   INTEGER I ! { dg-error "must be in COMMON" }
+   DATA I /1/
+  END BLOCK DATA
+ END
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/underflow.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/underflow.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/underflow.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/underflow.f90	Mon Jul 25 03:37:30 2005
***************
*** 0 ****
--- 1,5 ----
+ ! { dg-do compile }
+ program a
+    real x
+    x = tiny(x) / huge(x)  ! { dg-warning "Arithmetic underflow" "" }
+ end program a
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_1.f90	Thu Dec 22 16:41:41 2005
***************
*** 0 ****
--- 1,95 ----
+ ! { dg-do run }
+ ! { dg-options "-pedantic" }
+ !  This test verifies the most basic sequential unformatted I/O
+ !  with convert="swap".
+ !  Adapted from seq_io.f.
+ !      write 3 records of various sizes
+ !      then read them back
+ program main
+   implicit none
+   integer size
+   parameter(size=100)
+   logical debug 
+   data debug /.FALSE./
+ ! set debug to true for help in debugging failures.
+   integer m(2)
+   integer n
+   real r(size)
+   integer i
+   character*4 str
+ 
+   m(1) = Z'11223344'
+   m(2) = Z'55667788'
+   n    = Z'77AABBCC'
+   str = 'asdf'
+   do i = 1,size
+      r(i) = i
+   end do
+   open(9,form="unformatted",access="sequential",convert="swap") ! { dg-warning "Extension: CONVERT" }
+   write(9) m  ! an array of 2
+   write(9) n  ! an integer
+   write(9) r  ! an array of reals
+   write(9)str ! String
+ ! zero all the results so we can compare after they are read back
+   do i = 1,size
+      r(i) = 0
+   end do
+   m(1) = 0
+   m(2) = 0
+   n = 0
+   str = ' '
+   
+   rewind(9)
+   read(9) m
+   read(9) n
+   read(9) r
+   read(9) str
+   !
+   ! check results
+   if (m(1).ne.Z'11223344') then
+      if (debug) then
+         print '(A,Z8)','m(1) incorrect.  m(1) = ',m(1)
+      else
+         call abort
+      endif
+   endif
+   
+   if (m(2).ne.Z'55667788') then
+      if (debug) then
+         print '(A,Z8)','m(2) incorrect.  m(2) = ',m(2)
+      else
+         call abort
+      endif
+   endif
+   
+   if (n.ne.Z'77AABBCC') then
+      if (debug) then
+         print '(A,Z8)','n incorrect.  n = ',n
+      else
+         call abort
+      endif
+   endif
+   
+   do i = 1,size
+      if (int(r(i)).ne.i) then
+         if (debug) then
+            print*,'element ',i,' was ',r(i),' should be ',i
+         else
+            call abort
+         endif
+      endif
+   end do
+   if (str .ne. 'asdf') then
+      if (debug) then
+         print *,'str incorrect, str = ', str
+      else
+         call abort
+      endif
+      ! use hexdump to look at the file "fort.9"
+      if (debug) then
+         close(9)
+      else
+         close(9,status='DELETE')
+      endif
+   end if
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_2.f90	Tue Dec 13 21:11:23 2005
***************
*** 0 ****
--- 1,39 ----
+ ! { dg-do run }
+ program main
+   complex(kind=4) :: c
+   real(kind=4) :: a(2)
+   integer(kind=4) :: i(2)
+   integer(kind=1) :: b(8)
+   integer(kind=8) :: j
+ 
+   c = (3.14, 2.71)
+   open (10, form="unformatted",convert="swap") ! { dg-warning "Extension: CONVERT" }
+   write (10) c
+   rewind (10)
+   read (10) a
+   if (a(1) /= 3.14 .or. a(2) /= 2.71) call abort
+   close(10,status="delete")
+ 
+   open (10, form="unformatted",convert="big_endian") ! { dg-warning "Extension: CONVERT" }
+   i = (/ Z'11223344', Z'55667700' /)
+   write (10) i
+   rewind (10)
+   read (10) b
+   if (any(b /= (/ Z'11', Z'22', Z'33', Z'44', Z'55', Z'66', Z'77', Z'00' /))) &
+     call abort
+   backspace 10
+   read (10) j
+   if (j /= Z'1122334455667700') call abort
+   close (10, status="delete")
+ 
+   open (10, form="unformatted", convert="little_endian") ! { dg-warning "Extension: CONVERT" }
+   write (10) i
+   rewind (10)
+   read (10) b
+   if (any(b /= (/ Z'44', Z'33', Z'22', Z'11', Z'00', Z'77', Z'66', Z'55' /))) &
+     call abort
+   backspace 10
+   read (10) j
+   if (j /= Z'5566770011223344') call abort
+ 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_3.f90	Tue Dec 13 21:11:23 2005
***************
*** 0 ****
--- 1,19 ----
+ ! { dg-do run}
+ ! { dg-require-effective-target fortran_large_real }
+ program main
+   integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1)
+   real(kind=k) a,b,c
+   a = 1.1_k
+   open(10,convert="swap",form="unformatted") ! { dg-warning "Extension: CONVERT" }
+   write(10) a
+   backspace 10
+   read (10) b
+   close(10,status="delete")
+   if (a /= b) call abort
+   write (11) a
+   backspace 11
+   open (11,form="unformatted")
+   read (11) c
+   if (a .ne. c) call abort
+   close (11, status="delete")
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/unf_io_convert_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/unf_io_convert_4.f90	Wed Feb  8 20:14:00 2006
***************
*** 0 ****
--- 1,14 ----
+ !  { dg-do run }
+ !  { dg-options "-fconvert=big-endian" }
+ program main
+   character (len=30) ch
+   open (10,form="unformatted",convert="little_endian") 
+   inquire (10, convert=ch) 
+   if (ch .ne. "LITTLE_ENDIAN") call abort
+   close (10, status="delete")
+ 
+   open(11,form="unformatted")
+   inquire (11, convert=ch)
+   if (ch .ne. "BIG_ENDIAN") call abort
+   close (11, status="delete")
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_1.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do run }
+ ! This checks the fix for PR20244 in which USE association
+ ! of derived types would cause an ICE, if the derived type
+ ! was also available by host association. This occurred 
+ ! because the backend declarations were different. 
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !==============
+ module mtyp
+   type t1
+      integer::a
+   end type t1
+ end module mtyp
+ !==============
+ module atest
+   use mtyp
+   type(t1)::ze
+ contains
+   subroutine test(ze_in )
+     use mtyp
+     implicit none
+     type(t1)::ze_in
+     ze_in = ze
+   end subroutine test
+   subroutine init( )
+     implicit none
+     ze = t1 (42)
+   end subroutine init
+ end module atest
+ !==============
+   use atest
+   type(t1) :: res = t1 (0)
+   call init ()
+   call test (res)
+   if (res%a.ne.42) call abort
+ end  
\ No newline at end of file
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_2.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,32 ----
+ ! { dg-do compile }
+ ! This tests that the fix for PR25391 also fixes PR20244. If
+ ! the USE mod1 in subroutine foo were deleted, the code would
+ ! compile fine.  With the USE statement, the compiler would
+ ! make new TYPEs for T1 and T2 and bomb out in fold-convert.
+ ! This is a slightly more elaborate test than
+ ! used_dummy_types_1.f90 and came from the PR.
+ !
+ ! Contributed by Jakub Jelinek  <jakubcc.gnu.org>
+ module mod1
+   type t1
+     real :: f1
+   end type t1
+   type t2
+     type(t1), pointer :: f2(:)
+     real, pointer :: f3(:,:)
+   end type t2
+ end module mod1
+ 
+ module mod2
+   use mod1
+   type(t1), pointer, save :: v(:)
+ contains
+   subroutine foo (x)
+     use mod1
+     implicit none
+     type(t2) :: x
+     integer :: d
+     d = size (x%f3, 2)
+     v = x%f2(:)
+   end subroutine foo
+ end module mod2
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_3.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,36 ----
+ ! { dg-do compile }
+ ! This checks the fix for PR20864 in which same name, USE associated
+ ! derived types from different modules, with private components were
+ ! not recognised to be different.
+ !
+ ! Contributed by Joost VandVondele  <jv244@cam.ac.uk>
+ !==============
+   MODULE T1
+     TYPE data_type
+       SEQUENCE
+   ! private causes the types in T1 and T2 to be different 4.4.2
+       PRIVATE
+       INTEGER :: I
+     END TYPE
+   END MODULE
+ 
+   MODULE T2
+     TYPE data_type
+       SEQUENCE
+       PRIVATE
+       INTEGER :: I
+     END TYPE
+ 
+   CONTAINS
+ 
+     SUBROUTINE TEST(x)
+       TYPE(data_type) :: x
+     END SUBROUTINE TEST
+   END MODULE
+ 
+     USE T1
+     USE T2 , ONLY : TEST
+     TYPE(data_type) :: x
+     CALL TEST(x)         ! { dg-error "Type/rank mismatch in argument" }
+   END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_4.f90	Thu Dec 29 06:18:23 2005
***************
*** 0 ****
--- 1,101 ----
+ ! { dg-do compile }
+ ! This checks the fix for PR19362 in which types from different scopes
+ ! that are the same, according to 4.4.2, would generate an ICE if one
+ ! were assigned to the other.  As well as the test itself, various
+ ! other requirements of 4.4.2 are tested here.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !==============
+ module global
+ 
+   TYPE :: seq_type1
+     sequence
+     integer :: i
+   end type seq_type1
+ 
+   TYPE :: nonseq_type1
+     integer :: i
+   end type nonseq_type1
+   type (nonseq_type1) :: ns1
+ 
+ end module global
+ 
+ ! Host types with local name != true name
+   use global, only: seq_type2=>seq_type1, nonseq_type2=>nonseq_type1, ns1
+   type (nonseq_type2) :: ns2
+ 
+ ! Host non-sequence types
+   type :: different_type
+     integer :: i
+   end type different_type
+   type (different_type)  :: dt1
+ 
+   type :: same_type
+     integer :: i
+   end type same_type
+   type (same_type)  :: st1
+ 
+   real :: seq_type1
+ 
+ ! Provide a reference to dt1.
+   dt1 = different_type (42)
+ ! These share a type declaration.
+   ns2 = ns1
+ ! USE associated seq_type1 is renamed.
+   seq_type1 = 1.0
+ 
+ ! These are different.
+   st1 = dt                ! { dg-error "convert REAL" }
+ 
+   call foo (st1)          ! { dg-error "Type/rank mismatch in argument" }
+ 
+ contains
+ 
+   subroutine foo (st2)
+ 
+ ! Contained type with local name != true name.
+ ! This is the same as seq_type2 in the host.
+     use global, only: seq_type3=>seq_type1
+ 
+ ! This local declaration is the same as seq_type3 and seq_type2.
+     TYPE :: seq_type1
+       sequence
+       integer :: i
+     end type seq_type1
+ 
+ ! Host association of renamed type.
+     type (seq_type2) :: x
+ ! Locally declared version of the same thing.
+     type (seq_type1) :: y
+ ! USE associated renamed type.
+     type (seq_type3) :: z
+ 
+ ! Contained type that is different to that in the host.
+     type :: different_type
+       complex :: z
+     end type different_type
+ 
+     type :: same_type
+       integer :: i
+     end type same_type
+ 
+     type (different_type)  :: b
+     type (same_type)  :: st2
+ 
+ ! Error because these are not the same.
+     b = dt1               ! { dg-error "convert TYPE" }
+ 
+ ! Error in spite of the name - these are non-sequence types and are NOT
+ ! the same.
+     st1 = st2             ! { dg-error "convert TYPE" }
+ 
+     b%z = (2.0,-1.0)
+ 
+ ! Check that the references that are correct actually work. These test the
+ ! fix for PR19362.
+     x = seq_type1 (1)
+     y = x
+     y = seq_type3 (99)
+   end subroutine foo
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/used_dummy_types_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/used_dummy_types_5.f90	Fri Feb  3 21:32:14 2006
***************
*** 0 ****
--- 1,85 ----
+ ! { dg-do compile }
+ ! This checks that the fix for PR19362 has not broken gfortran
+ ! in respect of.references allowed by 4.4.2.
+ !
+ ! Contributed by Paul Thomas  <pault@gcc.gnu.org>
+ !==============
+ module global
+ 
+   TYPE :: seq_type1
+     sequence
+     integer :: i
+   end type seq_type1
+ 
+   TYPE :: nonseq_type1
+     integer :: i = 44
+   end type nonseq_type1
+   type (nonseq_type1), save :: ns1
+ 
+ end module global
+ 
+   use global, only: seq_type2=>seq_type1, nonseq_type1, ns1
+ 
+ ! Host non-sequence types
+   type :: different_type
+     integer :: i
+   end type different_type
+ 
+   type :: same_type
+     sequence
+     integer :: i
+   end type same_type
+ 
+   type (seq_type2)  :: t1
+   type (different_type)  :: dt1
+ 
+   type (nonseq_type1) :: ns2
+   type (same_type)  :: st1
+   real seq_type1
+ 
+   t1 = seq_type2 (42)
+   dt1 = different_type (43)
+   ns2 = ns1
+   seq_type1 =1.0e32
+   st1%i = 45
+ 
+   call foo (t1)
+ 
+ contains
+ 
+   subroutine foo (x)
+ 
+     use global, only: seq_type3=>seq_type1
+ 
+     TYPE :: seq_type1
+       sequence
+       integer :: i
+     end type seq_type1
+ 
+     type :: different_type
+       complex :: z
+     end type different_type
+ 
+     type :: same_type
+       sequence
+       integer :: i
+     end type same_type
+ ! Host association of renamed type.
+     type (seq_type2) :: x
+ ! Locally declared version of the same thing.
+     type (seq_type1) :: y
+ ! USE associated renamed type.
+     type (seq_type3) :: z
+ 
+ 
+     type (different_type)  :: dt2
+     type (same_type)  :: st2
+ 
+     dt2%z = (2.0,-1.0)
+     y = seq_type2 (46)
+     z = seq_type3 (47)
+     st2 = st1
+     print *, x, y, z, dt2, st2, ns2, ns1
+   end subroutine foo
+ END
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/used_types_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/used_types_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/used_types_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/used_types_1.f90	Wed Jan 11 07:27:31 2006
***************
*** 0 ****
--- 1,21 ----
+ ! { dg-do compile }
+ ! This checks that the fix for PR25730, which was a regression
+ ! caused by the fix for PR19362.
+ !
+ ! Contributed by Andrea Bedini <andrea.bedini@gmail.com>
+ !==============
+ MODULE testcase
+   TYPE orbit_elem
+      CHARACTER(4) :: coo
+   END TYPE orbit_elem
+ END MODULE
+ MODULE tp_trace
+   USE testcase
+   TYPE(orbit_elem) :: tp_store
+ CONTAINS
+   SUBROUTINE str_clan()
+     USE testcase
+     TYPE(orbit_elem) :: mtpcar
+     mtpcar%coo='a'             !ICE was here
+   END SUBROUTINE str_clan
+ END MODULE
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/userdef_operator_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/userdef_operator_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/userdef_operator_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/userdef_operator_1.f90	Fri Dec 30 15:07:48 2005
***************
*** 0 ****
--- 1,35 ----
+ ! { dg-do compile }
+ ! Testcase from PR 25396: User defined operators returning arrays.
+ module geometry
+ 
+   implicit none
+ 
+   interface operator(.cross.)
+      module procedure cross
+   end interface
+ 
+ contains
+ 
+     ! Cross product between two 3d vectors.
+     pure function cross(a, b)
+       real, dimension(3), intent(in) :: a,b
+       real, dimension(3) :: cross
+ 
+      cross = (/ a(2) * b(3) - a(3) * b(2), &
+            a(3) * b(1) - a(1) * b(3), &
+            a(1) * b(2) - a(2) * b(1) /)
+     end function cross
+ 
+ end module geometry
+ 
+ program opshape
+   use geometry
+ 
+   implicit none
+ 
+   real :: t(3,3), a
+ 
+   a = dot_product (t(:,1), t(:,2) .cross. t(:,3))
+ 
+ end program opshape
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/pr19049.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/pr19049.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/pr19049.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/pr19049.f90	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,24 ----
+ ! { dg-do compile }
+ ! { dg-require-effective-target vect_float }
+ 
+ subroutine s111 (ntimes,ld,n,ctime,dtime,a,b,c,d,e,aa,bb,cc) 
+ !     linear dependence testing
+ !     no dependence - vectorizable
+ !     but not consecutive access
+ 
+       integer ntimes, ld, n, i, nl
+       real a(n), b(n), c(n), d(n), e(n), aa(ld,n), bb(ld,n), cc(ld,n)
+       real t1, t2, second, chksum, ctime, dtime, cs1d
+       do 1 nl = 1,2*ntimes
+       do 10 i = 2,n,2
+          a(i) = a(i-1) + b(i)
+   10  continue
+       call dummy(ld,n,a,b,c,d,e,aa,bb,cc,1.)
+   1   continue
+       return
+       end
+ 
+ ! { dg-final { scan-tree-dump-times "vectorized 1 loops" 0 "vect" } }
+ ! { dg-final { scan-tree-dump-times "complicated access pattern" 1 "vect" } }
+ ! { dg-final { cleanup-tree-dump "vect" } }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-1.f90	Tue May  3 00:16:52 2005
***************
*** 0 ****
--- 1,11 ----
+ ! { dg-do compile }
+ ! { dg-require-effective-target vect_float }
+ 
+ DIMENSION A(1000000), B(1000000), C(1000000)
+ READ*, X, Y
+ A = LOG(X); B = LOG(Y); C = A + B
+ PRINT*, C(500000)
+ END
+ 
+ ! { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } }
+ ! { dg-final { cleanup-tree-dump "vect" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-2.f90	Tue Sep  6 10:59:58 2005
***************
*** 0 ****
--- 1,22 ----
+ ! { dg-do compile }
+ ! { dg-require-effective-target vect_float }
+ 
+ SUBROUTINE FOO(A, B, C)
+ DIMENSION A(1000000), B(1000000), C(1000000)
+ READ*, X, Y
+ A = LOG(X); B = LOG(Y); C = A + B
+ PRINT*, C(500000)
+ END
+ 
+ ! First loop (A=LOG(X)) is vectorized using peeling to align the store.
+ ! Same for the second loop (B=LOG(Y)).
+ ! Third loop (C = A + B) is vectorized using versioning (for targets that don't
+ ! support unaligned loads) or using peeling to align the store (on targets that 
+ ! support unaligned loads).
+ 
+ ! { dg-final { scan-tree-dump-times "vectorized 3 loops" 1 "vect" } }
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail vect_no_align } } }
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target vect_no_align } } }
+ ! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } }
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" {target vect_no_align } } }
+ ! { dg-final { cleanup-tree-dump "vect" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-3.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-3.f90	Tue May  3 00:16:52 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do compile }
+ ! { dg-require-effective-target vect_float }
+ 
+ SUBROUTINE SAXPY(X, Y, A, N)
+ DIMENSION X(N), Y(N)
+ Y = Y + A * X
+ END
+ 
+ ! fail to vectorize due to failure to compute number of iterations (PR tree-optimization/18527)
+ ! { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } 
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail *-*-* } } } 
+ ! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail *-*-* } } } 
+ ! { dg-final { cleanup-tree-dump "vect" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-4.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-4.f90	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,16 ----
+ ! { dg-do compile }
+ ! { dg-require-effective-target vect_float }
+ 
+ ! Peeling to align the store to Y will also align the load from Y.
+ ! The load from X may still be misaligned.
+ 
+ SUBROUTINE SAXPY(X, Y, A)
+ DIMENSION X(64), Y(64)
+ Y = Y + A * X
+ END
+ 
+ ! { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } 
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" } }
+ ! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" } }
+ ! { dg-final { scan-tree-dump-times "accesses have the same alignment." 1 "vect" } }
+ ! { dg-final { cleanup-tree-dump "vect" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-5.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect-5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect-5.f90	Thu Dec  8 09:30:59 2005
***************
*** 0 ****
--- 1,51 ----
+ ! { dg-require-effective-target vect_int }
+ 
+         Subroutine foo (N, M)
+         Integer N
+         Integer M
+         integer A(8,16)
+         integer B(8)
+ 
+         B = (/ 2, 3, 5, 7, 11, 13, 17, 23 /)
+ 
+         ! Unknown loop bound. J depends on I.
+ 
+         do I = 1, N
+           do J = I, M
+             A(J,2) = B(J)
+           end do
+         end do
+ 
+         do I = 1, N
+           do J = I, M
+             if (A(J,2) /= B(J)) then
+               call abort ()
+               endif
+           end do
+         end do
+ 
+         Return
+         end
+ 
+ 
+         program main
+ 
+         Call foo (16, 8)
+ 
+         stop
+         end
+ 
+ ! { dg-final { scan-tree-dump-times "vectorized 2 loops" 1 "vect" { xfail { lp64 } } } }
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align || lp64 } } } }
+ ! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail { vect_no_align || lp64 } } } }
+ ! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target { ilp32 && vect_no_align } } } }
+ 
+ ! We also expect to vectorize one loop for lp64 targets that support 
+ ! misaligned access:
+ !   scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { lp64 && !vect_no_align } }
+ !   scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { lp64 && !vect_no_align } }
+ !   scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { target { lp64 && !vect_no_align } }
+ ! but we currently can't combine logical operators. (Could define 
+ ! a keyword for "not_vect_no_align" if desired). 
+ 
+ ! { dg-final { cleanup-tree-dump "vect" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect.exp gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect.exp
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vect/vect.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vect/vect.exp	Mon Jul 25 12:05:07 2005
***************
*** 0 ****
--- 1,99 ----
+ # Copyright (C) 1997, 2004 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # GCC testsuite that uses the `dg.exp' driver.
+ 
+ # Load support procs.
+ load_lib gfortran-dg.exp
+ load_lib target-supports.exp
+ 
+ # Set up flags used for tests that don't specify options.
+ set DEFAULT_VECTCFLAGS ""
+ 
+ # These flags are used for all targets.
+ lappend DEFAULT_VECTCFLAGS "-O2" "-ftree-vectorize" \
+   "-ftree-vectorizer-verbose=4" "-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.
+ # Executing vector instructions on a system without hardware vector support
+ # is also disabled by a call to check_vect, but disabling execution here is
+ # more efficient.
+ global dg-do-what-default
+ set save-dg-do-what-default ${dg-do-what-default}
+ 
+ # Skip these tests for targets that do not support generating vector
+ # code.  Set additional target-dependent vector flags, which can be
+ # overridden by using dg-options in individual tests.
+ if [istarget "powerpc*-*-*"] {
+     # If there are powerpc targets to skip, do it here.
+ 
+     lappend DEFAULT_VECTCFLAGS "-maltivec"
+     if [check_vmx_hw_available] {
+ 	set dg-do-what-default run
+     } else {
+ 	if [is-effective-target ilp32] {
+ 	    # Specify a cpu that supports VMX for compile-only tests.
+ 	    lappend DEFAULT_VECTCFLAGS "-mcpu=7400"
+ 	}
+ 	set dg-do-what-default compile
+     }
+ } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } {
+     lappend DEFAULT_VECTCFLAGS "-msse2"
+     set dg-do-what-default run
+ } elseif [istarget "mipsisa64*-*-*"] {
+     lappend DEFAULT_VECTCFLAGS "-mpaired-single"
+     set dg-do-what-default run
+ } elseif [istarget "sparc*-*-*"] {
+     lappend DEFAULT_VECTCFLAGS "-mcpu=ultrasparc" "-mvis"
+     set dg-do-what-default run
+ } elseif [istarget "alpha*-*-*"] {
+     lappend DEFAULT_VECTCFLAGS "-mmax"
+     if [check_alpha_max_hw_available] {
+ 	set dg-do-what-default run
+     } else {
+ 	set dg-do-what-default compile
+     }
+ } elseif [istarget "ia64-*-*"] {
+     set dg-do-what-default run
+ } else {
+     return
+ }
+ 
+ # Return 1 if the effective target is LP64 or if the effective target
+ # does not support a vector alignment mechanism.
+ 
+ proc check_effective_target_lp64_or_vect_no_align { } {
+     if { [is-effective-target lp64]
+           || [is-effective-target vect_no_align] } {
+         set answer 1
+     } else {
+         set answer 0
+     }
+     return $answer
+ }
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Main loop.
+ gfortran-dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95} ]] $DEFAULT_VECTCFLAGS
+ 
+ # Clean up.
+ set dg-do-what-default ${save-dg-do-what-default}
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vector_subscript_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vector_subscript_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vector_subscript_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vector_subscript_1.f90	Fri Sep  9 06:34:08 2005
***************
*** 0 ****
--- 1,174 ----
+ ! PR 19239.  Check for various kinds of vector subscript.  In this test,
+ ! all vector subscripts are indexing single-dimensional arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n = 10
+   integer :: i, j, calls
+   integer, dimension (n) :: a, b, idx, id
+ 
+   idx = (/ 3, 1, 5, 2, 4, 10, 8, 7, 6, 9 /)
+   id = (/ (i, i = 1, n) /)
+   b = (/ (i * 100, i = 1, n) /)
+ 
+   !------------------------------------------------------------------
+   ! Tests for a simple variable subscript
+   !------------------------------------------------------------------
+ 
+   a (idx) = b
+   call test (idx, id)
+ 
+   a = b (idx)
+   call test (id, idx)
+ 
+   a (idx) = b (idx)
+   call test (idx, idx)
+ 
+   !------------------------------------------------------------------
+   ! Tests for constant ranges with non-default stride
+   !------------------------------------------------------------------
+ 
+   a (idx (1:7:3)) = b (10:6:-2)
+   call test (idx (1:7:3), id (10:6:-2))
+ 
+   a (10:6:-2) = b (idx (1:7:3))
+   call test (id (10:6:-2), idx (1:7:3))
+ 
+   a (idx (1:7:3)) = b (idx (1:7:3))
+   call test (idx (1:7:3), idx (1:7:3))
+ 
+   a (idx (1:7:3)) = b (idx (10:6:-2))
+   call test (idx (1:7:3), idx (10:6:-2))
+ 
+   a (idx (10:6:-2)) = b (idx (10:6:-2))
+   call test (idx (10:6:-2), idx (10:6:-2))
+ 
+   a (idx (10:6:-2)) = b (idx (1:7:3))
+   call test (idx (10:6:-2), idx (1:7:3))
+ 
+   !------------------------------------------------------------------
+   ! Tests for subscripts of the form CONSTRANGE + CONST
+   !------------------------------------------------------------------
+ 
+   a (idx (1:5) + 1) = b (1:5)
+   call test (idx (1:5) + 1, id (1:5))
+ 
+   a (1:5) = b (idx (1:5) + 1)
+   call test (id (1:5), idx (1:5) + 1)
+ 
+   a (idx (6:10) - 1) = b (idx (1:5) + 1)
+   call test (idx (6:10) - 1, idx (1:5) + 1)
+ 
+   !------------------------------------------------------------------
+   ! Tests for variable subranges
+   !------------------------------------------------------------------
+ 
+   do j = 5, 10
+     a (idx (2:j:2)) = b (3:2+j/2)
+     call test (idx (2:j:2), id (3:2+j/2))
+ 
+     a (3:2+j/2) = b (idx (2:j:2))
+     call test (id (3:2+j/2), idx (2:j:2))
+ 
+     a (idx (2:j:2)) = b (idx (2:j:2))
+     call test (idx (2:j:2), idx (2:j:2))
+   end do
+ 
+   !------------------------------------------------------------------
+   ! Tests for function vectors
+   !------------------------------------------------------------------
+ 
+   calls = 0
+ 
+   a (foo (5, calls)) = b (2:10:2)
+   call test (foo (5, calls), id (2:10:2))
+ 
+   a (2:10:2) = b (foo (5, calls))
+   call test (id (2:10:2), foo (5, calls))
+ 
+   a (foo (5, calls)) = b (foo (5, calls))
+   call test (foo (5, calls), foo (5, calls))
+ 
+   if (calls .ne. 8) call abort
+ 
+   !------------------------------------------------------------------
+   ! Tests for constant vector constructors
+   !------------------------------------------------------------------
+ 
+   a ((/ 1, 5, 3, 9 /)) = b (1:4)
+   call test ((/ 1, 5, 3, 9 /), id (1:4))
+ 
+   a (1:4) = b ((/ 1, 5, 3, 9 /))
+   call test (id (1:4), (/ 1, 5, 3, 9 /))
+ 
+   a ((/ 1, 5, 3, 9 /)) = b ((/ 2, 5, 3, 7 /))
+   call test ((/ 1, 5, 3, 9 /), (/ 2, 5, 3, 7 /))
+ 
+   !------------------------------------------------------------------
+   ! Tests for variable vector constructors
+   !------------------------------------------------------------------
+ 
+   do j = 1, 5
+     a ((/ 1, (i + 3, i = 2, j) /)) = b (1:j)
+     call test ((/ 1, (i + 3, i = 2, j) /), id (1:j))
+ 
+     a (1:j) = b ((/ 1, (i + 3, i = 2, j) /))
+     call test (id (1:j), (/ 1, (i + 3, i = 2, j) /))
+ 
+     a ((/ 1, (i + 3, i = 2, j) /)) = b ((/ 8, (i + 2, i = 2, j) /))
+     call test ((/ 1, (i + 3, i = 2, j) /), (/ 8, (i + 2, i = 2, j) /))
+   end do
+ 
+   !------------------------------------------------------------------
+   ! Tests in which the vector dimension is partnered by a temporary
+   !------------------------------------------------------------------
+ 
+   calls = 0
+   a (idx (1:6)) = foo (6, calls)
+   if (calls .ne. 1) call abort
+   do i = 1, 6
+     if (a (idx (i)) .ne. i + 3) call abort
+   end do
+   a = 0
+ 
+   calls = 0
+   a (idx (1:6)) = foo (6, calls) * 100
+   if (calls .ne. 1) call abort
+   do i = 1, 6
+     if (a (idx (i)) .ne. (i + 3) * 100) call abort
+   end do
+   a = 0
+ 
+   a (idx) = id + 100
+   do i = 1, n
+     if (a (idx (i)) .ne. i + 100) call abort
+   end do
+   a = 0
+ 
+   a (idx (1:10:3)) = (/ 20, 10, 9, 11 /)
+   if (a (idx (1)) .ne. 20) call abort
+   if (a (idx (4)) .ne. 10) call abort
+   if (a (idx (7)) .ne. 9) call abort
+   if (a (idx (10)) .ne. 11) call abort
+   a = 0
+ 
+ contains
+   subroutine test (lhs, rhs)
+     integer, dimension (:) :: lhs, rhs
+     integer :: i
+ 
+     if (size (lhs, 1) .ne. size (rhs, 1)) call abort
+     do i = 1, size (lhs, 1)
+       if (a (lhs (i)) .ne. b (rhs (i))) call abort
+     end do
+     a = 0
+   end subroutine test
+ 
+   function foo (n, calls)
+     integer :: i, n, calls
+     integer, dimension (n) :: foo
+ 
+     calls = calls + 1
+     foo = (/ (i + 3, i = 1, n) /)
+   end function foo
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/vector_subscript_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/vector_subscript_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/vector_subscript_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/vector_subscript_2.f90	Fri Sep  9 06:34:08 2005
***************
*** 0 ****
--- 1,39 ----
+ ! Like vector_subscript_1.f90, but check subscripts in multi-dimensional
+ ! arrays.
+ ! { dg-do run }
+ program main
+   implicit none
+   integer, parameter :: n = 5
+   integer :: i1, i2, i3
+   integer, dimension (n, n, n) :: a, b
+   integer, dimension (n) :: idx, id
+ 
+   idx = (/ 3, 1, 5, 2, 4 /)
+   id = (/ (i1, i1 = 1, n) /)
+   forall (i1 = 1:n, i2 = 1:n, i3 = 1:n)
+     b (i1, i2, i3) = i1 + i2 * 10 + i3 * 100
+   end forall
+ 
+   i1 = 5
+   a (foo (i1), 1, :) = b (2, :, foo (i1))
+   do i1 = 1, 5
+     do i2 = 1, 5
+       if (a (idx (i1), 1, i2) .ne. b (2, i1, idx (i2))) call abort
+     end do
+   end do
+   a = 0
+ 
+   a (1, idx (1:4), 2:4) = b (2:5, idx (3:5), 2)
+   do i1 = 1, 4
+     do i2 = 1, 3
+       if (a (1, idx (i1), 1 + i2) .ne. b (1 + i1, idx (i2 + 2), 2)) call abort
+     end do
+   end do
+   a = 0
+ contains
+   function foo (n)
+     integer :: n
+     integer, dimension (n) :: foo
+     foo = idx (1:n)
+   end function foo
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/where_nested_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/where_nested_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/where_nested_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/where_nested_1.f90	Wed Dec 21 12:07:58 2005
***************
*** 0 ****
--- 1,26 ----
+ ! { dg-do compile }
+ ! PR 25423: Nested WHERE constructs.
+ program nested_where
+ 
+     implicit none
+     integer :: a(4)
+     logical :: mask1(4) = (/.TRUE., .TRUE., .FALSE., .FALSE./), &
+                mask2(4) = (/.TRUE., .FALSE., .TRUE., .FALSE./)
+ 
+     where (mask1)
+         where (mask2)
+             a = 1
+         elsewhere
+             a = 2
+         end where
+     elsewhere
+         where (mask2)
+             a = 3
+         elsewhere
+             a = 4
+         end where
+     end where
+ 
+     print *, a
+ 
+ end program nested_where
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/write_padding.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/write_padding.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/write_padding.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/write_padding.f90	Sun Dec 18 08:32:09 2005
***************
*** 0 ****
--- 1,13 ----
+ ! { dg-do run }
+ ! PR25264 Verify that the internal unit, str, is not cleared
+ ! before it is needed elsewhere.  This is an extension.
+ ! Test derived from test case by JPR. Contributed by
+ ! Jerry DeLisle <jvdelisle@verizon.net>.
+ program write_padding
+    character(len=10) :: str
+    real :: atime
+    str = '123'
+    write( str, '(a3,i1)' ) trim(str),4
+    if (str.ne."1234") call abort()
+ end program write_padding
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/wtruncate.f gcc-4.1.0/gcc/testsuite/gfortran.dg/wtruncate.f
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/wtruncate.f	Sat Apr 23 14:09:02 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/wtruncate.f	Sun Apr 17 11:56:30 2005
***************
*** 5,10 ****
  
        PROGRAM foo
        WRITE (*,*) "Test"           ! Neither this comment which exceeds the 72 character limit, too
!       WRITE (*,*) "This exactly 72 character long source line not, too."
        END
  
--- 5,10 ----
  
        PROGRAM foo
        WRITE (*,*) "Test"           ! Neither this comment which exceeds the 72 character limit, too
!       WRITE (*,*) "This exactly 72 character long soruce line not, too."
        END
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.dg/wtruncate.f90 gcc-4.1.0/gcc/testsuite/gfortran.dg/wtruncate.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.dg/wtruncate.f90	Sat Apr 23 14:09:02 2005
--- gcc-4.1.0/gcc/testsuite/gfortran.dg/wtruncate.f90	Sun Apr 17 11:56:30 2005
***************
*** 5,10 ****
  
        PROGRAM foo
        WRITE (*,*) "Test"           ! Neither this comment which exceeds the 132 character limit with some random words, too (blah blah)
!       WRITE (*,*) "This exactly 132 character long source line not, too.  How can people fill 132 characters without sensless stuff"
        END
  
--- 5,10 ----
  
        PROGRAM foo
        WRITE (*,*) "Test"           ! Neither this comment which exceeds the 132 character limit with some random words, too (blah blah)
!       WRITE (*,*) "This exactly 132 character long soruce line not, too.  How can people fill 132 characters without sensless stuff"
        END
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp	Thu May 13 06:40:52 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/compile.exp	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # These tests come from many different contributors.
  
--- 13,19 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # These tests come from many different contributors.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_1.f90	Wed Nov  2 21:01:54 2005
***************
*** 0 ****
--- 1,10 ----
+ !This used to ICE as we chose the wrong type for the
+ ! temporary to hold type%var
+ ! fortran/18157
+ program testcase_fold
+   type :: struct                            
+      real      :: var       ! its julian sec  
+   end type struct
+   type(struct), dimension(:), pointer :: mystruct
+   mystruct(:)%var = mystruct(:)%var
+ END Program testcase_fold
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_2.f90	Wed Nov  2 21:01:54 2005
***************
*** 0 ****
--- 1,17 ----
+ !This used to ICE as we chose the wrong type for the
+ ! temporary to hold type%x
+ ! fortran/18157
+ MODULE bug 
+  IMPLICIT NONE 
+  TYPE :: my_type 
+    REAL :: x 
+  END TYPE 
+  TYPE (my_type), DIMENSION(3) :: t 
+  CONTAINS 
+    SUBROUTINE foo 
+    INTEGER, DIMENSION(8)        :: c(3) 
+    t(c)%x = t(c)%x 
+    RETURN 
+   END SUBROUTINE foo 
+ END MODULE bug 
+  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/defined_type_3.f90	Wed Nov  2 21:01:54 2005
***************
*** 0 ****
--- 1,10 ----
+ !This used to ICE as we chose the wrong type for the
+ ! temporary to hold type%var
+ ! fortran/18157
+ program testcase_fold
+   type :: struct                            
+      real      :: var       ! its julian sec  
+   end type struct
+   type(struct), dimension(:), pointer :: mystruct
+   mystruct(1:2)%var = mystruct(2:3)%var
+ END Program testcase_fold
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/enum_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/enum_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/enum_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/enum_1.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,46 ----
+ ! Program to test parsing of ENUM in different program units
+ 
+ program main
+   implicit none
+   interface 
+     subroutine sub1
+     end subroutine sub1
+   end interface
+   integer :: i = 55
+ 
+   enum , bind (c)
+     enumerator :: a , b=5
+     enumerator c, d
+   end enum
+ 
+   call sub
+   call sub1
+   i = fun() 
+ 
+ contains
+ 
+   subroutine sub
+     enum, bind(c)
+       enumerator :: p = b, q = 10 + 50
+       enumerator r, s
+     end enum
+   end subroutine sub
+ 
+   function fun()
+   integer :: fun
+   enum, bind (c)
+     enumerator :: red, yellow = 23
+     enumerator :: blue 
+     enumerator :: green
+   end enum
+   fun = 1
+   end function fun
+ end program main
+ 
+ subroutine sub1
+   implicit none
+   enum, bind(c)  
+     enumerator x , y
+     enumerator :: z = 100
+   end enum
+ end subroutine sub1
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/pr24136.f gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/pr24136.f
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/compile/pr24136.f	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/compile/pr24136.f	Sat Oct  8 21:41:50 2005
***************
*** 0 ****
--- 1,43 ----
+       subroutine  electra(ro,t,ye,ee,pe,se
+      a                   ,eer,eet,per,pet,ser,set,keyps)
+       implicit real*8 (a-h,o-z)
+       common  /nunu/  nu,dnudr,dnudb,eta,detadnu,nup
+       data facen,facpr,facs,rg /2.037300d+24,1.358200d+24,1.686304d-10
+      1,8.314339d+07/
+       data a1,a2,a3,a4 /2.059815d-03,-7.027778d-03
+      1,4.219747d-02,-1.132427d+00/
+       beta=facs*t
+       b32=b12*beta
+       u=(f62/f52)**2
+       dudnu=2.0d0*u*(df62/f62-df52/f52)
+       x=beta*u
+       f=1.0d0+x*(2.5d0+x*(2.0d0+0.5d0*x))
+       df=2.5d0+x*(4.0d0+1.5d0*x)
+       dfdb=u*df
+       fi32=f32+(f-1.0d0)*f52/u
+       dfidnu=dfidu*dudnu+df32+(f-1.0d0)*df52/u
+       dfidb=dfdb*f52/u
+       dfidbet=dfidb+dfidnu*dnudb
+       gs=sqrt(g)
+       dg=0.75d0*gs
+       dgdb=u*dg
+       dgdu=beta*dg
+       gi32=f32+(g-1.0d0)*f52/u
+       dgidu=(u*dgdu-g+1.0d0)*f52/us
+       dgidnu=dgidu*dudnu+df32+(g-1.0d0)*df52/u
+       dgidb=dgdb*f52/u
+       dgidbet=dgidb+dgidnu*dnudb
+       dgidroe=dgidnu*dnudr
+       em=facen*b52*fi32
+       demdbet=facen*b32*(2.5d0*fi32+beta*dfidbet)
+       dpmdbet=facpr*b32*(2.5d0*gi32+beta*dgidbet)
+       demdroe=facen*b52*dfidroe
+       dpmdroe=facpr*b52*dgidroe
+       call  divine(nup,fp12,dfp12,s12)
+       s42=2.0d0
+       call  divine(nup,fp42,dfp42,s42)
+       eer=(ye*(demdroe+depdroe)-(em+ep)/ro)/ro
+       eet=facs*(demdbet+depdbet)/ro
+       per=ye*(dpmdroe+dppdroe)
+       pet=facs*(dpmdbet+dppdbet)
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/entry_11.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/entry_11.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/entry_11.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/entry_11.f90	Tue Sep 20 14:37:44 2005
***************
*** 0 ****
--- 1,16 ----
+ ! PR fortran/23663
+       function i (n)
+       i = n
+       i = max (i, 6)
+       return
+       entry j (n)
+       j = n
+       j = max (j, 3)
+       end
+ 
+       program entrytest
+       if (i (8).ne.8) call abort
+       if (i (4).ne.6) call abort
+       if (j (0).ne.3) call abort
+       if (j (7).ne.7) call abort
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_1.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,28 ----
+ ! Program to test the default initialisation of enumerators 
+ 
+ program main
+   implicit none
+ 
+   enum, bind (c)
+     enumerator :: red , yellow, blue
+     enumerator :: green
+   end enum
+ 
+   enum, bind (c)
+     enumerator :: a , b , c = 10
+     enumerator :: d
+   end enum
+ 
+ 
+   if (red /= 0 ) call abort
+   if (yellow /= 1) call abort
+   if (blue /= 2) call abort
+   if (green /= 3) call abort
+ 
+   if (a /= 0 ) call abort
+   if (b /= 1) call abort
+   if (c /= 10) call abort
+   if (d /= 11) call abort
+ 
+   
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_2.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,29 ----
+ ! Program to test the incremental assignment of enumerators
+ 
+ program main
+   implicit none
+ 
+   enum, bind (c)
+     enumerator :: red = 4 , yellow, blue
+     enumerator  green 
+   end enum
+ 
+   enum, bind (c)
+     enumerator :: sun = -10 , mon, tue
+     enumerator :: wed = 10, sat
+   end enum
+ 
+ 
+   if (red /= 4 ) call abort
+   if (yellow /= (red + 1)) call abort
+   if (blue /= (yellow + 1)) call abort
+   if (green /= (blue + 1)) call abort
+   
+ 
+   if (sun /= -10 ) call abort
+   if (mon /= (sun + 1)) call abort
+   if (tue /= (mon + 1)) call abort
+   if (wed /= 10) call abort
+   if (sat /= (wed+1)) call abort
+ 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_3.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_3.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_3.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_3.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,57 ----
+ ! Program to test the initialisation range of enumerators 
+ ! and kind values check
+ 
+ program main
+   implicit none
+ 
+   enum, bind (c)
+     enumerator :: red , yellow =255 , blue 
+   end enum
+ 
+   enum, bind (c)
+     enumerator :: r , y = 32767, b
+   end enum
+ 
+   enum, bind (c)
+     enumerator :: aa , bb = 65535, cc
+   end enum
+ 
+   enum, bind (c)
+     enumerator :: m , n = 2147483645, o
+   end enum
+ 
+ 
+  if (red /= 0 ) call abort
+  if (yellow /= 255) call abort
+  if (blue /= 256) call abort
+   
+  if (r /= 0 ) call abort
+  if (y /= 32767) call abort
+  if (b /= 32768) call abort
+ 
+  if (kind (red) /= 4) call abort
+  if (kind (yellow) /= 4) call abort
+  if (kind (blue) /= 4) call abort
+ 
+  if (kind(r) /= 4 ) call abort
+  if (kind(y) /= 4) call abort
+  if (kind(b) /= 4) call abort
+ 
+  if (aa /= 0 ) call abort
+  if (bb /= 65535) call abort
+  if (cc /= 65536) call abort
+ 
+  if (kind (aa) /= 4 ) call abort
+  if (kind (bb) /= 4) call abort
+  if (kind (cc) /= 4) call abort
+ 
+ 
+  if (m /= 0 ) call abort
+  if (n /= 2147483645) call abort
+  if (o /= 2147483646) call abort
+ 
+  if (kind (m) /= 4 ) call abort
+  if (kind (n) /= 4) call abort
+  if (kind (o) /= 4) call abort
+ 
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_4.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_4.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/enum_4.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/enum_4.f90	Sun Oct 30 18:09:55 2005
***************
*** 0 ****
--- 1,19 ----
+ ! Program to test the default initialisation of enumerators inside different program unit
+ 
+ module mod
+   implicit none
+   enum, bind (c)
+     enumerator :: red , yellow, blue
+     enumerator :: green
+   end enum
+ end module mod
+ 
+ program main
+   use mod
+   implicit none
+ 
+   if (red /= 0 ) call abort
+   if (yellow /= 1) call abort
+   if (blue /= 2) call abort
+   if (green /= 3) call abort
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp	Thu May 13 06:40:53 2004
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/execute.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified and maintained by Jeffrey Wheat (cassidy@cygnus.com)
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified and maintained by Jeffrey Wheat (cassidy@cygnus.com)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/inquire_5.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/inquire_5.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/inquire_5.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/inquire_5.f90	Tue Nov 22 10:58:47 2005
***************
*** 0 ****
--- 1,32 ----
+ ! PR fortran/21647
+ program inquire_5
+   integer (kind = 8) :: unit8
+   logical (kind = 8) :: exist8
+   integer (kind = 4) :: unit4
+   logical (kind = 4) :: exist4
+   integer (kind = 2) :: unit2
+   logical (kind = 2) :: exist2
+   integer (kind = 1) :: unit1
+   logical (kind = 1) :: exist1
+   character (len = 6) :: del
+   unit8 = 78
+   open (file = 'inquire_5.txt', unit = unit8)
+   unit8 = -1
+   exist8 = .false.
+   unit4 = -1
+   exist4 = .false.
+   unit2 = -1
+   exist2 = .false.
+   unit1 = -1
+   exist1 = .false.
+   inquire (file = 'inquire_5.txt', number = unit8, exist = exist8)
+   if (unit8 .ne. 78 .or. .not. exist8) call abort
+   inquire (file = 'inquire_5.txt', number = unit4, exist = exist4)
+   if (unit4 .ne. 78 .or. .not. exist4) call abort
+   inquire (file = 'inquire_5.txt', number = unit2, exist = exist2)
+   if (unit2 .ne. 78 .or. .not. exist2) call abort
+   inquire (file = 'inquire_5.txt', number = unit1, exist = exist1)
+   if (unit1 .ne. 78 .or. .not. exist1) call abort
+   del = 'delete'
+   close (unit = 78, status = del)
+ end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/pr19269-1.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/pr19269-1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/pr19269-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/pr19269-1.f90	Wed Sep  7 07:36:12 2005
***************
*** 0 ****
--- 1,16 ----
+ program main
+   call test (reshape ((/ 'a', 'b', 'c', 'd' /), (/ 2, 2 /)))
+ contains
+   subroutine test (a)
+     character (len = *), dimension (:, :) :: a
+ 
+     if (size (a, 1) .ne. 2) call abort
+     if (size (a, 2) .ne. 2) call abort
+     if (len (a) .ne. 1) call abort
+ 
+     if (a (1, 1) .ne. 'a') call abort
+     if (a (2, 1) .ne. 'b') call abort
+     if (a (1, 2) .ne. 'c') call abort
+     if (a (2, 2) .ne. 'd') call abort
+   end subroutine test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-1.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-1.f90	Thu Sep  8 09:20:07 2005
***************
*** 0 ****
--- 1,15 ----
+ program main
+   implicit none
+   real, dimension (:), pointer :: x
+   x => null ()
+   x => test (x)
+   if (.not. associated (x)) call abort
+   if (size (x) .ne. 10) call abort
+ contains
+   function test (p)
+     real, dimension (:), pointer :: p, test
+     if (associated (p)) call abort
+     allocate (test (10))
+     if (associated (p)) call abort
+   end function test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-2.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/pr23373-2.f90	Thu Sep  8 09:20:07 2005
***************
*** 0 ****
--- 1,15 ----
+ program main
+   implicit none
+   real, dimension (:), pointer :: x
+   x => null ()
+   x => test ()
+   if (.not. associated (x)) call abort
+   if (size (x) .ne. 10) call abort
+ contains
+   function test
+     real, dimension (:), pointer :: test
+     if (associated (x)) call abort
+     allocate (test (10))
+     if (associated (x)) call abort
+   end function test
+ end program main
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/save_1.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/save_1.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/save_1.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/save_1.f90	Mon Sep 26 20:06:37 2005
***************
*** 0 ****
--- 1,29 ----
+       subroutine foo (b)
+ 	logical b
+ 	integer i, j
+ 	character*24 s
+ 	save
+ 	if (b) then
+ 	  i = 26
+ 	  j = 131
+ 	  s = 'This is a test string'
+ 	else
+ 	  if (i .ne. 26 .or. j .ne. 131) call abort
+ 	  if (s .ne. 'This is a test string') call abort
+ 	end if
+       end subroutine foo
+       subroutine bar (s)
+ 	character*42 s
+ 	if (s .ne. '0123456789012345678901234567890123456') call abort
+ 	call foo (.false.)
+       end subroutine bar
+       subroutine baz
+ 	character*42 s
+ 	! Just clobber stack a little bit.
+ 	s = '0123456789012345678901234567890123456'
+ 	call bar (s)
+       end subroutine baz
+       call foo (.true.)
+       call baz
+       call foo (.false.)
+       end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/save_2.f90 gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/save_2.f90
*** gcc-4.0.2/gcc/testsuite/gfortran.fortran-torture/execute/save_2.f90	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/gfortran.fortran-torture/execute/save_2.f90	Tue Sep 27 21:46:14 2005
***************
*** 0 ****
--- 1,23 ----
+ ! PR fortran/18518
+       program main
+ 	call foo
+ 	call bar
+ 	call foo
+       end program main
+ 
+       subroutine foo
+ 	integer i,g,h
+ 	data i/0/
+ 	equivalence (g,h)
+ 	save g
+ 	if (i == 0) then
+ 	   i = 1
+ 	   h = 12345
+ 	end if
+ 	if (h .ne. 12345) call abort
+       end subroutine foo
+ 
+       subroutine bar
+ 	integer a(10)
+ 	a = 34
+       end subroutine bar
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/c-torture.exp gcc-4.1.0/gcc/testsuite/lib/c-torture.exp
*** gcc-4.0.2/gcc/testsuite/lib/c-torture.exp	Thu Mar 31 04:22:10 2005
--- gcc-4.1.0/gcc/testsuite/lib/c-torture.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  
*************** proc c-torture-compile { src option } {
*** 80,86 ****
      set options ""
      lappend options "additional_flags=-w $option"
  
!     set comp_output [gcc_target_compile "$src" "$output" object $options];
      gcc_check_compile $testcase $option $output $comp_output
      remote_file build delete $output
  }
--- 80,86 ----
      set options ""
      lappend options "additional_flags=-w $option"
  
!     set comp_output [gcc_target_compile "$src" "$output" object $options]
      gcc_check_compile $testcase $option $output $comp_output
      remote_file build delete $output
  }
*************** proc c-torture-execute { sources args } 
*** 102,110 ****
      set src [lindex $sources 0]
  
      if { [llength $args] > 0 } {
! 	set additional_flags [lindex $args 0];
      } else {
! 	set additional_flags "";
      }
      # Check for alternate driver.
      if [file exists [file rootname $src].x] {
--- 102,110 ----
      set src [lindex $sources 0]
  
      if { [llength $args] > 0 } {
! 	set additional_flags [lindex $args 0]
      } else {
! 	set additional_flags ""
      }
      # Check for alternate driver.
      if [file exists [file rootname $src].x] {
*************** proc c-torture-execute { sources args } 
*** 136,149 ****
  	set testcase "[file tail [file dirname $src]]/[file tail $src]"
      }
  
!     set count 0;
!     set oldstatus "foo";
      foreach option $option_list {
  	if { $count > 0 } {
! 	    set oldexec $execname;
  	}
! 	set execname "${executable}${count}";
! 	incr count;
  
  	# torture_{compile,execute}_xfail are set by the .x script
  	# (if present)
--- 136,149 ----
  	set testcase "[file tail [file dirname $src]]/[file tail $src]"
      }
  
!     set count 0
!     set oldstatus "foo"
      foreach option $option_list {
  	if { $count > 0 } {
! 	    set oldexec $execname
  	}
! 	set execname "${executable}${count}"
! 	incr count
  
  	# torture_{compile,execute}_xfail are set by the .x script
  	# (if present)
*************** proc c-torture-execute { sources args } 
*** 157,171 ****
              set ignore_me [eval $torture_eval_before_compile]
  	}
  
! 	remote_file build delete $execname;
  	verbose "Testing $testcase, $option" 1
  
  	set options ""
  	lappend options "additional_flags=-w $option"
  	if { $additional_flags != "" } {
! 	    lappend options "additional_flags=$additional_flags";
  	}
! 	set comp_output [gcc_target_compile "$sources" "${execname}" executable $options];
  
  	if ![gcc_check_compile "$testcase compilation" $option $execname $comp_output] {
  	    unresolved "$testcase execution, $option"
--- 157,171 ----
              set ignore_me [eval $torture_eval_before_compile]
  	}
  
! 	remote_file build delete $execname
  	verbose "Testing $testcase, $option" 1
  
  	set options ""
  	lappend options "additional_flags=-w $option"
  	if { $additional_flags != "" } {
! 	    lappend options "additional_flags=$additional_flags"
  	}
! 	set comp_output [gcc_target_compile "$sources" "${execname}" executable $options]
  
  	if ![gcc_check_compile "$testcase compilation" $option $execname $comp_output] {
  	    unresolved "$testcase execution, $option"
*************** proc c-torture-execute { sources args } 
*** 204,229 ****
  	# Do not do this for native testing since the cost to load/execute
  	# the test is fairly small and the comparison step actually slows
  	# the entire process down because it usually does not "hit".
! 	set skip 0;
  	if { ![isnative] && [info exists oldexec] } {
  	    if { [remote_file build cmp $oldexec $execname] == 0 } {
! 		set skip 1;
  	    }
  	}
  	if { $skip == 0 } {
  	    set result [gcc_load "$execname" "" ""]
! 	    set status [lindex $result 0];
! 	    set output [lindex $result 1];
  	}
          if { $oldstatus == "pass" } {
! 	    remote_file build delete $oldexec;
          }
  	$status "$testcase execution, $option"
! 	set oldstatus $status;
      }
      if [info exists status] {
  	if { $status == "pass" } {
! 	    remote_file build delete $execname;
  	}
      }
  }
--- 204,229 ----
  	# Do not do this for native testing since the cost to load/execute
  	# the test is fairly small and the comparison step actually slows
  	# the entire process down because it usually does not "hit".
! 	set skip 0
  	if { ![isnative] && [info exists oldexec] } {
  	    if { [remote_file build cmp $oldexec $execname] == 0 } {
! 		set skip 1
  	    }
  	}
  	if { $skip == 0 } {
  	    set result [gcc_load "$execname" "" ""]
! 	    set status [lindex $result 0]
! 	    set output [lindex $result 1]
  	}
          if { $oldstatus == "pass" } {
! 	    remote_file build delete $oldexec
          }
  	$status "$testcase execution, $option"
! 	set oldstatus $status
      }
      if [info exists status] {
  	if { $status == "pass" } {
! 	    remote_file build delete $execname
  	}
      }
  }
*************** proc search_for { file pattern } {
*** 257,265 ****
  proc c-torture { args } {
      global srcdir subdir compiler_conditional_xfail_data
  
!     set src [lindex $args 0];
      if { [llength $args] > 1 } {
! 	set options [lindex $args 1];
      } else {
  	set options ""
      }
--- 257,265 ----
  proc c-torture { args } {
      global srcdir subdir compiler_conditional_xfail_data
  
!     set src [lindex $args 0]
      if { [llength $args] > 1 } {
! 	set options [lindex $args 1]
      } else {
  	set options ""
      }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/compat.exp gcc-4.1.0/gcc/testsuite/lib/compat.exp
*** gcc-4.0.2/gcc/testsuite/lib/compat.exp	Sun May 15 22:55:20 2005
--- gcc-4.1.0/gcc/testsuite/lib/compat.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Janis Johnson, <janis187@us.ibm.com>
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Janis Johnson, <janis187@us.ibm.com>
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/copy-file.exp gcc-4.1.0/gcc/testsuite/lib/copy-file.exp
*** gcc-4.0.2/gcc/testsuite/lib/copy-file.exp	Sat Jun  7 14:55:56 2003
--- gcc-4.1.0/gcc/testsuite/lib/copy-file.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # This file defines a proc for copying regular files as well as
  # symlinks.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # This file defines a proc for copying regular files as well as
  # symlinks.
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/dg-pch.exp gcc-4.1.0/gcc/testsuite/lib/dg-pch.exp
*** gcc-4.0.2/gcc/testsuite/lib/dg-pch.exp	Wed Aug 20 04:04:47 2003
--- gcc-4.1.0/gcc/testsuite/lib/dg-pch.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  load_lib copy-file.exp
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  load_lib copy-file.exp
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/file-format.exp gcc-4.1.0/gcc/testsuite/lib/file-format.exp
*** gcc-4.0.2/gcc/testsuite/lib/file-format.exp	Sun Mar  6 18:08:31 2005
--- gcc-4.1.0/gcc/testsuite/lib/file-format.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Please email any bugs, comments, and/or additions to this file to:
  # gcc-bugs@gcc.gnu.org
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Please email any bugs, comments, and/or additions to this file to:
  # gcc-bugs@gcc.gnu.org
*************** proc gcc_target_object_format { } { 
*** 46,51 ****
--- 46,52 ----
          close $open_file
          
          ${tool}_target_compile objfmtst.c objfmtst.o object ""
+ 	file delete objfmtst.c       
          
  	catch {
            set output [exec $objdump_name --file-headers objfmtst.o ]
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/fortran-torture.exp gcc-4.1.0/gcc/testsuite/lib/fortran-torture.exp
*** gcc-4.0.2/gcc/testsuite/lib/fortran-torture.exp	Fri Apr 29 00:06:57 2005
--- gcc-4.1.0/gcc/testsuite/lib/fortran-torture.exp	Mon Jan  9 22:48:00 2006
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # 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
  # the author.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # Please email any bugs, comments, and/or additions to this file to
  # the author.
*************** proc fortran-torture-compile { src optio
*** 70,89 ****
      set options ""
      lappend options "additional_flags=-w $option"
  
!     set comp_output [gfortran_target_compile "$src" "$output" object $options];
      
      # See if we got something bad.
      set fatal_signal "*95*: Internal compiler error: program*got fatal signal"
   
      if [string match "$fatal_signal 6" $comp_output] then {
  	gfortran_fail $testcase "Got Signal 6, $option"
! 	remote_file build delete $output
  	return
      }
  
      if [string match "$fatal_signal 11" $comp_output] then {
  	gfortran_fail $testcase "Got Signal 11, $option"
! 	remote_file build delete $output
  	return
      }
  
--- 70,89 ----
      set options ""
      lappend options "additional_flags=-w $option"
  
!     set comp_output [gfortran_target_compile "$src" "$output" object $options]
      
      # See if we got something bad.
      set fatal_signal "*95*: Internal compiler error: program*got fatal signal"
   
      if [string match "$fatal_signal 6" $comp_output] then {
  	gfortran_fail $testcase "Got Signal 6, $option"
! 	catch { remote_file build delete $output }
  	return
      }
  
      if [string match "$fatal_signal 11" $comp_output] then {
  	gfortran_fail $testcase "Got Signal 11, $option"
! 	catch { remote_file build delete $output }
  	return
      }
  
*************** proc fortran-torture-compile { src optio
*** 92,98 ****
  	warning "$testcase: (with warnings) $option"
  	send_log "$comp_output\n"
  	unresolved "$testcase, $option"
! 	remote_file build delete $output
  	return
      }
  
--- 92,98 ----
  	warning "$testcase: (with warnings) $option"
  	send_log "$comp_output\n"
  	unresolved "$testcase, $option"
! 	catch { remote_file build delete $output }
  	return
      }
  
*************** proc fortran-torture-compile { src optio
*** 103,109 ****
      set unsupported_message [gfortran_check_unsupported_p $comp_output]
      if { $unsupported_message != "" } {
  	unsupported "$testcase: $unsupported_message"
! 	remote_file build delete $output
  	return
      }
  
--- 103,109 ----
      set unsupported_message [gfortran_check_unsupported_p $comp_output]
      if { $unsupported_message != "" } {
  	unsupported "$testcase: $unsupported_message"
! 	catch { remote_file build delete $output }
  	return
      }
  
*************** proc fortran-torture-compile { src optio
*** 113,124 ****
      # If any message remains, we fail.
      if ![string match "" $comp_output] then {
  	gfortran_fail $testcase $option
! 	remote_file build delete $output
  	return
      }
  
      gfortran_pass $testcase $option
!     remote_file build delete $output
  }
  
  
--- 113,124 ----
      # If any message remains, we fail.
      if ![string match "" $comp_output] then {
  	gfortran_fail $testcase $option
! 	catch { remote_file build delete $output }
  	return
      }
  
      gfortran_pass $testcase $option
!     catch { remote_file build delete $output }
  }
  
  
*************** proc fortran-torture-execute { src } {
*** 139,145 ****
      global TORTURE_OPTIONS
  
      # Check for alternate driver.
!     set additional_flags "";
      if [file exists [file rootname $src].x] {
  	verbose "Using alternate driver [file rootname [file tail $src]].x" 2
  	set done_p 0
--- 139,145 ----
      global TORTURE_OPTIONS
  
      # Check for alternate driver.
!     set additional_flags ""
      if [file exists [file rootname $src].x] {
  	verbose "Using alternate driver [file rootname [file tail $src]].x" 2
  	set done_p 0
*************** proc fortran-torture-execute { src } {
*** 186,207 ****
  	set options ""
  	lappend options "additional_flags=-w $option"
  	if { $additional_flags != "" } {
! 	    lappend options "additional_flags=$additional_flags";
  	}
! 	set comp_output [gfortran_target_compile "$src" "$executable" executable $options];
  
  	# See if we got something bad.
  	set fatal_signal "*95*: Internal compiler error: program*got fatal signal"
  	
  	if [string match "$fatal_signal 6" $comp_output] then {
  	    gfortran_fail $testcase "Got Signal 6, $option"
! 	    remote_file build delete $executable
  	    continue
  	}
  	
  	if [string match "$fatal_signal 11" $comp_output] then {
  	    gfortran_fail $testcase "Got Signal 11, $option"
! 	    remote_file build delete $executable
  	    continue
  	}
  	
--- 186,207 ----
  	set options ""
  	lappend options "additional_flags=-w $option"
  	if { $additional_flags != "" } {
! 	    lappend options "additional_flags=$additional_flags"
  	}
! 	set comp_output [gfortran_target_compile "$src" "$executable" executable $options]
  
  	# See if we got something bad.
  	set fatal_signal "*95*: Internal compiler error: program*got fatal signal"
  	
  	if [string match "$fatal_signal 6" $comp_output] then {
  	    gfortran_fail $testcase "Got Signal 6, $option"
! 	    catch { remote_file build delete $executable }
  	    continue
  	}
  	
  	if [string match "$fatal_signal 11" $comp_output] then {
  	    gfortran_fail $testcase "Got Signal 11, $option"
! 	    catch { remote_file build delete $executable }
  	    continue
  	}
  	
*************** proc fortran-torture-execute { src } {
*** 210,216 ****
  	    warning "$testcase: (with warnings) $option"
  	    send_log "$comp_output\n"
  	    unresolved "$testcase, $option"
! 	    remote_file build delete $executable
  	    continue
  	}
  	
--- 210,216 ----
  	    warning "$testcase: (with warnings) $option"
  	    send_log "$comp_output\n"
  	    unresolved "$testcase, $option"
! 	    catch { remote_file build delete $executable }
  	    continue
  	}
  	
*************** proc fortran-torture-execute { src } {
*** 262,271 ****
  
  	# Run the testcase, and analyse the output.
  	set result [gfortran_load "$executable" "" ""]
! 	set status [lindex $result 0];
! 	set output [lindex $result 1];
          if { $status == "pass" } {
! 	    remote_file build delete $executable
          }
  	$status "$testcase execution, $option"
      }
--- 262,271 ----
  
  	# Run the testcase, and analyse the output.
  	set result [gfortran_load "$executable" "" ""]
! 	set status [lindex $result 0]
! 	set output [lindex $result 1]
          if { $status == "pass" } {
! 	    catch { remote_file build delete $executable }
          }
  	$status "$testcase execution, $option"
      }
*************** proc fortran-torture { args } {
*** 305,313 ****
      global srcdir subdir
      global compiler_conditional_xfail_data
  
!     set src [lindex $args 0];
      if { [llength $args] > 1 } {
! 	set options [lindex $args 1];
      } else {
  	set options ""
      }
--- 305,313 ----
      global srcdir subdir
      global compiler_conditional_xfail_data
  
!     set src [lindex $args 0]
      if { [llength $args] > 1 } {
! 	set options [lindex $args 1]
      } else {
  	set options ""
      }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/g++-dg.exp gcc-4.1.0/gcc/testsuite/lib/g++-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/g++-dg.exp	Thu Jun  5 22:18:54 2003
--- gcc-4.1.0/gcc/testsuite/lib/g++-dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Define g++ callbacks for dg.exp.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Define g++ callbacks for dg.exp.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/g++.exp gcc-4.1.0/gcc/testsuite/lib/g++.exp
*** gcc-4.0.2/gcc/testsuite/lib/g++.exp	Tue May  3 19:27:51 2005
--- gcc-4.1.0/gcc/testsuite/lib/g++.exp	Fri Nov 11 22:31:35 2005
***************
*** 1,19 ****
! # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003, 2004
! # Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! # 
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Many modifications by Jeffrey Wheat (cassidy@cygnus.com)
--- 1,19 ----
! # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 2000, 2001, 2002, 2003,
! # 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
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Many modifications by Jeffrey Wheat (cassidy@cygnus.com)
*************** proc g++_version { } {
*** 48,55 ****
      # verify that the compiler exists
      if { [is_remote host] || [which $compiler] != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0];
! 	set output [lindex $tmp 1];
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    if [is_remote host] {
--- 48,55 ----
      # verify that the compiler exists
      if { [is_remote host] || [which $compiler] != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0]
! 	set output [lindex $tmp 1]
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    if [is_remote host] {
*************** proc g++_link_flags { paths } {
*** 100,111 ****
--- 100,115 ----
      global srcdir
      global ld_library_path
      global GXX_UNDER_TEST
+     global shlib_ext
  
      set gccpath ${paths}
      set libio_dir ""
      set flags ""
      set ld_library_path "."
  
+     set shlib_ext [get_shlib_extension]
+     verbose "shared lib extension: $shlib_ext"
+ 
      if { $gccpath != "" } {
        if [file exists "${gccpath}/lib/libstdc++.a"] {
            append ld_library_path ":${gccpath}/lib"
*************** proc g++_link_flags { paths } {
*** 122,127 ****
--- 126,137 ----
            append flags " -L${gccpath}/libstdc++-v3/src/.libs "
            append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
        }
+       # Look for libstdc++.${shlib_ext}.
+       if [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] {
+ 	  append flags " -L${gccpath}/libstdc++-v3/src/.libs "
+ 	  append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
+       }
+ 
        if [file exists "${gccpath}/libiberty/libiberty.a"] {
            append flags "-L${gccpath}/libiberty "
        }
*************** proc g++_link_flags { paths } {
*** 130,154 ****
        }
        append ld_library_path [gcc-set-multilib-library-path $GXX_UNDER_TEST]
      } else {
!       global tool_root_dir;
  
!       set libgpp [lookfor_file ${tool_root_dir} libg++];
        if { $libgpp != "" } {
!           append flags "-L${libgpp} ";
            append ld_library_path ":${libgpp}"
        }
!       set libstdcpp [lookfor_file ${tool_root_dir} libstdc++];
        if { $libstdcpp != "" } {
!           append flags "-L${libstdcpp} ";
            append ld_library_path ":${libstdcpp}"
        }
!       set libiberty [lookfor_file ${tool_root_dir} libiberty];
        if { $libiberty != "" } {
!           append flags "-L${libiberty} ";
        }
!       set librx [lookfor_file ${tool_root_dir} librx];
        if { $librx != "" } {
!           append flags "-L${librx} ";
        }
      }
  
--- 140,164 ----
        }
        append ld_library_path [gcc-set-multilib-library-path $GXX_UNDER_TEST]
      } else {
!       global tool_root_dir
  
!       set libgpp [lookfor_file ${tool_root_dir} libg++]
        if { $libgpp != "" } {
!           append flags "-L${libgpp} "
            append ld_library_path ":${libgpp}"
        }
!       set libstdcpp [lookfor_file ${tool_root_dir} libstdc++]
        if { $libstdcpp != "" } {
!           append flags "-L${libstdcpp} "
            append ld_library_path ":${libstdcpp}"
        }
!       set libiberty [lookfor_file ${tool_root_dir} libiberty]
        if { $libiberty != "" } {
!           append flags "-L${libiberty} "
        }
!       set librx [lookfor_file ${tool_root_dir} librx]
        if { $librx != "" } {
!           append flags "-L${librx} "
        }
      }
  
*************** proc g++_init { args } {
*** 167,173 ****
      global base_dir
      global tmpdir
      global libdir
!     global gluefile wrap_flags;
      global objdir srcdir
      global ALWAYS_CXXFLAGS
      global CXXFLAGS
--- 177,183 ----
      global base_dir
      global tmpdir
      global libdir
!     global gluefile wrap_flags
      global objdir srcdir
      global ALWAYS_CXXFLAGS
      global CXXFLAGS
*************** proc g++_init { args } {
*** 182,188 ****
  
      if ![info exists GXX_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set GXX_UNDER_TEST $TOOL_EXECUTABLE;
  	} else {
  	    if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
  		set GXX_UNDER_TEST [transform c++]
--- 192,198 ----
  
      if ![info exists GXX_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set GXX_UNDER_TEST $TOOL_EXECUTABLE
  	} else {
  	    if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
  		set GXX_UNDER_TEST [transform c++]
*************** proc g++_init { args } {
*** 221,236 ****
  
      if ![is_remote host] {
  	if [info exists TOOL_OPTIONS] {
! 	    lappend ALWAYS_CXXFLAGS "additional_flags=[g++_include_flags [get_multilibs ${TOOL_OPTIONS}] ]";
! 	    lappend ALWAYS_CXXFLAGS "ldflags=[g++_link_flags [get_multilibs ${TOOL_OPTIONS}] ]";
  	} else {
! 	    lappend ALWAYS_CXXFLAGS "additional_flags=[g++_include_flags [get_multilibs] ]";
! 	    lappend ALWAYS_CXXFLAGS "ldflags=[g++_link_flags [get_multilibs] ]";
  	}
      }
  
      if [info exists TOOL_OPTIONS] {
! 	lappend ALWAYS_CXXFLAGS "additional_flags=$TOOL_OPTIONS";
      }
  
      # Make sure that lines are not wrapped.  That can confuse the
--- 231,246 ----
  
      if ![is_remote host] {
  	if [info exists TOOL_OPTIONS] {
! 	    lappend ALWAYS_CXXFLAGS "additional_flags=[g++_include_flags [get_multilibs ${TOOL_OPTIONS}] ]"
! 	    lappend ALWAYS_CXXFLAGS "ldflags=[g++_link_flags [get_multilibs ${TOOL_OPTIONS}] ]"
  	} else {
! 	    lappend ALWAYS_CXXFLAGS "additional_flags=[g++_include_flags [get_multilibs] ]"
! 	    lappend ALWAYS_CXXFLAGS "ldflags=[g++_link_flags [get_multilibs] ]"
  	}
      }
  
      if [info exists TOOL_OPTIONS] {
! 	lappend ALWAYS_CXXFLAGS "additional_flags=$TOOL_OPTIONS"
      }
  
      # Make sure that lines are not wrapped.  That can confuse the
*************** proc g++_init { args } {
*** 251,261 ****
  #
  
  proc g++_target_compile { source dest type options } {
!     global tmpdir;
      global gpp_compile_options
      global gluefile wrap_flags
!     global ALWAYS_CXXFLAGS;
!     global GXX_UNDER_TEST;
  
      if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
  	lappend options "libs=${gluefile}"
--- 261,271 ----
  #
  
  proc g++_target_compile { source dest type options } {
!     global tmpdir
      global gpp_compile_options
      global gluefile wrap_flags
!     global ALWAYS_CXXFLAGS
!     global GXX_UNDER_TEST
  
      if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
  	lappend options "libs=${gluefile}"
*************** proc g++_target_compile { source dest ty
*** 263,273 ****
      }
  
      lappend options "additional_flags=[libio_include_flags]"
!     lappend options "compiler=$GXX_UNDER_TEST";
  
      set options [concat $gpp_compile_options $options]
  
!     set options [concat "$ALWAYS_CXXFLAGS" $options];
  
      if { [regexp "(^| )-frepo( |$)" $options] && \
  	 [regexp "\.o(|bj)$" $dest] } then {
--- 273,283 ----
      }
  
      lappend options "additional_flags=[libio_include_flags]"
!     lappend options "compiler=$GXX_UNDER_TEST"
  
      set options [concat $gpp_compile_options $options]
  
!     set options [concat "$ALWAYS_CXXFLAGS" $options]
  
      if { [regexp "(^| )-frepo( |$)" $options] && \
  	 [regexp "\.o(|bj)$" $dest] } then {
*************** proc ${tool}_option_proc { option } {
*** 301,307 ****
  	foreach x [split $option ","] {
  	    lappend gpp_compile_options "additional_flags=$x"
  	}
! 	return 1;
      } else {
  	return 0
      }
--- 311,317 ----
  	foreach x [split $option ","] {
  	    lappend gpp_compile_options "additional_flags=$x"
  	}
! 	return 1
      } else {
  	return 0
      }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/gcc-defs.exp gcc-4.1.0/gcc/testsuite/lib/gcc-defs.exp
*** gcc-4.0.2/gcc/testsuite/lib/gcc-defs.exp	Tue May  3 19:27:51 2005
--- gcc-4.1.0/gcc/testsuite/lib/gcc-defs.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  load_lib wrapper.exp
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  load_lib wrapper.exp
  
*************** proc ${tool}_fail { testcase cflags } {
*** 103,109 ****
  
  proc ${tool}_finish { } {
      # The testing harness apparently requires this.
!     global errorInfo;
  
      if [info exists errorInfo] then {
  	unset errorInfo
--- 103,109 ----
  
  proc ${tool}_finish { } {
      # The testing harness apparently requires this.
!     global errorInfo
  
      if [info exists errorInfo] then {
  	unset errorInfo
*************** proc ${tool}_finish { } {
*** 121,131 ****
  #
  
  proc ${tool}_exit { } {
!     global gluefile;
  
      if [info exists gluefile] {
! 	file_on_build delete $gluefile;
! 	unset gluefile;
      }
  }
      
--- 121,131 ----
  #
  
  proc ${tool}_exit { } {
!     global gluefile
  
      if [info exists gluefile] {
! 	file_on_build delete $gluefile
! 	unset gluefile
      }
  }
      
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/gcc-dg.exp gcc-4.1.0/gcc/testsuite/lib/gcc-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/gcc-dg.exp	Tue May  3 19:27:51 2005
--- gcc-4.1.0/gcc/testsuite/lib/gcc-dg.exp	Mon Feb  6 22:58:10 2006
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  load_lib dg.exp
  load_lib file-format.exp
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  load_lib dg.exp
  load_lib file-format.exp
*************** load_lib target-supports.exp
*** 20,25 ****
--- 20,26 ----
  load_lib target-supports-dg.exp
  load_lib scanasm.exp
  load_lib scantree.exp
+ load_lib scanipa.exp
  load_lib prune.exp
  load_lib libgloss.exp
  load_lib target-libpath.exp
*************** proc gcc-dg-test-1 { target_compile prog
*** 122,128 ****
  	    set output_file "./[file rootname [file tail $prog]].exe"
  	    # This is the only place where we care if an executable was
  	    # created or not.  If it was, dg.exp will try to run it.
! 	    remote_file build delete $output_file;
  	}
  	default {
  	    perror "$do_what: not a valid dg-do keyword"
--- 123,129 ----
  	    set output_file "./[file rootname [file tail $prog]].exe"
  	    # This is the only place where we care if an executable was
  	    # created or not.  If it was, dg.exp will try to run it.
! 	    catch { remote_file build delete $output_file }
  	}
  	default {
  	    perror "$do_what: not a valid dg-do keyword"
*************** proc gcc-dg-test-1 { target_compile prog
*** 134,140 ****
  	lappend options "additional_flags=$extra_tool_flags"
      }
  
!     set comp_output [$target_compile "$prog" "$output_file" "$compile_type" $options];
  
      if { $do_what == "repo" } {
  	set object_file "$output_file"
--- 135,141 ----
  	lappend options "additional_flags=$extra_tool_flags"
      }
  
!     set comp_output [$target_compile "$prog" "$output_file" "$compile_type" $options]
  
      if { $do_what == "repo" } {
  	set object_file "$output_file"
*************** proc dg-prune-output { args } {
*** 295,300 ****
--- 296,407 ----
      lappend additional_prunes [lindex $args 1]
  }
  
+ # Remove files matching the pattern from the build machine.
+ proc remove-build-file { pat } {
+     verbose "remove-build-file `$pat'" 2
+     set file_list "[glob -nocomplain $pat]"
+     verbose "remove-build-file `$file_list'" 2
+     foreach output_file $file_list {
+ 	remote_file build delete $output_file
+     }
+ }
+ 
+ # Remove compiler-generated coverage files for the current test.
+ proc cleanup-coverage-files { } {
+     # This assumes that we are two frames down from dg-test or some other proc
+     # that stores the filename of the testcase in a local variable "name".
+     # A cleaner solution would require a new DejaGnu release.
+     upvar 2 name testcase
+     remove-build-file "[file rootname [file tail $testcase]].gc??"
+ 
+     # Clean up coverage files for additional source files.
+     if [info exists additional_sources] {
+ 	foreach srcfile $additional_sources {
+ 	    remove-build-file "[file rootname [file tail $srcfile]].gc??"
+ 	}
+     }
+ }
+ 
+ # Remove compiler-generated files from -repo for the current test.
+ proc cleanup-repo-files { } {
+     # This assumes that we are two frames down from dg-test or some other proc
+     # that stores the filename of the testcase in a local variable "name".
+     # A cleaner solution would require a new DejaGnu release.
+     upvar 2 name testcase
+     remove-build-file "[file rootname [file tail $testcase]].o"
+     remove-build-file "[file rootname [file tail $testcase]].rpo"
+ 
+     # Clean up files for additional source files.
+     if [info exists additional_sources] {
+ 	foreach srcfile $additional_sources {
+ 	    remove-build-file "[file rootname [file tail $srcfile]].o"
+ 	    remove-build-file "[file rootname [file tail $srcfile]].rpo"
+ 	}
+     }
+ }
+ 
+ # Remove compiler-generated RTL dump files for the current test.
+ #
+ # SUFFIX is the filename suffix pattern.
+ proc cleanup-rtl-dump { suffix } {
+   cleanup-dump "\[0-9\]\[0-9\].$suffix"
+ }
+ 
+ # Remove a specific tree dump file for the current test.
+ #
+ # SUFFIX is the tree dump file suffix pattern.
+ proc cleanup-tree-dump { suffix } {
+   cleanup-dump "t\[0-9\]\[0-9\].$suffix"
+ }
+ 
+ # Remove a specific ipa dump file for the current test.
+ #
+ # SUFFIX is the ipa dump file suffix pattern.
+ proc cleanup-ipa-dump { suffix } {
+   cleanup-dump "i\[0-9\]\[0-9\].$suffix"
+ }
+ 
+ # Remove all dump files with the provided suffix.
+ proc cleanup-dump { suffix } {
+     # This assumes that we are three frames down from dg-test or some other
+     # proc that stores the filename of the testcase in a local variable
+     # "name".  A cleaner solution would require a new DejaGnu release.
+     upvar 3 name testcase
+     # The name might include a list of options; extract the file name.
+     set src [file tail [lindex $testcase 0]]
+     remove-build-file "[file tail $src].$suffix"
+ 
+     # Clean up dump files for additional source files.
+     if [info exists additional_sources] {
+ 	foreach srcfile $additional_sources {
+ 	    remove-build-file "[file tail $srcfile].$suffix"
+ 	}
+     }
+ }
+ 
+ # Remove files kept by --save-temps for the current test.
+ #
+ # Currently this is only .i files, but more can be added if there are
+ # tests generating them.
+ proc cleanup-saved-temps { } {
+     global additional_sources
+ 
+     # This assumes that we are two frames down from dg-test or some other proc
+     # that stores the filename of the testcase in a local variable "name".
+     # A cleaner solution would require a new DejaGnu release.
+     upvar 2 name testcase
+     remove-build-file "[file rootname [file tail $testcase]].ii"
+     remove-build-file "[file rootname [file tail $testcase]].i"
+ 
+     # Clean up saved temp files for additional source files.
+     if [info exists additional_sources] {
+ 	foreach srcfile $additional_sources {
+             remove-build-file "[file rootname [file tail $srcfile]].ii"
+             remove-build-file "[file rootname [file tail $srcfile]].i"
+ 	}
+     }
+ }
+ 
  # 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
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/gcc.exp gcc-4.1.0/gcc/testsuite/lib/gcc.exp
*** gcc-4.0.2/gcc/testsuite/lib/gcc.exp	Mon Sep 13 21:20:12 2004
--- gcc-4.1.0/gcc/testsuite/lib/gcc.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Currently maintained by Doug Evans (dje@cygnus.com)
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Currently maintained by Doug Evans (dje@cygnus.com)
*************** load_lib gcc-defs.exp
*** 40,61 ****
  proc default_gcc_version { } {
      global GCC_UNDER_TEST
  
!     gcc_init;
  
      # ignore any arguments after the command
      set compiler [lindex $GCC_UNDER_TEST 0]
  
      if ![is_remote host] {
! 	set compiler_name [which $compiler];
      } else {
! 	set compiler_name $compiler;
      }
  
      # verify that the compiler exists
      if { $compiler_name != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0];
! 	set output [lindex $tmp 1];
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    clone_output "$compiler_name $version\n"
--- 40,61 ----
  proc default_gcc_version { } {
      global GCC_UNDER_TEST
  
!     gcc_init
  
      # ignore any arguments after the command
      set compiler [lindex $GCC_UNDER_TEST 0]
  
      if ![is_remote host] {
! 	set compiler_name [which $compiler]
      } else {
! 	set compiler_name $compiler
      }
  
      # verify that the compiler exists
      if { $compiler_name != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0]
! 	set output [lindex $tmp 1]
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    clone_output "$compiler_name $version\n"
*************** proc default_gcc_version { } {
*** 73,79 ****
  #
  
  proc gcc_version { } {
!     default_gcc_version;
  }
  
  #
--- 73,79 ----
  #
  
  proc gcc_version { } {
!     default_gcc_version
  }
  
  #
*************** proc gcc_init { args } {
*** 97,103 ****
  
      if ![info exists GCC_UNDER_TEST] {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set GCC_UNDER_TEST $TOOL_EXECUTABLE;
  	} else {
  	    set GCC_UNDER_TEST "[find_gcc]"
  	}
--- 97,103 ----
  
      if ![info exists GCC_UNDER_TEST] {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set GCC_UNDER_TEST $TOOL_EXECUTABLE
  	} else {
  	    set GCC_UNDER_TEST "[find_gcc]"
  	}
*************** proc gcc_init { args } {
*** 115,122 ****
  #
  
  proc gcc_target_compile { source dest type options } {
!     global tmpdir;
!     global gluefile wrap_flags;
      global GCC_UNDER_TEST
      global TOOL_OPTIONS
  	
--- 115,122 ----
  #
  
  proc gcc_target_compile { source dest type options } {
!     global tmpdir
!     global gluefile wrap_flags
      global GCC_UNDER_TEST
      global TOOL_OPTIONS
  	
*************** proc gcc_target_compile { source dest ty
*** 139,149 ****
      # TOOL_OPTIONS must come first, so that it doesn't override testcase
      # specific options.
      if [info exists TOOL_OPTIONS] {
! 	set options [concat "additional_flags=$TOOL_OPTIONS" $options];
      }
      if [target_info exists gcc,timeout] {
  	lappend options "timeout=[target_info gcc,timeout]"
      }
      lappend options "compiler=$GCC_UNDER_TEST"
      set options [dg-additional-files-options $options $source]
      return [target_compile $source $dest $type $options]
--- 139,150 ----
      # TOOL_OPTIONS must come first, so that it doesn't override testcase
      # specific options.
      if [info exists TOOL_OPTIONS] {
! 	set options [concat "{additional_flags=$TOOL_OPTIONS}" $options]
      }
      if [target_info exists gcc,timeout] {
  	lappend options "timeout=[target_info gcc,timeout]"
      }
+     lappend options "additional_flags=-fno-show-column"
      lappend options "compiler=$GCC_UNDER_TEST"
      set options [dg-additional-files-options $options $source]
      return [target_compile $source $dest $type $options]
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/gcov.exp gcc-4.1.0/gcc/testsuite/lib/gcov.exp
*** gcc-4.0.2/gcc/testsuite/lib/gcov.exp	Wed Jul  9 14:57:21 2003
--- gcc-4.1.0/gcc/testsuite/lib/gcov.exp	Mon Feb  6 22:58:10 2006
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Verify various kinds of gcov output: line counts, branch percentages,
  # and call return percentages.  None of this is language-specific.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Verify various kinds of gcov output: line counts, branch percentages,
  # and call return percentages.  None of this is language-specific.
*************** global GCOV
*** 27,33 ****
  proc clean-gcov { testcase } {
      set basename [file tail $testcase]
      set base [file rootname $basename]
!     remote_file host delete $base.gcno $base.gcda $basename.gcov
  }
  
  #
--- 27,34 ----
  proc clean-gcov { testcase } {
      set basename [file tail $testcase]
      set base [file rootname $basename]
!     remote_file host delete $base.gcno $base.gcda \
! 	$basename.gcov $base.h.gcov
  }
  
  #
*************** proc verify-lines { testcase file } {
*** 52,57 ****
--- 53,59 ----
  	    }
  	}
      }
+     close $fd
      return $failed
  }
  
*************** proc run-gcov { args } {
*** 249,256 ****
      }
  
      verbose "Running $GCOV $testcase" 2
!     set testcase [remote_download host $testcase];
!     set result [remote_exec host $GCOV $gcov_args];
      if { [lindex $result 0] != 0 } {
  	fail "$subdir/$testcase gcov failed: [lindex $result 1]"
  	clean-gcov $testcase
--- 251,258 ----
      }
  
      verbose "Running $GCOV $testcase" 2
!     set testcase [remote_download host $testcase]
!     set result [remote_exec host $GCOV $gcov_args]
      if { [lindex $result 0] != 0 } {
  	fail "$subdir/$testcase gcov failed: [lindex $result 1]"
  	clean-gcov $testcase
*************** proc run-gcov { args } {
*** 262,270 ****
      if { $files == "" } {
          fail "$subdir/$testcase gcov failed: $testcase.gcov does not exist"
          clean-gcov $testcase
!         return;
      }
!     remote_upload host $testcase.gcov $testcase.gcov;
  
      if { $gcov_verify_xfail != "" } {
  	eval setup_xfail [split $gcov_verify_xfail]
--- 264,272 ----
      if { $files == "" } {
          fail "$subdir/$testcase gcov failed: $testcase.gcov does not exist"
          clean-gcov $testcase
!         return
      }
!     remote_upload host $testcase.gcov $testcase.gcov
  
      if { $gcov_verify_xfail != "" } {
  	eval setup_xfail [split $gcov_verify_xfail]
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/gfortran-dg.exp gcc-4.1.0/gcc/testsuite/lib/gfortran-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/gfortran-dg.exp	Mon Feb 21 16:31:42 2005
--- gcc-4.1.0/gcc/testsuite/lib/gfortran-dg.exp	Mon Feb  6 22:58:10 2006
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  load_lib gcc-dg.exp
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  load_lib gcc-dg.exp
  
*************** proc gfortran-dg-runtest { testcases def
*** 92,98 ****
  	# look if this is dg-do-run test, in which case
  	# we cycle through the option list, otherwise we don't
  	if [expr [search_for $test "dg-do run"]] {
! 	    set option_list $TORTURE_OPTIONS			         
  	} else {
  	    set option_list [list { -O } ]
  	}
--- 92,98 ----
  	# look if this is dg-do-run test, in which case
  	# we cycle through the option list, otherwise we don't
  	if [expr [search_for $test "dg-do run"]] {
! 	    set option_list $TORTURE_OPTIONS
  	} else {
  	    set option_list [list { -O } ]
  	}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/gfortran.exp gcc-4.1.0/gcc/testsuite/lib/gfortran.exp
*** gcc-4.0.2/gcc/testsuite/lib/gfortran.exp	Tue May  3 19:27:51 2005
--- gcc-4.1.0/gcc/testsuite/lib/gfortran.exp	Fri Nov 11 22:31:35 2005
***************
*** 1,18 ****
! # Copyright (C) 2003, 2004 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! # 
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file is just 'sed -e 's/77/fortran/g' \
  #			 -e 's/f2c/gfortran' g77.exp > gfortran.exp'
--- 1,18 ----
! # Copyright (C) 2003, 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
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file is just 'sed -e 's/77/fortran/g' \
  #			 -e 's/f2c/gfortran' g77.exp > gfortran.exp'
*************** proc gfortran_version { } {
*** 49,56 ****
      # verify that the compiler exists
      if { [is_remote host] || [which $compiler] != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0];
! 	set output [lindex $tmp 1];
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    if [is_remote host] {
--- 49,56 ----
      # verify that the compiler exists
      if { [is_remote host] || [which $compiler] != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0]
! 	set output [lindex $tmp 1]
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    if [is_remote host] {
*************** proc gfortran_link_flags { paths } {
*** 76,92 ****
--- 76,99 ----
      global srcdir
      global ld_library_path
      global GFORTRAN_UNDER_TEST
+     global shlib_ext
  
      set gccpath ${paths}
      set libio_dir ""
      set flags ""
      set ld_library_path "."
+     set shlib_ext [get_shlib_extension]
+     verbose "shared lib extension: $shlib_ext"
  
      if { $gccpath != "" } {
        if [file exists "${gccpath}/libgfortran/.libs/libgfortran.a"] {
            append flags "-L${gccpath}/libgfortran/.libs "
            append ld_library_path ":${gccpath}/libgfortran/.libs"
        }
+       if [file exists "${gccpath}/libgfortran/.libs/libgfortran.${shlib_ext}"] {
+ 	  append flags "-L${gccpath}/libgfortran/.libs "
+ 	  append ld_library_path ":${gccpath}/libgfortran/.libs"
+       }
        if [file exists "${gccpath}/libgfortran/libgforbegin.a"] {
            append flags "-L${gccpath}/libgfortran "
        }
*************** proc gfortran_init { args } {
*** 112,118 ****
      global base_dir
      global tmpdir
      global libdir
!     global gluefile wrap_flags;
      global objdir srcdir
      global ALWAYS_GFORTRANFLAGS
      global TOOL_EXECUTABLE TOOL_OPTIONS
--- 119,125 ----
      global base_dir
      global tmpdir
      global libdir
!     global gluefile wrap_flags
      global objdir srcdir
      global ALWAYS_GFORTRANFLAGS
      global TOOL_EXECUTABLE TOOL_OPTIONS
*************** proc gfortran_init { args } {
*** 125,131 ****
  
      if ![info exists GFORTRAN_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set GFORTRAN_UNDER_TEST $TOOL_EXECUTABLE;
  	} else {
  	    if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
  		set GFORTRAN_UNDER_TEST [transform gfortran]
--- 132,138 ----
  
      if ![info exists GFORTRAN_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set GFORTRAN_UNDER_TEST $TOOL_EXECUTABLE
  	} else {
  	    if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
  		set GFORTRAN_UNDER_TEST [transform gfortran]
*************** proc gfortran_init { args } {
*** 155,168 ****
  
      if ![is_remote host] {
  	if [info exists TOOL_OPTIONS] {
! 	    lappend ALWAYS_GFORTRANFLAGS "ldflags=[gfortran_link_flags [get_multilibs ${TOOL_OPTIONS}] ]";
  	} else {
! 	    lappend ALWAYS_GFORTRANFLAGS "ldflags=[gfortran_link_flags [get_multilibs] ]";
  	}
      }
  
      if [info exists TOOL_OPTIONS] {
! 	lappend ALWAYS_GFORTRANFLAGS "additional_flags=$TOOL_OPTIONS";
      }
  
      verbose -log "ALWAYS_GFORTRANFLAGS set to $ALWAYS_GFORTRANFLAGS"
--- 162,175 ----
  
      if ![is_remote host] {
  	if [info exists TOOL_OPTIONS] {
! 	    lappend ALWAYS_GFORTRANFLAGS "ldflags=[gfortran_link_flags [get_multilibs ${TOOL_OPTIONS}] ]"
  	} else {
! 	    lappend ALWAYS_GFORTRANFLAGS "ldflags=[gfortran_link_flags [get_multilibs] ]"
  	}
      }
  
      if [info exists TOOL_OPTIONS] {
! 	lappend ALWAYS_GFORTRANFLAGS "additional_flags=$TOOL_OPTIONS"
      }
  
      verbose -log "ALWAYS_GFORTRANFLAGS set to $ALWAYS_GFORTRANFLAGS"
*************** proc gfortran_init { args } {
*** 175,193 ****
  #
  
  proc gfortran_target_compile { source dest type options } {
!     global tmpdir;
      global gluefile wrap_flags
!     global ALWAYS_GFORTRANFLAGS;
!     global GFORTRAN_UNDER_TEST;
  
      if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
  	lappend options "libs=${gluefile}"
  	lappend options "ldflags=${wrap_flags}"
      }
  
!     lappend options "compiler=$GFORTRAN_UNDER_TEST";
! 
!     set options [concat "$ALWAYS_GFORTRANFLAGS" $options];
  
      return [target_compile $source $dest $type $options]
  }
--- 182,200 ----
  #
  
  proc gfortran_target_compile { source dest type options } {
!     global tmpdir
      global gluefile wrap_flags
!     global ALWAYS_GFORTRANFLAGS
!     global GFORTRAN_UNDER_TEST
  
      if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
  	lappend options "libs=${gluefile}"
  	lappend options "ldflags=${wrap_flags}"
      }
  
!     lappend options "compiler=$GFORTRAN_UNDER_TEST"
  
+     set options [concat "$ALWAYS_GFORTRANFLAGS" $options]
+     set options [dg-additional-files-options $options $source]
      return [target_compile $source $dest $type $options]
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/mike-g++.exp gcc-4.1.0/gcc/testsuite/lib/mike-g++.exp
*** gcc-4.0.2/gcc/testsuite/lib/mike-g++.exp	Tue Jan 22 22:08:49 2002
--- gcc-4.1.0/gcc/testsuite/lib/mike-g++.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Mike Stump <mrs@cygnus.com>
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Mike Stump <mrs@cygnus.com>
  
***************
*** 20,26 ****
  # mike_cleanup -- remove any files that are created by the testcase
  #
  proc mike_cleanup { src_code output_file assembly_file } {
!     remote_file build delete $output_file $assembly_file;
  }
  
  #
--- 20,26 ----
  # mike_cleanup -- remove any files that are created by the testcase
  #
  proc mike_cleanup { src_code output_file assembly_file } {
!     remote_file build delete $output_file $assembly_file
  }
  
  #
*************** proc postbase  { src_code run groups arg
*** 75,81 ****
      }
  
      if { [llength $args] > 0 } {
! 	set comp_options [lindex $args 0];
      } else {
  	set comp_options ""
      }
--- 75,81 ----
      }
  
      if { [llength $args] > 0 } {
! 	set comp_options [lindex $args 0]
      } else {
  	set comp_options ""
      }
*************** proc postbase  { src_code run groups arg
*** 102,130 ****
      case $actions {
  	compile
  	{
! 	    set compile_type "assembly";
! 	    set output_file $assembly_file;
  	}
  	assemble
  	{
! 	    set compile_type "object";
! 	    append output_file ".o";
  	}
  	link
  	{
! 	    set compile_type "executable";
! 	    append output_file ".exe";
  	}
  	run
  	{
! 	    set compile_type "executable";
! 	    append output_file ".exe";
! 	    set run yes;
  	}
  	default
  	{
! 	    set output_file "";
! 	    set compile_type "none";
  	}
      }
  
--- 102,130 ----
      case $actions {
  	compile
  	{
! 	    set compile_type "assembly"
! 	    set output_file $assembly_file
  	}
  	assemble
  	{
! 	    set compile_type "object"
! 	    append output_file ".o"
  	}
  	link
  	{
! 	    set compile_type "executable"
! 	    append output_file ".exe"
  	}
  	run
  	{
! 	    set compile_type "executable"
! 	    append output_file ".exe"
! 	    set run yes
  	}
  	default
  	{
! 	    set output_file ""
! 	    set compile_type "none"
  	}
      }
  
*************** proc postbase  { src_code run groups arg
*** 216,227 ****
  	}
  	if [string match $run yes] {
  	    set result [g++_load $output_file]
! 	    set status [lindex $result 0];
! 	    set output [lindex $result 1];
  
  	    if { $status == -1 } {
! 		mike_cleanup $src_code $output_file $assembly_file;
! 		return;
  	    }
  	    if { $verbose > 1 } {
  		send_user "Checking:\n$program_output\nto see if it matches:\n$output\n\n"
--- 216,227 ----
  	}
  	if [string match $run yes] {
  	    set result [g++_load $output_file]
! 	    set status [lindex $result 0]
! 	    set output [lindex $result 1]
  
  	    if { $status == -1 } {
! 		mike_cleanup $src_code $output_file $assembly_file
! 		return
  	    }
  	    if { $verbose > 1 } {
  		send_user "Checking:\n$program_output\nto see if it matches:\n$output\n\n"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/mike-gcc.exp gcc-4.1.0/gcc/testsuite/lib/mike-gcc.exp
*** gcc-4.0.2/gcc/testsuite/lib/mike-gcc.exp	Tue Jan 22 22:08:49 2002
--- gcc-4.1.0/gcc/testsuite/lib/mike-gcc.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was derived from mike-g++.exp written by Mike Stump <mrs@cygnus.com>
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was derived from mike-g++.exp written by Mike Stump <mrs@cygnus.com>
  
***************
*** 20,26 ****
  # mike_cleanup -- remove any files that are created by the testcase
  #
  proc mike_cleanup { src_code output_file assembly_file } {
!     remote_file build delete $output_file $assembly_file;
  }
  
  #
--- 20,26 ----
  # mike_cleanup -- remove any files that are created by the testcase
  #
  proc mike_cleanup { src_code output_file assembly_file } {
!     remote_file build delete $output_file $assembly_file
  }
  
  #
*************** proc postbase  { src_code run groups arg
*** 79,85 ****
      }
  
      if { [llength $args] > 0 } {
! 	set comp_options [lindex $args 0];
      } else {
  	set comp_options ""
      }
--- 79,85 ----
      }
  
      if { [llength $args] > 0 } {
! 	set comp_options [lindex $args 0]
      } else {
  	set comp_options ""
      }
*************** proc postbase  { src_code run groups arg
*** 106,134 ****
      case $actions {
  	compile
  	{
! 	    set compile_type "assembly";
! 	    set output_file $assembly_file;
  	}
  	assemble
  	{
! 	    set compile_type "object";
! 	    append output_file ".o";
  	}
  	link
  	{
! 	    set compile_type "executable";
! 	    append output_file ".exe";
  	}
  	run
  	{
! 	    set compile_type "executable";
! 	    append output_file ".exe";
! 	    set run yes;
  	}
  	default
  	{
! 	    set output_file "";
! 	    set compile_type "none";
  	}
      }
  
--- 106,134 ----
      case $actions {
  	compile
  	{
! 	    set compile_type "assembly"
! 	    set output_file $assembly_file
  	}
  	assemble
  	{
! 	    set compile_type "object"
! 	    append output_file ".o"
  	}
  	link
  	{
! 	    set compile_type "executable"
! 	    append output_file ".exe"
  	}
  	run
  	{
! 	    set compile_type "executable"
! 	    append output_file ".exe"
! 	    set run yes
  	}
  	default
  	{
! 	    set output_file ""
! 	    set compile_type "none"
  	}
      }
  
*************** proc postbase  { src_code run groups arg
*** 140,146 ****
  	lappend options "additional_flags=$comp_options"
      }
  
!     set comp_output [gcc_target_compile $src_file $output_file $compile_type $options];
  
      set pass no
  
--- 140,146 ----
  	lappend options "additional_flags=$comp_options"
      }
  
!     set comp_output [gcc_target_compile $src_file $output_file $compile_type $options]
  
      set pass no
  
*************** proc postbase  { src_code run groups arg
*** 215,225 ****
  	}
  	if [string match $run yes] {
  	    set result [gcc_load $output_file]
! 	    set status [lindex $result 0];
! 	    set output [lindex $result 1];
  	    if { $status == -1 } {
! 		mike_cleanup $src_code $output_file $assembly_file;
! 		return;
  	    }
  	    if { $verbose > 1 } {
  		send_user "Checking:\n$program_output\nto see if it matches:\n$output\n\n"
--- 215,225 ----
  	}
  	if [string match $run yes] {
  	    set result [gcc_load $output_file]
! 	    set status [lindex $result 0]
! 	    set output [lindex $result 1]
  	    if { $status == -1 } {
! 		mike_cleanup $src_code $output_file $assembly_file
! 		return
  	    }
  	    if { $verbose > 1 } {
  		send_user "Checking:\n$program_output\nto see if it matches:\n$output\n\n"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/obj-c++-dg.exp gcc-4.1.0/gcc/testsuite/lib/obj-c++-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/obj-c++-dg.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/lib/obj-c++-dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 0 ****
--- 1,28 ----
+ #   Copyright (C) 2004 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Define obj-c++ callbacks for dg.exp.
+ 
+ load_lib gcc-dg.exp
+ 
+ proc obj-c++-dg-test { prog do_what extra_tool_flags } {
+     return [gcc-dg-test-1 obj-c++_target_compile $prog $do_what $extra_tool_flags]
+ }
+ 
+ 
+ proc obj-c++-dg-prune { system text } {
+     return [gcc-dg-prune $system $text]
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/obj-c++.exp gcc-4.1.0/gcc/testsuite/lib/obj-c++.exp
*** gcc-4.0.2/gcc/testsuite/lib/obj-c++.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/lib/obj-c++.exp	Fri Nov 11 22:31:35 2005
***************
*** 0 ****
--- 1,368 ----
+ # 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ #
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ #
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ 
+ # This file was written by Rob Savoye (rob@cygnus.com)
+ # Many modifications by Jeffrey Wheat (cassidy@cygnus.com)
+ # With modifications by Mike Stump <mrs@cygnus.com>.
+ 
+ #
+ # obj-c++ support library routines
+ #
+ load_lib prune.exp
+ load_lib gcc-defs.exp
+ load_lib target-libpath.exp
+ 
+ #
+ # OBJCXX_UNDER_TEST is the compiler under test.
+ #
+ 
+ 
+ set gpp_compile_options ""
+ 
+ #
+ # obj-c++_version -- extract and print the version number of the compiler
+ #
+ 
+ proc obj-c++_version { } {
+     global OBJCXX_UNDER_TEST
+     
+     obj-c++_init
+ 
+     # ignore any arguments after the command
+     set compiler [lindex $OBJCXX_UNDER_TEST 0]
+     
+     # verify that the compiler exists
+     if { [is_remote host] || [which $compiler] != 0 } then {
+ 	set tmp [remote_exec host "$compiler -v"]
+ 	set status [lindex $tmp 0];
+ 	set output [lindex $tmp 1];
+ 	regexp " version \[^\n\r\]*" $output version
+ 	if { $status == 0 && [info exists version] } then {
+ 	    if [is_remote host] {
+ 		clone_output "$compiler $version\n"
+ 	    } else {
+ 		clone_output "[which $compiler] $version\n"
+ 	    }
+ 	} else {
+ 	    clone_output "Couldn't determine version of [which $compiler]\n"
+ 	}
+     } else {
+ 	# compiler does not exist (this should have already been detected)
+ 	warning "$compiler does not exist"
+     }
+ }
+ 
+ #
+ # obj-c++_include_flags -- provide new version of obj-c++_include_flags
+ # (originally from libgloss.exp) which knows about the gcc tree structure
+ #
+ proc obj-c++_include_flags { paths } {
+     global srcdir
+     global HAVE_LIBSTDCXX_V3
+     global TESTING_IN_BUILD_TREE
+ 
+     set flags ""
+ 
+     if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
+       return "${flags}"
+     }
+ 
+     set gccpath ${paths}
+ 
+     set odir [lookfor_file ${gccpath} libstdc++-v3]
+     if { ${odir} != "" } {
+       append flags [exec sh ${odir}/scripts/testsuite_flags --build-includes]  
+     }
+ 
+     return "$flags"
+ }
+ 
+ #
+ # obj-c++_link_flags -- provide new version of obj-c++_link_flags
+ # (originally from libgloss.exp) which knows about the gcc tree structure
+ #
+ 
+ proc obj-c++_link_flags { paths } {
+     global rootme
+     global srcdir
+     global ld_library_path
+     global OBJCXX_UNDER_TEST
+     global shlib_ext
+ 
+     set gccpath ${paths}
+     set libio_dir ""
+     set flags ""
+     set ld_library_path "."
+     set shlib_ext [get_shlib_extension]
+     verbose "shared lib extension: $shlib_ext"
+ 
+     if { $gccpath != "" } {
+       if [file exists "${gccpath}/lib/libstdc++.a"] {
+           append ld_library_path ":${gccpath}/lib"
+       }
+       if [file exists "${gccpath}/libg++/libg++.a"] {
+           append flags "-L${gccpath}/libg++ "
+           append ld_library_path ":${gccpath}/libg++"
+       }
+       if [file exists "${gccpath}/libstdc++/libstdc++.a"] {
+           append flags "-L${gccpath}/libstdc++ "
+           append ld_library_path ":${gccpath}/libstdc++"
+       }
+       if [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.a"] {
+           append flags " -L${gccpath}/libstdc++-v3/src/.libs "
+           append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
+       }
+       # Look for libstdc++.${shlib_ext}.
+       if [file exists "${gccpath}/libstdc++-v3/src/.libs/libstdc++.${shlib_ext}"] {
+ 	  append flags " -L${gccpath}/libstdc++-v3/src/.libs "
+ 	  append ld_library_path ":${gccpath}/libstdc++-v3/src/.libs"
+       }
+       if [file exists "${gccpath}/libiberty/libiberty.a"] {
+           append flags "-L${gccpath}/libiberty "
+       }
+       if [file exists "${gccpath}/librx/librx.a"] {
+           append flags "-L${gccpath}/librx "
+       }
+ 
+       set objcpath "[get_multilibs]"
+       set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
+       if { $libobjc_dir == ""} {
+ 	  set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
+       }
+       # Now check if we have a shared only build.
+       if { $libobjc_dir == ""} {
+ 	  set libobjc_dir \
+ 	      [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
+       }
+       if { $libobjc_dir == ""} {
+ 	  set libobjc_dir \
+ 	      [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
+       }
+ 
+       verbose "libobjc_dir: $libobjc_dir"
+ 
+       if { $libobjc_dir != "" } {
+ 	  set libobjc_dir [file dirname ${libobjc_dir}]
+ 	  append flags "-L${libobjc_dir}"
+ 	  append ld_library_path ":${libobjc_dir}"
+       }
+       append ld_library_path \
+ 	  [gcc-set-multilib-library-path $OBJCXX_UNDER_TEST]
+ 
+     } else {
+       global tool_root_dir;
+ 
+       set libgpp [lookfor_file ${tool_root_dir} libg++];
+       if { $libgpp != "" } {
+           append flags "-L${libgpp} ";
+           append ld_library_path ":${libgpp}"
+       }
+       set libstdcpp [lookfor_file ${tool_root_dir} libstdc++];
+       if { $libstdcpp != "" } {
+           append flags "-L${libstdcpp} ";
+           append ld_library_path ":${libstdcpp}"
+       }
+       set libiberty [lookfor_file ${tool_root_dir} libiberty];
+       if { $libiberty != "" } {
+           append flags "-L${libiberty} ";
+       }
+       set librx [lookfor_file ${tool_root_dir} librx];
+       if { $librx != "" } {
+           append flags "-L${librx} ";
+       }
+     }
+ 
+     set_ld_library_path_env_vars
+ 
+     return "$flags"
+ }
+ 
+ #
+ # obj-c++_init -- called at the start of each subdir of tests
+ #
+ 
+ proc obj-c++_init { args } {
+     global subdir
+     global gpp_initialized
+     global base_dir
+     global tmpdir
+     global libdir
+     global gluefile wrap_flags;
+     global objdir srcdir
+     global ALWAYS_OBJCXXFLAGS
+     global TOOL_EXECUTABLE TOOL_OPTIONS
+     global OBJCXX_UNDER_TEST
+     global TESTING_IN_BUILD_TREE
+     global target_triplet
+ 
+     if ![info exists OBJCXX_UNDER_TEST] then {
+ 	if [info exists TOOL_EXECUTABLE] {
+ 	    set OBJCXX_UNDER_TEST $TOOL_EXECUTABLE;
+ 	} else {
+ 	    if { [is_remote host] || ! [info exists TESTING_IN_BUILD_TREE] } {
+ 		set OBJCXX_UNDER_TEST [transform c++]
+ 	    } else {
+ 		set OBJCXX_UNDER_TEST [findfile $base_dir/../g++ "$base_dir/../g++ -B$base_dir/../" [findfile $base_dir/g++ "$base_dir/g++ -B$base_dir/" [transform c++]]]
+ 	    }
+ 	}
+     }
+ 
+     # Bleah, nasty. Bad taste.
+     if [ishost "*-dos-*" ] {
+ 	regsub "c\\+\\+" "$OBJCXX_UNDER_TEST" "gcc" OBJCXX_UNDER_TEST
+     }
+ 
+     if ![is_remote host] {
+ 	if { [which $OBJCXX_UNDER_TEST] == 0 } then {
+ 	    perror "OBJCXX_UNDER_TEST ($OBJCXX_UNDER_TEST) does not exist"
+ 	    exit 1
+ 	}
+     }
+     if ![info exists tmpdir] {
+ 	set tmpdir "/tmp"
+     }
+ 
+     if [info exists gluefile] {
+ 	unset gluefile
+     }
+ 
+     obj-c++_maybe_build_wrapper "${tmpdir}/obj-c++-testglue.o"
+ 
+     set ALWAYS_OBJCXXFLAGS ""
+ 
+     if ![is_remote host] {
+ 	if [info exists TOOL_OPTIONS] {
+ 	    lappend ALWAYS_OBJCXXFLAGS "additional_flags=[obj-c++_include_flags [get_multilibs ${TOOL_OPTIONS}] ]";
+ 	    lappend ALWAYS_OBJCXXFLAGS "ldflags=[obj-c++_link_flags [get_multilibs ${TOOL_OPTIONS}] ]";
+ 	} else {
+ 	    lappend ALWAYS_OBJCXXFLAGS "additional_flags=[obj-c++_include_flags [get_multilibs] ]";
+ 	    lappend ALWAYS_OBJCXXFLAGS "ldflags=[obj-c++_link_flags [get_multilibs] ]";
+ 	}
+     }
+ 
+     if [info exists TOOL_OPTIONS] {
+ 	lappend ALWAYS_OBJCXXFLAGS "additional_flags=$TOOL_OPTIONS";
+     }
+ 
+     # Make sure that lines are not wrapped.  That can confuse the
+     # error-message parsing machinery.
+     lappend ALWAYS_OBJCXXFLAGS "additional_flags=-fmessage-length=0"
+ 
+     if { [string match "powerpc-*-darwin*" $target_triplet] } {
+ 	lappend ALWAYS_OBJCXXFLAGS "ldflags=-multiply_defined suppress"
+        }
+ 
+     verbose -log "ALWAYS_OBJCXXFLAGS set to $ALWAYS_OBJCXXFLAGS"
+ 
+     verbose "obj-c++ is initialized" 3
+ }
+ 
+ #
+ # obj-c++_target_compile -- compile a source file
+ #
+ 
+ proc obj-c++_target_compile { source dest type options } {
+     global tmpdir
+     global srcdir
+     global gpp_compile_options
+     global gluefile wrap_flags
+     global ALWAYS_OBJCXXFLAGS
+     global OBJCXX_UNDER_TEST
+     global shlib_ext
+ 
+     lappend options "libs=-lobjc"
+     set shlib_ext [get_shlib_extension]
+     verbose "shared lib extension: $shlib_ext"
+ 
+     if { [target_info needs_status_wrapper] != "" && [info exists gluefile] } {
+ 	lappend options "libs=${gluefile}"
+ 	lappend options "ldflags=${wrap_flags}"
+     }
+ 
+     # If we have built libobjc along with the compiler (which usually
+     # _is not_ the case on Mac OS X systems), point the test harness
+     # at it (and associated headers).
+ 
+     set objcpath "[get_multilibs]"
+ 
+     set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
+     if { $libobjc_dir == ""} {
+       verbose "see if we have -fgnu-runtime in options"
+       if [regexp ".*-fgnu-runtime.*" "${options}" ] {
+ 	  set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
+       }
+     }
+     if { $libobjc_dir == ""} {
+ 	set libobjc_dir \
+ 	    [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
+     }
+     if { $libobjc_dir == ""} {
+ 	verbose "see if we have -fgnu-runtime in options"
+ 	if [regexp ".*-fgnu-runtime.*" "${options}"] {
+ 	 set libobjc_dir \
+ 	     [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
+ 	}
+     }
+ 
+     if { $libobjc_dir != "" } {
+ 	set objc_include_dir "${srcdir}/../../libobjc"
+ 	lappend options "additional_flags=-I${objc_include_dir}"
+     }
+ 
+     lappend options "additional_flags=[libio_include_flags]"
+     lappend options "compiler=$OBJCXX_UNDER_TEST";
+ 
+     set options [concat $gpp_compile_options $options]
+ 
+     set options [concat "$ALWAYS_OBJCXXFLAGS" $options];
+ 
+     if { [regexp "(^| )-frepo( |$)" $options] && \
+ 	 [regexp "\.o(|bj)$" $dest] } then {
+ 	regsub "\.o(|bj)$" $dest ".rpo" rponame
+ 	exec rm -f $rponame
+     }
+ 
+     set options [dg-additional-files-options $options $source]
+ 
+     set result [target_compile $source $dest $type $options]
+ 
+     return $result
+ }
+ 
+ #
+ # ${tool}_option_help
+ #
+ 
+ proc ${tool}_option_help { } {
+     send_user " --additional_options,OPTIONS\t\tUse OPTIONS to compile the testcase files. OPTIONS should be comma-separated.\n"
+ }
+ 
+ #
+ # ${tool}_option_proc
+ #
+ 
+ proc ${tool}_option_proc { option } {
+     if [regexp "^--additional_options," $option] {
+ 	global gpp_compile_options
+ 	regsub "--additional_options," $option "" option
+ 	foreach x [split $option ","] {
+ 	    lappend gpp_compile_options "additional_flags=$x"
+ 	}
+ 	return 1;
+     } else {
+ 	return 0
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/objc-dg.exp gcc-4.1.0/gcc/testsuite/lib/objc-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/objc-dg.exp	Fri May 16 20:53:04 2003
--- gcc-4.1.0/gcc/testsuite/lib/objc-dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  load_lib gcc-dg.exp
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  load_lib gcc-dg.exp
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/objc-torture.exp gcc-4.1.0/gcc/testsuite/lib/objc-torture.exp
*** gcc-4.0.2/gcc/testsuite/lib/objc-torture.exp	Thu Mar 31 04:22:10 2005
--- gcc-4.1.0/gcc/testsuite/lib/objc-torture.exp	Sat Aug 13 21:16:04 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  
*************** load_lib file-format.exp
*** 21,26 ****
--- 21,44 ----
  # The default option list can be overridden by
  # TORTURE_OPTIONS="{ { list1 } ... { listN } }"
  
+ if ![info exists OBJC_RUNTIME_OPTIONS] {
+   set OBJC_RUNTIME_OPTIONS ""
+   foreach type {-fgnu-runtime -fnext-runtime} {
+     global srcdir subdir
+ 
+     set comp_output [objc_target_compile \
+     "$srcdir/$subdir/trivial.m" "trivial.exe" executable "additional_flags=$type"]
+ 
+     # If we get any error, then we failed
+     if ![string match "" $comp_output] then {
+       continue;
+     }
+     lappend OBJC_RUNTIME_OPTIONS $type
+   }
+ }
+ verbose -log "Using the following runtimes: $OBJC_RUNTIME_OPTIONS"
+ 
+ 
  if ![info exists TORTURE_OPTIONS] {
      # It is theoretically beneficial to group all of the O2/O3 options together,
      # as in many cases the compiler will generate identical executables for
*************** if ![info exists TORTURE_OPTIONS] {
*** 30,57 ****
      # items below, even though -O3 is also specified, because some ports may
      # choose to disable inlining functions by default, even when optimizing.
      set TORTURE_OPTIONS [list \
! 	{ -O0 } \
! 	{ -O1 } \
! 	{ -O2 } \
! 	{ -O3 -fomit-frame-pointer } \
! 	{ -O3 -fomit-frame-pointer -funroll-loops } \
! 	{ -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions } \
! 	{ -O3 -g } \
! 	{ -Os } ]
  }
  
  
  # Split TORTURE_OPTIONS into two choices: one for testcases with loops and
! # one for testcases without loops.
  
! set torture_with_loops $TORTURE_OPTIONS
  set torture_without_loops ""
! foreach option $TORTURE_OPTIONS {
      if ![string match "*loop*" $option] {
! 	lappend torture_without_loops $option
      }
  }
  
  #
  # objc-torture-compile -- runs the Tege OBJC-torture test
  #
--- 48,80 ----
      # items below, even though -O3 is also specified, because some ports may
      # choose to disable inlining functions by default, even when optimizing.
      set TORTURE_OPTIONS [list \
! 	" -O0 " \
! 	" -O1 " \
! 	" -O2 " \
! 	" -O3 -fomit-frame-pointer " \
! 	" -O3 -fomit-frame-pointer -funroll-loops " \
! 	" -O3 -fomit-frame-pointer -funroll-all-loops -finline-functions " \
! 	" -O3 -g " \
! 	" -Os " ]
  }
  
  
  # Split TORTURE_OPTIONS into two choices: one for testcases with loops and
! # one for testcases without loops. Add in the objc runtime options also.
  
! set torture_with_loops ""
  set torture_without_loops ""
! foreach objc_option $OBJC_RUNTIME_OPTIONS {
!   foreach option $TORTURE_OPTIONS {
!   
      if ![string match "*loop*" $option] {
! 	lappend torture_without_loops "$option $objc_option"
      }
+     lappend torture_with_loops "$option $objc_option"
+   }
  }
  
+ 
  #
  # objc-torture-compile -- runs the Tege OBJC-torture test
  #
*************** proc objc-torture-compile { src option }
*** 80,86 ****
      set options ""
      lappend options "additional_flags=-w $option"
  
!     set comp_output [objc_target_compile "$src" "$output" object $options];
      objc_check_compile $testcase $option $output $comp_output
      remote_file build delete $output
  }
--- 103,109 ----
      set options ""
      lappend options "additional_flags=-w $option"
  
!     set comp_output [objc_target_compile "$src" "$output" object $options]
      objc_check_compile $testcase $option $output $comp_output
      remote_file build delete $output
  }
*************** proc objc-torture-execute { src args } {
*** 98,106 ****
      global tmpdir tool srcdir output compiler_conditional_xfail_data
  
      if { [llength $args] > 0 } {
! 	set additional_flags [lindex $args 0];
      } else {
! 	set additional_flags "";
      }
      # Check for alternate driver.
      if [file exists [file rootname $src].x] {
--- 121,129 ----
      global tmpdir tool srcdir output compiler_conditional_xfail_data
  
      if { [llength $args] > 0 } {
! 	set additional_flags [lindex $args 0]
      } else {
! 	set additional_flags ""
      }
      # Check for alternate driver.
      if [file exists [file rootname $src].x] {
*************** proc objc-torture-execute { src args } {
*** 132,145 ****
  	set testcase "[file tail [file dirname $src]]/[file tail $src]"
      }
  
!     set count 0;
!     set oldstatus "foo";
      foreach option $option_list {
  	if { $count > 0 } {
! 	    set oldexec $execname;
  	}
! 	set execname "${executable}${count}";
! 	incr count;
  
  	# torture_{compile,execute}_xfail are set by the .x script
  	# (if present)
--- 155,168 ----
  	set testcase "[file tail [file dirname $src]]/[file tail $src]"
      }
  
!     set count 0
!     set oldstatus "foo"
      foreach option $option_list {
  	if { $count > 0 } {
! 	    set oldexec $execname
  	}
! 	set execname "${executable}${count}"
! 	incr count
  
  	# torture_{compile,execute}_xfail are set by the .x script
  	# (if present)
*************** proc objc-torture-execute { src args } {
*** 153,167 ****
              set ignore_me [eval $torture_eval_before_compile]
  	}
  
! 	remote_file build delete $execname;
  	verbose "Testing $testcase, $option" 1
  
  	set options ""
  	lappend options "additional_flags=-w $option"
  	if { $additional_flags != "" } {
! 	    lappend options "additional_flags=$additional_flags";
  	}
! 	set comp_output [objc_target_compile "$src" "${execname}" executable $options];
  
  	if ![objc_check_compile "$testcase compilation" $option $execname $comp_output] {
  	    unresolved "$testcase execution, $option"
--- 176,190 ----
              set ignore_me [eval $torture_eval_before_compile]
  	}
  
! 	remote_file build delete $execname
  	verbose "Testing $testcase, $option" 1
  
  	set options ""
  	lappend options "additional_flags=-w $option"
  	if { $additional_flags != "" } {
! 	    lappend options "additional_flags=$additional_flags"
  	}
! 	set comp_output [objc_target_compile "$src" "${execname}" executable $options]
  
  	if ![objc_check_compile "$testcase compilation" $option $execname $comp_output] {
  	    unresolved "$testcase execution, $option"
*************** proc objc-torture-execute { src args } {
*** 200,225 ****
  	# Do not do this for native testing since the cost to load/execute
  	# the test is fairly small and the comparison step actually slows
  	# the entire process down because it usually does not "hit".
! 	set skip 0;
  	if { ![isnative] && [info exists oldexec] } {
  	    if { [remote_file build cmp $oldexec $execname] == 0 } {
! 		set skip 1;
  	    }
  	}
  	if { $skip == 0 } {
  	    set result [objc_load "$execname" "" ""]
! 	    set status [lindex $result 0];
! 	    set output [lindex $result 1];
  	}
          if { $oldstatus == "pass" } {
! 	    remote_file build delete $oldexec;
          }
  	$status "$testcase execution, $option"
! 	set oldstatus $status;
      }
      if [info exists status] {
  	if { $status == "pass" } {
! 	    remote_file build delete $execname;
  	}
      }
  }
--- 223,248 ----
  	# Do not do this for native testing since the cost to load/execute
  	# the test is fairly small and the comparison step actually slows
  	# the entire process down because it usually does not "hit".
! 	set skip 0
  	if { ![isnative] && [info exists oldexec] } {
  	    if { [remote_file build cmp $oldexec $execname] == 0 } {
! 		set skip 1
  	    }
  	}
  	if { $skip == 0 } {
  	    set result [objc_load "$execname" "" ""]
! 	    set status [lindex $result 0]
! 	    set output [lindex $result 1]
  	}
          if { $oldstatus == "pass" } {
! 	    remote_file build delete $oldexec
          }
  	$status "$testcase execution, $option"
! 	set oldstatus $status
      }
      if [info exists status] {
  	if { $status == "pass" } {
! 	    remote_file build delete $execname
  	}
      }
  }
*************** proc search_for { file pattern } {
*** 253,261 ****
  proc objc-torture { args } {
      global srcdir subdir compiler_conditional_xfail_data
  
!     set src [lindex $args 0];
      if { [llength $args] > 1 } {
! 	set options [lindex $args 1];
      } else {
  	set options ""
      }
--- 276,284 ----
  proc objc-torture { args } {
      global srcdir subdir compiler_conditional_xfail_data
  
!     set src [lindex $args 0]
      if { [llength $args] > 1 } {
! 	set options [lindex $args 1]
      } else {
  	set options ""
      }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/objc.exp gcc-4.1.0/gcc/testsuite/lib/objc.exp
*** gcc-4.0.2/gcc/testsuite/lib/objc.exp	Tue May  3 19:27:52 2005
--- gcc-4.1.0/gcc/testsuite/lib/objc.exp	Fri Nov 11 22:31:35 2005
***************
*** 1,19 ****
! # Copyright (C) 1992, 1993, 1994, 1996, 1997, 2000, 2001, 2002, 2004
  # Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! # 
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Currently maintained by Doug Evans (dje@cygnus.com)
--- 1,19 ----
! # Copyright (C) 1992, 1993, 1994, 1996, 1997, 2000, 2001, 2002, 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
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Currently maintained by Doug Evans (dje@cygnus.com)
*************** load_lib target-libpath.exp
*** 41,62 ****
  proc default_objc_version { } {
      global OBJC_UNDER_TEST
  
!     objc_init;
  
      # ignore any arguments after the command
      set compiler [lindex $OBJC_UNDER_TEST 0]
  
      if ![is_remote host] {
! 	set compiler_name [which $compiler];
      } else {
! 	set compiler_name $compiler;
      }
  
      # verify that the compiler exists
      if { $compiler_name != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0];
! 	set output [lindex $tmp 1];
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    clone_output "$compiler_name $version\n"
--- 41,62 ----
  proc default_objc_version { } {
      global OBJC_UNDER_TEST
  
!     objc_init
  
      # ignore any arguments after the command
      set compiler [lindex $OBJC_UNDER_TEST 0]
  
      if ![is_remote host] {
! 	set compiler_name [which $compiler]
      } else {
! 	set compiler_name $compiler
      }
  
      # verify that the compiler exists
      if { $compiler_name != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0]
! 	set output [lindex $tmp 1]
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    clone_output "$compiler_name $version\n"
*************** proc default_objc_version { } {
*** 73,79 ****
  # Call objc_version. We do it this way so we can override it if needed.
  #
  proc objc_version { } {
!     default_objc_version;
  }
  
  #
--- 73,79 ----
  # Call objc_version. We do it this way so we can override it if needed.
  #
  proc objc_version { } {
!     default_objc_version
  }
  
  #
*************** proc objc_init { args } {
*** 103,109 ****
  
      if ![info exists OBJC_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set OBJC_UNDER_TEST $TOOL_EXECUTABLE;
  	} else {
  	    set OBJC_UNDER_TEST [find_gcc]
  	}
--- 103,109 ----
  
      if ![info exists OBJC_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set OBJC_UNDER_TEST $TOOL_EXECUTABLE
  	} else {
  	    set OBJC_UNDER_TEST [find_gcc]
  	}
*************** proc objc_init { args } {
*** 119,135 ****
  }
  
  proc objc_target_compile { source dest type options } {
!     global rootme;
!     global tmpdir;
!     global gluefile wrap_flags;
      global srcdir
      global OBJC_UNDER_TEST
      global TOOL_OPTIONS
      global ld_library_path
      global objc_libgcc_s_path
  
      set ld_library_path ".:${objc_libgcc_s_path}"
      lappend options "libs=-lobjc"
  
      if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
  	lappend options "libs=${gluefile}"
--- 119,138 ----
  }
  
  proc objc_target_compile { source dest type options } {
!     global rootme
!     global tmpdir
!     global gluefile wrap_flags
      global srcdir
      global OBJC_UNDER_TEST
      global TOOL_OPTIONS
      global ld_library_path
      global objc_libgcc_s_path
+     global shlib_ext
  
      set ld_library_path ".:${objc_libgcc_s_path}"
      lappend options "libs=-lobjc"
+     set shlib_ext [get_shlib_extension]
+     verbose "shared lib extension: $shlib_ext"
  
      if { [target_info needs_status_wrapper]!="" && [info exists gluefile] } {
  	lappend options "libs=${gluefile}"
*************** proc objc_target_compile { source dest t
*** 148,154 ****
      # TOOL_OPTIONS must come first, so that it doesn't override testcase
      # specific options.
      if [info exists TOOL_OPTIONS] {
! 	set options [concat "additional_flags=$TOOL_OPTIONS" $options];
      }
  
      # If we have built libobjc along with the compiler (which usually
--- 151,157 ----
      # TOOL_OPTIONS must come first, so that it doesn't override testcase
      # specific options.
      if [info exists TOOL_OPTIONS] {
! 	set options [concat "{additional_flags=$TOOL_OPTIONS}" $options]
      }
  
      # If we have built libobjc along with the compiler (which usually
*************** proc objc_target_compile { source dest t
*** 159,169 ****
  
      set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
      if { $libobjc_dir == ""} {
!       verbose "see if we have -fgnu-runtime in [target_info name]"
!       if [regexp ".*-fgnu-runtime.*" [target_info name]] {
!         set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
        }
      }
      if { $libobjc_dir != "" } {
  	set objc_include_dir "${srcdir}/../../libobjc"
  	lappend options "additional_flags=-I${objc_include_dir}"
--- 162,184 ----
  
      set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc.a]
      if { $libobjc_dir == ""} {
!       verbose "see if we have -fgnu-runtime in options"
!       if [regexp ".*-fgnu-runtime.*" "${options}"] {
! 	set libobjc_dir [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.a]
        }
      }
+     # Now check if we have a shared only build.
+     if { $libobjc_dir == ""} {
+      set libobjc_dir \
+ 	 [lookfor_file ${objcpath} libobjc/.libs/libobjc.${shlib_ext}]
+     }
+     if { $libobjc_dir == ""} {
+ 	verbose "see if we have -fgnu-runtime in options"
+ 	if [regexp ".*-fgnu-runtime.*" "${options}"] {
+ 	 set libobjc_dir \
+ 	     [lookfor_file ${objcpath} libobjc/.libs/libobjc-gnu.${shlib_ext}]
+ 	}
+     }
      if { $libobjc_dir != "" } {
  	set objc_include_dir "${srcdir}/../../libobjc"
  	lappend options "additional_flags=-I${objc_include_dir}"
*************** proc objc_fail { testcase cflags } {
*** 213,219 ****
  
  proc objc_finish { } {
      # The testing harness apparently requires this.
!     global errorInfo;
  
      if [info exists errorInfo] then {
  	unset errorInfo
--- 228,234 ----
  
  proc objc_finish { } {
      # The testing harness apparently requires this.
!     global errorInfo
  
      if [info exists errorInfo] then {
  	unset errorInfo
*************** proc objc_finish { } {
*** 227,237 ****
  }
  
  proc objc_exit { } {
!     global gluefile;
  
      if [info exists gluefile] {
! 	file_on_build delete $gluefile;
! 	unset gluefile;
      }
  }
      
--- 242,252 ----
  }
  
  proc objc_exit { } {
!     global gluefile
  
      if [info exists gluefile] {
! 	file_on_build delete $gluefile
! 	unset gluefile
      }
  }
      
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/profopt.exp gcc-4.1.0/gcc/testsuite/lib/profopt.exp
*** gcc-4.0.2/gcc/testsuite/lib/profopt.exp	Thu Sep 16 20:37:09 2004
--- gcc-4.1.0/gcc/testsuite/lib/profopt.exp	Mon Jul 25 18:55:29 2005
***************
*** 1,4 ****
! #   Copyright (C) 2001, 2004 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
--- 1,4 ----
! #   Copyright (C) 2001, 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
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  #
  # This script was submitted by Janis Johnson <janis187@us.ibm.com>.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  #
  # This script was submitted by Janis Johnson <janis187@us.ibm.com>.
  
***************
*** 30,35 ****
--- 30,38 ----
  # profile-directed test run is nonzero then the performance check will
  # be done.
  
+ load_lib dg.exp
+ load_lib gcc-dg.exp
+ 
  global PROFOPT_OPTIONS perf_delta
  
  # The including .exp file must define these.
*************** if ![info exists tool] {
*** 38,44 ****
      error "Tools is not specified."
  }
  if ![info exists prof_ext] {
!     error "No profile data file extension specified."
  }
  
  # The maximum perforance degradation can be defined in the including file.
--- 41,47 ----
      error "Tools is not specified."
  }
  if ![info exists prof_ext] {
!     error "No profile data file extensions specified."
  }
  
  # The maximum perforance degradation can be defined in the including file.
*************** set prof_option_list $PROFOPT_OPTIONS
*** 66,79 ****
  # profopt-cleanup -- remove profiling or performance results files.
  #
  # TESTCASE is the name of the test
! # EXT is the extension of file to remove
  #
! proc profopt-cleanup { testcase ext } {
      set basename [file tail $testcase]
      set base [file rootname $basename]
!     set files [glob -nocomplain $base.$ext]
!     if { $files != "" } {
! 	eval "remote_file build delete $files"
      }
  }
  
--- 69,84 ----
  # profopt-cleanup -- remove profiling or performance results files.
  #
  # TESTCASE is the name of the test
! # EXT is the extensions of files to remove
  #
! proc profopt-cleanup { testcase extlist } {
      set basename [file tail $testcase]
      set base [file rootname $basename]
!     foreach ext $extlist {
! 	set files [glob -nocomplain $base.$ext]
! 	if { $files != "" } {
! 	    eval "remote_file build delete $files"
! 	}
      }
  }
  
*************** proc profopt-perf-value { testcase perf_
*** 114,119 ****
--- 119,208 ----
  }
  
  #
+ # dg-final-generate -- process code to run after the profile-generate step
+ #
+ # ARGS is the line number of the directive followed by the commands.
+ #
+ proc dg-final-generate { args } {
+     global generate_final_code
+ 
+     if { [llength $args] > 2 } {
+ 	error "[lindex $args 0]: too many arguments"
+ 	return
+     }
+     append generate_final_code "[lindex $args 1]\n"
+ }
+ 
+ #
+ # dg-final-use -- process code to run after the profile-use step
+ #
+ # ARGS is the line number of the directive followed by the commands.
+ #
+ proc dg-final-use { args } {
+     global use_final_code
+ 
+     if { [llength $args] > 2 } {
+ 	error "[lindex $args 0]: too many arguments"
+ 	return
+     }
+     append use_final_code "[lindex $args 1]\n"
+ }
+ 
+ #
+ # profopt-final-code -- run final code
+ #
+ # WHICH is "generate" or "use".
+ # FINAL_CODE is the TCL code to run.
+ # TESTCASE is the name of the test, for error messages.
+ #
+ proc profopt-final-code { which final_code name } {
+     # This is copied from dg-test in dg.exp of DejaGnu.
+     regsub -all "\\\\(\[{}\])" $final_code "\\1" final_code
+     proc profopt-final-proc { args } $final_code
+     if [catch "profopt-final-proc $name" errmsg] {
+ 	perror "$name: error executing dg-final-${which}: $errmsg"
+ 	unresolved "$name: Error executing dg-final-${which}: $errmsg"
+     }
+ }
+ 
+ #
+ # profopt-get-options -- process test directives
+ #
+ # SRC is the full pathname of the testcase.
+ #
+ proc profopt-get-options { src } {
+     # dg-options sets a variable called dg-extra-tool-flags.
+     set dg-extra-tool-flags ""
+ 
+     # dg-require-* sets dg-do-what.
+     upvar dg-do-what dg-do-what 
+ 
+     set tmp [dg-get-options $src]
+     foreach op $tmp {
+ 	set cmd [lindex $op 0]
+ 	if { ![string compare "dg-options" $cmd] \
+ 	     || ![string compare "dg-skip-if" $cmd] \
+ 	     || ![string compare "dg-final-generate" $cmd] \
+ 	     || ![string compare "dg-final-use" $cmd] \
+ 	     || [string match "dg-require-*" $cmd]  } {
+ 	    set status [catch "$op" errmsg]
+ 	    if { $status != 0 } {
+ 		perror "src: $errmsg for \"$op\"\n"
+ 		unresolved "$src: $errmsg for \"$op\""
+ 		return
+ 	    }
+ 	} else {
+ 	    # Ignore unrecognized dg- commands, but warn about them.
+ 	    warning "compat.exp does not support $cmd"
+ 	}
+     }
+ 
+     # Return flags to use for compiling the primary source file and for
+     # linking.
+     return ${dg-extra-tool-flags}
+ }
+ 
+ #
  # c-prof-execute -- compile for profiling and then feedback, then normal
  #
  # SRC is the full pathname of the testcase.
*************** proc profopt-execute { src } {
*** 122,127 ****
--- 211,217 ----
      global srcdir tmpdir
      global prof_option_list
      global tool profile_option feedback_option prof_ext perf_ext perf_delta
+     global generate_final_code use_final_code
      global verbose
  
      if ![info exists profile_option] {
*************** proc profopt-execute { src } {
*** 141,146 ****
--- 231,238 ----
      }
  
      set executable $tmpdir/[file tail [file rootname $src].x]
+     set basename [file tail $testcase]
+     set base [file rootname $basename]
  
      set count 0
      foreach option $prof_option_list {
*************** proc profopt-execute { src } {
*** 155,171 ****
  	verbose "Testing $testcase, $option" 1
  
  	# Remove old profiling and performance data files.
! 	profopt-cleanup $testcase $prof_ext
  	if [info exists perf_ext] {
  	    profopt-cleanup $testcase $perf_ext
  	}
  
  	# Compile for profiling.
  
  	set options ""
! 	lappend options "additional_flags=$option $profile_option"
  	set optstr "$option $profile_option"
! 	set comp_output [${tool}_target_compile "$src" "$execname1" executable $options];
  	if ![${tool}_check_compile "$testcase compilation" $optstr $execname1 $comp_output] {
   	    unresolved "$testcase execution,   $optstr"
   	    unresolved "$testcase compilation, $option $feedback_option"
--- 247,277 ----
  	verbose "Testing $testcase, $option" 1
  
  	# Remove old profiling and performance data files.
! 	foreach ext $prof_ext {
! 	    remote_file target delete $tmpdir/$base.$ext
! 	}
  	if [info exists perf_ext] {
  	    profopt-cleanup $testcase $perf_ext
  	}
  
+ 	# Process test directives.
+ 
+ 	set generate_final_code ""
+ 	set use_final_code ""
+ 	set dg-do-what [list "run" "" P]
+ 	set extra_flags [profopt-get-options $src]
+ 	if { [lindex ${dg-do-what} 1 ] == "N" } {
+ 	    unsupported "$src"
+ 	    verbose "$src not supported on this target, skipping it" 3
+ 	    return
+ 	}
+ 
  	# Compile for profiling.
  
  	set options ""
! 	lappend options "additional_flags=$option $extra_flags $profile_option"
  	set optstr "$option $profile_option"
! 	set comp_output [${tool}_target_compile "$src" "$execname1" executable $options]
  	if ![${tool}_check_compile "$testcase compilation" $optstr $execname1 $comp_output] {
   	    unresolved "$testcase execution,   $optstr"
   	    unresolved "$testcase compilation, $option $feedback_option"
*************** proc profopt-execute { src } {
*** 177,210 ****
  
  	set result [${tool}_load $execname1 "" ""]
  	set status [lindex $result 0]
  	# Make sure the profile data was generated, and fail if not.
  	if { $status == "pass" } {
! 	    set basename [file tail $testcase]
! 	    set base [file rootname $basename]
! 	    set files [glob -nocomplain $base.$prof_ext]
! 	    if { $files == "" } {
! 		set status "fail"
! 		fail "$testcase execution: file $base.$prof_ext does not exist, $option $profile_option"
! 	    } else {
! 	        $status "$testcase execution,   $optstr"
  	    }
! 	} else {
  	    $status "$testcase execution,   $optstr"
  	}
  	# Quit for this round if it failed
  	if { $status != "pass" } {
   	    unresolved "$testcase compilation, $option $feedback_option"
   	    unresolved "$testcase execution,   $option $feedback_option"
  	    continue
  	}
- 	remote_file build delete $execname1
  
  	# Compile with feedback-directed optimizations.
  
  	set options ""
! 	lappend options "additional_flags=$option $feedback_option"
  	set optstr "$option $feedback_option"
! 	set comp_output [${tool}_target_compile "$src" "$execname2" "executable" $options];
  	if ![${tool}_check_compile "$testcase compilation" $optstr $execname2 $comp_output] {
   	    unresolved "$testcase execution,   $optstr"
  	    continue
--- 283,326 ----
  
  	set result [${tool}_load $execname1 "" ""]
  	set status [lindex $result 0]
+ 	set missing_file 0
  	# Make sure the profile data was generated, and fail if not.
  	if { $status == "pass" } {
! 	    foreach ext $prof_ext {
! 		remote_upload target $tmpdir/$base.$ext
! 		set files [glob -nocomplain $base.$ext]
! 		if { $files == "" } {
! 		    set status "fail"
! 		    set missing_file 1
! 		    fail "$testcase execution: file $base.$ext does not exist, $option $profile_option"
! 		}
  	    }
! 	}
!         if { $missing_file == 0 } {
  	    $status "$testcase execution,   $optstr"
  	}
+ 
+ 	# If there is dg-final code to execute for the generate step, do it
+ 	# even if it failed; it might clean up temporary files.
+ 	if ![string match $generate_final_code ""] {
+ 	    profopt-final-code "generate" $generate_final_code $testcase
+ 	}
+ 
+ 	remote_file build delete $execname1
+ 
  	# Quit for this round if it failed
  	if { $status != "pass" } {
   	    unresolved "$testcase compilation, $option $feedback_option"
   	    unresolved "$testcase execution,   $option $feedback_option"
  	    continue
  	}
  
  	# Compile with feedback-directed optimizations.
  
  	set options ""
! 	lappend options "additional_flags=$option $extra_flags $feedback_option"
  	set optstr "$option $feedback_option"
! 	set comp_output [${tool}_target_compile "$src" "$execname2" "executable" $options]
  	if ![${tool}_check_compile "$testcase compilation" $optstr $execname2 $comp_output] {
   	    unresolved "$testcase execution,   $optstr"
  	    continue
*************** proc profopt-execute { src } {
*** 215,226 ****
  	set result [${tool}_load "$execname2" "" ""]
  	set status [lindex $result 0]
  	$status "$testcase execution,   $optstr"
! 	if { $status != "pass" } {
! 	    continue
  	}
  
  	# Remove the profiling data files.
! 	profopt-cleanup $testcase $prof_ext
  
  	# If the test is not expected to produce performance data then
  	# we're done now.
--- 331,350 ----
  	set result [${tool}_load "$execname2" "" ""]
  	set status [lindex $result 0]
  	$status "$testcase execution,   $optstr"
! 
! 	# If there is dg-final code to execute for the use step, do it.
! 	if ![string match $use_final_code ""] {
! 	    profopt-final-code "use" $use_final_code $testcase
  	}
  
  	# Remove the profiling data files.
! 	foreach ext $prof_ext {
! 	    remote_file target delete $tmpdir/$base.$ext
! 	}
! 
! 	if { $status != "pass" } {
! 	    continue
! 	}
  
  	# If the test is not expected to produce performance data then
  	# we're done now.
*************** proc profopt-execute { src } {
*** 243,249 ****
  	set options ""
  	lappend options "additional_flags=$option"
  	set optstr "$option"
! 	set comp_output [${tool}_target_compile "$src" "$execname3" "executable" $options];
  	if ![${tool}_check_compile "$testcase compilation" $optstr $execname3 $comp_output] {
   	    unresolved "$testcase execution,   $optstr"
  	    unresolved "$testcase perf check,  $optstr"
--- 367,373 ----
  	set options ""
  	lappend options "additional_flags=$option"
  	set optstr "$option"
! 	set comp_output [${tool}_target_compile "$src" "$execname3" "executable" $options]
  	if ![${tool}_check_compile "$testcase compilation" $optstr $execname3 $comp_output] {
   	    unresolved "$testcase execution,   $optstr"
  	    unresolved "$testcase perf check,  $optstr"
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/prune.exp gcc-4.1.0/gcc/testsuite/lib/prune.exp
*** gcc-4.0.2/gcc/testsuite/lib/prune.exp	Fri Apr  9 22:24:29 2004
--- gcc-4.1.0/gcc/testsuite/lib/prune.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Prune messages from gcc that aren't useful.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Prune messages from gcc that aren't useful.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/scanasm.exp gcc-4.1.0/gcc/testsuite/lib/scanasm.exp
*** gcc-4.0.2/gcc/testsuite/lib/scanasm.exp	Tue May  3 19:27:52 2005
--- gcc-4.1.0/gcc/testsuite/lib/scanasm.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Various utilities for scanning assembler output, used by gcc-dg.exp and
  # g++-dg.exp.
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Various utilities for scanning assembler output, used by gcc-dg.exp and
  # g++-dg.exp.
*************** proc scan-not-hidden { args } {
*** 118,125 ****
      set output_file "[file rootname [file tail $testcase]].s"
  
      set symbol [lindex $args 0]
! 
!     set hidden_scan [hidden-scan-for $symbol]
  
      set args [lreplace $args 0 0 "$hidden_scan"]
  
--- 118,124 ----
      set output_file "[file rootname [file tail $testcase]].s"
  
      set symbol [lindex $args 0]
!     set hidden_scan [hidden-scan-for symbol]
  
      set args [lreplace $args 0 0 "$hidden_scan"]
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/scandump.exp gcc-4.1.0/gcc/testsuite/lib/scandump.exp
*** gcc-4.0.2/gcc/testsuite/lib/scandump.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/lib/scandump.exp	Tue Sep 13 23:27:25 2005
***************
*** 0 ****
--- 1,217 ----
+ #   Copyright (C) 2000, 2002, 2003, 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Various utilities for scanning dump output, used by gcc-dg.exp and
+ # g++-dg.exp.
+ #
+ # This is largely borrowed from scanasm.exp.
+ 
+ # Utility for scanning compiler result, invoked via dg-final.
+ # Call pass if pattern is present, otherwise fail.
+ #
+ # Argument 0 is the type of dump we are searching (rtl, tree, ipa)
+ # Argument 1 is the regexp to match.
+ # Argument 2 is the suffix for the dump file
+ # Argument 3 handles expected failures and the like
+ proc scan-dump { args } {
+ 
+     if { [llength $args] >= 4 } {
+         switch [dg-process-target [lindex $args 3]] {
+             "S" { }
+             "N" { return }
+             "F" { setup_xfail "*-*-*" }
+             "P" { }
+         }
+     }
+ 
+     # This assumes that we are three frames down from dg-test, and that
+     # it still stores the filename of the testcase in a local variable "name".
+     # A cleaner solution would require a new DejaGnu release.
+     upvar 3 name testcase
+ 
+     set src [file tail [lindex $testcase 0]]
+     set output_file "[glob $src.[lindex $args 2]]"
+ 
+     set fd [open $output_file r]
+     set text [read $fd]
+     close $fd
+ 
+     if [regexp -- [lindex $args 1] $text] {
+ 	pass "$testcase scan-[lindex $args 0]-dump [lindex $args 1]"
+     } else {
+ 	fail "$testcase scan-[lindex $args 0]-dump [lindex $args 1]"
+     }
+ }
+ 
+ # Call pass if pattern is present given number of times, otherwise fail.
+ # Argument 0 is the type of dump we are searching (rtl, tree, ipa)
+ # Argument 1 is the regexp to match.
+ # Argument 2 is number of times the regexp must be found
+ # Argument 3 is the suffix for the dump file
+ # Argument 4 handles expected failures and the like
+ proc scan-dump-times { args } {
+ 
+     if { [llength $args] >= 5 } {
+ 	switch [dg-process-target [lindex $args 4]] {
+ 	    "S" { }
+ 	    "N" { return }
+ 	    "F" { setup_xfail "*-*-*" }
+ 	    "P" { }
+ 	}
+     }
+ 
+     # This assumes that we are three frames down from dg-test, and that
+     # it still stores the filename of the testcase in a local variable "name".
+     # A cleaner solution would require a new DejaGnu release.
+     upvar 3 name testcase
+ 
+     set src [file tail [lindex $testcase 0]]
+     set output_file "[glob $src.[lindex $args 3]]"
+ 
+     set fd [open $output_file r]
+     set text [read $fd]
+     close $fd
+ 
+     if { [llength [regexp -inline -all -- [lindex $args 1] $text]] == [lindex $args 2]} {
+         pass "$testcase scan-[lindex $args 0]-dump-times [lindex $args 1] [lindex $args 2]"
+     } else {
+         fail "$testcase scan-[lindex $args 0]-dump-times [lindex $args 1] [lindex $args 2]"
+     }
+ }
+ 
+ # Call pass if pattern is not present, otherwise fail.
+ #
+ # Argument 0 is the type of dump we are searching (rtl, tree, ipa)
+ # Argument 1 is the regexp to match.
+ # Argument 2 is the suffix for the dump file
+ # Argument 3 handles expected failures and the like
+ proc scan-dump-not { args } {
+ 
+     if { [llength $args] >= 4 } {
+ 	switch [dg-process-target [lindex $args 3]] {
+ 	    "S" { }
+ 	    "N" { return }
+ 	    "F" { setup_xfail "*-*-*" }
+ 	    "P" { }
+ 	}
+     }
+ 
+     # This assumes that we are three frames down from dg-test, and that
+     # it still stores the filename of the testcase in a local variable "name".
+     # A cleaner solution would require a new DejaGnu release.
+     upvar 3 name testcase
+     set src [file tail [lindex $testcase 0]]
+     set output_file "[glob $src.[lindex $args 2]]"
+ 
+     set fd [open $output_file r]
+     set text [read $fd]
+     close $fd
+ 
+     if ![regexp -- [lindex $args 1] $text] {
+ 	pass "$testcase scan-[lindex $args 0]-dump-not [lindex $args 1]"
+     } else {
+ 	fail "$testcase scan-[lindex $args 0]-dump-not [lindex $args 1]"
+     }
+ }
+ 
+ # Utility for scanning demangled compiler result, invoked via dg-final.
+ # Call pass if pattern is present, otherwise fail.
+ #
+ # Argument 0 is the type of dump we are searching (rtl, tree, ipa)
+ # Argument 1 is the regexp to match.
+ # Argument 2 is the suffix for the dump file
+ # Argument 3 handles expected failures and the like
+ proc scan-dump-dem { args } {
+     global cxxfilt
+     global base_dir
+ 
+     if { [llength $args] >= 4 } {
+ 	switch [dg-process-target [lindex $args 3]] {
+ 	    "S" { }
+ 	    "N" { return }
+ 	    "F" { setup_xfail "*-*-*" }
+ 	    "P" { }
+ 	}
+     }
+ 
+     # Find c++filt like we find g++ in g++.exp.
+     if ![info exists cxxfilt]  {
+ 	set cxxfilt [findfile $base_dir/../../binutils/cxxfilt \
+ 		     $base_dir/../../binutils/cxxfilt \
+ 	             [findfile $base_dir/../c++filt $base_dir/../c++filt \
+ 		      [findfile $base_dir/c++filt $base_dir/c++filt \
+ 		       [transform c++filt]]]]
+ 	verbose -log "c++filt is $cxxfilt"
+     }
+ 
+     upvar 3 name testcase
+     set src [file tail [lindex $testcase 0]]
+     set output_file "[glob $src.[lindex $args 2]]"
+ 
+     set fd [open "| $cxxfilt < $output_file" r]
+     set text [read $fd]
+     close $fd
+ 
+     if [regexp -- [lindex $args 1] $text] {
+ 	pass "$testcase scan-[lindex $args 0]-dump-dem [lindex $args 1]"
+     } else {
+ 	fail "$testcase scan-[lindex $args 0]-dump-dem [lindex $args 1]"
+     }
+ }
+ 
+ # Call pass if demangled pattern is not present, otherwise fail.
+ #
+ # Argument 0 is the type of dump we are searching (rtl, tree, ipa)
+ # Argument 1 is the regexp to match.
+ # Argument 2 is the suffix for the dump file
+ # Argument 3 handles expected failures and the like
+ proc scan-dump-dem-not { args } {
+     global cxxfilt
+     global base_dir
+ 
+     if { [llength $args] >= 4 } {
+ 	switch [dg-process-target [lindex $args 3]] {
+ 	    "S" { }
+ 	    "N" { return }
+ 	    "F" { setup_xfail "*-*-*" }
+ 	    "P" { }
+ 	}
+     }
+ 
+     # Find c++filt like we find g++ in g++.exp.
+     if ![info exists cxxfilt]  {
+ 	set cxxfilt [findfile $base_dir/../../binutils/cxxfilt \
+ 		     $base_dir/../../binutils/cxxfilt \
+ 		     [findfile $base_dir/../c++filt $base_dir/../c++filt \
+ 		      [findfile $base_dir/c++filt $base_dir/c++filt \
+ 		       [transform c++filt]]]]
+ 	verbose -log "c++filt is $cxxfilt"
+     }
+ 
+     upvar 3 name testcase
+     set src [file tail [lindex $testcase 0]]
+     set output_file "[glob $src.[lindex $args 2]]"
+ 
+     set fd [open "| $cxxfilt < $output_file" r]
+     set text [read $fd]
+     close $fd
+ 
+     if ![regexp -- [lindex $args 1] $text] {
+ 	pass "$testcase scan-[lindex $args 0]-dump-dem-not [lindex $args 1]"
+     } else {
+ 	fail "$testcase scan-[lindex $args 0]-dump-dem-not [lindex $args 1]"
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/scanipa.exp gcc-4.1.0/gcc/testsuite/lib/scanipa.exp
*** gcc-4.0.2/gcc/testsuite/lib/scanipa.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/lib/scanipa.exp	Tue Sep 13 23:27:25 2005
***************
*** 0 ****
--- 1,141 ----
+ #   Copyright (C) 2000, 2002, 2003, 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
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Various utilities for scanning ipa dump output, used by gcc-dg.exp and
+ # g++-dg.exp.
+ 
+ load_lib scandump.exp
+ 
+ # Utility for scanning compiler result, invoked via dg-final.
+ # Call pass if pattern is present, otherwise fail.
+ #
+ # Argument 0 is the regexp to match
+ # Argument 1 is the name of the dumped ipa pass
+ # Argument 2 handles expected failures and the like
+ proc scan-ipa-dump { args } {
+ 
+     if { [llength $args] < 2 } {
+ 	error "scan-ipa-dump: too few arguments"
+ 	return
+     }
+     if { [llength $args] > 3 } {
+ 	error "scan-ipa-dump: too many arguments"
+ 	return
+     }
+     if { [llength $args] >= 3 } {
+ 	scan-dump "ipa" [lindex $args 0] "i\[0-9\]\[0-9\].[lindex $args 1]" [lindex $args 2]
+     } else {
+ 	scan-dump "ipa" [lindex $args 0] "i\[0-9\]\[0-9\].[lindex $args 1]"
+     }
+ }
+ 
+ # Call pass if pattern is present given number of times, otherwise fail.
+ # Argument 0 is the regexp to match
+ # Argument 1 is number of times the regexp must be found
+ # Argument 2 is the name of the dumped ipa pass
+ # Argument 3 handles expected failures and the like
+ proc scan-ipa-dump-times { args } {
+ 
+     if { [llength $args] < 3 } {
+ 	error "scan-ipa-dump: too few arguments"
+ 	return
+     }
+     if { [llength $args] > 4 } {
+ 	error "scan-ipa-dump: too many arguments"
+ 	return
+     }
+     if { [llength $args] >= 4 } {
+ 	scan-dump-times "ipa" [lindex $args 0] [lindex $args 1] \
+ 			"i\[0-9\]\[0-9\].[lindex $args 2]" [lindex $args 3]
+     } else {
+ 	scan-dump-times "ipa" [lindex $args 0] [lindex $args 1] \
+ 			"i\[0-9\]\[0-9\].[lindex $args 2]"
+     }
+ }
+ 
+ # Call pass if pattern is not present, otherwise fail.
+ #
+ # Argument 0 is the regexp to match
+ # Argument 1 is the name of the dumped ipa pass
+ # Argument 2 handles expected failures and the like
+ proc scan-ipa-dump-not { args } {
+ 
+     if { [llength $args] < 2 } {
+ 	error "scan-ipa-dump-not: too few arguments"
+ 	return
+     }
+     if { [llength $args] > 3 } {
+ 	error "scan-ipa-dump-not: too many arguments"
+ 	return
+     }
+     if { [llength $args] >= 3 } {
+ 	scan-dump-not "ipa" [lindex $args 0] \
+ 		      "i\[0-9\]\[0-9\].[lindex $args 1]" [lindex $args 2]
+     } else {
+ 	scan-dump-not "ipa" [lindex $args 0] \
+ 		      "i\[0-9\]\[0-9\].[lindex $args 1]"
+     }
+ }
+ 
+ # Utility for scanning demangled compiler result, invoked via dg-final.
+ # Call pass if pattern is present, otherwise fail.
+ #
+ # Argument 0 is the regexp to match
+ # Argument 1 is the name of the dumped ipa pass
+ # Argument 2 handles expected failures and the like
+ proc scan-ipa-dump-dem { args } {
+ 
+     if { [llength $args] < 2 } {
+ 	error "scan-ipa-dump-dem: too few arguments"
+ 	return
+     }
+     if { [llength $args] > 3 } {
+ 	error "scan-ipa-dump-dem: too many arguments"
+ 	return
+     }
+     if { [llength $args] >= 3 } {
+ 	scan-dump-dem "ipa" [lindex $args 0] \
+ 		      "i\[0-9\]\[0-9\].[lindex $args 1]" [lindex $args 2]
+     } else {
+ 	scan-dump-dem "ipa" [lindex $args 0] \
+ 		      "i\[0-9\]\[0-9\].[lindex $args 1]"
+     }
+ }
+ 
+ # Call pass if demangled pattern is not present, otherwise fail.
+ #
+ # Argument 0 is the regexp to match
+ # Argument 1 is the name of the dumped ipa pass
+ # Argument 2 handles expected failures and the like
+ proc scan-ipa-dump-dem-not { args } {
+ 
+     if { [llength $args] < 2 } {
+ 	error "scan-ipa-dump-dem-not: too few arguments"
+ 	return
+     }
+     if { [llength $args] > 3 } {
+ 	error "scan-ipa-dump-dem-not: too many arguments"
+ 	return
+     }
+     if { [llength $args] >= 3 } {
+ 	scan-dump-dem-not "ipa" [lindex $args 0] \
+ 			  "i\[0-9\]\[0-9\].[lindex $args 1]" \
+ 			  [lindex $args 2]
+     } else {
+ 	scan-dump-dem-not "ipa" [lindex $args 0] \
+ 			  "i\[0-9\]\[0-9\].[lindex $args 1]"
+     }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/scantree.exp gcc-4.1.0/gcc/testsuite/lib/scantree.exp
*** gcc-4.0.2/gcc/testsuite/lib/scantree.exp	Thu May 13 06:40:54 2004
--- gcc-4.1.0/gcc/testsuite/lib/scantree.exp	Tue Sep 13 23:27:25 2005
***************
*** 1,4 ****
! #   Copyright (C) 2000, 2002, 2003 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
--- 1,4 ----
! #   Copyright (C) 2000, 2002, 2003, 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
***************
*** 12,243 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Various utilities for scanning tree dump output, used by gcc-dg.exp and
  # g++-dg.exp.
! #
! # This is largely borrowed from scanasm.exp.
  
  # Utility for scanning compiler result, invoked via dg-final.
  # Call pass if pattern is present, otherwise fail.
  #
! # Argument 0 is the regexp to match.
! # Argument 1 is the suffix for the tree dump file
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump { args } {
      if { [llength $args] < 2 } {
  	error "scan-tree-dump: too few arguments"
!         return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	switch [dg-process-target [lindex $args 2]] {
! 	    "S" { }
! 	    "N" { return }
! 	    "F" { setup_xfail "*-*-*" }
! 	    "P" { }
! 	}
!     }
! 
!     # This assumes that we are two frames down from dg-test, and that
!     # it still stores the filename of the testcase in a local variable "name".
!     # A cleaner solution would require a new dejagnu release.
!     upvar 2 name testcase
! 
!     # This must match the rule in gcc-dg.exp.
!     set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
! 
!     set fd [open $output_file r]
!     set text [read $fd]
!     close $fd
! 
!     if [regexp -- [lindex $args 0] $text] {
! 	pass "$testcase scan-tree-dump [lindex $args 0]"
      } else {
! 	fail "$testcase scan-tree-dump [lindex $args 0]"
      }
  }
  
  # Call pass if pattern is present given number of times, otherwise fail.
! # Argument 0 is the regexp to match.
  # Argument 1 is number of times the regexp must be found
! # Argument 2 is the suffix for the tree dump file
  # Argument 3 handles expected failures and the like
  proc scan-tree-dump-times { args } {
      if { [llength $args] < 3 } {
  	error "scan-tree-dump: too few arguments"
!         return
      }
      if { [llength $args] > 4 } {
  	error "scan-tree-dump: too many arguments"
  	return
      }
      if { [llength $args] >= 4 } {
! 	switch [dg-process-target [lindex $args 3]] {
! 	    "S" { }
! 	    "N" { return }
! 	    "F" { setup_xfail "*-*-*" }
! 	    "P" { }
! 	}
!     }
! 
!     # This assumes that we are two frames down from dg-test, and that
!     # it still stores the filename of the testcase in a local variable "name".
!     # A cleaner solution would require a new dejagnu release.
!     upvar 2 name testcase
! 
!     # This must match the rule in gcc-dg.exp.
!     set output_file "[glob [file tail $testcase].t??.[lindex $args 2]]"
! 
!     set fd [open $output_file r]
!     set text [read $fd]
!     close $fd
! 
!     if { [llength [regexp -inline -all -- [lindex $args 0] $text]] == [lindex $args 1]} {
! 	pass "$testcase scan-tree-dump-times [lindex $args 0] [lindex $args 1]"
      } else {
! 	fail "$testcase scan-tree-dump-times [lindex $args 0] [lindex $args 1]"
      }
  }
  
  # Call pass if pattern is not present, otherwise fail.
  #
! # Argument 0 is the regexp to match.
! # Argument 1 is the suffix for the tree dump file
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump-not { args } {
      if { [llength $args] < 2 } {
  	error "scan-tree-dump-not: too few arguments"
!         return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump-not: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	switch [dg-process-target [lindex $args 2]] {
! 	    "S" { }
! 	    "N" { return }
! 	    "F" { setup_xfail "*-*-*" }
! 	    "P" { }
! 	}
!     }
! 
!     upvar 2 name testcase
!     set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
! 
!     set fd [open $output_file r]
!     set text [read $fd]
!     close $fd
! 
!     if ![regexp -- [lindex $args 0] $text] {
! 	pass "$testcase scan-tree-dump-not [lindex $args 0]"
      } else {
! 	fail "$testcase scan-tree-dump-not [lindex $args 0]"
      }
  }
  
  # Utility for scanning demangled compiler result, invoked via dg-final.
  # Call pass if pattern is present, otherwise fail.
  #
! # Argument 0 is the regexp to match.
! # Argument 1 is the suffix for the tree dump file
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump-dem { args } {
-     global cxxfilt
-     global base_dir
  
      if { [llength $args] < 2 } {
  	error "scan-tree-dump-dem: too few arguments"
!         return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump-dem: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	switch [dg-process-target [lindex $args 2]] {
! 	    "S" { }
! 	    "N" { return }
! 	    "F" { setup_xfail "*-*-*" }
! 	    "P" { }
! 	}
!     }
! 
!     # Find c++filt like we find g++ in g++.exp.
!     if ![info exists cxxfilt]  {
! 	set cxxfilt [findfile $base_dir/../../binutils/cxxfilt \
! 		     $base_dir/../../binutils/cxxfilt \
! 	             [findfile $base_dir/../c++filt $base_dir/../c++filt \
! 		      [findfile $base_dir/c++filt $base_dir/c++filt \
! 		       [transform c++filt]]]]
! 	verbose -log "c++filt is $cxxfilt"
!     }
! 
!     upvar 2 name testcase
!     set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
! 
!     set fd [open "| $cxxfilt < $output_file" r]
!     set text [read $fd]
!     close $fd
! 
!     if [regexp -- [lindex $args 0] $text] {
! 	pass "$testcase scan-tree-dump-dem [lindex $args 0]"
      } else {
! 	fail "$testcase scan-tree-dump-dem [lindex $args 0]"
      }
  }
  
  # Call pass if demangled pattern is not present, otherwise fail.
  #
! # Argument 0 is the regexp to match.
! # Argument 1 is the suffix for the tree dump file
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump-dem-not { args } {
-     global cxxfilt
-     global base_dir
  
      if { [llength $args] < 2 } {
  	error "scan-tree-dump-dem-not: too few arguments"
!         return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump-dem-not: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	switch [dg-process-target [lindex $args 2]] {
! 	    "S" { }
! 	    "N" { return }
! 	    "F" { setup_xfail "*-*-*" }
! 	    "P" { }
! 	}
!     }
! 
!     # Find c++filt like we find g++ in g++.exp.
!     if ![info exists cxxfilt]  {
! 	set cxxfilt [findfile $base_dir/../../binutils/cxxfilt \
! 		     $base_dir/../../binutils/cxxfilt \
! 		     [findfile $base_dir/../c++filt $base_dir/../c++filt \
! 		      [findfile $base_dir/c++filt $base_dir/c++filt \
! 		       [transform c++filt]]]]
! 	verbose -log "c++filt is $cxxfilt"
!     }
! 
!     upvar 2 name testcase
!     set output_file "[glob [file tail $testcase].t??.[lindex $args 1]]"
! 
!     set fd [open "| $cxxfilt < $output_file" r]
!     set text [read $fd]
!     close $fd
! 
!     if ![regexp -- [lindex $args 0] $text] {
! 	pass "$testcase scan-tree-dump-dem-not [lindex $args 0]"
      } else {
! 	fail "$testcase scan-tree-dump-dem-not [lindex $args 0]"
      }
  }
--- 12,141 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Various utilities for scanning tree dump output, used by gcc-dg.exp and
  # g++-dg.exp.
! 
! load_lib scandump.exp
  
  # Utility for scanning compiler result, invoked via dg-final.
  # Call pass if pattern is present, otherwise fail.
  #
! # Argument 0 is the regexp to match
! # Argument 1 is the name of the dumped tree pass
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump { args } {
+ 
      if { [llength $args] < 2 } {
  	error "scan-tree-dump: too few arguments"
! 	return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	scan-dump "tree" [lindex $args 0] "t\[0-9\]\[0-9\].[lindex $args 1]" [lindex $args 2]
      } else {
! 	scan-dump "tree" [lindex $args 0] "t\[0-9\]\[0-9\].[lindex $args 1]"
      }
  }
  
  # Call pass if pattern is present given number of times, otherwise fail.
! # Argument 0 is the regexp to match
  # Argument 1 is number of times the regexp must be found
! # Argument 2 is the name of the dumped tree pass
  # Argument 3 handles expected failures and the like
  proc scan-tree-dump-times { args } {
+ 
      if { [llength $args] < 3 } {
  	error "scan-tree-dump: too few arguments"
! 	return
      }
      if { [llength $args] > 4 } {
  	error "scan-tree-dump: too many arguments"
  	return
      }
      if { [llength $args] >= 4 } {
! 	scan-dump-times "tree" [lindex $args 0] [lindex $args 1] \
! 			"t\[0-9\]\[0-9\].[lindex $args 2]" [lindex $args 3]
      } else {
! 	scan-dump-times "tree" [lindex $args 0] [lindex $args 1] \
! 			"t\[0-9\]\[0-9\].[lindex $args 2]"
      }
  }
  
  # Call pass if pattern is not present, otherwise fail.
  #
! # Argument 0 is the regexp to match
! # Argument 1 is the name of the dumped tree pass
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump-not { args } {
+ 
      if { [llength $args] < 2 } {
  	error "scan-tree-dump-not: too few arguments"
! 	return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump-not: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	scan-dump-not "tree" [lindex $args 0] \
! 		      "t\[0-9\]\[0-9\].[lindex $args 1]" [lindex $args 2]
      } else {
! 	scan-dump-not "tree" [lindex $args 0] \
! 		      "t\[0-9\]\[0-9\].[lindex $args 1]"
      }
  }
  
  # Utility for scanning demangled compiler result, invoked via dg-final.
  # Call pass if pattern is present, otherwise fail.
  #
! # Argument 0 is the regexp to match
! # Argument 1 is the name of the dumped tree pass
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump-dem { args } {
  
      if { [llength $args] < 2 } {
  	error "scan-tree-dump-dem: too few arguments"
! 	return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump-dem: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	scan-dump-dem "tree" [lindex $args 0] \
! 		      "t\[0-9\]\[0-9\].[lindex $args 1]" [lindex $args 2]
      } else {
! 	scan-dump-dem "tree" [lindex $args 0] \
! 		      "t\[0-9\]\[0-9\].[lindex $args 1]"
      }
  }
  
  # Call pass if demangled pattern is not present, otherwise fail.
  #
! # Argument 0 is the regexp to match
! # Argument 1 is the name of the dumped tree pass
  # Argument 2 handles expected failures and the like
  proc scan-tree-dump-dem-not { args } {
  
      if { [llength $args] < 2 } {
  	error "scan-tree-dump-dem-not: too few arguments"
! 	return
      }
      if { [llength $args] > 3 } {
  	error "scan-tree-dump-dem-not: too many arguments"
  	return
      }
      if { [llength $args] >= 3 } {
! 	scan-dump-dem-not "tree" [lindex $args 0] \
! 			  "t\[0-9\]\[0-9\].[lindex $args 1]" \
! 			  [lindex $args 2]
      } else {
! 	scan-dump-dem-not "tree" [lindex $args 0] \
! 			  "t\[0-9\]\[0-9\].[lindex $args 1]"
      }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/target-libpath.exp gcc-4.1.0/gcc/testsuite/lib/target-libpath.exp
*** gcc-4.0.2/gcc/testsuite/lib/target-libpath.exp	Sat Nov 27 05:19:33 2004
--- gcc-4.1.0/gcc/testsuite/lib/target-libpath.exp	Fri Nov 11 22:31:35 2005
***************
*** 1,18 ****
! # Copyright (C) 2004 Free Software Foundation, Inc.
  
  # This program is free software; you can redistribute it and/or modify
  # it under the terms of the GNU General Public License as published by
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! # 
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was contributed by John David Anglin (dave.anglin@nrc-cnrc.gc.ca)
  
--- 1,18 ----
! # 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
  # the Free Software Foundation; either version 2 of the License, or
  # (at your option) any later version.
! #
  # This program is distributed in the hope that it will be useful,
  # but WITHOUT ANY WARRANTY; without even the implied warranty of
  # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  # GNU General Public License for more details.
! #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was contributed by John David Anglin (dave.anglin@nrc-cnrc.gc.ca)
  
*************** proc set_ld_library_path_env_vars { } {
*** 57,63 ****
    }
  
    if { $orig_environment_saved == 0 } {
!     global env;
  
      set orig_environment_saved 1
  
--- 57,63 ----
    }
  
    if { $orig_environment_saved == 0 } {
!     global env
  
      set orig_environment_saved 1
  
*************** proc restore_ld_library_path_env_vars { 
*** 235,237 ****
--- 235,257 ----
      unsetenv DYLD_LIBRARY_PATH
    }
  }
+ 
+ #######################################
+ # proc get_shlib_extension { }
+ #######################################
+ 
+ proc get_shlib_extension { } {
+     global shlib_ext
+ 
+     if { [ istarget *-*-darwin* ] } {
+ 	set shlib_ext "dylib"
+     } elseif { [ istarget *-*-cygwin* ] || [ istarget *-*-mingw* ] } {
+ 	set shlib_ext "dll"
+     } elseif { [ istarget hppa*-*-hpux* ] } {
+ 	set shlib_ext "sl"
+     } else {
+ 	set shlib_ext "so"
+     }
+     return $shlib_ext
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/target-supports-dg.exp gcc-4.1.0/gcc/testsuite/lib/target-supports-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/target-supports-dg.exp	Fri May  6 17:42:49 2005
--- gcc-4.1.0/gcc/testsuite/lib/target-supports-dg.exp	Mon Dec  5 22:51:40 2005
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # If this target does not support weak symbols, skip this test.
  
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # If this target does not support weak symbols, skip this test.
  
*************** proc check_test_flags { args } {
*** 183,189 ****
  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,
--- 183,189 ----
  proc dg-skip-if { args } {
      set args [lreplace $args 0 0]
  
!     set selector [list target [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,
*************** proc dg-xfail-if { args } {
*** 223,229 ****
      }
  
      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 "*-*-*"]
--- 223,229 ----
      }
  
      set args [lreplace $args 0 0]
!     set selector [list target [lindex $args 1]]
      if { [dg-process-target $selector] == "S" } {
  	global compiler_conditional_xfail_data
  	set compiler_conditional_xfail_data [lreplace $args 1 1 "*-*-*"]
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/target-supports.exp gcc-4.1.0/gcc/testsuite/lib/target-supports.exp
*** gcc-4.0.2/gcc/testsuite/lib/target-supports.exp	Mon May 16 00:55:20 2005
--- gcc-4.1.0/gcc/testsuite/lib/target-supports.exp	Mon Jan 30 17:08:10 2006
***************
*** 12,18 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # Please email any bugs, comments, and/or additions to this file to:
  # gcc-patches@gcc.gnu.org
--- 12,18 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # Please email any bugs, comments, and/or additions to this file to:
  # gcc-patches@gcc.gnu.org
***************
*** 24,32 ****
  # BASENAME is a basename to use for temporary files.
  # TYPE is the type of compilation to perform (see target_compile).
  # CONTENTS gives the contents of the input file.
! proc get_compiler_messages {basename type contents} {
      global tool
  
      set src ${basename}[pid].c
      switch $type {
  	assembly { set output ${basename}[pid].s }
--- 24,40 ----
  # BASENAME is a basename to use for temporary files.
  # TYPE is the type of compilation to perform (see target_compile).
  # CONTENTS gives the contents of the input file.
! # The rest is optional:
! # OPTIONS: additional compiler options to use.
! proc get_compiler_messages {basename type contents args} {
      global tool
  
+     if { [llength $args] > 0 } {
+ 	set options "additional_flags=[lindex $args 0]"
+     } else {
+ 	set options ""
+     }
+ 
      set src ${basename}[pid].c
      switch $type {
  	assembly { set output ${basename}[pid].s }
*************** proc get_compiler_messages {basename typ
*** 35,41 ****
      set f [open $src "w"]
      puts $f $contents
      close $f
!     set lines [${tool}_target_compile $src $output $type ""]
      file delete $src
      remote_file build delete $output
  
--- 43,49 ----
      set f [open $src "w"]
      puts $f $contents
      close $f
!     set lines [${tool}_target_compile $src $output $type "$options"]
      file delete $src
      remote_file build delete $output
  
*************** proc check_visibility_available { what_k
*** 123,129 ****
      global target_triplet
  
      # On NetWare, support makes no sense.
!     if { [string match "*-*-netware*" $target_triplet] } {
          return 0
      }
  
--- 131,137 ----
      global target_triplet
  
      # On NetWare, support makes no sense.
!     if { [istarget *-*-netware*] } {
          return 0
      }
  
*************** proc check_profiling_available { test_wh
*** 271,276 ****
--- 279,289 ----
  	return 0
      }
  
+     # At present, there is no profiling support on NetWare.
+     if { [istarget *-*-netware*] } {
+ 	return 0
+     }
+ 
      # Now examine the cache variable.
      if {![info exists profiling_available_saved]} {
  	# Some targets don't have any implementation of __bb_init_func or are
*************** proc check_profiling_available { test_wh
*** 285,290 ****
--- 298,304 ----
  	     || [istarget cris-*-*]
  	     || [istarget h8300-*-*]
  	     || [istarget mips*-*-elf]
+ 	     || [istarget xtensa-*-elf]
  	     || [istarget *-*-windiss] } {
  	    set profiling_available_saved 0
  	} else {
*************** proc check_profiling_available { test_wh
*** 295,301 ****
      return $profiling_available_saved
  }
  
! # Return true if iconv is supported on the target. In particular IBM-1047.
  
  proc check_iconv_available { test_what } {
      global tool
--- 309,557 ----
      return $profiling_available_saved
  }
  
! # Return 1 if target has packed layout of structure members by
! # default, 0 otherwise.  Note that this is slightly different than
! # whether the target has "natural alignment": both attributes may be
! # false.
! 
! proc check_effective_target_default_packed { } {
!     global et_default_packed_saved
!     global et_default_packed_target_name
! 
!     if { ![info exists et_default_packed_target_name] } {
! 	set et_default_packed_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_default_packed_target_name } {
! 	verbose "check_effective_target_default_packed: `$et_default_packed_target_name'" 2
! 	set et_default_packed_target_name $current_target
! 	if [info exists et_default_packed_saved] {
! 	    verbose "check_effective_target_default_packed: removing cached result" 2
! 	    unset et_default_packed_saved
! 	}
!     }
! 
!     if [info exists et_default_packed_saved] {
! 	verbose "check_effective_target_default_packed: using cached result" 2
!     } else {
! 	verbose "check_effective_target_default_packed: compiling source" 2
! 
! 	set et_default_packed_saved \
! 	    [string match "" [get_compiler_messages default_packed assembly {
! 	    struct x { char a; long b; } c;
! 	    int s[sizeof (c) == sizeof (char) + sizeof (long) ? 1 : -1];
! 	} ]]
! 
!     }
!     verbose "check_effective_target_default_packed: returning $et_default_packed_saved" 2
!     return $et_default_packed_saved
! }
! 
! # Return 1 if target has PCC_BITFIELD_TYPE_MATTERS defined.  See
! # documentation, where the test also comes from.
! 
! proc check_effective_target_pcc_bitfield_type_matters { } {
!     global et_pcc_bitfield_type_matters_saved
!     global et_pcc_bitfield_type_matters_target_name
! 
!     if { ![info exists et_pcc_bitfield_type_matters_target_name] } {
! 	set et_pcc_bitfield_type_matters_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_pcc_bitfield_type_matters_target_name } {
! 	verbose "check_effective_target_pcc_bitfield_type_matters: `$et_pcc_bitfield_type_matters_target_name'" 2
! 	set et_pcc_bitfield_type_matters_target_name $current_target
! 	if [info exists et_pcc_bitfield_type_matters_saved] {
! 	    verbose "check_effective_target_pcc_bitfield_type_matters: removing cached result" 2
! 	    unset et_pcc_bitfield_type_matters_saved
! 	}
!     }
! 
!     if [info exists et_pcc_bitfield_type_matters_saved] {
! 	verbose "check_effective_target_pcc_bitfield_type_matters: using cached result" 2
!     } else {
! 	verbose "check_effective_target_pcc_bitfield_type_matters: compiling source" 2
! 
! 	# PCC_BITFIELD_TYPE_MATTERS isn't just about unnamed or empty
! 	# bitfields, but let's stick to the example code from the docs.
! 	set et_pcc_bitfield_type_matters_saved \
! 	    [string match "" [get_compiler_messages pcc_bitfield_type_matters assembly {
! 	    struct foo1 { char x; char :0; char y; };
! 	    struct foo2 { char x; int :0; char y; };
! 	    int s[sizeof (struct foo1) != sizeof (struct foo2) ? 1 : -1];
! 	} ]]
!     }
!     verbose "check_effective_target_pcc_bitfield_type_matters: returning $et_pcc_bitfield_type_matters_saved" 2
!     return $et_pcc_bitfield_type_matters_saved
! }
! 
! # Return 1 if thread local storage (TLS) is supported, 0 otherwise.
! #
! # This won't change for different subtargets so cache the result.
! 
! proc check_effective_target_tls {} {
!     global et_tls_saved
! 
!     if [info exists et_tls_saved] {
! 	verbose "check_effective_target_tls: using cached result" 2
!     } else {
! 	set et_tls_saved 1
! 
! 	set src tls[pid].c
! 	set asm tls[pid].S
! 	verbose "check_effective_target_tls: compiling testfile $src" 2
! 	set f [open $src "w"]
! 	# Compile a small test program.
! 	puts $f "__thread int i;\n"
! 	close $f
! 
! 	# Test for thread-local data supported by the platform.
! 	set comp_output \
! 	    [target_compile $src $asm assembly ""]
! 	file delete $src
! 	if { [string match "*not supported*" $comp_output] } {
! 	    set et_tls_saved 0
! 	}
! 	remove-build-file $asm
!     }
!     verbose "check_effective_target_tls: returning $et_tls_saved" 2
!     return $et_tls_saved
! }
! 
! # Return 1 if TLS executables can run correctly, 0 otherwise.
! #
! # This won't change for different subtargets so cache the result.
! 
! proc check_effective_target_tls_runtime {} {
!     global et_tls_runtime_saved
! 
!     if [info exists et_tls_runtime_saved] {
! 	verbose "check_effective_target_tls_runtime: using cached result" 2
!     } else {
! 	set et_tls_runtime_saved 0
! 
! 	set src tls_runtime[pid].c
! 	set exe tls_runtime[pid].x
! 	verbose "check_effective_target_tls_runtime: compiling testfile $src" 2
! 	set f [open $src "w"]
! 	# Compile a small test program.
! 	puts $f "__thread int thr = 0;\n"
! 	puts $f "int main(void)\n {\n return thr;\n}"
! 	close $f
! 
! 	set comp_output \
! 	    [target_compile $src $exe executable ""]
! 	file delete $src
! 
! 	if [string match "" $comp_output] then {
! 	    # No error messages, everything is OK.
! 
! 	    set result [remote_load target "./$exe" "" ""]
! 	    set status [lindex $result 0]
! 	    remote_file build delete $exe
! 
! 	    verbose "check_effective_target_tls_runtime status is <$status>" 2
! 
! 	    if { $status == "pass" } {
! 		set et_tls_runtime_saved 1
! 	    }
! 
! 	    verbose "check_effective_target_tls_runtime: returning $et_tls_runtime_saved" 2
! 	}
!     }
! 
!     return $et_tls_runtime_saved
! }
! 
! # Return 1 if compilation with -freorder-blocks-and-partition is error-free
! # for trivial code, 0 otherwise.
! 
! proc check_effective_target_freorder {} {
!     global et_freorder_saved
!     global et_freorder_target_name
! 
!     if { ![info exists et_freorder_target_name] } {
! 	set et_freorder_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_freorder_target_name } {
! 	verbose "check_effective_target_freorder: `$et_freorder_target_name'" 2
! 	set et_freorder_target_name $current_target
! 	if [info exists et_freorder_saved] {
! 	    verbose "check_effective_target_freorder: removing cached result" 2
! 	    unset et_freorder_saved
! 	}
!     }
! 
!     if [info exists et_freorder_saved] {
! 	verbose "check_effective_target_freorder: using cached result" 2
!     } else {
! 	verbose "check_effective_target_freorder: compiling source" 2
! 
! 	set et_freorder_saved [string match "" [get_compiler_messages freorder object {
! 	    void foo (void) { }
! 	} "-freorder-blocks-and-partition"]]
!     }
!     verbose "check_effective_target_freorder: returning $et_freorder_saved" 2
!     return $et_freorder_saved
! }
! 
! # Return 1 if -fpic and -fPIC are supported, as in no warnings or errors
! # emitted, 0 otherwise.  Whether a shared library can actually be built is
! # out of scope for this test.
! #
! # When the target name changes, replace the cached result.
! 
! proc check_effective_target_fpic { } {
!     global et_fpic_saved
!     global et_fpic_target_name
! 
!     if { ![info exists et_fpic_target_name] } {
! 	set et_fpic_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_fpic_target_name } {
! 	verbose "check_effective_target_fpic: `$et_fpic_target_name'" 2
! 	set et_fpic_target_name $current_target
! 	if [info exists et_fpic_saved] {
! 	    verbose "check_effective_target_fpic: removing cached result" 2
! 	    unset et_fpic_saved
! 	}
!     }
! 
!     if [info exists et_fpic_saved] {
! 	verbose "check_effective_target_fpic: using cached result" 2
!     } else {
! 	verbose "check_effective_target_fpic: compiling source" 2
! 
! 	# Note that M68K has a multilib that supports -fpic but not
! 	# -fPIC, so we need to check both.  We test with a program that
! 	# requires GOT references.
! 	set et_fpic_saved [string match "" [get_compiler_messages fpic object {
! 	    extern int foo (void); extern int bar;
! 	    int baz (void) { return foo () + bar; }
! 	} "-fpic"]]
! 
! 	if { $et_fpic_saved != 0 } {
! 	    set et_fpic_saved [string match "" [get_compiler_messages fpic object {
! 		extern int foo (void); extern int bar;
! 		int baz (void) { return foo () + bar; }
! 	    } "-fPIC"]]
! 	}
!     }
!     verbose "check_effective_target_fpic: returning $et_fpic_saved" 2
!     return $et_fpic_saved
! }
! 
! # Return true if iconv is supported on the target. In particular IBM1047.
  
  proc check_iconv_available { test_what } {
      global tool
*************** proc check_iconv_available { test_what }
*** 326,332 ****
  	# No error messages, everything is OK.
  
  	set result [${tool}_load "./$exe" "" ""]
! 	set status [lindex $result 0];
  	remote_file build delete $exe
  
  	verbose "check_iconv_available status is <$status>" 2
--- 582,588 ----
  	# No error messages, everything is OK.
  
  	set result [${tool}_load "./$exe" "" ""]
! 	set status [lindex $result 0]
  	remote_file build delete $exe
  
  	verbose "check_iconv_available status is <$status>" 2
*************** proc check_named_sections_available { } 
*** 352,357 ****
--- 608,780 ----
      return $answer
  }
  
+ # Return 1 if the target supports Fortran real kinds larger than real(8),
+ # 0 otherwise.
+ #
+ # When the target name changes, replace the cached result.
+ 
+ proc check_effective_target_fortran_large_real { } {
+     global et_fortran_large_real_saved
+     global et_fortran_large_real_target_name
+     global tool
+ 
+     if { ![info exists et_fortran_large_real_target_name] } {
+ 	set et_fortran_large_real_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_fortran_large_real_target_name } {
+ 	verbose "check_effective_target_fortran_large_real: `$et_fortran_large_real_target_name' `$current_target'" 2
+ 	set et_fortran_large_real_target_name $current_target
+ 	if [info exists et_fortran_large_real_saved] {
+ 	    verbose "check_effective_target_fortran_large_real: removing cached result" 2
+ 	    unset et_fortran_large_real_saved
+ 	}
+     }
+ 
+     if [info exists et_fortran_large_real_saved] {
+ 	verbose "check_effective_target_fortran_large_real returning saved $et_fortran_large_real_saved" 2
+     } else {
+ 	set et_fortran_large_real_saved 0
+ 
+ 	# Set up, compile, and execute a test program using large real
+ 	# kinds.  Include the current process ID in the file names to
+ 	# prevent conflicts with invocations for multiple testsuites.
+ 	set src real[pid].f90
+         set exe real[pid].x
+ 
+ 	set f [open $src "w"]
+ 	puts $f "integer,parameter :: k = &"
+         puts $f "  selected_real_kind (precision (0.0_8) + 1)"
+         puts $f "real(kind=k) :: x"
+         puts $f "x = cos (x);"
+ 	puts $f "end"
+ 	close $f
+ 
+ 	verbose "check_effective_target_fortran_large_real compiling testfile $src" 2
+ 	set lines [${tool}_target_compile $src $exe executable ""]
+ 	file delete $src
+ 
+ 	if [string match "" $lines] then {
+ 	    # No error message, compilation succeeded.
+   	    set et_fortran_large_real_saved 1
+ 	}
+     }
+ 
+     return $et_fortran_large_real_saved
+ }
+ 
+ # Return 1 if the target supports Fortran integer kinds larger than
+ # integer(8), 0 otherwise.
+ #
+ # When the target name changes, replace the cached result.
+ 
+ proc check_effective_target_fortran_large_int { } {
+     global et_fortran_large_int_saved
+     global et_fortran_large_int_target_name
+     global tool
+ 
+     if { ![info exists et_fortran_large_int_target_name] } {
+ 	set et_fortran_large_int_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_fortran_large_int_target_name } {
+ 	verbose "check_effective_target_fortran_large_int: `$et_fortran_large_int_target_name' `$current_target'" 2
+ 	set et_fortran_large_int_target_name $current_target
+ 	if [info exists et_fortran_large_int_saved] {
+ 	    verbose "check_effective_target_fortran_large_int: removing cached result" 2
+ 	    unset et_fortran_large_int_saved
+ 	}
+     }
+ 
+     if [info exists et_fortran_large_int_saved] {
+ 	verbose "check_effective_target_fortran_large_int returning saved $et_fortran_large_int_saved" 2
+     } else {
+ 	set et_fortran_large_int_saved 0
+ 
+ 	# Set up, compile, and execute a test program using large integer
+ 	# kinds.  Include the current process ID in the file names to
+ 	# prevent conflicts with invocations for multiple testsuites.
+ 	set src int[pid].f90
+         set exe int[pid].x
+ 
+ 	set f [open $src "w"]
+ 	puts $f "integer,parameter :: k = &"
+         puts $f "  selected_int_kind (range (0_8) + 1)"
+         puts $f "integer(kind=k) :: i"
+ 	puts $f "end"
+ 	close $f
+ 
+ 	verbose "check_effective_target_fortran_large_int compiling testfile $src" 2
+ 	set lines [${tool}_target_compile $src $exe executable ""]
+ 	file delete $src
+ 
+ 	if [string match "" $lines] then {
+ 	    # No error message, compilation succeeded.
+ 	    set et_fortran_large_int_saved 1
+ 	}
+     }
+ 
+     return $et_fortran_large_int_saved
+ }
+ 
+ # Return 1 if we can statically link libgfortran, 0 otherwise.
+ #
+ # When the target name changes, replace the cached result.
+ 
+ proc check_effective_target_static_libgfortran { } {
+     global et_static_libgfortran
+     global et_static_libgfortran_target_name
+     global tool
+ 
+     if { ![info exists et_static_libgfortran_target_name] } {
+        set et_static_libgfortran_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_static_libgfortran_target_name } {
+        verbose "check_effective_target_static_libgfortran: `$et_static_libgfortran_target_name' `$current_target'" 2
+        set et_static_libgfortran_target_name $current_target
+        if [info exists et_static_libgfortran_saved] {
+            verbose "check_effective_target_static_libgfortran: removing cached result" 2
+            unset et_static_libgfortran_saved
+        }
+     }
+ 
+     if [info exists et_static_libgfortran_saved] {
+        verbose "check_effective_target_static_libgfortran returning saved $et_static_libgfortran_saved" 2
+     } else {
+        set et_static_libgfortran_saved 0
+ 
+        # Set up, compile, and execute a test program using static linking.
+        # Include the current process ID in the file names to prevent
+        # conflicts with invocations for multiple testsuites.
+        set opts "additional_flags=-static"
+        set src static[pid].f
+        set exe static[pid].x
+ 
+        set f [open $src "w"]
+        puts $f "      print *, 'test'"
+        puts $f "      end"
+        close $f
+ 
+        verbose "check_effective_target_static_libgfortran compiling testfile $src" 2
+        set lines [${tool}_target_compile $src $exe executable "$opts"]
+        file delete $src
+ 
+        if [string match "" $lines] then {
+            # No error message, compilation succeeded.
+            set et_static_libgfortran_saved 1
+        }
+     }
+ 
+     return $et_static_libgfortran_saved
+ }
+ 
  # Return 1 if the target supports executing AltiVec instructions, 0
  # otherwise.  Cache the result.
  
*************** proc check_vmx_hw_available { } {
*** 387,394 ****
  	puts $f "  return 0; }"
  	close $f
  
  	verbose "check_vmx_hw_available  compiling testfile $src" 2
! 	set lines [${tool}_target_compile $src $exe executable ""]
  	file delete $src
  
  	if [string match "" $lines] then {
--- 810,825 ----
  	puts $f "  return 0; }"
  	close $f
  
+ 	# Most targets don't require special flags for this test case, but
+ 	# Darwin does.
+ 	if [istarget *-*-darwin*] {
+ 	  set opts "additional_flags=-maltivec"
+ 	} else {
+ 	  set opts ""
+ 	}
+ 
  	verbose "check_vmx_hw_available  compiling testfile $src" 2
! 	set lines [${tool}_target_compile $src $exe executable "$opts"]
  	file delete $src
  
  	if [string match "" $lines] then {
*************** proc check_effective_target_lp64 { } {
*** 659,664 ****
--- 1090,1117 ----
      return $et_lp64_saved
  }
  
+ # Return 1 if the target needs a command line argument to enable a SIMD
+ # instruction set.
+ #
+ # This won't change for different subtargets so cache the result.
+ 
+ proc check_effective_target_vect_cmdline_needed { } {
+     global et_vect_cmdline_needed_saved
+ 
+     if [info exists et_vect_cmdline_needed_saved] {
+ 	verbose "check_effective_target_vect_cmdline_needed: using cached result" 2
+     } else {
+ 	set et_vect_cmdline_needed_saved 1
+ 	if { [istarget ia64-*-*]
+ 	      || [istarget x86_64-*-*] } {
+ 	   set et_vect_cmdline_needed_saved 0
+ 	}
+     }
+ 
+     verbose "check_effective_target_vect_cmdline_needed: returning $et_vect_cmdline_needed_saved" 2
+     return $et_vect_cmdline_needed_saved
+ }
+ 
  # Return 1 if the target supports hardware vectors of int, 0 otherwise.
  #
  # This won't change for different subtargets so cache the result.
*************** proc check_effective_target_vect_int { }
*** 684,689 ****
--- 1137,1200 ----
      return $et_vect_int_saved
  }
  
+ # Return 1 is this is an arm target using 32-bit instructions
+ proc check_effective_target_arm32 { } {
+     global et_arm32_saved
+     global et_arm32_target_name
+     global compiler_flags
+ 
+     if { ![info exists et_arm32_target_name] } {
+ 	set et_arm32_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_arm32_target_name } {
+ 	verbose "check_effective_target_arm32: `$et_arm32_target_name' `$current_target'" 2
+ 	set et_arm32_target_name $current_target
+ 	if { [info exists et_arm32_saved] } {
+ 	    verbose "check_effective_target_arm32: removing cached result" 2
+ 	    unset et_arm32_saved
+ 	}
+     }
+ 
+     if [info exists et_arm32_saved] {
+ 	verbose "check-effective_target_arm32: using cached result" 2
+     } else {
+ 	set et_arm32_saved 0
+ 	if { [istarget arm-*-*]
+ 	      || [istarget strongarm*-*-*]
+ 	      || [istarget xscale-*-*] } {
+ 	    if ![string match "*-mthumb *" $compiler_flags] {
+ 		set et_arm32_saved 1
+ 	    }
+ 	}
+     }
+     verbose "check_effective_target_arm32: returning $et_arm32_saved" 2
+     return $et_arm32_saved
+ }
+ 
+ # Return 1 if the target supports hardware vector shift operation.
+ 
+ proc check_effective_target_vect_shift { } {
+     global et_vect_shift_saved
+ 
+     if [info exists et_vect_shift_saved] {
+ 	verbose "check_effective_target_vect_shift: using cached result" 2
+     } else {
+ 	set et_vect_shift_saved 0
+ 	if { [istarget powerpc*-*-*]
+ 	     || [istarget ia64-*-*]
+ 	     || [istarget i?86-*-*]
+ 	     || [istarget x86_64-*-*] } {
+ 	   set et_vect_shift_saved 1
+ 	}
+     }
+ 
+     verbose "check_effective_target_vect_shift: returning $et_vect_shift_saved" 2
+     return $et_vect_shift_saved
+ }
+ 
  # Return 1 if the target supports hardware vectors of long, 0 otherwise.
  #
  # This can change for different subtargets so do not cache the result.
*************** proc check_effective_target_vect_double 
*** 748,773 ****
  }
  
  # Return 1 if the target plus current options does not support a vector
! # max instruction, 0 otherwise.
  #
  # This won't change for different subtargets so cache the result.
  
! proc check_effective_target_vect_no_max { } {
!     global et_vect_no_max_saved
  
!     if [info exists et_vect_no_max_saved] {
! 	verbose "check_effective_target_vect_no_max: using cached result" 2
      } else {
! 	set et_vect_no_max_saved 0
! 	if { [istarget i?86-*-*]
! 	     || [istarget x86_64-*-*]
! 	     || [istarget sparc*-*-*]
  	     || [istarget alpha*-*-*] } {
! 	    set et_vect_no_max_saved 1
  	}
      }
!     verbose "check_effective_target_vect_no_max: returning $et_vect_no_max_saved" 2
!     return $et_vect_no_max_saved
  }
  
  # Return 1 if the target plus current options does not support vector
--- 1259,1303 ----
  }
  
  # Return 1 if the target plus current options does not support a vector
! # max instruction on "int", 0 otherwise.
  #
  # This won't change for different subtargets so cache the result.
  
! proc check_effective_target_vect_no_int_max { } {
!     global et_vect_no_int_max_saved
  
!     if [info exists et_vect_no_int_max_saved] {
! 	verbose "check_effective_target_vect_no_int_max: using cached result" 2
      } else {
! 	set et_vect_no_int_max_saved 0
! 	if { [istarget sparc*-*-*]
  	     || [istarget alpha*-*-*] } {
! 	    set et_vect_no_int_max_saved 1
  	}
      }
!     verbose "check_effective_target_vect_no_int_max: returning $et_vect_no_int_max_saved" 2
!     return $et_vect_no_int_max_saved
! }
! 
! # Return 1 if the target plus current options does not support a vector
! # add instruction on "int", 0 otherwise.
! #
! # This won't change for different subtargets so cache the result.
! 
! proc check_effective_target_vect_no_int_add { } {
!     global et_vect_no_int_add_saved
! 
!     if [info exists et_vect_no_int_add_saved] {
! 	verbose "check_effective_target_vect_no_int_add: using cached result" 2
!     } else {
! 	set et_vect_no_int_add_saved 0
! 	# Alpha only supports vector add on V8QI and V4HI.
! 	if { [istarget alpha*-*-*] } {
! 	    set et_vect_no_int_add_saved 1
! 	}
!     }
!     verbose "check_effective_target_vect_no_int_add: returning $et_vect_no_int_add_saved" 2
!     return $et_vect_no_int_add_saved
  }
  
  # Return 1 if the target plus current options does not support vector
*************** proc check_effective_target_vect_no_alig
*** 809,814 ****
--- 1339,1435 ----
      return $et_vect_no_align_saved
  }
  
+ # Return 1 if the target supports vector conditional operations, 0 otherwise.
+ 
+ proc check_effective_target_vect_condition { } {
+     global et_vect_cond_saved
+ 
+     if [info exists et_vect_cond_saved] {
+ 	verbose "check_effective_target_vect_cond: using cached result" 2
+     } else {
+ 	set et_vect_cond_saved 0
+ 	if { [istarget powerpc*-*-*]
+ 	     || [istarget ia64-*-*]
+ 	     || [istarget i?86-*-*]
+ 	     || [istarget x86_64-*-*] } {
+ 	   set et_vect_cond_saved 1
+ 	}
+     }
+ 
+     verbose "check_effective_target_vect_cond: returning $et_vect_cond_saved" 2
+     return $et_vect_cond_saved
+ }
+ 
+ # Return 1 if the target supports vector int multiplication, 0 otherwise.
+ 
+ proc check_effective_target_vect_int_mult { } {
+     global et_vect_int_mult_saved
+ 
+     if [info exists et_vect_int_mult_saved] {
+ 	verbose "check_effective_target_vect_int_mult: using cached result" 2
+     } else {
+ 	set et_vect_int_mult_saved 0
+ 	if { [istarget powerpc*-*-*]
+ 	     || [istarget i?86-*-*]
+ 	     || [istarget x86_64-*-*] } {
+ 	   set et_vect_int_mult_saved 1
+ 	}
+     }
+ 
+     verbose "check_effective_target_vect_int_mult: returning $et_vect_int_mult_saved" 2
+     return $et_vect_int_mult_saved
+ }
+ 
+ # Return 1 if the target supports atomic operations on "int" and "long".
+ 
+ proc check_effective_target_sync_int_long { } {
+     global et_sync_int_long_saved
+ 
+     if [info exists et_sync_int_long_saved] {
+         verbose "check_effective_target_sync_int_long: using cached result" 2
+     } else {
+         set et_sync_int_long_saved 0
+ # This is intentionally powerpc but not rs6000, rs6000 doesn't have the
+ # load-reserved/store-conditional instructions.
+         if { [istarget ia64-*-*]
+ 	     || [istarget i?86-*-*]
+ 	     || [istarget x86_64-*-*]
+ 	     || [istarget alpha*-*-*] 
+ 	     || [istarget s390*-*-*] 
+ 	     || [istarget powerpc*-*-*] } {
+            set et_sync_int_long_saved 1
+         }
+     }
+ 
+     verbose "check_effective_target_sync_int_long: returning $et_sync_int_long_saved" 2
+     return $et_sync_int_long_saved
+ }
+ 
+ # Return 1 if the target supports atomic operations on "char" and "short".
+ 
+ proc check_effective_target_sync_char_short { } {
+     global et_sync_char_short_saved
+ 
+     if [info exists et_sync_char_short_saved] {
+         verbose "check_effective_target_sync_char_short: using cached result" 2
+     } else {
+         set et_sync_char_short_saved 0
+ # This is intentionally powerpc but not rs6000, rs6000 doesn't have the
+ # load-reserved/store-conditional instructions.
+         if { [istarget ia64-*-*]
+ 	     || [istarget i?86-*-*]
+ 	     || [istarget x86_64-*-*]
+ 	     || [istarget alpha*-*-*] 
+ 	     || [istarget s390*-*-*] 
+ 	     || [istarget powerpc*-*-*] } {
+            set et_sync_char_short_saved 1
+         }
+     }
+ 
+     verbose "check_effective_target_sync_char_short: returning $et_sync_char_short_saved" 2
+     return $et_sync_char_short_saved
+ }
+ 
  # Return 1 if the target matches the effective target 'arg', 0 otherwise.
  # This can be used with any check_* proc that takes no argument and
  # returns only 1 or 0.  It could be used with check_* procs that take
*************** proc is-effective-target-keyword { arg }
*** 845,847 ****
--- 1466,1507 ----
  	}
      }
  }
+ 
+ # Return 1 if target default to short enums
+ 
+ proc check_effective_target_short_enums { } {
+     global et_short_enums_saved
+     global et_short_enums_target_name
+ 
+     if { ![info exists et_short_enums_target_name] } {
+ 	set et_short_enums_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_short_enums_target_name } {
+ 	verbose "check_effective_target_short_enums: `$et_short_enums_target_name'" 2
+ 	set et_short_enums_target_name $current_target
+ 	if [info exists et_short_enums_saved] {
+ 	    verbose "check_effective_target_short_enums: removing cached result" 2
+ 	    unset et_short_enums_saved
+ 	}
+     }
+ 
+     if [info exists et_short_enums_saved] {
+ 	verbose "check_effective_target_short_enums: using cached result" 2
+     } else {
+ 	verbose "check_effective_target_short_enums: compiling source" 2
+ 
+ 	# PCC_BITFIELD_TYPE_MATTERS isn't just about unnamed or empty
+ 	# bitfields, but let's stick to the example code from the docs.
+ 	set et_short_enums_saved \
+ 	    [string match "" [get_compiler_messages short_enums assembly {
+ 	    enum foo { bar };
+ 	    int s[sizeof (enum foo) == 1 ? 1 : -1];
+ 	} ]]
+     }
+     verbose "check_effective_target_short_enums: returning $et_short_enums_saved" 2
+     return $et_short_enums_saved
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/treelang-dg.exp gcc-4.1.0/gcc/testsuite/lib/treelang-dg.exp
*** gcc-4.0.2/gcc/testsuite/lib/treelang-dg.exp	Tue Jan 20 01:57:57 2004
--- gcc-4.1.0/gcc/testsuite/lib/treelang-dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  load_lib gcc-dg.exp
  
--- 13,19 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  load_lib gcc-dg.exp
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/treelang.exp gcc-4.1.0/gcc/testsuite/lib/treelang.exp
*** gcc-4.0.2/gcc/testsuite/lib/treelang.exp	Tue May  3 19:27:52 2005
--- gcc-4.1.0/gcc/testsuite/lib/treelang.exp	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Currently maintained by James A. Morrison (ja2morri@uwaterloo.ca)
--- 13,19 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  
  # This file was written by Rob Savoye (rob@cygnus.com)
  # Currently maintained by James A. Morrison (ja2morri@uwaterloo.ca)
*************** load_lib target-libpath.exp
*** 47,68 ****
  proc default_treelang_version { } {
      global TREELANG_UNDER_TEST
  
!     treelang_init;
  
      # ignore any arguments after the command
      set compiler [lindex $TREELANG_UNDER_TEST 0]
  
      if ![is_remote host] {
! 	set compiler_name [which $compiler];
      } else {
! 	set compiler_name $compiler;
      }
  
      # verify that the compiler exists
      if { $compiler_name != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0];
! 	set output [lindex $tmp 1];
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    clone_output "$compiler_name $version\n"
--- 47,68 ----
  proc default_treelang_version { } {
      global TREELANG_UNDER_TEST
  
!     treelang_init
  
      # ignore any arguments after the command
      set compiler [lindex $TREELANG_UNDER_TEST 0]
  
      if ![is_remote host] {
! 	set compiler_name [which $compiler]
      } else {
! 	set compiler_name $compiler
      }
  
      # verify that the compiler exists
      if { $compiler_name != 0 } then {
  	set tmp [remote_exec host "$compiler -v"]
! 	set status [lindex $tmp 0]
! 	set output [lindex $tmp 1]
  	regexp " version \[^\n\r\]*" $output version
  	if { $status == 0 && [info exists version] } then {
  	    clone_output "$compiler_name $version\n"
*************** proc treelang_init { args } {
*** 102,108 ****
  
      if ![info exists TREELANG_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set TREELANG_UNDER_TEST $TOOL_EXECUTABLE;
  	} else {
  	    set TREELANG_UNDER_TEST [find_gcc]
  	}
--- 102,108 ----
  
      if ![info exists TREELANG_UNDER_TEST] then {
  	if [info exists TOOL_EXECUTABLE] {
! 	    set TREELANG_UNDER_TEST $TOOL_EXECUTABLE
  	} else {
  	    set TREELANG_UNDER_TEST [find_gcc]
  	}
*************** proc treelang_init { args } {
*** 119,127 ****
  }
  
  proc treelang_target_compile { source dest type options } {
!     global rootme;
!     global tmpdir;
!     global gluefile wrap_flags;
      global srcdir
      global TREELANG_UNDER_TEST
      global TOOL_OPTIONS
--- 119,127 ----
  }
  
  proc treelang_target_compile { source dest type options } {
!     global rootme
!     global tmpdir
!     global gluefile wrap_flags
      global srcdir
      global TREELANG_UNDER_TEST
      global TOOL_OPTIONS
*************** proc treelang_target_compile { source de
*** 139,145 ****
      # TOOL_OPTIONS must come first, so that it doesn't override testcase
      # specific options.
      if [info exists TOOL_OPTIONS] {
! 	set options [concat "additional_flags=$TOOL_OPTIONS" $options];
      }
  
      # If we have built libtreelang along with the compiler (which usually
--- 139,145 ----
      # TOOL_OPTIONS must come first, so that it doesn't override testcase
      # specific options.
      if [info exists TOOL_OPTIONS] {
! 	set options [concat "{additional_flags=$TOOL_OPTIONS}" $options]
      }
  
      # If we have built libtreelang along with the compiler (which usually
*************** proc treelang_fail { testcase cflags } {
*** 183,189 ****
  
  proc treelang_finish { } {
      # The testing harness apparently requires this.
!     global errorInfo;
  
      if [info exists errorInfo] then {
  	unset errorInfo
--- 183,189 ----
  
  proc treelang_finish { } {
      # The testing harness apparently requires this.
!     global errorInfo
  
      if [info exists errorInfo] then {
  	unset errorInfo
*************** proc treelang_finish { } {
*** 197,207 ****
  }
  
  proc treelang_exit { } {
!     global gluefile;
  
      if [info exists gluefile] {
! 	file_on_build delete $gluefile;
! 	unset gluefile;
      }
  }
      
--- 197,207 ----
  }
  
  proc treelang_exit { } {
!     global gluefile
  
      if [info exists gluefile] {
! 	file_on_build delete $gluefile
! 	unset gluefile
      }
  }
      
diff -Nrcpad gcc-4.0.2/gcc/testsuite/lib/wrapper.exp gcc-4.1.0/gcc/testsuite/lib/wrapper.exp
*** gcc-4.0.2/gcc/testsuite/lib/wrapper.exp	Mon Sep 13 21:20:12 2004
--- gcc-4.1.0/gcc/testsuite/lib/wrapper.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # This file contains GCC-specifics for status wrappers for test programs.
  
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # This file contains GCC-specifics for status wrappers for test programs.
  
*************** proc ${tool}_maybe_build_wrapper { filen
*** 30,42 ****
  	# that gcc objects on may change, so just make sure -w is always
  	# passed to turn off all warnings.
  	set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags -w"
! 	set result [build_wrapper $filename];
  	set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags"
  	if { $result != "" } {
! 	    set gluefile [lindex $result 0];
! 	    set wrap_flags [lindex $result 1];
! 	} else {
! 	    unset gluefile
  	}
      }
  }
--- 30,40 ----
  	# that gcc objects on may change, so just make sure -w is always
  	# passed to turn off all warnings.
  	set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags -w"
! 	set result [build_wrapper $filename]
  	set_currtarget_info wrap_compile_flags "$saved_wrap_compile_flags"
  	if { $result != "" } {
! 	    set gluefile [lindex $result 0]
! 	    set wrap_flags [lindex $result 1]
  	}
      }
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/basic.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/basic.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/basic.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/basic.mm	Thu May 26 02:00:19 2005
***************
*** 0 ****
--- 1,21 ----
+ // A basic sanity check for Objective-C++.
+ // { dg-do run }
+ 
+ #include <objc/Object.h>
+ #include <iostream>
+ 
+ @interface Greeter : Object
+ - (void) greet: (const char *)msg;
+ @end
+ 
+ @implementation Greeter
+ - (void) greet: (const char *)msg { std::cout << msg; }
+ @end
+ 
+ int
+ main ()
+ {
+   std::cout << "Hello from C++\n";
+   Greeter *obj = [Greeter new];
+   [obj greet: "Hello from Objective-C\n"];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-1.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,113 ----
+ /* Check if ObjC class layout follows the ABI (informally)
+    set in the past.  ObjC structs must be laid out as if
+    all ivars, including those inherited from superclasses,
+    were defined at once (i.e., any padding introduced for
+    superclasses should be removed).  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-Wpadded -Wabi" } */
+ /* { dg-do run } */
+ 
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ enum Enum { zero, one, two, three, four };
+ 
+ @interface Base: Object {
+ @public
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+ } /* { dg-warning "padding struct size to alignment boundary" } */
+ @end
+ 
+ struct Base_0 { /* { dg-warning "padding struct size to alignment boundary" } */
+   Class isa;
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+ };
+ 
+ @interface Derived: Base {
+ @public
+   signed e: 5;
+   unsigned f: 4;
+   enum Enum g: 3;
+ }
+ @end
+ 
+ struct Derived_0 {
+   Class isa;
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+   signed e: 5;
+   int f: 4;
+   enum Enum g: 3;
+ };
+ 
+ @interface Leaf: Derived {
+ @public
+   signed h: 2;
+ }
+ @end
+ 
+ struct Leaf_0 {
+   Class isa;
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+   signed e: 5;
+   unsigned f: 4;
+   enum Enum g: 3;
+   signed h: 2;
+ };
+   
+ /* Note that the semicolon after @defs(...) is optional.  */
+ 
+ typedef struct { @defs(Base) } Base_t; /* { dg-warning "padding struct size to alignment boundary" } */
+ typedef struct { @defs(Derived); } Derived_t;
+ typedef struct { @defs(Leaf); } Leaf_t;
+ 
+ int main(void)
+ {
+   struct Leaf_0 l_0;
+   Leaf *l = (Leaf *)&l_0;
+   Leaf_t *l_t = (Leaf_t *)&l_0;
+ 
+   CHECK_IF(sizeof(Base_t) == sizeof(Base));
+   CHECK_IF(sizeof(Derived_t) == sizeof(Derived));
+   CHECK_IF(sizeof(Leaf_t) == sizeof(Leaf));
+ 
+   CHECK_IF(sizeof(struct Base_0) == sizeof(Base));
+   CHECK_IF(sizeof(struct Derived_0) == sizeof(Derived));
+   CHECK_IF(sizeof(struct Leaf_0) == sizeof(Leaf));
+ 
+   l_0.isa = (Class)0;
+   l_0.a = 3;
+   l_0.b = 0;
+   l_0.c = three;
+   l_0.d = 31;
+   l_0.e = 0;
+   l_0.f = 15;
+   l_0.g = zero;
+   l_0.h = -2;
+ 
+   CHECK_IF(!l_t->isa);
+   CHECK_IF(l->a == 3 && l_t->a == 3);
+   CHECK_IF(!l->b && !l_t->b);
+   CHECK_IF(l->c == three && l_t->c == three);
+   CHECK_IF(l->d == 31 && l_t->d == 31);
+   CHECK_IF(!l->e && !l_t->e);
+   CHECK_IF(l->f == 15 && l_t->f == 15);
+   CHECK_IF(l->g == zero && l_t->g == zero);
+   CHECK_IF(l->h == -2 && l_t->h == -2);
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-2.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,78 ----
+ /* Check if bitfield ivars are inherited correctly (i.e., without
+    being "promoted" to ints).  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort();
+ 
+ @interface Base: Object 
+ {
+     int full;
+     int full2: 32;
+     int _refs: 8;
+     int field2: 3;
+     unsigned f3: 8;
+     short cc;
+     unsigned g: 16;
+     int r2: 8;
+     int r3: 8;
+     int r4: 2;
+     int r5: 8;
+     char c;
+ }
+ - (void)setValues;
+ @end
+ 
+ @interface Derived: Base
+ {
+     char d;
+     int _field3: 6;
+ }
+ - (void)checkValues;
+ @end
+ 
+ @implementation Base
+ -(void)setValues {
+   full = 1;
+   full2 = 2;
+   _refs = 3;
+   field2 = 1;
+   f3 = 6;
+   cc = 7;
+   g = 8;
+   r2 = 9;
+   r3 = 10;
+   r4 = 1;
+   r5 = 12;
+   c = 13;
+ }
+ @end
+ 
+ @implementation Derived
+ -(void)checkValues {
+   CHECK_IF(full == 1);
+   CHECK_IF(full2 == 2);
+   CHECK_IF(_refs == 3);
+   CHECK_IF(field2 == 1);
+   CHECK_IF(f3 == 6);
+   CHECK_IF(cc == 7);
+   CHECK_IF(g == 8);
+   CHECK_IF(r2 == 9);
+   CHECK_IF(r3 == 10);
+   CHECK_IF(r4 == 1);
+   CHECK_IF(r5 == 12);
+   CHECK_IF(c == 13);
+ }
+ @end
+ 
+ int main(void) {
+   Derived *obj = [[Derived alloc] init];
+ 
+   [obj setValues];
+   [obj checkValues];
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-3.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,55 ----
+ /* Check if bitfield ivars are correctly @encode'd when
+    the NeXT runtime is used.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-fnext-runtime -fsigned-char" } */
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ typedef struct objc_object { struct objc_class *class_pointer; } *id;
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort();
+ 
+ @interface Base 
+ {
+     struct objc_class *isa;
+     int full;
+     int full2: 32;
+     int _refs: 8;
+     int field2: 3;
+     unsigned f3: 8;
+     short cc;
+     unsigned g: 16;
+     int r2: 8;
+     int r3: 8;
+     int r4: 2;
+     int r5: 8;
+     char c;
+ }
+ @end
+ 
+ @interface Derived: Base
+ {
+     char d;
+     int _field3: 6;
+ }
+ @end
+ 
+ @implementation Base
+ @end
+ 
+ @implementation Derived
+ @end
+ 
+ int main(void) {
+   const char *s1r = "{Base=#ib32b8b3b8sb16b8b8b2b8c}";
+   const char *s1 = @encode(Base);
+   const char *s2r = "{Derived=#ib32b8b3b8sb16b8b8b2b8ccb6}";
+   const char *s2 = @encode(Derived);
+ 
+   CHECK_IF(!strcmp(s1r, s1));
+   CHECK_IF(!strcmp(s2r, s2));
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-4.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,50 ----
+ /* Check if the @defs() construct preserves the correct
+    layout of bitfields.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-lobjc -Wpadded" } */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ enum Enum { one, two, three, four };
+ 
+ @interface Base: Object {
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+ } /* { dg-warning "padding struct size to alignment boundary" } */
+ @end
+ 
+ @interface Derived: Base {
+   signed e: 5;
+   int f: 4;
+   enum Enum g: 3;
+ }
+ @end
+   
+ /* Note that the semicolon after @defs(...) is optional.  */
+ 
+ typedef struct { @defs(Base) } Base_t;  /* { dg-warning "padding struct size to alignment boundary" } */
+ typedef struct { @defs(Derived); } Derived_t;
+ 
+ int main(void)
+ {
+   CHECK_IF(sizeof(Base_t) == sizeof(Base));
+   CHECK_IF(sizeof(Derived_t) == sizeof(Derived));
+ 
+ #ifdef __NEXT_RUNTIME__
+   CHECK_IF(!strcmp(@encode(Base), "{Base=#b2b3b4b5}"));
+   CHECK_IF(!strcmp(@encode(Derived), "{Derived=#b2b3b4b5b5b4b3}"));
+ 
+   CHECK_IF(!strcmp(@encode(Base_t), "{?=#b2b3b4b5}"));
+   CHECK_IF(!strcmp(@encode(Derived_t), "{?=#b2b3b4b5b5b4b3}"));
+ #endif /* __NEXT_RUNTIME__ */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/bitfield-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/bitfield-5.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,29 ----
+ 
+ /* Make sure that bitfield types are printed correctly, and that ivar redeclaration
+   (@interface vs. @implementation) checks take the bitfield width into account.  */
+ /* Author: Ziemowit Laski   <zlaski@apple.com>  */
+ /* { dg-do compile } */
+ 
+ @interface Base {
+   int i;
+ }
+ @end
+ 
+ @interface WithBitfields: Base {
+   void *isa;
+   unsigned a: 3;
+   signed b: 4;
+   int c: 5;
+ }
+ @end
+ 
+ @implementation WithBitfields {
+   char *isa;  /* { dg-error "conflicting instance variable type .char \\*isa." } */
+   /* { dg-error "previous declaration of .void \\*isa." "" { target *-*-* } 13 } */
+   unsigned a: 5;  /* { dg-error "conflicting instance variable type .unsigned( int)? a: 5." } */
+   /* { dg-error "previous declaration of .unsigned( int)? a: 3." "" { target *-*-* } 14 } */                     
+   signed b: 4;  /* This one is fine. */
+   int c: 3;  /* { dg-error "conflicting instance variable type .int c: 3." } */
+   /* { dg-error "previous declaration of .int c: 5." "" { target *-*-* } 16 } */ 
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/class-protocol-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/class-protocol-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/class-protocol-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/class-protocol-1.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,442 ----
+ 
+ /* Check Class <protocol> types */
+ /* Author: David Ayers <d.ayers@inode.at> */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ #include <objc/objc-api.h>
+ 
+ @protocol MyProto1
+ +(void)doItClass1;
+ -(void)doItInstance1;
+ @end
+ 
+ @protocol MyProto2
+ +(void)doItClass2;
+ -(void)doItInstance2;
+ @end
+ 
+ @interface MyClass1 <MyProto1>
+ {
+   Class isa;
+ }
+ @end
+ @implementation MyClass1
+ +(void)doItClass1{}
+ -(void)doItInstance1{}
+ @end
+ 
+ @interface MyClass2 : MyClass1 <MyProto2>
+ @end
+ @implementation MyClass2
+ +(void)doItClass2{}
+ -(void)doItInstance2{}
+ @end
+ 
+ @interface MyClass3
+ {
+   Class isa;
+ }
+ @end
+ @interface MyClass4 : MyClass3 <MyProto1>
+ @end
+ 
+ /*----------------------------------------*/
+ 
+ Class cls = 0;
+ Class <MyProto1> clsP1 = 0;
+ Class <MyProto2> clsP2 = 0;
+ 
+ void
+ testSimple(void)
+ {
+   [cls doItClass1];
+   [cls doItInstance1];
+   [cls doItClass2];
+   [cls doItInstance2];
+ 
+   [clsP1 doItClass1];
+   [clsP1 doItInstance1]; /* { dg-warning "instead of" }  */
+   [clsP1 doItClass2];    /* { dg-warning "not found in protocol" } */
+   [clsP1 doItInstance2]; /* { dg-warning "not found in protocol" } */
+ 
+   [clsP2 doItClass1];    /* { dg-warning "not found in protocol" } */
+   [clsP2 doItInstance1]; /* { dg-warning "not found in protocol" } */
+   [clsP2 doItClass2];
+   [clsP2 doItInstance2]; /* { dg-warning "instead of" }  */
+ 
+   [MyClass1 doItClass1];
+   [MyClass1 doItInstance1];
+   [MyClass1 doItClass2];    /* { dg-warning "may not respond to" } */
+   [MyClass1 doItInstance2]; /* { dg-warning "may not respond to" } */
+ 
+   [MyClass2 doItClass1];
+   [MyClass2 doItInstance1];
+   [MyClass2 doItClass2];
+   [MyClass2 doItInstance2]; /* { dg-warning "may not respond to" } */
+ 
+   [MyClass3 doItClass1];    /* { dg-warning "may not respond to" } */
+   [MyClass3 doItInstance1]; /* { dg-warning "may not respond to" } */
+ 
+   [MyClass4 doItClass1];
+   [MyClass4 doItInstance1]; /* { dg-warning "may not respond to" } */
+ }
+ 
+ /*----------------------------------------*/
+ /* Protocols declared by categories */
+ 
+ @protocol MyProto3
+ +(void)doItClass3;
+ -(void)doItInstance3;
+ @end
+ @protocol MyProto4
+ +(void)doItClass4;
+ -(void)doItInstance4;
+ @end
+ 
+ @interface MyClass1 (Category1) <MyProto3>
+ @end
+ @interface MyClass2 (Category2) <MyProto4>
+ @end
+ 
+ void
+ testCategory(void)
+ {
+   [cls doItClass3];
+   [cls doItInstance3];
+   [cls doItClass4];
+   [cls doItInstance4];
+ 
+   [MyClass1 doItClass3];
+   [MyClass1 doItInstance3];
+   [MyClass1 doItClass4];    /* { dg-warning "may not respond" } */
+   [MyClass1 doItInstance4]; /* { dg-warning "may not respond" } */
+ 
+   [MyClass2 doItClass3];
+   [MyClass2 doItInstance3];
+   [MyClass2 doItClass4];
+   [MyClass2 doItInstance4]; /* { dg-warning "may not respond" } */
+ 
+ }
+ 
+ /*----------------------------------------*/
+ /* Inherited protocols declared by categories */
+ 
+ @protocol MyProto5 <MyProto1>
+ +(void)doItClass5;
+ -(void)doItInstance5;
+ @end
+ 
+ @protocol MyProto6 <MyProto2>
+ +(void)doItClass6;
+ -(void)doItInstance6;
+ @end
+ 
+ @interface MyClass1 (Category3) <MyProto5>
+ @end
+ @interface MyClass2 (Category4) <MyProto6>
+ @end
+ 
+ Class <MyProto5> clsP5 = 0;
+ Class <MyProto6> clsP6 = 0;
+ 
+ void
+ testCategoryInherited(void)
+ {
+   [cls doItClass5];
+   [cls doItInstance5];
+   [cls doItClass6];
+   [cls doItInstance6];
+ 
+   [clsP5 doItClass1];
+   [clsP5 doItInstance1]; /* { dg-warning "instead of" }  */
+   [clsP5 doItClass2];    /* { dg-warning "not found in protocol" } */
+   [clsP5 doItInstance2]; /* { dg-warning "not found in protocol" } */
+ 
+   [clsP6 doItClass1];    /* { dg-warning "not found in protocol" } */
+   [clsP6 doItInstance1]; /* { dg-warning "not found in protocol" } */
+   [clsP6 doItClass2];
+   [clsP6 doItInstance2]; /* { dg-warning "instead of" }  */
+ 
+ 
+   [MyClass1 doItClass5];
+   [MyClass1 doItInstance5];
+   [MyClass1 doItClass6];    /* { dg-warning "may not respond" } */
+   [MyClass1 doItInstance6]; /* { dg-warning "may not respond" } */
+ 
+   [MyClass2 doItClass5];
+   [MyClass2 doItInstance5];
+   [MyClass2 doItClass6];
+   [MyClass2 doItInstance6]; /* { dg-warning "may not respond" } */
+ 
+ }
+ 
+ /*----------------------------------------*/
+ /* Forward declared root protocols */
+ 
+ @protocol FwProto;
+ 
+ @interface MyClass1 (Forward) <FwProto>
+ @end
+ 
+ Class <FwProto> clsP7 = 0;
+ 
+ void
+ testForwardeDeclared1(void)
+ {
+   [cls doItClass7];         /* { dg-warning "no .\\+doItClass7. method found" } */
+   [cls doItInstance7];      /* { dg-warning "no .\\+doItInstance7. method found" } */
+ 
+   [clsP7 doItClass7];       /* { dg-warning "not found in protocol" } */
+   /* { dg-warning "no .\\+doItClass7. method found" "" { target *-*-* } 190 } */
+   [clsP7 doItInstance7];    /* { dg-warning "not found in protocol" } */
+   /* { dg-warning "no .\\+doItInstance7. method found" "" { target *-*-* } 192 } */
+ 
+   [MyClass1 doItClass7];    /* { dg-warning "may not respond" } */
+   [MyClass1 doItInstance7]; /* { dg-warning "may not respond" } */
+ 
+   [MyClass2 doItClass7];    /* { dg-warning "may not respond" } */
+   [MyClass2 doItInstance7]; /* { dg-warning "may not respond" } */
+ 
+ }
+ 
+ @protocol FwProto
+ +(void)doItClass7;
+ -(void)doItInstance7;
+ @end
+ 
+ void
+ testForwardeDeclared2(void)
+ {
+   [cls doItClass7];
+   [cls doItInstance7];
+ 
+   [clsP7 doItClass7];    
+   [clsP7 doItInstance7]; /* { dg-warning "instead of" }  */
+ 
+   [MyClass1 doItClass7];
+   [MyClass1 doItInstance7];
+ 
+   [MyClass2 doItClass7];
+   [MyClass2 doItInstance7];
+ }
+ 
+ /*----------------------------------------*/
+ /* Inherited non root protocols */
+ 
+ @protocol MyProto8
+ +(void)doItClass8;
+ -(void)doItInstance8;
+ @end
+ 
+ @protocol MyProto9 <MyProto8>
+ +(void)doItClass9;
+ -(void)doItInstance9;
+ @end
+ 
+ @interface MyClass1 (InheritedNonRoot) <MyProto9>
+ @end
+ 
+ Class <MyProto8> clsP8 = 0;
+ Class <MyProto9> clsP9 = 0;
+ 
+ void
+ testInheritedNonRoot(void)
+ {
+   [cls doItClass8];
+   [cls doItInstance8];
+   [cls doItClass9];
+   [cls doItInstance9];
+ 
+   [clsP8 doItClass8];
+   [clsP8 doItInstance8]; /* { dg-warning "instead of" }  */
+   [clsP8 doItClass9];    /* { dg-warning "not found in protocol" } */
+   [clsP8 doItInstance9]; /* { dg-warning "not found in protocol" } */
+ 
+   [clsP9 doItClass8];
+   [clsP9 doItInstance8]; /* { dg-warning "instead of" }  */
+   [clsP9 doItClass9];
+   [clsP9 doItInstance9]; /* { dg-warning "instead of" }  */
+ 
+   [MyClass1 doItClass8];
+   [MyClass1 doItInstance8];
+   [MyClass1 doItClass9];
+   [MyClass1 doItInstance9];
+ 
+   [MyClass2 doItClass8];
+   [MyClass2 doItInstance8];
+   [MyClass2 doItClass9];
+   [MyClass2 doItInstance9];
+   
+ }
+ 
+ /*----------------------------------------*/
+ /* Prototype mismatch  */
+ 
+ @protocol MyOtherProto1
+ +(id)doItClass1;
+ -(id)doItInstance1;
+ @end
+ @interface MyOtherClass1 <MyOtherProto1>
+ @end
+ 
+ Class <MyOtherProto1> oclsP1;
+ 
+ void
+ testPrototypeMismatch(void)
+ {
+   id tmp1 = [oclsP1 doItClass1];
+   id tmp2 = [oclsP1 doItInstance1]; /* { dg-warning "instead of" }  */
+ 
+   [clsP1 doItClass1];
+   [clsP1 doItInstance1]; /* { dg-warning "instead of" }  */
+ }
+ 
+ id obj = nil;
+ id <MyProto1> objP1 = nil;
+ id <MyProto2> objP2 = nil;
+ id <MyProto5> objP5 = nil;
+ int num = 0;
+ void *ptr = 0;
+ 
+ MyClass1 *mc1 = nil;
+ 
+ void
+ testComptypes(void)
+ {
+   { /* id <protocol>, id <protocol>  */
+     objP1 == objP2;  /* { dg-warning "lacks a cast" } */
+     objP2 == objP1;  /* { dg-warning "lacks a cast" } */
+ 
+     objP1 == objP5;
+     objP5 == objP1;
+   }
+   { /* id <protocol>, SomeClass *  */
+     mc1 == objP1;
+     objP1 == mc1;
+ 
+     mc1 == objP2; /* { dg-warning "lacks a cast" } */
+     objP2 == mc1; /* { dg-warning "lacks a cast" } */
+   }
+   { /* id <protocol>, id  */
+     obj == objP1;
+     objP1 == obj;
+   }
+   { /* id <protocol>, Class  */
+     cls == objP1; /* { dg-warning "lacks a cast" } */
+     objP1 == cls; /* { dg-warning "lacks a cast" } */
+   }
+   { /* id <protocol>, non-ObjC  */
+     num == objP1; /* { dg-warning "between pointer" } */
+     objP1 == num; /* { dg-warning "between pointer" } */
+ 
+     ptr == objP1;
+     objP1 == ptr;
+   }
+   { /* Class <protocol>, Class <protocol> */
+     clsP1 == clsP2; /* { dg-warning "lacks a cast" } */
+     clsP2 == clsP1; /* { dg-warning "lacks a cast" } */
+ 
+     clsP1 == clsP5;
+     clsP5 == clsP1;
+   }
+   { /* Class <protocol>, SomeClass * */
+     mc1 == clsP1; /* { dg-warning "lacks a cast" } */
+     clsP1 == mc1; /* { dg-warning "lacks a cast" } */
+   }
+   { /* Class <protocol>, id */
+     obj == clsP1;
+     clsP1 == obj;
+   }
+   { /* Class <protocol>, Class */
+     cls == clsP1;
+     clsP1 == cls;
+   }
+   { /* Class <protocol>, non-ObjC */
+     num == clsP1; /* { dg-warning "between pointer" } */
+     clsP1 == num; /* { dg-warning "between pointer" } */
+ 
+     ptr == clsP1;
+     clsP1 == ptr;
+   }
+   { /* Class <protocol>, id <protocol> */
+     clsP1 == objP1; /* { dg-warning "lacks a cast" } */
+     objP1 == clsP1; /* { dg-warning "lacks a cast" } */
+   }
+ 
+   { /* id <protocol>, id <protocol>  */
+     objP1 = objP2; /* { dg-warning "does not conform" } */
+     objP2 = objP1; /* { dg-warning "does not conform" } */
+ 
+     objP1 = objP5;
+     objP5 = objP1; /* { dg-warning "does not conform" } */
+   }
+   { /* id <protocol>, SomeClass *  */
+     mc1 = objP1;
+     objP1 = mc1;
+ 
+     mc1 = objP2; /* { dg-warning "does not conform" } */
+     objP2 = mc1; /* { dg-warning "does not implement" } */
+   }
+   { /* id <protocol>, id  */
+     obj = objP1;
+     objP1 = obj;
+   }
+   { /* id <protocol>, Class  */
+     cls = objP1; /* { dg-warning "distinct Objective\\-C type" } */
+     objP1 = cls; /* { dg-warning "distinct Objective\\-C type" } */
+   }
+   { /* id <protocol>, non-ObjC  */
+     num = objP1; /* { dg-error "invalid conversion" } */
+     objP1 = num; /* { dg-error "invalid conversion" } */
+ 
+     ptr = objP1;
+     objP1 = ptr; /* { dg-error "invalid conversion" } */
+   }
+   { /* Class <protocol>, Class <protocol> */
+     clsP1 = clsP2; /* { dg-warning "does not conform" } */
+     clsP2 = clsP1; /* { dg-warning "does not conform" } */
+ 
+     clsP1 = clsP5;
+     clsP5 = clsP1; /* { dg-warning "does not conform" } */
+   }
+   { /* Class <protocol>, SomeClass * */
+     /* These combinations should always elicit a warning.  */
+     mc1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
+     clsP1 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
+     
+     mc1 = clsP2; /* { dg-warning "distinct Objective\\-C type" } */
+     clsP2 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
+   }
+   { /* Class <protocol>, id */
+     obj = clsP1;
+     clsP1 = obj;
+   }
+   { /* Class <protocol>, Class */
+     cls = clsP1;
+     clsP1 = cls;
+   }
+   { /* Class <protocol>, non-ObjC */
+     num = clsP1; /* { dg-error "invalid conversion" } */
+     clsP1 = num; /* { dg-error "invalid conversion" } */
+ 
+     ptr = clsP1;
+     clsP1 = ptr; /* { dg-error "invalid conversion" } */
+   }
+   { /* Class <protocol>, id <protocol> */
+     clsP1 = objP1; /* { dg-warning "distinct Objective\\-C type" } */
+     objP1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
+   }
+ }
+ 
+ int main ()
+ {
+   testSimple();
+   testCategory();
+   testCategoryInherited();
+   return(0);
+ }
+ 
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,16 ----
+ /* { dg-do compile } */
+ 
+ @interface A
+ + new;
+ @end
+ 
+ @interface B : A
+ @end
+ 
+ int main(int argc, char **argv) {
+     B *b = [B new];
+     A *a = b;
+ 
+     return (b == a);
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-10.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-10.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-10.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-10.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,19 ----
+ /* Yet another mysterious gimplifier crasher.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O3" } */
+ 
+ @class NSString;
+ @protocol NSObject
+ @end
+ @interface NSObject <NSObject> {
+ }
+ @end
+ void __setRetained(id *ivar, id value) {
+     *ivar = value;
+ }
+ static NSString *_logProcessPrefix = 0;
+ @implementation NSObject (ScopeAdditions)
+ + (void)setObjectLogProcessPrefix:(NSString *)processPrefix {
+     __setRetained(&_logProcessPrefix, processPrefix);
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-11.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-11.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-11.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-11.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @protocol Foo
+ - (id)meth1;
+ - (id)meth2:(int)arg;
+ @end
+ 
+ @interface Derived1: Object
+ @end
+ 
+ @interface Derived2: Object
+ + (Derived1 *)new;
+ @end
+ 
+ id<Foo> func(void) {
+   Object *o = [Object new];
+   return o;  /* { dg-warning "class .Object. does not implement the .Foo. protocol" } */
+ }
+ 
+ @implementation Derived2
+ + (Derived1 *)new {
+   Derived2 *o = [super new];
+   return o;  /* { dg-warning "distinct Objective\\-C type in return" } */
+ }
+ @end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-12.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-12.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-12.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-12.mm	Thu May 26 21:24:29 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ #include <objc/Object.h>
+ 
+ @interface Derived: Object
+ @end
+ 
+ extern Object* foo(void);
+ static Derived *test(void)
+ {
+    Derived *m = foo();   /* { dg-warning "initialization from distinct Objective\\-C type" } */
+ 
+    return m;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-2.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,88 ----
+ /* Test various ObjC types assignments and comparisons.  */
+ /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @protocol MyProtocol
+ - (void) foo;
+ @end
+ 
+ @interface MyClass
+ @end
+ 
+ @interface MyOtherClass <MyProtocol>
+ - (void) foo;
+ @end
+ 
+ int main()
+ {
+   id obj = nil;
+   id<MyProtocol> obj_p = nil;
+   MyClass *obj_c = nil;
+   MyOtherClass *obj_cp = nil;
+   Class obj_C = Nil;
+ 
+   /* Assigning to an 'id' variable should never
+      generate a warning.  */
+   obj = obj_p;  /* Ok  */
+   obj = obj_c;  /* Ok  */
+   obj = obj_cp; /* Ok  */
+   obj = obj_C;  /* Ok  */
+   
+   /* Assigning to a 'MyClass *' variable should always generate a
+      warning, unless done from an 'id'.  */
+   obj_c = obj;    /* Ok */
+   obj_c = obj_p;  /* { dg-warning "distinct Objective\\-C type" } */
+   obj_c = obj_cp; /* { dg-warning "distinct Objective\\-C type" } */
+   obj_c = obj_C;  /* { dg-warning "distinct Objective\\-C type" } */
+ 
+   /* Assigning to an 'id<MyProtocol>' variable should generate a
+      warning if done from a 'MyClass *' (which doesn't implement
+      MyProtocol), but not from an 'id' or from a 'MyOtherClass *'
+      (which implements MyProtocol).  */
+   obj_p = obj;    /* Ok */
+   obj_p = obj_c;  /* { dg-warning "does not implement" } */
+   obj_p = obj_cp; /* Ok  */
+   obj_p = obj_C;  /* { dg-warning "distinct Objective\\-C type" } */
+ 
+   /* Assigning to a 'MyOtherClass *' variable should always generate
+      a warning, unless done from an 'id' or an 'id<MyProtocol>' (since
+      MyOtherClass implements MyProtocol).  */
+   obj_cp = obj;    /* Ok */
+   obj_cp = obj_c;  /* { dg-warning "distinct Objective\\-C type" } */
+   obj_cp = obj_p;  /* Ok */
+   obj_cp = obj_C;  /* { dg-warning "distinct Objective\\-C type" } */
+ 
+   /* Any comparison involving an 'id' must be without warnings.  */
+   if (obj == obj_p) ;  /* Ok  */ /*Bogus warning here in 2.95.4*/
+   if (obj_p == obj) ;  /* Ok  */
+   if (obj == obj_c) ;  /* Ok  */
+   if (obj_c == obj) ;  /* Ok  */
+   if (obj == obj_cp) ; /* Ok  */
+   if (obj_cp == obj) ; /* Ok  */
+   if (obj == obj_C) ;  /* Ok  */
+   if (obj_C == obj) ;  /* Ok  */
+ 
+   /* Any comparison between 'MyClass *' and anything which is not an 'id'
+      must generate a warning.  */
+   if (obj_c == obj_p) ; /* { dg-warning "lacks a cast" } */
+   if (obj_p == obj_c) ; /* { dg-warning "lacks a cast" } */
+   if (obj_c == obj_cp) ; /* { dg-warning "lacks a cast" } */
+   if (obj_cp == obj_c) ; /* { dg-warning "lacks a cast" } */
+   if (obj_c == obj_C) ;  /* { dg-warning "lacks a cast" } */
+   if (obj_C == obj_c) ;  /* { dg-warning "lacks a cast" } */
+ 
+   /* Any comparison between 'MyOtherClass *' (which implements
+      MyProtocol) and an 'id' implementing MyProtocol are Ok.  */
+   if (obj_cp == obj_p) ; /* Ok */
+   if (obj_p == obj_cp) ; /* Ok */
+ 
+ 
+   if (obj_p == obj_C) ; /* { dg-warning "lacks a cast" } */
+   if (obj_C == obj_p) ; /* { dg-warning "lacks a cast" } */
+   if (obj_cp == obj_C) ; /* { dg-warning "lacks a cast" } */
+   if (obj_C == obj_cp) ; /* { dg-warning "lacks a cast" } */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-3.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,38 ----
+ /* Test simple ObjC types casts.  */
+ /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @protocol MyProtocol
+ - (void) foo;
+ @end
+ 
+ @interface MyClass
+ @end
+ 
+ int main()
+ {
+   id obj = nil;
+   id<MyProtocol> obj_p = nil;
+   MyClass *obj_c = nil;
+   Class obj_C = Nil;
+ 
+   /* All these casts should generate no warnings.  */
+ 
+   obj = (id)obj_p;
+   obj = (id)obj_c;
+   obj = (id)obj_C;
+   obj_c = (MyClass *)obj;
+   obj_c = (MyClass *)obj_p;
+   obj_c = (MyClass *)obj_C;
+   obj_p = (id<MyProtocol>)obj;
+   obj_p = (id<MyProtocol>)obj_c;
+   obj_p = (id<MyProtocol>)obj_C;
+   obj_C = (Class)obj;
+   obj_C = (Class)obj_p;
+   obj_C = (Class)obj_c;
+   
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-4.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,64 ----
+ /* Test assignments and comparisons between protocols (obscure case).  */
+ /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @protocol MyProtocolA
+ - (void) methodA;
+ @end
+ 
+ @protocol MyProtocolB
+ - (void) methodB;
+ @end
+ 
+ @protocol MyProtocolAB <MyProtocolA, MyProtocolB>
+ @end
+ 
+ @protocol MyProtocolAC <MyProtocolA>
+ - (void) methodC;
+ @end
+ 
+ int main()
+ {
+   id<MyProtocolA> obj_a = nil;
+   id<MyProtocolB> obj_b = nil;
+   id<MyProtocolAB> obj_ab = nil;
+   id<MyProtocolAC> obj_ac = nil;
+ 
+   obj_a = obj_b;  /* { dg-warning "does not conform" } */
+   obj_a = obj_ab; /* Ok */
+   obj_a = obj_ac; /* Ok */
+   
+   obj_b = obj_a;  /* { dg-warning "does not conform" } */
+   obj_b = obj_ab; /* Ok */
+   obj_b = obj_ac; /* { dg-warning "does not conform" } */
+   
+   obj_ab = obj_a;  /* { dg-warning "does not conform" } */
+   obj_ab = obj_b;  /* { dg-warning "does not conform" } */
+   obj_ab = obj_ac; /* { dg-warning "does not conform" } */
+   
+   obj_ac = obj_a;  /* { dg-warning "does not conform" } */
+   obj_ac = obj_b;  /* { dg-warning "does not conform" } */
+   obj_ac = obj_ab; /* { dg-warning "does not conform" } */
+ 
+   if (obj_a == obj_b) ; /* { dg-warning "lacks a cast" } */
+   if (obj_b == obj_a) ; /* { dg-warning "lacks a cast" } */
+ 
+   if (obj_a == obj_ab) ; /* Ok */
+   if (obj_ab == obj_a) ; /* Ok */ /* Spurious 2.95.4 warning here */
+ 
+   if (obj_a == obj_ac) ; /* Ok */ 
+   if (obj_ac == obj_a) ; /* Ok */ /* Spurious 2.95.4 warning here */
+ 
+   if (obj_b == obj_ab) ; /* Ok */ 
+   if (obj_ab == obj_b) ; /* Ok */ /* Spurious 2.95.4 warning here */
+ 
+   if (obj_b == obj_ac) ; /* { dg-warning "lacks a cast" } */ 
+   if (obj_ac == obj_b) ; /* { dg-warning "lacks a cast" } */ 
+ 
+   if (obj_ab == obj_ac) ; /* { dg-warning "lacks a cast" } */ 
+   if (obj_ac == obj_ab) ; /* { dg-warning "lacks a cast" } */ 
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-5.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,74 ----
+ /* Test errors for assignments and comparisons between ObjC and C++ types.  */
+ /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ /* The NeXT runtime headers do not define NULL.  */
+ #ifndef NULL
+ #define NULL ((void *)0)
+ #endif
+ 
+ @protocol MyProtocol
+ - (void) method;
+ @end
+ 
+ @interface MyClass
+ @end
+ 
+ int main()
+ {
+   id obj = nil;
+   id <MyProtocol> obj_p = nil;
+   MyClass *obj_c = nil;
+   Class obj_C = Nil;
+   
+   int i = 0;
+   int *j = (int *)NULL;
+ 
+   /* These should all generate warnings.  */
+   
+   obj = i; /* { dg-error "invalid conversion" } */
+   obj = j; /* { dg-error "cannot convert" } */
+ 
+   obj_p = i; /* { dg-error "invalid conversion" } */
+   obj_p = j; /* { dg-error "cannot convert" } */
+   
+   obj_c = i; /* { dg-error "invalid conversion" } */
+   obj_c = j; /* { dg-error "cannot convert" } */
+ 
+   obj_C = i; /* { dg-error "invalid conversion" } */
+   obj_C = j; /* { dg-error "cannot convert" } */
+   
+   i = obj;   /* { dg-error "invalid conversion" } */
+   i = obj_p; /* { dg-error "invalid conversion" } */
+   i = obj_c; /* { dg-error "invalid conversion" } */
+   i = obj_C; /* { dg-error "invalid conversion" } */
+   
+   j = obj;   /* { dg-error "cannot convert" } */
+   j = obj_p; /* { dg-error "cannot convert" } */
+   j = obj_c; /* { dg-error "cannot convert" } */
+   j = obj_C; /* { dg-error "cannot convert" } */
+   
+   if (obj == i) ; /* { dg-error "comparison between pointer and integer" } */
+   if (i == obj) ; /* { dg-error "comparison between pointer and integer" } */
+   if (obj == j) ; /* { dg-error "lacks a cast" } */
+   if (j == obj) ; /* { dg-error "lacks a cast" } */
+ 
+   if (obj_c == i) ; /*{ dg-error "comparison between pointer and integer" }*/
+   if (i == obj_c) ; /*{ dg-error "comparison between pointer and integer" }*/
+   if (obj_c == j) ; /* { dg-error "lacks a cast" } */
+   if (j == obj_c) ; /* { dg-error "lacks a cast" } */
+ 
+   if (obj_p == i) ; /*{ dg-error "comparison between pointer and integer" }*/
+   if (i == obj_p) ; /*{ dg-error "comparison between pointer and integer" }*/
+   if (obj_p == j) ; /* { dg-error "lacks a cast" } */
+   if (j == obj_p) ; /* { dg-error "lacks a cast" } */
+ 
+   if (obj_C == i) ; /*{ dg-error "comparison between pointer and integer" }*/
+   if (i == obj_C) ; /*{ dg-error "comparison between pointer and integer" }*/
+   if (obj_C == j) ; /* { dg-error "lacks a cast" } */
+   if (j == obj_C) ; /* { dg-error "lacks a cast" } */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-6.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,33 ----
+ /* Test assignments and comparisons involving `one-off' protocols.  */
+ /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @protocol MyProtocol
+ - (void) method;
+ @end
+ 
+ @interface MyClass
+ @end
+ 
+ int main()
+ {
+   id obj = nil;
+   id <MyProtocol> obj_p = nil;
+   MyClass<MyProtocol> *obj_cp = nil;
+ 
+   obj_cp = obj; /* Ok */
+   obj = obj_cp; /* Ok */
+ 
+   obj_cp = obj_p; /* Ok */
+   obj_p = obj_cp; /* Ok */
+   
+   if (obj_cp == obj) ; /* Ok */
+   if (obj == obj_cp) ; /* Ok */
+ 
+   if (obj_cp == obj_p) ; /* Ok */
+   if (obj_p == obj_cp) ; /* Ok */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-7.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-7.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-7.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-7.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,38 ----
+ /* Test assignments and comparisons involving category protocols.  */
+ /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @protocol MyProtocol
+ - (void) method;
+ @end
+ 
+ @interface MyClass
+ @end
+ 
+ @interface MyClass (Addition) <MyProtocol>
+ - (void) method;
+ @end
+ 
+ @interface MyOtherClass : MyClass
+ @end
+ 
+ int main()
+ {
+   id <MyProtocol> obj_p = nil;
+   MyClass *obj_cp = nil;
+   MyOtherClass *obj_cp2 = nil;
+ 
+   obj_cp = obj_p;  /* { dg-warning "distinct Objective\\-C type" } */
+   obj_cp2 = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
+   obj_p = obj_cp;  /* Ok */
+   obj_p = obj_cp2; /* Ok */
+ 
+   if (obj_cp == obj_p) ; /* Ok */
+   if (obj_cp2 == obj_p) ; /* Ok */
+   if (obj_p == obj_cp) ; /* Ok */
+   if (obj_p == obj_cp2) ; /* Ok */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-8.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-8.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-8.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-8.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,33 ----
+ /* { dg-do compile } */
+ 
+ /* We used to ICE because we removed the cast to List_linked*
+    in -[ListIndex_linked next]. */
+ 
+ @interface List
+ {
+ @public
+   int firstLink;
+ }
+ @end
+ 
+ @interface ListIndex_linked
+ {
+ @public
+   List *collection;
+   int link;
+ }
+ @end
+ 
+ @interface List_linked: List
+ @end
+ 
+ @implementation List
+ @end
+ 
+ @implementation ListIndex_linked
+ - next
+ {
+    link = ((List_linked*)collection)->firstLink;
+ }
+ @end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-9.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-9.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/comp-types-9.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/comp-types-9.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ 
+ /* Another gimplifier ICE... */
+ 
+ #include <objc/Object.h>
+ 
+ @interface MyView: Object {
+   int _frame;
+ }
+ - (void)_finalize;
+ @end
+ 
+ @interface MyViewTemplate: MyView {
+   void *_className;
+ }
+ - (id)createRealObject;
+ @end
+ 
+ @implementation MyViewTemplate
+ - (id)createRealObject {
+     id realObj;
+     *(MyView *)realObj = *(MyView *)self;
+     return realObj;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-1.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Test errors for constant strings.  */
+ /* { dg-do compile } */
+ /* { dg-options "-fgnu-runtime" } */
+ 
+ #ifdef __cplusplus
+ extern void baz(...);
+ #endif
+ 
+ void foo()
+ {
+   baz(@"hiya");  /* { dg-error "annot find interface declaration" } */
+ }
+ 
+ @interface NXConstantString
+ {
+   void *isa;
+   char *str;
+   int len;
+ }
+ @end
+ 
+ void bar()
+ {
+   baz(@"howdah");
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-10.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-10.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-10.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-10.mm	Wed Jun 29 21:01:29 2005
***************
*** 0 ****
--- 1,28 ----
+ /* Test if ObjC constant string layout is checked properly, regardless of how
+    constant string classes get derived.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-options "-fnext-runtime" } */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface NSString: Object
+ @end
+ 
+ @interface NSSimpleCString : NSString {
+ @protected
+     char *bytes;
+     unsigned int numBytes;
+ }
+ @end
+     
+ @interface NSConstantString : NSSimpleCString
+ @end
+ 
+ extern struct objc_class _NSConstantStringClassReference;
+ 
+ const NSConstantString *appKey = @"MyApp";
+ 
+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-11.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-11.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-11.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-11.mm	Wed Jun 29 21:01:29 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Test if ObjC constant string layout is checked properly, regardless of how
+    constant string classes get derived.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-options "-fnext-runtime -fconstant-string-class=XStr" } */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface XString: Object {
+ @protected
+     char *bytes;
+ }
+ @end
+ 
+ @interface XStr : XString {
+ @public
+     unsigned int len;
+ }
+ @end
+ 
+ extern struct objc_class _XStrClassReference;
+ 
+ const XStr *appKey = @"MyApp";
+ 
+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+ /* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-2.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,7 ----
+ /* Test the -fconstant-string-class flag error.  */
+ /* { dg-do compile } */
+ /* { dg-options "-fconstant-string-class=" } */
+ 
+ { dg-error "no class name specified|missing argument" "" { target *-*-* } 0 }
+ 
+ void foo () {}
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-3.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,48 ----
+ /* Test the -fconstant-string-class=Foo option under the NeXT
+    runtime.  */
+ /* Developed by Markus Hitter <mah@jump-ing.de>.  */
+ 
+ /* { dg-options "-fnext-runtime -fconstant-string-class=Foo -lobjc" } */
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <memory.h>
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ 
+ @interface Foo: Object {
+   char *cString;
+   unsigned int len;
+ }
+ - (char *)customString;
+ @end
+ 
+ struct objc_class _FooClassReference;
+ 
+ @implementation Foo : Object
+ - (char *)customString {
+   return cString;
+ }
+ @end
+ 
+ int main () {
+   Foo *string = @"bla";
+   Foo *string2 = @"bla";
+ 
+   if(string != string2)
+     abort();
+   printf("Strings are being uniqued properly\n");
+ 
+   /* This memcpy has to be done before the first message is sent to a
+      constant string object. Can't be moved to +initialize since _that_
+      is already a message. */
+ 
+   memcpy(&_FooClassReference, objc_getClass("Foo"), sizeof(_FooClassReference));
+   if (strcmp ([string customString], "bla")) {
+     abort ();
+   }
+ 
+   printf([@"This is a working constant string object\n" customString]);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-4.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Ensure that the preprocessor handles ObjC string constants gracefully. */
+ /* Author: Ziemowit Laski <zlaski@apple.com> */
+ /* { dg-options "-fnext-runtime -fconstant-string-class=MyString -lobjc" } */ 
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ #include <stdlib.h>
+ 
+ @interface MyString
+ {
+   void *isa;
+   char *str;
+   int len;
+ }
+ @end
+ 
+ #define kMyStringMacro1 "My String"
+ #define kMyStringMacro2 @"My String"
+ 
+ void *_MyStringClassReference;
+ 
+ @implementation MyString
+ @end
+ 
+ int main(void) {
+   MyString* aString1 = @kMyStringMacro1;
+   MyString* aString2 = kMyStringMacro2;
+   if(aString1 != aString2) {
+     abort();
+   }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-5.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Positive test case for constant string layout.  */
+ /* Contributed by Ziemowit Laski  <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fconstant-string-class=MyConstantString" } */
+ /* { dg-do compile } */
+ 
+ @interface MyBase {
+   const char *p;
+ }
+ @end
+ 
+ @interface MyConstantString: MyBase {
+   union {
+     void     *u;
+     unsigned char   *c;
+   } _contents;
+   unsigned int  _count;
+ }
+ @end
+ 
+ /* The NeXT runtime initializes the 'isa' pointer of string constants at
+    compile time.  */
+ #ifdef __NEXT_RUNTIME__
+ extern void *_MyConstantStringClassReference;
+ #endif
+ 
+ MyConstantString *str = @"Hello";
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-6.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Negative test case for constant string layout.  */
+ /* Contributed by Ziemowit Laski  <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fconstant-string-class=MyConstantString" } */
+ /* { dg-do compile } */
+ 
+ @interface MyBase {
+   char p;
+ }
+ @end
+ 
+ @interface MyConstantString: MyBase {
+   union {
+     void     *u;
+     unsigned char   *c;
+   } _contents;
+   char  _count;
+ }
+ @end
+ 
+ /* The NeXT runtime initializes the 'isa' pointer of string constants at
+    compile time.  */
+ #ifdef __NEXT_RUNTIME__
+ extern void *_MyConstantStringClassReference;
+ #endif
+ 
+ MyConstantString *str = @"Hello"; /* { dg-error "interface .MyConstantString. does not have valid constant string layout" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-7.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-7.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-7.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-7.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,46 ----
+ /* Test to make sure that the const objc strings are the same across
+    scopes.  */
+ /* Developed by Andrew Pinski <pinskia@physics.uc.edu> */
+ 
+ 
+ /* { dg-options "-fnext-runtime -fconstant-string-class=Foo -lobjc" } */
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <memory.h>
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ 
+ 
+ @interface Foo: Object {
+   char *cString;
+   unsigned int len;
+ }
+ - (char *)customString;
+ @end
+ 
+ struct objc_class _FooClassReference;
+ 
+ 
+ @implementation Foo : Object
+ - (char *)customString {
+   return cString;
+ }
+ @end
+ 
+ 
+ int main () {
+   Foo *string = @"bla";
+   {
+     Foo *string2 = @"bla";
+ 
+ 
+     if(string != string2)
+       abort();
+     printf("Strings are being uniqued properly\n");
+    }
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-8.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-8.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-8.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-8.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,39 ----
+ /* Test for assigning compile-time constant-string objects to static variables.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-options "-fnext-runtime -fconstant-string-class=Foo -lobjc" } */
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ 
+ #include <stdlib.h>
+ #include <objc/Object.h>
+ 
+ @interface Foo: Object {
+   char *cString;
+   unsigned int len;
+ }
+ @end
+ 
+ struct objc_class _FooClassReference;
+ 
+ @implementation Foo : Object
+ - (char *)customString {
+   return cString;
+ }
+ @end
+ 
+ static const Foo *appKey = @"MyApp";
+ static int CFPreferencesSynchronize (const Foo *ref) {
+   return ref == appKey;
+ }
+ 
+ static void PrefsSynchronize(void)
+ {
+   if(!CFPreferencesSynchronize(appKey))
+     abort();
+ }
+ 
+ int main () {
+   PrefsSynchronize();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-9.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-9.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/const-str-9.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/const-str-9.mm	Tue Jun 21 21:13:46 2005
***************
*** 0 ****
--- 1,20 ----
+ /* Test if ObjC constant strings get placed in the correct section.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-options "-fnext-runtime" } */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface NSConstantString: Object {
+   char *cString;
+   unsigned int len;
+ }
+ @end
+ 
+ extern struct objc_class _NSConstantStringClassReference;
+ 
+ const NSConstantString *appKey = @"MyApp";
+ 
+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-class-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-class-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-class-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-class-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,18 ----
+ /* Test that Objective-C++ is able to chew through a simple C++ class hierarchy.
+    This was broken in earlier ObjC++ incarnations.  */
+ 
+ struct foo
+ {
+   foo(void *a) {};
+ };
+ 
+ struct bar : foo
+ {
+   bar() : foo((char*)0) {};
+ };
+ 
+ class apple : foo
+ {
+ public:
+   apple() : foo(0) { };
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-ivars-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,42 ----
+ // Check if ivars may be accessed via the C++ dot notation.
+ 
+ // { dg-do run }
+ // { dg-options "-fno-objc-call-cxx-cdtors" }
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ struct cxx_struct {
+   int a, b;
+   void set_values (int _a, int _b = 3) {
+     a = _a; b = _b;
+   }
+   ~cxx_struct (void) {
+     a = b = 99;
+   }
+ };
+ 
+ @interface Manip : Object {
+   int c;
+   cxx_struct s;   // { dg-warning "user-defined destructor" }
+                   // { dg-warning "constructors and destructors will not be invoked" "" { target *-*-* } 22 }
+ }
+ - (void) manipulate_ivars;
+ @end
+ 
+ @implementation Manip
+ - (void) manipulate_ivars {
+   s.set_values (7);
+   CHECK_IF (s.a == 7 && s.b == 3);
+   s.~cxx_struct();
+   CHECK_IF (s.a == 99 && s.b == 99);
+ }
+ @end
+ 
+ int main (void)
+ {
+   Manip *obj = [Manip new];
+   [obj manipulate_ivars];
+   [obj free];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-ivars-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,76 ----
+ // Check if the '- .cxx_construct' and '-.cxx_destruct' methods get called
+ // and if they perform their desired function.
+ 
+ // { dg-do run }
+ // { dg-options "-fobjc-call-cxx-cdtors" }
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ static int ctor1_called, ctor2_called, dtor1_called;
+ 
+ struct bar {
+   int a, b;
+   bar(void) {
+     a = 5; b = 6;
+     ctor1_called++;
+   }
+   ~bar(void) {
+     a = b = 99;
+     dtor1_called++;
+   }
+ };
+ 
+ struct boo: bar {
+   int c;
+   boo(int _c = 9): c(_c) {
+     ctor2_called++;
+   }
+ };
+ 
+ @interface Baz: Object {
+ @public
+   bar aa;
+ }
+ @end
+ 
+ @implementation Baz
+ @end
+ 
+ @interface Foo: Baz {
+ @public
+   int a;
+   boo bb;
+   bar b;
+   float c;
+   bar d;
+ }
+ @end
+ 
+ @implementation Foo
+ @end
+ 
+ int main (void)
+ {
+   CHECK_IF(!ctor1_called && !ctor2_called && !dtor1_called); /* are we sane? */
+ 
+   Baz *baz = [Baz new];
+   CHECK_IF(ctor1_called && !ctor2_called && !dtor1_called);
+   CHECK_IF(baz->aa.a == 5 && baz->aa.b == 6);
+   ctor1_called = 0;  /* reset */
+   
+   [baz free];
+   CHECK_IF(!ctor1_called && !ctor2_called && dtor1_called);
+   dtor1_called = 0;  /* reset */
+ 
+   Foo *foo = [Foo new];
+   CHECK_IF(ctor1_called && ctor2_called && !dtor1_called);
+   CHECK_IF(foo->bb.a == 5 && foo->bb.b == 6 && foo->bb.c == 9);
+   CHECK_IF(foo->b.a == 5 && foo->b.b == 6);
+   CHECK_IF(foo->d.a == 5 && foo->d.b == 6);
+   ctor1_called = ctor2_called = 0;  /* reset */
+   
+   [foo free];
+   CHECK_IF(!ctor1_called && !ctor2_called && dtor1_called);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-ivars-3.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,46 ----
+ // Check if ObjC classes with non-POD C++ ivars are specially marked in the metadata.
+ 
+ // { dg-do run { target *-*-darwin* } }
+ // { dg-options "-fobjc-call-cxx-cdtors -fnext-runtime" }
+ 
+ #include <objc/objc-runtime.h>
+ #include <stdlib.h>
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ #ifndef CLS_HAS_CXX_STRUCTORS
+ #define CLS_HAS_CXX_STRUCTORS 0x2000L
+ #endif
+ 
+ struct cxx_struct {
+   int a, b;
+   cxx_struct (void) { a = b = 55; }
+ };
+ 
+ @interface Foo {
+   int c;
+   cxx_struct s;
+ }
+ @end
+ 
+ @interface Bar: Foo {
+   float f;
+ }
+ @end
+ 
+ @implementation Foo
+ @end
+ 
+ @implementation Bar
+ @end
+ 
+ int main (void)
+ {
+   Class cls;
+ 
+   cls = objc_getClass("Foo");
+   CHECK_IF(cls->info & CLS_HAS_CXX_STRUCTORS);
+   cls = objc_getClass("Bar");
+   CHECK_IF(!(cls->info & CLS_HAS_CXX_STRUCTORS));
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-scope-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,53 ----
+ /* Handle C++ scoping ('::') operators in ObjC message receivers gracefully.  */
+ /* Author: Ziemowit Laski  <zlaski@apple.com> */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ @class Derived;
+ 
+ Derived *inst[3];
+ 
+ struct CxxClass {
+   static Derived *get_instance(int);
+ };
+ 
+ Derived *CxxClass::get_instance(int offs) {
+   return inst[offs];
+ }
+ 
+ @interface Derived: Object {
+   int value;
+ }
+ -(id)initWithValue:(int)val;
+ -(int)derived_meth;
+ @end
+ 
+ @implementation Derived
+ -(id)initWithValue:(int)val {
+   [super init];
+   value = val;
+   return self;
+ }
+ - (int)derived_meth {
+   return value;
+ }
+ @end
+ 
+ int main(void) {
+   int r;
+   inst[1] = [[::Derived alloc] initWithValue:7];
+   inst[2] = [[Derived alloc] initWithValue:77];
+ 
+   r = [CxxClass::get_instance(2) derived_meth];
+   if (r != 77)
+     abort();
+ 
+   r = [CxxClass::get_instance(1) derived_meth];
+   if (r != 7)
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/cxx-scope-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,19 ----
+ /* Make sure Objective-C++ can distinguish ObjC classes from C++ classes.  */
+ /* Author: Ziemowit Laski  <zlaski@apple.com> */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ #include <iostream>
+ #include <string>
+ 
+ @interface iostream: Object
+ @end
+ 
+ int main(void) {
+   id i = [std::iostream new];  /* { dg-warning "not an Objective\\-C class name or alias" } */
+   i = [iostream new];
+   i = [std::basic_string<char> new];  /* { dg-warning "not an Objective\\-C class name or alias" } */
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/defs.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/defs.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/defs.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/defs.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,43 ----
+ /* Check @defs() in Objective-C++ */
+ /* Contributed by Devang Patel  <dpatel@apple.com>  */
+ 
+ /* { dg-options "-lobjc" } */
+ /* { dg-do run } */
+ 
+ #include <stdlib.h>
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ 
+ extern void abort(void);
+ 
+ @interface A : Object
+ {
+   @public
+     int a;
+ }
+ @end
+ 
+ struct A_defs 
+ {
+   @defs(A);
+ };
+ 
+ @implementation A
+ - init 
+ {
+   a = 42;
+   return self;
+ }
+ @end
+ 
+ 
+ int main() 
+ {
+   A *a = [A init];
+   struct A_defs *a_defs = (struct A_defs *)a;
+   
+   if (a->a != a_defs->a)
+     abort ();	
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/dg.exp gcc-4.1.0/gcc/testsuite/obj-c++.dg/dg.exp
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/dg.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 0 ****
--- 1,37 ----
+ # GCC Objective-C++ testsuite that uses the `dg.exp' driver.
+ #   Copyright (C) 2004 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
+ 
+ # Load support procs.
+ load_lib obj-c++-dg.exp
+ 
+ # If a testcase doesn't have special options, use these.
+ global DEFAULT_OBJCXXFLAGS
+ if ![info exists DEFAULT_OBJCXXFLAGS] then {
+     set DEFAULT_OBJCXXFLAGS " -ansi -pedantic-errors -Wno-long-long"
+ }
+ 
+ # Initialize `dg'.
+ dg-init
+ 
+ # Gather a list of all tests.
+ set tests [lsort [find $srcdir/$subdir *.mm]]
+ 
+ # Main loop.
+ dg-runtest $tests "" $DEFAULT_OBJCXXFLAGS
+ 
+ # All done.
+ dg-finish
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/empty-private-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/empty-private-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/empty-private-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/empty-private-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,9 ----
+ /* Test for no entry after @private token.  */
+ 
+ /* { do-do compile } */
+ 
+ @interface foo
+ {
+ @private
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,23 ----
+ /* Test for graceful encoding of const-qualified fields and parameters.  */
+ /* Author: Ziemowit Laski  <zlaski@apple.com>  */
+ 
+ /* { dg-do compile } */
+ 
+ struct Cxx {
+   const struct Cxx *next;
+ };
+ 
+ @interface ObjC {
+   const struct Cxx *obj;
+ }
+ - (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d;
+ @end
+ 
+ @implementation ObjC
+ - (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d {
+   obj = d;
+   return self;
+ }
+ @end 
+ 
+ /* { dg-final { scan-assembler "@\[0-9\]+@0:\[0-9\]+r\\^{Cxx=\\^r{Cxx}}\[0-9\]+\\^r{Cxx}" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ 
+ template <class T>
+ struct Vec {
+  T x, y;
+  int z;
+ };
+ 
+ Vec<double> dd;
+ const char *enc = @encode(Vec<float>);
+ const char *enc2 = @encode(Vec<double>);
+ 
+ /* { dg-final { scan-assembler "{Vec<float>=ffi}" } } */
+ /* { dg-final { scan-assembler "{Vec<double>=ddi}" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-3.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,30 ----
+ /* { dg-do run } */
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ template <class T>
+ struct Vec {
+  T x, y;
+  long z;
+  long long zz;
+ };
+ 
+ Vec<double> dd;
+ const char *enc = @encode(Vec<float>);
+ const char *enc2 = @encode(Vec<double>);
+ 
+ int main(void) {
+   char *encode = @encode(long);
+ 
+   if (strcmp (encode, "l"))
+     abort();
+ 
+   if (strcmp (enc, "{Vec<float>=fflq}"))
+     abort();
+ 
+   if (strcmp (enc2, "{Vec<double>=ddlq}"))
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-4.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,104 ----
+ /* Test Objective-C method encodings. */
+ 
+ /* The _encoded_ parameter offsets for Objective-C methods are 
+    computed inductively as follows:
+     - The first paramter (self) has offset 0;
+     - The k-th parameter (k > 1) has offset equal to the
+       sum of:
+         - the offset of the k-1-st paramter
+         - the (void *)-promoted size of the k-1-st parameter.
+ 
+    Note that the encoded offsets need not correspond
+    to the actual placement of parameters (relative to 'self')
+    on the stack!  Your target's ABI may have very different
+    opinions on the matter.  */
+ 
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do run } */
+ 
+ 
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ 
+ #ifdef __NEXT_RUNTIME__
+ #define METHOD Method
+ #define OBJC_GETCLASS objc_getClass
+ #define CLASS_GETINSTANCEMETHOD class_getInstanceMethod
+ #else
+ #include <objc/objc-api.h>
+ #define METHOD Method_t
+ #define OBJC_GETCLASS objc_get_class
+ #define CLASS_GETINSTANCEMETHOD class_get_instance_method
+ #endif
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @interface Foo: Object
+ typedef struct { float x, y; } XXPoint;
+ typedef struct { float width, height; } XXSize;
+ typedef struct _XXRect { XXPoint origin; XXSize size; } XXRect;
+ -(id)setRect:(XXRect)r withInt:(int)i;
+ -(void) char:(signed char)c float:(float)f double:(double)d long:(long)l;
+ @end
+ 
+ XXRect my_rect;
+ unsigned offs1, offs2, offs3, offs4, offs5, offs6, offs7;
+ 
+ @implementation Foo
+ -(id)setRect:(XXRect)r withInt:(int)i {
+   unsigned offs = sizeof(self);
+   CHECK_IF(offs == offs3);
+   offs += sizeof(_cmd);
+   CHECK_IF(offs == offs4);
+   offs += sizeof(r);
+   CHECK_IF(offs == offs5);
+   offs += sizeof(i); 
+   CHECK_IF(offs == offs1); 
+   return nil; 
+ }
+ -(void) char:(signed char)c float:(float)f double:(double)d long:(long)l {
+   unsigned offs = sizeof(self);
+   CHECK_IF(offs == offs3);
+   offs += sizeof(_cmd);
+   CHECK_IF(offs == offs4);
+   offs += sizeof((int)c);
+   CHECK_IF(offs == offs5);
+   offs += sizeof(f);
+   CHECK_IF(offs == offs6);
+   offs += sizeof(d);
+   CHECK_IF(offs == offs7);
+   offs += sizeof(l);
+   CHECK_IF(offs == offs1);
+ }
+ @end
+ 
+ 
+ int main(void) {
+   Foo *foo = [[Foo alloc] init];
+   Class fooClass = OBJC_GETCLASS("Foo");
+   METHOD meth;
+   const char *string;
+ 
+   meth = CLASS_GETINSTANCEMETHOD(fooClass, @selector(setRect:withInt:));
+   offs2 = 9999;
+   sscanf(meth->method_types, "@%u@%u:%u{_XXRect={?=ff}{?=ff}}%ui%u", &offs1, &offs2, &offs3,
+       &offs4, &offs5);
+   CHECK_IF(!offs2);
+   [foo setRect:my_rect withInt:123];
+ 
+   meth = CLASS_GETINSTANCEMETHOD(fooClass, @selector(char:float:double:long:));
+   offs2 = 9999;
+   if (sizeof (long) == 8)
+     string = "v%u@%u:%uc%uf%ud%uq%u";
+   else
+     string = "v%u@%u:%uc%uf%ud%ul%u";
+   sscanf(meth->method_types, string, &offs1, &offs2, &offs3,  
+ 	 &offs4, &offs5, &offs6, &offs7);
+   CHECK_IF(!offs2);
+   [foo char:'c' float:2.3 double:3.5 long:2345L];
+ 
+   return 0;
+ }  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-5.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,73 ----
+ /* Method encoding tests for stand-alone @protocol declarations.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do run } */
+ 
+ #include <objc/Protocol.h>
+ #ifdef __cplusplus
+ #define ProtoBool bool
+ #else
+ #define ProtoBool _Bool
+ #endif
+ 
+ #ifndef __NEXT_RUNTIME__
+ #include <objc/objc-api.h>
+ #endif
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ enum Enum {
+   zero, one, two, three
+ };
+ typedef enum Enum Enum;
+ typedef signed char ObjCBool; /* as used by the NeXT runtime */
+ 
+ @protocol Proto
+ union __XXAngle { unsigned int alpha, beta; };
+ typedef struct { float x, y; union __XXAngle a; } XXPoint;
+ typedef struct { double width, height; } XXSize;
+ typedef struct _XXRect { XXPoint origin; XXSize size; struct _XXRect *next; } XXRect;
+ - (void) char:(signed char)c float:(float)f double:(double)d unsigned:(unsigned)u short:(short)s long:(long)l;
+ - (void *)setRect:(XXRect)r withBool:(ProtoBool)b withInt:(int)i;
+ + (Enum *)getEnum:(XXPoint *)pt enum:(enum Enum)e bool:(ObjCBool)b;
+ + (ProtoBool **)getBool:(ObjCBool **)b;
+ @end
+ 
+ Protocol *proto = @protocol(Proto);
+ struct objc_method_description *meth;
+ unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
+ 
+ static void scan_initial(const char *pattern) {
+   totsize = offs0 = offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = offs7 = (unsigned)-1;
+   sscanf(meth->types, pattern, &totsize, &offs0, &offs1, &offs2, &offs3,
+       &offs4, &offs5, &offs6, &offs7);
+   CHECK_IF(!offs0 && offs1 == sizeof(id) && offs2 == offs1 + sizeof(SEL) && totsize >= offs2);
+ }
+ 
+ int main(void) {
+   const char *string;
+ 
+   meth = [proto descriptionForInstanceMethod: @selector(char:float:double:unsigned:short:long:)];
+   if (sizeof (long) == 8)
+     string = "v%u@%u:%uc%uf%ud%uI%us%uq%u";
+   else
+     string = "v%u@%u:%uc%uf%ud%uI%us%ul%u";
+   scan_initial(string);
+   CHECK_IF(offs3 == offs2 + sizeof(int) && offs4 == offs3 + sizeof(float));
+   CHECK_IF(offs5 == offs4 + sizeof(double) && offs6 == offs5 + sizeof(unsigned));
+   CHECK_IF(offs7 == offs6 + sizeof(int) && totsize == offs7 + sizeof(long));
+   meth = [proto descriptionForInstanceMethod: @selector(setRect:withBool:withInt:)];
+   scan_initial("^v%u@%u:%u{_XXRect={?=ff(__XXAngle=II)}{?=dd}^{_XXRect}}%uB%ui%u");
+   CHECK_IF(offs3 == offs2 + sizeof(XXRect) && offs4 == offs3 + sizeof(int));
+   CHECK_IF(totsize == offs4 + sizeof(int));
+   meth = [proto descriptionForClassMethod: @selector(getEnum:enum:bool:)];
+   scan_initial("^i%u@%u:%u^{?=ff(__XXAngle=II)}%ui%uc%u");
+   CHECK_IF(offs3 == offs2 + sizeof(XXPoint *) && offs4 == offs3 + sizeof(enum Enum));
+   CHECK_IF(totsize == offs4 + sizeof(int));  /* 'ObjCBool' is really 'char' */
+   meth = [proto descriptionForClassMethod: @selector(getBool:)];         
+   scan_initial("^^B%u@%u:%u^*%u");
+   CHECK_IF(totsize == offs2 + sizeof(ObjCBool **));
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-6.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,74 ----
+ /* Encoding tests for ObjC class layouts.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-lobjc" } */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #ifdef __NEXT_RUNTIME__
+ #include <objc/objc-class.h>
+ #define OBJC_GETCLASS objc_getClass
+ #else
+ #include <objc/objc-api.h>
+ #define OBJC_GETCLASS objc_get_class
+ #endif
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @class Int1, Int2;
+ struct Nested;
+ 
+ struct Innermost {
+   unsigned char a, b;
+   struct Nested *encl;
+ };
+ 
+ struct Nested {
+   float a, b;
+   Int1 *next;
+   struct Innermost innermost;
+ };
+ 
+ @interface Int1: Object {
+   signed char a, b;
+   Int2 *int2;
+   struct Nested nested;
+ }
+ @end
+ 
+ @interface Int2: Int1 {
+   struct Innermost *innermost;
+   Int1 *base;
+ }
+ @end
+ 
+ @implementation Int1
+ @end
+ 
+ @implementation Int2
+ @end
+ 
+ struct objc_ivar *ivar;
+ 
+ static void check_ivar(const char *name, const char *type) {
+   CHECK_IF(!strcmp(ivar->ivar_name, name));
+   CHECK_IF(!strcmp(ivar->ivar_type, type));
+   ivar++;
+ }
+ 
+ int main(void) {
+   ivar = ((Class)OBJC_GETCLASS("Int1"))->ivars->ivar_list;
+   check_ivar("a", "c");
+   check_ivar("b", "c");
+   check_ivar("int2", "@\"Int2\"");
+   check_ivar("nested", 
+     "{Nested=\"a\"f\"b\"f\"next\"@\"Int1\"\"innermost\"{Innermost=\"a\"C\"b\"C\"encl\"^{Nested}}}");
+     
+   ivar = ((Class)OBJC_GETCLASS("Int2"))->ivars->ivar_list;
+   check_ivar("innermost", "^{Innermost=CC^{Nested}}");
+   check_ivar("base", "@\"Int1\"");
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-7.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-7.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-7.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-7.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,78 ----
+ /* Check if array arguments of ObjC methods are decayed to pointer types
+    in a proper fashion:
+      (1) The _encodings_ for the array arguments should remain to be '[4i]' and
+          such, since this has been the case since at least gcc 3.3.
+      (2) However, when building the static C functions out of ObjC method signatures,
+          we need to decay the arrays into pointers (as C does).
+      (3) If array size is not known (e.g., 'int a[]'), then the type shall be
+          encoded as a pointer.  */
+ 
+ /* Contributed by Alexander Malmberg <alexander@malmberg.org>  */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ #ifdef __NEXT_RUNTIME__
+ #define METHOD Method
+ #define OBJC_GETCLASS objc_getClass
+ #define CLASS_GETINSTANCEMETHOD class_getInstanceMethod
+ #else
+ #include <objc/objc-api.h>
+ #define METHOD Method_t
+ #define OBJC_GETCLASS objc_get_class
+ #define CLASS_GETINSTANCEMETHOD class_get_instance_method
+ #endif
+ 
+ @interface Test : Object
+ { float j; }
+ -(void) test2: (int [5])a with: (int [])b;
+ -(id) test3: (Test **)b; /* { dg-warning "previous declaration of .\\-\\(id\\)test3:\\(Test \\*\\*\\)b." } */
+ @end
+ 
+ @implementation Test
+ -(void) test2: (int [5])a with: (int [])b
+ {
+   a[3] = *b;
+ }
+ -(void) test3: (Test [3][4])b {  /* { dg-warning "conflicting types for .\\-\\(void\\)test3:\\(Test \\\[3\\\]\\\[4\\\]\\)b." } */
+ }
+ @end
+ 
+ int bb[6] = { 0, 1, 2, 3, 4, 5 };
+ int *b = bb;
+ Test *cc[4];
+ Test **c = cc;
+ 
+ int offs1, offs2, offs3, offs4, offs5, offs6;
+ 
+ int main(int argc, char **argv)
+ {
+   Class testClass = OBJC_GETCLASS("Test");
+   METHOD meth;
+ 
+   cc[0] = [Test new];
+   CHECK_IF (bb[3] == 3);
+   [*c test2: b with: bb + 4];
+   CHECK_IF (bb[3] == 4);
+   bb[3] = 0;
+   [*c test2: bb with: bb + 5];
+   CHECK_IF (bb[3] == 5);
+ 
+   meth = CLASS_GETINSTANCEMETHOD(testClass, @selector(test2:with:));
+   offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
+   sscanf(meth->method_types, "v%d@%d:%d[%di]%d^i%d", &offs1, &offs2, &offs3,
+       &offs4, &offs5, &offs6);
+   CHECK_IF (!offs2 && offs4 == 5 && offs3 > 0);
+   CHECK_IF (offs5 == 2 * offs3 && offs6 == 3 * offs3 && offs1 == 4 * offs3);
+   
+   meth = CLASS_GETINSTANCEMETHOD(testClass, @selector(test3:));
+   offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = -1;
+   sscanf(meth->method_types, "v%d@%d:%d[%d[%d{Test=#f}]]%d", &offs1, &offs2, &offs3,
+       &offs4, &offs5, &offs6);
+   CHECK_IF (!offs2 && offs4 == 3 && offs5 == 4 && offs3 > 0);
+   CHECK_IF (offs6 == 2 * offs3 && offs1 == 3 * offs3);
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-8.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-8.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/encode-8.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/encode-8.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,23 ----
+ /* Test if the Objective-C @encode machinery distinguishes between
+    'BOOL *' (which should be encoded as '^c') and 'char *' (which
+    should be encoded as '*').  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-lobjc" } */
+ /* { dg-do run } */
+ 
+ #include <string.h>           
+ #include <stdlib.h>
+ #include <objc/objc.h>
+ 
+ int main(void) {
+   const char *BOOL_ptr = @encode(BOOL *);
+   const char *char_ptr = @encode(char *);
+   
+   if(strcmp(BOOL_ptr, "^c"))
+     abort();
+ 
+   if(strcmp(char_ptr, "*"))
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/except-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/except-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/except-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/except-1.mm	Sat Oct 22 09:31:12 2005
***************
*** 0 ****
--- 1,71 ----
+ /* { dg-do run } */
+ 
+ /* This tests that exceptions work.  It used to fail because
+    objc_msgSend was marked with DECL_NOTHROW. 
+    If you include objc/Object.h, the problem goes away, because
+    that file includes objc/objc-runtime.h which explicitly prototypes
+    objc_msgSend without 'nothrow'.  */
+ 
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ 
+ @interface Object {
+   Class isa;  
+ }
+ + alloc;
+ - init;
+ @end
+ 
+ // ObjectiveC class header
+ @interface ObjCclass : Object {
+ }
+ -(void)method1;
+ -(void)method2;
+ @end
+ 
+ // C++ class header
+ class CPPclass {
+ public:
+ 	void function1();
+ };
+ 
+ 
+ // Main
+ int main(int argc, char *argv[])
+ {
+ 	ObjCclass * foo = [[ObjCclass alloc] init];
+ 	[foo method1];
+ 	exit (0);
+ }
+ 
+ 
+ // ObjectiveC implementation
+ @implementation ObjCclass
+ 
+ -(void) method1
+ {
+ 	try {
+ 		[self method2];
+ 	}
+ 	catch(...) {
+ 		return;
+ 	}
+ }
+ 
+ -(void) method2
+ {
+ 	CPPclass foo;
+ 	foo.function1();
+ }
+ 
+ @end
+ 
+ 
+ // C++ implementation
+ void CPPclass::function1()
+ {
+ 	throw (1);
+ 	/* Shouldn't be here because we threw.  */
+ 	abort ();
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/extern-c-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/extern-c-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/extern-c-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/extern-c-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,18 ----
+ /* Test extern c support inside @implementation */
+ /* Devang Patel  <dpatel@apple.com>.  */
+ 
+ #include <objc/objc.h>
+ 
+ @interface Extern 
+ @end
+ 
+ @implementation Extern
+ 
+ extern "C" void NSRegisterElement(id element);
+ 
+ - init {
+   NSRegisterElement(self);
+   return self;
+ }
+ 
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/extra-semi.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/extra-semi.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/extra-semi.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/extra-semi.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,10 ----
+ /* Allow extra semicolons in between method declarations,
+    for old times' sake.  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Foo
+    -(Foo *) expiration;
+    -(void) setExpiration:(Foo *) date;;
+    -(int) getVersion;
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/fix-and-continue-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Static variables, even if local, require indirect access through a stub
+    if -mfix-and-continue is enabled.  */
+ 
+ /* Author: Ziemowit Laski <zlaski@apple.com> */
+    
+ /* { dg-do assemble { target *-*-darwin* } } */
+ /* { dg-options "-mfix-and-continue" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Foo: Object
+ + (Object *)indexableFileTypes;
+ @end
+ 
+ @implementation Foo
+ + (Object *)indexableFileTypes
+ {
+   static Object *fileTypes = 0;
+   if(!fileTypes) {
+     fileTypes = [Object new];
+   }
+   return fileTypes;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/gnu-runtime-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/gnu-runtime-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/gnu-runtime-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/gnu-runtime-1.mm	Thu Jul  7 06:25:49 2005
***************
*** 0 ****
--- 1,19 ----
+ /* Test that compiling for the GNU runtime works (regardless of
+    the system runtime used).  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-do compile } */
+ /* { dg-options "-fgnu-runtime" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface FooBar: Object
+ - (void)boo;
+ @end
+ 
+ int main ()
+ {
+   id fooBarInst = [[FooBar alloc] init];
+   [fooBarInst boo];
+   return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/gnu-runtime-2.mm	Thu Jul  7 21:10:00 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Sanity check for GNU-runtime version of constant strings,
+    regardless of runtime used on target system.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fgnu-runtime" } */
+ 
+ #include <objc/Object.h>
+ #include <string.h>
+ #include <stdlib.h>
+ 
+ @interface NXConstantString: Object
+ {
+   char *c_string;
+   unsigned int len;                                                     
+ }
+ -(const char *) cString;
+ -(unsigned int) length;
+ @end
+ 
+ @implementation NXConstantString
+ -(const char *) cString { return c_string; }
+ -(unsigned int) length  { return len; }
+ @end
+ 
+ int main(int argc, void **args)
+ {
+   if (strcmp ([@"this is a string" cString], "this is a string"))
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/gnu-runtime-3.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test that compiling for the GNU runtime works (regardless of
+    the system runtime used).  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-do run } */
+ /* { dg-options "-fgnu-runtime" } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ @interface FooBar: Object
+ - (void)boo;
+ @end
+ 
+ int called = 0;
+ 
+ @implementation FooBar
+ - (void)boo
+ {
+   called ++;
+ }
+ @end
+ 
+ int main ()
+ {
+   id fooBarInst = [[FooBar alloc] init];
+   [fooBarInst boo];
+   if (called != 1)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/isa-field-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/isa-field-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/isa-field-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/isa-field-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,43 ----
+ /* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Object (Test)
+ - (Class) test1: (id)object;
+ @end
+ 
+ @interface Derived: Object
+ - (Class) test2: (id)object;
+ @end
+ 
+ @implementation Object (Test)
+ 
+ Class test1(id object) {
+   Class cls = object->isa;
+   return cls;
+ }
+ - (Class) test1: (id)object {
+   Class cls = object->isa;
+   return cls;
+ }
+ 
+ @end
+ 
+ @implementation Derived
+ 
+ Class test2(id object) {
+   Class cls = object->isa;
+   return cls;
+ }
+ - (Class) test2: (id)object {
+   Class cls = object->isa;
+   return cls;
+ }
+ 
+ @end
+ 
+ Class test3(id object) {
+   Class cls = object->isa;
+   return cls;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/ivar-list-semi.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,12 ----
+ /* Allow for an optional semicolon following the ivar block.  */
+ /* Contributed by: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Tink : Object {
+ @private
+  unsigned long mCode[4];
+ };
+ - (id)initWithProc:(void *)inProc;
+ - (void *)getUniqueProc;
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/layout-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/layout-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/layout-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/layout-1.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,15 ----
+ /* Ensure that we do not get bizarre warnings referring to
+    __attribute__((packed)) or some such.  */
+ /* { dg-do compile } */
+ /* { dg-options "-Wpadded -Wpacked -Wabi" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Derived1: Object
+ { }
+ @end
+ 
+ @interface Derived2: Object
+ - (id) foo;
+ @end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/local-decl-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/local-decl-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/local-decl-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/local-decl-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,44 ----
+ /* Test for ivar access inside of class methods.  It should be allowed
+    (with a warning), but only if no other declarations with the same
+    name are seen.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Sprite: Object {
+   int sprite, spree;
+ }
+ + (void)setFoo:(int)foo;
+ + (void)setSprite:(int)sprite;
+ - (void)setFoo:(int)foo;
+ - (void)setSprite:(int)sprite;
+ @end
+ 
+ int spree = 23;
+ 
+ @implementation Sprite
+ + (void)setFoo:(int)foo {
+   sprite = foo;  /* { dg-warning "instance variable .sprite. accessed in class method" } */
+   spree = foo;
+ }
+ + (void)setSprite:(int)sprite {
+   int spree;
+   sprite = 15;
+   spree = 17;
+   ((Sprite *)self)->sprite = 16;   /* NB: This is how one _should_ access */
+   ((Sprite *)self)->spree = 18;    /* ivars from within class methods!    */
+ }
+ - (void)setFoo:(int)foo {
+   sprite = foo;
+   spree = foo;
+ }
+ - (void)setSprite:(int)sprite {
+   int spree;
+   sprite = 15;  /* { dg-warning "local declaration of .sprite. hides instance variable" } */
+   self->sprite = 16;
+   spree = 17;  /* { dg-warning "local declaration of .spree. hides instance variable" } */
+   self->spree = 18;
+ }   
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/lookup-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/lookup-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/lookup-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/lookup-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,8 ----
+ /* Simple test to check Objectivec-C++ qualified type lookup.  */
+ /* Devang Patel  <dpatel@apple.com>.  */
+ 
+ @interface A
+ {
+    A *ap;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/lookup-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/lookup-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/lookup-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/lookup-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,56 ----
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ class MyWidget {
+  public:
+   int a;
+   MyWidget(void) { a = 17; }
+ };
+ 
+ MyWidget gWidget;
+ 
+ @protocol MyProto
+ - (MyWidget *)widget;
+ @end
+ 
+ @interface Foo: Object
+ @end
+ 
+ @interface Bar: Foo <MyProto>
+ @end
+ 
+ @interface Container: Object
+ + (MyWidget *)elementForView:(Foo *)view;
+ @end
+ 
+ @implementation Foo
+ @end
+ 
+ @implementation Bar
+ - (MyWidget *)widget {
+   return &gWidget;
+ }
+ @end
+ 
+ @implementation Container
+ + (MyWidget *)elementForView:(Foo *)view
+ {
+     MyWidget *widget = nil;
+     if ([view conformsTo:@protocol(MyProto)]) {
+         widget = [(Foo <MyProto> *)view widget];
+     }
+     return widget;
+ }
+ @end
+ 
+ int main(void) {
+   id view = [Bar new];
+   MyWidget *w = [Container elementForView: view];
+ 
+   if (!w || w->a != 17)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test whether casting 'id' to a specific class removes method lookup
+    ambiguity.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @class Int1, Int2;
+ 
+ @interface Int1
+ + (Int1 *)classMethod1;
+ + (id)classMethod2;
+ - (Int1 *)instanceMethod:(Int2 *)arg;  /* { dg-bogus "using" } */
+ @end
+ 
+ @interface Int2: Int1
+ + (Int1 *)classMethod1; 
+ + (id)classMethod2;
+ - (id)int2Method;
+ - (int)instanceMethod:(int)arg;  /* { dg-bogus "also found" } */
+ @end
+ 
+ int main(void) {
+   id i = [(Int2 *)[Int1 classMethod1] int2Method];   /* { dg-bogus "may not respond to" } */
+   int j = [(Int2 *)[Int2 classMethod2] instanceMethod: 45];  /* { dg-bogus "multiple methods" } */
+ 	/* { dg-bogus "invalid conversion" "" { target *-*-* } 25 } */
+ 	/* { dg-bogus "invalid conversion" "" { target *-*-* } 25 } */
+   return j;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-10.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-10.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-10.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-10.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,45 ----
+ /* Test for sending messages to aliased classes (and instances thereof).  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-lobjc" } */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @interface Int1: Object
+ + (int) classMeth;
+ - (int) instanceMeth;
+ @end
+ 
+ @interface Int2: Object
+ + (int) classMeth;      
+ - (int) instanceMeth;
+ @end
+ 
+ @implementation Int1
+ + (int) classMeth { return 345; }
+ - (int) instanceMeth { return 697; }
+ @end
+ 
+ @implementation Int2
+ + (int) classMeth { return 1345; }
+ - (int) instanceMeth { return 1697; }
+ @end
+ 
+ typedef Int1 Int1Typedef;
+ @compatibility_alias Int1Alias Int1Typedef;
+ @compatibility_alias Int2Alias Int2;
+ typedef Int2Alias Int2Typedef;                  
+ 
+ int main(void) {
+   Int1Alias *int1alias = [[Int1Typedef alloc] init];
+   Int2Typedef *int2typedef = [[Int2Alias alloc] init];
+ 
+   CHECK_IF([Int1Typedef classMeth] == 345 && [Int2Alias classMeth] == 1345);
+   CHECK_IF([int1alias instanceMeth] == 697 && [int2typedef instanceMeth] == 1697);
+   CHECK_IF([(Int2Typedef *)int1alias instanceMeth] == 697);
+   CHECK_IF([(Int1Alias *)int2typedef instanceMeth] == 1697);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-11.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-11.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-11.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-11.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Check if class references (generated for the NeXT runtime) are appropriately 
+    folded.  This test is safe to run on all targets.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-fnext-runtime" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ typedef Object ObjectTypedef1;
+ typedef ObjectTypedef1 ObjectTypedef2;
+ @compatibility_alias ObjectAlias1 ObjectTypedef2;
+ @compatibility_alias ObjectAlias2 ObjectAlias1;
+ typedef ObjectAlias2 ObjectTypedef3;
+ 
+ void foo(void) {
+   id obj = [Object new];
+   obj = [ObjectTypedef1 new];
+   obj = [ObjectTypedef2 new];
+   obj = [ObjectTypedef3 new];
+   obj = [ObjectAlias1 new];
+   obj = [ObjectAlias2 new];
+ }
+ 
+ /* { dg-final { scan-assembler "_OBJC_CLASS_REFERENCES_0" } } */
+ /* { dg-final { scan-assembler-not "_OBJC_CLASS_REFERENCES_1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-12.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-12.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-12.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-12.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,31 ----
+ /* Check that sending messages to variables of type 'Class' does not involve instance methods, unless they reside in root classes.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-options "-Wstrict-selector-match" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Protocol.h>
+ 
+ @interface Base
+ - (unsigned)port;
+ @end
+ 
+ @interface Derived: Base
+ - (Object *)port;
+ + (Protocol *)port;
+ - (id)starboard;
+ @end
+ 
+ void foo(void) {
+   Class receiver;
+ 
+   [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
+        /* { dg-warning "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 9 } */
+        /* { dg-warning "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 14 } */
+ 
+   [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
+        /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
+        /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
+        /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
+ 
+   [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-13.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-13.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-13.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-13.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Check if finding multiple signatures for a method is handled gracefully.  Author:  Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-options "-Wstrict-selector-match" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Class1
+ - (void)setWindow:(Object *)wdw;
+ @end
+ 
+ @interface Class2
+ - (void)setWindow:(Class1 *)window;
+ @end
+ 
+ id foo(void) {
+   Object *obj = [[Object alloc] init];
+   id obj2 = obj;
+   [obj setWindow:nil];  /* { dg-warning ".Object. may not respond to .\\-setWindow:." } */
+        /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 18 } */
+        /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 18 } */
+        /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 18 } */
+   [obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
+        /* { dg-warning "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 8 } */
+        /* { dg-warning "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 12 } */
+ 
+   return obj;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-14.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-14.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-14.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-14.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,14 ----
+ /* Check if casting the receiver type causes method lookup to succeed.  This was broken
+    in Objective-C++.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-do compile } */
+ 
+ @interface A
+ @end
+ 
+ @interface B: A
+ - (void)f;
+ @end
+ 
+ void g(A *p) { [(B *)p f];  }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-15.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-15.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-15.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-15.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,43 ----
+ /* Check if finding multiple signatures for a method is handled gracefully when method lookup succeeds (see also method-7.m).  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-options "-Wstrict-selector-match" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @protocol MyObject
+ - (id)initWithData:(Object *)data;
+ @end
+ 
+ @protocol SomeOther
+ - (id)initWithData:(int)data;
+ @end
+ 
+ @protocol MyCoding
+ - (id)initWithData:(id<MyObject, MyCoding>)data;
+ @end
+ 
+ @interface NTGridDataObject: Object <MyCoding>
+ {
+     Object<MyCoding> *_data;
+ }
+ + (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data;
+ @end
+ 
+ @implementation NTGridDataObject
+ - (id)initWithData:(id<MyObject, MyCoding>)data {
+   return data;
+ }
+ + (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
+ {
+     NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
+      /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
+      /* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 9 } */
+      /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 17 } */
+      /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
+ 
+      /* The following warning is a consequence of picking the "wrong" method signature.  */
+      /* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 33 } */
+     return result;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-16.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-16.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-16.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-16.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,34 ----
+ 
+ /* Ensure that we indeed cannot obtain the value of a message send
+    if the chosen method signature returns 'void'.  There used to
+    exist a cheesy hack that allowed it.  While at it, check that
+    the first lexically occurring method signature gets picked
+    when sending messages to 'id'.  */ 
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface Object1
+ - (void)initWithData:(Object1 *)data;
+ @end
+ 
+ @interface Object2
+ - (id)initWithData:(Object1 *)data;
+ @end
+ 
+ @interface Object3
+ - (id)initWithData:(Object2 *)data;
+ @end
+ 
+ void foo(void) {
+   id obj1, obj2 = 0;
+   obj2 = [obj1 initWithData: obj2];
+      /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 26 } */
+      /* { dg-warning "using .\\-\\(void\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 13 } */
+      /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object1 \\*\\)data." "" { target *-*-* } 17 } */
+      /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(Object2 \\*\\)data." "" { target *-*-* } 21 } */
+ 
+      /* The following error is a consequence of picking the "wrong" method signature.  */
+      /* { dg-error "void value not ignored as it ought to be" "" { target *-*-* } 26 } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-17.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-17.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-17.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-17.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,33 ----
+ /* When there is only one candidate method available, make sure the
+    compiler uses its argument/return types when constructing the
+    message sends (so that proper C/C++ argument conversions may
+    take place).  */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ static double d = 4.5920234e2;
+ 
+ @interface Foo : Object
+ -(void) brokenType: (int)x floatingPoint: (double)y;
+ @end
+ 
+ 
+ @implementation Foo
+ -(void) brokenType: (int)x floatingPoint: (double)y
+ {
+ 	CHECK_IF(x == 459);
+ 	CHECK_IF(y == d);
+ }
+ @end
+ 
+ int main(void)
+ {
+ 	Foo *foo=[Foo new];
+ 	[foo brokenType: (int)d floatingPoint: d];
+ 	return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-18.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-18.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-18.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-18.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Contributed by Igor Seleznev <selez@mail.ru>.  */
+ /* This used to be broken.  */
+ 
+ #include <objc/objc.h>
+ 
+ @interface A
+ + (A *)currentContext;
+ @end
+ 
+ @interface B
+ + (B *)currentContext;
+ @end
+ 
+ int main()
+ {
+     [A currentContext];  /* { dg-bogus "multiple declarations" }  */
+     return 0;
+ }
+ 
+ @implementation A
+ + (A *)currentContext { return nil; }
+ @end
+ @implementation B
+ + (B *)currentContext { return nil; }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-19.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-19.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-19.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-19.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,80 ----
+ /* Test if instance methods of root classes are used as class methods, if no
+    "real" methods are found.  For receivers of type 'id' and 'Class', all
+    root classes must be considered.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do run } */
+ 
+ #include <objc/objc.h>
+ 
+ #ifdef __NEXT_RUNTIME__
+ #include <objc/objc-runtime.h>
+ #define OBJC_GETCLASS objc_getClass
+ #else
+ #include <objc/objc-api.h>
+ #define OBJC_GETCLASS objc_get_class
+ #endif
+ 
+ #include <stdlib.h>
+ #include <string.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @protocol Proto
+ - (const char *) method4;
+ @end
+ 
+ @interface Root
+ { Class isa; }
+ + (const char *) method2;
+ @end
+ 
+ @interface Derived: Root
+ - (const char *) method1;
+ - (const char *) method2;
+ - (const char *) method3;
+ @end
+ 
+ @interface Root (Categ)
+ - (const char *) method3;
+ @end
+ 
+ @implementation Root (Categ)
+ - (const char *) method3 { return "Root(Categ)::-method3"; }
+ - (const char *) method4 { return "Root(Categ)::-method4"; }
+ @end
+ 
+ @implementation Derived
+ - (const char *) method1 { return "Derived::-method1"; }
+ - (const char *) method2 { return "Derived::-method2"; }
+ - (const char *) method3 { return "Derived::-method3"; }
+ @end
+ 
+ @implementation Root
+ #ifdef __NEXT_RUNTIME__
+ + initialize { return self; }
+ #endif
+ - (const char *) method1 { return "Root::-method1"; }
+ + (const char *) method2 { return "Root::+method2"; }
+ @end
+ 
+ int main(void)
+ {
+   Class obj = OBJC_GETCLASS("Derived");
+ 
+   /* None of the following should elicit compiler-time warnings.  */
+ 
+   CHECK_IF(!strcmp([Root method1], "Root::-method1"));
+   CHECK_IF(!strcmp([Root method2], "Root::+method2"));
+   CHECK_IF(!strcmp([Root method3], "Root(Categ)::-method3"));
+   CHECK_IF(!strcmp([Root method4], "Root(Categ)::-method4"));
+   CHECK_IF(!strcmp([Derived method1], "Root::-method1"));
+   CHECK_IF(!strcmp([Derived method2], "Root::+method2"));
+   CHECK_IF(!strcmp([Derived method3], "Root(Categ)::-method3"));
+   CHECK_IF(!strcmp([Derived method4], "Root(Categ)::-method4"));
+   CHECK_IF(!strcmp([obj method1], "Root::-method1"));
+   CHECK_IF(!strcmp([obj method2], "Root::+method2"));
+   CHECK_IF(!strcmp([obj method3], "Root(Categ)::-method3"));
+   CHECK_IF(!strcmp([obj method4], "Root(Categ)::-method4"));
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,56 ----
+ /* Test if prior method lookup at method @implementation time is not
+    overly aggressive, leading to methods being found in other classes.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @class NSString;
+ 
+ @protocol NSMenuItem
+ + (void)setUsesUserKeyEquivalents:(BOOL)flag;
+ + (BOOL)usesUserKeyEquivalents;
+ @end
+ 
+ @interface NSMenuItem : Object <NSMenuItem> {
+   @private
+   id _menu;
+ }
+ @end
+ 
+ @interface NSResponder : Object <NSMenuItem>
+ {
+   id _nextResponder;
+ }
+ @end
+ 
+ @interface Object(NSMenuValidation)
+ - (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
+ @end
+ 
+ @interface NSResponder (NSStandardKeyBindingMethods)
+ - (void)insertText:(id)insertString;
+ - (void)doCommandBySelector:(SEL)aSelector;
+ @end
+ 
+ @interface NSView : NSResponder
+ {
+   id _superview;
+   id _subviews;
+ }
+ @end
+ 
+ @interface SKTGraphicView : NSView {
+   @private
+   float _gridSpacing;
+ }
+ @end
+ 
+ @implementation SKTGraphicView
+ - (BOOL)validateMenuItem:(NSMenuItem *)item {
+   return (BOOL)1;
+ }
+ - (void)insertText:(NSString *)str {
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-20.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-20.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-20.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-20.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,17 ----
+ /* Test if context-sensitive "in", "out", "byref", etc., qualifiers can be
+    used as method selectors.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do compile } */
+ 
+ @interface Foo
+ - (void)insertNewButtonImage:(Foo *)newButtonImage in:(Foo *)buttonCell;
+ + (oneway void)oneway:(int)i2 byref:(int)i3 out:(float)f4 bycopy:(float)f5;
+ @end
+ 
+ @implementation Foo
+ - (void)insertNewButtonImage:(Foo *)newButtonImage in:(Foo *)buttonCell { }
+ + (oneway void)oneway:(int)i2 byref:(int)i3 out:(float)f4 bycopy:(float)f5 { }
+ @end
+ 
+ /* { dg-final { scan-assembler "insertNewButtonImage:in:" } } */
+ /* { dg-final { scan-assembler "oneway:byref:out:bycopy:" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-21.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-21.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-21.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-21.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Test for spurious "may or may not return a value" warnings.  */
+ /* { dg-do compile } */
+ /* { dg-options "-Wextra" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Foo: Object
+ - (id) meth1;
+ - (void) meth2;
+ @end
+ 
+ extern int bar;
+ 
+ @implementation Foo
+ - (id) meth1 {
+   if (bar)
+     return [Object new];
+   return; /* { dg-error "return.statement with no value" } */
+ }
+ - (void) meth2 {
+   if (!bar)
+     return;
+   bar = 0;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-3.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Do not warn about "slightly" mismatched method signatures if 
+    -Wstrict-selector-match is off.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-strict-selector-match" } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface Base
+ - (id) meth1: (Base *)arg1;
+ - (id) window;
+ @end
+ 
+ @interface Derived: Base
+ - (id) meth1: (Derived *)arg1;
+ - (Base *) window;
+ @end
+ 
+ void foo(void) {
+   id r;
+ 
+   [r meth1:r];
+   [r window];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-4.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Warn about "slightly" mismatched method signatures if 
+    -Wstrict-selector-match is on.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wstrict-selector-match" } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface Base
+ - (id) meth1: (Base *)arg1; /* { dg-warning "using .\\-\\(id\\)meth1:\\(Base \\*\\)arg1." } */
+ - (id) window;              /* { dg-warning "using .\\-\\(id\\)window" } */
+ @end
+ 
+ @interface Derived: Base
+ - (id) meth1: (Derived *)arg1; /* { dg-warning "also found .\\-\\(id\\)meth1:\\(Derived \\*\\)arg1." } */
+ - (Base *) window;             /* { dg-warning "also found .\\-\\(Base \\*\\)window." } */
+ @end
+ 
+ void foo(void) {
+   id r;
+ 
+   [r meth1:r];  /* { dg-warning "multiple methods named .\\-meth1:. found" } */
+   [r window];   /* { dg-warning "multiple methods named .\\-window. found" } */
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-5.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Do not warn about "slightly" mismatched method signatures if 
+    -Wstrict-selector-match is off.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-strict-selector-match" } */
+ 
+ #include <objc/objc.h>
+ 
+ typedef enum { en1_1, en1_2 } En1;
+ typedef enum { en2_1, en2_2 } En2;
+ typedef struct { int a, b; } St1;
+ typedef struct { unsigned a, b; } St2;
+ 
+ @interface Base
+ - (id) meth1: (En1)arg1;
+ - (St1) window;
+ @end
+ 
+ @interface Derived: Base
+ - (id) meth1: (En2)arg1;
+ - (St2)window;
+ @end
+ 
+ void foo(void) {
+   id r;
+   En1 en;
+ 
+   [r meth1:en];
+   [r window];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-6.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,19 ----
+ /* The following should NOT generate "may not respond to" warnings,
+    since a forward-declared @class (instance) should be treated like a
+    'Class') ('id').  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @class NotKnown;
+ 
+ void foo(NotKnown *n) {
+   [NotKnown new];
+   [n nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+ }
+ 
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-7.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-7.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-7.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-7.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,21 ----
+ /* Check if sending messages to "underspecified" objects is handled gracefully.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ @class UnderSpecified;
+ typedef struct NotAClass {
+   int a, b;
+ } NotAClass;
+ 
+ void foo(UnderSpecified *u, NotAClass *n) {
+   [n nonexistent_method];    /* { dg-warning "invalid receiver type" } */
+        /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 12 } */
+   [NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
+   [u nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+   [UnderSpecified nonexistent_method]; /* { dg-warning "no .\\+nonexistent_method. method found" } */
+ }
+ 
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-8.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-8.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-8.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-8.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Tests of duplication.  */
+ /* { dg-do compile } */
+ 
+ @interface class1
+ - (int) meth1;
+ - (void) meth1;  /* { dg-error "duplicate declaration of method .\\-meth1." } */
+ @end
+ 
+ @interface class2
+ + (void) meth1;
+ + (int) meth1;  /* { dg-error "duplicate declaration of method .\\+meth1." } */
+ @end
+ 
+ @interface class3
+ - (int) meth1;
+ @end
+ 
+ @implementation class3
+ - (int) meth1 { return 0; } /* { dg-error "previously defined here" } */
+ - (int) meth1 { return 0; } /* { dg-error "redefinition of" } */
+ @end
+ 
+ @interface class4
+ + (void) meth1;
+ @end
+ 
+ @implementation class4
+ + (void) meth1 {} /* { dg-error "previously defined here" } */
+ + (void) meth1 {} /* { dg-error "redefinition of" } */
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-9.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-9.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/method-9.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/method-9.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,33 ----
+ /* Test for lookup of class (factory) methods.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do compile } */
+ 
+ @interface MyBase 
+ - (void) rootInstanceMethod;
+ @end
+ 
+ @interface MyIntermediate: MyBase
+ @end
+ 
+ @interface MyDerived: MyIntermediate
+ - (void) instanceMethod;
+ + (void) classMethod;
+ @end
+ 
+ @implementation MyDerived
+ - (void) instanceMethod {
+ }
+ 
+ + (void) classMethod {                    /* If a class method is not found, the root  */
+     [self rootInstanceMethod];            /* class is searched for an instance method  */
+     [MyIntermediate rootInstanceMethod];  /* with the same name.                       */
+ 
+     [self instanceMethod];   /* { dg-warning ".MyDerived. may not respond to .\\+instanceMethod." } */
+     [MyDerived instanceMethod];   /* { dg-warning ".MyDerived. may not respond to .\\+instanceMethod." } */
+ }
+ @end
+ 
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/no-extra-load.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/no-extra-load.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/no-extra-load.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/no-extra-load.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,24 ----
+ // Radar 3926484
+ 
+ // { dg-do compile }
+ 
+ #include <objc/Object.h>
+ #include <iostream>
+ 
+ @interface Greeter : Object
+ - (void) greet: (const char *)msg;
+ @end
+ 
+ @implementation Greeter
+ - (void) greet: (const char *)msg { std::cout << msg; }
+ @end
+ 
+ int
+ main ()
+ {
+   std::cout << "Hello from C++\n";
+   Greeter *obj = [Greeter new];
+   [obj greet: "Hello from Objective-C\n"];
+ }
+ 
+ /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/objc-gc-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/objc-gc-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/objc-gc-3.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,63 ----
+ /* Test looking up fields in superclasses in the context of write-barriers
+    (where component references get rewritten).  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-fobjc-gc" } */
+ 
+ #include <objc/Object.h>
+ 
+ @class MyWindow;
+ 
+ @interface MyDocument : Object {
+     MyWindow *_window;
+ }
+ @end
+ 
+ @interface MyFileDocument : MyDocument {
+      struct {
+         unsigned int autoClose:1;
+         unsigned int openForUI:1;
+         unsigned int isClosing:1;
+         unsigned int needsDiskCheck:1;
+         unsigned int isWritable:1;
+         unsigned int representsFileOnDisk:1;
+         unsigned int RESERVED:26;
+     } _fdFlags;
+ }
+ @end
+ 
+ @interface MyTextFileDocument : MyFileDocument {
+     Object *_textStorage;
+     struct __tfdFlags {
+         unsigned int immutable:1;
+         unsigned int lineEnding:2;
+         unsigned int isClosing:1;
+         unsigned int settingsAreSet:1;
+         unsigned int usesTabs:1;
+         unsigned int isUTF8WithBOM:1;
+         unsigned int wrapsLines:1;
+         unsigned int usingDefaultLanguage:1;
+         unsigned int RESERVED:23;
+     } _tfdFlags;
+     int _tabWidth;
+     int _indentWidth;
+ }
+ @end
+ 
+ @interface MyRTFFileDocument : MyTextFileDocument
+ - (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type;
+ @end
+ 
+ @implementation MyRTFFileDocument
+ - (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type {
+         if (_textStorage && fileName) {
+             [_textStorage free];
+ 	    return YES;
+         } else if (type) {
+             _textStorage = [MyRTFFileDocument new];
+ 	    return NO;
+         }
+    return (fileName && type);
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/overload-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/overload-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/overload-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/overload-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,11 ----
+ // Make sure we can overload on ObjC classes
+ // Radar 3960754
+ 
+ // { dg-do compile }
+ 
+ @class A, B; 
+ 
+ struct X {
+   void call(A*);
+   void call(B*);
+ };
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/pragma-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/pragma-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/pragma-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/pragma-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,11 ----
+ /* It is OK to use #pragma inside @interface body. This test checks that.  */
+ /* Devang Patel  <dpatel@apple.com>.  */
+ 
+ @interface A
+ {
+    int p;
+ }
+ +(int) foo;
+ #pragma Mark foobar
+ -(int) bar;
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/pragma-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/pragma-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/pragma-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/pragma-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,23 ----
+ /* It is OK to use #pragma inside @implementation body. This test checks that.  */
+ /* Ziemowit Laski  <zlaski@apple.com>.  */
+ 
+ @interface A
+ {
+    int p;
+ }
+ +(int) foo;
+ -(int) bar;
+ @end
+ 
+ @implementation A
+ #pragma mark -
+ #pragma mark init / dealloc
+ + (int)foo {
+   return 1;
+ }
+ #pragma mark -
+ #pragma mark Private Functions
+ - (int)bar {
+   return 2;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/private-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/private-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/private-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/private-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,60 ----
+ /* Test errors for accessing @private and @protected variables.  */
+ /* Based on work by: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface MySuperClass
+ {
+ @private
+   int _private;
+ 
+ @protected
+   int _protected;
+ 
+ @public
+   int _public;
+ }
+ - (void) test;
+ @end
+ 
+ @implementation MySuperClass
+ - (void) test
+ {
+   _private = 12;   /* Ok  */
+   _protected = 12; /* Ok  */
+   _public = 12;    /* Ok  */
+ }
+ @end
+ 
+ 
+ @interface MyClass : MySuperClass 
+ @end
+ 
+ @implementation MyClass
+ - (void) test
+ {
+   /* Private variables simply don't exist in the subclass.  */
+   _private = 12; /* { dg-error "._private. was not declared in this scope" } */
+ 
+   _protected = 12; /* Ok  */
+   _public = 12;    /* Ok  */
+ }
+ @end
+ 
+ int main (void)
+ {
+   MyClass *m = nil;
+   
+   if (m != nil)
+     {
+       int access;
+ 
+       access = m->_private;   /* { dg-error "is @private" }  */
+       access = m->_protected; /* { dg-error "is @protected" }  */
+       access = m->_public;    /* Ok  */
+     }
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/private-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/private-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/private-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/private-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,56 ----
+ /* Test warnings for shadowing instance variables.  */
+ /* Based on work by: Nicola Pero <nicola@brainstorm.co.uk>.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface MySuperClass
+ {
+ @private
+   int _private;
+ 
+ @protected
+   int _protected;
+ 
+ @public
+   int _public;
+ }
+ - (void) test;
+ @end
+ 
+ @implementation MySuperClass
+ - (void) test
+ {
+   /* FIXME: I wonder if the warnings shouldn't be better generated
+      when the variable is declared, rather than used!  */
+   int _private = 12;
+   int _protected = 12;
+   int _public = 12;
+   int a;
+   
+   a = _private;    /* { dg-warning "hides instance variable" } */
+   a = _protected;  /* { dg-warning "hides instance variable" } */
+   a = _public;     /* { dg-warning "hides instance variable" } */
+ }
+ @end
+ 
+ 
+ @interface MyClass : MySuperClass 
+ @end
+ 
+ @implementation MyClass
+ - (void) test
+ {
+   int _private = 12;
+   int _protected = 12;
+   int _public = 12;
+   int a;
+ 
+   /* The private variable can be shadowed without warnings, because
+    * it's invisible, and not accessible, to the subclass!  */
+   a = _private;   /* Ok  */
+   a = _protected; /* { dg-warning "hides instance variable" } */
+   a = _public;    /* { dg-warning "hides instance variable" } */
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-1.mm	Fri Jun 24 01:03:21 2005
***************
*** 0 ****
--- 1,44 ----
+ /* Test for situations in which protocol conformance information
+    may be lost, leading to superfluous warnings.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do compile } */
+ 
+ /* One-line substitute for objc/objc.h */
+ typedef struct objc_object { struct objc_class *class_pointer; } *id;
+ 
+ @protocol NSObject
+ - (int)someValue;
+ @end
+ 
+ @interface NSObject <NSObject>
+ @end
+ 
+ @protocol PlateMethods
+ - (void)someMethod;
+ @end
+ 
+ @interface Foo {
+   NSObject <PlateMethods> *plate;
+   id <PlateMethods> plate1;
+   NSObject *plate2;
+ }
+ - (id <PlateMethods>) getPlate;
+ - (id <NSObject>) getPlate1;
+ - (int) getValue;
+ @end
+ 
+ @implementation Foo
+ - (id <PlateMethods>) getPlate {
+   return plate;  /* { dg-bogus "does not implement" } */
+ }
+ - (id <NSObject>) getPlate1 {
+   return (id <NSObject>)plate1; /* { dg-bogus "does not conform" } */
+ }
+ - (int) getValue {
+   int i = [plate1 someValue];   /* { dg-warning ".\\-someValue. not found in protocol\\(s\\)" } */
+ 
+   int j = [(id <NSObject>)plate1 someValue];  /* { dg-bogus "not found in protocol" } */
+   int k = [(id)plate1 someValue]; /* { dg-bogus "not found in protocol" } */
+   return i + j + k;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-2.mm	Fri Jun 24 01:03:21 2005
***************
*** 0 ****
--- 1,20 ----
+ /* Don't forget to look in protocols if a class (and its superclasses) do not
+    provide a suitable method.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @protocol Zot
+ -(void) zot;
+ @end
+ 
+ @interface Foo : Object <Zot>
+ @end
+ 
+ int foo()
+ {
+ 	Foo *f=nil;
+ 	[f zot]; /* There should be no warnings here! */
+ 	return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-3.mm	Fri Jun 24 01:03:21 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Crash due to descriptionFor(Instance|Class)Method applied to
+    a protocol with no instance/class methods respectively.
+    Problem report and original fix by richard@brainstorm.co.uk.  */
+ /* { dg-do run } */
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ #include <objc/Protocol.h>
+ 
+ @protocol NoInstanceMethods
+ + testMethod;
+ @end
+ 
+ @protocol NoClassMethods
+ - testMethod;
+ @end
+ 
+ int
+ main()
+ {
+ [@protocol(NoInstanceMethods) descriptionForInstanceMethod: @selector(name)];
+ [@protocol(NoInstanceMethods) descriptionForClassMethod: @selector(name)];
+ [@protocol(NoClassMethods) descriptionForInstanceMethod: @selector(name)];
+ [@protocol(NoClassMethods) descriptionForClassMethod: @selector(name)];
+ return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-4.mm	Fri Jun 24 01:03:21 2005
***************
*** 0 ****
--- 1,52 ----
+ /* Test for situations in which protocol conformance information
+    may be lost while casting.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-do compile } */
+ 
+ /* One-line substitute for objc/objc.h */
+ typedef struct objc_object { struct objc_class *class_pointer; } *id;
+ 
+ @protocol Proto
+ - (long)someValue;
+ @end
+ 
+ @interface Obj
+ - (long)anotherValue;
+ @end
+ 
+ long foo(void) {
+   long receiver = 2;
+   Obj *objrcvr;
+   Obj <Proto> *objrcvr2;
+ 
+   /* NB: Since 'receiver' is an invalid ObjC message receiver, the compiler
+      should warn but then search for methods as if we were messaging 'id'.  */
+ 
+   receiver += [receiver someValue]; /* { dg-warning "invalid receiver type .long int." } */
+   receiver += [receiver anotherValue]; /* { dg-warning "invalid receiver type .long int." } */
+ 
+   receiver += [(Obj *)receiver someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
+ /* { dg-error "invalid conversion" "" { target *-*-* } 28 } */
+ 
+   receiver += [(Obj *)receiver anotherValue];
+   receiver += [(Obj <Proto> *)receiver someValue];
+   receiver += [(Obj <Proto> *)receiver anotherValue];
+   receiver += [objrcvr someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
+ /* { dg-error "invalid conversion" "" { target *-*-* } 34 } */
+ 
+   receiver += [objrcvr anotherValue];
+   receiver += [(Obj <Proto> *)objrcvr someValue];
+   receiver += [(Obj <Proto> *)objrcvr anotherValue];
+   receiver += [objrcvr2 someValue];
+   receiver += [objrcvr2 anotherValue];
+   receiver += [(Obj *)objrcvr2 someValue]; /* { dg-warning ".Obj. may not respond to .\\-someValue." } */
+ /* { dg-warning "invalid conversion" "" { target *-*-* } 42 } */
+ 
+   receiver += [(Obj *)objrcvr2 anotherValue];
+ 
+   return receiver;
+ }
+ 
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-5.mm	Tue Jun 28 02:01:08 2005
***************
*** 0 ****
--- 1,22 ----
+ /* Do not lose references to forward-declared protocols.  */
+ /* { dg-do compile } */
+ @class MyBaseClass;
+ @class MyClassThatFails;
+ @protocol _MyProtocol;
+ 
+ @interface MyClassThatFails
+ - (MyBaseClass<_MyProtocol> *) aMethod;
+ @end
+ 
+ @interface MyBaseClass
+ @end
+ 
+ @protocol _MyProtocol
+ @end
+ 
+ @implementation MyClassThatFails
+ - (MyBaseClass<_MyProtocol> *) aMethod
+ {
+     return 0;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-lossage-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-lossage-6.mm	Fri Jul  8 01:53:37 2005
***************
*** 0 ****
--- 1,17 ----
+ @class Base;
+ @protocol _Protocol;
+ 
+ @interface ClassA {
+ }
+ -(void) func1:(Base<_Protocol> *)inTarget;
+ @end
+ 
+ int main()
+ {
+ 	ClassA* theA = 0;
+ 	Base<_Protocol>* myBase = 0;
+ 	[theA func1:myBase];
+ 
+ 	return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-qual-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-qual-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/proto-qual-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/proto-qual-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,52 ----
+ /* Check that protocol qualifiers are compiled and encoded properly.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Protocol.h>
+ #ifndef __NEXT_RUNTIME__
+ #include <objc/objc-api.h>
+ #endif
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ /* The encoded parameter sizes will be rounded up to match pointer alignment.  */
+ #define ROUND(s,a) (a * ((s + a - 1) / a))
+ #define aligned_sizeof(T) ROUND(sizeof(T),__alignof(void *))
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @protocol Retain
+ + (oneway void)retainArgument:(out bycopy id)arg1 with:(in signed char **)arg2;
+ - (bycopy) address:(byref inout id)location with:(out short unsigned **)arg2;
+ @end
+ 
+ @interface Foo <Retain>
+ + (oneway void)retainArgument:(out bycopy id)arg with:(in signed char **)arg2;
+ @end
+ 
+ @implementation Foo
+ + (oneway void)retainArgument:(out bycopy id)arg1 with:(in signed char **)arg2 { }
+ - (bycopy) address:(byref inout id)location with:(out short unsigned **)arg2 { return nil; }
+ @end
+ 
+ Protocol *proto = @protocol(Retain);
+ struct objc_method_description *meth;
+ unsigned totsize, offs0, offs1, offs2, offs3, offs4, offs5, offs6, offs7;
+ 
+ static void scan_initial(const char *pattern) {
+   totsize = offs0 = offs1 = offs2 = offs3 = offs4 = offs5 = offs6 = offs7 = (unsigned)-1;
+   sscanf(meth->types, pattern, &totsize, &offs0, &offs1, &offs2, &offs3,
+       &offs4, &offs5, &offs6, &offs7);
+   CHECK_IF(!offs0 && offs1 == aligned_sizeof(id) && offs2 == offs1 + aligned_sizeof(SEL) && totsize >= offs2);
+ }
+ 
+ int main(void) {
+   meth = [proto descriptionForInstanceMethod: @selector(address:with:)];
+   scan_initial("O@%u@%u:%uNR@%uo^^S%u");
+   CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(unsigned));
+   meth = [proto descriptionForClassMethod: @selector(retainArgument:with:)];
+   scan_initial("Vv%u@%u:%uOo@%un^*%u");
+   CHECK_IF(offs3 == offs2 + aligned_sizeof(id) && totsize == offs3 + aligned_sizeof(char **));
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/qual-types-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/qual-types-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/qual-types-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/qual-types-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,68 ----
+ /* Test if ObjC++ can distinguish protocol qualifiers from
+    template arguments.  */
+ /* Author:  Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @protocol Zone
+ + allocFromZone:(void *)zone;
+ - copyFromZone:(void *)zone; 
+ @end
+ 
+ @protocol Init <Zone>
+ + initialize;
+ - init; 
+ @end
+ 
+ @interface Foo: Object
+ { @public int val; }
+ - init;
+ @end
+ 
+ template <class T, class U> struct X {
+   T x; U y;
+ };
+ 
+ X<int, float> xx;
+ 
+ template <typename T> struct Holder
+ {
+   T *obj;
+   static int counter;
+   Holder(void) { obj = [[T alloc] init]; }
+   ~Holder(void) { [obj free]; --counter; }
+   id <Init, Zone> getObjId(void) { return obj; }
+   Object <Zone, Init> *getObj(void) { return obj; }
+ };
+ 
+ typedef Holder <Foo <Init, Zone> > FooHolder;
+ 
+ @implementation Foo
+ -(id) init {
+   [super init];
+   val = ++FooHolder::counter;
+   return self;
+ }
+ @end
+ 
+ template <typename T>
+ int Holder<T>::counter = 0;
+ 
+ int main (void) {
+   CHECK_IF(FooHolder::counter == 0);
+   {
+     FooHolder holder;
+     CHECK_IF(holder.obj->val == 1);
+     CHECK_IF(FooHolder::counter == 1);
+     FooHolder holder2;
+     CHECK_IF(holder2.obj->val == 2);
+     CHECK_IF(FooHolder::counter == 2);
+   }
+   CHECK_IF(FooHolder::counter == 0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test whether including C++ keywords such as 'and', 'or',
+    'not', etc., is allowed inside ObjC selectors (as it must be).  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Int1 
+ + (int)and_eq:(int)arg1 and:(int)arg2;
+ - (int)or_eq:(int)arg1 or:(int)arg3;
+ - (int)not:(int)arg1 xor:(int)arg2;
+ - (void)bitand:(char)c1 bitor:(char)c2;
+ - (void)compl:(float)f1 xor_eq:(double)d1;
+ - (void)not_eq;
+ @end
+ 
+ @implementation Int1
+ + (int)and_eq:(int)arg1 and:(int)arg2 { return arg1 + arg2; }
+ - (int)or_eq:(int)arg1 or:(int)arg3 { return arg1 + arg3; }
+ - (int)not:(int)arg1 xor:(int)arg2 { return arg1 + arg2; }
+ - (void)bitand:(char)c1 bitor:(char)c2 { }
+ - (void)compl:(float)f1 xor_eq:(double)d1 { }
+ - (void)not_eq { }
+ @end
+ 
+ /* { dg-final { scan-assembler  "\\+\\\[Int1 and_eq:and:\\]|c_Int1__and_eq_and" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 or_eq:or:\\]|i_Int1__or_eq_or" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 not:xor:\\]|i_Int1__not_xor" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 bitand:bitor:\\]|i_Int1__bitand_bitor" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 compl:xor_eq:\\]|i_Int1__compl_xor_eq" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 not_eq\\]|i_Int1__not_eq" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-2.mm	Thu May 26 00:51:53 2005
***************
*** 0 ****
--- 1,17 ----
+ /* Test that we don't ICE when issuing a -Wselector warning.  */
+ /* { dg-options "-Wselector" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Foo
+ @end
+ @implementation Foo
+ -(void) foo
+ {
+   SEL a;
+   a = @selector(b1ar);
+ }
+ @end
+ /* { dg-warning "creating selector for nonexistent method .b1ar." "" { target *-*-* } 0 } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-3.mm	Thu May 26 00:01:02 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test warning for non-existent selectors.  */
+ /* This is the "-fgnu-runtime" variant of objc.dg/selector-1.m.  */
+ /* { dg-options "-Wselector -fgnu-runtime" } */
+ /* { dg-do compile } */
+ 
+ typedef struct objc_object { struct objc_class *class_pointer; } *id;
+ typedef const struct objc_selector    *SEL;
+ 
+ @interface Foo
+ - (void) foo;
+ - (void) bar;
+ @end
+ 
+ @implementation Foo
+ - (void) bar
+ {
+ }
+ 
+ - (void) foo
+ {
+   SEL a,b,c;
+   a = @selector(b1ar);
+   b = @selector(bar);
+ }
+ @end /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-4.mm	Thu May 26 02:27:50 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test warning for non existing selectors.  */
+ /* Contributed by Devang Patel <dpatel@apple.com>.  */
+ 
+ /* { dg-options "-Wselector -fnext-runtime" } */
+ /* { dg-do compile } */
+ 
+ typedef struct objc_object { struct objc_class *class_pointer; } *id;
+ typedef struct objc_selector *SEL;
+ 
+ @interface Foo
+ - (void) foo;
+ - (void) bar;
+ @end
+ 
+ @implementation Foo
+ - (void) bar
+ {
+ }
+ 
+ - (void) foo
+ {
+   SEL a,b,c;
+   a = @selector(b1ar); /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+   b = @selector(bar);
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-5.mm	Thu Sep  8 13:14:41 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-options "" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ int main()
+ {
+   SEL foo = @selector(foo::);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler  "foo::" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/selector-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/selector-6.mm	Thu Sep  8 13:14:41 2005
***************
*** 0 ****
--- 1,13 ----
+ /* { dg-options "" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ int main()
+ {
+   SEL foo = @selector(foo: a::);
+   return 0;
+ }
+ 
+ /* { dg-final { scan-assembler  "foo:a::" } } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/stubify-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/stubify-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/stubify-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/stubify-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,37 ----
+ /* All calls must be properly stubified.  Complain about any "call
+    _objc_msgSend<end-of-line>" without the $stub suffix.  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-Os -mdynamic-no-pic -fno-exceptions" } */
+ 
+ typedef struct objc_object { } *id ;
+ int x = 41 ;
+ 
+ extern "C" {
+   extern id objc_msgSend(id self, char * op, ...);
+   extern int bogonic (int, int, int);
+ }
+ 
+ @interface Document {}
+ - (Document *) window;
+ - (Document *) class;
+ - (Document *) close;
+ @end
+ @implementation Document
+ - (Document *) class { }
+ - (Document *) close { }
+ - (Document *) window { }
+ - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+   [[self window] close];
+   ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+   ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+   bogonic (3, 4, 5);
+   x++;
+ }
+ @end
+ 
+ /* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_objc_msgSend\n" } } */
+ /* { dg-final { scan-assembler     "\(bl|call\)\[ \t\]+L_objc_msgSend\\\$stub\n" } } */
+ /* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_bogonic\n" } } */
+ /* { dg-final { scan-assembler     "\(bl|call\)\[ \t\]+L_bogonic\\\$stub\n" } } */
+ /* { dg-final { scan-assembler-not "\\\$non_lazy_ptr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/stubify-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/stubify-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/stubify-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/stubify-2.mm	Thu Oct 20 23:59:58 2005
***************
*** 0 ****
--- 1,31 ----
+ /* All calls must be properly stubified.  */
+ /* Testcase extracted from TextEdit:Document.m.  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-mdynamic-no-pic -fdump-rtl-jump" } */
+ 
+ typedef struct objc_object { } *id ;
+ int x = 41 ;
+ extern id objc_msgSend(id self, char * op, ...);
+ extern int bogonic (int, int, int) ;
+ @interface Document {}
+ - (Document *) window;
+ - (Document *) class;
+ - (Document *) close;
+ @end
+ @implementation Document
+ - (Document *) class { }
+ - (Document *) close { }
+ - (Document *) window { }
+ - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+   [[self window] close];
+   ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+   ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+   bogonic (3, 4, 5);
+   x++;
+ }
+ @end
+ 
+ /* Any symbol_ref of an un-stubified objc_msgSend is an error; look
+    for "objc_msgSend" in quotes, without the $stub suffix.  */
+ /* { dg-final { scan-file-not stubify-2.mm.08.jump "symbol_ref.*\"objc_msgSend\"" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-class-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-class-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-class-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-class-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test calling super from within a category method.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface NSObject
+ @end
+ @interface NSMenuItem: NSObject
+ @end
+ 
+ @interface NSObject (Test)
+ + (int) test_func;
+ @end
+ 
+ @implementation NSObject (Test)
+ + (int) test_func
+ {}
+ @end
+ 
+ @interface NSMenuItem (Test)
+ + (int) test_func;
+ @end
+ 
+ @implementation NSMenuItem (Test)
+ + (int) test_func
+ {
+    return [super test_func];  /* { dg-bogus "invalid use of undefined type" } */
+ }   /* { dg-bogus "forward declaration of" "" { target *-*-* } 28 } */
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-class-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-class-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-class-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-class-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,35 ----
+ /* Bail out gracefully if attempting to derive from a class that has only been
+    forward-declared (via @class).  Conversely, @compatibility_alias declarations
+    should be traversed to find the @interface.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @class MyWpModule;
+ 
+ @compatibility_alias MyObject Object;
+ @compatibility_alias FictitiousModule MyWpModule;
+ 
+ @protocol MySelTarget
+ - (id) meth1;
+ @end
+ 
+ @protocol Img
+ - (id) meth2;
+ @end
+ 
+ @interface FunnyModule: FictitiousModule <Img> /* { dg-error ".MyWpModule., superclass of .FunnyModule." } */
+ - (id) meth2;
+ @end
+ 
+ @interface MyProjWpModule : MyWpModule <MySelTarget, Img> /* { dg-error ".MyWpModule., superclass of .MyProjWpModule." } */ {
+   id i1, i2;
+ }
+ - (id) meth1;
+ - (id) meth2;
+ @end
+ 
+ @interface AnotherModule: MyObject <MySelTarget>
+ - (id) meth1;
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-dealloc-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,46 ----
+ /* Check for warnings about missing [super dealloc] calls.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Foo {
+   void *isa;
+ }
+ - (void) dealloc;
+ - (void) some_other;
+ @end
+ 
+ @interface Bar: Foo {
+   void *casa;
+ }
+ - (void) dealloc;
+ @end
+ 
+ @interface Baz: Bar {
+   void *usa;
+ }
+ - (void) dealloc;
+ @end
+ 
+ @implementation Foo
+ - (void) dealloc {
+   isa = 0;   /* Should not warn here.  */
+ }
+ - (void) some_other {
+   isa = (void *)-1;
+ }
+ @end
+ 
+ @implementation Bar
+ - (void) dealloc {
+   casa = 0;
+   [super some_other];
+ }  /* { dg-warning "method possibly missing a .super dealloc. call" } */
+ @end
+ 
+ @implementation Baz
+ - (void) dealloc {
+   usa = 0;
+   [super dealloc];  /* Should not warn here.  */
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/super-dealloc-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,46 ----
+ /* Check for warnings about missing [super dealloc] calls.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Foo {
+   void *isa;
+ }
+ - (void) dealloc;
+ - (void) some_other;
+ @end
+ 
+ @interface Bar: Foo {
+   void *casa;
+ }
+ - (void) dealloc0;
+ @end
+ 
+ @interface Baz: Bar {
+   void *usa;
+ }
+ - (void) dealloc;
+ @end
+ 
+ @implementation Foo
+ - (void) dealloc {
+   isa = 0;   /* Should not warn here.  */
+ }
+ - (void) some_other {
+   isa = (void *)-1;
+ }
+ @end
+ 
+ @implementation Bar
+ - (void) dealloc0 {
+   casa = 0;
+   [super some_other];  /* Should not warn here.  */
+ } 
+ @end
+ 
+ @implementation Baz
+ - (void) dealloc {
+   usa = 0;
+   [super dealloc0]; 
+ } /* { dg-warning "method possibly missing a .super dealloc. call" } */
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,49 ----
+ /* Test for using ObjC classes as C++ template parameters.  */
+ /* Author:  Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @interface Base: Object
+ - (int) meth;
+ @end
+ 
+ @interface Derived: Base   
+ - (int) meth;                
+ @end
+ 
+ static int count = 0;
+ 
+ template <class T> struct Templ
+ {
+   T *m;
+   int i;
+   Templ(): i(55), m([[T alloc] init]) { count++; }
+   ~Templ() { [m free]; count--; }
+ };
+ 
+ @implementation Base
+ - (int) meth { return 333; }
+ @end
+ 
+ @implementation Derived
+ - (int) meth { return 666; }
+ @end
+ 	
+ int main (void) {
+   CHECK_IF(count == 0);
+   {
+     Templ<Derived> derived;
+     CHECK_IF(derived.i == 55 && count == 1);
+     Templ<Base> base;
+     CHECK_IF(base.i == 55 && count == 2);
+     CHECK_IF([base.m meth] == 333);
+     CHECK_IF([derived.m meth] == 666);
+   }
+   CHECK_IF(count == 0);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-2.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,29 ----
+ /* Test if ObjC classes (and pointers thereto) can participate
+    in C++ overloading.  Correct handling of cv-qualifiers is 
+    key here.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface foo {
+   int a, b;
+ }
+ @end
+ 
+ struct bar {
+   int c, d;
+ };
+ 
+ template <class _Tp>
+ struct allocator {
+   typedef _Tp*       pointer;
+   typedef const _Tp* const_pointer;
+   typedef _Tp&       reference;
+   typedef const _Tp& const_reference;
+ 
+   pointer address(reference __x) const { return &__x; }
+   const_pointer address(const_reference __x) const { return &__x; }
+ };
+ 
+ allocator<bar *> b;
+ allocator<foo *> d;
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-3.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,80 ----
+ /* Test for passing arguments to ObjC methods in the context of template
+    expansion.  */
+ /* Contributed by Ziemowit Laski  <zlaski@apple.com>.  */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @interface ObjCClass : Object
+ {
+ @public
+   int info;
+ }
+ -(id) init;
+ -(id) initWithInformation: (int) whatInfo;
+ -(id) initWithInformation: (int) whatInfo andInfo: (int) info2;
+ @end
+ 
+ void foo(int info) {
+    ObjCClass *mObj1 = [[ObjCClass alloc] init];
+    ObjCClass *mObj2 = [[ObjCClass alloc] initWithInformation: info];
+    ObjCClass *mObj3 = [[ObjCClass alloc] initWithInformation: info andInfo: 39];
+ 
+    CHECK_IF(mObj1->info == 666);
+    CHECK_IF(mObj2->info == info);
+    CHECK_IF(mObj3->info == info + 39);
+ }
+ 
+ template <class WrappedObjCClass>
+ class ObjCObjectWrapper
+ {
+     public:
+         ObjCObjectWrapper(int info);
+         WrappedObjCClass *mObj1, *mObj2, *mObj3;
+ };
+ 
+ template <class WrappedObjCClass>
+ ObjCObjectWrapper<WrappedObjCClass>::ObjCObjectWrapper(int info)
+ {
+     mObj1 = [[WrappedObjCClass alloc] init];
+     mObj2 = [[WrappedObjCClass alloc] initWithInformation: info];
+     mObj3 = [[WrappedObjCClass alloc] initWithInformation: info andInfo: 67];
+ }
+ 
+ @implementation ObjCClass
+ -(id) init {
+   return [self initWithInformation:666];
+ }
+ -(id) initWithInformation: (int) whatInfo {
+   [super init];
+   info = whatInfo;
+   return self;
+ }
+ -(id) initWithInformation: (int) whatInfo andInfo: (int) info2 {
+   [super init];
+   info = whatInfo + info2;
+   return self;
+ }
+ @end
+ 
+ ObjCObjectWrapper<ObjCClass> staticInstance(42); 
+ 
+ int main(void) {
+   ObjCObjectWrapper<ObjCClass> stackInstance(47);
+ 
+   foo(89);
+   
+   CHECK_IF(staticInstance.mObj1->info == 666);
+   CHECK_IF(staticInstance.mObj2->info == 42);
+   CHECK_IF(staticInstance.mObj3->info == 42 + 67);
+   
+   CHECK_IF(stackInstance.mObj1->info == 666);
+   CHECK_IF(stackInstance.mObj2->info == 47);
+   CHECK_IF(stackInstance.mObj3->info == 47 + 67);
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-4.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,81 ----
+ /* Author:  Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+ 
+ #ifdef __NEXT_RUNTIME__
+ /* The following ain't pretty, but does allow us to have just one copy
+    of next_mapping.h.  */
+ #include "../objc/execute/next_mapping.h"
+ #else
+ #include <objc/NXConstStr.h>
+ #endif
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ template <class ARR, class TYPE> class TestT
+ {
+ public:
+   TYPE k;
+   int abc(ARR *array) {
+     return [array count] * k;
+   }
+   TestT(TYPE _k): k(_k) { }
+ };
+ 
+ template <class TYPE>
+ const char *getDesc(void) {
+   return [TYPE name];
+ }
+ 
+ @class Array;
+ 
+ template <class TYPE>
+ int abc(TYPE *xyz, Array *array) {
+   return [xyz count] + [array count];
+ }
+ 
+ @interface Array: Object {
+   id *arr;
+   int count;
+ }
+ + (id)arrayWithObjects:(id)first, ... ;
+ - (int)count;
+ @end
+ 
+ @implementation Array
+ + (id)arrayWithObjects:(id)first, ... {
+   Array *a = [Array new];
+   a->count = 0;
+   a->arr = (id *) calloc(8, sizeof(id));
+ 
+   va_list args;
+   va_start (args, first);
+   
+   a->arr[a->count++] = first;
+ 
+   for (id el; el = va_arg(args, id); a->count++)
+     a->arr[a->count] = el;
+ 
+   return a;
+ }
+ - (int)count {
+   return count;
+ }
+ @end
+ 
+ int main(void) {
+   CHECK_IF(!strcmp ([@"Object" cString], getDesc<Object>()));
+   CHECK_IF(!strcmp ([@"Array" cString], getDesc<Array>()));
+ 
+   Array* a1 = [Array arrayWithObjects:@"One", @"Two", @"Three", nil];
+   Array* a2 = [Array arrayWithObjects:@"Four", @"Five", nil];
+ 
+   TestT<Array, int> t(7);
+   CHECK_IF(t.abc(a1) + t.abc(a2) == 35);
+   CHECK_IF(abc(a1, a2) * t.k == 35);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-5.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,17 ----
+ // Test that extern template does not get emitted.
+ // Author: Matt Austern <austern@apple.com>
+ 
+ // { dg-do compile }
+ // { dg-options "" }
+ // { dg-final { scan-assembler-not ".globl __ZN3FooIiE5identEi" } }
+ 
+ template <typename X>
+ struct Foo {
+   X ident(X x) { return x; }
+ };
+ 
+ extern template struct Foo<int>;
+ 
+ int abcde(Foo<int>& foo, int n) {
+   return foo.ident(n);
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/template-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/template-6.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,16 ----
+ // Test that extern template does not get emitted.
+ // Author: Matt Austern <austern@apple.com>
+ 
+ // { dg-do compile }
+ // { dg-options "" }
+ // { dg-final { scan-assembler-not ".globl __ZN3FooIiE5identEi" } }
+ 
+ template <typename X>
+   struct Foo { X ident(X x); };
+ 
+ template <typename X> 
+   X Foo<X>::ident(X x) { return x; }
+ 
+ extern template struct Foo<int>;
+ 
+ int abcde(Foo<int>& foo, int n) { return foo.ident(n); }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,42 ----
+ /* Test if the compiler accepts @throw / @try..@catch..@finally syntax.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fobjc-exceptions" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ #include <stdio.h>
+ #include <setjmp.h>
+ 
+ @interface Frob: Object
+ @end
+ 
+ @implementation Frob: Object
+ @end
+ 
+ static int exc_control = 0;
+ 
+ int proc() {
+   if(exc_control) {
+     printf ("Throwing (%d)... ", exc_control);
+     @throw [Frob new];
+   }
+   return 1;
+ }
+ 
+ int foo()
+ {
+   @try {
+     return proc();
+   }
+   @catch (Frob* ex) {
+     if(exc_control > 1) {
+       printf("Rethrowing (%d)... ", exc_control);
+       @throw;
+     }
+     return 0;
+   }
+   @finally {
+     printf("In @finally block (%d)... ", exc_control);
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-10.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-10.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-10.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-10.mm	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Check that taking the address of a local variable marked 'volatile'
+    by the compiler does not generate untoward errors.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fobjc-exceptions" } */
+ /* { dg-do compile } */
+ 
+ 
+ void foo (int *arg1, int *arg2)
+ {
+   *arg1 = *arg2;
+ }
+ 
+ void bar (int arg) {
+   int rcvr;
+ 
+   @try {
+     rcvr = arg;
+   }
+   @finally {
+     int *rcvr0 = &rcvr;
+     foo (rcvr0, &arg);
+   }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-11.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-11.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-11.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-11.mm	Fri Jul  1 01:44:12 2005
***************
*** 0 ****
--- 1,40 ----
+ /* Ensure that @try/@catch blocks do not mess with types of
+    local objects (other than their volatile bits).  */
+ 
+ /* { dg-options "-fobjc-exceptions -fnext-runtime" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @protocol Proto1
+ - (int)meth1;
+ @end
+ 
+ @protocol Proto2
+ - (int)meth2;
+ @end
+ 
+ @interface MyClass: Object <Proto2> {
+   int a;
+ }
+ - (int)meth2;
+ - (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2;
+ @end
+ 
+ MyClass *mc1, *mc2;
+ 
+ @implementation MyClass
+ - (int)meth2 {
+   return a;
+ }
+ - (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2 {
+   @try {
+     mc2 = p2;   /* { dg-warning "type .id <Proto1>. does not conform to the .Proto2. protocol" } */
+   }
+   @catch (id exc) {
+     return exc;
+   }
+   mc1 = p1;  /* no warning here! */
+   return self;
+ }
+ @end  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-2.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-2.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-2.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-2.mm	Thu Oct  6 23:49:31 2005
***************
*** 0 ****
--- 1,78 ----
+ /* Test out '@catch(id foo) {...}', which should catch
+    all uncaught exceptions.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fobjc-exceptions" } */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ /* The following is not required in actual user code; we include it
+    here to check that the compiler generates an internal definition of
+    _setjmp that is consistent with what <setjmp.h> provides.  */
+ #include <setjmp.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @interface Frob: Object
+ @end
+ 
+ @implementation Frob: Object
+ @end
+ 
+ static Frob* _connection = nil;
+ 
+ //--------------------------------------------------------------------
+ 
+ 
+ void test (Object* sendPort)
+ {
+   int cleanupPorts = 1;
+   Frob* receivePort = nil;
+ 	
+   @try {
+     printf ("receivePort = %p\n", receivePort);
+     printf ("sendPort = %p\n", sendPort);
+     printf ("cleanupPorts = %d\n", cleanupPorts);
+     printf ("---\n");
+ 		
+     receivePort = (Frob *) -1;
+     _connection = (Frob *) -1;
+     printf ("receivePort = %p\n", receivePort);
+     printf ("sendPort = %p\n", sendPort);
+     printf ("cleanupPorts = %d\n", cleanupPorts);
+     printf ("---\n");
+ 		
+     receivePort = nil;
+     sendPort = nil;
+     cleanupPorts = 0;
+ 		
+     printf ("receivePort = %p\n", receivePort);
+     printf ("sendPort = %p\n", sendPort);
+     printf ("cleanupPorts = %d\n", cleanupPorts);
+     printf ("---\n");		
+ 		
+     @throw [Object new];
+   }
+   @catch(Frob *obj) {
+     printf ("Exception caught by incorrect handler!\n");
+     CHECK_IF(0);
+   }
+   @catch(id exc) {
+     printf ("Exception caught by correct handler.\n");
+     printf ("receivePort = %p (expected 0x0)\n", receivePort);
+     printf ("sendPort = %p (expected 0x0)\n", sendPort);
+     printf ("cleanupPorts = %d (expected 0)\n", cleanupPorts);
+     printf ("---");
+     CHECK_IF(!receivePort);
+     CHECK_IF(!sendPort);
+     CHECK_IF(!cleanupPorts);
+   }
+ }
+ 
+ int main (void) {
+   test((Object *)-1);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-3.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-3.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-3.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-3.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,18 ----
+ /* Test if caught exception objects are accessible inside the
+    @catch block.  (Yes, I managed to break this.)  */
+ /* Author: Ziemowit Laski <zlaski@apple.com> */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fobjc-exceptions" } */
+ 
+ #include <objc/Object.h>
+ 
+ const char *foo(void)
+ {
+   @try {
+     return "foo";
+   }
+   @catch (Object* theException) {
+     return [theException name];
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-4.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-4.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-4.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-4.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Check that the compiler does not incorrectly complain about
+    exceptions being caught by previous @catch blocks.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com> */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -fobjc-exceptions" } */
+ 
+ @interface Exception
+ @end
+ 
+ @interface FooException : Exception
+ @end
+ 
+ extern void foo();
+ 
+ void test()
+ {
+   @try {
+     foo();
+   }
+   @catch (FooException* fe) {
+   }
+   @catch (Exception* e) {
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-5.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-5.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-5.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-5.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Check that the compiler does correctly complain about
+    exceptions being caught by previous @catch blocks.  */
+ /* Force the use of NeXT runtime to see that we don't ICE after
+    generating the warning message.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wall -fnext-runtime -fobjc-exceptions" } */
+ 
+ @interface Exception
+ @end
+ 
+ @interface FooException : Exception
+ @end
+ 
+ extern void foo();
+ 
+ void test()
+ {
+   @try {
+     foo();
+   }
+   @catch (Exception* e) {	/* { dg-warning "earlier handler" } */
+   }
+   @catch (FooException* fe) {	/* { dg-warning "will be caught" } */
+   }
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-6.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-6.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-6.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-6.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,14 ----
+ /* A very simple @try-@catch example. */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fobjc-exceptions" } */
+ 
+ int foo(void) {
+   @try {
+     return 2;
+   }
+   @catch (id foo) {
+     return 1;
+   }
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-7.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-7.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-7.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-7.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fobjc-exceptions" } */
+ 
+ #include <objc/Object.h>
+ 
+ int main (int argc, const char * argv[]) {
+   Object * pool = [Object new];
+   int a;
+ 
+   if ( 1 ) {
+     @try {
+       a = 1;
+     }
+     @catch (Object *e) {
+       a = 2;
+     }
+     @finally {
+       a = 3;
+     }
+   }
+     
+   [pool free];
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-8.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-8.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-8.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-8.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Test for graceful compilation of @synchronized statements.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fobjc-exceptions" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Derived: Object
+ - (id) meth;
+ @end
+ 
+ @implementation Derived
+ - (id) meth {
+   return self;
+ }
+ 
+ static Derived* rewriteDict(void) {
+   static Derived *sDict = 0;
+   if (sDict == 0) {
+     @synchronized ([Derived class]) {
+       if (sDict == 0)
+ 	sDict = [Derived new];
+     }
+   } 
+   return sDict;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-9.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-9.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/try-catch-9.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/try-catch-9.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,65 ----
+ /* Check that local variables that get modified inside the @try
+    block survive until the @catch block is reached.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fobjc-exceptions -O2" } */
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+ int gi1 = 9, gi2 = 19;
+ float gf1 = 9.0, gf2 = 19.0;
+ id obj2 = nil;
+ 
+ void foo (int arg1, float *arg2)
+ {
+   int *pi = &gi1;
+   float *pf = &gf1;
+   id obj1 = nil;
+   int local1 = 45, local2 = 47;
+   float local3 = 3.0, local4 = 4.0;
+   register int local5 = 15;
+   static float local6 = 16.0;
+ 
+   @try {
+     local1 = 123;
+     local2 = 345;
+     local3 = 5.0;
+     local4 = 6.0;
+     local5 = 17;
+     local6 = 18.0;
+     pi = &gi2;
+     pf = &gf2;
+     obj2 = obj1 = [Object new];
+     arg1 = 17;
+     arg2 = &gf2;
+     
+     @throw [Object new];
+   }
+   @catch (Object *obj) {
+    if (local1 != 123 || local2 != 345 || local3 != 5.0
+        || local4 != 6.0 || local5 != 17 || local6 != 18.0) {
+      printf("Abort 1\n");
+      abort();
+    }
+    if (pi != &gi2 || pf != &gf2) {
+      printf("Abort 2\n");
+      abort();
+    }
+    if (!obj1 || obj1 != obj2) {
+      printf("Abort 3\n");
+      abort();
+    }
+    if (arg1 != 17 || arg2 != &gf2) {
+      printf("Abort 4\n");
+      abort();
+    }
+   }
+ }
+ 
+ int main(void) {
+   foo(15, &gf1);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/typedef-alias-1.mm	Fri Jun 24 00:22:52 2005
***************
*** 0 ****
--- 1,16 ----
+ /* Typedefs of ObjC types should work without any bogus warnings. */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ typedef Object MyObject;
+ 
+ int main (int argc, const char * argv[])
+ {
+     Object* a = nil;
+     MyObject* b = a;
+     Object* c = b;
+ 
+     return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/obj-c++.dg/va-meth-1.mm gcc-4.1.0/gcc/testsuite/obj-c++.dg/va-meth-1.mm
*** gcc-4.0.2/gcc/testsuite/obj-c++.dg/va-meth-1.mm	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/obj-c++.dg/va-meth-1.mm	Thu May 26 01:53:56 2005
***************
*** 0 ****
--- 1,74 ----
+ /* Based on objc/execute/va_method.m, by Nicola Pero */
+ 
+ /* { dg-do run } */
+ 
+ #include <objc/Object.h>
+ #include <stdarg.h>
+ #include <stdlib.h>
+ 
+ /* Test methods with "C-style" trailing arguments, with or without ellipsis. */
+ 
+ @interface MathClass: Object
+ /* sum positive numbers; -1 ends the list */
+ + (int) sum: (int) firstNumber, int secondNumber, ...;
+ + (int) prod: (int) firstNumber, int secondNumber, int thirdNumber;
+ + (int) minimum: (int) firstNumber, ...;
+ @end
+ 
+ extern "C" int some_func(id self, SEL _cmd, int firstN, int secondN, int thirdN, ...) {
+   return firstN + secondN + thirdN;
+ }
+ 
+ @implementation MathClass
+ + (int) sum: (int) firstNumber, int secondNumber, ...
+ {
+   va_list ap;
+   int sum = 0, number = 0;
+ 
+   va_start (ap, secondNumber);
+   number = firstNumber + secondNumber;
+ 
+   while (number >= 0)
+     {
+       sum += number;
+       number = va_arg (ap, int);
+     }
+   
+   va_end (ap);
+ 
+   return sum;
+ }
+ + (int) prod: (int) firstNumber, int secondNumber, int thirdNumber {
+   return firstNumber * secondNumber * thirdNumber;
+ }
+ + (int) minimum: (int) firstNumber, ...
+ {
+   va_list ap;
+   int minimum = 999, number = 0;
+   
+   va_start (ap, firstNumber);
+   number = firstNumber;
+   
+   while (number >= 0)
+     {
+       minimum = (minimum < number ? minimum: number);
+       number = va_arg (ap, int);
+     }
+   
+   va_end (ap);
+   
+   return minimum;
+ }
+ @end
+ 
+ int main (void)
+ {
+   if ([MathClass sum: 1, 2, 3, 4, 5, -1] != 15)
+     abort ();
+   if ([MathClass prod: 4, 5, 6] != 120)
+     abort ();
+   if ([MathClass minimum: 17, 9, 133, 84, 35, -1] != 9)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/compile/compile.exp gcc-4.1.0/gcc/testsuite/objc/compile/compile.exp
*** gcc-4.0.2/gcc/testsuite/objc/compile/compile.exp	Tue Dec 11 18:24:17 2001
--- gcc-4.1.0/gcc/testsuite/objc/compile/compile.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified by Stan Shebs <shebs@apple.com>
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified by Stan Shebs <shebs@apple.com>
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/compile/trivial.m gcc-4.1.0/gcc/testsuite/objc/compile/trivial.m
*** gcc-4.0.2/gcc/testsuite/objc/compile/trivial.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/compile/trivial.m	Sat Aug 13 21:16:04 2005
***************
*** 0 ****
--- 1,6 ----
+ #import <objc/Object.h>
+ 
+ int main(void)
+ {
+   [Object class];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/catchall-1.m gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/catchall-1.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/catchall-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/catchall-1.m	Sun Aug 14 00:58:26 2005
***************
*** 0 ****
--- 1,76 ----
+ /* Test out '@catch(id foo) {...}', which should catch all uncaught
+    exceptions.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ #include <objc/Object.h>
+ #include <stdio.h>
+ 
+ /* The following is not required in actual user code; we include it
+    here to check that the compiler generates an internal definition of
+    _setjmp that is consistent with what <setjmp.h> provides.  */
+ #include <setjmp.h>
+ 
+ extern void abort(void);
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ @interface Frob: Object
+ @end
+ 
+ @implementation Frob: Object
+ @end
+ 
+ static Frob* _connection = nil;
+ 
+ //--------------------------------------------------------------------
+ 
+ 
+ void test (Object* sendPort)
+ {
+ 	int cleanupPorts = 1;
+ 	Frob* receivePort = nil;
+ 	
+ 	@try {
+ 		printf ("receivePort = %p\n", receivePort);
+ 		printf ("sendPort = %p\n", sendPort);
+ 		printf ("cleanupPorts = %d\n", cleanupPorts);
+ 		printf ("---\n");
+ 		
+ 		receivePort = (Frob *) -1;
+ 		_connection = (Frob *) -1;
+ 		printf ("receivePort = %p\n", receivePort);
+ 		printf ("sendPort = %p\n", sendPort);
+ 		printf ("cleanupPorts = %d\n", cleanupPorts);
+ 		printf ("---\n");
+ 		
+ 		receivePort = nil;
+ 		sendPort = nil;
+ 		cleanupPorts = 0;
+ 		
+ 		printf ("receivePort = %p\n", receivePort);
+ 		printf ("sendPort = %p\n", sendPort);
+ 		printf ("cleanupPorts = %d\n", cleanupPorts);
+ 		printf ("---\n");		
+ 		
+ 		@throw [Object new];
+ 	}
+ 	@catch(Frob *obj) {
+ 		printf ("Exception caught by incorrect handler!\n");
+ 		CHECK_IF(0);
+ 	}
+ 	@catch(id exc) {
+ 		printf ("Exception caught by correct handler.\n");
+ 		printf ("receivePort = %p (expected 0x0)\n", receivePort);
+ 		printf ("sendPort = %p (expected 0x0)\n", sendPort);
+ 		printf ("cleanupPorts = %d (expected 0)\n", cleanupPorts);
+ 		printf ("---");
+ 		CHECK_IF(!receivePort);
+ 		CHECK_IF(!sendPort);
+ 		CHECK_IF(!cleanupPorts);
+ 	}
+ }
+ 
+ int main (void) {
+ 
+ 	test((Object *)-1);
+ 	return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/exceptions.exp gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/exceptions.exp
*** gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/exceptions.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/exceptions.exp	Sun Aug 14 00:58:26 2005
***************
*** 0 ****
--- 1,42 ----
+ # Copyright (C) 1991, 1992, 1993, 1995, 1997 Free Software Foundation, Inc.
+ 
+ # This program is free software; you can redistribute it and/or modify
+ # it under the terms of the GNU General Public License as published by
+ # the Free Software Foundation; either version 2 of the License, or
+ # (at your option) any later version.
+ # 
+ # This program is distributed in the hope that it will be useful,
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ # GNU General Public License for more details.
+ # 
+ # You should have received a copy of the GNU General Public License
+ # along with this program; if not, write to the Free Software
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
+ 
+ # This file was written by Rob Savoye. (rob@cygnus.com)
+ # Modified by Ovidiu Predescu (ovidiu@aracnet.com)
+ 
+ 
+ if $tracelevel then {
+     strace $tracelevel
+ }
+ 
+ set additional_flags ""
+ lappend additional_flags "-fobjc-exceptions"
+ 
+ # load support procs
+ load_lib objc-torture.exp
+ 
+ #
+ # main test loop
+ #
+ 
+ foreach src [lsort [glob -nocomplain $srcdir/$subdir/*.m]] {
+     # If we're only testing specific files and this isn't one of them, skip it.
+     if ![runtest_file_p $runtests $src] then {
+ 	continue
+     }
+ 
+     objc-torture-execute $src $additional_flags
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/finally-1.m gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/finally-1.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/finally-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/finally-1.m	Mon Aug 15 01:13:39 2005
***************
*** 0 ****
--- 1,59 ----
+ #include <objc/Object.h>
+ #include <stdio.h>
+ #include <stdlib.h>
+ 
+ static int made_try = 0;
+ 
+ int
+ thrower_try_body()
+ {
+   made_try++;
+   return (0);
+ }
+ 
+ static int made_finally = 0;
+ 
+ int
+ finally_body()
+ {
+   made_finally++;
+   return (0);
+ }
+ 
+ int
+ thrower()
+ {
+   @try
+   {
+     thrower_try_body();
+     @throw [Object new];
+   }
+   @finally
+   {
+     finally_body();
+   }     
+   return 0;
+ }
+ 
+ static int made_catch = 0;
+ 
+ int 
+ main(int ac, char *av[])
+ {
+   @try
+   {
+     thrower();
+   }
+   @catch (id exc)
+   {
+     made_catch++;
+     [exc free];
+   }
+   if (made_try != 1)
+     abort ();
+   if (made_finally != 1)
+     abort ();
+   if (made_catch != 1)
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/foward-1.m gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/foward-1.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/foward-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/foward-1.m	Sun Aug 14 00:58:26 2005
***************
*** 0 ****
--- 1,39 ----
+ /* Check that throwing an exception from a -forward:: works.  */
+ /* Developed by Marcin Koziej <creep@desk.pl>.  */
+ 
+ #import <objc/Object.h>
+ #import <objc/objc-api.h>
+ #include <stdlib.h>
+ 
+ static int i;
+ 
+ @interface Thrower : Object
+ - forward: (SEL) s : (void*) a;
+ @end
+ 
+ @implementation Thrower
+ - forward: (SEL) s : (void*) a
+ {
+   i++;
+   @throw [Object new];
+ }
+ @end
+ int
+ main()
+ {
+   id t = [Thrower new];
+   @try
+   {
+     [t doesnotexist];
+   }
+   @catch (id error)
+   {
+     i++;
+     [error free];
+   }
+   
+   if (i != 2)
+     abort ();
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/local-variables-1.m gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/local-variables-1.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/local-variables-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/local-variables-1.m	Sun Aug 14 00:58:26 2005
***************
*** 0 ****
--- 1,62 ----
+ /* Check that local variables that get modified inside the @try
+    block survive until the @catch block is reached.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ #include <stdio.h>
+ 
+ int gi1 = 9, gi2 = 19;
+ float gf1 = 9.0, gf2 = 19.0;
+ id obj2 = nil;
+ 
+ void foo (int arg1, float *arg2)
+ {
+   int *pi = &gi1;
+   float *pf = &gf1;
+   id obj1 = nil;
+   int local1 = 45, local2 = 47;
+   float local3 = 3.0, local4 = 4.0;
+   register int local5 = 15;
+   static float local6 = 16.0;
+ 
+   @try {
+     local1 = 123;
+     local2 = 345;
+     local3 = 5.0;
+     local4 = 6.0;
+     local5 = 17;
+     local6 = 18.0;
+     pi = &gi2;
+     pf = &gf2;
+     obj2 = obj1 = [Object new];
+     arg1 = 17;
+     arg2 = &gf2;
+     
+     @throw [Object new];
+   }
+   @catch (Object *obj) {
+     if (local1 != 123 || local2 != 345 || local3 != 5.0 || local4 != 6.0
+        || local5 != 17 || local6 != 18.0) {
+       printf("Abort 1\n");
+       abort();
+     }
+     if(pi != &gi2 || pf != &gf2) {
+       printf("Abort 2\n");
+       abort();
+     }
+     if(!obj1 || obj1 != obj2) {
+       printf("Abort 3\n");
+       abort();
+     }
+     if(arg1 != 17 || arg2 != &gf2) {
+       printf("Abort 4\n");
+       abort();
+     }
+   }
+ }
+ 
+ int main(void) {
+   foo(15, &gf1);
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/trivial.m gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/trivial.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/exceptions/trivial.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/exceptions/trivial.m	Sun Aug 14 00:58:26 2005
***************
*** 0 ****
--- 1,7 ----
+ #import <objc/Object.h>
+ 
+ int main(void)
+ {
+   [Object class];
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/execute.exp gcc-4.1.0/gcc/testsuite/objc/execute/execute.exp
*** gcc-4.0.2/gcc/testsuite/objc/execute/execute.exp	Tue Oct  9 10:16:27 2001
--- gcc-4.1.0/gcc/testsuite/objc/execute/execute.exp	Sat Jun 25 01:45:27 2005
***************
*** 12,18 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified by Ovidiu Predescu (ovidiu@aracnet.com)
--- 12,18 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 
  
  # This file was written by Rob Savoye. (rob@cygnus.com)
  # Modified by Ovidiu Predescu (ovidiu@aracnet.com)
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/nested-func-1.m gcc-4.1.0/gcc/testsuite/objc/execute/nested-func-1.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/nested-func-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/nested-func-1.m	Sun Aug 14 01:33:13 2005
***************
*** 0 ****
--- 1,36 ----
+ /* Test basic nested C function functionality within ObjC
+    methods.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ #include <stdio.h>
+ #include <stdlib.h>
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ 
+ int bappy (int (*blargh) (int a, int b, int c))
+ {
+   return blargh (4, 7, 2) + 3;
+ }
+ 
+ @interface Foo: Object
+ + (int)foo;
+ @end
+ 
+ @implementation Foo
+ + (int)foo
+ {
+   int blargh (int a, int b, int c)
+   {
+     return a * b + c;
+   }
+   return bappy (blargh);
+ }
+ @end
+ 
+ int main () 
+ {
+   int f = [Foo foo];
+   if (f != 33)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/next_mapping.h gcc-4.1.0/gcc/testsuite/objc/execute/next_mapping.h
*** gcc-4.0.2/gcc/testsuite/objc/execute/next_mapping.h	Mon Jun  7 08:48:31 2004
--- gcc-4.1.0/gcc/testsuite/objc/execute/next_mapping.h	Thu May 26 01:53:56 2005
***************
*** 8,13 ****
--- 8,15 ----
  #include <objc/objc-class.h>
  #include <objc/Object.h>
  #include <ctype.h>
+ #include <stdlib.h>
+ #include <string.h>
  
  #define objc_get_class(C)			objc_getClass(C)
  #define objc_get_meta_class(C)			objc_getMetaClass(C)
***************
*** 45,66 ****
  /* The following is necessary to "cover" the bf*.m test cases on NeXT.  */
  
  #undef  MAX
  #define MAX(X, Y)                    \
    ({ typeof (X) __x = (X), __y = (Y); \
       (__x > __y ? __x : __y); })
- 
- #undef  MIN
  #define MIN(X, Y)                    \
    ({ typeof (X) __x = (X), __y = (Y); \
       (__x < __y ? __x : __y); })
-   
- #undef  ROUND
  #define ROUND(V, A) \
    ({ typeof (V) __v = (V); typeof (A) __a = (A); \
       __a * ((__v+__a - 1)/__a); })
  
  #define BITS_PER_UNIT __CHAR_BIT__
! #define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (struct{char a;}))
  
  /* Not sure why the following are missing from NeXT objc headers... */
  
--- 47,74 ----
  /* The following is necessary to "cover" the bf*.m test cases on NeXT.  */
  
  #undef  MAX
+ #undef  MIN
+ #undef  ROUND
+ 
+ #ifdef __cplusplus
+ #define MAX(X, Y) ((X > Y) ? X : Y)
+ #define MIN(X, Y) ((X < Y) ? X : Y)
+ #define ROUND(V, A) (A * ((V + A - 1) / A))
+ #else
  #define MAX(X, Y)                    \
    ({ typeof (X) __x = (X), __y = (Y); \
       (__x > __y ? __x : __y); })
  #define MIN(X, Y)                    \
    ({ typeof (X) __x = (X), __y = (Y); \
       (__x < __y ? __x : __y); })
  #define ROUND(V, A) \
    ({ typeof (V) __v = (V); typeof (A) __a = (A); \
       __a * ((__v+__a - 1)/__a); })
+ #endif
  
  #define BITS_PER_UNIT __CHAR_BIT__
! typedef struct{ char a; } __small_struct;
! #define STRUCTURE_SIZE_BOUNDARY (BITS_PER_UNIT * sizeof (__small_struct))
  
  /* Not sure why the following are missing from NeXT objc headers... */
  
*************** struct objc_struct_layout
*** 104,110 ****
    unsigned int record_align;
  };
  
! typedef union {
    char *arg_ptr;
    char arg_regs[sizeof (char*)];
  } *arglist_t;                   /* argument frame */
--- 112,118 ----
    unsigned int record_align;
  };
  
! typedef union arglist {
    char *arg_ptr;
    char arg_regs[sizeof (char*)];
  } *arglist_t;                   /* argument frame */
*************** void objc_layout_structure (const char *
*** 117,122 ****
--- 125,131 ----
  BOOL objc_layout_structure_next_member (struct objc_struct_layout *layout);
  void objc_layout_finish_structure (struct objc_struct_layout *layout,
      unsigned int *size, unsigned int *align);
+ int objc_aligned_size (const char *type);
  
  /*
    return the size of an object specified by type
*************** objc_sizeof_type (const char *type)
*** 193,202 ****
      return sizeof (double);
      break;
  
-   case _C_VOID:
-     return sizeof (void);
-     break;
- 
    case _C_PTR:
    case _C_ATOM:
    case _C_CHARPTR:
--- 202,207 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc/execute/pr25328.m gcc-4.1.0/gcc/testsuite/objc/execute/pr25328.m
*** gcc-4.0.2/gcc/testsuite/objc/execute/pr25328.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc/execute/pr25328.m	Thu Dec 22 23:07:19 2005
***************
*** 0 ****
--- 1,11 ----
+ /* PR objc/25328 */
+ 
+ int
+ main ()
+ {
+   int status = 0;
+   char msg[100] = "";
+   if (__builtin_strcmp (msg, ""))
+     status = 200;
+   return status;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/bitfield-5.m gcc-4.1.0/gcc/testsuite/objc.dg/bitfield-5.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/bitfield-5.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/bitfield-5.m	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,113 ----
+ /* Check ObjC class layout follows the ABI (informally)
+    set in the past.  ObjC structs must be laid out as if
+    all ivars, including those inherited from superclasses,
+    were defined at once (i.e., any padding introduced for
+    superclasses should be removed).  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
+ /* { dg-options "-Wpadded" } */
+ /* { dg-do run } */
+ 
+ #include <objc/objc.h>
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ #define CHECK_IF(expr) if(!(expr)) abort()
+ 
+ enum Enum { zero, one, two, three, four };
+ 
+ @interface Base: Object {
+ @public
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+ } /* { dg-warning "padding struct size to alignment boundary" } */
+ @end
+ 
+ struct Base_0 {
+   Class isa;
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+ }; /* { dg-warning "padding struct size to alignment boundary" } */
+ 
+ @interface Derived: Base {
+ @public
+   signed e: 5;
+   unsigned f: 4;
+   enum Enum g: 3;
+ } /* { dg-warning "padding struct size to alignment boundary" } */
+ @end
+ 
+ struct Derived_0 {
+   Class isa;
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+   signed e: 5;
+   int f: 4;
+   enum Enum g: 3;
+ }; /* { dg-warning "padding struct size to alignment boundary" } */
+ 
+ @interface Leaf: Derived {
+ @public
+   signed h: 2;
+ } /* { dg-warning "padding struct size to alignment boundary" } */
+ @end
+ 
+ struct Leaf_0 {
+   Class isa;
+   unsigned a: 2;
+   int b: 3;
+   enum Enum c: 4;
+   unsigned d: 5;
+   signed e: 5;
+   unsigned f: 4;
+   enum Enum g: 3;
+   signed h: 2;
+ }; /* { dg-warning "padding struct size to alignment boundary" } */
+   
+ /* Note that the semicolon after @defs(...) is optional.  */
+ 
+ typedef struct { @defs(Base) } Base_t;  /* { dg-warning "padding struct size to alignment boundary" } */
+ typedef struct { @defs(Derived); } Derived_t;  /* { dg-warning "padding struct size to alignment boundary" } */
+ typedef struct { @defs(Leaf); } Leaf_t;  /* { dg-warning "padding struct size to alignment boundary" } */
+ 
+ int main(void)
+ {
+   struct Leaf_0 l_0;
+   Leaf *l = (Leaf *)&l_0;
+   Leaf_t *l_t = (Leaf_t *)&l_0;
+ 
+   CHECK_IF(sizeof(Base_t) == sizeof(Base));
+   CHECK_IF(sizeof(Derived_t) == sizeof(Derived));
+   CHECK_IF(sizeof(Leaf_t) == sizeof(Leaf));
+ 
+   CHECK_IF(sizeof(struct Base_0) == sizeof(Base));
+   CHECK_IF(sizeof(struct Derived_0) == sizeof(Derived));
+   CHECK_IF(sizeof(struct Leaf_0) == sizeof(Leaf));
+ 
+   l_0.isa = (Class)0;
+   l_0.a = 3;
+   l_0.b = 0;
+   l_0.c = three;
+   l_0.d = 31;
+   l_0.e = 0;
+   l_0.f = 15;
+   l_0.g = zero;
+   l_0.h = -2;
+ 
+   CHECK_IF(!l_t->isa);
+   CHECK_IF(l->a == 3 && l_t->a == 3);
+   CHECK_IF(!l->b && !l_t->b);
+   CHECK_IF(l->c == three && l_t->c == three);
+   CHECK_IF(l->d == 31 && l_t->d == 31);
+   CHECK_IF(!l->e && !l_t->e);
+   CHECK_IF(l->f == 15 && l_t->f == 15);
+   CHECK_IF(l->g == zero && l_t->g == zero);
+   CHECK_IF(l->h == -2 && l_t->h == -2);
+   
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/class-protocol-1.m gcc-4.1.0/gcc/testsuite/objc.dg/class-protocol-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/class-protocol-1.m	Mon Oct 25 22:55:25 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/class-protocol-1.m	Tue May 24 22:18:43 2005
*************** testComptypes(void)
*** 313,321 ****
    { /* id <protocol>, SomeClass *  */
      mc1 == objP1;
      objP1 == mc1;
!     
!     mc1 == objP2; /* { dg-warning "does not implement" } */
!     objP2 == mc1; /* { dg-warning "does not implement" } */
    }
    { /* id <protocol>, id  */
      obj == objP1;
--- 313,321 ----
    { /* id <protocol>, SomeClass *  */
      mc1 == objP1;
      objP1 == mc1;
! 
!     mc1 == objP2; /* { dg-warning "lacks a cast" } */
!     objP2 == mc1; /* { dg-warning "lacks a cast" } */
    }
    { /* id <protocol>, id  */
      obj == objP1;
*************** testComptypes(void)
*** 371,380 ****
      objP5 = objP1; /* { dg-warning "does not conform" } */
    }
    { /* id <protocol>, SomeClass *  */
!     mc1 = objP1; /* { dg-warning "incompatible" } */ /* FIXME: should be "" */
      objP1 = mc1;
!     
!     mc1 = objP2; /* { dg-warning "incompatible" } */ /* FIXME: should be "does not implement" */
      objP2 = mc1; /* { dg-warning "does not implement" } */
    }
    { /* id <protocol>, id  */
--- 371,380 ----
      objP5 = objP1; /* { dg-warning "does not conform" } */
    }
    { /* id <protocol>, SomeClass *  */
!     mc1 = objP1;
      objP1 = mc1;
! 
!     mc1 = objP2; /* { dg-warning "does not conform" } */
      objP2 = mc1; /* { dg-warning "does not implement" } */
    }
    { /* id <protocol>, id  */
*************** testComptypes(void)
*** 382,389 ****
      objP1 = obj;
    }
    { /* id <protocol>, Class  */
!     cls = objP1; /* { dg-warning "incompatible" } */
!     objP1 = cls; /* { dg-warning "incompatible" } */
    }
    { /* id <protocol>, non-ObjC  */
      num = objP1; /* { dg-warning "makes integer" } */
--- 382,389 ----
      objP1 = obj;
    }
    { /* id <protocol>, Class  */
!     cls = objP1; /* { dg-warning "distinct Objective\\-C type" } */
!     objP1 = cls; /* { dg-warning "distinct Objective\\-C type" } */
    }
    { /* id <protocol>, non-ObjC  */
      num = objP1; /* { dg-warning "makes integer" } */
*************** testComptypes(void)
*** 401,411 ****
    }
    { /* Class <protocol>, SomeClass * */
      /* These combinations should always elicit a warning.  */
!     mc1 = clsP1; /* { dg-warning "incompatible" } */
!     clsP1 = mc1; /* { dg-warning "incompatible" } */
      
!     mc1 = clsP2; /* { dg-warning "incompatible" } */
!     clsP2 = mc1; /* { dg-warning "incompatible" } */
    }
    { /* Class <protocol>, id */
      obj = clsP1;
--- 401,411 ----
    }
    { /* Class <protocol>, SomeClass * */
      /* These combinations should always elicit a warning.  */
!     mc1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
!     clsP1 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
      
!     mc1 = clsP2; /* { dg-warning "distinct Objective\\-C type" } */
!     clsP2 = mc1; /* { dg-warning "distinct Objective\\-C type" } */
    }
    { /* Class <protocol>, id */
      obj = clsP1;
*************** testComptypes(void)
*** 423,430 ****
      clsP1 = ptr;
    }
    { /* Class <protocol>, id <protocol> */
!     clsP1 = objP1; /* { dg-warning "incompatible" } */
!     objP1 = clsP1; /* { dg-warning "incompatible" } */
    }
  }
  
--- 423,430 ----
      clsP1 = ptr;
    }
    { /* Class <protocol>, id <protocol> */
!     clsP1 = objP1; /* { dg-warning "distinct Objective\\-C type" } */
!     objP1 = clsP1; /* { dg-warning "distinct Objective\\-C type" } */
    }
  }
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-1.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-1.m	Thu Sep 25 01:26:00 2003
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-1.m	Tue May 24 22:18:43 2005
*************** int main()
*** 32,40 ****
    /* Assigning to a 'MyClass *' variable should always generate a
       warning, unless done from an 'id'.  */
    obj_c = obj;    /* Ok */
!   obj_c = obj_p;  /* { dg-warning "incompatible pointer type" } */
!   obj_c = obj_cp; /* { dg-warning "incompatible pointer type" } */
!   obj_c = obj_C;  /* { dg-warning "incompatible pointer type" } */
  
    /* Assigning to an 'id<MyProtocol>' variable should generate a
       warning if done from a 'MyClass *' (which doesn't implement
--- 32,40 ----
    /* Assigning to a 'MyClass *' variable should always generate a
       warning, unless done from an 'id'.  */
    obj_c = obj;    /* Ok */
!   obj_c = obj_p;  /* { dg-warning "distinct Objective\\-C type" } */
!   obj_c = obj_cp; /* { dg-warning "distinct Objective\\-C type" } */
!   obj_c = obj_C;  /* { dg-warning "distinct Objective\\-C type" } */
  
    /* Assigning to an 'id<MyProtocol>' variable should generate a
       warning if done from a 'MyClass *' (which doesn't implement
*************** int main()
*** 43,56 ****
    obj_p = obj;    /* Ok */
    obj_p = obj_c;  /* { dg-warning "does not implement" } */
    obj_p = obj_cp; /* Ok  */
!   obj_p = obj_C;  /* { dg-warning "incompatible pointer type" } */
  
    /* Assigning to a 'MyOtherClass *' variable should always generate
!      a warning, unless done from an 'id'  */
    obj_cp = obj;    /* Ok */
!   obj_cp = obj_c;  /* { dg-warning "incompatible pointer type" } */
!   obj_cp = obj_p;  /* { dg-warning "incompatible pointer type" } */
!   obj_cp = obj_C;  /* { dg-warning "incompatible pointer type" } */
  
    /* Any comparison involving an 'id' must be without warnings.  */
    if (obj == obj_p) ;  /* Ok  */ /*Bogus warning here in 2.95.4*/
--- 43,57 ----
    obj_p = obj;    /* Ok */
    obj_p = obj_c;  /* { dg-warning "does not implement" } */
    obj_p = obj_cp; /* Ok  */
!   obj_p = obj_C;  /* { dg-warning "distinct Objective\\-C type" } */
  
    /* Assigning to a 'MyOtherClass *' variable should always generate
!      a warning, unless done from an 'id' or an 'id<MyProtocol>' (since
!      MyOtherClass implements MyProtocol).  */
    obj_cp = obj;    /* Ok */
!   obj_cp = obj_c;  /* { dg-warning "distinct Objective\\-C type" } */
!   obj_cp = obj_p;  /* Ok */
!   obj_cp = obj_C;  /* { dg-warning "distinct Objective\\-C type" } */
  
    /* Any comparison involving an 'id' must be without warnings.  */
    if (obj == obj_p) ;  /* Ok  */ /*Bogus warning here in 2.95.4*/
*************** int main()
*** 64,71 ****
  
    /* Any comparison between 'MyClass *' and anything which is not an 'id'
       must generate a warning.  */
!   if (obj_c == obj_p) ; /* { dg-warning "does not implement" } */
!   if (obj_p == obj_c) ; /* { dg-warning "does not implement" } */
    if (obj_c == obj_cp) ; /* { dg-warning "lacks a cast" } */
    if (obj_cp == obj_c) ; /* { dg-warning "lacks a cast" } */
    if (obj_c == obj_C) ;  /* { dg-warning "lacks a cast" } */
--- 65,72 ----
  
    /* Any comparison between 'MyClass *' and anything which is not an 'id'
       must generate a warning.  */
!   if (obj_c == obj_p) ; /* { dg-warning "lacks a cast" } */
!   if (obj_p == obj_c) ; /* { dg-warning "lacks a cast" } */
    if (obj_c == obj_cp) ; /* { dg-warning "lacks a cast" } */
    if (obj_cp == obj_c) ; /* { dg-warning "lacks a cast" } */
    if (obj_c == obj_C) ;  /* { dg-warning "lacks a cast" } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-10.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-10.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-10.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-10.m	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,28 ----
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @protocol Foo
+ - (id)meth1;
+ - (id)meth2:(int)arg;
+ @end
+ 
+ @interface Derived1: Object
+ @end
+ 
+ @interface Derived2: Object
+ + (Derived1 *)new;
+ @end
+ 
+ id<Foo> func(void) {
+   Object *o = [Object new];
+   return o;  /* { dg-warning "class .Object. does not implement the .Foo. protocol" } */
+ }
+ 
+ @implementation Derived2
+ + (Derived1 *)new {
+   Derived2 *o = [super new];
+   return o;  /* { dg-warning "distinct Objective\\-C type in return" } */
+ }
+ @end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-11.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-11.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-11.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-11.m	Thu May 26 21:24:29 2005
***************
*** 0 ****
--- 1,14 ----
+ /* { dg-do compile } */
+ #include <objc/Object.h>
+ 
+ @interface Derived: Object
+ @end
+ 
+ extern Object* foo(void);
+ static Derived *test(void)
+ {
+    Derived *m = foo();   /* { dg-warning "initialization from distinct Objective\\-C type" } */
+ 
+    return m;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-5.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-5.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-5.m	Tue Sep 17 14:00:15 2002
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-5.m	Tue May 24 22:18:43 2005
*************** int main()
*** 19,26 ****
    obj_cp = obj; /* Ok */
    obj = obj_cp; /* Ok */
  
!   obj_cp = obj_p; /* { dg-warning "incompatible pointer type" } */
!   obj_p = obj_cp; /* Ok */ /* Spurious 2.95.4 warning here.  */
    
    if (obj_cp == obj) ; /* Ok */
    if (obj == obj_cp) ; /* Ok */
--- 19,26 ----
    obj_cp = obj; /* Ok */
    obj = obj_cp; /* Ok */
  
!   obj_cp = obj_p; /* Ok */
!   obj_p = obj_cp; /* Ok */
    
    if (obj_cp == obj) ; /* Ok */
    if (obj == obj_cp) ; /* Ok */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-6.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-6.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-6.m	Tue Sep 17 14:00:15 2002
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-6.m	Tue May 24 22:18:43 2005
***************
*** 1,6 ****
--- 1,7 ----
  /* Test assignments and comparisons involving category protocols.  */
  /* Author: Nicola Pero <nicola@brainstorm.co.uk>.  */
  /* { dg-do compile } */
+ 
  #include <objc/objc.h>
  
  @protocol MyProtocol
*************** int main()
*** 23,30 ****
    MyClass *obj_cp = nil;
    MyOtherClass *obj_cp2 = nil;
  
!   obj_cp = obj_p;  /* { dg-warning "incompatible pointer type" } */
!   obj_cp2 = obj_p; /* { dg-warning "incompatible pointer type" } */
    obj_p = obj_cp;  /* Ok */
    obj_p = obj_cp2; /* Ok */
  
--- 24,31 ----
    MyClass *obj_cp = nil;
    MyOtherClass *obj_cp2 = nil;
  
!   obj_cp = obj_p;  /* { dg-warning "distinct Objective\\-C type" } */
!   obj_cp2 = obj_p; /* { dg-warning "distinct Objective\\-C type" } */
    obj_p = obj_cp;  /* Ok */
    obj_p = obj_cp2; /* Ok */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-8.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-8.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-8.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-8.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,24 ----
+ /* { dg-do compile } */
+ /* Another gimplifier ICE... */
+ 
+ #include <objc/Object.h>
+ 
+ @interface MyView: Object {
+   int _frame;
+ }
+ - (void)_finalize;
+ @end
+ 
+ @interface MyViewTemplate: MyView {
+   void *_className;
+ }
+ - (id)createRealObject;
+ @end
+ 
+ @implementation MyViewTemplate
+ - (id)createRealObject {
+     id realObj;
+     *(MyView *)realObj = *(MyView *)self;
+     return realObj;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-9.m gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-9.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/comp-types-9.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/comp-types-9.m	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,19 ----
+ /* Yet another mysterious gimplifier crasher.  */
+ /* { dg-do compile } */
+ /* { dg-options "-O3" } */
+ 
+ @class NSString;
+ @protocol NSObject
+ @end
+ @interface NSObject <NSObject> {
+ }
+ @end
+ void __setRetained(id *ivar, id value) {
+     *ivar = value;
+ }
+ static NSString *_logProcessPrefix = 0;
+ @implementation NSObject (ScopeAdditions)
+ + (void)setObjectLogProcessPrefix:(NSString *)processPrefix {
+     __setRetained(&_logProcessPrefix, processPrefix);
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/const-str-10.m gcc-4.1.0/gcc/testsuite/objc.dg/const-str-10.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/const-str-10.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/const-str-10.m	Wed Jun 29 21:01:29 2005
***************
*** 0 ****
--- 1,28 ----
+ /* Test if ObjC constant string layout is checked properly, regardless of how
+    constant string classes get derived.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-options "-fnext-runtime" } */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface NSString: Object
+ @end
+ 
+ @interface NSSimpleCString : NSString {
+ @protected
+     char *bytes;
+     unsigned int numBytes;
+ }
+ @end
+     
+ @interface NSConstantString : NSSimpleCString
+ @end
+ 
+ extern struct objc_class _NSConstantStringClassReference;
+ 
+ const NSConstantString *appKey = @"MyApp";
+ 
+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+ /* { dg-final { scan-assembler ".long\t__NSConstantStringClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/const-str-11.m gcc-4.1.0/gcc/testsuite/objc.dg/const-str-11.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/const-str-11.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/const-str-11.m	Wed Jun 29 21:01:29 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Test if ObjC constant string layout is checked properly, regardless of how
+    constant string classes get derived.  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-options "-fnext-runtime -fconstant-string-class=XStr" } */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface XString: Object {
+ @protected
+     char *bytes;
+ }
+ @end
+ 
+ @interface XStr : XString {
+ @public
+     unsigned int len;
+ }
+ @end
+ 
+ extern struct objc_class _XStrClassReference;
+ 
+ const XStr *appKey = @"MyApp";
+ 
+ /* { dg-final { scan-assembler ".section __OBJC, __cstring_object" } } */
+ /* { dg-final { scan-assembler ".long\t__XStrClassReference\n\t.long\t.*\n\t.long\t5\n\t.data" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/dg.exp gcc-4.1.0/gcc/testsuite/objc.dg/dg.exp
*** gcc-4.0.2/gcc/testsuite/objc.dg/dg.exp	Mon Jun 18 16:48:37 2001
--- gcc-4.1.0/gcc/testsuite/objc.dg/dg.exp	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Load support procs.
  load_lib objc-dg.exp
--- 13,19 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Load support procs.
  load_lib objc-dg.exp
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/encode-6.m gcc-4.1.0/gcc/testsuite/objc.dg/encode-6.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/encode-6.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/encode-6.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,22 ----
+ /* Test for graceful encoding of const-qualified fields and parameters.  */
+ /* Author: Ziemowit Laski  <zlaski@apple.com>  */
+ /* { dg-do compile } */
+ 
+ struct Cxx {
+   const struct Cxx *next;
+ };
+ 
+ @interface ObjC {
+   const struct Cxx *obj;
+ }
+ - (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d;
+ @end
+ 
+ @implementation ObjC
+ - (ObjC *)initWithCxx: (struct Cxx *const)c and: (const struct Cxx *)d {
+   obj = d;
+   return self;
+ }
+ @end 
+ 
+ /* { dg-final { scan-assembler "@\[0-9\]+@0:\[0-9\]+r\\^{Cxx=\\^r{Cxx}}\[0-9\]+\\^r{Cxx}" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/error-1.m gcc-4.1.0/gcc/testsuite/objc.dg/error-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/error-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/error-1.m	Thu Sep  8 13:09:49 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-options "-w" } */
+ /* { dg-do compile } */
+ @implementation A
+ +B  
+ +C {} /* { dg-error "expected '\{' before '\\\+' token" } */
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/extra-semi.m gcc-4.1.0/gcc/testsuite/objc.dg/extra-semi.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/extra-semi.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/extra-semi.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,10 ----
+ /* Allow extra semicolons in between method declarations,
+    for old times' sake.  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Foo
+    -(Foo *) expiration;
+    -(void) setExpiration:(Foo *) date;;
+    -(int) getVersion;
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/fix-and-continue-1.m gcc-4.1.0/gcc/testsuite/objc.dg/fix-and-continue-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/fix-and-continue-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/fix-and-continue-1.m	Tue Apr 26 00:50:31 2005
***************
*** 0 ****
--- 1,90 ----
+ /* Fix and continue should not interfere with computation of
+    local (static) function addresses.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com> */
+    
+ /* { dg-do run  { target *-*-darwin* } } */
+ /* { dg-options "-mfix-and-continue" } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ @class MyTarget, MySet;
+ 
+ int global_value = 0;
+ 
+ @interface MyTargetBuildContext : Object
+ {
+   MyTarget * _target;
+   unsigned _cacheInvalDisableCount;
+   BOOL _cacheInvalidationNeeded;
+   unsigned short _isCreatingDependencies:1;
+   unsigned short _isCreatingHeadermap:1;
+   unsigned short _haveAddedIdleTimeInvoc:1;
+   BOOL _hasSetUpBuildSettings;
+ }
+ - (id)initWithTarget:(MyTarget *)target;
+ - (MyTarget *)target;
+ @end
+ 
+ @interface MyTargetBuildContext (PrivateMethods)
+ + (MySet *)_headerFileExtensions;
+ @end
+ 
+ @interface MyCountedSet: Object {
+ @public
+   int cardinality;
+ }
+ - (id)init;
+ - (id)sortedArrayUsingFunction:(int (*)(id, id, void *))comparator with:(int)value;
+ @end
+ 
+ @implementation MyCountedSet
+ - (id)init {
+   cardinality = 5;
+   global_value = 17;
+   return self;
+ }
+ - (id)sortedArrayUsingFunction:(int (*)(id, id, void *))comparator with:(int)value {
+   if(value == comparator(self, self, self))
+     return self;
+   return nil;
+ }  
+ @end
+ 
+ @implementation MyTargetBuildContext : Object
+ - (id)initWithTarget:(MyTarget *)target
+ {
+   self = [super init];
+   return self;
+ }
+ - (MyTarget *)target
+ {
+   return _target;
+ }
+ 
+ static int _MyCompareObjectsByDecreasingSetCount (id object1, id object2, MyCountedSet * countedSet)
+ {
+   global_value = 5;
+   return countedSet->cardinality;
+ }
+ + (MySet *)_headerFileExtensions
+ {
+   MySet * _headerFileExtensions = 0;
+   return _headerFileExtensions;
+ }
+ - (void)_recomputeHeadermap
+ {
+   MyCountedSet *set = [MyCountedSet new];
+   int (*functionPointer)(id, id, void *) = (int (*)(id, id, void *))_MyCompareObjectsByDecreasingSetCount;
+   id result = [set sortedArrayUsingFunction:functionPointer with:5];
+ }
+ @end
+ 
+ int main(void) {
+   MyTargetBuildContext *ctx = [MyTargetBuildContext new];
+   [ctx _recomputeHeadermap];
+   if (global_value != 5)
+     abort();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/fix-and-continue-2.m gcc-4.1.0/gcc/testsuite/objc.dg/fix-and-continue-2.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/fix-and-continue-2.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/fix-and-continue-2.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Static variables, even if local, require indirect access through a stub
+    if -mfix-and-continue is enabled.  */
+ 
+ /* Author: Ziemowit Laski <zlaski@apple.com> */
+    
+ /* { dg-do assemble { target *-*-darwin* } } */
+ /* { dg-options "-mfix-and-continue" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Foo: Object
+ + (Object *)indexableFileTypes;
+ @end
+ 
+ @implementation Foo
+ + (Object *)indexableFileTypes
+ {
+   static Object *fileTypes = 0;
+   if(!fileTypes) {
+     fileTypes = [Object new];
+   }
+   return fileTypes;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/gnu-runtime-2.m gcc-4.1.0/gcc/testsuite/objc.dg/gnu-runtime-2.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/gnu-runtime-2.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/gnu-runtime-2.m	Thu Jul  7 21:10:00 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Sanity check for GNU-runtime version of constant strings,
+    regardless of runtime used on target system.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fgnu-runtime" } */
+ 
+ #include <objc/Object.h>
+ #include <string.h>
+ #include <stdlib.h>
+ 
+ @interface NXConstantString: Object
+ {
+   char *c_string;
+   unsigned int len;                                                     
+ }
+ -(const char *) cString;
+ -(unsigned int) length;
+ @end
+ 
+ @implementation NXConstantString
+ -(const char *) cString { return c_string; }
+ -(unsigned int) length  { return len; }
+ @end
+ 
+ int main(int argc, void **args)
+ {
+   if (strcmp ([@"this is a string" cString], "this is a string"))
+     abort ();
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/image-info.m gcc-4.1.0/gcc/testsuite/objc.dg/image-info.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/image-info.m	Tue Oct 26 06:08:46 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/image-info.m	Thu Sep  1 01:32:10 2005
*************** extern void abort(void);
*** 35,38 ****
  }
  @end
  
! /* { dg-final { scan-assembler "\t.section __OBJC, __image_info.*\n\t.align.*\nL_OBJC_IMAGE_INFO.*:\n\t.long\t0\n\t.long\t1\n\t.objc_module_info\n" } } */
--- 35,38 ----
  }
  @end
  
! /* { dg-final { scan-assembler "\t.section __OBJC, __image_info.*\n\t.align.*\nL_OBJC_IMAGE_INFO.*:\n\t.long\t0\n\t.long\t1" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/isa-field-1.m gcc-4.1.0/gcc/testsuite/objc.dg/isa-field-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/isa-field-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/isa-field-1.m	Fri May 27 03:36:42 2005
***************
*** 0 ****
--- 1,43 ----
+ /* Ensure there are no bizarre difficulties with accessing the 'isa' field of objects.  */
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Object (Test)
+ - (Class) test1: (id)object;
+ @end
+ 
+ @interface Derived: Object
+ - (Class) test2: (id)object;
+ @end
+ 
+ @implementation Object (Test)
+ 
+ Class test1(id object) {
+     Class cls = object->isa;
+     return cls;
+ }
+ - (Class) test1: (id)object {
+     Class cls = object->isa;
+     return cls;
+ }
+ 
+ @end
+ 
+ @implementation Derived
+ 
+ Class test2(id object) {
+     Class cls = object->isa;
+     return cls;
+ }
+ - (Class) test2: (id)object {
+     Class cls = object->isa;
+     return cls;
+ }
+ 
+ @end
+ 
+ Class test3(id object) {
+     Class cls = object->isa;
+     return cls;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/layout-1.m gcc-4.1.0/gcc/testsuite/objc.dg/layout-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/layout-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/layout-1.m	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,15 ----
+ /* Ensure that we do not get bizarre warnings referring to
+    __attribute__((packed)) or some such.  */
+ /* { dg-do compile } */
+ /* { dg-options "-Wpadded -Wpacked" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Derived1: Object
+ { }
+ @end
+ 
+ @interface Derived2: Object
+ - (id) foo;
+ @end
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/lookup-1.m gcc-4.1.0/gcc/testsuite/objc.dg/lookup-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/lookup-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/lookup-1.m	Fri May 27 03:36:42 2005
***************
*** 0 ****
--- 1,54 ----
+ /* { dg-do run { target *-*-darwin* } } */
+ 
+ #include <objc/Object.h>
+ #include <stdlib.h>
+ 
+ typedef struct MyWidget {
+   int a;
+ } MyWidget;
+ 
+ MyWidget gWidget = { 17 };
+ 
+ @protocol MyProto
+ - (MyWidget *)widget;
+ @end
+ 
+ @interface Foo: Object
+ @end
+ 
+ @interface Bar: Foo <MyProto>
+ @end
+ 
+ @interface Container: Object
+ + (MyWidget *)elementForView:(Foo *)view;
+ @end
+ 
+ @implementation Foo
+ @end
+ 
+ @implementation Bar
+ - (MyWidget *)widget {
+   return &gWidget;
+ }
+ @end
+ 
+ @implementation Container
+ + (MyWidget *)elementForView:(Foo *)view
+ {
+   MyWidget *widget = nil;
+   if ([view conformsTo:@protocol(MyProto)]) {
+     widget = [(Foo <MyProto> *)view widget];
+   }
+   return widget;
+ }
+ @end
+ 
+ int main(void) {
+   id view = [Bar new];
+   MyWidget *w = [Container elementForView: view];
+ 
+   if (!w || w->a != 17)
+     abort ();
+ 
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-15.m gcc-4.1.0/gcc/testsuite/objc.dg/method-15.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-15.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-15.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,56 ----
+ /* Test if prior method lookup at method @implementation time is not
+    overly aggressive, leading to methods being found in other classes.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @class NSString;
+ 
+ @protocol NSMenuItem
+ + (void)setUsesUserKeyEquivalents:(BOOL)flag;
+ + (BOOL)usesUserKeyEquivalents;
+ @end
+ 
+ @interface NSMenuItem : Object <NSMenuItem> {
+   @private
+   id _menu;
+ }
+ @end
+ 
+ @interface NSResponder : Object <NSMenuItem>
+ {
+   id _nextResponder;
+ }
+ @end
+ 
+ @interface Object(NSMenuValidation)
+ - (BOOL)validateMenuItem:(id <NSMenuItem>)menuItem;
+ @end
+ 
+ @interface NSResponder (NSStandardKeyBindingMethods)
+ - (void)insertText:(id)insertString;
+ - (void)doCommandBySelector:(SEL)aSelector;
+ @end
+ 
+ @interface NSView : NSResponder
+ {
+   id _superview;
+   id _subviews;
+ }
+ @end
+ 
+ @interface SKTGraphicView : NSView {
+     @private
+     float _gridSpacing;
+ }
+ @end
+ 
+ @implementation SKTGraphicView
+ - (BOOL)validateMenuItem:(NSMenuItem *)item {
+   return (BOOL)1;
+ }
+ - (void)insertText:(NSString *)str {
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-16.m gcc-4.1.0/gcc/testsuite/objc.dg/method-16.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-16.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-16.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,24 ----
+ /* Do not warn about "slightly" mismatched method signatures if 
+    -Wstrict-selector-match is off.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-strict-selector-match" } */
+ 
+ #include <objc/objc.h>
+ 
+ @interface Base
+ - (id) meth1: (Base *)arg1;
+ - (id) window;
+ @end
+ 
+ @interface Derived: Base
+ - (id) meth1: (Derived *)arg1;
+ - (Base *)window;
+ @end
+ 
+ void foo(void) {
+   id r;
+ 
+   [r meth1:r];
+   [r window];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-17.m gcc-4.1.0/gcc/testsuite/objc.dg/method-17.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-17.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-17.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test for spurious "may or may not return a value" warnings.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-Wextra" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Foo: Object
+ - (id) meth1;
+ - (void) meth2;
+ @end
+ 
+ extern int bar;
+ 
+ @implementation Foo
+ - (id) meth1 {
+   if (bar)
+     return [Object new];
+   return;
+ } /* { dg-warning "this function may return with or without a value" } */
+ - (void) meth2 {
+   if (!bar)
+     return;
+   bar = 0;
+ } /* { dg-bogus "this function may return with or without a value" } */
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-18.m gcc-4.1.0/gcc/testsuite/objc.dg/method-18.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-18.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-18.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,29 ----
+ /* Do not warn about "slightly" mismatched method signatures if 
+    -Wstrict-selector-match is off.  */
+ /* { dg-do compile } */
+ /* { dg-options "-Wno-strict-selector-match" } */
+ 
+ #include <objc/objc.h>
+ 
+ typedef enum { en1_1, en1_2 } En1;
+ typedef enum { en2_1, en2_2 } En2;
+ typedef struct { int a, b; } St1;
+ typedef struct { unsigned a, b; } St2;
+ 
+ @interface Base
+ - (id) meth1: (En1)arg1;
+ - (St1) window;
+ @end
+ 
+ @interface Derived: Base
+ - (id) meth1: (En2)arg1;
+ - (St2)window;
+ @end
+ 
+ void foo(void) {
+   id r;
+   En1 en;
+ 
+   [r meth1:en];
+   [r window];
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-19.m gcc-4.1.0/gcc/testsuite/objc.dg/method-19.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-19.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-19.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,17 ----
+ /* The following should NOT generate "may not respond to" warnings, since a forward-declared
+    @class (instance) should be treated like a 'Class') ('id').  */
+ 
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @class NotKnown;
+ 
+ void foo(NotKnown *n) {
+   [NotKnown new];
+   [n nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
+ }
+ 
+ /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
+ /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 0 } */
+ /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-5.m gcc-4.1.0/gcc/testsuite/objc.dg/method-5.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-5.m	Mon Oct 25 22:55:25 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-5.m	Tue May 17 19:59:15 2005
*************** void foo(UnderSpecified *u, NotAClass *n
*** 11,18 ****
    [n nonexistent_method];    /* { dg-warning "invalid receiver type" } */
         /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 11 } */
    [NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
!   [u nonexistent_method]; /* { dg-warning ".UnderSpecified. may not respond to .\\-nonexistent_method." } */
!   [UnderSpecified nonexistent_method]; /* { dg-warning ".UnderSpecified. may not respond to .\\+nonexistent_method." } */
  }
  
  /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
--- 11,18 ----
    [n nonexistent_method];    /* { dg-warning "invalid receiver type" } */
         /* { dg-warning "no .\\-nonexistent_method. method found" "" { target *-*-* } 11 } */
    [NotAClass nonexistent_method]; /* { dg-error ".NotAClass. is not an Objective\\-C class name or alias" } */
!   [u nonexistent_method]; /* { dg-warning "no .\\-nonexistent_method. method found" } */
!   [UnderSpecified nonexistent_method]; /* { dg-warning "no .\\+nonexistent_method. method found" } */
  }
  
  /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 0 } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-6.m gcc-4.1.0/gcc/testsuite/objc.dg/method-6.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-6.m	Mon Oct 25 22:55:25 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-6.m	Tue May 17 19:59:15 2005
***************
*** 2,7 ****
--- 2,8 ----
     unless they reside in root classes.  */
  /* Author: Ziemowit Laski <zlaski@apple.com>  */
  /* { dg-do compile } */
+ /* { dg-options "-Wstrict-selector-match" } */
  
  #include <objc/Protocol.h>
  
*************** void foo(void) {
*** 19,31 ****
    Class receiver;
  
    [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
!        /* { dg-warning "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 9 } */
!        /* { dg-warning "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 14 } */
  
    [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
!        /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 25 } */
!        /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 25 } */
!        /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 25 } */
  
    [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
  }
--- 20,32 ----
    Class receiver;
  
    [receiver port];  /* { dg-warning "multiple methods named .\\+port. found" } */
!        /* { dg-warning "using .\\-\\(unsigned( int)?\\)port." "" { target *-*-* } 10 } */
!        /* { dg-warning "also found .\\+\\(Protocol \\*\\)port." "" { target *-*-* } 15 } */
  
    [receiver starboard];  /* { dg-warning "no .\\+starboard. method found" } */
!        /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 26 } */
!        /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 26 } */
!        /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 26 } */
  
    [Class port];  /* { dg-error ".Class. is not an Objective\\-C class name or alias" } */
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-7.m gcc-4.1.0/gcc/testsuite/objc.dg/method-7.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-7.m	Thu Sep 25 01:26:01 2003
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-7.m	Tue May 17 19:59:15 2005
***************
*** 1,6 ****
--- 1,8 ----
  /* Check if finding multiple signatures for a method is handled gracefully.  */
  /* Author:  Ziemowit Laski <zlaski@apple.com>  */
+ 
  /* { dg-do compile } */
+ /* { dg-options "-Wstrict-selector-match" } */
  
  #include <objc/Object.h>
  
*************** id foo(void) {
*** 16,27 ****
    Object *obj = [[Object alloc] init];
    id obj2 = obj;
    [obj setWindow:nil];  /* { dg-warning ".Object. may not respond to .\\-setWindow:." } */
!        /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 18 } */
!        /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 18 } */
!        /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 18 } */
    [obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
!        /* { dg-warning "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 8 } */
!        /* { dg-warning "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 12 } */
  
    return obj;
  }
--- 18,29 ----
    Object *obj = [[Object alloc] init];
    id obj2 = obj;
    [obj setWindow:nil];  /* { dg-warning ".Object. may not respond to .\\-setWindow:." } */
!   /* { dg-warning "Messages without a matching method signature" "" { target *-*-* } 20 } */
!   /* { dg-warning "will be assumed to return .id. and accept" "" { target *-*-* } 20 } */
!   /* { dg-warning ".\.\.\.. as arguments" "" { target *-*-* } 20 } */
    [obj2 setWindow:nil]; /* { dg-warning "multiple methods named .\\-setWindow:. found" } */
!   /* { dg-warning "using .\\-\\(void\\)setWindow:\\(Object \\*\\)wdw." "" { target *-*-* } 10 } */
!   /* { dg-warning "also found .\\-\\(void\\)setWindow:\\(Class1 \\*\\)window." "" { target *-*-* } 14 } */
  
    return obj;
  }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/method-9.m gcc-4.1.0/gcc/testsuite/objc.dg/method-9.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/method-9.m	Fri Oct  8 10:21:42 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/method-9.m	Tue May 24 22:18:43 2005
***************
*** 1,7 ****
--- 1,9 ----
  /* Check if finding multiple signatures for a method is handled gracefully
     when method lookup succeeds (see also method-7.m).  */
  /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
  /* { dg-do compile } */
+ /* { dg-options "-Wstrict-selector-match" } */
  
  #include <objc/Object.h>
  
***************
*** 31,43 ****
  + (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
  {
      NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
!      /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 33 } */
!      /* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 9 } */
!      /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 17 } */
!      /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 13 } */
  
!      /* The following warning is a consequence of picking the "wrong" method signature.  */
!      /* { dg-warning "passing argument 1 of .initWithData:. from incompatible pointer type" "" { target *-*-* } 33 } */
      return result;
  }
  @end
--- 33,45 ----
  + (NTGridDataObject*)dataObject:(id<MyObject, MyCoding>)data
  {
      NTGridDataObject *result = [[NTGridDataObject alloc] initWithData:data];
!     /* { dg-warning "multiple methods named .\\-initWithData:. found" "" { target *-*-* } 35 } */
!     /* { dg-warning "using .\\-\\(id\\)initWithData:\\(Object \\*\\)data." "" { target *-*-* } 11 } */
!     /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(id <MyObject, MyCoding>\\)data." "" { target *-*-* } 19 } */
!     /* { dg-warning "also found .\\-\\(id\\)initWithData:\\(int\\)data." "" { target *-*-* } 15 } */
  
!     /* The following warning is a consequence of picking the "wrong" method signature.  */
!     /* { dg-warning "passing argument 1 of .initWithData:. from distinct Objective\\-C type" "" { target *-*-* } 35 } */
      return result;
  }
  @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/nested-func-1.m gcc-4.1.0/gcc/testsuite/objc.dg/nested-func-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/nested-func-1.m	Tue Aug  3 08:22:26 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/nested-func-1.m	Thu Jan  1 00:00:00 1970
***************
*** 1,38 ****
- /* Test basic nested C function functionality within ObjC
-    methods.  */
- /* Contributed by Ziemowit Laski <zlaski@apple.com>.  */
- /* { dg-options "-lobjc" } */
- /* { dg-do run } */
- #include <stdio.h>
- #include <stdlib.h>
- #include <objc/objc.h>
- #include <objc/Object.h>
- 
- int bappy (int (*blargh) (int a, int b, int c))
- {
-   return blargh (4, 7, 2) + 3;
- }
- 
- @interface Foo: Object
- + (int)foo;
- @end
- 
- @implementation Foo
- + (int)foo
- {
-   int blargh (int a, int b, int c)
-   {
-     return a * b + c;
-   }
-   return bappy (blargh);
- }
- @end
- 
- int main () 
- {
-   int f = [Foo foo];
-   if (f != 33)
-     abort ();
- 
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/next-runtime-1.m gcc-4.1.0/gcc/testsuite/objc.dg/next-runtime-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/next-runtime-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/next-runtime-1.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,18 ----
+ /* Test that the correct version number (6) is set in the module descriptor
+    when compiling for the NeXT runtime.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-fnext-runtime" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface FooBar: Object
+ - (void)boo;
+ @end
+ 
+ @implementation FooBar
+ - (void)boo { }
+ @end
+ 
+ /* { dg-final { scan-assembler "L_OBJC_MODULES:\n\[ \t\]*\.long\t6\n" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/no-extra-load.m gcc-4.1.0/gcc/testsuite/objc.dg/no-extra-load.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/no-extra-load.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/no-extra-load.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,6 ----
+ /* { dg-do compile { target *-*-darwin* } } */
+ 
+ #import <Foundation/Foundation.h>
+ main() { [NSObject new]; }
+ 
+ /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/objc-fast-4.m gcc-4.1.0/gcc/testsuite/objc.dg/objc-fast-4.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/objc-fast-4.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/objc-fast-4.m	Wed Apr 13 19:32:31 2005
***************
*** 0 ****
--- 1,10 ----
+ // The code should call objc_msgSend directly, not through a pointer.
+ /* { dg-do compile { target powerpc*-*-darwin* } } */
+ /* { dg-options "-O0 -fnext-runtime" } */
+ #include <objc/Object.h>
+ 
+ void foo(void) {
+   Object *o;
+   [o++ free];
+ }
+ /* { dg-final { scan-assembler-not "L_objc_msgSend\\\$non_lazy_ptr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/objc-gc-4.m gcc-4.1.0/gcc/testsuite/objc.dg/objc-gc-4.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/objc-gc-4.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/objc-gc-4.m	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,63 ----
+ /* Test looking up fields in superclasses in the context of write-barriers
+    (where component references get rewritten).  */
+ /* Contributed by Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-fobjc-gc" } */
+ 
+ #include <objc/Object.h>
+ 
+ @class MyWindow;
+ 
+ @interface MyDocument : Object {
+     MyWindow *_window;
+ }
+ @end
+ 
+ @interface MyFileDocument : MyDocument {
+      struct {
+         unsigned int autoClose:1;
+         unsigned int openForUI:1;
+         unsigned int isClosing:1;
+         unsigned int needsDiskCheck:1;
+         unsigned int isWritable:1;
+         unsigned int representsFileOnDisk:1;
+         unsigned int RESERVED:26;
+     } _fdFlags;
+ }
+ @end
+ 
+ @interface MyTextFileDocument : MyFileDocument {
+     Object *_textStorage;
+     struct __tfdFlags {
+         unsigned int immutable:1;
+         unsigned int lineEnding:2;
+         unsigned int isClosing:1;
+         unsigned int settingsAreSet:1;
+         unsigned int usesTabs:1;
+         unsigned int isUTF8WithBOM:1;
+         unsigned int wrapsLines:1;
+         unsigned int usingDefaultLanguage:1;
+         unsigned int RESERVED:23;
+     } _tfdFlags;
+     int _tabWidth;
+     int _indentWidth;
+ }
+ @end
+ 
+ @interface MyRTFFileDocument : MyTextFileDocument
+ - (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type;
+ @end
+ 
+ @implementation MyRTFFileDocument
+ - (BOOL)readFromFile:(const char *)fileName ofType:(const char *)type {
+         if (_textStorage && fileName) {
+             [_textStorage free];
+ 	    return YES;
+         } else if (type) {
+             _textStorage = [MyRTFFileDocument new];
+ 	    return NO;
+         }
+    return (fileName && type);
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/pragma-1.m gcc-4.1.0/gcc/testsuite/objc.dg/pragma-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/pragma-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/pragma-1.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,23 ----
+ /* It is OK to use #pragma inside @implementation body. This test checks that.  */
+ /* Ziemowit Laski  <zlaski@apple.com>.  */
+ 
+ @interface A
+ {
+    int p;
+ }
+ +(int) foo;
+ -(int) bar;
+ @end
+ 
+ @implementation A
+ #pragma mark -
+ #pragma mark init / dealloc
+ + (int)foo {
+   return 1;
+ }
+ #pragma mark -
+ #pragma mark Private Functions
+ - (int)bar {
+   return 2;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/proto-lossage-5.m gcc-4.1.0/gcc/testsuite/objc.dg/proto-lossage-5.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/proto-lossage-5.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/proto-lossage-5.m	Tue Jun 28 02:01:08 2005
***************
*** 0 ****
--- 1,22 ----
+ /* Do not lose references to forward-declared protocols.  */
+ /* { dg-do compile } */
+ @class MyBaseClass;
+ @class MyClassThatFails;
+ @protocol _MyProtocol;
+ 
+ @interface MyClassThatFails
+ - (MyBaseClass<_MyProtocol> *) aMethod;
+ @end
+ 
+ @interface MyBaseClass
+ @end
+ 
+ @protocol _MyProtocol
+ @end
+ 
+ @implementation MyClassThatFails
+ - (MyBaseClass<_MyProtocol> *) aMethod
+ {
+     return 0;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/proto-lossage-6.m gcc-4.1.0/gcc/testsuite/objc.dg/proto-lossage-6.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/proto-lossage-6.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/proto-lossage-6.m	Fri Jul  8 01:53:37 2005
***************
*** 0 ****
--- 1,18 ----
+ /* { dg-do compile } */
+ @class Base;
+ @protocol _Protocol;
+ 
+ @interface ClassA {
+ }
+ -(void) func1:(Base<_Protocol> *)inTarget;
+ @end
+ 
+ int main()
+ {
+ 	ClassA* theA = 0;
+ 	Base<_Protocol>* myBase = 0;
+ 	[theA func1:myBase];
+ 
+ 	return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/selector-2.m gcc-4.1.0/gcc/testsuite/objc.dg/selector-2.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/selector-2.m	Wed Jan 26 21:03:31 2005
--- gcc-4.1.0/gcc/testsuite/objc.dg/selector-2.m	Wed May 25 21:18:43 2005
***************
*** 1,5 ****
  /* Test that we don't ICE when issuing a -Wselector warning.  */
! /* { dg-options "-Wselector -fgnu-runtime" } */
  /* { dg-do compile } */
  
  #include <objc/Object.h>
--- 1,5 ----
  /* Test that we don't ICE when issuing a -Wselector warning.  */
! /* { dg-options "-Wselector" } */
  /* { dg-do compile } */
  
  #include <objc/Object.h>
***************
*** 12,16 ****
    SEL a;
    a = @selector(b1ar);
  }
! @end /* { dg-warning "creating selector for nonexistent method .b1ar." } */
  
--- 12,17 ----
    SEL a;
    a = @selector(b1ar);
  }
! @end
! /* { dg-warning "creating selector for nonexistent method .b1ar." "" { target *-*-* } 0 } */
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/selector-3.m gcc-4.1.0/gcc/testsuite/objc.dg/selector-3.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/selector-3.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/selector-3.m	Thu May 26 00:01:02 2005
***************
*** 0 ****
--- 1,26 ----
+ /* Test warning for non-existent selectors.  */
+ /* This is the "-fgnu-runtime" variant of objc.dg/selector-1.m.  */
+ /* { dg-options "-Wselector -fgnu-runtime" } */
+ /* { dg-do compile } */
+ 
+ typedef struct objc_object { struct objc_class *class_pointer; } *id;
+ typedef const struct objc_selector    *SEL;
+ 
+ @interface Foo
+ - (void) foo;
+ - (void) bar;
+ @end
+ 
+ @implementation Foo
+ - (void) bar
+ {
+ }
+ 
+ - (void) foo
+ {
+   SEL a,b,c;
+   a = @selector(b1ar);
+   b = @selector(bar);
+ }
+ @end /* { dg-warning "creating selector for nonexistent method .b1ar." } */
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/selector-4.m gcc-4.1.0/gcc/testsuite/objc.dg/selector-4.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/selector-4.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/selector-4.m	Thu May 26 21:24:29 2005
***************
*** 0 ****
--- 1,30 ----
+ /* Test whether including C++ keywords such as 'and', 'or',
+    'not', etc., is allowed inside ObjC selectors (as it must be).  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Int1 
+ + (int)and_eq:(int)arg1 and:(int)arg2;
+ - (int)or_eq:(int)arg1 or:(int)arg3;
+ - (int)not:(int)arg1 xor:(int)arg2;
+ - (void)bitand:(char)c1 bitor:(char)c2;
+ - (void)compl:(float)f1 xor_eq:(double)d1;
+ - (void)not_eq;
+ @end
+ 
+ @implementation Int1
+ + (int)and_eq:(int)arg1 and:(int)arg2 { return arg1 + arg2; }
+ - (int)or_eq:(int)arg1 or:(int)arg3 { return arg1 + arg3; }
+ - (int)not:(int)arg1 xor:(int)arg2 { return arg1 + arg2; }
+ - (void)bitand:(char)c1 bitor:(char)c2 { }
+ - (void)compl:(float)f1 xor_eq:(double)d1 { }
+ - (void)not_eq { }
+ @end
+ 
+ /* { dg-final { scan-assembler  "\\+\\\[Int1 and_eq:and:\\]|c_Int1__and_eq_and" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 or_eq:or:\\]|i_Int1__or_eq_or" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 not:xor:\\]|i_Int1__not_xor" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 bitand:bitor:\\]|i_Int1__bitand_bitor" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 compl:xor_eq:\\]|i_Int1__compl_xor_eq" } } */
+ /* { dg-final { scan-assembler  "\\-\\\[Int1 not_eq\\]|i_Int1__not_eq" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/special/special.exp gcc-4.1.0/gcc/testsuite/objc.dg/special/special.exp
*** gcc-4.0.2/gcc/testsuite/objc.dg/special/special.exp	Tue Jan  8 17:35:09 2002
--- gcc-4.1.0/gcc/testsuite/objc.dg/special/special.exp	Sat Jun 25 01:45:27 2005
***************
*** 13,19 ****
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.  
  
  # Load support procs.
  load_lib objc-dg.exp
--- 13,19 ----
  # 
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.  
  
  # Load support procs.
  load_lib objc-dg.exp
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/stubify-1.m gcc-4.1.0/gcc/testsuite/objc.dg/stubify-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/stubify-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/stubify-1.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,33 ----
+ /* All calls must be properly stubified.  Complain about any "call
+    _objc_msgSend<end-of-line>" without the $stub suffix.  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-Os -mdynamic-no-pic" } */
+ 
+ typedef struct objc_object { } *id ;
+ int x = 41 ;
+ extern id objc_msgSend(id self, char * op, ...);
+ extern int bogonic (int, int, int) ;
+ @interface Document {}
+ - (Document *) window;
+ - (Document *) class;
+ - (Document *) close;
+ @end
+ @implementation Document
+ - (Document *) class { }
+ - (Document *) close { }
+ - (Document *) window { }
+ - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+   [[self window] close];
+   ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+   ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+   bogonic (3, 4, 5);
+   x++;
+ }
+ @end
+ 
+ /* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_objc_msgSend\n" } } */
+ /* { dg-final { scan-assembler     "\(bl|call\)\[ \t\]+L_objc_msgSend\\\$stub\n" } } */
+ /* { dg-final { scan-assembler-not "\(bl|call\)\[ \t\]+_bogonic\n" } } */
+ /* { dg-final { scan-assembler     "\(bl|call\)\[ \t\]+L_bogonic\\\$stub\n" } } */
+ /* { dg-final { scan-assembler-not "\\\$non_lazy_ptr" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/stubify-2.m gcc-4.1.0/gcc/testsuite/objc.dg/stubify-2.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/stubify-2.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/stubify-2.m	Sat Aug 13 21:41:53 2005
***************
*** 0 ****
--- 1,31 ----
+ /* All calls must be properly stubified.  */
+ /* Testcase extracted from TextEdit:Document.m.  */
+ 
+ /* { dg-do compile { target *-*-darwin* } } */
+ /* { dg-options "-mdynamic-no-pic -fdump-rtl-jump" } */
+ 
+ typedef struct objc_object { } *id ;
+ int x = 41 ;
+ extern id objc_msgSend(id self, char * op, ...);
+ extern int bogonic (int, int, int) ;
+ @interface Document {}
+ - (Document *) window;
+ - (Document *) class;
+ - (Document *) close;
+ @end
+ @implementation Document
+ - (Document *) class { }
+ - (Document *) close { }
+ - (Document *) window { }
+ - (void)willEndCloseSheet:(void *)sheet returnCode:(int)returnCode contextInfo:(void *)contextInfo {
+   [[self window] close];
+   ((void (*)(id, char *, int))objc_msgSend)([self class], (char *)contextInfo, 1);
+   ((void (*)(id, char *, int))bogonic)([self class], (char *)contextInfo, 1);
+   bogonic (3, 4, 5);
+   x++;
+ }
+ @end
+ 
+ /* Any symbol_ref of an un-stubified objc_msgSend is an error; look
+    for "objc_msgSend" in quotes, without the $stub suffix.  */
+ /* { dg-final { scan-file-not stubify-2.m.08.jump "symbol_ref.*\"objc_msgSend\"" } } */
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/super-class-4.m gcc-4.1.0/gcc/testsuite/objc.dg/super-class-4.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/super-class-4.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/super-class-4.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,34 ----
+ /* Bail out gracefully if attempting to derive from a class that has only been
+    forward-declared (via @class).  Conversely, @compatibility_alias declarations
+    should be traversed to find the @interface.  */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @class MyWpModule;
+ 
+ @compatibility_alias MyObject Object;
+ @compatibility_alias FictitiousModule MyWpModule;
+ 
+ @protocol MySelTarget
+ - (id) meth1;
+ @end
+ 
+ @protocol Img
+ - (id) meth2;
+ @end
+ 
+ @interface FunnyModule: FictitiousModule <Img> /* { dg-error ".MyWpModule., superclass of .FunnyModule." } */
+ - (id) meth2;
+ @end
+ 
+ @interface MyProjWpModule : MyWpModule <MySelTarget, Img> /* { dg-error ".MyWpModule., superclass of .MyProjWpModule." } */ {
+   id i1, i2;
+ }
+ - (id) meth1;
+ - (id) meth2;
+ @end
+ 
+ @interface AnotherModule: MyObject <MySelTarget>
+ - (id) meth1;
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/super-dealloc-1.m gcc-4.1.0/gcc/testsuite/objc.dg/super-dealloc-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/super-dealloc-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/super-dealloc-1.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,46 ----
+ /* Check for warnings about missing [super dealloc] calls.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Foo {
+   void *isa;
+ }
+ - (void) dealloc;
+ - (void) some_other;
+ @end
+ 
+ @interface Bar: Foo {
+   void *casa;
+ }
+ - (void) dealloc;
+ @end
+ 
+ @interface Baz: Bar {
+   void *usa;
+ }
+ - (void) dealloc;
+ @end
+ 
+ @implementation Foo
+ - (void) dealloc {
+   isa = 0;   /* Should not warn here.  */
+ }
+ - (void) some_other {
+   isa = (void *)-1;
+ }
+ @end
+ 
+ @implementation Bar
+ - (void) dealloc {
+   casa = 0;
+   [super some_other];
+ }  /* { dg-warning "method possibly missing a .super dealloc. call" } */
+ @end
+ 
+ @implementation Baz
+ - (void) dealloc {
+   usa = 0;
+   [super dealloc];  /* Should not warn here.  */
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/super-dealloc-2.m gcc-4.1.0/gcc/testsuite/objc.dg/super-dealloc-2.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/super-dealloc-2.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/super-dealloc-2.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,46 ----
+ /* Check for warnings about missing [super dealloc] calls.  */
+ /* Author: Ziemowit Laski <zlaski@apple.com>  */
+ 
+ /* { dg-do compile } */
+ 
+ @interface Foo {
+   void *isa;
+ }
+ - (void) dealloc;
+ - (void) some_other;
+ @end
+ 
+ @interface Bar: Foo {
+   void *casa;
+ }
+ - (void) dealloc0;
+ @end
+ 
+ @interface Baz: Bar {
+   void *usa;
+ }
+ - (void) dealloc;
+ @end
+ 
+ @implementation Foo
+ - (void) dealloc {
+   isa = 0;   /* Should not warn here.  */
+ }
+ - (void) some_other {
+   isa = (void *)-1;
+ }
+ @end
+ 
+ @implementation Bar
+ - (void) dealloc0 {
+   casa = 0;
+   [super some_other];  /* Should not warn here.  */
+ } 
+ @end
+ 
+ @implementation Baz
+ - (void) dealloc {
+   usa = 0;
+   [super dealloc0]; 
+ } /* { dg-warning "method possibly missing a .super dealloc. call" } */
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-10.m gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-10.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-10.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-10.m	Fri Jul  1 01:44:12 2005
***************
*** 0 ****
--- 1,40 ----
+ /* Ensure that @try/@catch blocks do not mess with types of
+    local objects (other than their volatile bits).  */
+ 
+ /* { dg-options "-fobjc-exceptions -fnext-runtime" } */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ @protocol Proto1
+ - (int)meth1;
+ @end
+ 
+ @protocol Proto2
+ - (int)meth2;
+ @end
+ 
+ @interface MyClass: Object <Proto2> {
+   int a;
+ }
+ - (int)meth2;
+ - (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2;
+ @end
+ 
+ MyClass *mc1, *mc2;
+ 
+ @implementation MyClass
+ - (int)meth2 {
+   return a;
+ }
+ - (Object *)parm1: (id)p1 parm2: (id<Proto1>)p2 {
+   @try {
+     mc2 = p2;   /* { dg-warning "type .id <Proto1>. does not conform to the .Proto2. protocol" } */
+   }
+   @catch (id exc) {
+     return exc;
+   }
+   mc1 = p1;  /* no warning here! */
+   return self;
+ }
+ @end  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-2.m gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-2.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-2.m	Fri Jun 18 01:20:53 2004
--- gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-2.m	Thu Jan  1 00:00:00 1970
***************
*** 1,79 ****
- /* Test out '@catch(id foo) {...}', which should catch
-    all uncaught exceptions.  */
- /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
- 
- /* { dg-options "-fobjc-exceptions" } */
- /* { dg-do run } */
- 
- #include <objc/Object.h>
- #include <stdio.h>
- 
- /* The following is not required in actual user code; we include it
-    here to check that the compiler generates an internal definition of
-    _setjmp that is consistent with what <setjmp.h> provides.  */
- #include <setjmp.h>
- 
- extern void abort(void);
- #define CHECK_IF(expr) if(!(expr)) abort()
- 
- @interface Frob: Object
- @end
- 
- @implementation Frob: Object
- @end
- 
- static Frob* _connection = nil;
- 
- //--------------------------------------------------------------------
- 
- 
- void test (Object* sendPort)
- {
- 	int cleanupPorts = 1;
- 	Frob* receivePort = nil;
- 	
- 	@try {
- 		printf ("receivePort = %p\n", receivePort);
- 		printf ("sendPort = %p\n", sendPort);
- 		printf ("cleanupPorts = %d\n", cleanupPorts);
- 		printf ("---\n");
- 		
- 		receivePort = (Frob *) -1;
- 		_connection = (Frob *) -1;
- 		printf ("receivePort = %p\n", receivePort);
- 		printf ("sendPort = %p\n", sendPort);
- 		printf ("cleanupPorts = %d\n", cleanupPorts);
- 		printf ("---\n");
- 		
- 		receivePort = nil;
- 		sendPort = nil;
- 		cleanupPorts = 0;
- 		
- 		printf ("receivePort = %p\n", receivePort);
- 		printf ("sendPort = %p\n", sendPort);
- 		printf ("cleanupPorts = %d\n", cleanupPorts);
- 		printf ("---\n");		
- 		
- 		@throw [Object new];
- 	}
- 	@catch(Frob *obj) {
- 		printf ("Exception caught by incorrect handler!\n");
- 		CHECK_IF(0);
- 	}
- 	@catch(id exc) {
- 		printf ("Exception caught by correct handler.\n");
- 		printf ("receivePort = %p (expected 0x0)\n", receivePort);
- 		printf ("sendPort = %p (expected 0x0)\n", sendPort);
- 		printf ("cleanupPorts = %d (expected 0)\n", cleanupPorts);
- 		printf ("---");
- 		CHECK_IF(!receivePort);
- 		CHECK_IF(!sendPort);
- 		CHECK_IF(!cleanupPorts);
- 	}
- }
- 
- int main (void) {
- 
- 	test((Object *)-1);
- 	return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-6.m gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-6.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-6.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-6.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,25 ----
+ /* { dg-do compile } */
+ /* { dg-options "-fobjc-exceptions" } */
+ 
+ #include <objc/Object.h>
+ 
+ int main (int argc, const char * argv[]) {
+   Object * pool = [Object new];
+   int a;
+ 
+   if ( 1 ) {
+     
+     @try {
+       a = 1;
+     }
+     @catch (Object *e) {
+       a = 2;
+     }
+     @finally {
+       a = 3;
+     }
+   }
+     
+   [pool free];
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-7.m gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-7.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-7.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-7.m	Fri May 27 02:55:21 2005
***************
*** 0 ****
--- 1,27 ----
+ /* Test for graceful compilation of @synchronized statements.  */
+ 
+ /* { dg-do compile } */
+ /* { dg-options "-fobjc-exceptions" } */
+ 
+ #include <objc/Object.h>
+ 
+ @interface Derived: Object
+ - (id) meth;
+ @end
+ 
+ @implementation Derived
+ - (id) meth {
+   return self;
+ }
+ 
+ static Derived* rewriteDict(void) {
+   static Derived *sDict = 0;
+   if (sDict == 0) {
+     @synchronized ([Derived class]) {
+       if (sDict == 0)
+ 	sDict = [Derived new];
+     }
+   } 
+   return sDict;
+ }
+ @end
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-9.m gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-9.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/try-catch-9.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/try-catch-9.m	Tue May 24 22:18:43 2005
***************
*** 0 ****
--- 1,25 ----
+ /* Check that taking the address of a local variable marked 'volatile'
+    by the compiler does not generate untoward errors.  */
+ /* Developed by Ziemowit Laski <zlaski@apple.com>.  */
+ 
+ /* { dg-options "-fobjc-exceptions" } */
+ /* { dg-do compile } */
+ 
+ 
+ void foo (int *arg1, int *arg2)
+ {
+   *arg1 = *arg2;
+ }
+ 
+ void bar (int arg) {
+   int rcvr;
+ 
+   @try {
+     rcvr = arg;
+   }
+   @finally {
+     int *rcvr0 = &rcvr;
+     foo (rcvr0, &arg);
+   }
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/objc.dg/typedef-alias-1.m gcc-4.1.0/gcc/testsuite/objc.dg/typedef-alias-1.m
*** gcc-4.0.2/gcc/testsuite/objc.dg/typedef-alias-1.m	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/objc.dg/typedef-alias-1.m	Fri Jun 24 00:22:52 2005
***************
*** 0 ****
--- 1,16 ----
+ /* Typedefs of ObjC types should work without any bogus warnings. */
+ /* { dg-do compile } */
+ 
+ #include <objc/Object.h>
+ 
+ typedef Object MyObject;
+ 
+ int main (int argc, const char * argv[])
+ {
+     Object* a = nil;
+     MyObject* b = a;
+     Object* c = b;
+ 
+     return 0;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/ChangeLog gcc-4.1.0/gcc/testsuite/treelang/ChangeLog
*** gcc-4.0.2/gcc/testsuite/treelang/ChangeLog	Wed Sep 21 03:57:29 2005
--- gcc-4.1.0/gcc/testsuite/treelang/ChangeLog	Tue Feb 28 08:27:55 2006
***************
*** 1,27 ****
! 2005-09-20  Release Manager
  
! 	* GCC 4.0.2 released.
  
! 2005-07-07  Release Manager
  
! 	* GCC 4.0.1 released.
  
! 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.
  
--- 1,40 ----
! 2006-02-28  Release Manager
  
! 	* GCC 4.1.0 released.
  
! 2005-08-06  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* treetests.exp: Remove.
! 	* a01gcco01runpgm: Move to...
! 	* output/output-1.out: here.
! 	* a01gcci01.c: Move to...
! 	* output/output-1.c: here.
! 	* a01gcci01.tree: Move to...
! 	* output/output-1.tree: here.
! 	* output/output.exp: New.
  
! 2005-07-23  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* compile/var_defs.tree: Remove extra lines.
  
! 2005-07-19  James A. Morrison  <phython@gcc.gnu.org>
  
! 	* compile/var_defs.tree: Remove duplicate variable.
! 	* compile/var_defs-2.tree: Add duplicate variable test.
! 
! 2005-03-22  James A. Morrison  <phython@gcc.gnu.org>
! 
! 	* compile/memory.tree: New test.
! 
! 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.
  
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/Makefile.in gcc-4.1.0/gcc/testsuite/treelang/Makefile.in
*** gcc-4.0.2/gcc/testsuite/treelang/Makefile.in	Mon May  6 21:57:48 2002
--- gcc-4.1.0/gcc/testsuite/treelang/Makefile.in	Sat Jun 25 01:45:27 2005
***************
*** 12,19 ****
  #
  #    You should have received a copy of the GNU General Public License
  #    along with this program; if not, write to the Free Software
! #    Foundation, 59 Temple Place - Suite 330,
! #    Boston, MA 02111-1307, USA.
  #
  #    In other words, you are welcome to use, share and improve this program.
  #    You are forbidden to forbid anyone else to use, share and improve
--- 12,19 ----
  #
  #    You should have received a copy of the GNU General Public License
  #    along with this program; if not, write to the Free Software
! #    Foundation, 51 Franklin Street, Fifth Floor,
! #    Boston, MA 02110-1301, USA.
  #
  #    In other words, you are welcome to use, share and improve this program.
  #    You are forbidden to forbid anyone else to use, share and improve
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/a01gcci01.c gcc-4.1.0/gcc/testsuite/treelang/a01gcci01.c
*** gcc-4.0.2/gcc/testsuite/treelang/a01gcci01.c	Sun Aug  8 04:47:15 2004
--- gcc-4.1.0/gcc/testsuite/treelang/a01gcci01.c	Thu Jan  1 00:00:00 1970
***************
*** 1,44 ****
- /* Driver for treelang test pgm */
- 
- /*
- 
-   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
- 
-   This program is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by the
-   Free Software Foundation; either version 2, or (at your option) any
-   later version.
-   
-   This program is distributed in the hope that it will be useful,
-   but WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-   GNU General Public License for more details.
-   
-   You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, 59 Temple Place - Suite 330,
-   Boston, MA 02111-1307, USA.
-   
-   In other words, you are welcome to use, share and improve this program.
-   You are forbidden to forbid anyone else to use, share and improve
-   what you give them.   Help stamp out software-hoarding!  
- */  
- 
- int add(int, int);
- int subtract(int, int);
- int first_nonzero(int, int);
- extern int printf(char *template, ...);
- 
- int 
- main (int argc, char *argv[])
- {
-   printf("2:%d\n", add(1,1));
-   printf("7:%d\n", add(3,4));
-   printf("-1:%d\n", subtract(3,4));
-   printf("1:%d\n", subtract(2,1));
-   printf("3:%d\n", first_nonzero(0,3));
-   printf("0:%d\n", first_nonzero(0,0));
-   printf("1:%d\n", first_nonzero(1,0));
-   printf("15:%d\n", double_plus_one(7));
-   return 0;
- }
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/a01gcci01.tree gcc-4.1.0/gcc/testsuite/treelang/a01gcci01.tree
*** gcc-4.0.2/gcc/testsuite/treelang/a01gcci01.tree	Mon May  6 21:57:48 2002
--- gcc-4.1.0/gcc/testsuite/treelang/a01gcci01.tree	Thu Jan  1 00:00:00 1970
***************
*** 1,60 ****
- // -*- c -*- c mode in emacs
- 
- //  Copyright (C) 2001, 2002 Free Software Foundation, Inc.
- //  This program is free software; you can redistribute it and/or modify it
- //  under the terms of the GNU General Public License as published by the
- //  Free Software Foundation; either version 2, or (at your option) any
- //  later version.
- //
- //  This program is distributed in the hope that it will be useful,
- //  but WITHOUT ANY WARRANTY; without even the implied warranty of
- //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- //  GNU General Public License for more details.
- //
- //  You should have received a copy of the GNU General Public License
- //  along with this program; if not, write to the Free Software
- //  Foundation, 59 Temple Place - Suite 330,
- //  Boston, MA 02111-1307, USA.
- //
- //  In other words, you are welcome to use, share and improve this program.
- //  You are forbidden to forbid anyone else to use, share and improve
- //  what you give them.   Help stamp out software-hoarding!  
- 
- 
- external_definition int add(int arg1, int arg2);
- external_definition int subtract(int arg3, int arg4);
- external_definition int first_nonzero(int arg5, int arg6);
- external_definition int double_plus_one(int arg7);
- 
- add 
- {
-   return arg1 + arg2;
- }
- 
-         
- subtract 
- {
-   return arg3 - arg4;
- }
- 
- double_plus_one
- {
-   automatic int aaa;
-   aaa=add(arg7, arg7);
-   aaa=add(aaa, aaa);
-   aaa=subtract(subtract(aaa, arg7), arg7) + 1;
-   return aaa;
- }
- 
- first_nonzero
- {
-   if (arg5)
-     {
-       return arg5;
-     }
-   else
-     {
-     }
-   return arg6;
- }
- 
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/a01gcco01runpgm gcc-4.1.0/gcc/testsuite/treelang/a01gcco01runpgm
*** gcc-4.0.2/gcc/testsuite/treelang/a01gcco01runpgm	Sun May  5 04:24:18 2002
--- gcc-4.1.0/gcc/testsuite/treelang/a01gcco01runpgm	Thu Jan  1 00:00:00 1970
***************
*** 1,8 ****
- 2:2
- 7:7
- -1:-1
- 1:1
- 3:3
- 0:0
- 1:1
- 15:15
--- 0 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/compile.exp gcc-4.1.0/gcc/testsuite/treelang/compile/compile.exp
*** gcc-4.0.2/gcc/testsuite/treelang/compile/compile.exp	Sun Aug  8 04:47:16 2004
--- gcc-4.1.0/gcc/testsuite/treelang/compile/compile.exp	Sat Jun 25 01:45:27 2005
***************
*** 14,21 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330,
! # Boston, MA 02111-1307, USA.
  #
  # In other words, you are welcome to use, share and improve this program.
  # You are forbidden to forbid anyone else to use, share and improve
--- 14,21 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor,
! # Boston, MA 02110-1301, USA.
  #
  # In other words, you are welcome to use, share and improve this program.
  # You are forbidden to forbid anyone else to use, share and improve
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/exit.tree gcc-4.1.0/gcc/testsuite/treelang/compile/exit.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/exit.tree	Thu Feb 24 16:14:19 2005
--- gcc-4.1.0/gcc/testsuite/treelang/compile/exit.tree	Wed Dec 14 18:46:36 2005
***************
*** 1,4 ****
! // { dg-do compile { xfail *-*-* } }
  external_reference void exit (int code);
  
  static int foo ();
--- 1,4 ----
! // { dg-do compile }
  external_reference void exit (int code);
  
  static int foo ();
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/extrafunc.tree gcc-4.1.0/gcc/testsuite/treelang/compile/extrafunc.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/extrafunc.tree	Fri Mar 11 03:52:56 2005
--- gcc-4.1.0/gcc/testsuite/treelang/compile/extrafunc.tree	Thu Mar 31 18:34:19 2005
*************** ext
*** 22,24 ****
--- 22,25 ----
  }
  
  // { dg-final { scan-tree-dump-not "baz" "optimized" } }
+ // { dg-final { cleanup-tree-dump "optimized" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/extravar.tree gcc-4.1.0/gcc/testsuite/treelang/compile/extravar.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/extravar.tree	Fri Mar 11 03:52:56 2005
--- gcc-4.1.0/gcc/testsuite/treelang/compile/extravar.tree	Thu Mar 31 18:34:19 2005
*************** bar
*** 11,13 ****
--- 11,14 ----
  	return aaa + ddd + +3;
  }
  // { dg-final { scan-tree-dump-not "ccc" "vars" } }
+ // { dg-final { cleanup-tree-dump "vars" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/memory.tree gcc-4.1.0/gcc/testsuite/treelang/compile/memory.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/memory.tree	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/treelang/compile/memory.tree	Wed Mar 23 02:35:36 2005
***************
*** 0 ****
--- 1,18 ----
+ external_definition int foo (int a, int b);
+ external_definition int bar (int c, int d);
+ external_definition int bart (int e);
+ 
+ bar
+ {
+ 	return c + d;
+ }
+ 
+ foo
+ {
+ 	return a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +a - a +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b +b - b;
+ }
+ 
+ bart
+ {
+ 	return e;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/unsigned.tree gcc-4.1.0/gcc/testsuite/treelang/compile/unsigned.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/unsigned.tree	Fri Mar 11 03:52:56 2005
--- gcc-4.1.0/gcc/testsuite/treelang/compile/unsigned.tree	Thu May 26 16:12:30 2005
***************
*** 1,5 ****
  // { 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);
--- 1,5 ----
  // { dg-do compile }
! // { dg-options "-fdump-tree-gimple" }
  external_reference void abort ();
  external_reference void exit (int status);
  external_definition int main (int argc, int argv);
*************** main
*** 16,19 ****
  	}
  	return +1;
  }
! // { dg-final { scan-tree-dump-not "\\\(int\\\)" "generic" } }
--- 16,20 ----
  	}
  	return +1;
  }
! // { dg-final { scan-tree-dump-not "\\\(int\\\)" "gimple" } }
! // { dg-final { cleanup-tree-dump "gimple" } }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/var_defs-2.tree gcc-4.1.0/gcc/testsuite/treelang/compile/var_defs-2.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/var_defs-2.tree	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/treelang/compile/var_defs-2.tree	Tue Jul 19 14:39:20 2005
***************
*** 0 ****
--- 1,20 ----
+ // { dg-do compile }
+ external_definition int first_nonzero (int arg5, int arg6);
+ 
+ first_nonzero
+ {
+   automatic int y;
+   automatic int y;  // { dg-error "Duplicate" }
+   if (arg5)
+     {
+       return arg5;
+     }
+   else
+     {
+       automatic int j;
+       j = arg6;
+       return j;
+     }
+   return arg6;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/compile/var_defs.tree gcc-4.1.0/gcc/testsuite/treelang/compile/var_defs.tree
*** gcc-4.0.2/gcc/testsuite/treelang/compile/var_defs.tree	Fri Mar 11 03:52:56 2005
--- gcc-4.1.0/gcc/testsuite/treelang/compile/var_defs.tree	Sat Jul 23 17:59:06 2005
***************
*** 2,8 ****
  // { 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);
  
  boring
  {
--- 2,7 ----
*************** condition
*** 23,43 ****
        return j; // { dg-warning "uninitialized" }
      }
  }
- 
- first_nonzero
- {
-   automatic int y;
-   automatic int y;  // { dg-error "Duplicate" }
-   if (arg5)
-     {
-       return arg5;
-     }
-   else
-     {
-       automatic int j;
-       j = arg6;
-       return j;
-     }
-   return arg6;
- }
- 
--- 22,24 ----
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/execute/execute.exp gcc-4.1.0/gcc/testsuite/treelang/execute/execute.exp
*** gcc-4.0.2/gcc/testsuite/treelang/execute/execute.exp	Thu Feb 24 16:24:25 2005
--- gcc-4.1.0/gcc/testsuite/treelang/execute/execute.exp	Sat Jun 25 01:45:27 2005
***************
*** 14,21 ****
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 59 Temple Place - Suite 330,
! # Boston, MA 02111-1307, USA.
  #
  # In other words, you are welcome to use, share and improve this program.
  # You are forbidden to forbid anyone else to use, share and improve
--- 14,21 ----
  #
  # You should have received a copy of the GNU General Public License
  # along with this program; if not, write to the Free Software
! # Foundation, 51 Franklin Street, Fifth Floor,
! # Boston, MA 02110-1301, USA.
  #
  # In other words, you are welcome to use, share and improve this program.
  # You are forbidden to forbid anyone else to use, share and improve
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/output/output-1.c gcc-4.1.0/gcc/testsuite/treelang/output/output-1.c
*** gcc-4.0.2/gcc/testsuite/treelang/output/output-1.c	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/treelang/output/output-1.c	Sat Aug  6 18:25:31 2005
***************
*** 0 ****
--- 1,44 ----
+ /* Driver for treelang test pgm */
+ 
+ /*
+ 
+   Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ 
+   This program is free software; you can redistribute it and/or modify it
+   under the terms of the GNU General Public License as published by the
+   Free Software Foundation; either version 2, or (at your option) any
+   later version.
+   
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+   
+   You should have received a copy of the GNU General Public License
+   along with this program; if not, write to the Free Software
+   Foundation, 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+   
+   In other words, you are welcome to use, share and improve this program.
+   You are forbidden to forbid anyone else to use, share and improve
+   what you give them.   Help stamp out software-hoarding!  
+ */  
+ 
+ int add(int, int);
+ int subtract(int, int);
+ int first_nonzero(int, int);
+ extern int printf(char *template, ...);
+ 
+ int 
+ main (int argc, char *argv[])
+ {
+   printf("2:%d\n", add(1,1));
+   printf("7:%d\n", add(3,4));
+   printf("-1:%d\n", subtract(3,4));
+   printf("1:%d\n", subtract(2,1));
+   printf("3:%d\n", first_nonzero(0,3));
+   printf("0:%d\n", first_nonzero(0,0));
+   printf("1:%d\n", first_nonzero(1,0));
+   printf("15:%d\n", double_plus_one(7));
+   return 0;
+ }
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/output/output-1.out gcc-4.1.0/gcc/testsuite/treelang/output/output-1.out
*** gcc-4.0.2/gcc/testsuite/treelang/output/output-1.out	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/treelang/output/output-1.out	Sat Aug  6 18:25:31 2005
***************
*** 0 ****
--- 1,8 ----
+ 2:2
+ 7:7
+ -1:-1
+ 1:1
+ 3:3
+ 0:0
+ 1:1
+ 15:15
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/output/output-1.tree gcc-4.1.0/gcc/testsuite/treelang/output/output-1.tree
*** gcc-4.0.2/gcc/testsuite/treelang/output/output-1.tree	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/treelang/output/output-1.tree	Sat Aug  6 18:25:31 2005
***************
*** 0 ****
--- 1,60 ----
+ // -*- c -*- c mode in emacs
+ 
+ //  Copyright (C) 2001, 2002 Free Software Foundation, Inc.
+ //  This program is free software; you can redistribute it and/or modify it
+ //  under the terms of the GNU General Public License as published by the
+ //  Free Software Foundation; either version 2, or (at your option) any
+ //  later version.
+ //
+ //  This program is distributed in the hope that it will be useful,
+ //  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ //  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ //  GNU General Public License for more details.
+ //
+ //  You should have received a copy of the GNU General Public License
+ //  along with this program; if not, write to the Free Software
+ //  Foundation, 51 Franklin Street, Fifth Floor,
+ //  Boston, MA 02110-1301, USA.
+ //
+ //  In other words, you are welcome to use, share and improve this program.
+ //  You are forbidden to forbid anyone else to use, share and improve
+ //  what you give them.   Help stamp out software-hoarding!  
+ 
+ 
+ external_definition int add(int arg1, int arg2);
+ external_definition int subtract(int arg3, int arg4);
+ external_definition int first_nonzero(int arg5, int arg6);
+ external_definition int double_plus_one(int arg7);
+ 
+ add 
+ {
+   return arg1 + arg2;
+ }
+ 
+         
+ subtract 
+ {
+   return arg3 - arg4;
+ }
+ 
+ double_plus_one
+ {
+   automatic int aaa;
+   aaa=add(arg7, arg7);
+   aaa=add(aaa, aaa);
+   aaa=subtract(subtract(aaa, arg7), arg7) + 1;
+   return aaa;
+ }
+ 
+ first_nonzero
+ {
+   if (arg5)
+     {
+       return arg5;
+     }
+   else
+     {
+     }
+   return arg6;
+ }
+ 
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/output/output.exp gcc-4.1.0/gcc/testsuite/treelang/output/output.exp
*** gcc-4.0.2/gcc/testsuite/treelang/output/output.exp	Thu Jan  1 00:00:00 1970
--- gcc-4.1.0/gcc/testsuite/treelang/output/output.exp	Sat Aug  6 18:25:31 2005
***************
*** 0 ****
--- 1,58 ----
+ proc test_treelang_output { testname srcfiles infile resfile args } {
+     set comp_output [treelang_target_compile $srcfiles $testname executable $args]
+     if { [treelang_check_compile $testname $args $testname $comp_output] == 0 } {
+     	return 0;
+     }
+ 
+     verbose "Expected output is in $resfile"
+     set id [open $resfile r]
+     set expected ""
+     append expected [read $id]
+     close $id
+     set output ""
+     set output [exec $testname $infile]
+     regsub -all "\r" "$output" "" output
+     regsub "\n*$" $expected "" expected
+     regsub "\n*$" $output "" output
+     regsub "^\n*" $expected "" expected
+     regsub "^\n*" $output "" output
+     regsub -all "\[ \t\]\[ \t\]*" $expected " " expected
+     regsub -all "\[ \t\]*\n\n*" $expected "\n" expected
+     regsub -all "\[ \t\]\[ \t\]*" $output " " output
+     regsub -all "\[ \t\]*\n\n*" $output "\n" output
+     verbose "expected is $expected"
+     verbose "actual is $output"
+ 
+     if { $expected == $output } {
+ 	pass $testname
+     } else {
+         fail $testname
+     }
+     exec rm $testname
+ }
+ global srcdir subdir
+ 
+ catch { lsort [glob -nocomplain ${srcdir}/${subdir}/*.out] } outfiles
+ verbose "Output files are $outfiles"
+ 
+ set prefix ""
+ foreach x $outfiles {
+     regsub "\\.out$" $x "" prefix
+     set bname [file tail $prefix]
+ 
+     if [file exists ${prefix}.inp] {
+ 	set inpfile ${prefix}.inp
+     } else {
+ 	set inpfile ""
+     }
+ 
+     verbose "inpfile is $inpfile"
+ 
+     set srcfiles [lsort [glob -nocomplain ${prefix}.{c,tree}]]
+     verbose "source files are $srcfiles"
+     test_treelang_output "treelang/$bname" $srcfiles $inpfile $x ""
+ }
+ 
+ # Local Variables:
+ # tcl-indent-level:4
+ # End:
diff -Nrcpad gcc-4.0.2/gcc/testsuite/treelang/treetests.exp gcc-4.1.0/gcc/testsuite/treelang/treetests.exp
*** gcc-4.0.2/gcc/testsuite/treelang/treetests.exp	Sat Mar  1 02:05:37 2003
--- gcc-4.1.0/gcc/testsuite/treelang/treetests.exp	Thu Jan  1 00:00:00 1970
***************
*** 1,307 ****
- 
- # Tests for treelang; run from gcc/treelang/Make-lang.in => gcc/Makefile
- # find ttt for the actual tests
- 
- # Copyright (C) 1999, 2000, 2001, 2002 by The Free Software Foundation
- 
- # This program is free software; you can redistribute it and/or modify it
- # under the terms of the GNU General Public License as published by the
- # Free Software Foundation; either version 2, or (at your option) any
- # later version.
- #
- # This program is distributed in the hope that it will be useful,
- # but WITHOUT ANY WARRANTY; without even the implied warranty of
- # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- # GNU General Public License for more details.
- #
- # You should have received a copy of the GNU General Public License
- # along with this program; if not, write to the Free Software
- # Foundation, 59 Temple Place - Suite 330,
- # Boston, MA 02111-1307, USA.
- #
- # In other words, you are welcome to use, share and improve this program.
- # You are forbidden to forbid anyone else to use, share and improve
- # what you give them.   Help stamp out software-hoarding!  
- 
- # Check the pgm is even there and set up the basics
- proc init_utility {pgm} {
-     global transform
-     global pgm_actual
-     global pgm_base
-     global fix_progname
-     global path
- # maybe add "X" to front of fail to say it is an expected failure
-     global X
- 
-     set pgm_base ${pgm}
-     set pgm_actual ${pgm}
- 
-     if { ${transform} != "s,x,x,"} {
-         verbose "1. program name was ${pgm}" 2
-         set sed_rc [catch {eval exec sed -e "${transform}" <<${pgm} } catch_res]
-         if { ${sed_rc} != "0" } {
-             verbose "2. Program name transform failed rc=${sed_rc} stat=${catch_res}" 1
-             ${X}fail "${pgm} sed"
-             return 0
-         }
-         set pgm_actual ${catch_res}
-         verbose "3. program name after transformation is ${pgm_actual}" 2
-     }
- 
-     set which_rc [catch {exec which ${pgm_actual}} stat]
-     if { ${which_rc} != "0" } {
-         verbose "4. ${pgm_base} cannot be found rc=${which_rc} stat=${stat}" 1
-         ${X}fail "${pgm} = ${pgm_actual} not found in path (${path})"
-         return 0
-     }
-     set fix_progname "s,${pgm_actual},${pgm_base},"
-     verbose "5. fix program name value = ${fix_progname}" 4
-     return 1
- }
- 
- #run pgm, option to remove file names from outputs
- proc run3 {srcdd testdd parms group_nbr item_nbr nonzero_RC_expected check_file sanitize_output tree1 pipe} {
- 
-     global transform
-     global pgm_actual
-     global pgm_base
-     global fix_progname
-     global X
-     global extras
- 
-     set error_msg 0
-     set basefile "a${group_nbr}${pgm_base}.out${item_nbr}"
-     set infile  ""
-     set outfile  ""
-     set suffix ""
-     set temp_extras "-O3 "
-     set real_pgm_actual ${pgm_actual}
- 
-     if  {${tree1} > 0} {
-         if {"${pgm_actual}" == "gcc"} {
-             set real_pgm_actual "xgcc"
-             set temp_extras "${extras}"
-         }
-         set infile "${srcdd}/a${group_nbr}${pgm_base}i${item_nbr}.tree"
-         set mainfile "${srcdd}/a${group_nbr}${pgm_base}i${item_nbr}.c"
-         set outfile "-o ${testdd}/a${group_nbr}${pgm_base}o${item_nbr}${suffix}"
-     }
-     
-     verbose "6. exec ${real_pgm_actual} ${temp_extras} ${parms} ${mainfile} ${infile} ${outfile} >${testdd}/${basefile} 2>${testdd}/${basefile}err" 2
-     set run_rc [catch {eval exec ${real_pgm_actual} ${temp_extras} ${parms} ${mainfile} ${infile} ${outfile} >${testdd}/${basefile} 2>${testdd}/${basefile}err} catch_res]
-     if {${run_rc} == 1} {
-         if {${nonzero_RC_expected} == 0} {
-             verbose "7. ${real_pgm_actual} ${group_nbr} ${item_nbr} failed due to rc=${run_rc} status=${catch_res}" 1
-             ${X}fail "${pgm_base} ${group_nbr} ${item_nbr} rc!=0" 
-             return
-         } 
-     } else {
-         if {${nonzero_RC_expected} == 1} {
-             verbose "8. ${pgm_actual} ${group_nbr} ${item_nbr} failed - did not produce nonzero return code as expected rc=${run_rc} status=${catch_res}" 1
-             ${X}fail "${pgm_base} ${group_nbr} ${item_nbr} rc=0" 
-             return
-         } 
-     }
- 
- # change the filenames to (file) in output if needed to allow testing
-     set checkfile1 "${srcdd}/${basefile}"
-     set checkfile2 "${testdd}/${basefile}"
-     if {${sanitize_output} != 0} {
-         set oldcheckfile1 "${checkfile1}"
-         set oldcheckfile2 "${checkfile2}"
-         set checkfile1 "${testdd}/${basefile}.test.nofilename"
-         set checkfile2 "${testdd}/${basefile}.run.nofilename"
-         set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile1} >${checkfile1}} catch_res]
-         if {${run_rc} == 1} {
-             verbose "9. sed to cleanup filenames (std 1) in pgm output failed due to rc=${run_rc} status=${catch_res}" 1
-             if  {${error_msg} == 0} {
-                 set error_msg "9. sed to cleanup filenames (std 1) in pgm output failed due to rc=${run_rc} status=${catch_res}"
-             }
-         }
-         set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile2} | sed -e  "${fix_progname}"  >${checkfile2}} catch_res]
-         if {${run_rc} == 1} {
-             verbose "10. sed to cleanup filenames (std 2) in pgm output failed due to rc=${run_rc} status=${catch_res}" 1
-             if  {${error_msg} == 0} {
-                 set error_msg "10. sed to cleanup filenames (std 2) in pgm output failed due to rc=${run_rc} status=${catch_res}" 
-             }
-         }
-     }
-     set diff [diff ${checkfile1} ${checkfile2}]
-     if {${diff} != 1} {
-         verbose "11. ${pgm_actual} ${group_nbr} ${item_nbr} diff stdout failed rc=${diff}" 1
-         if  {${error_msg} == 0} {
-             set error_msg "11. ${pgm_actual} ${group_nbr} ${item_nbr} diff stdout failed rc=${diff}"
-         }
-     }
- 
-     set checkfile1 "${srcdd}/${basefile}err"
-     set checkfile2 "${testdd}/${basefile}err"
-     if {${sanitize_output} != 0} {
-         set oldcheckfile1 "${checkfile1}"
-         set oldcheckfile2 "${checkfile2}"
-         set checkfile1 "${testdd}/${basefile}err.test.nofilename"
-         set checkfile2 "${testdd}/${basefile}err.run.nofilename"
-         set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile1} >${checkfile1}} catch_res]
-         if {${run_rc} == 1} {
-             verbose "12. sed to cleanup filenames (err 1) in pgm output failed due to rc=${run_rc} status=${catch_res}" 1
-             if  {${error_msg} == 0} {
-                 set error_msg "12. sed to cleanup filenames (err 1) in pgm output failed due to rc=${run_rc} status=${catch_res}"
-             }
-         }
-         set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile2} | sed -e  "${fix_progname}"  >${checkfile2}} catch_res]
-         if {${run_rc} == 1} {
-             verbose "13. sed to cleanup filenames (err 2) in pgm output failed due to rc=${run_rc} status=${catch_res}" 1
-             if  {${error_msg} == 0} {
-                 set error_msg "13. sed to cleanup filenames (err 2) in pgm output failed due to rc=${run_rc} status=${catch_res}"
-             }
-         }
-     }
-     set diff [diff ${checkfile1} ${checkfile2}]
-     if {${diff} != 1} {
-         verbose "14. ${pgm_actual} ${group_nbr} ${item_nbr} diff stderr failed rc=${diff}" 1
-         if  {${error_msg} == 0} {
-             set error_msg "14. ${pgm_actual} ${group_nbr} ${item_nbr} diff stderr failed rc=${diff}"
-         }
-     }
- 
-     if {${check_file} >0} {
-         if  {${tree1} == 0} {
-             set checkfile1 "${srcdd}/${basefile}file"
-             set checkfile2 "${testdd}/${basefile}file"
-             if {${sanitize_output} != 0} {
-                 set oldcheckfile1 "${checkfile1}"
-                 set oldcheckfile2 "${checkfile2}"
-                 set checkfile1 "${testdd}/${basefile}file.test.nofilename"
-                 set checkfile2 "${testdd}/${basefile}file.run.nofilename"
-                 set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile1} >${checkfile1}} catch_res]
-                 if {${run_rc} == 1} {
-                     verbose "15. sed to cleanup filenames (err 1) in pgm stdout failed due to rc=${run_rc} status=${catch_res}" 1
-                     if  {${error_msg} == 0} {
-                         set error_msg "15. sed to cleanup filenames (err 1) in pgm stdout failed due to rc=${run_rc} status=${catch_res}"
-                     }
-                 }
-                 set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile2} | sed -e  "${fix_progname}"  >${checkfile2}} catch_res]
-                 if {${run_rc} == 1} {
-                     verbose "16. sed to cleanup filenames (err 2) in pgm stdout failed due to rc=${run_rc} status=${catch_res}" 1
-                     if  {${error_msg} == 0} {
-                         set error_msg "16. sed to cleanup filenames (err 2) in pgm stdout failed due to rc=${run_rc} status=${catch_res}"
-                     }
-                 }
-             }
-             set diff [diff ${checkfile1} ${checkfile2}]
-             if {${diff} != 1} {
-                 verbose "17. ${pgm_actual} ${group_nbr} ${item_nbr} diff stdout file failed rc=${diff}" 1
-                 if  {${error_msg} == 0} {
-                     set error_msg "17. ${pgm_actual} ${group_nbr} ${item_nbr} diff stdout file failed rc=${diff}"
-                 }
-             }
-         }
-     }
-     
-     if {${check_file} >1} {
-         if  {${tree1} == 0} {
-             set checkfile1 "${srcdd}/${outfile}"
-             set checkfile2 "${testdd}/${outfile}"
-             if {${sanitize_output} != 0} {
-                 set oldcheckfile1 "${checkfile1}"
-                 set oldcheckfile2 "${checkfile2}"
-                 set checkfile1 "${testdd}/${basefile}out.test.nofilename"
-                 set checkfile2 "${testdd}/${basefile}out.run.nofilename"
-                 set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile1} >${checkfile1}} catch_res]
-                 if {${run_rc} == 1} {
-                     verbose "18. sed to cleanup filenames (err 1) in pgm output failed due to rc=${run_rc} status=${catch_res}" 1
-                     if  {${error_msg} == 0} {
-                         set error_msg "18. sed to cleanup filenames (err 1) in pgm output failed due to rc=${run_rc} status=${catch_res}"
-                     }
-                 }
-                 set run_rc [catch {eval exec sed -f ${srcdd}/filefix.sed <${oldcheckfile2} | sed -e  "${fix_progname}"  >${checkfile2}} catch_res]
-                 if {${run_rc} == 1} {
-                     verbose "19. sed to cleanup filenames (err 2) in pgm output failed due to rc=${run_rc} status=${catch_res}" 1
-                     if  {${error_msg} == 0} {
-                         set error_msg "19. sed to cleanup filenames (err 2) in pgm output failed due to rc=${run_rc} status=${catch_res}"
-                     }
-                 }
-             }
-             set diff [diff ${checkfile1} ${checkfile2}]
-             if {${diff} != 1} {
-                 verbose "20. ${pgm_actual} ${group_nbr} ${item_nbr} diff output file failed rc=${diff}" 1
-                 if  {${error_msg} == 0} {
-                     set error_msg "20. ${pgm_actual} ${group_nbr} ${item_nbr} diff output file failed rc=${diff}"
-                 }
-             }
-         }
-     }
-     
-     if {${check_file} >2} {
-         set outfile "a${group_nbr}${pgm_base}o${item_nbr}${suffix}"
-         set pgmrun "${testdd}/a${group_nbr}${pgm_base}o${item_nbr}${suffix}"
-         set checkfile1 "${srcdd}/${outfile}runpgm"
-         set checkfile2 "${testdd}/${outfile}runpgm"
-         verbose "21. exec ${pgmrun} >${checkfile2} 2>${checkfile2}err" 2
-         set run_rc [catch {eval exec ${pgmrun} >${checkfile2} 2>${checkfile2}err} catch_res]
-         if {${run_rc} == 1} {
-             if {${nonzero_RC_expected} == 0} {
-                 verbose "22. ${pgm_actual} ${group_nbr} ${item_nbr} failed due to rc=${run_rc} status=${catch_res}" 1
-                 ${X}fail "${pgm_base} ${group_nbr} ${item_nbr} run" 
-                 return
-             } 
-         } else {
-             if {${nonzero_RC_expected} == 1} {
-                 verbose "23. ${pgm_actual} ${group_nbr} ${item_nbr} failed - did not produce nonzero return code as expected rc=${run_rc} status=${catch_res}" 1
-                 ${X}fail "${pgm_base} ${group_nbr} ${item_nbr} run" 
-                 return
-             } 
-         }
-         set diff [diff ${checkfile1} ${checkfile2}]
-         if {${diff} != 1} {
-             verbose "24. ${pgm_actual} ${group_nbr} ${item_nbr} diff run output file failed rc=${diff}" 1
-             if  {${error_msg} == 0} {
-                 set error_msg "24. ${pgm_actual} ${group_nbr} ${item_nbr} diff run output file failed rc=${diff}"
-             }
-         }
-         set diff [diff ${checkfile1}err ${checkfile2}err]
-         if {${diff} != 1} {
-             verbose "25. ${pgm_actual} ${group_nbr} ${item_nbr} diff run stderr file failed rc=${diff}" 1
-             if  {${error_msg} == 0} {
-                 set error_msg "25. ${pgm_actual} ${group_nbr} ${item_nbr} diff run stderr file failed rc=${diff}"
-             }
-         }
-     }
- 
-     if {${error_msg}>0} {
-         ${X}fail "${pgm_base} ${group_nbr} ${item_nbr} fail code=${error_msg}" 
-     } else {
-         pass "${pgm_base} ${group_nbr} ${item_nbr}" 
-     }
-     return 
- }
- 
- set extras "$env(gcc_extras)"
- set path $env(PATH)
- set transform $env(TRANSFORM)
- set srcdir $env(srcdir)
- verbose "source directory ${srcdir}\n" 2
- verbose "transform ${transform}\n" 2
- set sourcedir "${srcdir}/testsuite/treelang"
- set testdir "treelang"
- 
- set pgm_actual ""
- 
- # srcdd testdd parms group_nbr item_nbr nonzero_RC_expected check_file sanitize_output tree1
- 
- # ttt
- 
- #GCC - main C compiler tests via GCC
- 
- set X ""
- 
- set check_rc [init_utility "gcc"]
- 
- if {${check_rc} == 1} {
- #
- #set X "x"
- set X ""
- run3 "${sourcedir}" "${testdir}" " -g -O3 --param ggc-min-heapsize=0 --param ggc-min-expand=0 " 01 01 0 3 0 1 0
- set X ""
- }
- 
--- 0 ----
