1. 16 Aug, 2007 10 commits
    • exp_ch9.adb (Build_Protected_Entry): Undo previous change because it is not… · d48365bc
      exp_ch9.adb (Build_Protected_Entry): Undo previous change because it is not really required and can introduce...
      
      2007-08-16  Javier Miranda  <miranda@adacore.com>
      
      	* exp_ch9.adb (Build_Protected_Entry): Undo previous change because it
      	is not really required and can introduce regression with the debugger.
      	The original problem is fixed with the patch written for checks.adb.
      
      From-SVN: r127540
      Javier Miranda committed
    • exp_attr.adb (Attribute_Priority): Add missing support for entries and entry barriers. · 16f67b79
      2007-08-16  Javier Miranda  <miranda@adacore.com>
      
      	* exp_attr.adb (Attribute_Priority): Add missing support for entries
      	and entry barriers.
      
      From-SVN: r127539
      Javier Miranda committed
    • exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an ancestor part… · 19590d70
      exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an ancestor part given by an aggregate to test for an...
      
      2007-08-16  Gary Dismukes  <dismukes@adacore.com>
      	    Ed Schonberg  <schonberg@adacore.com>
      	    Javier Miranda  <miranda@adacore.com>
      
      	* exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an
      	ancestor part given by an aggregate to test for an unchecked conversion,
      	since this can occur in some cases when the ancestor part is a function
      	call, and we don't want to fall into the recursive call to this
      	procedure in that case.
      
      	* exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of
      	stream attributes on limited types to account for user-specified
      	attributes as well as whether Input (resp. Output) becomes available
      	due to Read (resp. Write) being available for the type. Change Boolean
      	variable to the more accurate name
      	Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted
      	double-"not" predicate at beginning of return statement to more
      	understandable form.
      
      	* exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended
      	return has an associated N_Handled_Sequence_Of_Statements, then wrap it
      	in a block statement and use that as the first statement of the
      	expanded return rather than incorrectly using the handled sequence as
      	the first statement.
      
      	* exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected
      	operation, generate an explicit freeze node for it rather than
      	generating extra formals, to ensure that gigi has the proper order of
      	elaboration for anonymous subtypes in the signature of the subprograms.
      	(Build_In_Place_Formal): Move assertion to beginning of loop.
      	(Is_Build_In_Place_Function_Call): Allow for an unchecked conversion
      	applied to a function call (occurs for some cases of 'Input).
      	(Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion
      	applied to a function call (occurs for some cases of 'Input).
      
      	* exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada
      	2005, generate an extended return statement enclosing the result object
      	and 'Read call.
      
      	* freeze.adb (Freeze_Record_Type): Extend the current management of
      	components that are access type with an allocator as default value: add
      	missing support to the use of qualified expressions of the
      	allocator (which also cause freezing of the designated type!)
      	(Freeze_Entity): Call Freeze_Subprogram in the case of a predefined
      	dispatching operation, since extra formals may be needed by calls to
      	build-in-place functions (such as stream 'Input).
      
      	* sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra
      	formals for 'Constrained and accessibility level in the case of a
      	predefined dispatching operation.
      
      	* exp_util.adb (Insert_Actions): A protected body is a valid insertion
      	point, no need to find the parent node.
      
      From-SVN: r127538
      Gary Dismukes committed
    • cstand.adb (Create_Standard): Create an entity for a zero-sized type associated with... · 4c8e94ab
      2007-08-16  Gary Dismukes  <dismukes@adacore.com>
      
      	* cstand.adb (Create_Standard): Create an entity for a zero-sized type
      	associated with Standard_Debug_Renaming_Type, to be used as the type of
      	the special variables whose names provide debugger encodings for
      	renaming declarations.
      
      	* einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25.
      	(Set_Debug_Renaming_Link): Change to set Node25.
      	(Write_Field13_Name): Remove case for E_Enumeration_Literal.
      	(Write_Field25_Name): Add case for E_Variable to output
      	"Debug_Renaming_Link".
      	(Write_Field23_Name): Correct the output string for "Limited_View".
      
      	* exp_dbug.adb: Add with and use of Tbuild.
      	(Debug_Renaming_Declaration): Replace creation of an enumeration type
      	and literal with creation of a variable of type
      	Standard_Debug_Renaming_Type whose name encodes both the renamed object
      	and the entity of the renaming declaration.
      	(Qualify_Entity_Name): Add the delayed qualification of the entity name
      	part of the name of a variable that has a Debug_Renaming_Link.
      
      	* stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a
      	special type to be associated with variables that provide debugger
      	encodings for renaming declarations.
      
      From-SVN: r127537
      Gary Dismukes committed
    • re PR middle-end/32897 (Invalid rematerialisation of subregs) · c07fdd94
      gcc/
      	PR middle-end/32897
      	* reload.c (find_reloads): Check that the memory returned by
      	find_reloads_toplev was not the result of forcing a constant
      	to memory.
      	(find_reloads_toplev): Always use simplify_gen_subreg to get
      	the subreg of a constant.  If the result is also a constant,
      	but not a legitimate one, force it into the constant pool
      	and reload its address.
      
      gcc/testsuite/
      	* gcc.dg/torture/pr32897.c: New test.
      
      From-SVN: r127536
      Richard Sandiford committed
    • re PR c++/31132 (ICE on inconsistent friend declaration) · 684939ce
      /cp
      2007-08-16  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/31132
      	* pt.c (tsubst_friend_function): When check_classfn
      	returns error_mark_node likewise return it.
      
      /testsuite
      2007-08-16  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/31132
      	* g++.dg/template/crash69.C: New.
      
      From-SVN: r127535
      Paolo Carlini committed
    • Add test cases · f0092c54
      From-SVN: r127534
      Arnaud Charlet committed
    • Add test cases. · 439cafcf
      From-SVN: r127533
      Arnaud Charlet committed
    • rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and POPCOUNT. · 32f56aad
              * config/rs6000/rs6000.c (rs6000_rtx_costs): Add CLZ, CTZ, and
              POPCOUNT.
      
      From-SVN: r127532
      David Edelsohn committed
    • Daily bump. · 262a5154
      From-SVN: r127530
      GCC Administrator committed
  2. 15 Aug, 2007 21 commits
  3. 14 Aug, 2007 9 commits
    • re PR fortran/33066 ("type, bind(C) t": Diagnose missing "::") · e7303e85
      	PR fortran/33066
      
      	* decl.c (gfc_get_type_attr_spec): Fix whitespace.
      	(gfc_match_derived_decl): Fix logic.
      
      	* gfortran.dg/use_8.f90: New test.
      	* gfortran.dg/c_loc_tests_2.f03: Fix code.
      
      From-SVN: r127497
      Francois-Xavier Coudert committed
    • re PR fortran/33073 (Type mismatch in build_fixbound_expr()) · c833f6d2
      	PR fortran/33073
      	* trans-intrinsic.c (build_fixbound_expr): Convert to result type
      	in all cases.
      
      From-SVN: r127494
      Francois-Xavier Coudert committed
    • re PR c++/27211 (Bogus error "template definition of non-template" when there is no non-template) · fa3546f1
      /cp
      2007-08-14  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/27211
      	* decl2.c (check_classfn): Return error_mark_node in case of error;
      	in that case, do not call add_method.
      	* decl.c (start_decl): Deal with check_classfn returning
      	error_mark_node.
      	(grokfndecl): Likewise.
      	* pt.c (tsubst_friend_function): Likewise.
      
      /testsuite
      2007-08-14  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/27211
      	* g++.dg/template/error27.C: New.
      	* g++.dg/template/error28.C: New.
      	* g++.dg/other/pr28304.C: Adjust.
      	* g++.old-deja/g++.mike/p811.C: Likewise.
      
      From-SVN: r127493
      Paolo Carlini committed
    • re PR c++/27211 (Bogus error "template definition of non-template" when there is no non-template) · f8c3b097
      /cp
      2007-08-14  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/27211
      	* decl2.c (check_classfn): Return error_mark_node in case of error;
      	in that case, do not call add_method.
      	* decl.c (start_decl): Deal with check_classfn returning
      	error_mark_node.
      	(grokfndecl): Likewise.
      	* pt.c (tsubst_friend_function): Likewise.
      
      /testsuite
      2007-08-14  Paolo Carlini  <pcarlini@suse.de>
      
      	PR c++/27211
      	* g++.dg/template/error27.C: New.
      	* g++.dg/template/error28.C: New.
      	* g++.dg/other/pr28304.C: Adjust.
      	* g++.old-deja/g++.mike/p811.C: Likewise.
      
      From-SVN: r127492
      Paolo Carlini committed
    • tree-pass.h (PROP_pta): Removed. · 7b0e48fb
      2007-08-14  Daniel Berlin  <dberlin@dberlin.org>
      
      	* tree-pass.h (PROP_pta): Removed.
      	(TODO_rebuild_alias): New.
      	(pass_may_alias): Removed.
      	* tree-ssa-ccp.c (execute_fold_all_builtins): Only rebuild
      	aliasing if we changed something.
      	* tree-ssa-alias.c (compute_may_aliases): Make non-static.  Update
      	SSA internally.
      	(pass_may_alias): Removed.
      	(create_structure_vars): Return TODO_rebuild_alias.
      	* tree-ssa-pre.c (do_pre): Return TODO_rebuild_alias.
      	* tree-sra.c (tree_sra): Only rebuild aliasing if something
      	changed.
      	(tree_sra_early): We never affect aliasing right now.
      	* tree-flow.h (compute_may_aliases): New prototype.
      	* passes.c: Remove pass_may_alias from the passes.
      	(execute_function_todo): Support TODO_rebuild_alias.
      
      From-SVN: r127491
      Daniel Berlin committed
    • i386.c: (legitimize_address): Move dllimported variable check infront of legitimizing... · ea2666ba
      	* i386.c: (legitimize_address): Move dllimported variable check
      	infront of legitimizing pic address of CONST symbols.
      
      From-SVN: r127488
      Kai Tietz committed
    • re PR tree-optimization/32941 (Bootstrap comparison failure) · 0f547d3d
      	PR tree-optimization/32941
      	* tree-eh.c (struct leh_tf_state): Add goto_queue_map field.
      	(goto_queue_cmp): Remove.
      	(find_goto_replacement): Change search method.
      	(maybe_record_in_goto_queue): Add assert.
      	(lower_try_finally): Remove qsort call, add pointer_map_destroy call.
      	* Makefile.in (tree-eh.o): Add pointer-set.h dependency.
      
      From-SVN: r127487
      Steve Ellcey committed
    • alias.c (component_uses_parent_alias_set): Constify. · 22ea9ec0
      	* alias.c (component_uses_parent_alias_set): Constify.
      	* alias.h (component_uses_parent_alias_set): Likewise.
      	* cfgrtl.c (print_rtl_with_bb): Likewise.
      	* double-int.c (tree_to_double_int, double_int_fits_to_tree_p,
      	mpz_get_double_int): Likewise.
      	* double-int.h (double_int_fits_to_tree_p, tree_to_double_int,
      	mpz_get_double_int): Likewise.
      	* expr.c (is_aligning_offset, undefined_operand_subword_p,
      	mostly_zeros_p, all_zeros_p, safe_from_p, is_aligning_offset):
      	Likewise.
      	* expr.h (safe_from_p): Likewise.
      	* gimple-low.c (try_catch_may_fallthru, block_may_fallthru):
      	Likewise.
      	* gimplify.c (should_carry_locus_p, zero_sized_field_decl,
      	zero_sized_type, goa_lhs_expr_p): Likewise.
      	* omp-low.c (is_variable_sized, use_pointer_for_field): Likewise.
      	* rtl.h (print_rtl_with_bb): Likewise.
      	* sched-vis.c (print_exp, print_value, print_pattern): Likewise.
      	* tree-cfg.c (const_first_stmt, const_last_stmt): New.
      	* tree-flow-inline.h (bb_stmt_list): Constify.
      	(cbsi_start, cbsi_last, cbsi_end_p, cbsi_next, cbsi_prev,
      	cbsi_stmt): New.
      	* tree-flow.h (const_block_stmt_iterator, cbsi_start, cbsi_last,
      	const_first_stmt, const_last_stmt): New.
      	(block_may_fallthru, empty_block_p): Constify.
      	* tree-iterator.c (EXPR_FIRST_BODY, EXPR_LAST_BODY,
      	EXPR_ONLY_BODY): New.
      	(expr_first, expr_last, expr_only): Use macro for body.
      	(const_expr_first, const_expr_last, const_expr_only): New.
      	* tree-iterator.h (const_tree_stmt_iterator, ctsi_start,
      	ctsi_last, ctsi_end_p, ctsi_one_before_end_p, ctsi_next,
      	ctsi_prev, ctsi_stmt): New.
      	* tree-scalar-evolution.c (get_loop_exit_condition): Constify.
      	* tree-scalar-evolution.h (get_loop_exit_condition): Likewise.
      	* tree-ssa-loop-niter.c (loop_only_exit_p,
      	derive_constant_upper_bound): Likewise.
      	* tree-ssa-phiopt.c (empty_block_p): Likewise.
      	* tree-ssa-threadupdate.c (redirection_block_p): Likewise.
      	* tree-vectorizer.c (slpeel_can_duplicate_loop_p): Likewise.
      	* tree-vectorizer.h (slpeel_can_duplicate_loop_p): Likewise.
      	* tree-vrp.c (vrp_bitmap_equal_p): Likewise.
      	* tree.c (get_type_static_bounds): Likewise.
      	* tree.h (const_expr_first, const_expr_last, const_expr_only): New.
      	(get_type_static_bounds): Constify.
      
      From-SVN: r127483
      Kaveh R. Ghazi committed
    • re PR target/30315 (optimize unsigned-add overflow test on x86 to use cpu flags from addl) · d39d658d
      	PR target/30315
      	* config/i386/i386.h (CANONICALIZE_COMPARISON): New.
      	* config/i386/i386.md (plusminus)(addsub)(SWI): New.
      	(*<addsub><mode>3_cc_overflow): New.
      	(*add<mode>3_cconly_overflow): New.
      	(*sub<mode>3_cconly_overflow): New.
      	(*<addsub>si3_zext_cc_overflow): New.
      	* config/i386/predicates.md (fcmov_comparison_operator): Accept
      	CCCmode for LTU, GTU, LEU and GEU.
      	(ix86_comparison_operator): Likewise.
      	(ix86_carry_flag_operator): Carry flag is set if LTU or GTU in CCCmode.
      	* gcc/config/i386/i386.c (put_condition_code): Support CCCmode.
      	(ix86_cc_mode): Use CCCmode when testing for overflow of PLUS
      	or MINUS expressions.
      
      testsuite/
      	PR target/30315
      	* gcc.target/i386/pr30315.c: New.
      
      From-SVN: r127481
      Rask Ingemann Lambertsen committed