Joseph Myers [Tue, 12 Oct 2010 11:25:16 +0000 (12:25 +0100)]
flag-types.h: New.
* flag-types.h: New.
* Makefile.in (TH_H): Include $(OPTIONS_H) instead of $(FLAGS_H).
(FLAGS_H): Include flag-types.h. Include $(OPTIONS_H) instead of
options.h.
(OPTIONS_H): Define.
(c-family/c-opts.o, lto-opts.o, opts.o): Use $(OPTIONS_H) instead
of options.h.
* configure.ac (tm_include_list): Include options.h not flags.h.
* configure: Regenerate.
* flags.h: Include flag-types.h. Include options.h at top of file
again.
(enum debug_info_type, enum debug_info_level, enum
debug_info_usage, enum symbol_visibility, struct visibility_flags,
enum ira_algorithm, enum ira_region, enum excess_precision, enum
graph_dump_types, enum stack_check_type, enum
warn_strict_overflow_code): Move to flag-types.h
* opth-gen.awk: Include flag-types.h in options.h.
ada:
* gcc-interface/Make-lang.in (ada/misc.o): Use $(OPTIONS_H)
instead of options.h.
java:
* Make-lang.in (java/lang.o): Use $(OPTIONS_H) instead of
options.h.
Arnaud Charlet [Tue, 12 Oct 2010 11:00:42 +0000 (13:00 +0200)]
[multiple changes]
2010-10-12 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Clarify that 'Old can be used in preconditions and
postcondition pragmas.
2010-10-12 Robert Dewar <dewar@adacore.com>
* errout.ads, erroutc.adb: The # insertion now handles from in place of
at.
* exp_prag.adb (Expand_Pragma_Check): Suppress generated default
message if new switch Exception_Locations_Suppressed is set.
(Expand_Pragma_Check): Revised wording for default message for case
of precondition or postcondition.
* namet.ads, namet.adb (Build_Location_String): New procedure.
* opt.ads (List_Inherited_Pre_Post): New flag.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Add call to
list inherited pre/post aspects.
* sem_ch13.adb (Analyze_Aspect_Specification): Improve generation of
messages for precondition/postcondition cases.
* sem_ch6.adb (Process_PPCs): General cleanup, and list inherited PPC's
if flag List_Inherited_Pre_Post is set True.
(Process_PPCs): Add initial handling for inherited preconditions
(List_Inherited_Pre_Post_Aspects): New procedure
* sem_ch6.ads (List_Inherited_Pre_Post_Aspects): New procedure
* sem_disp.adb (Inherited_Subprograms): New function
* sem_disp.ads (Inherited_Subprograms): New function
* sem_prag.adb (Check_Duplicate_Pragma): Clean up handling of
pre/postcondition.
(Check_Precondition_Postcondition): Check for inherited aspects
* sem_warn.adb: Process -gnatw.l/w.L setting List_Inherited_Pre_Post
* sinfo.ads, sinfo.adb (Split_PPC): New flag.
* sinput.ads, sinput.adb (Build_Location_String): New function.
* usage.adb: Add line for -gnatw.l/-gnatw.L
Arnaud Charlet [Tue, 12 Oct 2010 10:49:00 +0000 (12:49 +0200)]
[multiple changes]
2010-10-12 Pascal Obry <obry@adacore.com>
* adaint.c (__gnat_number_of_cpus): Add implementation for Windows.
2010-10-12 Arnaud Charlet <charlet@adacore.com>
* make.adb (Globalize): New procedure.
(Compile): Set Do_Codepeer_Globalize_Step when -gnatC is used.
(Gnatmake): Call Globalize when needed.
(Process_Restrictions_Or_Restriction_Warnings): Ignore Restrictions
pragmas in CodePeer mode.
(Adjust_Global_Switches): Set No_Initialize_Scalars in CodePeer mode,
to generate simpler and consistent code.
2010-10-12 Bob Duff <duff@adacore.com>
* exp_util.adb (Remove_Side_Effects): Disable previous change,
can cause side effects to be duplicated.
Arnaud Charlet [Tue, 12 Oct 2010 10:38:39 +0000 (12:38 +0200)]
[multiple changes]
2010-10-12 Thomas Quinot <quinot@adacore.com>
* a-exetim.ads: Minor reformatting.
* g-socket.ads (Port_Type): Better definition corresponding to the
actual standard range.
* exp_ch5.adb: Add comment.
* sem_aux.adb: Minor reformatting.
2010-10-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch12.adb (Copy_Generic_Node): If node is a string literal, remove
string_literal_subtype so that a new one can be constructed in the
scope of the instance.
Arnaud Charlet [Tue, 12 Oct 2010 10:32:58 +0000 (12:32 +0200)]
[multiple changes]
2010-10-12 Robert Dewar <dewar@adacore.com>
* exp_ch9.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma
* gnat_rm.texi (pragma Suppress_All): Document new placement rules
* par-prag.adb (P_Pragma, case Suppress_All): Set
Has_Pragma_Suppress_All flag.
* sem_prag.adb (Has_Pragma_Priority): New name for Has_Priority_Pragma
(Analyze_Pragma, case Suppress_All): Remove placement check
(Process_Compilation_Unit_Pragmas): Use Has_Pragma_Suppress_All flag
* sem_prag.ads (Process_Compilation_Unit_Pragmas): Update documentation
* sinfo.adb (Has_Pragma_Suppress_All): New flag
(Has_Pragma_Priority): New name for Has_Priority_Pragma
* sinfo.ads (Has_Pragma_Suppress_All): New flag
(Has_Pragma_Priority): New name for Has_Priority_Pragma
2010-10-12 Arnaud Charlet <charlet@adacore.com>
* lib-xref.ads: Mark j/J as reserved for C++ classes.
2010-10-12 Jose Ruiz <ruiz@adacore.com>
* a-exetim-default.ads, a-exetim-posix.adb: New.
* gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS for linux): Use the
POSIX Realtime support to implement CPU clocks.
(EXTRA_GNATRTL_TASKING_OBJS for linux): Add the a-exetim.o object
to the tasking library.
(THREADSLIB): Make the POSIX.1b Realtime Extensions library (librt)
available for shared libraries.
* gcc-interface/Make-lang.in: Update dependencies.
2010-10-12 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post, break
apart expressions with AND THEN clauses into separate pragmas.
* sinput.ads, sinput.adab (Get_Logical_Line_Number_Img): New function.
Robert Dewar [Tue, 12 Oct 2010 10:20:00 +0000 (10:20 +0000)]
par-ch13.adb (P_Aspect_Specifications): Fix handling of 'Class aspects
2010-10-12 Robert Dewar <dewar@adacore.com>
* par-ch13.adb (P_Aspect_Specifications): Fix handling of 'Class aspects
* sem_ch13.adb (Analyze_Aspect_Specifications): Fix bad Sloc on aspects
* sem_prag.adb (Fix_Error): Only change pragma names for pragmas from
aspects.
(Check_Optional_Identifier): Handle case of direct arguments
(Chain_PPC): Test for abstract case, giving appropriate messages
* sinfo.ads, sinfo.adb (Class_Present): Allowed on N_Pragma node
Arnaud Charlet [Tue, 12 Oct 2010 09:42:31 +0000 (11:42 +0200)]
[multiple changes]
2010-10-12 Robert Dewar <dewar@adacore.com>
* par-endh.adb (Check_End): Don't swallow semicolon or aspects after
END RECORD.
* sem_attr.adb (Eval_Attribute): Code clean up.
2010-10-12 Robert Dewar <dewar@adacore.com>
* par-ch12.adb (P_Formal_Private_Type_Definition): Improve error
messages and recovery for case of out of order Abstract/Tagged/Private
keywords.
* par-ch3.adb (P_Type_Declaration): Improve error messages and recovery
for case of out of order Abstract/Tagged/Private keywords.
2010-10-12 Ed Schonberg <schonberg@adacore.com>
* inline.adb (Analyze_Inlined_Bodies): Restrict previous change to case
where child unit is main unit of compilation.
Arnaud Charlet [Tue, 12 Oct 2010 09:10:13 +0000 (11:10 +0200)]
[multiple changes]
2010-10-12 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb (Move_Aspects): New procedure.
* atree.ads, atree.adb: (New_Copy): Does not copy aspect specifications
* sinfo.ads, par-ch3.adb, par-ch6.adb, par-ch7.adb, par-ch9.adb,
par-endh.adb, par-ch13.adb, par-ch12.adb: Modify grammar to include
aspect specifications.
Recognize aspect specifications for all cases
* par.adb: Recognize aspect specifications for all cases
* sem_ch12.ads, sem_ch12.adb (Copy_Generic_Node): Copies aspect
specifications.
* sem_ch3.adb (Analyze_Subtype_Declaration): Improve patch to freeze
generic actual types (was missing some guards before).
* sem_ch9.adb (Analyze_Single_Protected_Declaration): Copy aspects to
generated object
(Analyze_Single_Task_Declaration): Copy aspects to generated object
2010-10-12 Eric Botcazou <ebotcazou@adacore.com>
* usage.adb (usage): Adjust line for -gnatn switch.
2010-10-12 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Eval_Attribute): Only leave change active for aspect
spec case.
2010-10-12 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Declaration): If this is a
declaration of a null procedure resolve the types of the profile of the
generated null body now.
Jakub Jelinek [Tue, 12 Oct 2010 06:24:07 +0000 (08:24 +0200)]
rtl.h: Include hashtab.h.
* rtl.h: Include hashtab.h.
(iterative_hash_rtx): New prototype.
* rtl.c (iterative_hash_rtx): New function.
* dwarf2out.c (dw_loc_list_node): Add hash and emitted fields.
(output_loc_list): Return immediately if emitted is set,
set it.
(hash_loc_operands, hash_locs, hash_loc_list,
compare_loc_operands, compare_locs, loc_list_hash, loc_list_eq,
optimize_location_lists_1, optimize_location_lists): New function.
(dwarf2out_finish): Call optimize_location_lists.
* Makefile.in (RTL_BASE_H): Depend on $(HASHTAB_H).
Ralf Wildenhues [Tue, 12 Oct 2010 05:03:52 +0000 (05:03 +0000)]
Fix PR testsuite/45974 by reverting r165323 for now.
gcc/:
PR testsuite/45974
Revert:
* Makefile.in ($(lang_checks_parallel))
($(lang_checks_parallelized)): Use single quotes for
$(RUNTESTFLAGS), to allow passing quoted content.
Uros Bizjak [Mon, 11 Oct 2010 20:32:15 +0000 (22:32 +0200)]
i386.md (movmem<mode>): Macroize expander from movmem{si,di} using SWI48 mode iterator.
* config/i386/i386.md (movmem<mode>): Macroize expander from
movmem{si,di} using SWI48 mode iterator.
(*strmovsi_1): Macroize insn pattern from *strmovsi_1 and
*strmovsi_rex_1 using P mode iterator.
(*strmovhi_1): Ditto from *strmovhi_1 and *strmovhi_rex_1.
(*strmovqi_1): Ditto from *strmovqi_1 and *strmovqi_rex_1.
(*rep_movsi): Ditto from *rep_movsi and *rep_movsi_rex64.
(*rep_movqi): Ditto from *rep_movqi and *rep_movqi_rex64.
(setmem<mode>): Macroize expander from setmem{si,di} using
SWI48 mode iterator.
(*strsetsi_1): Macroize insn pattern from *strsetsi_1 and
*strsetsi_rex_1 using P mode iterator.
(*strsethi_1): Ditto from *strsethi_1 and *strsethi_rex_1.
(*strsetqi_1): Ditto from *strsetqi_1 and *strsetqi_rex_1.
(*rep_stossi): Ditto from *rep_stossi and *rep_stossi_rex64.
(*rep_stosqi): Ditto from *rep_stosqi and *rep_stosqi_rex64.
(*cmpstrnqi_nz_1): Ditto from *cmpstrnqi_nz_1 and *cmpstrnqi_nz_rex_1.
(*cmpstrnqi_1): Ditto from *cmpstrnqi_1 and *cmpstrnqi_rex_1.
(strlen<mode>): Macroize expander from strlen{si,di} using SWI48x
mode iterator.
(*strlenqi_1): Macroize insn pattern from *strlenqi_1 and
*strlenqi_rex_1 using P mode iterator.
Bernd Schmidt [Mon, 11 Oct 2010 19:39:37 +0000 (19:39 +0000)]
re PR bootstrap/45445 (ARM bootstrap failure: comparison failures after stage 3)
PR bootstrap/45445
* ira-lives.c (mark_pseudo_reg_live, mark_pseudo_reg_dead): New
static functions.
(mark_ref_live, mark_ref_dead): Use them.
(make_pseudo_conflict): New arg ORIG_DREG. All callers changed.
Save the original reg, and use the new functions.
(check_and_make_def_use_conflict): New arg ORIG_DREG. All callers
changed.
(check_and_make_def_conflict): Save the original reg.
Anatoly Sokolov [Mon, 11 Oct 2010 17:41:24 +0000 (21:41 +0400)]
target.def (preferred_reload_class): New hook.
* target.def (preferred_reload_class): New hook.
* doc/tm.texi.in (TARGET_PREFERRED_RELOAD_CLASS): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_preferred_reload_class): New function.
* targhooks.h (default_preferred_reload_class): Declare.
* reload.c (find_dummy_reload): Change preferred_class variable type
from enum reg_class to reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS
target hook.
(find_reloads): Change goal_alternative array type from int to
reg_class_t. Use TARGET_PREFERRED_RELOAD_CLASS target hook.
(push_reload, find_reloads_address_part): Use
TARGET_PREFERRED_RELOAD_CLASS target hook.
* reload1.c (emit_input_reload_insns): Ditto.
* ira-costs.c (copy_cost): Use TARGET_PREFERRED_RELOAD_CLASS target
hook. Change rclass argument and secondary_class variable types from
'enum reg_class' to reg_class_t.
* config/i386/i386.h (PREFERRED_RELOAD_CLASS): Remove.
* config/i386/i386-protos (ix86_preferred_reload_class): Remove.
* config/i386/i386.c (ix86_preferred_reload_class): Make static.
Change regclass argument and result types from enum reg_class to
reg_class_t.
(TARGET_PREFERRED_RELOAD_CLASS): Define.
Arnaud Charlet [Mon, 11 Oct 2010 15:47:23 +0000 (17:47 +0200)]
[multiple changes]
2010-10-11 Robert Dewar <dewar@adacore.com>
* debug.adb: Remove d.A flag to delay address clause (not needed any
more). Add d.A flag to enable tree read/write of aspect spec hash table
* sem_ch13.adb (Analyze_Aspect_Specifications): Properly delay address
clause.
(Rep_Item_Too_Late): No need for special processing for delayed rep
items (and it caused difficulties in the address case).
* tree_gen.adb: Only write aspect spec hash table if -gnatd.A is set
* tree_in.adb: Only write aspect spec hash table if -gnatd.A is set
Ian Lance Taylor [Mon, 11 Oct 2010 14:56:39 +0000 (14:56 +0000)]
tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
* tree.h (TREE_THIS_NOTRAP): Use TREE_CHECK5.
* emit-rtl.c (set_mem_attributes_minus_bitpos): Only check
TREE_THIS_NOTRAP when appropriate.
(get_spill_slot_decl): Don't set TREE_THIS_NOTRAP on the new
VAR_DECL.
* gimplify.c (gimplify_expr): Copy NOTRAP from INDIRECT_REF to
newly created MEM_REF.
* pt.c (tsubst_default_argument): Handle DEFAULT_ARG.
(tsubst_default_arguments): Only do this once for cloned fns.
(tsubst): Use typedef_variant_p. Handle LANG_TYPE. Don't
handle expressions.
(tsubst_expr): Avoid calling tsubst_expr for non-expressions.
(tsubst_copy_and_build): Likewise.
(tsubst_initializer_list): Likewise.
(tsubst_copy): Change default to gcc_unreachable. Handle
OVERLOAD and PTRMEM_CST.
Andi Kleen [Mon, 11 Oct 2010 13:06:50 +0000 (13:06 +0000)]
Build compiler checksum from object files v2
gcc/
2010-10-07 Andi Kleen <ak@linux.intel.com>
* Makefile.in (MOSTLYCLEANFILES): Remove cc1*dummy, add
checksum-options.
(checksum-options): Add.
(cc1-dummy): Remove.
(cc1-checksum): Change to run checksum over object files
and options only.
* dummy-checksum.c: Remove.
* genchecksum.c: Update copyright.
(usage): Allow multiple arguments.
(BLOCKSIZE): Add.
(dosum): Change for incremental checksum. Remove C output.
(main): Iterate over all argument files. Add C output.
gcc/cp
2010-10-07 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (c++_OBJS): Remove dummy-checksum.o.
(cc1plus-dummy): Remove.
(cc1plus-checksum): Change to run checksum over object files
and options only.
gcc/objc
2010-10-07 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (cc1obj-dummy): Remove.
(cc1obj-checksum): Change to run checksum over object files
and options only.
gcc/objcp
2010-10-07 Andi Kleen <ak@linux.intel.com>
* Make-lang.in (cc1objplus-dummy): Remove.
(cc1objplus-checksum): Change to run checksum over object files
and options only.
Joseph Myers [Mon, 11 Oct 2010 12:28:40 +0000 (13:28 +0100)]
params.c (set_param_value_internal): New.
* params.c (set_param_value_internal): New.
(set_param_value): Use set_param_value_internal.
(maybe_set_param_value, set_default_param_value): New.
* params.h (PARAM_VALUE, PARAM_SET_P): Make into rvalues.
(maybe_set_param_value, set_default_param_value): Declare.
* config/arm/arm.c (arm_option_override): Use
maybe_set_param_value.
* config/i386/i386.c (ix86_option_override_internal): Use
maybe_set_param_value.
* config/ia64/ia64.c (ia64_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(ia64_option_optimization): Move some code to
ia64_option_default_params.
* config/picochip/picochip.c (picochip_option_override): Use
maybe_set_param_value.
* config/rs6000/rs6000.c (rs6000_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(rs6000_option_override_internal): Use maybe_set_param_value.
(rs6000_option_optimization): Move some code to
rs6000_option_default_params.
* config/s390/s390.c (s390_option_override): Use
maybe_set_param_value.
* config/sh/sh.c (sh_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(sh_option_optimization): Move some code to
sh_option_default_params.
* config/sparc/sparc.c (sparc_option_override): Use
maybe_set_param_value.
* config/spu/spu.c (spu_option_default_params,
TARGET_OPTION_DEFAULT_PARAMS): New.
(spu_option_optimization): Move some code to
spu_option_default_params.
(spu_option_override): Use maybe_set_param_value.
* doc/tm.texi.in (TARGET_OPTION_DEFAULT_PARAMS): New @hook.
* doc/tm.texi: Regenerate.
* ggc-common.c (init_ggc_heuristics): Use set_default_param_value.
* opts.c (init_options_once): Use PARAM_VALUE not direct access to
compiler_params.
(default_options_optimization): Use maybe_set_param_value.
(finish_options): Use maybe_set_param_value.
* target.def (target_option.default_params): New hook.
* toplev.c (general_init): Call
targetm.target_option.default_params.
Arnaud Charlet [Mon, 11 Oct 2010 10:43:04 +0000 (12:43 +0200)]
[multiple changes]
2010-10-11 Robert Dewar <dewar@adacore.com>
* g-htable.ads (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
* s-htable.adb (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
* s-htable.ads (Get_First): New procedural version for Simple_HTable
(Get_Next): New procedural version for Simple_HTable
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Propagate_Discriminants): To gather the components of a
variant part, use the association list of the subaggregate, which
already includes the values of the needed discriminants.
2010-10-11 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb: Changes to accomodate aspect delay
(Tree_Write): New procedure.
* atree.ads, atree.adb: Flag3 is now Has_Aspects and applies to all
nodes.
* atree.h: Flag3 is now Has_Aspects and applies to all nodes
* debug.adb: Add debug flag gnatd.A
* einfo.adb (Has_Delayed_Aspects): New flag
(Get_Rep_Item_For_Entity): New function
* einfo.ads (Has_Delayed_Aspects): New flag
(Get_Rep_Item_For_Entity): New function
* exp_ch13.adb (Expand_N_Freeze_Entity): Insert delayed aspects into
tree.
* exp_ch3.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb: New calling
sequence for Freeze_Entity.
* freeze.ads, freeze.adb (Freeze_Entity): Takes node rather than source
ptr. All calls are changed to this new interface.
(Freeze_And_Append): Same change
(Freeze_Entity): Evaluate deferred aspects
* sem_attr.adb: New calling sequence for Freeze_Entity
(Eval_Attribute): Don't try to evaluate attributes of unfrozen types
when we are in spec expression preanalysis mode.
* sem_ch10.adb: New calling sequence for Freeze_Entity
* sem_ch11.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch12.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch13.adb (Analyze_Aspect_Specifications): Major rewrite to
accomodate delaying aspect evaluation to the freeze point.
(Duplicate_Clause): Simplify using Get_Rep_Item_For_Entity, and also
accomodate delayed aspects.
(Rep_Item_Too_Late): Deal with delayed aspects case
* sem_ch13.ads (Rep_Item_Too_Late): Document handling of delayed aspects
* sem_ch3.adb (Analyze_Subtype_Declaration): Make sure that generic
actual types are properly frozen (this is needed because of the new
check in Eval_Attribute that declines to evaluate attributes
for unfrozen types).
Simplify analysis of aspect specifications now that the flag
Has_Aspects applies to all nodes (no need to save aspects).
* sem_ch3.ads (Preanalyze_Spec_Expression): Note use for delayed aspects
* sem_ch5.adb: Simplify analysis of aspect specifications now that the
flag Has_Aspects applies to all nodes (no need to save aspects).
New calling sequence for Freeze_Entity.
* sem_ch9.adb, sem_ch7.adb, sem_ch6.adb: Simplify analysis of aspect
specifications now that the flag Has_Aspects applies to all nodes
(no need to save aspects).
New calling sequence for Freeze_Entity
* sem_prag.adb (Check_Duplicate_Pragma): Simplify using
Get_Rep_Item_For_Entity
(Get_Pragma_Arg): Moved to Sinfo
* sinfo.ads, sinfo.adb (Aspect_Rep_Item_: New field
(Is_Delayed_Aspect): New flag
(Next_Rep_Item): Document use for aspects
(Get_Pragma_Arg): Moved here from Sem_Prag
* sprint.adb (Sprint_Aspect_Specifications): Now called after semicolon
is output and removes semicolon (simplifies interface).
(Sprint_Node_Actual): Simplify handling of aspects now that Has_Aspects
applies to any node.
* tree_gen.adb: Write contents of Aspect_Specifications hash table
* tree_in.adb: Read and initialize Aspect_Specifications hash table
* treepr.adb (Print_Node): Print Has_Aspects flag
(Print_Node): Print Aspect_Specifications in Has_Aspects set
* xtreeprs.adb: Remove obsolete references to Flag1,2,3
Arnaud Charlet [Mon, 11 Oct 2010 10:34:53 +0000 (12:34 +0200)]
[multiple changes]
2010-10-11 Robert Dewar <dewar@adacore.com>
* aspects.ads, aspects.adb: Major revision of this package for 2nd
stage of aspects implementation.
* gcc-interface/Make-lang.in: Add entry for aspects.o
* gcc-interface/Makefile.in: Add aspects.o to GNATMAKE_OBJS
* par-ch13.adb (Aspect_Specifications_Present): New function
(P_Aspect_Specifications): New procedure
* par-ch3.adb (P_Type_Declaration): Handle aspect specifications
(P_Derived_Type_Def_Or_Private_Ext_Decl): Handle aspect specifications
(P_Identifier_Declarations): Handle aspect specifications
(P_Component_Items): Handle aspect specifications
(P_Subtype_Declaration): Handle aspect specifications
* par-ch6.adb (P_Subprogram): Handle aspect specifications
* par-ch9.adb (P_Entry_Declaration): Handle aspect specifications
* par.adb (Aspect_Specifications_Present): New function
(P_Aspect_Specifications): New procedure
* sem.adb (Analyze_Full_Type_Declaration): New name for
Analyze_Type_Declaration.
(Analyze_Formal_Package_Declaration): New name (add _Declaration)
(Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
(Analyze_Protected_Type_Declaration): New name (add _Declaration)
(Analyze_Single_Protected_Declaration): New name (add _Declaration)
(Analyze_Single_Task_Declaration): New name (add _Declaration)
(Analyze_Task_Type_Declaration): New name (add _Declaration)
* sem_cat.adb (Analyze_Full_Type_Declaration): New name for
Analyze_Type_Declaration.
* sem_ch11.adb (Analyze_Exception_Declaration): Analyze aspect
specifications.
* sem_ch12.adb (Analyze_Formal_Object_Declaration): Handle aspect
specifications.
(Analyze_Formal_Package_Declaration): New name (add _Declaration)
(Analyze_Formal_Package_Declaration): Handle aspect specifications
(Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
(Analyze_Formal_Subprogram_Declaration): Handle aspect specifications
(Analyze_Formal_Type_Declaration): Handle aspect specifications
(Analyze_Generic_Package_Declaration): Handle aspect specifications
(Analyze_Generic_Subprogram_Declaration): Handle aspect specifications
(Analyze_Package_Instantiation): Handle aspect specifications
(Analyze_Subprogram_Instantiation): Handle aspect specifications
* sem_ch12.ads (Analyze_Formal_Package_Declaration): New name (add
_Declaration).
(Analyze_Formal_Subprogram_Declaration): New name (add _Declaration)
* sem_ch13.adb (Analyze_Aspect_Specifications): New procedure
(Duplicate_Clause): New function, calls to this function are added to
processing for all aspects.
* sem_ch13.ads (Analyze_Aspect_Specifications): New procedure
* sem_ch3.adb (Analyze_Full_Type_Declaration): New name for
Analyze_Type_Declaration.
* sem_ch3.ads (Analyze_Full_Type_Declaration): New name for
Analyze_Type_Declaration.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Analyze aspect
specifications.
(Analyze_Subprogram_Declaration): Analyze aspect specifications
* sem_ch7.adb (Analyze_Package_Declaration): Analyze aspect
specifications.
(Analyze_Private_Type_Declaration): Analyze aspect specifications
* sem_ch9.adb (Analyze_Protected_Type_Declaration): Analyze aspect
specifications.
(Analyze_Protected_Type_Declaration): New name (add _Declaration)
(Analyze_Single_Protected_Declaration): Analyze aspect specifications
(Analyze_Single_Protected_Declaration): New name (add _Declaration)
(Analyze_Single_Task_Declaration): Analyze aspect specifications
(Analyze_Single_Task_Declaration): New name (add _Declaration)
(Analyze_Task_Type_Declaration): Analyze aspect specifications
(Analyze_Task_Type_Declaration): New name (add _Declaration)
* sem_ch9.ads (Analyze_Protected_Type_Declaration): New name (add
_Declaration).
(Analyze_Single_Protected_Declaration): New name (add _Declaration)
(Analyze_Single_Task_Declaration): New name (add _Declaration)
(Analyze_Task_Type_Declaration): New name (add _Declaration)
* sem_prag.adb: Use Get_Pragma_Arg systematically so that we do not
have to generate unnecessary pragma argument associations (this matches
the doc).
Throughout do changes to accomodate aspect specifications, including
specializing messages, handling the case of not going through all
homonyms, and allowing for cancellation.
* sinfo.ads, sinfo.adb: Clean up obsolete documentation for Flag1,2,3
(Aspect_Cancel): New flag
(From_Aspect_Specification): New flag
(First_Aspect): Removed flag
(Last_Aspect): Removed flag
* sprint.adb (Sprint_Aspect_Specifications): New procedure
(Sprint_Node_Actual): Add calls to Sprint_Aspect_Specifications
2010-10-11 Bob Duff <duff@adacore.com>
* sem_res.adb (Resolve_Actuals): Minor change to warning messages so
they match in Ada 95, 2005, and 2012 modes, in the case where the
language didn't change. Same thing for the run-time exception message.
2010-10-11 Javier Miranda <miranda@adacore.com>
* debug.adb Document that switch -gnatd.p enables the CIL verifier.
Arnaud Charlet [Mon, 11 Oct 2010 10:24:08 +0000 (12:24 +0200)]
[multiple changes]
2010-10-11 Javier Miranda <miranda@adacore.com>
* debug.adb: Update comment.
2010-10-11 Vincent Celier <celier@adacore.com>
* gnatcmd.adb (GNATCmd): Set Opt.Unchecked_Shared_Lib_Imports to True
unconditionally as for "gnat make" the projects are not processed in
the GNAT driver.
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.ads, sem_ch10.adb (Load_Needed_Body): Add parameter to
suppress semantic analysis of the body when inlining, prior to
verifying that the body does not have a with_clause on a descendant
unit.
* inline.adb (Analyze_Inlined_Bodies): Do not inline a body if it has a
with_clause on a descendant.
(Scope_In_Main_Unit): Simplify.
Arnaud Charlet [Mon, 11 Oct 2010 10:13:26 +0000 (12:13 +0200)]
[multiple changes]
2010-10-11 Javier Miranda <miranda@adacore.com>
* exp_ch6.adb (Expand_Call): For VM platforms, add missing expansion of
tag check in case of dispatching call through "=".
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Subprogram_Declaration): In Ada2012 an incomplete
type is legal in the profile of any basic declaration.
* sem_ch6.adb (Analyze_Return_Type, Process_Formals): In Ada2012 an
incomplete type, including a limited view of a type, is legal in the
profile of any subprogram declaration.
If the type is tagged, its use is also legal in a body.
* sem_ch10.adb (Install_Limited_With_Clause): Do not process context
item if misplaced.
(Install_Limited_Withed_Unit): Refine legality checks when both the
limited and the non-limited view of a package are visible in the context
of a unit.
If this is not an error case, the limited view is ignored.
freeze.adb (Freeze_Entity): In Ada2012, an incomplete type is legal in
access to subprogram declarations
Arnaud Charlet [Mon, 11 Oct 2010 10:07:06 +0000 (12:07 +0200)]
[multiple changes]
2010-10-11 Arnaud Charlet <charlet@adacore.com>
* sem_ch3.adb, exp_ch6.adb
(Make_Build_In_Place_Call_In_Anonymous_Context,
Make_Build_In_Place_Call_In_Assignment,
Make_Build_In_Place_Call_In_Object_Declaration): Fix calls to
Add_Task_Actuals_To_Build_In_Place_Call in case of No_Task_Hierarchy
restriction.
(Access_Definition): Add missing handling of No_Task_Hierarchy.
2010-10-11 Javier Miranda <miranda@adacore.com>
* exp_util.adb (Remove_Side_Effects): No action needed for renamings of
class-wide expressions.
Arnaud Charlet [Mon, 11 Oct 2010 09:48:35 +0000 (11:48 +0200)]
[multiple changes]
2010-10-11 Javier Miranda <miranda@adacore.com>
* sem_ch10.adb (Analyze_With_Clause): Add missing test to ensure
availability of attribute Instance_Spec.
2010-10-11 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Disable codepeer mode if
checking syntax only or in ASIS mode.
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Delayed_Subprogram): Abstract subprograms may also
need a freeze node if some type in the profile has one.
* gcc-interface/trans.c (case N_Abstract_Subprogram_Declaration): If
entity has a freeze node, defer elaboration.
2010-10-11 Emmanuel Briot <briot@adacore.com>
* prj-nmsc.adb (Check_Aggregate_Project): Add support for finding all
aggregated projects.
Arnaud Charlet [Mon, 11 Oct 2010 09:30:15 +0000 (11:30 +0200)]
[multiple changes]
2010-10-11 Gary Dismukes <dismukes@adacore.com>
* sem_disp.adb (Check_Dispatching_Operation): Revise test for warning
about nondispatching subprograms to use In_Same_List (reducing use of
Parent links).
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* xr_tabls.adb, sem_res.adb, lib-xref.adb, lib-xref.ads: Use s for
reference in a static call.
2010-10-11 Steve Baird <baird@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, case Type_Key): Type_Key
attribute should always be transformed into a string literal in
Analyze_Attribute.
* par-ch4.adb: Type_Key attribute's type is String; update value of
Is_Parameterless_Attribute constant to reflect this.
* sem_attr.adb (Analyze_Attribute): Recognize Type_Key attribute and
rewrite it as a string literal (attribute value is always known
statically).
* snames.ads-tmpl: Add entries for Type_Key attribute.
Arnaud Charlet [Mon, 11 Oct 2010 09:25:26 +0000 (11:25 +0200)]
[multiple changes]
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* lib-xref.adb (Output_References): Common handling for objects and
formals of an anonymous access type.
2010-10-11 Eric Botcazou <ebotcazou@adacore.com>
* make.adb (Scan_Make_Arg): Also pass -O to both compiler and linker.
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb: Fix check for illegal equality declaration in Ada2012
2010-10-11 Gary Dismukes <dismukes@adacore.com>
* sem_disp.adb (Check_Dispatching_Operation): When testing for issuing
a warning about subprograms of a tagged type not being dispatching,
limit this to cases where the tagged type and the subprogram are
declared within the same declaration list.
2010-10-11 Jerome Lambourg <lambourg@adacore.com>
* projects.texi, prj-attr.adb: Add new attribute documentation_dir.
* exp_util.adb (Safe_Prefixed_Reference): If the prefix is an explicit
dereference then do not exclude dereferences of access-to-constant
types to handle them as constant view of variables (and hence remove
side effects when required).
* sem_res.adb (Resolve_Slice): Ensure that side effects in the bounds
are properly handled.
Arnaud Charlet [Mon, 11 Oct 2010 09:04:40 +0000 (11:04 +0200)]
[multiple changes]
2010-10-11 Robert Dewar <dewar@adacore.com>
* sem_prag.adb, sem_aggr.adb, sprint.adb: Minor reformatting.
2010-10-11 Javier Miranda <miranda@adacore.com>
* exp_ch5.ads, exp_ch6.ads (Expand_N_Extended_Return_Statement): Moved
to exp_ch6.
(Expand_N_Simple_Return_Statement): Moved to exp_ch6.
* exp_ch5.adb, exp_ch6.adb (Expand_Non_Function_Return): Moved to
exp_ch6.
(Expand_Simple_Function_Return): Move to exp_ch6.
(Expand_N_Extended_Return_Statement): Moved to exp_ch6.
(Expand_N_Simple_Return_Statement): Moved to exp_ch6.
Arnaud Charlet [Mon, 11 Oct 2010 08:44:15 +0000 (10:44 +0200)]
[multiple changes]
2010-10-11 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error
for AI05-0033 in CodePeer mode.
2010-10-11 Robert Dewar <dewar@adacore.com>
* atree.h, atree.ads, atree.adb (Flag3): New flag (replaces Unused_1)
* csinfo.adb: Aspect_Specifications is a new special field
* einfo.adb (Flag3): New unused flag
* exp_util.adb (Insert_Actions): Add processing for
N_Aspect_Specification.
* sem.adb: Add entry for N_Aspect_Specification.
* sinfo.ads, sinfo.adb (N_Aspect_Specification): New node
(Has_Aspect_Specifications): New flag
(Permits_Aspect_Specifications): New function
(Aspect_Specifications): New function
(Set_Aspect_Specifications): New procedure
* sprint.adb (Sprint_Node): Put N_At_Clause in proper alpha order
(Sprint_Node): Add dummy entry for N_Aspect_Specification
* treepr.adb (Flag3): New flag to be listed
Arnaud Charlet [Mon, 11 Oct 2010 08:41:22 +0000 (10:41 +0200)]
[multiple changes]
2010-10-11 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Check_Interrupt_Or_Attach_Handler): Do not emit error
for AI05-0033 in CodePeer mode.
2010-10-11 Robert Dewar <dewar@adacore.com>
* atree.h, atree.ads, atree.adb (Flag3): New flag (replaces Unused_1)
* csinfo.adb: Aspect_Specifications is a new special field
* einfo.adb (Flag3): New unused flag
* exp_util.adb (Insert_Actions): Add processing for
N_Aspect_Specification.
* sem.adb: Add entry for N_Aspect_Specification.
* sinfo.ads, sinfo.adb (N_Aspect_Specification): New node
(Has_Aspect_Specifications): New flag
(Permits_Aspect_Specifications): New function
(Aspect_Specifications): New function
(Set_Aspect_Specifications): New procedure
* sprint.adb (Sprint_Node): Put N_At_Clause in proper alpha order
(Sprint_Node): Add dummy entry for N_Aspect_Specification
* treepr.adb (Flag3): New flag to be listed
Arnaud Charlet [Mon, 11 Oct 2010 08:28:58 +0000 (10:28 +0200)]
[multiple changes]
2010-10-11 Robert Dewar <dewar@adacore.com>
* sem_ch6.adb, s-htable.ads: Minor reformatting.
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Analyze_Selected_Component): If the selector is
invisible in an instantiation, and both the formal and the actual are
private extensions of the same type, look for the desired component in
the proper view of the parent type.
2010-10-11 Vincent Celier <celier@adacore.com>
* adaint.c (__gnat_number_of_cpus): Add implementation for Solaris,
AIX, Tru64, Darwin, IRIX and HP-UX.
Arnaud Charlet [Mon, 11 Oct 2010 08:23:31 +0000 (10:23 +0200)]
[multiple changes]
2010-10-11 Robert Dewar <dewar@adacore.com>
* a-textio.adb: Minor reformatting
2010-10-11 Robert Dewar <dewar@adacore.com>
* a-suesen.ads, a-suenst.ads,
a-suesen.adb, a-suenst.adb,
a-suewse.adb, a-suewst.adb,
a-suewse.ads, a-suewst.ads,
a-suezse.ads, a-suezst.ads,
a-suezse.adb, a-suezst.adb: New name for string encoding packages.
* impunit.adb: New names for string encoding units
* Makefile.rtl: New names for string encoding units
* rtsfind.ads: Minor code reorganization.
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* exp_ch5.adb: Code clean up.
2010-10-11 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Limited_Return): Specialize warning on limited
returns when in a generic context.
(Analyze_Function_Return): ditto.
Vincent Celier [Mon, 11 Oct 2010 07:14:08 +0000 (07:14 +0000)]
Makefile.rtl: Add s-multip.
2010-10-11 Vincent Celier <celier@adacore.com>
* Makefile.rtl: Add s-multip.
* adaint.c: New function __gnat_number_of_cpus, implemented for Linux,
defaulting to 1 for other platforms.
* adaint.h: New function __gnat_number_of_cpus.
* impunit.adb (Non_Imp_File_Names_12): New file list for Ada 2012,
with a single component "s-multip".
* impunit.ads (Kind_Of_Unit): New enumerated value Ada_12_Unit for Ada
2012.
* rtsfind.ads (RTU_Id): New enumerated value System_Multiprocessors
* s-multip.ads, s-multip.adb: New Ada 2012 package.
* sem_ch10.adb (Analyze_With_Clause): Check also Ada 2012 units.
Nicola Pero [Sun, 10 Oct 2010 23:28:12 +0000 (23:28 +0000)]
objc.h: Updated comments.
2010-10-11 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/objc.h: Updated comments.
* objc/objc-api.h: (object_copy): Added one argument; use a
#define to maintain backwards-compatibility. Moved
_objc_object_alloc, _objc_object_copy, _objc_object_dispose and
objc_get_uninstalled_dtable into
objc/deprecated/objc_get_uninstalled_dtable.h and
objc/deprecated/objc_object_alloc.h. Include these files.
* objc/deprecated/objc_get_uninstalled_dtable.h: New.
* objc/deprecated/objc_object_alloc.h: New.
* objc/runtime.h (set_getName): New.
(sel_getType): New.
(sel_getUid): New.
(sel_registerName): New.
(sel_registerTypedName): New.
(sel_isEqual): New.
(class_createInstance): New.
(object_copy): New.
(object_dispose): New.
* objects.c: Do not include tconfig.h. Include gc_typed.h if
building the garbage collection version.
(__objc_object_alloc): Removed.
(__objc_object_copy): Removed.
(__objc_object_dispose): Removed.
(class_createInstance): New from code in class_create_instance.
Cast second argument of GC_malloc_explicitly_typed. Use
objc_calloc. Do not call _objc_object_alloc.
(class_create_instance): Call class_createInstance.
(object_copy): Added extraBytes argument. Do not call
_objc_object_copy.
(object_dispose): Do not call _objc_object_dispose.
* memory.c (objc_free): When using garbage collection, mark the
argument as unused.
* selector.c (sel_getName): New.
(sel_get_name): Call sel_getName.
(sel_getType): New.
(sel_get_type): Call sel_getType.
(sel_registerName): New.
(sel_register_name): Call sel_registerName.
(sel_registerTypedName): New.
(sel_register_typed_name): Call sel_registerTypedName.
(sel_getUid): New.
(sel_get_uid): Call sel_getUid.
Nicola Pero [Sun, 10 Oct 2010 17:43:07 +0000 (17:43 +0000)]
In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/objc-api.h: Define Method, Method_t, Category and
Category_t. Prevent including this file at the same time as
objc/runtime.h. Updated comments.
* objc/deprecated/struct_objc_method.h: Do not define Method,
Method_t.
* objc/deprecated/struct_objc_category.h: Do not define Category,
Category_t.
* objc-private/module-abi-8.h: New file containing a copy of all
the structure definitions. Not used yet.
* objc/encoding.h (objc_aligned_size): Removed duplicate
declaration. Updated comments.
* objc/runtime.h: Added Ivar, objc_property_t, Property, Method,
Category, struct objc_method_description, _C_ID and similar,
_C_CONST and similar and _F_CONST and similar. Added
objc_sizeof_type, objc_alignof_type, objc_aligned_size,
objc_promoted_size, objc_skip_type_qualifier, objc_skip_typespec,
objc_skip_offset, objc_skip_argspec, objc_get_type_qualifiers,
struct objc_struct_layout, objc_layout_structure,
objc_layout_structure_next_member, objc_layout_finish_structure,
objc_layout_structure_get_info. Prevent including this file at
the same time as objc/objc-api.h.
Uros Bizjak [Sun, 10 Oct 2010 12:26:25 +0000 (14:26 +0200)]
alpha.c (alpha_setup_incoming_varargs): Pass pointer to cum struct in the call to function_arg_advance.
2010-10-10 Uros Bizjak <ubizjak@gmail.com>
* config/alpha/alpha.c (alpha_setup_incoming_varargs): Pass pointer
to cum struct in the call to function_arg_advance.
(alpha_function_arg_advance): Mark named as unused.
Eric Botcazou [Sun, 10 Oct 2010 11:47:29 +0000 (11:47 +0000)]
decl.c (gnat_to_gnu_entity): Add assertion on the types of the parameters.
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: Add
assertion on the types of the parameters. Use KIND local variable.
<E_Incomplete_Type>: Likewise.
Eric Botcazou [Sun, 10 Oct 2010 11:26:16 +0000 (11:26 +0000)]
ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro.
* gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): New macro.
* gcc-interface/gigi.h (annotate_object): Add BY_DOUBLE_REF parameter.
* gcc-interface/decl.c (annotate_object): Likewise and handle it.
(gnat_to_gnu_entity): Adjust calls to annotate_object.
(gnat_to_gnu_param): If fat pointer types are passed by reference on
the target, pass them by explicit reference.
* gcc-interface/misc.c (default_pass_by_ref): Fix type of constant.
* gcc-interface/trans.c (Identifier_to_gnu): Do DECL_BY_DOUBLE_REF_P.
(Subprogram_Body_to_gnu): Adjust call to annotate_object.
(call_to_gnu): Handle DECL_BY_DOUBLE_REF_P.
* gcc-interface/utils.c (convert_vms_descriptor): Add BY_REF parameter
and handle it.
(build_function_stub): Iterate on the parameters of the subprogram in
lieu of on the argument types. Adjust call to convert_vms_descriptor.
Thomas Koenig [Sun, 10 Oct 2010 09:52:46 +0000 (09:52 +0000)]
frontend-passes.c: Include opts.h.
2010-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
* frontend-passes.c: Include opts.h.
(optimize_comparison): Renamed from optimize_equality.
Change second argument to operation to be compared.
Use flag_finite_math_only to avoid comparing REAL and
COMPLEX only when NANs are honored. Simplify comparing
of string concatenations where left or right operands are
equal. Simplify all comparison operations, based on the result
of gfc_dep_compare_expr.
* dependency.c: Include arith.h.
(gfc_are_identical_variables): Volatile variables should not
compare equal to themselves.
(gfc_dep_compare_expr): Handle string constants and string
concatenations.
2010-10-09 Thomas Koenig <tkoenig@gcc.gnu.org>
* gfortran.dg/character_comparison_4.f90: New test.
* gfortran.dg/character_comparison_5.f90: New test.
* gfortran.dg/character_comparison_6.f90: New test.
Nicola Pero [Sat, 9 Oct 2010 22:22:23 +0000 (22:22 +0000)]
In libobjc/: 2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-10 Nicola Pero <nicola.pero@meta-innovation.com>
* objc-foreach.c: Include objc-private/common.h.
* objc/deprecated/METHOD_NULL.h: New file.
* objc/objc-api.h: Include deprecated/METHOD_NULL.h instead of
defining METHOD_NULL here.
* Makefile.in (OBJC_DEPRECATED_H): Added METHOD_NULL.h.
* Object.m ([+instancesRespondTo:]): Use (Method_t)0 instead of
METHOD_NULL.
([-respondsTo:]): Same change.
* objc/objc-api.h (method_get_imp): Converted it into a normal
function so that we can hide the internals of struct objc_method.
* sendmsg.c (method_get_imp): Implemented.