2014-07-18 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Remove note that -gnatR not allowed with -gnatc.
* switch-c.adb: Remove prohibition of -gnatR and -gnatc together.
2014-07-18 Eric Botcazou <ebotcazou@adacore.com>
* sem_ch13.adb (Kill_Rep_Clause): Clear Comes_From_Source flag
on the null statement.
2014-07-18 Thomas Quinot <quinot@adacore.com>
* adaint.c: Minor comment rewording.
* socket.c: Define macros _REENTRANT and _THREAD_SAFE so that
use of errno in this file is thread safe.
From-SVN: r212791
2014-07-18 Robert Dewar <dewar@adacore.com>
* sem_attr.adb, s-os_lib.ads, prj-tree.adb: Minor reformatting.
* types.h: Fix typo.
2014-07-18 Robert Dewar <dewar@adacore.com>
* freeze.adb (Check_Address_Clause): Use Kill_Rep_Clause (no
functional change).
* gnat_ugn.texi: Document that -gnatI removes rep clauses from
ASIS trees.
* sem_ch13.adb (Kill_Rep_Clause): New procedure
(Analyze_Attribute_Definition_Clause): Use
Kill_Rep_Clause. This is just a cleanup, no functional effect.
(Analyze_Enumeration_Representation_Clause):
Use Kill_Rep_Clause. This means that enum rep
clauses are now properly removed from -gnatct trees.
(Analyze_Record_Representation_Clause): Same change.
* sem_ch13.ads (Kill_Rep_Clause): New procedure.
From-SVN: r212789
2014-07-18 Pascal Obry <obry@adacore.com>
* s-os_lib.ads, s-os_lib.adb (GM_Time_Of): New routine to create an
OS_Time from time parts.
* adaint.h, adaint.c (__gnat_to_os_time): New routine.
From-SVN: r212788
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): Refine previous patch for
indexing over containers that are derived types: check whether
signature of found operation has the correct first parameter
before retrieving directly a primitive operation.
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Analyze_Attribute, case 'Update): Set
Do_Range_Check flag on dynamic bounds of a range used in a
component association in the argument of Update.
2014-07-18 Thomas Quinot <quinot@adacore.com>
* adaint.c: #define _REENTRANT and _THREAD_SAFE in order for
accesses to errno(3) to be thread safe.
2014-07-18 Vincent Celier <celier@adacore.com>
* prj-tree.adb (Imported_Or_Extended_Project_Of): For each non
limited imported project that is an extending project, return
a project being extended if it has the expected name.
2014-07-18 Pascal Obry <obry@adacore.com>
* s-os_lib.ads, s-os_lib.adb (Set_File_Last_Modify_Time_Stamp): New
routine to set the last modification time stamp for the given file.
* gnatchop.adb (File_Time_Stamp): Removed.
(Write_Unit): Use
Set_File_Last_Modify_Time_Stamp instead of ad-hoc implementation.
From-SVN: r212787
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* sem_aggr.adb (Aggregate_Constraint_Checks): Moved to sem_util.
* sem_util.ads, sem_util.adb (Aggregate_Constraint_Checks):
Moved here, so it can be shared with the resolution of 'Update,
whose argument shares some features with aggregates.
* sem_attr.adb (Resolve_Attribute, case 'Update): Apply
Aggregate_Constraint_Checks with the expression of each
association, so that the Do_Range_Check flag is set when needed.
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* sem_ch4.adb (Try_Container_Indexing): If the container
type is a derived type, the value of the inherited aspect is
the Reference operation declared for the parent type. However,
Reference is also a primitive operation of the new type, and
the inherited operation has a different signature. We retrieve
the right one from the list of primitive operations of the
derived type.
From-SVN: r212786
2014-07-18 Vincent Celier <celier@adacore.com>
* debug.adb: Update comment.
2014-07-18 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Needs_Finalization): There is no reason why a
C type should not benefit from finalization actions.
2014-07-18 Thomas Quinot <quinot@adacore.com>
* s-oscons-tmplt.c (NAME_MAX): Fix definition for Solaris
(FILENAME_MAX): Remove unneeded definition.
From-SVN: r212785
2014-07-18 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Build_Discrete_Static_Predicate): New name
for Build_Static_Predicate (Build_Predicate_Functions):
Don't try to build discrete predicate for real type.
(Build_Predicate_Functions): Report attempt to use
Static_Predicate function on real type as unimplemented.
* sem_util.adb (Check_Expression_Against_Static_Predicate):
Add guard to prevent blow up on predicate for real type.
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* einfo.adb (Set_Static_Predicate): Simplify assertion to handle
properly static predicate on enumeration types and modular types
(not subtypes).
2014-07-18 Pierre-Marie Derodat <derodat@adacore.com>
* scos.ads (SCO_Unit_Table_Entry): Add a field to keep track of
the corresponding source file index.
* get_scos.ads (Get_SCOs): Add a default value for it.
* par_sco.adb (SCO_Record): Fill the corresponding value.
* scos.h: New.
2014-07-18 Vincent Celier <celier@adacore.com>
* a-strunb-shared.adb, s-auxdec.ads, s-rannum.adb, atree.ads,
urealp.adb, vms_data.ads, lib.ads, s-auxdec-vms_64.ads: Minor
reformatting.
* gnat_ugn.texi: Add documentation for new gnatmem switch -t.
2014-07-18 Thomas Quinot <quinot@adacore.com>
* g-sercom.ads (Set): document possible data loss.
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference, cases Input,
Output, Read, Write): If the restriction No_Streams is active,
replace each occurrence of a stream attribute by an explicit
Raise statement.
From-SVN: r212782
2014-07-18 Robert Dewar <dewar@adacore.com>
* par_sco.adb, a-reatim.ads, exp_attr.adb, sem_util.adb: Minor
reformatting.
2014-07-18 Robert Dewar <dewar@adacore.com>
* einfo.ads, einfo.adb (Has_Out_Or_In_Out_Parameter): New flag and
function.
(Set_Has_Out_Or_In_Out_Parameter): New procedure.
* sem_ch6.adb (Set_Formal_Mode): Set Has_Out_Or_In_Out_Parameter flag.
* sem_res.adb (Resolve_Call): Error if call of Ada 2012 function
with OUT or IN OUT from earlier Ada mode (e.g. Ada 2005)
From-SVN: r212780
2014-07-18 Robert Dewar <dewar@adacore.com>
* bcheck.adb (Check_Consistent_Restrictions):
Remove obsolete code checking for violation of
No_Standard_Allocators_After_Elaboration (main program)
* bindgen.adb (Gen_Adainit): Handle
No_Standard_Allocators_After_Elaboration
(Gen_Output_File_Ada): ditto.
* exp_ch4.adb (Expand_N_Allocator): Handle
No_Standard_Allocators_After_Elaboration.
* Makefile.rtl: Add entry for s-elaall
* rtsfind.ads: Add entry for Check_Standard_Allocator.
* s-elaall.ads, s-elaall.adb: New files.
* sem_ch4.adb (Analyze_Allocator): Handle
No_Standard_Allocators_After_Elaboration.
2014-07-18 Robert Dewar <dewar@adacore.com>
* lib.adb, lib.ads, lib-writ.adb, lib-writ.ads, ali.adb,
ali.ads, lib-load.adb: Remove Lib.Has_Allocator and all uses.
Remove AB parameter from ali files and all uses.
Remove Allocator_In_Body and all uses.
2014-07-18 Robert Dewar <dewar@adacore.com>
* g-expect-vms.adb: Add comment.
2014-07-18 Thomas Quinot <quinot@adacore.com>
* par_sco.adb (Is_Logical_Operation): return True for
N_If_Expression.
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* sem_attr.adb (Resolve_Attribute, case 'Update): Do full
analysis and resolution of each choice in the associations within
the argument of Update, because they may be variable names.
2014-07-18 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_Loop_Entry_Attribute): Insert any condition
actions before the generated if statement.
2014-07-18 Hristian Kirtchev <kirtchev@adacore.com>
* gnat_ugn.texi Enhance the documentation of
switches -gnateA and -gnateV.
2014-07-18 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Build_Default_Subtype): Add missing condition
so that code matches description: use the full view of the base
only if the base is private and the subtype is not.
From-SVN: r212779
* config/pa/linux-atomic.c (__sync_lock_release_4): New.
(SYNC_LOCK_RELEASE): Update to use __kernel_cmpxchg for release.
Don't use SYNC_LOCK_RELEASE for int type.
From-SVN: r212767
2014-07-17 Richard Biener <rguenther@suse.de>
PR rtl-optimization/61801
* sched-deps.c (sched_analyze_2): For ASM_OPERANDS and
ASM_INPUT don't set reg_pending_barrier if it appears in a
debug-insn.
From-SVN: r212738
2014-07-17 Gary Dismukes <dismukes@adacore.com>
* exp_disp.adb: Minor reformatting.
* exp_disp.adb: Minor code reorganization.
2014-07-17 Thomas Quinot <quinot@adacore.com>
* gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not
require an explicit SSO attribute definition clause on a composite type
just because one of its components has one.
2014-07-17 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite
attribute out of existence if the enclosing pragma is ignored.
* sem_util.adb: Minor reformatting.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* exp_aggr.adb (Expand_Array_Aggregate): Handle properly an
array aggregate expanded into assignments when it appears as a
local declaration in an inlined body.
2014-07-17 Doug Rupp <rupp@adacore.com>
* init.c [__ANDROID__]: Modify for ZCX.
* exp_aggr.adb: Minor reformatting
* sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments.
2014-07-17 Robert Dewar <dewar@adacore.com>
* a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads,
exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi,
scng.adb: Remove incorrect usage "allow to" and "allows to".
2014-07-17 Robert Dewar <dewar@adacore.com>
* exp_dist.adb: Minor reformatting.
From-SVN: r212737
2014-07-17 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Improve documentation of Unrestricted_Access.
2014-07-17 Robert Dewar <dewar@adacore.com>
* sem_ch13.adb (Build_Invariant_Procedure): Add variable Nam
(Add_Invariants): Set Nam to Name_Type_Invariant if from aspect.
2014-07-17 Thomas Quinot <quinot@adacore.com>
* exp_pakd.adb (Create_Packed_Array_Type.Install_PAT): For a
non-bit-packed array, propagate Reverse_Storage_Order to the
packed array type.
2014-07-17 Javier Miranda <miranda@adacore.com>
* exp_disp.adb: Fix comment.
* exp_pakd.adb: Minor reformatting.
From-SVN: r212736
2014-07-17 Robert Dewar <dewar@adacore.com>
* bindgen.adb (Gen_Elab_Calls): Skip reference to elab
entity if none exists (Gen_Elab_Calls): Complain if clash with
No_Multiple_Elaboration.
* s-rident.ads, restrict.ads: Add restriction No_Multiple_Elaboration.
* sem_util.adb (Build_Elaboration_Entity): Skip building entity
if not needed.
* gnat_rm.texi: Document restriction No_Multiple_Elaboration.
* sem_ch4.adb: Minor comment updates.
From-SVN: r212735
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* exp_ch9.adb (Buid_Protected_Subprogram_Call): Preserve type
of function call for later use when shared passive objects
are involved.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* par-ch13.adb (Get_Aspect_Specifications):
Catch a case where the argument of SPARK aspect Refined_State
is not properly parenthesized.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch6.adb (Expand_Ctrl_Function_Call): Do not extend
the lifetime of a reference to an Ada 2012 container element.
(Is_Element_Reference): New routine.
2014-07-17 Robert Dewar <dewar@adacore.com>
* ali.ads: Minor comment fix.
* lib-writ.adb: Minor reformatting.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Analyze_Proper_Body): When analyzing a subunit
in ASIS mode, load another subunit only if it a subunit of the
current one, not a sibling that has been reached through the
analysis of an ancestor. This allows the construction of the
ASIS tree for the subunit even when sibling subunits have errors.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch3.adb (Analyze_Declarations): Remove the guard which
prevents the analysis of various contracts when the associated
construct is erroneous.
* sem_util.adb (Save_SPARK_Mode_And_Set): Do not query the
SPARK_Pragma of an illegal or a partially decorated construct.
From-SVN: r212734
2014-07-17 Robert Dewar <dewar@adacore.com>
* s-imguns.ads: Minor reformatting.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Build_Finalization_Master): Move all local
variables to the proper code section. When looking for an existing
finalization master, inspect the ultimate ancestor type of the
full view.
* sem_util.ads, sem_util.adb (Root_Type_Of_Full_View): New routine.
From-SVN: r212733
2014-07-17 Vincent Celier <celier@adacore.com>
* gnatbind.adb: Change in message "try ... for more information".
2014-07-17 Robert Dewar <dewar@adacore.com>
* sprint.adb: Code clean up.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Find_Last_Init): Relocate local variables to
the relevant code section. Add new local constant Obj_Id. When
a limited controlled object is initialized by a function call,
the build-in-place object access function call acts as the last
initialization statement.
* exp_util.adb (Is_Object_Access_BIP_Func_Call): New routine.
(Is_Secondary_Stack_BIP_Func_Call): Code reformatting.
* exp_util.ads (Is_Object_Access_BIP_Func_Call): New routine.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* sem_ch8.adb (Analyze_Generic_Renaming): For generic subprograms,
propagate intrinsic flag to renamed entity, to allow e.g. renaming
of Unchecked_Conversion.
* sem_ch3.adb (Analyze_Declarations): Do not analyze contracts
if the declaration has errors.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* a-rbtgbk.adb: a-rbtgbk.adb (Generic_Insert_Post): Check whether
container is busy before checking whether capacity allows for
a further insertion. Insertion in a busy container that is full
raises Program_Error rather than Capacity_Error. Previous to that
patch which exception was raised varied among container types.
From-SVN: r212730
2014-07-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document new restriction No_Long_Long_Integers.
* exp_ch4.adb (Make_Array_Comparison_Op): Add note that we
could do this by actually expanding a real generic.
* a-tags.ads: Add comments about performance.
* sprint.adb (Sprint_Node_Actual, case N_Object_Declaration):
Print Etype of defining identifier, rather than the object
definition. More information.
2014-07-17 Thomas Quinot <quinot@adacore.com>
* exp_dist.adb: Minor documentation clarification.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Is_Aliased): Revert previous change.
2014-07-17 Vincent Celier <celier@adacore.com>
* g-comlin.adb (Try_Help): New procedure.
(Getopt): Use new procedure Try_Help.
* g-comlin.ads (Try_Help): New procedure.
2014-07-17 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Minor update.
From-SVN: r212728
2014-07-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Improve documentation of Unrestricted_Access.
* sinfo.ads: Document restriction on aggregates (must expand to
assignments if one or more assignments needs expansion, e.g. for
controlled types).
* sem_ch13.adb: All warning messages regarding bit order should
be info: messages.
* gnat_ugn.texi: Minor correction of missing @ on @code
2014-07-17 Robert Dewar <dewar@adacore.com>
* restrict.ads (Implementation_Restriction): Add No_Long_Long_Integer.
* s-rident.ads (Partition_Boolean_Restrictions): Add
No_Long_Long_Integer.
* sem_ch3.adb (Modular_Type_Declaration): Size must be <=
Long_Integer'Size if restriction No_Long_Long_Integer is active.
(Signed_Integer_Type_Declaration): Do not allow Long_Long_Integer
as the implicit base type for a signed integer type declaration
if restriction No_Long_Long_Integer is active.
* sem_util.ads, sem_util.adb (Set_Entity_With_Checks): Include check for
No_Long_Long_Integer.
From-SVN: r212727
2014-07-17 Robert Dewar <dewar@adacore.com>
* back_end.adb: Minor reformatting and comment additions.
* checks.ads, checks.adb (Duplicated_Tag_Checks_Suppressed): New
function.
* exp_disp.adb (Make_DT): Use Duplicated_Tag_Checks_Suppressed.
(Make_VM_TSD): Use Duplicated_Tag_Checks_Suppressed.
* gnat_rm.texi: Document new check Duplicated_Tag_Checks_Suppressed.
* gnat_ugn.texi: Additional documentation for Duplicated_Tag_Check.
* snames.ads-tmpl (Duplicated_Tag_Checks_Suppressed): New check.
* types.ads (Duplicated_Tag_Checks_Suppressed): New check.
From-SVN: r212724
2014-07-17 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor comment updates.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Make_Explicit_Dereference): If the expression
being dereferenced is a generalized indexing, reset the overloaded
flag on the generalized indexing call, consistent with the
resetting of the flag on the original indexed component.
2014-07-17 Robert Dewar <dewar@adacore.com>
* gnat_ugn.texi: Document advise not to mix -gnatV? and
optimization.
From-SVN: r212723
2014-07-17 Robert Dewar <dewar@adacore.com>
* sem_aux.ads: Minor comment addition.
2014-07-17 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Make_Call_Into_Operator): If the call is already
a rewriting of an operator node, there are no actuals to be
propagated from original node to rewritten node when in ASIS mode.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch6.adb (Analyze_Subprogram_Body_Contract,
Analyze_Subprogram_Contract): Add new local variable Mode. Save
and restore the SPARK mode of the related construct in a
stack-like fashion.
* sem_ch7.adb (Analyze_Package_Body_Contract,
Analyze_Package_Contract): Add new local variable Mode. Save and
restore the SPARK mode of the related construct in a stack-like fashion.
* sem_util.adb Remove with and use clause for Opt.
(Restore_SPARK_Mode): New routine.
(Save_SPARK_Mode_And_Set): New routine.
* sem_util.ads Add with and use clause for Opt.
(Restore_SPARK_Mode): New routine.
(Save_SPARK_Mode_And_Set): New routine.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Is_Aliased): Transient objects
within an expression with actions cannot be considered aliased.
From-SVN: r212721
2014-07-17 Thomas Quinot <quinot@adacore.com>
* sem.ads (Scope_Stack_Entry): Reorganize storage of action lists;
introduce a new list (cleanup actions) for each (transient) scope.
* sinfo.ads, sinfo.adb (Cleanup_Actions): New attribute for
N_Block_Statement
* exp_ch7.ads (Store_Cleanup_Actions_In_Scope): New subprogram.
* exp_ch7.adb (Store_Actions_In_Scope): New subprogram, common
processing for Store_xxx_Actions_In_Scope.
(Build_Cleanup_Statements): Allow for a list of additional
cleanup statements to be passed by the caller.
(Expand_Cleanup_Actions): Take custom cleanup actions associated
with an N_Block_Statement into account.
(Insert_Actions_In_Scope_Around): Account for Scope_Stack_Entry
reorganization (refactoring only, no behaviour change).
(Make_Transient_Block): Add assertion to ensure that the current
scope is indeed a block (namely, the entity for the transient
block being constructed syntactically, which has already been
established as a scope). If cleanup actions are present in the
transient scope, transfer them now to the transient block.
* exp_ch6.adb (Expand_Protected_Subprogram_Call): Freeze the
called function while it is still present as the name in a call
in the tree. This may not be the case later on if the call is
rewritten into a transient block.
* exp_smem.adb (Add_Shared_Var_Lock_Procs): The post-actions
inserted after calling a protected operation on a shared passive
protected must be performed in a block finalizer, not just
inserted in the tree, so that they are executed even in case of
a normal (RETURN) or abnormal (exception) transfer of control
outside of the current scope.
* exp_smem.ads (Add_Shared_Var_Lock_Procs): Update documentation
* sem_ch8.adb, expander.adb, exp_ch11.adb: Adjust for
Scope_Stack_Entry reorganization.
2014-07-17 Thomas Quinot <quinot@adacore.com>
* exp_disp.adb (Make_DT, Make_VM_TSD): Do not omit Check_TSD
call for types that do not have an explicit attribute definition
clause for External_Tag, as their default tag may clash with an
explicit tag defined for some other type.
2014-07-17 Hristian Kirtchev <kirtchev@adacore.com>
* exp_util.adb (Is_Controlled_Function_Call): Recognize a
controlled function call with multiple actual parameters that
appears in Object.Operation form.
2014-07-17 Thomas Quinot <quinot@adacore.com>
* einfo.ads, einfo.adb (Has_External_Tag_Rep_Clause): Remove
entity flag.
* sem_ch13.adb (Analyze_Attribute_Definition_Clause, case
External_Tag): No need to set entity flag.
* sem_aux.ads, sem_aux.adb (Has_External_Tag_Rep_Clause):
Reimplement correctly in terms of Has_Rep_Item.
From-SVN: r212719
2014-07-17 Thomas Quinot <quinot@adacore.com>
* exp_ch7.adb (Establish_Transient_Scope.Find_Node_To_Be_Wrapped):
Start examining the tree at the node passed to
Establish_Transient_Scope (not its parent).
* exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration):
The access type for the variable storing the reference to
the call must be declared and frozen prior to establishing a
transient scope.
* exp_ch9.adb: Minor reformatting.
From-SVN: r212718