PR c++/36695
* typeck2.c (build_functional_cast): Check for reference type and NULL
PARMS.
* g++.dg/ext/complex4.C: New test.
* g++.dg/ext/complex5.C: New test.
* g++.dg/init/reference1.C: New test.
* g++.dg/init/reference2.C: New test.
* g++.dg/init/reference3.C: New test.
From-SVN: r143244
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38763
* target-memory.c (encode_derived): Encode NULL.
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38763
* gfortran.dg/transfer_null_1.f90: New test.
From-SVN: r143238
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38765
* resolve.c (check_host_association): Use the symtree name to
search for a potential contained procedure, since this is the
name by which it would be referenced.
2009-01-10 Paul Thomas <pault@gcc.gnu.org>
PR fortran/38765
* gfortran.dg/host_assoc_function_6.f90: New test.
From-SVN: r143237
* config/i386/i386.c (ix86_expand_movmem, ix86_expand_setmem): Add
zero guard even if align_bytes != 0 and count is smaller than
size_needed.
From-SVN: r143229
PR target/38686
PR target/38708
* config/i386/i386.c (override_options): Reject
-mstringop-strategy=rep_8byte with -m32.
(ix86_expand_movmem): For size_needed == 1 set epilogue_size_needed
to 1. Do count comparison against epilogue_size_needed at compile
time even when count_exp was constant forced into register. For
size_needed don't jump to epilogue, instead just avoid aligning
and invoke the body algorithm. If need_zero_guard, add zero guard
even if count is non-zero, but smaller than size_needed + number of
bytes that could be stored for alignment.
(ix86_expand_setmem): For size_needed == 1 set epilogue_size_needed
to 1. If need_zero_guard, add zero guard even if count is non-zero,
but smaller than size_needed + number of bytes that could be stored
for alignment. Compare size_needed with epilogue_size_needed instead
of desired_align - align, don't adjust size_needed, pass
epilogue_size_needed to the epilogue expanders.
From-SVN: r143211
* pa.c (last_address): Change to unsigned.
(update_total_code_bytes): Change argument to unsigned. Don't
check if insn addresses are set.
(pa_output_function_epilogue): Set last_address to UINT_MAX if insn
addresses are not set.
(pa_asm_output_mi_thunk): Handle wrap when updating last_address.
From-SVN: r143207
PR tree-optimization/37031
* lambda-code.c (lambda_collect_parameters): Call pointer_set_destroy
on parameter_set.
(build_access_matrix): Reserve correct size for AM_MATRIX vector,
allocate it using gc instead of heap, use VEC_quick_push instead of
VEC_safe_push.
* graphite.c (build_access_matrix): Allocate AM_MATRIX vector using gc
instead of heap, use VEC_quick_push instead of VEC_safe_push.
* tree-data-ref.h (struct access_matrix): Change matrix to gc
allocated vector from heap allocated.
* lambda.h: Add DEF_VEC_ALLOC_P for gc allocated lambda_vector.
* tree-loop-linear.c (linear_transform_loops): Allocate nest
vector only after perfect_loop_nest_depth call.
From-SVN: r143188
2009-01-07 Sebastian Pop <sebastian.pop@amd.com>
Jan Sjodin <jan.sjodin@amd.com>
PR tree-optimization/38559
* testsuite/gcc.dg/graphite/pr38559.c: New.
* graphite.c (debug_value, copy_constraint,
swap_constraint_variables, scale_constraint_variable, ): New.
(get_lower_bound, get_upper_bound): Removed.
(graphite_trans_bb_strip_mine): Clean up this code that works
only for constant number of iterations. Fully copy upper and
lower bound constraints, not only the constant part of them.
* graphite.h (debug_value): Declared.
Co-Authored-By: Jan Sjodin <jan.sjodin@amd.com>
From-SVN: r143187
PR tree-optimization/37194
* tree-vect-transform.c (vect_estimate_min_profitable_iters):
Don't add the cost of cost model guard in prologue to scalar
outside cost in case of known number of iterations.
From-SVN: r143183
PR target/38706
* config/alpha/alpha.c (alpha_end_function): For TARGET_ABI_OSF, call
free_after_compilation when outputting a thunk.
(alpha_output_mi_thunk_osf): Assert that we are processing a thunk.
Do not call free_after_compilation here.
testsuite/ChangeLog:
PR target/38706
* g++.dg/other/pr38706.C: New test.
From-SVN: r143167
PR c++/35297
PR c++/35477
PR c++/35784
PR c++/36846
PR c++/38276
* pt.c (check_default_tmpl_args): Don't complain about
out-of-order parameter packs in the enclosing class
or parameter packs after default args.
(coerce_template_parms): If we have more than one
parameter pack, don't flatten argument packs.
(template_args_equal): Handle argument packs.
(comp_template_args): Don't flatten argument packs.
(check_instantiated_arg): Split out from...
(check_instantiated_args): Here. Handle arg packs.
(convert_template_argument): Just check that nontype argument
packs have the right type.
From-SVN: r143166
* lib/target-supports-dg.exp (current_compiler_flags): New.
(check-flags): Use it; do not access dg-test local variables.
(dg-skip-if): Do not access dg-test local variables.
(dg-xfail-run-if): Ditto.
(dg-shouldfail): Ditto.
* gcc.test-framework/test-framework.exp
(check_effective_target_def_nocache): New.
* gcc.test-framework/test-framework.awk: Handle scan tests.
* gcc.test-framework/dg-do-run-xrif-nocache-exp-XF.c: New test.
* gcc.test-framework/dg-error-nocache-exp-P.c: New test.
* gcc.test-framework/dg-nocache-scanasm-exp-XF.c: New test.
* gcc.test-framework/dg-warning-nocache-exp-P.c: New test.
* gcc.test-framework/dg-nocache-sif-exp-P.c: New test.
* gcc.test-framework/dg-nocache-sif-exp-U.c: New test.
* gcc.test-framework/dg-nocache-xif-exp-P.c: New test.
* gcc.test-framework/dg-do-run-sft-nocache-exp-P.c: New test.
* gcc.test-framework/dg-nocache-xif-exp-XP.c: New test.
From-SVN: r143165
2009-01-07 Jan Sjodin <jan.sjodin@amd.com>
PR tree-optimization/38492
PR tree-optimization/38498
* tree-check.c (operator_is_linear, scev_is_linear_expression): New.
* tree-chrec.h (scev_is_linear_expression): Declared.
* graphite.c (graphite_cannot_represent_loop_niter): New.
(scopdet_basic_block_info): Call graphite_cannot_represent_loop_niter.
(graphite_loop_normal_form): Use gcc_assert.
(scan_tree_for_params): Use CASE_CONVERT.
(phi_node_is_iv, bb_contains_non_iv_scalar_phi_nodes): New.
(build_scop_conditions_1): Call bb_contains_non_iv_scalar_phi_nodes.
Use gcc_assert. Discard scops that contain unhandled cases.
(build_scop_conditions): Return a boolean status for unhandled cases.
(strip_mine_profitable_p): Print the loop number, not its depth.
(is_interchange_valid): Pass the depth of the loop nest, don't
recompute it wrongly.
(graphite_trans_bb_block): Same.
(graphite_trans_bb_block): Print tentative of loop blocking.
(graphite_trans_scop_block): Do not print that the loop has been
blocked.
(graphite_transform_loops): Do not handle scops that contain condition
scalar phi nodes.
* testsuite/gcc.dg/graphite/pr38500.c: Fixed warning as committed
in trunk.
* testsuite/gcc.dg/graphite/block-0.c: Update test.
* testsuite/gcc.dg/graphite/block-1.c: Same.
* testsuite/gcc.dg/graphite/block-2.c: Remove xfail and test for blocking.
* testsuite/gcc.dg/graphite/block-4.c: Remove test for strip mine.
* testsuite/gcc.dg/graphite/block-3.c: New.
* testsuite/gcc.dg/graphite/pr38498.c: New.
From-SVN: r143159