diff -Nrcpad gcc-4.4.3/gcc/testsuite/ChangeLog gcc-4.4.4/gcc/testsuite/ChangeLog *** gcc-4.4.3/gcc/testsuite/ChangeLog Thu Jan 21 09:36:24 2010 --- gcc-4.4.4/gcc/testsuite/ChangeLog Thu Apr 29 07:49:15 2010 *************** *** 1,3 **** --- 1,876 ---- + 2010-04-29 Release Manager + + * GCC 4.4.4 released. + + 2010-04-21 Jakub Jelinek + + PR fortran/43836 + * gfortran.dg/gomp/pr43836.f90: New test. + + 2010-04-20 Jakub Jelinek + + PR fortran/43339 + * gfortran.dg/gomp/sharing-2.f90: Adjust for iteration vars + of sequential loops being private only in the innermost containing + task region. + + PR middle-end/43337 + * gfortran.dg/gomp/pr43337.f90: New test. + + 2010-04-19 Jie Zhang + + PR target/43662 + * gcc.target/i386/pr43662.c: New test. + + 2010-04-19 Ira Rosen + + PR tree-optimization/43771 + * g++.dg/vect/pr43771.cc: New test. + + 2010-04-18 Eric Botcazou + + * gnat.dg/rep_clause5.ad[sb]: New test. + * gnat.dg/rep_clause5_pkg.ads: New helper. + + 2010-04-12 Jakub Jelinek + + PR tree-optimization/43560 + * gcc.c-torture/execute/pr43560.c: New test. + + 2010-04-10 Jie Zhang + + PR target/43417 + * gcc.target/sh/pr43417.c: New test. + + 2010-04-08 Rainer Orth + + PR target/43643 + * gcc.dg/pr43643.c: New test. + + 2010-04-08 Richard Guenther + + PR middle-end/42956 + * gcc.c-torture/compile/pr42956.c: New testcase. + + 2010-04-08 Jakub Jelinek + + Backport from mainline: + 2010-03-29 Richard Guenther + + PR tree-optimization/43560 + * gcc.dg/torture/pr43560.c: New testcase. + + 2010-04-01 Richard Guenther + + PR middle-end/43614 + * gcc.c-torture/compile/pr43614.c: New testcase. + + 2010-04-08 Richard Guenther + + PR tree-optimization/43186 + * gcc.c-torture/compile/pr43186.c: New testcase. + + 2010-04-07 H.J. Lu + + PR target/43668 + * gcc.target/i386/pr43668.c: New. + + 2010-04-07 Richard Guenther + + PR tree-optimization/43629 + * gcc.c-torture/execute/pr43629.c: New testcase. + + 2010-04-06 Jakub Jelinek + + * gcc.target/s390/stackcheck1.c: Add dg-warning. + + PR target/43638 + * gcc.target/i386/pr43638.c: New test. + + 2010-04-01 Janne Blomqvist + Dominique d'Humieres + + PR libfortran/43605 + * gfortran.dg/ftell_3.f90: Enhance test case by reading more. + + 2010-04-01 Janne Blomqvist + Manfred Schwarb + + PR libfortran/43605 + * gfortran.dg/ftell_3.f90: New test. + + 2010-03-31 Uros Bizjak + + Backport from mainline: + 2010-03-27 Uros Bizjak + + PR tree-optimization/43528 + * gcc.target/i386/pr43528.c: New test. + + 2010-03-26 Uros Bizjak + + PR target/43524 + * gcc.target/i386/pr43524.c: New test. + + 2010-03-31 Jie Zhang + + PR 43562 + * gcc.dg/pr43562.c: New test. + + 2010-03-30 Jerry DeLisle + + PR libfortran/43409 + * gfortran.dg/inquire_size.f90: New test. + + 2010-03-30 Jason Merrill + + PR c++/41786 + * g++.dg/parse/ambig5.C: New. + + 2010-03-30 Andreas Krebbel + + * gcc.target/s390/stackcheck1.c: New testcase. + + 2010-03-29 Jerry DeLisle + + PR libfortran/43265 + * gfortran.dg/read_eof_8.f90: New test. + + 2010-03-29 Tobias Burnus + + PR fortran/43551 + * gfortran.dg/direct_io_12.f90: New test. + + 2010-03-27 Joseph Myers + + PR c/43381 + * gcc.dg/parm-impl-decl-3.c: New test. + + 2010-03-26 Volker Reichelt + + PR c++/43024 + * g++.dg/opt/ice1.C: New. + + 2010-03-25 Jerry DeLisle + + PR libfortran/43517 + * gfortran.dg/read_eof_7.f90: New test. + + 2010-03-25 H.J. Lu + + Backport from mainline: + 2010-03-22 Jason Merrill + + PR c++/43333 + * g++.dg/ext/is_pod_98.C: New. + + 2010-03-22 Michael Matz + + PR middle-end/43475 + * gfortran.dg/pr43475.f90: New testcase. + + 2010-03-22 Richard Guenther + + PR tree-optimization/43390 + * gfortran.fortran-torture/execute/pr43390.f90: New testcase. + + 2010-03-20 Dodji Seketeli + + PR c++/43375 + * g++.dg/abi/mangle42.C: New test. + + 2010-03-19 Andrew Pinski + + PR C/43211 + * gcc.dg/pr43211.c: New test. + + 2010-03-18 Martin Jambor + + PR middle-end/42450 + * g++.dg/torture/pr42450.C: New test. + + 2010-03-18 Michael Matz + + PR tree-optimization/43402 + * gcc.dg/pr43402.c: New testcase. + + 2010-03-17 Peter Bergner + + PR target/42427 + * gcc.dg/pr42427.c: New test. + + 2010-03-16 Richard Guenther + + PR middle-end/43379 + * gcc.dg/pr43379.c: New testcase. + + 2010-03-15 Michael Matz + + PR middle-end/43300 + * gcc.dg/pr43300.c: New testcase. + + 2010-03-15 Richard Guenther + + PR tree-optimization/43367 + * gcc.c-torture/compile/pr43367.c: New testcase. + + 2010-03-25 Jakub Jelinek + + PR c/43385 + * gcc.c-torture/execute/pr43385.c: New test. + + 2010-03-22 Richard Guenther + + Backport from mainline: + 2010-03-19 Richard Guenther + + PR tree-optimization/43415 + * gcc.c-torture/compile/pr43415.c: New testcase. + + 2010-03-22 Jakub Jelinek + + Backport from mainline: + 2010-03-20 Richard Guenther + + PR rtl-optimization/43438 + * gcc.c-torture/execute/pr43438.c: New testcase. + + 2010-03-19 Michael Matz + + PR c++/43116 + * g++.dg/other/pr43116.C: New testcase. + + PR target/43305 + * gcc.dg/pr43305.c: New testcase. + + 2010-03-18 Michael Matz + + PR middle-end/43419 + * gcc.dg/pr43419.c: New testcase. + + 2010-03-21 Kaveh R. Ghazi + + * gcc.target/powerpc/ppc-sdata-1.c: Require nonpic. + * gcc.target/powerpc/ppc-sdata-2.c: Likewise. + + 2010-03-18 H.J. Lu + + Backport from mainline: + 2010-03-18 H.J. Lu + + PR rtl-optimization/43360 + * gcc.dg/torture/pr43360.c: New. + + 2010-03-17 Jerry DeLisle + + PR libfortran/43265 + * gfortran.dg/read_empty_file.f: New test. + * gfortran.dg/read_eof_all.f90: New test. + * gfortran.dg/namelist_27.f90: Eliminate infinite loop posibility. + * gfortran.dg/namelist_28.f90: Eliminate infinite loop posibility. + + 2010-03-13 H.J. Lu + + Backport from mainline: + 2010-03-11 Martin Jambor + + PR tree-optimization/43257 + * g++.dg/torture/pr43257.C: New test. + + 2010-03-11 Richard Guenther + + PR tree-optimization/43255 + * gcc.c-torture/compile/pr43255.c: New testcase. + + 2010-03-11 Andreas Krebbel + + * gcc.dg/pr43280.c: New testcase. + + 2010-03-10 Jan Hubicka + + * gcc.c-torture/compile/pr43288.c: New test. + + 2010-03-10 Andrey Belevantsev + + PR middle-end/42859 + * g++.dg/eh/pr42859.C: New test. + + 2010-03-09 Jakub Jelinek + + PR debug/43299 + * gcc.dg/pr43299.c: New test. + + 2010-03-08 Richard Guenther + + PR tree-optimization/43269 + * gcc.c-torture/execute/pr43269.c: New testcase. + + 2010-03-04 Martin Jambor + + PR tree-optimization/43164 + PR tree-optimization/43191 + * gcc.c-torture/compile/pr43164.c: New test. + * gcc.c-torture/compile/pr43191.c: Likewise. + + 2010-03-04 Changpeng Fang + + PR middle-end/43209 + * gcc.dg/tree-ssa/ivopts-4.c: New. + + 2010-03-03 Jakub Jelinek + + PR debug/43229 + * gfortran.dg/pr43229.f90: New test. + + PR debug/43237 + * gcc.dg/debug/dwarf2/pr43237.c: New test. + + 2010-03-02 Paul Thomas + + PR fortran/43180 + * gfortran.dg/internal_pack_10.f90: New test. + + 2010-02-26 Richard Guenther + + PR tree-optimization/43188 + * gcc.c-torture/compile/pr43188.c: New testcase. + + 2010-02-25 Jakub Jelinek + + PR debug/43166 + * gfortran.dg/debug/pr43166.f: New test. + + PR debug/43165 + * gcc.dg/torture/pr43165.c: New test. + + 2010-02-23 Jakub Jelinek + + PR target/43107 + * gcc.target/i386/pr43107.c: New test. + + 2010-03-12 Kaveh R. Ghazi + + * gcc.target/arm/sibcall-1.c: Allow PLT to appear with pic code. + + 2010-03-12 Jerry DeLisle + + PR libfortran/43320 + PR libfortran/43265 + * gfortran.dg/read_eof_6.f: New test + * gfortran.dg/read_x_eof.f90: New test. + * gfortran.dg/read_x_past.f: Update test. + + 2010-03-11 Tobias Burnus + + PR fortran/43228 + * gfortran.dg/namelist_61.f90: New test. + + 2010-03-11 Janis Johnson + + * lib/target-supports-dg.exp (check-flags): Provide defaults for + include-opts and exclude-opts; skip checking the flags if arguments + are the same as the defaults. + (dg-xfail-if): Verify the number of arguments, supply defaults + for unspecified optional arguments. + (dg-skip-if, dg-xfail-run-if): Verify the number of arguments. + + 2010-03-11 Tobias Burnus + + * g++.old-deja/g++.pt/asm1.C: Don't detect pic via looking for the + -fpic/-fPIC flags. + * g++.old-deja/g++.pt/asm2.C: Likewise. + * gcc.c-torture/compile/20000804-1.c: Likewise. + * gcc.target/i386/clobbers.c: Likewise. + + 2010-03-08 Jakub Jelinek + + Backport from mainline: + 2010-03-04 Andrew Pinski + + PR c/43248 + * gcc.dg/compound-literal-1.c: New testcase. + + 2010-03-05 Kaveh R. Ghazi + + Backport: + 2009-10-15 Kaveh R. Ghazi + * lib/target-supports.exp (add_options_for_bind_pic_locally): New. + + 2009-10-16 Kaveh R. Ghazi + * g++.dg/ipa/iinline-1.C: Use dg-add-options bind_pic_locally. + * g++.dg/other/first-global.C: Likewise. + * g++.dg/parse/attr-externally-visible-1.C: Likewise. + * g++.dg/tree-ssa/nothrow-1.C: Likewise. + * gcc.dg/inline-33.c: Likewise. + * gcc.dg/ipa/ipa-1.c: Likewise. + * gcc.dg/ipa/ipa-2.c: Likewise. + * gcc.dg/ipa/ipa-3.c: Likewise. + * gcc.dg/ipa/ipa-4.c: Likewise. + * gcc.dg/ipa/ipa-5.c: Likewise. + * gcc.dg/ipa/ipa-7.c: Likewise. + * gcc.dg/ipa/ipacost-2.c: Likewise. + + 2010-02-09 Kaveh R. Ghazi + * gcc.dg/tree-ssa/inline-4.c: Bind pic locally. + + 2010-03-05 Rainer Orth + + * lib/gnat.exp (gnat_init): Remove GNAT_UNDER_TEST_ORIG. + (gnat_target_compile): Likewise. + Reinitialize GNAT_UNDER_TEST if target changes. + Set ADA_INCLUDE_PATH, ADA_OBJECTS_PATH in environment. + (local_find_gnatmake): Pass full --GCC to gnatlink. + Remove --LINK. + + 2010-03-02 Jakub Jelinek + + Backport from mainline: + 2010-03-01 Richard Guenther + + PR tree-optimization/43220 + * gcc.c-torture/execute/pr43220.c: New testcase. + + 2010-02-27 Eric Botcazou + + * gnat.dg/thin_pointer.ad[sb]: Rename into... + * gnat.dg/thin_pointer1.ad[sb]: ...this. + * gnat.dg/thin_pointer2.adb: New test. + * gnat.dg/thin_pointer2_pkg.ad[sb]: New helper. + + 2010-02-24 Ramana Radhakrishnan + + * gcc.target/arm/thumb2-cbnz.c: New test. + + 2010-02-23 H.J. Lu + + Backport from mainline: + 2010-02-22 Richard Guenther + + PR tree-optimization/42749 + * gcc.c-torture/compile/pr42749.c: New testcase. + + 2010-02-21 Dodji Seketeli + + PR c++/42824 + * g++.dg/template/memclass4.C: New test. + + 2010-02-20 Paul Thomas + + PR fortran/43111 + * gfortran.dg/internal_pack_8.f90: New test. + + 2010-02-18 Jason Merrill + + PR c++/43109 + * g++.dg/parse/namespace12.C: New. + + 2010-02-18 Martin Jambor + + PR tree-optimization/43066 + * gcc.c-torture/compile/pr43066.c: New test. + + 2010-02-17 Jason Merrill + + PR c++/43069 + * g++.dg/parse/namespace11.C: New. + + PR c++/43093 + * g++.dg/ext/attrib37.C: New. + + PR c++/43079 + * g++.dg/template/ptrmem20.C: New. + + 2010-02-16 Jason Merrill + + PR c++/43031 + * g++.dg/ext/attrib36.C: New. + + 2010-02-15 Richard Guenther + + PR middle-end/43068 + * g++.dg/torture/pr43068.C: New testcase. + + 2010-02-11 Richard Guenther + + PR tree-optimization/42998 + * gcc.c-torture/compile/pr42998.c: New testcase. + + 2010-02-10 Richard Guenther + + PR tree-optimization/43017 + * gcc.dg/torture/pr43017.c: New testcase. + + 2010-02-10 Richard Guenther + + PR c/43007 + * gcc.c-torture/execute/20100209-1.c: New testcase. + * gcc.dg/fold-div-3.c: Likewise. + + 2010-02-09 Jerry DeLisle + + PR fortran/42999 + * gfortran.dg/array_constructor_35.f90: New test. + + 2010-02-09 Richard Guenther + + PR tree-optimization/43008 + * gcc.c-torture/execute/pr43008.c: New testcase. + + 2010-02-09 Richard Guenther + + PR tree-optimization/43000 + * gcc.dg/torture/pr43000.c: New testcase. + * gcc.dg/torture/pr43002.c: Likewise. + + 2010-02-06 Jerry DeLisle + + PR libfortran/42742 + * gfortran.dg/fmt_cache_2.f: New test. + + 2010-02-03 Jason Merrill + + PR c++/42870 + * g++.dg/ext/dllexport3.C: New. + + 2010-02-18 Ramana Radhakrishnan + + PR target/40887 + Backport from trunk. + 2009-12-24 Julian Brown + Ramana Radhakrishnan + + * gcc.target/arm/pr40887.c: New test. + + 2010-02-16 Ira Rosen + + PR tree-optimization/43074 + * gcc.dg/vect/fast-math-pr43074.c: New test. + + 2010-02-16 Tobias Burnus + + PR fortran/41869 + * gfortran.dg/module_write_1.f90: New test. + + 2010-02-13 Richard Guenther + + PR tree-optimization/42871 + * g++.dg/torture/pr42871.C: New testcase. + + 2010-02-12 Jakub Jelinek + + PR c++/43033 + * g++.dg/other/default3.C: Xfail g4 test. + + 2010-02-10 Jakub Jelinek + + PR debug/43010 + * g++.dg/debug/pr43010.C: New test. + + 2010-02-09 Kaveh R. Ghazi + + * gcc.dg/tree-ssa/inline-4.c: Bind pic locally. + + 2010-02-08 Jakub Jelinek + + PR tree-optimization/42890 + * g++.dg/torture/pr42890.C: New test. + + 2010-02-08 Richard Guenther + + Backport from mainline: + 2010-01-05 Martin Jambor + + PR tree-optimization/42462 + * gcc.dg/tree-ssa/inline-4.c: New testcase. + * gcc.dg/Wunreachable-2.c: Remove. + + 2010-02-08 H.J. Lu + + * gcc.dg/ipa/pr42706.c: Removed. + + 2010-02-06 H.J. Lu + + Backport from mainline: + 2010-02-05 Dodji Seketeli + + PR c++/42915 + * g++.dg/other/crash-9.C: New test. + + 2010-02-03 Jason Merrill + + PR c++/40138 + * g++.dg/ext/builtin11.C: New. + + 2010-02-03 Richard Guenther + + PR tree-optimization/42944 + * gcc.dg/errno-1.c: New testcase. + + 2010-02-03 Richard Guenther + + PR middle-end/42927 + * gcc.c-torture/compile/pr42927.c: New testcase. + + 2010-01-29 Dodji Seketeli + + PR c++/42758 + PR c++/42634 + PR c++/42336 + PR c++/42797 + PR c++/42880 + * g++.dg/other/crash-5.C: New test. + * g++.dg/other/crash-7.C: New test. + * g++.dg/other/crash-8.C: New test. + + 2010-01-28 Uros Bizjak + + PR target/42891 + * gcc.target/i386/pr42891.c: New test. + + 2010-01-28 Richard Guenther + + PR middle-end/42883 + * g++.dg/torture/pr42883.C: New testcase. + + 2010-01-28 Michael Matz + + * gcc.target/i386/pr42881.c: New test. + + 2010-01-28 Dodji Seketeli + + PR c++/42713 + PR c++/42820 + * g++.dg/template/typedef27.C: New test case. + * g++.dg/template/typedef28.C: New test case. + + 2010-01-27 Jakub Jelinek + + PR middle-end/42874 + * gcc.dg/vla-22.c: New test. + + 2010-01-26 Richard Guenther + + PR tree-optimization/42250 + * gcc.dg/pr42250.c: New testcase. + + 2010-01-25 Tobias Burnus + + PR fortran/42858 + * gfortran.dg/generic_21.f90: New test. + + 2010-01-21 Martin Jambor + + PR tree-optimization/42585 + * gcc.dg/tree-ssa/pr42585.c: New test. + + 2010-01-20 Alexandre Oliva + + PR debug/42715 + * gcc.dg/pr42715.c: New. + + 2010-01-20 Richard Guenther + + PR tree-optimization/42717 + * gcc.c-torture/compile/pr42717.c: New testcase. + + 2010-01-19 Paul Thomas + + PR fortran/42783 + * gfortran.dg/bounds_check_15.f90 : New test. + + 2010-01-18 Dodji Seketeli + + PR c++/42766 + * g++.dg/conversion/op6.C: New test. + + 2010-01-18 Richard Guenther + + PR tree-optimization/42781 + * gfortran.fortran-torture/compile/pr42781.f90: New testcase. + + 2010-01-17 Richard Guenther + + PR middle-end/42248 + * gcc.c-torture/execute/pr42248.c: New testcase. + + 2010-01-17 Janus Weil + + PR fortran/42677 + * gfortran.dg/interface_assignment_5.f90: New test. + + 2010-01-15 Richard Guenther + + PR middle-end/42739 + * g++.dg/torture/pr42739.C: New testcase. + + 2010-01-14 Jerry DeLisle + + PR fortran/42684 + * gfortran.dg/interface_31.f90: New test. + + 2010-01-14 Martin Jambor + + PR tree-optimization/42706 + * gcc.dg/ipa/pr42706.c: New testcase. + + 2010-01-14 Martin Jambor + + PR tree-optimization/42714 + * g++.dg/torture/pr42714.C: New test. + + 2010-01-14 Alexander Monakov + + PR rtl-optimization/42388 + * gcc.dg/pr42388.c: New. + + 2010-01-14 Alexander Monakov + + PR rtl-optimization/42294 + * gfortran.dg/pr42294.f: New. + + 2010-01-14 Ira Rosen + + PR tree-optimization/42709 + * gcc.dg/vect/pr42709.c: New test. + + 2010-01-13 Richard Guenther + + PR tree-optimization/42730 + * gcc.c-torture/compile/pr42730.c: New testcase. + + 2010-01-13 Martin Jambor + + PR tree-optimization/42704 + * g++.dg/torture/pr42704.C: New test. + + 2010-01-13 Martin Jambor + + PR tree-optimization/42703 + * gcc.c-torture/compile/pr42703.c: New test. + + 2010-01-13 Richard Guenther + + PR tree-optimization/42705 + * gcc.c-torture/compile/pr42705.c: New testcase. + + 2010-01-13 Richard Guenther + + PR middle-end/42716 + * gcc.c-torture/compile/pr42716.c: New testcase. + + 2010-01-12 Joseph Myers + + PR c/42708 + * gcc.c-torture/compile/pr42708-1.c: New test. + + 2010-01-09 Alexandre Oliva + + PR middle-end/42363 + * gcc.dg/torture/pr42363.c: New. + + 2010-01-09 Alexandre Oliva + + PR debug/42604 + PR debug/42395 + * gcc.dg/vect/pr42604.c: New. + * gcc.dg/vect/pr42395.c: New. + + 2010-01-09 Richard Guenther + + PR middle-end/42512 + * gcc.c-torture/execute/pr42512.c: New testcase. + + 2010-02-06 Paul Thomas + + PR fortran/42309 + * gfortran.dg/subref_array_pointer_4.f90 : New test. + + 2010-02-04 Jerry DeLisle + + PR libfortran/42901 + * gfortran.dg/namelist_60.f90: New test. + * gfortran.dg/namelist_59.f90: New test. + + 2010-02-04 Richard Guenther + + PR rtl-optimization/42952 + * gcc.dg/torture/pr42952.c: New testcase. + + 2010-02-02 Tobias Burnus + + PR fortran/42650 + * gfortran.dg/func_result_5.f90: New test. + + 2010-02-01 Uros Bizjak + + Backport from mainline: + 2009-12-17 Uros Bizjak + + * objc/execute/forward-1.x: XFAIL for -fgnu-runtime on + x86_64-*-darwin*, powerpc*-*-darwin* and alpha*-*-linux* targets. + + 2010-01-31 Eric Botcazou + + PR middle-end/42898 + * gcc.dg/torture/pr42898-2.c: New test. + + 2010-01-31 Richard Guenther + + PR middle-end/42898 + * gcc.dg/torture/pr42898.c: New testcase. + + 2010-01-31 Paul Thomas + + PR fortran/38324 + * gfortran.dg/alloc_comp_basics_1.f90: Remove option -O2. + * gfortran.dg/alloc_comp_bounds_1.f90: New test. + + 2010-01-30 Paul Thomas + + PR fortran/41044 + * gfortran.dg/parameter_array_ref_2.f90 : New test. + + PR fortran/41167 + * gfortran.dg/char_array_arg_1.f90 : New test. + + 2010-01-27 Paul Thomas + + PR fortran/42736 + * gfortran.dg/dependency_25.f90 : New test. + + 2010-01-26 Jakub Jelinek + + * ada/acats/run_all.sh: Make sure norun.lst is sorted using the + current collation. + + Backport from mainline: + 2009-12-17 Arnaud Charlet + + * ada/acats/run_all.sh: Strip comments from norun.lst. + + 2010-01-25 Ramana Radhakrishnan + + Backport from mainline. + 2010-01-19 Ramana Radhakrishnan + + PR target/38697. + * gcc.target/arm/neon/vget_lowf32.c: Regenerate. + * gcc.target/arm/neon/vget_lowp16.c: Likewise. + * gcc.target/arm/neon/vget_lowp8.c: Likewise. + * gcc.target/arm/neon/vget_lows16.c: Likewise. + * gcc.target/arm/neon/vget_lows32.c: Likewise. + * gcc.target/arm/neon/vget_lows64.c: Likewise. + * gcc.target/arm/neon/vget_lows8.c: Likewise. + * gcc.target/arm/neon/vget_lowu16.c: Likewise. + * gcc.target/arm/neon/vget_lowu32.c: Likewise. + * gcc.target/arm/neon/vget_lowu64.c: Likewise. + * gcc.target/arm/neon/vget_lowu8.c: Likewise. + 2010-01-21 Release Manager * GCC 4.4.3 released. diff -Nrcpad gcc-4.4.3/gcc/testsuite/ada/acats/run_all.sh gcc-4.4.4/gcc/testsuite/ada/acats/run_all.sh *** gcc-4.4.3/gcc/testsuite/ada/acats/run_all.sh Thu Sep 14 10:12:03 2006 --- gcc-4.4.4/gcc/testsuite/ada/acats/run_all.sh Tue Jan 26 17:25:40 2010 *************** sed -e "s,ACATS4GNATDIR,$dir,g" \ *** 129,134 **** --- 129,135 ---- cp $testdir/tests/cd/*.c $dir/support cp $testdir/tests/cxb/*.c $dir/support + grep -v '^#' $testdir/norun.lst | sort > $dir/support/norun.lst rm -rf $dir/run mv $dir/tests $dir/tests.$$ 2> /dev/null *************** for chapter in $chapters; do *** 206,212 **** cd $dir/tests/$chapter ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \ ! cut -c1-7 | sort | uniq | comm -23 - $testdir/norun.lst \ > $dir/tests/$chapter/${chapter}.lst countn=`wc -l < $dir/tests/$chapter/${chapter}.lst` glob_countn=`expr $glob_countn + $countn` --- 207,213 ---- cd $dir/tests/$chapter ls *.a *.ada *.adt *.am *.dep 2> /dev/null | sed -e 's/\(.*\)\..*/\1/g' | \ ! cut -c1-7 | sort | uniq | comm -23 - $dir/support/norun.lst \ > $dir/tests/$chapter/${chapter}.lst countn=`wc -l < $dir/tests/$chapter/${chapter}.lst` glob_countn=`expr $glob_countn + $countn` diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/abi/mangle42.C gcc-4.4.4/gcc/testsuite/g++.dg/abi/mangle42.C *** gcc-4.4.3/gcc/testsuite/g++.dg/abi/mangle42.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/abi/mangle42.C Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,14 ---- + // Origin: PR c++/43375 + // { dg-do compile { target i?86-*-* x86_64-*-* } } + // { dg-options "-msse2 -std=gnu++0x" } + + typedef float __v4sf __attribute__ ((__vector_size__ (16))); + typedef int __v4si __attribute__ ((__vector_size__ (16))); + __v4sf my_asin(__v4sf x) + { + static const __v4si g_Mask{0x7fffffff, + 0x00000000, + 0x7fffffff, + 0x7fffffff }; + return __builtin_ia32_andnps ((__v4sf) g_Mask, x); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/conversion/op6.C gcc-4.4.4/gcc/testsuite/g++.dg/conversion/op6.C *** gcc-4.4.3/gcc/testsuite/g++.dg/conversion/op6.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/conversion/op6.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,18 ---- + // Origin: PR c++/42766 + // { dg-do compile } + + template class smart_pointer { + public: + operator T* () const { } + operator bool () const { } + operator bool () { } + }; + class Context { }; + typedef smart_pointer ContextP; + class SvnClient { + ~SvnClient(); + ContextP svnContext; + }; + SvnClient::~SvnClient() { + delete svnContext; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/debug/pr43010.C gcc-4.4.4/gcc/testsuite/g++.dg/debug/pr43010.C *** gcc-4.4.3/gcc/testsuite/g++.dg/debug/pr43010.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/debug/pr43010.C Wed Feb 10 15:09:06 2010 *************** *** 0 **** --- 1,8 ---- + // PR debug/43010 + // { dg-do compile } + // { dg-options "-g -femit-struct-debug-baseonly" } + # 1 "foo.C" + # 1 "bar.h" 1 + typedef struct { int i; } S __attribute__((aligned)); + typedef struct { struct { int i; } j; } T __attribute__((aligned)); + # 1 "foo.C" 2 diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/eh/pr42859.C gcc-4.4.4/gcc/testsuite/g++.dg/eh/pr42859.C *** gcc-4.4.3/gcc/testsuite/g++.dg/eh/pr42859.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/eh/pr42859.C Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,23 ---- + // { dg-do compile } + + void start (void); + void + ptw32_terminate (void) + { + try + { + try + { + start (); + } + catch (int) + { + } + catch (int) + { + } + } + catch (int) + { + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/ext/attrib36.C gcc-4.4.4/gcc/testsuite/g++.dg/ext/attrib36.C *** gcc-4.4.3/gcc/testsuite/g++.dg/ext/attrib36.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/ext/attrib36.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,20 ---- + // PR c++/43031 + // { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } + + class T; + class L { }; + class P : public L + { + typedef void (__attribute__((__stdcall__)) T::*F) (L*); + void f(bool aAdd); + }; + class T + { + public: + virtual void __attribute__((__stdcall__)) A(L *listener) = 0; + virtual void __attribute__((__stdcall__)) R(L *listener) = 0; + }; + void P::f(bool aAdd) + { + F addRemoveEventListener = (aAdd ? &T::A : &T::R); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/ext/attrib37.C gcc-4.4.4/gcc/testsuite/g++.dg/ext/attrib37.C *** gcc-4.4.3/gcc/testsuite/g++.dg/ext/attrib37.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/ext/attrib37.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,14 ---- + // PR c++/43093 + // { dg-do compile { target { { i?86-*-* x86_64-*-* } && ilp32 } } } + + struct S { + int x; + S(const S &s) {} + }; + + S __attribute__((__stdcall__)) getS(); + + void test() + { + S s = getS(); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/ext/builtin11.C gcc-4.4.4/gcc/testsuite/g++.dg/ext/builtin11.C *** gcc-4.4.3/gcc/testsuite/g++.dg/ext/builtin11.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/ext/builtin11.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,9 ---- + // PR c++/40138 + // { dg-options "-Wall" } + + void foo(int i, ...) + { + V v; // { dg-error "not declared|expected" } + __builtin_va_start(v, i); // { dg-error "not declared" } + i = __builtin_va_arg(v, int); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/ext/dllexport3.C gcc-4.4.4/gcc/testsuite/g++.dg/ext/dllexport3.C *** gcc-4.4.3/gcc/testsuite/g++.dg/ext/dllexport3.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/ext/dllexport3.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,19 ---- + // PR c++/42870 + // { dg-do compile { target i?86-*-cygwin *-*-mingw* } } + // { dg-final { scan-assembler "-export:_ZN2SaD1Ev" } } + + #define ATTRIBUTE __attribute__ ((dllexport)) + class ATTRIBUTE Sa { + public: + Sa() + {} + ~Sa(); + }; + ATTRIBUTE Sa::~Sa() + {return;} + + bool DllMain(void *a,void*b,int) + { + Sa s; + return true; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/ext/is_pod_98.C gcc-4.4.4/gcc/testsuite/g++.dg/ext/is_pod_98.C *** gcc-4.4.3/gcc/testsuite/g++.dg/ext/is_pod_98.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/ext/is_pod_98.C Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,16 ---- + // PR c++/43333 + // { dg-options "-std=c++98" } + // { dg-do run } + + struct strPOD + { + const char *const foo; + const char *const bar; + }; + extern "C" void abort (void); + int main () + { + if (!__is_pod (strPOD)) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/ipa/iinline-1.C gcc-4.4.4/gcc/testsuite/g++.dg/ipa/iinline-1.C *** gcc-4.4.3/gcc/testsuite/g++.dg/ipa/iinline-1.C Fri Nov 7 09:00:14 2008 --- gcc-4.4.4/gcc/testsuite/g++.dg/ipa/iinline-1.C Sat Mar 6 02:29:14 2010 *************** *** 2,8 **** inlining.. */ /* { dg-do compile } */ /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining" } */ ! /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining -fpie" { target { ! nonpic } } } */ extern void non_existent (const char *, int); --- 2,8 ---- inlining.. */ /* { dg-do compile } */ /* { dg-options "-O3 -fdump-ipa-inline -fno-early-inlining" } */ ! /* { dg-add-options bind_pic_locally } */ extern void non_existent (const char *, int); diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/opt/ice1.C gcc-4.4.4/gcc/testsuite/g++.dg/opt/ice1.C *** gcc-4.4.3/gcc/testsuite/g++.dg/opt/ice1.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/opt/ice1.C Fri Mar 26 14:30:49 2010 *************** *** 0 **** --- 1,41 ---- + // PR c++/43024 + // { dg-options "-O2" } + + void foo(); + + template struct X + { + enum { e }; + typedef int Y; + }; + + template struct A + { + ~A() { foo(); } + A() { a<0>(0); } + template void a(typename X::e>::Y); + struct B b(); + }; + + struct B + { + A<> b0, b1, b2, b3; + B operator+ (const B&); + }; + + struct C + { + A<> c0, c1, c2, c3, c4, c5, c6, c7, c8; + }; + + inline void bar(int i) + { + A<> a0, a1; + if (i) a0.b() + a0.b() + a0.b() + a0.b(); + } + + void baz() + { + C c; + bar(0); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-5.C gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-5.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-5.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-5.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,16 ---- + // Origin: PR c++/42758 + // { dg-do compile } + + template struct less {}; + + template > struct set {}; + + struct int_less_than {}; + + void assert_fail (const char*); + + int f(const set&) + { + assert_fail (__PRETTY_FUNCTION__); + + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-7.C gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-7.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-7.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-7.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,19 ---- + // Origin: PR c++/42336 + // { dg-options "-std=c++0x -O2 -g" } + // { dg-do compile } + + struct X { + void func() {} + }; + + template + void b(T) {} + + int main() { + b(X()); /* line 9 */ + X().func(); + + return 0; + } + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-8.C gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-8.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-8.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-8.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,109 ---- + // Origin: PR c++/42797 + // { dg-options "-g -O2 -std=c++0x" } + + template struct integral_constant { + static const _Tp value = __v; + }; + + template _Tp declval(); + + template + class __is_constructible_helper { + }; + + template + class __is_constructible_helper<_Tp, _Arg> { + + template + static decltype(static_cast<_Tp1>(declval<_Arg1>()), char()) __test(int); + public: + static const bool __value = sizeof(__test<_Tp, _Arg>(0)) == 1; + }; + + template + struct is_constructible : public integral_constant::__value> { }; + + template + struct enable_if { }; + + template + struct enable_if { + typedef _Tp type; + }; + + template struct pair { + _T1 first; + _T2 second; + + template::value>::type> + pair(const _T1& __x, _U2&& __y) : first(__x), + second(__y) { } + }; + + namespace __gnu_cxx { + template + class new_allocator { + public: + new_allocator() throw() { } + new_allocator(const new_allocator&) throw() { } + }; + } + + template + class allocator: public __gnu_cxx::new_allocator<_Tp> { + public: + + template + struct rebind { + typedef allocator<_Tp1> other; + }; + }; + + + template struct _Vector_base { + typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; + + struct _Vector_impl : public _Tp_alloc_type { + _Vector_impl() + { } + }; + public: + + _Vector_impl _M_impl; + }; + + template > + class vector : protected _Vector_base<_Tp, _Alloc> { + typedef _Alloc allocator_type; + public: + vector() { } + explicit vector(int, const allocator_type& __a = allocator_type()) + { + } + }; + + + template + class map { + typedef _Key key_type; + typedef _Tp mapped_type; + typedef pair value_type; + public: + + void insert(const value_type& __x) + { + } + + mapped_type& operator[](const key_type& __k) { + insert(value_type(__k, mapped_type())); + } + + }; + + struct Foo { + Foo() {} template Foo(Tp *p) {} }; + void foo() { + map > the_map; + the_map[1] = vector(); + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-9.C gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-9.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/crash-9.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/crash-9.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,15 ---- + // Origin: PR c++/42915 + // { dg-do compile } + + template + class A + { + template + class B + { + B foo(); + }; + }; + template template + A::B A::B::foo() {} + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/default3.C gcc-4.4.4/gcc/testsuite/g++.dg/other/default3.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/default3.C Thu Jan 19 09:51:57 2006 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/default3.C Fri Feb 12 17:27:33 2010 *************** template void g3(int, int); *** 25,31 **** template void g3(int = 0, int); // { dg-error "default" } template void g4(int, int); ! template void g4(int = 0, int) {} // { dg-error "default" } template void g5(); template void g5(int = 0, int); // { dg-error "default" } --- 25,31 ---- template void g3(int = 0, int); // { dg-error "default" } template void g4(int, int); ! template void g4(int = 0, int) {} // { dg-error "default" "" { xfail *-*-* } } template void g5(); template void g5(int = 0, int); // { dg-error "default" } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/first-global.C gcc-4.4.4/gcc/testsuite/g++.dg/other/first-global.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/first-global.C Wed Jan 30 20:40:58 2008 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/first-global.C Sat Mar 6 02:29:14 2010 *************** *** 1,5 **** /* { dg-do compile } */ ! /* { dg-options "-fpie" { target { ! nonpic } } } */ /* { dg-final { scan-assembler "_GLOBAL__I(_|_65535_0_)foobar" } } */ struct foo { foo (); }; --- 1,5 ---- /* { dg-do compile } */ ! /* { dg-add-options bind_pic_locally } */ /* { dg-final { scan-assembler "_GLOBAL__I(_|_65535_0_)foobar" } } */ struct foo { foo (); }; diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/other/pr43116.C gcc-4.4.4/gcc/testsuite/g++.dg/other/pr43116.C *** gcc-4.4.3/gcc/testsuite/g++.dg/other/pr43116.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/other/pr43116.C Mon Mar 22 15:03:45 2010 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + extern "C" int rpl_open (const char *filename, int flags, ...) __attribute__ + ((__nonnull__ (1))); + + namespace gnulib + { + int (*const open) (const char *filename, int flags, ...) __attribute__ + ((__nonnull__ (1))) = rpl_open; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/parse/ambig5.C gcc-4.4.4/gcc/testsuite/g++.dg/parse/ambig5.C *** gcc-4.4.3/gcc/testsuite/g++.dg/parse/ambig5.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/parse/ambig5.C Tue Mar 30 21:20:58 2010 *************** *** 0 **** --- 1,7 ---- + // PR c++/41786 + + struct A { A(int, char const*); }; + int main() { + int i = 0, *b = &i; + A a(int(b[i]), "hello"); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C gcc-4.4.4/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C *** gcc-4.4.3/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C Wed Jan 30 20:40:58 2008 --- gcc-4.4.4/gcc/testsuite/g++.dg/parse/attr-externally-visible-1.C Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** // { dg-do compile } // { dg-options "-O3 -fwhole-program" } ! // { dg-options "-O3 -fwhole-program -fpie" { target { ! nonpic } } } // { dg-final { scan-assembler "foo1" } } // { dg-final { scan-assembler "foo2" } } // { dg-final { scan-assembler "foo3" } } --- 1,6 ---- // { dg-do compile } // { dg-options "-O3 -fwhole-program" } ! // { dg-add-options bind_pic_locally } // { dg-final { scan-assembler "foo1" } } // { dg-final { scan-assembler "foo2" } } // { dg-final { scan-assembler "foo3" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/parse/namespace11.C gcc-4.4.4/gcc/testsuite/g++.dg/parse/namespace11.C *** gcc-4.4.3/gcc/testsuite/g++.dg/parse/namespace11.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/parse/namespace11.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,7 ---- + // PR c++/43069 + + namespace std { + template < typename > + void swap (); + } + template std::swap // { dg-error "" } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/parse/namespace12.C gcc-4.4.4/gcc/testsuite/g++.dg/parse/namespace12.C *** gcc-4.4.3/gcc/testsuite/g++.dg/parse/namespace12.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/parse/namespace12.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,7 ---- + // PR c++/43109 + + namespace std { + namespace { + struct S {}; + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/parse/varmod1.C gcc-4.4.4/gcc/testsuite/g++.dg/parse/varmod1.C *** gcc-4.4.3/gcc/testsuite/g++.dg/parse/varmod1.C Fri Feb 21 22:56:06 2003 --- gcc-4.4.4/gcc/testsuite/g++.dg/parse/varmod1.C Tue Mar 30 21:20:58 2010 *************** int main(int argc, char** argv) { *** 2,7 **** int nx = 2; void theerror(double a[][nx+1]); // { dg-error "" } double** a; ! theerror(a); // { dg-error "" } return 0; } --- 2,7 ---- int nx = 2; void theerror(double a[][nx+1]); // { dg-error "" } double** a; ! theerror(a); return 0; } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/template/memclass4.C gcc-4.4.4/gcc/testsuite/g++.dg/template/memclass4.C *** gcc-4.4.3/gcc/testsuite/g++.dg/template/memclass4.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/template/memclass4.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,70 ---- + // Origin: PR c++/42824 + // { dg-do compile } + + template + class int_ { + }; + + template + class Unit { + public: + Unit(const Unit& other) {} + }; + + template + class Quan { + public: + Quan(void) {} + + template + Quan(double value, Unit unit) {} + }; + typedef Quan<0> Scalar; + + template + class hlp { + public: + typedef Quan type; + }; + + class Mtrl { + public: + template + struct AssoType { + typedef typename hlp::type type; + }; + }; + + template + class Eval { + public: + Eval(const T& object){} + + template + void eval() { + eval (int_<0>()); + } + private: + template struct Wrap {}; + + template + void value(Wrap >) {} + + template + void value(Wrap) {} + + template + void eval(int_<0>) { + typedef typename T::template AssoType::type Type; + value(Wrap()); + } + }; + + class Foo { + public: + static void eval(const Mtrl& mtrl) { + Eval h(mtrl); + h.eval<0> (); + } + }; + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/template/ptrmem20.C gcc-4.4.4/gcc/testsuite/g++.dg/template/ptrmem20.C *** gcc-4.4.3/gcc/testsuite/g++.dg/template/ptrmem20.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/template/ptrmem20.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,16 ---- + // PR c++/43079 + + struct A {}; + + struct B + { + void foo() const; + void foo(); + }; + + template void bar(); + + void baz() + { + bar<&B::foo>(); // { dg-error "not a valid template argument|no match" } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/template/typedef27.C gcc-4.4.4/gcc/testsuite/g++.dg/template/typedef27.C *** gcc-4.4.3/gcc/testsuite/g++.dg/template/typedef27.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/template/typedef27.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,55 ---- + // Origin: PR c++/42713 + // { dg-do compile } + + template + struct S + { + }; + + template + struct S0 + { + typedef T TT; + }; + + template + struct super_struct : S0 + { + typedef S0 super; + }; + + template + struct S1 : super_struct + { + typedef super_struct super; + typedef typename super::super Super2; + typedef typename Super2::TT Super2TT; + void + foo() + { + S s1; + } + }; + + template + struct S2 : super_struct + { + typedef super_struct super; + typedef typename super::super Super2; + typedef typename Super2::TT Super2TT; + void + foo() + { + S s1; + } + }; + + int + main() + { + S1, int> s1; + s1.foo(); + S2 > s2; + s2.foo(); + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/template/typedef28.C gcc-4.4.4/gcc/testsuite/g++.dg/template/typedef28.C *** gcc-4.4.3/gcc/testsuite/g++.dg/template/typedef28.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/template/typedef28.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,28 ---- + // Origin: PR c++/42820 + // { dg-do compile } + + + template struct vector{}; + struct Traits{struct Primitive{struct Id{};};}; + + template struct Tree_vs_naive + { + typedef typename Tree::Primitive Primitive; + + void f() const + { + typedef vector Id_vector; + } + }; + + template void test_hint_strategies() + { + vector v; + } + + int main(void) + { + test_hint_strategies(); + } + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42450.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42450.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42450.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42450.C Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,112 ---- + /* { dg-do compile } */ + + template < typename > class basic_stringstream; + + struct basic_string { + basic_string(); + }; + + struct ios_base { + virtual ~ios_base(); + }; + + class ostream:ios_base {}; + class istream:virtual ios_base {}; + + template < typename > struct basic_iostream:public istream, ostream { + ~basic_iostream () {} + }; + extern template class basic_iostream < char >; + + template < typename > struct basic_stringstream:public basic_iostream < char > { + basic_string _M_stringbuf; + ~basic_stringstream () {} + }; + extern template class basic_stringstream < char >; + + template < typename > struct AnyMatrixBase; + template < typename, int _Rows, int _Cols, int = _Rows, int = _Cols > class Matrix; + template < typename > class CwiseNullaryOp; + + template < typename Derived > struct MatrixBase:public AnyMatrixBase < Derived > { + typedef CwiseNullaryOp < Derived > ConstantReturnType; + ConstantReturnType Constant (); + template < typename > Derived cast (); + static CwiseNullaryOp < Derived > Random (int); + }; + + template < typename Derived > struct AnyMatrixBase { + Derived derived () {} + Derived & derived () const {} + }; + + template < typename, int > struct ei_matrix_storage {}; + + template < typename _Scalar, int, int, int _MaxRows, int _MaxCols > struct Matrix:MatrixBase < Matrix < _Scalar, _MaxRows, _MaxCols > > { + typedef MatrixBase < Matrix > Base; + ei_matrix_storage < int, _MaxCols > m_storage; + Matrix operator= (const Matrix other) { + _resize_to_match (other); + lazyAssign (other.derived ()); + } + template < typename OtherDerived > Matrix lazyAssign (MatrixBase < OtherDerived > other) { + _resize_to_match (other); + return Base (other.derived ()); + } + Matrix (); + template < typename OtherDerived > Matrix (const MatrixBase < OtherDerived > &other) { + *this = other; + } + template < typename OtherDerived > void _resize_to_match (const MatrixBase < OtherDerived > &) { + throw 1; + } + }; + + template < typename MatrixType > class CwiseNullaryOp: + public MatrixBase < CwiseNullaryOp < MatrixType > > {}; + + int f() + { + bool align_cols; + if (align_cols) { + basic_stringstream sstr; + f(); + } + } + + template < typename > struct AutoDiffScalar; + template < typename Functor > struct AutoDiffJacobian:Functor { + AutoDiffJacobian (Functor); + typedef typename Functor::InputType InputType; + typedef typename Functor::ValueType ValueType; + typedef Matrix < int, Functor::InputsAtCompileTime, 1 > DerivativeType; + typedef AutoDiffScalar < DerivativeType > ActiveScalar; + typedef Matrix < ActiveScalar, Functor::InputsAtCompileTime, 1 > ActiveInput; + void operator () (InputType x, ValueType *) { + ActiveInput ax = x.template cast < ActiveScalar > (); + } + }; + + template < int NX, int NY > struct TestFunc1 { + enum { + InputsAtCompileTime = NX + }; + typedef Matrix < float, NX, 1 > InputType; + typedef Matrix < float, NY, 1 > ValueType; + typedef Matrix < float, NY, NX > JacobianType; + int inputs (); + }; + + template < typename Func > void forward_jacobian (Func f) { + typename Func::InputType x = Func::InputType::Random (f.inputs ()); + typename Func::ValueType y; + typename Func::JacobianType jref = jref.Constant (); + AutoDiffJacobian < Func > autoj (f); + autoj (x, &y); + } + + void test_autodiff_scalar () + { + forward_jacobian (TestFunc1 < 2, 2 > ()); + forward_jacobian (TestFunc1 < 3, 2 > ()); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42704.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42704.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42704.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42704.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,44 ---- + /* { dg-do compile } */ + + typedef int PRInt32; + class nsTreeRows { + class Subtree { }; + enum { kMaxDepth = 32 }; + struct Link { + Subtree* mParent; + PRInt32 mChildIndex; + Link& operator=(const Link& aLink) { + mParent = aLink.mParent; + mChildIndex = aLink.mChildIndex; + } + }; + class iterator { + PRInt32 mTop; + PRInt32 mRowIndex; + Link mLink[kMaxDepth]; + public: + iterator() : mTop(-1), mRowIndex(-1) { } + iterator& operator=(const iterator& aIterator); + }; + Subtree* EnsureSubtreeFor(Subtree* aParent, PRInt32 aChildIndex); + Subtree* GetSubtreeFor(const Subtree* aParent, + PRInt32 aChildIndex, PRInt32* aSubtreeSize = 0); + void InvalidateCachedRow() { + mLastRow = iterator(); + } + iterator mLastRow; + }; + nsTreeRows::Subtree* nsTreeRows::EnsureSubtreeFor(Subtree* aParent, + PRInt32 aChildIndex) { + Subtree* subtree = GetSubtreeFor(aParent, aChildIndex); + if (! subtree) { + InvalidateCachedRow(); + } + } + nsTreeRows::iterator& nsTreeRows::iterator::operator=(const iterator& + aIterator) { + mTop = aIterator.mTop; + for (PRInt32 i = mTop; + i >= 0; + --i) mLink[i] = aIterator.mLink[i]; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42714.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42714.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42714.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42714.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,37 ---- + struct QVectorData { + static QVectorData shared_null; + }; + template class QVector { + union { + QVectorData *d; + }; + public: + inline QVector() : d(&QVectorData::shared_null) { } + inline QVector(const QVector &v) : d(v.d) { } + }; + class QXmlStreamAttribute { }; + class QXmlStreamAttributes : public QVector { }; + class __attribute__ ((visibility("default"))) Smoke { + public: + union StackItem; + typedef StackItem* Stack; + typedef short Index; + }; + class SmokeBinding { }; + namespace __smokeqt { + class x_QXmlStreamAttributes : public QXmlStreamAttributes { + SmokeBinding* _binding; + public: + static void x_11(Smoke::Stack x) { + x_QXmlStreamAttributes* xret = new x_QXmlStreamAttributes(); + } + explicit x_QXmlStreamAttributes() : QXmlStreamAttributes() { } + }; + void xcall_QXmlStreamAttributes(Smoke::Index xi, void *obj, + Smoke::Stack args) + { + switch(xi) { + case 11: x_QXmlStreamAttributes::x_11(args); + } + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42739.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42739.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42739.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42739.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + + struct s { ~s() { s(); } }; + + int f() + { + M: + s o = s(); + f(); + f(); + + L: + goto *(f() ? &&L : &&M); + + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42871.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42871.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42871.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42871.C Sat Feb 13 14:50:50 2010 *************** *** 0 **** --- 1,40 ---- + struct C + { + ~C (); + int c3; + }; + + C *b2; + + static void + b1 (const C &x, unsigned b3, unsigned b4) + { + unsigned i = 0; + for (; i < b3; i++) + if (i < b4) + { + b2[0].c3 = x.c3; + return; + } + } + + int a (); + + void + bar (unsigned b3, unsigned b4) + { + C c[100]; + for (int i = 0; i < 100; i++) + { + c[i].c3 = i; + for (int j = 0; j < b3; j++) + if (j < b4) + { + b2[0].c3 = 0; + break; + } + b1 (c[i], b3, b4); + a (); + } + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42883.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42883.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42883.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42883.C Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,63 ---- + // { dg-do compile } + + typedef __SIZE_TYPE__ size_t; + namespace __gnu_cxx __attribute__ ((__visibility__ ("default"))) { + template class new_allocator { + public: + typedef size_t size_type; + typedef _Tp* pointer; + typedef _Tp& reference; + void deallocate(pointer __p, size_type) { + ::operator delete(__p); + } + }; + } + namespace std __attribute__ ((__visibility__ ("default"))) { + template class allocator: public __gnu_cxx::new_allocator<_Tp> { + public: + template struct rebind { + typedef allocator<_Tp1> other; + }; + }; + template struct _Vector_base { + typedef typename _Alloc::template rebind<_Tp>::other _Tp_alloc_type; + struct _Vector_impl : public _Tp_alloc_type { + typename _Tp_alloc_type::pointer _M_start; + typename _Tp_alloc_type::pointer _M_end_of_storage; + }; + ~_Vector_base() { + _M_deallocate(this->_M_impl._M_start, this->_M_impl._M_end_of_storage - this->_M_impl._M_start); + } + _Vector_impl _M_impl; + void _M_deallocate(typename _Tp_alloc_type::pointer __p, size_t __n) { + if (__p) _M_impl.deallocate(__p, __n); + } + }; + template > class vector : protected _Vector_base<_Tp, _Alloc> { + typedef _Vector_base<_Tp, _Alloc> _Base; + typedef typename _Base::_Tp_alloc_type _Tp_alloc_type; + public: + typedef typename _Tp_alloc_type::reference reference; + typedef size_t size_type; + size_type size() const { + } + reference operator[](size_type __n) { + } + }; + }; + class vtkConvexPointSet { + public: + static vtkConvexPointSet *New(); + }; + void MakeInternalMesh() { + std::vector< int > tempFaces[2]; + std::vector< int > firstFace; + int i, j, k; + for(i = 0; i < 1000; i++) { + for(int pointCount = 0; pointCount < 1000; pointCount++) { + for(j = 0; j < (int)tempFaces[0].size(); k++) + if(tempFaces[0][j] == tempFaces[1][k]) break; + } + vtkConvexPointSet::New(); + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42890.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42890.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr42890.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr42890.C Mon Feb 8 15:50:59 2010 *************** *** 0 **** --- 1,25 ---- + // PR tree-optimization/42890 + // { dg-do compile } + + extern "C" int puts (const char *) throw (); + + struct S + { + const char *a; + const char **b; + S (const char *s) { a = s; b = &a; } + ~S () { puts (a); } + }; + + void + foo (int (*fn) (const char *)) + { + S a ("foo"); + fn ("bar"); + } + + int + main () + { + foo (puts); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr43068.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr43068.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr43068.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr43068.C Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,10 ---- + /* { dg-do compile } */ + /* { dg-options "-freorder-blocks -ftracer} */ + + struct A { + virtual A *f(); + }; + struct B : virtual A { + virtual B *f(); + }; + B *B::f() { return 0; } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr43257.C gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr43257.C *** gcc-4.4.3/gcc/testsuite/g++.dg/torture/pr43257.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/torture/pr43257.C Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,30 ---- + /* { dg-do assemble } */ + + class A {}; + class B {}; + + static void *func (int n) + { + void *p; + if (p == 0) throw ::A (); + } + + static void *func (int n, B const &) + { + try { + return func (n); + } + catch (::A const &) { + } + return func (n); + } + + void *f1 (int n) + { + return func (n, B()); + } + + void *f2 (int n) + { + return func (n, B()); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C gcc-4.4.4/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C *** gcc-4.4.3/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C Thu Feb 15 03:14:39 2007 --- gcc-4.4.4/gcc/testsuite/g++.dg/tree-ssa/nothrow-1.C Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-cfg" } */ ! /* { dg-skip-if "" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ double a; void t() { --- 1,7 ---- /* { dg-do compile } */ /* { dg-options "-O1 -fdump-tree-cfg" } */ ! /* { dg-add-options bind_pic_locally } */ ! double a; void t() { diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.dg/vect/pr43771.cc gcc-4.4.4/gcc/testsuite/g++.dg/vect/pr43771.cc *** gcc-4.4.3/gcc/testsuite/g++.dg/vect/pr43771.cc Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/g++.dg/vect/pr43771.cc Mon Apr 19 06:17:56 2010 *************** *** 0 **** --- 1,14 ---- + /* { dg-do compile } */ + + void KWayNodeRefine__(int nparts, int *gpwgts, int *badminpwgt, int + *badmaxpwgt) + { + int i; + + for (i=0; i template int foo(int v) --- 1,6 ---- // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } } ! // We'd use ebx with 32-bit pic code, so skip. ! // { dg-skip-if "" { ilp32 && { ! nonpic } } { "*" } { "" } } // Origin: "Weidmann, Nicholas" template int foo(int v) diff -Nrcpad gcc-4.4.3/gcc/testsuite/g++.old-deja/g++.pt/asm2.C gcc-4.4.4/gcc/testsuite/g++.old-deja/g++.pt/asm2.C *** gcc-4.4.3/gcc/testsuite/g++.old-deja/g++.pt/asm2.C Fri Dec 9 23:34:09 2005 --- gcc-4.4.4/gcc/testsuite/g++.old-deja/g++.pt/asm2.C Wed Mar 10 20:35:31 2010 *************** *** 1,7 **** // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } } // { dg-require-effective-target ilp32 } ! // We'd use ebx with -fpic/-fPIC, so skip. ! // { dg-skip-if "" { *-*-* } { "-fpic" "-fPIC" } { "" } } // Origin: "Weidmann, Nicholas" typedef void (function_ptr)(int); --- 1,7 ---- // { dg-do assemble { target i?86-*-linux* x86_64-*-linux* } } // { dg-require-effective-target ilp32 } ! // We'd use ebx with 32-bit pic code, so require nonpic. ! // { dg-require-effective-target nonpic } // Origin: "Weidmann, Nicholas" typedef void (function_ptr)(int); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/20000804-1.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/20000804-1.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/20000804-1.c Tue Jul 14 16:53:35 2009 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/20000804-1.c Wed Mar 10 20:35:31 2010 *************** *** 1,8 **** /* This does not work on m68hc11 or h8300 due to the use of an asm statement to force a 'long long' (64-bits) to go in a register. */ /* { dg-do assemble } */ ! /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && ilp32 } { "-fpic" "-fPIC" } { "" } } */ ! /* { dg-skip-if "PIC default" { { i?86-*-darwin* x86_64-*-darwin* } && ilp32 } { "*" } { "" } } */ /* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */ /* { dg-xfail-if "" { m6811-*-* m6812-*-* h8300-*-* } { "*" } { "" } } */ --- 1,7 ---- /* This does not work on m68hc11 or h8300 due to the use of an asm statement to force a 'long long' (64-bits) to go in a register. */ /* { dg-do assemble } */ ! /* { dg-skip-if "" { { i?86-*-* x86_64-*-* } && { ilp32 && { ! nonpic } } } { "*" } { "" } } */ /* { dg-skip-if "No 64-bit registers" { m32c-*-* } { "*" } { "" } } */ /* { dg-xfail-if "" { m6811-*-* m6812-*-* h8300-*-* } { "*" } { "" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42703.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42703.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42703.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42703.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,12 ---- + __extension__ typedef unsigned long long int uint64_t; + typedef uint64_t ScmUInt64; + void swapb64(ScmUInt64 *loc) + { + union { + ScmUInt64 l; + unsigned char c[4]; + } dd; + unsigned char t; + dd.l = *loc; + (t = dd.c[3], dd.c[3] = dd.c[4], dd.c[4] = t); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42705.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42705.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42705.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42705.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,58 ---- + typedef int GLint; + typedef unsigned char GLubyte; + typedef unsigned int uint32_t; + struct radeon_bo { + void *ptr; + uint32_t flags; + }; + struct radeon_renderbuffer { + struct radeon_bo *bo; + unsigned int cpp; + int has_surface; + }; + static inline + GLint r600_1d_tile_helper(const struct radeon_renderbuffer * rrb, + GLint x, GLint y, GLint is_depth, GLint is_stencil) + { + GLint element_bytes = rrb->cpp; + GLint num_samples = 1; + GLint tile_width = 8; + GLint tile_height = 8; + GLint tile_thickness = 1; + GLint tile_bytes; + GLint tiles_per_row; + GLint slice_offset; + GLint tile_row_index; + GLint tile_column_index; + GLint tile_offset; + GLint pixel_number = 0; + GLint element_offset; + GLint offset = 0; + tile_bytes = tile_width * tile_height * tile_thickness + * element_bytes * num_samples; + tile_column_index = x / tile_width; + tile_offset = ((tile_row_index * tiles_per_row) + + tile_column_index) * tile_bytes; + if (is_depth) { + } + else { + GLint sample_offset; + switch (element_bytes) { + case 1: pixel_number |= ((x >> 0) & 1) << 0; + } + element_offset = sample_offset + (pixel_number * element_bytes); + } + offset = slice_offset + tile_offset + element_offset; + return offset; + } + GLubyte *r600_ptr_color(const struct radeon_renderbuffer * rrb, + GLint x, GLint y) + { + GLubyte *ptr = rrb->bo->ptr; + uint32_t mask = 1 | 2; + GLint offset; + if (rrb->has_surface || !(rrb->bo->flags & mask)) { + offset = r600_1d_tile_helper(rrb, x, y, 0, 0); + } + return &ptr[offset]; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42708-1.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42708-1.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42708-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42708-1.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,10 ---- + typedef __SIZE_TYPE__ size_t; + void *malloc(size_t); + typedef union YYSTYPE { + char *id; + } YYSTYPE; + extern YYSTYPE yylval; + void yylex (int b) + { + yylval = (YYSTYPE) (b ? 0 : (char *) malloc (4)); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42716.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42716.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42716.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42716.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,18 ---- + static short foo (long long si1, short si2) + { + return si1 > 0 && si2 > 0 || si1 < 0 + && si2 < 0 && si1 < 1 - si2 ? : si1 + si2; + } + + int g_13; + unsigned g_17; + + int safe (int, int); + + void bar (short p_51, short * p_52) + { + int *const l_55 = &g_13; + if (safe (*p_52, g_13 != foo (*p_52 & *l_55 == g_13 && g_17 >= 1, 0))) + { + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42717.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42717.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42717.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42717.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,30 ---- + static signed char + foo (signed char si1, unsigned char si2) + { + return (si1 ^ si2) & (-si2 ^ si2) ? : si1 - si2; + } + + struct S0 + { + }; + + unsigned char g_21; + + struct S0 g_34; + + void + bar (unsigned char p_20) + { + unsigned char *l_22 = &g_21; + unsigned char l_23 = 0; + struct S0 *l = &g_34; + goto lbl_42; + for (; l_23; l_23 = foo (l_23, 1)) + { + for (p_20 = 0; 0; p_20 = foo (p_20, 1)) + lbl_42:; + (l == &g_34) ? 0 : ""; + lbl_85:*l_22 = p_20; + } + goto lbl_85; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42730.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42730.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42730.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42730.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,14 ---- + union bzz + { + unsigned *pa; + void *pv; + }; + + void foo (void) + { + union bzz u; + void **x; + void *y = 0; + x = &u.pv; + *x = y; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42749.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42749.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42749.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42749.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,5 ---- + struct pdf_object { int val; }; + int pdf_count_size_object (struct pdf_object * p_obj) + { + return pdf_count_size_object(p_obj) + 2 * sizeof(struct pdf_object); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42927.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42927.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42927.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42927.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,32 ---- + typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); + typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); + typedef enum { READ_SHARED = 0, WRITE_EXCLUSIVE = 1, + READ_EXCLUSIVE = 2, EXCLUSIVE_ACCESS = 3 } scsires_access_mode; + struct scsires_extent_elem { + scsires_access_mode mode; + unsigned relative_address; + u_int32_t first_block; + u_int32_t length; + }; + typedef struct scsires_extent_elem scsires_extent_elem_t; + struct scsires_extent { + u_int8_t num_elements; + scsires_extent_elem_t *elements; + }; + typedef struct scsires_extent scsires_extent_t; + unsigned char buf[512]; + void scsires_issue_reservation(scsires_extent_t * new_extent) + { + int i; + for (i = 0; i < new_extent->num_elements; i++) + { + buf[(i * 8)] = new_extent->elements[i].mode; + buf[(i * 8) + 1] = ((new_extent->elements[i].length >> 16) & 0xff); + buf[(i * 8) + 2] = ((new_extent->elements[i].length >> 8) & 0xff); + buf[(i * 8) + 3] = (new_extent->elements[i].length & 0xff); + buf[(i * 8) + 4] = ((new_extent->elements[i].first_block >> 24) & 0xff); + buf[(i * 8) + 5] = ((new_extent->elements[i].first_block >> 16) & 0xff); + buf[(i * 8) + 6] = ((new_extent->elements[i].first_block >> 8) & 0xff); + buf[(i * 8) + 7] = (new_extent->elements[i].first_block & 0xff); + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42956.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42956.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42956.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42956.c Thu Apr 8 11:47:13 2010 *************** *** 0 **** --- 1,33 ---- + typedef const int cint; + typedef struct { + } Bounds; + int ndim_, ncomp_, selectedcomp_, nregions_; + void *voidregion_; + typedef struct { + double diff, err, spread; + } Errors; + typedef const Errors cErrors; + void Split(int iregion, int depth, int xregion) + { + typedef struct { + double avg, err, spread, chisq; + double xmin[ndim_], xmax[ndim_]; + } Result; + typedef struct region { + Result result[ncomp_]; + } Region; + Errors errors[ncomp_]; + int comp, ireg, xreg; + for( ireg = iregion, xreg = xregion; ireg < nregions_; ireg = xreg++ ) + { + Result *result = ((Region *)voidregion_)[ireg].result; + for( comp = 0; comp < ncomp_; ++comp ) + { + Result *r = &result[comp]; + cErrors *e = &errors[comp]; + double c = e->diff; + if( r->err > 0 ) r->err = r->err*e->err + c; + } + } + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42998.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42998.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr42998.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr42998.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,15 ---- + void foo(void *); + void bar(void *); + void ndisc_fill_addr_option(unsigned char *opt, int data_len, + unsigned short addr_type) + { + int pad; + if (addr_type == 32) + pad = 2; + else + pad = 0; + __builtin_memset(opt + 2, 0, pad); + opt += pad; + __builtin_constant_p(data_len) ? foo (opt+2) : bar (opt+2); + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43066.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43066.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43066.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43066.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,14 ---- + struct S { + struct { } empty[1]; + int i; + }; + + int foo(int i, ...) + { + struct S s; + __builtin_va_list va; + __builtin_va_start(va, i); + s = __builtin_va_arg(va, struct S); + __builtin_va_end(va); + return s.i; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43164.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43164.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43164.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43164.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,16 ---- + struct S0 + { + unsigned char f0; + int:0; + }; + + struct S1 + { + struct S0 f0; + }; + + struct S1 func_34 (void) + { + struct S1 l_221 = { { 1 } }; + return l_221; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43186.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43186.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43186.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43186.c Thu Apr 8 10:46:46 2010 *************** *** 0 **** --- 1,15 ---- + int n; + + void foo (int i) + { + int a, b; + + if (!i) + for (a = 1; a < 4; a++) + if (a) + for (b = 1; b < 3; b++) + foo (b); + + n++; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43188.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43188.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43188.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43188.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,6 ---- + int *__attribute__((__aligned__(16))) *p; + + int main (void) + { + return **p; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43191.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43191.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43191.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43191.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,46 ---- + struct S0 + { + }; + + struct S1 + { + unsigned f0:27; + const unsigned:0; + }; + + struct S2 + { + unsigned f2:1; + }; + + unsigned char g_4[1][8][3][1][1][1]; + unsigned char *g_17; + unsigned char **g_16[1][10][7]; + + struct S2 g_35 = { + 0 + }; + + struct S2 *g_34 = &g_35; + + struct S1 func_86 (unsigned char p_87, struct S2 **p_89) + { + struct S1 l_92[6][8][1][1] = { + 16143586 + } + ; + return l_92[0][0][0][0]; + } + + void func_28 (struct S1 p_30, const struct S1 p_32) + { + } + + void func_70 (unsigned char p_72) + { + unsigned char *const *l_93 = &g_17; + struct S2 **l_94; + unsigned char *const *l_97 = &g_17; + func_28 (func_86 (p_72, 0), + func_86 (p_72, &g_34)); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43255.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43255.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43255.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43255.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,33 ---- + int safe (int); + + static unsigned foo (unsigned ui1, unsigned ui2) + { + return ui1 + ui2; + } + + int g_22; + int *volatile g_23 = &g_22; + int **g_282[8][10][1]; + int *g_330 = &g_22; + volatile unsigned g_348; + int g_397; + + void int32func (const unsigned char p_10) + { + if (foo + (~ + (p_10 | + (*g_282[(unsigned long) g_397 % 8][(unsigned) g_22 % 10][g_348 % 1]) == + (*g_282[(unsigned long) g_397 % 8][(unsigned) g_22 % 10][g_348 % 1])), + 1)) + { + } + else if (*g_330 >= + safe (*g_23 ^ + (**g_282[(unsigned long) g_397 % 8][(unsigned) g_22 % 10] + [g_348 % 1])) & **g_282[8][10][1], 1) + { + } + } + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43288.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43288.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43288.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43288.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1 ---- + static int a __attribute__ ((common)); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43367.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43367.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43367.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43367.c Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,30 ---- + unsigned char g_17; + + const unsigned char func_39 (unsigned char p_40, unsigned char * p_41) + { + return 0; + } + + void int327 (const unsigned char p_48, unsigned char p_49) + { + unsigned l_52; + unsigned char l_58[2]; + int i, j; + if (func_39 (l_52, &p_49), p_48) { + unsigned char *l_60; + unsigned char *l = &l_58[1]; + for (j; j; j++) { + lbl_59: + break; + } + for (l = 0; 1; l += 1) { + for (p_49 = 1; p_49; p_49 += 0) { + unsigned char **l_61[1][6]; + for (j = 0; j < 1; j++) + l_61[i][j] = &l_60; + goto lbl_59; + } + } + } + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43415.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43415.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43415.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43415.c Mon Mar 22 16:32:58 2010 *************** *** 0 **** --- 1,36 ---- + int main() + { + unsigned long long table[256]; + unsigned int i; + for (i=0; i<256; ++i) { + unsigned long long j; + unsigned char x=i; + for (j=0; j<5; ++j) { + x += x<<1; + x ^= x>>1; + } + for (j=0; j<5; ++j) { + x += x<<1; + x ^= x>>1; + } + for (j=0; j<5; ++j) { + x += x<<1; + x ^= x>>1; + } + for (j=0; j<5; ++j) { + x += x<<1; + x ^= x>>1; + } + for (j=0; j<5; ++j) { + x += x<<1; + x ^= x>>1; + } + table[i] ^= (((unsigned long long)x)<<16); + } + for (i=0; i<256; ++i) { + if ((table[i]&0xff)==i) + return 1; + } + return 0; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43614.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43614.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/compile/pr43614.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/compile/pr43614.c Thu Apr 8 11:28:06 2010 *************** *** 0 **** --- 1,27 ---- + volatile int g_2[7]; + + void foo (unsigned); + + int main (void) + { + int i_459 = 0; + int t2818; + int t2819; + volatile char *t2820; + int t2821; + volatile char *t2822; + int *t2823; + unsigned t2824; + LL655: + t2822 = (volatile char *)g_2; + t2821 = i_459; + t2820 = t2822 + t2821; + t2823 = (int *)t2820; + t2824 = *t2823; + foo (t2824); + t2818 = i_459; + t2819 = t2818 + 1; + i_459 = t2819; + goto LL655; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/20100209-1.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/20100209-1.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/20100209-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/20100209-1.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,12 ---- + int bar(int foo) + { + return (int)(((unsigned long long)(long long)foo) / 8); + } + extern void abort (void); + int main() + { + if (sizeof (long long) > sizeof (int) + && bar(-1) != -1) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr42248.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr42248.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr42248.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr42248.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,27 ---- + typedef struct { + _Complex double a; + _Complex double b; + } Scf10; + + Scf10 g1s; + + void + check (Scf10 x, _Complex double y) + { + if (x.a != y) __builtin_abort (); + } + + void + init (Scf10 *p, _Complex double y) + { + p->a = y; + } + + int + main () + { + init (&g1s, (_Complex double)1); + check (g1s, (_Complex double)1); + + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr42512.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr42512.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr42512.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr42512.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,13 ---- + extern void abort (void); + + short g_3; + + int main (void) + { + int l_2; + for (l_2 = -1; l_2 != 0; l_2 = (unsigned char)(l_2 - 1)) + g_3 |= l_2; + if (g_3 != -1) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43008.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43008.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43008.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43008.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,23 ---- + int i; + struct X { + int *p; + }; + struct X * __attribute__((malloc)) + my_alloc (void) + { + struct X *p = __builtin_malloc (sizeof (struct X)); + p->p = &i; + return p; + } + extern void abort (void); + int main() + { + struct X *p, *q; + p = my_alloc (); + q = my_alloc (); + *(p->p) = 1; + *(q->p) = 0; + if (*(p->p) != 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43220.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43220.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43220.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43220.c Tue Mar 2 07:44:03 2010 *************** *** 0 **** --- 1,28 ---- + void *volatile p; + + int + main (void) + { + int n = 0; + lab:; + { + int x[n % 1000 + 1]; + x[0] = 1; + x[n % 1000] = 2; + p = x; + n++; + } + + { + int x[n % 1000 + 1]; + x[0] = 1; + x[n % 1000] = 2; + p = x; + n++; + } + + if (n < 1000000) + goto lab; + + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43269.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43269.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43269.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43269.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,31 ---- + int g_21; + int g_211; + int g_261; + + static void __attribute__((noinline,noclone)) + func_32 (int b) + { + if (b) { + lbl_370: + g_21 = 1; + } + + for (g_261 = -1; g_261 > -2; g_261--) { + if (g_211 + 1) { + return; + } else { + g_21 = 1; + goto lbl_370; + } + } + } + + extern void abort (void); + + int main(void) + { + func_32(0); + if (g_261 != -1) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43385.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43385.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43385.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43385.c Thu Mar 25 11:55:08 2010 *************** *** 0 **** --- 1,59 ---- + /* PR c/43385 */ + + extern void abort (void); + + int e; + + __attribute__((noinline)) void + foo (int x, int y) + { + if (__builtin_expect (x, 0) && y != 0) + e++; + } + + __attribute__((noinline)) int + bar (int x, int y) + { + if (__builtin_expect (x, 0) && y != 0) + return 1; + else + return 0; + } + + int + main (void) + { + int z = 0; + asm ("" : "+r" (z)); + foo (z + 2, z + 1); + if (e != 1) + abort (); + foo (z + 2, z); + if (e != 1) + abort (); + foo (z + 1, z + 1); + if (e != 2) + abort (); + foo (z + 1, z); + if (e != 2) + abort (); + foo (z, z + 1); + if (e != 2) + abort (); + foo (z, z); + if (e != 2) + abort (); + if (bar (z + 2, z + 1) != 1) + abort (); + if (bar (z + 2, z) != 0) + abort (); + if (bar (z + 1, z + 1) != 1) + abort (); + if (bar (z + 1, z) != 0) + abort (); + if (bar (z, z + 1) != 0) + abort (); + if (bar (z, z) != 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43438.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43438.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43438.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43438.c Mon Mar 22 15:05:46 2010 *************** *** 0 **** --- 1,23 ---- + extern void abort (void); + + static unsigned char g_2 = 1; + static int g_9; + static int *l_8 = &g_9; + + static void func_12(int p_13) + { + int * l_17 = &g_9; + *l_17 &= 0 < p_13; + } + + int main(void) + { + unsigned char l_11 = 254; + *l_8 |= g_2; + l_11 |= *l_8; + func_12(l_11); + if (g_9 != 1) + abort (); + return 0; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43560.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43560.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43560.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43560.c Mon Apr 12 10:25:11 2010 *************** *** 0 **** --- 1,28 ---- + /* PR tree-optimization/43560 */ + + struct S + { + int a, b; + char c[10]; + }; + + __attribute__ ((noinline)) void + test (struct S *x) + { + while (x->b > 1 && x->c[x->b - 1] == '/') + { + x->b--; + x->c[x->b] = '\0'; + } + } + + const struct S s = { 0, 0, "" }; + + int + main () + { + struct S *p; + asm ("" : "=r" (p) : "0" (&s)); + test (p); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43629.c gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43629.c *** gcc-4.4.3/gcc/testsuite/gcc.c-torture/execute/pr43629.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.c-torture/execute/pr43629.c Wed Apr 7 15:40:43 2010 *************** *** 0 **** --- 1,13 ---- + int flag; + extern void abort (void); + int main() + { + int x; + if (flag) + x = -1; + else + x &= 0xff; + if (x & ~0xff) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/Wunreachable-2.c gcc-4.4.4/gcc/testsuite/gcc.dg/Wunreachable-2.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/Wunreachable-2.c Tue Feb 12 21:39:42 2002 --- gcc-4.4.4/gcc/testsuite/gcc.dg/Wunreachable-2.c Thu Jan 1 00:00:00 1970 *************** *** 1,19 **** - /* { dg-do compile } */ - /* { dg-options "-O2 -Wunreachable-code" } */ - - extern int foo (const char *); - extern void baz (void); - const char *a[] = { "one", "two" }; - - void bar (void) - { - int i; - - for (i = 0; i < 2; i++) - if (! foo (a[i])) - return; - - baz (); /* { dg-bogus "will never be executed" } */ - baz (); - baz (); - } --- 0 ---- diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/compound-literal-1.c gcc-4.4.4/gcc/testsuite/gcc.dg/compound-literal-1.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/compound-literal-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/compound-literal-1.c Mon Mar 8 11:54:11 2010 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + + /* PR c/43248 */ + + int foo(__SIZE_TYPE__ i) + { + i ? : (void *){}; /* { dg-error "" } */ + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c gcc-4.4.4/gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/debug/dwarf2/pr43237.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,31 ---- + /* PR debug/43237 */ + /* { dg-do compile } */ + /* { dg-options "-g -O2 -dA -fno-merge-debug-strings" } */ + + struct S + { + int *a; + int b; + int **c; + int d; + }; + + void foo (struct S *); + void bar (struct S *); + + int + baz (void) + { + struct S s; + foo (&s); + { + int a[s.b]; + int *c[s.d]; + s.a = a; + s.c = c; + bar (&s); + } + return 0; + } + + /* { dg-final { scan-assembler-not "LLST\[^\\r\\n\]*DW_AT_upper_bound" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/errno-1.c gcc-4.4.4/gcc/testsuite/gcc.dg/errno-1.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/errno-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/errno-1.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,17 ---- + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + #include + #include + + int main() + { + void *p; + errno = 0; + p = malloc (-1); + if (errno != 0) + do_not_optimize_away (); + return 0; + } + + /* { dg-final { scan-assembler "do_not_optimize_away" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/fold-div-3.c gcc-4.4.4/gcc/testsuite/gcc.dg/fold-div-3.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/fold-div-3.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/fold-div-3.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,15 ---- + /* { dg-do compile } */ + /* { dg-options "-O -fdump-tree-original" } */ + + unsigned int + apply_frontend_param (unsigned int spi_bias) + { + static const int ppm = 8000; + spi_bias /= 1000ULL + ppm/1000; + return spi_bias; + } + + /* Make sure we perform the division in the narrower type. */ + + /* { dg-final { scan-tree-dump "spi_bias = spi_bias / 1008;" "original" } } */ + /* { dg-final { cleanup-tree-dump "original" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/inline-33.c gcc-4.4.4/gcc/testsuite/gcc.dg/inline-33.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/inline-33.c Thu Mar 26 06:12:58 2009 --- gcc-4.4.4/gcc/testsuite/gcc.dg/inline-33.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fdump-tree-optimized" } */ ! /* { dg-options "-O3 -fdump-tree-optimized -fpie" { target { ! nonpic } } } */ int i; --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fdump-tree-optimized" } */ ! /* { dg-add-options bind_pic_locally } */ int i; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-1.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-1.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-1.c Fri Aug 29 12:55:54 2008 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-1.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ #include int g (int b, int c) --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-add-options bind_pic_locally } */ #include int g (int b, int c) diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-2.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-2.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-2.c Fri Aug 29 12:55:54 2008 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-2.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ #include int g (int b, int c) --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-add-options bind_pic_locally } */ #include int g (int b, int c) diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-3.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-3.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-3.c Fri Aug 29 12:55:54 2008 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-3.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ /* Double constants. */ --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-add-options bind_pic_locally } */ /* Double constants. */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-4.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-4.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-4.c Fri Aug 29 12:55:54 2008 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-4.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp" } */ ! /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ #include int g (int b, int c) --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp" } */ ! /* { dg-add-options bind_pic_locally } */ #include int g (int b, int c) diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-5.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-5.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-5.c Fri Aug 29 12:55:54 2008 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-5.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ /* Float & short constants. */ --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-add-options bind_pic_locally } */ /* Float & short constants. */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-7.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-7.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipa-7.c Fri Aug 29 12:55:54 2008 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipa-7.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-skip-if "PR 25442" { "*-*-*" } { "-fpic" "-fPIC" } { "" } } */ #include void send_addr (int *); --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining" } */ ! /* { dg-add-options bind_pic_locally } */ #include void send_addr (int *); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipacost-2.c gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipacost-2.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/ipa/ipacost-2.c Mon Feb 2 20:10:04 2009 --- gcc-4.4.4/gcc/testsuite/gcc.dg/ipa/ipacost-2.c Sat Mar 6 02:29:14 2010 *************** *** 1,6 **** /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized" } */ ! /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized -fpie" { target { ! nonpic } } } */ int array[100]; --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-O3 -fipa-cp -fipa-cp-clone -fdump-ipa-cp -fno-early-inlining -fdump-tree-optimized" } */ ! /* { dg-add-options bind_pic_locally } */ int array[100]; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/parm-impl-decl-3.c gcc-4.4.4/gcc/testsuite/gcc.dg/parm-impl-decl-3.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/parm-impl-decl-3.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/parm-impl-decl-3.c Sat Mar 27 11:46:07 2010 *************** *** 0 **** --- 1,28 ---- + /* Like parm-impl-decl-1.c, but with -g. PR 43381. */ + /* Origin: Joseph Myers */ + /* { dg-do compile } */ + /* { dg-options "-g" } */ + + int + foo (int __attribute__ ((__mode__ (vector_size(8)))) i) /* { dg-warning "'__mode__' attribute ignored" } */ + { + return (long long) i; + } + + int f (int [sizeof(g())]); + int f1 (int [sizeof(g1())]); + + int g () { return 1; } + + int + h (int (*p)[sizeof(i())]) + { + int g2 (), g3 (); + return (*p)[0] + g3() + g2(); + } + + int i () { return 2; } + + int f2 (int [sizeof(g2())]); + int f3 (int [sizeof(g3())]); + int g3 () { return 4; } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr42250.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr42250.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr42250.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr42250.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,68 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -fipa-type-escape" } */ + + extern double log10 (double __x); + extern double ceil (double __x); + extern double floor (double __x); + extern void free (void *__ptr); + extern void *my_malloc (unsigned int); + extern int num_rr_nodes; + static float get_cblock_trans (int *num_inputs_to_cblock, + int max_inputs_to_cblock, + float trans_cblock_to_lblock_buf, + float trans_sram_bit); + static float trans_per_mux (int num_inputs, float trans_sram_bit); + void + count_routing_transistors (int num_switch, float R_minW_nmos, + float R_minW_pmos) + { + int *num_inputs_to_cblock; + int iswitch, i, j, iseg, max_inputs_to_cblock; + float input_cblock_trans; + const float trans_sram_bit = 6.; + float trans_cblock_to_lblock_buf; + input_cblock_trans = + get_cblock_trans (num_inputs_to_cblock, max_inputs_to_cblock, + trans_cblock_to_lblock_buf, trans_sram_bit); + } + + static float + get_cblock_trans (int *num_inputs_to_cblock, int max_inputs_to_cblock, + float trans_cblock_to_lblock_buf, float trans_sram_bit) + { + float *trans_per_cblock; + float trans_count; + int i, num_inputs; + + trans_per_cblock = + (float *) my_malloc ((max_inputs_to_cblock + 1) * sizeof (float)); + for (i = 1; i <= max_inputs_to_cblock; i++) + trans_per_cblock[i] = + trans_per_mux (i, trans_sram_bit) + trans_cblock_to_lblock_buf; + for (i = 0; i < num_rr_nodes; i++) + { + num_inputs = num_inputs_to_cblock[i]; + trans_count += trans_per_cblock[num_inputs]; + } + free (trans_per_cblock); + return (trans_count); + } + + static float + trans_per_mux (int num_inputs, float trans_sram_bit) + { + int nlevels, ilevel, current_inps; + float ntrans = 0; + + if (num_inputs <= 1) + return (0); + nlevels = ceil (log10 (num_inputs) / log10 (2.) - 0.00001); + current_inps = num_inputs; + for (ilevel = 1; ilevel <= nlevels; ilevel++) + { + ntrans += 2 * floor (current_inps / 2.); + current_inps = ceil (current_inps / 2.); + } + ntrans += trans_sram_bit * nlevels; + return (ntrans); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr42388.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr42388.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr42388.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr42388.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,67 ---- + /* { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } */ + /* { dg-options "-O2 -fselective-scheduling -fmodulo-sched" } */ + + enum rtx_code + { + INSN, ADDR_VEC, ADDR_DIFF_VEC, CALL_INSN, CODE_LABEL, BARRIER, NOTE + }; + typedef union rtunion_def + { + int rtint; + char *rtstr; + struct rtx_def *rtx; + struct rtvec_def *rtvec; + } + rtunion; + typedef struct rtx_def + { + unsigned short code; + rtunion fld[1]; + } + *rtx; + typedef struct rtvec_def + { + unsigned num_elem; + rtunion elem[1]; + } + *rtvec; + extern rtx emit_barrier (void); + extern rtx emit_note (char *); + + static void + copy_loop_body (rtx *map) + { + int i; + rtx insn, copy; + rtx pat = copy->fld[3].rtx; + + switch (insn->code) + { + case INSN: + if (insn->fld[7].rtx) + { + } + else if (pat->code == ADDR_VEC || pat->code == ADDR_DIFF_VEC) + { + int diff_vec_p = pat->code == ADDR_DIFF_VEC; + int len = pat->fld[diff_vec_p].rtvec->num_elem; + for (i = 0; i < len; i++) + pat->fld[diff_vec_p].rtvec->elem[i].rtx->fld[5].rtint++; + } + case CALL_INSN: + for (i = 0; i < 64; i++) + map[i] = 0; + case CODE_LABEL: + case BARRIER: + copy = emit_barrier (); + case NOTE: + copy = emit_note ("x"); + } + } + void + unroll_loop (int insn_count, rtx *map) + { + if (insn_count > 50) + copy_loop_body (map); + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr42427.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr42427.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr42427.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr42427.c Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,21 ---- + /* { dg-do assemble } */ + /* { dg-options "-O2 -fexceptions -fnon-call-exceptions -fpeel-loops" } */ + /* { dg-require-effective-target ilp32 } */ + + #include + + extern double myabs (complex double); + + void + test (double *help, complex double *wm, long nz) + { + long k; + double znew; + double zold; + for (k = 0; k < nz; k++) + { + znew = myabs (wm[k]); + zold = help[k]; + help[k] = znew; + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr42715.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr42715.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr42715.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr42715.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,59 ---- + /* { dg-do compile { target fpic } } */ + /* { dg-options "-fPIC -g -O2 -w" } */ + /* var-tracking failed to clobber the reg holding v at the asm insn, + so v ended up bound to an intermediate PIC expression. */ + + struct A { unsigned a1; char a2[15]; }; + struct B { long b1; unsigned char b2; long b3; }; + struct C { void *c1; unsigned c2; unsigned c3; }; + + static struct A v1; + struct A *const v2 = &v1; + + static inline + int foo (void) + { + int *v; + __asm__ __volatile__ ("" : "=r" (v)); + return v[1]; + } + + static void + bar (struct C *x) + { + if (x->c2 == x->c3 && x->c1) + f1 (foo (), x->c1, x->c3 * sizeof (x->c1[0])); + } + + void + baz (struct B *y) + { + int i; + const char *j; + char *k; + char x[64]; + for (i = 0; i < sizeof (struct B); i++, y) + { + switch (y->b2) + { + case 0x20: + if (__builtin_strchr (j, '=')) + continue; + } + switch (y->b2) + { + case 0x80: + bar (&x); + f2 (y->b3); + case 0x2e: + case 0x4e: + break; + default: + if (v2->a1) + f2 (y->b2); + } + k[0] = '\0'; + if (v2->a1) + f2 (y->b1); + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43211.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43211.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43211.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43211.c Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,15 ---- + /* { dg-do compile } */ + + struct T; + + struct S { + void (*bar)(struct S); + }; + + void bar(struct T t) {} /* { dg-error "" } */ + + void foo(struct S *s) + { + s->bar = bar; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43280.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43280.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43280.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43280.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,30 ---- + /* { dg-do run } */ + /* { dg-require-effective-target stdint_types } */ + /* { dg-options "-O2" } */ + + #include + + extern void abort (void); + + uint64_t __attribute__((noinline)) + byteswap64(uint64_t x) + { + uint32_t a = x >> 32; + uint32_t b = (uint32_t) x; + return ((uint64_t) ((((((b)) >> (8)) | (((b)) << (32 - (8)))) & 0xff00ff00L) + | (((((b)) << (8)) | (((b)) >> (32 - (8)))) & 0x00ff00ffL)) << 32) + | (uint64_t) ((((((a)) >> (8)) | (((a)) << (32 - (8)))) & 0xff00ff00L) + | (((((a)) << (8)) | (((a)) >> (32 - (8)))) & 0x00ff00ffL)); + } + + int + main () + { + uint64_t in = (uint64_t)0x01020304 << 32 | 0x05060708; + uint64_t cmp = (uint64_t)0x08070605 << 32 | 0x04030201; + + if (cmp != byteswap64 (in)) + abort (); + + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43299.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43299.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43299.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43299.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,28 ---- + /* PR debug/43299 */ + /* { dg-do assemble } */ + /* { dg-options "-g -O2" } */ + + extern void *emit_insn (void *); + + __attribute__((noinline)) + void *gen_load_locked_si (void *x, void *y) + { + return x; + } + + __attribute__((noinline)) + void *gen_load_locked_di (void *x, void *y) + { + return x; + } + + void + emit_load_locked (int mode, void *reg, void *mem) + { + void * (*fn) (void *, void *) = ((void *)0); + if (mode == 9) + fn = gen_load_locked_si; + else if (mode == 10) + fn = gen_load_locked_di; + emit_insn (fn (reg, mem)); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43300.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43300.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43300.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43300.c Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,17 ---- + /* { dg-do compile } */ + /* { dg-options "-Os -w" } */ + typedef float V2SF __attribute__ ((vector_size (128))); + + V2SF + foo (int x, V2SF a) + { + V2SF b; + if (x & 42) + b = a; + else + b = a + (V2SF) {1.0f/0.0f - 1.0f/0.0f, 1.0f/0.0f - 1.0f/0.0f}; + while (x--) + a += b; + + return a; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43305.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43305.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43305.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43305.c Mon Mar 22 15:00:20 2010 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + /* { dg-options "-Os -ffast-math" } */ + extern int ilogbl(long double); + extern int printf(const char *format, ...); + + __attribute__((noinline)) + int foo(long double x) + { + return ilogbl(x); + } + + int main() + { + printf("%d\n", foo(100)); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43379.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43379.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43379.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43379.c Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,11 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -ftracer -w" } */ + + void *foo(int i, int *p) + { + lab: + if (p) *p = i; + goto *p; + return &&lab; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43402.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43402.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43402.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43402.c Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,58 ---- + /* { dg-do run } */ + /* { dg-options "-O1 -fno-inline" } */ + extern void abort (void); + + static int something; + + static int * converterData[2]={ + &something, &something, + }; + + static struct { + const char *name; + int type; + } const cnvNameType[] = { + { "bocu1", 1 }, + { "utf7", 1 }, + { "utf8", 1 } + }; + + + const int * getAlgorithmicTypeFromName(const char *realName); + const int * + getAlgorithmicTypeFromName(const char *realName) + { + unsigned mid, start, limit; + unsigned lastMid; + int result; + start = 0; + limit = sizeof(cnvNameType)/sizeof(cnvNameType[0]); + mid = limit; + lastMid = 0xffffffff; + + for (;;) { + mid = (start + limit) / 2; + if (lastMid == mid) { /* Have we moved? */ + break; /* We haven't moved, and it wasn't found. */ + } + lastMid = mid; + result = __builtin_strcmp(realName, cnvNameType[mid].name); + + if (result < 0) { + limit = mid; + } else if (result > 0) { + start = mid; + } else { + return converterData[cnvNameType[mid].type]; + } + } + + return 0; + } + + int main (void) + { + if (!getAlgorithmicTypeFromName ("utf8")) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43419.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43419.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43419.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43419.c Mon Mar 22 14:58:00 2010 *************** *** 0 **** --- 1,19 ---- + /* { dg-do run } */ + /* { dg-options "-O1" } */ + /* { dg-options "-mieee -O1" { target alpha*-*-* sh*-*-* } } */ + #include + + extern void abort (void); + void __attribute__((noinline)) f (double x) + { + double pluszero = pow (x, 0.5); + double minuszero = sqrt (x); + if (signbit (pluszero) == signbit (minuszero)) + abort (); + } + + int main(void) + { + f (-0.0); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43562.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43562.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43562.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43562.c Wed Mar 31 02:51:31 2010 *************** *** 0 **** --- 1,20 ---- + /* { dg-options "-O0" } */ + /* { dg-do compile } */ + + extern unsigned foo (void); + extern void bar (void); + + __attribute__ ((optimize ("O2"))) + void bak () + { + unsigned a; + while (1) + { + a = foo (); + while (a) + { + a &= 1; + bar (); + } + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/pr43643.c gcc-4.4.4/gcc/testsuite/gcc.dg/pr43643.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/pr43643.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/pr43643.c Thu Apr 8 15:09:17 2010 *************** *** 0 **** --- 1,24 ---- + /* Contributed by Jürgen Keil */ + + /* { dg-do run } */ + /* { dg-require-profiling "-pg" } */ + /* { dg-options "-O2 -pg" } */ + + extern char *strdup (const char *); + + void + func(char *a, char *b, char *c) + { + strdup(a); + strdup(b); + strdup(c); + } + + int + main(void) + { + func("a", "b", "c"); + return 0; + } + + /* { dg-final { cleanup-profile-file } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42363.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42363.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42363.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42363.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,84 ---- + /* PR middle-end/pr42363, extended from the test for PR middle-end/37913. */ + /* { dg-do compile } */ + /* { dg-options "-g" } */ + + void foo (void) __attribute__ ((noreturn)); + + static int __attribute__ ((noreturn)) + bar (void) + { + foo (); + } + + int + baz (void) + { + int i = bar (); + return i + 1; + } + + int fooz (void) __attribute__ ((noreturn)); + + static int __attribute__ ((noreturn)) + bart (void) + { + return fooz (); /* { dg-warning "noreturn" } */ + } + + int bazr (void) + { + int i = bart (); + return i + 1; + } + + static inline int + bard (void) + { + return fooz (); + } + + int bizr (void) + { + int i, j; + + i = j = bard (); + + return i + 1; + } + + /* This might be regarded as pure and folded, rather than inlined. + It's pure evil. */ + static int __attribute__ ((pure, const, noreturn)) + barf (void) + { + } /* { dg-warning "does return" } */ + + static int __attribute__ ((pure, const)) + bark (void) + { + barf (); + } + + int buzr (void) + { + int i, j; + + i = j = bark () + bark (); + + return i + 1; + } + + int buzt (void) + { + int i, j; + + i = j = barf () + barf (); + + return i + 1; + } + + void bust (void) + { + while (barf ()) + ; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42898-2.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42898-2.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42898-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42898-2.c Sun Jan 31 21:06:20 2010 *************** *** 0 **** --- 1,25 ---- + /* { dg-do compile } */ + /* { dg-options "-fdump-tree-optimized" } */ + + struct hardware { + int parm1:8; + int :4; + int parm2:4; + int parm3:15; + int parm4:1; + }; + + const struct hardware h = { + .parm1=42, + .parm2=13, + .parm3=11850, + .parm4=1, + }; + + void f1(volatile struct hardware *ptr) + { + *ptr = h; + } + + /* { dg-final { scan-tree-dump-times "\\*ptr" 1 "optimized" } } */ + /* { dg-final { cleanup-tree-dump "optimized" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42898.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42898.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42898.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42898.c Sun Jan 31 17:04:29 2010 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + /* { dg-options "-fdump-tree-optimized" } */ + + struct hardware { + int parm1:8; + int :4; + int parm2:4; + int parm3:15; + int parm4:1; + }; + + void f1(volatile struct hardware *ptr) + { + *ptr=(struct hardware) { + .parm1=42, + .parm2=13, + .parm3=11850, + .parm4=1, + }; + } + + /* { dg-final { scan-tree-dump-times "\\*ptr" 1 "optimized" } } */ + /* { dg-final { cleanup-tree-dump "optimized" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42952.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42952.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr42952.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr42952.c Thu Feb 4 16:18:01 2010 *************** *** 0 **** --- 1,19 ---- + /* { dg-do run } */ + /* { dg-options "-fno-tree-ccp -fno-tree-fre" } */ + + extern void abort (void); + + static int g[1]; + + static int * const p = &g[0]; + static int * const q = &g[0]; + + int main(void) + { + g[0] = 1; + *p = 0; + *p = *q; + if (g[0] != 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43000.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43000.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43000.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43000.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,24 ---- + /* { dg-do run } */ + /* { dg-options "-fwrapv" } */ + + int __attribute__((noinline)) + foo (long i, long j) + { + if (i >= 1) + if (j > -(long)(((unsigned long)(long)-1)>>1)) + { + long x; + j--; + x = i + j; + if (x >= 0) + return 1; + } + return 0; + } + extern void abort (void); + int main() + { + if (foo (1, 1) != 1) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43002.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43002.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43002.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43002.c Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + /* { dg-options "-Wall -fwrapv" } */ + + long A[4], B[100]; + + void foo(void) + { + int i, j, k = 3; + while (A[k] && k > 0) k--; /* k = {0, 1, 2, 3} */ + for (i = 3 - k; i >= 0; i--) /* i = {0..3-k} */ + for (j = 0; j <= k; j++) { /* line 8; j = {0..k} */ + B[i + j] = 0; /* line 9; i + j = {0..3-k+k} = {0..3} */ + for (j = 0; j <= k; j++); /* only one iteration is done, with j == 0 */ + } + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43165.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43165.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43165.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43165.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,17 ---- + /* PR debug/43165 */ + /* { dg-options "-g" } */ + + struct __attribute__((packed)) S + { + unsigned char a; + unsigned short b; + unsigned short c; + unsigned d : 24; + }; + + void + foo (struct S p) + { + for (; p.c; p.c++) + ; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43360.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43360.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43360.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43360.c Thu Mar 18 13:15:21 2010 *************** *** 0 **** --- 1,20 ---- + /* { dg-do run } */ + + int l_5_5_2 = 4; + int g_3[1][1]; + + void func_1 (void) + { + for (g_3[0][0] = 1; g_3[0][0] < 8; g_3[0][0] += 7) { + int *l_6 = &g_3[0][0]; + *l_6 = l_5_5_2; + } + } + + int main (void) + { + func_1 (); + if (g_3[0][0] != 11) + __builtin_abort (); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43560.c gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43560.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/torture/pr43560.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/torture/pr43560.c Thu Apr 8 11:31:00 2010 *************** *** 0 **** --- 1,34 ---- + /* { dg-do run } */ + /* { dg-require-weak "" } */ + + int g_6[1][2] = {{1,1}}; + int g_34 = 0; + int *const g_82 = &g_6[0][1]; + int *g_85[2][1] __attribute__((weak)); + + void __attribute__((noinline)) + func_4 (int x) + { + int i; + for (i = 0; i <= x; i++) { + if (g_6[0][1]) { + *g_82 = 1; + } else { + int **l_109 = &g_85[1][0]; + if (&g_82 != l_109) { + } else { + *l_109 = &g_6[0][1]; + } + *g_82 = 1; + } + } + } + + int main (void) + { + g_85[0][0] = &g_34; + g_85[1][0] = &g_34; + func_4(1); + return 0; + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/inline-4.c gcc-4.4.4/gcc/testsuite/gcc.dg/tree-ssa/inline-4.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/inline-4.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/tree-ssa/inline-4.c Sat Mar 6 02:29:14 2010 *************** *** 0 **** --- 1,27 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -fdump-tree-einline2" } */ + /* { dg-add-options bind_pic_locally } */ + + extern int rand(void); + + int get_data_for (int id) + { + return rand(); + } + + int my_id; + + int main() + { + int res = get_data_for (my_id); + switch (res) + { + case 0: + return 666; + default: + return -1; + } + } + + /* { dg-final { scan-tree-dump "Inlining get_data_for into main" "einline2" } } */ + /* { dg-final { cleanup-tree-dump "einline2" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c gcc-4.4.4/gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/tree-ssa/ivopts-4.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,8 ---- + /* { dg-do compile } */ + /* { dg-options "-O1" } */ + void foo(int *p, long i, int j) + { + do { + p[i]++; + } while (i += j); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/pr42585.c gcc-4.4.4/gcc/testsuite/gcc.dg/tree-ssa/pr42585.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/tree-ssa/pr42585.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/tree-ssa/pr42585.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,37 ---- + /* { dg-do compile } */ + /* { dg-options "-O1 -fdump-tree-optimized" } */ + + struct _fat_ptr + { + unsigned char *curr; + unsigned char *base; + unsigned char *last_plus_one; + }; + int Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr); + int + Cyc_string_ungetc (int ignore, struct _fat_ptr *sptr) + { + struct _fat_ptr *_T0; + struct _fat_ptr *_T1; + struct _fat_ptr _T2; + int _T3; + struct _fat_ptr _ans; + int _change; + + { + _T0 = sptr; + _T1 = sptr; + _T2 = *sptr; + _T3 = -1; + _ans = _T2; + _change = -1; + _ans.curr += 4294967295U; + *sptr = _ans; + return (0); + } + } + + /* The local aggregates . */ + /* { dg-final { scan-tree-dump-times "struct _fat_ptr _ans" 0 "optimized"} } */ + /* { dg-final { scan-tree-dump-times "struct _fat_ptr _T2" 0 "optimized"} } */ + /* { dg-final { cleanup-tree-dump "optimized" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c gcc-4.4.4/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/vect/fast-math-pr43074.c Tue Feb 16 11:41:55 2010 *************** *** 0 **** --- 1,16 ---- + /* { dg-do compile } */ + + float + pvslockprocess(float *fout, float *fin, int framesize) + { + int i; + float mag=0.0f, diff; + for (i = 0; i < framesize; i += 2) { + mag += fin[i]; + fout[i] = fin[i]; + fout[i+1] = fin[i+1]; + } + return mag; + } + + /* { dg-final { cleanup-tree-dump "vect" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/vect/pr42395.c gcc-4.4.4/gcc/testsuite/gcc.dg/vect/pr42395.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/vect/pr42395.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/vect/pr42395.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,10 ---- + /* PR debug/42395 */ + /* { dg-do compile } */ + /* { dg-options "-O3 -ftree-vectorize -g" } */ + + void foo(int j, int *A) + { + int i; + for (i = 0; i < j; i ++) A[i] = i; + for (; i < 4096; i ++) A[i] = 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/vect/pr42604.c gcc-4.4.4/gcc/testsuite/gcc.dg/vect/pr42604.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/vect/pr42604.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/vect/pr42604.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,35 ---- + /* PR debug/42604 */ + /* { dg-do compile } */ + /* { dg-options "-O3 -ftree-vectorize -g -ffast-math" } */ + + unsigned *d; + unsigned short e; + int f; + float h[3][4]; + + void + test (unsigned short *b) + { + int a, c, i; + float g[3]; + unsigned j[32] = { 10, 0x63707274 }; + for (i = 0; i < (int) j[0]; i++) + { + j[i * 3 + 2] = d[0]; + d[0] += (j[i * 3 + 3] + 3) & -4; + } + for (a = 0; a < e; a++) + { + g[0] = g[1] = g[2] = 0; + for (c = 0; c < f; c++) + { + g[0] += h[0][c] * b[c]; + g[1] += h[1][c] * b[c]; + } + for (c = 0; c < 3; c++) + b[c] = 0 > ((int) g[c] < 65535 ? ((int) g[c]) : 65535) + ? 0 : ((int) g[c]) < 65535 ? (int) g[c] : 65535; + } + } + + /* { dg-final { cleanup-tree-dump "vect" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/vect/pr42709.c gcc-4.4.4/gcc/testsuite/gcc.dg/vect/pr42709.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/vect/pr42709.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/vect/pr42709.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,28 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target vect_int } */ + + #include + #include "tree-vect.h" + + #define N 128 + + int *res[N]; + + int + main1 (int *a, int *b, int *c, int *d, int dummy) + { + int i; + + for (i = 0; i < N/2; i+=4) + { + res[i] = a + 16; + res[i+1] = b + 16; + res[i+2] = c + 16; + res[i+3] = d + 16; + if (dummy == 32) + abort (); + } + } + + /* { dg-final { cleanup-tree-dump "vect" } } */ + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.dg/vla-22.c gcc-4.4.4/gcc/testsuite/gcc.dg/vla-22.c *** gcc-4.4.3/gcc/testsuite/gcc.dg/vla-22.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.dg/vla-22.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,22 ---- + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + extern void bar (int *); + + static inline __attribute__((always_inline)) + int + foo (int i) + { + struct S { + int ar[1][i]; + } s; + + s.ar[0][0] = 0; + bar (&s.ar[0][0]); + } + + void + baz (int i) + { + foo (i + 2); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowf32.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lowf32 (void) { ! float32x2_t out_float32x2_t; float32x4_t arg0_float32x4_t; out_float32x2_t = vget_low_f32 (arg0_float32x4_t); --- 9,15 ---- void test_vget_lowf32 (void) { ! register float32x2_t out_float32x2_t asm ("d18"); float32x4_t arg0_float32x4_t; out_float32x2_t = vget_low_f32 (arg0_float32x4_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowp16.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lowp16 (void) { ! poly16x4_t out_poly16x4_t; poly16x8_t arg0_poly16x8_t; out_poly16x4_t = vget_low_p16 (arg0_poly16x8_t); --- 9,15 ---- void test_vget_lowp16 (void) { ! register poly16x4_t out_poly16x4_t asm ("d18"); poly16x8_t arg0_poly16x8_t; out_poly16x4_t = vget_low_p16 (arg0_poly16x8_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowp8.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lowp8 (void) { ! poly8x8_t out_poly8x8_t; poly8x16_t arg0_poly8x16_t; out_poly8x8_t = vget_low_p8 (arg0_poly8x16_t); --- 9,15 ---- void test_vget_lowp8 (void) { ! register poly8x8_t out_poly8x8_t asm ("d18"); poly8x16_t arg0_poly8x16_t; out_poly8x8_t = vget_low_p8 (arg0_poly8x16_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows16.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lows16 (void) { ! int16x4_t out_int16x4_t; int16x8_t arg0_int16x8_t; out_int16x4_t = vget_low_s16 (arg0_int16x8_t); --- 9,15 ---- void test_vget_lows16 (void) { ! register int16x4_t out_int16x4_t asm ("d18"); int16x8_t arg0_int16x8_t; out_int16x4_t = vget_low_s16 (arg0_int16x8_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows32.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lows32 (void) { ! int32x2_t out_int32x2_t; int32x4_t arg0_int32x4_t; out_int32x2_t = vget_low_s32 (arg0_int32x4_t); --- 9,15 ---- void test_vget_lows32 (void) { ! register int32x2_t out_int32x2_t asm ("d18"); int32x4_t arg0_int32x4_t; out_int32x2_t = vget_low_s32 (arg0_int32x4_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows64.c Mon Jan 25 12:29:25 2010 *************** void test_vget_lows64 (void) *** 15,19 **** out_int64x1_t = vget_low_s64 (arg0_int64x2_t); } - /* { dg-final { scan-assembler "vmov\[ \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */ /* { dg-final { cleanup-saved-temps } } */ --- 15,18 ---- diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lows8.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lows8 (void) { ! int8x8_t out_int8x8_t; int8x16_t arg0_int8x16_t; out_int8x8_t = vget_low_s8 (arg0_int8x16_t); --- 9,15 ---- void test_vget_lows8 (void) { ! register int8x8_t out_int8x8_t asm ("d18"); int8x16_t arg0_int8x16_t; out_int8x8_t = vget_low_s8 (arg0_int8x16_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu16.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lowu16 (void) { ! uint16x4_t out_uint16x4_t; uint16x8_t arg0_uint16x8_t; out_uint16x4_t = vget_low_u16 (arg0_uint16x8_t); --- 9,15 ---- void test_vget_lowu16 (void) { ! register uint16x4_t out_uint16x4_t asm ("d18"); uint16x8_t arg0_uint16x8_t; out_uint16x4_t = vget_low_u16 (arg0_uint16x8_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu32.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lowu32 (void) { ! uint32x2_t out_uint32x2_t; uint32x4_t arg0_uint32x4_t; out_uint32x2_t = vget_low_u32 (arg0_uint32x4_t); --- 9,15 ---- void test_vget_lowu32 (void) { ! register uint32x2_t out_uint32x2_t asm ("d18"); uint32x4_t arg0_uint32x4_t; out_uint32x2_t = vget_low_u32 (arg0_uint32x4_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu64.c Mon Jan 25 12:29:25 2010 *************** void test_vget_lowu64 (void) *** 15,19 **** out_uint64x1_t = vget_low_u64 (arg0_uint64x2_t); } - /* { dg-final { scan-assembler "vmov\[ \]+\[dD\]\[0-9\]+, \[dD\]\[0-9\]+!?\(\[ \]+@\[a-zA-Z0-9 \]+\)?\n" } } */ /* { dg-final { cleanup-saved-temps } } */ --- 15,18 ---- diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c Wed Jul 25 12:28:31 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/neon/vget_lowu8.c Mon Jan 25 12:29:25 2010 *************** *** 9,15 **** void test_vget_lowu8 (void) { ! uint8x8_t out_uint8x8_t; uint8x16_t arg0_uint8x16_t; out_uint8x8_t = vget_low_u8 (arg0_uint8x16_t); --- 9,15 ---- void test_vget_lowu8 (void) { ! register uint8x8_t out_uint8x8_t asm ("d18"); uint8x16_t arg0_uint8x16_t; out_uint8x8_t = vget_low_u8 (arg0_uint8x16_t); diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/pr40887.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/pr40887.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/pr40887.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/pr40887.c Thu Feb 18 13:13:03 2010 *************** *** 0 **** --- 1,9 ---- + /* { dg-options "-O2 -march=armv5te" } */ + /* { dg-final { scan-assembler "blx" } } */ + + int (*indirect_func)(); + + int indirect_call() + { + return indirect_func(); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/sibcall-1.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/sibcall-1.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/sibcall-1.c Fri Jul 6 16:57:19 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/sibcall-1.c Sat Mar 13 01:56:15 2010 *************** int main(int argc, const char *argv[]) *** 30,34 **** return result; } ! /* { dg-final { scan-assembler "\tb\tfunc2\n" } } */ --- 30,35 ---- return result; } ! /* The PLT marker may appear if the test is run with -fpic/-fPIC. */ ! /* { dg-final { scan-assembler "\tb\tfunc2(\\(PLT\\))?\n" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/arm/thumb2-cbnz.c gcc-4.4.4/gcc/testsuite/gcc.target/arm/thumb2-cbnz.c *** gcc-4.4.3/gcc/testsuite/gcc.target/arm/thumb2-cbnz.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/arm/thumb2-cbnz.c Wed Feb 24 14:50:43 2010 *************** *** 0 **** --- 1,110 ---- + /* { dg-do assemble } */ + /* { dg-options "-O1 -mthumb -march=armv7-a" } */ + + typedef short int int16_t; + typedef unsigned char uint8_t; + struct component + { + float *Q_table; + }; + static inline unsigned char descale_and_clamp(int x, int shift) + { + x += (1UL<<(shift-1)); + if (x<0) + x = (x >> shift) | ((~(0UL)) << (32-(shift))); + x >>= shift; + x += 128; + if (x>255) + return 255; + else if (x<0) + return 0; + return x; + } + void + tinyjpeg_idct_float (struct component *compptr, uint8_t *output_buf, int stride) + { + float tmp0, tmp1, tmp2, tmp3, tmp4, tmp5, tmp6, tmp7; + float tmp10, tmp11, tmp12, tmp13; + float z5, z10, z11, z12, z13; + int16_t *inptr; + float *quantptr; + float *wsptr; + uint8_t *outptr; + int ctr; + float workspace[(8*8)]; + quantptr = compptr->Q_table; + wsptr = workspace; + for (ctr = 8; ctr > 0; ctr--) { + if (inptr[8*1] == 0 && inptr[8*2] == 0 && + inptr[8*3] == 0 && inptr[8*4] == 0 && + inptr[8*5] == 0 && inptr[8*6] == 0 && + inptr[8*7] == 0) { + float dcval = (((float) (inptr[8*0])) * (quantptr[8*0])); + wsptr[8*0] = dcval; + wsptr[8*1] = dcval; + wsptr[8*2] = dcval; + wsptr[8*3] = dcval; + wsptr[8*4] = dcval; + wsptr[8*5] = dcval; + wsptr[8*6] = dcval; + wsptr[8*7] = dcval; + inptr++; + quantptr++; + wsptr++; + continue; + } + tmp0 = (((float) (inptr[8*0])) * (quantptr[8*0])); + tmp1 = (((float) (inptr[8*2])) * (quantptr[8*2])); + tmp2 = (((float) (inptr[8*4])) * (quantptr[8*4])); + tmp3 = (((float) (inptr[8*6])) * (quantptr[8*6])); + tmp10 = tmp0 + tmp2; + tmp11 = tmp0 - tmp2; + tmp13 = tmp1 + tmp3; + tmp12 = (tmp1 - tmp3) * ((float) 1.414213562) - tmp13; + tmp0 = tmp10 + tmp13; + tmp3 = tmp10 - tmp13; + tmp1 = tmp11 + tmp12; + tmp2 = tmp11 - tmp12; + tmp4 = (((float) (inptr[8*1])) * (quantptr[8*1])); + tmp5 = (((float) (inptr[8*3])) * (quantptr[8*3])); + tmp6 = (((float) (inptr[8*5])) * (quantptr[8*5])); + tmp7 = (((float) (inptr[8*7])) * (quantptr[8*7])); + z13 = tmp6 + tmp5; + z10 = tmp6 - tmp5; + z11 = tmp4 + tmp7; + z12 = tmp4 - tmp7; + tmp7 = z11 + z13; + tmp11 = (z11 - z13) * ((float) 1.414213562); + z5 = (z10 + z12) * ((float) 1.847759065); + tmp10 = ((float) 1.082392200) * z12 - z5; + tmp12 = ((float) -2.613125930) * z10 + z5; + tmp6 = tmp12 - tmp7; + tmp5 = tmp11 - tmp6; + tmp4 = tmp10 + tmp5; + wsptr[8*0] = tmp0 + tmp7; + wsptr[8*7] = tmp0 - tmp7; + wsptr[8*1] = tmp1 + tmp6; + wsptr[8*2] = tmp2 + tmp5; + wsptr[8*5] = tmp2 - tmp5; + wsptr[8*4] = tmp3 + tmp4; + wsptr[8*3] = tmp3 - tmp4; + inptr++; + quantptr++; + wsptr++; + } + for (ctr = 0; ctr < 8; ctr++) { + tmp11 = wsptr[0] - wsptr[4]; + tmp12 = (wsptr[2] - wsptr[6]) * ((float) 1.414213562) - tmp13; + tmp0 = tmp10 + tmp13; + tmp1 = tmp11 + tmp12; + z10 = wsptr[5] - wsptr[3]; + tmp12 = ((float) -2.613125930) * z10 + z5; + tmp6 = tmp12 - tmp7; + outptr[0] = descale_and_clamp((int)(tmp0 + tmp7), 3); + outptr[7] = descale_and_clamp((int)(tmp0 - tmp7), 3); + outptr[1] = descale_and_clamp((int)(tmp1 + tmp6), 3); + outptr[6] = descale_and_clamp((int)(tmp1 - tmp6), 3); + outptr[2] = descale_and_clamp((int)(tmp2 + tmp5), 3); + outptr += stride; + } + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/clobbers.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/clobbers.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/clobbers.c Wed Aug 22 09:59:14 2007 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/clobbers.c Wed Mar 10 20:35:31 2010 *************** *** 1,7 **** /* Test asm clobbers on x86. */ /* { dg-do run } */ - /* { dg-skip-if "" { ilp32 } { "-fpic" "-fPIC" } { "" } } */ extern void abort (void); --- 1,6 ---- *************** int main () *** 13,23 **** abort (); /* On darwin you can't call external functions from non-pic code, however, clobbering ebx isn't valid in pic code. Instead of ! disabling the whole test, just disable the ebx clobbering part. */ #if !(defined (__MACH__)) __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx"); if (i != 1) abort (); #endif __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx"); if (i != 1) --- 12,26 ---- abort (); /* On darwin you can't call external functions from non-pic code, however, clobbering ebx isn't valid in pic code. Instead of ! disabling the whole test, just disable the ebx clobbering part. ! Ditto for any x86 system that is ilp32 && pic. ! */ #if !(defined (__MACH__)) + #if ! defined (__PIC__) || defined (__LP64__) __asm__ ("movl $1,%0\n\txorl %%ebx,%%ebx" : "=r" (i) : : "ebx"); if (i != 1) abort (); + #endif /* ! pic || lp64 */ #endif __asm__ ("movl $1,%0\n\txorl %%ecx,%%ecx" : "=r" (i) : : "ecx"); if (i != 1) diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr42881.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr42881.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr42881.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr42881.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,13 ---- + /* PR target/42881 */ + /* { dg-do run } */ + /* { dg-options "-O0 -msse2" } */ + #include "sse2-check.h" + static void + sse2_test (void) + { + double a[2]; + __m128d x = _mm_set1_pd(3); + _mm_storeu_pd(a,x); + if (a[0] != 3.0 || a[1] != 3.0) + __builtin_abort (); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr42891.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr42891.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr42891.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr42891.c Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,13 ---- + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + union B { int i; float f; }; + + extern void bar (void); + + void + foo (union B x, union B y) + { + if (!(y.f > x.i)) + bar (); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43107.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43107.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43107.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43107.c Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,20 ---- + /* PR target/43107 */ + /* { dg-do compile } */ + /* { dg-options "-O3 -mavx" } */ + + extern void bar (float b[4][4]); + + void + foo () + { + float a[4][4], b[4][4]; + int i, j; + for (i = 0; i < 4; i++) + { + for (j = 0; j < 4; j++) + a[i][j] = 0; + for (j = 0; j < 4; j++) + b[i][j] = a[i][j]; + } + bar (b); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43524.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43524.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43524.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43524.c Wed Mar 31 18:09:04 2010 *************** *** 0 **** --- 1,9 ---- + /* { dg-do compile } */ + /* { dg-options "-mstack-arg-probe" } */ + + extern void bar (void); + + void foo (int i) + { + bar (); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43528.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43528.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43528.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43528.c Wed Mar 31 18:09:04 2010 *************** *** 0 **** --- 1,5 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target lp64 } */ + /* { dg-options "-mms-bitfields" } */ + + struct S { int i[(1LL << 60) - 1]; }; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43638.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43638.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43638.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43638.c Tue Apr 6 11:07:09 2010 *************** *** 0 **** --- 1,9 ---- + /* PR target/43638 */ + /* { dg-do compile } */ + + void + foo (void) + { + int x; + __asm __volatile ("mov $0,%e0" : "=r" (x)); /* { dg-error "invalid operand code" } */ + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43662.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43662.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43662.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43662.c Mon Apr 19 10:06:13 2010 *************** *** 0 **** --- 1,24 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target lp64 } */ + /* { dg-options "-O2" } */ + + void __attribute__ ((ms_abi)) foo (void) + { + } + + typedef struct _IAVIStreamImpl + { + int sInfo; + int has; + } IAVIStreamImpl; + + extern int __attribute__ ((ms_abi)) aso (void *); + extern int sre (void *); + + int AVIFILE_OpenCompressor (IAVIStreamImpl *This) + { + if (This->has != 0) + aso (&This->has); + sre (&This->sInfo); + return 0; + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43668.c gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43668.c *** gcc-4.4.3/gcc/testsuite/gcc.target/i386/pr43668.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/i386/pr43668.c Wed Apr 7 21:48:51 2010 *************** *** 0 **** --- 1,10 ---- + /* PR target/43668 */ + /* { dg-do run } */ + /* { dg-options "-fschedule-insns" } */ + + int foo(int i, ...) { + return i; + } + int main() { + return foo(0, 0.0); + } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c gcc-4.4.4/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c *** gcc-4.4.3/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c Sat Jun 7 18:00:15 2008 --- gcc-4.4.4/gcc/testsuite/gcc.target/powerpc/ppc-sdata-1.c Sun Mar 21 19:41:58 2010 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile { target { { powerpc*-*-linux* && ilp32 } || { powerpc-*-eabi* } } } } */ /* { dg-options "-O2 -fno-common -G 8 -meabi -msdata=eabi" } */ + /* { dg-require-effective-target nonpic } */ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata2," } } */ /* { dg-final { scan-assembler "sdat@sda21\\((13|0)\\)" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c gcc-4.4.4/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c *** gcc-4.4.3/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c Sat Jun 7 18:00:15 2008 --- gcc-4.4.4/gcc/testsuite/gcc.target/powerpc/ppc-sdata-2.c Sun Mar 21 19:41:58 2010 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile { target { { powerpc*-*-linux* && ilp32 } || { powerpc-*-eabi* } } } } */ /* { dg-options "-O2 -fno-common -G 8 -msdata=sysv" } */ + /* { dg-require-effective-target nonpic } */ /* { dg-final { scan-assembler "\\.section\[ \t\]\\.sdata," } } */ /* { dg-final { scan-assembler-not "\\.section\[ \t\]\\.sdata2," } } */ /* { dg-final { scan-assembler "sdat@sdarel\\(13\\)" } } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/s390/stackcheck1.c gcc-4.4.4/gcc/testsuite/gcc.target/s390/stackcheck1.c *** gcc-4.4.3/gcc/testsuite/gcc.target/s390/stackcheck1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/s390/stackcheck1.c Tue Apr 6 07:15:03 2010 *************** *** 0 **** --- 1,14 ---- + /* The automatically chosen stack guard value caused an ICE in that + case. */ + + /* { dg-do compile } */ + /* { dg-options "-O2 -mstack-size=4096" } */ + + extern void bar (char *); + + void + foo () + { + char a[2500]; + bar (a); + } /* { dg-warning "more than half" } */ diff -Nrcpad gcc-4.4.3/gcc/testsuite/gcc.target/sh/pr43417.c gcc-4.4.4/gcc/testsuite/gcc.target/sh/pr43417.c *** gcc-4.4.3/gcc/testsuite/gcc.target/sh/pr43417.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gcc.target/sh/pr43417.c Sat Apr 10 15:14:13 2010 *************** *** 0 **** --- 1,36 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -m4" } */ + + int pid_count = 0; + main (int argc, char *argv[]) + { + unsigned int c; + unsigned long long maxbytes = 0; + extern char *optarg; + int i; + int pid_cntr; + int pid; + int pid_list[1000]; + while ((c = getopt (argc, argv, "c:b:p:wvh")) != (-1)) + { + switch ((char) c) + { + case 'b': + maxbytes = atoll (optarg); + } + } + pid = fork (); + while ((pid != 0) && (maxbytes > 1024 * 1024 * 1024)) + { + maxbytes = maxbytes - (1024 * 1024 * 1024); + pid = fork (); + if (pid != 0) + pid_cntr++; + pid_list[i] = pid; + } + while ((pid_count < pid_cntr)) + { + } + kill (pid_list[i], 9); + } + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 Mon Nov 24 06:34:16 2008 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/alloc_comp_basics_1.f90 Sun Jan 31 14:57:13 2010 *************** *** 1,5 **** ! { dg-do run } ! ! { dg-options "-O2 -fdump-tree-original" } ! ! Check some basic functionality of allocatable components, including that they ! are nullified when created and automatically deallocated when --- 1,5 ---- ! { dg-do run } ! ! { dg-options "-fdump-tree-original" } ! ! Check some basic functionality of allocatable components, including that they ! are nullified when created and automatically deallocated when diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/alloc_comp_bounds_1.f90 Sun Jan 31 14:57:13 2010 *************** *** 0 **** --- 1,50 ---- + ! { dg-do run } + ! Test the fix for PR38324, in which the bounds were not set correctly for + ! constructor assignments with allocatable components. + ! + ! Contributed by Dominique d'Humieres + ! + integer, parameter :: ik4 = 4 + integer, parameter :: ik8 = 8 + integer, parameter :: from = -1, to = 2 + call foo + call bar + contains + subroutine foo + type :: struct + integer(4), allocatable :: ib(:) + end type struct + integer(ik4), allocatable :: ia(:) + type(struct) :: x + allocate(ia(from:to)) + if (any(lbound(ia) .ne. -1) .or. any(ubound(ia) .ne. 2)) call abort + if (any(lbound(ia(:)) .ne. 1) .or. any(ubound(ia(:)) .ne. 4)) call abort + if (any(lbound(ia(from:to)) .ne. 1) .or. any(ubound(ia(from:to)) .ne. 4)) call abort + x=struct(ia) + if (any(lbound(x%ib) .ne. -1) .or. any(ubound(x%ib) .ne. 2)) call abort + x=struct(ia(:)) + if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort + x=struct(ia(from:to)) + if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort + deallocate(ia) + end subroutine + subroutine bar + type :: struct + integer(4), allocatable :: ib(:) + end type struct + integer(ik8), allocatable :: ia(:) + type(struct) :: x + allocate(ia(from:to)) + if (any(lbound(ia) .ne. -1) .or. any(ubound(ia) .ne. 2)) call abort + if (any(lbound(ia(:)) .ne. 1) .or. any(ubound(ia(:)) .ne. 4)) call abort + if (any(lbound(ia(from:to)) .ne. 1) .or. any(ubound(ia(from:to)) .ne. 4)) call abort + x=struct(ia) + if (any(lbound(x%ib) .ne. -1) .or. any(ubound(x%ib) .ne. 2)) call abort + x=struct(ia(:)) + if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort + x=struct(ia(from:to)) + if (any(lbound(x%ib) .ne. 1) .or. any(ubound(x%ib) .ne. 4)) call abort + deallocate(ia) + end subroutine + end + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/array_constructor_35.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/array_constructor_35.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/array_constructor_35.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/array_constructor_35.f90 Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,9 ---- + ! { dg-do compile } + ! PR42999 bogus error: Parameter 'i' at (1) has not been declared + ! or is a variable, which does not reduce to a constant expression + TYPE DD + INTEGER :: I + END TYPE DD + TYPE(DD) :: X(2)=(/(DD(I),I=1,2)/) + END + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/bounds_check_15.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/bounds_check_15.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/bounds_check_15.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/bounds_check_15.f90 Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,33 ---- + ! { dg-do run } + ! { dg-options "-fbounds-check" } + ! Test the fix for PR42783, in which a bogus array bounds violation + ! with missing optional array argument. + ! + ! Contributed by Harald Anlauf + ! + program gfcbug99 + implicit none + character(len=8), parameter :: mnem_list(2) = "A" + + call foo (mnem_list) ! This call succeeds + call foo () ! This call fails + contains + subroutine foo (mnem_list) + character(len=8) ,intent(in) ,optional :: mnem_list(:) + + integer :: i,j + character(len=256) :: ml + ml = '' + j = 0 + if (present (mnem_list)) then + do i = 1, size (mnem_list) + if (mnem_list(i) /= "") then + j = j + 1 + if (j > len (ml)/8) call abort () + ml((j-1)*8+1:(j-1)*8+8) = mnem_list(i) + end if + end do + end if + if (j > 0) print *, trim (ml(1:8)) + end subroutine foo + end program gfcbug99 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/c_assoc_3.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/c_assoc_3.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/c_assoc_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/c_assoc_3.f90 Thu Mar 11 11:10:37 2010 *************** *** 0 **** --- 1,13 ---- + ! { dg-do compile } + ! + ! PR fortran/43303 + ! + ! Contributed by Dennis Wassel + ! + PROGRAM c_assoc + use iso_c_binding + type(c_ptr) :: x + x = c_null_ptr + print *, C_ASSOCIATED(x) ! <<< was ICEing here + if (C_ASSOCIATED(x)) call abort () + END PROGRAM c_assoc diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/char_array_arg_1.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/char_array_arg_1.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/char_array_arg_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/char_array_arg_1.f90 Sat Jan 30 21:12:59 2010 *************** *** 0 **** --- 1,17 ---- + ! { dg-do compile } + ! Test the fix for pr41167, in which the first argument of 'pack', below, + ! was simplified incorrectly, with the results indicated. + ! + ! Contributed by Harald Anlauf + ! + program gfcbug88 + implicit none + type t + character(len=8) :: name + end type t + type(t) ,parameter :: obstyp(2)= (/ t ('A'), t ('B') /) + character(9) :: chr(1) + + print *, pack (" "//obstyp(:)% name, (/ .true., .false. /)) ! Used to ICE on compilation + chr = pack (" "//obstyp(:)% name, (/ .true., .false. /)) ! Used to give conversion error + end program gfcbug88 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/debug/pr43166.f gcc-4.4.4/gcc/testsuite/gfortran.dg/debug/pr43166.f *** gcc-4.4.3/gcc/testsuite/gfortran.dg/debug/pr43166.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/debug/pr43166.f Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,14 ---- + C PR debug/43166 + C { dg-do compile } + C { dg-options "-O" } + SUBROUTINE FOO () + INTEGER V1 + COMMON // V1 + END + SUBROUTINE BAR () + INTEGER V0,V1,V2,V3 + COMMON // V1(4),V2(85,4),V3 + DO V3=1,V1(1) + V0=V2(V3,1) + END DO + END diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/dependency_25.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/dependency_25.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/dependency_25.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/dependency_25.f90 Wed Jan 27 20:06:08 2010 *************** *** 0 **** --- 1,95 ---- + ! { dg-do run } + ! Test the fix for PR42736, in which an excessively rigorous dependency + ! checking for the assignment generated an unnecessary temporary, whose + ! rank was wrong. When accessed by the scalarizer, a segfault ensued. + ! + ! Contributed by Tobias Burnus + ! Reported by Armelius Cameron + ! + module UnitValue_Module + + implicit none + private + + public :: & + operator(*), & + assignment(=) + + type, public :: UnitValue + real :: & + Value = 1.0 + character(31) :: & + Label + end type UnitValue + + interface operator(*) + module procedure ProductReal_LV + end interface operator(*) + + interface assignment(=) + module procedure Assign_LV_Real + end interface assignment(=) + + contains + + elemental function ProductReal_LV(Multiplier, Multiplicand) result(P_R_LV) + + real, intent(in) :: & + Multiplier + type(UnitValue), intent(in) :: & + Multiplicand + type(UnitValue) :: & + P_R_LV + + P_R_LV%Value = Multiplier * Multiplicand%Value + P_R_LV%Label = Multiplicand%Label + + end function ProductReal_LV + + + elemental subroutine Assign_LV_Real(LeftHandSide, RightHandSide) + + real, intent(inout) :: & + LeftHandSide + type(UnitValue), intent(in) :: & + RightHandSide + + LeftHandSide = RightHandSide%Value + + end subroutine Assign_LV_Real + + end module UnitValue_Module + + program TestProgram + + use UnitValue_Module + + implicit none + + type :: TableForm + real, dimension(:,:), allocatable :: & + RealData + end type TableForm + + type(UnitValue) :: & + CENTIMETER + + type(TableForm), pointer :: & + Table + + allocate(Table) + allocate(Table%RealData(10,5)) + + CENTIMETER%value = 42 + Table%RealData = 1 + Table%RealData(:,1) = Table%RealData(:,1) * CENTIMETER + Table%RealData(:,2) = Table%RealData(:,2) * CENTIMETER + Table%RealData(:,3) = Table%RealData(:,3) * CENTIMETER + Table%RealData(:,5) = Table%RealData(:,5) * CENTIMETER + + ! print *, Table%RealData + if (any (abs(Table%RealData(:,4) - 1) > epsilon(1.0))) call abort () + if (any (abs(Table%RealData(:,[1,2,3,5]) - 42) > epsilon(1.0))) call abort () + end program TestProgram + + ! { dg-final { cleanup-modules "UnitValue_Module" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/direct_io_12.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/direct_io_12.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/direct_io_12.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/direct_io_12.f90 Mon Mar 29 06:18:16 2010 *************** *** 0 **** --- 1,33 ---- + ! { dg-do run } + ! + ! PR fortran/43551 + ! + ! Writes a 672000 byte file with buffering. The writing failed because + ! of a missing lseek. + + implicit none + integer, parameter :: size = 2800 ! << needs to be large enough + real(8) :: vec1(size,30), dummy(size) + integer i + + CALL RANDOM_NUMBER(vec1) + + open(99, file='test.dat', form='unformatted', access='direct', recl=size*8) + do i = 1, 10 + write(99,rec=i) vec1(:,i) + write(99,rec=i+10) vec1(:,i+10) + write(99,rec=i+20) vec1(:,i+20) ! << rec = 30 was written to rec = 21 + end do + + do i = 1, 10 + read(99,rec=i) dummy + if (any (dummy /= vec1(:,i))) call abort() + read(99,rec=i+10) dummy + if (any (dummy /= vec1(:,i+10))) call abort() + read(99,rec=i+20) dummy + if (any (dummy /= vec1(:,i+20))) call abort() ! << aborted here for rec = 21 + end do + + close(99, status='delete') + end + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/fmt_cache_2.f gcc-4.4.4/gcc/testsuite/gfortran.dg/fmt_cache_2.f *** gcc-4.4.3/gcc/testsuite/gfortran.dg/fmt_cache_2.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/fmt_cache_2.f Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,36 ---- + ! { dg-do run } + ! PR42742 Handle very large format strings correctly + ! Test derived from example developed by Manfred Schwarb. + character(12) bufarr(74) + character(74*13+30) fmtstr,fmtstr2 + character(1) delim + integer i,j,dat(5),pindx, loopcounter + character(983) big_string ! any less and this test fails. + + do i=1,74 + write(bufarr(i),'(i12)') i + enddo + + delim=" " + dat(1)=2009 + dat(2)=10 + dat(3)=31 + dat(4)=3 + dat(5)=0 + fmtstr="(i2,i6,4(a1,i2.2)" + open(10, status="scratch") + do j=1,74 + fmtstr=fmtstr(1:len_trim(fmtstr))//",a1,a12" + fmtstr2=fmtstr(1:len_trim(fmtstr))//")" + c write(0,*) "interation ",j,": ",len_trim(fmtstr2) + do i=1,10 + write(10,fmtstr2) + & i,dat(1),"-",dat(2),"-",dat(3), + & delim,dat(4),":",dat(5), + & (delim,bufarr(pindx),pindx=1,j) + enddo + loopcounter = j + enddo + close(10) + if (loopcounter /= 74) call abort + end diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/ftell_3.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/ftell_3.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/ftell_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/ftell_3.f90 Thu Apr 1 20:59:15 2010 *************** *** 0 **** --- 1,28 ---- + ! { dg-do run } + ! PR43605 FTELL intrinsic returns incorrect position + ! Contributed by Janne Blomqvist, Manfred Schwarb + ! and Dominique d'Humieres. + program ftell_3 + integer :: i + character(len=99) :: buffer + open(10, form='formatted', status='scratch', position='rewind') + write(10, '(a)') '123456' + write(10, '(a)') '789' + write(10, '(a)') 'CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC' + write(10, '(a)') 'DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD' + rewind(10) + read(10, '(a)') buffer + call ftell(10, i) + if(i /= 7) then + call abort() + end if + read(10,'(a)') buffer + if (trim(buffer) /= "789") then + call abort() + end if + call ftell(10,i) + if (i /= 11) then + call abort() + end if + close(10) + end program ftell_3 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/func_result_5.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/func_result_5.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/func_result_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/func_result_5.f90 Tue Feb 2 14:27:24 2010 *************** *** 0 **** --- 1,14 ---- + ! { dg-do compile } + ! + ! PR fortran/42650 + ! + ! Result type was not working + ! + + type(t) function func2() result(res) + type t + sequence + integer :: i = 5 + end type t + res%i = 2 + end function func2 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/generic_21.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/generic_21.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/generic_21.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/generic_21.f90 Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,33 ---- + ! { dg-do compile } + ! + ! PR fortran/42858 + ! + ! Contributed by Harald Anlauf + ! + module gfcbug102 + implicit none + type t_vector_segm + real ,pointer :: x(:) => NULL() + end type t_vector_segm + + type t_vector + integer :: n_s = 0 + type (t_vector_segm) ,pointer :: s (:) => NULL() + end type t_vector + + interface sqrt + module procedure sqrt_vector + end interface sqrt + + contains + function sqrt_vector (x) result (y) + type (t_vector) :: y + type (t_vector) ,intent(in) :: x + integer :: i + do i = 1, y% n_s + y% s(i)% x = sqrt (x% s(i)% x) + end do + end function sqrt_vector + end module gfcbug102 + + ! { dg-final { cleanup-modules "gfcbug102" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/gomp/pr43337.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/gomp/pr43337.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/gomp/pr43337.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/gomp/pr43337.f90 Tue Apr 20 08:37:12 2010 *************** *** 0 **** --- 1,30 ---- + ! PR middle-end/43337 + ! { dg-do compile } + ! { dg-options "-fopenmp -O2 -g" } + + subroutine pr43337 + integer :: a, b(10) + call foo (b) + call bar (b) + contains + subroutine foo (b) + integer :: b(10) + !$omp parallel if (.false.) + !$omp task if (.false.) shared(b) + do a = 1, 10 + b(a) = 1 + end do + !$omp end task + !$omp end parallel + end subroutine foo + subroutine bar (b) + integer :: b(10) + !$omp parallel if (.false.) + !$omp parallel if (.false.) + do a = 1, 10 + b(a) = 1 + end do + !$omp end parallel + !$omp end parallel + end subroutine bar + end subroutine pr43337 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/gomp/pr43836.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/gomp/pr43836.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/gomp/pr43836.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/gomp/pr43836.f90 Wed Apr 21 21:26:11 2010 *************** *** 0 **** --- 1,10 ---- + ! PR fortran/43836 + ! { dg-do compile } + ! { dg-options "-fopenmp -fexceptions -O2" } + subroutine foo + !$omp single + !$omp parallel + call bar + !$omp end parallel + !$omp end single + end subroutine foo diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 Thu Nov 3 20:57:03 2005 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/gomp/sharing-2.f90 Tue Apr 20 08:41:02 2010 *************** *** 28,37 **** end do !$omp end single !$omp end parallel ! !$omp parallel default (none) shared (a) ! i = 1 ! j = 1 ! k = 1 !$omp parallel default (none) shared (a) i = 1 j = 1 --- 28,37 ---- end do !$omp end single !$omp end parallel ! !$omp parallel default (none) shared (a) ! { dg-error "enclosing parallel" } ! i = 1 ! { dg-error "not specified in" } ! j = 1 ! { dg-error "not specified in" } ! k = 1 ! { dg-error "not specified in" } !$omp parallel default (none) shared (a) i = 1 j = 1 *************** *** 68,75 **** a(i, 1) = i + 1 end do !$omp end parallel ! !$omp parallel default (none) shared (a) ! i = 1 !$omp parallel default (none) shared (a, i) i = 2 !$omp parallel default (none) shared (a) --- 68,75 ---- a(i, 1) = i + 1 end do !$omp end parallel ! !$omp parallel default (none) shared (a) ! { dg-error "enclosing parallel" } ! i = 1 ! { dg-error "not specified in" } !$omp parallel default (none) shared (a, i) i = 2 !$omp parallel default (none) shared (a) diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/inquire_size.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/inquire_size.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/inquire_size.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/inquire_size.f90 Wed Mar 31 02:05:56 2010 *************** *** 0 **** --- 1,28 ---- + ! { dg-do run } + ! PR43409 I/O: INQUIRE for SIZE does not work. + integer :: i + character(30) :: aname = "noname" + logical :: is_named + + open(25, file="testfile", status="replace", access="stream", form="unformatted") + do i=1,100 + write(25) i, "abcdefghijklmnopqrstuvwxyz" + enddo + flush(25) + + inquire(unit=25, named=is_named, name=aname, size=i) + if (.not.is_named) call abort + if (aname /= "testfile") call abort + if (i /= 3000) call abort + + inquire(file="testfile", size=i) + if (.not.is_named) call abort + if (aname /= "testfile") call abort + if (i /= 3000) call abort + + close(25, status="delete") + inquire(file="testfile", size=i) + if (i /= -1) call abort + end + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/interface_31.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/interface_31.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/interface_31.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/interface_31.f90 Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,41 ---- + ! { dg-do compile } + ! PR42684 (42680) Ice with Interface. + MODULE mod1 + IMPLICIT NONE + TYPE ta + INTEGER i + END TYPE ta + INTERFACE OPERATOR(+) + MODULE PROCEDURE add_a + END INTERFACE OPERATOR(+) + CONTAINS + FUNCTION add_a(lhs, rhs) RESULT(r) + TYPE(ta), INTENT(IN) :: lhs + TYPE(ta), INTENT(IN) :: rhs + TYPE(ta) :: r + !**** + r%i = lhs%i + rhs%i + END FUNCTION add_a + END MODULE mod1 + + MODULE mod2 + IMPLICIT NONE + TYPE tb + INTEGER j + END TYPE tb + INTERFACE OPERATOR(+) + MODULE PROCEDURE add_b + END INTERFACE OPERATOR(+) + CONTAINS + SUBROUTINE other_proc() + USE mod1 ! Causes ICE + END SUBROUTINE other_proc + FUNCTION add_b(lhs, rhs) RESULT(r) + TYPE(tb), INTENT(IN) :: lhs + TYPE(tb), INTENT(IN) :: rhs + TYPE(tb) :: r + !**** + r%j = lhs%j + rhs%j + END FUNCTION add_b + END MODULE mod2 + ! { dg-final { cleanup-modules "mod1 mod2" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/interface_assignment_5.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/interface_assignment_5.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/interface_assignment_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/interface_assignment_5.f90 Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,49 ---- + ! { dg-do compile } + ! + ! PR 42677: [4.5 Regression] Bogus Error: Ambiguous interfaces '...' in intrinsic assignment operator + ! + ! Contributed by Harald Anlauf + + module mod1 + implicit none + type t_m + integer :: i = 0 + end type t_m + !------------------------------------------------------------------------------ + interface assignment (=) + module procedure assign_m + end interface + !------------------------------------------------------------------------------ + contains + subroutine assign_m (y, x) + type(t_m) ,intent(inout) :: y + type(t_m) ,intent(in) :: x + end subroutine assign_m + end module mod1 + !============================================================================== + module mod2 + use mod1, only: t_m, assignment(=) + implicit none + type t_atm + integer :: k + end type t_atm + !------------------------------------------------------------------------------ + interface assignment(=) + module procedure assign_to_atm + end interface + !------------------------------------------------------------------------------ + interface + pure subroutine delete_m (x) + use mod1 + type(t_m) ,intent(in) :: x + end subroutine delete_m + end interface + !------------------------------------------------------------------------------ + contains + subroutine assign_to_atm (atm, r) + type(t_atm) ,intent(inout) :: atm + integer ,intent(in) :: r + end subroutine assign_to_atm + end module mod2 + + ! { dg-final { cleanup-modules "mod1 mod2" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/internal_pack_10.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/internal_pack_10.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/internal_pack_10.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/internal_pack_10.f90 Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,41 ---- + ! { dg-do run } + ! Test the fix for PR43180, in which patch which reduced the use of + ! internal_pack/unpack messed up the passing of ru(1)%c as the actual + ! argument at line 23 in this testcase. + ! + ! Contributed by Harald Anlauf + ! further reduced by Tobias Burnus + ! + module mo_obs_rules + type t_set + integer :: use = 42 + end type t_set + type t_rules + character(len=40) :: comment + type(t_set) :: c (1) + end type t_rules + type (t_rules), save :: ru (1) + contains + subroutine get_rule (c) + type(t_set) :: c (:) + ru(1)%c(:)%use = 99 + if (any (c(:)%use .ne. 42)) call abort + call set_set_v (ru(1)%c, c) + if (any (c(:)%use .ne. 99)) call abort + contains + subroutine set_set_v (src, dst) + type(t_set), intent(in) :: src(1) + type(t_set), intent(inout) :: dst(1) + if (any (src%use .ne. 99)) call abort + if (any (dst%use .ne. 42)) call abort + dst = src + end subroutine set_set_v + end subroutine get_rule + end module mo_obs_rules + + program test + use mo_obs_rules + type(t_set) :: c (1) + call get_rule (c) + end program test + ! { dg-final { cleanup-modules "mo_obs_rules" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/internal_pack_8.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/internal_pack_8.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/internal_pack_8.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/internal_pack_8.f90 Tue Feb 23 17:02:26 2010 *************** *** 0 **** --- 1,33 ---- + ! { dg-do run } + ! + ! Test the fix for PR43111, in which necessary calls to + ! internal PACK/UNPACK were not being generated because + ! of an over agressive fix to PR41113/7. + ! + ! Contributed by Joost VandeVondele + ! + SUBROUTINE S2(I) + INTEGER :: I(4) + !write(6,*) I + IF (ANY(I.NE.(/3,5,7,9/))) CALL ABORT() + END SUBROUTINE S2 + + MODULE M1 + TYPE T1 + INTEGER, POINTER, DIMENSION(:) :: data + END TYPE T1 + CONTAINS + SUBROUTINE S1() + TYPE(T1) :: d + INTEGER, TARGET, DIMENSION(10) :: scratch=(/(i,i=1,10)/) + INTEGER :: i=2 + d%data=>scratch(1:9:2) + ! write(6,*) d%data(i:) + CALL S2(d%data(i:)) + END SUBROUTINE S1 + END MODULE M1 + + USE M1 + CALL S1 + END + ! { dg-final { cleanup-modules "M1" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/module_write_1.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/module_write_1.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/module_write_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/module_write_1.f90 Tue Feb 16 10:50:56 2010 *************** *** 0 **** --- 1,59 ---- + ! { dg-do compile } + ! + ! PR fortran/41869 + ! + ! Was ICEing while module write of symbol 'vs_str' in m_dom_dom + ! because of "len" being private in fox_m_fsys_format. + ! + module fox_m_fsys_array_str + contains + pure function str_vs(vs) result(s) + character, dimension(:), intent(in) :: vs + character(len=size(vs)) :: s + s = transfer(vs, s) + end function str_vs + pure function vs_str(s) result(vs) + character(len=*), intent(in) :: s + character, dimension(len(s)) :: vs + vs = transfer(s, vs) + end function vs_str + end module fox_m_fsys_array_str + + module fox_m_fsys_format + private + interface str + module procedure str_logical_array + end interface str + interface len + module procedure str_logical_array_len + end interface + public :: str + contains + pure function str_logical_array_len(la) result(n) + logical, dimension(:), intent(in) :: la + end function str_logical_array_len + pure function str_logical_array(la) result(s) + logical, dimension(:), intent(in) :: la + character(len=len(la)) :: s + end function str_logical_array + pure function checkFmt(fmt) result(good) + character(len=*), intent(in) :: fmt + logical :: good + good = len(fmt) > 0 + end function checkFmt + end module fox_m_fsys_format + + module m_dom_dom + use fox_m_fsys_array_str, only: str_vs, vs_str + end module m_dom_dom + + module FoX_dom + use fox_m_fsys_format + use m_dom_dom + end module FoX_dom + + use FoX_dom + implicit none + print *, vs_str("ABC") + end + ! { dg-final { cleanup-modules "fox_m_fsys_array_str fox_m_fsys_format m_dom_dom fox_dom" } } diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_27.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_27.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_27.f90 Wed Mar 5 00:59:34 2008 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_27.f90 Thu Mar 18 03:55:52 2010 *************** *** 1,4 **** ! ! { dg-do run { target fd_truncate } } ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF. ! Patch derived from PR, submitted by Jerry DeLisle program gfcbug61 --- 1,4 ---- ! ! { dg-do run } ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF. ! Patch derived from PR, submitted by Jerry DeLisle program gfcbug61 *************** contains *** 41,54 **** character(len=*), intent(in) :: name character(len=255) :: line ! integer :: ios, idx logical :: first first = .true. status = 0 ios = 0 line = "" ! do read (unit,'(a)',iostat=ios) line if (first) then first = .false. --- 41,54 ---- character(len=*), intent(in) :: name character(len=255) :: line ! integer :: ios, idx, k logical :: first first = .true. status = 0 ios = 0 line = "" ! do k=1,10 read (unit,'(a)',iostat=ios) line if (first) then first = .false. *************** contains *** 74,80 **** subroutine read_report (unit, status) integer :: unit, status ! integer :: iuse, ios !------------------ ! Namelist 'REPORT' !------------------ --- 74,80 ---- subroutine read_report (unit, status) integer :: unit, status ! integer :: iuse, ios, k !------------------ ! Namelist 'REPORT' !------------------ *************** contains *** 85,91 **** ! Loop to read namelist multiple times !------------------------------------- iuse = 0 ! do !---------------------------------------- ! Preset namelist variables with defaults !---------------------------------------- --- 85,91 ---- ! Loop to read namelist multiple times !------------------------------------- iuse = 0 ! do k=1,5 !---------------------------------------- ! Preset namelist variables with defaults !---------------------------------------- *************** contains *** 103,106 **** status = ios end subroutine read_report ! end program gfcbug61 \ No newline at end of file --- 103,106 ---- status = ios end subroutine read_report ! end program gfcbug61 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_28.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_28.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_28.f90 Wed Mar 5 00:59:34 2008 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_28.f90 Thu Mar 18 03:55:52 2010 *************** *** 1,4 **** ! ! { dg-do run { target fd_truncate } } ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF. ! Patch derived from PR, submitted by Jerry DeLisle program gfcbug61 --- 1,4 ---- ! ! { dg-do run } ! PR31052 Bad IOSTAT values when readings NAMELISTs past EOF. ! Patch derived from PR, submitted by Jerry DeLisle program gfcbug61 *************** contains *** 27,38 **** character(len=*), intent(in) :: name character(len=255) :: line ! integer :: ios, idx logical :: first first = .true. status = 0 ! do line = "" read (unit,'(a)',iostat=ios) line if (ios < 0) then --- 27,38 ---- character(len=*), intent(in) :: name character(len=255) :: line ! integer :: ios, idx, k logical :: first first = .true. status = 0 ! do k=1,25 line = "" read (unit,'(a)',iostat=ios) line if (ios < 0) then *************** contains *** 51,62 **** return end if end do end subroutine position_nml subroutine read_report (unit, status) integer :: unit, status ! integer :: iuse, ios !------------------ ! Namelist 'REPORT' !------------------ --- 51,63 ---- return end if end do + if (k.gt.10) call abort end subroutine position_nml subroutine read_report (unit, status) integer :: unit, status ! integer :: iuse, ios, k !------------------ ! Namelist 'REPORT' !------------------ *************** contains *** 66,72 **** ! Loop to read namelist multiple times !------------------------------------- iuse = 0 ! do !---------------------------------------- ! Preset namelist variables with defaults !---------------------------------------- --- 67,73 ---- ! Loop to read namelist multiple times !------------------------------------- iuse = 0 ! do k=1,25 !---------------------------------------- ! Preset namelist variables with defaults !---------------------------------------- *************** contains *** 84,89 **** --- 85,91 ---- if (ios /= 0) exit iuse = iuse + 1 end do + if (k.gt.10) call abort status = ios end subroutine read_report diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_59.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_59.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_59.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_59.f90 Fri Feb 5 04:50:53 2010 *************** *** 0 **** --- 1,26 ---- + ! { dg-do run } + ! PR41192 NAMELIST input with just a comment ("&NAME ! comment \") error + program cmdline + ! comment by itself causes error in gfortran + call process(' ') + call process('i=10 , j=20 k=30 ! change all three values') + call process(' ') + call process('! change no values')! before patch this failed. + end program cmdline + + subroutine process(string) + implicit none + character(len=*) :: string + character(len=132) :: lines(3) + character(len=255) :: message + integer :: i=1,j=2,k=3 + integer ios + namelist /cmd/ i,j,k + save cmd + lines(1)='&cmd' + lines(2)=string + lines(3)='/' + + read(lines,nml=cmd,iostat=ios,iomsg=message) + if (ios.ne.0) call abort + end subroutine process diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_60.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_60.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_60.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_60.f90 Fri Feb 5 04:50:53 2010 *************** *** 0 **** --- 1,27 ---- + ! { dg-do run } + ! PR42901 Reading array of structures from namelist + ! Test case derived from the reporters test case. + program test_nml + type field_descr + integer number + end type + type fsetup + type (field_descr), dimension(3) :: vel ! 3 velocity components + end type + type (fsetup) field_setup + namelist /nl_setup/ field_setup + field_setup%vel%number = 0 + ! write(*,nml=nl_setup) + open(10, status="scratch") + write(10,'(a)') "&nl_setup" + write(10,'(a)') " field_setup%vel(1)%number= 3," + write(10,'(a)') " field_setup%vel(2)%number= 9," + write(10,'(a)') " field_setup%vel(3)%number= 27," + write(10,'(a)') "/" + rewind(10) + read(10,nml=nl_setup) + if (field_setup%vel(1)%number .ne. 3) call abort + if (field_setup%vel(2)%number .ne. 9) call abort + if (field_setup%vel(3)%number .ne. 27) call abort + ! write(*,nml=nl_setup) + end program test_nml diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_61.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_61.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/namelist_61.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/namelist_61.f90 Thu Mar 11 19:48:11 2010 *************** *** 0 **** --- 1,35 ---- + ! { dg-do run } + ! + ! PR fortran/43228 + ! + integer :: a(3,3) + character(len=100) :: str + namelist /nml/a + + a = -1 + str = '&nml a(1,:) = 1 2 3 /' + read(str, nml=nml) + if (any (a(1,:) /= [1, 2, 3])) call abort () + if (any (a([2,3],:) /= -1)) call abort () + + a = -1 + str = '&nml a(1,1) = 1 2 3 4 /' + read(str, nml=nml) + if (any (a(:,1) /= [1, 2, 3])) call abort () + if (any (a(:,2) /= [4, -1, -1])) call abort () + if (any (a(:,3) /= -1)) call abort () + + str = '&nml a(1,:) = 1 2 3 , & + & a(2,:) = 4,5,6 & + & a(3,:) = 7 8 9/' + read(str, nml=nml) + if (any (a(1,:) /= [1, 2, 3])) call abort () + if (any (a(2,:) /= [4, 5, 6])) call abort () + if (any (a(3,:) /= [7, 8, 9])) call abort () + + !print *, a(:,1) + !print *, a(:,2) + !print *, a(:,3) + end + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/parameter_array_ref_2.f90 Sat Jan 30 21:12:59 2010 *************** *** 0 **** --- 1,39 ---- + ! { dg-do compile } + ! Test the fix for the problems in PR41044 + ! + ! Contributed by + ! Reduced by Joos VandeVondele + ! + Subroutine PS_INIT (bkgd, punit, pform, psize, rot90, bbox, clip, eps, & + caller) + type psfd ! paper size and frame defaults + character(3) :: n + real :: p(2) + real :: f(4) + end type psfd + character(4) :: fn, orich, pfmt + type(psfd), parameter :: pfd(0:11)=(/ & + psfd(' ',(/ 0.0, 0.0/),(/200.,120.,800.,560./)), & ! A0_L + psfd('A0 ',(/ 840.9,1189.2/),(/140., 84.,560.,400./)), & ! A0_P + psfd('A1 ',(/ 594.6, 840.9/),(/100., 60.,400.,280./)), & ! A1_P + psfd('A2 ',(/ 420.4, 594.6/),(/ 70., 42.,280.,200./)), & ! A2_P + psfd('A3 ',(/ 297.3, 420.4/),(/ 50., 30.,200.,140./)), & ! A3_P + psfd('A4 ',(/ 210.2, 297.3/),(/ 35., 21.,140.,100./)), & ! A4_P + psfd('A5 ',(/ 148.7, 210.2/),(/ 25., 15.,100., 70./)), & ! A5_P + psfd('A6 ',(/ 105.1, 148.7/),(/ 18., 11., 70., 50./)), & ! A6_P + psfd(' ',(/ 0.0, 0.0/),(/ 50., 30.,200.,140./)), & ! Letter_L + psfd('LET',(/ 215.9, 279.4/),(/ 35., 21.,140.,100./)), & ! Letter_P + psfd(' ',(/ 0.0, 0.0/),(/ 50., 30.,200.,140./)), & ! Legal_L + psfd('LEG',(/ 215.9, 355.6/),(/ 35., 21.,140.,100./))/) ! Legal_P + if (len_trim(pfmt) > 0) then ! set paper format + idx=sum(maxloc(index(pfd%n,pfmt(1:3))))-1 + end if + end subroutine PS_INIT + + ! This, additional problem, was posted as comment #8 by Tobias Burnus + type t + integer :: i + end type t + type(t), parameter :: a(1) = t(4) ! [t(4)] worked OK + real(a(1)%i) :: b + end diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/pr42294.f gcc-4.4.4/gcc/testsuite/gfortran.dg/pr42294.f *** gcc-4.4.3/gcc/testsuite/gfortran.dg/pr42294.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/pr42294.f Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,41 ---- + C PR rtl-optimization/42294 + C { dg-do compile { target powerpc*-*-* ia64-*-* x86_64-*-* } } + C { dg-options "-O2 -fselective-scheduling2 -fsel-sched-pipelining -funroll-all-loops" } + + SUBROUTINE ORIEN(IW,NATOT,NTOTORB,NATORB,P,T) + IMPLICIT DOUBLE PRECISION(A-H,O-Z) + DIMENSION NATORB(NATOT),P(NTOTORB*(NTOTORB+1)/2) + DIMENSION T(NTOTORB,NTOTORB) + DO 9000 IATOM=1,NATOT + ILAST = NTOTORB + IF (IATOM.NE.NATOT) ILAST=NATORB(IATOM+1)-1 + DO 8000 IAOI=NATORB(IATOM),ILAST + DO 7000 IAOJ = IAOI+1,ILAST + R2 = 0.0D+00 + R3 = 0.0D+00 + DO 6000 INOTA=1,NATOT + DO 5000 IK=NATORB(INOTA),NTOTORB + IMAI=MAX(IK,IAOI) + IMII=MIN(IK,IAOI) + IMAJ=MAX(IK,IAOJ) + IMIJ=MIN(IK,IAOJ) + IKI=(IMAI*(IMAI-1))/2 + IMII + IKJ=(IMAJ*(IMAJ-1))/2 + IMIJ + PIKI=P(IKI) + PIKJ=P(IKJ) + R2 = R2 + (PIKI**4)-6*(PIKI*PIKI*PIKJ*PIKJ)+(PIKJ) + 5000 CONTINUE + 6000 CONTINUE + R2 = (R2/4.0D+00) + Q = SQRT(R2*R2 + R3*R3) + IF (Q.LT.1.0D-08) GO TO 7000 + A = COS(THETA) + B = -SIN(THETA) + CALL ROT1INT(NTOTORB,IAOI,IAOJ,A,B,P) + 7000 CONTINUE + 8000 CONTINUE + 9000 CONTINUE + RETURN + END + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/pr43229.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/pr43229.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/pr43229.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/pr43229.f90 Sat Mar 13 16:58:19 2010 *************** *** 0 **** --- 1,10 ---- + ! PR debug/43229 + ! { dg-do compile } + ! { dg-options "-g -O3 -ffast-math" } + ! { dg-options "-g -O3 -ffast-math -msse3" { target { i?86-*-* x86_64-*-* } } } + + function foo (c, d) + real(8) :: c(6), d(6), foo + x = sum (c * d) + foo = exp (-x) + end function foo diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/pr43475.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/pr43475.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/pr43475.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/pr43475.f90 Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,14 ---- + ! PR middle-end/43475 + ! { dg-do compile } + ! { dg-options "-O2" } + subroutine ss(w) + implicit none + integer :: w(:) + integer :: b,c,d + b = w(8) + c = 5 + d = 3 + call s1(c) + call s2(b+c) + call s3(w(b)) + end subroutine ss diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_empty_file.f gcc-4.4.4/gcc/testsuite/gfortran.dg/read_empty_file.f *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_empty_file.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_empty_file.f Thu Mar 18 03:55:52 2010 *************** *** 0 **** --- 1,7 ---- + ! { dg-do run } + ! PR43320 Missing EOF on read from empty file. + open(8,status='scratch',form='formatted') ! Create empty file + read(8,'(a80)', end=123) ! Reading from an empty file should be an EOF + call abort + 123 continue + end diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_6.f gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_6.f *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_6.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_6.f Fri Mar 12 14:36:16 2010 *************** *** 0 **** --- 1,7 ---- + ! { dg-do run } + ! PR43320 Missing EOF on read from empty file. + open(8,status='scratch',form='formatted') ! Create empty file + read(8,'(a80)', end=123) ! Reading from an empty file should be an EOF + call abort + 123 continue + end diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_7.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_7.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_7.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_7.f90 Fri Mar 26 04:58:45 2010 *************** *** 0 **** --- 1,20 ---- + ! { dg-do run } + ! PR43517 Spurious EOF condition when namelist read follows formatted read + ! Test case from the problem reporter - Michael Richmond + program main + namelist /name/ j + open (10,status='scratch',form='formatted') + write(10,'(a)') "999999" + write(10,'(a)') " $name" + write(10,'(a)') " j=73," + write(10,'(a)') " /" + rewind(10) + i = 54321 + idum = 6789 + read (10,'(2i5,4x)') i, idum ! Trailing 4x was setting EOF condition + if (i /= 99999 .and. idum /= 9) call abort + j = 12345 + read (10,name) ! EOF condition tripped here. + if (j /= 73) call abort + end program main + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_8.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_8.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_8.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_8.f90 Tue Mar 30 03:56:08 2010 *************** *** 0 **** --- 1,26 ---- + ! { dg-do run } + ! PR43265: See comment #26 in the PR. Before patch, + ! the test case would fail to read the last line of the file. + ! Thanks to Jean-Baptiste Faure for providing the initial test case. + program test + character (len=6) :: line + integer :: n, k=0 + open(unit=25,file="test.dat",status="replace", & + & form="unformatted", access="stream") + write(25) "Line 1" // char(10) + write(25) "Line 2" // char(10) + write(25) "Line 3" // char(10) + write(25) "Line 4" // char(10) + write(25) "Line 5" ! No EOR marker on the last line. + close(25, status="keep") + open(25, file="test.dat", status="old") + do n=1,10 + read(25,'(a)',end=100,err=101) line + k = k+1 + enddo + call abort + 100 if (k /= 5) call abort + stop + 101 call abort + end program test + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_all.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_all.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_eof_all.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_eof_all.f90 Thu Mar 18 03:55:52 2010 *************** *** 0 **** --- 1,71 ---- + ! { dg-do run } + ! PR43265 Followup patch for miscellaneous EOF conditions. + ! Eaxamples from Tobius Burnus + use iso_fortran_env + character(len=2) :: str, str2(2) + integer :: a, b, c, ios + str = '' + str2 = '' + + open(99,file='test.dat',access='stream',form='unformatted', status='replace') + write(99) ' ' + close(99) + + open(99,file='test.dat') + read(99, '(T7,i2)') i + close(99, status="delete") + if (i /= 0) call abort + + read(str(1:0), '(T7,i1)') i + if (i /= 0) call abort + + read(str,'(i2,/,i2)',end=111) a, b + call abort !stop 'ERROR: Expected EOF error (1)' + 111 continue + + read(str2,'(i2,/,i2)',end=112) a, b + + read(str2,'(i2,/,i2,/,i2)',end=113) a, b, c + call abort !stop 'ERROR: Expected EOF error (2)' + + 112 call abort !stop 'ERROR: Unexpected EOF (3)' + + 113 continue + read(str,'(i2,/,i2)',end=121,pad='no') a, b + call abort !stop 'ERROR: Expected EOF error (1)' + 121 continue + + read(str2(:),'(i2,/,i2)', end=122, pad='no') a, b + goto 125 + 122 call abort !stop 'ERROR: Expected no EOF error (2)' + 125 continue + + read(str2(:),'(i2,/,i2,/,i2)',end=123,pad='no') a, b, c + call abort !stop 'ERROR: Expected EOF error (3)' + 123 continue + + read(str(2:1),'(i2,/,i2)',end=131, pad='no') a, b + call abort !stop 'ERROR: Expected EOF error (1)' + 131 continue + + read(str2(:)(2:1),'(i2,/,i2)',end=132, pad='no') a, b + call abort !stop 'ERROR: Expected EOF error (2)' + 132 continue + + read(str2(:)(2:1),'(i2,/,i2,/,i2)',end=133,pad='no') a, b, c + call abort !stop 'ERROR: Expected EOF error (3)' + 133 continue + + read(str(2:1),'(i2,/,i2)',iostat=ios, pad='no') a, b + if (ios /= IOSTAT_END) call abort !stop 'ERROR: expected iostat /= 0 (1)' + + read(str2(:)(2:1),'(i2,/,i2)',iostat=ios, pad='no') a, b + if (ios /= IOSTAT_END) call abort !stop 'ERROR: expected iostat /= 0 (2)' + + read(str2(:)(2:1),'(i2,/,i2,/,i2)',iostat=ios,pad='no') a, b, c + if (ios /= IOSTAT_END) call abort !stop 'ERROR: expected iostat /= 0 (2)' + + ! print *, "success" + end + + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_x_eof.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/read_x_eof.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_x_eof.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_x_eof.f90 Fri Mar 12 14:36:16 2010 *************** *** 0 **** --- 1,16 ---- + ! { dg-do run } + ! PR43265 No EOF condition if reading with '(x)' from an empty file + ! Test case from the reporter. + program pr43265 + implicit none + integer::i + open(23,status="scratch") + write(23,'(a)') "Line 1" + write(23,'(a)') "Line 2" + write(23,'(a)') "Line 3" + rewind(23) + do i=1,10 + read(23,'(1x)',end=12) + enddo + 12 if (i.ne.4) call abort + end diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/read_x_past.f gcc-4.4.4/gcc/testsuite/gfortran.dg/read_x_past.f *** gcc-4.4.3/gcc/testsuite/gfortran.dg/read_x_past.f Wed Mar 5 00:59:34 2008 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/read_x_past.f Fri Mar 12 14:36:16 2010 *************** *** 1,17 **** ! ! { dg-do run { target fd_truncate } } ! { dg-options -w } ! PR 26661 : Test reading X's past file end with no LF or CR. ! PR 26880 : Tests that rewind clears the gfc_unit read_bad flag. ! Contributed by Jerry DeLisle . implicit none character(3) a(4) integer i ! open (10) 10 format(A,$) ! This is not pedantic write(10,10)' abc def ghi jkl' rewind(10) read(10,20)(a(i),i=1,4) if (a(4).ne."jkl") call abort() 20 format(1x,a3,1x,a3,1x,a3,1x,a3,10x) ! close(10, status="delete") end --- 1,28 ---- ! ! { dg-do run } ! { dg-options -w } ! PR 26661 : Test reading X's past file end with no LF or CR. ! PR 26880 : Tests that rewind clears the gfc_unit read_bad flag. + ! PR 43265 : Tests that no error occurs with or without X at end. ! Contributed by Jerry DeLisle . implicit none character(3) a(4) integer i ! open (10, status="scratch") 10 format(A,$) ! This is not pedantic write(10,10)' abc def ghi jkl' rewind(10) + + a = "" read(10,20)(a(i),i=1,4) if (a(4).ne."jkl") call abort() + + rewind(10) + + a = "" + read(10,30)(a(i),i=1,4) + if (a(4).ne."jkl") call abort() + 20 format(1x,a3,1x,a3,1x,a3,1x,a3,10x) ! 30 format(1x,a3,1x,a3,1x,a3,1x,a3) ! close(10) end diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90 gcc-4.4.4/gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.dg/subref_array_pointer_4.f90 Sat Feb 6 19:44:41 2010 *************** *** 0 **** --- 1,27 ---- + ! { dg-do run } + ! Tests the fix for PR42309, in which the indexing of 'Q' + ! was off by one. + ! + ! Contributed by Gilbert Scott + ! + PROGRAM X + TYPE T + INTEGER :: I + REAL :: X + END TYPE T + TYPE(T), TARGET :: T1(0:3) + INTEGER, POINTER :: P(:) + REAL :: SOURCE(4) = [10., 20., 30., 40.] + + T1%I = [1, 2, 3, 4] + T1%X = SOURCE + P => T1%I + CALL Z(P) + IF (ANY (T1%I .NE. [999, 2, 999, 4])) CALL ABORT + IF (ANY (T1%X .NE. SOURCE)) CALL ABORT + CONTAINS + SUBROUTINE Z(Q) + INTEGER, POINTER :: Q(:) + Q(1:3:2) = 999 + END SUBROUTINE Z + END PROGRAM X diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 gcc-4.4.4/gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.fortran-torture/compile/pr42781.f90 Sun Feb 7 04:41:22 2010 *************** *** 0 **** --- 1,59 ---- + ! ICE with gfortran 4.5 at -O1: + !gfcbug98.f90: In function ‘convert_cof’: + !gfcbug98.f90:36:0: internal compiler error: in pt_solutions_same_restrict_base, + !at tree-ssa-structalias.c:5072 + module foo + implicit none + type t_time + integer :: secs = 0 + end type t_time + contains + elemental function time_cyyyymmddhh (cyyyymmddhh) result (time) + type (t_time) :: time + character(len=10),intent(in) :: cyyyymmddhh + end function time_cyyyymmddhh + + function nf90_open(path, mode, ncid) + character(len = *), intent(in) :: path + integer, intent(in) :: mode + integer, intent(out) :: ncid + integer :: nf90_open + end function nf90_open + end module foo + !============================================================================== + module gfcbug98 + use foo + implicit none + + type t_fileinfo + character(len=10) :: atime = ' ' + end type t_fileinfo + + type t_body + real :: bg(10) + end type t_body + contains + subroutine convert_cof (ifile) + character(len=*) ,intent(in) :: ifile + + character(len=5) :: version + type(t_fileinfo) :: gattr + type(t_time) :: atime + type(t_body),allocatable :: tmp_dat(:) + real ,allocatable :: BDA(:, :, :) + + call open_input + call convert_data + contains + subroutine open_input + integer :: i,j + version = '' + j = nf90_open(ifile, 1, i) + end subroutine open_input + !-------------------------------------------------------------------------- + subroutine convert_data + BDA(1,:,1) = tmp_dat(1)% bg(:) + atime = time_cyyyymmddhh (gattr% atime) + end subroutine convert_data + end subroutine convert_cof + end module gfcbug98 diff -Nrcpad gcc-4.4.3/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90 gcc-4.4.4/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90 *** gcc-4.4.3/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gfortran.fortran-torture/execute/pr43390.f90 Thu Mar 25 16:39:51 2010 *************** *** 0 **** --- 1,9 ---- + logical :: l1(4) + logical :: l2(4) + l1 = (/.TRUE.,.FALSE.,.TRUE.,.FALSE./) + l2 = (/.FALSE.,.TRUE.,.FALSE.,.TRUE./) + if (dot_product (l1, l2)) call abort () + l2 = .TRUE. + if (.not.dot_product (l1, l2)) call abort () + end + diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/rep_clause5.adb gcc-4.4.4/gcc/testsuite/gnat.dg/rep_clause5.adb *** gcc-4.4.3/gcc/testsuite/gnat.dg/rep_clause5.adb Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/rep_clause5.adb Sun Apr 18 15:56:32 2010 *************** *** 0 **** --- 1,39 ---- + -- { dg-do compile } + -- { dg-options "-O" } + + package body Rep_Clause5 is + + function To_LNumber(S : String) return LNumber_Type is + V : VString; + LV : Long_Type; + LN : LNumber_Type; + begin + LV := To_Long(V, 10); + LN := LNumber_Type(LV); + return LN; + end; + + procedure Merge_Numbered(LNodes : in out LNodes_Ptr) is + T1 : Token_Type; + LNO : LNumber_Type; + begin + for X in LNodes.all'Range loop + T1 := LNodes(X).Line(0); + if T1.Token /= LEX_LF then + declare + S : String := Element(T1.SID); + begin + begin + LNO := To_LNumber(S); + exception + when Bad_Number => + LNO := 0; + when Too_Large => + LNO := 0; + end; + end; + end if; + end loop; + end; + + end Rep_Clause5; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/rep_clause5.ads gcc-4.4.4/gcc/testsuite/gnat.dg/rep_clause5.ads *** gcc-4.4.3/gcc/testsuite/gnat.dg/rep_clause5.ads Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/rep_clause5.ads Sun Apr 18 15:56:32 2010 *************** *** 0 **** --- 1,12 ---- + with Rep_Clause5_Pkg; use Rep_Clause5_Pkg; + + package Rep_Clause5 is + + Bad_Number : exception; + Too_Large : exception; + + type LNumber_Type is range 0..99999; + + procedure Merge_Numbered(LNodes : in out LNodes_Ptr); + + end Rep_Clause5; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads gcc-4.4.4/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads *** gcc-4.4.3/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/rep_clause5_pkg.ads Sun Apr 18 15:56:32 2010 *************** *** 0 **** --- 1,383 ---- + package Rep_Clause5_Pkg is + + type ID_Type is mod 65536; + type String_ID is new ID_Type; + type LNumber_Type is range 0..99999; + subtype Long_Type is Integer; + + type Func_ID is (No_Func, FUN_SGN, FUN_EXP, FUN_LOG, FUN_LOG10); + + type Token_Kind is ( + No_Token, + LEX_BINARY, + LEX_SECTION, + LEX_003, + LEX_004, + LEX_005, + LEX_006, + LEX_007, + LEX_008, + LEX_009, + LEX_LF, + LEX_011, + LEX_012, + LEX_013, + LEX_014, + LEX_015, + LEX_016, + LEX_017, + LEX_018, + LEX_019, + LEX_020, + LEX_021, + LEX_022, + LEX_023, + LEX_024, + LEX_025, + LEX_026, + LEX_027, + LEX_028, + LEX_029, + LEX_030, + LEX_031, + LEX_032, + '!', + '"', + '#', + '$', + '%', + '&', + ''', + '(', + ')', + '*', + '+', + ',', + '-', + '.', + '/', + '0', + '1', + '2', + '3', + '4', + '5', + '6', + '7', + '8', + '9', + ':', + ';', + '<', + '=', + '>', + '?', + '@', + 'A', + 'B', + 'C', + 'D', + 'E', + 'F', + 'G', + 'H', + 'I', + 'J', + 'K', + 'L', + 'M', + 'N', + 'O', + 'P', + 'Q', + 'R', + 'S', + 'T', + 'U', + 'V', + 'W', + 'X', + 'Y', + 'Z', + '[', + '\', + ']', + '^', + '_', + '`', + 'a', + 'b', + 'c', + 'd', + 'e', + 'f', + 'g', + 'h', + 'i', + 'j', + 'k', + 'l', + 'm', + 'n', + 'o', + LEX_SFUN3, + LEX_SFUN2, + LEX_SFUN1, + LEX_SFUNN, + LEX_FUN3, + LEX_FUN2, + LEX_FUN1, + LEX_FUNN, + 'x', + 'y', + 'z', + '{', + '|', + '}', + '~', + LEX_CRTA, + LEX_ISNULL, + LEX_USING, + LEX_HANDLE, + LEX_CALLX, + LEX_COMPLEX, + LEX_FIXED, + LEX_ENV, + LEX_SPARSE, + LEX_SUBROUTINE, + LEX_CALL, + LEX_BOX, + LEX_VLINE, + LEX_HLINE, + LEX_MAXLENGTH, + LEX_DLENGTH, + LEX_INPUT, + LEX_INITIALIZE, + LEX_OUTPUT, + LEX_UNLINK, + LEX_SEEK, + LEX_EXIT, + LEX_NOT, + LEX_COMMON, + LEX_CHAIN, + LEX_DEF, + LEX_ARITY, + LEX_RESUME, + LEX_PIC_S, + LEX_BG, + LEX_FG, + LEX_PC, + LEX_CRT, + LEX_ENUM, + LEX_DECLARE, + LEX_CURSOR, + LEX_DROP, + LEX_CURRENT, + LEX_ISOLATION, + LEX_SET, + LEX_TRANSACTION, + LEX_COMMIT, + LEX_ABORT, + LEX_BEGIN, + LEX_PREVIOUS, + LEX_LAST, + LEX_FIRST, + LEX_KEY, + LEX_START, + LEX_REWRITE, + LEX_INDEX, + LEX_SECONDARY, + LEX_PRIMARY, + LEX_COLUMN, + LEX_TEMP, + LEX_TABLE, + LEX_CREATE, + LEX_HASH, + LEX_BTREE, + LEX_UPDATE, + LEX_ERROR, + LEX_ACCEPT, + LEX_AVG, + LEX_MAX, + LEX_MIN, + LEX_FIELD, + LEX_RESTORE, + LEX_END, + LEX_STEP, + LEX_NEXT, + LEX_FOR, + LEX_RETURN, + LEX_GOSUB, + LEX_RANGE, + LEX_EXPON, + LEX_XOR, + LEX_OR, + LEX_AND, + LEX_SHIFTR, + LEX_GE, + LEX_NE, + LEX_SHIFTL, + LEX_LE, + LEX_VARYING, + LEX_LENGTH, + LEX_PRINT, + LEX_IF, + LEX_GOTO, + LEX_ON, + LEX_THEN, + LEX_DELETE, + LEX_TO, + LEX_SEQUENCE, + LEX_NONUNIQUE, + LEX_UNIQUE, + LEX_FILE, + LEX_CLOSE, + LEX_OPEN, + LEX_DATABASE, + LEX_RECORD, + LEX_DATA, + LEX_WRITE, + LEX_READ, + LEX_STOP, + LEX_LET, + LEX_MOD, + LEX_LONG, + LEX_DIM, + LEX_SHORT, + LEX_REM, + LEX_SHELL, + LEX_TOKEN, + LEX_FLOAT, + LEX_SIDENT, + LEX_INLREM, + LEX_ENDLIT, + LEX_STRLIT, + LEX_IDENT, + LEX_LNUMBER, + LEX_HEX, + LEX_NUMBER, + LEX_EOF, + LEX_QUIT, + LEX_LIST, + LEX_REMOVE, + LEX_RENUMBER, + LEX_CONTINUE, + LEX_RUN, + LEX_MERGE, + LEX_ENTER, + LEX_NEW, + LEX_RESET, + LEX_SYMTAB, + LEX_CLS, + LEX_EDIT, + LEX_SAVE, + LEX_RESAVE, + LEX_LOAD, + LEX_NAME, + LEX_LISTP, + LEX_SHOW, + LEX_STACK, + LEX_STATUS, + LEX_CACHE, + LEX_INSPECT, + LEX_STOW, + LEX_PKGRUN, + LEX_POP, + LEX_CHECK, + LEX_INSERT, + LEX_INTO, + LEX_VALUES, + LEX_NULL, + LEX_WHERE, + LEX_FROM, + LEX_EXEC, + LEX_SELECT, + LEX_AS, + LEX_ALL, + LEX_BY, + LEX_CROSS, + LEX_DESC, + LEX_FULL, + LEX_GROUP, + LEX_INNER, + LEX_JOIN, + LEX_LEFT, + LEX_LIMIT, + LEX_NATURAL, + LEX_OFFSET, + LEX_ORDER, + LEX_OUTER, + LEX_RIGHT, + LEX_FETCH, + LEX_DISTINCT, + LEX_DEFAULT, + LEX_RETURNING, + LEX_LEVEL, + LEX_COMMITTED, + LEX_SERIALIZABLE, + LEX_ONLY, + LEX_HOLD, + LEX_FORWARD, + LEX_WITH, + LEX_PRIOR, + LEX_RELATIVE, + LEX_BACKWARD, + LEX_OF, + LEX_SCROLL, + LEX_NOWAIT, + LEX_HAVING, + LEX_END_TOKENS + ); + + type Aux_Kind is (No_Aux, SID_Aux, FID_Aux, LNO_Aux); + + type Token_Type(Aux : Aux_Kind := No_Aux) is + record + Token : Token_Kind := No_Token; + case Aux is + when SID_Aux => + SID : String_ID; + when FID_Aux => + FID : Func_ID; + when LNO_Aux => + LNO : LNumber_Type; + when No_Aux => + null; + end case; + end record; + + for Token_Type use + record + Aux at 0 range 0..2; + Token at 0 range 3..12; + SID at 0 range 16..31; + FID at 0 range 16..31; + LNO at 0 range 13..31; + end record; + + type Tokens_Index is range 0..999999; + type Token_Array is array(Tokens_Index range <>) of Token_Type; + type Token_Line is access all Token_Array; + + type Line_Node is + record + Line : Token_Line; + LNO : LNumber_Type := 0; + Numbered : Boolean := False; + end record; + + type Nodes_Index is range 0..999999; + type LNodes_Array is array(Nodes_Index range <>) of Line_Node; + type LNodes_Ptr is access all LNodes_Array; + + type VString is + record + Max_Length : Natural := 0; + Fixed : Boolean := False; + end record; + + function To_Long(Object : VString; Radix : Natural) return Long_Type; + + function Element (V : String_ID) return String; + + end Rep_Clause5_Pkg; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer.adb gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer.adb *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer.adb Wed Mar 28 20:11:20 2007 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer.adb Thu Jan 1 00:00:00 1970 *************** *** 1,11 **** - -- { dg-do compile } - -- { dg-options "-O" } - - package body Thin_Pointer is - - procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr) is - begin - AD.B.A := Buffer (Buffer'First)'Address; - end Set_Buffer; - - end Thin_Pointer; --- 0 ---- diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer.ads gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer.ads *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer.ads Wed Mar 28 20:11:20 2007 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer.ads Thu Jan 1 00:00:00 1970 *************** *** 1,22 **** - with System; - - package Thin_Pointer is - - type Stream is array (Integer range <>) of Character; - - type Stream_Ptr is access Stream; - for Stream_Ptr'Size use Standard'Address_Size; - - type Buf is record - A : System.Address; - end record; - - type Buf_Wrapper is record - B : Buf; - end record; - - type Buf_Ptr is access Buf_Wrapper; - - procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr); - - end Thin_Pointer; --- 0 ---- diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer1.adb gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer1.adb *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer1.adb Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer1.adb Sat Feb 27 14:30:12 2010 *************** *** 0 **** --- 1,11 ---- + -- { dg-do compile } + -- { dg-options "-O" } + + package body Thin_Pointer1 is + + procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr) is + begin + AD.B.A := Buffer (Buffer'First)'Address; + end Set_Buffer; + + end Thin_Pointer1; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer1.ads gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer1.ads *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer1.ads Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer1.ads Sat Feb 27 14:30:12 2010 *************** *** 0 **** --- 1,22 ---- + with System; + + package Thin_Pointer1 is + + type Stream is array (Integer range <>) of Character; + + type Stream_Ptr is access Stream; + for Stream_Ptr'Size use Standard'Address_Size; + + type Buf is record + A : System.Address; + end record; + + type Buf_Wrapper is record + B : Buf; + end record; + + type Buf_Ptr is access Buf_Wrapper; + + procedure Set_Buffer (AD : Buf_Ptr; Buffer : Stream_ptr); + + end Thin_Pointer1; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer2.adb gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer2.adb *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer2.adb Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer2.adb Sat Feb 27 14:30:12 2010 *************** *** 0 **** --- 1,13 ---- + -- PR ada/42253 + -- Testcase by Duncan Sands + + -- { dg-do run } + + with Thin_Pointer2_Pkg; use Thin_Pointer2_Pkg; + + procedure Thin_Pointer2 is + begin + if F /= '*' then + raise Program_Error; + end if; + end; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer2_pkg.adb Sat Feb 27 14:30:12 2010 *************** *** 0 **** --- 1,18 ---- + package body Thin_Pointer2_Pkg is + + type SB is access constant String; + + function Inner (S : SB) return Character is + begin + if S /= null and then S'Length > 0 then + return S (S'First); + end if; + return '*'; + end; + + function F return Character is + begin + return Inner (SB (S)); + end; + + end Thin_Pointer2_Pkg; diff -Nrcpad gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads *** gcc-4.4.3/gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads Thu Jan 1 00:00:00 1970 --- gcc-4.4.4/gcc/testsuite/gnat.dg/thin_pointer2_pkg.ads Sat Feb 27 14:30:12 2010 *************** *** 0 **** --- 1,9 ---- + package Thin_Pointer2_Pkg is + + type SA is access String; + for SA'Size use Standard'Address_Size; + S : SA; + + function F return Character; + + end Thin_Pointer2_Pkg; diff -Nrcpad gcc-4.4.3/gcc/testsuite/lib/gnat.exp gcc-4.4.4/gcc/testsuite/lib/gnat.exp *** gcc-4.4.3/gcc/testsuite/lib/gnat.exp Sun Apr 19 12:47:22 2009 --- gcc-4.4.4/gcc/testsuite/lib/gnat.exp Fri Mar 5 15:21:41 2010 *************** *** 1,4 **** ! # Copyright (C) 2006, 2007, 2008 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by --- 1,4 ---- ! # Copyright (C) 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by *************** proc gnat_init { args } { *** 83,89 **** global gluefile wrap_flags global gnat_initialized global GNAT_UNDER_TEST - global GNAT_UNDER_TEST_ORIG global TOOL_EXECUTABLE global gnat_libgcc_s_path global gnat_target_current --- 83,88 ---- *************** proc gnat_init { args } { *** 98,104 **** } else { set GNAT_UNDER_TEST "[local_find_gnatmake]" } - set GNAT_UNDER_TEST_ORIG "$GNAT_UNDER_TEST" } if ![info exists tmpdir] then { --- 97,102 ---- *************** proc gnat_target_compile { source dest t *** 129,150 **** global gluefile wrap_flags global srcdir global GNAT_UNDER_TEST - global GNAT_UNDER_TEST_ORIG global TOOL_OPTIONS global ld_library_path global gnat_libgcc_s_path global gnat_target_current ! # If we detect a change of target we need to recompute ! # the appropriate RTS by calling get_multilibs. if { $gnat_target_current!="[current_target_name]" } { ! set gnat_target_current "[current_target_name]" ! if [info exists TOOL_OPTIONS] { ! set gnat_rts_opt "--RTS=[get_multilibs ${TOOL_OPTIONS}]/libada" ! } else { ! set gnat_rts_opt "--RTS=[get_multilibs]/libada" ! } ! set GNAT_UNDER_TEST "$GNAT_UNDER_TEST_ORIG $gnat_rts_opt" } set ld_library_path ".:${gnat_libgcc_s_path}" --- 127,157 ---- global gluefile wrap_flags global srcdir global GNAT_UNDER_TEST global TOOL_OPTIONS global ld_library_path global gnat_libgcc_s_path global gnat_target_current ! # If we detect a change of target, we need to recompute both ! # GNAT_UNDER_TEST and the appropriate RTS. if { $gnat_target_current!="[current_target_name]" } { ! set gnat_target_current "[current_target_name]" ! if [info exists TOOL_OPTIONS] { ! set rtsdir "[get_multilibs ${TOOL_OPTIONS}]/libada" ! } else { ! set rtsdir "[get_multilibs]/libada" ! } ! if [info exists TOOL_EXECUTABLE] { ! set GNAT_UNDER_TEST "$TOOL_EXECUTABLE" ! } else { ! set GNAT_UNDER_TEST "[local_find_gnatmake]" ! } ! set GNAT_UNDER_TEST "$GNAT_UNDER_TEST --RTS=$rtsdir" ! ! # gnatlink looks for system.ads itself and has no --RTS option, so ! # specify via environment ! setenv ADA_INCLUDE_PATH "$rtsdir/adainclude" ! setenv ADA_OBJECTS_PATH "$rtsdir/adainclude" } set ld_library_path ".:${gnat_libgcc_s_path}" *************** proc local_find_gnatmake {} { *** 263,269 **** } if { $file != "" } { set root [file dirname $file] ! set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs --LINK=$root/xgcc -B$root -margs"; } else { set CC [transform gnatmake] } --- 270,282 ---- } if { $file != "" } { set root [file dirname $file] ! # Need to pass full --GCC, including multilib flags, to gnatlink, ! # otherwise gcc from PATH is invoked. ! set dest [target_info name] ! set gnatlink_gcc "--GCC=$root/xgcc -B$root [board_info $dest multilib_flags]" ! # Escape blanks to get them through DejaGnu's exec machinery. ! regsub -all {\s} "$gnatlink_gcc" {\\&} gnatlink_gcc ! set CC "$file --GCC=$root/xgcc --GNATBIND=$root/gnatbind --GNATLINK=$root/gnatlink -cargs -B$root -largs $gnatlink_gcc -margs"; } else { set CC [transform gnatmake] } diff -Nrcpad gcc-4.4.3/gcc/testsuite/lib/target-supports-dg.exp gcc-4.4.4/gcc/testsuite/lib/target-supports-dg.exp *** gcc-4.4.3/gcc/testsuite/lib/target-supports-dg.exp Fri Feb 20 15:20:38 2009 --- gcc-4.4.4/gcc/testsuite/lib/target-supports-dg.exp Thu Mar 11 17:32:39 2010 *************** proc check-flags { args } { *** 235,243 **** append compiler_flags "[board_info $dest multilib_flags] " } ! # The target list might be an effective-target keyword, so replace ! # the original list with "*-*-*", since we already know it matches. ! set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]] # Any value in this variable was left over from an earlier test. set compiler_flags "" --- 235,260 ---- append compiler_flags "[board_info $dest multilib_flags] " } ! # The next two arguments are optional. If they were not specified, ! # use the defaults. ! if { [llength $args] == 2 } { ! lappend $args [list "*"] ! } ! if { [llength $args] == 3 } { ! lappend $args [list ""] ! } ! ! # If the option strings are the defaults, or the same as the ! # defaults, there is no need to call check_conditional_xfail to ! # compare them to the actual options. ! if { [string compare [lindex $args 2] "*"] == 0 ! && [string compare [lindex $args 3] "" ] == 0 } { ! set result 1 ! } else { ! # The target list might be an effective-target keyword, so replace ! # the original list with "*-*-*", since we already know it matches. ! set result [check_conditional_xfail [lreplace $args 1 1 "*-*-*"]] ! } # Any value in this variable was left over from an earlier test. set compiler_flags "" *************** proc check-flags { args } { *** 256,269 **** # group of tests or flags specified with a previous dg-options command. proc dg-skip-if { args } { # Don't bother if we're already skipping the test. upvar dg-do-what dg-do-what if { [lindex ${dg-do-what} 1] == "N" } { return } - set args [lreplace $args 0 0] - set selector [list target [lindex $args 1]] if { [dg-process-target $selector] == "S" } { if [check-flags $args] { --- 273,290 ---- # group of tests or flags specified with a previous dg-options command. proc dg-skip-if { args } { + # Verify the number of arguments. The last two are optional. + set args [lreplace $args 0 0] + if { [llength $args] < 2 || [llength $args] > 4 } { + error "dg-skip-if 2: need 2, 3, or 4 arguments" + } + # Don't bother if we're already skipping the test. upvar dg-do-what dg-do-what if { [lindex ${dg-do-what} 1] == "N" } { return } set selector [list target [lindex $args 1]] if { [dg-process-target $selector] == "S" } { if [check-flags $args] { *************** proc dg-skip-if { args } { *** 276,306 **** # Like check_conditional_xfail, but callable from a dg test. proc dg-xfail-if { args } { # Don't change anything if we're already skipping the test. upvar dg-do-what dg-do-what if { [lindex ${dg-do-what} 1] == "N" } { return } - set args [lreplace $args 0 0] set selector [list target [lindex $args 1]] if { [dg-process-target $selector] == "S" } { global compiler_conditional_xfail_data ! set compiler_conditional_xfail_data [lreplace $args 1 1 "*-*-*"] } } # Like dg-xfail-if but for the execute step. proc dg-xfail-run-if { args } { # Don't bother if we're already skipping the test. upvar dg-do-what dg-do-what if { [lindex ${dg-do-what} 1] == "N" } { return } - set args [lreplace $args 0 0] - set selector [list target [lindex $args 1]] if { [dg-process-target $selector] == "S" } { if [check-flags $args] { --- 297,349 ---- # Like check_conditional_xfail, but callable from a dg test. proc dg-xfail-if { args } { + # Verify the number of arguments. The last three are optional. + set args [lreplace $args 0 0] + if { [llength $args] < 2 || [llength $args] > 4 } { + error "dg-xfail-if: need 2, 3, or 4 arguments" + } + # Don't change anything if we're already skipping the test. upvar dg-do-what dg-do-what if { [lindex ${dg-do-what} 1] == "N" } { return } set selector [list target [lindex $args 1]] if { [dg-process-target $selector] == "S" } { global compiler_conditional_xfail_data ! ! # The target list might be an effective-target keyword. Replace ! # the original list with "*-*-*", since we already know it matches. ! set args [lreplace $args 1 1 "*-*-*"] ! ! # Supply default values for unspecified optional arguments. ! if { [llength $args] == 2 } { ! lappend $args [list "*"] ! } ! if { [llength $args] == 3 } { ! lappend $args [list ""] ! } ! ! set compiler_conditional_xfail_data $args } } # Like dg-xfail-if but for the execute step. proc dg-xfail-run-if { args } { + # Verify the number of arguments. The last two are optional. + set args [lreplace $args 0 0] + if { [llength $args] < 2 || [llength $args] > 4 } { + error "dg-xfail-run-if: need 2, 3, or 4 arguments" + } + # Don't bother if we're already skipping the test. upvar dg-do-what dg-do-what if { [lindex ${dg-do-what} 1] == "N" } { return } set selector [list target [lindex $args 1]] if { [dg-process-target $selector] == "S" } { if [check-flags $args] { diff -Nrcpad gcc-4.4.3/gcc/testsuite/lib/target-supports.exp gcc-4.4.4/gcc/testsuite/lib/target-supports.exp *** gcc-4.4.3/gcc/testsuite/lib/target-supports.exp Tue Nov 3 17:59:43 2009 --- gcc-4.4.4/gcc/testsuite/lib/target-supports.exp Sat Mar 6 02:29:14 2010 *************** proc add_options_for_c99_runtime { flags *** 2787,2792 **** --- 2787,2814 ---- return $flags } + # Add to FLAGS the flags needed to enable functions to bind locally + # when using pic/PIC passes in the testsuite. + + proc add_options_for_bind_pic_locally { flags } { + if {[check_no_compiler_messages using_pic2 assembly { + #if __PIC__ != 2 + #error FOO + #endif + }]} { + return "$flags -fPIE" + } + if {[check_no_compiler_messages using_pic1 assembly { + #if __PIC__ != 1 + #error FOO + #endif + }]} { + return "$flags -fpie" + } + + return $flags + } + # Return 1 if the target provides a full C99 runtime. proc check_effective_target_c99_runtime { } { diff -Nrcpad gcc-4.4.3/gcc/testsuite/objc/execute/forward-1.x gcc-4.4.4/gcc/testsuite/objc/execute/forward-1.x *** gcc-4.4.3/gcc/testsuite/objc/execute/forward-1.x Fri Apr 10 17:31:22 2009 --- gcc-4.4.4/gcc/testsuite/objc/execute/forward-1.x Mon Feb 1 13:10:09 2010 *************** *** 1,8 **** load_lib target-supports.exp # XFAIL: PR libobjc/36610, for targets which pass arguments via registers - # For powerpc-darwin it fails with -fgnu-runtime, passes with -fnext-runtime, - # but that would be too ugly to handle; let it fail there. if { ([istarget x86_64-*-linux*] && [check_effective_target_lp64] ) || [istarget powerpc*-*-linux*] --- 1,6 ---- *************** if { ([istarget x86_64-*-linux*] && [che *** 15,18 **** --- 13,33 ---- set torture_execute_xfail "*-*-*" } + # For darwin and alpha-linux it fails with -fgnu-runtime, + # passes with -fnext-runtime. + + if { ([istarget x86_64-*-darwin*] && [check_effective_target_lp64] ) + || [istarget powerpc*-*-darwin*] + || [istarget alpha*-*-linux*] } { + set torture_eval_before_execute { + global compiler_conditional_xfail_data + set compiler_conditional_xfail_data { + "Target fails with -fgnu-runtime" \ + "*-*-*" \ + { "-fgnu-runtime" } \ + { "" } + } + } + } + return 0