diff -Nrcpad gcc-4.3.0/gcc/testsuite/ChangeLog gcc-4.3.1/gcc/testsuite/ChangeLog *** gcc-4.3.0/gcc/testsuite/ChangeLog Wed Mar 5 17:42:45 2008 --- gcc-4.3.1/gcc/testsuite/ChangeLog Fri Jun 6 14:28:27 2008 *************** *** 1,3 **** --- 1,734 ---- + 2008-06-06 Release Manager + + * GCC 4.3.1 released. + + 2008-05-29 Eric Botcazou + + * gcc.dg/nested-func-6.c: New test. + + 2008-05-28 Richard Guenther + + PR middle-end/36300 + * gcc.dg/pr36300-1.c: New testcase. + * gcc.dg/pr36300-2.c: Likewise. + + 2008-05-27 Richard Guenther + + PR tree-optimization/36339 + * gcc.c-torture/execute/pr36339.c: New testcase. + * gcc.dg/tree-ssa/loadpre8.c: XFAIL. + + 2008-05-27 Alexandre Oliva + + PR c++/35909 + * g++.dg/conversion/bitfield9.C: New. + + 2008-05-26 Kai Tietz + + PR target/36321 + * gcc-c.torture/execute/pr36321.c: New. + + 2008-05-23 Jakub Jelinek + + PR c++/36237 + * g++.dg/gomp/pr36237.C: New test. + + 2008-05-21 Jakub Jelinek + + PR c++/36023 + * g++.dg/ext/complit10.C: New test. + + 2008-05-21 Sebastian Pop + Jan Sjodin + + PR tree-optimization/36181 + Backport from mainline: + * gcc.dg/tree-ssa/pr36181.c: New. + + 2008-05-20 Richard Guenther + + Backport from mainline: + 2008-05-15 Richard Guenther + + PR middle-end/36244 + * gcc.dg/torture/pr36244.c: New testcase. + + PR tree-optimization/34330 + * gcc.dg/torture/pr34330.c: New testcase. + + 2008-05-19 Adam Nemet + + PR middle-end/36194 + * gcc.dg/pr36194.c: New test. + + 2008-05-14 Michael Meissner + + Backport from mainline: + PR target/36224 + * gcc.dg/pr36224.c: New file. + + 2008-05-18 Francois-Xavier Coudert + + PR fortran/36176 + * gfortran.dg/transfer_simplify_9.f90: New test. + + 2008-05-18 Jakub Jelinek + + PR target/36090 + * gcc.c-torture/execute/20080502-1.c: New test. + + 2008-05-17 Eric Botcazou + + * gnat.dg/bit_packed_array3.adb: New test. + + 2008-05-17 Eric Botcazou + + * gnat.dg/warn4.adb: New test. + + 2008-05-17 Paul Thomas + + Backport from mainline: + PR fortran/35756 + PR fortran/35759 + * gfortran.dg/where_1.f90: New test. + + PR fortran/35743 + PR fortran/35745 + * gfortran.dg/where_2.f90: New test. + + PR fortran/36233 + * gfortran.dg/actual_procedure_1.f90: New test + + 2008-05-15 Richard Guenther + + PR tree-optimization/36245 + * gcc.c-torture/compile/pr36245.c: New testcase. + + 2008-05-15 Eric Botcazou + + * gnat.dg/discr8.ad[sb]: New test. + * gnat.dg/discr8_pkg[123].ads: New helpers. + + 2008-05-14 Ira Rosen + + PR tree-optimization/36098 + * gcc.dg/vect/vect.exp: Compile with -O3 all the tests named "O3-*". + * gcc.dg/vect/O3-pr36098.c: New test. + + 2008-05-13 Paul Thomas + + PR fortran/35997 + * gfortran.dg/use_rename_3.f90 + + 2008-05-13 Richard Guenther + + PR middle-end/36227 + * gcc.dg/pr36227.c: New testcase. + + 2008-05-13 Eric Botcazou + + * gnat.dg/discr7.adb: New test + * gnat.dg/conv_integer.adb: Likewise. + + 2008-05-12 Ira Rosen + + * gfortran.dg/vect/pr36119.f: Rename to ... + * gfortran.dg/vect/O3-pr36119.f90: ... this. Compile for all targets + with -O3. + + 2008-05-11 Volker Reichelt + + PR c++/35578 + * g++.dg/parse/friend8.C: New test. + + 2008-05-09 Richard Guenther + + PR tree-optimization/36187 + * g++.dg/opt/pr36187.C: New testcase. + + 2008-05-08 Richard Guenther + + PR middle-end/36154 + * gcc.c-torture/compile/pr36154.c: New testcase. + + 2008-05-08 Richard Guenther + + PR middle-end/36172 + * gcc.c-torture/compile/pr36172.c: New testcase. + + 2008-05-07 Jakub Jelinek + + PR middle-end/36013 + * gcc.c-torture/execute/20080506-2.c: New test. + + PR middle-end/36137 + * gcc.c-torture/execute/20080506-1.c: New test. + + 2008-05-06 Thomas Koenig + + PR libfortran/35995 + PR libfortran/35990 + Backport from trunk + * gfortran.dg/intrinsic_ifunction_1.f90: New test case. + * gfortran.dg/intrinsic_pack_4.f90: New test case. + + 2008-05-05 Ira Rosen + + PR tree-optimization/36119 + * gfortran.dg/vect/pr36119.f: New test. + + 2008-05-03 Thomas Koenig + + PR libfortran/35993 + Backport from trunk. + * gfortran.dg/intrinsic_product_1.f90: New test case. + + 2008-05-01 Richard Guenther + + PR middle-end/36093 + * gcc.c-torture/execute/pr36093.c: New testcase. + + 2008-05-01 Paul Thomas + + PR fortran/35780 + * gfortran.dg/simplify_argN_1.f90: New test. + + 2008-04-30 Ian Lance Taylor + + Backport from mainline: + 2008-04-22 Ian Lance Taylor + + * gcc.c-torture/compile/20080419-1.c: New test. + + 2008-04-18 Ian Lance Taylor + + * gcc.dg/tree-ssa/forwprop-3.c: Use -O2 rather than -O. + + 2008-04-14 Ian Lance Taylor + + * gcc.dg/strict-overflow-6.c: New. + * gcc.dg/no-strict-overflow-7.c: New. + * gcc.dg/Wstrict-overflow-22.c: New. + + 2008-04-30 Jakub Jelinek + + PR c++/35986 + * g++.dg/overload/template4.C: New test. + + 2008-04-29 Richard Guenther + + PR middle-end/36077 + * gcc.c-torture/execute/pr36077.c: New testcase. + + 2008-04-29 Jakub Jelinek + + PR c++/35650 + * g++.dg/init/ref17.C: New test. + + PR c++/35987 + * g++.dg/other/error28.C: New test. + + 2008-04-28 Uros Bizjak + + PR testsuite/36056 + * g++.dg/ext/vector14.C: Add -msse for 32bit x86 targets. + + 2008-04-26 Tobias Burnus + + * gfortran/array_constructor_23.f: Change REAL(10) into kind > 8. + + 2008-04-26 Jerry DeLisle + + PR fortran/35994 + * gfortran.dg/minmaxloc_5.f90: New test. + * gfortran.dg/minmaxloc_6.f90: New test. + + 2008-04-24 Jakub Jelinek + + * gcc.dg/pr36017.c: Run on all targets, remove -lm from dg-options. + + PR c++/35758 + * g++.dg/ext/vector14.C: New test. + + PR tree-optimization/36008 + * gcc.c-torture/execute/20080424-1.c: New test. + + 2008-04-24 Ira Rosen + Richard Guenther + + PR tree-optimization/36034 + * gcc.c-torture/execute/pr36034-1.c: New testcase. + * gcc.c-torture/execute/pr36034-2.c: Likewise. + + 2008-04-24 Jakub Jelinek + + PR target/36015 + * gcc.dg/pr36015.c: New test. + + 2008-04-23 Richard Guenther + + PR middle-end/36021 + * gcc.dg/attr-alloc_size-2.c: New testcase. + + 2008-04-23 Ira Rosen + + PR tree-optimization/35982 + * gcc.dg/vect/fast-math-pr35982.c: New. + + 2008-04-22 Jason Merrill + + PR c++/35316 + * g++.dg/cpp0x/decltype11.C: New. + + 2008-04-23 Jakub Jelinek + + PR rtl-optimization/36017 + * gcc.dg/pr36017.c: New test. + + 2008-04-22 Jakub Jelinek + + PR c++/35747 + * g++.dg/ext/stmtexpr13.C: New test. + + * g++.dg/ext/fixed1.C: Add dg-options. + + 2008-04-21 Jason Merrill + + PR c++/35325 + * g++.dg/ext/fixed1.C: New. + + PR c++/35678 + * g++.dg/template/ttp27.C: New. + + 2008-04-19 Paul Thomas + + PR fortran/35944 + PR fortran/35946 + PR fortran/35947 + * gfortran.dg/array_constructor_23.f: New test. + + PR fortran/35959 + * gfortran.dg/alloc_comp_default_init_2.f90: New test. + * gfortran.dg/alloc_comp_basics_1.f90: Change occurrences of + "builtin_free" to 27. + * gfortran.dg/alloc_comp_constructor_1.f90: Change occurrences + of "builtin_free" to 21. + + 2008-04-18 Jakub Jelinek + Peter Bergner + + PR target/35907 + * gcc.target/powerpc/pr35907.c: New test. + + 2008-04-18 Jerry DeLisle + + PR fortran/35724 + * gfortran.dg/eoshift_2.f90: New test. + + 2008-04-17 Volker Reichelt + + PR c/35744 + * gcc.dg/attr-error-1.c: New test. + + PR c/35436 + * gcc.dg/format/gcc_gfc-2.c: New test. + + 2008-04-17 Jason Merrill + + PR c++/35773 + * g++.dg/overload/autoptr1.C: New. + + 2008-04-17 Uros Bizjak + + Backport from mainline: + 2008-04-16 Francois-Xavier Coudert + + PR target/35944 + * gfortran.dg/pr35944-1.f90: New test. + * gfortran.dg/pr35944-2.f90: Ditto. + + 2008-04-16 Paul Thomas + + PR fortran/35932 + * gfortran.dg/intrinsic_char_1.f90: New test. + + 2008-04-16 Jakub Jelinek + + PR c/35739 + * gcc.dg/dfp/pr35739.c: New test. + + PR tree-optimization/35899 + * gcc.dg/pr35899.c: New test. + + PR target/35662 + * gfortran.dg/pr35662.f90: New test. + + 2008-04-15 Eric Botcazou + + * gnat.dg/loop_optimization1.ad[sb]: New test. + + 2008-04-15 Jakub Jelinek + + PR c/35751 + * gcc.dg/gomp/pr35751.c: New test. + * g++.dg/gomp/pr35751.C: New test. + + 2008-04-14 Eric Botcazou + + * gnat.dg/loop_address2.adb: New test. + + 2008-04-09 Jason Merrill + + PR c++/35708 + * g++.dg/ext/complit9.C: New. + + 2008-04-09 Ira Rosen + + PR tree-optimization/35821 + * gcc.dg/vect/pr35821-altivec.c: New. + * gcc.dg/vect/pr35821-spu.c: New. + + 2008-04-09 Jakub Jelinek + + * gfortran.dg/namelist_47.f90: New test. + + 2008-04-08 Richard Guenther + + * gcc.c-torture/execute/20080408-1.c: New testcase. + + 2008-04-07 Jason Merrill + + PR c++/35734 + * g++.dg/warn/ctor1.C: New. + + 2008-04-05 Richard Guenther + + PR tree-optimization/35833 + * gcc.dg/torture/pr35833.c: New testcase. + + 2008-04-04 Jakub Jelinek + + PR target/35364 + * g++.dg/gomp/pr35364.C: New test. + + PR c/35440 + * gcc.dg/pr35440.c: New test. + + 2008-04-03 Jakub Jelinek + + PR c/35738 + * gcc.dg/gomp/pr35738.c: New test. + + PR middle-end/35818 + * gcc.dg/gomp/pr35818.c: New test. + + PR fortran/35786 + * gfortran.dg/gomp/pr35786-1.f90: New test. + * gfortran.dg/gomp/pr35786-2.f90: New test. + + PR c++/35741 + * g++.dg/other/offsetof5.C: New test. + + 2008-04-02 Andrew Pinski + + PR middle-end/35429 + * gcc.c-torture/compile/complex-5.c: New test. + + 2008-04-02 Andrew Pinski + + PR tree-opt/35431 + * gcc.c-torture/compile/pr35431.c: New testcase. + + 2008-03-31 Eric Botcazou + + * gnat.dg/object_overflow.adb: New test. + + 2008-03-30 John David Anglin + + PR c++/35245 + * g++.dg/other/anon5.C: Skip on hppa*-*-hpux*. + + 2008-03-30 Paul Thomas + + PR fortran/35740 + * gfortran.dg/transpose_conjg_1.f90: New test. + + 2008-03-29 Paul Thomas + + PR fortran/35698 + * gfortran.dg/allocate_zerosize_3.f: New test. + + PR fortran/35702 + * gfortran.dg/character_assign_1.f90: New test. + + 2008-03-28 Jerry DeLisle + + PR fortran/35699 + * gfortran.dg/direct_io_10.f: New test. + + 2008-03-27 Jerry DeLisle + + PR fortran/35724 + * gfortran.dg/cshift_shift_real_2.f90: New test. + + 2008-03-26 Kaveh R. Ghazi + + * gcc.dg/uninit-16.c (decode_reloc): Mark static. + + 2008-03-26 Jakub Jelinek + + PR c++/35546 + * g++.dg/ext/attrib33.C: New test. + + PR c++/35332 + * g++.dg/other/error27.C: New test. + + 2008-03-25 Richard Guenther + + Backport from mainline: + 2008-03-19 Richard Guenther + + PR middle-end/35609 + * gcc.dg/testsuite/uninit-15.c: New testcase. + * gcc.dg/testsuite/uninit-16.c: Likewise. + + 2008-03-24 Paul Thomas + + PR fortran/34813 + * gfortran.dg/null_3.f90 : New test + + PR fortran/33295 + * gfortran.dg/module_function_type_1.f90 : New test + + 2008-03-21 Uros Bizjak + + Backport from mainline: + 2008-03-20 Victor Kaplansky + Uros Bizjak + + PR testsuite/34168 + * lib/target-supports.exp (check_sse2_hw_available): New procedure. + * gcc.dg/vect/vect.exp: Set dg-do-what-default to "compile" + if SSE2 hardware is not available. + * g++.dg/vect/vect.exp: Update target-dependent overrides to match + gcc.dg/vect/vect.exp. + * gfortran.dg/vect/vect.exp: Ditto. + (check_effective_target_lp64_or_vect_no_align): Remove procedure. + + 2008-03-20 Uros Bizjak + + * gcc.dg/gomp/pr34692.c: Cleanup gimple dump file. + + 2008-03-20 Jerry DeLisle + + Backport from trunk: + PR libfortran/35627 + * gfortran.dg/namelist_46.f90: New test. + + PR libfortran/35617 + * gfortran.dg/namelist_45.f90: New test. + + 2008-03-20 H.J. Lu + + Backport from mainline: + 2008-03-20 H.J. Lu + + PR testsuite/35621 + * gcc.target/i386/ssse3-pabsb.c: Add -fno-strict-aliasing. + * gcc.target/i386/ssse3-pabsd.c: Likewise. + * gcc.target/i386/ssse3-pabsw.c: Likewise. + * gcc.target/i386/ssse3-palignr.c: Likewise. + * gcc.target/i386/ssse3-phaddd.c: Likewise. + * gcc.target/i386/ssse3-phaddsw.c: Likewise. + * gcc.target/i386/ssse3-phaddw.c: Likewise. + * gcc.target/i386/ssse3-phsubd.c: Likewise. + * gcc.target/i386/ssse3-phsubsw.c: Likewise. + * gcc.target/i386/ssse3-phsubw.c: Likewise. + * gcc.target/i386/ssse3-pmaddubsw.c: Likewise. + * gcc.target/i386/ssse3-pmulhrsw.c: Likewise. + * gcc.target/i386/ssse3-pshufb.c: Likewise. + * gcc.target/i386/ssse3-psignb.c: Likewise. + * gcc.target/i386/ssse3-psignd.c: Likewise. + * gcc.target/i386/ssse3-psignw.c: Likewise. + + 2008-03-19 Michael Matz + + Backport from mainline: + 2008-03-19 Michael Matz + + PR middle-end/35616 + * gcc.dg/pr35616.c: New test. + + 2008-03-19 Andreas Krebbel + + * gcc.dg/pr35258.c: New testcase. + + 2008-03-18 Mikulas Patocka + + PR target/35504 + * g++.dg/other/pr35504.C: New test. + + 2008-03-18 Richard Guenther + + Backport from mainline: + 2008-03-15 Richard Guenther + + PR middle-end/35593 + * g++.dg/warn/Warray-bounds-3.C: New testcase. + + 2008-03-17 Jason Merrill + + PR c++/35548 + * g++.dg/init/ref16.C: New testcase. + + 2008-03-14 Richard Guenther + + Backport from mainline: + 2008-02-19 Richard Guenther + + PR tree-optimization/34989 + * gcc.dg/pr34989-1.c: New testcase. + * gcc.dg/pr34989-2.c: Likewise. + + 2008-03-14 Uros Bizjak + + PR target/34000 + PR target/35553 + * g++.dg/other/i386-3.C: New test. + * gcc.target/i386/sse-13.c: Redefine extern instead of static. + * gcc.target/i386/sse-14.c: Ditto. + * gcc.target/i386/mmx-1.c: Ditto. + * gcc.target/i386/mmx-2.c: Ditto. + * gcc.target/i386/3dnow-1.c: Ditto. + * gcc.target/i386/3dnow-2.c: Ditto. + * gcc.target/i386/3dnowA-1.c: Ditto. + * gcc.target/i386/3dnowA-2.c: Ditto. + + 2008-03-14 Paul Thomas + + PR fortran/35474 + * gfortran.dg/module_commons_2.f90 : New test. + + 2008-03-12 Uros Bizjak + + PR target/35540 + * gcc.target/i386/pr35540.c: New test. + + 2008-03-11 Uros Bizjak + + * g++.dg/inherit/override-attribs.C: Require ilp32 x86 target. + + 2008-03-11 Uros Bizjak + + PR middle-end/35526 + * g++.dg/torture/pr35526.C: New test. + + 2008-03-10 Jakub Jelinek + + PR c++/35328 + * g++.dg/gomp/pr35328.C: New test. + + PR c++/35337 + * g++.dg/gomp/pr35337.C: New test. + + PR c/35438 + PR c/35439 + * gcc.dg/gomp/pr35438.c: New test. + * gcc.dg/gomp/pr35439.c: New test. + + PR middle-end/35099 + * g++.dg/gomp/pr35099.C: New test. + + 2008-03-10 Uros Bizjak + + Backport from mainline: + 2008-03-04 Uros Bizjak + + PR middle-end/35456 + * gcc.c-torture/execute/pr35456.c: New test. + + 2008-03-09 Eric Botcazou + + * gnat.dg/frame_overflow.adb: Improve portability. + + 2008-03-08 H.J. Lu + + Backport from mainline: + 2008-03-08 H.J. Lu + + PR target/35350 + * gcc.target/i386/isa-1.c: Add -march=x86-64. + * gcc.target/i386/isa-2.c: Likewise. + * gcc.target/i386/isa-3.c: Likewise. + * gcc.target/i386/isa-10.c: Likewise. + * gcc.target/i386/isa-11.c: Likewise. + * gcc.target/i386/isa-12.c: Likewise. + * gcc.target/i386/isa-13.c: Likewise. + * gcc.target/i386/isa-14.c: Likewise. + + 2008-03-07 Richard Guenther + + Backport from mainline: + 2008-03-05 Richard Guenther + + PR tree-optimization/35472 + * gcc.c-torture/execute/pr35472.c: New testcase. + + 2008-03-06 H.J. Lu + + Backport from mainline: + 2008-02-18 H.J. Lu + + PR target/35189 + * gcc.target/i386/isa-1.c: New. + * gcc.target/i386/isa-2.c: Likewise. + * gcc.target/i386/isa-3.c: Likewise. + * gcc.target/i386/isa-4.c: Likewise. + * gcc.target/i386/isa-5.c: Likewise. + * gcc.target/i386/isa-6.c: Likewise. + * gcc.target/i386/isa-7.c: Likewise. + * gcc.target/i386/isa-8.c: Likewise. + * gcc.target/i386/isa-9.c: Likewise. + * gcc.target/i386/isa-10.c: Likewise. + * gcc.target/i386/isa-11.c: Likewise. + * gcc.target/i386/isa-12.c: Likewise. + * gcc.target/i386/isa-13.c: Likewise. + * gcc.target/i386/isa-14.c: Likewise. + + 2008-03-06 Jakub Jelinek + + PR c++/35028 + * g++.dg/gomp/pr35028.C: New test. + + PR c++/34964 + PR c++/35244 + * gcc.dg/gomp/pr34964.c: New test. + * g++.dg/gomp/pr34964.C: New test. + * gcc.dg/gomp/pr35244.c: New test. + * g++.dg/gomp/pr35244.C: New test. + + PR c++/35078 + * g++.dg/gomp/pr35078.C: New test. + + 2008-03-06 Daniel Jacobowitz + + * gcc.c-torture/execute/20080222-1.c: New test. + + 2008-03-06 Paolo Carlini + + PR c++/35323 + * g++.dg/lookup/crash7.C: New. + + 2008-03-06 Paolo Carlini + + PR c++/35333 + * g++.dg/other/error26.C: New. + + 2008-03-06 Paolo Carlini + + PR c++/35338 + * g++.dg/other/error25.C: New. + 2008-03-05 Release Manager * GCC 4.3.0 released. *************** *** 140,148 **** Revert: 2008-02-14 Paolo Carlini ! PR c++/28743 * g++.dg/template/nontype17.C: New. ! * g++.dg/template/nontype16.C: Add error. 2008-02-21 Michael Matz --- 871,879 ---- Revert: 2008-02-14 Paolo Carlini ! PR c++/28743 * g++.dg/template/nontype17.C: New. ! * g++.dg/template/nontype16.C: Add error. 2008-02-21 Michael Matz diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/conversion/bitfield9.C gcc-4.3.1/gcc/testsuite/g++.dg/conversion/bitfield9.C *** gcc-4.3.0/gcc/testsuite/g++.dg/conversion/bitfield9.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/conversion/bitfield9.C Tue May 27 06:02:18 2008 *************** *** 0 **** --- 1,17 ---- + // PR c++/35909 + // { dg-do compile } + + struct MidiCommand + { + unsigned data1 : 8; + }; + + void g(const unsigned char &); + void h(const unsigned int &); + + void f(MidiCommand mc) + { + g(mc.data1); + h(mc.data1); + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/cpp0x/decltype11.C gcc-4.3.1/gcc/testsuite/g++.dg/cpp0x/decltype11.C *** gcc-4.3.0/gcc/testsuite/g++.dg/cpp0x/decltype11.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/cpp0x/decltype11.C Wed Apr 23 01:45:30 2008 *************** *** 0 **** --- 1,12 ---- + // PR c++/35316 + // { dg-options "-std=c++0x" } + + template struct A + { + int i : 2; + + void foo() + { + decltype(i) j; + } + }; diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/ext/attrib33.C gcc-4.3.1/gcc/testsuite/g++.dg/ext/attrib33.C *** gcc-4.3.0/gcc/testsuite/g++.dg/ext/attrib33.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/ext/attrib33.C Wed Mar 26 20:36:50 2008 *************** *** 0 **** --- 1,18 ---- + // PR c++/35546 + // { dg-do compile } + + template + struct T + { + void foo (char const * ...) __attribute__ ((format (printf,2,3))); + }; + + template struct T<3>; + + template + struct U + { + typedef T __attribute__((mode (SI))) V; + }; + + U::V v; diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/ext/complit10.C gcc-4.3.1/gcc/testsuite/g++.dg/ext/complit10.C *** gcc-4.3.0/gcc/testsuite/g++.dg/ext/complit10.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/ext/complit10.C Wed May 21 19:58:27 2008 *************** *** 0 **** --- 1,20 ---- + // PR c++/36023 + // { dg-do compile } + // { dg-options "" } + + struct A; + + void + f1 (int i) + { + (int[i]) { 1 }; // { dg-error "variable-sized compound literal" } + (A[5]) { 1 }; // { dg-error "have incomplete type" } + (A[i]) { 1 }; // { dg-error "have incomplete type" } + } + + void + f2 () + { + (int[]) { 1 }; + (int[1]) { 1 }; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/ext/complit9.C gcc-4.3.1/gcc/testsuite/g++.dg/ext/complit9.C *** gcc-4.3.0/gcc/testsuite/g++.dg/ext/complit9.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/ext/complit9.C Wed Apr 9 19:57:19 2008 *************** *** 0 **** --- 1,15 ---- + // PR c++/35708 + // { dg-options "" } + + struct object { int one_o; int allocstamp; }; + int pgci_pointable (object obj); + void foo(void); + int main (int argc, char *argv[]) + { + if (pgci_pointable((object){7,100})) + { + bad_rehash_size: + foo(); + } + goto bad_rehash_size; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/ext/fixed1.C gcc-4.3.1/gcc/testsuite/g++.dg/ext/fixed1.C *** gcc-4.3.0/gcc/testsuite/g++.dg/ext/fixed1.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/ext/fixed1.C Mon Apr 21 22:27:50 2008 *************** *** 0 **** --- 1,8 ---- + // PR c++/35325 + // { dg-options "" } + + template struct A {}; + + template struct B : A {}; + + template struct C : A {}; diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/ext/stmtexpr13.C gcc-4.3.1/gcc/testsuite/g++.dg/ext/stmtexpr13.C *** gcc-4.3.0/gcc/testsuite/g++.dg/ext/stmtexpr13.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/ext/stmtexpr13.C Tue Apr 22 22:14:25 2008 *************** *** 0 **** --- 1,9 ---- + // PR c++/35747 + // { dg-do compile } + // { dg-options "" } + + void + foo () + { + ({ i; ({ i; }); 0; }); // { dg-error "was not declared" } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/ext/vector14.C gcc-4.3.1/gcc/testsuite/g++.dg/ext/vector14.C *** gcc-4.3.0/gcc/testsuite/g++.dg/ext/vector14.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/ext/vector14.C Mon Apr 28 12:17:27 2008 *************** *** 0 **** --- 1,18 ---- + // PR c++/35758 + // { dg-do compile } + // { dg-options "-msse" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ + + #define vector __attribute__((vector_size(16))) + + template vector signed int foo (vector float value) {} + + template void foo (float) {} + + int + main () + { + vector float v; + float f; + foo<1> (v); + foo<1> (f); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr34964.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr34964.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr34964.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr34964.C Thu Mar 6 22:08:55 2008 *************** *** 0 **** --- 1,6 ---- + // PR c++/34964 + // { dg-do compile } + // { dg-options "-fopenmp" } + + char x[] = 0; // { dg-error "initializer fails to determine size" } + #pragma omp threadprivate (x) diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35028.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35028.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35028.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35028.C Thu Mar 6 22:08:55 2008 *************** *** 0 **** --- 1,19 ---- + // PR c++/35028 + // { dg-do compile } + // { dg-options "-fopenmp" } + + struct A + { + A (); + A (const A &, ...); + ~A (); + A operator++ (int); + }; + + void + foo () + { + A a; + #pragma omp parallel firstprivate (a) + a++; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35078.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35078.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35078.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35078.C Thu Mar 6 22:08:55 2008 *************** *** 0 **** --- 1,20 ---- + // PR c++/35078 + // { dg-do compile } + // { dg-options "-fopenmp" } + + template void + foo () + { + #pragma omp parallel for + for (int& i = 0; i < 10; ++i) // { dg-error "invalid type for iteration variable" } + ; + } + + void + bar () + { + int j = 0; + #pragma omp parallel for + for (int& i = j; i < 10; ++i) // { dg-error "invalid type for iteration variable" } + ; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35099.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35099.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35099.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35099.C Mon Mar 10 20:51:18 2008 *************** *** 0 **** --- 1,39 ---- + // PR middle-end/35099 + // { dg-do compile } + // { dg-options "-O2 -fopenmp" } + + struct A + { + ~A () throw (); + void foo (); + }; + + struct B + { + B () { A ().foo (); } + }; + + void + bar () + { + #pragma omp parallel + { + #pragma omp single + B (); + #pragma omp for + for (int i = 0; i < 2; ++i) + B (); + } + } + + void + baz () + { + #pragma omp parallel + { + #pragma omp single + B (); + #pragma omp single + B (); + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35244.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35244.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35244.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35244.C Thu Mar 6 22:08:55 2008 *************** *** 0 **** --- 1,30 ---- + // PR c++/35244 + // { dg-do compile } + // { dg-require-effective-target tls_native } + // { dg-options "-fopenmp" } + + int v1; + namespace N1 + { + int v2; + } + namespace N2 + { + int v3; + } + using N1::v2; + using namespace N2; + struct A; + typedef int i; + #pragma omp threadprivate (i) // { dg-error "is not file, namespace or block scope variable" } + #pragma omp threadprivate (A) // { dg-error "is not file, namespace or block scope variable" } + #pragma omp threadprivate (v1, v2, v3) + + void foo () + { + static int v4; + { + static int v5; + #pragma omp threadprivate (v4, v5) + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35328.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35328.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35328.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35328.C Mon Mar 10 20:54:54 2008 *************** *** 0 **** --- 1,31 ---- + // PR c++/35328 + // { dg-do compile } + // { dg-options "-fopenmp" } + + struct A + { + ~A ()(); // { dg-error "declared as function returning a function" } + }; + struct B + { + B ()(); // { dg-error "declared as function returning a function" } + }; + struct C + { + C (); + C (const C &)(); // { dg-error "declared as function returning a function" } + }; + + void + foo () + { + A a; + B b; + C c; + #pragma omp parallel firstprivate (a) + ; + #pragma omp parallel private (b) + ; + #pragma omp parallel firstprivate (c) + ; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35337.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35337.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35337.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35337.C Mon Mar 10 20:53:35 2008 *************** *** 0 **** --- 1,20 ---- + // PR c++/35337 + // { dg-do compile } + // { dg-options "-fopenmp" } + + struct A { }; + + void + foo () + { + #pragma omp parallel firstprivate(A) // { dg-error "struct A\[^\n\]*is not a variable" } + ; + } + + void + bar () + { + #pragma omp for lastprivate(A) // { dg-error "struct A\[^\n\]*is not a variable" } + for (int i = 0; i < 10; i++) + ; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35364.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35364.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35364.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35364.C Fri Apr 4 18:00:25 2008 *************** *** 0 **** --- 1,50 ---- + // PR target/35364 + // { dg-do compile } + // { dg-options "-O2 -fopenmp" } + + template + struct E + { + E (); + ~E (); + }; + + template + struct C + { + C (const U &y) : u (y) {} + ~C () {} + const U &u; + }; + + template > + struct B : public C + { + B (int x, const T &z = T (), const U &y = U ()) : C (y) {} + ~B () {} + }; + + void + foo () + { + #pragma omp parallel + { + B x (1); + } + #pragma omp for + for (int i = 0; i < 10; i++) + { + B x (i); + } + #pragma omp sections + { + #pragma omp section + { + B x (6); + } + } + #pragma omp single + { + B x (16); + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35751.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35751.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr35751.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr35751.C Tue Apr 15 15:18:41 2008 *************** *** 0 **** --- 1,34 ---- + // PR c/35751 + // { dg-do compile } + // { dg-options "-fopenmp" } + + void + foo (int i) + { + extern int a[i]; // { dg-error "storage size of" } + static int b[i]; // { dg-error "storage size of" } + + #pragma omp parallel + { + a[0] = 0; + b[0] = 0; + } + + #pragma omp parallel shared (a, b) + { + a[0] = 0; + b[0] = 0; + } + + #pragma omp parallel private (a, b) + { + a[0] = 0; + b[0] = 0; + } + + #pragma omp parallel firstprivate (a, b) + { + a[0] = 0; + b[0] = 0; + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr36237.C gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr36237.C *** gcc-4.3.0/gcc/testsuite/g++.dg/gomp/pr36237.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/gomp/pr36237.C Fri May 23 13:30:51 2008 *************** *** 0 **** --- 1,25 ---- + // PR c++/36237 + // { dg-do compile } + // { dg-options "-fopenmp" } + + struct A + { + ~A (); + }; + + struct B + { + B (const A &x = A ()) : a (x) { } + A a; + }; + + B var; + + void bar (); + + void + foo () + { + #pragma omp parallel private (var) + bar (); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/inherit/override-attribs.C gcc-4.3.1/gcc/testsuite/g++.dg/inherit/override-attribs.C *** gcc-4.3.0/gcc/testsuite/g++.dg/inherit/override-attribs.C Tue Sep 25 00:29:42 2007 --- gcc-4.3.1/gcc/testsuite/g++.dg/inherit/override-attribs.C Tue Mar 11 15:05:07 2008 *************** *** 1,5 **** // PR c++/14688 ! // { dg-do compile { target i?86-*-* } } class one { public: --- 1,7 ---- // PR c++/14688 ! // { dg-do compile { target i?86-*-* x86_64-*-* } } ! // { dg-require-effective-target ilp32 } ! class one { public: diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/init/ref16.C gcc-4.3.1/gcc/testsuite/g++.dg/init/ref16.C *** gcc-4.3.0/gcc/testsuite/g++.dg/init/ref16.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/init/ref16.C Tue Mar 18 02:56:52 2008 *************** *** 0 **** --- 1,23 ---- + // PR c++/35548 + // { dg-do run } + + int c; + struct A + { + A() { ++c; } + A(const A&) { ++c; } + ~A() { --c; } + }; + + A f() + { + return A(); + } + + int i; + const A* ap; + int main() + { + const A& ar = i ? *ap : f(); + return (c == 0); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/init/ref17.C gcc-4.3.1/gcc/testsuite/g++.dg/init/ref17.C *** gcc-4.3.0/gcc/testsuite/g++.dg/init/ref17.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/init/ref17.C Tue Apr 29 08:58:58 2008 *************** *** 0 **** --- 1,23 ---- + // PR c++/35650 + // { dg-do compile } + + void f1 (); + + namespace N + { + using::f1; + void f2 (); + void f3 (); + } + + using N::f3; + + void + test () + { + void (&a) () = f1; + void (&b) () = N::f1; + void (&c) () = N::f2; + void (&d) () = f3; + void (&e) () = ::f3; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/lookup/crash7.C gcc-4.3.1/gcc/testsuite/g++.dg/lookup/crash7.C *** gcc-4.3.0/gcc/testsuite/g++.dg/lookup/crash7.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/lookup/crash7.C Thu Mar 6 17:50:54 2008 *************** *** 0 **** --- 1,9 ---- + // PR c++/35323 + // { dg-options "" } + + void foo(int); + + void bar() + { + foo(1r); // { dg-error "unnamed-fixed" } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/opt/pr36187.C gcc-4.3.1/gcc/testsuite/g++.dg/opt/pr36187.C *** gcc-4.3.0/gcc/testsuite/g++.dg/opt/pr36187.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/opt/pr36187.C Fri May 9 19:19:33 2008 *************** *** 0 **** --- 1,45 ---- + /* { dg-do run } */ + /* { dg-options "-O2 --param max-aliased-vops=20" } */ + + extern "C" void abort (void); + enum SbxDataType { SbxINTEGER, SbxDECIMAL, SbxBYREF = 0x4000 }; + struct SbxValues { + union { + float nSingle; + float* pSingle; + }; + SbxDataType eType; + }; + static bool ImpPutDoubleFoo( SbxValues* p) + { + bool bRet = false; + SbxValues aTmp; + int count = 0; + start: + switch( p->eType ) { + case SbxINTEGER: + if (count++ > 0) + abort (); + aTmp.pSingle = &p->nSingle; goto direct; + case SbxBYREF | SbxDECIMAL: + bRet = false; + break; + direct: + aTmp.eType = SbxDataType( p->eType | SbxBYREF ); + p = &aTmp; goto start; + case SbxBYREF | SbxINTEGER: + break; + default: + bRet =true; + } + return bRet; + } + + int main( int argc, char** argv ) + { + SbxValues aTmp; + aTmp.eType = SbxINTEGER; + if ( ImpPutDoubleFoo( &aTmp ) ) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/anon5.C gcc-4.3.1/gcc/testsuite/g++.dg/other/anon5.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/anon5.C Tue Feb 19 09:15:57 2008 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/anon5.C Sun Mar 30 23:23:43 2008 *************** *** 4,10 **** // problem is that mips*-elf tests run from KSEG0 (which is in the upper // half of the address range), and the linker compares sign-extended // addresses from .debug_aranges with unextended addresses. ! // { dg-do link { target { ! mips*-*-elf* } } } // { dg-options "-g" } namespace { --- 4,10 ---- // problem is that mips*-elf tests run from KSEG0 (which is in the upper // half of the address range), and the linker compares sign-extended // addresses from .debug_aranges with unextended addresses. ! // { dg-do link { target { ! { hppa*-*-hpux* mips*-*-elf* } } } } // { dg-options "-g" } namespace { diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/error25.C gcc-4.3.1/gcc/testsuite/g++.dg/other/error25.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/error25.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/error25.C Thu Mar 6 17:50:54 2008 *************** *** 0 **** --- 1,5 ---- + // PR c++/35338 + // { dg-options "" } + + int i = 0r; // { dg-error "unnamed-fixed" } + bool b = !0r; // { dg-error "0.0|argument" } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/error26.C gcc-4.3.1/gcc/testsuite/g++.dg/other/error26.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/error26.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/error26.C Thu Mar 6 17:50:54 2008 *************** *** 0 **** --- 1,6 ---- + // PR c++/35333 + + void foo(__complex__ double x) + { + __builtin_conj(x)(); // { dg-error "~x" } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/error27.C gcc-4.3.1/gcc/testsuite/g++.dg/other/error27.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/error27.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/error27.C Wed Mar 26 13:07:24 2008 *************** *** 0 **** --- 1,12 ---- + // PR c++/35332 + // { dg-do compile } + + void foo (double x, double y) + { + __builtin_isgreater(x, y)(); // { dg-error "__builtin_\[^\n\]*cannot be used as a function" } + __builtin_isless(x, y)(); // { dg-error "__builtin_\[^\n\]*cannot be used as a function" } + __builtin_isgreaterequal(x, y)(); // { dg-error "__builtin_\[^\n\]*cannot be used as a function" } + __builtin_islessequal(x, y)(); // { dg-error "__builtin_\[^\n\]*cannot be used as a function" } + __builtin_isunordered(x, y)(); // { dg-error "__builtin_\[^\n\]*cannot be used as a function" } + __builtin_islessgreater(x, y)(); // { dg-error "__builtin_\[^\n\]*cannot be used as a function" } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/error28.C gcc-4.3.1/gcc/testsuite/g++.dg/other/error28.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/error28.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/error28.C Tue Apr 29 08:56:27 2008 *************** *** 0 **** --- 1,8 ---- + // PR c++/35987 + // { dg-do compile } + + void + foo (char *p) + { + if (++p = true); // { dg-error "cannot convert" } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/i386-3.C gcc-4.3.1/gcc/testsuite/g++.dg/other/i386-3.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/i386-3.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/i386-3.C Fri Mar 14 14:34:09 2008 *************** *** 0 **** --- 1,8 ---- + /* Test that {,x,e,p,t,s,a,b}mmintrin.h, mm3dnow.h and mm_malloc.h are + usable with -O -fkeep-inline-functions. */ + /* { dg-do compile { target i?86-*-* x86_64-*-* } } */ + /* { dg-options "-O -fkeep-inline-functions -march=k8 -m3dnow -msse4 -msse5" } */ + + #include + #include + #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/offsetof5.C gcc-4.3.1/gcc/testsuite/g++.dg/other/offsetof5.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/offsetof5.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/offsetof5.C Thu Apr 3 07:51:01 2008 *************** *** 0 **** --- 1,22 ---- + // PR c++/35741 + // { dg-do compile } + + #include + + struct A + { + char c; + int &i; + }; + + int j = offsetof (A, i); // { dg-warning "invalid access|offsetof" } + + template + struct S + { + T h; + T &i; + static const int j = offsetof (S, i); // { dg-warning "invalid access|offsetof" } + }; + + int k = S::j; // { dg-warning "instantiated from here" } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/other/pr35504.C gcc-4.3.1/gcc/testsuite/g++.dg/other/pr35504.C *** gcc-4.3.0/gcc/testsuite/g++.dg/other/pr35504.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/other/pr35504.C Wed Mar 19 07:48:16 2008 *************** *** 0 **** --- 1,147 ---- + // { dg-do run { target { { i?86-*-* x86_64-*-* } && ilp32 } } } + + #define ATTR0 __attribute__((__regparm__(0))) + #define ATTR1 __attribute__((__regparm__(1))) + #define ATTR2 __attribute__((__regparm__(2))) + #define ATTR3 __attribute__((__regparm__(3))) + #define ATTR4 __attribute__((__fastcall__)) + #define ATTR5 __attribute__((__stdcall__)) + #define ATTR6 __attribute__((__cdecl__)) + #define ATTR7 + + extern "C" void abort (void); + + struct long_struct + { + int a[3]; + }; + + struct long_struct ret; + + class c3 *this3; + + class c1 + { + int val1; + public: + virtual void foo () { } + }; + + class c2 + { + public: + virtual ATTR0 struct long_struct method0 () + { + return ret; + } + + virtual ATTR1 struct long_struct method1 () + { + return ret; + } + + virtual ATTR2 struct long_struct method2 () + { + return ret; + } + + virtual ATTR3 struct long_struct method3 () + { + return ret; + } + + virtual ATTR4 struct long_struct method4 () + { + return ret; + } + + virtual ATTR5 struct long_struct method5 () + { + return ret; + } + + virtual ATTR6 struct long_struct method6 () + { + return ret; + } + + virtual ATTR7 struct long_struct method7 () + { + return ret; + } + }; + + class c3:c1, public c2 + { + public: + c3 () + { + this3 = this; + } + + struct long_struct check_this (int a) + { + if (this3 != this) + abort (); + + return ret; + } + + virtual ATTR0 struct long_struct method0 () + { + return check_this (0); + } + + virtual ATTR1 struct long_struct method1 () + { + return check_this (1); + } + + virtual ATTR2 struct long_struct method2 () + { + return check_this (2); + } + + virtual ATTR3 struct long_struct method3 () + { + return check_this (3); + } + + virtual ATTR4 struct long_struct method4 () + { + return check_this (4); + } + + virtual ATTR5 struct long_struct method5 () + { + return check_this (5); + } + + virtual ATTR6 struct long_struct method6 () + { + return check_this (6); + } + + virtual ATTR7 struct long_struct method7 () + { + return check_this (7); + } + }; + + class c3 c3_instance; + class c2 *c2_ptr = &c3_instance; + + int + main () + { + c2_ptr->method0 (); + c2_ptr->method1 (); + c2_ptr->method2 (); + c2_ptr->method3 (); + c2_ptr->method4 (); + c2_ptr->method5 (); + c2_ptr->method6 (); + c2_ptr->method7 (); + + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/overload/autoptr1.C gcc-4.3.1/gcc/testsuite/g++.dg/overload/autoptr1.C *** gcc-4.3.0/gcc/testsuite/g++.dg/overload/autoptr1.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/overload/autoptr1.C Thu Apr 17 16:10:36 2008 *************** *** 0 **** --- 1,29 ---- + // PR c++/35773 + + template< typename T > + class auto_ptr + { + struct auto_ptr_ref { }; + public: + auto_ptr(auto_ptr&); + auto_ptr(auto_ptr_ref); + + operator auto_ptr_ref(); + }; + + template< typename T > + class reference_wrapper + { + public: + reference_wrapper(T& t); + operator T& () const; + }; + + struct X { }; + + void f(auto_ptr< X >); + + void g(reference_wrapper< auto_ptr< X > > r) + { + f(r); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/overload/template4.C gcc-4.3.1/gcc/testsuite/g++.dg/overload/template4.C *** gcc-4.3.0/gcc/testsuite/g++.dg/overload/template4.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/overload/template4.C Wed Apr 30 15:04:56 2008 *************** *** 0 **** --- 1,21 ---- + // PR c++/35986 + // { dg-do compile } + + namespace + { + template void foo (...); // { dg-error "" "candidate" } + template void bar (int, ...); // { dg-error "" "candidate" } + void baz (...); // { dg-error "" "candidate" } + } + + template void foo (...); // { dg-error "" "candidate" } + template void bar (int, ...); // { dg-error "" "candidate" } + void baz (...); // { dg-error "" "candidate" } + + void + test () + { + foo <0> (0); // { dg-error "is ambiguous" } + bar <1> (0, 1); // { dg-error "is ambiguous" } + baz (0); // { dg-error "is ambiguous" } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/parse/friend8.C gcc-4.3.1/gcc/testsuite/g++.dg/parse/friend8.C *** gcc-4.3.0/gcc/testsuite/g++.dg/parse/friend8.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/parse/friend8.C Sun May 11 19:32:51 2008 *************** *** 0 **** --- 1,8 ---- + // PR c++/35578 + // Check position of error message + // { dg-do compile } + + int i; + + friend // { dg-error "friend" } + void foo(); diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/template/ttp27.C gcc-4.3.1/gcc/testsuite/g++.dg/template/ttp27.C *** gcc-4.3.0/gcc/testsuite/g++.dg/template/ttp27.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/template/ttp27.C Mon Apr 21 18:02:26 2008 *************** *** 0 **** --- 1,6 ---- + // PR c++/35678 + + template struct A; + template struct B; + template class U> struct B > {}; + B > x; diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/torture/pr35526.C gcc-4.3.1/gcc/testsuite/g++.dg/torture/pr35526.C *** gcc-4.3.0/gcc/testsuite/g++.dg/torture/pr35526.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/torture/pr35526.C Tue Mar 11 14:16:25 2008 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + + extern void *memcpy (void *__dest, __const void *__src, __SIZE_TYPE__ __n); + + char internal_crash_read_ip[] = { 0xb8 }; + + struct u_internal_crash_read_t + { + char ip[sizeof (internal_crash_read_ip)]; + } + u_internal_crash_read; + + void + gSignalHandler (int psignalNr, int pinfo, int pctx) + { + memcpy (u_internal_crash_read.ip, internal_crash_read_ip, + sizeof (internal_crash_read_ip)); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/vect/vect.exp gcc-4.3.1/gcc/testsuite/g++.dg/vect/vect.exp *** gcc-4.3.0/gcc/testsuite/g++.dg/vect/vect.exp Mon Dec 10 08:34:37 2007 --- gcc-4.3.1/gcc/testsuite/g++.dg/vect/vect.exp Fri Mar 21 09:18:37 2008 *************** lappend DEFAULT_VECTCFLAGS "-O2" "-ftree *** 45,51 **** # 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*-*-*"] { # Skip targets not supporting -maltivec. if ![is-effective-target powerpc_altivec_ok] { return --- 45,58 ---- # 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-*paired*"] { ! lappend DEFAULT_VECTCFLAGS "-mpaired" ! if [check_750cl_hw_available] { ! set dg-do-what-default run ! } else { ! set dg-do-what-default compile ! } ! } elseif [istarget "powerpc*-*-*"] { # Skip targets not supporting -maltivec. if ![is-effective-target powerpc_altivec_ok] { return *************** if [istarget "powerpc*-*-*"] { *** 53,71 **** 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 "spu-*-*"] } { set dg-do-what-default run } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } { lappend DEFAULT_VECTCFLAGS "-msse2" ! set dg-do-what-default run } elseif { [istarget "mips*-*-*"] && [check_effective_target_mpaired_single] && [check_effective_target_nomips16] } { --- 60,82 ---- 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=970" ! } ! set dg-do-what-default compile } } elseif { [istarget "spu-*-*"] } { set dg-do-what-default run } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } { lappend DEFAULT_VECTCFLAGS "-msse2" ! if [check_sse2_hw_available] { ! set dg-do-what-default run ! } else { ! set dg-do-what-default compile ! } } elseif { [istarget "mips*-*-*"] && [check_effective_target_mpaired_single] && [check_effective_target_nomips16] } { *************** if [istarget "powerpc*-*-*"] { *** 73,93 **** 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 } - # Initialize `dg'. dg-init --- 84,120 ---- set dg-do-what-default run } elseif [istarget "sparc*-*-*"] { lappend DEFAULT_VECTCFLAGS "-mcpu=ultrasparc" "-mvis" ! if [check_effective_target_ultrasparc_hw] { ! set dg-do-what-default run ! } else { ! set dg-do-what-default compile ! } } elseif [istarget "alpha*-*-*"] { + # Alpha's vectorization capabilities are extremely limited. + # It's more effort than its worth disabling all of the tests + # that it cannot pass. But if you actually want to see what + # does work, command out the return. + return + 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 + } elseif [is-effective-target arm_neon_ok] { + lappend DEFAULT_VECTCFLAGS "-mfpu=neon" "-mfloat-abi=softfp" + if [is-effective-target arm_neon_hw] { + set dg-do-what-default run + } else { + set dg-do-what-default compile + } } else { return } # Initialize `dg'. dg-init diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/warn/Warray-bounds-3.C gcc-4.3.1/gcc/testsuite/g++.dg/warn/Warray-bounds-3.C *** gcc-4.3.0/gcc/testsuite/g++.dg/warn/Warray-bounds-3.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/warn/Warray-bounds-3.C Tue Mar 18 17:23:35 2008 *************** *** 0 **** --- 1,15 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -Wall" } */ + + extern void function(void * x); + + struct A { + long x; + char d[0]; + }; + + + void test(A * a) { + function((char *)a - 4); /* { dg-bogus "below array bounds" } */ + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.dg/warn/ctor1.C gcc-4.3.1/gcc/testsuite/g++.dg/warn/ctor1.C *** gcc-4.3.0/gcc/testsuite/g++.dg/warn/ctor1.C Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/g++.dg/warn/ctor1.C Tue Apr 8 17:49:56 2008 *************** *** 0 **** --- 1,13 ---- + // PR c++/35734 + // { dg-options "-W" } + + struct A + { + A(); + template A(const T&); + }; + + struct B : A + { + B(const B&) {} // { dg-warning "base class" } + }; diff -Nrcpad gcc-4.3.0/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-4.3.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-4.3.0/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Mar 5 17:42:51 2008 --- gcc-4.3.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Fri Jun 6 14:28:32 2008 *************** *** 1,3 **** --- 1,7 ---- + 2008-06-06 Release Manager + + * GCC 4.3.1 released. + 2008-03-05 Release Manager * GCC 4.3.0 released. diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/20080419-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/20080419-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/20080419-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/20080419-1.c Thu May 1 00:42:33 2008 *************** *** 0 **** --- 1,6 ---- + extern void *f(); + void dmi_scan_machine(void) { + char *p = f(), *q; + for (q = p; q < p + 10; q++) + ; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/complex-5.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/complex-5.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/complex-5.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/complex-5.c Wed Apr 2 07:19:01 2008 *************** *** 0 **** --- 1,9 ---- + int foo(__complex__ int z0, __complex__ int z1) + { + return z0 != 0 || z1 != 0; + } + + int foo1(__complex__ int z0, __complex__ int z1) + { + return z0 == 0 && z1 == 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr35431.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr35431.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr35431.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr35431.c Wed Apr 2 07:15:19 2008 *************** *** 0 **** --- 1,15 ---- + void bar(); + + void foo(int i) + { + __complex__ int k = 0; + + if (i) + k = 1; + + for (i = 0; i < 1; ++i) + ; + + if (k) + bar(); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr36154.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr36154.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr36154.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr36154.c Thu May 8 08:23:59 2008 *************** *** 0 **** --- 1,11 ---- + struct eth_test_pkt { + unsigned short len; + unsigned short ctr; + unsigned char packet[]; + } __attribute__ ((packed)); + struct eth_test_pkt pkt_unaligned = { .packet = { 0xFC } }; + int cmd_unaligned(const void *p) + { + return memcmp(p, pkt_unaligned.packet, 1); + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr36172.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr36172.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr36172.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr36172.c Thu May 8 08:23:59 2008 *************** *** 0 **** --- 1,17 ---- + int f(float * ); + unsigned long FcCharSetFreeze (int *fcs, int b) + { + int i; + int a = 0; + for (i = 0; i < *fcs; i++) + { + float *leaf = (float *)fcs; + int hash = f (leaf); + if (hash) + a = b; + if (!a) + return; + } + return (unsigned long) fcs; + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr36245.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr36245.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/compile/pr36245.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/compile/pr36245.c Thu May 15 14:08:07 2008 *************** *** 0 **** --- 1,21 ---- + extern char buf1[10]; + extern char buf2[10]; + extern void b(int i, int j, int w); + + void a() { + int i,j; + char *p; + int w; + + p = buf1; + for(j = 0;j < 10; j++) { + for(i = 0;i < 10; i++) { + w = *p; + if(w != 1) { + w = buf2[p - buf1]; + b(i*2+1, j, w); + } + p++; + } + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080222-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080222-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080222-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080222-1.c Thu Mar 6 20:23:56 2008 *************** *** 0 **** --- 1,22 ---- + extern void abort (void); + + struct container + { + unsigned char data[1]; + }; + + unsigned char space[6] = {1, 2, 3, 4, 5, 6}; + + int + foo (struct container *p) + { + return p->data[4]; + } + + int + main () + { + if (foo ((struct container *) space) != 5) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080408-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080408-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080408-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080408-1.c Tue Apr 8 22:03:33 2008 *************** *** 0 **** --- 1,11 ---- + extern void abort (void); + int main () + { + short ssi = 126; + unsigned short usi = 65280; + int fail = !(ssi < usi); + if (fail) + abort (); + return 0; + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080424-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080424-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080424-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080424-1.c Thu Apr 24 16:19:22 2008 *************** *** 0 **** --- 1,31 ---- + /* PR tree-optimization/36008 */ + + extern void abort (void); + + int g[48][3][3]; + + void __attribute__ ((noinline)) + bar (int x[3][3], int y[3][3]) + { + static int i; + if (x != g[i + 8] || y != g[i++]) + abort (); + } + + static inline void __attribute__ ((always_inline)) + foo (int x[][3][3]) + { + int i; + for (i = 0; i < 8; i++) + { + int k = i + 8; + bar (x[k], x[k - 8]); + } + } + + int + main () + { + foo (g); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080502-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080502-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080502-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080502-1.c Sun May 18 20:19:55 2008 *************** *** 0 **** --- 1,16 ---- + /* PR target/36090 */ + + extern void abort (void); + + long double __attribute__ ((noinline)) foo (long double x) + { + return __builtin_signbit (x) ? 3.1415926535897932384626433832795029L : 0.0; + } + + int + main (void) + { + if (foo (-1.0L) != 3.1415926535897932384626433832795029L) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080506-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080506-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080506-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080506-1.c Wed May 7 07:58:33 2008 *************** *** 0 **** --- 1,21 ---- + /* PR middle-end/36137 */ + extern void abort (void); + + #define MIN(a, b) ((a) < (b) ? (a) : (b)) + #define MAX(a, b) ((a) > (b) ? (a) : (b)) + + int + main () + { + unsigned int u; + int i = -1; + + u = MAX ((unsigned int) MAX (i, 0), 1); + if (u != 1) + abort (); + + u = MIN ((unsigned int) MAX (i, 0), (unsigned int) i); + if (u != 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080506-2.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080506-2.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/20080506-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/20080506-2.c Wed May 7 08:00:36 2008 *************** *** 0 **** --- 1,21 ---- + /* PR middle-end/36013 */ + + extern void abort (void); + + void __attribute__((noinline)) + foo (int **__restrict p, int **__restrict q) + { + *p[0] = 1; + *q[0] = 2; + if (*p[0] != 2) + abort (); + } + + int + main (void) + { + int a; + int *p1 = &a, *p2 = &a; + foo (&p1, &p2); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr35456.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr35456.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr35456.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr35456.c Mon Mar 10 14:13:40 2008 *************** *** 0 **** --- 1,21 ---- + extern void abort (void); + + double + __attribute__ ((noinline)) + not_fabs (double x) + { + return x >= 0.0 ? x : -x; + } + + int main() + { + double x = -0.0; + double y; + + y = not_fabs (x); + + if (!__builtin_signbit (y)) + abort(); + + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr35472.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr35472.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr35472.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr35472.c Fri Mar 7 09:47:06 2008 *************** *** 0 **** --- 1,22 ---- + extern void abort (void); + extern void *memset (void *s, int c, __SIZE_TYPE__ n); + struct S { int i[16]; }; + struct S *p; + void __attribute__((noinline)) + foo(struct S *a, struct S *b) { a->i[0] = -1; p = b; } + void test (void) + { + struct S a, b; + memset (&a.i[0], '\0', sizeof (a.i)); + memset (&b.i[0], '\0', sizeof (b.i)); + foo (&a, &b); + *p = a; + *p = b; + if (b.i[0] != -1) + abort (); + } + int main() + { + test(); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36034-1.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36034-1.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36034-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36034-1.c Thu Apr 24 15:18:19 2008 *************** *** 0 **** --- 1,32 ---- + double x[5][10] = { { 10, 11, 12, 13, 14, 15, -1, -1, -1, -1 }, + { 21, 22, 23, 24, 25, 26, -1, -1, -1, -1 }, + { 32, 33, 34, 35, 36, 37, -1, -1, -1, -1 }, + { 43, 44, 45, 46, 47, 48, -1, -1, -1, -1 }, + { 54, 55, 56, 57, 58, 59, -1, -1, -1, -1 } }; + double tmp[5][6]; + + void __attribute__((noinline)) + test (void) + { + int i, j; + for (i = 0; i < 5; ++i) + { + tmp[i][0] = x[i][0]; + tmp[i][1] = x[i][1]; + tmp[i][2] = x[i][2]; + tmp[i][3] = x[i][3]; + tmp[i][4] = x[i][4]; + tmp[i][5] = x[i][5]; + } + } + extern void abort (void); + int main() + { + int i, j; + test(); + for (i = 0; i < 5; ++i) + for (j = 0; j < 6; ++j) + if (tmp[i][j] == -1) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36034-2.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36034-2.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36034-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36034-2.c Thu Apr 24 15:18:19 2008 *************** *** 0 **** --- 1,32 ---- + double x[50] = { 10, 11, 12, 13, 14, 15, -1, -1, -1, -1, + 21, 22, 23, 24, 25, 26, -1, -1, -1, -1, + 32, 33, 34, 35, 36, 37, -1, -1, -1, -1, + 43, 44, 45, 46, 47, 48, -1, -1, -1, -1, + 54, 55, 56, 57, 58, 59, -1, -1, -1, -1 }; + double tmp[30]; + + void __attribute__((noinline)) + test (void) + { + int i, j; + for (i = 0; i < 5; ++i) + { + tmp[i*6] = x[i*10]; + tmp[i*6+1] = x[i*10+1]; + tmp[i*6+2] = x[i*10+2]; + tmp[i*6+3] = x[i*10+3]; + tmp[i*6+4] = x[i*10+4]; + tmp[i*6+5] = x[i*10+5]; + } + } + extern void abort (void); + int main() + { + int i, j; + test(); + for (i = 0; i < 5; ++i) + for (j = 0; j < 6; ++j) + if (tmp[i*6+j] == -1) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36077.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36077.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36077.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36077.c Tue Apr 29 15:12:21 2008 *************** *** 0 **** --- 1,13 ---- + extern void abort (void); + + unsigned int test (unsigned int x) + { + return x / 0x80000001U / 0x00000002U; + } + + int main() + { + if (test(2) != 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36093.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36093.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36093.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36093.c Thu May 1 11:19:36 2008 *************** *** 0 **** --- 1,28 ---- + extern void abort (void); + + typedef struct Bar { + char c[129]; + } Bar __attribute__((__aligned__(128))); + + typedef struct Foo { + Bar bar[4]; + } Foo; + + Foo foo[4]; + + int main() + { + int i, j; + Foo *foop = &foo[0]; + + for (i=0; i < 4; i++) { + Bar *bar = &foop->bar[i]; + for (j=0; j < 129; j++) { + bar->c[j] = 'a' + i; + } + } + + if (foo[0].bar[3].c[128] != 'd') + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36321.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36321.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36321.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36321.c Mon May 26 13:28:52 2008 *************** *** 0 **** --- 1,24 ---- + extern void abort (void); + + extern __SIZE_TYPE__ strlen (const char *); + void foo(char *str) + { + int len2 = strlen (str); + char *a = (char *) __builtin_alloca (0); + char *b = (char *) __builtin_alloca (len2*3); + + if ((int) (a-b) < (len2*3)) + { + #ifdef _WIN32 + abort (); + #endif + return; + } + } + + int main(int argc, char **argv) + { + foo (argv[0]); + return 0; + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36339.c gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36339.c *** gcc-4.3.0/gcc/testsuite/gcc.c-torture/execute/pr36339.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.c-torture/execute/pr36339.c Tue May 27 13:23:34 2008 *************** *** 0 **** --- 1,31 ---- + extern void abort (void); + + typedef unsigned long my_uintptr_t; + + int check_a(my_uintptr_t tagged_ptr); + + int __attribute__((noinline)) try_a(my_uintptr_t x) + { + my_uintptr_t heap[2]; + my_uintptr_t *hp = heap; + + hp[0] = x; + hp[1] = 0; + return check_a((my_uintptr_t)(void*)((char*)hp + 1)); + } + + int __attribute__((noinline)) check_a(my_uintptr_t tagged_ptr) + { + my_uintptr_t *hp = (my_uintptr_t*)(void*)((char*)tagged_ptr - 1); + + if (hp[0] == 42 && hp[1] == 0) + return 0; + return -1; + } + + int main(void) + { + if (try_a(42) < 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/Wstrict-overflow-22.c gcc-4.3.1/gcc/testsuite/gcc.dg/Wstrict-overflow-22.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/Wstrict-overflow-22.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/Wstrict-overflow-22.c Thu May 1 00:42:33 2008 *************** *** 0 **** --- 1,13 ---- + /* { dg-do compile } */ + /* { dg-options "-fstrict-overflow -O2 -Wstrict-overflow=3" } */ + + /* Source: Ian Lance Taylor. Based on strict-overflow-6.c. */ + + /* We can only simplify the conditional when using strict overflow + semantics. */ + + int + foo (char* p) + { + return p + 1000 < p; /* { dg-warning "assuming pointer wraparound does not occur" "correct warning" } */ + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/attr-alloc_size-2.c gcc-4.3.1/gcc/testsuite/gcc.dg/attr-alloc_size-2.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/attr-alloc_size-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/attr-alloc_size-2.c Wed Apr 23 13:52:46 2008 *************** *** 0 **** --- 1,4 ---- + /* { dg-do compile } */ + + char *foo() __attribute__((alloc_size(1))); /* { dg-warning "outside range" } */ + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/attr-error-1.c gcc-4.3.1/gcc/testsuite/gcc.dg/attr-error-1.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/attr-error-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/attr-error-1.c Thu Apr 17 19:34:43 2008 *************** *** 0 **** --- 1,12 ---- + /* PR c/35744 */ + + typedef char a[N] __attribute__((aligned(4))); /* { dg-error "undeclared" } */ + + void c[1] __attribute__((vector_size(8))); /* { dg-error "array of voids" } */ + + void b[1] __attribute__((may_alias)); /* { dg-error "array of voids" } */ + + struct A + { + void d[1] __attribute__((packed)); /* { dg-error "array of voids" } */ + }; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/dfp/pr35739.c gcc-4.3.1/gcc/testsuite/gcc.dg/dfp/pr35739.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/dfp/pr35739.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/dfp/pr35739.c Wed Apr 16 16:10:04 2008 *************** *** 0 **** --- 1,16 ---- + /* PR c/35739 */ + /* { dg-do compile { target *-*-linux* } } */ + /* { dg-options "-O -fpreprocessed -fmudflap" } */ + + _Decimal128 + foo (int n, ...) + { + int i; + _Decimal128 j = 0; + __builtin_va_list ap; + __builtin_va_start (ap, n); + for (i = 0; i < n; i++) + j += __builtin_va_arg (ap, _Decimal128); + __builtin_va_end (ap); + return j; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/format/gcc_gfc-2.c gcc-4.3.1/gcc/testsuite/gcc.dg/format/gcc_gfc-2.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/format/gcc_gfc-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/format/gcc_gfc-2.c Thu Apr 17 19:31:45 2008 *************** *** 0 **** --- 1,13 ---- + /* PR c/35436 */ + /* { dg-do compile } */ + /* { dg-options "-Wformat" } */ + + typedef void locus[1]; /* { dg-error "array of void" } */ + + void foo(const char*, ...) + __attribute__((__format__(__gcc_gfc__, 1, 2))); /* { dg-error "locus" } */ + + void bar() + { + foo("%L", 0); /* { dg-warning "format" } */ + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr34692.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr34692.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr34692.c Fri Jan 25 09:01:27 2008 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr34692.c Fri Mar 21 09:18:37 2008 *************** b *** 24,26 **** --- 24,28 ---- cde f g h); } } + + /* { dg-final { cleanup-tree-dump "gimple" } } */ diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr34964.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr34964.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr34964.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr34964.c Thu Mar 6 22:08:55 2008 *************** *** 0 **** --- 1,6 ---- + /* PR c++/34964 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp" } */ + + char x[] = 0; /* { dg-error "invalid initializer" } */ + #pragma omp threadprivate (x) diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35244.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35244.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35244.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35244.c Thu Mar 6 22:08:55 2008 *************** *** 0 **** --- 1,20 ---- + /* PR c++/35244 */ + /* { dg-do compile } */ + /* { dg-require-effective-target tls_native } */ + /* { dg-options "-fopenmp" } */ + + int v1; + typedef struct A A; + typedef int i; + #pragma omp threadprivate (i) /* { dg-error "expected identifier before" } */ + #pragma omp threadprivate (A) /* { dg-error "expected identifier before" } */ + #pragma omp threadprivate (v1) + + void foo () + { + static int v4; + { + static int v5; + #pragma omp threadprivate (v4, v5) + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35438.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35438.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35438.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35438.c Mon Mar 10 20:52:28 2008 *************** *** 0 **** --- 1,6 ---- + /* PR c/35438 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp" } */ + + void foo (); + #pragma omp threadprivate(foo) /* { dg-error "is not a variable" } */ diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35439.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35439.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35439.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35439.c Mon Mar 10 20:52:28 2008 *************** *** 0 **** --- 1,6 ---- + /* PR c/35439 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp" } */ + + void x[1]; /* { dg-error "array of voids" } */ + #pragma omp threadprivate(x) diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35738.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35738.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35738.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35738.c Thu Apr 3 21:24:28 2008 *************** *** 0 **** --- 1,18 ---- + /* PR c/35738 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp" } */ + + void foo (void); + + void + bar (void *p) + { + int i = 0; + char q[10]; + #pragma omp atomic + i += q; /* { dg-warning "makes integer from pointer without a cast" } */ + #pragma omp atomic + i += foo; /* { dg-warning "makes integer from pointer without a cast" } */ + #pragma omp atomic + i += p; /* { dg-warning "makes integer from pointer without a cast" } */ + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35751.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35751.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35751.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35751.c Tue Apr 15 15:18:41 2008 *************** *** 0 **** --- 1,34 ---- + /* PR c/35751 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp" } */ + + void + foo (int i) + { + extern int a[i]; /* { dg-error "must have no linkage|storage size of" } */ + static int b[i]; /* { dg-error "storage size of" } */ + + #pragma omp parallel + { + a[0] = 0; + b[0] = 0; + } + + #pragma omp parallel shared (a, b) + { + a[0] = 0; + b[0] = 0; + } + + #pragma omp parallel private (a, b) + { + a[0] = 0; + b[0] = 0; + } + + #pragma omp parallel firstprivate (a, b) + { + a[0] = 0; + b[0] = 0; + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35818.c gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35818.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/gomp/pr35818.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/gomp/pr35818.c Thu Apr 3 21:22:41 2008 *************** *** 0 **** --- 1,16 ---- + /* PR middle-end/35818 */ + /* { dg-do compile } */ + /* { dg-options "-fopenmp" } */ + + extern int a[]; + + void + foo (void) + { + #pragma omp parallel + #pragma omp master + a[3] = 1; + #pragma omp parallel shared(a) + #pragma omp master + a[3] = 1; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/nested-func-6.c gcc-4.3.1/gcc/testsuite/gcc.dg/nested-func-6.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/nested-func-6.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/nested-func-6.c Thu May 29 11:35:05 2008 *************** *** 0 **** --- 1,14 ---- + /* { dg-do compile } */ + /* { dg-options "-O -Winline" } */ + + static inline int foo1 (int a) + { /* { dg-bogus "function not inlinable" } */ + void bar1 (int b) + {} + return a; + } + + int foo2 (int a) + { + return foo1 (a); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/no-strict-overflow-7.c gcc-4.3.1/gcc/testsuite/gcc.dg/no-strict-overflow-7.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/no-strict-overflow-7.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/no-strict-overflow-7.c Thu May 1 00:42:33 2008 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + /* { dg-options "-fno-strict-overflow -O2 -fdump-tree-final_cleanup" } */ + + /* Source: Ian Lance Taylor. Dual of strict-overflow-6.c. */ + + /* We can only simplify the conditional when using strict overflow + semantics. */ + + int + foo (char* p) + { + return p + 1000 < p; + } + + /* { dg-final { scan-tree-dump "\[+\]\[ \]*1000" "final_cleanup" } } */ + /* { dg-final { cleanup-tree-dump "final_cleanup" } } */ diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr34989-1.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr34989-1.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr34989-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr34989-1.c Fri Mar 14 16:34:11 2008 *************** *** 0 **** --- 1,10 ---- + /* { dg-do compile } */ + /* { dg-options "--combine -O2" } */ + /* { dg-additional-sources "pr34989-2.c" } */ + + extern struct globals *const ptr_to_globals; + struct globals { }; + int syslogd_main(int argc, char **argv) + { + (*(struct globals**)&ptr_to_globals) = 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr34989-2.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr34989-2.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr34989-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr34989-2.c Fri Mar 14 16:34:11 2008 *************** *** 0 **** --- 1,3 ---- + /* { dg-do compile } */ + + extern struct globals *const ptr_to_globals; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr35258.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr35258.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr35258.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr35258.c Wed Mar 19 10:06:52 2008 *************** *** 0 **** --- 1,28 ---- + /* { dg-do run } */ + /* { dg-options "-O1" } */ + + extern void *memcpy (void *, const void *, __SIZE_TYPE__); + extern int memcmp (const void *, const void *, __SIZE_TYPE__); + extern void abort(void); + + char str[9] = "1234"; + + void + bar (void) + { + unsigned int temp; + char *p = &str[2]; + + memcpy (&temp, &str[1], 4); + memcpy (p, &temp, 4); + str[1] = '.'; + } + + int main() + { + bar(); + if (memcmp (str, "1.234", 5) != 0) + abort (); + + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr35440.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr35440.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr35440.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr35440.c Fri Apr 4 13:12:58 2008 *************** *** 0 **** --- 1,12 ---- + /* PR c/35440 */ + /* { dg-do compile } */ + /* { dg-options "-std=gnu99" } */ + + struct A {}; + struct B { int i; char j[2]; }; + + void foo (void) + { + (struct A){}(); /* { dg-error "called object" } */ + (struct B){ .i = 2, .j[1] = 1 }(); /* { dg-error "called object" } */ + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr35616.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr35616.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr35616.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr35616.c Wed Mar 19 19:37:48 2008 *************** *** 0 **** --- 1,43 ---- + /* { dg-do run } */ + /* { dg-options "-O2" } */ + typedef void (*listener_fun)( + int a, + int b, + int c); + + struct data_t + { + int a; + + listener_fun listener; + + int b; + int c; + int d; + }; + + extern void abort(void); + void function_calling_listener (struct data_t data); + + void function_calling_listener (struct data_t data) + { + data.listener(data.a, data.c, data.d); + } + + void my_listener(int a, int b, int c) + { + if (a != 42 || b != 44 || c != 45) + abort (); + } + + int main() + { + struct data_t d; + d.a = 42; + d.b = 43; + d.c = 44; + d.d = 45; + d.listener = my_listener; + function_calling_listener (d); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr35899.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr35899.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr35899.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr35899.c Wed Apr 16 16:07:46 2008 *************** *** 0 **** --- 1,15 ---- + /* PR tree-optimization/35899 */ + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + int + foo (void) + { + int a = bar (); /* { dg-warning "previous implicit declaration" } */ + return a; + } + + void + bar (void) /* { dg-warning "conflicting types for" } */ + { + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36015.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36015.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36015.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36015.c Thu Apr 24 07:03:38 2008 *************** *** 0 **** --- 1,22 ---- + /* PR target/36015 */ + /* { dg-do run } */ + /* { dg-options "-O0" } */ + /* { dg-options "-O0 -mregparm=3" { target { { i?86-*-* x86_64-*-* } && ilp32 } } } */ + + static int test (); + + int + main (void) + { + test (0, 1, 2, 3, 4, 5, 6, 7); + return 0; + } + + static int + test (int a, int b, int c, int d, int e, int f, int g, int h) + { + if (a != 0 || b != 1 || c != 2 || d != 3 + || e != 4 || f != 5 || g != 6 || h != 7) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36017.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36017.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36017.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36017.c Thu Apr 24 16:23:46 2008 *************** *** 0 **** --- 1,29 ---- + /* PR rtl-optimization/36017 */ + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + extern double sqrt (double); + extern void abort (void); + + __attribute__((noinline)) double + foo (double a) + { + double b, c, d = 0.7; + if (a <= d) + b = sqrt (d * a); + else + { + c = (1.0 - d) * (1.0 - a); + b = c > 0 ? 1.0 - sqrt (c) : 1.0; + } + return b; + } + + int + main (void) + { + double c = foo (0.5); + if (c > 0.5917) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36194.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36194.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36194.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36194.c Mon May 19 23:29:29 2008 *************** *** 0 **** --- 1,25 ---- + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + void abort (void); + + __attribute__ ((noinline)) void + f (int i) + { + if (i != 0x87654321) + abort (); + asm (""); + } + + __attribute__ ((noinline)) void + g (long long a) + { + f (a); + asm (""); + } + + main () + { + g (0x1234567887654321ll); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36224.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36224.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36224.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36224.c Mon May 19 20:03:48 2008 *************** *** 0 **** --- 1,249 ---- + /* { dg-do run } */ + /* { dg-require-effective-target lp64 } */ + /* { dg-options "-O2 -ftree-vectorize" } */ + + #ifndef ALIGN16 + #define ALIGN16 __attribute__((__aligned__(32))) + #endif + + #define I16_B0 1 + #define I16_B1 23 + #define I16_B2 345 + #define I16_B3 6789 + #define I16_B4 1011 + #define I16_B5 -12 + #define I16_B6 1314 + #define I16_B7 -1516 + #define I16_B8 -1516 + #define I16_B9 1314 + #define I16_B10 -12 + #define I16_B11 1011 + #define I16_B12 6789 + #define I16_B13 345 + #define I16_B14 23 + #define I16_B15 1 + + #define I16_C0 2 + #define I16_C1 31567 + #define I16_C2 1112 + #define I16_C3 13 + #define I16_C4 14 + #define I16_C5 15 + #define I16_C6 -16 + #define I16_C7 17 + #define I16_C8 2 + #define I16_C9 31567 + #define I16_C10 1112 + #define I16_C11 13 + #define I16_C12 14 + #define I16_C13 15 + #define I16_C14 -16 + #define I16_C15 17 + + union ui2 { + int si[16]; + unsigned int ui[16]; + }; + + union us { + short ss[16]; + unsigned short us[16]; + }; + + static union ui2 i32_sa ALIGN16; + static union ui2 i32_ua ALIGN16; + + static union us i16_b ALIGN16 = { + (short)I16_B0, + (short)I16_B1, + (short)I16_B2, + (short)I16_B3, + (short)I16_B4, + (short)I16_B5, + (short)I16_B6, + (short)I16_B7, + (short)I16_B8, + (short)I16_B9, + (short)I16_B10, + (short)I16_B11, + (short)I16_B12, + (short)I16_B13, + (short)I16_B14, + (short)I16_B15, + }; + + static union us i16_c ALIGN16 = { + (short)I16_C0, + (short)I16_C1, + (short)I16_C2, + (short)I16_C3, + (short)I16_C4, + (short)I16_C5, + (short)I16_C6, + (short)I16_C7, + (short)I16_C8, + (short)I16_C9, + (short)I16_C10, + (short)I16_C11, + (short)I16_C12, + (short)I16_C13, + (short)I16_C14, + (short)I16_C15, + }; + + static long i32_sr[16] ALIGN16 = { + ((int)I16_B0) * ((int)I16_C0), + ((int)I16_B1) * ((int)I16_C1), + ((int)I16_B2) * ((int)I16_C2), + ((int)I16_B3) * ((int)I16_C3), + ((int)I16_B4) * ((int)I16_C4), + ((int)I16_B5) * ((int)I16_C5), + ((int)I16_B6) * ((int)I16_C6), + ((int)I16_B7) * ((int)I16_C7), + ((int)I16_B8) * ((int)I16_C8), + ((int)I16_B9) * ((int)I16_C9), + ((int)I16_B10) * ((int)I16_C10), + ((int)I16_B11) * ((int)I16_C11), + ((int)I16_B12) * ((int)I16_C12), + ((int)I16_B13) * ((int)I16_C13), + ((int)I16_B14) * ((int)I16_C14), + ((int)I16_B15) * ((int)I16_C15), + }; + + static unsigned long i32_ur[16] ALIGN16 = { + ((unsigned int)(unsigned short)I16_B0) * ((unsigned int)(unsigned short)I16_C0), + ((unsigned int)(unsigned short)I16_B1) * ((unsigned int)(unsigned short)I16_C1), + ((unsigned int)(unsigned short)I16_B2) * ((unsigned int)(unsigned short)I16_C2), + ((unsigned int)(unsigned short)I16_B3) * ((unsigned int)(unsigned short)I16_C3), + ((unsigned int)(unsigned short)I16_B4) * ((unsigned int)(unsigned short)I16_C4), + ((unsigned int)(unsigned short)I16_B5) * ((unsigned int)(unsigned short)I16_C5), + ((unsigned int)(unsigned short)I16_B6) * ((unsigned int)(unsigned short)I16_C6), + ((unsigned int)(unsigned short)I16_B7) * ((unsigned int)(unsigned short)I16_C7), + ((unsigned int)(unsigned short)I16_B8) * ((unsigned int)(unsigned short)I16_C8), + ((unsigned int)(unsigned short)I16_B9) * ((unsigned int)(unsigned short)I16_C9), + ((unsigned int)(unsigned short)I16_B10) * ((unsigned int)(unsigned short)I16_C10), + ((unsigned int)(unsigned short)I16_B11) * ((unsigned int)(unsigned short)I16_C11), + ((unsigned int)(unsigned short)I16_B12) * ((unsigned int)(unsigned short)I16_C12), + ((unsigned int)(unsigned short)I16_B13) * ((unsigned int)(unsigned short)I16_C13), + ((unsigned int)(unsigned short)I16_B14) * ((unsigned int)(unsigned short)I16_C14), + ((unsigned int)(unsigned short)I16_B15) * ((unsigned int)(unsigned short)I16_C15), + }; + + #ifndef ALIGN32 + #define ALIGN32 __attribute__((__aligned__(32))) + #endif + + #define I32_B0 1 + #define I32_B1 23 + #define I32_B2 345 + #define I32_B3 6789 + #define I32_B4 101112 + #define I32_B5 -13 + #define I32_B6 141516 + #define I32_B7 -1718 + + #define I32_C0 2 + #define I32_C1 45678910 + #define I32_C2 1112 + #define I32_C3 13 + #define I32_C4 14 + #define I32_C5 15 + #define I32_C6 -16 + #define I32_C7 17 + + union ul { + long sl[8]; + unsigned long ul[8]; + }; + + union ui { + int si[8]; + unsigned int ui[8]; + }; + + static union ul i64_sa ALIGN32; + static union ul i64_ua ALIGN32; + + static union ui i32_b ALIGN32 = { + (int)I32_B0, + (int)I32_B1, + (int)I32_B2, + (int)I32_B3, + (int)I32_B4, + (int)I32_B5, + (int)I32_B6, + (int)I32_B7, + }; + + static union ui i32_c ALIGN32 = { + (int)I32_C0, + (int)I32_C1, + (int)I32_C2, + (int)I32_C3, + (int)I32_C4, + (int)I32_C5, + (int)I32_C6, + (int)I32_C7, + }; + + static long i64_sr[8] ALIGN32 = { + ((long)I32_B0) * ((long)I32_C0), + ((long)I32_B1) * ((long)I32_C1), + ((long)I32_B2) * ((long)I32_C2), + ((long)I32_B3) * ((long)I32_C3), + ((long)I32_B4) * ((long)I32_C4), + ((long)I32_B5) * ((long)I32_C5), + ((long)I32_B6) * ((long)I32_C6), + ((long)I32_B7) * ((long)I32_C7), + }; + + static unsigned long i64_ur[8] ALIGN32 = { + ((unsigned long)(unsigned)I32_B0) * ((unsigned long)(unsigned)I32_C0), + ((unsigned long)(unsigned)I32_B1) * ((unsigned long)(unsigned)I32_C1), + ((unsigned long)(unsigned)I32_B2) * ((unsigned long)(unsigned)I32_C2), + ((unsigned long)(unsigned)I32_B3) * ((unsigned long)(unsigned)I32_C3), + ((unsigned long)(unsigned)I32_B4) * ((unsigned long)(unsigned)I32_C4), + ((unsigned long)(unsigned)I32_B5) * ((unsigned long)(unsigned)I32_C5), + ((unsigned long)(unsigned)I32_B6) * ((unsigned long)(unsigned)I32_C6), + ((unsigned long)(unsigned)I32_B7) * ((unsigned long)(unsigned)I32_C7), + }; + + + int main () + { + int i; + + /* Signed 16x16 -> 32-bit tests */ + for (i = 0; i < 16; i++) + i32_sa.si[i] = ((long)i16_b.ss[i]) * ((long)i16_c.ss[i]); + + for (i = 0; i < 16; i++) + if (i32_sa.si[i] != i32_sr[i]) + __builtin_abort (); + + /* Unsigned 16x16 -> 32-bit tests */ + for (i = 0; i < 16; i++) + i32_ua.ui[i] = ((long)i16_b.us[i]) * ((long)i16_c.us[i]); + + for (i = 0; i < 16; i++) + if (i32_ua.ui[i] != i32_ur[i]) + __builtin_abort (); + + /* Signed 32x32 -> 64-bit tests */ + for (i = 0; i < 8; i++) + i64_sa.sl[i] = ((long)i32_b.si[i]) * ((long)i32_c.si[i]); + + for (i = 0; i < 8; i++) + if (i64_sa.sl[i] != i64_sr[i]) + __builtin_abort (); + + /* Unsigned 32x32 -> 64-bit tests */ + for (i = 0; i < 8; i++) + i64_ua.ul[i] = ((long)i32_b.ui[i]) * ((long)i32_c.ui[i]); + + for (i = 0; i < 8; i++) + if (i64_ua.ul[i] != i64_ur[i]) + __builtin_abort (); + + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36227.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36227.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36227.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36227.c Tue May 13 14:04:40 2008 *************** *** 0 **** --- 1,12 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -Wstrict-overflow=3" } */ + + volatile unsigned long * + sat_add(volatile unsigned long *ptr, unsigned long i, volatile unsigned long *end) + { + if ((unsigned long)ptr + i * sizeof(*ptr) > (unsigned long)ptr) /* { dg-bogus "pointer wraparound" } */ + return ptr + i; + else + return end; + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36300-1.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36300-1.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36300-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36300-1.c Wed May 28 13:45:47 2008 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + /* { dg-options "-O2 -fwrapv" } */ + + extern void abort (void); + + #define VALUE ((int)((long long)U1 * (long long)3) + 2) + + int main(void) + { + int U1; + long long Y, Y2; + int t; + + U1 = -2147483647-1; + + Y = ((long long)(VALUE * VALUE) * 3); + + t = VALUE; + Y2 = ((long long)(t * t) * 3); + + if (Y != Y2) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/pr36300-2.c gcc-4.3.1/gcc/testsuite/gcc.dg/pr36300-2.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/pr36300-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/pr36300-2.c Wed May 28 13:45:47 2008 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + extern void abort (void); + + #define VALUE (unsigned int)((int)((long long)U1 * (long long)3) + 2) + + int main(void) + { + int U1; + long long Y, Y2; + unsigned int t; + + U1 = -2147483647-1; + + Y = ((long long)(int)(VALUE * VALUE) * 3); + + t = VALUE; + Y2 = ((long long)(int)(t * t) * 3); + + if (Y != Y2) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/strict-overflow-6.c gcc-4.3.1/gcc/testsuite/gcc.dg/strict-overflow-6.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/strict-overflow-6.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/strict-overflow-6.c Thu May 1 00:42:33 2008 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + /* { dg-options "-fstrict-overflow -O2 -fdump-tree-final_cleanup" } */ + + /* Source: Ian Lance Taylor. Dual of no-strict-overflow-7.c. */ + + /* We can only simplify the conditional when using strict overflow + semantics. */ + + int + foo (char* p) + { + return p + 1000 < p; + } + + /* { dg-final { scan-tree-dump-not "\[+\]\[ \]*1000" "final_cleanup" } } */ + /* { dg-final { cleanup-tree-dump "final_cleanup" } } */ diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/torture/pr34330.c gcc-4.3.1/gcc/testsuite/gcc.dg/torture/pr34330.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/torture/pr34330.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/torture/pr34330.c Tue May 20 21:03:59 2008 *************** *** 0 **** --- 1,21 ---- + /* { dg-do compile } */ + /* { dg-options "-ftree-parallelize-loops=4 -ftree-vectorize" } */ + + struct T + { + int t; + struct { short s1, s2, s3, s4; } *s; + }; + + void + foo (int *a, int *b, int *c, int *d, struct T *e) + { + int i; + for (i = 0; i < e->t; i++) + { + e->s[i].s1 = a[i]; + e->s[i].s2 = b[i]; + e->s[i].s3 = c[i]; + e->s[i].s4 = d[i]; + } + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/torture/pr35833.c gcc-4.3.1/gcc/testsuite/gcc.dg/torture/pr35833.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/torture/pr35833.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/torture/pr35833.c Sat Apr 5 18:01:14 2008 *************** *** 0 **** --- 1,22 ---- + /* { dg-do run } */ + /* { dg-options "-ftree-vrp" } */ + + struct S {struct S *field;}; + struct S True, False, Z; + static inline int f(void) {return 1;} + static inline int g(struct S **obj) { + return f() && *obj == &Z; + } + struct S **h(struct S **x) { + if (x) + return g(x) ? &True.field : &False.field; + else + return &True.field; + } + extern void abort (void); + int main() + { + if (h(&False.field) != &False.field) + abort (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/torture/pr36244.c gcc-4.3.1/gcc/testsuite/gcc.dg/torture/pr36244.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/torture/pr36244.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/torture/pr36244.c Tue May 20 21:03:59 2008 *************** *** 0 **** --- 1,39 ---- + /* { dg-do compile } */ + /* { dg-options "-O3 -ftree-parallelize-loops=4" } */ + + struct p7prior_s { + int mnum; /* number of mat emission Dirichlet mixtures */ + float mq[200]; /* probabilities of mnum components */ + float m[200][20]; /* match emission terms per mix component */ + }; + + struct p7prior_s *default_amino_prior(void); + struct p7prior_s *P7AllocPrior(void); + + struct p7prior_s * + default_amino_prior(void) + { + struct p7prior_s *pri; + int x, q; + + static float defmq[5] = { + 0.178091, 0.056591, 0.0960191, 0.0781233, 0.0834977 }; + static float defm[5][6] = { + { 0.270671, 0.039848, 0.017576, 0.016415, 0.014268, 0.216147 }, + { 0.021465, 0.010300, 0.011741, 0.010883, 0.385651, 0.029156 }, + { 0.561459, 0.045448, 0.438366, 0.764167, 0.087364, 0.583402 }, + { 0.070143, 0.011140, 0.019479, 0.094657, 0.013162, 0.073732 }, + { 0.041103, 0.014794, 0.005610, 0.010216, 0.153602, 0.012049 } + }; + + pri = P7AllocPrior(); + pri->mnum = 5; + for (q = 0; q < pri->mnum; q++) + { + pri->mq[q] = defmq[q]; + for (x = 0; x < 6; x++) + pri->m[q][x] = defm[q][x]; + } + return pri; + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/tree-ssa/forwprop-3.c gcc-4.3.1/gcc/testsuite/gcc.dg/tree-ssa/forwprop-3.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/tree-ssa/forwprop-3.c Fri Oct 12 08:42:13 2007 --- gcc-4.3.1/gcc/testsuite/gcc.dg/tree-ssa/forwprop-3.c Thu May 1 00:42:33 2008 *************** *** 1,5 **** /* { dg-do compile } */ ! /* { dg-options "-O -fdump-tree-forwprop1" } */ struct bar { int a[2]; --- 1,5 ---- /* { dg-do compile } */ ! /* { dg-options "-O2 -fdump-tree-forwprop1" } */ struct bar { int a[2]; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c gcc-4.3.1/gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c Sat Jan 12 00:21:39 2008 --- gcc-4.3.1/gcc/testsuite/gcc.dg/tree-ssa/loadpre8.c Tue May 27 13:23:34 2008 *************** rewrite_add_phi_arguments (basic_block b *** 93,97 **** get_reaching_def ((get_def_from_ptr (get_phi_result_ptr (phi)))->ssa_name.var); } } ! /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre"} } */ /* { dg-final { cleanup-tree-dump "pre" } } */ --- 93,97 ---- get_reaching_def ((get_def_from_ptr (get_phi_result_ptr (phi)))->ssa_name.var); } } ! /* { dg-final { scan-tree-dump-times "Eliminated: 1" 1 "pre" { xfail *-*-* } } } */ /* { dg-final { cleanup-tree-dump "pre" } } */ diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/tree-ssa/pr36181.c gcc-4.3.1/gcc/testsuite/gcc.dg/tree-ssa/pr36181.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/tree-ssa/pr36181.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/tree-ssa/pr36181.c Wed May 21 15:56:57 2008 *************** *** 0 **** --- 1,13 ---- + /* { dg-do compile } */ + /* { dg-options "-O3 -ftree-parallelize-loops=2" } */ + + int foo () + { + int i, sum = 0, data[1024]; + + for(i = 0; i<1024; i++) + sum += data[i]; + + return sum; + } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/uninit-15.c gcc-4.3.1/gcc/testsuite/gcc.dg/uninit-15.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/uninit-15.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/uninit-15.c Tue Mar 25 10:09:22 2008 *************** *** 0 **** --- 1,17 ---- + /* { dg-do compile } */ + /* { dg-options "-O -Wuninitialized" } */ + + inline int foo (int i) + { + if (i) return 1; /* { dg-warning "is used uninitialized" } */ + return 0; + } + + void baz(); + + void bar() + { + int j; /* { dg-message "was declared here" } */ + for (; foo(j); ++j) + baz(); + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/uninit-16.c gcc-4.3.1/gcc/testsuite/gcc.dg/uninit-16.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/uninit-16.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/uninit-16.c Wed Mar 26 21:42:48 2008 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -Wuninitialized" } */ + + int foo, bar; + + static + void decode_reloc(int reloc, int *is_alt) + { + if (reloc >= 20) + *is_alt = 1; + else if (reloc >= 10) + *is_alt = 0; + } + + void testfunc() + { + int alt_reloc; + + decode_reloc(foo, &alt_reloc); + + if (alt_reloc) /* { dg-warning "may be used uninitialized" } */ + bar = 42; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.dg/vect/O3-pr36098.c gcc-4.3.1/gcc/testsuite/gcc.dg/vect/O3-pr36098.c *** gcc-4.3.0/gcc/testsuite/gcc.dg/vect/O3-pr36098.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.dg/vect/O3-pr36098.c Wed May 14 12:11:21 2008 *************** *** 0 **** --- 1,22 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target vect_int } */ + + typedef struct { + int iatom[3]; + int blocknr; + } t_sortblock; + + #define DIM 3 + + void foo (int ncons, t_sortblock *sb, int *iatom) + { + int i, m; + + for(i=0; (i --- 3,12 ---- /* 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 "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/3dnow-2.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/3dnow-2.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/3dnow-2.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/3dnow-2.c Fri Mar 14 14:34:09 2008 *************** *** 3,12 **** /* 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 --- 3,12 ---- /* 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 "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/3dnowA-1.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/3dnowA-1.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/3dnowA-1.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/3dnowA-1.c Fri Mar 14 14:34:09 2008 *************** *** 1,13 **** /* { dg-do assemble } */ ! /* { 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 --- 1,12 ---- /* { dg-do assemble } */ ! /* { dg-options "-O2 -Werror-implicit-function-declaration -march=k8 -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 "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/3dnowA-2.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/3dnowA-2.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/3dnowA-2.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/3dnowA-2.c Fri Mar 14 14:34:09 2008 *************** *** 1,13 **** /* { dg-do assemble } */ ! /* { 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 --- 1,12 ---- /* { dg-do assemble } */ ! /* { dg-options "-O0 -Werror-implicit-function-declaration -march=k8 -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 "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-1.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-1.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-1.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse4" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if !defined __SSSE3__ + abort (); + #endif + #if !defined __SSE4_1__ + abort (); + #endif + #if !defined __SSE4_2__ + abort (); + #endif + #if defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-10.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-10.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-10.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-10.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse5 -mno-sse4" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if !defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-11.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-11.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-11.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-11.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse5 -mno-ssse3" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if !defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-12.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-12.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-12.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-12.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse5 -mno-sse3" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-13.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-13.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-13.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-13.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse5 -mno-sse2" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if defined __SSE2__ + abort (); + #endif + #if defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-14.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-14.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-14.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-14.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse5 -mno-sse" } */ + + extern void abort (void); + + int + main () + { + #if defined __SSE__ + abort (); + #endif + #if defined __SSE2__ + abort (); + #endif + #if defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-2.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-2.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-2.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse4 -msse5" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if !defined __SSSE3__ + abort (); + #endif + #if !defined __SSE4_1__ + abort (); + #endif + #if !defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if !defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-3.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-3.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-3.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-3.c Sat Mar 8 22:37:07 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=x86-64 -msse4 -msse5 -msse4a" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if !defined __SSSE3__ + abort (); + #endif + #if !defined __SSE4_1__ + abort (); + #endif + #if !defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if !defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-4.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-4.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-4.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-4.c Fri Mar 7 00:07:36 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=core2 -msse5 -mno-sse4" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if !defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if !defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-5.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-5.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-5.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-5.c Fri Mar 7 00:07:36 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=core2 -msse4a -mno-sse4" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if !defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-6.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-6.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-6.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-6.c Fri Mar 7 00:07:36 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=amdfam10 -mno-sse4" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-7.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-7.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-7.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-7.c Fri Mar 7 00:07:36 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=amdfam10 -msse5 -mno-sse4" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if !defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-8.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-8.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-8.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-8.c Fri Mar 7 00:07:36 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=amdfam10 -msse5 -mno-sse4a" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-9.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-9.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/isa-9.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/isa-9.c Fri Mar 7 00:07:36 2008 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-options "-march=amdfam10 -mno-sse5" } */ + + extern void abort (void); + + int + main () + { + #if !defined __SSE__ + abort (); + #endif + #if !defined __SSE2__ + abort (); + #endif + #if !defined __SSE3__ + abort (); + #endif + #if defined __SSSE3__ + abort (); + #endif + #if defined __SSE4_1__ + abort (); + #endif + #if defined __SSE4_2__ + abort (); + #endif + #if !defined __SSE4A__ + abort (); + #endif + #if defined __SSE5__ + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/mmx-1.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/mmx-1.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/mmx-1.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/mmx-1.c Fri Mar 14 14:34:09 2008 *************** *** 3,12 **** /* 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 --- 3,12 ---- /* 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 "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/mmx-2.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/mmx-2.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/mmx-2.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/mmx-2.c Fri Mar 14 14:34:09 2008 *************** *** 3,12 **** /* 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 --- 3,12 ---- /* 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 "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/pr35540.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/pr35540.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/pr35540.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/pr35540.c Wed Mar 12 06:37:10 2008 *************** *** 0 **** --- 1,45 ---- + /* { dg-do run } */ + /* { dg-options "-O2" } */ + + extern void abort (void); + + int __attribute__ ((noinline)) + test (unsigned int *a, int b) + { + return b ? 1 : __builtin_parity (*a); + } + + int __attribute__ ((noinline)) + testl (unsigned long *a, int b) + { + return b ? 1 : __builtin_parityl (*a); + } + + int __attribute__ ((noinline)) + testll (unsigned long long *a, int b) + { + return b ? 1 : __builtin_parityll (*a); + } + + int + main () + { + unsigned int a = 0; + unsigned long al; + unsigned long long all; + + a = 0x12345670; + if (test (&a, 0)) + abort (); + + al = 0x12345670ul; + if (testl (&al, 0)) + abort(); + + #if 1 + all = 0x12345678abcdef0ull; + if (testll (&all, 0)) + abort (); + #endif + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/sse-13.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/sse-13.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/sse-13.c Fri Dec 14 15:33:34 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/sse-13.c Fri Mar 14 14:34:09 2008 *************** *** 3,12 **** /* Test that the intrinsics compile with optimization. All of them are defined as inline functions in {,x,e,p,t,s,a,b}mmintrin.h and mm3dnow.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 /* Following intrinsics require immediate arguments. */ --- 3,12 ---- /* Test that the intrinsics compile with optimization. All of them are defined as inline functions in {,x,e,p,t,s,a,b}mmintrin.h and mm3dnow.h ! that reference the proper builtin functions. Defining away "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline /* Following intrinsics require immediate arguments. */ diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/sse-14.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/sse-14.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/sse-14.c Fri Dec 14 12:43:57 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/sse-14.c Fri Mar 14 14:34:09 2008 *************** *** 3,12 **** /* Test that the intrinsics compile without optimization. All of them are defined as inline functions in {,x,e,p,t,s,a,b}mmintrin.h and mm3dnow.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 --- 3,12 ---- /* Test that the intrinsics compile without optimization. All of them are defined as inline functions in {,x,e,p,t,s,a,b}mmintrin.h and mm3dnow.h ! that reference the proper builtin functions. Defining away "extern" and "__inline" results in all of them being compiled as proper functions. */ ! #define extern #define __inline #include diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pabsb.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pabsb.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pabsb.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pabsb.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pabsd.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pabsd.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pabsd.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pabsd.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pabsw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pabsw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pabsw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pabsw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-palignr.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-palignr.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-palignr.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-palignr.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phaddd.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phaddd.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phaddd.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phaddd.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phaddsw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phaddsw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phaddsw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phaddsw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phaddw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phaddw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phaddw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phaddw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phsubd.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phsubd.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phsubd.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phsubd.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phsubsw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phsubsw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phsubsw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phsubsw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phsubw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phsubw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-phsubw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-phsubw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pmaddubsw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pmaddubsw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pmaddubsw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pmaddubsw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pmulhrsw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pmulhrsw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pmulhrsw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pmulhrsw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pshufb.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pshufb.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-pshufb.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-pshufb.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-psignb.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-psignb.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-psignb.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-psignb.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-psignd.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-psignd.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-psignd.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-psignd.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-psignw.c gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-psignw.c *** gcc-4.3.0/gcc/testsuite/gcc.target/i386/ssse3-psignw.c Wed Aug 22 09:59:14 2007 --- gcc-4.3.1/gcc/testsuite/gcc.target/i386/ssse3-psignw.c Thu Mar 20 14:41:51 2008 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" --- 1,6 ---- /* { dg-do run } */ /* { dg-require-effective-target ssse3 } */ ! /* { dg-options "-O2 -fno-strict-aliasing -mssse3" } */ #include "ssse3-check.h" #include "ssse3-vals.h" diff -Nrcpad gcc-4.3.0/gcc/testsuite/gcc.target/powerpc/pr35907.c gcc-4.3.1/gcc/testsuite/gcc.target/powerpc/pr35907.c *** gcc-4.3.0/gcc/testsuite/gcc.target/powerpc/pr35907.c Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gcc.target/powerpc/pr35907.c Fri Apr 18 19:13:35 2008 *************** *** 0 **** --- 1,59 ---- + /* PR target/35907 */ + /* { dg-do run { target powerpc*-*-* } } */ + /* { dg-require-effective-target powerpc_altivec_ok } */ + /* { dg-options "-O2 -maltivec" } */ + + #include "altivec_check.h" + + #define vector __attribute__((vector_size (16))) + union + { + vector int k; + int c[16]; + } u, v, w; + vector int m; + + void __attribute__((noinline)) + bar (void *i, vector int j) + { + asm volatile ("" : : "r" (i), "r" (&j) : "memory"); + } + + int __attribute__((noinline)) + foo (int i, vector int j) + { + char *p = __builtin_alloca (64 + i); + m += u.k; + v.k = m; + w.k = j; + if (__builtin_memcmp (&v.c, &w.c, 16) != 0) + __builtin_abort (); + j += u.k; + bar (p, j); + j += u.k; + bar (p, j); + return 0; + } + + void + test (void) + { + vector int l; + int i; + for (i = 0; i < 4; i++) + u.c[i] = i; + l = u.k; + if (foo (64, l)) + __builtin_abort (); + l += u.k; + if (foo (64, l)) + __builtin_abort (); + } + + int + main () + { + altivec_check (); + test (); + return 0; + } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/actual_procedure_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/actual_procedure_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/actual_procedure_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/actual_procedure_1.f90 Sat May 17 07:10:13 2008 *************** *** 0 **** --- 1,72 ---- + ! { dg-do run } + ! Tests the fix for PR36433 in which a check for the array size + ! or character length of the actual arguments of foo and bar + ! would reject this legal code. + ! + ! Contributed by Paul Thomas + ! + module m + contains + function proc4 (arg, chr) + integer, dimension(10) :: proc4 + integer, intent(in) :: arg + character(8), intent(inout) :: chr + proc4 = arg + chr = "proc4" + end function + function chr_proc () + character(8) :: chr_proc + chr_proc = "chr_proc" + end function + end module + + program procPtrTest + use m + character(8) :: chr + interface + function proc_ext (arg, chr) + integer, dimension(10) :: proc_ext + integer, intent(in) :: arg + character(8), intent(inout) :: chr + end function + end interface + ! Check the passing of a module function + call foo (proc4, chr) + if (trim (chr) .ne. "proc4") call abort + ! Check the passing of an external function + call foo (proc_ext, chr) + ! Check the passing of a character function + if (trim (chr) .ne. "proc_ext") call abort + call bar (chr_proc) + contains + subroutine foo (p, chr) + character(8), intent(inout) :: chr + integer :: i(10) + interface + function p (arg, chr) + integer, dimension(10) :: p + integer, intent(in) :: arg + character(8), intent(inout) :: chr + end function + end interface + i = p (99, chr) + if (any(i .ne. 99)) call abort + end subroutine + subroutine bar (p) + interface + function p () + character(8):: p + end function + end interface + if (p () .ne. "chr_proc") call abort + end subroutine + end program + + function proc_ext (arg, chr) + integer, dimension(10) :: proc_ext + integer, intent(in) :: arg + character(8), intent(inout) :: chr + proc_ext = arg + chr = "proc_ext" + end function + ! { dg-final { cleanup-modules "m" } } \ No newline at end of file diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 Wed Aug 29 12:44:32 2007 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 Sat Apr 19 22:30:03 2008 *************** contains *** 139,144 **** end subroutine check_alloc2 end program alloc ! ! { dg-final { scan-tree-dump-times "builtin_free" 24 "original" } } ! { dg-final { cleanup-tree-dump "original" } } ! { dg-final { cleanup-modules "alloc_m" } } --- 139,144 ---- end subroutine check_alloc2 end program alloc ! ! { dg-final { scan-tree-dump-times "builtin_free" 27 "original" } } ! { dg-final { cleanup-tree-dump "original" } } ! { dg-final { cleanup-modules "alloc_m" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/alloc_comp_constructor_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/alloc_comp_constructor_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/alloc_comp_constructor_1.f90 Wed Aug 29 12:44:32 2007 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/alloc_comp_constructor_1.f90 Sat Apr 19 22:30:03 2008 *************** contains *** 104,108 **** end function blaha end program test_constructor ! ! { dg-final { scan-tree-dump-times "builtin_free" 19 "original" } } ! { dg-final { cleanup-tree-dump "original" } } --- 104,108 ---- end function blaha end program test_constructor ! ! { dg-final { scan-tree-dump-times "builtin_free" 21 "original" } } ! { dg-final { cleanup-tree-dump "original" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/alloc_comp_default_init_2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/alloc_comp_default_init_2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/alloc_comp_default_init_2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/alloc_comp_default_init_2.f90 Sat Apr 19 22:30:03 2008 *************** *** 0 **** --- 1,26 ---- + ! { dg-do run } + ! Tests the fix for PR35959, in which the structure subpattern was declared static + ! so that this test faied on the second recursive call. + ! + ! Contributed by Michaël Baudin + ! + program testprog + type :: t_type + integer, dimension(:), allocatable :: chars + end type t_type + integer, save :: callnb = 0 + type(t_type) :: this + allocate ( this % chars ( 4)) + if (.not.recursivefunc (this) .or. (callnb .ne. 10)) call abort () + contains + recursive function recursivefunc ( this ) result ( match ) + type(t_type), intent(in) :: this + type(t_type) :: subpattern + logical :: match + callnb = callnb + 1 + match = (callnb == 10) + if ((.NOT. allocated (this % chars)) .OR. match) return + allocate ( subpattern % chars ( 4 ) ) + match = recursivefunc ( subpattern ) + end function recursivefunc + end program testprog diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f gcc-4.3.1/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f *** gcc-4.3.0/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/allocate_zerosize_3.f Sat Mar 29 08:17:36 2008 *************** *** 0 **** --- 1,40 ---- + C { dg-do run } + C Test the fix for PR35698, in which the negative size dimension would + C throw out the subsequent bounds. + C + C Contributed by Dick Hendrickson + C + program try_lf0030 + call LF0030(10) + end + + SUBROUTINE LF0030(nf10) + INTEGER ILA1(7) + INTEGER ILA2(7) + LOGICAL LLA(:,:,:,:,:,:,:) + INTEGER ICA(7) + ALLOCATABLE LLA + + + ALLOCATE (LLA(2:3, 4, 0:5, + $ NF10:1, -2:7, -3:8, + $ -4:9)) + + ILA1 = LBOUND(LLA) + ILA2 = UBOUND(LLA) + C CORRECT FOR THE ZERO DIMENSIONED TERM TO ALLOW AN EASIER VERIFY + ILA1(4) = ILA1(4) - 2 ! 1 - 2 = -1 + ILA2(4) = ILA2(4) + 6 ! 0 + 6 = 6 + + DO J1 = 1,7 + IVAL = 3-J1 + IF (ILA1(J1) .NE. IVAL) call abort () + 100 ENDDO + + DO J1 = 1,7 + IVAL = 2+J1 + IF (ILA2(J1) .NE. IVAL) call abort () + 101 ENDDO + + END SUBROUTINE + \ No newline at end of file diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/array_constructor_23.f gcc-4.3.1/gcc/testsuite/gfortran.dg/array_constructor_23.f *** gcc-4.3.0/gcc/testsuite/gfortran.dg/array_constructor_23.f Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/array_constructor_23.f Sat Apr 26 17:35:26 2008 *************** *** 0 **** --- 1,48 ---- + ! { dg-do run } + ! { dg-require-effective-target fortran_large_real } + ! Tests the fix for PR35944/6/7, in which the variable array constructors below + ! were incorrectly translated and wrong code was produced. + ! + ! Contributed by Dick Hendrickson + ! + program try_fa6013 + call fa6013 (10, 1, -1) + call fa6077 (10, 1, -1, (/1,2,3,4,5,6,7,8,9,10/)) + call fa2083 + end program + + subroutine FA6013 (nf10, nf1, mf1) + integer, parameter :: kv = 4 + REAL(KV) DDA1(10) + REAL(KV) DDA2(10) + REAL(KV) DDA(10), dval + dda = (/1,2,3,4,5,6,7,8,9,10/) + DDA1 = ATAN2 ((/(REAL(J1,KV),J1=1,10)/), + $ REAL((/(J1,J1=nf10,nf1,mf1)/), KV)) !fails + DDA2 = ATAN2 (DDA, DDA(10:1:-1)) + if (any (DDA1 .ne. DDA2)) call abort () + END + + subroutine FA6077 (nf10,nf1,mf1, ida) + INTEGER IDA1(10) + INTEGER IDA2(10), ida(10) + IDA1 = IEOR((/1,2,3,4,5,6,7,8,9,10/), + $ (/(IDA(J1),J1=10,1,-1)/) ) + IDA2 = IEOR ((/1,2,3,4,5,6,7,8,9,10/), (/10,9,8,7,6,5,4,3,2,1/) ) + if (any (ida1 .ne. ida2)) call abort () + END SUBROUTINE + + subroutine fa2083 + implicit none + integer j1,k + parameter (k=selected_real_kind (precision (0.0_8) + 1)) ! failed + REAL(k) QDA1(10) + REAL(k) QDA(10), qval + qda = (/ 1,2,3,4,5,6,7,8,9,10 /) + QDA1 = MOD ( 1.1_k*( QDA(1) -5.0_k), P=( QDA -2.5_k)) + DO J1 = 1,10 + QVAL = MOD(1.1_k*(QDA(1)-5.0_k),P=(QDA(J1)-2.5_k)) + if (qval .ne. qda1(j1)) call abort () + ENDDO + END + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/character_assign_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/character_assign_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/character_assign_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/character_assign_1.f90 Sat Mar 29 08:17:36 2008 *************** *** 0 **** --- 1,17 ---- + ! { dg-do compile } + ! Tests the fix for PR35702, which caused an ICE because the types in the assignment + ! were not translated to be the same. + ! + ! Contributed by Dick Hendrickson + ! + MODULE TESTS + TYPE UNSEQ + CHARACTER(1) :: C + END TYPE UNSEQ + CONTAINS + SUBROUTINE CG0028 (TDA1L, TDA1R, nf0, nf1, nf2, nf3) + TYPE(UNSEQ) TDA1L(NF3) + TDA1L(NF1:NF2:NF1)%C = TDA1L(NF0+2:NF3:NF2/2)%C + END SUBROUTINE + END MODULE TESTS + ! { dg-final { cleanup-modules "tests" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/cshift_shift_real_2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/cshift_shift_real_2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/cshift_shift_real_2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/cshift_shift_real_2.f90 Fri Mar 28 05:44:43 2008 *************** *** 0 **** --- 1,8 ---- + ! { dg-do compile } + ! PR35724 Compile time segmentation fault for CSHIFT with negative third arg + SUBROUTINE RA0072(DDA,LDA,nf10,nf1,mf1,nf2) + REAL DDA(10,10) + LOGICAL LDA(10,10) + WHERE (LDA) DDA = CSHIFT(DDA,1,-MF1) ! MF1 works, -1 works + END SUBROUTINE + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/direct_io_10.f gcc-4.3.1/gcc/testsuite/gfortran.dg/direct_io_10.f *** gcc-4.3.0/gcc/testsuite/gfortran.dg/direct_io_10.f Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/direct_io_10.f Fri Mar 28 23:23:34 2008 *************** *** 0 **** --- 1,46 ---- + ! { dg-do run } + ! pr35699 run-time abort writing zero sized section to direct access file + program directio + call qi0010 ( 10, 1, 2, 3, 4, 9, 2) + end + + subroutine qi0010 (nf10, nf1, nf2, nf3, nf4,nf9, np2) + character(10) bda(nf10) + character(10) bda1(nf10), bval + + integer j_len + bda1(1) = 'x' + do i = 2,10 + bda1(i) = 'x'//bda1(i-1) + enddo + bda = 'unread' + + inquire(iolength = j_len) bda1(nf1:nf10:nf2), bda1(nf4:nf3), + $ bda1(nf2:nf10:nf2) + + open (unit=48, + $ access='direct', + $ status='scratch', + $ recl = j_len, + $ iostat = istat, + $ form='unformatted', + $ action='readwrite') + + write (48,iostat = istat, rec = 3) bda1(nf1:nf10:nf2), + $ bda1(nf4:nf3), bda1(nf2:nf10:nf2) + if ( istat .ne. 0) then + call abort + endif + istat = -314 + + read (48,iostat = istat, rec = np2+1) bda(nf1:nf9:nf2), + $ bda(nf4:nf3), bda(nf2:nf10:nf2) + if ( istat .ne. 0) then + call abort + endif + + do j1 = 1,10 + bval = bda1(j1) + if (bda(j1) .ne. bval) call abort + enddo + end subroutine diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/eoshift_2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/eoshift_2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/eoshift_2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/eoshift_2.f90 Fri Apr 18 18:48:07 2008 *************** *** 0 **** --- 1,9 ---- + ! { dg-do compile } + ! pr35724 compile time segmentation fault for eoshift with negative third arg + subroutine ra0072(dda,lda,nf10,nf1,mf1,nf2) + real dda(10,10) + logical lda(10,10) + dda = eoshift(dda,(/mf1,nf1/),tws0r,nf3-nf1) + lda = cshift(lda,(/mf1,nf1/),nf3-nf1) + where (lda) dda = eoshift(dda,1,1.0,-mf1) + end subroutine diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/gomp/pr35786-1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/gomp/pr35786-1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/gomp/pr35786-1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/gomp/pr35786-1.f90 Thu Apr 3 21:20:53 2008 *************** *** 0 **** --- 1,74 ---- + ! PR fortran/35786 + ! { dg-do compile } + ! { dg-options "-fopenmp" } + + module pr35768 + real, parameter :: one = 1.0 + contains + subroutine fn1 + !$omp parallel firstprivate (one) ! { dg-error "is not a variable" } + !$omp end parallel + end subroutine fn1 + subroutine fn2 (doit) + external doit + !$omp parallel firstprivate (doit) ! { dg-error "is not a variable" } + call doit () + !$omp end parallel + end subroutine fn2 + subroutine fn3 + interface fn4 + subroutine fn4 () + end subroutine fn4 + end interface + !$omp parallel private (fn4) ! { dg-error "is not a variable" } + call fn4 () + !$omp end parallel + end subroutine fn3 + subroutine fn5 + interface fn6 + function fn6 () + integer :: fn6 + end function fn6 + end interface + integer :: x + !$omp parallel private (fn6, x) ! { dg-error "is not a variable" } + x = fn6 () + !$omp end parallel + end subroutine fn5 + function fn7 () result (re7) + integer :: re7 + !$omp parallel private (fn7) ! { dg-error "is not a variable" } + !$omp end parallel + end function fn7 + function fn8 () result (re8) + integer :: re8 + call fn9 + contains + subroutine fn9 + !$omp parallel private (fn8) ! { dg-error "is not a variable" } + !$omp end parallel + end subroutine fn9 + end function fn8 + function fn10 () result (re10) + integer :: re10, re11 + entry fn11 () result (re11) + !$omp parallel private (fn10) ! { dg-error "is not a variable" } + !$omp end parallel + !$omp parallel private (fn11) ! { dg-error "is not a variable" } + !$omp end parallel + end function fn10 + function fn12 () result (re12) + integer :: re12, re13 + entry fn13 () result (re13) + call fn14 + contains + subroutine fn14 + !$omp parallel private (fn12) ! { dg-error "is not a variable" } + !$omp end parallel + !$omp parallel private (fn13) ! { dg-error "is not a variable" } + !$omp end parallel + end subroutine fn14 + end function fn12 + end module + + ! { dg-final { cleanup-modules "pr35768" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/gomp/pr35786-2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/gomp/pr35786-2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/gomp/pr35786-2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/gomp/pr35786-2.f90 Thu Apr 3 21:20:53 2008 *************** *** 0 **** --- 1,48 ---- + ! PR fortran/35786 + ! { dg-do compile } + ! { dg-options "-fopenmp" } + + function fn7 () + integer :: fn7 + !$omp parallel private (fn7) + fn7 = 6 + !$omp end parallel + fn7 = 7 + end function fn7 + function fn8 () + integer :: fn8 + call fn9 + contains + subroutine fn9 + !$omp parallel private (fn8) + fn8 = 6 + !$omp end parallel + fn8 = 7 + end subroutine fn9 + end function fn8 + function fn10 () + integer :: fn10, fn11 + entry fn11 () + !$omp parallel private (fn10) + fn10 = 6 + !$omp end parallel + !$omp parallel private (fn11) + fn11 = 6 + !$omp end parallel + fn10 = 7 + end function fn10 + function fn12 () + integer :: fn12, fn13 + entry fn13 () + call fn14 + contains + subroutine fn14 + !$omp parallel private (fn12) + fn12 = 6 + !$omp end parallel + !$omp parallel private (fn13) + fn13 = 6 + !$omp end parallel + fn12 = 7 + end subroutine fn14 + end function fn12 diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_char_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_char_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_char_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_char_1.f90 Wed Apr 16 21:02:10 2008 *************** *** 0 **** --- 1,17 ---- + ! { dg-do run } + ! Tests the fix for PR35932, in which the KIND argument of CHAR + ! was not converted and this screwed up the scalarizer. + ! + ! Contributed by Dick Hendrickson + ! + program FA0005 + + CHARACTER(1) CDA1(10) + character(10) CDA10 + INTEGER :: IDA(10) = [(i, i = 97,106)] + + CDA1 = CHAR ( IDA, KIND("A" )) !failed + if (transfer (CDA1, CDA10) /= "abcdefghij") call abort () + CDA1 = CHAR ( IDA ) !worked + if (transfer (CDA1, CDA10) /= "abcdefghij") call abort () + END diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_ifunction_1.f90 Tue May 6 20:46:41 2008 *************** *** 0 **** --- 1,43 ---- + ! { dg-do run } + ! PR 35995 - ifunction.m4 and ifunction_logical.m4 had a bug + ! where zero-sized arguments were not handled correctly. + ! Test case provided by Dick Hendrickson, amended by + ! Thomas Koenig. + + program try_gf0026_etc + + call gf0026( 0, 1) + call foo ( 0, 1) + + end program + + SUBROUTINE GF0026(nf0,nf1) + LOGICAL LDA(9) + INTEGER IDA(NF0,9), iii(9) + + lda = (/ (i/2*2 .eq. I, i=1,9) /) + LDA = ALL ( IDA .NE. -1000, 1) + if (.not. all(lda)) call abort + if (.not. all(ida .ne. -1000)) call abort + + lda = (/ (i/2*2 .eq. I, i=1,9) /) + LDA = any ( IDA .NE. -1000, 1) + print *, lda !expect FALSE + if (any(lda)) call abort + print *, any(ida .ne. -1000) !expect FALSE + if (any(ida .ne. -1000)) call abort + + iii = 137 + iii = count ( IDA .NE. -1000, 1) + if (any(iii /= 0)) call abort + if (count(ida .ne. -1000) /= 0) call abort + + END SUBROUTINE + + subroutine foo (nf0, nf1) + integer, dimension(9):: res, iii + integer, dimension(nf0,9) :: ida + res = (/ (-i, i=1,9) /) + res = product (ida, 1) + if (any(res /= 1)) call abort + end subroutine foo diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_pack_4.f90 Tue May 6 20:46:41 2008 *************** *** 0 **** --- 1,72 ---- + ! { dg-do run } + ! PR 35990 - some empty array sections caused pack to crash. + ! Test case contributed by Dick Hendrickson, adjusted and + ! extended by Thomas Koenig. + program try_gf1048 + + call gf1048a( 10, 8, 7, 1, 0, .true.) + call gf1048b( 10, 8, 7, 1, 0, .true.) + call gf1048c( 10, 8, 7, 1, 0, .true.) + call gf1048d( 10, 8, 7, 1, 0, .true.) + call P_inta ( 10, 8, 7, 1, 0, .true.) + call P_intb ( 10, 8, 7, 1, 0, .true.) + call P_intc ( 10, 8, 7, 1, 0, .true.) + call P_intd ( 10, 8, 7, 1, 0, .true.) + end program + + SUBROUTINE GF1048a(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + CHARACTER(9) BDA(10) + CHARACTER(9) BDA1(10) + BDA( 8:7) = PACK(BDA1( 10: 1), NF_TRUE) + END SUBROUTINE + + SUBROUTINE GF1048b(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + CHARACTER(9) BDA(10) + CHARACTER(9) BDA1(nf10) + BDA(NF8:NF7) = PACK(BDA1(NF8:NF7), NF_TRUE) + END SUBROUTINE + + SUBROUTINE GF1048c(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + CHARACTER(9) BDA(10) + CHARACTER(9) BDA1(10) + BDA(NF8:NF7) = PACK(BDA1(NF10:NF1), NF_TRUE) + END SUBROUTINE + + SUBROUTINE GF1048d(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + CHARACTER(9) BDA(10) + CHARACTER(9) BDA1(nf10) + BDA(NF8:NF7) = PACK(BDA1(NF10:NF1), NF_TRUE) + END SUBROUTINE + + SUBROUTINE P_INTa(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + INTEGER BDA(10) + INTEGER BDA1(10) + BDA( 8:7) = PACK(BDA1( 10: 1), NF_TRUE) + END SUBROUTINE + + SUBROUTINE P_INTb(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + INTEGER BDA(10) + INTEGER BDA1(nf10) + BDA(NF8:NF7) = PACK(BDA1(NF8:NF7), NF_TRUE) + END SUBROUTINE + + SUBROUTINE P_INTc(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + INTEGER BDA(10) + INTEGER BDA1(10) + BDA(NF8:NF7) = PACK(BDA1(NF10:NF1), NF_TRUE) + END SUBROUTINE + + SUBROUTINE P_INTd(nf10,nf8,nf7,nf1,nf0,nf_true) + logical nf_true + INTEGER BDA(10) + INTEGER BDA1(nf10) + BDA(NF8:NF7) = PACK(BDA1(NF10:NF1), NF_TRUE) + END SUBROUTINE + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/intrinsic_product_1.f90 Sat May 3 20:39:24 2008 *************** *** 0 **** --- 1,29 ---- + ! { dg-do run } + ! PR 35993 - some intrinsics with mask = .false. didn't set + ! the whole return array for multi-dimensional arrays. + ! Test case adapted from Dick Hendrickson. + + program try + + call ga3019( 1, 2, 3, 4) + end program + + SUBROUTINE GA3019(nf1,nf2,nf3,nf4) + INTEGER IDA(NF2,NF3) + INTEGER IDA1(NF2,NF4,NF3) + + ida1 = 3 + + ida = -3 + IDA(NF1:NF2,NF1:NF3) = PRODUCT(IDA1,NF2, NF1 .LT. 0) !fails + if (any(ida /= 1)) call abort + + ida = -3 + IDA(NF1:NF2,NF1:NF3) = PRODUCT(IDA1,NF2, .false. ) !fails + if (any(ida /= 1)) call abort + + ida = -3 + IDA(NF1:NF2,NF1:NF3) = PRODUCT(IDA1,NF2, ida1 .eq. 137 ) !works + if (any(ida /= 1)) call abort + + END SUBROUTINE diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/minmaxloc_5.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/minmaxloc_5.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/minmaxloc_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/minmaxloc_5.f90 Sat Apr 26 15:35:14 2008 *************** *** 0 **** --- 1,18 ---- + ! { dg-do run } + ! PR35994 [4.3/4.4 regression] MAXLOC and MINLOC off by one with mask + program GA4076 + REAL DDA(100) + dda = (/(J1,J1=1,100)/) + IDS = MAXLOC(DDA,1) + if (ids.ne.100) call abort !expect 100 + + IDS = MAXLOC(DDA,1, (/(J1,J1=1,100)/) > 50) + if (ids.ne.100) call abort !expect 100 + + IDS = minLOC(DDA,1) + if (ids.ne.1) call abort !expect 1 + + IDS = MinLOC(DDA,1, (/(J1,J1=1,100)/) > 50) + if (ids.ne.51) call abort !expect 51 + + END diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/minmaxloc_6.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/minmaxloc_6.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/minmaxloc_6.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/minmaxloc_6.f90 Sat Apr 26 15:35:14 2008 *************** *** 0 **** --- 1,11 ---- + ! { dg-do run } + ! PR35994 [4.3/4.4 regression] MAXLOC and MINLOC off by one with mask + REAL DDA(5:104) + dda = (/(J1,J1=1,100)/) + + IDS = MAXLOC(DDA,1) + if (ids.ne.100) call abort !expect 100 + IDS = MAXLOC(DDA,1, (/(J1,J1=1,100)/) > 50) + if (ids.ne.100) call abort !expect 100 + + END diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/module_commons_2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/module_commons_2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/module_commons_2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/module_commons_2.f90 Fri Mar 14 13:18:49 2008 *************** *** 0 **** --- 1,21 ---- + ! { dg-do compile } + ! Tests the fix for PR35474, in which the PRIVATE statement would + ! cause the error Internal Error at (1): free_pi_tree(): Unresolved fixup + ! This arose because the symbol for 'i' emanating from the COMMON was + ! not being fixed-up as the EQUIVALENCE was built. + ! + ! Contributed by FX Coudert + ! + module h5global + integer i + integer j + common /c/ i + equivalence (i, j) + private + end module h5global + + program bug + use h5global + end + + ! { dg-final { cleanup-modules "h5global" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/module_function_type_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/module_function_type_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/module_function_type_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/module_function_type_1.f90 Mon Mar 24 21:10:36 2008 *************** *** 0 **** --- 1,33 ---- + ! { dg-do compile } + ! This checks the fix for PR33295 in which the A_type in initA was + ! not promoted to module level and so not recognised as being the + ! same as that emanating directly from module a. + ! + ! Contributed by Janus Weil + ! + module A + type A_type + real comp + end type + end module A + + module B + contains + function initA() + use A + implicit none + type(A_type):: initA + initA%comp=1.0 + end function + end module B + + program C + use B + use A + implicit none + type(A_type):: A_var + A_var = initA() + end program C + + ! { dg-final { cleanup-modules "A B" } } + diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/namelist_45.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/namelist_45.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/namelist_45.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/namelist_45.f90 Fri Mar 21 01:37:38 2008 *************** *** 0 **** --- 1,18 ---- + ! { dg-do run } + ! PR35617 read namelist error with '!' + program test + character(len=128) :: mhdpath + namelist /nbdrive_naml/ mhdpath + open(10, file='test.nml') + + write(10,'(a)') "&nbdrive_naml" + write(10,'(a)') + write(10,'(a)') "!nstep_stop = 2 ! uncomment to bar" + write(10,'(a)') "!nstep_start = 2 ! uncomment to foo" + write(10,'(a)') " mhdpath = 'mypath.dat'" + write(10,'(a)') "/" + + rewind(10) + read(10, nbdrive_naml) + close(10,status="delete") + end program test diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/namelist_46.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/namelist_46.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/namelist_46.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/namelist_46.f90 Fri Mar 21 03:07:26 2008 *************** *** 0 **** --- 1,23 ---- + ! { dg-do run } + ! PR35627 Namelist read problem with short logical followed by read real + program test + implicit none + LOGICAL :: nlco(200) ! (1:nbeam) + REAL(kind=8):: xlbtna(200) ! (1:nbeam) + NAMELIST/nbdrive_naml/ nlco, xlbtna + INTEGER :: nbshapa(200) ! (1:nbeam) + NAMELIST/nbdrive_naml/ nbshapa + nlco = .false. + xlbtna = 0.0_8 + nbshapa = 0 + open(10, file='t.nml') + write(10,'(a)') "&nbdrive_naml" + write(10,'(a)') "nlco = 4*T," + write(10,'(a)') "xlbtna = 802.8, 802.8, 802.8, 802.8" + write(10,'(a)') "nbshapa = 4*1" + write(10,'(a)') "/" + rewind(10) + read(10, nbdrive_naml) + !write(*,nbdrive_naml) + close(10, status="delete") + end program test diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/namelist_47.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/namelist_47.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/namelist_47.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/namelist_47.f90 Wed Apr 9 09:03:34 2008 *************** *** 0 **** --- 1,52 ---- + ! { dg-do run } + + module nml_47 + type :: mt + character(len=2) :: c012345678901234567890123456789012345678901234567890123456789h(2) = (/"aa","bb"/) + end type mt + type :: bt + integer :: i(2) = (/1,2/) + type(mt) :: m(2) + end type bt + end module nml_47 + + program namelist_47 + use nml_47 + type(bt) :: x(2) + character(140) :: teststring + namelist /mynml/ x + + teststring = " x(2)%m%c012345678901234567890123456789012345678901234567890123456789h(:)(2:2) = 'z','z'," + call writenml (teststring) + teststring = " x(2)%m(2)%c012345678901234567890123456789012345678901234567890123456789h(:)(2) = 'z','z'," + call writenml (teststring) + teststring = " x(2)%m(2)%c012345678901234567890123456789012345678901234567890123456789h(:)(:3) = 'z','z'," + call writenml (teststring) + teststring = " x(2)%m(2)%c012345678901234567890123456789012345678901234567890123456789h(1:2)(k:) = 'z','z'," + call writenml (teststring) + + contains + + subroutine writenml (astring) + character(140), intent(in) :: astring + character(300) :: errmessage + integer :: ierror + + open (10, status="scratch", delim='apostrophe') + write (10, '(A)') "&MYNML" + write (10, '(A)') astring + write (10, '(A)') "/" + rewind (10) + read (10, nml = mynml, iostat=ierror, iomsg=errmessage) + if (ierror == 0) call abort + print '(a)', trim(errmessage) + close (10) + + end subroutine writenml + + end program namelist_47 + ! { dg-output "Multiple sub-objects with non-zero rank in namelist object x(\n|\r\n|\r)" } + ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } + ! { dg-output "Substring out of range for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } + ! { dg-output "Bad character in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } + ! { dg-final { cleanup-modules "nml_47" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/null_3.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/null_3.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/null_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/null_3.f90 Mon Mar 24 21:10:36 2008 *************** *** 0 **** --- 1,18 ---- + ! { dg-do compile } + ! This checks the fix for PR34813 in which the error at line 17 + ! was not detected. + ! + ! Contributed by Daniel Franke + ! + SUBROUTINE kd_tree_init_default() + TYPE :: kd_tree_node + INTEGER :: dummy + END TYPE + + TYPE :: kd_tree + TYPE(kd_tree_node) :: root + END TYPE + + TYPE(kd_tree) :: tree + tree = kd_tree(null()) ! { dg-error "neither a POINTER nor ALLOCATABLE" } + END SUBROUTINE diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/pr35662.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/pr35662.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/pr35662.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/pr35662.f90 Wed Apr 16 16:05:51 2008 *************** *** 0 **** --- 1,20 ---- + ! PR target/35662 + ! { dg-do run } + ! { dg-options "-O1" } + + subroutine f(x, y, z) + real, intent (in) :: x + real, intent (out) :: y, z + y = sin (x) + z = cos (x) + end subroutine f + + program pr35662 + real :: x, y, z + x = 3.1415926535897932384626433832795029 + call f (x, y, z) + if (abs (y) > 1.0e-5 .or. abs (z + 1.0) > 1.0e-5) call abort + x = x / 2.0 + call f (x, y, z) + if (abs (y - 1.0) > 1.0e-5 .or. abs (z) > 1.0e-5) call abort + end program pr35662 diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/pr35944-1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/pr35944-1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/pr35944-1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/pr35944-1.f90 Thu Apr 17 07:07:45 2008 *************** *** 0 **** --- 1,22 ---- + ! { dg-do run } + + implicit none + integer i + real rda1(10), rda(10), rval + double precision dda1(10), dda(10), dval + + rda = (/ 1,2,3,4,5,6,7,8,9,10 /) + rDA1 = MOD (1.1*(rDA(1)-5.0), P=(rDA-2.5)) + DO i = 1, 10 + rVAL = MOD (1.1*(rDA(1)-5.0), P=(rDA(i)-2.5)) + if (rval /= rda1(i)) call abort + enddo + + dda = (/ 1,2,3,4,5,6,7,8,9,10 /) + dDA1 = MOD (1.1d0*(dDA(1)-5.0d0), P=(dDA-2.5d0)) + DO i = 1, 10 + dVAL = MOD (1.1d0*(dDA(1)-5.0d0), P=(dDA(i)-2.5d0)) + if (dval /= dda1(i)) call abort + enddo + + end diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/pr35944-2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/pr35944-2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/pr35944-2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/pr35944-2.f90 Thu Apr 17 07:07:45 2008 *************** *** 0 **** --- 1,15 ---- + ! { dg-do run } + ! { dg-require-effective-target fortran_large_real } + + implicit none + integer,parameter :: k = selected_real_kind (precision (0.0_8) + 1) + integer :: i + real(k) :: qda1(10), qda(10), qval + + qda = (/ 1,2,3,4,5,6,7,8,9,10 /) + QDA1 = MOD (1.1_k*(QDA(1)-5.0_k), P=(QDA-2.5_k)) + DO i = 1, 10 + QVAL = MOD (1.1_k*(QDA(1)-5.0_k), P=(QDA(i)-2.5_k)) + if (qval /= qda1(i)) call abort + enddo + end diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/simplify_argN_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/simplify_argN_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/simplify_argN_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/simplify_argN_1.f90 Thu May 1 07:31:28 2008 *************** *** 0 **** --- 1,26 ---- + ! { dg-do run } + ! Tests the fix for PR35780, in which the assignment for C was not + ! scalarized in expr.c. + ! + ! Contributed by Dick Hendrickson + ! + MODULE MODS + integer, parameter :: N = 10 + INTEGER, PARAMETER, DIMENSION(N) :: A = [(i, i = 1, N)] + INTEGER, PARAMETER, DIMENSION(N) :: B = [(i - 5, i = 1, N)] + INTEGER, PARAMETER, DIMENSION(N) :: C = ISHFTC(3, B, 5) !ICE + INTEGER, PARAMETER, DIMENSION(N) :: D = ISHFTC(A, 3, 5) ! OK + INTEGER, PARAMETER, DIMENSION(N) :: E = ISHFTC(A, B, 5) ! OK + + END MODULE MODS + + use mods + integer, dimension(N) :: X = A + integer, dimension(N) :: Y = B + + ! Check the simplifed expressions against the library + if (any (ISHFTC(3, Y, 5) /= C)) call abort () + if (any (ISHFTC(X, 3, 5) /= D)) call abort () + if (any (ISHFTC(X, Y, 5) /= E)) call abort () + end + ! { dg-final { cleanup-modules "mods" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/transfer_simplify_9.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/transfer_simplify_9.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/transfer_simplify_9.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/transfer_simplify_9.f90 Sun May 18 23:06:16 2008 *************** *** 0 **** --- 1,23 ---- + ! { dg-do run } + ! + ! Various checks on simplification of TRANSFER of substrings + character(len=4), parameter :: t = "xyzt" + integer, parameter :: w = transfer(t,0) + integer :: i = 1 + if (transfer(t,0) /= w) call abort + if (transfer(t(:),0) /= w) call abort + if (transfer(t(1:4),0) /= w) call abort + if (transfer(t(i:i+3),0) /= w) call abort + + if (transfer(t(1:1), 0_1) /= transfer("x", 0_1)) call abort + if (transfer(t(2:2), 0_1) /= transfer("y", 0_1)) call abort + if (transfer(t(i:i), 0_1) /= transfer("x", 0_1)) call abort + if (transfer(t(i+1:i+1), 0_1) /= transfer("y", 0_1)) call abort + if (transfer(t(1:2), 0_2) /= transfer("xy", 0_2)) call abort + if (transfer(t(3:4), 0_2) /= transfer("zt", 0_2)) call abort + + if (transfer(transfer(-1, t), 0) /= -1) call abort + if (transfer(transfer(-1, t(:)), 0) /= -1) call abort + if (any (transfer(transfer(-1, (/t(1:1)/)), (/0_1/)) /= -1)) call abort + if (transfer(transfer(-1, t(1:1)), 0_1) /= -1) call abort + end diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/transpose_conjg_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/transpose_conjg_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/transpose_conjg_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/transpose_conjg_1.f90 Sun Mar 30 14:23:10 2008 *************** *** 0 **** --- 1,37 ---- + ! { dg-do run } + ! Tests the fix for PR35740, where the trick of interchanging the descriptor + ! dimensions to implement TRANSPOSE did not work if it is an argument of + ! an elemental function - eg. CONJG. The fix forces a library call for such + ! cases. During the diagnosis of the PR, it was found that the scalarizer was + ! completely thrown if the argument of TRANSPOSE was a non-variable + ! expression; eg a + c below. This is also fixed by the library call. + ! + ! Contributed by Dominik Muth + ! + program main + implicit none + complex, dimension(2,2) :: a,b,c,d + a(1,1) = (1.,1.) + a(2,1) = (2.,2.) + a(1,2) = (3.,3.) + a(2,2) = (4.,4.) + ! + b = a + b = conjg(transpose(b)) + d = a + d = transpose(conjg(d)) + if (any (b /= d)) call abort () + ! + d = matmul (b, a ) + if (any (d /= matmul (transpose(conjg(a)), a))) call abort () + if (any (d /= matmul (conjg(transpose(a)), a))) call abort () + ! + c = (0.0,1.0) + b = conjg(transpose(a + c)) + d = transpose(conjg(a + c)) + if (any (b /= d)) call abort () + ! + d = matmul (b, a + c) + if (any (d /= matmul (transpose(conjg(a + c)), a + c))) call abort () + if (any (d /= matmul (conjg(transpose(a + c)), a + c))) call abort () + END program main diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/used_rename_3.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/used_rename_3.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/used_rename_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/used_rename_3.f90 Tue May 13 20:26:47 2008 *************** *** 0 **** --- 1,35 ---- + ! { dg-do compile } + ! Tests the fix for PR35997, in which the use association of renamed + ! valid2 and flag2 was treated as if the renaming were done on use + ! association in the main program. Thus, the following, direct use + ! association of valid and flag did not occur. + ! + ! Contributed by Drew McCormack + ! + module funcinterfacemod + interface + logical function valid () + end function + end interface + logical :: flag = .true. + end module + + module secondmod + use funcinterfacemod, valid2 => valid, flag2 => flag + end module + + logical function valid () + valid = .true. + end function + + program main + use secondmod + use funcinterfacemod + if (valid ()) then + print *, 'Is Valid' + endif + if (flag) then + print *, 'Is flag' + endif + end program + ! { dg-final { cleanup-modules "funcinterfacemod secondmod" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/vect/O3-pr36119.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/vect/O3-pr36119.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/vect/O3-pr36119.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/vect/O3-pr36119.f90 Mon May 12 12:12:45 2008 *************** *** 0 **** --- 1,28 ---- + ! { dg-do compile } + + SUBROUTINE check_dnucint_ana (dcore) + IMPLICIT NONE + INTEGER, PARAMETER :: dp=8 + REAL(dp), DIMENSION(10, 2), INTENT(IN),& + OPTIONAL :: dcore + INTEGER :: i, j + REAL(dp) :: delta, nssss, od, rn, ssssm, & + ssssp + REAL(dp), DIMENSION(10, 2) :: corem, corep, ncore + LOGICAL :: check_value + + delta = 1.0E-8_dp + od = 0.5_dp/delta + ncore = od * (corep - corem) + nssss = od * (ssssp - ssssm) + IF (PRESENT(dcore)) THEN + DO i = 1, 2 + DO j = 1, 10 + IF (.NOT.check_value(ncore(j,i), dcore(j,i), delta, 0.1_dp)) THEN + END IF + END DO + END DO + END IF + END SUBROUTINE check_dnucint_ana + + ! { dg-final { cleanup-tree-dump "vect" } } diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/vect/vect.exp gcc-4.3.1/gcc/testsuite/gfortran.dg/vect/vect.exp *** gcc-4.3.0/gcc/testsuite/gfortran.dg/vect/vect.exp Mon Dec 17 11:13:56 2007 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/vect/vect.exp Mon May 12 12:12:45 2008 *************** set save-dg-do-what-default ${dg-do-what *** 38,45 **** # 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] { --- 38,55 ---- # 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-*paired*"] { ! lappend DEFAULT_VECTCFLAGS "-mpaired" ! if [check_750cl_hw_available] { ! set dg-do-what-default run ! } else { ! set dg-do-what-default compile ! } ! } elseif [istarget "powerpc*-*-*"] { ! # Skip targets not supporting -maltivec. ! if ![is-effective-target powerpc_altivec_ok] { ! return ! } lappend DEFAULT_VECTCFLAGS "-maltivec" if [check_vmx_hw_available] { *************** if [istarget "powerpc*-*-*"] { *** 47,66 **** } 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 --- 57,94 ---- } else { if [is-effective-target ilp32] { # Specify a cpu that supports VMX for compile-only tests. ! lappend DEFAULT_VECTCFLAGS "-mcpu=970" } set dg-do-what-default compile } + } elseif { [istarget "spu-*-*"] } { + set dg-do-what-default run } elseif { [istarget "i?86-*-*"] || [istarget "x86_64-*-*"] } { lappend DEFAULT_VECTCFLAGS "-msse2" ! if [check_sse2_hw_available] { ! set dg-do-what-default run ! } else { ! set dg-do-what-default compile ! } ! } elseif { [istarget "mips*-*-*"] ! && [check_effective_target_mpaired_single] ! && [check_effective_target_nomips16] } { lappend DEFAULT_VECTCFLAGS "-mpaired-single" set dg-do-what-default run } elseif [istarget "sparc*-*-*"] { lappend DEFAULT_VECTCFLAGS "-mcpu=ultrasparc" "-mvis" ! if [check_effective_target_ultrasparc_hw] { ! set dg-do-what-default run ! } else { ! set dg-do-what-default compile ! } } elseif [istarget "alpha*-*-*"] { + # Alpha's vectorization capabilities are extremely limited. + # It's more effort than its worth disabling all of the tests + # that it cannot pass. But if you actually want to see what + # does work, command out the return. + return + lappend DEFAULT_VECTCFLAGS "-mmax" if [check_alpha_max_hw_available] { set dg-do-what-default run *************** if [istarget "powerpc*-*-*"] { *** 69,89 **** } } 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'. --- 97,111 ---- } } elseif [istarget "ia64-*-*"] { set dg-do-what-default run ! } elseif [is-effective-target arm_neon_ok] { ! lappend DEFAULT_VECTCFLAGS "-mfpu=neon" "-mfloat-abi=softfp" ! if [is-effective-target arm_neon_hw] { ! set dg-do-what-default run } else { ! set dg-do-what-default compile } ! } else { ! return } # Initialize `dg'. *************** lappend DEFAULT_VECTCFLAGS "--param" "ve *** 115,120 **** --- 137,148 ---- dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/no-vfa-*.\[fF\]{,90,95,03} ]] \ "" $DEFAULT_VECTCFLAGS + # With -O3 + set DEFAULT_VECTCFLAGS $SAVED_DEFAULT_VECTCFLAGS + lappend DEFAULT_VECTCFLAGS "-O3" + dg-runtest [lsort [glob -nocomplain $srcdir/$subdir/O3-*.\[fF\]{,90,95,03,08} ]] \ + "" $DEFAULT_VECTCFLAGS + # Clean up. set dg-do-what-default ${save-dg-do-what-default} diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/where_1.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/where_1.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/where_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/where_1.f90 Sat May 17 07:10:13 2008 *************** *** 0 **** --- 1,64 ---- + ! { dg-do run } + ! Tests the fix for PR35759 and PR35756 in which the dependencies + ! led to an incorrect use of the "simple where", gfc_trans_where_3. + ! + ! Contributed by Dick Hendrickson + ! + logical :: la(6) = (/(2*(i/2) /= i, i = 1, 6)/), lb(6) + CALL PR35759 + CALL PR35756 + ! + ! The first version of the fix caused this to regress as pointed + ! out by Dominique d'Humieres + ! + lb = la + where(la) + la = .false. + elsewhere + la = .true. + end where + if (any(la .eqv. lb)) call abort() + CONTAINS + subroutine PR35759 + integer UDA1L(6) + integer :: UDA1R(6), expected(6) = (/2,0,5,0,3,0/) + LOGICAL LDA(5) + UDA1L(1:6) = 0 + uda1r = (/1,2,3,4,5,6/) + lda = (/ (i/2*2 .ne. I, i=1,5) /) + WHERE (LDA) + UDA1L(1:5) = UDA1R(2:6) + ELSEWHERE + UDA1L(2:6) = UDA1R(6:2:-1) + ENDWHERE + if (any (expected /= uda1l)) call abort + END subroutine + + SUBROUTINE PR35756 + INTEGER ILA(10), CLA(10) + LOGICAL LDA(10) + ILA = (/ (I, i=1,10) /) + LDA = (/ (i/2*2 .ne. I, i=1,10) /) + WHERE(LDA) + CLA = 10 + ELSEWHERE + CLA = 2 + ENDWHERE + WHERE(LDA) + ILA = R_MY_MAX_I(ILA) + ELSEWHERE + ILA = R_MY_MIN_I(ILA) + ENDWHERE + IF (any (CLA /= ILA)) call abort + end subroutine + + INTEGER FUNCTION R_MY_MAX_I(A) + INTEGER :: A(:) + R_MY_MAX_I = MAXVAL(A) + END FUNCTION R_MY_MAX_I + + INTEGER FUNCTION R_MY_MIN_I(A) + INTEGER :: A(:) + R_MY_MIN_I = MINVAL(A) + END FUNCTION R_MY_MIN_I + END diff -Nrcpad gcc-4.3.0/gcc/testsuite/gfortran.dg/where_2.f90 gcc-4.3.1/gcc/testsuite/gfortran.dg/where_2.f90 *** gcc-4.3.0/gcc/testsuite/gfortran.dg/where_2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gfortran.dg/where_2.f90 Sat May 17 07:10:13 2008 *************** *** 0 **** --- 1,36 ---- + ! { dg-do run } + ! Tests the fix for PR35743 and PR35745. + ! + ! Contributed by Dick Hendrickson + ! + program try_rg0025 + logical lda(5) + lda = (/(i/2*2 .ne. I, i=1,5)/) + call PR35743 (lda, 1, 2, 3, 5, 6, -1, -2) + CALL PR34745 + end program + + ! Previously, the negative mask size would not be detected. + SUBROUTINE PR35743 (LDA,nf1,nf2,nf3,nf5,nf6,mf1,mf2) + type unseq + real r + end type unseq + TYPE(UNSEQ) TDA1L(6) + LOGICAL LDA(NF5) + TDA1L(1:6)%r = 1.0 + WHERE (LDA(NF6:NF3)) + TDA1L(MF1:NF5:MF1) = TDA1L(NF6:NF2) + ENDWHERE + END SUBROUTINE + + ! Previously, the expression in the WHERE block would be evaluated + ! ouside the loop generated by the where. + SUBROUTINE PR34745 + INTEGER IDA(10) + REAL RDA(10) + RDA = 1.0 + nf0 = 0 + WHERE (RDA < -15.0) + IDA = 1/NF0 + 2 + ENDWHERE + END SUBROUTINE diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/bit_packed_array3.adb gcc-4.3.1/gcc/testsuite/gnat.dg/bit_packed_array3.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/bit_packed_array3.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/bit_packed_array3.adb Sat May 17 13:09:28 2008 *************** *** 0 **** --- 1,40 ---- + -- { dg-do run } + -- { dg-options "-O2 -gnatp" } + + procedure Bit_Packed_Array3 is + + type Bitmap_T is array (1 .. 10) of Boolean; + pragma Pack (Bitmap_T); + + type Maps_T is record + M1 : Bitmap_T; + end record; + pragma Pack (Maps_T); + for Maps_T'Size use 10; + pragma Suppress_Initialization (Maps_T); + + Tmap : constant Bitmap_T := (others => True); + Fmap : constant Bitmap_T := (others => False); + Amap : constant Bitmap_T := + (1 => False, 2 => True, 3 => False, 4 => True, 5 => False, + 6 => True, 7 => False, 8 => True, 9 => False, 10 => True); + + function Some_Maps return Maps_T is + Value : Maps_T := (M1 => Amap); + begin + return Value; + end; + pragma Inline (Some_Maps); + + Maps : Maps_T; + begin + Maps := Some_Maps; + + for I in Maps.M1'Range loop + if (I mod 2 = 0 and then not Maps.M1 (I)) + or else (I mod 2 /= 0 and then Maps.M1 (I)) + then + raise Program_Error; + end if; + end loop; + end; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/conv_integer.adb gcc-4.3.1/gcc/testsuite/gnat.dg/conv_integer.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/conv_integer.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/conv_integer.adb Tue May 13 08:46:49 2008 *************** *** 0 **** --- 1,12 ---- + -- { dg-do compile } + -- { dg-options "-gnatws" } + + procedure Conv_Integer is + S : constant := Integer'Size; + type Regoff_T is range -1 .. 2 ** (S-1); + for Regoff_T'Size use S; + B : Integer; + C : Regoff_T; + begin + B := Integer (C); + end; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/discr7.adb gcc-4.3.1/gcc/testsuite/gnat.dg/discr7.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/discr7.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/discr7.adb Tue May 13 08:46:49 2008 *************** *** 0 **** --- 1,27 ---- + -- { dg-do compile } + + procedure Discr7 is + + subtype Index is Natural range 0..5; + type BitString is array(Index range <>) of Boolean; + pragma Pack(BitString); + + function Id (I : Integer) return Integer is + begin + return I; + end; + + type E(D : Index) is record + C : BitString(1..D); + end record; + + subtype E0 is E(Id(0)); + + function F return E0 is + begin + return E'(D=>0, C=>(1..0=>FALSE)); + end; + + begin + null; + end; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/discr8.adb gcc-4.3.1/gcc/testsuite/gnat.dg/discr8.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/discr8.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/discr8.adb Thu May 15 10:55:44 2008 *************** *** 0 **** --- 1,38 ---- + -- { dg-do compile } + -- { dg-options "-gnatws" } + + package body Discr8 is + + procedure Make (C : out Local_T) is + Tmp : Local_T (Tag_One); + begin + C := Tmp; + end; + + package Iteration is + + type Message_T is + record + S : Local_T; + end record; + + type Iterator_T is + record + S : Local_T; + end record; + + type Access_Iterator_T is access Iterator_T; + + end Iteration; + + package body Iteration is + + procedure Construct (Iterator : in out Access_Iterator_T; + Message : Message_T) is + begin + Iterator.S := Message.S; + end; + + end Iteration; + + end Discr8; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/discr8.ads gcc-4.3.1/gcc/testsuite/gnat.dg/discr8.ads *** gcc-4.3.0/gcc/testsuite/gnat.dg/discr8.ads Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/discr8.ads Thu May 15 10:55:44 2008 *************** *** 0 **** --- 1,20 ---- + with Discr8_Pkg1; use Discr8_Pkg1; + + package Discr8 is + + type Tag_T is (Tag_One, Tag_Two); + + type Local_T (Tag : Tag_T := Tag_One) is + record + case Tag is + when Tag_One => + A : T; + B : Integer; + when Tag_Two => + null; + end case; + end record; + + procedure Make (C : out Local_T); + + end Discr8; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/discr8_pkg1.ads gcc-4.3.1/gcc/testsuite/gnat.dg/discr8_pkg1.ads *** gcc-4.3.0/gcc/testsuite/gnat.dg/discr8_pkg1.ads Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/discr8_pkg1.ads Thu May 15 10:55:44 2008 *************** *** 0 **** --- 1,11 ---- + with Ada.Strings.Unbounded; use Ada.Strings.Unbounded; + with Discr8_Pkg2; use Discr8_Pkg2; + + package Discr8_Pkg1 is + + type T is record + A : Unbounded_String; + B : L; + end record; + + end Discr8_Pkg1; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/discr8_pkg2.ads gcc-4.3.1/gcc/testsuite/gnat.dg/discr8_pkg2.ads *** gcc-4.3.0/gcc/testsuite/gnat.dg/discr8_pkg2.ads Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/discr8_pkg2.ads Thu May 15 10:55:44 2008 *************** *** 0 **** --- 1,13 ---- + with Discr8_Pkg3; use Discr8_Pkg3; + + package Discr8_Pkg2 is + + Max : constant Natural := Value; + + type List_T is array (Natural range <>) of Integer; + + type L is record + List : List_T (1 .. Max); + end record; + + end Discr8_Pkg2; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/discr8_pkg3.ads gcc-4.3.1/gcc/testsuite/gnat.dg/discr8_pkg3.ads *** gcc-4.3.0/gcc/testsuite/gnat.dg/discr8_pkg3.ads Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/discr8_pkg3.ads Thu May 15 10:55:44 2008 *************** *** 0 **** --- 1,3 ---- + package Discr8_Pkg3 is + function Value return Natural; + end Discr8_Pkg3; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/frame_overflow.adb gcc-4.3.1/gcc/testsuite/gnat.dg/frame_overflow.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/frame_overflow.adb Fri Jul 7 10:26:07 2006 --- gcc-4.3.1/gcc/testsuite/gnat.dg/frame_overflow.adb Sun Mar 9 15:35:14 2008 *************** *** 1,15 **** -- { dg-do compile } procedure frame_overflow is ! type Bitpos_Range_T is new Positive; type Bitmap_Array_T is array (Bitpos_Range_T) of Boolean; type Bitmap_T is record Bits : Bitmap_Array_T := (others => False); end record; ! function -- { dg-error "too large" "" } Set_In (Bitmap : Bitmap_T; Bitpos : Bitpos_Range_T) return Bitmap_T is Result: Bitmap_T := Bitmap; --- 1,17 ---- -- { dg-do compile } + with System; + procedure frame_overflow is ! type Bitpos_Range_T is range 1..2**(System.Word_Size-1)-1; type Bitmap_Array_T is array (Bitpos_Range_T) of Boolean; type Bitmap_T is record Bits : Bitmap_Array_T := (others => False); end record; ! function -- { dg-error "too large" } Set_In (Bitmap : Bitmap_T; Bitpos : Bitpos_Range_T) return Bitmap_T is Result: Bitmap_T := Bitmap; *************** procedure frame_overflow is *** 18,24 **** return Result; end; ! function -- { dg-error "too large" "" } Negate (Bitmap : Bitmap_T) return Bitmap_T is Result: Bitmap_T; begin --- 20,26 ---- return Result; end; ! function -- { dg-error "too large" } Negate (Bitmap : Bitmap_T) return Bitmap_T is Result: Bitmap_T; begin diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/loop_address2.adb gcc-4.3.1/gcc/testsuite/gnat.dg/loop_address2.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/loop_address2.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/loop_address2.adb Mon Apr 14 11:34:29 2008 *************** *** 0 **** --- 1,26 ---- + -- { dg-do compile } + -- { dg-options "-O" } + + with System, Ada.Unchecked_Conversion; + with System.Storage_Elements; use System.Storage_Elements; + + procedure Loop_Address2 is + + type Ptr is access all Integer; + + function To_Ptr is new Ada.Unchecked_Conversion (System.Address, Ptr); + + function F (BM : System.Address; I : Integer) return System.Address is + begin + return BM + Storage_Offset (4*I); + end; + + B : Integer; + P : Ptr; + + begin + for I in 0 .. 2 loop + P := To_Ptr (F (B'Address, I)); + P.all := 0; + end loop; + end ; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/loop_optimization1.adb gcc-4.3.1/gcc/testsuite/gnat.dg/loop_optimization1.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/loop_optimization1.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/loop_optimization1.adb Tue Apr 15 15:41:14 2008 *************** *** 0 **** --- 1,27 ---- + -- { dg-do compile } + -- { dg-options "-O3" } + + package body Loop_Optimization1 is + + procedure Create (A : in out D; Val : Integer) is + + M : constant Group_Chain_List := Group_Chains(Val); + G : constant Group_List := Groups(Val); + + function Is_Visible (Group : Number) return Boolean is + begin + for I in M'Range loop + if Group = M(I).Groups(M(I).Length) then + return True; + end if; + end loop; + return False; + end; + + begin + for I in A.L'Range loop + A.L(I) := new R(Is_Visible(G(I))); + end loop; + end; + + end Loop_Optimization1; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/loop_optimization1.ads gcc-4.3.1/gcc/testsuite/gnat.dg/loop_optimization1.ads *** gcc-4.3.0/gcc/testsuite/gnat.dg/loop_optimization1.ads Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/loop_optimization1.ads Tue Apr 15 15:41:14 2008 *************** *** 0 **** --- 1,35 ---- + package Loop_Optimization1 is + + type Number is range 0 .. 127; + + type Group_List is array (Positive range <>) of Number; + + subtype Index is Natural range 1 .. 5; + + function Groups (T : Integer) return Group_List; + pragma Import (Ada, Groups); + + type Group_Chain (Length : Index := 1) is record + Groups : Group_List(1 .. Length); + end record; + + type Group_Chain_List is array (Positive range <>) of Group_Chain; + + function Group_Chains (T : Integer) return Group_Chain_List; + pragma Import (Ada, Group_Chains); + + type R (I : Boolean) is null record; + + type R_Access is access R; + + type R_List is array (Positive range <>) of R_Access; + + type R_List_Access is access R_List; + + type D is record + L : R_List_Access; + end record; + + procedure Create (A : in out D; Val : Integer); + + end Loop_Optimization1; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/object_overflow.adb gcc-4.3.1/gcc/testsuite/gnat.dg/object_overflow.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/object_overflow.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/object_overflow.adb Mon Mar 31 19:16:08 2008 *************** *** 0 **** --- 1,14 ---- + -- { dg-do compile } + + procedure Object_Overflow is + + type Rec is null record; + + procedure Proc (x : Rec) is begin null; end; + + type Arr is array(Long_Integer) of Rec; + Obj : Arr; -- { dg-warning "Storage_Error will be raised" } + + begin + Proc (Obj(1)); + end; diff -Nrcpad gcc-4.3.0/gcc/testsuite/gnat.dg/warn4.adb gcc-4.3.1/gcc/testsuite/gnat.dg/warn4.adb *** gcc-4.3.0/gcc/testsuite/gnat.dg/warn4.adb Thu Jan 1 00:00:00 1970 --- gcc-4.3.1/gcc/testsuite/gnat.dg/warn4.adb Sat May 17 08:22:35 2008 *************** *** 0 **** --- 1,30 ---- + -- { dg-do compile } + -- { dg-options "-O2" } + + with Unchecked_Conversion; + + procedure Warn4 is + + type POSIX_Character is new Standard.Character; + type POSIX_String is array (Positive range <>) of aliased POSIX_Character; + + type String_Ptr is access all String; + type POSIX_String_Ptr is access all POSIX_String; + + function sptr_to_psptr is new Unchecked_Conversion -- { dg-warning "aliasing problem" } + (String_Ptr, POSIX_String_Ptr); -- { dg-warning "" "" { target *-*-* } 14 } + + function To_POSIX_String (Str : String) return POSIX_String; + function To_POSIX_String (Str : String) + return POSIX_String is + begin + return sptr_to_psptr (Str'Unrestricted_Access).all; + end To_POSIX_String; + + A : Boolean; + S : String := "ABCD/abcd"; + P : Posix_String := "ABCD/abcd"; + + begin + A := To_POSIX_String (S) = P; + end; diff -Nrcpad gcc-4.3.0/gcc/testsuite/lib/target-supports.exp gcc-4.3.1/gcc/testsuite/lib/target-supports.exp *** gcc-4.3.0/gcc/testsuite/lib/target-supports.exp Tue Feb 26 00:16:08 2008 --- gcc-4.3.1/gcc/testsuite/lib/target-supports.exp Fri Mar 21 09:18:37 2008 *************** proc check_750cl_hw_available { } { *** 764,769 **** --- 764,792 ---- }] } + # Return 1 if the target supports executing SSE2 instructions, 0 + # otherwise. Cache the result. + + proc check_sse2_hw_available { } { + return [check_cached_effective_target sse2_hw_available { + # If this is not the right target then we can skip the test. + if { !([istarget x86_64-*-*] || [istarget i?86-*-*]) } { + expr 0 + } else { + check_runtime_nocache sse2_hw_available { + #include "cpuid.h" + int main () + { + unsigned int eax, ebx, ecx, edx = 0; + if (__get_cpuid (1, &eax, &ebx, &ecx, &edx)) + return !(edx & bit_SSE2); + return 1; + } + } "" + } + }] + } + # Return 1 if the target supports executing AltiVec instructions, 0 # otherwise. Cache the result. diff -Nrcpad gcc-4.3.0/gcc/testsuite/treelang/ChangeLog gcc-4.3.1/gcc/testsuite/treelang/ChangeLog *** gcc-4.3.0/gcc/testsuite/treelang/ChangeLog Wed Mar 5 17:42:40 2008 --- gcc-4.3.1/gcc/testsuite/treelang/ChangeLog Fri Jun 6 14:28:37 2008 *************** *** 1,3 **** --- 1,7 ---- + 2008-06-06 Release Manager + + * GCC 4.3.1 released. + 2008-03-05 Release Manager * GCC 4.3.0 released.