aboutsummaryrefslogtreecommitdiff
path: root/gcc/testsuite
diff options
context:
space:
mode:
authorChao-ying Fu <fu@mips.com>2007-05-04 00:47:49 +0000
committerChao-ying Fu <fu@mips.com>2007-05-04 00:47:49 +0000
commitb5dedd05596b3c88bafcbb3cb5051435a112ff90 (patch)
tree2633e98fce35702a5fe1750de5c6c6065fa6a283 /gcc/testsuite
parentb1319141745fb4b21b294b3396e7ed3ab4734f5e (diff)
Merged revisions 124254-124401 via svnmerge from
svn+ssh://chaoyingfu@sources.redhat.com/svn/gcc/trunk ........ r124254 | jvdelisle | 2007-04-27 19:04:35 -0700 (Fri, 27 Apr 2007) | 5 lines 2007-04-27 Jerry DeLisle * gfortran.dg/inquire_5.f90: Update test. ........ r124255 | jvdelisle | 2007-04-27 19:10:46 -0700 (Fri, 27 Apr 2007) | 5 lines 2007-04-27 Jerry DeLisle <jvdelisle@gcc.gnu.org> * gfortran.dg/secnds.f: Use real*8. * gfortran.dg/secnds-1.f: Use real*8. ........ r124257 | rakdver | 2007-04-28 01:00:44 -0700 (Sat, 28 Apr 2007) | 4 lines * tree-cfg.c (move_block_to_fn): Release bb from dominance info. Update last_basic_block correctly. ........ r124258 | hubicka | 2007-04-28 01:20:08 -0700 (Sat, 28 Apr 2007) | 50 lines * config/alpha/alpha.c (alpha_output_mi_thunk_osf): Use insn_locators_alloc instead of insn_locators_initialize; call reset_block_changes. * config/sparc/sparc.c (sparc_output_mi_thunk): Likewise. * config/sh/sh.c (sparc_output_mi_thunk): Likewise. * config/is64/ia64.c (ia64_output_mi_thunk): Likewise. * config/rs6000/rs6000.c (rs6000_output_mi_thunk): Likewise. * config/score/score.c (th_output_mi_thunk): Likewise. * config/mips/mips.c (mips_output_mi_thunk): Likewise. * cfglyaout.c (set_curr_insn_source_location, set_curr_insn_block): tolerate uninitialized locator info. Re-apply: * function.c (init_function_start): Don't init line number info. (expand_function_end): Update. (reset_block_changes, record_block_change, finalize_block_changes, check_block_change, free_block_changes): Kill. * function.h (reset_block_changes, record_block_change, finalize_block_changes, check_block_change, free_block_changes): Remove prototypes. (struct function): Remove ib_boundaries_block. * emit-rtl.c (make_insn_raw, make_jump_insn_raw, make_call_insn_raw): Use curr_insn_locator to initialize locator. (emit_line_note): Remove. * cfgexpand.c (expand_gimple_cond_expr): Update. (construct_exit_block): Likewise. (tree_expand_cfg): Initialize/finalize locators. * expr.c (expand_expr_real): Update. * cfglayout.c (line_locators_locs, line_locators_lines, file_locators_locs, file_locators_files): Remove. (set_block_levels): Move to cfgexpand.c. (insn_locators_initialize): Remove. (pass_insn_locators_initialize): Remove. (locations_locators_locs, locations_locators_vals): New static vars. (curr_location, last_location, curr_block, last_block, curr_rtl_loc): Likewise. (insn_locators_alloc, insn_locators_finalize, set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): New functions. (locator_location): New. (locator_line, locator_file): Rewrite. * rtl.h (emit_line_note): Kill. (insn_locators_alloc, insn_locators_finalize, set_curr_insn_source_location, set_curr_insn_block, curr_insn_locator): Declare. * tree-inline.c (initialize_cfun): Do not initialize ib_boundaries_block. * passes.c (pass_insn_locators_initialize): Remove. ........ r124260 | tobi | 2007-04-28 06:17:07 -0700 (Sat, 28 Apr 2007) | 3 lines * options.c (gfc_handle_option): Ensure requested free form line length is not too small. ........ r124261 | sandra | 2007-04-28 10:47:28 -0700 (Sat, 28 Apr 2007) | 6 lines 2007-04-28 Sandra Loosemore <sandra@codesourcery.com> Nigel Stephens <nigel@mips.com> gcc/ * config/mips/mips.h (SLOW_BYTE_ACCESS): Turn off for MIPS16. ........ r124264 | gccadmin | 2007-04-28 16:17:40 -0700 (Sat, 28 Apr 2007) | 1 line Daily bump. ........ r124266 | jvdelisle | 2007-04-28 16:23:35 -0700 (Sat, 28 Apr 2007) | 11 lines 2007-04-28 Jerry DeLisle <jvdelisle@gcc.gnu.org> * io/list_read.c (next_char): Fix whitespace. * io/io.h: Remove prototypes and define macros for is_array_io, is_stream_io, and is_internal_unit. * io/unit.c (is_array_io), (is_internal_unit), (is_stream_io): Delete these functions. * io/transfer.c (read_sf): Change handling of internal_unit to make a single call to salloc_r and use memcpy to transfer the data. ........ r124269 | pault | 2007-04-28 22:10:22 -0700 (Sat, 28 Apr 2007) | 11 lines 2007-04-29 Paul Thomas <pault@gcc.gnu.org> * trans-array.c (gfc_conv_resolve_dependencies): Create a temp whenever a dependency is found. 2007-04-29 Paul Thomas <pault@gcc.gnu.org> * gfortran.dg/dependency_21.f90: New test. ........ r124271 | pinskia | 2007-04-28 23:22:14 -0700 (Sat, 28 Apr 2007) | 14 lines 2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com> * decl.c (reshape_init_r): Don't reshape the first element if it is a pointer to member function. 2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com> * g++.dg/init/ptrfn2.C: New test. * g++.dg/init/ptrfn3.C: New test. ........ r124274 | fxcoudert | 2007-04-29 03:45:57 -0700 (Sun, 29 Apr 2007) | 14 lines * scanner.c (load_file): Discard the byte order mark if one is found on the first non-preprocessor line of a file. * testsuite/gfortran.dg/bom_error.f90: New test. * testsuite/gfortran.dg/bom_include.f90: New test. * testsuite/gfortran.dg/bom_UTF16-LE.f90: New test. * testsuite/gfortran.dg/bom_UTF16-BE.f90: New test. * testsuite/gfortran.dg/bom_UTF-8.f90: New test. * testsuite/gfortran.dg/bom_UTF-32.f90: New test. * testsuite/gfortran.dg/bom_UTF-8.F90: New test. * testsuite/gfortran.dg/bom_include.inc: New file. ........ r124275 | dfranke | 2007-04-29 03:49:08 -0700 (Sun, 29 Apr 2007) | 7 lines 2007-04-29 Daniel Franke <franke.daniel@gmail.com> * gfortran.texi: Cleaned up keyword index. * invoke.texi: Likewise. * intrinsic.texi: Likewise. ........ r124277 | steven | 2007-04-29 04:47:11 -0700 (Sun, 29 Apr 2007) | 3 lines * regclass.c (scan_one_insn): Remove splitting of two address insns. ........ r124280 | bernds | 2007-04-29 06:22:04 -0700 (Sun, 29 Apr 2007) | 15 lines * rtl.def (SS_ABS): New code. * config/bfin/bfin.c (print_operand): New modifier 'v'. (enum bfin_builtins): Add BFIN_BUILTIN_SUM_2X16, BFIN_BUILTIN_ABS_1x32, BFIN_BUILTIN_ROUND_1x32, BFIN_BUILTIN_MULT_1x32x32, BFIN_BUILTIN_MULT_1x32x32NS, BFIN_BUILTIN_SSASHIFT_1x32. (bfin_init_builtins): Define them. (bdesc_1arg, bdesc_2arg): Add some of them here, ... (bfin_expand_builtin): ... and handle the others here. * config/bfin/bfin.md (ssabssi2, ssroundsi2, ssashiftsi3, flag_mul_macv2hi_parts_acconly_andcc0): New patterns. (ss_absv2hi2): Renamed from absv2hi; use ss_abs code. (ssashiftv2hi3, ssashifthi3, lshiftv2hi3, lshifthi3): Shift count operand is only HImode. ........ r124281 | fxcoudert | 2007-04-29 09:03:58 -0700 (Sun, 29 Apr 2007) | 8 lines * simplify.c (simplify_bound_dim): New function. (simplify_bound): Use the above. Perform simplification of LBOUND and UBOUND when DIM argument is not present. * gfortran.dg/bound_simplification_1.f90: New test. ........ r124282 | paolo | 2007-04-29 09:06:09 -0700 (Sun, 29 Apr 2007) | 9 lines 2007-04-29 Paolo Carlini <pcarlini@suse.de> * include/bits/localefwd.h: Remove redundant inline qualifiers. (__check_facet): Move... * include/bits/basic_ios.h: ... here. (widen(char), narrow(char_type, char)): Define inline. * include/bits/basic_ios.tcc (widen(char), narrow(char_type, char)): Remove. ........ r124283 | rakdver | 2007-04-29 10:33:34 -0700 (Sun, 29 Apr 2007) | 4 lines * df-scan.c (record_nonlocal_goto_receiver_defs): New function. (df_refs_record): Call it. ........ r124284 | rakdver | 2007-04-29 10:34:11 -0700 (Sun, 29 Apr 2007) | 3 lines changelog entry fix. ........ r124287 | geoffk | 2007-04-29 15:44:11 -0700 (Sun, 29 Apr 2007) | 2 lines Fix problem on case-sensitive file systems. ........ r124290 | gccadmin | 2007-04-29 16:17:28 -0700 (Sun, 29 Apr 2007) | 1 line Daily bump. ........ r124292 | fxcoudert | 2007-04-30 00:54:41 -0700 (Mon, 30 Apr 2007) | 3 lines * doc/trouble.texi (Interoperation): Remove note about Ultrix Fortran compiler. ........ r124293 | charlet | 2007-04-30 03:14:24 -0700 (Mon, 30 Apr 2007) | 3 lines * Makefile.in: No longer build gprmake ........ r124294 | paolo | 2007-04-30 03:27:31 -0700 (Mon, 30 Apr 2007) | 12 lines 2007-04-30 Paolo Carlini <pcarlini@suse.de> * include/tr1/type_traits (is_pod): Use __is_pod. * testsuite/tr1/4_metaprogramming/type_properties/ has_trivial_destructor/has_trivial_destructor.cc: Adjust. * testsuite/tr1/4_metaprogramming/type_properties/ has_nothrow_constructor/has_nothrow_constructor.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ has_trivial_constructor/has_trivial_constructor.cc: Likewise. * testsuite/tr1/4_metaprogramming/type_properties/ is_pod/is_pod.cc: Likewise. ........ r124295 | paolo | 2007-04-30 06:10:54 -0700 (Mon, 30 Apr 2007) | 22 lines 2007-04-30 Paolo Carlini <pcarlini@suse.de> * include/bits/stl_algobase.h (struct __niter_base): Add. (copy(_II, _II, _OI), copy_backward(_BI1, _BI1, _BI2), fill(_ForwardIterator, _ForwardIterator, const _Tp&), fill_n(_OI, _Size, const _Tp&), equal(_II1, _II1, _II2)): Use it. (struct __copy_normal, __copy_backward_normal, struct __fill_normal, struct __fill_n_normal): Remove. (struct __equal, struct __equal_aux): Add. * include/bits/stl_iterator.h: Add _Iterator_type typedef. * include/bits/stl_algobase.h (__fill_aux(wchar_t*, wchar_t*, wchar_t), __fill_n_aux(wchar_t*, _Size, wchar_t)): Remove. * testsuite/23_containers/requirements/sequences/dr438/vector/ constructor_1_neg.cc: Adjust dg-error line number. * testsuite/23_containers/requirements/sequences/dr438/vector/ constructor_2_neg.cc: Likewise. ........ r124297 | dfranke | 2007-04-30 08:04:56 -0700 (Mon, 30 Apr 2007) | 9 lines 2007-04-30 Daniel Franke <franke.daniel@gmail.com> * intrinsic.texi (IERRNO): Changed class to non-elemental function. (LOG10): Removed COMPLEX as accepted argument type. (NEW_LINE): Changed class from elemental to inquiry function. (SIGN): Removed requirement of scalar arguments. (SNGL): Changed class to elemental function. ........ r124298 | hp | 2007-04-30 09:12:48 -0700 (Mon, 30 Apr 2007) | 3 lines * testsuite/lib/libstdc++.exp (v3_target_compile_as_c): Correct regexp to filter out -nostdinc++. ........ r124300 | pinskia | 2007-04-30 10:01:18 -0700 (Mon, 30 Apr 2007) | 12 lines 2007-04-30 Andrew Pinski <andrew_pinski@playstation.sony.com> * tree.c (reconstruct_complex_type): Reconstruct a reference correctly. Also use the same mode for the pointer as the old pointer type. 2007-04-30 Andrew pinski <andrew_pinski@playstation.sony.com> * g++.dg/ext/vector7.C: New testcase. ........ r124302 | aoliva | 2007-04-30 10:41:11 -0700 (Mon, 30 Apr 2007) | 43 lines Temporarily revert: 2007-04-06 Andreas Tobler <a.tobler@schweiz.org> 2007-04-05 Alexandre Oliva <aoliva@redhat.com> * tree-sra.c (try_instantiate_multiple_fields): Needlessly initialize align to silence bogus warning. 2007-04-05 Alexandre Oliva <aoliva@redhat.com> * tree-sra.c (struct sra_elt): Add in_bitfld_block. Remove all_no_warning. (struct sra_walk_fns): Remove use_all parameter from use. (sra_hash_tree): Handle BIT_FIELD_REFs. (sra_elt_hash): Don't hash bitfld blocks. (sra_elt_eq): Skip them in parent compares as well. Handle BIT_FIELD_REFs. (sra_walk_expr): Don't maintain or pass down use_all_p. (scan_use): Remove use_all parameter. (scalarize_use): Likewise. Re-expand assignment to BIT_FIELD_REF of gimple_reg. De-scalarize before input or output, and re-scalarize after output. Don't mark anything for no warning. (scalarize_ldst): Adjust. (scalarize_walk_gimple_modify_statement): Likewise. (build_element_name_1): Handle BIT_FIELD_REFs. (instantiate_element): Don't warn for any element whose parent is used as a whole. (instantiate_missing_elements_1): Return the sra_elt. (canon_type_for_field): New. (try_instantiate_multiple_fields): New. (instantiate_missing_elemnts): Use them. (mark_no_warning): Removed. (generate_one_element_ref): Handle BIT_FIELD_REFs. (REPLDUP, sra_build_elt_assignment): New. (generate_copy_inout): Use them. (generate_element_copy): Likewise. Handle bitfld differences. (generate_element_zero): Don't recurse for blocks. Use sra_build_elt_assignment. (generate_one_element_int): Take elt instead of var. Use sra_build_elt_assignment. (generate_element_init_1): Adjust. (scalarize_use, scalarize_copy): Use REPLDUP. (scalarize_ldst): Move assert before dereference. (dump_sra_elt_name): Handle BIT_FIELD_REFs. ........ r124303 | bwilson | 2007-04-30 10:59:10 -0700 (Mon, 30 Apr 2007) | 3 lines * config/xtensa/lib1funcs.asm (__umodsi3, __modsi3): Rearrange so that DIV0 exception can fall through to a normal return. ........ r124304 | brooks | 2007-04-30 12:14:04 -0700 (Mon, 30 Apr 2007) | 17 lines * double-int.c (mpz_set_double_int): Moved from tree-ssa-loop-niter.c. (mpz_get_double_int): Likewise; also, add option to wrap out-of-range integers. * double-int.h: New prototypes for above. * tree.c (get_static_type_bounds): Moved from tree-ssa-loop-niter.c; now returns TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.. * tree.h: New prototype for above. * tree-ssa-loop-niter.c: Adjust mpz_to_double_int and get_type_bounds calls. (mpz_set_double_int): Move to double-int.c. (get_type_bounds): Move to tree.c, rename to get_static_type_bounds. (mpz_to_double_int): Move to double-int.c, rename to mpz_get_double_int. ........ r124305 | brooks | 2007-04-30 12:17:59 -0700 (Mon, 30 Apr 2007) | 7 lines * trans-const.c (gfc_conv_mpz_to_tree): Use mpz_get_double_int. (gfc_conv_tree_to_mpz): New function. (gfc_conv_mpfr_to_tree): Use real_from_mpfr. (gfc_conv_tree_to_mpfr): New function. * trans-const.h: (gfc_conv_tree_to_mpz): New prototype. (gfc_conv_tree_to_mpfr): New prototype. ........ r124306 | kazu | 2007-04-30 14:13:58 -0700 (Mon, 30 Apr 2007) | 4 lines * gcc.c-torture/execute/ieee/20000320-1.c: Use __LONG_LONG_MAX__ and its friends instead of those supplied by limits.h. ........ r124307 | bkoz | 2007-04-30 15:41:00 -0700 (Mon, 30 Apr 2007) | 8 lines 2007-04-30 Benjamin Kosnik <bkoz@redhat.com> Directory layout flattening. ........ r124308 | bkoz | 2007-04-30 15:45:19 -0700 (Mon, 30 Apr 2007) | 6 lines 2007-04-30 Benjamin Kosnik <bkoz@redhat.com> Directory layout flattening. ........ r124311 | gccadmin | 2007-04-30 16:16:59 -0700 (Mon, 30 Apr 2007) | 1 line Daily bump. ........ r124313 | kseitz | 2007-04-30 19:50:02 -0700 (Mon, 30 Apr 2007) | 6 lines * interpret-run.cc (NEXT_INSN)[DEBUG]: Advance PC before executing the instruction. * include/java-interp.h (_Jv_InterpFrame::get_pc): Subtract one insn from the frame's PC. _Jv_InterpMethod::run et al will advance the PC before executing the instruction. ........ r124315 | dorit | 2007-04-30 23:58:59 -0700 (Mon, 30 Apr 2007) | 17 lines * gcc.dg/vect/vect-iv-9.c: Added vect_int_mult target keyword to dg-final test. * gcc.dg/vect/vect-reduc-dot-u16b.c: Added vect_pack_trunc target keyword to dg-final test. * gcc.dg/vect/vect-iv-4.c: Likewise. * gcc.dg/vect/vect-widen-mult-u16.c: Likewise. * gcc.dg/vect/pr30771.c: Added vect_unapck target keyword to dg-final test. * gcc.dg/vect/vect-reduc-dot-u16a.c: Change variable type to avoid a cast. * gcc.dg/vect/no-section-anchors-vect-69.c: xfail on is64. * lib/target-supports.exp (check_effective_target_vect_widen_sum_hi_to_si): Added ia64. (check_effective_target_vect_widen_sum_qi_to_hi): Added ia64. ........ r124316 | dorit | 2007-05-01 00:01:12 -0700 (Tue, 01 May 2007) | 6 lines 2007-05-01 Dorit Nuzman <dorit@il.ibm.com> * gfortran.dg/vect/vect-5.f90: Fix dg-final test. ........ r124317 | bkoz | 2007-05-01 01:37:16 -0700 (Tue, 01 May 2007) | 6 lines 2007-05-01 Benjamin Kosnik <bkoz@redhat.com> * tr1/4_metaprogramming/*/explicit_instantiations.cc: Change "basic_ofstream" in comment to type_traits. ........ r124318 | bkoz | 2007-05-01 01:50:44 -0700 (Tue, 01 May 2007) | 7 lines 2007-05-01 Benjamin Kosnik <bkoz@redhat.com> * testsuite/*/explicit_instantiations.cc: Change to... * testsuite/*/explicit_instantiation.cc: ... this. ........ r124319 | bkoz | 2007-05-01 02:04:35 -0700 (Tue, 01 May 2007) | 12 lines 2007-05-01 Benjamin Kosnik <bkoz@redhat.com> * 23_containers/requirements/sequences/dr438/deque/*: Move to... * 23_containers/deque/requirements/dr438: ...here. * 23_containers/requirements/sequences/dr438/list/*: Move to... * 23_containers/list/requirements/dr438: ...here. * 23_containers/requirements/sequences/dr438/vector/*: Move to... * 23_containers/vector/requirements/dr438: ...here. ........ r124320 | dfranke | 2007-05-01 02:12:29 -0700 (Tue, 01 May 2007) | 10 lines 2007-05-01 Daniel Franke <franke.daniel@gmail.com> * intrinsic.c (add_functions): Fixed ELEMENTAL specifications. (add_subroutines): Replaced magic numbers in function calls by ELEMENTAL and NOT_ELEMENTAL respectively. * intrinsic.texi (MVBITS): Changed class to elemental subroutine. (RANDOM_NUMBER): Changed class to subroutine. (HUGE, TINY): Changed class to inquiry function. ........ r124321 | rguenth | 2007-05-01 02:32:34 -0700 (Tue, 01 May 2007) | 18 lines 2007-05-01 Richard Guenther <rguenther@suse.de> * tree-vrp.c (set_value_range): Do not allocate equiv bitmap if it is not about to be set. (get_value_range): Do not pre-allocate equiv bitmap. (update_value_range): No need to clear equiv field. (add_equivalence): Change prototype to get bitmap pointer. Allocate bitmap here if it is not already. (extract_range_from_assert): Do not allocate bitmap here. Update callers to add_equivalence. (extract_range_from_ssa_name): Likewise. (get_vr_for_comparison): New static helper. (compare_name_with_value): Handle NULL equiv bitmap by peeling the first iteration of the comparison loop. Use get_vr_for_comparison. (compare_names): Handle NULL equiv bitmaps by using fake ones. Use get_vr_for_comparison. ........ r124322 | rakdver | 2007-05-01 03:17:43 -0700 (Tue, 01 May 2007) | 15 lines * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Use bsi_after_labels. Always insert statements before bsi. * tree-vect-transform.c (vect_create_epilog_for_reduction): Ditto. * predict.c (apply_return_prediction): Check for empty blocks. * cfgexpand.c (lab_rtx_for_bb): New variable. (label_rtx_for_bb): Do not create new tree labels. (expand_gimple_basic_block): Add labels recorded in lab_rtx_for_bb. (tree_expand_cfg): Initialize lab_rtx_for_bb. * tree-cfg.c (build_tree_cfg): Call cleanup_dead_labels after creating edges. (label_for_bb): Add field used. (update_eh_label, main_block_label): Mark the label used. (cleanup_dead_labels): Remove unused labels. ........ r124323 | hubicka | 2007-05-01 04:18:01 -0700 (Tue, 01 May 2007) | 16 lines * tree.h (maybe_fold_offset_to_component_ref): Remove. (maybe_fold_offset_to_reference): Declare. * fold-const.c (fold_unary): Do not fold (type *)&A into &A->field_of_type_and_offset_0 * tree-ssa-ccp.c (maybe_fold_offset_to_array_ref): When base type size is unknown, give up. (maybe_fold_offset_to_component_ref): Ignore firelds with unknown offsets. (maybe_fold_offset_to_reference): New. (maybe_fold_stmt_indirect): Use it. (fold_stmt_r): Fold (type *)&A+offset into A->field_if_type_and_offset. * gimplify.c (gimplify_conversion): Canonicalize conversions to field references. (gimplify_expr): Likewise for plus_expr. ........ r124324 | hubicka | 2007-05-01 04:19:59 -0700 (Tue, 01 May 2007) | 3 lines * tree-vectorize.c (vect_is_simple_use): gimple_min_invariant is invariant. ........ r124326 | tkoenig | 2007-05-01 06:11:36 -0700 (Tue, 01 May 2007) | 13 lines 2007-05-01 Thomas Koenig <tkoenig@gcc.gnu.org> * dependency.c (gfc_full_array_ref_p): If the reference is to a single element, check that the array has a single element and that the correct element is referenced. 2007-05-01 Thomas Koenig <tkoenig@gcc.gnu.org> * gfortran.dg/array_memset_2: New test case. ........ r124327 | kgallowa | 2007-05-01 06:28:00 -0700 (Tue, 01 May 2007) | 7 lines 2007-05-01 Kyle Galloway <kgallowa@redhat.com> * classpath/lib/gnu/classpath/jdwp/VMIdManager.class: Regenerated. * classpath/lib/gnu/classpath/jdwp/VMIdManager$ReferenceKey.class: Regenerated. * classpath/lib/gnu/classpath/jdwp/VMIdManager$IdFactory.class: Regenerated. ........ r124328 | jsm28 | 2007-05-01 06:44:56 -0700 (Tue, 01 May 2007) | 2 lines * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qgt): Fix typo. ........ r124329 | rguenth | 2007-05-01 07:54:30 -0700 (Tue, 01 May 2007) | 5 lines 2007-05-01 Richard Guenther <rguenther@suse.de> * tree-ssa-loop-manip.c (ip_normal_pos): Check if last stmt is NULL. ........ r124330 | dwarak | 2007-05-01 08:29:10 -0700 (Tue, 01 May 2007) | 6 lines * config/i386/i386.c (override_options): Tuning 32-byte loop alignment for amdfam10 architecture. Increasing the max loop alignment padding to 24 bytes. ........ r124332 | jsm28 | 2007-05-01 10:41:48 -0700 (Tue, 01 May 2007) | 9 lines * config/rs6000/darwin-ldouble.c (__gcc_qunord): Define if __NO_FPRS__, not just if _SOFT_DOUBLE. * config/rs6000/libgcc-ppc-glibc.ver (__gcc_qunord): Likewise. * config/rs6000/rs6000.c (rs6000_init_libfuncs): Use __gcc_qunord also for E500 double. * config/rs6000/rs6000.md (buneq, bunge, bungt, bunle, bunlt, suneq, sunge, sungt, sunle, sunlt): Disable for (TARGET_HARD_FLOAT && !TARGET_FPRS). ........ r124333 | mmitchel | 2007-05-01 10:51:21 -0700 (Tue, 01 May 2007) | 11 lines * config/i386/gmon-sol2.c (size_t): New type. (intptr_t): Likewise. (s_textsize): Declare as size_t. (sbrk): Declare. (monstartup): Use size_t for sizes. (_mcount): Save and restore registers. (internal_mcount): Pass 0 as the first argument to monstartup in 64-bit mode. (moncontrol): Convert pointer to appropriately sized integer before passing to profil. ........ r124334 | ian | 2007-05-01 10:51:56 -0700 (Tue, 01 May 2007) | 13 lines * tree-vrp.c (vrp_val_is_max): New static function. (vrp_val_is_min): New static function. (set_value_range_to_value): Use TYPE_{MAX,MIN}_VALUE rather than copying the node. (set_value_range): Use vrp_val_is_{max,min}. (extract_range_from_assert): Likewise. (extract_range_from_binary_expr): Likewise. (extract_range_from_unary_expr): Likewise. (dump_value_range, vrp_meet): Likewise. (vrp_visit_phi_node): Likewise. * tree.c (build_distinct_type_copy): Revert change of 2007-04-27. ........ r124335 | kazu | 2007-05-01 10:54:15 -0700 (Tue, 01 May 2007) | 7 lines * config/m68k/constraints.md: New. * config/m68k/m68k.h (REG_CLASS_FROM_LETTER, CONST_OK_FOR_LETTER_P, CONST_DOUBLE_OK_FOR_LETTER_P, EXTRA_CONSTRAINT): Remove. * config/m68k/m68k.md: Include constraints.md. * expr.c (expand_expr_real_1): Copy DECL_RTL before using it. ........ r124336 | dwarak | 2007-05-01 11:29:39 -0700 (Tue, 01 May 2007) | 1 line Tuning 32-byte loop alignment for amdfam10 architecture ........ r124337 | pinskia | 2007-05-01 11:34:32 -0700 (Tue, 01 May 2007) | 7 lines 2007-05-01 Andrew Pinski <andrew_pinski@playstation.sony.com> * gcc.c-torture/compile/20070501-1.c: New testcase. ........ r124339 | dwarak | 2007-05-01 12:34:19 -0700 (Tue, 01 May 2007) | 8 lines 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> * config/i386/i386.c (override_options): Accept k8-sse3, opteron-sse3 and athlon64-sse3 as improved versions of k8, opteron and athlon64 with SSE3 instruction set support. * doc/invoke.texi: Likewise. ........ r124340 | dwarak | 2007-05-01 12:48:29 -0700 (Tue, 01 May 2007) | 1 line Accept k8-sse3, opteron-sse3 and athlon64-sse3 as improved versions of k8,opteron and athlon64 with SSE3 instruction set support ........ r124341 | dwarak | 2007-05-01 12:53:40 -0700 (Tue, 01 May 2007) | 7 lines 2007-05-01 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com> * doc/invoke.texi: Fix typo, 'AMD Family 10h core' instead of 'AMD Family 10 core'. ........ r124342 | geoffk | 2007-05-01 15:42:08 -0700 (Tue, 01 May 2007) | 2 lines Add ChangeLog entry for commit r124287. ........ r124343 | geoffk | 2007-05-01 15:44:08 -0700 (Tue, 01 May 2007) | 15 lines * gcc.c-torture/compile/limits-blockid.c: New. * gcc.c-torture/compile/limits-caselabels.c: New. * gcc.c-torture/compile/limits-declparen.c: New. * gcc.c-torture/compile/limits-enumconst.c: New. * gcc.c-torture/compile/limits-exprparen.c: New. * gcc.c-torture/compile/limits-externalid.c: New. * gcc.c-torture/compile/limits-fnargs.c: New. * gcc.c-torture/compile/limits-fndefn.c: New. * gcc.c-torture/compile/limits-idexternal.c: New. * gcc.c-torture/compile/limits-idinternal.c: New. * gcc.c-torture/compile/limits-pointer.c: New. * gcc.c-torture/compile/limits-stringlit.c: New. * gcc.c-torture/compile/limits-structmem.c: New. * gcc.c-torture/compile/limits-structnest.c: New. ........ r124344 | hjl | 2007-05-01 17:37:51 -0700 (Tue, 01 May 2007) | 5 lines 2007-05-01 H.J. Lu <hongjiu.lu@intel.com> * config/i386/i386.c (ix86_expand_sse_comi): Remove unused variable. ........ r124347 | charlet | 2007-05-02 01:43:30 -0700 (Wed, 02 May 2007) | 15 lines 2007-04-20 Pascal Obry <obry@adacore.com> * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation to use Stream_IO.File_Type. This is needed to make use of the UTF-8 encoding support of Stream_IO. (Write_Unit): Idem. * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the filename and corresponding encoding to match the OS requirement. (__gnat_file_exists): Do not call __gnat_stat() on Windows as this routine will fail on specific devices like CON: AUX: ... ........ r124349 | rguenth | 2007-05-02 02:12:49 -0700 (Wed, 02 May 2007) | 11 lines 2007-05-02 Richard Guenther <rguenther@suse.de> * tree-ssa-forwprop.c (forward_propagate_addr_expr_1): New argument, single_use_p. If we have a single use that is a conversion to the definition rhs type, propagate that rhs. (forward_propagate_addr_expr): Pass single_use_p argument to forward_propagate_addr_expr_1. * g++.dg/tree-ssa/pr31146-2.C: New testcase. ........ r124352 | nickc | 2007-05-02 10:00:19 -0700 (Wed, 02 May 2007) | 2 lines * config/frv/predicates.md (symbolic_operand): Accept CONSTs. ........ r124353 | pinskia | 2007-05-02 10:47:06 -0700 (Wed, 02 May 2007) | 6 lines 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com> * fold-const.c (fold_comparision): Remove the "foo++ == CONST" transformation. ........ r124354 | pinskia | 2007-05-02 10:47:50 -0700 (Wed, 02 May 2007) | 8 lines Forgot to add the PR number to the last changelog entry: 2007-05-02 Andrew Pinski <andrew_pinski@playstation.sony.com> * fold-const.c (fold_comparision): Remove the "foo++ == CONST" transformation. ........ r124355 | paolo | 2007-05-02 11:37:00 -0700 (Wed, 02 May 2007) | 6 lines 2007-05-02 Paolo Carlini <pcarlini@suse.de> * include/ext/pool_allocator.h (__pool_alloc<>::allocate, __pool_alloc<>::deallocate): Fix _S_force_new check. ........ r124356 | tromey | 2007-05-02 12:33:44 -0700 (Wed, 02 May 2007) | 7 lines libcpp * macro.c (paste_tokens): Remove PASTE_LEFT from the old lhs. gcc/testsuite * gcc.dg/cpp/pr28709.c: New file. ........ r124358 | echristo | 2007-05-02 14:57:50 -0700 (Wed, 02 May 2007) | 10 lines 2007-05-02 Eric Christopher <echristo@apple.com> * gcc.dg/cpp/if-div.c: New file. 2007-05-02 Eric Christopher <echristo@apple.com> * expr.c (num_div_op): Don't overflow if the result is zero. ........ r124361 | pbrook | 2007-05-02 15:16:21 -0700 (Wed, 02 May 2007) | 9 lines 2007-05-02 Paul Brook <paul@codesourcery.com> gcc/ * config/arm/bpabi.S (aeabi_lcmp): Fix result on overflow. gcc/testsuite/ * gcc.dg/arm-eabi1.c: Move debug output. Augment lcmp/ulcmp tests. ........ r124362 | rakdver | 2007-05-02 15:34:38 -0700 (Wed, 02 May 2007) | 4 lines * tree-cfg.c (move_block_to_fn): Assign bb to the correct index. ........ r124363 | spark | 2007-05-02 16:11:13 -0700 (Wed, 02 May 2007) | 22 lines gcc/ChangeLog: 2007-05-02 Seongbae Park <seongbae.park@gmail.com> * c-common.c (strip_pointer_or_array_types): New function. * c-common.h (strip_pointer_or_array_types): New function declaration. gcc/cp/ChangeLog: 2007-05-02 Seongbae Park <seongbae.park@gmail.com> * decl2.c (constrain_class_visibility): Use strip_pointer_or_array_types instead of strip_array_types. gcc/testsuite/ChangeLog: 2007-05-02 Seongbae Park <seongbae.park@gmail.com> * g++.dg/warn/anonymous-namespace-2.C: New. * g++.dg/warn/anonymous-namespace-2.h: New. ........ r124367 | gccadmin | 2007-05-02 16:17:26 -0700 (Wed, 02 May 2007) | 1 line Daily bump. ........ r124370 | tromey | 2007-05-02 16:27:03 -0700 (Wed, 02 May 2007) | 9 lines https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=238755 * java/lang/natCharacter.cc (Character::getType): Handle negative code points. (Character::toLowerCase): Likewise. (Character::toUpperCase): Likewise. (Character::digit): Likewise. (Character::getNumericValue): Likewise. (Character::getDirectionality): Likewise. (Character::toTitleCase): Likewise. ........ r124371 | geoffk | 2007-05-02 17:25:18 -0700 (Wed, 02 May 2007) | 2 lines * gcc.c-torture/compile-limits-stringlit.c: Reduce size of string. ........ r124372 | echristo | 2007-05-02 19:09:58 -0700 (Wed, 02 May 2007) | 6 lines 2007-05-02 Eric Christopher <echristo@apple.com> * config/darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Translate -shared to -Zdynamiclib. ........ r124373 | brooks | 2007-05-02 23:14:52 -0700 (Wed, 02 May 2007) | 7 lines * system.h: Remove inclusion of double-int.h * tree.h: Include double-int.h * gengtype.c: Likewise * cfgloop.h: Likewise * Makefile.in: Adjust dependencies on double-int.h ........ r124374 | bkoz | 2007-05-03 04:49:12 -0700 (Thu, 03 May 2007) | 83 lines 2007-05-03 Benjamin Kosnik <bkoz@redhat.com> * include/std/type_traits (enable_if): New. (conditional): New. (__decay_selector, decay): New. (__cv_selector, __match_cv_qualifiers): New. (__make_unsigned, __make_unsigned_selector, make_unsigned): New. (__make_signed, __make_signed_selector, make_signed): New. (has_trivial_constructor): ... to has_trivial_default_constructor. (has_nothrow_constructor): ... to has_nothrow_default_constructor. (has_trivial_copy): ... to has_trivial_copy_constructor. (has_nothrow_copy): ... to has_nothrow_copy_constructor. * include/tr1/type_traits_fwd: Move to... * include/tr1/type_traitsfwd: ... this, consistency with ios/string/locale forward headers. * include/tr1/type_traits: Adjust include. * include/Makefile.am (tr1_headers): Change type_traits_fwd.h to type_traitsfwd.h. * include/Makefile.in: Regenerate. * testsuite/23_containers/tuple: Move... * testsuite/20_util/tuple:... here. * testsuite/20_util/conditional: New. * testsuite/20_util/conditional/requirements: Same. * testsuite/20_util/conditional/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/conditional/requirements/typedefs.cc: Same. * testsuite/20_util/decay: Same. * testsuite/20_util/decay/requirements: Same. * testsuite/20_util/decay/requirements/explicit_instantiation.cc: Same. * testsuite/20_util/decay/requirements/typedefs.cc: Same. * testsuite/20_util/enable_if: Same. * testsuite/20_util/enable_if/requirements: Same. * testsuite/20_util/enable_if/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/enable_if/requirements/typedefs.cc: Same. * testsuite/20_util/enable_if/requirements/typedefs_neg.cc: Same. * testsuite/20_util/has_nothrow_copy_constructor: Same. * testsuite/20_util/has_nothrow_copy_constructor/requirements: Same. * testsuite/20_util/has_nothrow_copy_constructor/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/has_nothrow_copy_constructor/requirements/ typedefs.cc: Same. * testsuite/20_util/has_nothrow_copy_constructor/value.cc: Same. * testsuite/20_util/has_nothrow_default_constructor: Same. * testsuite/20_util/has_nothrow_default_constructor/requirements: Same. * testsuite/20_util/has_nothrow_default_constructor/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/has_nothrow_default_constructor/requirements/ typedefs.cc: Same. * testsuite/20_util/has_nothrow_default_constructor/value.cc: Same. * testsuite/20_util/has_trivial_copy_constructor: Same. * testsuite/20_util/has_trivial_copy_constructor/requirements: Same. * testsuite/20_util/has_trivial_copy_constructor/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/has_trivial_copy_constructor/requirements/ typedefs.cc: Same. * testsuite/20_util/has_trivial_copy_constructor/value.cc: Same. * testsuite/20_util/has_trivial_default_constructor: Same. * testsuite/20_util/has_trivial_default_constructor/requirements: Same. * testsuite/20_util/has_trivial_default_constructor/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/has_trivial_default_constructor/requirements/ typedefs.cc: Same. * testsuite/20_util/has_trivial_default_constructor/value.cc: Same. * testsuite/20_util/headers/type_traits/types_std_c++0x_neg.cc: Same. * testsuite/20_util/make_signed: Same. * testsuite/20_util/make_signed/requirements: Same. * testsuite/20_util/make_signed/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs.cc: Same. * testsuite/20_util/make_signed/requirements/typedefs_neg.cc: Same. * testsuite/20_util/make_unsigned: Same. * testsuite/20_util/make_unsigned/requirements: Same. * testsuite/20_util/make_unsigned/requirements/ explicit_instantiation.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs.cc: Same. * testsuite/20_util/make_unsigned/requirements/typedefs_neg.cc: Same. ........ r124375 | dorit | 2007-05-03 05:54:45 -0700 (Thu, 03 May 2007) | 8 lines * tree-vect-analyze.c (vect_update_misalignment_for_peel): Remove wrong code. (vect_enhance_data_refs_alignment): Compute peel amount using TYPE_VECTOR_SUBPARTS instead of vf. * tree-vect-transform.c (vect_gen_niters_for_prolog_loop): Likewise. ........ r124376 | bernds | 2007-05-03 06:17:51 -0700 (Thu, 03 May 2007) | 6 lines * config/bfin/bfin.md (addpdi3, us_truncpdisi2): New patterns. (umulsi3_highpart): Use them. * config/bfin/lib1funcs.asm (__umulsi3_highpart): Use unsigned move for final accumulator to D regisster tranfser. ........ r124377 | bernds | 2007-05-03 06:24:03 -0700 (Thu, 03 May 2007) | 6 lines * gcc.target/bfin/frmul.c (__v2hi): Use short as base type, not itn. * gcc.target/bfin/arith.c (__v2hi): Likewise. * gcc.target/bfin/mul-combine.c (__v2hi): Likewise. * gcc.target/bfin/shift.c (__v2hi): Likewise. ........ r124378 | rakdver | 2007-05-03 06:27:26 -0700 (Thu, 03 May 2007) | 6 lines * lambda-code.c (perfect_nestify): Fix updating of dominators. * gcc.dg/tree-ssa/loop-27.c: New test. ........ r124379 | uros | 2007-05-03 07:32:25 -0700 (Thu, 03 May 2007) | 5 lines * config/i386/i386.c (print_operand) ['z']: Output 'w' for operands of size 2 when operand is not MEM_P. ........ r124380 | uros | 2007-05-03 07:50:34 -0700 (Thu, 03 May 2007) | 4 lines * tree-vect-transform.c (vect_update_inits_of_drs): Use vect_print_dump_info() to output debug information. ........ r124381 | ian | 2007-05-03 10:37:19 -0700 (Thu, 03 May 2007) | 3 lines * config/rs6000/rs6000.c (rs6000_override_options): Don't se MASK_PPC_GFXOPT for 8540 or 8548. ........ r124383 | aph | 2007-05-03 11:30:33 -0700 (Thu, 03 May 2007) | 8 lines 2007-05-03 Andrew Haley <aph@redhat.com> * gnu/javax/management/Server.java (Server): Record the delegate. (registerMBean): Notify the delegate. (unregisterMBean): Likewise. (notify): New method. ........ r124385 | aph | 2007-05-03 11:35:55 -0700 (Thu, 03 May 2007) | 8 lines 2007-05-03 Andrew Haley <aph@redhat.com> * gnu/javax/management/Server.java (Server): Record the delegate. (registerMBean): Notify the delegate. (unregisterMBean): Likewise. (notify): New method. ........ r124386 | aph | 2007-05-03 11:38:37 -0700 (Thu, 03 May 2007) | 8 lines 2007-05-03 Andrew Haley <aph@redhat.com> * gnu/javax/management/Server.java (Server): Record the delegate. (registerMBean): Notify the delegate. (unregisterMBean): Likewise. (notify): New method. ........ r124387 | fitzsim | 2007-05-03 12:02:52 -0700 (Thu, 03 May 2007) | 14 lines 2007-05-03 Thomas Fitzsimmons <fitzsim@redhat.com> https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=237304 * Makefile.in: Regenerate. * scripts/makemake.tcl (scan_directory): Treat default.css as a property file. * classpath/javax/swing/text/html/default.css: Move to... * classpath/resource/javax/swing/text/html/default.css: New file. * classpath/javax/swing/text/html/HTMLEditorKit.java (getStyleSheet): Throw RuntimeException when style loading fails. * sources.am (property_files): Add classpath/resource/javax/swing/text/html/default.css. ........ r124388 | jsm28 | 2007-05-03 12:05:39 -0700 (Thu, 03 May 2007) | 7 lines * config/soft-fp/double.h, config/soft-fp/extended.h, config/soft-fp/floatundidf.c, config/soft-fp/floatundisf.c, config/soft-fp/floatunsidf.c, config/soft-fp/floatunsisf.c, config/soft-fp/op-2.h, config/soft-fp/op-4.h, config/soft-fp/op-common.h, config/soft-fp/quad.h: Update from glibc CVS. ........ r124392 | janis | 2007-05-03 14:32:52 -0700 (Thu, 03 May 2007) | 2 lines * doc/sourcebuild.texi (Test Directives) Clarify dg-excess-errors. ........ r124395 | gccadmin | 2007-05-03 16:17:04 -0700 (Thu, 03 May 2007) | 1 line Daily bump. ........ r124399 | brobecke | 2007-05-03 16:39:35 -0700 (Thu, 03 May 2007) | 6 lines * filename_cmp.c: Replace include of ctype.h by include of safe-ctype.h. (filename_cmp): Use TOLOWER instead of tolower for conversions that are locale-independent. * Makefile.in (filename_cmp.o): Add dependency on safe-ctype.h. ........ r124400 | mueller | 2007-05-03 17:08:53 -0700 (Thu, 03 May 2007) | 10 lines 2007-05-03 Dirk Mueller <dmueller@suse.de> * doc/invoke.texi (-m386,-m486,-mpentium,-mpentiumpro): Remove. * config/i386/i386.h (CC1_CPU_SPEC): Remove handling for deprecated options. * config/i386/i386.opt (m386,m486,mpentium,mpentiumpro): Remove. ........ r124401 | mueller | 2007-05-03 17:16:02 -0700 (Thu, 03 May 2007) | 5 lines 2007-05-04 Dirk Mueller <dmueller@suse.de> * ChangeLog: split old changelogs by year ........ git-svn-id: https://gcc.gnu.org/svn/gcc/branches/fixed-point@124405 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/testsuite')
-rw-r--r--gcc/testsuite/ChangeLog162
-rw-r--r--gcc/testsuite/g++.dg/ext/vector7.C8
-rw-r--r--gcc/testsuite/g++.dg/init/ptrfn2.C14
-rw-r--r--gcc/testsuite/g++.dg/init/ptrfn3.C14
-rw-r--r--gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C24
-rw-r--r--gcc/testsuite/g++.dg/warn/anonymous-namespace-2.C29
-rw-r--r--gcc/testsuite/g++.dg/warn/anonymous-namespace-2.h3
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/20070501-1.c16
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-blockid.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-caselabels.c21
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-declparen.c15
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c15
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-externalid.c15
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c20
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c17
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c11
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-idinternal.c11
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-pointer.c8
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c10
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-structmem.c18
-rw-r--r--gcc/testsuite/gcc.c-torture/compile/limits-structnest.c23
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c5
-rw-r--r--gcc/testsuite/gcc.dg/arm-eabi1.c82
-rw-r--r--gcc/testsuite/gcc.dg/cpp/if-div.c6
-rw-r--r--gcc/testsuite/gcc.dg/cpp/pr28709.c8
-rw-r--r--gcc/testsuite/gcc.dg/tree-ssa/loop-27.c14
-rw-r--r--gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c9
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr30771.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/pr31699.c35
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-iv-4.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-iv-9.c3
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c23
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c45
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c18
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c2
-rw-r--r--gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c2
-rw-r--r--gcc/testsuite/gcc.target/bfin/arith.c2
-rw-r--r--gcc/testsuite/gcc.target/bfin/frmul.c2
-rw-r--r--gcc/testsuite/gcc.target/bfin/mul-combine.c2
-rw-r--r--gcc/testsuite/gcc.target/bfin/shift.c2
-rw-r--r--gcc/testsuite/gfortran.dg/array_memset_2.f9038
-rw-r--r--gcc/testsuite/gfortran.dg/bom_UTF-32.f90bin0 -> 204 bytes
-rw-r--r--gcc/testsuite/gfortran.dg/bom_UTF-8.f903
-rw-r--r--gcc/testsuite/gfortran.dg/bom_UTF-8_F.F903
-rw-r--r--gcc/testsuite/gfortran.dg/bom_UTF16-BE.f90bin0 -> 102 bytes
-rw-r--r--gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90bin0 -> 102 bytes
-rw-r--r--gcc/testsuite/gfortran.dg/bom_error.f904
-rw-r--r--gcc/testsuite/gfortran.dg/bom_include.f902
-rw-r--r--gcc/testsuite/gfortran.dg/bom_include.inc2
-rw-r--r--gcc/testsuite/gfortran.dg/bound_simplification_1.f9027
-rw-r--r--gcc/testsuite/gfortran.dg/dependency_21.f9021
-rw-r--r--gcc/testsuite/gfortran.dg/inquire_5.f902
-rw-r--r--gcc/testsuite/gfortran.dg/secnds-1.f2
-rw-r--r--gcc/testsuite/gfortran.dg/secnds.f2
-rw-r--r--gcc/testsuite/gfortran.dg/vect/vect-5.f902
-rw-r--r--gcc/testsuite/lib/target-supports.exp49
60 files changed, 865 insertions, 52 deletions
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 18037894e23..c0d97b4dc5b 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,161 @@
+2007-05-03 Zdenek Dvorak <dvorakz@suse.cz>
+
+ PR tree-optimization/30565
+ * gcc.dg/tree-ssa/loop-27.c: New test.
+
+2007-05-03 Bernd Schmidt <bernd.schmidt@analog.com>
+
+ * gcc.target/bfin/frmul.c (__v2hi): Use short as base type, not itn.
+ * gcc.target/bfin/arith.c (__v2hi): Likewise.
+ * gcc.target/bfin/mul-combine.c (__v2hi): Likewise.
+ * gcc.target/bfin/shift.c (__v2hi): Likewise.
+
+2007-05-03 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR tree-optimization/31699
+ * lib/target-supports.exp (check_effective_target_vect_intfloat_cvt):
+ New.
+ (check_effective_target_vect_floatint_cvt): New.
+ * gcc.dg/vect/vect-floatint-conversion-1.c: Use new keyword instead
+ of specific targets.
+ * gcc.dg/vect/vect-intfloat-conversion-1.c: Likewise.
+ * gcc.dg/vect/vect-multitypes-1.c: One less loop gets vectorized.
+ * gcc.dg/vect/vect-multitypes-4.c: Likewise.
+ * gcc.dg/vect/vect-iv-4.c: Likewise.
+ * gcc.dg/vect/vect-multitypes-11.c: New.
+ * gcc.dg/vect/pr31699.c: New.
+
+2007-05-02 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c-torture/compile-limits-stringlit.c: Reduce size of string.
+
+2007-05-02 Seongbae Park <seongbae.park@gmail.com>
+
+ PR C++/31663
+ * g++.dg/warn/anonymous-namespace-2.C: New.
+ * g++.dg/warn/anonymous-namespace-2.h: New.
+
+2007-05-02 Paul Brook <paul@codesourcery.com>
+
+ * gcc.dg/arm-eabi1.c: Move debug output. Augment lcmp/ulcmp tests.
+
+2007-05-02 Eric Christopher <echristo@apple.com>
+
+ * gcc.dg/cpp/if-div.c: New file.
+
+2007-05-02 Tom Tromey <tromey@redhat.com>
+
+ PR preprocessor/28709:
+ * gcc.dg/cpp/pr28709.c: New file.
+
+2007-05-02 Richard Guenther <rguenther@suse.de>
+
+ PR tree-optimization/31146
+ * g++.dg/tree-ssa/pr31146-2.C: New testcase.
+
+2007-05-01 Geoffrey Keating <geoffk@apple.com>
+
+ * gcc.c-torture/compile/limits-blockid.c: New.
+ * gcc.c-torture/compile/limits-caselabels.c: New.
+ * gcc.c-torture/compile/limits-declparen.c: New.
+ * gcc.c-torture/compile/limits-enumconst.c: New.
+ * gcc.c-torture/compile/limits-exprparen.c: New.
+ * gcc.c-torture/compile/limits-externalid.c: New.
+ * gcc.c-torture/compile/limits-fnargs.c: New.
+ * gcc.c-torture/compile/limits-fndefn.c: New.
+ * gcc.c-torture/compile/limits-idexternal.c: New.
+ * gcc.c-torture/compile/limits-idinternal.c: New.
+ * gcc.c-torture/compile/limits-pointer.c: New.
+ * gcc.c-torture/compile/limits-stringlit.c: New.
+ * gcc.c-torture/compile/limits-structmem.c: New.
+ * gcc.c-torture/compile/limits-structnest.c: New.
+
+2007-04-29 Geoffrey Keating <geoffk@apple.com>
+
+ * gfortran.dg/bom_UTF-8_F.F90: Rename from bom_UTF-8.F90.
+
+2007-05-01 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR middle-end/31740
+ * gcc.c-torture/compile/20070501-1.c: New testcase.
+
+2007-05-01 Thomas Koenig <tkoenig@gcc.gnu.org>
+
+ PR fortran/31732
+ * gfortran.dg/array_memset_2: New test case.
+
+2007-05-01 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR testsuite/31615
+ * gfortran.dg/vect/vect-5.f90: Fix dg-final test.
+
+2007-05-01 Dorit Nuzman <dorit@il.ibm.com>
+
+ PR testsuite/31589
+ * gcc.dg/vect/vect-iv-9.c: Added vect_int_mult target keyword to
+ dg-final test.
+ * gcc.dg/vect/vect-reduc-dot-u16b.c: Added vect_pack_trunc target
+ keyword to dg-final test.
+ * gcc.dg/vect/vect-iv-4.c: Likewise.
+ * gcc.dg/vect/vect-widen-mult-u16.c: Likewise.
+ * gcc.dg/vect/pr30771.c: Added vect_unapck target keyword to dg-final
+ test.
+ * gcc.dg/vect/vect-reduc-dot-u16a.c: Change variable type to avoid a
+ cast.
+ * gcc.dg/vect/no-section-anchors-vect-69.c: xfail on is64.
+ * lib/target-supports.exp
+ (check_effective_target_vect_widen_sum_hi_to_si): Added ia64.
+ (check_effective_target_vect_widen_sum_qi_to_hi): Added ia64.
+
+2007-04-30 Kazu Hirata <kazu@codesourcery.com>
+
+ * gcc.c-torture/execute/ieee/20000320-1.c: Use
+ __LONG_LONG_MAX__ and its friends instead of those supplied by
+ limits.h.
+
+2007-04-30 Andrew pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/31721
+ * g++.dg/ext/vector7.C: New testcase.
+
+2007-04-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/31591
+ * gfortran.dg/bound_simplification_1.f90: New test.
+
+2007-04-29 Francois-Xavier Coudert <fxcoudert@gcc.gnu.org>
+
+ PR fortran/31645
+ * testsuite/gfortran.dg/bom_error.f90: New test.
+ * testsuite/gfortran.dg/bom_include.f90: New test.
+ * testsuite/gfortran.dg/bom_UTF16-LE.f90: New test.
+ * testsuite/gfortran.dg/bom_UTF16-BE.f90: New test.
+ * testsuite/gfortran.dg/bom_UTF-8.f90: New test.
+ * testsuite/gfortran.dg/bom_UTF-32.f90: New test.
+ * testsuite/gfortran.dg/bom_UTF-8.F90: New test.
+ * testsuite/gfortran.dg/bom_include.inc: New file.
+
+2007-04-28 Andrew Pinski <andrew_pinski@playstation.sony.com>
+
+ PR C++/30221
+ * g++.dg/init/ptrfn2.C: New test.
+ * g++.dg/init/ptrfn3.C: New test.
+
+2007-04-29 Paul Thomas <pault@gcc.gnu.org>
+
+ PR fortran/31711
+ * gfortran.dg/dependency_21.f90: New test.
+
+2007-04-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ * gfortran.dg/secnds.f: Use real*8.
+ * gfortran.dg/secnds-1.f: Use real*8.
+
+2007-04-27 Jerry DeLisle <jvdelisle@gcc.gnu.org>
+
+ PR libfortran/31532
+ * gfortran.dg/inquire_5.f90: Update test.
+
2007-05-03 Chao-ying Fu <fu@mips.com>
* gcc.target/mips/dpaq_sa_l_w.c: New test.
@@ -154,7 +312,7 @@
Olga Golovanevsky <olga@il.ibm.com>
* g++.dg/other/str_empty.C: New test.
-
+
2007-04-24 Richard Henderson <rth@redhat.com>
* gcc.dg/vect/vect.exp: Don't run tests on Alpha.
@@ -2304,7 +2462,7 @@
Dorit Nuzman <dorit@il.ibm.com>
* gcc.dg/vect/vect-intfloat-conversion-1.c: New test.
- * gcc.dg/vect/vect-intfloat-conversion-1.c: New test.
+ * gcc.dg/vect/vect-floatint-conversion-1.c: New test.
* gcc.dg/vect/vect-93.c: Another loop gets vectorized on powerpc.
* gcc.dg/vect/vect-113.c: Likewise.
diff --git a/gcc/testsuite/g++.dg/ext/vector7.C b/gcc/testsuite/g++.dg/ext/vector7.C
new file mode 100644
index 00000000000..cd259b1a258
--- /dev/null
+++ b/gcc/testsuite/g++.dg/ext/vector7.C
@@ -0,0 +1,8 @@
+// { dg-options "" }
+// { dg-do compile }
+// PR C++/31721 and PR 14217
+// the attribute vector_size would change a reference type into a pointer type which was wrong.
+
+#define vector __attribute__((__vector_size__(16) ))
+vector int b;
+vector int &a = b;
diff --git a/gcc/testsuite/g++.dg/init/ptrfn2.C b/gcc/testsuite/g++.dg/init/ptrfn2.C
new file mode 100644
index 00000000000..0ca922b9c38
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ptrfn2.C
@@ -0,0 +1,14 @@
+// { dg-options "" }
+// { dg-do compile }
+// C++/30221
+// We would ICE while trying to reshape the pointer to
+// member function element which is not needed.
+
+
+class abstract {};
+typedef void (abstract::*fptr1) (short & s ) const;
+struct s {};
+s array[] =
+{
+ (fptr1)0
+};// { dg-error "" }
diff --git a/gcc/testsuite/g++.dg/init/ptrfn3.C b/gcc/testsuite/g++.dg/init/ptrfn3.C
new file mode 100644
index 00000000000..960085063cf
--- /dev/null
+++ b/gcc/testsuite/g++.dg/init/ptrfn3.C
@@ -0,0 +1,14 @@
+// { dg-options "" }
+// { dg-do compile }
+// C++/30221
+// We would ICE while trying to reshape the pointer to
+// member function element which is not needed.
+
+
+class abstract {};
+typedef void (abstract::*fptr1) (short & s ) const;
+struct s {fptr1 f;};
+s array[] =
+{
+ (fptr1)0
+};
diff --git a/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C b/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C
new file mode 100644
index 00000000000..0fd60275b53
--- /dev/null
+++ b/gcc/testsuite/g++.dg/tree-ssa/pr31146-2.C
@@ -0,0 +1,24 @@
+/* { dg-do compile } */
+/* { dg-options "-O -fdump-tree-forwprop1" } */
+
+#include <new>
+
+template <class T>
+struct Vec
+{
+ Vec()
+ {
+ for (int i=0; i<3; ++i)
+ new (&a[i]) T(0);
+ }
+ T a[3];
+};
+
+double foo (void)
+{
+ Vec<double> v;
+ return v.a[2];
+}
+
+/* { dg-final { scan-tree-dump "Replaced .*iftmp.* != 0B. with .1" "forwprop1" } } */
+/* { dg-final { cleanup-tree-dump "forwprop1" } } */
diff --git a/gcc/testsuite/g++.dg/warn/anonymous-namespace-2.C b/gcc/testsuite/g++.dg/warn/anonymous-namespace-2.C
new file mode 100644
index 00000000000..4d87b69d396
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/anonymous-namespace-2.C
@@ -0,0 +1,29 @@
+// Test for the warning of exposing types from an anonymous namespace
+// { dg-do compile }
+//
+#include "anonymous-namespace-2.h"
+
+namespace {
+ struct good { };
+}
+
+struct g1 {
+ good * A;
+};
+struct b1 { // { dg-warning "uses the anonymous namespace" }
+ bad * B;
+};
+
+struct g2 {
+ good * A[1];
+};
+struct b2 { // { dg-warning "uses the anonymous namespace" }
+ bad * B[1];
+};
+
+struct g3 {
+ good (*A)[1];
+};
+struct b3 { // { dg-warning "uses the anonymous namespace" }
+ bad (*B)[1];
+};
diff --git a/gcc/testsuite/g++.dg/warn/anonymous-namespace-2.h b/gcc/testsuite/g++.dg/warn/anonymous-namespace-2.h
new file mode 100644
index 00000000000..ce5d05c2aec
--- /dev/null
+++ b/gcc/testsuite/g++.dg/warn/anonymous-namespace-2.h
@@ -0,0 +1,3 @@
+namespace {
+ struct bad { };
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/20070501-1.c b/gcc/testsuite/gcc.c-torture/compile/20070501-1.c
new file mode 100644
index 00000000000..39acd49dee4
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/20070501-1.c
@@ -0,0 +1,16 @@
+ typedef signed int signed16 __attribute__ ((__mode__ (__HI__)));
+ typedef unsigned int unsigned16 __attribute__ ((__mode__ (__HI__)));
+ typedef signed16 HI;
+ typedef unsigned16 UHI;
+unsigned short f(int y)
+{
+ HI tmp_b4;
+ tmp_b4 = y;
+ UHI opval;
+ if (tmp_b4 == -32768)
+ opval = 32767;
+ else
+ opval = -tmp_b4;
+ return opval;
+}
+
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c b/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
new file mode 100644
index 00000000000..718c8673c2e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-blockid.c
@@ -0,0 +1,18 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+void q9_func(void)
+{
+ LIM5(char t)
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-caselabels.c b/gcc/testsuite/gcc.c-torture/compile/limits-caselabels.c
new file mode 100644
index 00000000000..09b7b2eb0fe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-caselabels.c
@@ -0,0 +1,21 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+void q19_func (int i)
+{
+ switch (i) {
+ LIM5 (case 1)
+ break;
+ }
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-declparen.c b/gcc/testsuite/gcc.c-torture/compile/limits-declparen.c
new file mode 100644
index 00000000000..41bf9c5cdc1
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-declparen.c
@@ -0,0 +1,15 @@
+#define PTR1 (* (* (* (* (* (* (* (* (* (*
+#define PTR2 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1
+#define PTR3 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2
+#define PTR4 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3
+#define PTR5 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4
+#define PTR6 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5
+
+#define RBR1 ) ) ) ) ) ) ) ) ) )
+#define RBR2 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1
+#define RBR3 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2
+#define RBR4 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3
+#define RBR5 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4
+#define RBR6 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5
+
+int PTR4 q4_var RBR4 = 0;
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c b/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
new file mode 100644
index 00000000000..80ac342cd2f
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-enumconst.c
@@ -0,0 +1,18 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+enum q21_enum
+{
+ LIM5 (e)
+};
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c b/gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c
new file mode 100644
index 00000000000..2c6dce04a8e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-exprparen.c
@@ -0,0 +1,15 @@
+#define LBR1 ( ( ( ( ( ( ( ( ( (
+#define LBR2 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1 LBR1
+#define LBR3 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2 LBR2
+#define LBR4 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3 LBR3
+#define LBR5 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4 LBR4
+#define LBR6 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5 LBR5
+
+#define RBR1 ) ) ) ) ) ) ) ) ) )
+#define RBR2 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1
+#define RBR3 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2
+#define RBR4 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3
+#define RBR5 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4
+#define RBR6 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5 RBR5
+
+int q5_var = LBR4 0 RBR4;
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-externalid.c b/gcc/testsuite/gcc.c-torture/compile/limits-externalid.c
new file mode 100644
index 00000000000..1b316c791cd
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-externalid.c
@@ -0,0 +1,15 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+LIM5(char t)
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c b/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
new file mode 100644
index 00000000000..b94fa43db12
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-fnargs.c
@@ -0,0 +1,20 @@
+#define PAR1 int, int, int, int, int, int, int, int, int, int
+#define PAR2 PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1, PAR1
+#define PAR3 PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2, PAR2
+#define PAR4 PAR3, PAR3, PAR3, PAR3, PAR3, PAR3, PAR3, PAR3, PAR3, PAR3
+#define PAR5 PAR4, PAR4, PAR4, PAR4, PAR4, PAR4, PAR4, PAR4, PAR4, PAR4
+#define PAR6 PAR5, PAR5, PAR5, PAR5, PAR5, PAR5, PAR5, PAR5, PAR5, PAR5
+
+extern void func (PAR4);
+
+#define ARG1 0,1,2,3,4,5,6,7,8,9
+#define ARG2 ARG1, ARG1, ARG1, ARG1, ARG1, ARG1, ARG1, ARG1, ARG1, ARG1
+#define ARG3 ARG2, ARG2, ARG2, ARG2, ARG2, ARG2, ARG2, ARG2, ARG2, ARG2
+#define ARG4 ARG3, ARG3, ARG3, ARG3, ARG3, ARG3, ARG3, ARG3, ARG3, ARG3
+#define ARG5 ARG4, ARG4, ARG4, ARG4, ARG4, ARG4, ARG4, ARG4, ARG4, ARG4
+#define ARG5HALF ARG5, ARG5, ARG5, ARG5, ARG5
+
+void caller(void)
+{
+ func (ARG4);
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
new file mode 100644
index 00000000000..4d2aef08933
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-fndefn.c
@@ -0,0 +1,17 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+void func1 (LIM5(int p) int t)
+{
+}
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c b/gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c
new file mode 100644
index 00000000000..1f346aadffe
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-idexternal.c
@@ -0,0 +1,11 @@
+#define LIM1 0123456789
+#define LIM2 LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1
+#define LIM3 LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2
+#define LIM4 LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3
+#define LIM5 LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4
+#define LIM6 LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5
+
+#define V(x) v##LIM5##x
+
+int V(a);
+int V(b);
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-idinternal.c b/gcc/testsuite/gcc.c-torture/compile/limits-idinternal.c
new file mode 100644
index 00000000000..cbd095ee007
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-idinternal.c
@@ -0,0 +1,11 @@
+#define LIM1 0123456789
+#define LIM2 LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1##LIM1
+#define LIM3 LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2##LIM2
+#define LIM4 LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3##LIM3
+#define LIM5 LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4##LIM4
+#define LIM6 LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5##LIM5
+
+#define V(x) v##LIM6##x
+
+static int V(a);
+static int V(b);
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-pointer.c b/gcc/testsuite/gcc.c-torture/compile/limits-pointer.c
new file mode 100644
index 00000000000..1e50ea7cf34
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-pointer.c
@@ -0,0 +1,8 @@
+#define PTR1 * * * * * * * * * *
+#define PTR2 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1 PTR1
+#define PTR3 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2 PTR2
+#define PTR4 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3 PTR3
+#define PTR5 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4 PTR4
+#define PTR6 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5 PTR5
+
+int PTR4 q3_var = 0;
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c b/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
new file mode 100644
index 00000000000..22dc19b3c6e
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-stringlit.c
@@ -0,0 +1,10 @@
+#define STR2 "012345678901234567890123456789012345678901234567890123456789\
+0123456789012345678901234567890123456789"
+#define STR3 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2 STR2
+#define STR4 STR3 STR3 STR3 STR3 STR3 STR3 STR3 STR3 STR3 STR3
+#define STR5 STR4 STR4 STR4 STR4 STR4 STR4 STR4 STR4 STR4 STR4
+#define STR6 STR5 STR5 STR5 STR5 STR5 STR5 STR5 STR5 STR5 STR5
+#define STR7 STR6 STR6 STR6 STR6 STR6 STR6 STR6 STR6 STR6 STR6
+#define STR8 STR7 STR7 STR7 STR7 STR7 STR7 STR7 STR7 STR7 STR7
+
+char vlv[] = STR6;
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-structmem.c b/gcc/testsuite/gcc.c-torture/compile/limits-structmem.c
new file mode 100644
index 00000000000..2f2265a5e1a
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-structmem.c
@@ -0,0 +1,18 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+struct q20_struct
+{
+ LIM4 (char m)
+};
diff --git a/gcc/testsuite/gcc.c-torture/compile/limits-structnest.c b/gcc/testsuite/gcc.c-torture/compile/limits-structnest.c
new file mode 100644
index 00000000000..62448fb51ce
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/compile/limits-structnest.c
@@ -0,0 +1,23 @@
+#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)
+#define LIM3(x) LIM2(x##0) LIM2(x##1) LIM2(x##2) LIM2(x##3) LIM2(x##4) \
+ LIM2(x##5) LIM2(x##6) LIM2(x##7) LIM2(x##8) LIM2(x##9)
+#define LIM4(x) LIM3(x##0) LIM3(x##1) LIM3(x##2) LIM3(x##3) LIM3(x##4) \
+ LIM3(x##5) LIM3(x##6) LIM3(x##7) LIM3(x##8) LIM3(x##9)
+#define LIM5(x) LIM4(x##0) LIM4(x##1) LIM4(x##2) LIM4(x##3) LIM4(x##4) \
+ LIM4(x##5) LIM4(x##6) LIM4(x##7) LIM4(x##8) LIM4(x##9)
+#define LIM6(x) LIM5(x##0) LIM5(x##1) LIM5(x##2) LIM5(x##3) LIM5(x##4) \
+ LIM5(x##5) LIM5(x##6) LIM5(x##7) LIM5(x##8) LIM5(x##9)
+#define LIM7(x) LIM6(x##0) LIM6(x##1) LIM6(x##2) LIM6(x##3) LIM6(x##4) \
+ LIM6(x##5) LIM6(x##6) LIM6(x##7) LIM6(x##8) LIM6(x##9)
+
+#define RBR1 } x; } x; } x; } x; } x; } x; } x; } x; } x; } x;
+#define RBR2 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1 RBR1
+#define RBR3 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2 RBR2
+#define RBR4 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3 RBR3
+#define RBR5 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4 RBR4
+
+LIM4(struct s)
+ int x;
+RBR4
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
index 5f1768c1abc..873a17df4d3 100644
--- a/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/20000320-1.c
@@ -1,11 +1,10 @@
#if defined(__mips__) && defined(__sgi__)
#include <sys/fpu.h>
#endif /* defined(__mips__) && defined(__sgi__) */
-#include <limits.h>
-#if UINT_MAX != 4294967295u || (ULONG_LONG_MAX != 18446744073709551615ull && ULONG_MAX != 18446744073709551615ull)
+#if __INT_MAX__ != 2147483647 || (__LONG_LONG_MAX__ != 9223372036854775807ll && __LONG_MAX__ != 9223372036854775807ll)
int main(void) { exit (0); }
#else
-#if ULONG_MAX != 18446744073709551615ull
+#if __LONG_MAX__ != 9223372036854775807ll
typedef unsigned long long ull;
#else
typedef unsigned long ull;
diff --git a/gcc/testsuite/gcc.dg/arm-eabi1.c b/gcc/testsuite/gcc.dg/arm-eabi1.c
index 6a8d0e044b1..06af6710299 100644
--- a/gcc/testsuite/gcc.dg/arm-eabi1.c
+++ b/gcc/testsuite/gcc.dg/arm-eabi1.c
@@ -85,11 +85,11 @@ extern long long __eabi_uwrite8 (long long, void *);
type a1; \
type b1; \
\
- fprintf (stderr, "%d: Test %s == %s\n", __LINE__, #a, #b); \
a1 = a; \
b1 = b; \
if (abs (a1 - b1) > epsilon) \
{ \
+ fprintf (stderr, "%d: Test %s == %s\n", __LINE__, #a, #b); \
fprintf (stderr, "%d: " format " != " format "\n", \
__LINE__, a1, b1); \
abort (); \
@@ -103,9 +103,56 @@ extern long long __eabi_uwrite8 (long long, void *);
#define feq(a, b) eq (a, b, float, fabs, fepsilon, "%f")
#define deq(a, b) eq (a, b, double, fabs, depsilon, "%g")
+#define NUM_CMP_VALUES 6
+
+/* Values picked to cover a range of small, large, positive and negative. */
+static unsigned int cmp_val[NUM_CMP_VALUES] =
+{
+ 0,
+ 1,
+ 0x40000000,
+ 0x80000000,
+ 0xc0000000,
+ 0xffffffff
+};
+
+/* All combinations for each of the above values. */
+#define ulcmp(l, s, m) \
+ s, l, l, l, l, l, m, s, l, l, l, l, \
+ m, m, s, l, l, l, m, m, m, s, l, l, \
+ m, m, m, m, s, l, m, m, m, m, m, s
+
+#define lcmp(l, s, m) \
+ s, l, l, m, m, m, m, s, l, m, m, m, \
+ m, m, s, m, m, m, l, l, l, s, l, l, \
+ l, l, l, m, s, l, l, l, l, m, m, s
+
+/* All combinations of the above for high/low words. */
+static int lcmp_results[] =
+{
+ lcmp(ulcmp(-1, -1, -1), ulcmp(-1, 0, 1), ulcmp(1, 1, 1))
+};
+
+static int ulcmp_results[] =
+{
+ ulcmp(ulcmp(-1, -1, -1), ulcmp(-1, 0, 1), ulcmp(1, 1, 1))
+};
+
+static int signof(int i)
+{
+ if (i < 0)
+ return -1;
+
+ if (i == 0)
+ return 0;
+
+ return 1;
+}
+
int main () {
unsigned char bytes[256];
- int i;
+ int i, j, k, n;
+ int *result;
/* Table 2. Double-precision floating-point arithmetic. */
deq (__aeabi_dadd (dzero, done), done);
@@ -234,12 +281,31 @@ int main () {
leq (__aeabi_llsl (2LL, 1), 4LL);
leq (__aeabi_llsr (-1LL, 63), 1);
leq (__aeabi_lasr (-1LL, 63), -1);
- ieq (__aeabi_lcmp (0LL, 1LL), -1);
- ieq (__aeabi_lcmp (0LL, 0LL), 0);
- ieq (__aeabi_lcmp (1LL, 0LL), 1);
- ieq (__aeabi_ulcmp (0LL, 1LL), -1);
- ieq (__aeabi_ulcmp (0LL, 0LL), 0);
- ieq (__aeabi_ulcmp (1LL, 0LL), 1);
+
+ result = lcmp_results;
+ for (i = 0; i < NUM_CMP_VALUES; i++)
+ for (j = 0; j < NUM_CMP_VALUES; j++)
+ for (k = 0; k < NUM_CMP_VALUES; k++)
+ for (n = 0; n < NUM_CMP_VALUES; n++)
+ {
+ ieq (signof (__aeabi_lcmp
+ (((long long)cmp_val[i] << 32) | cmp_val[k],
+ ((long long)cmp_val[j] << 32) | cmp_val[n])),
+ *result);
+ result++;
+ }
+ result = ulcmp_results;
+ for (i = 0; i < NUM_CMP_VALUES; i++)
+ for (j = 0; j < NUM_CMP_VALUES; j++)
+ for (k = 0; k < NUM_CMP_VALUES; k++)
+ for (n = 0; n < NUM_CMP_VALUES; n++)
+ {
+ ieq (signof (__aeabi_ulcmp
+ (((long long)cmp_val[i] << 32) | cmp_val[k],
+ ((long long)cmp_val[j] << 32) | cmp_val[n])),
+ *result);
+ result++;
+ }
ieq (__aeabi_idiv (-550, 11), -50);
ueq (__aeabi_uidiv (4000000000U, 1000000U), 4000U);
diff --git a/gcc/testsuite/gcc.dg/cpp/if-div.c b/gcc/testsuite/gcc.dg/cpp/if-div.c
new file mode 100644
index 00000000000..4e42168124f
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/if-div.c
@@ -0,0 +1,6 @@
+/* { dg-do preprocess } */
+
+/* Test that this preprocesses without error. */
+
+#if (-1)/2
+#endif
diff --git a/gcc/testsuite/gcc.dg/cpp/pr28709.c b/gcc/testsuite/gcc.dg/cpp/pr28709.c
new file mode 100644
index 00000000000..11cccbe8b5d
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/cpp/pr28709.c
@@ -0,0 +1,8 @@
+/* Copyright (C) 2006 Free Software Foundation, Inc. */
+/* PR preprocessor/28709 */
+
+/* { dg-do compile } */
+#define foo - ## >>
+foo;
+/* { dg-error "expected identifier.*'-'" "" { target *-*-* } 6 } */
+/* { dg-error pasting "" { target *-*-* } 6 } */
diff --git a/gcc/testsuite/gcc.dg/tree-ssa/loop-27.c b/gcc/testsuite/gcc.dg/tree-ssa/loop-27.c
new file mode 100644
index 00000000000..802b7c2aa2b
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/tree-ssa/loop-27.c
@@ -0,0 +1,14 @@
+/* PR tree-optimization/30565 */
+
+/* { dg-do compile } */
+/* { dg-options "-O1 -ftree-pre -ftree-loop-linear" } */
+
+static double snrdef[32];
+void psycho_n1(double ltmin[2][32], int stereo)
+{
+ int i, k;
+
+ for (k = 0; k < stereo; k++)
+ for (i = 0; i < 32; i++)
+ ltmin[k][i] = snrdef[i];
+}
diff --git a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
index 7ed505b6f78..a590458da6e 100644
--- a/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
+++ b/gcc/testsuite/gcc.dg/vect/no-section-anchors-vect-69.c
@@ -50,7 +50,7 @@ int main1 ()
abort ();
}
- /* 2. aligned */
+ /* 2. aligned on 8-bytes */
for (i = 3; i < N-1; i++)
{
tmp1[2].a.n[1][2][i] = 6;
@@ -63,7 +63,7 @@ int main1 ()
abort ();
}
- /* 3. aligned */
+ /* 3. aligned on 16-bytes */
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
@@ -113,5 +113,8 @@ int main (void)
/* { dg-final { scan-tree-dump-times "vectorized 4 loops" 1 "vect" } } */
/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 0 "vect" } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" } } */
+/* Loops 1,2,4 are unaligned on targets that require 16-byte alignment.
+ Loops 1,4 are unaligned on targets that require 8-byte alignment (ia64). */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 3 "vect" { xfail ia64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { target ia64-*-* } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr30771.c b/gcc/testsuite/gcc.dg/vect/pr30771.c
index 9371f96d918..e9f4bd2abc7 100644
--- a/gcc/testsuite/gcc.dg/vect/pr30771.c
+++ b/gcc/testsuite/gcc.dg/vect/pr30771.c
@@ -14,5 +14,5 @@ main()
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_unpack } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/pr31699.c b/gcc/testsuite/gcc.dg/vect/pr31699.c
new file mode 100644
index 00000000000..86099924387
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/pr31699.c
@@ -0,0 +1,35 @@
+/* { dg-require-effective-target vect_double } */
+
+#include <stdlib.h>
+#include <stdarg.h>
+#include "tree-vect.h"
+
+float x[256];
+
+void foo(void)
+{
+ double *z = malloc (sizeof(double) * 256);
+
+ int i;
+ for (i=0; i<256; ++i)
+ z[i] = x[i] + 1.0f;
+}
+
+
+int main()
+{
+ int i;
+
+ check_vect ();
+
+ for (i = 0; i < 256; i++)
+ x[i] = (float) i;
+
+ foo();
+
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_intfloat_cvt } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c b/gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c
index 95ffc684ec4..dd845bf057d 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-floatint-conversion-1.c
@@ -36,5 +36,5 @@ main (void)
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target i?86-*-* x86_64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_floatint_cvt } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c b/gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c
index 1369f2b8608..85a993a34c8 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-intfloat-conversion-1.c
@@ -34,5 +34,5 @@ int main (void)
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target powerpc*-*-* i?86-*-* x86_64-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_intfloat_cvt } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-iv-4.c b/gcc/testsuite/gcc.dg/vect/vect-iv-4.c
index c860f686058..0a3c44579ed 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-iv-4.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-iv-4.c
@@ -40,5 +40,5 @@ int main (void)
return main1 ();
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail *-*-* } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-iv-9.c b/gcc/testsuite/gcc.dg/vect/vect-iv-9.c
index 12d4d35b753..5926bbdd31e 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-iv-9.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-iv-9.c
@@ -33,5 +33,6 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_int_mult } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target {! vect_int_mult } } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
index 2b884011952..e1cbafa56a1 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-1.c
@@ -14,10 +14,9 @@ int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,
/* Current peeling-for-alignment scheme will consider the 'sa[i+7]'
access for peeling, and therefore will examine the option of
- using a peeling factor = VF-7%VF. This will result in a peeling factor 1,
+ using a peeling factor = V-7%V = 1,3 for V=8,4 respectively,
which will also align the access to 'ia[i+3]', and the loop could be
- vectorized on all targets that support unaligned loads.
- */
+ vectorized on all targets that support unaligned loads. */
int main1 (int n)
{
@@ -43,17 +42,16 @@ int main1 (int n)
/* Current peeling-for-alignment scheme will consider the 'ia[i+3]'
access for peeling, and therefore will examine the option of
- using a peeling factor = VF-3%VF. This will result in a peeling factor
- 5 if VF=8, or 1 if VF=4,2. In either case, this will also align the access
- to 'sa[i+3]', and the loop could be vectorized on targets that support
- unaligned loads. */
+ using a peeling factor = (V-3)%V = 1 for V=2,4.
+ This will not align the access 'sa[i+3]' (for which we need to
+ peel 5 iterations), so the loop can not be vectorized. */
int main2 (int n)
{
int i;
/* Multiple types with different sizes, used in independent
- copmutations. Vectorizable. */
+ copmutations. */
for (i = 0; i < n; i++)
{
ia[i+3] = ib[i];
@@ -80,8 +78,11 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 2 "vect" { xfail vect_no_align } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
new file mode 100644
index 00000000000..26bba0b1f24
--- /dev/null
+++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-11.c
@@ -0,0 +1,45 @@
+/* { dg-require-effective-target vect_int } */
+
+#include <stdarg.h>
+#include "tree-vect.h"
+
+#define N 64
+
+short x[N] __attribute__ ((__aligned__(16)));
+
+int
+foo (int len, int *z) {
+ int i;
+
+ for (i=0; i<len; i++) {
+ z[i] = x[i];
+ }
+}
+
+
+int main (void)
+{
+ short i;
+ int z[N+4];
+
+ check_vect ();
+
+ for (i=0; i<N; i++) {
+ x[i] = i;
+ }
+
+ foo (N,z+2);
+
+ for (i=0; i<N; i++) {
+ if (z[i+2] != x[i])
+ abort ();
+ }
+
+ return 0;
+}
+
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { target vect_unpack } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target { ! vect_unpack } } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { target { vect_no_align && vect_unpack } } } } */
+/* { dg-final { cleanup-tree-dump "vect" } } */
+
diff --git a/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c b/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
index 63f244d06b7..b5a55cba762 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-multitypes-4.c
@@ -20,8 +20,7 @@ unsigned int ib[N] = {0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,
access for peeling, and therefore will examine the option of
using a peeling factor = VF-7%VF. This will result in a peeling factor 1,
which will also align the access to 'ia[i+3]', and the loop could be
- vectorized on all targets that support unaligned loads.
- */
+ vectorized on all targets that support unaligned loads. */
int main1 (int n)
{
@@ -48,9 +47,9 @@ int main1 (int n)
/* Current peeling-for-alignment scheme will consider the 'ia[i+3]'
access for peeling, and therefore will examine the option of
using a peeling factor = VF-3%VF. This will result in a peeling factor
- 5 if VF=8, or 1 if VF=4,2. In either case, this will also align the access
- to 'sa[i+3]', and the loop could be vectorized on targets that support
- unaligned loads. */
+ 1 if VF=4,2. This will not align the access to 'sa[i+3]', for which we
+ need to peel 5,1 iterations for VF=4,2 respectively, so the loop can not
+ be vectorized. */
int main2 (int n)
{
@@ -84,8 +83,11 @@ int main (void)
return 0;
}
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail vect_no_align } } } */
-/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 8 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 2 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail vect_no_align } } } */
+/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 8 "vect" { xfail *-*-* } } } */
+/* { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 4 "vect" { xfail vect_no_align } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
index 334cc239d8b..2947db26e6c 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16a.c
@@ -30,7 +30,7 @@ foo1(int len) {
int main (void)
{
unsigned int dot1;
- int i;
+ unsigned short i;
check_vect ();
diff --git a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
index 9bb5cdf0fb6..bf499eb9f05 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-reduc-dot-u16b.c
@@ -53,6 +53,6 @@ int main (void)
dot-product of unsigned shorts) and targets that support widening multiplication. */
/* The induction loop in main is vectorized. */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_pack_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
index c2cd0801a3a..e8579e47eed 100644
--- a/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
+++ b/gcc/testsuite/gcc.dg/vect/vect-widen-mult-u16.c
@@ -44,6 +44,6 @@ int main (void)
/*The induction loop is vectorized */
/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 2 "vect" { xfail *-*-* } } } */
-/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } } */
+/* { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" { target vect_pack_trunc } } } */
/* { dg-final { cleanup-tree-dump "vect" } } */
diff --git a/gcc/testsuite/gcc.target/bfin/arith.c b/gcc/testsuite/gcc.target/bfin/arith.c
index 211506cfeca..35029ed32d2 100644
--- a/gcc/testsuite/gcc.target/bfin/arith.c
+++ b/gcc/testsuite/gcc.target/bfin/arith.c
@@ -1,7 +1,7 @@
extern void abort (void);
extern void exit (int);
-typedef int __v2hi __attribute ((vector_size(4)));
+typedef short __v2hi __attribute ((vector_size(4)));
typedef __v2hi fract2x16;
typedef short fract16;
diff --git a/gcc/testsuite/gcc.target/bfin/frmul.c b/gcc/testsuite/gcc.target/bfin/frmul.c
index 390d02f6ad7..61930bae552 100644
--- a/gcc/testsuite/gcc.target/bfin/frmul.c
+++ b/gcc/testsuite/gcc.target/bfin/frmul.c
@@ -1,7 +1,7 @@
extern void abort (void);
extern void exit (int);
-typedef int __v2hi __attribute ((vector_size(4)));
+typedef short __v2hi __attribute ((vector_size(4)));
typedef __v2hi fract2x16;
typedef short fract16;
diff --git a/gcc/testsuite/gcc.target/bfin/mul-combine.c b/gcc/testsuite/gcc.target/bfin/mul-combine.c
index 59129b57a65..2a811b332a8 100644
--- a/gcc/testsuite/gcc.target/bfin/mul-combine.c
+++ b/gcc/testsuite/gcc.target/bfin/mul-combine.c
@@ -10,7 +10,7 @@
extern void abort (void);
extern void exit (int);
-typedef int __v2hi __attribute ((vector_size(4)));
+typedef short __v2hi __attribute ((vector_size(4)));
typedef __v2hi fract2x16;
typedef short fract16;
diff --git a/gcc/testsuite/gcc.target/bfin/shift.c b/gcc/testsuite/gcc.target/bfin/shift.c
index 1f17883a37f..4a0e9175cc0 100644
--- a/gcc/testsuite/gcc.target/bfin/shift.c
+++ b/gcc/testsuite/gcc.target/bfin/shift.c
@@ -1,7 +1,7 @@
extern void abort (void);
extern void exit (int);
-typedef int __v2hi __attribute ((vector_size(4)));
+typedef short __v2hi __attribute ((vector_size(4)));
typedef __v2hi fract2x16;
typedef short fract16;
diff --git a/gcc/testsuite/gfortran.dg/array_memset_2.f90 b/gcc/testsuite/gfortran.dg/array_memset_2.f90
new file mode 100644
index 00000000000..58ce8fe6442
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/array_memset_2.f90
@@ -0,0 +1,38 @@
+! { dg-do run }
+! { dg-options "-O2 -fdump-tree-original" }
+
+module foo
+contains
+ subroutine bar(a)
+ real, dimension(:,:) :: a
+ a(1,:) = 0.
+ end subroutine bar
+end module foo
+
+program test
+ use foo
+ implicit none
+ real, dimension (2,2) :: a, d, e
+ real, dimension (1,2) :: b
+ real, dimension (2) :: c
+ data a, d, e /12*1.0/
+ data b /2*1.0/
+ data c /2*1.0/
+
+ a(1,:) = 0. ! This can't be optimized to a memset.
+ b(1,:) = 0. ! This is optimized to memset.
+ c = 0. ! This is optimized to memset.
+ d(:,1) = 0. ! This can't be otimized to a memset.
+ call bar(e)
+
+ if (any(a /= reshape((/ 0.0, 1.0, 0.0, 1.0/), shape(a)))) call abort
+ if (any(b /= 0.)) call abort
+ if (any(c /= 0.)) call abort
+ if (any(d /= reshape((/ 0.0, 0.0, 1.0, 1.0/), shape(d)))) call abort
+ if (any(e /= reshape((/ 0.0, 1.0, 0.0, 1.0/), shape(e)))) call abort
+
+end program
+
+! { dg-final { scan-tree-dump-times "memset" 2 "original" } }
+! { dg-final { cleanup-tree-dump "original" } }
+! { dg-final { cleanup-modules "foo" } }
diff --git a/gcc/testsuite/gfortran.dg/bom_UTF-32.f90 b/gcc/testsuite/gfortran.dg/bom_UTF-32.f90
new file mode 100644
index 00000000000..d4243031366
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_UTF-32.f90
Binary files differ
diff --git a/gcc/testsuite/gfortran.dg/bom_UTF-8.f90 b/gcc/testsuite/gfortran.dg/bom_UTF-8.f90
new file mode 100644
index 00000000000..f9d9e88d478
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_UTF-8.f90
@@ -0,0 +1,3 @@
+print *, "Hello world"
+end
+! { dg-do compile }
diff --git a/gcc/testsuite/gfortran.dg/bom_UTF-8_F.F90 b/gcc/testsuite/gfortran.dg/bom_UTF-8_F.F90
new file mode 100644
index 00000000000..f9d9e88d478
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_UTF-8_F.F90
@@ -0,0 +1,3 @@
+print *, "Hello world"
+end
+! { dg-do compile }
diff --git a/gcc/testsuite/gfortran.dg/bom_UTF16-BE.f90 b/gcc/testsuite/gfortran.dg/bom_UTF16-BE.f90
new file mode 100644
index 00000000000..f590e71f0d8
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_UTF16-BE.f90
Binary files differ
diff --git a/gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90 b/gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90
new file mode 100644
index 00000000000..29e7ca68271
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90
Binary files differ
diff --git a/gcc/testsuite/gfortran.dg/bom_error.f90 b/gcc/testsuite/gfortran.dg/bom_error.f90
new file mode 100644
index 00000000000..7c2c86d1811
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_error.f90
@@ -0,0 +1,4 @@
+ÿþprint *, "Hello world!"
+ÿþend ! { dg-error "Invalid character" }
+! { dg-do compile }
+! { dg-excess-errors "Unexpected end of file" }
diff --git a/gcc/testsuite/gfortran.dg/bom_include.f90 b/gcc/testsuite/gfortran.dg/bom_include.f90
new file mode 100644
index 00000000000..65a2898036e
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_include.f90
@@ -0,0 +1,2 @@
+! { dg-do compile }
+include "bom_include.inc"
diff --git a/gcc/testsuite/gfortran.dg/bom_include.inc b/gcc/testsuite/gfortran.dg/bom_include.inc
new file mode 100644
index 00000000000..b30290103da
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bom_include.inc
@@ -0,0 +1,2 @@
+print *, "Hello world!"
+end
diff --git a/gcc/testsuite/gfortran.dg/bound_simplification_1.f90 b/gcc/testsuite/gfortran.dg/bound_simplification_1.f90
new file mode 100644
index 00000000000..def5b7005ef
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/bound_simplification_1.f90
@@ -0,0 +1,27 @@
+! { dg-do run }
+! { dg-options "" }
+ implicit none
+ real :: f(10,10,10,3,4)
+ integer, parameter :: upper(5) = ubound(f), lower(5) = lbound (f)
+ integer :: varu(5), varl(5)
+
+ varu(:) = ubound(f)
+ varl(:) = lbound(f)
+ if (any (varu /= upper)) call abort
+ if (any (varl /= lower)) call abort
+
+ call check (f, upper, lower)
+ call check (f, ubound(f), lbound(f))
+
+contains
+
+ subroutine check (f, upper, lower)
+ implicit none
+ integer :: upper(5), lower(5)
+ real :: f(:,:,:,:,:)
+
+ if (any (ubound(f) /= upper)) call abort
+ if (any (lbound(f) /= lower)) call abort
+ end subroutine check
+
+end
diff --git a/gcc/testsuite/gfortran.dg/dependency_21.f90 b/gcc/testsuite/gfortran.dg/dependency_21.f90
new file mode 100644
index 00000000000..ca25458f7f2
--- /dev/null
+++ b/gcc/testsuite/gfortran.dg/dependency_21.f90
@@ -0,0 +1,21 @@
+! { dg-do run }
+! Test the fix for PR31711 in which the dependency in the assignment
+! at line 18 was detected and then ignored.
+!
+! Contributed by Tobias Ivarsson <thobes@gmail.com>
+!
+program laplsolv
+ IMPLICIT NONE
+ integer, parameter :: n = 2
+ double precision,dimension(0:n+1, 0:n+1) :: T
+ integer :: i
+
+ T=0.0
+ T(0:n+1 , 0) = 1.0
+ T(0:n+1 , n+1) = 1.0
+ T(n+1 , 0:n+1) = 2.0
+
+ T(1:n,1)=(T(0:n-1,1)+T(1:n,1+1)+1d0)
+
+ if (any (T(1:n,1) .ne. 1d0 )) call abort ()
+end program laplsolv
diff --git a/gcc/testsuite/gfortran.dg/inquire_5.f90 b/gcc/testsuite/gfortran.dg/inquire_5.f90
index 0daa579d1b6..2a5678ba2fc 100644
--- a/gcc/testsuite/gfortran.dg/inquire_5.f90
+++ b/gcc/testsuite/gfortran.dg/inquire_5.f90
@@ -26,6 +26,8 @@
close(7)
open(7,STATUS='SCRATCH',POSITION='REWIND')
write(7,*)'this is a record written to the file'
+ write(7,*)'this is another record'
+ backspace(7)
inquire(7,position=chr)
if (chr.NE.'ASIS') CALL ABORT
rewind(7)
diff --git a/gcc/testsuite/gfortran.dg/secnds-1.f b/gcc/testsuite/gfortran.dg/secnds-1.f
index fafe645d794..5ac2bce154f 100644
--- a/gcc/testsuite/gfortran.dg/secnds-1.f
+++ b/gcc/testsuite/gfortran.dg/secnds-1.f
@@ -6,7 +6,7 @@ C Contributed by Paul Thomas <pault@gcc.gnu.org>
C
character*20 dum1, dum2, dum3
real t1, t1a, t2, t2a
- real dat1, dat2
+ real*8 dat1, dat2
integer i, j, values(8)
t1 = secnds (0.0)
call date_and_time (dum1, dum2, dum3, values)
diff --git a/gcc/testsuite/gfortran.dg/secnds.f b/gcc/testsuite/gfortran.dg/secnds.f
index a67acbb05f6..7541a05239c 100644
--- a/gcc/testsuite/gfortran.dg/secnds.f
+++ b/gcc/testsuite/gfortran.dg/secnds.f
@@ -6,7 +6,7 @@ C Contributed by Paul Thomas <pault@gcc.gnu.org>
C
character*20 dum1, dum2, dum3
real t1, t1a, t2, t2a
- real dat1, dat2
+ real*8 dat1, dat2
integer i, j, values(8)
t1 = secnds (0.0)
call date_and_time (dum1, dum2, dum3, values)
diff --git a/gcc/testsuite/gfortran.dg/vect/vect-5.f90 b/gcc/testsuite/gfortran.dg/vect/vect-5.f90
index d657656ea1c..551172af8a7 100644
--- a/gcc/testsuite/gfortran.dg/vect/vect-5.f90
+++ b/gcc/testsuite/gfortran.dg/vect/vect-5.f90
@@ -38,7 +38,7 @@
! { dg-final { scan-tree-dump-times "vectorized 1 loops" 1 "vect" } }
! { dg-final { scan-tree-dump-times "Alignment of access forced using peeling" 1 "vect" { xfail { vect_no_align } } } }
! { dg-final { scan-tree-dump-times "Vectorizing an unaligned access" 1 "vect" { xfail { vect_no_align } } } }
-! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 3 "vect" { target { ilp32 && vect_no_align } } } }
+! { dg-final { scan-tree-dump-times "Alignment of access forced using versioning." 2 "vect" { target { ilp32 && vect_no_align } } } }
! We also expect to vectorize one loop for lp64 targets that support
! misaligned access:
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index 9bdb8695d63..77696eca857 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -1397,6 +1397,49 @@ proc check_effective_target_vect_int { } {
return $et_vect_int_saved
}
+# Return 1 if the target supports int->float conversion
+#
+
+proc check_effective_target_vect_intfloat_cvt { } {
+ global et_vect_intfloat_cvt_saved
+
+ if [info exists et_vect_intfloat_cvt_saved] {
+ verbose "check_effective_target_vect_intfloat_cvt: using cached result" 2
+ } else {
+ set et_vect_intfloat_cvt_saved 0
+ if { [istarget i?86-*-*]
+ || [istarget powerpc*-*-*]
+ || [istarget x86_64-*-*] } {
+ set et_vect_intfloat_cvt_saved 1
+ }
+ }
+
+ verbose "check_effective_target_vect_intfloat_cvt: returning $et_vect_intfloat_cvt_saved" 2
+ return $et_vect_intfloat_cvt_saved
+}
+
+
+# Return 1 if the target supports float->int conversion
+#
+
+proc check_effective_target_vect_floatint_cvt { } {
+ global et_vect_floatint_cvt_saved
+
+ if [info exists et_vect_floatint_cvt_saved] {
+ verbose "check_effective_target_vect_floatint_cvt: using cached result" 2
+ } else {
+ set et_vect_floatint_cvt_saved 0
+ if { [istarget i?86-*-*]
+ || [istarget x86_64-*-*] } {
+ set et_vect_floatint_cvt_saved 1
+ }
+ }
+
+ verbose "check_effective_target_vect_floatint_cvt: returning $et_vect_floatint_cvt_saved" 2
+ return $et_vect_floatint_cvt_saved
+}
+
+
# Return 1 is this is an arm target using 32-bit instructions
proc check_effective_target_arm32 { } {
global et_arm32_saved
@@ -1694,7 +1737,8 @@ proc check_effective_target_vect_widen_sum_hi_to_si { } {
verbose "check_effective_target_vect_widen_sum_hi_to_si: using cached result" 2
} else {
set et_vect_widen_sum_hi_to_si_saved [check_effective_target_vect_unpack]
- if { [istarget powerpc*-*-*] } {
+ if { [istarget powerpc*-*-*]
+ || [istarget ia64-*-*] } {
set et_vect_widen_sum_hi_to_si_saved 1
}
}
@@ -1716,7 +1760,8 @@ proc check_effective_target_vect_widen_sum_qi_to_hi { } {
verbose "check_effective_target_vect_widen_sum_qi_to_hi: using cached result" 2
} else {
set et_vect_widen_sum_qi_to_hi_saved 0
- if { [check_effective_target_vect_unpack] } {
+ if { [check_effective_target_vect_unpack]
+ || [istarget ia64-*-*] } {
set et_vect_widen_sum_qi_to_hi_saved 1
}
}