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
2007-12-01 Andreas Tobler <a.tobler@schweiz.org>
PR libffi/31937
* src/powerpc/ffitarget.h: Introduce new ABI FFI_LINUX_SOFT_FLOAT.
Add local FFI_TYPE_UINT128 to handle soft-float long-double-128.
* src/powerpc/ffi.c: Distinguish between __NO_FPRS__ and not and
set the NUM_FPR_ARG_REGISTERS according to.
Add support for potential soft-float support under hard-float
architecture.
(ffi_prep_args_SYSV): Set NUM_FPR_ARG_REGISTERS to 0 in case of
FFI_LINUX_SOFT_FLOAT, handle float, doubles and long-doubles according
to the FFI_LINUX_SOFT_FLOAT ABI.
(ffi_prep_cif_machdep): Likewise.
(ffi_closure_helper_SYSV): Likewise.
* src/powerpc/ppc_closure.S: Make sure not to store float/double
on archs where __NO_FPRS__ is true.
Add FFI_TYPE_UINT128 support.
* src/powerpc/sysv.S: Add support for soft-float long-double-128.
Adjust copyright notice.
From-SVN: r130559
2007-12-01 Kostik Belousov <kostikbel@ukr.net>
gcc/ada/
PR ada/33722
* env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv()
and its argument must not be free()ed.
From-SVN: r130555
PR c++/8171
gcc/cp/
* typeck.c (build_binary_op): Add conversion of pointers to function
members appearing as operands to the equality operators.
gcc/testsuite/
* g++.dg/conversion/ptrmem9.C: New test.
From-SVN: r130554