2009-04-09 Robert Dewar <dewar@adacore.com>
* sem_ch5.adb: Minor reformatting
2009-04-09 Vincent Celier <celier@adacore.com>
* vms_data.ads:
Change GNAT CHECK qualifier /DIAGNOSIS_LIMIT to /DIAGNOSTIC_LIMIT
New qualifier /LEXPAND_SOURCE=nnn for -gnatGnnn
New qualifier /LXDEBUG=nnn for -gnatDnnn
For H820-010
* gnat_ugn.texi:
Update documentation for VMS qualifiers equivalent to -gnatGnn and
-gnatDnn
2009-04-09 Nicolas Setton <setton@adacore.com>
* s-osinte-darwin.ads: (Pad_Type): Make this an array of unsigned_long,
to match layout of siginfo_t in sys/signal.h.
* gcc-interface/Makefile.in: Add section for x86_64 darwin.
2009-04-09 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: (Fd_Set): Use Interfaces.C.long alignment.
2009-04-09 Nicolas Setton <setton@adacore.com>
* s-oscons-tmplt.c: Allow long lines in the generated spec.
Add generation of Darwin-specific constants needed when binding to the
pthread library.
From-SVN: r145837
* checks.adb:
(Insert_Valid_Check): Avoid unnecessary generation of junk declaration
when no invalid values exist, Avoid duplicate read of atomic variable.
* cstand.adb (Build_Signed_Integer_Type): Set Is_Known_Valid
(Standard_Unsigned): Set Is_Known_Valid
* sem_ch3.adb (Analyze_Subtype_Declaration): Copy Is_Known_Valid on
subtype declaration if no constraint.
(Set_Modular_Size): Set Is_Known_Valid if appropriate
(Build_Derived_Numeric_Type): Copy Is_Known_Valid if no constraint
From-SVN: r145836
2009-04-09 Robert Dewar <dewar@adacore.com>
* switch-c.adb, gnat_ugn.texi, vms_data.ads, switch.adb,
switch.ads: for numeric switches, an optional equal sign is always
allowed.
2009-04-09 Vincent Celier <celier@adacore.com>
* prj-nmsc.adb (Get_Unit): Do not consider Casing on platform where
the case of file names is not significant.
From-SVN: r145834
2009-04-09 Robert Dewar <dewar@adacore.com>
* g-comver.adb: Minor reformatting.
2009-04-09 Thomas Quinot <quinot@adacore.com>
* lib-load.ads (Load_Unit): Update documentation.
2009-04-09 Ed Schonberg <schonberg@adacore.com>
* lib-load.adb (Load_Unit): When loading the parent of a child unit
named in a with_clause, retain the with_clause to preserve a
limited_with indication.
From-SVN: r145829
2009-04-09 Paolo Bonzini <bonzini@gnu.org>
* config/i386/i386.md (cmpcc): New.
* config/i386/sync.md (sync_compare_and_swap*): Set FLAGS_REG.
(sync_compare_and_swap_cc*): Delete.
* config/s390/s390.c (s390_compare_emitted): Remove.
(s390_emit_compare): Handle MODE_CC s390_compare_op0 like
s390_compare_emitted used to be handled. Assert that modes match.
(s390_emit_compare_and_swap): Use s390_emit_compare, do not
refer to sync_compare_and_swap_ccsi.
* config/s390/s390.h (s390_compare_emitted): Remove.
* config/s390/s390.md (seq): Look for MODE_CC s390_compare_op0
instead of s390_compare_emitted.
(stack_protect_test, sync_compare_and_swap_cc): Set s390_compare_op0
instead of s390_compare_emitted.
* config/s390/s390.md (cmpcc): New.
(sync_compare_and_swapqi, sync_compare_and_swaphi): Clobber
CC_REGNUM, do not pretend it's set.
(sync_compare_and_swap_cc*): Delete.
* config/s390/predicates.md (cc_reg_operand): New.
* expr.c (sync_compare_and_swap_cc): Delete.
* optabs.h (sync_compare_and_swap_cc): Delete.
* optabs.c (prepare_cmp_insn): Ignore which specific CCmode
is being used with can_compare_p.
(emit_cmp_and_jump_insn_1): Likewise when looking in the optab.
(find_cc_set): New.
(expand_bool_compare_and_swap): Do not use sync_compare_and_swap_cc,
look for a MODE_CC set instead. Use emit_store_flag.
(expand_compare_and_swap_loop): Likewise, with some additional
complication to avoid a force_reg when useless. Use
emit_cmp_and_jump_insns.
* genopinit.c (optabs): Delete sync_compare_and_swap_cc.
* doc/md.texi (sync_compare_and_swap_cc): Merge with
sync_compare_and_swap documentation.
java:
2009-04-09 Paolo Bonzini <bonzini@gnu.org>
* builtins.c (compareAndSwapLong_builtin,
compareAndSwapInt_builtin, compareAndSwapObject_builtin,
VMSupportsCS8_builtin): Do not look at sync_compare_and_swap_cc.
From-SVN: r145825
2009-04-09 Robert Dewar <dewar@adacore.com>
* sem_ch7.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_util.adb,
exp_ch13.adb, sem_ch6.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb,
sem_cat.adb: Code clean up: use Is_Package_Or_Generic_Package where
possible to replace an OR of two separate tests.
From-SVN: r145823
2009-04-09 Robert Dewar <dewar@adacore.com>
* binderr.adb, errout.adb, errutil.adb: New circuitry for handling
Maximum_Messages.
* erroutc.adb, erroutc.ads (Warnings_Suppressed): Now tests global
warning status as well.
* opt.ads (Maximum_Messages): New name for Maximum_Errors.
* switch-b.adb, switch-c.adb: Change name Maximum_Errors to
Maximum_Messages.
* bindusg.adb, usage.adb: Update line for -gnatm switch
* gnat_ugn.texi: Update documentation for -gnatmnn compiler switch and
-mnn binder switch.
* sem_ch10.adb: Minor reformatting.
From-SVN: r145822
2009-04-09 Bob Duff <duff@adacore.com>
* exp_ch11.adb (Expand_Exception_Handlers, Prepend_Call_To_Handler):
Set Sloc of generated nodes for calls to Undefer_Aborts and
Save_Occurrence to No_Location, so the debugger ignores them and
therefore does not jump back and forth when single stepping.
2009-04-09 Robert Dewar <dewar@adacore.com>
* switch-b.adb: Minor reformatting.
From-SVN: r145821
2009-04-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/36704
* decl.c (add_hidden_procptr_result): New function for handling
procedure pointer return values by adding a hidden result variable.
(variable_decl,match_procedure_decl,gfc_match_function_decl,
gfc_match_subroutine,gfc_match_end,attr_decl1): Handle procedure pointer
return values.
* parse.c (parse_interface): Add EXTERNAL attribute only after
FUNCTION/SUBROUTINE declaration is complete.
* primary.c (replace_hidden_procptr_result): New function for replacing
function symbol by hidden result variable.
(gfc_match_rvalue,match_variable): Replace symbol by hidden result
variable.
* resolve.c (resolve_contained_fntype,resolve_function,resolve_variable,
resolve_symbol): Allow for procedure pointer function results.
(resolve_fl_procedure): Conflict detection moved here from
'check_conflict'.
* symbol.c (gfc_check_function_type): Allow for procedure pointer
function results.
(check_conflict): Move some conflict detection to resolution stage.
* trans-types.c (gfc_sym_type,gfc_get_function_type): Handle hidden
result variables.
2009-04-09 Janus Weil <janus@gcc.gnu.org>
PR fortran/36704
* gfortran.dg/external_procedures_1.f90: Modified.
* gfortran.dg/proc_ptr_result_1.f90: New.
* gfortran.dg/proc_ptr_result_2.f90: New.
* gfortran.dg/proc_ptr_result_3.f90: New.
From-SVN: r145815
2009-04-09 Javier Miranda <miranda@adacore.com>
* exp_disp.adb (Export_DT): Addition of a new argument (Index); used to
retrieve from the Dispatch_Table_Wrappers list the external name.
Addition of documentation.
(Make_Secondary_DT): Addition of a new argument (Suffix_Index) that is
used to export secondary dispatch tables (in the previous version of
the frontend only primary dispatch tables were exported). Addition of
documentation.
(Import_DT): New subprogram (internal of Make_Tags). Used to import a
dispatch table of a given tagged type.
(Make_Tags): Modified to import secondary dispatch tables.
* sem_ch3.adb (Analyze_Object_Declaration): Code cleanup.
(Constant_Redeclaration): Code cleanup.
* einfo.ads (Dispatch_Table_Wrapper): Renamed to
Dispatch_Table_Wrappers. Update documentation.
* einfo.adb (Dispatch_Table_Wrapper, Set_Dispatch_Table_Wrapper):
Renamed to Dispatch_Table_Wrappers.
* sem_util.adb (Collect_Interface_Components): Improve handling of
private types.
* atree.ads (Elist26, Set_Elist26): New subprograms
* atree.adb (Elist26, Set_Elist26): New subprograms
From-SVN: r145811
2009-04-09 Javier Miranda <miranda@adacore.com>
* sem_ch3.adb (Build_Derived_Record_Type): Fix typo.
(Derive_Progenitor_Subprograms): Handle interfaces in subtypes of
tagged types.
2009-04-09 Robert Dewar <dewar@adacore.com>
* s-direio.adb: Minor reformatting
* exp_ch4.adb (Expand_Concatenate): Avoid overflow checks for String
From-SVN: r145808
* except.c (find_prev_try): Break out from ....
(duplicate_eh_regions): ... here; properly update prev_try pointers
when duplication part of tree.
(dump_eh_tree): Improve dumping.
(verify_eh_region): New.
(verify_eh_tree): Use it.
From-SVN: r145805
2009-04-09 Pascal Obry <obry@adacore.com>
* a-cihama.adb, a-cihama.ads, a-coinve.adb, a-coorma.ads, a-cihase.adb,
a-cihase.ads, a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads,
a-coormu.adb, a-coormu.ads, a-cohase.adb, a-cohase.ads: Minor
reformatting.
2009-04-09 Ed Schonberg <schonberg@adacore.com>
* sem_ch6.adb (Check_Overriding_Indicator): Do not generate warning on
missing overriding indicator if the new declaration is not seen as
primitive.
From-SVN: r145804
2009-04-09 Richard Guenther <rguenther@suse.de>
* tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant
indices into an array reference if possible.
* tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_vars):
Fold POINTER_PLUS_EXPR statements with invariant address.
* gcc.dg/tree-ssa/ssa-ccp-25.c: New testcase.
* gcc.dg/tree-ssa/ssa-ccp-26.c: Likewise.
From-SVN: r145799
PR c/39613
* c-typeck.c (do_case): If case label is not an INTEGER_CST, fold
it and pedwarn if this results in an INTEGER_CST.
testsuite:
* gcc.dg/case-const-1.c, gcc.dg/case-const-2.c,
gcc.dg/case-const-3.c: New tests.
From-SVN: r145793
* include/backward/hashtable.h (erase): Correctly handle erasing a
reference to an entry in the hash table.
* testsuite/backward/hash_map/25896.cc: New.
* testsuite/backward/hash_set/25896.cc: New.
From-SVN: r145788
* dwarf2out.c (class_scope_p): New static inline.
(class_or_namespace_scope_p): Use it.
(gen_variable_die): Use DW_TAG_member tag for static data member
declarations instead of DW_TAG_variable.
* g++.dg/debug/dwarf2/static-data-member1.C: New test.
From-SVN: r145770
2009-04-08 Robert Dewar <dewar@adacore.com>
* checks.adb (Enable_Overflow_Check): Do not enable if overflow checks
suppressed.
* exp_ch4.adb (Expand_Concatenate): Make sure checks are off for all
resolution steps.
2009-04-08 Robert Dewar <dewar@adacore.com>
* sem_ch12.adb (Analyze_Package_Instantiation): Remove test for
No_Local_Allocators restriction preventing local instantiation.
2009-04-08 Thomas Quinot <quinot@adacore.com>
* sem_eval.adb: Minor comment fix
2009-04-08 Thomas Quinot <quinot@adacore.com>
* g-socket.adb, g-socket.ads (GNAT.Sockets.Sockets_Library_Controller):
New limited controlled type used to automate the initialization and
finalization of the sockets implementation.
(GNAT.Sockets.Initialize, Finalize): Make these no-ops
2009-04-08 Vincent Celier <celier@adacore.com>
* prj-attr.adb: New read-only project-level attribute Project_Dir
* prj-proc.adb (Add_Attributes): New parameter Project_Dir, value of
read-only attribute of the same name.
(Process_Declarative_Items): Call Add_Attributes with Project_Dir
(Recursive_Process): Ditto
* snames.adb: Add new standard name Project_Dir
* snames.ads: Add new standard name Project_Dir
From-SVN: r145766
2009-04-08 Janne Blomqvist <jb@gcc.gnu.org>
* io/open.c (already_open): Test for POSIX close return value.
* io/unit.c (close_unit_1): Likewise.
* io/unix.c (raw_close): Return 0 for success for preconnected units.
From-SVN: r145761
2009-04-08 Thomas Quinot <quinot@adacore.com>
* checks.adb: Minor reformatting
2009-04-08 Vincent Celier <celier@adacore.com>
* vms_data.ads: Add documentation for new style keyword
OVERRIDING_INDICATORS
2009-04-08 Robert Dewar <dewar@adacore.com>
* sem_ch3.adb (Check_Completion.Post_Error): Post error on spec if the
spec is in the current unit.
From-SVN: r145749
* tree-eh.c (cleanup_eh): When not optimizing, do not try EH merging.
* function.h (rtl_eh): Remove exception_handler_label_map.
* except.c (ehl_hash, ehl_eq, add_ehl_entry,
remove_exception_handler_label, for_each_eh_label_1): Remove.
(rtl_remove_unreachable_regions): Remove.
(convert_from_eh_region_ranges): Do not remove unreachable regions.
(find_exception_handler_labels): Don't build the hashtable.
(maybe_remove_eh_handler): Remove.
(for_each_eh_label): Rewrite to walk the tree.
(rest_of_handle_eh): Do not cleanup cfg prior EH construction.
* except.h (maybe_remove_eh_handler): Remove.
* passes.c (init_optimization_passes): Schedule second EH cleanup
before out-of-ssa.
* cfgrtl.c (rtl_delete_block, rtl_merge_blocks,
cfg_layout_merge_blocks): Do not call maybe_remove_eh_handler.
From-SVN: r145747