PR middle-end/34337
* fold-const.c (fold_binary) <case BIT_IOR_EXPR>: Don't minimize
number of bits set in C1 if a mode mask for some mode can be used
instead.
* gcc.c-torture/execute/20071205-1.c: New test.
From-SVN: r130635
2007-12-05 Richard Guenther <rguenther@suse.de>
PR tree-optimization/34138
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
Do not forward propagate addresses if that changes volatileness of
the pointed-to type.
* gcc.c-torture/compile/pr34138.c: New testcase.
From-SVN: r130632
PR debug/33739
* gfortran.h (gfc_file): Remove included_by field, add sibling and
down.
(gfc_start_source_files, gfc_end_source_files): New prototypes.
* parse.c (gfc_parse_file): Call gfc_start_source_files and
gfc_end_source_files instead of calling the debugging hooks directly.
* error.c (show_locus): Use up field instead of included_by.
* scanner.c (change_file, gfc_start_source_files,
gfc_end_source_files): New functions.
(gfc_advance_line): Call change_file instead of calling debug hooks
directly.
(get_file): Set up rather than included_by. Initialize down and
sibling.
(preprocessor_line, load_file): Don't set up field here.
* gfortran.dg/debug_2.f: New test.
From-SVN: r130629
* trans.c (lvalue_required_p): Take base node directly instead
of its parent. Rename second parameter to 'gnu_type'.
<N_Indexed_Component>: Return 0 if the node isn't the prefix.
<N_Slice>: Likewise.
(Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue.
Adjust calls to lvalue_required_p.
From-SVN: r130626
PR target/34312
* config/i386/i386.c (ix86_function_regparm): Also check for fixed
registers when checking that regparm registers are available.
Lower regparm value due to fixed registers usage in addition to
global regs usage.
testsuite/ChangeLog:
PR target/34312
* gcc.target/i386/pr34312.c: New test.
From-SVN: r130625
2007-12-05 Bechir Zalila <bechir.zalila@gmail.com>
gnattools/
PR ada/34284
* configure.ac: Added a missing switch case for *86-*-darwin*
when defining the value of TOOLS_TARGET_PAIRS.
* configure: Regenerated.
From-SVN: r130624
2007-12-05 Tobias Burnus <burnus@net-b.de>
PR fortran/34333
* arith.h (gfc_compare_expr): Add operator argument, needed
for compare_real.
* arith.c (gfc_arith_init_1): Use mpfr_min instead of
* mpfr_cmp/set
to account for NaN.
(compare_real): New function, as mpfr_cmp but takes NaN into
account.
(gfc_compare_expr): Use compare_real.
(compare_complex): Take NaN into account.
(gfc_arith_eq,gfc_arith_ne,gfc_arith_gt,gfc_arith_ge,gfc_arith_lt,
gfc_arith_le): Pass operator to gfc_compare_expr.
* resolve.c (compare_cases,resolve_select): Pass operator
to gfc_compare_expr.
* simplify.c (simplify_min_max): Take NaN into account.
2007-12-05 Tobias Burnus <burnus@net-b.de>
PR fortran/34333
* gfortran.dg/nan_2.f90: New.
From-SVN: r130623
2007-11-27 Bernhard Fischer <aldot@gcc.gnu.org>
* sparseset.c: Include config.h and system.h before sparseset.h.
* sparseset.h: Remove inclusion of system.h.
From-SVN: r130622
PR c++/34271
* semantics.c (finish_decltype_type): For SCOPE_REF issue an
error instead of assertion failure.
* parser.c (cp_parser_decltype): If closing paren is not found,
return error_mark_node.
* g++.dg/cpp0x/decltype9.C: New test.
* g++.dg/cpp0x/decltype10.C: New test.
From-SVN: r130619
gcc/ada/
PR ada/21489
* exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type
parameters of an entry call.
gcc/testsuite/
PR ada/21489
* gnat.dg/rm_6_4_1_13.adb: New test.
From-SVN: r130617
* omp-low.c (optimize_omp_library_calls): New function.
(expand_omp_parallel): Call it if optimizing.
* omp.h.in (__GOMP_NOTHROW): Define. Use it on omp_* prototypes.
From-SVN: r130610
PR middle-end/34134
* stmt.c (expand_stack_restore): Call expand_normal on var to get
rtx for it instead of assuming it will be a VAR_DECL.
* gcc.c-torture/compile/20071117-1.c: New test.
From-SVN: r130609
2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
PR c++/34101
* name-lookup.c (arg_assoc_template_arg): Recurse on argument
packs.
(arg_assoc_type): We don't need to handle TYPE_ARGUMENT_PACK here,
since arg_assoc_template_arg will deal with them (better).
2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
PR c++/34101
* g++.dg/cpp0x/variadic-ttp.C: New.
From-SVN: r130608
2007-12-04 Manuel Lopez-Ibanez <manu@gcc.gnu.org>
* c-parser (c_parser_statement_after_labels): Move error from here...
(c_parser_label): ... to here. Check that the declaration is not
actually just another label.
testsuite/
* gcc.dg/parse-decl-after-if.c: New.
* gcc.dg/20031223-1.c: Adjust.
From-SVN: r130606
2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33509
* pt.c (tsubst_exception_specification): Handle substitutions into
member templates, where tsubst_pack_expansion returns a
TYPE_PACK_EXPANSION.
2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33509
* g++.dg/cpp0x/variadic-throw.C: New.
From-SVN: r130605
2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33091
* pt.c (unify_pack_expansion): If we didn't deduce any actual
bindings for the template parameter pack, don't try to keep the
empty deduced arguments.
(unify): If a parameter is a template-id whose template argument
list contains a pack expansion that is not at the end, then we
cannot unify against that template-id.
2007-12-04 Douglas Gregor <doug.gregor@gmail.com>
PR c++/33091
* g++.dg/cpp0x/variadic-unify.C: New.
From-SVN: r130604
2007-12-04 Richard Guenther <rguenther@suse.de>
PR middle-end/34334
PR middle-end/34222
* tree-ssa-operands.c (get_addr_dereference_operands): If we
fall back to using the SMTs aliases, make sure to add virtual
operands for the SMT itself.
(create_ssa_artificial_load_stmt): Fix typo. Make sure to also
clear the loaded and stored symbols bitmaps.
* gcc.c-torture/compile/pr34334.c: New testcase.
* g++.dg/torture/pr34222.C: New testcase.
From-SVN: r130602
gcc/testsuite/
* lib/target-supports.exp (get_compiler_messages): Replace with...
(check_compile): ...this new procedure. Handle TYPE == executable.
Use comments in the source to determine the correct extension.
Return a pair containing the compiler output and the output filename.
Don't delete the file here.
(check_no_compiler_messages_nocache): New procedure.
(check_no_compiler_messages): Use it.
(check_no_messages_and_pattern_nocache): New procedure.
(check_no_messages_and_pattern): Use it.
(check_runtime_nocache, check_runtime): New procedures.
(check_effective_target_tls): Use check_no_compiler_messages.
(check_effective_target_tls_native): Use check_no_messages_and_pattern.
(check_effective_target_tls_runtime): Use check_runtime.
(check_effective_target_fstack_protector): Likewise.
(check_iconv_available): Use check_runtime_nocache.
(check_effective_target_fortran_large_real): Use
check_no_compiler_messages.
(check_effective_target_fortran_large_int): Likewise.
(check_effective_target_static_libgfortran): Likewise.
(check_750cl_hw_available): Use check_cached_effective_target
and check_runtime_nocache.
(check_vmx_hw_available): Likewise.
(check_effective_target_broken_cplxf_arg): Likewise.
(check_alpha_max_hw_available): Use check_runtime.
(check_function_available): Use check_no_compiler_messages.
(check_cxa_atexit_available): Use check_cached_effective_target
and check_runtime_nocache.
(check_effective_target_dfp_nocache): Use
check_no_compiler_messages_nocache.
(check_effective_target_dfprt_nocache): Use check_runtime_nocache.
(check_effective_target_dfp): Use check_cached_effective_target.
(check_effective_target_dfprt): Likewise.
(check_effective_target_arm_neon_hw): Use check_runtime.
(check_effective_target_ultrasparc_hw): Likewise.
(check_effective_target_c99_runtime): Use
check_no_compiler_messages_nocache.
From-SVN: r130599
* omp-low.c (lookup_decl_in_outer_ctx): Allow calling this
with !ctx->is_nested.
(maybe_lookup_decl_in_outer_ctx): Look up in outer contexts
even if !ctx->is_nested.
(lower_copyprivate_clauses, lower_send_clauses,
lower_send_shared_vars): Call lookup_decl_in_outer_ctx
unconditionally.
* testsuite/libgomp.c/private-1.c: New test.
From-SVN: r130590
PR tree-optimization/33453
* tree-data-ref.c (split_constant_offset): Use POINTER_PLUS_EXPR
for pointer addition.
* tree-parloops.c (canonicalize_loop_ivs): Likewise.
(separate_decls_in_loop_name): Copy DECL_GIMPLE_REG_P from var to
var_copy.
* gcc.c-torture/compile/20071203-1.c: New test.
From-SVN: r130588
2007-12-03 Robert Dewar <dewar@adacore.com>
Samuel Tardieu <sam@rfc1149.net>
gcc/ada/
PR ada/34287
* sem_util.adb (Safe_To_Capture_Value): Do not capture values
of variables declared in a library-level package.
gcc/testsuite/gnat.dg/
PR ada/34287
* check_elaboration_code.adb: New test.
* bug_elaboration_code.ads, bug_elaboration_code.adb: New support
files.
Co-Authored-By: Samuel Tardieu <sam@rfc1149.net>
From-SVN: r130582
PR middle-end/34317
* opts.c (common_handle_option): Handle OPT_ftree_store_copy_prop.
* common.opt (ftree-store-copy-prop): Use the same help text as for
other nop switches.
From-SVN: r130579
2007-12-02 Jerry DeLisle <jvdelisle@gcc.gnu.org>
Thomas Koenig <tkoenig@gcc.gnu.org>
PR libfortran/33985
* io/transfer.c (read_block, read_block_direct, write_block, write_buf):
Don't seek if file position is already there for STREAM I/O.
(finalize_transfer): For STREAM I/O don't flush unless the file position
has moved past the start position before the transfer.
Co-Authored-By: Thomas Koenig <tkoenig@gcc.gnu.org>
From-SVN: r130574