diff options
author | Chao-ying Fu <fu@mips.com> | 2007-05-04 00:47:49 +0000 |
---|---|---|
committer | Chao-ying Fu <fu@mips.com> | 2007-05-04 00:47:49 +0000 |
commit | b5dedd05596b3c88bafcbb3cb5051435a112ff90 (patch) | |
tree | 2633e98fce35702a5fe1750de5c6c6065fa6a283 /gcc/testsuite | |
parent | b1319141745fb4b21b294b3396e7ed3ab4734f5e (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')
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 Binary files differnew file mode 100644 index 00000000000..d4243031366 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bom_UTF-32.f90 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 Binary files differnew file mode 100644 index 00000000000..f590e71f0d8 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bom_UTF16-BE.f90 diff --git a/gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90 b/gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90 Binary files differnew file mode 100644 index 00000000000..29e7ca68271 --- /dev/null +++ b/gcc/testsuite/gfortran.dg/bom_UTF16-LE.f90 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 } } |