Bob Duff [Fri, 10 Apr 2009 14:03:49 +0000 (14:03 +0000)]
exp_ch5.adb, [...]: Move the code that creates a call to the _Postconditions procedure in the case...
2009-04-10 Bob Duff <duff@adacore.com>
* exp_ch5.adb, exp_ch6.adb, sem_ch6.adb: Move the code that creates a
call to the _Postconditions procedure in the case of implicit returns
from analysis to expansion. This eliminates some duplicated code. Use
the Postcondition_Proc to find the identity of this procedure during
expansion.
* snames.ads-tmpl: Remove names that are no longer used in the
Project Manager.
Mark specifically those that are used only in gprbuild
2009-04-10 Eric Botcazou <ebotcazou@adacore.com>
* init.c: Adjust EH support code on Alpha/Tru64.
2009-04-10 Bob Duff <duff@adacore.com>
* sem_ch6.adb (Process_PPCs): Add a call to the _Postconditions
procedure on every path that could return implicitly (not via a return
statement) from a procedure.
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Build_Master_Entity): An extended return statement is a
valid scope for a task declarations and therefore for a master id.
2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_aux.adb: Minor reformatting
2009-04-10 Vincent Celier <celier@adacore.com>
* scn.adb (Obsolescent_Check_Flag): New Boolean flag, initialized to
True.
(Obsolescent_Check): Do nothing if Obsolescent_Check_Flag is False
(Set_Obsolescent_Check): New procedure to change the value of
Obsolescent_Check_Flag.
* scn.ads (Set_Obsolescent_Check): New procedure to control
Obsolescent_Check.
* sinput-l.adb (Load_File): Do not check for pragma Restrictions on
obsolescent features while preprocessing.
* xsnamest.adb: Use XUtil to have uniform line endings (UNIX style) in
generated files on all platforms.
2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_aux.adb: Minor reformatting
2009-04-10 Ed Schonberg <schonberg@adacore.com>
* sem_ch3.adb (Access_Definition): Handle properly the case of a
protected function with formals that returns an anonymous access type.
2009-04-10 Thomas Quinot <quinot@adacore.com>
* sem_disp.adb: Minor reformatting
2009-04-10 Vasiliy Fofanov <fofanov@adacore.com>
* seh_init.c: Do not use the 32-bit specific implementation of
__gnat_install_SEH_handler on 64-bit Windows target (64-bit specific
version TBD).
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* mlib-tgt-specific-xi.adb (Get_Target_Prefix): Target_Name may contain
a '/' at the end so we better use the complete target name to determine
whether it is a PowerPC 55xx target.
PR c++/20118
cp/
* parser.c (cp_parser_check_template_parameters): Take a
cp_declarator parameter.
(cp_parser_elaborated_type_specifier): Update to
cp_parser_check_template_parameters.
(cp_parser_class_head): Likewise.
(cp_parser_check_declarator_template_parameters): Likewise.
(cp_parser_check_template_parameters): Handle first the non-error
conditions. Give more accurate diagnostics if a declarator is
given.
testsuite/
* g++.dg/parse/pr20118.C: New.
* g++.dg/template/spec16.C: Update.
Makefile.in, utils.c: Include "rtl.h" to avoid compile time warnings.
2009-04-10 Tristan Gingold <gingold@adacore.com>
* gcc-interface/Makefile.in, gcc-interface/utils.c: Include "rtl.h" to
avoid compile time warnings.
Do not add gcc/config in include search list while compiling the RTS.
Pragma Thread_Local_Storage is available on any target.
* exp_util.adb (Make_Non_Empty_Check): New function
(Silly_Boolean_Array_Not_Test): Add call to Make_Non_Empty_Check
(Silly_Boolean_Array_Xor_Test): Use Make_Non_Empty_Check
2009-04-10 Arnaud Charlet <charlet@adacore.com>
* make.adb, gnatlink.adb: Rename JGNAT toolchain.
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* mlib-tgt-specific-xi.adb (Get_Target_Prefix): Insert the appropriate
tool prefix for AVR and PowerPC 55xx targets.
2009-04-10 Robert Dewar <dewar@adacore.com>
* sem_warn.adb (Within_Postcondition): New function
(Check_Unset_Reference): Use Within_Postcondition to stop bad warning
* exp_ch7.adb (Find_Final_List): When creating a finalization-chain
entity and the scope is a subprogram, retrieve the Sloc of the
subprogram's body rather than using the sloc of the spec, for better
line-stepping behavior in gdb.
(Wrap_Transient_Declaration): For the Sloc of nodes created with a list
controller, use the Sloc of the first declaration of the containing list
rather than that of the node that triggered creation of the list
controller.
* prj-nmsc.adb:
(Check_Library_Attributes): For a project qualified as a library project
that is not a library project, indicate in the error message which
attributes are missing (Library_Dir and/or Library_Name).
* sem_prag.adb (Analyze_Pragma, case Task_Name): Do not expand argument
of pragma. It will be recopied and analyzed when used in call to
Create_Task.
* sem_res.adb (Resolve_Call): Clarify use of secondary stack within
initialization operations and recognize use of it in procedure calls
within init_procs.
* exp_ch9.adb (Make_Task_Create_Call): Copy full tree of Task_Name
argument, because it may have side-effects.
* exp_ch2.adb: Remove obsolete comments on default functions
2009-04-10 Jose Ruiz <ruiz@adacore.com>
* adaint.c (RTX section): Do for RTX the same thing as we do for
Windows (include ctype.h and define a fallback ISALPHA if IN_RTS).
* 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.
Robert Dewar [Thu, 9 Apr 2009 12:56:35 +0000 (14:56 +0200)]
2009-04-09 Robert Dewar <dewar@adacore.com>
* 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
* 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.
* 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.
Robert Dewar [Thu, 9 Apr 2009 10:45:44 +0000 (10:45 +0000)]
sem_ch7.adb, [...]: Code clean up...
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.
* 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.
Janus Weil [Thu, 9 Apr 2009 09:39:09 +0000 (11:39 +0200)]
re PR fortran/36704 (Procedure pointer as function result)
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.
Javier Miranda [Thu, 9 Apr 2009 09:35:24 +0000 (09:35 +0000)]
exp_disp.adb (Export_DT): Addition of a new argument (Index)...
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.
Jan Hubicka [Thu, 9 Apr 2009 08:26:01 +0000 (10:26 +0200)]
except.c (find_prev_try): Break out from ....
* 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.
* sem_attr.adb (Check_Stream_Attribute): Check violation of
restriction No_Streams
* gnat_rm.texi: Clarify No_Streams restriction
* g-socket.adb: Minor reformatting.
2009-04-09 Thomas Quinot <quinot@adacore.com>
* g-socket.ads: Mark Initialize and Finalize as obsolesent interfaces.
2009-04-09 Geert Bosch <bosch@adacore.com>
* exp_fixd.adb (Build_Conversion): Accept new optional Trunc argument.
(Set_Result): Likewise.
(Expand_Convert_Float_To_Fixed): Have Set_Result truncate the
conversion, as required by RM 4.6(31).
c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC &ARRAY addresses by adjusting their types and...
2009-04-09 Richard Guenther <rguenther@suse.de>
* c-gimplify.c (c_gimplify_expr): Fix the invalid GENERIC
&ARRAY addresses by adjusting their types and prepending
a conversion.
* tree-cfg.c (verify_gimple_assign_single): Verify that
addresses are correct.
tree-ssa-ccp.c (maybe_fold_stmt_addition): Move non-constant indices into an array reference if possible.
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.
hashtable.h (erase): Correctly handle erasing a reference to an entry in the hash table.
* 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.
Jakub Jelinek [Wed, 8 Apr 2009 20:00:48 +0000 (22:00 +0200)]
dwarf2out.c (class_scope_p): New static inline.
* 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.
* 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
Janne Blomqvist [Wed, 8 Apr 2009 17:06:34 +0000 (20:06 +0300)]
open.c (already_open): Test for POSIX close return value.
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.
re PR tree-optimization/36291 (GCC is slow and memory-hungry building sipQtGuipart.cpp)
2009-04-08 Richard Guenther <rguenther@suse.de>
PR middle-end/36291
* tree-dfa.c (add_referenced_var): Do not recurse into
global initializers.
* tree-ssa-ccp.c (get_symbol_constant_value): Add newly
exposed variables.
(fold_const_aggregate_ref): Likewise.