gcc.git
13 years agovect-1.c (foo): Fix last commit.
Ramana Radhakrishnan [Thu, 19 Aug 2010 10:23:50 +0000 (10:23 +0000)]
vect-1.c (foo): Fix last commit.

2010-08-19  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

* gcc.dg/vect/vect-1.c (foo): Fix last commit.

From-SVN: r163370

13 years agore PR rtl-optimization/44691 (ICE: RTL check: expected code 'reg', have 'plus' in...
Andrey Belevantsev [Thu, 19 Aug 2010 10:03:39 +0000 (14:03 +0400)]
re PR rtl-optimization/44691 (ICE: RTL check: expected code 'reg', have 'plus' in rhs_regno, at rtl.h:1050)

PR rtl-optimization/44691
* sel-sched.c (count_occurrences_1): Also punt when SUBREG_REG
is not a register.

From-SVN: r163369

13 years agoFor Tejas Belagod
Tejas Belagod [Thu, 19 Aug 2010 08:30:59 +0000 (09:30 +0100)]
For Tejas Belagod

2010-08-19  Tejas Belagod  <tejas.belagod@arm.com>

* gcc.dg/vect/vect-1.c (foo): Change inner loop index
variable.

From-SVN: r163368

13 years agoFor Ian Bolton <ian.bolton@arm.com>
Ian Bolton [Thu, 19 Aug 2010 08:27:59 +0000 (08:27 +0000)]
For Ian Bolton <ian.bolton@arm.com>

2010-08-19  Ian Bolton  <ian.bolton@arm.com>

PR target/45070
* gcc.c-torture/execute/pr45070.c: New.
* config/arm/arm.c (arm_output_epilogue): Ensure that return
 value of size 1-3 is handled correctly.

From-SVN: r163367

13 years agoFor Ian Bolton <ian.bolton@arm.com>
Ian Bolton [Thu, 19 Aug 2010 08:12:31 +0000 (08:12 +0000)]
For Ian Bolton <ian.bolton@arm.com>

* tree-switch-conversion.c (gen_inbound_check): Ensure that the
type for the conditional has wide enough range.

* testsuite/g++.dg/pr44328.C: New test.

From-SVN: r163366

13 years agointrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
Tobias Burnus [Thu, 19 Aug 2010 07:34:05 +0000 (09:34 +0200)]
intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.

2010-08-19  Tobias Burnus  <burnus@net-b.de>

        * intrinsic.texi (Bessel_jn, Bessel_yn): Fix typo.
        * * simplify.c (gfc_simplify_bessel_yn): Change recursive
        into recurrence.

From-SVN: r163365

13 years agore PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and BESSEL_JN missing)
Tobias Burnus [Thu, 19 Aug 2010 07:28:17 +0000 (09:28 +0200)]
re PR fortran/36158 (Transformational function BESSEL_YN(n1,n2,x) and BESSEL_JN missing)

2010-08-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36158
        PR fortran/33197
        * check.c (gfc_check_bessel_n2): New function.
        * gfortran.h (gfc_isym_id): Add GFC_ISYM_JN2 and GFC_ISYM_YN2.
        * intrinsic.c (add_functions): Add transformational version
        of the Bessel_jn/yn intrinsics.
        * intrinsic.h (gfc_check_bessel_n2,gfc_simplify_bessel_jn2,
        gfc_simplify_bessel_yn2): New prototypes.
        * intrinsic.texi (Bessel_jn, Bessel_yn): Document
        transformational variant.
        * simplify.c (gfc_simplify_bessel_jn, gfc_simplify_bessel_yn):
        Check for negative order.
        (gfc_simplify_bessel_n2,gfc_simplify_bessel_jn2,
        gfc_simplify_bessel_yn2): New functions.

2010-08-19  Tobias Burnus  <burnus@net-b.de>

        PR fortran/36158
        PR fortran/33197
        * gfortran.dg/bessel_3.f90: New.
        * gfortran.dg/bessel_4.f90: New.
        * gfortran.dg/bessel_5.f90: New.

From-SVN: r163364

13 years agore PR fortran/41859 (ICE on invalid expression involving DT with pointer components...
Jerry DeLisle [Thu, 19 Aug 2010 02:35:45 +0000 (02:35 +0000)]
re PR fortran/41859 (ICE on invalid expression involving DT with pointer components in I/O)

2010-08-19  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR fortran/41859
* resolve.c (resolve_transfer): Traverse operands and set expression
to be checked to a non EXPR_OP type.

From-SVN: r163363

13 years agoDaily bump.
GCC Administrator [Thu, 19 Aug 2010 00:16:55 +0000 (00:16 +0000)]
Daily bump.

From-SVN: r163362

13 years agore PR target/45327 (ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops...
Uros Bizjak [Wed, 18 Aug 2010 22:37:03 +0000 (00:37 +0200)]
re PR target/45327 (ICE: SIGSEGV in rtx_equal_p (rtl.c:496) with -O1 -funroll-loops -fnon-call-exceptions)

PR target/45327
* config/i386/i386.md (<any_or:code><SWI:mode>_3): Do not use
ix86_binary_operator_ok.

From-SVN: r163357

13 years agore PR fortran/45290 ([F08] pointer initialization)
Janus Weil [Wed, 18 Aug 2010 22:32:22 +0000 (00:32 +0200)]
re PR fortran/45290 ([F08] pointer initialization)

2010-08-19  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45290
* gfortran.h (gfc_add_save): Modified prototype.
* decl.c (add_init_expr_to_sym): Defer checking of proc pointer init.
(match_pointer_init): New function to match F08 pointer initialization.
(variable_decl,match_procedure_decl,match_ppc_decl): Use
'match_pointer_init'.
(match_attr_spec): Module variables are implicitly SAVE.
(gfc_match_save): Modified call to 'gfc_add_save'.
* expr.c (gfc_check_assign_symbol): Extra checks for pointer
initialization.
* primary.c (gfc_variable_attr): Handle SAVE attribute.
* resolve.c (resolve_structure_cons): Add new argument and do pointer
initialization checks.
(gfc_resolve_expr): Modified call to 'resolve_structure_cons'.
(resolve_values): Call 'resolve_structure_cons' directly with init arg.
(resolve_fl_variable): Handle SAVE_IMPLICIT.
* symbol.c (gfc_add_save,gfc_copy_attr,save_symbol): Handle
SAVE_IMPLICIT.
* trans-decl.c (gfc_create_module_variable): Module variables with
TARGET can already exist.
* trans-expr.c (gfc_conv_variable): Check for 'current_function_decl'.
(gfc_conv_initializer): Implement non-NULL pointer
initialization.

2010-08-19  Janus Weil  <janus@gcc.gnu.org>

PR fortran/45290
* gfortran.dg/proc_ptr_comp_3.f90: Modified.
* gfortran.dg/pointer_init_2.f90: New.
* gfortran.dg/pointer_init_3.f90: New.
* gfortran.dg/pointer_init_4.f90: New.

From-SVN: r163356

13 years ago* tracebak.c (i386): Use GCC unwinder on Linux with GCC > 4.5.
Eric Botcazou [Wed, 18 Aug 2010 21:07:29 +0000 (21:07 +0000)]
* tracebak.c (i386): Use GCC unwinder on Linux with GCC > 4.5.

From-SVN: r163352

13 years agoi386.md (*add<mode>_1): Split insn to lea.
Uros Bizjak [Wed, 18 Aug 2010 19:24:41 +0000 (21:24 +0200)]
i386.md (*add<mode>_1): Split insn to lea.

* config/i386/i386.md (*add<mode>_1) <TYPE_LEA>: Split insn to lea.
<default>:  Swap operands 1 and 2 for alternative 2 to use existing
code to output insn mnemonic.  Fix comment.
(*addsi_1_zext): Add r-r-0 alternative 1.
<TYPE_LEA>: Split insn to lea.
<default>: Handle alternative 1.
(*addhi_1_lea): Add r-r-0 alternative 2.  Use cond RTX instead of
multi-level if_then_else RTX to set "type" attribute.
<default>: Handle alternative 2.
(*addqi_1_lea): Add q-q-0 alternative 2 and r-r-0 alternative 4.
Use cond RTX instead of multi-level if_then_else RTX to set
"type" attribute.
<default>: Handle alternatives 2 and 4.
(lea splitters): Update calls to ix86_lea_for_add_ok.

* config/i386/i386.c (ix86_lea_for_add_ok): Remove unused "code"
argument.
* config/i386/i386-protos.h (ix86_lea_for_add_ok): Update prototype.

From-SVN: r163351

13 years agore PR fortran/45295 (intrinsic.texi: SELECTED_CHAR_KIND should mention wide-char...
Tobias Burnus [Wed, 18 Aug 2010 18:05:58 +0000 (20:05 +0200)]
re PR fortran/45295 (intrinsic.texi: SELECTED_CHAR_KIND should mention wide-char support)

2010-08-18  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45295
        * intrinsic.texi (selected_char_kind): Document ISO_10646
        support.

From-SVN: r163347

13 years agore PR c++/45049 (ICE: tree check: expected tree that contains 'decl minimal' structur...
Nathan Froyd [Wed, 18 Aug 2010 16:05:40 +0000 (16:05 +0000)]
re PR c++/45049 (ICE: tree check: expected tree that contains 'decl minimal' structure, have 'tree_list' in push_overloaded_decl, at cp/name-lookup.c:2160)

gcc/cp/
PR c++/45049
* name-lookup.c (push_overloaded_decl): Change DECL_CHAIN to
TREE_CHAIN.

gcc/testsuite/
PR c++/45049
* g++.dg/pr45049-1.C: New test.
* g++.dg/pr45049-2.C: New test.

From-SVN: r163344

13 years agore PR libstdc++/45276 (Need to document _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE)
Kostya Serebryany [Wed, 18 Aug 2010 15:21:56 +0000 (15:21 +0000)]
re PR libstdc++/45276 (Need to document _GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE)

2010-08-18  Kostya Serebryany <kcc@google.com>
    Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/45276
* doc/xml/manual/debug.xml ([debug.races]): Add.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r163342

13 years agobuiltin-apply2.c (STACK_ARGUMENTS_SIZE): Define to 20 if __ARM_PCS is defined otherwi...
Jie Zhang [Wed, 18 Aug 2010 14:45:33 +0000 (14:45 +0000)]
builtin-apply2.c (STACK_ARGUMENTS_SIZE): Define to 20 if __ARM_PCS is defined otherwise 64.

* gcc.dg/builtin-apply2.c (STACK_ARGUMENTS_SIZE): Define to
20 if __ARM_PCS is defined otherwise 64.
(bar): Use STACK_ARGUMENTS_SIZE for the third argument
instead of hard coded 64.

From-SVN: r163341

13 years agotree-ssa-uninit.c (find_uninit_use): Disregard debug stmts, use operand helpers.
Richard Guenther [Wed, 18 Aug 2010 14:18:51 +0000 (14:18 +0000)]
tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts, use operand helpers.

2010-08-18  Richard Guenther  <rguenther@suse.de>

* tree-ssa-uninit.c (find_uninit_use): Disregard debug stmts,
use operand helpers.

From-SVN: r163340

13 years agoExpand pending pops before trying the optab.
Paolo Bonzini [Wed, 18 Aug 2010 13:35:46 +0000 (13:35 +0000)]
Expand pending pops before trying the optab.

2010-08-18  Paolo Bonzini  <bonzini@gnu.org>

PR middle-end/45292
* optabs.c (expand_bool_compare_and_swap): Expand pending
pops before trying the optab.

From-SVN: r163339

13 years agore PR target/45094 ([arm] wrong instructions for dword move in some cases)
Yao Qi [Wed, 18 Aug 2010 12:33:43 +0000 (12:33 +0000)]
re PR target/45094 ([arm] wrong instructions for dword move in some cases)

gcc/
        PR target/45094
        * config/arm/arm.c (output_move_double): Fix typo generating
        instructions ('ldr'->'str').

gcc/testsuite/

        PR target/45094
        * gcc.target/arm/pr45094.c: New test.

From-SVN: r163338

13 years ago* gcc.target/arm/mla-1.c: Use thumb-friendly architecture.
Maxim Kuvyrkov [Wed, 18 Aug 2010 10:36:09 +0000 (10:36 +0000)]
* gcc.target/arm/mla-1.c: Use thumb-friendly architecture.

From-SVN: r163335

13 years agore PR rtl-optimization/42575 (arm-eabi-gcc 64-bit multiply weirdness)
Maxim Kuvyrkov [Wed, 18 Aug 2010 10:34:02 +0000 (10:34 +0000)]
re PR rtl-optimization/42575 (arm-eabi-gcc 64-bit multiply weirdness)

gcc/
PR rtl-optimization/42575
* optabs.c (expand_doubleword_mult): Generate new pseudos to shorten
live ranges.

gcc/testsuite/
PR rtl-optimization/42575
* gcc.target/pr42575.c: New test.

From-SVN: r163334

13 years agotest cse for emulated TLS targets.
Iain Sandoe [Wed, 18 Aug 2010 09:01:22 +0000 (09:01 +0000)]
test cse for emulated TLS targets.

* lib/target-supports.exp (check_effective_target_tls_emulated): New.
* gcc.dg/tls/thr-cse-1.c: New.

From-SVN: r163330

13 years agoconfigure.ac (THREADLIBS): Don't set on Darwin.
Jack Howarth [Wed, 18 Aug 2010 08:51:57 +0000 (08:51 +0000)]
configure.ac (THREADLIBS): Don't set on Darwin.

2010-08-18  Jack Howarth <howarth@bromo.med.uc.edu>

    * libjava/configure.ac (THREADLIBS): Don't set on Darwin.
    (THREADSPEC): Likwise.
    * libjava/configure: Regenerate.
    * libjava/Makefile.am: Define LIBJAVA_LDFLAGS_LIBMATH as
    -lm only if USING_DARWIN_CRT undefined.
    (libgcj_tools_la_LIBADD): Replace '-lm' with $(LIBJAVA_LDFLAGS_LIBMATH).
    * libjava/Makefile.in: Regenerate.

From-SVN: r163329

13 years agoFor Marcus - Implement sync primitives inline for ARM.
Marcus Shawcroft [Wed, 18 Aug 2010 08:25:33 +0000 (08:25 +0000)]
For Marcus - Implement sync primitives inline for ARM.

2010-08-18  Marcus Shawcroft  <marcus.shawcroft@arm.com>

* config/arm/arm-protos.h (arm_expand_sync): New.
(arm_output_memory_barrier, arm_output_sync_insn): New.
(arm_sync_loop_insns): New.
* config/arm/arm.c (FL_ARCH7): New.
(FL_FOR_ARCH7): Include FL_ARCH7.
(arm_arch7): New.
(arm_print_operand): Support %C markup.
(arm_legitimize_sync_memory): New.
(arm_emit, arm_insn_count, arm_count, arm_output_asm_insn): New.
(arm_process_output_memory_barrier, arm_output_memory_barrier): New.
(arm_ldrex_suffix, arm_output_ldrex, arm_output_strex): New.
(arm_output_op2, arm_output_op3, arm_output_sync_loop): New.
(arm_get_sync_operand, FETCH_SYNC_OPERAND): New.
(arm_process_output_sync_insn, arm_output_sync_insn): New.
(arm_sync_loop_insns,arm_call_generator, arm_expand_sync): New.
* config/arm/arm.h (struct arm_sync_generator): New.
(TARGET_HAVE_DMB, TARGET_HAVE_DMB_MCR): New.
(TARGET_HAVE_MEMORY_BARRIER): New.
(TARGET_HAVE_LDREX, TARGET_HAVE_LDREXBHD): New.
* config/arm/arm.md: Include sync.md.
(UNSPEC_MEMORY_BARRIER): New.
(VUNSPEC_SYNC_COMPARE_AND_SWAP, VUNSPEC_SYNC_LOCK): New.
(VUNSPEC_SYNC_OP):New.
(VUNSPEC_SYNC_NEW_OP, VUNSPEC_SYNC_OLD_OP): New.
(sync_result, sync_memory, sync_required_value): New attributes.
(sync_new_value, sync_t1, sync_t2): Likewise.
(sync_release_barrier, sync_op): Likewise.
(length): Add logic to length attribute defintion to call
arm_sync_loop_insns when appropriate.
* config/arm/sync.md: New file.

From-SVN: r163327

13 years agore PR debug/42487 (FAIL: gcc.dg/debug/dwarf2/aranges-fnsec-1.c scan-assembler DW_AT_r...
Iain Sandoe [Wed, 18 Aug 2010 08:21:43 +0000 (08:21 +0000)]
re PR debug/42487 (FAIL: gcc.dg/debug/dwarf2/aranges-fnsec-1.c scan-assembler DW_AT_ranges)

PR debug/42487
* lib/target-supports.exp
(check_effective_target_function_sections): New.
* gcc.dg/debug/dwarf2/aranges-fnsec-1.c: Check that the target supports
function sections before proceding.

From-SVN: r163326

13 years agoDaily bump.
GCC Administrator [Wed, 18 Aug 2010 00:17:06 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r163323

13 years agotree.h (host_integerp): Add ATTRIBUTE_PURE when not ENABLE_TREE_CHECKING.
Jakub Jelinek [Tue, 17 Aug 2010 18:10:20 +0000 (20:10 +0200)]
tree.h (host_integerp): Add ATTRIBUTE_PURE when not ENABLE_TREE_CHECKING.

* tree.h (host_integerp): Add ATTRIBUTE_PURE when not
ENABLE_TREE_CHECKING.
(tree_low_cst): Add inline version for !ENABLE_TREE_CHECKING
and GCC >= 4.3.

From-SVN: r163313

13 years agore PR fortran/45308 ([F2003] DATE_AND_TIME does _not_ blank-pad strings)
Jakub Jelinek [Tue, 17 Aug 2010 18:08:05 +0000 (20:08 +0200)]
re PR fortran/45308 ([F2003] DATE_AND_TIME does _not_ blank-pad strings)

PR fortran/45308
* intrinsics/date_and_time.c (date_and_time): Pass __{zone,time,date}_len
instead of {ZONE,TIME,DATE}_LEN as second argument to fstrcpy.  Drop
asserts.  Adjust comment to the F2003 wording from the F95 wording.

* gfortran.dg/pr45308.f03: New test.

From-SVN: r163312

13 years agore PR fortran/45304 (Functions/subroutines without arguments always treated like...
Jakub Jelinek [Tue, 17 Aug 2010 18:06:18 +0000 (20:06 +0200)]
re PR fortran/45304 (Functions/subroutines without arguments always treated like varargs)

PR fortran/45304
* trans-decl.c (build_library_function_decl_1): Chain on
void_list_node instead of creating a new TREE_LIST.
* trans-intrinsic.c (gfc_get_intrinsic_lib_fndecl): Likewise.
* trans-types.c (gfc_get_function_type): Likewise.  Set
typelist to void_list_node for the main program.

From-SVN: r163311

13 years agoTry to avoid lea if possible.
H.J. Lu [Tue, 17 Aug 2010 15:49:32 +0000 (15:49 +0000)]
Try to avoid lea if possible.

2010-08-17  H.J. Lu  <hongjiu.lu@intel.com>

* config/i386/i386.c (ix86_lea_for_add_ok): For !TARGET_OPT_AGU
or optimizing for size, always avoid lea if possible.

* config/i386/i386.md (*add<mode>_1): Always avoid lea if
possible.

From-SVN: r163310

13 years agoonly use _darwin10_Unwind_FindEnclosingFunction on darwin >= 10
Iain Sandoe [Tue, 17 Aug 2010 14:54:10 +0000 (14:54 +0000)]
only use _darwin10_Unwind_FindEnclosingFunction on darwin >= 10

gcc:
* unwind-dw2-fde-darwin.c (_darwin10_Unwind_FindEnclosingFunction):
Dunmmy function with NULL return unless the target is
OSX >= 10.6 (Darwin10).
libjava:
* include/posix.h: Make substitution of
_darwin10_Unwind_FindEnclosingFunction conditional on
OSX >= 10.6 (Darwin10).

From-SVN: r163309

13 years agogcc.c (spec_function): Add remove-outfile.
Jack Howarth [Tue, 17 Aug 2010 13:22:28 +0000 (13:22 +0000)]
gcc.c (spec_function): Add remove-outfile.

2010-08-17  Jack Howarth <howarth@bromo.med.uc.edu>

* gcc.c (spec_function): Add remove-outfile.
(remove_outfile_spec_function): New function.
* config/darwin.h (LINK_SPEC): Add removal of
-ldl, -lm and -lpthread.
* invoke.texi (replace-outfile): Document.

From-SVN: r163305

13 years agore PR libstdc++/45300 (in cstdio/cstdlib keyword restrict is used instead of __restrict)
Paolo Carlini [Tue, 17 Aug 2010 13:15:41 +0000 (13:15 +0000)]
re PR libstdc++/45300 (in cstdio/cstdlib keyword restrict is used instead of __restrict)

2010-08-17  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/45300
* include/c_std/cwchar: Replace 'restrict' -> '__restrict'.
* include/c_global/cwchar: Likewise.

From-SVN: r163304

13 years agore PR target/45296 (register long double ICE at -O2, -Os, -O3)
Uros Bizjak [Tue, 17 Aug 2010 12:25:24 +0000 (14:25 +0200)]
re PR target/45296 (register long double ICE at -O2, -Os, -O3)

PR target/45296
* reginfo.c (globalize_reg): Reject stack registers.

testsuite/ChangeLog:

PR target/45296
* gcc.target/i386/pr45296.c: New test.

From-SVN: r163303

13 years agotree-ssa-dom.c (struct edge_info): Use a VEC for the list of conditional equivalences.
Richard Guenther [Tue, 17 Aug 2010 09:55:04 +0000 (09:55 +0000)]
tree-ssa-dom.c (struct edge_info): Use a VEC for the list of conditional equivalences.

2010-08-17  Richard Guenther  <rguenther@suse.de>

* tree-ssa-dom.c (struct edge_info): Use a VEC for the
list of conditional equivalences.
(free_all_edge_infos): Adjust.
(record_equivalences_from_incoming_edge): Likewise.
(record_cond): Likewise.
(build_and_record_new_cond): Likewise.
(record_conditions): Likewise.
(dom_opt_leave_block): Likewise.

From-SVN: r163302

13 years agoinvoke.texi (ms-extension): Add documentation.
Kai Tietz [Tue, 17 Aug 2010 09:54:12 +0000 (09:54 +0000)]
invoke.texi (ms-extension): Add documentation.

2010-08-17  Kai Tietz  <kai.tietz@onevision.com>

        * doc/invoke.texi (ms-extension): Add documentation.

From-SVN: r163301

13 years agoclass.c (note_name_declared_in_class): Make in 'extern "C"' blocks...
Kai Tietz [Tue, 17 Aug 2010 09:52:30 +0000 (09:52 +0000)]
class.c (note_name_declared_in_class): Make in 'extern "C"' blocks...

2010-08-17  Kai Tietz  <kai.tietz@onevision.com>

        * class.c (note_name_declared_in_class): Make in 'extern "C"' blocks,
        or if -fms-extensions is enabled check, check permissive.

From-SVN: r163300

13 years agouow-1.C: New.
Kai Tietz [Tue, 17 Aug 2010 09:50:38 +0000 (09:50 +0000)]
uow-1.C: New.

2010-08-17  Kai Tietz  <kai.tietz@onevision.com>

        * g++.dg/ext/uow-1.C: New.
        * g++.dg/ext/uow-2.C: New.
        * g++.dg/ext/uow-3.C: New.
        * g++.dg/ext/uow-4.C: New.

From-SVN: r163299

13 years agofold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.
Richard Guenther [Tue, 17 Aug 2010 09:50:12 +0000 (09:50 +0000)]
fold-const.c (fold_comparison): Strip nops inside POINTER_PLUS_EXPR.

2010-08-17  Richard Guenther  <rguenther@suse.de>

* fold-const.c (fold_comparison): Strip nops inside
POINTER_PLUS_EXPR.

From-SVN: r163298

13 years agore PR testsuite/45266 (FAIL: gfortran.dg/array_memcpy_3.f90)
Richard Guenther [Tue, 17 Aug 2010 09:47:44 +0000 (09:47 +0000)]
re PR testsuite/45266 (FAIL: gfortran.dg/array_memcpy_3.f90)

2010-08-17  Richard Guenther  <rguenther@suse.de>

PR testsuite/45266
* gfortran.dg/array_memcpy_3.f90: Adjust pattern.

From-SVN: r163297

13 years agore PR c/40563 (-Wc++-compat does not warn about uninitialized const field in struct)
Shujing Zhao [Tue, 17 Aug 2010 08:25:20 +0000 (08:25 +0000)]
re PR c/40563 (-Wc++-compat does not warn about uninitialized const field in struct)

/gcc
2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>

        PR c/40563
* c-decl.c (diagnose_uninitialized_cst_member): New function.
(finish_decl): Use it to issue a -Wc++-compat warning about
uninitialized const field in struct or union.

(finish_struct): Use strip_array_types.

/gcc/testsuite
2010-08-17  Shujing Zhao  <pearly.zhao@oracle.com>

PR c/40563
* gcc.dg/Wcxx-compat-20.c: New test.

From-SVN: r163296

13 years agore PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr))
Daniel Kraft [Tue, 17 Aug 2010 08:20:03 +0000 (10:20 +0200)]
re PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr))

2010-08-17  Daniel Kraft  <d@domob.eu>

PR fortran/38936
* gfortran.h (struct gfc_association_list): New member `where'.
(gfc_is_associate_pointer) New method.
* match.c (gfc_match_associate): Remember locus for each associate
name matched and do not try to set variable flag.
* parse.c (parse_associate): Use remembered locus for symbols.
* primary.c (match_variable): Instead of variable-flag check for
associate names set it for all such names used.
* symbol.c (gfc_is_associate_pointer): New method.
* resolve.c (resolve_block_construct): Don't generate assignments
to give associate-names their values.
(resolve_fl_var_and_proc): Allow associate-names to be deferred-shape.
(resolve_symbol): Set some more attributes for associate variables,
set variable flag here and check it and don't try to build an
explicitely shaped array-spec for array associate variables.
* trans-expr.c (gfc_conv_variable): Dereference in case of association
to scalar variable.
* trans-types.c (gfc_is_nodesc_array): Handle array association symbols.
(gfc_sym_type): Return pointer type for association to scalar vars.
* trans-decl.c (gfc_get_symbol_decl): Defer association symbols.
(trans_associate_var): New method.
(gfc_trans_deferred_vars): Handle association symbols.

2010-08-17  Daniel Kraft  <d@domob.eu>

PR fortran/38936
* gfortran.dg/associate_1.f03: Extended to test newly supported
features like association to variables.
* gfortran.dg/associate_3.f03: Removed check for illegal change
of associate-name here...
* gfortran.dg/associate_5.f03: ...and added it here.
* gfortran.dg/associate_6.f03: No longer XFAIL'ed.
* gfortran.dg/associate_7.f03: New test.

From-SVN: r163295

13 years agofunction.c (block_fragments_nreverse, [...]): New functions.
Jakub Jelinek [Tue, 17 Aug 2010 06:49:20 +0000 (08:49 +0200)]
function.c (block_fragments_nreverse, [...]): New functions.

* function.c (block_fragments_nreverse, blocks_nreverse_all): New
functions.
(reorder_blocks): Use blocks_nreverse_all instead of blocks_nreverse.
(reorder_blocks_1): Assert BLOCK_FRAGMENT_ORIGIN is NULL.  Don't
call block_nreverse here.
(blocks_nreverse): Rename decl temporary to block.

From-SVN: r163292

13 years agoDaily bump.
GCC Administrator [Tue, 17 Aug 2010 00:17:12 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r163291

13 years agore PR libstdc++/45300 (in cstdio/cstdlib keyword restrict is used instead of __restrict)
Paolo Carlini [Mon, 16 Aug 2010 19:01:35 +0000 (19:01 +0000)]
re PR libstdc++/45300 (in cstdio/cstdlib keyword restrict is used instead of __restrict)

2010-08-16  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/45300
* include/c_std/cstdlib: Replace 'restrict' -> '__restrict'.
* include/c_std/cstdio: Likewise.
* include/c_global/cstdlib: Likewise.
* include/c_global/cstdio: Likewise.

From-SVN: r163283

13 years agoprinters.py (StdVectorPrinter): Added stuff to handle pretty-printing of std::vector...
Chris Moller [Mon, 16 Aug 2010 18:48:27 +0000 (18:48 +0000)]
printers.py (StdVectorPrinter): Added stuff to handle pretty-printing of std::vector<bool>.

2010-08-16  Chris Moller  <cmoller@redhat.com>

http://sourceware.org/bugzilla/show_bug.cgi?id=11874
* python/libstdcxx/v6/printers.py (StdVectorPrinter): Added stuff
to handle pretty-printing of std::vector<bool>.

From-SVN: r163282

13 years agothumb2.md (thumb2_notsi_shiftsi, [...]): Delete.
Bernd Schmidt [Mon, 16 Aug 2010 10:25:28 +0000 (10:25 +0000)]
thumb2.md (thumb2_notsi_shiftsi, [...]): Delete.

* config/arm/thumb2.md (thumb2_notsi_shiftsi,
thumbsi_notsi_shiftsi_compare0, thumb2_not_shiftsi_compare0_scratch,
thumb2_cmpsi_shiftsi, thumb2_cmpsi_shiftsi_swp, thumb2_arith_shiftsi,
thumb2_arith_shiftsi splitter, thumb2_arith_shiftsi_compare0,
thumb2_arith_shiftsi_compare0_scratch, thumb2_sub_shiftsi,
thumb2_sub_shiftsi_compare0, thumb2_sub_shiftsi_compare0_scratch,
thumb2_iorsi3): Delete.
(orsi_notsi_si): No longer a named pattern.
(orsi_not_shiftsi_si): Renamed from thumb_orsi_not_shiftsi_si.
* config/arm/predicates.md (shift_amount_operand): New.
(mult_operator): New.
* config/arm/arm.md (attr arch, attr arch_enabled, attr insn_enabled,
attr enabled): New.
(iorsi3_insn): Renamed from arm_iorsi3.  Handle a new alternative if
arch matches t2.
(not_shiftsi): Renamed from arm_notsi_shiftsi.  Handle Thumb2 variant.
(not_shiftsi_compare0): Likewise, renamed from
arm_notsi_shiftsi_compare0.
(not_shiftsi_compare0_scratch): Likweise, renamed from
arm_notsi_shiftsi_compare0_scratch.
(cmpsi_shiftsi): Likewise, renamed from arm_cmpsi_shiftsi.
(cmpsi_shiftsi_swp): Likewise, renamed from arm_cmpsi_shiftsi_swp.
(arith_shiftsi): Handle Thumb2 variant.  Set insn_enabled attribute
so that the register alternative is disabled when the shift_operator
is MULT.  Use "M" as the constraint for constants.
(arith_shiftsi splitter): Enable for TARGET_32BIT.
(arith_shiftsi_compare0): Handle Thumb2 variant.  Use "M" as the
constraint for constants.
(arith_shiftsi_compare0_scratch): Likewise.
(sub_shiftsi, sub_shiftsi_compare0, sub_shiftsi_compare0_scratch):
Handle Thumb2 alternative.

From-SVN: r163281

13 years agooptions.texi (NoDriverArg): Document.
Joseph Myers [Mon, 16 Aug 2010 10:17:07 +0000 (11:17 +0100)]
options.texi (NoDriverArg): Document.

* doc/options.texi (NoDriverArg): Document.
* gcc.c (cpp_unique_options): Generate -MD and -MMD instead of
-MDX and -MMDX.
* opt-functions.awk (switch_flags): Handle NoDriverArg.
* opts-common.c (decode_cmdline_option): Ignore CL_SEPARATE
marking for CL_NO_DRIVER_ARG options when in the driver.
* opts.h (CL_NO_DRIVER_ARG): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_DRIVER, CL_TARGET,
CL_COMMON): Update values.

c-family:
* c.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
RejectDriver.
(MMDX): Change back to MMD.  Mark NoDriverArg instead of
RejectDriver.
* c-opts.c (c_common_handle_option): Use OPT_MD and OPT_MMD
instead of OPT_MDX and OPT_MMDX.

fortran:
* lang.opt (MDX): Change back to MD.  Mark NoDriverArg instead of
RejectDriver.
(MMDX): Change back to MMD.  Mark NoDriverArg instead of
RejectDriver.
* cpp.c (gfc_cpp_handle_option): Use OPT_MD and OPT_MMD instead of
OPT_MDX and OPT_MMDX.

From-SVN: r163280

13 years agocommon.opt: Add driver options.
Joseph Myers [Mon, 16 Aug 2010 10:15:15 +0000 (11:15 +0100)]
common.opt: Add driver options.

* common.opt: Add driver options.
(auxbase, auxbase-strip, quiet, version): Mark RejectDriver.
* doc/options.texi (Driver, RejectDriver): Document.
* gcc.c (pass_exit_codes, print_search_dirs, print_file_name,
print_prog_name, print_multi_directory, print_sysroot,
print_multi_os_directory, print_multi_lib,
print_sysroot_headers_suffix, report_times, combine_flag,
use_pipes, wrapper_string): Remove.
(save_switch, driver_unknown_option_callback,
driver_wrong_lang_callback, driver_post_handling_callback,
driver_handle_option): New.
(spec_lang, last_language_n_infiles): Make file-scope static
instead of local to process_command.
(process_command): Use decode_cmdline_options_to_array and
read_cmdline_option for option processing.  Compute have_c in
prescan of decoded options.
* opt-functions.awk (switch_flags): Handle Driver and
RejectDriver.
(var_type, var_type_struct): Handle Separate options as generating
const char * variables.
* opts-common.c (decode_cmdline_option): Expect CL_COMMON and
CL_TARGET to be passed by caller if required.
(decode_cmdline_options_to_array): Update comment.
* opts.c (complain_wrong_lang): Handle options only valid for the
driver.
(decode_options): Update call to decode_cmdline_options_to_array.
(print_filtered_help): Ignore driver-only options.
(print_specific_help): Ignore CL_DRIVER.
(common_handle_option): Don't call print_specific_help for
CL_DRIVER.
* opts.h (CL_DRIVER, CL_REJECT_DRIVER): Define.
(CL_PARAMS, CL_WARNING, CL_OPTIMIZATION, CL_TARGET, CL_COMMON):
Update values.

c-family:
* c.opt (MDX, MMDX, lang-asm): Mark RejectDriver.

fortran:
* lang.opt (MDX, MMDX): Mark RejectDriver.

java:
* lang.opt (MD_, MMD_, version): Mark RejectDriver.

From-SVN: r163279

13 years agotree-cfg.c (verify_types_in_gimple_reference): Verify TARGET_MEM_REF a bit.
Richard Guenther [Mon, 16 Aug 2010 09:55:54 +0000 (09:55 +0000)]
tree-cfg.c (verify_types_in_gimple_reference): Verify TARGET_MEM_REF a bit.

2010-08-16  Richard Guenther  <rguenther@suse.de>

* tree-cfg.c (verify_types_in_gimple_reference): Verify
TARGET_MEM_REF a bit.
* tree-ssa-address.c (addr_for_mem_ref): Adjust.
(create_mem_ref_raw): Always create TMR_OFFSET, store the
alias pointer type via it.
(copy_mem_ref_info): Adjust.
(maybe_fold_tmr): Likewise.
* tree.c (mem_ref_offset): Also handle TARGET_MEM_REF.
(reference_alias_ptr_type): Likewise.
* tree.def (TARGET_MEM_REF): Remove TMR_ORIGINAL operand,
adjust documentation of TMR_OFFSET operand.
* alias.c (get_alias_set): Do not look at TMR_ORIGINAL but
use the alias pointer type.
* expr.c (expand_expr_real_1): Do not use TMR_ORIGINAL to
initialize mem attrs but the TMR itself.
* tree-eh.c (tree_could_trap_p): Handle TARGET_MEM_REF
similar to MEM_REF.
* tree-pretty-print.c (dump_generic_node): Do not dump TMR_ORIGINAL.
* tree-ssa-loop-ivopts.c (idx_remove_ssa_names): Remove.
(unshare_and_remove_ssa_names): Likewise.
(copy_ref_info): Adjust.
* tree-ssa-pre.c (create_component_ref_by_pieces_1): Simplify
TARGET_MEM_REF case.
* tree-ssa-sccvn.c (copy_reference_ops_from_ref): Do not look
at TMR_ORIGINAL.
* tree.h (TMR_ORIGINAL): Remove.
* gimple.c (get_base_address): For TARGET_MEM_REF with a
symbol return that.
* tree-dfa.c (get_ref_base_and_extent): Handle TARGET_MEM_REF
with a symbol.
(get_addr_base_and_unit_offset): Likewise.
* tree-ssa-alias.c (indirect_ref_may_alias_decl_p): Handle
TARGET_MEM_REFs.
(indirect_ref_may_alias_decl_p): Likewise.
(refs_may_alias_p_1): Do not bail out for TARGET_MEM_REFs.

From-SVN: r163278

13 years agoAdded myself to MAINTAINERS (write after approval)
Mingjie Xing [Mon, 16 Aug 2010 01:24:55 +0000 (01:24 +0000)]
Added myself to MAINTAINERS (write after approval)

From-SVN: r163276

13 years agoDaily bump.
GCC Administrator [Mon, 16 Aug 2010 00:17:03 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r163275

13 years agopr42585.c: Skip dump scan on sh.
Kaz Kojima [Mon, 16 Aug 2010 00:09:35 +0000 (00:09 +0000)]
pr42585.c: Skip dump scan on sh.

* gcc.dg/tree-ssa/pr42585.c: Skip dump scan on sh.

From-SVN: r163271

13 years agotrans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have vtabs for generic...
Janus Weil [Sun, 15 Aug 2010 21:41:34 +0000 (23:41 +0200)]
trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have vtabs for generics any more).

2010-08-15  Janus Weil  <janus@gcc.gnu.org>

* trans-expr.c (gfc_trans_assign_vtab_procs): Clean up (we don't have
vtabs for generics any more).

From-SVN: r163270

13 years agoinvoke.texi (-fomit-frame-pointer): Document that starting with GCC version 4.6...
Uros Bizjak [Sun, 15 Aug 2010 21:25:58 +0000 (23:25 +0200)]
invoke.texi (-fomit-frame-pointer): Document that starting with GCC version 4.6...

* doc/invoke.texi (-fomit-frame-pointer): Document that starting
with GCC version 4.6, the default setting (when not optimizing
for size) for 32-bit Linux x86 and 32-bit Darwin x86 targets has
been changed to -fomit-frame-pointer.

From-SVN: r163269

13 years agore PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr))
Daniel Kraft [Sun, 15 Aug 2010 19:46:21 +0000 (21:46 +0200)]
re PR fortran/38936 ([F03] ASSOCIATE construct / improved SELECT TYPE (a=>expr))

2010-08-15  Daniel Kraft  <d@domob.eu>

PR fortran/38936
* gfortran.h (gfc_find_proc_namespace): New method.
* expr.c (gfc_build_intrinsic_call): No need to build symtree messing
around with namespace.
* symbol.c (gfc_find_proc_namespace): New method.
* trans-decl.c (gfc_build_qualified_array): Use it for correct
value of nest.
* primary.c (gfc_match_varspec): Handle associate-names as arrays.
* parse.c (parse_associate): Removed assignment-generation here...
* resolve.c (resolve_block_construct): ...and added it here.
(resolve_variable): Handle names that are arrays but were not parsed
as such because of association.
(resolve_code): Fix BLOCK resolution.
(resolve_symbol): Generate array-spec for associate-names.

2010-08-15  Daniel Kraft  <d@domob.eu>

PR fortran/38936
* gfortran.dg/associate_1.f03: Enable test for array expressions.
* gfortran.dg/associate_3.f03: Clarify comment.
* gfortran.dg/associate_5.f03: New test.
* gfortran.dg/associate_6.f03: New test.

From-SVN: r163268

13 years agorationalize libgcc stub & static lib linkage on Darwin 9 & 10.
Iain Sandoe [Sun, 15 Aug 2010 19:15:55 +0000 (19:15 +0000)]
rationalize libgcc stub & static lib linkage on Darwin 9 & 10.

* config/darwin.h (REAL_LIBGCC_SPEC): Remove libgcc_s.10.5 stub for
Darwin10.  Do not link libgcc.a for Darwin >= 9.

From-SVN: r163267

13 years agoinvoke.texi (Warning Options): Fix terminology and markup in the description of how...
Gerald Pfeifer [Sun, 15 Aug 2010 18:26:01 +0000 (18:26 +0000)]
invoke.texi (Warning Options): Fix terminology and markup in the description of how unknown warning options...

* doc/invoke.texi (Warning Options): Fix terminology and markup
in the description of how unknown warning options are handled.

From-SVN: r163266

13 years agore PR fortran/45211 (C interoperable error when compiling BIND(C) function in a module.)
Tobias Burnus [Sun, 15 Aug 2010 16:20:56 +0000 (18:20 +0200)]
re PR fortran/45211 (C interoperable error when compiling BIND(C) function in a module.)

2010-08-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45211
        * decl.c (verify_c_interop_param): Remove superfluous space (" ").
        (verify_c_interop): Handle unresolved DT with bind(C).

2010-08-15  Tobias Burnus  <burnus@net-b.de>

        PR fortran/45211
        * gfortran.dg/bind_c_usage_21.f90: New.
        * gfortran.dg/bind_c_dts_3.f03: Update dg-error.

From-SVN: r163264

13 years agotrans-expr.c (gfc_conv_expr_present): Regard nullified pointer arrays as absent.
Tobias Burnus [Sun, 15 Aug 2010 16:04:49 +0000 (18:04 +0200)]
trans-expr.c (gfc_conv_expr_present): Regard nullified pointer arrays as absent.

2010-08-15  Tobias Burnus  <burnus@net-b.de>

        * trans-expr.c (gfc_conv_expr_present): Regard nullified
        pointer arrays as absent.
        (gfc_conv_procedure_call): Handle EXPR_NULL for non-pointer
        dummys as absent argument.
        * interface.c (compare_actual_formal,compare_parameter):
        Ditto.

2010-08-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/optional_absent_1.f90: New.
        * gfortran.dg/null_actual.f90: New.

From-SVN: r163263

13 years agointerface.c (compare_pointer, ): Allow passing TARGETs to pointers dummies with inten...
Tobias Burnus [Sun, 15 Aug 2010 15:47:11 +0000 (17:47 +0200)]
interface.c (compare_pointer, ): Allow passing TARGETs to pointers dummies with intent(in).

2010-08-15  Tobias Burnus  <burnus@net-b.de>

        * interface.c (compare_pointer, ): Allow passing TARGETs to
        pointers dummies with intent(in).

2010-08-15  Tobias Burnus  <burnus@net-b.de>

        * gfortran.dg/pointer_target_1.f90: New.
        * gfortran.dg/pointer_target_2.f90: New.
        * gfortran.dg/pointer_target_3.f90: New.

From-SVN: r163262

13 years agore PR fortran/45197 ([F2008] Allow IMPURE elemental procedures)
Daniel Kraft [Sun, 15 Aug 2010 15:28:10 +0000 (17:28 +0200)]
re PR fortran/45197 ([F2008] Allow IMPURE elemental procedures)

2010-08-15  Daniel Kraft  <d@domob.eu>

PR fortran/45197
* decl.c (gfc_match_prefix): Match IMPURE prefix and mark ELEMENTAL
routines not IMPURE also as PURE.
* intrinsic.c (enum klass): New class `CLASS_PURE' and renamed
`NO_CLASS' in `CLASS_IMPURE'.
(add_sym): Set symbol-attributes `pure' and `elemental' correctly.
(add_sym_0s): Renamed `NO_CLASS' in `CLASS_IMPURE'.
(add_functions): Ditto.
(add_subroutines): Ditto and mark `MOVE_ALLOC' as CLASS_PURE.
* resolve.c (gfc_pure): Do not treat ELEMENTAL as automatically PURE.
(resolve_formal_arglist): Check that arguments to ELEMENTAL procedures
are not ALLOCATABLE and have their INTENT specified.

2010-08-15  Daniel Kraft  <d@domob.eu>

PR fortran/45197
* gfortran.dg/elemental_args_check_3.f90: New test.
* gfortran.dg/impure_1.f08: New test.
* gfortran.dg/impure_2.f08: New test.
* gfortran.dg/impure_3.f90: New test.
* gfortran.dg/typebound_proc_6.f03: Changed expected error message.

From-SVN: r163261

13 years agotree-vect-data-refs.c (vect_setup_realignment): Support realignment in basic blocks.
Ira Rosen [Sun, 15 Aug 2010 07:00:32 +0000 (07:00 +0000)]
tree-vect-data-refs.c (vect_setup_realignment): Support realignment in basic blocks.

* tree-vect-data-refs.c (vect_setup_realignment): Support realignment
in basic blocks.
(vect_supportable_dr_alignment): Check alignment for basic blocks.
* tree-vect-slp.c (vect_build_slp_tree): Allow different codes for
data references.
(vect_bb_vectorization_profitable_p): New function.
(vect_slp_analyze_bb): Call vect_bb_vectorization_profitable_p() to
check if it's worthwhile to vectorize the basic block.

From-SVN: r163260

13 years agoDaily bump.
GCC Administrator [Sun, 15 Aug 2010 00:17:00 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r163258

13 years agoFix up ChangeLog entry for the last commit.
Gerald Pfeifer [Sat, 14 Aug 2010 23:02:37 +0000 (23:02 +0000)]
Fix up ChangeLog entry for the last commit.

From-SVN: r163254

13 years ago* gcc_release (CVSROOT): Remove all occurrences.
Gerald Pfeifer [Sat, 14 Aug 2010 22:57:37 +0000 (22:57 +0000)]
* gcc_release (CVSROOT): Remove all occurrences.

From-SVN: r163253

13 years agoreload.h (register_move_cost, [...]): Adjust prototype.
Anatoly Sokolov [Sat, 14 Aug 2010 21:46:11 +0000 (01:46 +0400)]
reload.h (register_move_cost, [...]): Adjust prototype.

* reload.h (register_move_cost, memory_move_secondary_cost,
secondary_reload_class): Adjust prototype.
* rtl.h (reg_class_subset_p): Adjust prototype.
* reload.c (secondary_reload_class): Change arguments type from
enum reg_class to reg_class_t. Change result type to reg_class_t.
* reginfo.c (register_move_cost, reg_class_subset_p): Change
arguments type from enum reg_class to reg_class_t.
(memory_move_secondary_cost): Change arguments type from
enum reg_class to reg_class_t. Change type of saved_flags to
reg_class_t.

* config/mips/mips.h (REGISTER_MOVE_COST, MEMORY_MOVE_COST):
Remove macros.
(mips_cost): Remove.
(struct mips_rtx_cost_data): Moved to mips.c.
* config/mips/mips-protos.h (mips_register_move_cost): Remove.
* config/mips/mips.c (struct mips_rtx_cost_data): Moved from mips.h.
(mips_cost): Make static.
(mips_canonicalize_move_class): Change argument type to reg_class_t.
Change result type to reg_class_t.
(mips_move_to_gpr_cost, mips_move_from_gpr_cost): Change arguments
type from enum reg_class to reg_class_t.
(mips_register_move_cost): Make static. Change arguments
type from enum reg_class to reg_class_t.
(mips_memory_move_cost): New function.
(TARGET_REGISTER_MOVE_COST, TARGET_MEMORY_MOVE_COST): Define.

From-SVN: r163252

13 years agogcc_release (snapshot_print): Include md5 hash for every tarball in the README file...
Gerald Pfeifer [Sat, 14 Aug 2010 21:42:16 +0000 (21:42 +0000)]
gcc_release (snapshot_print): Include md5 hash for every tarball in the README file and notification mail.

* gcc_release (snapshot_print): Include md5 hash for every tarball
in the README file and notification mail.

From-SVN: r163251

13 years agore PR libstdc++/45283 (performance/30_threads/future/polling.cc fails at compile...
Jonathan Wakely [Sat, 14 Aug 2010 20:00:55 +0000 (20:00 +0000)]
re PR libstdc++/45283 (performance/30_threads/future/polling.cc fails at compile time)

2010-08-14  Jonathan Wakely  <jwakely.gcc@gmail.com>

PR libstdc++/45283
* testsuite/performance/30_threads/future/polling.cc: Replace calls to
shared_future::is_ready.

From-SVN: r163250

13 years agore PR target/43358 (IRA: internal compiler error: in pool_free, at alloc-pool.c:335)
Richard Sandiford [Sat, 14 Aug 2010 19:59:13 +0000 (19:59 +0000)]
re PR target/43358 (IRA: internal compiler error: in pool_free, at alloc-pool.c:335)

gcc/
PR rtl-optimization/43358
* ira-lives.c (process_single_reg_class_operands): Adjust the costs
of a single hard register, using simplify_subreg_regno to decide
what that register should be.

From-SVN: r163249

13 years ago2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>
Mingjie Xing [Sat, 14 Aug 2010 19:48:21 +0000 (19:48 +0000)]
2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>

gcc/testsuite/
2010-xx-xx  Mingjie Xing  <mingjie.xing@gmail.com>

* gcc.dg/vect/fast-math-vect-reduc-8.c: Move
dg-require-effective-target after dg-do.

From-SVN: r163248

13 years ago2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>
Mingjie Xing [Sat, 14 Aug 2010 19:46:25 +0000 (19:46 +0000)]
2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>

gcc/testsuite/
2010-xx-xx  Mingjie Xing  <mingjie.xing@gmail.com>

* lib/target-supports.exp (check_effective_target_vect_int): Return
true for Loongson targets.
(check_effective_target_vect_shift): Likewise.
(check_effective_target_vect_no_int_max): Likewise.
(check_effective_target_vect_no_align): Likewise.
(check_effective_target_vect_short_mult): Likewise.

From-SVN: r163247

13 years ago2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>
Mingjie Xing [Sat, 14 Aug 2010 19:42:04 +0000 (19:42 +0000)]
2010-xx-xx Mingjie Xing <mingjie.xing@gmail.com>

gcc/
2010-xx-xx  Mingjie Xing  <mingjie.xing@gmail.com>

* config/mips/mips.c (CODE_FOR_loongson_pmullh): Define.
* config/mips/loongson.md (UNSPEC_LOONGSON_PMULL): Delete.
(loongson_pmull<V_suffix>): Rename to...
(mul<mode>3): ...this and use MULT instead of an UNSPEC.

From-SVN: r163246

13 years agore PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")
Jerry DeLisle [Sat, 14 Aug 2010 18:59:18 +0000 (18:59 +0000)]
re PR fortran/44931 (For INPUT_UNIT, INQUIRE NAME= should not return "stdin")

2010-08-14  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/44931
* io/inquire.c (inquire_via_unit): Add special case for __MINGW32__ to
return special file names CONIN$, CONOUT$, and CONERR$.

From-SVN: r163245

13 years agocast.C: Change fields of structures to "long" to pass the test on targets with...
Uros Bizjak [Sat, 14 Aug 2010 12:32:14 +0000 (14:32 +0200)]
cast.C: Change fields of structures to "long" to pass the test on targets with...

* g++.dg/cast.C: Change fields of structures to "long" to pass
the test on targets with STRUCTURE_SIZE_BOUNDARY != BITS_PER_UNIT.
* g++.dg/cpp0x/iop.C: Ditto.
* g++.dg/cpp0x/named_refs.C: Ditto.
* g++.dg/cpp0x/rv1p.C: Ditto.
* g++.dg/cpp0x/rv2p.C: Ditto.
* g++.dg/cpp0x/rv3p.C: Ditto.
* g++.dg/cpp0x/rv4p.C: Ditto.
* g++.dg/cpp0x/rv5p.C: Ditto.
* g++.dg/cpp0x/rv6p.C: Ditto.
* g++.dg/cpp0x/rv7p.C: Ditto.
* g++.dg/cpp0x/rv8p.C: Ditto.
* g++.dg/cpp0x/unnamed_refs.C: Ditto.

From-SVN: r163240

13 years agohashtable.h (_Hashtable<>::operator=(const _Hashtable&)): Move inline.
Paolo Carlini [Sat, 14 Aug 2010 01:00:23 +0000 (01:00 +0000)]
hashtable.h (_Hashtable<>::operator=(const _Hashtable&)): Move inline.

2010-08-13  Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/hashtable.h (_Hashtable<>::operator=(const
_Hashtable&)): Move inline.
(operator=(_Hashtable&&)): Define.
* include/bits/unordered_map.h (unordered_map(unordered_map&&),
unordered_map(const unordered_map&), unordered_multimap
(unordered_multimap&&), unordered_multimap(const unordered_multimap&),
__unordered_map(__unordered_map&&), __unordered_map(const
__unordered_map&), __unordered_multimap(__unordered_multimap&&),
__unordered_multimap(const __unordered_multimap&)): Do not define,
leave implicit.
* include/bits/unordered_set.h (unordered_set(unordered_set&&),
unordered_set(const unordered_set&), unordered_multiset
(unordered_multiset&&), unordered_multiset(const unordered_multiset&),
__unordered_set(__unordered_set&&), __unordered_set(const
__unordered_set&), __unordered_multiset(__unordered_multiset&&),
__unordered_multiset(const __unordered_multiset&)): Likewise.

* include/bits/unordered_map.h (__unordered_map(initializer_list<>),
__unordered_map<>::operator=(initializer_list<>),
__unordered_multimap(initializer_list<>), __unordered_multimap<>::
operator=(initializer_list<>)): Add.
* include/bits/unordered_set.h (__unordered_set(initializer_list<>),
__unordered_set<>::operator=(initializer_list<>),
__unordered_multiset(initializer_list<>), __unordered_multiset<>::
operator=(initializer_list<>)): Likewise.

* include/bits/unordered_map.h (__unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(initializer_list<>,
size_type __n), unordered_multimap(initializer_list<>, size_type __n)):
Fix __n default to 0.
* include/bits/unordered_set.h (__unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(initializer_list<>,
size_type __n), unordered_multiset(initializer_list<>, size_type __n)):
Likewise.
* include/debug/unordered_map (unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(initializer_list<>,
size_type __n), unordered_map(_InputIterator, _InputIterator,
size_type __n), unordered_multimap(initializer_list<>, size_type __n)):
Likewise.
* include/debug/unordered_set (unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(initializer_list<>,
size_type __n), unordered_set(_InputIterator, _InputIterator,
size_type __n), unordered_multiset(initializer_list<>, size_type __n)):
Likewise.
* include/profile/unordered_map (unordered_map(_InputIterator,
_InputIterator, size_type __n), unordered_map(initializer_list<>,
size_type __n), unordered_map(_InputIterator, _InputIterator,
size_type __n), unordered_multimap(initializer_list<>, size_type __n)):
Likewise.
* include/profile/unordered_set (unordered_set(_InputIterator,
_InputIterator, size_type __n), unordered_set(initializer_list<>,
size_type __n), unordered_set(_InputIterator, _InputIterator,
size_type __n), unordered_multiset(initializer_list<>, size_type __n)):
Likewise.

From-SVN: r163236

13 years agoDaily bump.
GCC Administrator [Sat, 14 Aug 2010 00:17:06 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r163235

13 years agore PR libstdc++/45281 (performance/ext/pb_ds/priority_queue_text_modify_down_timing...
Paolo Carlini [Sat, 14 Aug 2010 00:09:21 +0000 (00:09 +0000)]
re PR libstdc++/45281 (performance/ext/pb_ds/priority_queue_text_modify_down_timing.cc fails at compile time)

2010-08-13  Paolo Carlini  <paolo.carlini@oracle.com>

PR libstdc++/45281
* include/bits/stl_queue.h (queue(queue&&), operator=(queue&&),
priority_queue(priority_queue&&), operator=(priority_queue&&)):
Remove, per CH 15.

From-SVN: r163231

13 years agoEnable -fomit-frame-pointer on darwin which support dwarf2.
Jack Howarth [Fri, 13 Aug 2010 17:06:42 +0000 (17:06 +0000)]
Enable -fomit-frame-pointer on darwin which support dwarf2.

2010-08-13  Jack Howarth <howarth@bromo.med.uc.edu>

* gcc/configure.ac: Enable -fomit-frame-pointer on darwin
which support dwarf2.
* config/i386/i386.c (override_options): Same.

From-SVN: r163227

13 years agodr1189.cc: Move to...
Paolo Carlini [Fri, 13 Aug 2010 13:08:09 +0000 (13:08 +0000)]
dr1189.cc: Move to...

2010-08-13  Paolo Carlini  <paolo.carlini@oracle.com>

* testsuite/23_containers/unordered_map/dr1189.cc: Move to...
* testsuite/23_containers/unordered_map/hash_policy/dr1189.cc:
... here.
* testsuite/23_containers/unordered_set/dr1189.cc: Move to...
* testsuite/23_containers/unordered_set/hash_policy/dr1189.cc:
... here.
* testsuite/23_containers/unordered_multimap/dr1189.cc: Move to...
* testsuite/23_containers/unordered_multimap/hash_policy/dr1189.cc:
... here.
* testsuite/23_containers/unordered_multiset/dr1189.cc: Move to...
* testsuite/23_containers/unordered_multiset/hash_policy/dr1189.cc:
... here.

* testsuite/23_containers/unordered_set/hash_policy/26132.cc: New.

From-SVN: r163224

13 years agoios_init.cc (ios_base::Init::~Init): Add back semicolon at the end of the _GLIBCXX_SY...
Paolo Carlini [Fri, 13 Aug 2010 11:48:34 +0000 (11:48 +0000)]
ios_init.cc (ios_base::Init::~Init): Add back semicolon at the end of the _GLIBCXX_SYNCHRONIZATION_HAPPENS* macros...

2010-08-12  Paolo Carlini  <paolo.carlini@oracle.com>

* src/ios_init.cc (ios_base::Init::~Init): Add back semicolon
at the end of the _GLIBCXX_SYNCHRONIZATION_HAPPENS* macros,
removed by mistake.
* include/tr1_impl/boost_sp_counted_base.h: Likewise.
* include/ext/rc_string_base.h: Likewise.
* include/bits/locale_classes.h: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/ios_base.h: Likewise.
* include/bits/c++config: Adjust comment.

From-SVN: r163223

13 years agoargv.c (expandargv): Limit the number of times that response files are opened in...
Nick Clifton [Fri, 13 Aug 2010 11:36:38 +0000 (11:36 +0000)]
argv.c (expandargv): Limit the number of times that response files are opened in order to prevent...

        * argv.c (expandargv): Limit the number of times that response
        files are opened in order to prevent infinite recursion.

From-SVN: r163222

13 years agogfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
Daniel Kraft [Fri, 13 Aug 2010 07:26:05 +0000 (09:26 +0200)]
gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.

2010-08-13  Daniel Kraft  <d@domob.eu>

* gfortran.h (array_type): New type `AS_IMPLIED_SHAPE'.
* array.c (gfc_match_array_spec): Match implied-shape specification and
handle AS_IMPLIED_SHAPE correctly otherwise.
* decl.c (add_init_expr_to_sym): Set upper bounds for implied-shape.
(variable_decl): Some checks for implied-shape declaration.
* resolve.c (resolve_symbol): Assert that array-spec is no longer
AS_IMPLIED_SHAPE in any case.

2010-08-13  Daniel Kraft  <d@domob.eu>

* gfortran.dg/implied_shape_1.f08: New test.
* gfortran.dg/implied_shape_2.f90: New test.
* gfortran.dg/implied_shape_3.f08: New test.

From-SVN: r163221

13 years agore PR fortran/42526 (bogus truncation warning for default-initialized character compo...
Jerry DeLisle [Fri, 13 Aug 2010 05:14:18 +0000 (05:14 +0000)]
re PR fortran/42526 (bogus truncation warning for default-initialized character components)

2010-08-12  Jerry DeLisle  <jvdelisle@gcc.gnu.org>

PR libfortran/42526
* gfortran.dg/char_component_initializer_1.f90: New test.

From-SVN: r163220

13 years agoarm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.
Jie Zhang [Fri, 13 Aug 2010 01:43:43 +0000 (01:43 +0000)]
arm.md (cstoredf4): Only valid when !TARGET_VFP_SINGLE.

* config/arm/arm.md (cstoredf4): Only valid when
!TARGET_VFP_SINGLE.

From-SVN: r163219

13 years agoDaily bump.
GCC Administrator [Fri, 13 Aug 2010 00:17:17 +0000 (00:17 +0000)]
Daily bump.

From-SVN: r163218

13 years agoc++config (_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE, [...]): Add.
Kostya Serebryany [Thu, 12 Aug 2010 22:56:59 +0000 (22:56 +0000)]
c++config (_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE, [...]): Add.

2010-08-12  Kostya Serebryany <kcc@google.com>
    Paolo Carlini  <paolo.carlini@oracle.com>

* include/bits/c++config (_GLIBCXX_SYNCHRONIZATION_HAPPENS_BEFORE,
_GLIBCXX_SYNCHRONIZATION_HAPPENS_AFTER): Add.
* src/ios_init.cc (ios_base::Init::~Init): Decorate with the
latter.
* include/tr1_impl/boost_sp_counted_base.h: Likewise.
* include/ext/rc_string_base.h: Likewise.
* include/bits/locale_classes.h: Likewise.
* include/bits/basic_string.h: Likewise.
* include/bits/ios_base.h: Likewise.
* testsuite/27_io/ios_base/cons/assign_neg.cc: Adjust dg-error
line number.
* testsuite/27_io/ios_base/cons/copy_neg.cc: Likewise.
* testsuite/ext/profile/mutex_extensions.cc: Likewise.

Co-Authored-By: Paolo Carlini <paolo.carlini@oracle.com>
From-SVN: r163210

13 years agogcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and -MMD.
Joseph Myers [Thu, 12 Aug 2010 22:52:49 +0000 (23:52 +0100)]
gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and -MMD.

* gcc.c (cpp_unique_options): Generate -MDX and -MMDX from -MD and
-MMD.

c-family:
* c.opt (MD, MMD): Change to MDX and MMDX.
* c-opts.c (c_common_handle_option): Use OPT_MMD and OPT_MMDX.

fortran:
* lang.opt (MD, MMD): Change to MDX and MMDX.
* cpp.c (gfc_cpp_handle_option): Use OPT_MMD and OPT_MMDX.

From-SVN: r163209

13 years agopr45241 give up dot_prod pattern searching if stmt is outside the loop.
Changpeng Fang [Thu, 12 Aug 2010 22:18:32 +0000 (22:18 +0000)]
pr45241 give up dot_prod pattern searching if stmt is outside the loop.

* tree-vect-patterns.c (vect_recog_dot_prod_pattern): Give
up dot_prod pattern searching if a stmt is outside the loop.

* gcc.dg/vect/no-tree-pre-pr45241.c: New.

From-SVN: r163207

13 years ago* gnu/java/security/jce/prng/natVMSecureRandomWin32.cc
Tom Tromey [Thu, 12 Aug 2010 18:23:32 +0000 (18:23 +0000)]
* gnu/java/security/jce/prng/natVMSecureRandomWin32.cc
(natGenerateSeed): Add missing "::".

From-SVN: r163199

13 years agopr40906-1.c: Add -fno-asynchronous-unwind-tables to dg-options.
Uros Bizjak [Thu, 12 Aug 2010 18:20:44 +0000 (20:20 +0200)]
pr40906-1.c: Add -fno-asynchronous-unwind-tables to dg-options.

* gcc.target/i386/pr40906-1.c: Add -fno-asynchronous-unwind-tables
to dg-options.
* gcc.target/i386/pr40906-2.c: Ditto.
* gcc.target/i386/pr40906-3.c: Ditto.

From-SVN: r163198

13 years agoTurn on -fomit-frame-pointer by default for 32bit Linux/x86.
H.J. Lu [Thu, 12 Aug 2010 16:39:37 +0000 (16:39 +0000)]
Turn on -fomit-frame-pointer by default for 32bit Linux/x86.

2010-08-12  H.J. Lu  <hongjiu.lu@intel.com>
    Uros Bizjak  <ubizjak@gmail.com>

* config.gcc: Handle --enable-frame-pointer.

* configure.ac: Add --enable-frame-pointer.
* configure: Regenerated.

* config/i386/i386.c (USE_IX86_FRAME_POINTER): Default to 0.
(override_options): If not configured with --enable-frame-pointer,
enable -fomit-frame-pointer (but not for TARGET_MACHO or when
optimizing for size), -fasynchronous-unwind-tables and
-maccumulate-outgoing-args by default.

Co-Authored-By: Uros Bizjak <ubizjak@gmail.com>
From-SVN: r163196

13 years agore PR middle-end/45262 (Optimization results in wrong result on expression x>>31...
Jakub Jelinek [Thu, 12 Aug 2010 15:21:34 +0000 (17:21 +0200)]
re PR middle-end/45262 (Optimization results in wrong result on expression x>>31||(-x)>>31)

PR middle-end/45262
* fold-const.c (make_range) <case NEGATE_EXPR>: Punt if
-a overflows.  Normalize the range.

* gcc.c-torture/execute/pr45262.c: New test.

From-SVN: r163193

13 years agobuiltins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.
Jakub Jelinek [Thu, 12 Aug 2010 14:32:25 +0000 (16:32 +0200)]
builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare warning.

* builtins.c (fold_builtin_memory_op): Avoid -Wsign-compare
warning.

From-SVN: r163192

13 years agoprofile-generate-3.c: Call dg-require-profiling with empty argument.
Uros Bizjak [Thu, 12 Aug 2010 10:42:59 +0000 (12:42 +0200)]
profile-generate-3.c: Call dg-require-profiling with empty argument.

* gcc.dg/profile-generate-3.c: Call dg-require-profiling with
empty argument.
* g++.dg/other/profile1.C: Ditto.

From-SVN: r163191

13 years agore PR tree-optimization/45232 (tree reassociation introduces undefined overflow)
Richard Guenther [Thu, 12 Aug 2010 10:38:05 +0000 (10:38 +0000)]
re PR tree-optimization/45232 (tree reassociation introduces undefined overflow)

2010-08-12  Richard Guenther  <rguenther@suse.de>

PR tree-optimization/45232
* tree-ssa-reassoc.c (can_reassociate_p): Disable re-association
for types with undefined overflow.
(reassociate_bb): Allow re-associating of bit and min/max
operations for types with undefined overflow.
* tree-ssa-forwprop.c (associate_plusminus): New function.
(tree_ssa_forward_propagate_single_use_vars): Call it.

* gcc.dg/tree-ssa/pr44133.c: Adjust warning location.
* gcc.dg/tree-ssa/loop-7.c: Adjust.
* gcc.dg/tree-ssa/reassoc-1.c: XFAIL.
* gcc.dg/tree-ssa/reassoc-20.c: Add reassoc-1.c variant with
unsigned arithmetic.
* gcc.dg/tree-ssa/reassoc-14.c: Use unsigned arithmetic.
* gcc.dg/tree-ssa/reassoc-15.c: Likewise.
* gcc.dg/tree-ssa/reassoc-18.c: Likewise.
* gcc.dg/tree-ssa/reassoc-2.c: XFAIL.
* gcc.dg/tree-ssa/reassoc-21.c: Add reassoc-2.c variant with
unsigned arithmetic.
* gcc.dg/tree-ssa/reassoc-6.c: XFAIL.
* gcc.dg/tree-ssa/reassoc-22.c: Add reassoc-6.c variant with
unsigned arithmetic.
* gcc.dg/tree-ssa/reassoc-7.c: Use unsigned arithmetic.
* gcc.dg/tree-ssa/reassoc-9.c: XFAIL.
* gcc.dg/tree-ssa/reassoc-23.c: Add reassoc-9.c variant with
unsigned arithmetic.
* gcc.dg/tree-ssa/ssa-pre-2.c: Adjust.
* gcc.dg/tree-ssa/negate.c: Adjust.
* gcc.dg/vect/vect-1.c: Adjust.
* gfortran.dg/reassoc_6.f: XFAIL.

From-SVN: r163190

13 years agotree-flow.h (struct ptr_info_def): Add align and misalign fields.
Richard Guenther [Thu, 12 Aug 2010 10:36:08 +0000 (10:36 +0000)]
tree-flow.h (struct ptr_info_def): Add align and misalign fields.

2010-08-12  Richard Guenther  <rguenther@suse.de>

* tree-flow.h (struct ptr_info_def): Add align and misalign fields.
* tree-ssa-alias.c (get_ptr_info): Move ...
* tree-ssanames.c (get_ptr_info): ... here.  Initialize
align and misalign fields conservatively.
* tree-ssa-ccp.c (ccp_finalize): From partially constant pointers
derive alignment information.
(evaluate_stmt): Derive alignment information from memory
allocation functions.
* tree.h (get_pointer_alignment): Make unsigned.
* builtins.c (get_object_alignment): Use alignment information we
have computed for pointers.
(get_pointer_alignment): Likewise.  Make conservative, return
and unsigned value.
(expand_builtin_strlen): Adjust.
(expand_builtin_memcmp): Likewise.
(expand_builtin_strcmp): Likewise.
(expand_builtin_strncmp): Likewise.
(get_builtin_sync_mem): Use at least mode alignment.
(fold_builtin_memset): Adjust.
(fold_builtin_memory_op): Likewise.
* gimple-pretty-print.c (dump_gimple_phi): Alongside alias
information also dump pointer alignment knowledge.
(dump_gimple_stmt): Likewise.

From-SVN: r163189

13 years agoi386.c (LONG_TYPE_SIZE): Remove.
Uros Bizjak [Thu, 12 Aug 2010 10:12:32 +0000 (12:12 +0200)]
i386.c (LONG_TYPE_SIZE): Remove.

* config/i386/i386.c (LONG_TYPE_SIZE): Remove.
(EMPTY_FIELD_BOUNDARY): Remove.
* config/i386/i386-interix.h (PCC_BITFIELD_TYPE_MATTERS): Remove.

From-SVN: r163188

13 years agore PR debug/45259 (ICE in save_call_clobbered_regs)
Jakub Jelinek [Thu, 12 Aug 2010 09:04:48 +0000 (11:04 +0200)]
re PR debug/45259 (ICE in save_call_clobbered_regs)

PR debug/45259
* caller-save.c (save_call_clobbered_regs): Only swap notes with
DEBUG_INSNs if n_regs_saved.

* gcc.dg/pr45259.c: New test.

From-SVN: r163185