Commit Graph

109857 Commits

Author SHA1 Message Date
Jason Merrill
17d208b54e re PR c++/49387 (t.cxx:140: error: too many initializers for ‘const __class_type_info_pseudo’)
PR c++/49387
	* rtti.c (get_pseudo_ti_index): Call complete_type.

From-SVN: r175743
2011-06-30 20:53:10 -04:00
GCC Administrator
0bd96aad7a Daily bump.
From-SVN: r175742
2011-07-01 00:17:43 +00:00
Jason Merrill
e2c17be05b re PR c++/49569 (-std=gnu++0x causes segmentation fault)
PR c++/49569
	* method.c (implicitly_declare_fn): Set DECL_PARM_LEVEL and
	DECL_PARM_INDEX on rhs parm.

From-SVN: r175738
2011-06-30 20:03:58 -04:00
Jason Merrill
98ff399662 * pt.c (iterative_hash_template_arg): Use cp_tree_operand_length.
From-SVN: r175737
2011-06-30 20:03:43 -04:00
Jason Merrill
b9d6b0153c re PR c++/49355 (new T({""}) crashes G++ when struct T { std::string foobar };)
PR c++/49355
	* tree.c (stabilize_init): Handle aggregate initialization.

From-SVN: r175736
2011-06-30 20:03:34 -04:00
Martin Jambor
1ac93f1083 tree-sra.c (struct access): Rename total_scalarization to grp_total_scalarization
2011-06-30  Martin Jambor  <mjambor@suse.cz>

	* tree-sra.c (struct access): Rename total_scalarization to
	grp_total_scalarization
	(completely_scalarize_var): New function.
	(sort_and_splice_var_accesses): Set total_scalarization in the
	representative access.
	(analyze_access_subtree): Propagate total scalarization accross the
	tree, no holes in totally scalarized trees, simplify coverage
	computation.
	(analyze_all_variable_accesses): Call completely_scalarize_var instead
	of completely_scalarize_record.

	* testsuite/gcc.dg/tree-ssa/sra-12.c: New test.

From-SVN: r175733
2011-06-30 23:54:29 +02:00
Jason Merrill
ca1085f03c re PR c++/48481 (C++ overloading memory hog)
PR c++/48481
	* name-lookup.c (struct arg_lookup): Add fn_set.
	(add_function): Check it.
	(lookup_arg_dependent_1): Initialize it.

From-SVN: r175732
2011-06-30 17:10:03 -04:00
Jason Merrill
4757b0716f * g++.dg/cpp0x/named.C: Test subobject of xvalue.
From-SVN: r175731
2011-06-30 17:09:55 -04:00
Richard Henderson
97f309c3e2 i386: Always use TARGET_DEEP_BRANCH_PREDICTION.
While it could be possible to output_set_got such that we can
individually annotate the instructions, it's simpler to simply
admit that all processors currently being manufactured do want
deep branch prediction.  At which point all of the complication
simply goes away.

        * config/i386/i386.h (X86_TUNE_DEEP_BRANCH_PREDICTION): Remove.
        (TARGET_DEEP_BRANCH_PREDICTION): Remove.
        * config/i386/i386.c: Don't include dwarf2out.h.
        (initial_ix86_tune_features): Remove X86_TUNE_DEEP_BRANCH_PREDICTION.
        (output_set_got): Don't test TARGET_DEEP_BRANCH_PREDICTION, delete
        all code dead thereafter.  Don't do dwarf2out_flush_queued_reg_saves.
        (ix86_expand_prologue): Set REG_CFA_FLUSH_QUEUE on set_got insn.
        (machopic_output_stub): Don't test TARGET_DEEP_BRANCH_PREDICTION.

From-SVN: r175730
2011-06-30 14:08:54 -07:00
Richard Henderson
ef284364b4 dwarf2out: Add REG_CFA_FLUSH_QUEUE.
* reg-notes.def (REG_CFA_FLUSH_QUEUE): New.
        * dwarf2out.c (dwarf2out_frame_debug): Handle it.
        * final.c (final_scan_insn): Look for it, and invoke
        dwarf2out_frame_debug before the insn if found.

From-SVN: r175729
2011-06-30 14:04:23 -07:00
Richard Henderson
c8412f9770 dwarf2out: Handle pc_rtx as return column in REG_CFA_OFFSET too.
* dwarf2out.c (dwarf2out_frame_debug_cfa_offset): Allow PC_RTX
        as a source, and interpret that as DWARF_FRAME_RETURN_COLUMN.

From-SVN: r175728
2011-06-30 14:01:06 -07:00
Richard Henderson
e3f903d88a dwarf2out: Convert regs_saved_in_regs to VEC.
* dwarf2out.c (struct reg_saved_in_data): Provide a typedef.
        Define a vector of this type.
        (regs_saved_in_regs): Use a VEC.
        (num_regs_saved_in_regs): Remove.
        (compare_reg_or_pc): New.
        (record_reg_saved_in_reg): Split out from...
        (dwarf2out_flush_queued_reg_saves): ... here.
        (clobbers_queued_reg_save): Update for VEC.
        (reg_saved_in): Likewise.
        (dwarf2out_frame_debug_init): Likewise.
        (dwarf2out_reg_save_reg): Use record_reg_saved_in_reg.
        (dwarf2out_frame_debug_cfa_register): Likewise.

From-SVN: r175727
2011-06-30 13:59:41 -07:00
Eric Botcazou
e2c9010ae8 re PR tree-optimization/49572 (gcc.dg/tree-ssa/20030709-2.c scan-tree-dump-times cddce2 ".rtmem" 0)
PR tree-optimization/49572
	* tree-ssa-dom.c (initialize_hash_element) <GIMPLE_SINGLE_RHS>: Use the
	type of the RHS instead of that of the LHS for the expression type.

From-SVN: r175721
2011-06-30 19:32:23 +00:00
Eric Botcazou
dbb07bbc1b df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro unconditionally.
* df-scan.c (df_get_entry_block_def_set): Use INCOMING_REGNO macro
	unconditionally.

From-SVN: r175718
2011-06-30 17:56:50 +00:00
Richard Guenther
1565af0830 opts.c (finish_options): Do not disable IPA-PTA during ltrans.
2011-06-30  Richard Guenther  <rguenther@suse.de>

	* opts.c (finish_options): Do not disable IPA-PTA during ltrans.
	* tree-ssa-structalias.c (create_variable_info_for): Do not
	add initial constraints for non-var-decls.  Properly handle
	globals in other ltrans partitions.
	(intra_create_variable_infos): Manually create constraints for
	the fake no-alias parameter.
	(ipa_pta_execute): Dump the cgraph, handle ltrans partitions properly
	and assert there are no clones.

From-SVN: r175707
2011-06-30 14:03:25 +00:00
Richard Guenther
42373e0b05 re PR tree-optimization/46787 (Does not vectorize loop with load from scalar variable)
2011-06-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/46787
	* tree-data-ref.c (dr_address_invariant_p): Remove.
	(find_data_references_in_stmt): Invariant accesses are ok now.
	* tree-vect-stmts.c (vectorizable_load): Handle invariant
	loads.
	* tree-vect-data-refs.c (vect_analyze_data_ref_access): Allow
	invariant loads.

	* gcc.dg/vect/vect-121.c: New testcase.

From-SVN: r175704
2011-06-30 13:27:43 +00:00
Martin Jambor
7aa62ea1f8 re PR tree-optimization/49094 (ARM aligned(1) attribute is sometimes dropped)
2011-06-30  Martin Jambor  <mjambor@suse.cz>

	PR tree-optimization/49094
	* tree-sra.c (tree_non_mode_aligned_mem_p): New function.
	(build_accesses_from_assign): Use it.

	* testsuite/gcc.dg/tree-ssa/pr49094.c: New test.

From-SVN: r175703
2011-06-30 15:24:19 +02:00
Joseph Myers
a32dae63a2 * de.po: Update.
From-SVN: r175698
2011-06-30 13:26:08 +01:00
Jakub Jelinek
d9048d168c tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix handling of BUILT_IN_ASSUME_ALIGNED.
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
	handling of BUILT_IN_ASSUME_ALIGNED.

From-SVN: r175695
2011-06-30 12:43:59 +02:00
Jakub Jelinek
f60f32b356 re PR debug/49364 ([4.7 regressions] Empty .debug_abbrev sections confuse SGI nm)
PR debug/49364
	* dwarf2out.c (output_abbrev_section): Don't return early
	if abbrev_die_table_in_use is 1.
	(dwarf2out_finish): Instead don't call output_abbrev_section
	nor emit abbrev_section_label in that case.

From-SVN: r175694
2011-06-30 12:26:32 +02:00
Jakub Jelinek
21ea4922ac re PR fortran/49540 (Memory-hog with large DATA stmt)
PR fortran/49540
	* gfortran.h (gfc_constructor): Add repeat field.
	* trans-array.c (gfc_conv_array_initializer): Handle repeat > 1.
	* array.c (current_expand): Add repeat field.
	(expand_constructor): Copy repeat.
	* constructor.c (node_free, node_copy, gfc_constructor_get,
	gfc_constructor_lookup): Handle repeat field.
	(gfc_constructor_lookup_next, gfc_constructor_remove): New functions.
	* data.h (gfc_assign_data_value): Add mpz_t * argument.
	(gfc_assign_data_value_range): Removed.
	* constructor.h (gfc_constructor_advance): Removed.
	(gfc_constructor_lookup_next, gfc_constructor_remove): New prototypes.
	* data.c (gfc_assign_data_value): Add REPEAT argument, handle it and
	also handle overwriting a range with a single entry.
	(gfc_assign_data_value_range): Removed.
	* resolve.c (check_data_variable): Adjust gfc_assign_data_value
	call.  Use gfc_assign_data_value instead of
	gfc_assign_data_value_expr.

	* gfortran.dg/pr49540-1.f90: New test.
	* gfortran.dg/pr49540-2.f90: New test.

From-SVN: r175693
2011-06-30 12:25:40 +02:00
Rainer Orth
f7069d58f6 re PR ada/49511 (acats test setup fails on HP-UX using posix shell)
PR ada/49511
	* ada/acats/run_acats (which): Use last field of type -p output.

From-SVN: r175690
2011-06-30 10:04:52 +00:00
Dominique d'Humieres
2f0c1df6f3 re PR libobjc/36610 (objc_msg_sendv is broken for targets which pass argument via registers)
2011-06-28  Dominique d'Humieres  <dominiq@lps.ens.fr>
	    Iain Sandoe  <iains@gcc.gnu.org>

	PR libobjc/36610
	* objc.dg/torture/forward-1.m: Remove dg-xfail-run-if.
	Only skip on 64-bit *-*-darwin8* && !objc2.

Co-Authored-By: Iain Sandoe <iains@gcc.gnu.org>

From-SVN: r175689
2011-06-30 10:02:45 +00:00
Nick Clifton
7cce15d4b3 v850.h (CPP_SPEC): Define __v850e__ when compiling for the V850E.
* config/v850/v850.h (CPP_SPEC): Define __v850e__ when compiling
	for the V850E.

From-SVN: r175688
2011-06-30 09:13:49 +00:00
Richard Guenther
4372bd28f1 re PR tree-optimization/38752 (ICE in set_uids_in_ptset, at tree-ssa-structalias.c:4817)
2011-06-30  Richard Guenther  <rguenther@suse.de>

	PR tree-optimization/38752
	* gcc.c-torture/compile/pr38752.c: New testcase.

From-SVN: r175684
2011-06-30 08:44:18 +00:00
Jakub Jelinek
ce7e54ff0d tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.
* tree-ssa-structalias.c (find_func_aliases_for_builtin_call): Fix
	handling of BUILT_IN_MEMPCPY_CHK and BUILT_IN_STPCPY_CHK.

From-SVN: r175682
2011-06-30 10:06:01 +02:00
Ira Rosen
83197f3733 tree-vect-loop.c (vect_determine_vectorization_factor): Handle both pattern and original statements if necessary.
* tree-vect-loop.c (vect_determine_vectorization_factor): Handle
        both pattern and original statements if necessary.
        (vect_transform_loop): Likewise.
        * tree-vect-patterns.c (vect_pattern_recog): Update documentation.
        * tree-vect-stmts.c (vect_mark_relevant): Add new argument.
        Mark the pattern statement only if the original statement doesn't
        have its own uses.
        (process_use): Call vect_mark_relevant with additional parameter.
        (vect_mark_stmts_to_be_vectorized): Likewise.
        (vect_get_vec_def_for_operand): Use vectorized pattern statement.
        (vect_analyze_stmt): Handle both pattern and original statements
        if necessary.
        (vect_transform_stmt): Don't store vectorized pattern statement
        in the original statement.
        (vect_is_simple_use_1): Use related pattern statement only if the
        original statement is irrelevant.
        * tree-vect-slp.c (vect_get_and_check_slp_defs): Likewise.

From-SVN: r175681
2011-06-30 06:37:41 +00:00
GCC Administrator
0dcd5f9db1 Daily bump.
From-SVN: r175678
2011-06-30 00:18:02 +00:00
Jason Merrill
1f65a8c8e5 re PR c++/49216 ([C++0x] ICE on compiling new-expression with braced-init-list for arrays)
PR c++/49216
	* init.c (build_new_1): Pass {} down to build_vec_init.
	(build_vec_init): Handle it.

From-SVN: r175674
2011-06-29 18:28:15 -04:00
Jason Merrill
417ae18714 DR 1207 PR c++/49003
DR 1207
	PR c++/49003
	* cp-tree.h (struct saved_scope): Add x_current_class_ptr,
	x_current_class_ref.
	(current_class_ptr, current_class_ref): Use them.
	* decl.c (build_this_parm): Handle getting the class type.
	* parser.c (cp_parser_late_return_type_opt): Set up 'this'
	for use within the trailing return type.

From-SVN: r175671
2011-06-29 17:19:31 -04:00
Jason Merrill
3fe9889732 pt.c (tsubst_decl): In unevaluated operand, don't tsubst DECL_INITIAL unless our type use auto.
* pt.c (tsubst_decl) [VAR_DECL]: In unevaluated operand,
	don't tsubst DECL_INITIAL unless our type use auto.

From-SVN: r175670
2011-06-29 17:19:22 -04:00
François Dumont
4c2d93dbfa set.h, [...]: Remove base class default constructor calls.
2011-06-29  François Dumont  <francois.cppdevs@free.fr>

	* include/debug/set.h, unordered_map, multiset.h, forward_list,
	unordered_set, vector, deque, string, list, multimap.h: Remove base
	class default constructor calls.
	* include/debug/map.h: Likewise and cleanup several redefinition of
	base iterator typedef.

From-SVN: r175665
2011-06-29 20:11:50 +00:00
Changpeng Fang
5c0d88e64a Auto-vectorizer generates 128-bit AVX insns by default for bdver1.
* config/i386/i386.opt (mprefer-avx128): Redefine the flag as a Mask option.
	* config/i386/i386.h (ix86_tune_indices): Add X86_TUNE_AVX128_OPTIMAL entry.
	(TARGET_AVX128_OPTIMAL): New definition.
	* config/i386/i386.c (initial_ix86_tune_features): Initialize
	X86_TUNE_AVX128_OPTIMAL entry.
	(ix86_option_override_internal): Enable the generation
	of the 128-bit instructions when TARGET_AVX128_OPTIMAL is set.
	(ix86_preferred_simd_mode): Use TARGET_PREFER_AVX128.
	(ix86_autovectorize_vector_sizes): Use TARGET_PREFER_AVX128.

From-SVN: r175661
2011-06-29 17:53:49 +00:00
Jason Merrill
55d80bc439 re PR c++/49272 (FAIL: g++.old-deja/g++.jason/rfg10.C (test for errors, line 11))
PR c++/49272
	* g++.old-deja/g++.jason/rfg10.C: Accept other overflow error too.

From-SVN: r175659
2011-06-29 13:38:53 -04:00
Jason Merrill
11324716c1 re PR c++/49520 ([C++0x] using-declaration and operator&& confuses constexpr)
PR c++/49520
	* semantics.c (constexpr_fn_retval): Handle CLEANUP_POINT_EXPR here.
	(massage_constexpr_body): Not here.

From-SVN: r175658
2011-06-29 13:15:16 -04:00
Jason Merrill
40d55020a3 re PR c++/49554 ([C++0x] lambda capture causes "cannot call member function ... without object")
PR c++/49554
	* semantics.c (lambda_proxy_type): New.
	(build_capture_proxy): Use it.
	* cp-tree.h (DECLTYPE_FOR_LAMBDA_PROXY): New.
	* pt.c (tsubst) [DECLTYPE_TYPE]: Use them.

From-SVN: r175657
2011-06-29 13:15:06 -04:00
Ulrich Weigand
de95483d1e re PR rtl-optimization/49114 ([x32] Reload failed to handle (set reg:X (plus:X (subreg:X (reg:Y) 0) (const_int))))
PR rtl-optimization/49114
	* reload.c (push_reload): Define in_subreg_loc and out_subreg_loc
	only if LIMIT_RELOAD_CLASS to avoid -Werror build breaks.

From-SVN: r175652
2011-06-29 16:19:08 +00:00
Eric Botcazou
931050d044 re PR tree-optimization/49539 (ICE building gnattools)
PR tree-optimization/49539
	* tree-ssa-forwprop.c (can_propagate_from): Check for abnormal SSA
	names by means of stmt_references_abnormal_ssa_name.
	(associate_plusminus): Call can_propagate_from before propagating
	from definition statements.
	(ssa_forward_propagate_and_combine): Remove superfluous newline.

From-SVN: r175650
2011-06-29 16:02:56 +00:00
Jason Merrill
f732fa7b6c re PR c++/45923 (constexpr diagnostics, more more)
PR c++/45923
	* class.c (explain_non_literal_class): New.
	(finalize_literal_type_property): Call it.
	* cp-tree.h: Declare it.
	* semantics.c (ensure_literal_type_for_constexpr_object): Call it.
	(is_valid_constexpr_fn): Likewise.
	(massage_constexpr_body): Split out from...
	(register_constexpr_fundef): ...here.
	(is_instantiation_of_constexpr): New.
	(expand_or_defer_fn_1): Leave DECL_SAVED_TREE alone in that case.
	(explain_invalid_constexpr_fn): New.
	(cxx_eval_call_expression): Call it.
	(potential_constant_expression_1): Likewise.  Avoid redundant errors.
	* method.c (process_subob_fn): Diagnose non-constexpr.
	(walk_field_subobs): Likewise.
	(synthesized_method_walk): Don't shortcut if we want diagnostics.
	(explain_implicit_non_constexpr): New.
	(defaulted_late_check): Use it.
	* call.c (build_cxx_call): Remember location.

From-SVN: r175646
2011-06-29 10:34:58 -04:00
Jason Merrill
874d29e5be method.c (maybe_explain_implicit_delete): Use pointer_set instead of htab.
* method.c (maybe_explain_implicit_delete): Use pointer_set
	instead of htab.

From-SVN: r175645
2011-06-29 10:34:47 -04:00
Jason Merrill
b198484e89 class.c (finalize_literal_type_property): Update conditions.
* class.c (finalize_literal_type_property): Update conditions.
	* method.c (defaulted_late_check): Set TYPE_HAS_CONSTEXPR_CTOR.

From-SVN: r175644
2011-06-29 10:34:39 -04:00
Jason Merrill
1f2911476d tree.c (build_vec_init_expr): Don't add TARGET_EXPR.
* tree.c (build_vec_init_expr): Don't add TARGET_EXPR.
	* typeck2.c (digest_init_r): Handle VEC_INIT_EXPR.
	* semantics.c (cxx_eval_vec_init_1): Correct type.

From-SVN: r175643
2011-06-29 10:34:22 -04:00
Richard Guenther
dfedbe4055 invoke.texi: Document -scev dump modifier.
2011-06-29  Richard Guenther  <rguenther@suse.de>

	* doc/invoke.texi: Document -scev dump modifier.
	* tree-pass.h (TDF_SCEV): New dump flag.
	* tree-dump.c (dump_option_value_in): Add scev.
	* tree-chrec.c: Replace all TDF_DETAILS checks with TDF_SCEV.
	* tree-scalar-evolution.c: Likewise.

	* gcc.dg/tree-ssa/loop-17.c: Adjust.

From-SVN: r175642
2011-06-29 14:29:22 +00:00
Nathan Sidwell
3a86cfeb42 unwind-arm.c (enum __cxa_type_match_result): New.
gcc/
	* config/arm/unwind-arm.c (enum __cxa_type_match_result): New.
	(cxa_type_match): Correct declaration.
	(__gnu_unwind_pr_common): Reconstruct
	additional indirection when __cxa_type_match returns
	succeeded_with_ptr_to_base.

	libstdc++/
	* libsupc++/eh_arm.c (__cxa_type_match): Construct address of
	thrown object here.  Return succeded_with_ptr_to_base for all
	pointer cases.

From-SVN: r175641
2011-06-29 14:18:48 +00:00
Jason Merrill
7b37a0c548 init.c (build_value_init): Decide whether or not to zero-initialize based on user-providedness of default...
* init.c (build_value_init): Decide whether or not to zero-initialize
	based on user-providedness of default ctor, not any ctor.
	(build_value_init_noctor): Adjust assert.

From-SVN: r175640
2011-06-29 10:09:03 -04:00
Jason Merrill
2061820e0d DR 990
DR 990
	* call.c (convert_like_real) [ck_user]: Handle value-initialization.
	(build_new_method_call_1): Likewise.
	* init.c (expand_default_init): Handle direct list-initialization
	of aggregates.

From-SVN: r175639
2011-06-29 10:08:55 -04:00
Rainer Orth
902233e09c cls_double_va.c: Move PR number to comment.
* testsuite/libffi.call/cls_double_va.c: Move PR number to comment.
	* testsuite/libffi.call/cls_longdouble_va.c: Likewise.

From-SVN: r175632
2011-06-29 12:47:56 +00:00
Ulrich Weigand
f3678bfb50 re PR rtl-optimization/49114 ([x32] Reload failed to handle (set reg:X (plus:X (subreg:X (reg:Y) 0) (const_int))))
PR rtl-optimization/49114
	* reload.c (struct replacement): Remove SUBREG_LOC member.
	(push_reload): Do not set it.
	(push_replacement): Likewise.
	(subst_reload): Remove dead code.
	(copy_replacements): Remove assertion.
	(copy_replacements_1): Do not handle SUBREG_LOC.
	(move_replacements): Likewise.
	(find_replacement): Remove dead code.  Use reload_adjust_reg_for_mode.
	Detect subregs via recursive descent instead of via SUBREG_LOC.

From-SVN: r175631
2011-06-29 12:15:08 +00:00
Georg-Johann Lay
433ba0a57b avr.c (avr_encode_section_info): Dispatch to default_encode_section_info.
* config/avr/avr.c (avr_encode_section_info): Dispatch to
	default_encode_section_info.

From-SVN: r175630
2011-06-29 11:20:06 +00:00
Georg-Johann Lay
d17fc17507 avr.c (avr_encode_section_info): Dispatch to default_encode_section_info.
* config/avr/avr.c (avr_encode_section_info): Dispatch to
	default_encode_section_info.

From-SVN: r175629
2011-06-29 11:17:50 +00:00