diff -Nrcpad gcc-4.4.1/gcc/testsuite/ChangeLog gcc-4.4.2/gcc/testsuite/ChangeLog *** gcc-4.4.1/gcc/testsuite/ChangeLog Wed Jul 22 07:28:27 2009 --- gcc-4.4.2/gcc/testsuite/ChangeLog Thu Oct 15 07:39:02 2009 *************** *** 1,3 **** --- 1,712 ---- + 2009-10-15 Release Manager + + * GCC 4.4.2 released. + + 2009-10-14 Hans-Peter Nilsson + + PR target/38948 + * gcc.dg/torture/pr38948.c: New test. + + 2009-10-12 Hans-Peter Nilsson + + PR target/26515 + * gcc.dg/torture/pr26515.c: New test. + + 2009-10-12 Jakub Jelinek + + PR target/41680 + * g++.dg/torture/pr41680.C: New test. + + PR rtl-optimization/41646 + * gcc.c-torture/compile/pr41646.c: New test. + + 2009-10-07 Jason Merrill + + * g++.dg/cpp0x/variadic95.C: New. + + * g++.dg/template/scope3.C: New. + + * g++.dg/cpp0x/defaulted13.C: New. + + 2009-10-05 Tobias Burnus + + PR fortran/41479 + * gfortran.dg/intent_out_5.f90: New test. + + 2009-10-01 Tobias Burnus + + PR fortran/41515 + * gfortran.dg/parameter_array_init_5.f90: New test. + + 2009-09-30 H.J. Lu + + * gfortran.dg/proc_ptr_comp_21.f90: Removed. + + 2009-09-30 Uros Bizjak + + PR target/22093 + * gcc.target/alpha/pr22093.c: New test. + + 2009-09-28 Olivier Hainque + + * gnat.dg (tagged_alloc_free.adb): New testcase. + + 2009-09-28 H.J. Lu + + Backport from mainline: + 2009-09-26 Andreas Schwab + + PR c/41476 + * gcc.dg/cond-constqual-1.c: New test. + + 2009-09-26 Michael Matz + + PR lto/40758 + PR middle-end/41470 + * gcc.dg/pr41470.c: New test. + + 2009-09-23 Alexandre Oliva + + PR debug/41248 + * gcc.dg/pr41248.c: New. + + 2009-09-22 Alexandre Oliva + + PR debug/41295 + * gcc.dg/pr41295.c: New. + + 2009-09-20 Andrew Pinski + + PR middle-end/40642 + * g++.dg/torture/pr40642.C: New testcase. + + 2009-09-17 Michael Matz + + PR middle-end/41347 + * gfortran.dg/pr41347.f90: New test. + + 2009-09-16 Michael Matz + + PR fortran/41212 + * gfortran.dg/pr41212.f90: New test. + + 2009-09-11 Michael Matz + + PR middle-end/41275 + * g++.dg/tree-ssa/pr41275.C: New test. + + 2009-09-11 Janus Weil + + PR fortran/41242 + * gfortran.dg/proc_ptr_comp_21.f90: New. + + 2009-09-23 Dodji Seketeli + + PR debug/41065 + * gcc.dg/debug/dwarf2/global-used-types.c: New test. + + 2009-09-23 Uros Bizjak + + PR c/39779 + * gcc.c-torture/compile/pr39779.c: New test. + + 2009-09-21 Kai Tietz + + * gcc.dg/torture/calleesave-sse.c: New. + + 2009-09-19 Jerry DeLisle + + PR libgfortran/41328 + * gfortran.dg/cr_lf.f90: New test. + + 2009-09-18 Jason Merrill + + * g++.dg/cpp0x/initlist-deduce.C: New. + + 2009-09-18 Jack Howarth + + PR testsuite/41288 + * gcc.target/x86_64/abi/asm-support-darwin.s (snapshot_ret): Preserve + stack alignment. + + 2009-09-18 Janis Johnson + + PR c/41049 + * dfp/pr41049.c: New test. + + 2009-09-16 Uros Bizjak + + * gfortran.dg/default_format_denormal_2.f90: Add ieee options. + * gfortran.dg/default_format_denormal_1.f90: Ditto. Remove + alpha*-*-* target from XFAIL list. + + 2009-09-16 Eric Botcazou + + * gnat.dg/alignment9.adb: New test. + + 2009-09-16 Richard Guenther + + Backport from mainline + 2009-09-09 Richard Guenther + + PR tree-optimization/41101 + * gcc.c-torture/compile/pr41101.c: New testcase. + + 2009-09-11 Steven G. Kargl + + Backported from mainline: + 2009-05-08 Janus Weil + + PR fortran/39876 + * gfortran.dg/intrinsic_3.f90: New. + + 2009-09-10 H.J. Lu + + * gcc.dg/pr41241.c: Removed. + + 2009-09-10 H.J. Lu + + Backport from mainline: + 2009-09-10 Richard Guenther + + PR middle-end/41257 + * g++.dg/torture/pr41257-2.C: New testcase. + + 2009-09-08 Alexandre Oliva + + PR debug/41229 + PR debug/41291 + PR debug/41300 + * gfortran.dg/pr41229.f90: New. + + 2009-09-08 Alexandre Oliva + + PR debug/41232 + * gcc.dg/pr41232.c: New. + + 2009-09-07 Martin Jambor + + PR middle-end/41282 + * gcc.c-torture/compile/pr41282.c: New test. + + 2009-09-06 Jakub Jelinek + + PR bootstrap/41241 + * gcc.dg/pr41241.c: New test. + + 2009-09-06 Richard Guenther + + PR middle-end/41144 + * g++.dg/torture/pr41144.C: New testcase. + + 2009-09-06 Richard Guenther + + PR middle-end/41261 + * gcc.dg/torture/pr41261.c: New testcase. + + 2009-09-05 Richard Guenther + + PR middle-end/41181 + * gcc.c-torture/compile/pr41181.c: New testcase. + + 2009-09-05 Richard Guenther + + PR debug/41273 + * g++.dg/torture/pr41273.C: New testcase. + + 2009-09-04 Alexandre Oliva + + PR debug/41225 + * gfortran.dg/pr41225.f90: New. + + 2009-09-04 Richard Guenther + + PR middle-end/41257 + * g++.dg/torture/pr41257.C: New testcase. + + 2009-09-04 Martin Jambor + + PR tree-optimization/41112 + * gnat.dg/array8.adb: New test. + + 2009-09-08 Ozkan Sezer + + * gcc.dg/large-size-array-2.c: Fix target requirement. + * gcc.dg/large-size-array-4.c: Likewise. + * gcc.dg/c99-const-expr-2.c: Define ZERO as 0LL for _WIN64. + * gcc.dg/c90-const-expr-2.c: Likewise. + * gcc.dg/torture/pr39074.c: Use intptr_t typedef'ed as __PTRDIFF_TYPE__ + instead of long. + * gcc.dg/tree-ssa/pr33920.c: Likewise. + * gcc.dg/vect/pr33846.c: Likewise. + * gcc.dg/vect/pr33833.c: Use uintptr_t, typedef'ed as unsigned + __PTRDIFF_TYPE__, instead of unsigned long. + * gcc.dg/vect/O1-pr33854.c: Use __SIZE_TYPE__ instead of unsigned long. + + 2009-09-07 Uros Bizjak + + Backport from mainline: + 2009-08-27 Uros Bizjak + + PR rtl-optimization/40861 + * gcc.dg/pr40861.c: New test. + + 2009-09-05 Paul Thomas + + PR fortran/41258 + * gfortran.dg/typebound_proc_12.f90 : New test. + + 2009-09-03 Jakub Jelinek + + * gfortran.dg/proc_ptr_comp_18.f90: Removed. + * gfortran.dg/proc_ptr_comp_19.f90: Removed. + + 2009-09-02 Ian Lance Taylor + + * gcc.dg/20090902-1.c: New test. + + 2009-08-31 Jason Merrill + + PR c++/41127 + * g++.dg/parse/enum5.C: New. + * g++.dg/cpp0x/enum1.C: Adjust expected error. + + 2009-08-31 Gerald Pfeifer + + * gcc.dg/builtins-config.h (HAVE_C99_RUNTIME): Do not define + for FreeBSD. + + 2009-08-29 H.J. Lu + + Backport from mainline: + 2009-08-26 H.J. Lu + + PR fortran/41162 + * gfortran.dg/pr41162.f: New. + + 2009-08-26 Richard Guenther + + PR middle-end/41163 + * gcc.c-torture/compile/pr41163.c: New testcase. + + 2009-08-25 Janus Weil + + PR fortran/41139 + * gfortran.dg/proc_ptr_25.f90: New. + * gfortran.dg/proc_ptr_comp_18.f90: New. + * gfortran.dg/proc_ptr_comp_19.f90: New. + + 2009-08-20 Michael Matz + + PR fortran/41126 + * gfortran.dg/pr41126.f90: New test. + + 2009-08-20 Janus Weil + + PR fortran/41121 + * gfortran.dg/intrinsic_5.f90: New. + + 2009-08-19 Jason Merrill + + PR c++/41120 + * g++.dg/other/gc4.C: New. + + 2009-08-28 Uros Bizjak + + Backport from mainline: + 2009-08-25 Uros Bizjak + + * gcc.c-torture/compile/limits-fndefn.c: Add dg-timeout-factor. + + 2009-08-18 Uros Bizjak + + * g++.dg/cdce3.C: Add -mieee for alpha*-*-* targets. + + 2009-08-17 Uros Bizjak + + * lib/target-supports.exp + (check_effective_target_vect_cmdline_needed): Add alpha to the list + of targets that do not need command line argument to enable SIMD. + + 2008-08-25 Paul Thomas + + PR fortran/41062 + * gfortran.dg/use_only_4.f90: New test. + + 2009-08-24 Richard Guenther + + PR middle-end/41094 + * gcc.dg/torture/pr41094.c: New testcase. + * gcc.dg/torture/builtin-power-1.c: Adjust. + * gcc.dg/builtins-10.c: Likewise. + + 2009-08-23 Uros Bizjak + + PR target/40718 + * gcc.target/i386/pr40718.c: New test. + + 2009-08-21 Jakub Jelinek + + PR c++/41131 + * g++.dg/expr/unary3.C: New test. + + 2009-08-20 Thomas Koenig + + PR libfortran/40962 + * c_f_pointer_tests_4.f90: New test. + + 2009-08-19 Jakub Jelinek + + PR middle-end/41123 + * gcc.dg/pr41123.c: New test. + + 2009-08-18 H.J. Lu + + * gfortran.dg/pr41011.f: Removed. + + 2009-08-18 Jakub Jelinek + + PR target/40971 + * gcc.dg/pr40971.c: New test. + + 2009-08-17 Dodji Seketeli + + * gcc.dg/debug/dwarf2/inline2.c: Add -dA to compile options. + + 2009-08-16 H.J. Lu + + Backport from mainline: + 2009-08-14 Janus Weil + + PR fortran/41070 + * gfortran.dg/structure_constructor_10.f90: New. + + 2009-08-14 Paolo Bonzini + + PR target/40934 + * gcc.target/i386/pr40934.c: New. + + 2009-08-13 Janus Weil + + PR fortran/40995 + * gfortran.dg/intrinsic_4.f90: New. + + 2009-08-13 Richard Guenther + + PR middle-end/41047 + * gcc.dg/tree-ssa/ssa-ccp-27.c: New testcase. + + 2009-08-12 Richard Guenther + + PR tree-optimization/41011 + * gfortran.dg/pr41011.f: New testcase. + + 2009-08-10 Richard Guenther + + PR middle-end/41006 + * gcc.c-torture/compile/pr41006-1.c: New testcase. + * gcc.c-torture/compile/pr41006-2.c: Likewise. + + 2009-08-10 Dodji Seketeli + + PR c++/40866 + * g++.dg/expr/stmt-expr-1.C: New test. + + 2009-08-09 Ira Rosen + + PR tree-optimization/41008 + * gcc.dg/vect/O1-pr41008.c: New test. + + 2009-08-08 Richard Guenther + + PR tree-optimization/40991 + * g++.dg/torture/pr40991.C: New testcase. + + 2009-08-06 Uros Bizjak + H.J. Lu + + PR target/40957 + * gcc.target/i386/pr40957.c: New test. + + 2009-08-06 Richard Guenther + + PR tree-optimization/40964 + * gcc.c-torture/compile/pr40964.c: New testcase. + + 2009-08-16 Paul Thomas + + PR fortran/40847 + * gfortran.dg/transfer_resolve_1.f90 : New test. + + 2009-08-16 Uros Bizjak + + Backport from mainline: + 2009-08-14 Uros Bizjak + + PR target/41019 + * gcc.target/i386/pr41019.c: New test. + + 2009-08-16 Dodji Seketeli + + PR debug/37801 + * gcc/testsuite/gcc.dg/debug/20020224-1.c: Adjust the comment. + Make sure to trigger inlining optimizations. + * gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c: New test. + + 2009-08-12 Richard Guenther + + PR rtl-optimization/41033 + * gcc.dg/pr41033.c: New test. + + 2009-08-10 Kaveh R. Ghazi + + Backport: + 2009-04-30 Adam Nemet + + * gcc.dg/ssp-1.c (__stack_chk_fail): Remove static. + + 2009-08-09 Richard Guenther + + PR tree-optimization/41016 + * gcc.c-torture/compile/pr41016.c: New testcase. + + 2009-08-08 Laurent GUERBY + + * ada/acats/support/impdef.a: Tweak timing constants. Add + Long_Minimum_Task_Switch and Long_Switch_To_New_Task. + * ada/acats/tests/c9/c940005.a: Use new timing constants. + * ada/acats/tests/c9/c940007.a: Likewise. + * ada/acats/tests/c9/c94001c.ada: Likewise. + * ada/acats/tests/c9/c94006a.ada: Likewise. + * ada/acats/tests/c9/c94008c.ada: Likewise. + * ada/acats/tests/c9/c951002.a: Likewise. + * ada/acats/tests/c9/c954a01.a: Likewise. + * ada/acats/tests/c9/c96001a.ada: Likewise. + * ada/acats/tests/c9/c97307a.ada: Likewise. + + 2009-08-05 Jason Merrill + + PR c++/40948 + * g++.dg/ext/complit12.C: Expand. + + 2009-08-05 Uros Bizjak + Mikulas Patocka + + PR target/40906 + * gcc.target/i386/pr40906-1.c: New test. + * gcc.target/i386/pr40906-2.c: Ditto. + * gcc.target/i386/pr40906-3.c: Ditto. + + 2009-08-05 H.J. Lu + + Backport from mainline: + 2009-07-30 Martin Jambor + + PR tree-optimization/40570 + * gcc.c-torture/compile/pr40570.c: New test. + + 2009-07-29 Richard Guenther + + PR c++/40834 + * g++.dg/torture/pr40834.C: New testcase. + + 2009-08-05 Jakub Jelinek + + PR rtl-optimization/40924 + * g++.dg/torture/pr40924.C: New test. + + 2009-08-04 Jerry DeLisle + + PR libfortran/40853 + * gfortran.dg/namelist_40.f90: Update error output. + * gfortran.dg/namelist_47.f90: Update error output. + * gfortran.dg/namelist_58.f90: New test. + + 2009-08-04 Dodji Seketeli + + PR c++/39987 + * g++.dg/overload/defarg4.C: New test. + + 2009-08-04 Dodji Seketeli + + PR debug/39706 + * g++.dg/debug/dwarf2/pubnames-1.C: New test. + + 2009-08-03 Jason Merrill + Jakub Jelinek + + PR c++/40948 + * g++.dg/ext/complit12.C: New. + + 2009-08-03 Janis Johnson + + PR c/39902 + * gcc.target/powerpc/pr39902-2.c: New test. + + 2009-08-03 Jakub Jelinek + + PR middle-end/40943 + * gcc.dg/uninit-6.c: Re-add XFAIL. + * gcc.dg/uninit-6-O0.c: Likewise. + * gcc.dg/uninit-pr40943.c: New test. + + 2009-07-30 Janis Johnson + + PR c/39902 + * gcc.dg/dfp/pr39902.c: Fix typos in constant suffixes. + + 2009-07-29 Tobias Burnus + + PR fortran/40851 + * gfortran.dg/derived_init_3.f90: New test. + + 2009-07-28 H.J. Lu + + Backport from mainline: + 2009-07-27 Janus Weil + + PR fortran/40848 + * gfortran.dg/altreturn_7.f90: New. + + 2009-07-27 Simon Baldwin + + PR testsuite/40829 + * gcc.dg/vect/no-scevccp-noreassoc-outer-2.c: Extended array 'a' + so that indexing no longer runs off array end. + + 2009-07-24 Janus Weil + + PR fortran/40822 + * gfortran.dg/char_length_16.f90: New. + + 2009-07-28 Jakub Jelinek + + PR fortran/40878 + * gfortran.dg/gomp/pr40878-1.f90: New test. + * gfortran.dg/gomp/pr40878-2.f90: New test. + + PR testsuite/40891 + * gcc.dg/cdce1.c: Adjust note line number. + * gcc.dg/cdce2.c: Likewise. + + 2009-07-28 Jan Beulich + + * gcc.target/i386/avx-vtestpd-1.c: Add -DNEED_IEEE754_DOUBLE. + * gcc.target/i386/avx-vtestpd-2.c: Likewise. + * gcc.target/i386/avx-vtestpd-256-1.c: Likewise. + * gcc.target/i386/avx-vtestpd-256-2.c: Likewise. + * gcc.target/i386/avx-vtestpd-256-3.c: Likewise. + * gcc.target/i386/avx-vtestpd-3.c: Likewise. + * gcc.target/i386/avx-vtestps-1.c: Add -DNEED_IEEE754_FLOAT. + * gcc.target/i386/avx-vtestps-2.c: Likewise. + * gcc.target/i386/avx-vtestps-256-1.c: Likewise. + * gcc.target/i386/avx-vtestps-256-2.c: Likewise. + * gcc.target/i386/avx-vtestps-256-3.c: Likewise. + * gcc.target/i386/avx-vtestps-3.c: Likewise. + * gcc.target/i386/m128-check.h (union ieee754_float): Put into + #ifdef NEED_IEEE754_FLOAT conditional. + (union ieee754_double): Put into #ifdef NEED_IEEE754_DOUBLE + conditional. + + 2009-07-28 Jan Beulich + + * g++.dg/ext/bitfield2.C: Add -mno-ms-bitfields for + i?86-*-netware. + * g++.dg/ext/bitfield3.C: Likewise. + * g++.dg/ext/bitfield4.C: Likewise. + * g++.dg/ext/bitfield5.C: Likewise. + * gcc.dg/bitfld-15.c: Likewise. + * gcc.dg/bitfld-16.c: Likewise. + * gcc.dg/bitfld-17.c: Likewise. + * gcc.dg/bitfld-18.c: Likewise. + * g++.old-deja/g++.jason/thunk2.C: Remove dg-bogus. + * gcc.dg/20010912-1.c: Likewise. + * gcc.dg/20021018-1.c: Likewise. + * gcc.dg/20030213-1.c: Likewise. + * gcc.dg/20030225-1.c: Likewise. + * gcc.dg/20030708-1.c: Likewise. + * gcc.dg/20050321-2.c: Likewise. + * gcc.dg/cdce1.c: Don't pass -lm for *-*-netware*. + * gcc.dg/cdce2.c: Likewise. + * gcc.target/i386/pr37248-2.c: Don't test on default_packet + targets. + * gcc.target/i386/pr37248-3.c: Likewise. + + 2007-07-26 Simon Martin + + PR c++/40749 + * g++.dg/warn/Wreturn-type-6.C: New test. + + 2009-07-25 Uros Bizjak + + * lib/target-supports.exp (check_effective_target_static): New + procedure. + * gcc.dg/special/gcsec-1.c (dg-options): Use -static only when + supported. + * g++.old-deja/g++.law/weak.C: Require static effective target. + + 2009-07-24 Jason Merrill + + * g++.dg/cpp0x/initlist23.C: New. + + 2009-07-21 Jason Merrill + + Core issue 934 + * g++.dg/cpp0x/initlist22.C: New. + + 2009-07-23 Steven G. Kargl + + PR fortran/40727 + * gfortran.dg/intrinsic_cmplx.f90: New test. + + 2009-07-23 H.J. Lu + + Backport from mainline: + 2009-07-22 Richard Guenther + + PR c++/40799 + * g++.dg/lookup/using21.C: New testcase. + + 2009-07-19 Jan Hubicka + + PR tree-optimization/40676 + * gcc.c-torture/compile/pr40676.c: New testcase. + + 2009-07-15 Richard Guenther + + PR middle-end/40753 + * gcc.c-torture/compile/pr40753.c: New testcase. + + 2009-07-14 Dodji Seketeli + + PR debug/40705 + * g++.dg/debug/dwarf2/typedef1.C: New test. + + PR c++/40357 + * g++.dg/other/typedef3.C: New test. + + 2009-07-10 Richard Guenther + + PR tree-optimization/40496 + * g++.dg/opt/pr40496.C: New testcase. + + 2009-07-09 Jakub Jelinek + + PR middle-end/40692 + * gcc.c-torture/compile/pr40692.c: New test. + + 2009-07-08 Jerry DeLisle + + PR libfortran/40330 + PR libfortran/40662 + * gfortran.dg/fmt_cache_1.f: New test. + + 2009-07-22 Richard Guenther + + PR tree-optimization/40321 + * gcc.c-torture/compile/pr40321.c: New testcase. + * g++.dg/torture/pr40321.C: Likewise. + 2009-07-22 Release Manager * GCC 4.4.1 released. *************** *** 148,154 **** PR target/40587 * gfortran.dg/pr40587.f: New test. ! 2009-07-03 Jerry DeLisle PR fortran/40638 --- 857,863 ---- PR target/40587 * gfortran.dg/pr40587.f: New test. ! 2009-07-03 Jerry DeLisle PR fortran/40638 *************** *** 535,541 **** 2009-05-14 Ben Elliston Backport from mainline: ! 2009-05-14 Ben Elliston PR middle-end/40035 * gcc.c-torture/compile/pr40035.c: New test. --- 1244,1250 ---- 2009-05-14 Ben Elliston Backport from mainline: ! 2009-05-14 Ben Elliston PR middle-end/40035 * gcc.c-torture/compile/pr40035.c: New test. *************** *** 1011,1017 **** PR objc/27377 * objc.dg/conditional-1.m: New tests. ! 2009-04-08 Dodji Seketeli PR c++/39637 --- 1720,1726 ---- PR objc/27377 * objc.dg/conditional-1.m: New tests. ! 2009-04-08 Dodji Seketeli PR c++/39637 *************** *** 1037,1043 **** 2009-04-06 Laurent GUERBY * lib/gnat.exp: Handle multilib. ! 2009-04-06 Jason Merrill PR c++/35146 --- 1746,1752 ---- 2009-04-06 Laurent GUERBY * lib/gnat.exp: Handle multilib. ! 2009-04-06 Jason Merrill PR c++/35146 *************** *** 1295,1301 **** 2009-03-23 Jason Merrill * g++.dg/cpp0x/auto12.C: Add variadic test. ! PR c++/39526 * g++.dg/warn/Wshadow-4.C: New test. --- 2004,2010 ---- 2009-03-23 Jason Merrill * g++.dg/cpp0x/auto12.C: Add variadic test. ! PR c++/39526 * g++.dg/warn/Wshadow-4.C: New test. *************** *** 1630,1637 **** * gcc.dg/vect/vect-complex-1.c: Add attribute aligned to the arrays. * gcc.dg/vect/vect-iv-6.c: Don't expect to fail to vectorize on targets without vector misalignment support. ! * lib/target-supports.exp ! (check_effective_target_vect_short_mult): Add check_effective_target_arm32. 2009-03-02 Sebastian Pop --- 2339,2346 ---- * gcc.dg/vect/vect-complex-1.c: Add attribute aligned to the arrays. * gcc.dg/vect/vect-iv-6.c: Don't expect to fail to vectorize on targets without vector misalignment support. ! * lib/target-supports.exp ! (check_effective_target_vect_short_mult): Add check_effective_target_arm32. 2009-03-02 Sebastian Pop *************** *** 1977,1983 **** 2009-02-15 Uros Bizjak * gcc.dg/struct/w_prof_single_str_global.c: Mask return value. ! 2009-02-13 Ulrich Weigand * gcc.target/spu/intrinsics-sr.c: New test. --- 2686,2692 ---- 2009-02-15 Uros Bizjak * gcc.dg/struct/w_prof_single_str_global.c: Mask return value. ! 2009-02-13 Ulrich Weigand * gcc.target/spu/intrinsics-sr.c: New test. *************** *** 2317,2323 **** PR middle-end/35854 * gcc.dg/lower-subreg-1.c: Renamed dump pass from "subreg" to "subreg1". ! 2009-01-29 Steve Ellcey PR middle-end/38857 --- 3026,3032 ---- PR middle-end/35854 * gcc.dg/lower-subreg-1.c: Renamed dump pass from "subreg" to "subreg1". ! 2009-01-29 Steve Ellcey PR middle-end/38857 *************** *** 2791,2797 **** * g++.dg/eh/check-vect.h (sig_ill_handler): Remove AltiVec runtime check. * g++.dg/ext/altivec_check.h: Delete. ! 2009-01-13 Nathan Froyd * gcc.target/powerpc/altivec-macros.c: Require a powerpc_altivec_ok --- 3500,3506 ---- * g++.dg/eh/check-vect.h (sig_ill_handler): Remove AltiVec runtime check. * g++.dg/ext/altivec_check.h: Delete. ! 2009-01-13 Nathan Froyd * gcc.target/powerpc/altivec-macros.c: Require a powerpc_altivec_ok *************** *** 3187,3193 **** dg-timeout-factor. * gcc.dg/20020425-1.c: Likewise. * gcc.dg/pch/pch.exp: Likewise. ! 2009-01-05 Paul Thomas PR fortran/38657 --- 3896,3902 ---- dg-timeout-factor. * gcc.dg/20020425-1.c: Likewise. * gcc.dg/pch/pch.exp: Likewise. ! 2009-01-05 Paul Thomas PR fortran/38657 *************** *** 3202,3208 **** PR fortran/38669 PR fortran/38726 ! * gfortran.dg/elemental_subroutine_7.f90: Fix p values so that it can be used as vector subscript. 2009-01-05 Jason Merrill --- 3911,3917 ---- PR fortran/38669 PR fortran/38726 ! * gfortran.dg/elemental_subroutine_7.f90: Fix p values so that it can be used as vector subscript. 2009-01-05 Jason Merrill diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/support/impdef.a gcc-4.4.2/gcc/testsuite/ada/acats/support/impdef.a *** gcc-4.4.1/gcc/testsuite/ada/acats/support/impdef.a Thu Jan 26 20:39:16 2006 --- gcc-4.4.2/gcc/testsuite/ada/acats/support/impdef.a Sat Aug 8 18:30:24 2009 *************** package ImpDef is *** 105,110 **** --- 105,112 ---- Minimum_Task_Switch : constant Duration := 0.001; -- ^^^ --- MODIFY HERE AS NEEDED + Long_Minimum_Task_Switch : constant Duration := 0.1; + --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- -- This is the time required to activate another task and allow it *************** package ImpDef is *** 117,129 **** Switch_To_New_Task : constant Duration := 0.001; -- ^^^ -- MODIFY HERE AS NEEDED --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- -- This is the time which will clear the queues of other tasks -- waiting to run. It is expected that this will be about five -- times greater than Switch_To_New_Task. ! Clear_Ready_Queue : constant Duration := 1.1; -- ^^^ --- MODIFY HERE AS NEEDED --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- --- 119,133 ---- Switch_To_New_Task : constant Duration := 0.001; -- ^^^ -- MODIFY HERE AS NEEDED + Long_Switch_To_New_Task : constant Duration := 0.1; + --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- -- This is the time which will clear the queues of other tasks -- waiting to run. It is expected that this will be about five -- times greater than Switch_To_New_Task. ! Clear_Ready_Queue : constant Duration := 0.1; -- ^^^ --- MODIFY HERE AS NEEDED --=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-=====-- diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c940005.a gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c940005.a *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c940005.a Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c940005.a Sat Aug 8 18:30:24 2009 *************** begin *** 85,91 **** -- In reality one would expect a time of 5 to 10 seconds. In -- the interests of speeding up the test suite a shorter time -- is used ! Pulse_Time_Delta : constant duration := ImpDef.Switch_To_New_Task; -- control over stopping tasks protected Control is --- 85,91 ---- -- In reality one would expect a time of 5 to 10 seconds. In -- the interests of speeding up the test suite a shorter time -- is used ! Pulse_Time_Delta : constant duration := ImpDef.Long_Switch_To_New_Task; -- control over stopping tasks protected Control is diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c940007.a gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c940007.a *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c940007.a Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c940007.a Sat Aug 8 18:30:24 2009 *************** begin *** 90,96 **** -- In reality one would expect a time of 5 to 10 seconds. In -- the interests of speeding up the test suite a shorter time -- is used ! Pulse_Time_Delta : constant duration := ImpDef.Switch_To_New_Task; -- control over stopping tasks --- 90,96 ---- -- In reality one would expect a time of 5 to 10 seconds. In -- the interests of speeding up the test suite a shorter time -- is used ! Pulse_Time_Delta : constant duration := ImpDef.Long_Switch_To_New_Task; -- control over stopping tasks diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c94001c.ada gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c94001c.ada *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c94001c.ada Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c94001c.ada Sat Aug 8 18:30:24 2009 *************** BEGIN *** 209,215 **** BEGIN -- (E) WHILE NOT(OUT_TSK'TERMINATED) AND DELAY_COUNT < 60 LOOP ! DELAY 1.0 * Impdef.One_Second; DELAY_COUNT := DELAY_COUNT + 1; END LOOP; IF DELAY_COUNT = 60 THEN --- 209,215 ---- BEGIN -- (E) WHILE NOT(OUT_TSK'TERMINATED) AND DELAY_COUNT < 60 LOOP ! DELAY 1.0 * Impdef.One_Long_Second; DELAY_COUNT := DELAY_COUNT + 1; END LOOP; IF DELAY_COUNT = 60 THEN *************** BEGIN *** 252,258 **** BEGIN WHILE NOT(OUT_TSK'TERMINATED) AND DELAY_COUNT < 60 LOOP ! DELAY 1.0 * Impdef.One_Second; DELAY_COUNT := DELAY_COUNT + 1; END LOOP; IF DELAY_COUNT = 60 THEN --- 252,258 ---- BEGIN WHILE NOT(OUT_TSK'TERMINATED) AND DELAY_COUNT < 60 LOOP ! DELAY 1.0 * Impdef.One_Long_Second; DELAY_COUNT := DELAY_COUNT + 1; END LOOP; IF DELAY_COUNT = 60 THEN diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c94006a.ada gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c94006a.ada *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c94006a.ada Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c94006a.ada Sat Aug 8 18:30:24 2009 *************** PROCEDURE C94006A IS *** 42,48 **** SELECT ACCEPT E; OR ! DELAY 30.0 * Impdef.One_Second; END SELECT; END TT; --- 42,48 ---- SELECT ACCEPT E; OR ! DELAY 30.0 * Impdef.One_Long_Second; END SELECT; END TT; diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c94008c.ada gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c94008c.ada *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c94008c.ada Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c94008c.ada Sat Aug 8 18:30:24 2009 *************** BEGIN -- C94008C *** 202,208 **** DELAY 10.0 * Impdef.One_Second; IF TERMINATE_COUNT.GET /= 1 THEN ! DELAY 20.0 * Impdef.One_Second; END IF; IF TERMINATE_COUNT.GET /= 1 THEN --- 202,208 ---- DELAY 10.0 * Impdef.One_Second; IF TERMINATE_COUNT.GET /= 1 THEN ! DELAY 20.0 * Impdef.One_Long_Second; END IF; IF TERMINATE_COUNT.GET /= 1 THEN *************** BEGIN -- C94008C *** 243,249 **** DELAY 10.0 * Impdef.One_Second; -- WAIT FOR T1, T2, AND T3 TO GET TO SELECT STMTS. IF TERMINATE_COUNT.GET /= 3 THEN ! DELAY 20.0 * Impdef.One_Second; END IF; IF TERMINATE_COUNT.GET /= 3 THEN --- 243,249 ---- DELAY 10.0 * Impdef.One_Second; -- WAIT FOR T1, T2, AND T3 TO GET TO SELECT STMTS. IF TERMINATE_COUNT.GET /= 3 THEN ! DELAY 20.0 * Impdef.One_Long_Second; END IF; IF TERMINATE_COUNT.GET /= 3 THEN diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c951002.a gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c951002.a *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c951002.a Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c951002.a Sat Aug 8 18:30:24 2009 *************** begin *** 278,291 **** -- Wait until the message is queued on the entry before starting -- the Credit_Task while not Hold.TC_Message_is_Queued loop ! delay ImpDef.Minimum_Task_Switch; end loop; -- Credit_Task.TC_Start; -- Ensure the first part of the test is complete before continuing while not (Credit_Message'terminated and Credit_Task'terminated) loop ! delay ImpDef.Minimum_Task_Switch; end loop; --====================================================== --- 278,291 ---- -- Wait until the message is queued on the entry before starting -- the Credit_Task while not Hold.TC_Message_is_Queued loop ! delay ImpDef.Long_Minimum_Task_Switch; end loop; -- Credit_Task.TC_Start; -- Ensure the first part of the test is complete before continuing while not (Credit_Message'terminated and Credit_Task'terminated) loop ! delay ImpDef.Long_Minimum_Task_Switch; end loop; --====================================================== *************** begin *** 298,309 **** -- for it to reach the accept statement and call Hold.Set_DB_Overload -- before starting Debit_Message -- ! delay ImpDef.Switch_To_New_Task; Debit_Message.TC_Start; while not Debit_Task'terminated loop ! delay ImpDef.Minimum_Task_Switch; end loop; Hold.Clear_DB_Overload; -- Allow completion --- 298,309 ---- -- for it to reach the accept statement and call Hold.Set_DB_Overload -- before starting Debit_Message -- ! delay ImpDef.Long_Switch_To_New_Task; Debit_Message.TC_Start; while not Debit_Task'terminated loop ! delay ImpDef.Long_Minimum_Task_Switch; end loop; Hold.Clear_DB_Overload; -- Allow completion diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c954a01.a gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c954a01.a *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c954a01.a Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c954a01.a Sat Aug 8 18:30:24 2009 *************** package body C954A01_0 is -- Printer se *** 148,154 **** end select; -- Allow other tasks to get control ! delay ImpDef.Minimum_Task_Switch; end loop; --- 148,154 ---- end select; -- Allow other tasks to get control ! delay ImpDef.Long_Minimum_Task_Switch; end loop; *************** use F954A00; *** 175,181 **** procedure C954A01 is ! Long_Enough : constant Duration := ImpDef.Switch_To_New_Task; --==============================================-- --- 175,181 ---- procedure C954A01 is ! Long_Enough : constant Duration := ImpDef.Long_Switch_To_New_Task; --==============================================-- diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c96001a.ada gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c96001a.ada *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c96001a.ada Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c96001a.ada Sat Aug 8 18:30:24 2009 *************** BEGIN *** 51,57 **** --------------------------------------------- DECLARE -- (A) ! X : DURATION := 5.0; OLD_TIME : TIME; LAPSE : DURATION; BEGIN -- (A) --- 51,57 ---- --------------------------------------------- DECLARE -- (A) ! X : DURATION := 5.0 * Impdef.One_Second; OLD_TIME : TIME; LAPSE : DURATION; BEGIN -- (A) diff -Nrcpad gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c97307a.ada gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c97307a.ada *** gcc-4.4.1/gcc/testsuite/ada/acats/tests/c9/c97307a.ada Mon Oct 27 11:29:00 2003 --- gcc-4.4.2/gcc/testsuite/ada/acats/tests/c9/c97307a.ada Sat Aug 8 18:30:24 2009 *************** BEGIN *** 160,166 **** EXPIRED.READ (EXPIRED_CALLS); EXIT WHEN E'COUNT >= DESIRED_QUEUE_LENGTH - EXPIRED_CALLS; ! DELAY 2.0 * Impdef.One_Second; END LOOP; EXIT WHEN DESIRED_QUEUE_LENGTH = 5; DISPATCH.READY; --- 160,166 ---- EXPIRED.READ (EXPIRED_CALLS); EXIT WHEN E'COUNT >= DESIRED_QUEUE_LENGTH - EXPIRED_CALLS; ! DELAY 2.0 * Impdef.One_Long_Second; END LOOP; EXIT WHEN DESIRED_QUEUE_LENGTH = 5; DISPATCH.READY; *************** BEGIN *** 171,177 **** -- LET THE TIMED ENTRY CALLS ISSUED BY CALLER1, -- CALLER3, AND CALLER5 EXPIRE: ! DELAY DELAY_TIME + 10.0 * Impdef.One_Second; -- AT THIS POINT, ALL THE TIMED ENTRY CALLS MUST HAVE -- EXPIRED AND BEEN REMOVED FROM THE ENTRY QUEUE FOR E, --- 171,177 ---- -- LET THE TIMED ENTRY CALLS ISSUED BY CALLER1, -- CALLER3, AND CALLER5 EXPIRE: ! DELAY DELAY_TIME + 10.0 * Impdef.One_Long_Second; -- AT THIS POINT, ALL THE TIMED ENTRY CALLS MUST HAVE -- EXPIRED AND BEEN REMOVED FROM THE ENTRY QUEUE FOR E, diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cdce3.C gcc-4.4.2/gcc/testsuite/g++.dg/cdce3.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cdce3.C Tue Sep 23 21:27:17 2008 --- gcc-4.4.2/gcc/testsuite/g++.dg/cdce3.C Fri Aug 28 09:57:51 2009 *************** *** 2,15 **** /* { dg-require-effective-target c99_runtime } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { pow10 && large_long_double } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { {! pow10 } && large_long_double } } } */ ! /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target {pow10 && {! large_long_double } } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { {! pow10 } && {! large_long_double } } } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:91: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:92: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:94: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:97: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:98: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:99: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:100: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ --- 2,15 ---- /* { dg-require-effective-target c99_runtime } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { pow10 && large_long_double } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { {! pow10 } && large_long_double } } } */ ! /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { pow10 && {! large_long_double } } } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { {! pow10 } && {! large_long_double } } } } */ ! /* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -DLARGE_LONG_DOUBLE -lm" { target { alpha*-*-* && { pow10 && large_long_double } } } } */ ! /* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DLARGE_LONG_DOUBLE -lm" { target { alpha*-*-* && { {! pow10 } && large_long_double } } } } */ ! /* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -DGNU_EXTENSION -lm" { target { alpha*-*-* && { pow10 && {! large_long_double } } } } } */ ! /* { dg-options "-mieee -O2 -fmath-errno -fdump-tree-cdce-details -lm" { target { alpha*-*-* && { {! pow10 } && {! large_long_double } } } } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:95: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ ! /* { dg-final { scan-tree-dump "cdce3.C:96: note: function call is shrink-wrapped into error conditions\." "cdce" { target { pow10 } } } } */ /* { dg-final { scan-tree-dump "cdce3.C:98: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:99: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:100: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ *************** *** 20,25 **** --- 20,29 ---- /* { dg-final { scan-tree-dump "cdce3.C:105: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:106: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { scan-tree-dump "cdce3.C:107: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ + /* { dg-final { scan-tree-dump "cdce3.C:108: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ + /* { dg-final { scan-tree-dump "cdce3.C:109: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ + /* { dg-final { scan-tree-dump "cdce3.C:110: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ + /* { dg-final { scan-tree-dump "cdce3.C:111: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include #include diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/defaulted13.C gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/defaulted13.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/defaulted13.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/defaulted13.C Wed Oct 7 19:31:56 2009 *************** *** 0 **** --- 1,29 ---- + // { dg-options -std=c++0x } + + template + struct NonCopyable { + NonCopyable() = default; + NonCopyable(NonCopyable const&); + }; + + template<> + NonCopyable::NonCopyable(NonCopyable const&) = delete; // { dg-error "deleted" } + + template + NonCopyable::NonCopyable(NonCopyable const&) = default; + + template<> + NonCopyable::NonCopyable(NonCopyable const&) = delete; // { dg-error "deleted" } + + + int main() + { + NonCopyable nc_dbl; + NonCopyable nc_dbl_cpy(nc_dbl); // { dg-error "used here" } + + NonCopyable nc_int; + NonCopyable nc_int_cpy(nc_int); // { dg-error "used here" } + + NonCopyable nc_char; + NonCopyable nc_char_cpy(nc_char); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/enum1.C gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/enum1.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/enum1.C Mon Nov 10 13:41:37 2008 --- gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/enum1.C Mon Aug 31 21:20:07 2009 *************** *** 2,6 **** // { dg-do compile } // { dg-options "-std=gnu++0x" } ! enum : { }; // { dg-error "expected type-specifier" } enum : 3 { }; // { dg-error "expected" } --- 2,6 ---- // { dg-do compile } // { dg-options "-std=gnu++0x" } ! enum : { }; // { dg-error "expected" } enum : 3 { }; // { dg-error "expected" } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/initlist-deduce.C Fri Sep 18 21:53:23 2009 *************** *** 0 **** --- 1,26 ---- + // Test for deduction of T as std::initializer_list. This isn't currently + // supported by the working draft, but is necessary for perfect forwarding + // of initializer-lists to things that can take a std::initializer_list. + + // { dg-options -std=c++0x } + // { dg-do run } + + #include + + struct A + { + A(std::initializer_list) { } + }; + + void f (A a) { } + + template + auto g (T&& t) -> decltype (f(t)) // { dg-warning "call" } + { + return f(t); + } + + int main() + { + g({1}); // { dg-warning "deduc" } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/initlist22.C gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/initlist22.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/initlist22.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/initlist22.C Fri Jul 24 18:06:08 2009 *************** *** 0 **** --- 1,24 ---- + // Core issue 934 + // { dg-options "-std=c++0x" } + + int i; + + int& r1{ i }; // OK, direct binding + int&& r2{ i }; // OK, direct binding + + int& r3{ }; // { dg-error "" } reference to temporary + int&& r4{ }; // OK, reference to temporary + + struct A { int i; } a; + + A& r5 { i }; // { dg-error "" } reference to temporary + A&& r6 { i }; // OK, aggregate initialization of temporary + A& r7 { a }; // { dg-error "" } invalid aggregate initializer for A + A&& r8 { a }; // { dg-error "" } invalid aggregate initializer for A + + struct B { B(int); int i; } b(0); + + B& r9 { i }; // { dg-error "" } reference to temporary + B&& r10 { i }; // OK, make temporary with B(int) constructor + B& r11 { b }; // { dg-error "" } reference to temporary + B&& r12 { b }; // OK, make temporary with copy constructor diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/initlist23.C gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/initlist23.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/initlist23.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/initlist23.C Fri Jul 24 18:06:08 2009 *************** *** 0 **** --- 1,15 ---- + // { dg-options "-std=c++0x" } + + #include + + struct A + { + A& operator=(int i); + A& operator=(std::initializer_list l) { return *this; } + }; + + int main() + { + A a; + a = { }; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/variadic95.C gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/variadic95.C *** gcc-4.4.1/gcc/testsuite/g++.dg/cpp0x/variadic95.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/cpp0x/variadic95.C Wed Oct 7 19:31:56 2009 *************** *** 0 **** --- 1,17 ---- + // PR c++/39863 + // { dg-options -std=c++0x } + + template + struct A {}; + + template + struct S {}; + + template + A< S... > f(U... u) + { return A< S... >(); } + + int main() + { + f(0.0); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C gcc-4.4.2/gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C *** gcc-4.4.1/gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/debug/dwarf2/global-used-types-1.C Wed Sep 23 14:58:58 2009 *************** *** 0 **** --- 1,13 ---- + // Contributed by Dodji Seketeli + // { dg-options "-g -dA -fno-merge-debug-strings" } + // { dg-do compile } + // { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_enumeration_type" 1 } } + // { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_enumerator" 2 } } + // { dg-final { scan-assembler-times "ascii \"a.0\"\[\t \]+.*?DW_AT_name" 1 } } + // { dg-final { scan-assembler-times "ascii \"b.0\"\[\t \]+.*?DW_AT_name" 1 } } + + struct foo + { + enum { a, b }; + }; + char s[foo::b]; diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C gcc-4.4.2/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C *** gcc-4.4.1/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/debug/dwarf2/pubnames-1.C Tue Aug 4 12:28:27 2009 *************** *** 0 **** --- 1,14 ---- + // Contributed by Dodji Seketeli + // Origin PR debug/39706 + // { dg-options "-g -dA" } + // { dg-do compile } + // { dg-final { scan-assembler-times ".debug_pubnames" 1 } } + // { dg-final { scan-assembler-times "\"main\".*external name" 1 } } + // { dg-final { scan-assembler-times "\"ns::ns_x.*external name" 1 } } + // { dg-final { scan-assembler-times "\"y::y_x.*external name" 1 } } + + namespace ns { int ns_x; } + class y { public: static int y_x; }; + int y::y_x; + int main() { return ns::ns_x; } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C gcc-4.4.2/gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C *** gcc-4.4.1/gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/debug/dwarf2/typedef1.C Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,33 ---- + // Contributed by Dodji Seketeli + // Origin: PR c++/40705 + // { dg-options "-g -dA" } + // { dg-do compile } + // { dg-final { scan-assembler-times "DW_TAG_structure_type" 2 } } + // { dg-final { scan-assembler-times "DW_AT_name: \"foo<1u>\"" 1 } } + // { dg-final { scan-assembler-times "DW_TAG_enumeration_type" 2 } } + // { dg-final { scan-assembler-times "DW_AT_name: \"typedef foo<1u>::type type\"" 1 } } + // { dg-final { scan-assembler-times "DIE (.*) DW_TAG_enumeration_type" 2 } } + // { dg-final { scan-assembler-times "\"e0..\".*DW_AT_name" 1 } } + // { dg-final { scan-assembler-times "\"e1..\".*DW_AT_name" 1 } } + + template + struct foo + { + public: + typedef + unsigned char type; + }; + + template<> + struct foo<1> + { + typedef enum { e0, e1 } type; + }; + + int + main() + { + foo<1> f; + foo<1>::type t = foo<1>::e1; + return t; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/expr/stmt-expr-1.C gcc-4.4.2/gcc/testsuite/g++.dg/expr/stmt-expr-1.C *** gcc-4.4.1/gcc/testsuite/g++.dg/expr/stmt-expr-1.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/expr/stmt-expr-1.C Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,36 ---- + // Contributed by Dodji Seketeli + // Origin PR c++/40866 + // { dg-options "-std=gnu++98" } + // { dg-do "compile" } + + template class QForeachContainer { + public: + QForeachContainer(); + int brk; + typename T::const_iterator i; + }; + + template class QList { + public: + class const_iterator { + public: + const_iterator(const const_iterator &o); + const_iterator &operator++(); + }; + }; + + class QAction; + class QWidget { + public: + QList actions() const; + }; + class myDialog : public QWidget { + myDialog(); + }; + + myDialog::myDialog() + { + QForeachContainer<__typeof__(actions())> _container_; + ({++_container_.brk; ++_container_.i;}); + } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/expr/unary3.C gcc-4.4.2/gcc/testsuite/g++.dg/expr/unary3.C *** gcc-4.4.1/gcc/testsuite/g++.dg/expr/unary3.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/expr/unary3.C Fri Aug 21 07:10:36 2009 *************** *** 0 **** --- 1,11 ---- + // PR c++/41131 + // { dg-do compile } + + struct X { enum E { a = 100 }; }; + + int + main () + { + X x; + (void) &x.a; // { dg-error "lvalue required" } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield2.C gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield2.C *** gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield2.C Sun Jan 25 20:15:44 2009 --- gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield2.C Tue Jul 28 06:56:49 2009 *************** *** 1,6 **** --- 1,7 ---- /* { dg-do compile } */ /* Remove pedantic. Allow the GCC extension to use char for bitfields. */ /* { dg-options "" } */ + /* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ struct t { /* { dg-message "note: Offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield3.C gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield3.C *** gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield3.C Fri Jan 23 06:29:54 2009 --- gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield3.C Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ + /* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target i?86-*-netware } } */ struct t { diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield4.C gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield4.C *** gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield4.C Sun Jan 25 20:15:44 2009 --- gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield4.C Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "" } */ + /* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ struct t { /* { dg-message "note: Offset of packed bit-field 't::b' has changed in GCC 4.4" "" { target pcc_bitfield_type_matters } } */ diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield5.C gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield5.C *** gcc-4.4.1/gcc/testsuite/g++.dg/ext/bitfield5.C Fri Jan 23 06:29:54 2009 --- gcc-4.4.2/gcc/testsuite/g++.dg/ext/bitfield5.C Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ + /* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target i?86-*-netware } } */ struct t { diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/ext/complit12.C gcc-4.4.2/gcc/testsuite/g++.dg/ext/complit12.C *** gcc-4.4.1/gcc/testsuite/g++.dg/ext/complit12.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/ext/complit12.C Thu Aug 6 17:22:19 2009 *************** *** 0 **** --- 1,65 ---- + // PR c++/40948 + // { dg-do run } + // { dg-options "" } + + int c; + struct M + { + M () { ++c; } + M (const M&) { ++c; } + ~M () { --c; } + }; + + struct S + { + S (); + M m[1]; + }; + + S::S () : m ((M[1]) { M () }) + { + } + + struct T + { + T (); + M m[4]; + }; + + T::T () : m ((M[4]) { M (), M (), M (), M () }) + { + } + + typedef M MA[1]; + MA &bar (MA, MA& r) { return r; } + + M f(M m) { return m; } + + int main () + { + { + M m[1] = (M[1]) { M () }; + if (c != 1) + return 1; + M n = (M) { M () }; + if (c != 2) + return 2; + M o[4] = (M[4]) { M (), M (), M (), M () }; + if (c != 6) + return 3; + S s; + if (c != 7) + return 4; + T t; + if (c != 11) + return 5; + MA ma = bar ((M[2]) { M(), M() }, m); + if (c != 12) + return 7; + M mm[2] = ((M[2]) { f(M()), f(M()) }); + if (c != 14) + return 8; + } + if (c != 0) + return 6; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/lookup/using21.C gcc-4.4.2/gcc/testsuite/g++.dg/lookup/using21.C *** gcc-4.4.1/gcc/testsuite/g++.dg/lookup/using21.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/lookup/using21.C Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,13 ---- + // PR c++/40799 + + namespace Bar { + typedef int A; + } + class CollectionDeleteGuard { + public: + CollectionDeleteGuard(int); + }; + CollectionDeleteGuard::CollectionDeleteGuard(int) + { + using Bar::A; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/opt/pr40496.C gcc-4.4.2/gcc/testsuite/g++.dg/opt/pr40496.C *** gcc-4.4.1/gcc/testsuite/g++.dg/opt/pr40496.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/opt/pr40496.C Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,18 ---- + // { dg-do compile } + // { dg-options "-O2 -fprefetch-loop-arrays -msse2" { target i?86-*-* x86_64-*-* } } + + struct DOMStringHandle + { + unsigned int fLength; + int fRefCount; + }; + static void *freeListPtr; + void foo(DOMStringHandle *dsg) + { + int i; + for (i = 1; i < 1023; i++) + { + *(void **) &dsg[i] = freeListPtr; + freeListPtr = &dsg[i]; + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/other/gc4.C gcc-4.4.2/gcc/testsuite/g++.dg/other/gc4.C *** gcc-4.4.1/gcc/testsuite/g++.dg/other/gc4.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/other/gc4.C Sun Aug 30 02:06:32 2009 *************** *** 0 **** --- 1,14 ---- + // PR c++/41120 + // { dg-options "--param ggc-min-heapsize=0 --param ggc-min-expand=0" } + + struct A + { + A(); + }; + + struct B + { + A a; + }; + + B b; diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/other/typedef3.C gcc-4.4.2/gcc/testsuite/g++.dg/other/typedef3.C *** gcc-4.4.1/gcc/testsuite/g++.dg/other/typedef3.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/other/typedef3.C Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,12 ---- + // Contributed by Dodji Seketeli + // Origin: PR c++/40357 + // { dg-do compile } + + struct XalanCProcessor + { + typedef enum {eInvalid, eXalanSourceTree, eXercesDOM} ParseOptionType; + ParseOptionType getParseOption(void); + }; + typedef XalanCProcessor::ParseOptionType ParseOptionType; + ParseOptionType XalanCProcessor::getParseOption(void) {} + diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/overload/defarg4.C gcc-4.4.2/gcc/testsuite/g++.dg/overload/defarg4.C *** gcc-4.4.1/gcc/testsuite/g++.dg/overload/defarg4.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/overload/defarg4.C Fri Aug 7 13:15:43 2009 *************** *** 0 **** --- 1,26 ---- + // Contributed by Dodji Seketeli + // Origin PR c++/39987 + // { dg-do "compile" } + + class foo + { + template + static bool func(const U& x) + {} + public: + template + unsigned int Find(const U& x, bool (*pFunc) (const U&) = func) const + {} + }; + + class bar { + bool Initialize(); + protected: + foo b; + }; + + bool bar::Initialize() + { + b.Find(b); + } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/parse/enum5.C gcc-4.4.2/gcc/testsuite/g++.dg/parse/enum5.C *** gcc-4.4.1/gcc/testsuite/g++.dg/parse/enum5.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/parse/enum5.C Mon Aug 31 21:20:07 2009 *************** *** 0 **** --- 1,17 ---- + // PR c++/41127 + + #define CHAR_BIT 8 + enum EE {ee}; + typedef unsigned int T; + + struct D { + T : sizeof(unsigned int) * CHAR_BIT; // OK + EE : sizeof(EE) * CHAR_BIT; // OK + enum EE : sizeof(EE) * CHAR_BIT; // not OK + enum EE xxxx : sizeof(EE) * CHAR_BIT; // OK + T x : sizeof(unsigned int) * CHAR_BIT; // OK + enum FF {ff} : sizeof(int) * CHAR_BIT; // OK + } element; + + enum EE xx; + EE yy; diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/template/scope3.C gcc-4.4.2/gcc/testsuite/g++.dg/template/scope3.C *** gcc-4.4.1/gcc/testsuite/g++.dg/template/scope3.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/template/scope3.C Wed Oct 7 19:31:56 2009 *************** *** 0 **** --- 1,15 ---- + // PR c++/41038 + + struct S + { + int size() const; + }; + + template + struct Packer + { + int foo() { + return Packer::var.size(); + } + const S& var; + }; diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40321.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40321.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40321.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40321.C Wed Jul 22 14:45:21 2009 *************** *** 0 **** --- 1,25 ---- + /* { dg-do compile } */ + + struct VectorD2 + { + VectorD2() : x(0), y(0) { } + VectorD2(int _x, int _y) : x(_x), y(_y) { } + int x, y; + int GetLength2() const { return x*x + y*y; }; + VectorD2 operator+(const VectorD2 vec) const { + return VectorD2(x+vec.x,y+vec.y); + } + }; + struct Shape + { + enum Type { ST_RECT, ST_CIRCLE } type; + VectorD2 pos; + VectorD2 radius; + bool CollisionWith(const Shape& s) const; + }; + bool Shape::CollisionWith(const Shape& s) const + { + if(type == ST_CIRCLE && s.type == ST_RECT) + return s.CollisionWith(*this); + return (pos + s.pos).GetLength2() < (radius + s.radius).GetLength2(); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40642.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40642.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40642.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40642.C Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,26 ---- + // { dg-do compile } + // { dg-options "-fprofile-generate" } + + // GCC used to ICE with some EH edge missing. + + inline void* operator new(__SIZE_TYPE__, void* p) throw() { return p; } + inline void operator delete (void*, void*) throw() { } + + template void foo(void* p, T t) + { + new(p) T(t); + } + + void bar(); + + template struct A + { + T* p; + + A() { try { foo(p, T()); } catch(...) {} } + + A(const A&) { try { bar(); } catch(...) { throw; } } + }; + + A > a; + diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40834.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40834.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40834.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40834.C Wed Aug 5 14:45:15 2009 *************** *** 0 **** --- 1,52 ---- + /* { dg-do run } */ + + extern "C" void abort (void); + class XalanDOMString + { + public: + int y; + }; + + class XObject + { + public: + const XalanDOMString& str() const { return x; } + XalanDOMString x; + }; + + class XObjectPtr + { + public: + XObjectPtr(const XObjectPtr& theSource) + { + m_xobjectPtr = theSource.m_xobjectPtr; + } + const XObject* operator->() const + { + return m_xobjectPtr; + }; + XObjectPtr(XObject *p) { m_xobjectPtr = p; } + XObject* m_xobjectPtr; + }; + + class FunctionSubstringBefore + { + public: + int execute( const XObjectPtr arg1) const + { + const XalanDOMString& theFirstString = arg1->str(); + return theFirstString.y; + } + }; + + int + main () + { + XObject x; + XObjectPtr y (&x); + x.x.y = -1; + FunctionSubstringBefore z; + if (z.execute (y) != -1) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40924.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40924.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40924.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40924.C Wed Aug 5 12:54:21 2009 *************** *** 0 **** --- 1,111 ---- + // PR rtl-optimization/40924 + // { dg-do run } + + extern "C" void abort (void); + + #define MAY_ALIAS __attribute__((__may_alias__)) + + typedef struct { float v[2]; } floata; + typedef struct { int v[2]; } inta; + + typedef unsigned int uint MAY_ALIAS; + typedef signed int sint MAY_ALIAS; + typedef float flt MAY_ALIAS; + + static inline unsigned short + less_than (inta a, inta b) + { + unsigned short r = 0; + const uint *p1 = (const uint *) &a; + const uint *p2 = (const uint *) &b; + for (int i=0; i < 2; i++) + if (p1[i] < p2[i]) r |= (1 << i); + return r; + } + + static inline inta + multiply (inta b, inta c) + { + inta r; + sint *p3 = (sint *) &c; + for (int i=0; i < 2; i++) + r.v[i] = (int) (b.v[i] * p3[i] & 0xFFFFFFFF); + return r; + } + + static inline floata + gather (inta indexes, const void *baseAddr) + { + floata r; + + sint *idx = (sint *) &indexes; + flt *src = (flt *) baseAddr; + for (int i=0; i < 2; i++) + r.v[i] = *(src + idx[i]); + return r; + } + + static inline inta + add (const inta &b, const inta &c) + { + inta result; + sint *r = (sint *) &result; + + for (int i=0; i < 2; i++) + r[i] = b.v[i] + c.v[i]; + return result; + } + + struct uintv + { + inta data; + inline uintv () { data.v[0] = 0; data.v[1] = 1; } + inline uintv (unsigned int a) + { + for (int i=0; i < 2; i++) + *(uint *) &data.v[i] = a; + } + inline uintv (inta x) : data (x) {} + inline uintv operator* (const uintv &x) const + { return multiply (data, x.data); } + inline uintv operator+ (const uintv &x) const + { return uintv (add (data, x.data)); } + inline unsigned short operator< (const uintv &x) const + { return less_than (data, x.data); } + }; + + struct floatv + { + floata data; + explicit inline floatv (const uintv &x) + { + uint *p2 = (uint *) &x.data; + for (int i=0; i < 2; i++) + data.v[i] = p2[i]; + } + inline floatv (const float *array, const uintv &indexes) + { + const uintv &offsets = indexes * uintv (1); + data = gather (offsets.data, array); + } + unsigned short operator== (const floatv &x) const + { + unsigned short r = 0; + for (int i=0; i < 2; i++) + if (data.v[i] == x.data.v[i]) r |= (1 << i); + return r; + } + }; + + int + main () + { + const float array[2] = { 2, 3 }; + for (uintv i; (i < 2) == 3; i = i + 2) + { + const floatv ii (i + 2); + floatv a (array, i); + if ((a == ii) != 3) + abort (); + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40991.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40991.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr40991.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr40991.C Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,113 ---- + /* { dg-options "-std=gnu++0x" } */ + + typedef __SIZE_TYPE__ size_t; + namespace std __attribute__ ((__visibility__ ("default"))) { + using ::size_t; + void __throw_bad_function_call() __attribute__((__noreturn__)); + } + inline void* operator new(std::size_t, void* __p) throw() { + return __p; + } + namespace std { + class type_info { + public: + bool operator==(const type_info& __arg) const { } + }; + namespace tr1 { + template struct integral_constant { }; + typedef integral_constant true_type; + template + struct _Maybe_unary_or_binary_function { }; + class _Undefined_class; + union _Nocopy_types { + void (_Undefined_class::*_M_member_pointer)(); + }; + union _Any_data { + void* _M_access() { + return &_M_pod_data[0]; + } + char _M_pod_data[sizeof(_Nocopy_types)]; + }; + enum _Manager_operation { __get_type_info, __get_functor_ptr, __clone_functor, __destroy_functor }; + template struct _Simple_type_wrapper { + _Simple_type_wrapper(_Tp __value) : __value(__value) { } + _Tp __value; + }; + template class function; + class _Function_base { + public: + static const std::size_t _M_max_size = sizeof(_Nocopy_types); + static const std::size_t _M_max_align = __alignof__(_Nocopy_types); + template class _Base_manager { + static const bool __stored_locally = (sizeof(_Functor) <= _M_max_size && __alignof__(_Functor) <= _M_max_align && (_M_max_align % __alignof__(_Functor) == 0)); + typedef integral_constant _Local_storage; + public: + static bool _M_manager(_Any_data& __dest, const _Any_data& __source, _Manager_operation __op) { } + static void _M_init_functor(_Any_data& __functor, const _Functor& __f) { + _M_init_functor(__functor, __f, _Local_storage()); + } + template static bool _M_not_empty_function(_Tp _Class::* const& __mp) { + return __mp; + } + static void _M_init_functor(_Any_data& __functor, const _Functor& __f, true_type) { + new (__functor._M_access()) _Functor(__f); + } + }; + ~_Function_base() { + if (_M_manager) _M_manager(_M_functor, _M_functor, __destroy_functor); + } + bool _M_empty() const { + return !_M_manager; + } + typedef bool (*_Manager_type)(_Any_data&, const _Any_data&, _Manager_operation); + _Any_data _M_functor; + _Manager_type _M_manager; + }; + template class _Function_handler; + template class _Function_handler<_Res(_ArgTypes...), _Member _Class::*> : public _Function_handler { + public: + static _Res _M_invoke(const _Any_data& __functor, _ArgTypes... __args) { } + }; + template class _Function_handler : public _Function_base::_Base_manager< _Simple_type_wrapper< _Member _Class::* > > { }; + template class function<_Res(_ArgTypes...)> : public _Maybe_unary_or_binary_function<_Res, _ArgTypes...>, private _Function_base { + typedef _Res _Signature_type(_ArgTypes...); + struct _Useless { }; + public: + template function(_Functor __f, _Useless = _Useless()); + _Res operator()(_ArgTypes... __args) const; + const type_info& target_type() const; + typedef _Res (*_Invoker_type)(const _Any_data&, _ArgTypes...); + _Invoker_type _M_invoker; + }; + template template function<_Res(_ArgTypes...)>:: function(_Functor __f, _Useless) : _Function_base() { + typedef _Function_handler<_Signature_type, _Functor> _My_handler; + if (_My_handler::_M_not_empty_function(__f)) { + _M_invoker = &_My_handler::_M_invoke; + _M_manager = &_My_handler::_M_manager; + _My_handler::_M_init_functor(_M_functor, __f); + } + } + template _Res function<_Res(_ArgTypes...)>:: operator()(_ArgTypes... __args) const { + if (_M_empty()) { + __throw_bad_function_call(); + } + return _M_invoker(_M_functor, __args...); + } + template const type_info& function<_Res(_ArgTypes...)>:: target_type() const { + if (_M_manager) { + _Any_data __typeinfo_result; + _M_manager(__typeinfo_result, _M_functor, __get_type_info); + } + } + } + } + struct X { + int bar; + }; + void test05() { + using std::tr1::function; + X x; + function frm(&X::bar); + frm(x) == 17; + typeid(int X::*) == frm.target_type(); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41144.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41144.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41144.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41144.C Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + + struct rgba8; + template class span_gouraud { + public: + struct coord_type { }; + coord_type m_coord[3]; + }; + template class span_gouraud_rgba : public span_gouraud + { + typedef ColorT color_type; + typedef span_gouraud base_type; + typedef typename base_type::coord_type coord_type; + public: + void prepare() { + coord_type coord[3]; + } + }; + void the_application() { + typedef span_gouraud_rgba gouraud_span_gen_type; + gouraud_span_gen_type span_gouraud; + span_gouraud.prepare(); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41257-2.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41257-2.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41257-2.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41257-2.C Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,16 ---- + /* { dg-do link } */ + + struct A + { + virtual ~A(); + }; + + struct B : virtual A + { + virtual ~B() {} + }; + + int main() + { + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41257.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41257.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41257.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41257.C Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,20 ---- + /* { dg-do compile } */ + + struct A + { + virtual void foo(); + virtual ~A(); + int i; + }; + + struct B : virtual A {}; + + struct C : B + { + virtual void foo(); + }; + + void bar() + { + C().foo(); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41273.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41273.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41273.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41273.C Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + /* { dg-options "-g" } */ + + long *H2_ipX_ener_sort; + double H2_old_populations[2]; + double H2_total; + + void H2_LevelPops() + { + double sum_pop = 0.; + long nEner = 0; + while( nEner < 3 && sum_pop/H2_total < 0.99999 ) + { + long ip = H2_ipX_ener_sort[nEner]; + sum_pop += H2_old_populations[ip]; + ++nEner; + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41680.C gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41680.C *** gcc-4.4.1/gcc/testsuite/g++.dg/torture/pr41680.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/torture/pr41680.C Mon Oct 12 13:40:17 2009 *************** *** 0 **** --- 1,23 ---- + // PR target/41680 + // { dg-do compile } + + extern void baz (float); + + inline bool + bar (float x) + { + union { float f; int i; } u; + u.f = x; + return (u.i & 1); + } + + void + foo (float *x) + { + for (int i = 0; i < 10; i++) + { + float f = x[i]; + if (!bar (f)) + baz (f); + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/tree-ssa/pr41275.C gcc-4.4.2/gcc/testsuite/g++.dg/tree-ssa/pr41275.C *** gcc-4.4.1/gcc/testsuite/g++.dg/tree-ssa/pr41275.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/tree-ssa/pr41275.C Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,16 ---- + // PR middle-end/41275 + // { dg-do compile } + // { dg-options "-O2" } + // this used to ICE + struct ErrmsgWindow + { + virtual ~ErrmsgWindow() + { + extern int _switch_mode_errorstr; + _switch_mode_errorstr = 42; + } + }; + void ShowErrorMessage(void) + { + ErrmsgWindow w; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C gcc-4.4.2/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C *** gcc-4.4.1/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/g++.dg/warn/Wreturn-type-6.C Sun Jul 26 16:05:22 2009 *************** *** 0 **** --- 1,13 ---- + /* PR c++/40749 */ + /* { dg-do "compile" } */ + /* { dg-options "-Wreturn-type" } */ + + struct A {}; + const A a() {} /* { dg-warning "no return statement" } */ + const A& b() {} /* { dg-warning "no return statement" } */ + + const int c() {} /* { dg-warning "no return statement" } */ + + template + const int foo(T t) {} /* { dg-warning "no return statement" } */ + int d = foo(0), e = foo(1); diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.brendan/init4.C gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.brendan/init4.C *** gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.brendan/init4.C Thu May 1 02:02:59 2003 --- gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.brendan/init4.C Fri Jul 24 18:06:08 2009 *************** *** 2,5 **** // GROUPS passed initialization struct CharList { int i; }; ! const CharList& terminals = { 1 };// { dg-error "" } .* --- 2,5 ---- // GROUPS passed initialization struct CharList { int i; }; ! const CharList& terminals = { 1 }; // { dg-error "initializer lists" } c++0x diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C *** gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C Wed Mar 11 17:52:06 2009 --- gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.jason/thunk2.C Tue Jul 28 06:56:49 2009 *************** *** 1,6 **** // { dg-do run { target fpic } } // { dg-options "-fPIC" } - // { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))|\[Bb\]ad fixup at .DATA.:" "PIC unsupported" { xfail *-*-netware* } 0 } // { dg-skip-if "requires unsupported run-time relocation" { spu-*-* } { "*" } { "" } } // Test that non-variadic function calls using thunks and PIC work right. --- 1,5 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.law/weak.C gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.law/weak.C *** gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.law/weak.C Fri Dec 9 23:34:09 2005 --- gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.law/weak.C Sat Jul 25 13:54:21 2009 *************** *** 1,4 **** --- 1,5 ---- // { dg-do link { target i?86-*-linux* x86_64-*-linux* } } + // { dg-require-effective-target static } // { dg-options "-static" } // Bug: g++ fails to instantiate operator<<. diff -Nrcpad gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog *** gcc-4.4.1/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Wed Jul 22 07:28:34 2009 --- gcc-4.4.2/gcc/testsuite/g++.old-deja/g++.oliva/ChangeLog Thu Oct 15 07:39:07 2009 *************** *** 1,3 **** --- 1,7 ---- + 2009-10-15 Release Manager + + * GCC 4.4.2 released. + 2009-07-22 Release Manager * GCC 4.4.1 released. diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c Mon Dec 29 10:31:14 2008 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c Fri Aug 28 09:57:51 2009 *************** *** 1,4 **** --- 1,5 ---- /* { dg-skip-if "too complex for avr and picochip" { picochip-*-* avr-*-* } { "*" } { "" } } */ + /* { dg-timeout-factor 4.0 } */ #define LIM1(x) x##0, x##1, x##2, x##3, x##4, x##5, x##6, x##7, x##8, x##9, #define LIM2(x) LIM1(x##0) LIM1(x##1) LIM1(x##2) LIM1(x##3) LIM1(x##4) \ LIM1(x##5) LIM1(x##6) LIM1(x##7) LIM1(x##8) LIM1(x##9) diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr39779.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr39779.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr39779.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr39779.c Wed Sep 23 09:37:25 2009 *************** *** 0 **** --- 1,5 ---- + int test (char v1) + { + v1 >>= 0xdebecced; + return v1; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40321.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40321.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40321.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40321.c Wed Jul 22 14:45:21 2009 *************** *** 0 **** --- 1,12 ---- + struct X { int flag; int pos; }; + int foo(struct X *a, struct X *b) + { + while (1) + { + if (a->flag) + break; + ({ struct X *tmp = a; a = b; b = tmp; }); + } + + return a->pos + b->pos; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40570.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40570.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40570.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40570.c Wed Aug 5 14:45:15 2009 *************** *** 0 **** --- 1,22 ---- + extern void anything(int); + + static int foo(int i); + + static int bar(int i) { foo(i); } + + extern int j; + + static int foo(int i) + { + if (j) + anything(j); + return bar(i); + } + + int baz() + { + foo(0); + if (baz()) + return 1; + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40676.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40676.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40676.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40676.c Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,33 ---- + extern int f1(); + extern int f2(void*); + extern void* f3(int); + int xmsih; + typedef unsigned short XWCHAR; + + inline unsigned int xstrlenW( const XWCHAR *str ) + { + const XWCHAR *s = str; + while (*s) s++; + return s - str; + } + + + static int msi_dialog_register_class( void ) + { + int cls; + + if( !f2( &cls ) ) + return 0; + if( !f2( &cls ) ) + return 0; + xmsih = f1(); + if( !xmsih ) + return 0; + return 1; + } + + void *xmsi_dialog_create(const XWCHAR* szDialogName) + { + msi_dialog_register_class(); + return f3(xstrlenW(szDialogName)); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40692.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40692.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40692.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40692.c Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,15 ---- + /* PR middle-end/40692 */ + + #define M1(x) (((x) & 0x00000002) ? 0x2 : ((x) & 0x1)) + #define M2(x) (((x) & 0x0000000c) ? M1 ((x) >> 2) << 2 : M1 (x)) + #define M3(x) (((x) & 0x000000f0) ? M2 ((x) >> 4) << 4 : M2 (x)) + #define M4(x) (((x) & 0x0000ff00) ? M3 ((x) >> 8) << 8 : M3 (x)) + #define M5(x) (((x) & 0xffff0000) ? M4 ((x) >> 16) << 16 : M4 (x)) + + struct A { char e; char f; }; + + long + foo (void) + { + return M5 (4096UL - (long) &((struct A *) 0)->f); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40753.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40753.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40753.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40753.c Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,20 ---- + typedef struct { + unsigned nargs; + } ffi_cif; + typedef struct { + char tramp[24]; + ffi_cif *cif; + } ffi_closure; + extern void *memcpy (void *, const void *, __SIZE_TYPE__); + extern void ffi_closure_LINUX64 (void); + + int + ffi_prep_closure_loc (ffi_closure *closure, ffi_cif *cif) + { + void **tramp = (void **) &closure->tramp[0]; + + memcpy (tramp, (char *) ffi_closure_LINUX64, 16); + closure->cif = cif; + + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40964.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40964.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr40964.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr40964.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,10 ---- + struct alloc2 { + int bla; + char * __restrict data; + char * __restrict data2; + }; + struct alloc2 b; + void * f (void) + { + return b.data; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41006-1.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41006-1.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41006-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41006-1.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,17 ---- + typedef int (*FARPROC)(); + + typedef int (*LPFN_ACCEPTEX)(void*); + static LPFN_ACCEPTEX acceptex_fn; + + int xWSAIoctl(void*); + static void get_fn(FARPROC* fn) + { + FARPROC func; + if (!xWSAIoctl( &func)) + *fn = func; + } + + void get_fn_pointers() + { + get_fn((FARPROC*)&acceptex_fn); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41006-2.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41006-2.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41006-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41006-2.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,15 ---- + typedef int *FARPROC; + static int * __restrict__ acceptex_fn; + + int xWSAIoctl(void*); + static void get_fn(FARPROC* fn) + { + FARPROC func; + if (!xWSAIoctl( &func)) + *fn = func; + } + + void get_fn_pointers() + { + get_fn((FARPROC*)&acceptex_fn); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41016.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41016.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41016.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41016.c Sun Aug 9 21:39:19 2009 *************** *** 0 **** --- 1,17 ---- + typedef struct _IO_FILE FILE; + void + CompareRNAStructures (FILE * ofp, int start, int L, char *ss_true, char *ss) + { + int i; + float agree = 0.; + float pairs = 0.; + float pairs_true = 0.; + for (i = 0; i < L; i++) + { + pairs_true += 1.; + agree += 1.; + } + if (((int) pairs % 2 != 0) || ((int) pairs_true % 2 != 0) + || ((int) agree % 2 != 0)) + Die ("Error in CompareRNAStrutures(); odd number of paired nucleotides\n"); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41101.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41101.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41101.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41101.c Wed Sep 16 11:56:31 2009 *************** *** 0 **** --- 1,19 ---- + int func(int); + + void + bug(int* x, int* y, unsigned long int N) + { + unsigned long int i; + int* t; + + while (1) + { + for (i=1; i<=N; i++) + { + y[i] = func(x[i] - x[1]); + if (y[i]) + return; + } + t=x; x=y; y=t; + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41163.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41163.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41163.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41163.c Sun Aug 30 02:06:32 2009 *************** *** 0 **** --- 1,10 ---- + struct option { + void *value; + }; + void parse_options (struct option *); + void cmd_grep(void) + { + struct option options[] = { { &options } }; + parse_options(options); + } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41181.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41181.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41181.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41181.c Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,10 ---- + char paths[1024]; + static void x264_slicetype_path(char (*best_paths)[250], int n, int length) + { + __builtin_memcpy (best_paths[n], paths, length); + } + void x264_slicetype_analyse(int n, int length) + { + char best_paths[250][250]; + x264_slicetype_path (best_paths, n, length); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41282.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41282.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41282.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41282.c Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,20 ---- + struct S + { + unsigned int iu; + }; + + union U + { + struct S s; + signed int is; + }; + + extern signed int bar (); + + struct S foo (void) + { + union U u; + + u.is = bar (); + return u.s; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41646.c gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41646.c *** gcc-4.4.1/gcc/testsuite/gcc.c-torture/compile/pr41646.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.c-torture/compile/pr41646.c Mon Oct 12 13:38:29 2009 *************** *** 0 **** --- 1,28 ---- + /* PR rtl-optimization/41646 */ + + struct A { unsigned long a; }; + struct B { unsigned short b, c, d; }; + struct B bar (unsigned long); + + char * + foo (char *a, struct A *x) + { + struct B b = bar (x->a); + unsigned char c; + unsigned short d; + a[3] = ((unsigned char) (b.b % 10) + 48); + d = b.b / 10; + a[2] = ((unsigned char) (d % 10) + 48); + d = d / 10; + a[1] = ((unsigned char) (d % 10) + 48); + a[0] = ((unsigned char) ((d / 10) % 10) + 48); + a[4] = 46; + c = (unsigned char) b.c; + a[6] = (c % 10 + 48); + a[5] = ((c / 10) % 10 + 48); + a[7] = 46; + c = b.d; + a[9] = (c % 10 + 48); + a[8] = ((c / 10) % 10 + 48); + return a + 10; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20010912-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/20010912-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20010912-1.c Sun Oct 16 01:14:19 2005 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20010912-1.c Tue Jul 28 06:56:49 2009 *************** *** 1,6 **** /* { dg-do run { target fpic } } */ /* { dg-options "-O2 -fpic" } */ - /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */ extern void abort (void); extern void exit (int); --- 1,5 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20021018-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/20021018-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20021018-1.c Sun Oct 16 01:14:19 2005 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20021018-1.c Tue Jul 28 06:56:49 2009 *************** *** 1,6 **** /* { dg-do run { target fpic } } */ /* { dg-options "-O2 -fpic" } */ - /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */ extern void abort (void); extern void exit (int); --- 1,5 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20030213-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/20030213-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20030213-1.c Sun Oct 16 01:14:19 2005 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20030213-1.c Tue Jul 28 06:56:49 2009 *************** *** 1,7 **** /* Testcase for http://gcc.gnu.org/ml/gcc-patches/2003-02/msg01017.html */ /* { dg-do link { target fpic } } */ /* { dg-options "-O -fpic" } */ - /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */ int *g; --- 1,6 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20030225-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/20030225-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20030225-1.c Sun Oct 16 01:14:19 2005 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20030225-1.c Tue Jul 28 06:56:49 2009 *************** *** 5,11 **** and Benjamin Herrenschmidt . */ /* { dg-do run { target fpic } } */ /* { dg-options "-O2 -fPIC" } */ - /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */ extern void exit (int); --- 5,10 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20030708-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/20030708-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20030708-1.c Sun Oct 16 01:14:19 2005 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20030708-1.c Tue Jul 28 06:56:49 2009 *************** *** 1,7 **** /* PR c/11420 */ /* { dg-do link { target fpic } } */ /* { dg-options "-O2 -fpic" } */ - /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */ void (* volatile fn) (void); static void foo (void) --- 1,6 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20050321-2.c gcc-4.4.2/gcc/testsuite/gcc.dg/20050321-2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20050321-2.c Thu Apr 13 23:14:25 2006 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20050321-2.c Tue Jul 28 06:56:49 2009 *************** *** 5,11 **** figure out branch to lab is too far. */ /* { dg-do link { target fpic } } */ /* { dg-options "-g1 -fpic" } */ - /* { dg-bogus "\[Uu\]nresolved symbol .(_GLOBAL_OFFSET_TABLE_|\[_.A-Za-z\]\[_.0-9A-Za-z\]*@(PLT|GOT|GOTOFF))" "PIC unsupported" { xfail *-*-netware* } 0 } */ /* { dg-require-effective-target int32plus } */ #define A(n) \ --- 5,10 ---- diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/20090902-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/20090902-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/20090902-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/20090902-1.c Wed Sep 2 18:47:29 2009 *************** *** 0 **** --- 1,3 ---- + /* { dg-do compile } */ + #define STRING(x) #x + char buf[] = STRING(L'\x123'); diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-15.c gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-15.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-15.c Sun Jan 25 20:15:44 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-15.c Tue Jul 28 06:56:49 2009 *************** *** 1,6 **** --- 1,7 ---- /* { dg-do compile } */ /* Remove pedantic. Allow the GCC extension to use char for bitfields. */ /* { dg-options "" } */ + /* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ struct t { diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-16.c gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-16.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-16.c Fri Jan 23 06:29:54 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-16.c Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ + /* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target i?86-*-netware } } */ struct t { diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-17.c gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-17.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-17.c Sun Jan 25 20:15:44 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-17.c Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "" } */ + /* { dg-options "-mno-ms-bitfields" { target i?86-*-netware } } */ struct t { diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-18.c gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-18.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/bitfld-18.c Fri Jan 23 06:29:54 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/bitfld-18.c Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** --- 1,6 ---- /* { dg-do compile } */ /* { dg-options "-Wno-packed-bitfield-compat" } */ + /* { dg-options "-Wno-packed-bitfield-compat -mno-ms-bitfields" { target i?86-*-netware } } */ struct t { diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/builtins-10.c gcc-4.4.2/gcc/testsuite/gcc.dg/builtins-10.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/builtins-10.c Wed Mar 9 20:11:48 2005 --- gcc-4.4.2/gcc/testsuite/gcc.dg/builtins-10.c Mon Aug 24 09:52:03 2009 *************** void test(double x) *** 25,31 **** link_error (); if (pow(pow(x,4.0),0.25) != x) ! link_error (); } void test2(double x, double y, double z) --- 25,31 ---- link_error (); if (pow(pow(x,4.0),0.25) != x) ! /* XFAIL. PR41098. */; } void test2(double x, double y, double z) *************** void test2(double x, double y, double z) *** 42,48 **** if (pow(sqrt(x),y) != pow(x,y*0.5)) link_error (); ! if (pow(pow(x,y),z) != pow(x,y*z)) link_error (); } --- 42,48 ---- if (pow(sqrt(x),y) != pow(x,y*0.5)) link_error (); ! if (pow(pow(fabs(x),y),z) != pow(fabs(x),y*z)) link_error (); } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/builtins-config.h gcc-4.4.2/gcc/testsuite/gcc.dg/builtins-config.h *** gcc-4.4.1/gcc/testsuite/gcc.dg/builtins-config.h Wed Jun 18 21:41:13 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/builtins-config.h Sun Aug 30 22:45:18 2009 *************** *** 1,4 **** ! /* Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation. Define macros useful in tests for bulitin functions. */ --- 1,4 ---- ! /* Copyright (C) 2003, 2004, 2005, 2006, 2009 Free Software Foundation. Define macros useful in tests for bulitin functions. */ *************** *** 15,22 **** /* Irix6 doesn't have the entire C99 runtime. */ #elif defined(__AVR__) /* AVR doesn't have the entire C99 runtime. */ ! #elif defined(__FreeBSD__) && (__FreeBSD__ < 5) ! /* FreeBSD before version 5 doesn't have the entire C99 runtime. */ #elif defined(__netware__) /* NetWare doesn't have the entire C99 runtime. */ #elif defined(__vxworks) --- 15,22 ---- /* Irix6 doesn't have the entire C99 runtime. */ #elif defined(__AVR__) /* AVR doesn't have the entire C99 runtime. */ ! #elif defined(__FreeBSD__) ! /* FreeBSD up to at least version 8 lacks support for cexp and friends. */ #elif defined(__netware__) /* NetWare doesn't have the entire C99 runtime. */ #elif defined(__vxworks) diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/c90-const-expr-2.c gcc-4.4.2/gcc/testsuite/gcc.dg/c90-const-expr-2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/c90-const-expr-2.c Fri Apr 25 08:40:10 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/c90-const-expr-2.c Tue Sep 8 19:10:43 2009 *************** int *a; *** 14,21 **** int b; long *c; ! #if defined(_LP64) || defined(_WIN64) #define ZERO 0L #else #define ZERO 0 #endif --- 14,23 ---- int b; long *c; ! #if defined(_LP64) #define ZERO 0L + #elif defined(_WIN64) + #define ZERO 0LL #else #define ZERO 0 #endif diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/c99-const-expr-2.c gcc-4.4.2/gcc/testsuite/gcc.dg/c99-const-expr-2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/c99-const-expr-2.c Fri Apr 25 08:40:10 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/c99-const-expr-2.c Tue Sep 8 19:10:43 2009 *************** int *a; *** 14,21 **** int b; long *c; ! #if defined(_LP64) || defined(_WIN64) #define ZERO 0L #else #define ZERO 0 #endif --- 14,23 ---- int b; long *c; ! #if defined(_LP64) #define ZERO 0L + #elif defined(_WIN64) + #define ZERO 0LL #else #define ZERO 0 #endif diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/cdce1.c gcc-4.4.2/gcc/testsuite/gcc.dg/cdce1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/cdce1.c Thu Feb 5 11:59:20 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/cdce1.c Tue Jul 28 16:11:21 2009 *************** *** 1,7 **** /* { dg-do run } */ /* { dg-skip-if "doubles are floats" { "avr-*-*" "m32c-*-*" } { "*" } { "" } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ ! /* { dg-final { scan-tree-dump "cdce1.c:16: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include --- 1,8 ---- /* { dg-do run } */ /* { dg-skip-if "doubles are floats" { "avr-*-*" "m32c-*-*" } { "*" } { "" } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ ! /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details" { target *-*-netware* } } */ ! /* { dg-final { scan-tree-dump "cdce1.c:17: note: function call is shrink-wrapped into error conditions\." "cdce" } } */ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/cdce2.c gcc-4.4.2/gcc/testsuite/gcc.dg/cdce2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/cdce2.c Wed Jun 18 21:41:13 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/cdce2.c Tue Jul 28 16:11:21 2009 *************** *** 1,7 **** /* { dg-do run } */ /* { dg-skip-if "doubles are floats" { "avr-*-*" } { "*" } { "" } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ ! /* { dg-final { scan-tree-dump "cdce2.c:16: note: function call is shrink-wrapped into error conditions\." "cdce" } }*/ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include --- 1,8 ---- /* { dg-do run } */ /* { dg-skip-if "doubles are floats" { "avr-*-*" } { "*" } { "" } } */ /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details -lm" } */ ! /* { dg-options "-O2 -fmath-errno -fdump-tree-cdce-details" { target *-*-netware* } } */ ! /* { dg-final { scan-tree-dump "cdce2.c:17: note: function call is shrink-wrapped into error conditions\." "cdce" } }*/ /* { dg-final { cleanup-tree-dump "cdce" } } */ #include diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/cond-constqual-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/cond-constqual-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/cond-constqual-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/cond-constqual-1.c Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,15 ---- + /* Test for const qualification of type of conditional expression. */ + /* { dg-do compile } */ + /* { dg-options "" } */ + + int foo (int) __attribute__ ((const)); + const int i; + + void + test (void) + { + __typeof__ (1 ? foo (0) : 0) texpr; + __typeof__ (1 ? i : 0) texpr2; + texpr = 0; /* { dg-bogus "read-only variable" "conditional expression with call to const function" } */ + texpr2 = 0; /* { dg-error "read-only variable" "conditional expression with const variable" } */ + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/debug/20020224-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/debug/20020224-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/debug/20020224-1.c Tue Feb 26 19:05:26 2002 --- gcc-4.4.2/gcc/testsuite/gcc.dg/debug/20020224-1.c Sun Aug 16 09:07:40 2009 *************** *** 1,9 **** /* { dg-do compile } */ ! /* Here's the deal: f3 is not inlined because it's too big, but f2 and ! f1 are inlined into it. We used to fail to emit debugging info for ! t1, because it was moved inside the (inlined) block of f1, marked ! as abstract, then we'd crash. */ #define UNUSED __attribute__((unused)) #define EXT __extension__ --- 1,13 ---- + /* { dg-options "-g3 -O" } */ /* { dg-do compile } */ ! /* Here's the deal: f4 is inlined into main, f3 is inlined into f4, f2 is ! inlined into f1. The DIE of main should contain DW_TAG_inlined_subroutines ! children for f4, f3, f2 and f1. Also, there should be a DIE representing ! and out of line instance of f4, aside the DIE representing its abstract ! instance. ! We used to fail to emit debugging info for t1, because it was moved ! inside the (inlined) block of f1, marked as abstract, then we'd crash. */ #define UNUSED __attribute__((unused)) #define EXT __extension__ *************** f4 (void) *** 58,60 **** --- 62,71 ---- return; } + + int + main () + { + int foo = 1; + f4 (); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c gcc-4.4.2/gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/debug/dwarf2/global-used-types.c Wed Sep 23 14:58:58 2009 *************** *** 0 **** --- 1,14 ---- + /* + Contributed by Dodji Seketeli + { dg-options "-g -dA -fno-merge-debug-strings" } + { dg-do compile } + { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_enumeration_type" 1 } } + { dg-final { scan-assembler-times "DIE \\(0x.*?\\) DW_TAG_enumerator" 2 } } + { dg-final { scan-assembler-times "ascii \"a.0\"\[\t \]+.*?DW_AT_name" 1 } } + { dg-final { scan-assembler-times "ascii \"b.0\"\[\t \]+.*?DW_AT_name" 1 } } + */ + + enum { a, b }; + + int v = a; + char s[b]; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c gcc-4.4.2/gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/debug/dwarf2/inline2.c Mon Aug 17 10:04:21 2009 *************** *** 0 **** --- 1,70 ---- + /* Contributed by Dodji Seketeli + Origin: PR debug/37801 + + Abstract instances (DW_TAG_subroutines having the DW_AT_inline attribute) + of second and first were having a DW_TAG_lexical_block DIE wrongly + representing the inlined calls to third (in second) and to + second (in first). At the same time, main didn't have children + DW_TAG_inlined_subroutine DIEs representing the inlined calls to + first, second and third. + + The ideal goal here is to test that we have no superfluous + DW_TAG_lexical_block DIE anymore, that abstract instances DIEs have + no descendant DIE with a DW_AT_abstract_origin attribute, and that main has + properly nested DW_TAG_inlined_subroutine DIEs for third, second and first. + */ + + /* { dg-options "-O -g3 -dA" } */ + /* { dg-do compile } */ + + /* There are 6 inlined subroutines: + - One for each subroutine inlined into main, that's 3. + - One for earch subroutine inline into the out of line instances + of third, second and first. */ + /* { dg-final { scan-assembler-times "\\(DIE \\(.*?\\) DW_TAG_inlined_subroutine" 6 } } */ + + /* Likewise we should have 6 DW_TAG_lexical_block DIEs: + - One for each subroutine inlined into main, so that's 3. + - One for each subroutine inlined in the out of line instances + of third, second and first, that's 3. + */ + /* { dg-final { scan-assembler-times "\\(DIE \\(.*?\\) DW_TAG_lexical_block" 6 } } */ + + + /* There are 3 DW_AT_inline attributes: one per abstract inline instance. + The value of the attribute must be 0x3, meaning the function was + actually inlined. */ + /* { dg-final { scan-assembler-times "byte.*?0x3.*? DW_AT_inline" 3 } } */ + + + inline void + third (int arg3) + { + int var3 = arg3; + int* a = 0; + a[0] = var3; + } + + inline void + second (int arg2) + { + int var2 = arg2; + third (var2+1); + } + + inline void + first (int arg1) + { + int var1 = arg1; + second (var1+1); + } + + int + main () + { + int some_int = 1; + first (some_int); + return 0; + } + + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/dfp/pr39902.c gcc-4.4.2/gcc/testsuite/gcc.dg/dfp/pr39902.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/dfp/pr39902.c Mon Jun 29 17:13:33 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/dfp/pr39902.c Thu Jul 30 17:08:09 2009 *************** doit128 (void) *** 189,195 **** if (COMPARE128 (a128, p128_2_0)) FAILURE ! a128.d = p128_2_0.d * 1.0DD; if (COMPARE128 (a128, p128_2_0)) FAILURE --- 189,195 ---- if (COMPARE128 (a128, p128_2_0)) FAILURE ! a128.d = p128_2_0.d * 1.0DL; if (COMPARE128 (a128, p128_2_0)) FAILURE *************** doit128 (void) *** 197,203 **** if (COMPARE128 (a128, m128_2_0)) FAILURE ! a128.d = p128_2_0.d * -1.0DD; if (COMPARE128 (a128, m128_2_0)) FAILURE --- 197,203 ---- if (COMPARE128 (a128, m128_2_0)) FAILURE ! a128.d = p128_2_0.d * -1.0DL; if (COMPARE128 (a128, m128_2_0)) FAILURE *************** doit128 (void) *** 208,214 **** if (! (COMPARE128 (a128, p128_2_0))) FAILURE ! a128.d = p128_2_0.d * 1.DD; if (! (COMPARE128 (a128, p128_2_0))) FAILURE --- 208,214 ---- if (! (COMPARE128 (a128, p128_2_0))) FAILURE ! a128.d = p128_2_0.d * 1.DL; if (! (COMPARE128 (a128, p128_2_0))) FAILURE *************** doit128 (void) *** 216,222 **** if (! (COMPARE128 (a128, m128_2_0))) FAILURE ! a128.d = p128_2_0.d * -1.DD; if (! (COMPARE128 (a128, m128_2_0))) FAILURE } --- 216,222 ---- if (! (COMPARE128 (a128, m128_2_0))) FAILURE ! a128.d = p128_2_0.d * -1.DL; if (! (COMPARE128 (a128, m128_2_0))) FAILURE } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/dfp/pr41049.c gcc-4.4.2/gcc/testsuite/gcc.dg/dfp/pr41049.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/dfp/pr41049.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/dfp/pr41049.c Fri Sep 18 17:03:55 2009 *************** *** 0 **** --- 1,571 ---- + /* { dg-options "-std=gnu99" } */ + + /* The preferred exponent of the result of a conversion from an + integral type to a decimal float type is zero. A conversion at + either compile time or runtime should not change the number of + trailing zeroes. */ + + int failures; + + #ifdef DBG + extern int printf (const char *, ...); + #define FAILURE { printf ("failed at line %d\n", __LINE__); failures++; } + #define FINISH if (failures != 0) __builtin_abort (); return 0; + #else + #define FAILURE __builtin_abort (); + #define FINISH return 0; + #endif + + #define PASTE2(A,B) A ## B + #define PASTE(A,B) PASTE2(A,B) + + #define TESTVAL_NEG(VAL,SUF,SIZE) \ + x = PASTE(PASTE(VAL,.),SUF); \ + si = VAL; \ + sll = PASTE(VAL,LL); \ + a = si; \ + b = sll; \ + c = VAL; \ + d = PASTE(VAL,LL); \ + if ((__builtin_memcmp ((void *)&x, (void *)&a, SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&b,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&c,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&d,SIZE) != 0)) \ + FAILURE + + #define TESTVAL_NEG_BIG(VAL,SUF,SIZE) \ + x = PASTE(PASTE(VAL,.),SUF); \ + sll = PASTE(VAL,LL); \ + a = sll; \ + b = PASTE(VAL,LL); \ + if ((__builtin_memcmp ((void *)&x, (void *)&a, SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&b,SIZE) != 0)) \ + FAILURE + + #define TESTVAL_NONNEG(VAL,SUF,SIZE) \ + x = PASTE(PASTE(VAL,.),SUF); \ + si = VAL; \ + ui = VAL; \ + sll = PASTE(VAL,LL); \ + ull = PASTE(VAL,ULL); \ + a = si; \ + b = sll; \ + c = ui; \ + d = ull; \ + e = VAL; \ + f = VAL; \ + g = PASTE(VAL,LL); \ + h = PASTE(VAL,ULL); \ + if ((__builtin_memcmp ((void *)&x, (void *)&a, SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&b,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&c,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&d,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&e,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&f,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&g,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&x, (void *)&h,SIZE) != 0)) \ + FAILURE + + #define TESTVAL_NONNEG_BIG(VAL,SUF,SIZE) \ + x = PASTE(PASTE(VAL,.),SUF); \ + sll = PASTE(VAL,LL); \ + ull = PASTE(VAL,ULL); \ + b = sll; \ + d = ull; \ + f = PASTE(VAL,LL); \ + g = PASTE(VAL,ULL); \ + if ((__builtin_memcmp ((void *)&x, (void *)&b, SIZE) != 0) \ + || (__builtin_memcmp ((void *)&d, (void *)&d,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&f, (void *)&d,SIZE) != 0) \ + || (__builtin_memcmp ((void *)&g, (void *)&d,SIZE) != 0)) \ + FAILURE + + #undef SUFFIX + #define SUFFIX DF + #undef TYPE + #define TYPE _Decimal32 + + void + zeroes_32 (void) + { + volatile TYPE x, a, b, c, d, e, f, g, h; + volatile int si; + volatile unsigned int ui; + volatile long long sll; + volatile unsigned long long ull; + + TESTVAL_NONNEG (0, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000000000, SUFFIX, sizeof (TYPE)); + + TESTVAL_NEG (0, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000000000, SUFFIX, sizeof (TYPE)); + } + + void + round_32 (void) + { + volatile TYPE x, a, b, c, d, e, f, g, h; + volatile int si; + volatile unsigned int ui; + volatile long long sll; + volatile unsigned long long ull; + + TESTVAL_NONNEG (10000049, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000050, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000051, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000001, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000002, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000003, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000004, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000049, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000051, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000006, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000007, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000008, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000009, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000010, SUFFIX, sizeof (TYPE)); + + TESTVAL_NEG (-10000049, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000050, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000051, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000001, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000002, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000003, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000004, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000049, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000051, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000006, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000007, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000008, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000009, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000010, SUFFIX, sizeof (TYPE)); + } + + #undef SUFFIX + #define SUFFIX DD + #undef TYPE + #define TYPE _Decimal64 + + void + zeroes_64 (void) + { + volatile TYPE x, a, b, c, d, e, f, g, h; + volatile int si; + volatile unsigned int ui; + volatile long long sll; + volatile unsigned long long ull; + + TESTVAL_NONNEG (0, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000000000, SUFFIX, sizeof (TYPE)); + + TESTVAL_NEG (0, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000000000, SUFFIX, sizeof (TYPE)); + } + + void + round_64 (void) + { + volatile TYPE x, a, b, c, d, e, f, g, h; + volatile int si; + volatile unsigned int ui; + volatile long long sll; + volatile unsigned long long ull; + + TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000001, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000002, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000003, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000004, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000049, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000051, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000006, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000007, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000008, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000009, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000010, SUFFIX, sizeof (TYPE)); + + TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000001, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000002, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000003, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000004, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000049, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000051, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000006, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000007, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000008, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000009, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000010, SUFFIX, sizeof (TYPE)); + } + + #undef SUFFIX + #define SUFFIX DL + #undef TYPE + #define TYPE _Decimal128 + + void + zeroes_128 (void) + { + volatile TYPE x, a, b, c, d, e, f, g, h; + volatile int si; + volatile unsigned int ui; + volatile long long sll; + volatile unsigned long long ull; + + TESTVAL_NONNEG (0, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (5000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (9000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (50000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (90000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (100000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (500000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (900000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG (1000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (50000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (90000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (100000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (500000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (900000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (1000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (5000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NONNEG_BIG (9000000000000000000, SUFFIX, sizeof (TYPE)); + + TESTVAL_NEG (0, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-5000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-9000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-10000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-50000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-90000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-100000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-500000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-900000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG (-1000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-10000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-50000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-90000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-100000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-500000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-900000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-1000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-5000000000000000000, SUFFIX, sizeof (TYPE)); + TESTVAL_NEG_BIG (-9000000000000000000, SUFFIX, sizeof (TYPE)); + } + + + int + main () + { + zeroes_32 (); + zeroes_64 (); + zeroes_128 (); + round_32 (); + round_64 (); + + FINISH + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/large-size-array-2.c gcc-4.4.2/gcc/testsuite/gcc.dg/large-size-array-2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/large-size-array-2.c Sat Apr 26 19:14:46 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/large-size-array-2.c Tue Sep 8 19:10:43 2009 *************** *** 4,7 **** static char * name[] = { [0x80000000] = "bar" }; ! /* { dg-error "too large" "" { target { { ! lp64 } || x86_64-*-mingw* } } 6 } */ --- 4,7 ---- static char * name[] = { [0x80000000] = "bar" }; ! /* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } } 6 } */ diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/large-size-array-4.c gcc-4.4.2/gcc/testsuite/gcc.dg/large-size-array-4.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/large-size-array-4.c Sat Apr 26 19:14:46 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/large-size-array-4.c Tue Sep 8 19:10:43 2009 *************** *** 4,7 **** static char * name[] = { [0x80000000] = "bar" }; ! /* { dg-error "too large" "" { target { { ! lp64 } || x86_64-*-mingw* } } 6 } */ --- 4,7 ---- static char * name[] = { [0x80000000] = "bar" }; ! /* { dg-error "too large" "" { target { { ! lp64 } && { ! llp64 } } } 6 } */ diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr40861.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr40861.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr40861.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr40861.c Mon Sep 7 20:25:52 2009 *************** *** 0 **** --- 1,7 ---- + /* { dg-do compile } */ + /* { dg-options "-O" } */ + + int foo(int i) + { + return (1LL >> 128 * i) && i; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr40971.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr40971.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr40971.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr40971.c Tue Aug 18 11:43:16 2009 *************** *** 0 **** --- 1,23 ---- + /* PR target/40971 */ + /* { dg-do compile } */ + /* { dg-options "-O -fstack-protector -fno-strict-aliasing" } */ + /* { dg-require-effective-target fstack_protector } */ + + extern void bar (char *); + + void + foo (int f, long a) + { + { + char d[32768]; + bar (d); + } + double b = f; + while (a) + { + char c[sizeof (double)]; + __builtin_memcpy (c, &b, sizeof (c)); + if (*(double *) c != 2.0) + break; + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr41033.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr41033.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr41033.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr41033.c Thu Aug 13 06:28:28 2009 *************** *** 0 **** --- 1,24 ---- + /* { dg-options "-O1 -fno-strict-aliasing" } */ + /* PR rtl-optimization/41033 */ + + struct X { + int i; + int j; + }; + + int foo(struct X *p, struct X *q) + { + p->j = 1; + q->i = 0; + return p->j; + } + + extern void abort (void); + + int main() + { + struct X x; + if (foo (&x, (struct X *)&x.j) != 0) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr41123.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr41123.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr41123.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr41123.c Wed Aug 19 22:52:11 2009 *************** *** 0 **** --- 1,46 ---- + /* PR middle-end/41123 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -fno-strict-aliasing" } */ + + struct S { char a, b, c, d, e, f, g, h; }; + struct T { int a, b; }; + + struct S + f1 (float _Complex x) + { + return *(struct S *) & x; + } + + int + f2 (float _Complex x) + { + struct S f = f1 (x); + return f.b; + } + + struct T + f3 (float _Complex x) + { + return *(struct T *) & x; + } + + int + f4 (float _Complex x) + { + struct T f = f3 (x); + return f.a; + } + + int + f5 (float _Complex x) + { + struct T f = f3 (x); + return f.b; + } + + struct T + f6 (float _Complex x) + { + struct T f = f3 (x); + return f; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr41232.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr41232.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr41232.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr41232.c Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,14 ---- + /* { dg-do compile } */ + /* { dg-options "-O1 -g" } */ + extern int atoi (const char *); + extern int sprintf (char *, const char *, ...); + void malloc_init() { + char *cptr; + char buf[1]; + int tmbd = atoi(cptr); + if (tmbd > 0) + tmbd = (tmbd <= 124) ? tmbd : 124; + else + tmbd = 0; + sprintf(buf, "%d\n", tmbd); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr41248.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr41248.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr41248.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr41248.c Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,27 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -g" } */ + + struct __gcov_var { + unsigned int offset; + unsigned int buffer[(1 << 10) + 1]; + } __gcov_var; + unsigned int * gcov_write_words (unsigned int words) { + unsigned int *result; + result = &__gcov_var.buffer[__gcov_var.offset]; + return result; + } + + struct gcov_ctr_summary { }; + struct gcov_summary { + unsigned int checksum; + struct gcov_ctr_summary ctrs[1]; + }; + void __gcov_write_unsigned (unsigned int); + void __gcov_write_summary (unsigned int tag, + const struct gcov_summary *summary) + { + unsigned ix; + const struct gcov_ctr_summary *csum; + __gcov_write_unsigned (summary->checksum); + for (csum = summary->ctrs, ix = 1; ix--; csum++) { } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr41295.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr41295.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr41295.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr41295.c Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,91 ---- + /* { dg-do compile } */ + /* { dg-options "-O1 -g" } */ + + enum reg_class + { + BASE_REGS, + GENERAL_REGS, + LIM_REG_CLASSES + }; + + static __inline__ unsigned char + hard_reg_set_subset_p (const unsigned long x[4], const unsigned long y[4]) + { + return ((x[0] & ~y[0]) == 0 + && (x[1] & ~y[1]) == 0 + && (x[2] & ~y[2]) == 0 + && (x[3] & ~y[3]) == 0); + } + + static __inline__ unsigned char + hard_reg_set_equal_p (const unsigned long x[4], const unsigned long y[4]) + { + return x[0] == y[0] + && x[1] == y[1] + && x[2] == y[2] + && x[3] == y[3]; + } + + extern unsigned long reg_class_contents[(int) LIM_REG_CLASSES][4]; + extern int ira_important_classes_num; + extern enum reg_class ira_important_classes[(int) LIM_REG_CLASSES]; + extern enum reg_class ira_reg_class_intersect[(int) LIM_REG_CLASSES][(int) + LIM_REG_CLASSES]; + extern unsigned char ira_reg_classes_intersect_p[(int) LIM_REG_CLASSES][(int) + LIM_REG_CLASSES]; + extern enum reg_class ira_reg_class_super_classes[(int) LIM_REG_CLASSES][(int) + LIM_REG_CLASSES]; + static unsigned long temp_hard_regset[4]; + + static void + setup_reg_class_relations (void) + { + int i, cl1, cl2, cl3; + unsigned long temp_set2[4]; + for (cl1 = 0; cl1 < (int) LIM_REG_CLASSES; cl1++) + { + ira_reg_class_super_classes[cl1][0] = LIM_REG_CLASSES; + for (cl2 = 0; cl2 < (int) LIM_REG_CLASSES; cl2++) + { + ira_reg_classes_intersect_p[cl1][cl2] = 0; + { + unsigned long *scan_tp_ = (temp_set2), *scan_fp_ = + (reg_class_contents[cl2]); + scan_tp_[1] = scan_fp_[1]; + scan_tp_[2] = scan_fp_[2]; + scan_tp_[3] = scan_fp_[3]; + } + for (i = 0; i < ira_important_classes_num; i++) + { + cl3 = ira_important_classes[i]; + { + unsigned long *scan_tp_ = (temp_hard_regset), *scan_fp_ = + (reg_class_contents[cl3]); + scan_tp_[0] = scan_fp_[0]; + scan_tp_[1] = scan_fp_[1]; + scan_tp_[3] = scan_fp_[3]; + } + if (!hard_reg_set_subset_p (temp_hard_regset, temp_set2) + || (hard_reg_set_equal_p (temp_hard_regset, temp_set2) + && hard_reg_set_subset_p (reg_class_contents[cl3], + reg_class_contents[(int) + ira_reg_class_intersect + [cl1] + [cl2]]))) + ira_reg_class_intersect[cl1][cl2] = (enum reg_class) cl3; + } + } + } + } + + static void + find_reg_class_closure (void) + { + setup_reg_class_relations (); + } + + void + ira_init (void) + { + find_reg_class_closure (); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/pr41470.c gcc-4.4.2/gcc/testsuite/gcc.dg/pr41470.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/pr41470.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/pr41470.c Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + /* { dg-options "-fexceptions" } */ + void * + af (void *a) + { + return a; + } + void + bf (void) + { + void *p; + { + int i = 1; + char v[i]; + p = af (v); + } + cf (p); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/special/gcsec-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/special/gcsec-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/special/gcsec-1.c Mon May 7 18:28:41 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/special/gcsec-1.c Sat Jul 25 13:54:21 2009 *************** *** 3,12 **** /* { dg-do run { xfail rs6000-*-aix* powerpc*-*-aix* } } */ /* { dg-require-gc-sections "" } */ ! /* { dg-options "-ffunction-sections -fdata-sections -Wl,--gc-sections -static" } */ ! /* { dg-options "-ffunction-sections -fdata-sections -Wl,--gc-sections -static" { target native } } */ ! /* Solaris 10 does not support static linking; there is no libc.a. */ ! /* { dg-options "-ffunction-sections -fdata-sections -Wl,--gc-sections" { target *-*-netware* i?86-*-solaris2.1[0-9] } } */ #include --- 3,10 ---- /* { dg-do run { xfail rs6000-*-aix* powerpc*-*-aix* } } */ /* { dg-require-gc-sections "" } */ ! /* { dg-options "-ffunction-sections -fdata-sections -Wl,--gc-sections" } */ ! /* { dg-options "-ffunction-sections -fdata-sections -Wl,--gc-sections -static" { target static } } */ #include diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/ssp-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/ssp-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/ssp-1.c Wed Mar 28 23:08:26 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/ssp-1.c Mon Aug 10 17:35:05 2009 *************** *** 4,10 **** #include ! static void __stack_chk_fail (void) { exit (0); /* pass */ --- 4,10 ---- #include ! void __stack_chk_fail (void) { exit (0); /* pass */ diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/builtin-power-1.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/builtin-power-1.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/builtin-power-1.c Sat Sep 22 08:25:43 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/builtin-power-1.c Mon Aug 24 09:52:03 2009 *************** void test(double d1, double d2, double d *** 77,85 **** /* Test pow(pow(x,y),z) -> pow(x,y*z). */ #define POW_POW \ extern void link_failure_pow_pow(void); \ ! if (pow(pow(d1, d2), d3) != pow(d1,d2*d3) \ ! || powf(powf(f1,f2),f3) != powf(f1,f2*f3) \ ! || powl(powl(ld1,ld2),ld3) != powl(ld1,ld2*ld3)) \ link_failure_pow_pow() POW_POW; --- 77,85 ---- /* Test pow(pow(x,y),z) -> pow(x,y*z). */ #define POW_POW \ extern void link_failure_pow_pow(void); \ ! if (pow(pow(fabs(d1), d2), d3) != pow(fabs(d1),d2*d3) \ ! || powf(powf(fabs(f1),f2),f3) != powf(fabs(f1),f2*f3) \ ! || powl(powl(fabs(ld1),ld2),ld3) != powl(fabs(ld1),ld2*ld3)) \ link_failure_pow_pow() POW_POW; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/calleesave-sse.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/calleesave-sse.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/calleesave-sse.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/calleesave-sse.c Mon Sep 21 14:22:40 2009 *************** *** 0 **** --- 1,43 ---- + /* { dg-do run } */ + /* { dg-options "-fno-omit-frame-pointer" } */ + + #define alloca __builtin_alloca + extern void abort (void); + + __attribute__ ((noinline)) static double + bar (double a, double b, double c, double d, char *h) + { + *h = 0; + return a * b + b + c; + } + + __attribute__ ((noinline)) static int + boo (double a, double b, double c, double d) + { + return c * b + a + b; + } + + __attribute__ ((noinline)) static double + foo (double a, double b, double c, double d) + { + int aa = boo (b, c, d, a); + return bar (a, b, c, d, (char *) alloca (aa)) + + bar (d, c, b, a, (char *) alloca (aa)); + } + + int main () + { + double a = 2.0, b = 3.0, c = 4.0, d = 5.0; + double r1, r2; + int aa; + + aa = boo (b, c, d, a); + r1 = bar (a, b, c, d, (char *) alloca (aa)) + + bar (d, c, b, a, (char *) alloca (aa)); + r2 = foo (a, b, c, d); + + if (r1 != r2) + abort (); + return 0; + } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr26515.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr26515.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr26515.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr26515.c Mon Oct 12 18:00:15 2009 *************** *** 0 **** --- 1,27 ---- + /* { dg-options "-march=v10" { target cris*-*-* } } */ + struct i + { + long long i_size; + struct a *i_mapping; + }; + struct p + { + struct a *mapping; + long index; + }; + extern void b (struct p*, unsigned); + extern void u (struct p*); + void + block_page_mkwrite (struct i *i, struct p *p) + { + unsigned end = 0; + long long size = 0; + size = i->i_size; + if ((p->mapping != i->i_mapping)) + goto out_unlock; + if (((p->index + 1) << 13) > size) + end = size & ~(~(((1UL) << 13) - 1)); + b (p, end); + out_unlock: + u (p); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr38948.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr38948.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr38948.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr38948.c Tue Oct 13 23:53:55 2009 *************** *** 0 **** --- 1,101 ---- + /* { dg-options "-fno-tree-sra" } */ + /* { dg-options "-fno-tree-sra -march=v32" { target cris-*-* } } */ + typedef unsigned char byte; + typedef unsigned int uint; + typedef int bool; + typedef struct gs_const_string_s + { + const byte *data; + } + gs_const_string; + struct gs_matrix_s + { + float xx, xy, yx, yy, tx, ty; + }; + typedef struct gs_matrix_s gs_matrix; + typedef long fixed; + typedef struct gs_fixed_point_s + { + fixed x, y; + } + gs_fixed_point; + typedef struct gs_matrix_fixed_s + { + int x; + } + gs_matrix_fixed; + static int + append_simple (const byte * glyph, const gs_matrix_fixed * pmat, void * ppath) + { + int numContours = + (int) (((((uint) ((glyph)[0]) << 8) + (glyph)[1]) ^ 0x8000) - 0x8000); + const byte *pends = glyph + 10; + int code = 0; + { + uint i = 0; + uint np = 0; + gs_fixed_point pt = {0}; + uint reps = 0; + for (i = 0, np = 0; i < numContours; ++i) + { + bool move = ((bool) 1); + uint last_point = + (((uint) ((pends + i * 2)[0]) << 8) + (pends + i * 2)[1]); + int off_curve = 0; + gs_fixed_point cpoints[3]; + for (; np <= last_point; --reps, ++np) + { + if (move) + { + cpoints[0] = pt; + move = ((bool) 0); + } + else + { + switch (off_curve++) + { + default: + cpoints[2].x = ((cpoints[1].x + pt.x) / 2); + cpoints[2].y = ((cpoints[1].y + pt.y) / 2); + code = + gx_path_add_curve_notes (ppath, + ((cpoints[0].x + + 2 * cpoints[1].x) / 3), + ((cpoints[0].y + + 2 * cpoints[1].y) / 3), + ((2 * cpoints[1].x + + cpoints[2].x) / 3), + ((2 * cpoints[1].y + + cpoints[2].y) / 3), + cpoints[2].x, cpoints[2].y, + 0); + cpoints[0] = cpoints[2]; + case 0: + cpoints[1] = pt; + } + } + } + } + } + } + int + append_outline (uint glyph_index, const gs_matrix_fixed *pmat, void *ppath) + { + gs_const_string glyph_string = {0}; + int numContours = 0; + numContours = + (int) (((((uint) ((glyph_string.data)[0]) << 8) + + (glyph_string.data)[1]) ^ 0x8000) - 0x8000); + if (numContours >= 0) + return append_simple (glyph_string.data, pmat, ppath); + { + uint flags = 0; + do + { + gs_matrix_fixed mat = {0}; + gs_matrix scale_mat = {0}; + gs_matrix_multiply (&scale_mat, (const gs_matrix *) &mat, (gs_matrix *) & mat); + } + while (flags & 32); + } + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr39074.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr39074.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr39074.c Thu Feb 19 10:12:25 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr39074.c Tue Sep 8 19:10:43 2009 *************** *** 2,10 **** /* { dg-options "-fdump-tree-alias" } */ /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */ int i; void __attribute__((noinline)) ! foo(long b, long q) { int *y; int **a = &y, **x; --- 2,12 ---- /* { dg-options "-fdump-tree-alias" } */ /* { dg-skip-if "" { *-*-* } { "-O0" } { "" } } */ + typedef __PTRDIFF_TYPE__ intptr_t; + int i; void __attribute__((noinline)) ! foo(long b, intptr_t q) { int *y; int **a = &y, **x; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr41094.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr41094.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr41094.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr41094.c Mon Aug 24 09:52:03 2009 *************** *** 0 **** --- 1,19 ---- + /* { dg-do run } */ + /* { dg-options "-ffast-math" } */ + + #include + + extern void abort (void); + + double foo(void) + { + double x = -4.0; + return pow (x * x, 0.25); + } + + int main() + { + if (foo() != 2.0) + abort (); + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr41261.c gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr41261.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/torture/pr41261.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/torture/pr41261.c Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,8 ---- + /* { dg-do compile } */ + /* { dg-options "-fprofile-arcs" } */ + + extern void relocate_kernel(); + void machine_kexec(void *control_page) + { + __builtin_memcpy(control_page, relocate_kernel, 2048); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c gcc-4.4.2/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c Thu Feb 5 11:59:20 2009 --- gcc-4.4.2/gcc/testsuite/gcc.dg/tree-ssa/pr33920.c Tue Sep 8 19:10:43 2009 *************** *** 2,7 **** --- 2,8 ---- /* { dg-do compile } */ /* { dg-options "-O3" } */ + typedef __PTRDIFF_TYPE__ intptr_t; typedef union lispunion *object; struct character { *************** void init_code () *** 22,35 **** object V659; object _x, _y; object V643; ! long V648; unsigned char V653; object V651; object V654; object V658; T1240: ! if (V648 >= (long)V651) /* { dg-warning "cast from pointer to integer of different size" "" { target { ! int32plus } } } */ goto T1243; V653 = ((char *) V654->v.v_self)[V648]; V659 = (object) V654 + V653; --- 23,36 ---- object V659; object _x, _y; object V643; ! intptr_t V648; unsigned char V653; object V651; object V654; object V658; T1240: ! if (V648 >= (intptr_t)V651) /* { dg-warning "cast from pointer to integer of different size" "" { target { ! int32plus } } } */ goto T1243; V653 = ((char *) V654->v.v_self)[V648]; V659 = (object) V654 + V653; *************** T1261: *** 41,47 **** goto T1249; goto T1224; T1249: ! V648 = (long) V648 + 1; goto T1240; T1243: V643 = (object) & Cnil_body; --- 42,48 ---- goto T1249; goto T1224; T1249: ! V648 = (intptr_t) V648 + 1; goto T1240; T1243: V643 = (object) & Cnil_body; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-27.c gcc-4.4.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-27.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-27.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/tree-ssa/ssa-ccp-27.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,24 ---- + /* { dg-do compile } */ + /* { dg-options "-O2 -fdump-tree-ccp1" } */ + + #include + + char c[10]; + + void + f1 () + { + const char *p = "123456"; + memcpy (c, p, 6); + } + + void + f2 () + { + const char *p = "12345678"; + p += 2; + memcpy (c, p, 6); + } + + /* { dg-final { scan-tree-dump-times "memcpy\[^\n\]*123456" 2 "ccp1" } } */ + /* { dg-final { cleanup-tree-dump "ccp1" } } */ diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/uninit-6-O0.c gcc-4.4.2/gcc/testsuite/gcc.dg/uninit-6-O0.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/uninit-6-O0.c Wed Aug 20 22:23:45 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/uninit-6-O0.c Mon Aug 3 19:27:32 2009 *************** make_something(int a, int b, int c) *** 39,45 **** rv = malloc (sizeof (struct tree)); rv->car = 0; ! APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" } */ APPEND(rv, field, PTR_T, b); APPEND(rv, field, INTEGER_T, c); --- 39,45 ---- rv = malloc (sizeof (struct tree)); rv->car = 0; ! APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" { xfail *-*-* } } */ APPEND(rv, field, PTR_T, b); APPEND(rv, field, INTEGER_T, c); diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/uninit-6.c gcc-4.4.2/gcc/testsuite/gcc.dg/uninit-6.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/uninit-6.c Wed Aug 20 22:23:45 2008 --- gcc-4.4.2/gcc/testsuite/gcc.dg/uninit-6.c Mon Aug 3 19:27:32 2009 *************** make_something(int a, int b, int c) *** 39,45 **** rv = malloc (sizeof (struct tree)); rv->car = 0; ! APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" } */ APPEND(rv, field, PTR_T, b); APPEND(rv, field, INTEGER_T, c); --- 39,45 ---- rv = malloc (sizeof (struct tree)); rv->car = 0; ! APPEND(rv, field, INTEGER_T, a); /* { dg-bogus "field" "uninitialized variable warning" { xfail *-*-* } } */ APPEND(rv, field, PTR_T, b); APPEND(rv, field, INTEGER_T, c); diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/uninit-pr40943.c gcc-4.4.2/gcc/testsuite/gcc.dg/uninit-pr40943.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/uninit-pr40943.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/uninit-pr40943.c Mon Aug 3 19:27:32 2009 *************** *** 0 **** --- 1,10 ---- + /* PR middle-end/40943 */ + /* { dg-do compile } */ + /* { dg-options "-O2 -Wuninitialized" } */ + + void + foo (void) + { + int *p; + *p = 3; /* { dg-warning "is used uninitialized" } */ + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/vect/O1-pr33854.c gcc-4.4.2/gcc/testsuite/gcc.dg/vect/O1-pr33854.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/vect/O1-pr33854.c Mon Oct 22 12:05:36 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/vect/O1-pr33854.c Tue Sep 8 19:10:43 2009 *************** *** 1,7 **** /* Testcase by Martin Michlmayr */ /* { dg-do compile } */ ! extern void *malloc (long unsigned int __size); typedef struct VMatrix_ VMatrix; struct VMatrix_ { --- 1,7 ---- /* Testcase by Martin Michlmayr */ /* { dg-do compile } */ ! extern void *malloc (__SIZE_TYPE__ __size); typedef struct VMatrix_ VMatrix; struct VMatrix_ { diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/vect/O1-pr41008.c gcc-4.4.2/gcc/testsuite/gcc.dg/vect/O1-pr41008.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/vect/O1-pr41008.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.dg/vect/O1-pr41008.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,23 ---- + /* { dg-do compile } */ + + double heating[2][2]; + + void foo (int, int); + + void map_do() + { + int jsav, ksav, k, j; + + for(k = 0; k < 2; k++) + for(j = 0; j < 2; j++) + if (heating[k][j] > 0.) + { + jsav = j; + ksav = k; + } + + foo (jsav, ksav); + } + + /* { dg-final { cleanup-tree-dump "vect" } } */ + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c gcc-4.4.2/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c Tue Sep 4 13:05:19 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/vect/no-scevccp-noreassoc-outer-2.c Tue Jul 28 16:51:19 2009 *************** *** 4,10 **** #include "tree-vect.h" #define N 40 ! int a[200*N]; __attribute__ ((noinline)) void foo (){ --- 4,10 ---- #include "tree-vect.h" #define N 40 ! int a[200*N+N]; __attribute__ ((noinline)) void foo (){ diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/vect/pr33833.c gcc-4.4.2/gcc/testsuite/gcc.dg/vect/pr33833.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/vect/pr33833.c Thu Oct 25 16:41:45 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/vect/pr33833.c Tue Sep 8 19:10:43 2009 *************** *** 1,6 **** --- 1,10 ---- /* Testcase by Martin Michlmayr */ /* { dg-do compile } */ + #define signed + typedef unsigned __PTRDIFF_TYPE__ uintptr_t; + #undef signed + struct list_head { struct list_head *prev; *************** struct rq *** 14,20 **** struct prio_array *active, arrays[2]; } per_cpu__runqueues; ! void sched_init (unsigned long __ptr) { int j, k; struct prio_array *array; --- 18,24 ---- struct prio_array *active, arrays[2]; } per_cpu__runqueues; ! void sched_init (uintptr_t __ptr) { int j, k; struct prio_array *array; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.dg/vect/pr33846.c gcc-4.4.2/gcc/testsuite/gcc.dg/vect/pr33846.c *** gcc-4.4.1/gcc/testsuite/gcc.dg/vect/pr33846.c Tue Oct 23 20:15:04 2007 --- gcc-4.4.2/gcc/testsuite/gcc.dg/vect/pr33846.c Tue Sep 8 19:10:43 2009 *************** int clamp_val (int i) *** 7,13 **** return ~i >> 31; } ! void _mix_some_samples (long buf, int *mix_buffer, int mix_size) { int i; signed int *p = mix_buffer; --- 7,15 ---- return ~i >> 31; } ! typedef __PTRDIFF_TYPE__ intptr_t; ! ! void _mix_some_samples (intptr_t buf, int *mix_buffer, int mix_size) { int i; signed int *p = mix_buffer; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/alpha/pr22093.c gcc-4.4.2/gcc/testsuite/gcc.target/alpha/pr22093.c *** gcc-4.4.1/gcc/testsuite/gcc.target/alpha/pr22093.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/alpha/pr22093.c Wed Sep 30 18:03:17 2009 *************** *** 0 **** --- 1,14 ---- + /* { dg-do compile } */ + /* { dg-options "-O2" } */ + + struct shared_ptr_struct + { + unsigned long phase : 48; + unsigned thread : 16; + void *addr; + } x; + + void foo (void) + { + x.thread = 2; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-1.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-1.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-1.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-1.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_DOUBLE" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 164 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-2.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-2.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-2.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_DOUBLE" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 164 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-1.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-1.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-1.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-1.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_DOUBLE" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 164 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-2.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-2.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-2.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_DOUBLE" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 164 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-3.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-3.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-3.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-256-3.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_DOUBLE" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 164 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-3.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-3.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestpd-3.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestpd-3.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_DOUBLE" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 164 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-1.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-1.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-1.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-1.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_FLOAT" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 150 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-2.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-2.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-2.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_FLOAT" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 150 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-256-1.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-256-1.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-256-1.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-256-1.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_FLOAT" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 150 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-256-2.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-256-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-256-2.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-256-2.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_FLOAT" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 150 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-256-3.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-256-3.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-256-3.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-256-3.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_FLOAT" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 150 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-3.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-3.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/avx-vtestps-3.c Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/avx-vtestps-3.c Tue Jul 28 07:01:40 2009 *************** *** 1,6 **** /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx" } */ #include "avx-check.h" --- 1,8 ---- /* { dg-do run } */ /* { dg-require-effective-target avx } */ ! /* { dg-options "-O2 -mavx -DNEED_IEEE754_FLOAT" } */ ! /* { dg-warning "attribute ignored" "" { target default_packed } 150 } */ ! /* { dg-message " from " "include chain" { target default_packed } 0 } */ #include "avx-check.h" diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/m128-check.h gcc-4.4.2/gcc/testsuite/gcc.target/i386/m128-check.h *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/m128-check.h Thu Aug 28 19:36:58 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/m128-check.h Tue Jul 28 07:01:40 2009 *************** checkV##ARRAY (const TYPE *v, const TYPE *** 138,143 **** --- 138,144 ---- CHECK_FP_ARRAY (d, double, ESP_DOUBLE, "%f") CHECK_FP_ARRAY (f, float, ESP_FLOAT, "%f") + #ifdef NEED_IEEE754_FLOAT union ieee754_float { float d; *************** union ieee754_float *** 148,154 **** --- 149,157 ---- unsigned sign : 1; } bits __attribute__((packed)); }; + #endif + #ifdef NEED_IEEE754_DOUBLE union ieee754_double { double d; *************** union ieee754_double *** 160,162 **** --- 163,166 ---- unsigned sign : 1; } bits __attribute__((packed)); }; + #endif diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr37248-2.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr37248-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr37248-2.c Tue Dec 9 17:38:09 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr37248-2.c Tue Jul 28 06:56:49 2009 *************** *** 1,5 **** /* PR middle-end/37248 */ ! /* { dg-do compile } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ struct S --- 1,5 ---- /* PR middle-end/37248 */ ! /* { dg-do compile { target { ! default_packed } } } */ /* { dg-options "-O2 -fdump-tree-optimized" } */ struct S diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr37248-3.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr37248-3.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr37248-3.c Tue Dec 9 17:38:09 2008 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr37248-3.c Tue Jul 28 06:56:49 2009 *************** *** 1,6 **** /* PR middle-end/37248 */ ! /* { dg-do compile } */ ! /* { dg-options "-O2 -fdump-tree-optimized" } */ struct S { --- 1,6 ---- /* PR middle-end/37248 */ ! /* { dg-do compile { target { ! default_packed } } } */ ! /* { dg-options "-O2 -fdump-tree-optimized -mno-ms-bitfields" } */ struct S { diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40718.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40718.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40718.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40718.c Sun Aug 23 12:37:53 2009 *************** *** 0 **** --- 1,36 ---- + /* { dg-do run } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-O1 -foptimize-sibling-calls" } */ + + void abort (void); + + struct S + { + void (__attribute__((__stdcall__)) *f) (struct S *); + int i; + }; + + void __attribute__((__stdcall__)) + foo (struct S *s) + { + s->i++; + } + + void __attribute__((__stdcall__)) + bar (struct S *s) + { + foo(s); + s->f(s); + } + + int main (void) + { + struct S s = { foo, 0 }; + + bar (&s); + if (s.i != 2) + abort (); + + return 0; + } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40906-1.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40906-1.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40906-1.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40906-1.c Wed Aug 5 18:04:42 2009 *************** *** 0 **** --- 1,26 ---- + /* { dg-do run } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-O2 -fomit-frame-pointer -mpush-args -mno-accumulate-outgoing-args" } */ + + void abort (void); + + void __attribute__((noinline)) + f (long double a) + { + if (a != 1.23L) + abort (); + } + + int __attribute__((noinline)) + g (long double b) + { + f (b); + return 0; + } + + int + main (void) + { + g (1.23L); + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40906-2.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40906-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40906-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40906-2.c Wed Aug 5 18:04:42 2009 *************** *** 0 **** --- 1,26 ---- + /* { dg-do run } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-O2 -fomit-frame-pointer -mpush-args -mno-accumulate-outgoing-args -m128bit-long-double" } */ + + void abort (void); + + void __attribute__((noinline)) + f (long double a) + { + if (a != 1.23L) + abort (); + } + + int __attribute__((noinline)) + g (long double b) + { + f (b); + return 0; + } + + int + main (void) + { + g (1.23L); + return 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40906-3.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40906-3.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40906-3.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40906-3.c Wed Aug 5 18:04:42 2009 *************** *** 0 **** --- 1,25 ---- + /* { dg-do run { target *-*-linux* } } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-O2 -fomit-frame-pointer -msse2 -mpush-args -mno-accumulate-outgoing-args" } */ + + #include "sse2-check.h" + + void __attribute__((noinline)) + f (__float128 a) + { + if (a != 1.23Q) + abort (); + } + + int __attribute__((noinline)) + g (__float128 b) + { + f (b); + return 0; + } + + static void + sse2_test (void) + { + g (1.23Q); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40934.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40934.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40934.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40934.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,15 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target ilp32 } */ + /* { dg-options "-O2 -march=i586 -ffast-math" } */ + + extern double host_frametime; + extern float pitchvel; + V_DriftPitch (float delta, float move) + { + if (!delta) + move = host_frametime; + if (delta > 0) + ; + else if (delta < 0 && move > -delta) + pitchvel = 0; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40957.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40957.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr40957.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr40957.c Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,18 ---- + /* { dg-do compile } */ + /* { dg-require-effective-target avx } */ + /* { dg-options "-O2 -mavx" } */ + + typedef int __v8si __attribute__((__vector_size__(32))); + typedef long long __m256i __attribute__((__vector_size__(32), __may_alias__)); + + static __m256i + _mm256_set1_epi32 (int __A) + { + return __extension__ (__m256i)(__v8si){ __A, __A, __A, __A, + __A, __A, __A, __A }; + } + __m256i + foo () + { + return _mm256_set1_epi32 (-1); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr41019.c gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr41019.c *** gcc-4.4.1/gcc/testsuite/gcc.target/i386/pr41019.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/i386/pr41019.c Sun Aug 16 19:34:49 2009 *************** *** 0 **** --- 1,19 ---- + /* { dg-do run } */ + /* { dg-options "-O2 -msse2 -ftree-vectorize" } */ + + #include "sse2-check.h" + + long long int a[64]; + + void + sse2_test (void) + { + int k; + + for (k = 0; k < 64; k++) + a[k] = a[k] != 5 ? 12 : 10; + + for (k = 0; k < 64; k++) + if (a[k] != 12) + abort (); + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/powerpc/pr39902-2.c gcc-4.4.2/gcc/testsuite/gcc.target/powerpc/pr39902-2.c *** gcc-4.4.1/gcc/testsuite/gcc.target/powerpc/pr39902-2.c Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gcc.target/powerpc/pr39902-2.c Mon Aug 3 21:43:32 2009 *************** *** 0 **** --- 1,28 ---- + /* Check that simplification "x*(-1)" -> "-x" is not performed for decimal + float types. */ + + /* { dg-do compile { target { powerpc*-*-linux* && powerpc_fprs } } } */ + /* { dg-options "-std=gnu99 -O -mcpu=power6" } */ + /* { dg-final { scan-assembler-not "fneg" } } */ + + extern _Decimal32 a32, b32; + extern _Decimal64 a64, b64; + extern _Decimal128 a128, b128; + + void + foo32 (void) + { + b32 = a32 * -1.0DF; + } + + void + foo64 (void) + { + b64 = a64 * -1.0DD; + } + + void + foo128 (void) + { + b128 = a128 * -1.0DL; + } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s gcc-4.4.2/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s *** gcc-4.4.1/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s Wed Sep 13 01:07:27 2006 --- gcc-4.4.2/gcc/testsuite/gcc.target/x86_64/abi/asm-support-darwin.s Fri Sep 18 17:11:57 2009 *************** _snapshot: *** 42,48 **** --- 42,50 ---- .globl _snapshot_ret _snapshot_ret: movq %rdi, _rdi(%rip) + subq $8, %rsp call *_callthis(%rip) + addq $8, %rsp movq %rax, _rax(%rip) movq %rdx, _rdx(%rip) movdqu %xmm0, _xmm_regs+0(%rip) diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/altreturn_7.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/altreturn_7.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/altreturn_7.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/altreturn_7.f90 Tue Jul 28 16:51:19 2009 *************** *** 0 **** --- 1,34 ---- + ! { dg-do compile } + ! + ! PR 40848: [4.5 Regression] ICE with alternate returns + ! + ! Contributed by Joost VandeVondele + + MODULE TT + + INTERFACE M + MODULE PROCEDURE M1,M2 + END INTERFACE + + CONTAINS + + SUBROUTINE M1(I,*) + INTEGER :: I + RETURN 1 + END SUBROUTINE + + SUBROUTINE M2(I,J) + INTEGER :: I,J + END SUBROUTINE + + END MODULE + + + USE TT + CALL M(1,*2) + CALL ABORT() + 2 CONTINUE + END + + ! { dg-final { cleanup-modules "tt" } } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/c_f_pointer_tests_4.f90 Thu Aug 20 20:42:38 2009 *************** *** 0 **** --- 1,15 ---- + ! { dg-do run } + program main + use iso_c_binding, only: c_ptr, c_loc, c_f_pointer + implicit none + integer, dimension(2,1,2), target :: table + table = reshape ( (/ 1,2,-1,-2/), (/2,1,2/)) + call set_table (c_loc (table)) + contains + subroutine set_table (cptr) + type(c_ptr), intent(in) :: cptr + integer, dimension(:,:,:), pointer :: table_tmp + call c_f_pointer (cptr, table_tmp, (/2,1,2/)) + if (any(table_tmp /= table)) call abort + end subroutine set_table + end program main diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/char_length_16.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/char_length_16.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/char_length_16.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/char_length_16.f90 Tue Jul 28 16:51:19 2009 *************** *** 0 **** --- 1,12 ---- + ! { dg-do compile } + ! + ! PR 40822: [4.5 Regression] Internal compiler error when Fortran intrinsic LEN referenced before explicit declaration + ! + ! Contributed by Mat Cross + + SUBROUTINE SEARCH(ITEMVAL) + CHARACTER (*) :: ITEMVAL + CHARACTER (LEN(ITEMVAL)) :: ITEM + INTRINSIC LEN + END + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/cr_lf.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/cr_lf.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/cr_lf.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/cr_lf.f90 Sat Sep 19 17:23:43 2009 *************** *** 0 **** --- 1,64 ---- + ! { dg-do run } + ! { dg-options "-fbackslash" } + ! PR41328 and PR41168 Improper read of CR-LF sequences. + ! Test case prepared by Jerry DeLisle + program main + implicit none + integer :: iostat, n_chars_read, k + character(len=1) :: buffer(64) = "" + character (len=80) :: u + + ! Set up the test file with normal file end. + open(unit=10, file="crlftest", form="unformatted", access="stream",& + & status="replace") + write(10) "a\rb\rc\r" ! CR at the end of each record. + close(10, status="keep") + + open(unit=10, file="crlftest", form="formatted", status="old") + + read( unit=10, fmt='(64A)', advance='NO', iostat=iostat, & + size=n_chars_read ) buffer + if (n_chars_read.ne.1) call abort + if (any(buffer(1:n_chars_read).ne."a")) call abort + if (.not.is_iostat_eor(iostat)) call abort + + read( unit=10, fmt='(64A)', advance='NO', iostat=iostat, & + size=n_chars_read ) buffer + if (n_chars_read.ne.1) call abort + if (any(buffer(1:n_chars_read).ne."b")) call abort + if (.not.is_iostat_eor(iostat)) call abort + + read( unit=10, fmt='(64A)', advance='NO', iostat=iostat, & + size=n_chars_read ) buffer + if (n_chars_read.ne.1) call abort + if (any(buffer(1:n_chars_read).ne."c")) call abort + if (.not.is_iostat_eor(iostat)) call abort + + read( unit=10, fmt='(64A)', advance='NO', iostat=iostat, & + size=n_chars_read ) buffer + if (n_chars_read.ne.0) call abort + if (any(buffer(1:n_chars_read).ne."a")) call abort + if (.not.is_iostat_end(iostat)) call abort + close(10, status="delete") + + ! Set up the test file with normal file end. + open(unit=10, file="crlftest", form="unformatted", access="stream",& + & status="replace") + write(10) "a\rb\rc\rno end of line marker" ! Note, no CR at end of file. + close(10, status="keep") + + open(unit=10, file="crlftest", status='old') + + do k = 1, 10 + read(10,'(a80)',end=101,err=100) u + !print *,k,' : ',u(1:len_trim(u)) + enddo + + 100 continue + close(10, status="delete") + call abort + + 101 continue + close(10, status="delete") + if (u(1:len_trim(u)).ne."no end of line marker") call abort + end program main diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 Sat May 16 11:01:47 2009 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/default_format_denormal_1.f90 Wed Sep 16 17:47:57 2009 *************** *** 1,4 **** ! ! { dg-do run { xfail alpha*-*-* *-*-darwin[89]* *-*-freebsd* *-*-mingw* *-*-cygwin* spu-*-* } } ! Test XFAILed on these platforms because the system's printf() lacks ! proper support for denormals. ! --- 1,4 ---- ! ! { dg-do run { xfail *-*-darwin[89]* *-*-freebsd* *-*-mingw* *-*-cygwin* spu-*-* } } ! Test XFAILed on these platforms because the system's printf() lacks ! proper support for denormals. ! *************** *** 6,11 **** --- 6,13 ---- ! wide enough and have enough precision, by checking that values can ! be written and read back. ! + ! { dg-options "-mieee" { target alpha*-*-* } } + include "default_format_1.inc" program main diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 Fri Dec 19 18:12:40 2008 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/default_format_denormal_2.f90 Wed Sep 16 17:47:57 2009 *************** *** 7,12 **** --- 7,14 ---- ! wide enough and have enough precision, by checking that values can ! be written and read back. ! + ! { dg-options "-mieee" { target alpha*-*-* } } + include "default_format_2.inc" program main diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/derived_init_3.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/derived_init_3.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/derived_init_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/derived_init_3.f90 Wed Jul 29 09:35:15 2009 *************** *** 0 **** --- 1,34 ---- + ! { dg-do run } + ! + ! PR fortran/40851 + ! + ! Make sure the an INTENT(OUT) dummy is not initialized + ! when it is a pointer. + ! + ! Contributed by Juergen Reuter . + ! + program main + + type :: string + character,dimension(:),allocatable :: chars + end type string + + type :: string_container + type(string) :: string + end type string_container + + type(string_container), target :: tgt + type(string_container), pointer :: ptr + + ptr => tgt + call set_ptr (ptr) + if (associated(ptr)) call abort() + + contains + + subroutine set_ptr (ptr) + type(string_container), pointer, intent(out) :: ptr + ptr => null () + end subroutine set_ptr + + end program main diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/fmt_cache_1.f gcc-4.4.2/gcc/testsuite/gfortran.dg/fmt_cache_1.f *** gcc-4.4.1/gcc/testsuite/gfortran.dg/fmt_cache_1.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/fmt_cache_1.f Thu Jul 23 17:50:56 2009 *************** *** 0 **** --- 1,33 ---- + ! { dg-do run { target fd_truncate } } + ! pr40662 segfaults when specific format is invoked twice. + ! pr40330 incorrect io. + ! test case derived from pr40662, + program astap + character(40) teststring + arlxca = 0.0 + open(10) + write(10,40) arlxca + write(10,40) arlxca + 40 format(t4,"arlxca = ",1pg13.6,t27,"arlxcc = ",g13.6,t53, + . "atmpca = ",g13.6,t79,"atmpcc = ",g13.6,t105, + . "backup = ",g13.6,/, + . t4,"csgfac = ",g13.6,t27,"csgmax = ",g13.6,t53, + . "csgmin = ",g13.6,t79,"drlxca = ",g13.6,t105, + . "drlxcc = ",g13.6,/, + . t4,"dtimeh = ",g13.6,t27,"dtimei = ",g13.6,t53, + . "dtimel = ",g13.6,t79,"dtimeu = ",g13.6,t105, + . "dtmpca = ",g13.6,/, + . t4,"dtmpcc = ",g13.6,t27,"ebalna = ",g13.6,t53, + . "ebalnc = ",g13.6,t79,"ebalsa = ",g13.6,t105, + . "ebalsc = ",g13.6) + rewind 10 + rewind 10 + teststring = "" + read(10,'(a)') teststring + if (teststring.ne." arlxca = 0.00000 arlxcc = ")call abort + teststring = "" + read(10,'(a)') teststring + if (teststring.ne." arlxca = 0.00000 arlxcc = ")call abort + end program astap + + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/gomp/pr40878-1.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/gomp/pr40878-1.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/gomp/pr40878-1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/gomp/pr40878-1.f90 Tue Jul 28 16:33:08 2009 *************** *** 0 **** --- 1,63 ---- + ! PR fortran/40878 + ! { dg-do compile } + ! { dg-options "-fopenmp" } + + subroutine test1 + integer :: j, k + integer :: m = 2 + !$omp parallel do collapse(m) schedule (static,1) ! { dg-error "Constant expression required" } + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end + subroutine test2 + integer :: j, k + integer :: m + m = 2 + !$omp parallel do collapse(m) schedule (static,1) ! { dg-error "Constant expression required" } + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end + subroutine test3 + integer :: j, k + integer, parameter :: m = 0 + !$omp parallel do collapse(m) schedule (static,1) ! { dg-error "not constant positive integer" } + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end + subroutine test4 + integer :: j, k + integer, parameter :: m = -2 + !$omp parallel do collapse(m) schedule (static,1) ! { dg-error "not constant positive integer" } + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end + subroutine test5 + integer :: j, k + !$omp parallel do collapse(0) schedule (static,1) ! { dg-error "not constant positive integer" } + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end + subroutine test6 + integer :: j, k + !$omp parallel do collapse(-1) schedule (static,1) ! { dg-error "not constant positive integer" } + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/gomp/pr40878-2.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/gomp/pr40878-2.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/gomp/pr40878-2.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/gomp/pr40878-2.f90 Tue Jul 28 16:33:08 2009 *************** *** 0 **** --- 1,23 ---- + ! PR fortran/40878 + ! { dg-do compile } + ! { dg-options "-fopenmp" } + + subroutine test1 + integer :: j, k + integer, parameter :: m = 2 + !$omp parallel do collapse(m) schedule (static,1) + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end + subroutine test2 + integer :: j, k + !$omp parallel do collapse(2) schedule (static,1) + do k = 1, 2 + do j = 1, 6 + enddo + enddo + !$omp end parallel do + end diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/intent_out_5.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/intent_out_5.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/intent_out_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/intent_out_5.f90 Mon Oct 5 09:19:13 2009 *************** *** 0 **** --- 1,27 ---- + ! { dg-do run} + ! + ! PR fortran/41479 + ! + ! Contributed by Juergen Reuter. + ! + program main + type :: container_t + integer :: n = 42 + ! if the following line is omitted, the problem disappears + integer, dimension(:), allocatable :: a + end type container_t + + type(container_t) :: container + + if (container%n /= 42) call abort() + if (allocated(container%a)) call abort() + container%n = 1 + allocate(container%a(50)) + call init (container) + if (container%n /= 42) call abort() + if (allocated(container%a)) call abort() + contains + subroutine init (container) + type(container_t), intent(out) :: container + end subroutine init + end program main diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_3.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_3.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_3.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_3.f90 Fri Sep 11 22:11:06 2009 *************** *** 0 **** --- 1,40 ---- + ! { dg-do compile } + ! { dg-options "-std=f95" } + ! + ! PR 39876: module procedure name that collides with the GNU intrinsic + ! + ! Contributed by Alexei Matveev + + module p + implicit none + + contains + + subroutine test() + implicit none + print *, avg(erfc) + end subroutine test + + function avg(f) + implicit none + double precision :: avg + interface + double precision function f(x) + implicit none + double precision, intent(in) :: x + end function f + end interface + avg = ( f(1.0D0) + f(2.0D0) ) / 2 + end function avg + + function erfc(x) + implicit none + double precision, intent(in) :: x + double precision :: erfc + erfc = x + end function erfc + + end module p + + ! { dg-final { cleanup-modules "p" } } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_4.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_4.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_4.f90 Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,12 ---- + ! { dg-do compile } + ! { dg-options "-Wsurprising" } + ! + ! PR 40995: [4.5 Regression] Spurious "Type specified for intrinsic function...ignored" message + ! + ! Contributed by Mat Cross + + subroutine sub(n,x) + intrinsic abs + integer n, x(abs(n)) + end + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_5.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_5.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_5.f90 Sun Aug 30 02:06:32 2009 *************** *** 0 **** --- 1,13 ---- + ! { dg-do compile } + ! { dg-options "-fimplicit-none" } + ! + ! PR 41121: [4.5 Regression] compile-time error when building BLAS with -fimplicit-none + ! + ! Original test case: http://www.netlib.org/blas/dgbmv.f + ! Reduced by Joost VandeVondele + + INTRINSIC MIN + INTEGER :: I,J + print *,MIN(I,J) + END + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_cmplx.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_cmplx.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/intrinsic_cmplx.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/intrinsic_cmplx.f90 Fri Jul 24 00:28:43 2009 *************** *** 0 **** --- 1,9 ---- + ! { dg-do compile } + ! PR fortran/40727 + program test + integer, parameter :: sp = kind(1.e0), dp = kind(1.d0) + complex(sp) :: s + complex(dp) :: d + s = cmplx(0.e0, cmplx(0.e0,0.e0)) ! { dg-error "either REAL or INTEGER" } + d = dcmplx(0.d0, cmplx(0.d0,0.d0)) ! { dg-error "either REAL or INTEGER" } + end program test diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/namelist_40.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/namelist_40.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/namelist_40.f90 Wed Mar 5 00:59:34 2008 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/namelist_40.f90 Wed Aug 5 03:17:52 2009 *************** *** 1,4 **** ! ! { dg-do run { target fd_truncate } } ! PR33672 Additional runtime checks needed for namelist reads ! Submitted by Jerry DeLisle --- 1,4 ---- ! ! { dg-do run } ! PR33672 Additional runtime checks needed for namelist reads ! Submitted by Jerry DeLisle *************** subroutine writenml (astring) *** 47,53 **** end subroutine writenml end program namelist_40 ! ! { dg-output "Multiple sub-objects with non-zero rank in namelist object x(\n|\r\n|\r)" } ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%ch(\n|\r\n|\r)" } ! { dg-output "Substring out of range for namelist variable x%m%ch(\n|\r\n|\r)" } ! { dg-output "Bad character in substring qualifier for namelist variable x%m%ch(\n|\r\n|\r)" } --- 47,53 ---- end subroutine writenml end program namelist_40 ! ! { dg-output "Multiple sub-objects with non-zero rank in namelist object x%m%ch(\n|\r\n|\r)" } ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%ch(\n|\r\n|\r)" } ! { dg-output "Substring out of range for namelist variable x%m%ch(\n|\r\n|\r)" } ! { dg-output "Bad character in substring qualifier for namelist variable x%m%ch(\n|\r\n|\r)" } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/namelist_47.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/namelist_47.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/namelist_47.f90 Fri May 16 14:07:37 2008 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/namelist_47.f90 Wed Aug 5 03:17:52 2009 *************** *** 1,4 **** ! ! { dg-do run { target fd_truncate } } module nml_47 type :: mt --- 1,4 ---- ! ! { dg-do run } module nml_47 type :: mt *************** subroutine writenml (astring) *** 45,51 **** end subroutine writenml end program namelist_47 ! ! { dg-output "Multiple sub-objects with non-zero rank in namelist object x(\n|\r\n|\r)" } ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Substring out of range for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Bad character in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } --- 45,51 ---- end subroutine writenml end program namelist_47 ! ! { dg-output "Multiple sub-objects with non-zero rank in namelist object x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Missing colon in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Substring out of range for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } ! { dg-output "Bad character in substring qualifier for namelist variable x%m%c012345678901234567890123456789012345678901234567890123456789h(\n|\r\n|\r)" } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/namelist_58.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/namelist_58.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/namelist_58.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/namelist_58.f90 Wed Aug 5 03:17:52 2009 *************** *** 0 **** --- 1,25 ---- + ! { dg-do run } + ! PR40853 Error in namelist IO. + ! Test case derived from example given in PR. < jvdelisle@gcc.gnu.org > + program test + implicit none + type tao_title_struct + character(2) justify + end type + type tao_plot_page_struct + real shape_height_max + type (tao_title_struct) title ! Comment this line out and the bug goes away. + real size(2) + end type + type (tao_plot_page_struct) plot_page + namelist / params / plot_page + open (10, status="scratch") + write(10,'(a)')" ¶ms" + write(10,'(a)')" plot_page%size=5 , 2," + write(10,'(a)')"/" + rewind(10) + read (10, nml = params) + if (any(plot_page%size .ne. (/ 5, 2 /))) call abort + close (10) + end program + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/parameter_array_init_5.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/parameter_array_init_5.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/parameter_array_init_5.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/parameter_array_init_5.f90 Thu Oct 1 16:09:13 2009 *************** *** 0 **** --- 1,26 ---- + ! { dg-do run } + ! + ! PR fortran/41515 + ! Contributed by ros@rzg.mpg.de. + ! + ! Before, the "parm' string array was never initialized. + ! + Module BUG3 + contains + Subroutine SR + character(3) :: parm(5) + character(20) :: str + parameter(parm=(/'xo ','yo ','ag ','xr ','yr '/)) + + str = 'XXXXXXXXXXXXXXXXXXXX' + if(str /='XXXXXXXXXXXXXXXXXXXX') call abort() + write(str,*) parm + if(str /= ' xo yo ag xr yr') call abort() + end subroutine SR + end Module BUG3 + ! + program TEST + use bug3 + call sr + end program TEST + ! { dg-final { cleanup-modules "bug3" } } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41126.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41126.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41126.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41126.f90 Sun Aug 30 02:06:32 2009 *************** *** 0 **** --- 1,6 ---- + ! { dg-do compile } + SUBROUTINE write_cputime( checkpoint ) + CHARACTER(LEN=*), INTENT(IN) :: checkpoint + CHARACTER(LEN=LEN_TRIM(checkpoint)+7) :: string1 + string1 = ADJUSTL(string1) + END SUBROUTINE write_cputime diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41162.f gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41162.f *** gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41162.f Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41162.f Sun Aug 30 02:06:32 2009 *************** *** 0 **** --- 1,5 ---- + ! { dg-do compile } + ! PRs 41154/41162 + write (*,'(1PD24.15,F4.2,0P)') 1.0d0 + write (*,'(1PD24.15,F4.2,0P/)') 1.0d0 + end diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41212.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41212.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41212.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41212.f90 Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,34 ---- + ! { dg-do run } + ! { dg-options "-O2" } + program m + double precision :: y,z + call b(1.0d0,y,z) + if (ABS (z - 1.213) > 0.1) call abort + contains + subroutine b( x, y, z) + implicit none + double precision :: x,y,z + integer :: i, k + double precision :: h, r + + y = 1.0d0 + z = 0.0d0 + + h = 0 + DO k = 1,10 + h = h + 1.0d0/k + + r = 1 + DO i = 1,k + r = (x/(2*i) ) * r + END DO + + y = y + (-1)**k * r + z = z + (-1)**(k+1) * h * r + + IF ( ABS(2*k/x*r) < 1d-6 ) EXIT + END DO + + z = 2*y + end subroutine b + end program m diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41225.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41225.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41225.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41225.f90 Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,20 ---- + ! { dg-do compile } + ! { dg-options "-O2 -ffast-math -funroll-loops -ftree-vectorize -g" } + SUBROUTINE block_15_1_1_1(kbd,kbc,kad,kac,pbd,pbc,pad,pac,prim,scale) + INTEGER, PARAMETER :: dp=8 + REAL(KIND=dp) :: kbd(1*1), kbc(1*1), kad(15*1), kac(15*1), pbd(1*1), & + pbc(1*1), pad(15*1), pac(15*1), prim(15*1*1*1), scale + INTEGER :: ma, mb, mc, md, p_index + DO md = 1,1 + DO mc = 1,1 + DO mb = 1,1 + DO ma = 1,15 + p_index=p_index+1 + tmp = scale*prim(p_index) + ks_bd = ks_bd + tmp* pac((mc-1)*15+ma) + END DO + kbd((md-1)*1+mb) = kbd((md-1)*1+mb) - ks_bd + END DO + END DO + END DO + END SUBROUTINE block_15_1_1_1 diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41229.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41229.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41229.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41229.f90 Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,10 ---- + ! { dg-do compile } + ! { dg-options "-O2 -g" } + SUBROUTINE cp_fm_triangular_multiply() + INTEGER, PARAMETER :: dp=KIND(0.0D0) + REAL(dp), ALLOCATABLE, DIMENSION(:) :: tau, work + REAL(KIND=dp), DIMENSION(:, :), POINTER :: a + ndim = SIZE(a,2) + ALLOCATE(tau(ndim),STAT=istat) + ALLOCATE(work(2*ndim),STAT=istat) + END SUBROUTINE diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41347.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41347.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/pr41347.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/pr41347.f90 Mon Sep 28 20:38:53 2009 *************** *** 0 **** --- 1,32 ---- + ! { dg-do compile } + ! { dg-options "-O3" } + module hsl_ma41_m + + implicit none + + contains + + subroutine solve_ma41 + integer, dimension(20) :: info + call prininfo(15, info) + end subroutine solve_ma41 + + subroutine prininfo (ni, info) + integer, intent(in) :: ni + integer, intent(in), dimension(:) :: info + + integer i + + call prinfo + + contains + + subroutine prinfo + do i = 1, ni + write(*,'(i5,1x,i0)') i, info(i) + end do + end subroutine prinfo + + end subroutine prininfo + + end module hsl_ma41_m diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/proc_ptr_25.f90 Sun Aug 30 02:06:32 2009 *************** *** 0 **** --- 1,36 ---- + ! { dg-do run } + ! + ! PR 41139: [4.5 Regression] a procedure pointer call as actual argument + ! + ! Original test case by Barron Bichon + ! Modified by Janus Weil + + PROGRAM test + + PROCEDURE(add), POINTER :: f + logical :: g + + ! Passing the function works + g=greater(4.,add(1.,2.)) + if (.not. g) call abort() + + ! Passing the procedure pointer fails + f => add + g=greater(4.,f(1.,2.)) + if (.not. g) call abort() + + CONTAINS + + REAL FUNCTION add(x,y) + REAL, INTENT(in) :: x,y + print *,"add:",x,y + add = x+y + END FUNCTION add + + LOGICAL FUNCTION greater(x,y) + REAL, INTENT(in) :: x, y + greater = (x > y) + END FUNCTION greater + + END PROGRAM test + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/structure_constructor_10.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/structure_constructor_10.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/structure_constructor_10.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/structure_constructor_10.f90 Sun Aug 16 20:23:57 2009 *************** *** 0 **** --- 1,28 ---- + ! { dg-do compile } + ! + ! PR 41070: [4.5 Regression] Error: Components of structure constructor '' at (1) are PRIVATE + ! + ! Contributed by Michael Richmond + + MODULE cdf_aux_mod + IMPLICIT NONE + + TYPE :: one_parameter + CHARACTER (8) :: name + END TYPE one_parameter + + TYPE :: the_distribution + CHARACTER (8) :: name + END TYPE the_distribution + + TYPE (the_distribution), PARAMETER :: the_beta = the_distribution('cdf_beta') + END MODULE cdf_aux_mod + + SUBROUTINE cdf_beta() + USE cdf_aux_mod + IMPLICIT NONE + CALL check_complements(the_beta%name) + END SUBROUTINE cdf_beta + + ! { dg-final { cleanup-modules "cdf_aux_mod" } } + diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/transfer_resolve_1.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/transfer_resolve_1.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/transfer_resolve_1.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/transfer_resolve_1.f90 Sun Aug 16 20:04:40 2009 *************** *** 0 **** --- 1,21 ---- + ! { dg-do run } + ! PR40847 - an error in gfc_resolve_transfer caused the character length + ! of 'mold' to be set incorrectly. + ! + ! Contributed by Joost VandeVondele + ! + program test_elemental + + if (any (transfer_size((/0.,0./),(/'a','b'/)) .ne. [4 ,4])) call abort + + contains + + elemental function transfer_size (source, mold) + real, intent(in) :: source + character(*), intent(in) :: mold + integer :: transfer_size + transfer_size = SIZE(TRANSFER(source, (/mold/))) + return + end function transfer_size + + end program test_elemental diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/typebound_proc_12.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/typebound_proc_12.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/typebound_proc_12.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/typebound_proc_12.f90 Sat Sep 5 14:25:39 2009 *************** *** 0 **** --- 1,12 ---- + ! { dg-do compile } + ! Test the fix for PR41258, where an ICE was caused by a search + ! for a typebound procedure to resolve d%c%e + ! + ! Contributed by Joost VandeVondele + ! + TYPE a + TYPE(b), DIMENSION(:), POINTER :: c ! { dg-error "type that has not been declared" } + END TYPE + TYPE(a), POINTER :: d + CALL X(d%c%e) ! { dg-error "before it is defined" } + end diff -Nrcpad gcc-4.4.1/gcc/testsuite/gfortran.dg/use_only_4.f90 gcc-4.4.2/gcc/testsuite/gfortran.dg/use_only_4.f90 *** gcc-4.4.1/gcc/testsuite/gfortran.dg/use_only_4.f90 Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gfortran.dg/use_only_4.f90 Tue Aug 25 18:54:58 2009 *************** *** 0 **** --- 1,34 ---- + ! { dg-do compile } + ! Test the fix for PR41062, in which an ICE would ensue because + ! of confusion between the two 'one's in the creation of module + ! debug info. + ! + ! Reported by Norman S. Clerman + ! Reduced testcase by Tobias Burnus + ! + module m1 + interface one ! GENERIC "one" + module procedure one1 + end interface + contains + subroutine one1() + call abort + end subroutine one1 + end module m1 + + module m2 + use m1, only : one ! USE generic "one" + contains + subroutine two() + call one() ! Call internal "one" + contains + subroutine one() ! Internal "one" + print *, "m2" + end subroutine one + end subroutine two + end module m2 + + use m2 + call two + end + ! { dg-final { cleanup-modules "m1 m2" } } diff -Nrcpad gcc-4.4.1/gcc/testsuite/gnat.dg/alignment9.adb gcc-4.4.2/gcc/testsuite/gnat.dg/alignment9.adb *** gcc-4.4.1/gcc/testsuite/gnat.dg/alignment9.adb Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gnat.dg/alignment9.adb Wed Sep 16 15:03:14 2009 *************** *** 0 **** --- 1,30 ---- + -- { dg-do run } + -- { dg-options "-gnatws" } + + procedure Alignment9 is + + type Kind is (Small, Large); + for Kind'Size use 8; + + type Header is + record + K : Kind; + I : Integer; + end record; + + for Header use + record + K at 4 range 0..7; + I at 0 range 0..31; + end record; + + for Header'Size use 5*8; + for Header'Alignment use 1; + + H : Header; + + begin + if H'Size /= 40 then + raise Program_Error; + end if; + end; diff -Nrcpad gcc-4.4.1/gcc/testsuite/gnat.dg/array8.adb gcc-4.4.2/gcc/testsuite/gnat.dg/array8.adb *** gcc-4.4.1/gcc/testsuite/gnat.dg/array8.adb Thu Jan 1 00:00:00 1970 --- gcc-4.4.2/gcc/testsuite/gnat.dg/array8.adb Thu Sep 10 18:57:46 2009 *************** *** 0 **** --- 1,34 ---- + -- { dg-do compile } + -- { dg-options "-O2" } + + PROCEDURE Array8 IS + + function ID (I : Integer) return Integer is + begin + return I; + end; + + SUBTYPE STB IS INTEGER RANGE ID(-8) .. -5; + + TYPE TB IS ARRAY (STB RANGE <>) OF INTEGER; + + GENERIC + B1 : TB; + PROCEDURE PROC1; + + PROCEDURE PROC1 IS + BEGIN + IF B1'FIRST /= -8 THEN + raise Program_Error; + ELSIF B1'LAST /= ID(-5) THEN + raise Program_Error; + ELSIF B1 /= (7, 6, 5, 4) THEN + raise Program_Error; + END IF; + END; + + PROCEDURE PROC2 IS NEW PROC1 ((7, 6, ID(5), 4)); + + BEGIN + PROC2; + END; diff -Nrcpad gcc-4.4.1/gcc/testsuite/lib/target-supports.exp gcc-4.4.2/gcc/testsuite/lib/target-supports.exp *** gcc-4.4.1/gcc/testsuite/lib/target-supports.exp Tue Jul 21 07:22:51 2009 --- gcc-4.4.2/gcc/testsuite/lib/target-supports.exp Fri Aug 28 09:57:51 2009 *************** proc check_effective_target_pthread {} { *** 611,616 **** --- 611,623 ---- } "-pthread"] } + # Return 1 if the target supports -static + proc check_effective_target_static {} { + return [check_no_compiler_messages static executable { + int main (void) { return 0; } + } "-static"] + } + # Return 1 if the target supports -fstack-protector proc check_effective_target_fstack_protector {} { return [check_runtime fstack_protector { *************** proc check_effective_target_vect_cmdline *** 1269,1275 **** verbose "check_effective_target_vect_cmdline_needed: using cached result" 2 } else { set et_vect_cmdline_needed_saved 1 ! if { [istarget ia64-*-*] || (([istarget x86_64-*-*] || [istarget i?86-*-*]) && [check_effective_target_lp64]) || ([istarget powerpc*-*-*] --- 1276,1283 ---- verbose "check_effective_target_vect_cmdline_needed: using cached result" 2 } else { set et_vect_cmdline_needed_saved 1 ! if { [istarget alpha*-*-*] ! || [istarget ia64-*-*] || (([istarget x86_64-*-*] || [istarget i?86-*-*]) && [check_effective_target_lp64]) || ([istarget powerpc*-*-*]