OSDN Git Service
burnus [Tue, 16 Oct 2012 13:02:02 +0000 (13:02 +0000)]
2012-10-16 Tobias Burnus <burnus@net-b.de>
PR fortran/50981
PR fortran/54618
* trans.h (gfc_conv_derived_to_class, gfc_conv_class_to_class):
Update prototype.
* trans-stmt.c (trans_associate_var,gfc_trans_allocate): Update
calls to those functions.
* trans-expr.c (gfc_conv_derived_to_class,
* gfc_conv_class_to_class,
gfc_conv_expr_present): Handle absent polymorphic arguments.
(class_scalar_coarray_to_class): New function.
(gfc_conv_procedure_call): Update calls.
2012-10-16 Tobias Burnus <burnus@net-b.de>
PR fortran/50981
PR fortran/54618
* gfortran.dg/class_optional_1.f90: New.
* gfortran.dg/class_optional_2.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192495
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Tue, 16 Oct 2012 11:21:20 +0000 (11:21 +0000)]
PR debug/54796
* rtl.h: Document jump flag on VALUE.
* cselib.h (cselib_set_value_sp_based,
cselib_sp_based_value_p): New prototypes.
* alias.c (find_base_term): For cselib_sp_based_value_p
return static_reg_base_value[STACK_POINTER_REGNUM].
* cselib.c (SP_BASED_VALUE_P): Define.
(cselib_set_value_sp_based, cselib_sp_based_value_p): New functions.
* var-tracking.c (add_stores): Call cselib_set_value_sp_based
for not yet preserved VALUEs of sp on sp assignments if
hard_frame_pointer_adjustment != -1.
(vt_initialize): When setting hard_frame_pointer_adjustment,
disassociate sp from its previous value and call
cselib_set_value_sp_based on a new VALUE created for sp.
* gcc.dg/guality/pr54796.c: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192494
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Tue, 16 Oct 2012 11:19:37 +0000 (11:19 +0000)]
PR tree-optimization/54889
* tree-vect-stmts.c (vectorizable_load): Add VIEW_CONVERT_EXPR if
ARRAY_REF newref doesn't have compatible type with vectype element
type, use vectype element type for MEM_REF.
* gfortran.dg/pr54889.f90: New test.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192493
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Tue, 16 Oct 2012 07:46:11 +0000 (07:46 +0000)]
* combine.c (record_dead_and_set_regs): Iterate over hard register set
with a hard_reg_set_iterator.
* cse.c (invalidate_for_call): Likewise.
* gcse.c (compute_hash_table_work): Likewise.
* loop-iv.c (simplify_using_initial_values): Likewise.
* postreload-gcse.c (record_opr_changes): Likewise.
* regcprop.c (copyprop_hardreg_forward_1): Likewise.
* var-tracking.c (dataflow_set_clear_at_call): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192490
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Tue, 16 Oct 2012 07:13:37 +0000 (07:13 +0000)]
* c-ada-spec.c (ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX): Define.
(dump_generic_ada_node) <INTEGER_CST>: Deal with sizetype specially.
Remove POINTER_TYPE handling, add large unsigned handling and use
ADA_HOST_WIDE_INT_PRINT_DOUBLE_HEX for big numbers.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192489
138bc75d-0d04-0410-961f-
82ee72b054a4
eraman [Tue, 16 Oct 2012 05:28:08 +0000 (05:28 +0000)]
2012-10-15 Easwaran Raman <eraman@google.com>
* optabs.c (emit_cmp_and_jump_insn_1): Add a new parameter to
specificy the probability of taking the jump.
(emit_cmp_and_jump_insns): Likewise.
(expand_compare_and_swap_loop): Make the jump predicted not taken.
* dojump.c (do_compare_rtx_and_jump): Remove the code attaching
REG_BR_PROB note and pass probability to emit_cmp_and_jump_insns.
* cfgbuild.c (compute_outgoing_frequencies): Do not guess outgoing
probabilities for branches with more than two successors.
* expr.c (emit_block_move_via_loop): Predict the loop backedge loop
to be highly taken.
(try_casesi): Pass the probability of jumping to the default label.
(try_tablejump): Likewise.
(do_tablejump): Likewise.
* expr.h (try_tablejump): Add a new parameter.
(try_casesi): Likewise.
(emit_cmp_and_jump_insns): Add probability as default parameter with a
default value of -1.
* except.c (sjlj_emit_function_enter): Pass probability to
emit_cmp_and_jump_insns.
* stmt.c (case_node): Add new fields PROB and SUBTREE_PROB.
(do_jump_if_equal): Pass probability for REG_BR_PROB note.
(add_case_node): Pass estimated probability of jumping to the case
label.
(emit_case_decision_tree): Pass default_prob to emit_case_nodes.
(get_outgoing_edge_probs): New function.
(conditional_probability): Likewise.
(reset_out_edges_aux): Likewise.
(compute_cases_per_edge): Likewise.
(emit_case_dispatch_table): Update probabilities of edges coming out
of the switch statement.
(expand_case): Compute and propagate default edge probability to
emit_case_dispatch_table.
(expand_sjlj_dispatch_table): Update calls to add_case_node and
emit_case_dispatch_table.
(balance_case_nodes): Update subtree_prob values.
(emit_case_nodes): Compute edge probabilities and add pass them to
emit_cmp_and_jump_insns.
testsuite/ChangeLog:
2012-10-15 Easwaran Raman <eraman@google.com>
* gcc.dg/tree-prof/switch-case-1.c: New test case.
* gcc.dg/tree-prof/switch-case-2.c: New test case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192488
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Tue, 16 Oct 2012 00:18:27 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192486
138bc75d-0d04-0410-961f-
82ee72b054a4
hp [Mon, 15 Oct 2012 22:38:37 +0000 (22:38 +0000)]
* gcc.dg/torture/stackalign/builtin-apply-2.c,
gcc.dg/builtin-apply2.c: Correct STACK_ARGUMENTS_SIZE for MMIX.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192483
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Mon, 15 Oct 2012 22:15:18 +0000 (22:15 +0000)]
PR target/54925
* gcc.c-torture/compile/pr54925.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192482
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Mon, 15 Oct 2012 22:08:07 +0000 (22:08 +0000)]
PR target/51244
* config/sh/sh-protos.h (set_of_reg): New struct.
(sh_find_set_of_reg, sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend): Declare...
* config/sh/sh.c (sh_find_set_of_reg, sh_is_logical_t_store_expr,
sh_try_omit_signzero_extend): ...these new functions.
* config/sh/sh.md (*logical_op_t): New insn_and_split.
(*zero_extend<mode>si2_compact): Use sh_try_omit_signzero_extend
in splitter.
(*extend<mode>si2_compact_reg): Convert to insn_and_split.
Use sh_try_omit_signzero_extend in splitter.
(*mov<mode>_reg_reg): Disallow t_reg_operand as operand 1.
(*cbranch_t): Rewrite combine part in splitter using new
sh_find_set_of_reg function.
PR target/51244
* gcc.target/sh/pr51244-17.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192481
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Mon, 15 Oct 2012 22:04:37 +0000 (22:04 +0000)]
PR target/54760
* config/sh/sh.c (sh_find_base_reg_disp): Stop searching insns when
hitting a call insn if GBR is marked as call used.
* config/sh/iterators.md (QIHISIDI): New mode iterator.
* config/sh/predicates.md (gbr_address_mem): New predicate.
* config/sh/sh.md (*movdi_gbr_load, *movdi_gbr_store): New
insn_and_split.
Use QIHISIDI instead of QIHISI in unnamed GBR addressing splits.
PR target/54760
* gcc.target/sh/pr54760-2.c: Add long long and unsigned long long test
functions.
* gcc.target/sh/pr54760-4.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192480
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Mon, 15 Oct 2012 22:01:26 +0000 (22:01 +0000)]
* config/sh/sh.c: Update function attribute comments.
* doc/extend.texi (function_vector): Rephrase SH2A specific part.
(nosave_low_regs, renesas, trapa_handler): Document SH specific
attributes.
(sp_switch, trap_exit): Add to index.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192479
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Mon, 15 Oct 2012 21:59:21 +0000 (21:59 +0000)]
PR target/34777
* gcc.target/sh/torture/sh-torture.exp: New.
* gcc.target/sh/torture/pr34777.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192478
138bc75d-0d04-0410-961f-
82ee72b054a4
doko [Mon, 15 Oct 2012 21:12:23 +0000 (21:12 +0000)]
gcc/
2012-10-15 Matthias Klose <doko@ubuntu.com>
* config.gcc: Match arm*-*-linux-* for ARM Linux/GNU.
* doc/install.texi: Use arm-*-*linux-* instead of arm-*-*linux-gnueabi.
gcc/testsuite/
2012-10-15 Matthias Klose <doko@ubuntu.com>
* lib/target-supports.exp (check_profiling_available): Match
arm*-*-linux-* for ARM Linux/GNU.
* g++.dg/torture/predcom-1.C: Match arm*-*-linux-* for ARM Linux/GNU.
* gfortran.dg/enum_10.f90: Likewise.
* gfortran.dg/enum_9.f90: Likewise.
* gcc.target/arm/synchronize.c: Likewise.
* g++.old-deja/g++.jason/enum6.C: Likewise.
* g++.old-deja/g++.other/enum4.C: Likewise.
* g++.old-deja/g++.law/enum9.C: Likewise.
gcc/ada/
2012-10-15 Matthias Klose <doko@ubuntu.com>
* gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for
ARM Linux/GNU.
libgcc/
2012-10-15 Matthias Klose <doko@ubuntu.com>
* config.host: Match arm*-*-linux-* for ARM Linux/GNU.
libstdc++-v3/
2012-10-15 Matthias Klose <doko@ubuntu.com>
* configure.host: Match arm*-*-linux-* for ARM Linux/GNU.
* testsuite/20_util/make_signed/requirements/typedefs-2.cc: Likewise.
* testsuite/20_util/make_unsigned/requirements/typedefs-2.cc: Likewise.
libjava/
2012-10-15 Matthias Klose <doko@ubuntu.com>
* configure.ac: Match arm*-*-linux-* for ARM Linux/GNU.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192475
138bc75d-0d04-0410-961f-
82ee72b054a4
burnus [Mon, 15 Oct 2012 20:08:57 +0000 (20:08 +0000)]
2012-10-15 Tobias Burnus <burnus@net-b.de>
* files.c (read_file_guts, _cpp_save_file_entries): Free memory
before returning.
* lex.c (warn_about_normalization): Ditto.
* mkdeps.c (deps_save): Ditto.
* pch.c (cpp_valid_state): Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192474
138bc75d-0d04-0410-961f-
82ee72b054a4
rsandifo [Mon, 15 Oct 2012 19:58:03 +0000 (19:58 +0000)]
gcc/testsuite/
* g++.dg/tls/thread_local-cse.C: Move dg-do line.
* g++.dg/tls/thread_local-wrap4.C: Require fpic.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192473
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 15 Oct 2012 19:18:15 +0000 (19:18 +0000)]
2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
* Fix typo in ChangeLog entry.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192472
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 15 Oct 2012 19:15:48 +0000 (19:15 +0000)]
/cp
2012-10-15 Alexandre Oliva <aoliva@redhat.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR c++/17805
* call.c (build_new_op): Filter out operator functions that don't
satisfy enum-conversion match requirements.
/testsuite
2012-10-15 Alexandre Oliva <aoliva@redhat.com>
Paolo Carlini <paolo.carlini@oracle.com>
PR c++/17805
* g++.dg/overload/operator6.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192471
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 15 Oct 2012 19:13:41 +0000 (19:13 +0000)]
/cp
2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50080 (again)
* parser.c (cp_parser_optional_template_keyword): When -pedantic
and C++98 mode restore pre-Core/468 behavior.
/testsuite
2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50080 (again)
* g++.dg/parse/tmpl-outside2.C: Tweak, error in C++98.
* g++.dg/parse/tmpl-outside1.C: Likewise.
* g++.dg/template/qualttp18.C: Likewise.
* g++.old-deja/g++.pt/memtemp87.C: Likewise.
* g++.old-deja/g++.pt/overload13.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192470
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Mon, 15 Oct 2012 19:10:52 +0000 (19:10 +0000)]
* testsuite/ChangeLog: Missing from my previous commit.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192469
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Mon, 15 Oct 2012 18:42:03 +0000 (18:42 +0000)]
* config/i386/sse.md (UNSPEC_MOVU): Remove.
(UNSPEC_LOADU): New.
(UNSPEC_STOREU): Ditto.
(<sse>_movu<ssemodesuffix><avxsizesuffix>): Split to ...
(<sse>_loadu<ssemodesuffix><avxsizesuffix>): ... this and ...
(<sse>_storeu<ssemodesuffix><avxsizesuffix>) ... this.
(<sse2>_movdqu<avxsizesuffix>): Split to ...
(<sse2>_loaddqu<avxsizesuffix>): ... this and ...
(<sse2>_storedqu<avxsizesuffix>): ... this.
(*sse4_2_pcmpestr_unaligned): Update.
(*sse4_2_pcmpistr_unaligned): Ditto.
* config/i386/i386.c (ix86_avx256_split_vector_move_misalign): Use
gen_avx_load{dqu,ups,upd}256 to load from unaligned memory and
gen_avx_store{dqu,ups,upd}256 to store to unaligned memory.
(ix86_expand_vector_move_misalign): Use gen_sse_loadups or
gen_sse2_load{dqu,upd} to load from unaligned memory and
gen_sse_loadups or gen_sse2_store{dqu,upd}256 to store to
unaligned memory.
(struct builtin_description bdesc_spec) <IX86_BUILTIN_LOADUPS>:
Use CODE_FOR_sse_loadups.
<IX86_BUILTIN_LOADUPD>: Use CODE_FOR_sse2_loadupd.
<IX86_BUILTIN_LOADDQU>: Use CODE_FOR_sse2_loaddqu.
<IX86_BUILTIN_STOREUPS>: Use CODE_FOR_sse_storeups.
<IX86_BUILTIN_STOREUPD>: Use CODE_FOR_sse2_storeupd.
<IX86_BUILTIN_STOREDQU>: Use CODE_FOR_sse2_storedqu.
<IX86_BUILTIN_LOADUPS256>: Use CODE_FOR_avx_loadups256.
<IX86_BUILTIN_LOADUPD256>: Use CODE_FOR_avx_loadupd256.
<IX86_BUILTIN_LOADDQU256>: Use CODE_FOR_avx_loaddqu256.
<IX86_BUILTIN_STOREUPS256>: Use CODE_FOR_avx_storeups256.
<IX86_BUILTIN_STOREUPD256>: Use CODE_FOR_avx_storeupd256.
<IX86_BUILTIN_STOREDQU256>: Use CODE_FOR_avx_storedqu256.
testsuite/ChangeLog:
* gcc.target/i386/avx256-unaligned-load-1.c: Update asm scan patterns.
* gcc.target/i386/avx256-unaligned-load-2.c: Ditto.
* gcc.target/i386/avx256-unaligned-load-3.c: Ditto.
* gcc.target/i386/avx256-unaligned-load-4.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-1.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-2.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-3.c: Ditto.
* gcc.target/i386/avx256-unaligned-store-4.c: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192468
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Mon, 15 Oct 2012 16:47:52 +0000 (16:47 +0000)]
/cp
2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50080
* parser.c (cp_parser_optional_template_keyword): Implement
Core/468, allow outside template.
/testsuite
2012-10-15 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/50080
* g++.dg/parse/tmpl-outside2.C: New.
* g++.dg/parse/tmpl-outside1.C: Adjust.
* g++.dg/template/qualttp18.C: Likewise.
* g++.old-deja/g++.pt/memtemp87.C: Likewise.
* g++.old-deja/g++.pt/overload13.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192465
138bc75d-0d04-0410-961f-
82ee72b054a4
dodji [Mon, 15 Oct 2012 16:06:42 +0000 (16:06 +0000)]
Cleanup comments in alias.c
While reading alias.c, it seemed to me that some comments could use
some cleanups.
gcc/
* alias.c: Cleanup comments.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192463
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Mon, 15 Oct 2012 14:38:04 +0000 (14:38 +0000)]
2012-10-15 Marc Glisse <marc.glisse@inria.fr>
PR tree-optimization/54915
gcc/
* tree-ssa-forwprop.c (simplify_vector_constructor): Check
argument's type.
gcc/testsuite/
* gcc.dg/tree-ssa/pr54915.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192461
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 15 Oct 2012 14:22:37 +0000 (14:22 +0000)]
2012-10-15 Richard Biener <rguenther@suse.de>
* data-streamer.h (bp_pack_string_with_length): New function.
(bp_pack_string): Likewise.
(bp_unpack_indexed_string): Likewise.
(bp_unpack_string): Likewise.
* data-streamer-out.c (bp_pack_string_with_length): Likewise.
(bp_pack_string): Likewise.
* data-streamer-in.c (bp_unpack_indexed_string): Likewise.
(bp_unpack_string): Likewise.
* tree-streamer-out.c (pack_ts_translation_unit_decl_value_fields):
Pack TRANSLATION_UNIT_LANGUAGE here, not ...
(write_ts_translation_unit_decl_tree_pointers): ... here. Remove.
(streamer_pack_tree_bitfields): Adjust.
(streamer_write_tree_body): Likewise.
* tree-streamer-in.c (unpack_ts_translation_unit_decl_value_fields):
Unpack TRANSLATION_UNIT_LANGUAGE here, not ...
(lto_input_ts_translation_unit_decl_tree_pointers): ... here. Remove.
(unpack_value_fields): Adjust.
(streamer_read_tree_body): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192460
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Mon, 15 Oct 2012 13:10:30 +0000 (13:10 +0000)]
* config/gthr.m4: New. Define GCC_AC_THREAD_HEADER.
* libgcc/configure: Regenerate.
* libgcc/configure.ac: Replace code with GCC_AC_THREAD_HEADER use.
* libstdc++-v3/Makefile.in: Regenerate.
* libstdc++-v3/acinclude.m4: Replace code with GCC_AC_THREAD_HEADER use.
* libstdc++-v3/configure: Regenerate.
* libstdc++-v3/doc/Makefile.in: Regenerate.
* libstdc++-v3/include/Makefile.am: Regenerate.
* libstdc++-v3/include/Makefile.in: Rename variable.
* libstdc++-v3/libsupc++/Makefile.in: Regenerate.
* libstdc++-v3/po/Makefile.in: Regenerate.
* libstdc++-v3/python/Makefile.in: Regenerate.
* libstdc++-v3/src/Makefile.in: Regenerate.
* libstdc++-v3/src/c++11/Makefile.in: Regenerate.
* libstdc++-v3/src/c++98/Makefile.in: Regenerate.
* libstdc++-v3/testsuite/Makefile.in: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192458
138bc75d-0d04-0410-961f-
82ee72b054a4
amylaar [Mon, 15 Oct 2012 12:44:40 +0000 (12:44 +0000)]
* genoutput.c (process_template): Process '*' in '@' alternatives.
* doc/md.texi (node Output Statement): Provide example for the above.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192457
138bc75d-0d04-0410-961f-
82ee72b054a4
amylaar [Mon, 15 Oct 2012 12:38:56 +0000 (12:38 +0000)]
Update Copyright years.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192456
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 15 Oct 2012 11:22:49 +0000 (11:22 +0000)]
2012-10-15 Richard Guenther <rguenther@suse.de>
PR tree-optimization/54920
* tree-ssa-pre.c (create_expression_by_pieces): Properly
allocate temporary storage for all NARY elements.
* gcc.dg/torture/pr54920.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192454
138bc75d-0d04-0410-961f-
82ee72b054a4
amylaar [Mon, 15 Oct 2012 11:20:02 +0000 (11:20 +0000)]
* web.c (union_match_dups): Properly handle OP_INOUT match_dups.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192453
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Mon, 15 Oct 2012 10:48:17 +0000 (10:48 +0000)]
* expr.c (expand_expr_real_1) <VIEW_CONVERT_EXPR>: Do not unnecessarily
copy the object in the MEM_P case.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192452
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Mon, 15 Oct 2012 10:39:59 +0000 (10:39 +0000)]
2012-10-15 Richard Guenther <rguenther@suse.de>
* tree-streamer-out.c (streamer_pack_tree_bitfields): Back
BINFO_BASE_ACCESSES and CONSTRUCTOR lengths here.
(streamer_write_chain): Write TREE_CHAIN as null-terminated list.
(write_ts_exp_tree_pointers): Adjust.
(write_ts_binfo_tree_pointers): Likewise.
(write_ts_constructor_tree_pointers): Likewise.
* tree-streamer-in.c (streamer_read_chain): Read TREE_CHAIN as
null-terminated list.
(unpack_value_fields): Unpack BINFO_BASE_ACCESSES and
CONSTRUCTOR lengths and materialize the arrays.
(lto_input_ts_exp_tree_pointers): Adjust.
(lto_input_ts_binfo_tree_pointers): Likewise.
(lto_input_ts_constructor_tree_pointers): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192451
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Mon, 15 Oct 2012 07:32:13 +0000 (07:32 +0000)]
PR target/54908
* libsupc++/atexit_thread.cc: Rewrite to keep the cleanup list
with get/setspecific. Destroy the key on dlclose.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192449
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Mon, 15 Oct 2012 07:32:03 +0000 (07:32 +0000)]
Implement C++11 inheriting constructors.
* cp-tree.h (cpp0x_warn_str): Add CPP0X_INHERITING_CTORS.
(DECL_INHERITED_CTOR_BASE, SET_DECL_INHERITED_CTOR_BASE): New.
(special_function_kind): Add sfk_inheriting_constructor.
* class.c (add_method): An inheriting ctor is hidden by a
user-declared one.
(one_inheriting_sig, one_inherited_ctor): New.
(add_implicitly_declared_members): Handle inheriting ctors.
* error.c (maybe_warn_cpp0x): Handle CPP0X_INHERITING_CTORS.
* init.c (emit_mem_initializers): Don't set LOOKUP_DEFAULTED
for an inheriting constructor.
* method.c (type_has_trivial_fn): Handle sfk_inheriting_constructor.
(type_set_nontrivial_flag): Likewise.
(add_one_base_init): Split out from...
(do_build_copy_constructor): ...here. Handle inheriting constructors.
(locate_fn_flags): Handle a list of arg types.
(synthesized_method_walk): Handle inheriting constructors.
(maybe_explain_implicit_delete): Likewise.
(deduce_inheriting_ctor): New.
(implicitly_declare_fn): Handle inheriting constructors.
* name-lookup.c (push_class_level_binding_1): An inheriting constructor
does not declare the base's name.
(do_class_using_decl): Allow inheriting constructors.
* pt.c (template_parms_to_args): Split from current_template_args.
(add_inherited_template_parms): New.
(tsubst_decl): Handle inheriting constructors.
* tree.c (special_function_p): Handle inheriting constructors.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192448
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Mon, 15 Oct 2012 00:18:17 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192445
138bc75d-0d04-0410-961f-
82ee72b054a4
hp [Sun, 14 Oct 2012 20:59:12 +0000 (20:59 +0000)]
* config/mmix/mmix.c (mmix_opposite_regno): Handle the
return-value register too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192441
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Sun, 14 Oct 2012 19:30:59 +0000 (19:30 +0000)]
PR rtl-optimization/38711
* df.h (df_get_live_out, df_get_live_in): Make static inline functions.
* df-problems.c (df_get_live_out, df_get_live_in): Moved to df.h.
* ira-lives.c (process_bb_node_lives): Use df_get_live_out instead of
DF_LR_OUT.
* ira-build.c (create_bb_allocnos): Likewise.
(create_loop_allocnos): Likewise, and use df_get_live_in instead of
DF_LR_IN.
* ira-emit.c (generate_edge_moves): Likewise.
(add_ranges_and_copies): Likewise.
* ira-color.c (ira_loop_edge_freq): Use df_get_live_out instead of
DF_LR_OUT, and df_get_live_in instead of DF_LR_IN.
* ira.c (mark_elimination): Update DF_LR and DF_LIVE.
(build_insn_chain): Use df_get_live_out instead of DF_LR_OUT.
(do_reload): Remove the DF_LIVE problem for -O1.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192440
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Sun, 14 Oct 2012 19:29:18 +0000 (19:29 +0000)]
gcc/
PR rtl-optimization/54919
* loop-unroll.c (struct var_to_expand): Remove accum_pos field.
(analyze_insn_to_expand_var): Do not record accum_pos.
(expand_var_during_unrolling): Use validate_replace_rtx_group to
perform replacement of all references to SET_DEST (set) with the
new register, including references in REG_EQUAL notes.
(insert_var_expansion_initialization): Insert initializatio insns
at the bottom of the pre-header of the loop.
testsuite/
PR rtl-optimization/54919
* gcc.dg/pr54919.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192439
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Sun, 14 Oct 2012 18:24:32 +0000 (18:24 +0000)]
2012-10-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53581
* g++.dg/template/crash113.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192438
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 14 Oct 2012 16:25:49 +0000 (16:25 +0000)]
* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
predict loops with multiple exits realistically.
* cfgloopanal.c (single_likely_exit): New function.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192434
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sun, 14 Oct 2012 16:18:26 +0000 (16:18 +0000)]
* tree-ssa-loop-niter.c (estimate_numbers_of_iterations_loop): Do not
predict loops with multiple exits realistically.
* cfgloopanal.c (single_likely_exit): New function.
* gcc.dg/unroll_5.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192433
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Sun, 14 Oct 2012 13:40:55 +0000 (13:40 +0000)]
2012-10-14 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52643
* g++.dg/opt/pr52643.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192432
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sun, 14 Oct 2012 12:50:45 +0000 (12:50 +0000)]
* config/alpha/alpha.md: Remove empty predicates and/or constraints.
* config/alpha/sync.md: Ditto.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192431
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sun, 14 Oct 2012 00:18:17 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192430
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 13 Oct 2012 21:39:29 +0000 (21:39 +0000)]
* config/alpha/alpha.md (I24MODE): New mode iterator.
(any_divmod): New code iterator.
(<code>si3): Macroize expander from {div,mod,udiv,umod}si3 using
any_divmod code iterator.
(<code>si3): Macroize expander from {div,mod,udiv,umod}di3 using
any_divmod code iterator.
(extendqi<mode>2): Macroize insn from extendqi{hi,si}2 using
I24MODE mode iterator.
(unaligned_store<mode>): Macroize expander from unaligned_store{qi,hi}
using I12MODE mode iterator.
(mov<mode>): Macroize expander from mov{qi,hi} using
I12MODE mode iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192427
138bc75d-0d04-0410-961f-
82ee72b054a4
ebotcazou [Sat, 13 Oct 2012 20:22:07 +0000 (20:22 +0000)]
PR rtl-optimization/54871
* loop-iv.c (simplify_using_initial_values): When scanning previous
basic blocks, prune the recorded conditions if the current insn was
not used to make a replacement.
* loop-unroll.c (decide_unroll_constant_iterations): Clean up message.
(unroll_loop_constant_iterations): Clarify head comment.
(decide_unroll_runtime_iterations): Clean up message.
(unroll_loop_runtime_iterations): Clarify head comment.
(decide_peel_simple): Clean up message.
(peel_loop_simple): Clarify head comment.
(decide_unroll_stupid): Clean up message.
(unroll_loop_stupid): Clarify head comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192426
138bc75d-0d04-0410-961f-
82ee72b054a4
schwab [Sat, 13 Oct 2012 18:41:08 +0000 (18:41 +0000)]
PR gcov-profile/44728
* gcov.c (create_file_names): When stripping extension only look
at base name.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192425
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Sat, 13 Oct 2012 16:50:03 +0000 (16:50 +0000)]
* loop-iv.c (determine_max_iter): Fix handling of AND.
(iv_number_of_iterations): Record upper bounds as unsigned
values.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192424
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Sat, 13 Oct 2012 13:21:34 +0000 (13:21 +0000)]
* ira.c (ira): Set current_loops to &ira_loops before recording
loop exits. Release recorded exits and loops early.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192423
138bc75d-0d04-0410-961f-
82ee72b054a4
cltang [Sat, 13 Oct 2012 09:28:26 +0000 (09:28 +0000)]
2012-10-13 Chung-Lin Tang <cltang@codesourcery.com>
* builtins.c (expand_builtin_set_thread_pointer): Use
create_input_operand() instead of create_fixed_operand().
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192422
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Sat, 13 Oct 2012 08:36:21 +0000 (08:36 +0000)]
* config/alpha/alpha.md (FMODE): New mode iterator.
(modesuffix): Handle SF and DF modes.
(opmode): New mode attribute.
(abs<mode>2): Macroize insn from abs{sf,df}2 using FMODE mode iterator.
(*nabs<mode>2): Macroize insn from *nabs{sf,df}2 using
FMODE mode iterator.
(neg<mode>2): Macroize insn from neg{sf,df}2 using FMODE mode iterator.
(copysign<mode>3): Macroize insn from copysign{sf,df}3 using
FMODE mode iterator.
(*ncopysign<mode>3): Macroize insn from *ncopysign{sf,df}3 using
FMODE mode iterator.
(*add<mode>3_ieee): Macroize insn from *add{sf,df}_ieee using
FMODE mode iterator.
(add<mode>3): Macroize insn from add{sf,df}3 using FMODE mode iterator.
(*sub<mode>3_ieee): Macroize insn from *sub{sf,df}3_ieee using
FMODE mode iterator.
(sub<mode>3): Macroize insn from sub{sf,df}3 using FMODE mode iterator.
(*mul<mode>3_ieee): Macroize insn from *mul{sf,df}3_ieee using
FMODE mode iterator.
(mul<mode>3): Macroize insn from mul{sf,df}3 using FMODE mode iterator.
(*div<mode>3_ieee): Macroize insn from *div{sf,df}3_ieee using
FMODE mode iterator.
(div<mode>3): Macroize insn from div{sf,df}3 using FMODE mode iterator.
(*sqrt<mode>2_ieee): Macroize insn from *sqrt{sf,df}2_ieee using
FMODE mode iterator.
(sqrt<mode>2): Macroize insn from sqrt{sf,df}2
using FMODE mode iterator.
(*mov<mode>cc_internal): Macroize insn from *mov{sf,df}cc_internal
using FMODE mode iterator.
(mov<mode>cc): Macroize expander from mov{sf,df}cc
using FMODE mode iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192421
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Sat, 13 Oct 2012 00:18:42 +0000 (00:18 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192420
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Fri, 12 Oct 2012 23:22:48 +0000 (23:22 +0000)]
PR target/54602
* config/sh/sh.md: Correct define_delay for return insns.
(*movsi_pop): Delete.
PR target/54602
* gcc.target/sh/pr54602-1.c: New.
* gcc.target/sh/pr54602-2.c: New.
* gcc.target/sh/pr54602-3.c: New.
* gcc.target/sh/pr54602-4.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192417
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Fri, 12 Oct 2012 23:19:27 +0000 (23:19 +0000)]
PR target/54680
* config/sh/sh.c (sh_fsca_sf2int, sh_fsca_int2sf): Fix swapped
comments.
* config/sh/predicates.md (fpul_operand): Add comment.
(fpul_fsca_operand, fsca_scale_factor): New predicates.
* config/sh/sh.md (fsca): Move below sincossf3 expander. Convert to
insn_and_split. Use fpul_fsca_operand and fsca_scale_factor predicates.
Simplify fpul operand in splitter.
PR target/54680
* gcc.target/sh/pr54680.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192416
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 12 Oct 2012 20:38:19 +0000 (20:38 +0000)]
* tree-ssa-threadupdate.c (def_split_header_continue_p): Do not
escape the loop.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192414
138bc75d-0d04-0410-961f-
82ee72b054a4
hubicka [Fri, 12 Oct 2012 20:36:09 +0000 (20:36 +0000)]
* web.c (web_main): Do not set DF_RD_PRUNE_DEAD_DEFS flag.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192413
138bc75d-0d04-0410-961f-
82ee72b054a4
janis [Fri, 12 Oct 2012 19:45:25 +0000 (19:45 +0000)]
* gcc.dg/vect/pr48765.c: Skip for conflicting options, don't
specify -m64.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192412
138bc75d-0d04-0410-961f-
82ee72b054a4
janis [Fri, 12 Oct 2012 19:36:45 +0000 (19:36 +0000)]
* gcc.target/arm/div64-unwinding.c: Skip, don't xfail, for
GNU/Linux.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192410
138bc75d-0d04-0410-961f-
82ee72b054a4
janis [Fri, 12 Oct 2012 19:33:28 +0000 (19:33 +0000)]
* lib/target-supports.exp (check_effective_target_arm_hard_vfp_ok):
Return 0 if already specifying -mfloat-abi other than hard.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192409
138bc75d-0d04-0410-961f-
82ee72b054a4
janis [Fri, 12 Oct 2012 18:40:54 +0000 (18:40 +0000)]
2012-10-12 Joe Seymour <jseymour@codesourcery.com>
* gcc.dg/pr53060.c: Prune irrelevant warning.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192407
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Fri, 12 Oct 2012 18:23:03 +0000 (18:23 +0000)]
PR c/54381
* c-common.h (sizeof_pointer_memaccess_warning): Adjust prototype.
* c-common.c (sizeof_pointer_memaccess_warning): Take array of 3
locs and array of 3 trees instead of just single loc and single
sizeof_arg tree. Handle __builtin___*_chk builtins too, and
also stpncpy, bcopy, bcmp, bzero, snprintf and vsnprintf builtins.
For *cmp* builtins that take two sources strings report warnings
about first and second source, not about destination and source.
* c-parser.c (struct c_tree_loc_pair): Removed.
(c_parser_expr_list): Remove struct c_tree_loc_pair * argument,
add location_t * and tree * arguments, fill in array of 3
sizeof_arg trees and corresponding locs.
(c_parser_attributes, c_parser_objc_keywordexpr): Adjust
c_parser_expr_list callers.
(c_parser_postfix_expression_after_primary): Likewise. Pass
array of 3 sizeof_arg trees and locs (corresponding to first
3 arguments) to sizeof_pointer_memaccess_warning.
* semantics.c (finish_call_expr): Pass array of 3 sizeof_arg
trees and locs (corresponding to first 3 arguments) to
sizeof_pointer_memaccess_warning.
* c-c++-common/Wsizeof-pointer-memaccess1.c: New test.
* c-c++-common/Wsizeof-pointer-memaccess2.c: New test.
* gcc.dg/Wsizeof-pointer-memaccess1.c: New test.
* gcc.dg/torture/Wsizeof-pointer-memaccess1.c: Test also stpncpy.
Adjust expected wording of warnings for *cmp* builtins.
* g++.dg/torture/Wsizeof-pointer-memaccess1.C: Likewise.
* g++.dg/torture/Wsizeof-pointer-memaccess2.C: Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192406
138bc75d-0d04-0410-961f-
82ee72b054a4
dnovillo [Fri, 12 Oct 2012 15:17:17 +0000 (15:17 +0000)]
Add more C++ support in gengtype.
This patch combines the changes from
http://gcc.gnu.org/ml/gcc-patches/2012-08/msg02016.html with other
additions to support C++ inside GTY'd structures.
The main changes wrt Aaron's original patch are:
- Support for function declarations inside classes.
- Support scoping in identifiers. This does not mean that gengtype
supports scopes, it just knows that 'Foo::id' is a single entity.
- Explicit non-support for typedef and enum inside class/struct.
Since gengtype does not really know about scopes, it cannot
understand these types, but it knows enough to recognize and reject
them. GTY'd struct/class that need to typedef their own types
should use GTY((user)).
- Documentation on what is and is not supported.
There is one check I needed to remove that gave me some trouble.
When a ctor is detected, we have already parsed the name of the
ctor as a type, which is then registered in the list of structures.
We go on to recognize it as a ctor *after* the type has been
registered. We reject the field in declarator() and it is never
added to the list of fields for the class.
However, when we reach the end of the class, we find that the
type we created while parsing the ctor has line number
information in it (the line where the ctor was) and gengtype
thinks that it is a duplicate structure definition.
I took out this check for two reasons: (a) It is actually
unnecessary because if there were really duplicate definitions of
this structure, the code would not compile, and (b) all the other
alternatives required making the parser much more convoluted and
I'm trying hard not to make gengtype parser too smart.
2012-10-12 Aaron Gray <aaronngray.lists@gmail.com>
Diego Novillo <dnovillo@google.com>
* gengtype-lex.l: Support for C++ single line comments.
Support for classes.
(CXX_KEYWORD): New. Support C++ keywords inline, public,
protected, private, template, operator, friend, &, ~.
(TYPEDEF): New. Support typedef.
* gengtype-parser.c: updated 'token_names[]'
(direct_declarator): Add support for parsing functions
and ctors.
2012-10-12 Diego Novillo <dnovillo@google.com>
* doc/gty.texi: Document C++ limitations in gengtype.
* gengtype-lex.l (CID): Rename from ID.
(ID): Include scoping '::' as part of the identifier name.
* gengtype-parse.c (token_names): Update.
(token_value_format): Update.
(consume_until_eos): Rename from consume_until_semi.
Remove unused argument IMMEDIATE. Update all callers.
Also consider '}' as a finalizer.
(consume_until_comma_or_eos): Rename from
consume_until_comma_or_semi.
Remove unused argument IMMEDIATE. Update all callers.
Also consider '}' as a finalizer.
(direct_declarator): Add documentation on ctor support.
Add argument IN_STRUCT.
If the token following ID is a '(', consider ID a
function and return NULL.
If the token following '(' is not a '*', and IN_STRUCT is
true, conclude that this is a ctor and return NULL.
If the token is IGNORABLE_CXX_KEYWORD, return NULL.
(inner_declarator): Add argument IN_STRUCT.
Update all callers.
(declarator): Add argument IN_STRUCT with default value
false. Update all callers.
(type): Document argument NESTED.
Skip over C++ inheritance specifiers.
If a token TYPEDEF is found, emit an error.
If an enum is found inside a class/structure, emit an
error.
(typedefs, structures, param_structs, variables): Initialize.
(new_structure): Do not complain about duplicate
structures if S has a line location set.
* gengtype-state.c (write_state_type): Remove default
handler. Add handler for TYPE_NONE.
(read_state_scalar_char_type):
* gengtype.c: Fix spacing.
* gengtype.h (enum gty_token): Add name. Add token
IGNORABLE_CXX_KEYWORD.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192405
138bc75d-0d04-0410-961f-
82ee72b054a4
emsr [Fri, 12 Oct 2012 15:16:29 +0000 (15:16 +0000)]
Forgot the CL entry for the Hoyt and arcsine distributions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192404
138bc75d-0d04-0410-961f-
82ee72b054a4
emsr [Fri, 12 Oct 2012 15:15:21 +0000 (15:15 +0000)]
dd the Hoyt and the arcsine distributions as extensions.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192403
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 12 Oct 2012 14:38:11 +0000 (14:38 +0000)]
/cp
2012-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/24449
* decl.c (grokfndecl): When checking for ::main declarations
use PROCESSING_REAL_TEMPLATE_DECL_P().
/testsuite
2012-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/24449
* g++.dg/parse/friend-main.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192402
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Fri, 12 Oct 2012 14:14:37 +0000 (14:14 +0000)]
2012-10-12 Marc Glisse <marc.glisse@inria.fr>
PR c++/53055
gcc/c-family/
* c-common.h (enum ref_operator) [RO_ARROW_STAR]: New.
gcc/cp/
* call.c (build_new_op_1): Pass RO_ARROW_STAR to cp_build_indirect_ref.
* typeck.c (cp_build_indirect_ref): Handle RO_ARROW_STAR.
gcc/testsuite/
* g++.dg/pr53055.C: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192401
138bc75d-0d04-0410-961f-
82ee72b054a4
cltang [Fri, 12 Oct 2012 12:47:53 +0000 (12:47 +0000)]
2012-10-12 Chung-Lin Tang <cltang@codesourcery.com>
* config/arm/arm.md (get_thread_pointersi): Moved to place with
other TLS related patterns.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192399
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 12 Oct 2012 12:14:48 +0000 (12:14 +0000)]
2012-10-12 Richard Biener <rguenther@suse.de>
* tree-streamer-out.c (pack_ts_target_option): Rename from ...
(write_ts_target_option): ... this.
(pack_ts_optimization): Rename from ...
(write_ts_optimization): ... this.
(streamer_pack_tree_bitfields): Pack them in the bitfield section ...
(streamer_write_tree_body): ... not here.
* tree-streamer-in.c (unpack_ts_target_option): Rename from ...
(lto_input_ts_target_option): ... this.
(unpack_ts_optimization): Rename from ...
(lto_input_ts_optimization): ... this.
(unpack_value_fields): Unpack them from the bitfield section ...
(streamer_read_tree_body): ... not from here.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192398
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 12 Oct 2012 12:14:03 +0000 (12:14 +0000)]
2012-10-12 Richard Biener <rguenther@suse.de>
PR lto/54898
* lto.c (gimple_types_compatible_p_1): Also compare
TYPE_MAIN_VARIANT.
(iterative_hash_gimple_type): Also hash TYPE_MAIN_VARIANT.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192397
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Fri, 12 Oct 2012 11:32:02 +0000 (11:32 +0000)]
* config/alpha/alpha.md (vecmodesuffix): New mode attribute.
(modesuffix): Handle V8QI and V4HI modes.
(any_maxmin): New code iterator.
(maxmin): New code attribute.
(<code><mode>3): Macroize insn from {smax,smin,umax,umin}{qi,hi}3
using any_maxmin code iterator and I12MODE mode iterator.
(<code><mode>3): Macroize insn from {smax,smin,umax,umin}{v8qi,v4hi}3
using any_maxmin code iterator and VEC12 mode iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192396
138bc75d-0d04-0410-961f-
82ee72b054a4
kyukhin [Fri, 12 Oct 2012 10:57:06 +0000 (10:57 +0000)]
Revert r192297.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192394
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Fri, 12 Oct 2012 09:20:00 +0000 (09:20 +0000)]
2012-10-12 Marc Glisse <marc.glisse@inria.fr>
* optabs.c (vector_compare_rtx): Change prototype.
(expand_vec_cond_expr): Handle VEC_COND_EXPR whose first operand
is not a comparison.
* gimplify.c (gimplify_expr): Handle VEC_COND_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192393
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Fri, 12 Oct 2012 08:30:00 +0000 (08:30 +0000)]
2012-10-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/52744
* g++.dg/cpp0x/pr52744.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192392
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Fri, 12 Oct 2012 08:16:17 +0000 (08:16 +0000)]
2012-10-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/40453
* interface.c (check_dummy_characteristics): Recursively check dummy
procedures.
2012-10-12 Janus Weil <janus@gcc.gnu.org>
PR fortran/40453
* gfortran.dg/dummy_procedure_9.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192391
138bc75d-0d04-0410-961f-
82ee72b054a4
rguenth [Fri, 12 Oct 2012 08:00:29 +0000 (08:00 +0000)]
2012-10-12 Richard Biener <rguenther@suse.de>
PR tree-optimization/54894
* tree-vect-stmts.c (get_vectype_for_scalar_type_and_size):
Handle over-aligned scalar types properly.
* gcc.dg/torture/pr54894.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192390
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Fri, 12 Oct 2012 00:45:36 +0000 (00:45 +0000)]
PR target/54760
* config/sh/sh.c (bdesc): Remove thread pointer built-ins.
* config/sh/sh.md (get_thread_pointer, set_thread_pointer): Append mode
name 'si'.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192388
138bc75d-0d04-0410-961f-
82ee72b054a4
olegendo [Fri, 12 Oct 2012 00:41:23 +0000 (00:41 +0000)]
PR target/51244
* config/sh/sh.md (negsi_cond, negdi_cond, stack_protect_test): Remove
get_t_reg_rtx when invoking gen_branch_true or gen_branch_false.
(*zero_extend<mode>si2_compact): Convert to insn_and_split. Convert
zero extensions of T bit stores to reg moves in splitter. Remove
obsolete unnamed peephole2 that caught zero extensions after negc T bit
stores.
(*branch_true_eq, *branch_false_ne): Delete.
(branch_true, branch_false): Convert insn to expander. Move actual
insn logic to...
(*cbranch_t): ...this new insn_and_split. Try to find preceding
redundant T bit stores and tests and combine them with the conditional
branch if possible in the splitter.
(movrt_xor, *movt_movrt): New insn_and_split.
* config/sh/predicates.md (cbranch_treg_value): New predicate.
* config/sh/sh-protos.h (sh_eval_treg_value): Forward declare...
* config/sh/sh.c (sh_eval_treg_value): ...this new function.
(expand_cbranchsi4, expand_cbranchdi4): Remove get_t_reg_rtx
when invoking gen_branch_true or gen_branch_false.
PR target/51244
* gcc.target/sh/pr51244-13.c: New.
* gcc.target/sh/pr51244-14.c: New.
* gcc.target/sh/pr51244-15.c: New.
* gcc.target/sh/pr51244-16.c: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192387
138bc75d-0d04-0410-961f-
82ee72b054a4
gccadmin [Fri, 12 Oct 2012 00:19:24 +0000 (00:19 +0000)]
Daily bump.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192386
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 11 Oct 2012 23:37:48 +0000 (23:37 +0000)]
2012-10-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/51878
* g++.dg/cpp0x/decltype45.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192381
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 11 Oct 2012 22:18:27 +0000 (22:18 +0000)]
2012-10-12 Paolo Carlini <paolo.carlini@oracle.com>
* include/bits/hashtable_policy.h: Revert libstdc++/53067 quick
hacks thanks to the resolution of c++/51213.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192380
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Thu, 11 Oct 2012 20:44:30 +0000 (20:44 +0000)]
* config/alpha/alpha.md (IMODE): New mode iterator.
(I124MODE): Ditto.
(I248MODE): Ditto.
(modesuffix): Handle QI and HI modes.
(zero_extendqi<mode>2): Macroize insn from zero_extendqi{hi,si,di}2
using I248MODE mode iterator.
(zero_extendhi<mode>2): Macroize insn from zero_extendhi{si,di}2
using I48MODE mode iterator.
(andnot<mode>3): Macroize insn from andnot{si,di}3 using
I48MODE mode iterator.
(ins<modesuffix>l_const): Macroize insn from ins{b,w,l}l_const
using I248MODE mode iterator.
(ins<modesuffix>l): Macroize insn from ins{b,w,l}l
using I248MODE mode iterator.
(*mov<mode>cc_internal): Macroize insn from
*mov{qi,hi,si,di}cc_internal using IMODE mode iterator.
(*mov<mode>cc_lbc): Macroize insn from
*mov{qi,hi,si,di}cc_lbc using IMODE mode iterator.
(*mov<mode>cc_lbs): Macroize insn from
*mov{qi,hi,si,di}cc_lbs using IMODE mode iterator.
(mov<mode>cc): Macroize insn from mov{si,di}cc_lbs
using I48MODE mode iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192379
138bc75d-0d04-0410-961f-
82ee72b054a4
steven [Thu, 11 Oct 2012 18:54:47 +0000 (18:54 +0000)]
* ira-build.c (ira_loop_tree_body_rev_postorder): New function.
(ira_traverse_loop_tree): Traverse a loop's basic blocks in
reverse post-order of the reversed control-flow direction.
* ira-conflicts.c (ira_build_conflicts): Pass add_copies as
the pre-order function to ira_traverse_loop_tree to preserve
the existing semantics.
* ira-lives.c (remove_some_program_points_and_update_live_ranges):
Squeeze out live range chain elements if their program points are
connected.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192378
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 11 Oct 2012 18:40:06 +0000 (18:40 +0000)]
* tree.def (REDUC_PLUS_EXPR): Fix up comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192377
138bc75d-0d04-0410-961f-
82ee72b054a4
jakub [Thu, 11 Oct 2012 18:37:23 +0000 (18:37 +0000)]
* fold-const.c (fold_unary_loc): Handle REDUC_MIN_EXPR,
REDUC_MAX_EXPR and REDUC_PLUS_EXPR.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192376
138bc75d-0d04-0410-961f-
82ee72b054a4
janus [Thu, 11 Oct 2012 17:52:36 +0000 (17:52 +0000)]
2012-10-11 Janus Weil <janus@gcc.gnu.org>
PR fortran/54784
* trans-stmt.c (gfc_trans_allocate): Correctly determine the reference
to the _data component for polymorphic allocation with SOURCE.
2012-10-11 Janus Weil <janus@gcc.gnu.org>
PR fortran/54784
* gfortran.dg/class_allocate_13.f90: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192374
138bc75d-0d04-0410-961f-
82ee72b054a4
jwlemke [Thu, 11 Oct 2012 17:39:26 +0000 (17:39 +0000)]
As suggested here:
http://gcc.gnu.org/ml/gcc-patches/2012-10/msg00283.html
The following are committed as obvious / trivial:
* config/rs6000/predicates.md (zero_fp_constant): Fix comment.
* config/rs6000/rs6000.md (return_pred): Fix null return.
* config/rs6000/rs6000.c (rs6000_emit_set_const): Fix indentation.
(print_operand): Make FALLTHRU obvious.
(output_cbranch): Correct comment.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192373
138bc75d-0d04-0410-961f-
82ee72b054a4
ian [Thu, 11 Oct 2012 16:43:47 +0000 (16:43 +0000)]
* configure.ac: Do not use dl_iterate_phdr on Solaris 10.
* configure: Rebuild.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192371
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Thu, 11 Oct 2012 15:44:54 +0000 (15:44 +0000)]
* config/alpha/alpha.md (DWI): New mode attribute.
(*sadd<modesuffix>): Macroize insn from *saddl and *saddq using
I48MODE mode iterator.
(addv<mode>3): Macroize insn from addvsi3 and addvdi3 using
I48MODE mode iterator.
(neg<mode>2): Macroize insn from negsi2 and negdi2 using
I48MODE mode iterator.
(negv<mode>2): Macroize insn from negvsi2 and negvdi2 using
I48MODE mode iterator.
(sub<mode>3): Macroize insn from subsi3 and subdi3 using
I48MODE mode iterator.
(*ssub<modesuffix>): Macroize insn from *ssubl and *ssubq using
I48MODE mode iterator.
(subv<mode>3): Macroize insn from subvsi3 and subvdi3 using
I48MODE mode iterator.
(mul<mode>3): Macroize insn from mulsi3 and muldi3 using
I48MODE mode iterator.
(mulv<mode>3): Macroize insn from mulvsi3 and mulvdi3 using
I48MODE mode iterator.
(*iornot<mode>3): Macroize insn from *iornotsi3 and *iornotdi3 using
I48MODE mode iterator.
(*xornot<mode>3): Macroize insn from *xornotsi3 and *xornotdi3 using
I48MODE mode iterator.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192370
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 11 Oct 2012 15:13:36 +0000 (15:13 +0000)]
* cp-tree.h (DECL_THUNKS): NULL_TREE for non-virtual functions.
(SET_DECL_THUNKS): New.
* decl.c (duplicate_decls): Adjust.
* method.c (make_thunk): Adjust.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192368
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 11 Oct 2012 15:13:28 +0000 (15:13 +0000)]
* g++.dg/ext/visibility/pragma-override1.C: Fix target markup.
* g++.dg/ext/visibility/pragma-override2.C: Fix target markup.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192367
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 11 Oct 2012 15:13:20 +0000 (15:13 +0000)]
* decl.c (grokdeclarator): Set DECL_GNU_TLS_P for static data
members, too.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192366
138bc75d-0d04-0410-961f-
82ee72b054a4
jason [Thu, 11 Oct 2012 15:13:11 +0000 (15:13 +0000)]
* configure.ac (gcc_cv_as_aix_ref): Fix typo.
* configure: Regenerate.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192365
138bc75d-0d04-0410-961f-
82ee72b054a4
cltang [Thu, 11 Oct 2012 15:05:44 +0000 (15:05 +0000)]
2012-10-11 Chung-Lin Tang <cltang@codesourcery.com>
* builtins.c (expand_builtin_thread_pointer): New.
(expand_builtin_set_thread_pointer): New.
(expand_builtin): Add BUILT_IN_THREAD_POINTER,
BUILT_IN_SET_THREAD_POINTER expand cases.
* builtins.def (BUILT_IN_THREAD_POINTER):
New __builtin_thread_pointer builtin.
(BUILT_IN_SET_THREAD_POINTER):
New __builtin_set_thread_pointer builtin.
* optabs.def (get_thread_pointer,set_thread_pointer):
New standard names.
* doc/md.texi (Standard Names): Document get_thread_pointer and
set_thread_pointer patterns.
* config/alpha/alpha.md (get_thread_pointerdi): Rename from load_tp.
(set_thread_pointerdi): Rename from set_tp.
* config/alpha/alpha.c (alpha_legitimize_address_1): Change
gen_load_tp calls to gen_get_thread_pointerdi.
(alpha_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
ALPHA_BUILTIN_SET_THREAD_POINTER.
(code_for_builtin): Remove CODE_FOR_load_tp, CODE_FOR_set_tp.
(alpha_init_builtins): Remove __builtin_thread_pointer,
__builtin_set_thread_pointer machine-specific builtins.
(alpha_expand_builtin_thread_pointer): Add hook function for
TARGET_EXPAND_BUILTIN_THREAD_POINTER.
(alpha_expand_builtin_set_thread_pointer): Add hook function for
TARGET_EXPAND_BUILTIN_SET_THREAD_POINTER.
(alpha_fold_builtin): Remove ALPHA_BUILTIN_THREAD_POINTER,
ALPHA_BUILTIN_SET_THREAD_POINTER cases.
* config/arm/arm.md (get_thread_pointersi): New pattern.
* config/arm/arm-protos.h (arm_load_tp): Add extern declaration.
* config/arm/arm.c (arm_load_tp): Remove static.
(arm_builtins): Remove ARM_BUILTIN_THREAD_POINTER.
(arm_init_tls_builtins): Remove function.
(arm_init_builtins): Remove call to arm_init_tls_builtins().
(arm_expand_builtin): Remove ARM_BUILTIN_THREAD_POINTER case.
* config/mips/mips.md (get_thread_pointer<mode>): New pattern.
* config/mips/mips-protos.h (mips_expand_thread_pointer):
Add extern declaration.
* config/mips/mips.c (mips_expand_thread_pointer):
Renamed from mips_get_tp.
(mips_get_tp): New stub calling mips_expand_thread_pointer.
* config/s390/s390.c (s390_builtin,code_for_builtin_64,
code_for_builtin_31,s390_init_builtins,s390_expand_builtin): Remove.
* config/s390/s390.md (get_tp_64,get_tp_31,set_tp_64,set_tp_31):
Remove.
(get_thread_pointer<mode>,set_thread_pointer<mode>):
New, adapted from removed patterns.
* config/xtensa/xtensa.md (get_thread_pointersi):
Renamed from load_tp.
(set_thread_pointersi): Renamed from set_tp.
* config/xtensa/xtensa.c (xtensa_legitimize_tls_address):
Change gen_load_tp calls to gen_get_thread_pointersi.
(xtensa_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER and
XTENSA_BUILTIN_SET_THREAD_POINTER.
(xtensa_init_builtins): Remove __builtin_thread_pointer,
__builtin_set_thread_pointer machine-specific builtins.
(xtensa_fold_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
XTENSA_BUILTIN_SET_THREAD_POINTER cases.
(xtensa_expand_builtin): Remove XTENSA_BUILTIN_THREAD_POINTER,
XTENSA_BUILTIN_SET_THREAD_POINTER cases.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192364
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Thu, 11 Oct 2012 14:59:18 +0000 (14:59 +0000)]
2012-10-11 Marc Glisse <marc.glisse@inria.fr>
* doc/extend.texi (Vector Extensions): C++ improvements.
* doc/generic.texi (LSHIFT_EXPR, RSHIFT_EXPR): Mixed vector-scalar.
(LT_EXPR, LE_EXPR, GT_EXPR, GE_EXPR, EQ_EXPR, NE_EXPR): Specify
the vector case.
(VEC_COND_EXPR): Document it.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192363
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 11 Oct 2012 14:37:44 +0000 (14:37 +0000)]
2012-10-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/36107
* g++.dg/ext/weak5.C: New.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192361
138bc75d-0d04-0410-961f-
82ee72b054a4
glisse [Thu, 11 Oct 2012 13:28:27 +0000 (13:28 +0000)]
2012-10-11 Marc Glisse <marc.glisse@inria.fr>
PR testsuite/54868
* gcc.dg/tree-ssa/forwprop-22.c: Move ...
* gcc.dg/vect/nodump-forwprop-22.c: ... here. Adapt options.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192359
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 11 Oct 2012 13:24:11 +0000 (13:24 +0000)]
2012-10-11 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/bitset/45713.cc: Tweak.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192358
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 11 Oct 2012 13:23:33 +0000 (13:23 +0000)]
2012-10-11 Paolo Carlini <paolo.carlini@oracle.com>
* testsuite/23_containers/bitset/45713.cc: Tweak.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192357
138bc75d-0d04-0410-961f-
82ee72b054a4
paolo [Thu, 11 Oct 2012 11:45:35 +0000 (11:45 +0000)]
2012-10-11 Daniel Krugler <daniel.kruegler@googlemail.com>
* testsuite/20_util/common_type/requirements/sfinae_friendly_1.cc:
Update / extend.
* testsuite/20_util/common_type/requirements/sfinae_friendly_2.cc:
Likewise.
* testsuite/20_util/duration/requirements/sfinae_friendly_1.cc:
Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192356
138bc75d-0d04-0410-961f-
82ee72b054a4
uros [Thu, 11 Oct 2012 11:44:51 +0000 (11:44 +0000)]
* config/i386/sfp-exceptions.c (__sfp_handle_exceptions): Emit SSE
instructions for 64bit targets only.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@192355
138bc75d-0d04-0410-961f-
82ee72b054a4