1. 05 Apr, 2004 13 commits
    • mt_allocator.h (__mt_alloc<>::deallocate): The critical section is actually very… · 268d3b18
      mt_allocator.h (__mt_alloc<>::deallocate): The critical section is actually very small, only two assignments.
      
      2004-04-05  Paolo Carlini  <pcarlini@suse.de>
      
      	* include/ext/mt_allocator.h (__mt_alloc<>::deallocate):
      	The critical section is actually very small, only two assignments.
      
      From-SVN: r80439
      Paolo Carlini committed
    • tree.c (reconstruct_complex_type): Use TYPE_READONLY and TYPE_VOLATILE. · e0e4ac7f
      2004-04-05  Andrew Pinski  <pinskia@physics.uc.edu>
      
              * tree.c (reconstruct_complex_type): Use TYPE_READONLY
              and TYPE_VOLATILE.
      
      From-SVN: r80438
      Andrew Pinski committed
    • * MAINTAINERS: Add myself to write-after-approval. · 54bcf05e
      From-SVN: r80436
      Ranjit Mathew committed
    • gcc.c (combine_flag): New global variable, for new driver option. · 0855eab7
      2004-04-05  Caroline Tice  <ctice@apple.com>
      
              * gcc.c (combine_flag): New global variable, for new driver option.
              (struct compiler): Add two new fields, to be used when
              combining multiple input files in a single pass (IMA).
              (default_compilers):  Add values for the new fields to all
              compiler entries. Modify the "@c" compiler entry for doing IMA
              properly with "-save-temps" and the "combine" flag.
              (option_map):  Add new driver option, "--combine", to tell driver
              to pass multiple input files to compiler at one time.
              (have_o_argbuf_index): New global variable.
              (store_arg): Modify to assign value to have_o_argbuf_index.
              (struct infile):  Add three new fields, to help with IMA.
              (display_help): Add help for new "combine" option.
              (process_command): Remove local variable have_o; add code to check
              for new "combine" option; remove assignment to combine_inputs.
              (do_spec_1):  Modify to deal with IMA better.
              (main): Make variable 'lang_n_infiles' local to entire function
              rather than to a single block.  Use flag combine_flag to
              determine whether to do IMA or not; Modify loop initializing
              infiles to deal properly with linker files.
              Add code for doing preprocessing in presence of
              IMA with "-save-temps" flag.  Modify "main" loop to handle
              multiple input files, in multiple languages, with or without
              preprocessing,  gracefully.
              * toplev.c (set_src_pwd): Modify to not complain if attempting to
              re-set it to same directory it's previously been set to (avoid
              irritating, meaningless warning messages when doing IMA with
              save-temps).
              * doc/invoke.texi: Add "-combine" to list of Overall Options;
              remove documentation about IMA that is no longer accurate; Add
              documentation explaining what "-combine" does.
              * ada/lang-specs.h: Add initialization values for new fields in
              "struct compiler".
              * cp/lang-specs.h: Likewise.
              * f/lang-specs.h: Likewise.
              * java/lang-specs.h: Likewise.
              * objc/lang-specs.h: Likewise.
              * treelang/lang-specs.h: Likewise.
      
      Fix gcc driver to work properly with IMI.
      
      From-SVN: r80435
      Caroline Tice committed
    • rs6000.c (VTABLE_NAME_P): Add _ZTI to special symbol handling. · 26be75db
      	* config/rs6000/rs6000.c (VTABLE_NAME_P): Add _ZTI to special
      	symbol handling.
      
      Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
      
      From-SVN: r80434
      David Edelsohn committed
    • PR optimization/13424 (hppa), bootstrap/14462, c/14828 · fda935a2
      	PR optimization/13424 (hppa), bootstrap/14462, c/14828
      	* pa.md: Use replace_equiv_address to retain the attributes of the
      	memory operands used in the split and peephole2 patterns for optimizing
      	the pre-reload movstrsi, movstrdi, clrstrsi and clrstrdi patterns.
      
      Co-Authored-By: John David Anglin <dave.anglin@nrc-cnrc.gc.ca>
      
      From-SVN: r80433
      Jakub Jelinek committed
    • re PR c++/3518 (default conversion to pointer-to-function is applied to soon (related to DR295)) · 355f774d
      cp:
      	PR c++/3518
      	* pt.c (check_cv_quals_for_unify): Ignore bogus CV quals at outer
      	level.
      testsuite:
      	PR c++/3518
      	* g++.dg/template/unify7.C: New.
      
      From-SVN: r80432
      Nathan Sidwell committed
    • [multiple changes] · 30c20106
      2004-04-05  Vincent Celier  <celier@gnat.com>
      
      	* adaint.h, adaint.c: Add function __gnat_named_file_length
      
      	* impunit.adb: Add Ada.Directories to the list
      
      	* Makefile.in: Add VMS and Windows versions of
      	Ada.Directories.Validity package body.
      
      	* Makefile.rtl: Add a-direct and a-dirval
      
      	* mlib-tgt.ads: Minor comment update.
      
      	* a-dirval.ads, a-dirval.adb, 5vdirval.adb, 5wdirval.adb,
      	a-direct.ads, a-direct.adb: New files.
      
      2004-04-05  Vincent Celier  <celier@gnat.com>
      
      	PR ada/13620
      	* make.adb (Scan_Make_Arg): Pass any -fxxx switches to gnatlink, not
      	just to the compiler.
      
      2004-04-05  Robert Dewar  <dewar@gnat.com>
      
      	* a-except.adb (Exception_Name_Simple): Make sure lower bound of
      	returned string is 1.
      
      	* ali-util.adb: Use proper specific form for Warnings (Off, entity)
      
      	* eval_fat.ads: Minor reformatting
      
      	* g-curexc.ads: Document that lower bound of returned string values
      	is always one.
      
      	* gnatlink.adb: Add ??? comment for previous change
      	(need to document why this is VMS specific)
      
      	* s-stoele.ads: Minor reformatting
      
      	* tbuild.ads: Minor reformatting throughout (new function specs)
      
      	* par-ch10.adb (P_Context_Clause): Handle comma instead of semicolon
      	after WITH.
      
      	* scng.adb: Minor reformatting
      
      2004-04-05  Geert Bosch  <bosch@gnat.com>
      
      	* eval_fat.adb (Machine): Remove unnecessary suppression of warning.
      	(Leading_Part): Still perform truncation to machine number if the
      	specified radix_digits is greater or equal to machine_mantissa.
      
      2004-04-05  Javier Miranda  <miranda@gnat.com>
      
      	* par-ch3.adb: Complete documentation of previous change
      	Correct wrong syntax documentation of the OBJECT_DECLARATION rule
      	(aliased must appear before constant).
      
      	* par-ch4.adb: Complete documentation of previous change.
      
      	* par-ch6.adb: Complete documentation of previous change.
      
      	* sinfo.ads: Fix typo in commment.
      
      2004-04-05  Ed Schonberg  <schonberg@gnat.com>
      
      	* sem_ch3.adb (Inherit_Components): If derived type is private and has
      	stored discriminants, use its discriminants to constrain parent type,
      	as is done for non-private derived record types.
      
      	* sem_ch4.adb (Remove_Abstract_Operations): New subprogram to implement
      	Ada 2005 AI-310: an abstract non-dispatching operation is not a
      	candidate interpretation in an overloaded call.
      
      	* tbuild.adb (Unchecked_Convert_To): Preserve conversion node if
      	expression is Null and target type is not an access type (e.g. a
      	non-private address type).
      
      2004-04-05  Thomas Quinot  <quinot@act-europe.fr>
      
      	* exp_ch6.adb (Rewrite_Function_Call): When rewriting an assignment
      	statement whose right-hand side is an inlined call, save a copy of the
      	original assignment subtree to preserve enough consistency for
      	Analyze_Assignment to proceed.
      
      	* sem_ch5.adb (Analyze_Assignment): Remove a costly copy of the
      	complete assignment subtree which is now unnecessary, as the expansion
      	of inlined call has been improved to preserve a consistent assignment
      	tree.  Note_Possible_Modification must be called only
      	after checks have been applied, or else unnecessary checks will
      	be generated.
      
      	* sem_util.adb (Note_Possible_Modification): Reorganise the handling
      	of explicit dereferences that do not Come_From_Source:
      	 - be selective on cases where we must go back to the dereferenced
      	   pointer (an assignment to an implicit dereference must not be
      	   recorded as modifying the pointer);
      	 - do not rely on Original_Node being present (Analyze_Assignment
      	   calls Note_Possible_Modification on a copied tree).
      
      	* sem_warn.adb (Check_References): When an unset reference to a pointer
      	that is never assigned is encountered, prefer '<pointer> may be null'
      	warning over '<pointer> is never assigned a value'.
      
      2004-04-05  Ramon Fernandez  <fernandez@gnat.com>
      
      	* tracebak.c: Change STOP_FRAME in ppc vxworks to be compliant with
      	the ABI.
      
      2004-04-05  Olivier Hainque  <hainque@act-europe.fr>
      
      	* 5gmastop.adb (Pop_Frame): Comment out the pragma Linker_Option for
      	libexc. We currently don't reference anything in this library and
      	linking it in triggers linker warnings we don't want to see.
      
      	* init.c: Update comments.
      
      From-SVN: r80431
      Arnaud Charlet committed
    • c-decl.c (build_compound_literal): Use TYPE_READONLY. · 4f976745
      	* c-decl.c (build_compound_literal): Use TYPE_READONLY.
      	* emit-rtl.c (set_mem_attributes_minus_bitpos): Likewise.
      	* objc/objc-act.c (adorn_decl, gen_declspecs): Likewise.
      	* c-typeck.c (decl_constant_value): Don't access DECL_INITIAL of a
      	PARM_DECL.
      	* calls.c (flags_from_decl_or_type): Use TYPE_READONLY and do so only
      	for a type.
      	* print-tree.c (print_node): Properly handle side-effects, readonly,
      	and constant flags.
      	* tree.c (build1_stat, build_expr_wfl): Only look at TREE_SIDE_EFFECTS
      	and TREE_CONSTANT if not a type.
      	* tree.h (IS_NON_TYPE_CODE_CLASS): New macro.
      	(IS_EXPR_CODE_CLASS): Write 'E', not 'e'.
      	(NON_TYPE_CHECK): New macro.
      	(TREE_SIDE_EFFECT, TREE_READONLY, TREE_CONSTANT: Add check.
      
      	* cp/init.c (decl_constant_value): Don't look at DECL_INITIAL
      	of PARM_DECL.
      	* cp/tree.c (bot_manip, build_min): Don't look at TREE_CONSTANT
      	or TREE_SIDE_EFFECTS of a type.
      
      	* ada/decl.c (gnat_to_gnu_entity): Use TYPE_READONLY.
      	* ada/utils.c (create_field_decl): Likewise.
      	* ada/utils2.c (build_unary_op, gnat_build_constructor): Likewise.
      
      From-SVN: r80430
      Richard Kenner committed
    • sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set to DWARF2_DEBUG unconditionally. · 5ffc4730
      	* config/sparc/sol2-bi.h (PREFERRED_DEBUGGING_TYPE): Set
      	to DWARF2_DEBUG unconditionally.
      	(ASM_DEBUG_SPEC): Set the default to --gdwarf2 unconditionally.
      
      From-SVN: r80425
      Eric Botcazou committed
    • re PR target/14548 (building Ada library incorrectly requires collect2 on mingw) · c38f02df
      	PR target/14548
      	* config.host: Set the shell variable host_can_use_collect2.
      	Set it to yes by default, and to no for alpha*-dec-*vms*,
      	i[34567]86-*-mingw32*, and powerpc-*-beos*.
      	* configure.ac: Set and substitute the shell variable collect2.
      	Give an error if use_collect2 is yes and host_can_use_collect2 is
      	no.
      	* Makefile.in (COLLECT2): Rename from USE_COLLECT2.  Change all
      	uses.  Initialize to @collect2@.
      	(STAGESTUFF): Remove $(USE_COLLECT2).
      	* config/alpha/x-vms (USE_COLLECT2): Don't set.
      	* config/i386/t-mingw32 (USE_COLLECT2): Likewise.
      	* config/rs6000/t-beos (USE_COLLECT2): Likewise.
      	* config/pa/t-pa64: Remove commented out USE_COLLECT2.
      	* configure: Regenerate.
      
      Co-Authored-By: Nathanael Nerode <neroden@gcc.gnu.org>
      
      From-SVN: r80422
      Ian Lance Taylor committed
    • simplify-rtx.c (simplify_binary_operation): Constant fold DIV, MOD, UDIV and… · 9d317251
      simplify-rtx.c (simplify_binary_operation): Constant fold DIV, MOD, UDIV and UMOD using div_and_round_double.
      
      
      	* simplify-rtx.c (simplify_binary_operation): Constant fold
      	DIV, MOD, UDIV and UMOD using div_and_round_double.
      
      From-SVN: r80420
      Roger Sayle committed
    • Daily bump. · e1c6f28d
      From-SVN: r80415
      GCC Administrator committed
  2. 04 Apr, 2004 7 commits
  3. 03 Apr, 2004 5 commits
  4. 02 Apr, 2004 10 commits
  5. 01 Apr, 2004 5 commits
    • re PR target/14040 (ARM cross compiler: error: could not split insn) · a406f566
      	PR target/14040
      	* genemit.c (gen_split): Change prototype of generated code.
      	* genrecog.c (write_action): Adjust prototype for and calls to
      	gen_split_*.
      	* gensupport.c (struct queue_elem): Add split field.
      	(queue_pattern): Return a value.  Clear the split field.
      	(process_rtx): Maintain an association between an insn and the
      	split generated from it for a define_insn_and_split.
      	(process_one_cond_exec): Generate a new split for a
      	define_insn_and_split.
      	* config/arm/arm-protos.h (arm_split_constant): Add insn
      	parameter.
      	(emit_constant_insn): New function.
      	(arm_gen_constant): Use it.
      	* config/arm/arm.md: Adjust calls to arm_split_constant.
      
      From-SVN: r80335
      Mark Mitchell committed
    • cgraph.c: Add overall comment. · 18c6ada9
      	* cgraph.c: Add overall comment.
      	(cgraph_inline_hash): New global variable.
      	(cgraph_create_node): Break out from ...
      	(cgraph_node): ... here.
      	(cgraph_edge): New function.
      	(cgraph_create_edge): New CALL_EXPR argument; some sanity checking.
      	(cgraph_remove_edge): Accept edge, intead of source and destination.
      	(cgraph_redirect_edge_callee): New.
      	(cgraph_remove_node): Update all new datastructures.
      	(cgraph_record_call, cgraph_remove_call): Kill.
      	(dump_cgraph_node): Break out from ... ; dump new datastructures.
      	(dump_cgraph): ... here.
      	(cgraph_function_possibly_inlined_p): Use new hashtable.
      	(cgraph_clone_edge, cgraph_clone_node): New.
      	* cgraph.h: Include hashtab.h
      	(struct cgraph_global_info): Kill cloned_times, inline_once, will_be_output
      	fields, add inlined_to pointer.
      	(cgraph_node): Add pointer to next_clone.
      	(cgraph_remove_edge, cgraph_create_edge): Update prototype.
      	(cgraph_remove_call, cgraph_record_call): Kill.
      	(cgraph_inline_hash): Declare.
      	(dump_cgraph_node, cgraph_edge, cg4raph_clone_edge, cgraph_clone_node,
      	cgraph_redirect_edge_callee): Declare.
      	(cgraph_create_edges, cgraph_inline_p): Update prorotype.
      	(cgraph_preserve_function_body_p, verify_cgraph, verify_cgraph_node,
      	cgraph_mark_inline_edge, cgraph_clone_inlined_nodes): Declare.
      	* cgraphunit.c: Add overall comment.
      	(cgraph_optimize_function): Kill.
      	(cgraph_assemble_pending_functions): Do not assemble inline clones.
      	(cgraph_finalize_function): Update call of cgraph_remove_node
      	(record_call_1): Record call sites.
      	(cgraph_create_edges): Accept node instead of decl argument.
      	(error_found): New static variable.
      	(verify_cgraph_node_1, verify_cgraph_node, verify_cgraph): New functions.
      	(cgraph_analyze_function): Update for new datastructures.
      	(cgraph_finalize_compilation_unit): Plug memory leak.
      	(cgraph_optimize_function): Kill.
      	(cgraph_expand_function): Do not use cgraph_optimize_function.
      	(INLINED_TIMES, SET_INLINED_TIMES, cgraph_inlined_into,
      	cgraph_inlined_callees): Kill.
      	(cgraph_remove_unreachable_nodes): Verify cgraph; update handling of
      	clones.
      	(estimate_growth): Simplify.
      	(cgraph_clone_inlined_nodes): New function.
      	(cgraph_mark_inline_edge): Re-implement.
      	(cgraph_mark_inline): Likewise.
      	(cgraph_check_inline_limits): Simplify.
      	(cgraph_recursive_inlining_p): New.
      	(update_callee_keys): Break out from ...
      	(cgraph_decide_inlining_of_small_functions): ... here; simplify.
      	(cgraph_decide_inlining, cgraph_decide_inlining_incrementally):
      	Likewise.
      	(cgraph_expand_all_functions):  Remove inline clones from the ordered
      	list.
      	(cgraph_preserve_function_body_p): New predicate.
      	(cgraph_optimize): Verify cgraph.
      	* function.h (struct function): Add fields saved_tree/saved_args.
      	* timevar.def (TV_CGRAPH_VERIFY): Use verifier.
      	* toplev.c (rest_of_compilation): Do not free cfun.
      	* tree-inline.c: Include function.h
      	(struct inline_data): Add saving_p field; replace decl/current_decl by
      	node/current_node.
      	(insert_decl_map): New function.
      	(copy_body_r): Handle saving; update cgraph datastructure.
      	(copy_body): Handle recursive inlining.
      	(initialize_inlined_parameters): Likewise.
      	(expand_call_inline): Propagate node attributes; update cgraph.
      	(optimize_inline_calls): Verify that datastructure still match.
      	(save_body): New function.
      	* tree-inline.h (save_body): New.
      	* tree-optimize.c (tree_rest_of_compilation): preserve function body; do inlining.
      	* langhooks-def.c (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): New.
      	* langhooks.c (lang_hooks): Add update_decl_after_saving.
      
      	* cp-lang. (LANG_HOOKS_UPDATE_DECL_AFTER_SAVING): Define.
      	* cp-tree.h (cp_update_decl_after_saving): Declare.
      	* tree.c (cp_update_decl_after_saving): Define.
      
      	* Make-lang.in (com.o): Add dependnecy on function.h
      	* com.c: Include function.h
      	(finish_function): Clear DECL_STRUCT_FUNCTION.
      
      	* utils.c: Include function.h
      	(end_subprog_body): Clear DECL_STRUCT_FUNCTION.
      
      From-SVN: r80334
      Jan Hubicka committed
    • re PR c++/14803 (Spurious warnings on conversion of pointers to member functions) · e8632777
      	PR c++/14803
      	* typeck.c (get_delta_difference): Call fold before returning the
      	value.
      
      	PR c++/14803
      	* g++.dg/inherit/ptrmem1.C: New test.
      
      From-SVN: r80331
      Mark Mitchell committed
    • re PR target/14702 (wrong definitions of instructions mmx_pshufw, sse2_pshufd,… · 717415ad
      re PR target/14702 (wrong definitions of instructions mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw)
      
              PR target/14702
              * config/i386/i386.md: fix source operand constraints in
              mmx_pshufw, sse2_pshufd, sse2_pshuflw, sse2_pshufhw
      
      From-SVN: r80330
      Serge Belyshev committed
    • * fold-const.c (folda): Preserve types of comparisons. · af5bdf6a
      From-SVN: r80327
      Waldek Hebisch committed