blob: 3d0c8d3846f4b0b7e842d1c816ae909794988255 [file] [log] [blame]
2014-12-22 Eric Botcazou <>
* gcc-interface/trans.c (Attribute_to_gnu) <Attr_{Min,Max}>: If the
type is a floating-point type, implement the semantics of the C99
f{min,max} routines with regard to NaNs.
(gnat_to_gnu): Call builtin_decl_implicit.
* gcc-interface/utils2.c (compare_arrays): Adjust comments.
2014-12-22 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_field): Post the error message
for parent overlapping on the position instead of on the first bit.
For a field that needs strict alignment, issue the error for the
position first and, for the size, issue an error if it is too large
only for the atomic and aliased cases. Issue a specific error if
the size is not a multiple of a byte in the volatile and the strict
alignment cases.
2014-12-22 Eric Botcazou <>
* gcc-interface/decl.c (check_ok_for_atomic): Rename into...
(check_ok_for_atomic_type): ...this. When checking the mode, also
check that the type is sufficient aligned. Remove useless code and
tidy up implementation.
(gnat_to_gnu_entity): Adjust to above renaming.
(gnat_to_gnu_component_type): Likewise.
(gnat_to_gnu_field): Likewise.
2014-12-17 Pierre-Marie de Rodat <>
* gcc-interface/misc.c (gnat_get_array_descr_info): New. Use it for
the get_array_descr_info lang-hook. Use it to tune the DWARF output
for array types.
2014-11-24 Eric Botcazou <>
* gcc-interface/ (Cygwin/Mingw): Fix previous change.
2014-11-24 Eric Botcazou <>
* gcc-interface/trans.c (build_return_expr): Use INIT_EXPR instead of
MODIFY_EXPR to assign to the return object.
(finalize_nrv_r): Adjust to above change.
(finalize_nrv_unc_r): Likewise.
2014-11-24 Eric Botcazou <>
* gcc-interface/trans.c (push_range_check_info): Replace early test
with assertion.
(Raise_Error_to_gnu): Do not call push_range_check_info if the loop
stack is empty.
* gcc-interface/utils.c (convert_to_fat_pointer): Fix formatting.
* gcc-interface/utils2.c (gnat_invariant_expr): Deal with padded types
and revert latest change.
2014-11-22 Eric Botcazou <>
* gcc-interface/trans.c (Call_to_gnu): Strip unchecked conversions on
actuals of In parameters if the destination type is an unconstrained
composite type.
2014-11-22 Eric Botcazou <>
* gcc-interface/trans.c (gnat_gimplify_expr): Add 'type' variable.
<case NULL_EXPR>: Deal with unconstrained array types and use 'type'.
<case ADDR_EXPR>: Use 'type'.
<case DECL_EXPR>: Likewise.
2014-11-20 Trevor Saunders <>
* gcc-interface/decl.c (annotate_value_cache): Replace htab with
(annotate_value): Adjust.
(init_gnat_decl): Likewise.
(destroy_gnat_decl): Likewise.
* gcc-interface/utils.c (pad_type_hash_table): Replace htab with
(init_gnat_utils): Adjust.
(destroy_gnat_utils): Likewise.
(lookup_and_insert_pad_type): Likewise.
2014-11-20 Arnaud Charlet <>
PR ada/63931
* (Library_Version): Switch to "5".
2014-11-20 Thomas Quinot <>
* freeze.adb (Freeze_Entity): Do not reset Is_True_Constant
for aliased constant objects.
2014-11-20 Robert Dewar <>
* exp_util.adb (Following_Address_Clause): Use new Name_Table
boolean flag set by parser to avoid the search if there is no
address clause anywhere for the name.
* namet.adb (Name_Enter): Initialize Boolean_Info flag
(Name_Find): ditto (Reinitialize): ditto (Get_Name_Table_Boolean):
New function (Set_Name_Table_Boolean): New procedure
* Add and document new Boolean field in name table
(Get_Name_Table_Boolean): New function.
(Set_Name_Table_Boolean): New procedure.
* par-ch13.adb (P_Representation_Clause): Set Name_Table boolean
flag for an identifier name if we detect an address clause or
use-at clause for the identifier.
* sem_ch3.adb (Analyze_Object_Declaration): Remove comment about
Following_Address_Clause since this function is now optimized
and is not a performance concern.
* sem_prag.adb (Analyze_Pragma, case Elaborate): In SPARK
mode, pragma Elaborate is now allowed, but does not suppress
elaboration checking.
2014-11-20 Jerome Lambourg <>
* gcc-interface/ Add some support for VxWorks7.
2014-11-20 Thomas Quinot <>
* sem_ch13.adb, freeze.adb: Minor reformatting.
* gnat_rm.texi: Minor editing.
2014-11-20 Robert Dewar <>
* sem_prag.adb (Analyze_Pragma): Minor reformatting.
(Process_Suppress_Unsuppress): Ignore suppress Elaboration_Check
2014-11-20 Bob Duff <>
* gnat_rm.texi: Correction to documentation of
'Unrestricted_Access in case of access to unconstrained array.
* a-cofove.adb (Capacity): Fix bug -- was always
returning Capacity_Range'Last.
(Is_Sorted): Fix bug -- was always returning True, because
Container.Last = Last. That test isn't even needed, because the
loop will go around zero times in that case, so deleted that
test rather than fixing it.
(Reverse_Elements): Make sure to use the correct array bounds.
2014-11-20 Ed Schonberg <>
* sem_ch12.adb (Analyze_Associations): In GNATProve mode, build
wrappers for functions and operators that are actuals only if
expander is enabled. Wrappers play no role within a generic unit.
2014-11-20 Hristian Kirtchev <>
* sem_util.adb (Policy_In_Effect): Use the
configuration level assertion flag.
2014-11-20 Arnaud Charlet <>
* Update comments.
2014-11-20 Robert Dewar <>
*, Minor reformatting.
* sem_elab.adb (Check_A_Call): Add guard for reference to Alias
for variable case.
2014-11-20 Bob Duff <>
* a-cofove.adb (Elems,Elemsc): Use access-to-constrained arrays
instead of access-to-unconstrained, because the latter doesn't
work with 'Unrestricted_Access when the result is returned from
a function.
* (Vector): Move the discriminant-dependent array
after the other components for efficiency. Otherwise the compiler
will generate a lot of code to calculate the offset of the other
components every time they're accessed.
2014-11-20 Olivier Hainque <>
* Fix comment on Generate_SCO_Instance_Table wrt when
it is set to true.
2014-11-20 Ed Schonberg <>
* exp_ch3.adb (Expand_N_Object_Declaration): Handle properly
a type invariant check on an object with default initialization
and an address clause.
2014-11-20 Robert Dewar <>
* sem_elab.adb (Check_A_Call): Handle variable ref case in
SPARK (Check_Elab_Call): ditto (Find_Elab_Reference): ditto
(Get_Referenced_Ent): ditto.
* Comment fixes to account for the fact that we
now deal with variable references in SPARK mode.
* sem_res.adb (Resolve_Entity_Name): In SPARK_Mode Call
Check_Elab_Call for variable.
2014-11-20 Yannick Moy <>
* (Copy): Fix precondition, which should allow
Capacity = 0.
(First_To_Previous, Current_To_Last): Add necessary preconditions.
2014-11-20 Hristian Kirtchev <>
* exp_ch3.adb (Build_Initialization_Call): Reimplement the
circuitry which extraacts the [underlying] full view of a
private type to handle a case where the private type acts as a
generic actual.
* exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Inherit the
loop label form the original loop regardless of whether it came
from source.
* sem_attr.adb (Analyze_Attribute): When taking 'Access of an
expression function with a generated body that has not been
analyzed yet, analyze the body to freeze the expression.
* sem_util.adb (Set_Public_Status_Of): New routine.
(Transfer_Entities): Handle the case where a private type with
an internally generated full view is being transfered and update
its full view.
2014-11-20 Vincent Celier <>
* prj-nmsc.adb (Check_Object): If a unit is in a multi-source
file, its object file is never the same as any other unit.
2014-11-20 Bob Duff <>
* s-taskin.adb (Initialize_ATCB): Take into
account the fact that the domain of the activator can be null
if we're initializing a foreign task.
2014-11-20 Robert Dewar <>
* sem_ch12.adb: Minor reformatting.
2014-11-20 Jerome Lambourg <>
* Add comments. Minor reformatting.
2014-11-20 Yannick Moy <>
* sem_prag.adb, sem_elab.adb: Minor rewording of error message in
SPARK mode, for consistency.
2014-11-20 Vasiliy Fofanov <>
* gnat_ugn.texi: New section on gnattest stubbing. Minor
2014-11-20 Jerome Lambourg <>
* s-taprop-vxworks.adb (Create_Task): Fix thread comparison.
Minor reformatting.
2014-11-20 Robert Dewar <>
* s-tassta.adb, exp_aggr.adb, s-taskin.adb, exp_strm.adb: Minor
* comperr.adb (Compiler_Abort): New wording for bug box.
* par-ch13.adb: Minor reformatting.
* par-ch3.adb (P_Identifier_Declarations): Handle aspect
specifications given before initialization expression in object
declaration cleanly.
* gnat1drv.adb (Adjust_Global_Switches): Make sure static
elaboration mode is set if we are operating in SPARK mode.
* sem_ch12.adb (Analyze_Package_Instantiation): Make
sure static elab mode is set if we are in SPARK mode.
(Analyze_Subprogram_Instantiation): ditto.
(Set_Instance_Env): ditto.
* sem_elab.adb (Check_A_Call): In SPARK mode, we require
Elaborate_All in the case of a call during elaboration to a
subprogram in another unit.
2014-11-20 Ed Schonberg <>
* inline.adb (Can_Split_Unconstrained_Function,
Build_Procedure): Copy parameter type rather than creating
reference to the entity, to capture class-wide reference, whose
name is not retrieved by visibility.
2014-11-20 Arnaud Charlet <>
* Replace 64 by long_long_integer'size.
2014-11-20 Olivier Hainque <>
* init.c (__gnat_map_signal for VxWorks): Use a common mapping
scheme for VxWorks version >= 6, instead of falling back to the
vx5 scheme for versions > 6.
2014-11-20 Ed Schonberg <>
* exp_strm.adb (Build_Mutable_Record_Read_Procedure): Use
base type when constructing subtype indication for constrained
target object.
2014-11-20 Jose Ruiz <>
* projects.texi: Minor spelling fix.
2014-11-20 Bob Duff <>
* gnat_ugn.texi: Add doc for --split-line-before-op switch in gnatpp.
2014-11-20 Vincent Celier <>
* prj-attr.adb (Register_New_Package): Allow the registration
of an already unknown package and make it known.
2014-11-20 Trevor Saunders <>
* gcc-interface/decl.c, gcc-interface/utils.c: replace htab with
2014-11-20 Robert Dewar <>
* sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma
Elaborate in SPARK mode.
2014-11-20 Bob Duff <>
* s-taskin.adb, s-tassta.adb (Initialize_ATCB): If Domain
is null, then initialize T.Common.Domain to that of the
activating task (not the parent task!), as required by RM-D.16.1.
T.Common.Domain should never be null; so Assert. Remove similar
code from Create_Task in s-tassta.adb.
* s-mudido-affinity.adb: Remove checks for Domain = null,
because it can't be null.
*,,,,,, Mark limited types as
explicitly limited for clarity.
2014-11-20 Ed Schonberg <>
* exp_aggr.adb (Init_Hidden_Discriminants): Code clean up.
2014-11-20 Robert Dewar <>
* errout.adb (Error_Msg): Don't suppress continuation msgs for
run-time files.
* sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma
Elaborate in SPARK mode.
2014-11-20 Yannick Moy <>
* gnat_rm.texi: Update GNAT RM with rule about expressions in
Update attribute.
2014-11-20 Thomas Quinot <>
* g-socket.adb (To_Host_Entry): Guard against case of a
non-AF_INET entry.
2014-11-20 Vadim Godunko <>
* a-strunb-shared.adb (To_Unbounded_String): Use shared empty
object to construct return value when source string is empty or
requested length is zero.
* a-stwiun-shared.adb (To_Unbounded_Wide_String): Likewise.
* a-stzunb-shared.adb (To_Unbounded_Wide_Wide_String): Likewise.
2014-11-20 Yannick Moy <>
* a-cfhase.adb, a-cfinve.adb, a-cforma.adb, a-cfhama.adb, a-cforse.adb,
a-cofove.adb: Skip CodePeer analysis on body of all formal containers.
2014-11-20 Arnaud Charlet <>
* adaint.c: Fix typo.
* exp_util.adb (Make_Subtype_From_Expr): Complete previous change,
generate constant values.
* sem_eval.adb (Decompose_Expr): Fix latent bug leading to a wrong
evaluation to '0' of some unknown values.
2014-11-20 Robert Dewar <>
* repinfo.adb (List_Record_Info): Do not list discriminant in
unchecked union.
* sem_ch13.adb (Has_Good_Profile): Minor reformatting
(Analyze_Stream_TSS_Definition): Minor reformatting
(Analyze_Record_Representation_Clause): Do not issue warning
for missing rep clause for discriminant in unchecked union.
2014-11-20 Vadim Godunko <>
* a-strunb-shared.adb, a-stwiun-shared.adb, a-stzunb-shared.adb
("&") Use already computed value of data length to call allocation
2014-11-20 Ed Schonberg <>
* exp_ch6.adb (Expand_Call, Inlined_Subprogram): Do not suppress
debugging information for a call to a predefined unit, if the
call comes from source and the unit is in the Ada hierarchy.
2014-11-20 Bob Duff <>
* Update signature of Create and Get_Last_CPU. Add
CPU_Set, another Create, and Get_CPU_Set.
* s-mudido.adb: Corresponding changes to the spec. New
operations just raise an exception. Also minor cleanup: use
* s-mudido-affinity.adb: Implementations of new operations from
*, for the platforms that actually support processor
affinity. The new Create (which takes a set) now does all the
work; the old Create (which takes a range) now just calls the
new one. Change error messages to reflect the fact that it's an
arbitrary set, not just a range.
2014-11-20 Robert Dewar <>
* exp_attr.adb: Minor reformatting.
2014-11-20 Hristian Kirtchev <>
* exp_util.adb (Make_Subtype_From_Expr): Capture the bounds of
all index constracts when the expression is of an array type.
2014-11-20 Bob Duff <>
* Minor comment improvements.
2014-11-20 Bob Duff <>
* exp_ch9.adb: Minor comment fixes.
* s-taskin.adb (Initialize): Small simplification: pass System_Domain
to Initialize_ATCB instead of passing null and then setting the Domain
to System_Domain. This requires moving the creation of System_Domain
* s-taprop-linux.adb (Set_Task_Affinity): Only call CPU_SET for
processors that have a True in the Domain. This is necessary if the
Domain is not all-True values.
2014-11-20 Ed Schonberg <>
* sem_ch13.adb (Has_Good_Profile): a) An stream attribute
for the class-wide type of an interface type is not a primitive
operation and is not subject to the restrictions of 13.13. (38/3).
b) A stream operation for an interface type must be a null
procedure, and it cannot be a function.
2014-11-20 Bob Duff <>
* exp_attr.adb (Attribute_Max_Size_In_Storage_Elements):
Eliminate 'Class references from the tree, because gigi crashes on
'Class. Also, don't check Nkind (Attr) -- it is known to be
N_Attribute_Reference. Assert that instead.
2014-11-20 Bob Duff <>
* debug.adb: Minor comment fix.
2014-11-20 Arnaud Charlet <>
* a-ciorma.adb: Minor update: move pragma Annotate up.
* a-cfdlli.adb: Skip codepeer analysis on this body.
2014-11-20 Robert Dewar <>
* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
Allow use of this pragma with generic unit (package or subprogram).
* gnat_rm.texi: Clarify that pragma No_Elaboration_Code_All can
be applied to generics.
2014-11-20 Ed Schonberg <>
* sem_aggr.adb (Valid_Limited_Ancestor): Ancestor part of
extension aggregate can itself be an extension aggregate, as
well as a call that is rewritten as a reference.
2014-11-20 Eric Botcazou <>
* inline.adb (Add_Inlined_Subprogram): Insert all programs
generated as a body or whose declaration was provided along with
the body.
2014-11-20 Javier Miranda <>
* sem.adb (Semantics): Disable expansion if we are compiling a
separate unit under configurable runtime. By default separate
units are compiled with expansion disabled but under configurable
runtime we enable the expansion to get error messages about
missing entities.
2014-11-20 Robert Dewar <>
* sem_ch13.adb: Minor reformatting.
* exp_util.adb (Following_Address_Clause): Handle case of
package private part.
2014-11-20 Arnaud Charlet <>
* a-cdlili.adb, a-cihama.adb, a-coinve.adb, a-cusyqu.adb, a-ciorse.adb,
a-coorma.adb, a-cborma.adb, a-cidlli.adb, a-cimutr.adb, a-ciormu.adb,
a-cbprqu.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, a-coboho.adb,
a-cuprqu.adb, a-cbhama.adb, a-rbtgbo.adb, a-cborse.adb, a-comutr.adb,
a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-convec.adb, a-cohase.adb,
a-coinho.adb, a-coinho-shared.adb, a-cbdlli.adb, a-cbsyqu.adb,
a-cbmutr.adb, a-cbhase.adb: Add pragma Annotate to prevent codepeer
from analyzing these bodies.
2014-11-20 Ed Schonberg <>
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not apply
inlining expansion if function build in place, i.e. has a limited
return type.
2014-11-20 Hristian Kirtchev <>
* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Add
variables Body_Id, Body_Inputs, Body_Outputs, Spec_Inputs,
Spec_Outputs. Synthesize the inputs and outputs of the subprogram
when pragma [Refined_]Global is missing and perform legality
checks on output states with visible refinement.
(Appears_In): Update the comment on usage.
(Check_Output_States): New routine.
(Collect_Dependency_Clause): New routine.
(Collect_Global_Items): Relocated to
(Collect_Subprogram_Inputs_Outputs): Add new formal parameters
Synthesize and Depends_Seen. The routine can now synthesize inputs
and outputs from pragma [Refined_]Depends.
(Normalize_Clause): Update the comment on usage. The routine no longer
performs normalization of outputs.
(Normalize_Clauses): Normalize both inputs and outputs.
(Normalize_Output): Relocated to Normalize_Clauses.
* (Collect_Subprogram_Inputs_Outputs): Add new
formal parameters Synthesize and Depends_Seen and update the
comment on usage.
2014-11-20 Vincent Celier <>
PR ada/47500
* back_end.adb (Scan_Back_End_Switches): Skip switch -G and
its argument.
2014-11-20 Ed Schonberg <>
* sem_ch13.adb (Reset_Loop_Variable): New subsidiary procedure
in Build_Predicate_Functions, to handle properly quantified
expressions in dynamic predicates.
2014-11-20 Robert Dewar <>
* gnatcmd.adb, sem_ch6.adb, exp_dist.adb: Minor reformatting.
* sem_util.adb (Bad_Unordered_Enumeration_Reference): Suppress
warning (return False) for generic type.
2014-11-20 Hristian Kirtchev <>
* sem_res.adb (Appears_In_Check): Removed.
(Is_OK_Volatile_Context): Rewrite the checks which verify that
an effectively volatile object subject to enabled properties
Async_Writers or Effective_Reads appears in a suitable context to
properly recognize a procedure call.
(Within_Check): New routine.
(Within_Procedure_Call): New routine.
2014-11-20 Ed Schonberg <>
* sem_ch6.adb: Improve better error message.
2014-11-20 Thomas Quinot <>
* freeze.adb, sem_ch13.adb: Minor editing.
2014-11-20 Vincent Celier <>
* gnatcmd.adb: Remove any special processing for the ASIS tools
(gnatpp, gnatmetric, gnatcheck, gnatelim and gnatstup) and simply
invoke the tool with the provided switches and arguments.
2014-11-20 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): Reject declaration
of expression function with identical profile as previous
expression function.
2014-11-20 Thomas Quinot <>
* sem_ch13.adb: Complete previous change.
* exp_dist.adb, Rework PolyORB/DSA arguments processing
circuitry to correctly handle the case of non-private limited
unconstrained formals.
2014-11-20 Robert Dewar <>
* freeze.adb, exp_dbug.adb, sem_ch13.adb: Minor reformatting.
2014-11-20 Thomas Quinot <>
* Fix minor typo in comment.
2014-11-20 Robert Dewar <>
* inline.adb, sem_util.adb: Minor reformatting.
2014-11-20 Pierre-Marie Derodat <>
* uintp.h (UI_Eq): Declare.
* urealp.h (Norm_Den): Declare.
(Norm_Num): Declare.
* exp_dbug.adb (Is_Handled_Scale_Factor): New.
(Get_Encoded_Name): Do not output ___XF GNAT encodings
for fixed-point types when these can be handled by GCC's DWARF
2014-11-20 Thomas Quinot <>
* sem_ch13.db (Inherit_Aspects_At_Freeze_Point): Inherit parent
SSO even if set through a pragma Default_Scalar_Storage_Order.
* freeze.adb (Set_SSO_From_Default): For a type extension,
do not let the default SSO override the parent SSO.
* gnat_rm.texi: document the above
2014-11-20 Robert Dewar <>
*,,,,,, Minor reformatting.
2014-11-20 Hristian Kirtchev <>
* sem_prag.adb (Analyze_Pragma): Extensions_Visible can now
apply to an expression function.
* sem_util.adb (Extensions_Visible_Status): Add special processing
for expression functions.
2014-11-20 Hristian Kirtchev <>
* inline.adb (Build_Body_To_Inline): Remove meaningless aspects
and pragmas.
(Generate_Subprogram_Body): Remove meaningless aspects and pragmas.
(Remove_Aspects_And_Pragmas): New routine.
(Remove_Pragmas): Removed.
*, namet.adb (Nam_In): New versions of the routine.
2014-11-20 Thomas Quinot <>
* sem_util.adb: Minor reformatting.
2014-11-20 Robert Dewar <>
* sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect
duplicate Linker_Section.
2014-11-20 Ed Schonberg <>
* exp_ch4.adb: Add guard for build-in-place boolean op.
2014-11-20 Yannick Moy <>
* checks.adb (Apply_Scalar_Range_Check): In GNATprove mode,
put a range check when an empty range is used, instead of an
error message.
* Update comment on GNATprove mode.
2014-11-20 Arnaud Charlet <>
*,,,,,, Replace uses of 2 ** 63 and
2 ** 64 by references to Long_Long_Integer instead, to allow these
units to be analyzed by codepeer or spark when using a target
configuration file with long_long_size set to 32.
2014-11-20 Hristian Kirtchev <>
* sem_util.adb (Extensions_Visible_Status): Modify the logic to account
for non-SPARK code.
(Object_Access_Level): In ASIS mode, recognize
a selected component with an implicit dereference so that it
yields the same value with and without expansion.
2014-11-20 Ed Schonberg <>
* sem_prag.adb (Analyze_Pragma, case Implemented): In ASIS
(compile-only) mode, use original type declaration to determine
whether protected type implements an interface.
2014-11-20 Yannick Moy <>
* a-cfdlli.adb,, a-cfinve.adb,,
* a-cofove.adb, Mark spec as SPARK_Mode, and private
part/body as SPARK_Mode Off.
* a-cfhama.adb,, a-cfhase.adb,,
* a-cforma.adb,, a-cforse.adb, Use
aspect instead of pragma for uniformity.
2014-11-20 Hristian Kirtchev <>
* sem_util.adb (Is_EVF_Expression): Include
attributes 'Loop_Entry, 'Old and 'Update to the logic.
2014-11-20 Bob Duff <>
* sem_res.adb (Make_Call_Into_Operator): Don't
call Left_Opnd in the case of unary operators, because they only
have Right.
2014-11-20 Pascal Obry <>
* initialize.c (ProcListCS): New extern variable (critical section).
(ProcListEvt): New extern variable (handle).
(__gnat_initialize)[Win32]: Initialize the ProcListCS critical
section object and the ProcListEvt event.
* final.c (__gnat_finalize)[Win32]: Properly finalize the
ProcListCS critical section and the ProcListEvt event.
* adaint.c (ProcListEvt): New Win32 event handle.
(EnterCS): New routine to enter the critical section when dealing with
child processes chain list.
(LeaveCS): As above to exit from the critical section.
(SignalListChanged): Routine to signal that the chain process list has
been updated.
(add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the
handle has been added.
(__gnat_win32_remove_handle): Use EnterCS/LeaveCS,
also call SignalListChanged if the handle has been found and removed.
(remove_handle): Routine removed, implementation merged with the above.
(win32_wait): Use EnterCS/LeaveCS for the critical section. Properly
copy the PID list locally to ensure that even if the list is updated
the local copy remains valid. Add into the hl (handle list) the
ProcListEvt handle. This handle is used to signal that a change has
been made into the process chain list. This is to ensure that a waiting
call can be resumed to take into account new processes. We also make
sure that if the handle was not found into the list we start over
the wait call. Indeed another concurrent call to win32_wait()
could already have handled this process.
2014-11-20 Ed Schonberg <>
* sem_res.adb (Resolve_Actuals): The legality rule concerning
the use of class-wide actuals for a non-controlling formal are
not rechecked in an instance.
2014-11-20 Pascal Obry <>
* Minor typo fix.
2014-11-20 Hristian Kirtchev <>
* exp_attr.adb (Expand_N_Attribute_Reference,
Expand_Update_Attribute): Preserve the tag of a prefix by offering
a specific view of the class-wide version of the prefix.
2014-11-20 Javier Miranda <>
* sem_ch6.adb (Analyze_Function_Return): For functions returning
an access to an interface add an implicit conversion to the target
type to force the displacement of the pointer to the object to
reference the secondary dispatch table.
(Check_Anonymous_Return): Skip internally built functions which handle
the case of null access when locating the master of a task.
* sem_res.adb (Valid_Conversion): Return true for internally
generated conversions of access to interface types added to force
the displacement of the pointer to reference the corresponding
dispatch table.
2014-11-20 Pascal Obry <>
* adaint.c (add_handle): realloc with a size of +100.
2014-11-20 Ed Schonberg <>
* sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate
back the resolved operands to the original call node, taking
into account that the original call may have named associations.
2014-11-20 Hristian Kirtchev <>
* inline.adb (Has_Some_Contract): Change the
guard to test the Ekind of the entity rather than the Analyzed
flag. This handles partially analyzed contexts.
2014-11-20 Ed Schonberg <>
* sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do
not reject the renaming of a function result if the renaming
does not come for source.
2014-11-20 Robert Dewar <>
* Minor addition of ??? clause.
2014-11-20 Ed Schonberg <>
* sem_util.adb (Is_Variable): For an Ada 2012 implicit
dereference introduced for an indexing opertion, check that the
type of the corresponding access discriminant is not an access
to constant.
2014-11-20 Hristian Kirtchev <>
* sem_ch6.adb (Find_Corresponding_Spec): Inherit
the ghostness of the matching spec, the same way convention
is inherited.
2014-11-20 Eric Botcazou <>
* sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of
tests in a condition so Following_Address_Clause is invoked
only if need be.
* (Following_Address_Clause): Add small note.
2014-11-20 Pascal Obry <>
* adaint.c (remove_handle): New local routine without a lock.
(win32_wait): fix the critical section to properly protect needed
code, use new remove_handle.
(__gnat_win32_remove_handle): refactor code with remove_handle.
2014-11-20 Eric Botcazou <>
* inline.adb (Analyze_Inlined_Bodies): Iterate between loading
of the inlined bodies and instantiation of the generic bodies
until no more bodies need to be loaded.
2014-11-20 Vincent Celier <>
* prj.adb,, prj-conf.adb: Minor change of procedure name:
Update_Ignore_Missing_With becomes Set_Ignore_Missing_With.
2014-11-20 Robert Dewar <>
* exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb,
sem_ch6.adb: Minor reformatting.
2014-11-20 Javier Miranda <>
* exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit
conversion to force the displacement of the pointer to the object
to reference the secondary dispatch table.
2014-11-11 Simon Wright <>
PR ada/42978
* mlib-utl.adb (ar): Output the options passed to ranlib.
2014-11-07 Arnaud Charlet <>
* debug.adb, snames.adb-tmpl (Is_Keyword_Name): Consider 'overriding'
a keyword in Ada 95 mode when -gnatd.D is used.
* gnat_ugn.texi: Document -gnatd.D.
2014-11-07 Vasiliy Fofanov <>
* gnatls.adb: Lower severity of the program's return value in
some common cases.
2014-11-07 Ed Schonberg <>
* sem_ch10.adb (Decorate_Type): The limited view of a tagged
type has an empty list of primitive operations.
2014-11-07 Hristian Kirtchev <>
* sem_ch3.adb (Analyze_Object_Declaration): Update references to SPARK
(Process_Full_View): Update references to SPARK RM.
* sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references
(Analyze_Subprogram_Body_Helper): Update references
* sem_ch7.adb (Analyze_Package_Body_Helper): Update references
* sem_prag.adb (Check_Ghost_Constituent): Update references to
* sem_res.adb (Check_Ghost_Policy): Update references to SPARK RM.
(Resolve_Actuals): Ensure that the actual parameter of a Ghost
subprogram whose formal is of mode IN OUT or OUT is Ghost.
* sem_util.adb (Check_Ghost_Completion): Update references to
2014-11-07 Ed Schonberg <>
* exp_ch7.adb (Make_Final_Call): If type of designated object is
derived from that of the formal of the Deep_Finalize procedure,
add an unchecked conversion to prevent spurious type error.
2014-11-07 Robert Dewar <>
* table.adb, inline.adb, einfo.adb, gnat1drv.adb, exp_ch13.adb,
exp_fixd.adb, prj-conf.adb, exp_strm.adb, a-cofove.adb,
Minor reformatting.
2014-11-07 Robert Dewar <>
* sem_ch12.adb, sem_ch13.adb, prj-tree.adb: Minor reformatting.
2014-11-07 Hristian Kirtchev <>
* einfo.adb (Set_Is_Checked_Ghost_Entity,
Set_Is_Ignored_Ghost_Entity): Add exceptions to the assertion
* sem_ch6.adb (Check_Conformance): Consider only
source subprograms when checking for Ghost conformance.
* sem_prag.adb (Analyze_Pragma): Handle the case
where pragma Ghost applies to a stand alone subprogram body that
acts as a compilation unit.
* sem_res.adb: Minor reformatting (merge if statements).
2014-11-07 Ed Schonberg <>
* exp_strm.adb (Build_Record_Or_Elementary_Input_Function):
Check whether underlying type is constrained before generating
the object declaration for the result object of the function.
2014-11-07 Robert Dewar <>
* freeze.adb: Code clean up.
2014-11-07 Yannick Moy <>
*,, Mark First_To_Previous,
Current_To_Last and Strict_Equal as Ghost.
2014-11-07 Ed Schonberg <>
* sem_ch3.adb: Code clean up.
2014-11-07 Hristian Kirtchev <>
* freeze.adb (Freeze_Entity): Issue an error regardless of the
SPARK_Mode when a ghost type is effectively volatile.
* sem_ch3.adb (Analyze_Object_Contract): Decouple the checks
related to Ghost from SPARK_Mode.
* sem_res.adb (Check_Ghost_Policy): Issue an error regardless
of the SPARK_Mode when the Ghost policies do not match.
* sem_util.adb (Check_Ghost_Completion): Issue an error regardless
of the SPARK_Mode when the Ghost policies do not match.
2014-11-07 Ed Schonberg <>
* sem_ch5.adb (Analyze_Iterator_Specification): return if name
in iterator does not have any usable aspect for iteration.
2014-11-07 Ed Schonberg <>
* sem_ch6.adb (Analyze_Null_Procedure): Reject a null procedure
that there is a previous null procedure in scope with a matching
2014-11-07 Hristian Kirtchev <>
* atree.adb (Copy_Separate_Tree): Copy the aspect specifications.
* inline.adb (Has_Some_Contract): Do the check only when the
related entity has been analyzed.
2014-11-07 Ed Schonberg <>
* exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Integer):
If the restriction No_Floating_Point is in effect, and the
operands have the same type, introduce a temporary to hold
the fixed point result, to prevent the use of floating-point
operations at run-time.
2014-11-07 Robert Dewar <>
* freeze.adb (Check_Address_Clause): Minor reformatting
(Find_Constant): Minor reformatting.
(Freeze_Array_Type): Modify check for packed declarations.
(Freeze_Entity): Minor reformatting.
2014-11-05 Eric Botcazou <>
* (Library_Version): Bump to 5.0.
2014-11-05 Eric Botcazou <>
* gcc-interface/trans.c (Subprogram_Body_to_gnu): For a function with
copy-in/copy-out parameters and which returns by invisible reference,
do not create the variable for the return value; instead, manually
generate the indirect copy out statements on exit.
(gnat_to_gnu) <N_Simple_Return_Statement>: Adjust accordingly and build
a simple indirect assignment for the return value.
2014-11-05 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For a
derived untagged type that renames discriminants, be prepared for
a type derived from a private discriminated type when changing the
type of the stored discriminants.
2014-11-05 Eric Botcazou <>
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Set
the SLOC of the node on the call to set_jmpbuf_address_soft emitted
on block entry with SJLJ.
2014-11-05 Eric Botcazou <>
* gcc-interface/utils.c (create_subprog_decl): Move code dealing with
conflicting inlining status of nested subprograms to...
* gcc-interface/trans.c (check_inlining_for_nested_subprog):
(Attribute_to_gnu) <Attr_Access>: Call it.
(Call_to_gnu): Likewise.
(Subprogram_Body_to_gnu): Drop the body if it is an inlined external
function that has been marked uninlinable.
2014-10-31 Hristian Kirtchev <>
* aspects.adb Add an entry for aspect Ghost in table
* Add an entry for aspect Ghost in tables
Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names and
* einfo.adb: Flags 277 and 278 are now in use.
(Is_Checked_Ghost_Entity): New routine.
(Is_Ghost_Entity): Removed.
(Is_Ghost_Subprogram): Removed.
(Is_Ignored_Ghost_Entity): New routine.
(Set_Is_Checked_Ghost_Entity): New routine.
(Set_Is_Ignored_Ghost_Entity): New routine.
(Write_Entity_Flags): Output flags Is_Checked_Ghost_Entity and
* Add new flags Is_Checked_Ghost_Entity
and Is_Ignored_Ghost_Entity along with usage in nodes.
(Is_Checked_Ghost_Entity): New routine and pragma Inline.
(Is_Ghost_Entity): Removed along with synthesized flag
description and usage in nodes.
(Is_Ghost_Subprogram): Removed along with synthesized flag description
and usage in nodes.
(Is_Ignored_Ghost_Entity): New routine and pragma Inline.
(Set_Is_Checked_Ghost_Entity): New routine and pragma Inline.
(Set_Is_Ignored_Ghost_Entity): New routine and pragma Inline.
* freeze.adb (Freeze_Entity): A Ghost type cannot be effectively
* par-prag.adb Pragma Ghost does not need special handling by
the parser.
* repinfo.adb (List_Mechanisms): Remove the entry for convention Ghost.
* sem_attr.adb (Analyze_Access_Attribute): Remove obsolete check.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Mark
the type as Ghost when its enclosing context is Ghost.
(Analyze_Incomplete_Type_Decl): Mark the type as Ghost when
its enclosing context is Ghost.
(Analyze_Number_Declaration): Mark the number as Ghost when its
enclosing context is Ghost.
(Analyze_Object_Declaration): Mark the object as Ghost when its
enclosing context is Ghost. Verify the Ghost policy between
initial declaration and completion of a deferred constant.
(Analyze_Object_Contract): A Ghost variable cannot be effectively
volatile, imported or exported.
(Build_Derived_Record_Type): Mark a type extension as Ghost when it
implements a Ghost interface.
(Build_Record_Type): Inherit volatility and "ghostness" from
the parent type.
(Check_Completion): A Ghost entity declared
in a non-Ghost package does not require completion in a body.
(Implements_Ghost_Interface): New routine.
(Process_Full_View): Inherit "ghostness" from the partial view. Verify
the Ghost policy between the partial and full views. Verify the
completion of a Ghost type extension.
* sem_ch4.adb (Check_Ghost_Subprogram_Call): Removed.
* sem_ch5.adb (Analyze_Assignment): Analyze the left hand side first.
* sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Mark
the subprogram as Ghost when its enclosing context is Ghost.
(Analyze_Generic_Subprogram_Body): Mark the generic body as Ghost
when its enclosing context is Ghost. Verify the Ghost policy
between the spec and body.
(Analyze_Subprogram_Body_Helper): Mark the body as Ghost when its
enclosing context is Ghost. Verify the Ghost policy between the spec
and body.
(Check_Conformance): A Ghost subprogram profile and a non-Ghost
subprogram profile are not subtype conformant.
(Convention_Of): Removed.
* sem_ch7.adb (Analyze_Package_Body_Helper): Inherit the
"ghostness" from the spec. Verify the Ghost policy between
the spec and body.
(Analyze_Private_Type_Declaration): Mark the type as Ghost when its
enclosing context is Ghost.
(Requires_Completion_In_Body): New routine.
(Unit_Requires_Body): Use Requires_Completion_In_Body.
(Unit_Requires_Body_Info): Rename formal parameter P to Pack_Id, update
comment on usage and all uses of P in the body. Use
* (Unit_Requires_Body): Rename formal parameter P
to Pack_Id, update comment on usage and all uses of P in the body.
* sem_ch8.adb (Analyze_Exception_Renaming): Inherit the "ghostness"
from the renamed excention.
(Analyze_Generic_Renaming): Inherit the "ghostness" from the
renamed generic subprogram.
(Analyze_Object_Renaming): Inherit the "ghostness" from the renamed
(Analyze_Package_Renaming): Inherit the "ghostness" from the
renamed package.
(Analyze_Subprogram_Renaming): Inherit the "ghostness" from the
renamed subprogram.
* sem_ch11.adb (Analyze_Exception_Declaration): Mark an exception
as Ghost when its enclosing context is Ghost.
* sem_ch12.adb (Analyze_Generic_Package_Declaration,
Analyze_Generic_Subprogram_Declaration): Mark an exception as
Ghost when its enclosing context is Ghost.
(Preanalyze_Actuals): Remove obsolete check.
* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
for aspect Ghost.
(Check_Aspect_At_Freeze_Point): Aspects
Depends and Global do no need special checking at freeze point.
(Insert_After_SPARK_Mode): Update comment on usage.
* sem_mech.adb (Set_Mechanisms): Remove the entry for convention Ghost.
* sem_prag.adb Add an entry for pragma Ghost in table Sig_Flags.
(Analyze_Abstract_State): Update the grammar of the pragma. Add
formal parameter Pack_Id along with comment on usage. Mark an
abstract state as Ghost when its enclosing context is Ghost. Add
processing for option Ghost.
(Analyze_Constituent): Verify
that a Ghost abstract state is refined by Ghost constituents.
(Analyze_Pragma): "Ghost" is now a valid policy. Add checks
related to the use and placement of Check_Policy Ghost. Add
processing for pragma Ghost.
(Check_Ghost_Constituent): New routine.
(Is_Valid_Assertion_Kind): "Ghost" is now a valid assertion.
(Process_Convention): Remove obsolete check.
(Set_Convention_From_Pragma): Remove the processing for convention
* sem_res.adb (Check_Ghost_Context): New routine.
(Resolve_Call): Verify that a reference to a Ghost entity appears in a
suitable context. Verify the Ghost polity between point of declaration
and point of use.
(Resolve_Entity_Name): Verify that a reference to
a Ghost entity appears in a suitable context. Verify the Ghost
polity between point of declaration and point of use.
* sem_util.adb (Check_Ghost_Completion): New routine.
(Check_Ghost_Derivation): New routine.
(Incomplete_Or_Partial_View): New routine.
(Incomplete_Or_Private_View): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Statement_Or_Pragma): New routine.
(Is_Subject_To_Ghost): New routine.
(Policy_In_Effect): New routine.
(Set_Is_Ghost_Entity): New routine.
(Within_Ghost_Scope): New routine.
* (Check_Ghost_Completion): New routine.
(Check_Ghost_Derivation): New routine.
(Incomplete_Or_Partial_View): New routine.
(Incomplete_Or_Private_View): Removed.
(Is_Ghost_Entity): New routine.
(Is_Ghost_Statement_Or_Pragma): New routine.
(Is_Subject_To_Ghost): New routine.
(Policy_In_Effect): New routine.
(Set_Is_Ghost_Entity): New routine.
(Within_Ghost_Scope): New routine.
* snames.adb-tmpl (Get_Convention_Id): Remove the entry for
convention Ghost.
(Get_Convention_Name): Remove the entry for convention Ghost.
* Remove the convention id for Ghost. Add a
pragma id for Ghost.
2014-10-31 Sergey Rybin < frybin>
* gnat_ugn.texi: Add description of --RTS option for ASIS tools.
2014-10-31 Olivier Hainque <>
* gcc-interface/ (arm-vxworks): Update target pairs.
2014-10-31 Vincent Celier <>
* prj-part.adb (Parse_Single_Project): Call Set_Display_Name_Of.
* prj-proc.adb (Recursive_Process): Call Display_Name_Of to
get the project Display_Name.
* prj-tree.adb (Display_Name_Of): New function
(Set_Display_Name_Of): New procedure.
(Create_Project): Call Set_Display_Name_Of.
* (Display_Name_Of): New function.
(Set_Display_Name_Of): New procedure.
(Project_Node_Record): New component Display_Name.
(Project_Name_And_Node): Remove component Display_Name.
* prj-conf.adb (Parse_Project_And_Apply_Config): Use the full
Config_File_Path as the Config_File_Name, not just its simple
2014-10-31 Thomas Quinot <>
* get_scos.adb: Minor reformatting.
2014-10-31 Ed Schonberg <>
* exp_ch5.adb (Expand_Formal_Container_Loop): Create block to
capture declaration for cursor to prevent spurious errors when
several formal iterators that use the same cursoe name appear
in the same context.
2014-10-31 Vincent Celier <>
* prj-proc.adb (Recursive_Process): Make sure that the project
display name is never No_Name.
2014-10-31 Ed Schonberg <>
* sem_attr.adb (Analyze_Access_Attribute): Do not emit error
message if reference does not come from source, as in the case
for the controlling argument of a dispatching call. Error is
diagnosed when call is resolved.
* sem_ch4.adb (Complete_Object_Operation); Fix incorrect RM
reference in error message.
* sem_res.adb (Check_Prefixed_Call): ditto.
2014-10-31 Yannick Moy <>
* sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Do not
suppress checks when pragma Restrictions (No_Exception) is used in
CodePeer or GNATprove mode.
2014-10-31 Yannick Moy <>
* gnat1drv.adb (Adjust_Global_Switches): Explicitly mark language
checks as not suppressed in GNATprove mode.
2014-10-31 Ed Schonberg <>
* sem_elab.adb (Check_Elab_Call): Nothing to check if call is
being pre-analyzed.
* sem_ch3.adb (Complete_Private_Subtype): If all rep items of full
view are those of the base, use rep_item chain of partial view,
which may include aspects.
* sem_cat.adb (Is_non_Remote_Access_Type): Use underlying type
of base type, to handle properly declared subtypes.
2014-10-31 Ed Schonberg <>
* sem_ch12.adb (Analyze_Generic_Package_Declaration): If there
is a default storage pool, add a corresponding aspect to the
generic unit, to be used at the point of instantiation.
(Analyze_Package_Instantiation): If generic unit has aspect
specifications, propagate them to instance. If instance has a
Default_Storage_Pool aspect, make sure that it overrides the
one that may be inherited from the generic.
2014-10-31 Vincent Celier <>
* prj-attr.adb: Minor removal of attributes of package Linker
that have never been used and never been documented.
* projects.texi: Add documentation for attribute Runtime.
* prj-nmsc.adb (Check_Configuration): Do not report a warning
for unknown compilers when the project is externally built.
2014-10-31 Vasiliy Fofanov <>
* prj-conf.adb (Do_Autoconf): Refactor the code so that empty
Normalized_Pathname doesn't inhibit the custom Selected_Target
* prj-conf.adb (Parse_Project_And_Apply_Config): Make sure that
Automatically_Generated is correctly set after the first call
to Process_Project_And_Apply_Config and not modified after the
second call, if any.
2014-10-31 Yannick Moy <>
* Makefile.rtl, gnat_rm.texi, impunit.adb: Add mention of new library
* a-cfinve.adb, New unit for formal indefinite
vectors, suitable for use in client SPARK code, also more
efficient than the standard vectors.
* a-coboho.adb, New unit for bounded holders, that
are used to define formal indefinite vectors in terms of formal
definite ones.
* a-cofove.adb, Simplification of the API of formal
definite vectors, similar to the API of the new indefinite ones. A
new formal parameter of the generic unit called Bounded allows
to define growable vectors that use dynamic allocation.
2014-10-31 Vincent Celier <>
* prj-conf.adb (Look_For_Project_Paths): New procedure
(Parse_Project_And_Apply_Config): Initially, parse the project
files ignoring missing withs. If there are missing withs, extend
the project path with directories rooted at the compiler roots,
including directories rooted at the runtime roots, if there are
non default runtimes, in the PATH orser.
* prj-env.adb (Initialize_Default_Project_Path): Do not add
any directory from the prefix if the target is "-".
* prj-part.adb (Parse): Initialize the tables, as Parse may be
call several times by gprbuild.
* prj.adb (Update_Ignore_Missing_With): New procedure.
2014-10-31 Ed Schonberg <>
* sem_aux.adb (First_Stored_Discriminant,
Has_Completely_Hidden_Discriminant): When scanning the list of
discriminants to locate possibly hidden (inherited) discriminants,
ignore itypes that may appear in the entity list, when an access
discriminants is constrained by an access attribute reference.
2014-10-31 Javier Miranda <>
* freeze.adb (Freeze_Record_Type): Add missing
check to verify that all the primitives of an interface type
are abstract or null procedures.
2014-10-31 Vincent Celier <>
* s-os_lib.adb, New function Non_Blocking_Spawn that
redirects standard output and standard error to two different files.
2014-10-31 Bob Duff <>
* Minor comment fix.
2014-10-31 Arnaud Charlet <>
*, (Word_Size,
Memory_Size): Use Standard'Word_Size so that the value can be changed
via a target configuration file.
2014-10-31 Eric Botcazou <>
* exp_ch4.adb: Minor tweak.
2014-10-31 Eric Botcazou <>
* sem_ch12.adb (Analyze_Package_Instantiation): Do not inline with
back-end inlining.
(Must_Inline_Subp): Delete.
*, sem_util.adb (Must_Inline): Likewise.
2014-10-31 Ed Schonberg <>
* freeze.adb (Freeze_Entity): A default_pool does not apply to
internal access types generated for 'access references.
* sem_prag (Analyze_Pragma, case Default_Pool): If the name is
not null it must designate a variable.
2014-10-31 Eric Botcazou <>
* inline.adb: Minor reformatting.
2014-10-31 Ed Schonberg <>
* sem_ch3.adb (Build_Derived_Private_Type): If the derived
type has access discriminants, create itype references for their
anonymous types, so that they are elaborated before the generated
bodies for the primitive operations of the type.
2014-10-31 Tristan Gingold <>
* prj-conf.adb (Locate_Runtime): Remove procedure.
2014-10-31 Eric Botcazou <>
* inline.adb (Has_Excluded_Declaration): With back-end inlining,
only return true for nested packages.
(Cannot_Inline): Issue errors/warnings whatever the optimization level
for back-end inlining and remove assertion.
2014-10-31 Sergey Rybin < frybin>
* table.adb (Tree_Read, Tree_Write): Use parentheses to specify
the desired order of '*' and '/' operations to avoid overflow.
2014-10-31 Eric Botcazou <>
* exp_ch6.adb (Do_Inline): Remove unreachable code.
(Do_Inline_Always): Likewise.
2014-10-31 Vincent Celier <>
* prj-nmsc.adb (Check_Stand_Alone_Library): Change error message
when library has no Ada interfaces and Library_Standalone is
2014-10-31 Arnaud Charlet <>
* sem_ch13.adb (Check_Constant_Address_Clause): Disable checks
on address clauses in CodePeer mode.
2014-10-31 Javier Miranda <>
* inline.adb (Expand_Inlined_Call): Do not skip
inlining of calls to subprogram renamings.
2014-10-31 Hristian Kirtchev <>
* sem_res.adb (Resolve_Entity_Name): Account for
the case where the immediate parent of a reference to an entity
is a parameter association.
2014-10-31 Eric Botcazou <>
* inline.adb (Check_And_Split_Unconstrained_Function): Do not
test for the presence of nested subprograms.
2014-10-31 Ed Schonberg <>
*, aspects.adb: Add aspect Default_Storage_Pool.
* sem_ch13.adb (Analyze_One_Aspect): Generate pragma for aspect
2014-10-31 Eric Botcazou <>
* sem_ch6.adb: Remove obsolete comment.
2014-10-31 Olivier Hainque <>
* bind vec_sld for pixels to 8hi vsldoi instead
of 4si, as pixels are short.
2014-10-31 Ed Schonberg <>
* sem_res.adb (Resolve_Call): Do not reject a call to a protected
operation in the spec of a protected type, when the call appears
in a pre/postcondition for another protected operation.
2014-10-31 Tristan Gingold <>
* prj-conf.adb: Locate_Runtime: Always search the runtime in
project path.
2014-10-31 Eric Botcazou <>
* inline.adb (Check_Package_Body_For_Inlining): Adjust previous
change to use correct idiom for back-end inlining.
2014-10-31 Ed Schonberg <>
* freeze.adb (Freeze_Record_Type): Do not check component size
if its type is generic.
2014-10-31 Bob Duff <>
* gnat_rm.texi: Fix documentation w.r.t -gnatw.w.
2014-10-31 Ed Schonberg <>
* sem_ch4.adb (Try_Container_Indexing): Use Check_Implicit_Dereference.
* sem_util.adb (Check_Implicit_Dereference): a) Handle generalized
indexing as well as function calls. b) If the context is a
selected component and whe are in an instance, remove entity from
selector name to force resolution of the node, so that explicit
dereferences can be generated in the instance if they were in
the generic unit.
2014-10-31 Eric Botcazou <>
* inline.adb (Back_End_Cannot_Inline): Delete.
(Add_Inlined_Subprogram): Do not call it.
2014-10-31 Ed Schonberg <>
* (Make_Tag_Assignment): New function, used to
re-initialize the tag in a tagged object declaration with
initial value.
* exp_ch3.adb (Expand_N_Object_Declaration): Use
Make_Tag_Assignment to simplify code for a tagged object
* exp_ch13.adb (Expand_Freeze_Entity): Analyze freeze actions
for the freeze node of an object.
* freeze.adb (Check_Address_Clause): Use Make_Tag_Assignment when
needed to extend Freeze_Actions for a tagged object declaration.
2014-10-31 Eric Botcazou <>
* gnat_ugn.texi: Further minor improvement to -flto entry.
2014-10-31 Gary Dismukes <>
* g-dynhta.adb, Minor typo fixes and reformatting.
2014-10-30 Ed Schonberg <>
* exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup.
2014-10-30 Ed Schonberg <>
* sem_ch5.adb (Analyze_Iterator_Specification): If a subtype
indication is provided, check properly that it covers the element
type of of the container type.
2014-10-30 Hristian Kirtchev <>
*, g-dynhta.adb: Add the implementation of a load facto
-based hash table.
2014-10-30 Ed Schonberg <>
*, exp_util.adb (Following_Address_Clause): Modify
Has_Following_Address_Clause so that it returns the address
clause if present, rather than a boolean value.
* sem_ch3.adb (Analyze_Object_Declaration): use
* exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object
is initialized, insert tag assignment after object is frozen,
which may be after an address clause that follows the declaration.
2014-10-30 Tristan Gingold <>
*,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,, Add
pragma No_Elaboration_Code_All.
2014-10-30 Eric Botcazou <>
* gnat_ugn.texi: Minor improvement to -flto entry.
2014-10-30 Hristian Kirtchev <>
* sem_util.adb (Inherit_Subprogram_Contract):
Add a guard to protect against enumeration literal overriding.
* sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb:
Minor reformatting (add SPARK RM references).
2014-10-30 Robert Dewar <>
* exp_dbug.adb, Minor reformatting.
2014-10-30 Yannick Moy <>
* inline.adb (Has_Single_Return_In_GNATprove_Mode):
Return False when return statement is inside one or more blocks.
2014-10-30 Hristian Kirtchev <>
* exp_ch7.adb (Is_Subprogram_Call): Account for the case where an
object declaration initialized by a function call that returns
an unconstrained result may be rewritted as a renaming of the
secondary stack result.
2014-10-30 Hristian Kirtchev <>
* aspects.adb: Add an entry for aspect Extensions_Visible in
table Canonical_Aspect.
* Add entry for aspect Extensions_Visible in
tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names,
* einfo.adb (Get_Pragma): Include pragma Extensions_Visible in
the list of contract pragmas.
* par-prag.adb Pragma Extensions_Visible does not require special
processing from the parser.
* sem_ch3.adb (Analyze_Object_Declaration): Prevent an
implicit class-wide conversion of a formal parameter
of a specific tagged type whose related subprogram is
subject to pragma Extensions_Visible with value "False".
(Check_Abstract_Overriding): Add various overriding checks
related to pragma Extensions_Visible.
A subprogram subject to pragma Extensions_Visible with value
False requires overriding if the subprogram has at least one
controlling OUT parameter.
(Is_EVF_Procedure): New routine.
* sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of
a specific tagged type whose related subprogram is subject to
pragma Extensions_Visible with value "False" cannot appear in
a class-wide conversion.
* sem_ch6.adb (Analyze_Subprogram_Contract): Remove
the assertion to account for pragma Extensions_Visible.
(Check_Overriding_Indicator): An overriding subprogram
inherits the contact of the overridden subprogram.
(New_Overloaded_Entity): An overriding subprogram inherits the
contact of the overridden subprogram.
* sem_ch13.adb (Analyze_Aspect_Specifications): Add processing
for aspect Extensions_Visible.
(Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not
require special processing at the freeze point.
* sem_prag.adb Add an entry for pragma Extensions_Visible in
table Sig_Flags.
(Analyze_Pragma): Ensure that various SPARK
pragmas lack identifiers in their arguments. Add processing for
pragma Extensions_Visible.
(Chain_CTC): Code reformatting.
* sem_res.adb (Resolve_Actuals): A formal parameter of a
specific tagged type whose related subprogram is subject to
pragma Extensions_Visible with value "False" cannot act as an
actual in a subprogram with value "True".
* sem_util.adb (Add_Classification): New routine.
(Add_Contract_Item): Account for pragma Extensions_Visible. Code
(Add_Contract_Test_Case): New routine.
(Add_Pre_Post_Condition): New routine.
(Extensions_Visible_Status): New routine.
(Inherit_Subprogram_Contract): New routine.
(Is_EVF_Expression): New routine.
(Is_Specific_Tagged_Type): New routine.
* Add type Extensions_Visible_Mode and document all values.
(Add_Contract_Item): Add pragma Extensions_Visible to the
comment on usage.
(Inherit_Subprogram_Contract): New routine.
(Is_EVF_Expression): New routine.
(Is_Specific_Tagged_Type): New routine.
* sinfo.adb (Is_Inherited): New routine.
(Set_Is_Inherited): New routine.
* Add flag Is_Inherited along with its usage in
(Is_Inherited): New routine along with pragma Inline.
(Set_Is_Inherited): New routine along with pragma Inline.
* Add predefined name "Extensions_Visible"
and a new Pragma_Id for the pragma.
2014-10-30 Vincent Celier <>
* prj-proc.adb (Process_Case_Construction): Do not look for
the ultimate extending project for a case variable.
2014-10-30 Pierre-Marie Derodat <>
* exp_dbug.adb, (GNAT_Encodings): Import from C. Define
(gnat_encodings): Define a dummy variable for the AAMP back-end.
(Get_Encoded_Name): When -fgnat-encodings=all|gdb, encode names
for all discrete types whose bounds do not match size and do so
only for biased types when -fgnat-encodings=minimal.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not create ___XA
parallel types when array bounds are constant while the lower bound is
not 1. Also stop generating them because the bound type is
larger than sizetype.
* gcc-interface/misc.c (gnat_encodings): New.
2014-10-30 Thomas Quinot <>
* opt.adb (Set_Opt_Config_Switches): For an internal unit,
always reset Default_SSO to ' '.
2014-10-30 Thomas Quinot <>
* freeze.adb (Freeze_Record_Type): Set SSO from default before
checking SSO consistency.
2014-10-30 Javier Miranda <>
* inline.adb (Check_Package_Body_For_Inlining):
Cleanup this subprogram to implement exactly the behavior
documented in the spec.
2014-10-30 Hristian Kirtchev <>
* a-comutr.adb, a-cimutr.adb (Insert_Child): Add new variable First.
Update the position after all insertions have taken place.
2014-10-30 Ed Schonberg <>
* sem_prag.adb (Analyze_Pragma, case License): Do not perform
analysis of pragma arguments when in CodePeer mode, pragma has
different format on other compilers.
2014-10-30 Thomas Quinot <>
* s-os_lib.adb: Minor reformatting.
2014-10-29 Richard Sandiford <>
* gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c,
gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c:
Remove redundant enum from machine_mode.
2014-10-28 Andrew MacLeod <>
* gcc-interface/trans.c: Adjust include files.
* gcc-interface/utils.c: Ditto.
2014-10-27 Eric Botcazou <>
* gcc-interface/utils.c (create_subprog_decl): Adjust condition.
2014-10-27 Eric Botcazou <>
* gcc-interface/misc.c (gnat_init_options_struct): Parameterize errno
support here instead of...
Do not set flag_delete_dead_exceptions to 1 unconditionally.
(gnat_init_gcc_eh): Set flag_delete_dead_exceptions to 1.
2014-10-27 Eric Botcazou <>
* gcc-interface/trans.c (gnat_to_gnu) <N_Real_Literal>: Minor tweaks.
2014-10-27 Eric Botcazou <>
* gcc-interface/utils.c (create_var_decl_1): For a variable declared
in the unit, set TREE_PUBLIC only if it has static storage duration.
2014-10-27 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity): Apply special treatment
of derived packed array types to constrained subtypes only.
2014-10-27 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove
superfluous computation for the max size.
<E_Array_Subtype>: Likewise. Make sure that the max size calculation
does not overflow at compile time.
2014-10-23 Ed Schonberg <>
* sem_eval.adb (Check_Non_Static_Context): Do not set
Is_Machine_Number on a literal of a fixed-point type.
2014-10-23 Robert Dewar <>
* mlib-prj.adb, sem_ch4.adb, exp_ch3.adb: Minor reformatting.
2014-10-23 Pierre-Marie Derodat <>
* Update ___XA parallel type specification.
2014-10-23 Hristian Kirtchev <>
* sem_ch3.adb (Copy_Array_Subtype_Attributes): Inherit the rep
chain of the source type.
* sem_ch13.adb (Analyze_Aspect_Specifications): Minor
reformatting of an error message.
* sem_util.adb (Inherit_Rep_Item_Chain): Do not inherit a rep
chain that has been inherited already.
2014-10-23 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): Simplify analysis
in generic context, and generate body in this case as well,
to simplify ASIS traversals on the construct.
2014-10-23 Ed Schonberg <>
* sem_ch4.adb (Complete_Object_Operation): Indicate that the
scope of the operation (s) is referenced, to prevent spurious
warnings about unused units.
2014-10-23 Johannes Kanig <>
* errout.adb (Error_Msg_Internal): Copy check flag, increment
check msg count.
* erroutc.adb (Delete_Msg) adjust check msg count.
(Output_Msg_Text) handle check msg case (do nothing).
(Prescan_Message) recognize check messages with severity prefixes.
* errutil.adb (Error_Msg) handle check flag, adjust counter.
2014-10-23 Ed Schonberg <>
* sem_eval.adb (Subtypes_Statically_Match): For a generic actual
type, check for the presence of discriminants in its parent type,
against the presence of discriminants in the context type.
2014-10-23 Tristan Gingold <>
* adaint.c: __gnat_get_file_names_case_sensitive: Default is
true on arm-darwin.
2014-10-23 Arnaud Charlet <>
* pprint.adb (Expression_Image): Add handling of quantifiers.
2014-10-23 Ed Schonberg <>
* exp_pakd.adb (Expand_Packed_Element_Reference): If the
prefix is a source entity, generate a reference to it before
transformation, because rewritten node might not generate a
proper reference, leading to spurious warnings.
2014-10-23 Tristan Gingold <>
* init.c: Fix thinko in previous patch.
2014-10-23 Hristian Kirtchev <>
* sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration):
Inherit the rep chain of the implicit base type.
(Floating_Point_Type_Declaration): Inherit the rep chain of the
implicit base type.
(Ordinary_Fixed_Point_Type_Declaration): Inherit the rep chain of the
implicit base type.
(Signed_Integer_Type_Declaration): Inherit the rep chain of the
implicit base type.
*, sem_util.adb (Inherit_Rep_Item_Chain): New routine.
2014-10-23 Pascal Obry <>
* g-regist.adb, Add support for reading 32bit or 64bit
view of the registry.
2014-10-23 Ed Schonberg <>
* exp_ch3.adb (Expand_N_Object_Declaration): If type is abstract,
return without expanding expression, to prevent subsequent crash.
* freeze.adb: better error message for illegal declaration.
2014-10-23 Hristian Kirtchev <>
* sysdep.c (__gnat_localtime_tzoff): Properly delimit the
substring which represents the time zone on VxWorks.
2014-10-23 Vincent Celier <>
* gnatls.adb: If --RTS= was not used, check if there is a default
runtime. If there is none, in verbose mode, indicate that the
default runtime is not available and show only the current
directory in the source and the object search paths.
2014-10-23 Ed Schonberg <>
* sem_ch6.adb (Process_Formals): A thunk procedure with a
parameter of a limited view does not need a freeze node.
2014-10-23 Hristian Kirtchev <>
* sem_ch7.adb (Analyze_Package_Body_Helper):
The logic which hides local entities from external
visibility is now contained in routine Hide_Public_Entities.
(Hide_Public_Entities): New routine. Object and subprogram
renamings are now hidden from external visibility the same way
objects are.
2014-10-23 Ed Schonberg <>
* sem_attr.adb (Analyze_Attribute): The prefix of attribute Elaborated
does not require freezing, in particular if it denotes a generic
2014-10-23 Yannick Moy <>
* sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always):
Disable analysis in GNATprove mode.
2014-10-23 Arnaud Charlet <>
* mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only).
2014-10-23 Arnaud Charlet <>
* gnat1drv.adb (Adjust_Global_Switches): Ignore style check
pragmas in codepeer mode.
2014-10-23 Gary Dismukes <>
* gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ',').
2014-10-23 Hristian Kirtchev <>
* sem_ch12.adb (Inline_Instance_Body): Alphabetize
local variables and constants. Add constants Save_SM and Save_SMP
to capture SPARK_Mode-related attributes. Compile the inlined
body with the SPARK_Mode of the enclosing context.
2014-10-23 Hristian Kirtchev <>
* sinfo.adb (Elaboration_Boolean): Removed.
(Set_Elaboration_Boolean): Removed.
* Remove attribute Elaboration_Boolean along with its
occurrence in nodes.
(Elaboration_Boolean): Removed along with pragma Inline.
(Set_Elaboration_Boolean): Removed along with pragma Inline.
2014-10-23 Ed Schonberg <>
* sem_ch3.adb (Constant_Redeclaration): Make error message more
explicit on a deferred constant whose object_definition is an
anonymous array.
2014-10-23 Vincent Celier <>
* gnatls.adb: Never call Targparm.Get_Target_Parameters.
2014-10-23 Ed Schonberg <>
* sem_ch6.adb (Analyze_Expression_Function): In a generic
context do not create a body, and only pre-analyze the expression,
which may include incomplete views.
2014-10-23 Robert Dewar <>
* sem_type.adb: Minor code reorganization (use Nkind_In, Ekind_In).
* sem_ch3.adb: Minor reformatting.
2014-10-23 Ed Schonberg <>
* sem_ch12.adb (Analyze_Associations): If an actual for a formal
object is a call to a parameterless expression function, add
the function to the list of actuals to freeze.
* freeze.adb (Check_Expression_Function): Create freeze nodes of
outer types that may be references in the body of the expression.
2014-10-23 Hristian Kirtchev <>
*, Minor comment reformatting.
2014-10-23 Javier Miranda <>
* sem_eval (Test_In_Range): Disable removal of range_check for
VM targets.
2014-10-23 Robert Dewar <>
* erroutc.adb (Validate_Specific_Warnings): Fix test for -W
messages, which got disabled when we unconditionally added an
asterisk at the start of the string.
2014-10-23 Vincent Celier <>
* gnatls.adb: Ensure that "gnatls -l" works even when there is
no default runtime.
2014-10-23 Eric Botcazou <>
* sem_ch3.adb (Build_Derived_Private_Type): When the parent is
untagged and has discriminants, build the implicit full view after
building the derived type. Capture original declaration and type
here instead of...
* sem_type.adb (Full_View_Covers): Handle the Underlying_Full_View.
2014-10-23 Hristian Kirtchev <>
* checks.adb (Ensure_Valid): Update the subprogram
profile. Propagate the contex attributes to Insert_Valid_Check.
(Insert_Valid_Check): Update the subprogram profile. Propagate
the attributes of the context to Duplicate_Subexpr_No_Checks.
(Validity_Check_Range): Update the subprogram profile. Propagate
the context attribute to Ensure_Valid.
* (Ensure_Valid): Update the subprogram profile
along with the comment on usage.
(Insert_Valid_Check): Update the subprogram profile along with the
comment on usage.
(Validity_Check_Range): Update the subprogram profile along with
the comment on usage.
* exp_util.adb (Build_Temporary): New routine.
(Duplicate_Subexpr_No_Checks): Update the subprogram
profile. Propagate the attributes of the context to Remove_Side_Effects.
(Remove_Side_Effects): Update the subprogram profile. Update all calls
to Make_Temporary to invoke Build_Temporary.
* (Duplicate_Subexpr_No_Checks): Update
the subprogram profile along with the comment on usage.
(Remove_Side_Effects): Update the subprogram profile along with
the comment on usage.
* sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype
to the validity check machinery. Explain the reason for this
2014-10-23 Robert Dewar <>
* a-strsea.adb: Minor reformatting.
2014-10-23 Thomas Quinot <>
* bcheck.adb (Check_Consistent_SSO_Default): Exclude internal
units from consistency check.
* gnat_rm.texi (Default_Scalar_Storage_Order): Document that
consistency check excludes run-time units.
2014-10-23 Ed Schonberg <>
* a-strsea.adb (Find_Token): Enable constraint checking in this
procedure, so that even when compiling with checks suppressed, as is
the case for the run-time, an exception is raised in this routine when
the input meets the conditions described in RM 2005 A.4.3 (68/1).
2014-10-20 Eric Botcazou <>
* sem_ch3.adb (Build_Derived_Private_Type): When the parent
is untagged and has discriminants, build the implicit full
view even if the derived type is a completion, and make it
the Underlying_Full_View of the type.
(Copy_And_Build): Fix Is_Completion actual parameter in the calls to
(Build_Derived_Record_Type): Likewise.
2014-10-20 Ed Schonberg <>
* sem_ch13.adb: Add guard to convention setting.
2014-10-20 Robert Dewar <>
* sem_ch3.adb, prj-proc.adb,, prj-conf.adb: Minor
2014-10-20 Robert Dewar <>
* par-prag.adb (Add_List_Pragma_Entry): New procedure.
* par.adb (P_Pragma): Document requirement to handle multiple calls.
2014-10-20 Robert Dewar <>
* sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All):
Fix error of bad inheritance of this pragma from with'ed unit.
2014-10-20 Ed Schonberg <>
* sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype,
inherit convention from parent type, because the subtype may
have been declared on a partial view, prior to the pragma on
the parent.
2014-10-20 Olivier Hainque <>
Tristan Gingold <>
* gcc-interface/ Handle arm-darwin and VxWorks 7.
Misc clean ups.
2014-10-20 Nicolas Roche <>
* gcc-interface/ ensure that automatically generated
dependency are referencing generated gnatvsn rather than original
2014-10-20 Gary Dismukes <>
* gnat_ugn.texi: Minor reformatting.
* sem_ch3.adb: Minor reformatting.
2014-10-20 Vincent Celier <>
* prj-attr.adb: New project level attribute Runtime.
* prj-conf.adb (Get_Project_Runtimes): New procedure to get
the attributes Runtime declared in the main project, to use
in auto-configuration.
(Get_Or_Create_Configuration_File): Call Get_Project_Runtimes.
* prj-proc.adb (Runtime_Defaults): New table to store
the default values of attributes Runtime (<language>).
(Set_Default_Runtime_For): New procedure to store the default
value of a Runtime (<language>) in table Runtime_Defaults.
(Expression): Use the value stored in table Runtime_Defaults as
the default for Runtime (<language>).
* (Set_Default_Runtime_For): New procedure.
* (Attribute_Default_Value): New enumerated value
2014-10-20 Ed Schonberg <>
* sem_ch3.adb (Analyze_Object_Declaration): If the type is
an unconstrained unchecked_union type, rewrite declaration
as a renaming to prevent attempt to retrieve non- existent
discriminants from expression.
2014-10-20 Ed Schonberg <>
* gnat_ugn.texi: Minor reformatting.
2014-10-20 Tristan Gingold <>
* init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on
* raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for
unused arguments.
2014-10-20 Hristian Kirtchev <>
* sem_attr.adb (Analyze_Attribute): Replace
variables CS and PS with Proc_Id and Subp_Id to better illustrate
their purpose. Account for the case where _Postconditions
has not been generated yet and the context is aspect/pragma
Refined_Post. In that scenario the expected prefix of attribute
'Result is the current scope.
2014-10-20 Robert Dewar <>
* par-ch4.adb (P_Expression): Handle extraneous comma/semicolon
in middle of expression with logical operators.
2014-10-20 Robert Dewar <>
* par-ch13.adb (Possible_Misspelled_Aspect): New function.
2014-10-20 Steve Baird <>
* pprint.adb: Improve Expression_Image function.
2014-10-20 Robert Dewar <>
* gnat_rm.texi: Document No_Tagged_Streams pragma and aspect.
* Add entry for pragma No_Tagged_Streams.
*, aspects.adb: Add aspect No_Tagged_Streams.
* einfo.adb (No_Tagged_Streams_Pragma): New field.
* Minor reformatting (reorder entries).
(No_Tagged_Streams_Pragma): New field.
* exp_ch3.adb: Minor comment update.
* (No_Tagged_Streams): New variable.
* par-prag.adb: Add dummy entry for pragma No_Tagged_Streams.
* (Save_No_Tagged_Streams): New field in scope record.
* sem_attr.adb (Check_Stream_Attribute): Check stream ops
prohibited by No_Tagged_Streams.
* sem_ch3.adb (Analyze_Full_Type_Declaration): Set
(Analyze_Subtype_Declaration): ditto.
(Build_Derived_Record_Type): ditto.
(Record_Type_Declaration): ditto.
* sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams.
(Push_Scope): Save No_Tagged_Streams.
* sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new
2014-10-20 Robert Dewar <>
* sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb,,
sem_ch13.adb: Minor reformatting.
2014-10-20 Javier Miranda <>
* exp_ch3.adb (Expand_N_Object_Declaration): Expand the
declaration of a class-wide limited object containing an
initializing expression into a renaming declaration. Required to
avoid passing such declaration to the backend and also to avoid
generating an extra copy.
2014-10-20 Eric Botcazou <>
* inline.adb (List_Inlining_Info): Minor tweaks.
(Add_Inlined_Body): Inline the enclosing package
if it is not internally generated, even if it doesn't come
from source.
2014-10-20 Ed Schonberg <>
* sem_ch4.adb (Process_Function_Call): If the first actual
denotes a discrete type, the mode must be interpreted as a slice
of an array returned by a parameterless call.
2014-10-20 Vasiliy Fofanov <>
*, prj-env.adb (Get_Runtime_Path): No longer inhibit
searching for runtime referenced by a simple name on a project path.
2014-10-20 Olivier Hainque <>
* vxworks-x86-link.spec: New file.
* Add pragma Linker_Options to link with
2014-10-20 Vincent Celier <>
* (Origin_Of_Target): New type.
(Target_Origin): New variable.
* prj-conf.adb (Parse_Project_And_Apply_Config): Record
Target_Value and Target_Origin. If target was not specified
on the command line with --target=, check if attribute Target
is declared in the main project. If it is and it is not the
native target, parse again the projects so that 'Target get
the new value. Fail if the target has changed again. Invoke
Process_Project_And_Apply_Config with Do_Phase_1 set to False
is Process_Project_Tree_Phase_1 has already been invoked.
* (Process_Project_And_Apply_Config): New Boolean
parameter Do_Phase_1, defaulted to True.
* prj-proc.adb (Expression): Check the special values and
defaults for attribute Target.
2014-10-20 Ed Schonberg <>
* sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze
the subprogram spec of the body in full, because it will be
reanalyzed when the declaration itself is analyzed; otherwise. a
formal may end up duplicated in the list of formals leading to
spurious conformance errors with an existing declaration.
2014-10-20 Ed Schonberg <>
* sem_ch13.adb: Improve error recovery on illegal aspect.
2014-10-20 Arnaud Charlet <>
* set_targ.adb (Write_Target_Dependent_Values, Write_Line):
Fix calling C APIs with no trailing NUL char by calling better
wrappers instead.
2014-10-20 Tristan Gingold <>
* gnat_ugn.texi: Document that gdb users must be in group
_developer on mac os.
2014-10-20 Arnaud Charlet <>
* Fix typo.
2014-10-20 Ed Schonberg <>
* exp_aggr.adb (Convert_To_Assignments): Do not create a
transient scope for a component whose type requires it, if the
context is an initialization procedure, because the target of
the assignment must be visible outside of the block.
2014-10-20 Tristan Gingold <>
* tracebak.c: Define PC_ADJUST for arm-darwin.
* env.c: Remove darwin specific code.
* raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin.
2014-10-20 Ed Schonberg <>
* sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view
is incomplete rather than private, and full type declaration
has aspects, analyze aspects on the full view rather than
the incomplete view, to prevent freezing anomalies with the
class-wide type.
2014-10-17 Robert Dewar <>
* exp_ch9.adb (Expand_N_Task_Body): Add defense against
previous errors.
* freeze.adb (Freeze_Entity): Add defense against checking null
scope for generic.
* restrict.adb (Tasking_Allowed): Add test for No_Run_Time mode.
* sem_ch13.adb (Freeze_Entity_Checks): Add defense against
previous errors.
* sem_ch9.adb (Analyze_Task_Type_Declaration): Give error if
in No_Run_Time mode.
2014-10-17 Robert Dewar <>
* prj-makr.adb: Minor reformatting.
2014-10-17 Robert Dewar <>
* gnatcmd.adb, make.adb, prj-part.adb, gnatlink.adb, prj-nmsc.adb,
prj-conf.adb, prj-env.adb: Use Is_Directory_Separator where possible.
2014-10-17 Ed Schonberg <>
* exp_prag.adb (Undo_Initialization): If Initialize_Scalars
is enabled, code will be generated for some composite types
to initialize an object after its declaration. If there is
a subsequent Import pragma for the object, that code must be
removed as specified byw the semantics of the pragma, and to
prevent out-of-order elaboration issues in the back-end.
2014-10-17 Hristian Kirtchev <>
* exp_ch4.adb (Expand_N_Op_Concat): Keep concatenation operator
wrapping mechanism under debug flag -gnatd.h.
* debug.adb: Claim debug switch -gnatd.h.
2014-10-17 Doug Rupp <>
* gcc-interface/ Enable the socket runtime bits
for Android.
2014-10-17 Ed Schonberg <>
* sem_ch13.adb (Add_Invariants, Replace_Type_References): Do
not perform the replacement on the expression for an inherited
class-wide invariant if in ASIS_Mode and the type reference is
already the prefix of a 'Class attribute reference: the expression
has already been preanalyzed and the replacement performed when
first encountered on the declaration of the parent type.
2014-10-17 Robert Dewar <>
* sem_ch5.adb, sem_ch7.adb, prj-nmsc.adb, sem_ch13.adb, exp_ch3.adb:
Minor reformatting.
2014-10-17 Ed Schonberg <>
* exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant
subprogram from base type.
* sem_ch7.adb (Analyze_Package_Specification): Build invariant
subprogram for private type, not any of its subtypes.
* sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type
of procedure entity, because a call to it may be generated in
a client unit before the corresponding subprogram declaration
is analyzed.
2014-10-17 Vincent Celier <>
* prj-nmsc.adb (Get_Directories): Do not create directories
when a project is abstract.
2014-10-17 Ed Schonberg <>
* sem_ch5.adb (Analyze_Iterator_Specification): If the domain
of iteration is given by an expression that is not an array type,
verify that its type implements an iterator iterface.
2014-10-17 Robert Dewar <>
* sem_attr.adb (Eval_Attribute): Ensure that attribute
reference is not marked as being a static expression if the
prefix evaluation raises CE.
2014-10-17 Robert Dewar <>
* exp_pakd.adb: Move bit packed entity tables to spec.
* Move bit packed entity tables here from body.
* freeze.adb (Freeze_Array_Type): Check that packed array type
is supported.
* rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined):
Specialize messages using PRE_Id_Table.
*, uintp.adb (UI_Image): New functional form.
2014-10-17 Robert Dewar <>
*, aspects.adb: Add Suppress_Initialization aspect.
*, einfo.adb (Suppress_Initialization): Now applies to
* exp_ch3.adb (Default_Initialize_Object): Handle
* exp_prag.adb (Expand_Pragma_Suppress_Initialization): New
procedure (Expand_N_Pragma): Handle Suppress_Initialization
(Expand_Pragma_Import_Or_Interface): Use Undo_Initialization
(Undo_Initialization): New procedure.
* sem_prag.adb (Analyze_Pragma, case Suppress_Initialization):
This is now allowed for E_Variable case.
* gnat_rm.texi: Document new aspect Suppress_Initialization
Suppress_Initialization aspect/pragma can apply to variable.
* Minor reformatting.
2014-10-17 Arnaud Charlet <>
* Add documentation pointer to Flow_Computed_Globals.
2014-10-17 Robert Dewar <>
* cstand.adb (Create_Standard): Mark Short_Integer as
implementation defined.
* sem_util.adb (Set_Entity_With_Checks): Avoid blow up for
compiler built with assertions for No_Implementation_Identifiers test.
2014-10-17 Robert Dewar <>
* Documentation fix, aspect Lock_Free does have a
corresponding pragma.
* gnat_rm.texi: Document implementation defined boolean aspects
as boolean.
2014-10-17 Ed Schonberg <>
* sem_ch13.adb (Add_Invariants): For a class-wide type invariant,
preserve semantic information on the invariant expression
(typically a function call) because it may be inherited by a
type extension in a different unit, and it cannot be resolved
by visibility elsewhere because it may refer to local entities.
2014-10-17 Robert Dewar <>
* gnat_rm.texi: Document that string literal can be used for
pragma Warnings when operating in Ada 83 mode.
2014-10-17 Ed Schonberg <>
* freeze.adb (Find_Aggregate_Component_Desig_Type): New
subsidiary function to Freeze_ Expression, used to determine
whether an aggregate for an array of access types also freezes the
designated type, when some aggregate components are allocators.
2014-10-17 Ed Schonberg <>
* a-strsea.adb (Find_Token): AI05-031 indicates that the
procedure must raise Index_Error when Source is not empty and
the From parameter is not within the range of the Source string.
2014-10-17 Robert Dewar <>
* sem_prag.adb (Is_Static_String_Expression): Allow string
literal in Ada 83 mode.
2014-10-17 Vincent Celier <>
* prj-conf.adb (Get_Config_Switches): In CodePeer mode, do
not take into account any compiler command from package IDE.
2014-10-17 Ed Schonberg <>
* sem_ch12.adb (Build_Function_Wrapper): The formals of the
wrapper must have the same identifiers as those of the formal
subprogram, because calls within the generic may use named
2014-10-17 Robert Dewar <>
* sem_ch3.adb, a-strsea.adb: Minor reformatting.
* par-ch6.adb (P_Subprogram): Fix bad handling of null procedures.
2014-10-17 Ed Schonberg <>
* sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect
specfications from original type declaration to declaration of
implicit base, because original node is rewritten as a subtype
declaration on which type aspects do not belong.
2014-10-17 Hristian Kirtchev <>
* sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type
inherits the attributes related to pragma Default_Initial_Condition
from its parent type.
2014-10-17 Ed Schonberg <>
* a-strsea.adb (Index - versions with a From parameter):
According to AI05-056, the Index functions with a From parameter
return 0 if the source is an empty string.
2014-10-17 Hristian Kirtchev <>
* sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable
the consistency checks in ASIS mode.
2014-10-17 Arnaud Charlet <>
* Minor typo fix.
2014-10-17 Robert Dewar <>
* sem_util.adb: Minor reformatting.
2014-10-17 Ed Schonberg <>
* sem_ch12.adb (Build_Function_Wrapper): Build wrappers for
actuals that are defaulted subprograms of the formal subprogram
2014-10-17 Robert Dewar <>
* exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the
implementation base type.
* Add a note for N_Op_Eq and N_Op_Ne that record
operands are always expanded out into component comparisons.
2014-10-17 Robert Dewar <>
* s-vallli.adb: Minor comment correction.
* Minor comment reformatting.
2014-10-17 Robert Dewar <>
* gnat_rm.texi: Document System.Atomic_Counters.
* impunit.adb: Add System.Atomic_Counters ( to the
list of user- accessible units added as children of System.
* Update comment.
2014-10-17 Arnaud Charlet <>
* Add comments.
2014-10-17 Hristian Kirtchev <>
* sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation
of all attributes related to pragma Default_Initial_Condition.
(Build_Derived_Type): Propagation of all attributes related
to pragma Default_Initial_Condition.
(Process_Full_View): Account for the case where the full view derives
from another private type and propagate the attributes related
to pragma Default_Initial_Condition to the private view.
(Propagate_Default_Init_Cond_Attributes): New routine.
* sem_util.adb: Alphabetize various routines.
(Build_Default_Init_Cond_Call): Use an unchecked type conversion
when calling the default initial condition procedure of a private type.
(Build_Default_Init_Cond_Procedure_Declaration): Prevent
the generation of multiple default initial condition procedures.
2014-10-17 Robert Dewar <>
* prj-conf.adb: Revert previous change.
2014-10-17 Robert Dewar <>
*, Minor reformatting.
2014-10-17 Ed Schonberg <>
* sem_ch12.adb: Additional work on function wrappers.
2014-10-17 Eric Botcazou <>
* exp_util.adb (Possible_Bit_Aligned_Component): Also recurse
on the renamed object of renamings.
2014-10-17 Vincent Celier <>
* prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer
mode, always use the native target.
2014-10-16 Andrew MacLeod <>
* gcc-interface/misc.c: Adjust include files.
2014-10-13 Eric Botcazou <>
Alan Modra <>
PR ada/63225
* uintp.adb (Vector_To_Uint): Move from here to...
* (UI_Vector): Make public.
2014-10-10 Robert Dewar <>
* freeze.adb, sem_attr.adb: Minor reformatting.
2014-10-10 Johannes Kanig <>
*,,,,, add "Default_Initial_Condition"
to container type.
2014-10-10 Vincent Celier <>
* prj-conf.adb (Do_Autoconf): In Codepeer mode, do not try to get
any configuration switches from the project file.
2014-10-10 Ed Schonberg <>
* sem_ch12.adb (Build_Wrapper): Renamed as Build_Operator_Wrapper.
(Build_Function_Wrapper): New function, to construct a wrapper
function for actuals that are functions with an arbitrary
number of parameters. Used in GNATProve mode to simplify proof
propagation in instantiations.
2014-10-10 Robert Dewar <>
* freeze.adb, gnat1drv.adb, sem_ch13.adb: Minor reformatting and
code clean up.
2014-10-10 Hristian Kirtchev <>
* sem_res.adb (Is_OK_Volatile_Context): Allow
a volatile object reference to appear as the expression of a
type conversion.
2014-10-10 Ed Schonberg <>
* sem_ch13.adb (Analyze_Aspect_Specifications, Library_Unit_Aspects):
Aspect specification is legal on a local instantiation of a
library-level generic unit.
2014-10-10 Gary Dismukes <>
* gnat1drv.adb (Adjust_Global_Switches): Set Front_End_Inlining
if inlining has been enabled via -gnatn and the target is not GCC.
2014-10-10 Ed Schonberg <>
* freeze.adb (Freeze_Entity): Freezing a subprogram does
not always freeze its profile. In particular, an attribute
reference that takes the access type does not freeze the types
of the formals.
2014-10-10 Robert Dewar <>
* errout.adb (Adjust_Name_Case): New procedure.
(Set_Msg_Node): Use Adjust_Name_Case.
* (Adjust_Name_Case): New procedure.
* exp_intr.adb (Add_Source_Info): Minor code reorganization
(use Ekind_In).
(Write_Entity_Name): Use Errout.Adjust_Name_Case.
* sem_prag.adb (Is_Non_Significant_Pragma_Reference): Review
and fix up entries in Sig_Flags, and correct logical errors in
function itself.
* sprint.adb (Sprint_Node_Actual): Properly print string for
raise statement.
2014-10-10 Ed Schonberg <>
* sem_ch3.adb (Analyze_Object_Declaration): For an object of an
anonymous array type with delayed aspects, defer freezing of
type until object itself is frozen.
* freeze.adb (Freeze_Entity): When freezing an object of an
anonymous array type with delayed aspects, remove freeze node of
object after freezing type, to prevent out-of-order elaboration
in the back-end. The initialization call for the object has
already been constructed when expanding the object declaration.
2014-10-10 Robert Dewar <>
* exp_intr.adb (Write_Entity_Name): Moved to outer level
(Write_Entity_Name): Properly handle operator names
(Expand_Source_Info): New procedure.
* (Add_Source_Info): New procedure.
2014-10-10 Robert Dewar <>
* Minor reformatting.
* sem_ch5.adb: Code clean up.
2014-10-10 Robert Dewar <>
* exp_ch11.adb (Expand_N_Raise_Statement): Handle
* opt.adb: Handle new flags Prefix_Exception_Message[_Config].
* New flags Prefix_Exception_Message[_Config].
* par-prag.adb: New dummy entry for pragma Prefix_Exception_Messages.
* Add entries for new pragma Prefix_Exception_Messages.
* sem_prag.adb: Implement new pragma Prefix_Exception_Messages
* gnat_rm.texi: Document pragma Prefix_Exception_Messages.
2014-10-10 Gary Dismukes <>
*, gnat_ugn.texi, a-except.adb, a-except-2005.adb,
raise-gcc.c Spelling changes (prolog => prologue, epilog => epilogue).
2014-10-10 Ed Schonberg <>
* sem_ch5.adb (Is_Wrapped_In_Block): Handle properly blocks that
contain pragmas generated for loop invariants and type predicates.
Clarify use of this subprogram.
2014-10-10 Yannick Moy <>
* sem_prag.adb (Analyze_Global_Item): Accept formal objects in Global
* errout.adb, (SPARK_Msg_NE): Issue error unless
SPARK_Mode is Off.
2014-10-10 Vadim Godunko <>
* a-stwima.adb (To_Sequence): Compute size of result array.
2014-10-10 Javier Miranda <>
* gnat_ugn.texi (Interfacing with C++ at the Class Level): Update the
sources of the example to avoid a warning when the Ada files are
automatically generated by the binding generator.
2014-10-10 Ed Schonberg <>
* sem_attr.adb (Resolve_Attribute, case 'Update): Set
Do_Range_Check on the expression of a record component
association when needed, as is done for array components, when
the corresponding type is a scalar type.
2014-10-10 Gary Dismukes <>
* a-coinho-shared.adb: Minor typo fix.
* Minor reformatting.
2014-10-10 Hristian Kirtchev <>
* sem_res.adb (Resolve_String_Literal): Do not
generate a string literal subtype for the default expression of
a formal parameter in GNATprove mode.
2014-10-10 Yannick Moy <>
* errout.adb (SPARK_Msg_N): Issue error unless SPARK_Mode is Off.
2014-10-10 Ed Schonberg <>
* exp_ch5.adb (Expand_Formal_Container_Element_Loop): Analyze
declaration for loop parameter before rest of loop, and set
entity kind to prevent assignments to it in the user code.
* sem_ch3.adb (Analyze_Object_Contract): No contracts apply to the
loop parameter in an element iteration over o formal container.
2014-10-10 Robert Dewar <>
* gnat_ugn.texi: Document use of user-level routines to handle
e.g. col major arrays.
2014-10-10 Doug Rupp <>
* s-osinte-android.adb: Fix misspelling.
* gsocket.h: Tweak the Android quirks.
2014-10-10 Robert Dewar <>
* (SPARK_Msg_N): Fix spec to match change in body.
2014-10-10 Robert Dewar <>
* sem_ch13.adb: Minor code reorganization.
2014-10-10 Pat Rogers <>
* gnat_rm.texi: Text now indicates pragma No_Run_Time is not
for users.
2014-10-10 Vadim Godunko <>
* a-coinho-shared.adb: Add minor comment.
* a-stzmap.adb (To_Sequence): Compute size of result array.
2014-10-10 Javier Miranda <>
* exp_ch3.adb (Build_Init_Procedure): Complete the condition of an
if-stmt to match its current documentation.
2014-10-10 Robert Dewar <>
* sem_ch7.adb, einfo.adb,, sem_prag.adb, sem_ch12.adb,
freeze.adb, sem_util.adb, sem_res.adb, exp_ch6.adb, exp_ch13.adb,
sem_ch6.adb, sem_cat.adb, sem_disp.adb
(Is_Subprogram_Or_Generic_Subprogram): New primitive. Use this primitive
throughout where appropriate.
2014-10-10 Bob Duff <>
* Minor reformatting.
* s-traceb.adb: Minor clean up.
2014-10-10 Robert Dewar <>
* ali.adb (Scan_ALI): Read and process new GP flag on ALI P line.
* (GNATprove_Mode): New component in ALI table.
(GNATprove_Mode_Specified): New global.
* gnatbind.adb (Gnatbind): Give fatal error if any file compiled
in GNATProve mode.
*, lib-writ.adb (GP): New flag on P line for
2014-10-10 Javier Miranda <>
* exp_ch3.adb (Build_Init_Procedure): Adding assertion.
(Build_Init_Statement): Ensure that statements
associated with the parent components are located at the beginning
of the returned list of statements.
2014-10-10 Ed Schonberg <>
* sem_ch13.adb (Inherit_Aspects_At_Freeze_Node): If the full
view of a private type T that has a type invariant is a scalar
or constrained array type, the base type created for the full
view has the same type invariant.
2014-10-10 Robert Dewar <>
*, sem_ch12.adb, exp_util.adb, Minor code
2014-09-22 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity): Adjust comment.
* gcc-interface/utils.c (gnat_write_global_declarations): Fix typo.
2014-09-15 Jakub Jelinek <>
* gcc-interface/ (check_acats_numbers0,
check_acats_numbers1, check_acats_numbers2, check_acats_numbers3,
check_acats_numbers4, check_acats_numbers5, check_acats_numbers6,
check_acats_numbers, check_acats_subdirs): New variables.
(check_acats_targets): Use $(check_acats_subdirs).
(check-acats, check-acats%): Rewritten so that for parallelized
testing each job runs all the chapters files, with
GCC_RUNTEST_PARALLELIZE_DIR set in environment. Prepare the support
directory sequentially and share it.
(check-acats-subtargets): Always print just check-acats.
2014-08-25 Martin Liska <>
* gcc-interface/utils.c (rest_of_subprog_body_compilation): Adjust to
new cgraph interface.
(gnat_write_global_declarations): Likewise.
2014-08-13 Sylvestre Ledru <>
* 9drpc.adb: Fix a typo
* Likewise
* Likewise
* Likewise
* sysdep.c: Likewise
2014-08-12 Joel Sherrill <>
* socket.c: For RTEMS, use correct prototype of gethostbyname_r().
* gsocket.h Add include of <unistd.h> on RTEMS.
2014-08-11 Joel Sherrill <>
* s-osinte-rtems.adb: Correct formatting of line in license block.
2014-08-04 Claire Dross <>
* exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity):
For an instance, look at the scope before the generic parent.
2014-08-04 Yannick Moy <>
* Update comments.
*, sem_disp.adb (Inherited_Subprograms): Add
parameters to filter inherited subprograms.
2014-08-04 Robert Dewar <>
* gnat_rm.texi: Add section on use of address clause for memory
mapped I/O.
2014-08-04 Ed Schonberg <>
* sem_ch3.adb (Analyze_Subtype_Declaration): A subtype, in
particular the subtype created for a generic actual, inherits
invariant information from the base type.
2014-08-04 Robert Dewar <>
*, aspects.adb: Add entries for aspect Obsolescent.
* gnat_rm.texi: Add documentation for aspect Obsolescent.
* sem_ch13.adb (Analyze_Aspect_Specifications): Implement aspect
(Check_Aspect_At_Freeze_Point): Add dummy entry for pragma Obsolescent.
* s-osprim-mingw.adb: Minor reformatting.
* sem_res.adb (Is_Atomic_Ref_With_Address): New function
(Resolve_Indexed_Component): Rework warnings for non-atomic access
(Resolve_Selected_Component): Add warnings for non-atomic access.
2014-08-04 Doug Rupp <>
* g-calend.adb (timeval_to_duration, duration_to_timeval): Change sec
formal to long_long.
* (timeval): Bump up size to accomodate sec type.
* s-taprop-linux.adb (timeval_to_duration): Change sec formal to
* s-osprim-posix.adb (timeval): Bump up size to accomodate
new sec type.
(timeval_to_duration): Change sec formal to Long_Long_Integer
* s-osinte-darwin.adb (timeval): Bump up
size to accomodate new sec type.
(timeval_to_duration): Change sec formal to long_long
* s-osinte-android.adb: Likewise.
* cal.c (__gnat_timeal_to_duration, __gnat_duration_to_timeval): Change
sec formal from long to long long.
2014-08-04 Robert Dewar <>
* sem_res.adb (Resolve_Qualified_Expression): Make sure
Do_Range_Check flag gets set.
2014-08-04 Robert Dewar <>
*, einfo.adb (Is_Standard_String_Type): New function.
* exp_ch3.adb (Build_Array_Init_Proc): Use
(Expand_Freeze_Array_Type): ditto.
(Get_Simple_Init_Val): ditto.
(Needs_Simple_Initialization): ditto.
* sem_eval.adb (Eval_String_Literal): Use Is_Standard_String_Type.
* sem_warn.adb (Is_Suspicious_Type): Use Is_Standard_String_Type.
2014-08-04 Pascal Obry <>
* adaint.c (__gnat_try_lock): Use _tcscpy and _tcscat instead of
_stprintf which insert garbage into the wfull_path buffer.
2014-08-04 Arnaud Charlet <>
* cal.c: Remove old VMS/nucleus code. Remove obsolete vxworks
* fe.h: Minor reformatting.
2014-08-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* cstreams.c: (_LARGEFILE_SOURCE): Guard definition.
2014-08-04 Robert Dewar <>
* par-ch13.adb (Get_Aspect_Specifications): Improve error
recovery, fixing a -gnatQ bomb.
2014-08-04 Yannick Moy <>
* sem_ch3.adb (Analyze_Object_Declaration): In GNATprove mode,
do not generate two Itypes with the same name for an array
* Expand doc on GNATprove mode.
2014-08-04 Hristian Kirtchev <>
* exp_ch3.adb (Expand_Freeze_Record_Type): Set the finalization
master and storage pool attributes on the root type of an
anonymous access type.
* exp_ch4.adb (Expand_N_Allocator): Set the finalization master
and storage pool attributes on the root type of an anonymous
access type.
2014-08-04 Arnaud Charlet <>
* exp_ch3.adb: Minor reformatting.
* tb-alvms.c, tb-alvxw.c, tb-ivms.c: Removed.
* tracebak.c: Remove use of above files.
* gcc-interface/ Update dependencies.
2014-08-04 Pierre-Marie Derodat <>
* gcc-interface/utils.c (gnat_set_type_context): Also set the
context for parallel types' TYPE_STUB_DECL. Do not change
anything if the context is already set for them.
(gnat_pushdecl): Update the comment for calls to
gnat_set_type_context to mention parallel types.
(add_parallel_type): When adding a context-less parallel type to
a type that has a context, propagate the context from the latter
type to the former.
(process_deferred_decl_context): Call gnat_set_type_context
rather than manually setting the type context.
(build_unc_object_type): Call gnat_set_type_context on the
template type.
2014-08-04 Ed Schonberg <>
* exp_ch5.adb (Expand_N_Case_Statement): If a choice is a
subtype indication and the case statement has only two choices,
replace subtype indication with its range, because the resulting
membership test cannot have a subtype indication as an operand.
2014-08-04 Arnaud Charlet <>
* exp_ch3.adb: Update comments, minor reformatting.
2014-08-04 Hristian Kirtchev <>
* sem_ch3.adb (Analyze_Declarations): Explain why the bodies of
the default initial condition procedures are build here.
* sem_util.adb (Build_Default_Init_Cond_Procedure): Wrap the
analyzed argument of pragma Default_Initial_Condition in some
dummy code as GNATprove mode disables assertions, but still
needs to see the argument.
2014-08-04 Robert Dewar <>
* exp_ch6.adb, sem_util.adb: Minor reformatting.
2014-08-04 Olivier Hainque <>
* Set Root_Node_Type'Alignment to
Standard'Maximum_Alignment, so that it is at least as large as
the max default for Tree_Node_Type'Alignment.
2014-08-04 Hristian Kirtchev <>
* exp_ch3.adb (Freeze_Type): Remove the generation and inheritance
of the default initial condition procedure [body].
* sem_ch3.adb (Analyze_Declarations): Create the bodies of
all default initial condition procedures at the end of private
declaration analysis.
* sem_util.adb (Build_Default_Init_Cond_Procedure_Bodies): New
(Build_Default_Init_Cond_Procedure_Body): Merged in the
processing of routine Build_Default_Init_Cond_Procedure_Bodies.
* (Build_Default_Init_Cond_Procedure_Bodies):
New routine.
(Build_Default_Init_Cond_Procedure_Body): Removed.
2014-08-04 Ed Schonberg <>
* sem_elab.adb (Check_Elab_Call): Do not check a call to a
* exp_ch6.adb (Expand_Call): Clarify handling of inserted
postcondition call.
2014-08-04 Hristian Kirtchev <>
* sem_prag.adb (Analyze_Pragma): Ensure that an
internally generated spec for a stand alone body is recognized
as a proper context for pragma SPARK_Mode.
2014-08-04 Robert Dewar <>
* erroutc.adb (Delete_Msg): Do not decrement Warnings_Treated_As_Errors.
2014-08-04 Arnaud Charlet <>
* adabkend.adb (Scan_Back_End_Switches): Ignore extra -o
when -gnatO has already been specified, for compatibility
with gcc driver.
(Scan_Compiler_Args): Do not call Set_Output_Object_File_Name in
codepeer mode.
* Fix typo.
2014-08-04 Thomas Quinot <>
* exp_ch4.adb (Insert_Dereference_Action): the actual Size
must account for the bounds template if the designated type is
an unconstrained array.
2014-08-04 Hristian Kirtchev <>
* a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb Add
SPARK_Mode in the body.
* sem_ch7.adb (Analyze_Package_Body_Helper): Restore the original
way to verify the consistency of SPARK_Mode between a spec and
a body.
* sem_ch12.adb (Analyze_Package_Instantiation): Remove the call
to Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode
(Analyze_Subprogram_Instantiation): Remove the call to
Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode
* sem_prag.adb (Analyze_Pragma): Remove local variable
Inst_Id. SPARK_Mode can no longer be applied to a package or
subprogram instantiation.
* sem_util.adb, (Set_Ignore_Pragma_SPARK_Mode):
2014-08-04 Robert Dewar <>
* sem_prag.adb, osint.adb, Minor reformatting.
2014-08-04 Yannick Moy <>
* sem_ch3.adb (Derive_Type_Declaration,
Process_Discriminants): Remove SPARK-specific legality checks.
2014-08-04 Thomas Quinot <>
*, g-sechas.adb (HMAC_Initial_Context): New subprogram.
* gnat_rm.texi (GNAT.MD5/SHA1/SHA224/SHA256/SHA512): Document support
for HMAC.
2014-08-04 Hristian Kirtchev <>
* sem_ch7.adb (Analyze_Package_Body_Helper): When verifying the
compatibility of SPARK_Mode between a spec and a body, use the
SPARK_Mode of the public part.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Use
the already available routine to exchange the aspects between
the template and its copy. Analyze the aspects of copy to
ensure that the corresponding pragmas perform their semantic
effects. The partial analysis of aspects is no longer needed.
(Analyze_Package_Instantiation): Save and restore the SPARK_Mode
of the context.
(Analyze_Subprogram_Instantiation): Save and restore the SPARK_Mode of
the context.
* sem_prag.adb (Analyze_Pragma): Do not bypass a subprogram
instantiation which does not come from source.
2014-08-04 Hristian Kirtchev <>
*,,, Add
SPARK_Mode pragmas to the public and private part of the unit.
* sem_ch3.adb (Derive_Type_Declaration): Ensure that a derived
type cannot have discriminants if the parent type already has
(Process_Discriminants): Ensure that the type of a discriminant is
* sem_ch6.adb (Analyze_Subprogram_Body_Helper): The check on
SPARK_Mode compatibility between a spec and a body can now be
safely performed while processing a generic.
* sem_ch7.adb (Analyze_Package_Body_Helper): The check on
SPARK_Mode compatibility between a spec and a body can now be
safely performed while processing a generic.
* sem_prag.adb (Analyze_Pragma): Pragma SPARK_Mode can now be
safely analyzed when processing a generic.
2014-08-04 Nicolas Roche <>
* g-dirope.adb: Minor reformating.
2014-08-04 Robert Dewar <>
* sem_ch6.adb: Minor reformatting.
2014-08-04 Ed Schonberg <>
* sem_prag.adb (Analyze_Pragma, case Assert and related pragmas):
Before normalizing these pragmas into a pragma Check, preanalyze
the optional Message argument, (which is subsequently copied)
so that it has the proper semantic information for ASIS use.
* sem_case.adb: Initialize flag earlier.
* osint.adb, (Find_File): Add parameter Full_Name, used when
the full source path of a configuration file is requested.
(Read_Source_File): Use Full_Name parameter..
2014-08-04 Hristian Kirtchev <>
* Alphabetize various global flags. New flag
Ignore_Pragma_SPARK_Mode along with a comment on usage.
* sem_ch6.adb (Analyze_Generic_Subprogram_Body):
Pragma SPARK_Mode is now allowed in generic units.
(Analyze_Subprogram_Body_Helper): Do not verify the compatibility
between the SPARK_Mode of a spec and that of a body when inside
a generic.
* sem_ch7.adb (Analyze_Package_Body_Helper): Do not verify the
compatibility between the SPARK_Mode of a spec and that of a
body when inside a generic.
* sem_ch12.adb (Analyze_Generic_Subprogram_Declaration):
Pragma SPARK_Mode is now allowed in generic units.
(Analyze_Package_Instantiation): Save and restore the value of
flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set
the governing SPARK_Mode before analyzing the instance.
(Analyze_Subprogram_Instantiation): Save and restore the value
of flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set
the governing SPARK_Mode before analyzing the instance.
* sem_ch13.adb (Analyze_Aspect_Specifications): Emulate the
placement of a source pragma when inserting the generated pragma
for aspect SPARK_Mode.
* sem_prag.adb (Analyze_Pragma): Reimplement the handling of
pragma SPARK_Mode to allow for generics and their respective
*, sem_util.adb (Check_SPARK_Mode_In_Generic): Removed.
(Set_Ignore_Pragma_SPARK_Mode): New routine.
2014-08-04 Eric Botcazou <>
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Deal with
renaming discriminants in tagged types first.
* gcc-interface/trans.c (gnat_to_gnu) <N_Selected_Component>: Test
the underlying type of the prefix.
(Pragma_to_gnu, case Pragma_Warning): Ignore Reason => "..."
(process_freeze_entity): Reset the nodes of all the view of a type,
if any.
2014-08-04 Doug Rupp <>
Olivier Hainque <>
* gcc-interface/ (x86 VxWorks): Add filter-out for vxworks7
and remove incorrect EH_MECHANISM macros.
Add sigtramp.h to EXTRA_LIBGNAT_SRCS when we add sigtramp-vxworks.o to
2014-08-04 Robert Dewar <>
* exp_attr.adb (Expand_N_Attribute_Reference): Make sure prefix
of constructed 'Valid attribute in -gnatVa mode does not appear
to come from source.
* sem_attr.adb (Analyze_Access_Attribute): Don't set
Never_Set_In_Source for non-source reference.
* sem_util.adb: Minor reformatting.
* sem_warn.adb (Check_References): Don't check Address_Taken,
not necessary, see comment.
2014-08-04 Robert Dewar <>
* sem_util.adb, sem_case.adb: Minor reformatting.
2014-08-04 Ed Schonberg <>
* exp_ch9.adb (Extract_Entry): If the synchronized object is a
limited view, replace with non-limited view, which is available
at the point of an entry call.
2014-08-04 Ed Schonberg <>
* exp_ch6.adb (Expand_Call): If the call is to a function in
a run-time unit that is marked Inline_Always, we must suppress
debugging information on it, so that the code that is eventually
inlined will not affect debugging of the user program.
2014-08-04 Robert Dewar <>
* inline.adb,, s-tassta.adb, s-tarest.adb: Minor comment
2014-08-04 Ed Schonberg <>
* sem_prag.adb (Process_Import_Or_Interface): Handle properly
an aspect Import that specifies a False value.
2014-08-04 Robert Dewar <>
* gnat_rm.texi: Add section on aspect Invariant'Class.
2014-08-04 Ed Schonberg <>
* sem_case.adb (Check_Choice_Set): New flag Predicate_Error,
for better control of cascaded error messages when some choice
in a case statement over a predicated type violates the given
static predicate.
2014-08-04 Hristian Kirtchev <>
* sem_ch3.adb (Build_Derived_Type): Modify the
inheritance of the rep chain to ensure that a non-tagged type's
items are not clobbered during the inheritance.
2014-08-04 Robert Dewar <>
* sem_ch3.adb, Minor reformatting.
2014-08-04 Yannick Moy <>
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Fix
detection of subprograms that cannot be inlined in GNATprove mode.
2014-08-04 Ed Schonberg <>
* einfo.adb: Add guard to Returns_Limited_View.
2014-08-04 Jose Ruiz <>
* s-tassta.adb, s-tarest.adb (Task_Wrapper): Force maximum alignment of
the secondary stack to respect the alignments of the returned objects.
2014-08-04 Ed Schonberg <>
*, einfo.adb (Returns_Limited_View): New flag defined
on function entities whose return type is a limited view.
* freeze.adb (Freeze_Entity): Use Returns_Limited_View to determine
where to place the freeze node for a function that returns the
limited view of a type, when the function is called and frozen
in a different unit.
2014-08-04 Eric Botcazou <>
* sem_ch3.adb (Build_Derived_Private_Type): Minor code
2014-08-04 Robert Dewar <>
* gnat_ugn.texi: Clarify documentation on assertions.
2014-08-04 Ed Schonberg <>
* sem_aggr.adb (Resolve_Record_Aggregate, Get_Value): Warn
if a component association has a box initialization when the
component type has no default initialization, either through an
initial value, an aspect, or an implicit initialization procedure.
2014-08-04 Ed Schonberg <>
* freeze.adb: Code clean up.
2014-08-04 Thomas Quinot <>
* sem_ch5.adb: Minor reformatting.
2014-08-04 Ed Schonberg <>
* freeze.adb (Late_Freeze_Subprogram): Following AI05-151,
a function can return a limited view of a type declared
elsewhere. In that case the function cannot be frozen at the end
of its enclosing package. If its first use is in a different unit,
it cannot be frozen there, but if the call is legal the full view
of the return type is available and the subprogram can now be
frozen. However the freeze node cannot be inserted at the point
of call, but rather must go in the package holding the function,
so that the backend can process it in the proper context.
2014-08-04 Robert Dewar <>
* exp_ch5.adb, sem_ch5.adb, Minor reformatting.
2014-08-04 Arnaud Charlet <>
* sem_ch4.adb (Operator_Check): Refine previous change.
2014-08-04 Arnaud Charlet <>
* Improve comments.
* sem_ch4.adb (Analyze_Equality_Op): Add support for
Allow_Integer_Address (equality between Address and Integer).
2014-08-04 Yannick Moy <>
* a-cfhama.adb, a-cforse.adb: Minor fixes to avoid using prefix
notation on untagged objects.
* Update comment.
* inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do
not inline subprograms declared in the visible part of a package.
2014-08-04 Ed Schonberg <>
* exp_ch5.adb: minor reformatting.
*, einfo.adb (Is_Processed_Transient): Applies to loop
2014-08-04 Thomas Quinot <>
* s-fatgen.adb: Minor reformatting.
2014-08-04 Arnaud Charlet <>
* exp_util.adb (Is_Possibly_Unaligned_Object): Always return
False on .NET.
2014-08-04 Ed Schonberg <>
* sem_ch5.adb (Analyze_Loop_Statement): Set properly the kind of
the loop parameter for element iterators over containers and
arrays, so that improper uses of it are detected in the loop
body when expansion is disabled.
* exp_ch5.adb (Expand_Iterator_Loop): The entity kind of the
generated cursor is that of the analyzed loop parameter.
2014-08-04 Hristian Kirtchev <>
* exp_ch3.adb (Build_CPP_Init_Procedure): Remove
Flag_Decl. Do not analyze the declaration of the flag as it is
not part of the tree yet, instead add it to the freeze actions
of the C++ type.
2014-08-04 Robert Dewar <>
* checks.adb (Apply_Scalar_Range_Check): Make sure we handle
case of OUT and IN OUT parameter correctly (where Source_Typ is
set), we were missing one case where a check must be applied.
2014-08-04 Hristian Kirtchev <>
* sem_ch8.adb (Build_Class_Wide_Wrapper): Update the comment on
the generated code. Instead of hiding the renaming and using the
wrapper as the proper association, have the subprogram renaming
alias the wrapper.
(Build_Spec): The entity of the wrapper is
now derived from the entity of the related primitive.
2014-08-04 Emmanuel Briot <>
* s-regpat.adb: s-regpat.adb (Parse): fix incorrect link when
using non-capturing groups.
2014-08-04 Ed Schonberg <>
* inline.adb (Build_Body_To_Inline): Remove Unmodified and
related pragmas before copying the original body, to prevent
spurious errors when the pragmas apply to formals that will not
appear in the inlined body.
2014-08-04 Robert Dewar <>
* exp_prag.adb, sem_ch7.adb, einfo.adb, sem_prag.adb, sem_util.adb,
exp_ch3.adb: Minor reformatting.
2014-08-04 Robert Dewar <>
* prj-strt.adb,, sem_attr.adb: Minor reformatting.
2014-08-04 Hristian Kirtchev <>
* aspects.adb Add an entry in table Canonical_Aspect for
* Add an entry in tables Aspect_Id, Aspect_Argument,
Aspect_Names and Aspect_Delay for Default_Initial_Condition.
* einfo.adb Flag3 is now Has_Default_Init_Cond. Flag132
is now Is_Default_Init_Cond_ Procedure. Flag133 is now
(Default_Init_Cond_Procedure): New routine.
(Has_Default_Init_Cond): New routine.
(Has_Inherited_Default_Init_Cond): New routine.
(Is_Default_Init_Cond_Procedure): New routine.
(Set_Default_Init_Cond_Procedure): New routine.
(Set_Has_Default_Init_Cond): New routine.
(Set_Has_Inherited_Default_Init_Cond): New routine.
(Set_Is_Default_Init_Cond_Procedure): New routine.
(Write_Entity_Flags): Output all the new flags.
* New attributes Default_Init_Cond_Procedure,
Has_Inherited_Default_Init_Cond and Is_Default_Init_Cond_Procedure
along with usage in nodes.
(Default_Init_Cond_Procedure): New routine.
(Has_Default_Init_Cond): New routine and pragma Inline.
(Has_Inherited_Default_Init_Cond): New routine and
pragma Inline.
(Is_Default_Init_Cond_Procedure): New routine and
pragma Inline.
(Set_Default_Init_Cond_Procedure): New routine.
(Set_Has_Default_Init_Cond): New routine and pragma Inline.
(Set_Has_Inherited_Default_Init_Cond): New routine and pragma Inline.
(Set_Is_Default_Init_Cond_Procedure): New routine and pragma Inline.
* exp_ch3.adb (Expand_N_Object_Declaration): New constant
Next_N. Generate a call to the default initial condition procedure
if the object's type is subject to the pragma. (Freeze_Type):
Generate the body of the default initial condition procedure or
inherit the spec from a parent type.
* exp_ch7.adb Add with and use clause for Exp_Prag.
(Expand_Pragma_Initial_Condition): Removed.
*, exp_prag.adb (Expand_Pragma_Initial_Condition): New
* par-prag.adb (Prag): Pragma Default_Initial_Condition does
not need special treatment by the parser.
* sem_ch3.adb (Build_Derived_Record_Type): Propagate the
attributes related to pragma Default_Initial_Condition to the
derived type.
(Process_Full_View): Propagate the attributes
related to pragma Default_Initial_Condition to the full view.
* sem_ch7.adb (Analyze_Package_Specification): Build the
declaration of the default initial condition procedure for all
types that qualify or inherit the one from the parent type.
* sem_ch13.adb (Analyze_Aspect_Specifications):
Add processing for aspect Default_Initial_Condition.
(Check_Aspect_At_Freeze_Point): Aspect
Default_Initial_Condition does not require delayed analysis.
(Replace_Type_References_Generic): Moved to spec.
* (Replace_Type_References_Generic): Moved from body.
* sem_prag.adb Add an entry in table Sif_Glags for
(Analyze_Pragma): Pragma
Default_Initial_Condition is now part of assertion
policy. Add processing for pragma Default_Initial_Condition.
(Is_Valid_Assertion_Kind): Pragma Default_Initial_Condition is
now recognized as a proper assertion policy.
*, sem_util.adb (Build_Default_Init_Cond_Call): New
(Build_Default_Init_Cond_Procedure_Body): New routine.
(Build_Default_Init_Cond_Procedure_Declaration): New routine.
(Inherit_Default_Init_Cond_Procedure): New routine.
* Add new predefined name and pragma id for
2014-08-04 Vincent Celier <>
* prj-dect.adb (Parse_Case_Construction): It is no longer
an error if the variable for a case construction is not
typed, only if the variable value is not a single string. Call
Parse_Choice_List and End_Case_Construction with the new parameter
to indicate that the variable is typed.
* prj-strt.adb (End_Case_Construction): Only check the labels
if the variable is typed. If the variable is not typed,
issue a warning when there is no "when others" allternative.
(Parse_Choice_List): Manage the labels only if the variable
is typed.
* (End_Case_Construction): New Boolean parameter
(Parse_Choice_List): Ditto.
2014-08-04 Ed Schonberg <>
* sem_ch5.adb: Additional fix to Check_Predicate_Use.
2014-08-04 Vincent Celier <>
* projects.texi: Update documentation of case constructions with
variables that are not typed.
2014-08-04 Ed Schonberg <>
* sem_ch8.adb (Build_Class_Wide_Wrapper): If the operator carries
an Eliminated pragma, indicate that the wrapper is also to be
eliminated, to prevent spurious errors when using gnatelim on
programs that include box-initialization of equality operators
(consequence of AI05-071)..
2014-08-04 Robert Dewar <>
* checks.adb (Activate_Overflow_Check): Handle floating-point
case correctly.
* (Activate_Overflow_Check): Clarify handling of
floating-point cases.
* exp_util.adb (Check_Float_Op_Overflow): Reset Do_Overflow_Check
flag if we generate an explicit overflow check (for
Check_Float_Overflow mode).
2014-08-04 Robert Dewar <>
* prj-proc.adb, prj-part.adb, prj-strt.adb, prj.adb,,
prj-attr.adb, Minor reformatting.
2014-08-04 Yannick Moy <>
* expander.adb (Expand): Always perform special
expansion in GNATprove mode, even when doing pre-analysis.
2014-08-04 Thomas Quinot <>
* repinfo.adb (List_Scalar_Storage_Order): List bit order if
not default. Also list bit order if SSO is specified. Do not
assume that bit order is always equal to scalar storage order.
2014-08-04 Thomas Quinot <>
* freeze.adb (Set_SSO_From_Default): Do not set scalar storage
order to reverse SSO for a type that has an explicit native
2014-08-04 Doug Rupp <>
* cal.c: Macro check for VxWorks7.
* init.c (getpid): Likewise.
* mkdir.c (__gnat_mkdir): Likewise.
* sysdep.c (__gnat_is_file_not_found_error): Likewise.
2014-08-04 Gary Dismukes <>
* exp_ch3.adb (Expand_N_Object_Declaration): Inhibit generation
of an invariant check in the case where No_Initialization is set,
since the object is uninitialized.
2014-08-04 Thomas Quinot <>
* (Default_Scalar_Storage_Order): Now an attribute
name, in addition to a pragma name.
* snames.adb-tmpl (Get_Pragma_Id, Is_Configuration_Pragma_Name,
Is_Pragma_Name): Adjust accordingly.
*, sem_attr.adb, exp_attr.adb
(Attribute_Default_Scalar_Storage_Order): Add handling of new
* gnat_rm.texi: Document the above.
2014-08-04 Arnaud Charlet <>
* exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer
mode for now, to revert to previous behavior.
* checks.adb: Revert previous change, no longer needed.
2014-08-04 Robert Dewar <>
* gnat1drv.adb (Adjust_Global_Switches): Don't set
Check_Float_Overflow if Machine_Oveflows_On_Target is True.
* sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't
set Check_Float_Overflow if Machine_Oveflows_On_Target is True.
* switch-c.adb (Scan_Front_End_Switches): Don't set
Check_Float_Overflow if Machine_Oveflows_On_Target is True.
2014-08-04 Vincent Celier <>
* prj-attr.adb: Add new default indications for
attributes Object_Dir, Exec_Dir, Source_Dirs and Target.
(Attribute_Default_Of): New function (Initialize): Set the
default for those attributes that have one specified.
* (Attribute_Data): New component Default.
* prj-proc.adb (Expression): Take into account the new defaults
for attributes Object_Dir, Exec_Dir and Source_Dirs.
* prj-strt.adb (Attribute_Reference): Set the default for
the attribute.
*, prj-tree.adb (Default_Of): New function.
(Set_Default_Of): New procedure.
* prj.adb (The_Dot_String): New global Name_Id variable,
initialized in procedure Initialize.
(Dot_String): New function
(Initialize): Initialize The_Dot_String.
(Reset): Create the string list Shared.Dot_String_List.
* (Attribute_Default_Value): New enumeration type.
(Project_Qualifier): Change enumeration value Dry to Abstract_Project.
(Dot_String): New function.
(Shared_Project_Tree_Data): New string list component Dot_String_List.
* projects.texi: Document new defaults for attribute Object_Dir,
Exec_Dir and Source_Dirs.
2014-08-04 Robert Dewar <>
* sem_ch12.adb: Minor reformatting.
2014-08-04 Arnaud Charlet <>
* exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special
expansion in CodePeer_Mode.
(Selected_Range_Checks): Add handling of overflow checks in
2014-08-04 Robert Dewar <>
* exp_attr.adb (Expand_N_Attribute_Reference, case Pred):
Remove special test for Float'First, no longer required.
(Expand_N_Attribute_Reference, case Succ): Remove special test
for Float'First, no longer required.
* s-fatgen.adb (Pred): return infinity unchanged.
(Succ): ditto.
2014-08-04 Claire Dross <>
* sem_ch12.adb (Analyze_Associations): Defaults should only be
used if there is no explicit match.
* exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity):
Also check for pragma external_axiomatization on generic units.
2014-08-04 Robert Dewar <>
* checks.adb (Activate_Overflow_Check): Remove
Check_Float_Overflow processing.
(Apply_Scalar_Range_Check): Ditto.
(Generate_Range_Check): Ditto.
* exp_ch4.adb (Expand_N_Op_Add): Add call to
(Expand_N_Op_Divide): ditto.
(Expand_N_Op_Multiply): ditto.
(Expand_N_Op_Subtract): ditto.
*, exp_util.adb (Check_Float_Op_Overflow): New procedure.
* sem_attr.adb (Analyze_Attribute, case Pred): Make sure
Do_Range_Check is set for floating-point case in -gnatc or
GNATprove mode.
(Analyze_Attribute, case Succ): Make sure
Do_Range_Check is set for floating-point case in -gnatc or
GNATprove mode.
* sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check
flag is set for real to integer conversion in GNATprove or
-gnatc mode.
2014-08-04 Gary Dismukes <>
* sem_ch13.adb (Analyze_Aspect_Specifications): Resolve
the expression of an Import or Export aspect as type Boolean
and require it to be static. Add ??? comment. Also, set the
Is_Exported flag when appropriate.
2014-08-04 Robert Dewar <>
* exp_ch4.adb: Minor reformatting.
* exp_attr.adb: Minor reformatting.
2014-08-04 Thomas Quinot <>
*, s-fatgen.adb (S, P): New visible type declarations
(Unaligned_Valid): Remove now unused subprogram.
* exp_attr.adb (Expand_N_Attribute_Reference, case
Attribute_Valid): If the prefix is in reverse SSO or potentially
unaligned, copy it using a byte copy operation to a temporary
* einfo.adb: Minor comment fix.
2014-08-04 Hristian Kirtchev <>
* freeze.adb (Freeze_Entity): Do not freeze formal subprograms.
2014-08-04 Robert Dewar <>
* s-imgrea.adb (Image_Floating_Point): Don't add space before +Inf.
* s-fatgen.adb (Pred): Handle Float'First.
(Succ): Handle Float'Last.
2014-08-04 Ed Schonberg <>
* sem_util.adb (Is_Potentially_Unevaluated): If the original
node of a parent node in the tree is a short-circuit operation,
the node is potentially unevaluated.
2014-08-04 Robert Dewar <>
* sem_res.adb (Resolve_Type_Conversion): Set Do_Range_Check on
conversion from a real type to an integer type.
2014-08-04 Yannick Moy <>
* sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_ch7.adb, sem_ch9.adb,
sem_ch12.adb, sem_util.adb,, sem_res.adb, sem_attr.adb,
exp_ch6.adb, sem_ch4.adb, restrict.adb,, sem_ch6.adb,
sem_ch8.adb, sem_ch11.adb: Update some subprogram names to refer to
SPARK_05 instead of SPARK.
2014-08-04 Robert Dewar <>
* Minor reformatting.
* sem_ch13.adb (Analyze_Aspect_External_Or_Link_Name): Minor
(Analyze_Aspect_Specifications, case Convention): Put External_Name
before Link_Name when constructing pragma.
2014-08-04 Yannick Moy <>
* sem.adb, (In_Default_Expr): Global flag that is set
to True during analysis of a default component expression.
(Semantics): Save and restore In_Default_Expr around analysis.
* sem_ch3.adb, (Analyze_Component_Declaration):
Call new wrapper Preanalyze_Default_Expression.
(Preanalyze_Default_Expression): New wrapper on
Preanalyze_Spec_Expression which sets and restores In_Default_Expr.
* sem_res.adb (Resolve_Call): Mark calls inside default
expressions as not inlined in GNATprove mode.
2014-08-04 Robert Dewar <>
* exp_ch4.adb: Minor reformatting.
2014-08-04 Olivier Hainque <>
* link.c: remove const on __gnat_objlist_file_supported for AIX
2014-08-04 Robert Dewar <>
* Minor addition of comment.
2014-08-04 Vincent Celier <>
* prj-dect.adb (Check_Package_Allowed): Allow package IDE in
all projects, including aggregate and aggregate library projects.
2014-08-04 Yannick Moy <>
* back_end.adb (Call_Back_End): Do not call gigi in GNATprove mode.
2014-08-04 Robert Dewar <>
* sem_eval.adb (Test_In_Range): Always in range for
Is_Known_Valid target type, where input type has smaller or
equal size and does not have biased rep.
2014-08-04 Ed Schonberg <>
* sem_attr.adb (Eval_Attribute): Constrained is not treated as
a static attribute, and the Static flag must not be set on it
during resolution. It may be constant-folded during expansion,
but if expansion is disabled it is not a static expression.
2014-08-04 Hristian Kirtchev <>
* sem_ch8.adb (Build_Class_Wide_Wrapper): Mark the primitive as
referenced once resolution has taken place.
2014-08-04 Gary Dismukes <>
* exp_ch4.adb (Expand_N_Type_Conversion): Don't
compare access levels in the case where the target type is the
anonymous type of an access discriminant, since the level of
such types is defined based on context. Add comment.
2014-08-04 Hristian Kirtchev <>
* sem_ch8.adb (Build_Class_Wide_Wrapper): Handle various special
cases related to equality. Remove the special processing
for dispatching abstract subprograms as it is not needed.
(Interpretation_Error): Add a specialized error message for
predefined operators.
(Is_Intrinsic_Equality): New routine.
(Is_Suitable_Candidate): New routine.
2014-08-04 Gary Dismukes <>
* checks.adb: Minor comment reformatting.
2014-08-04 Ed Schonberg <>
* restrict.adb (Check_Restriction): For checked max_parameter
restrictions reset Violated flag, so that subsequent violations
are properly detected.
2014-08-04 Robert Dewar <>
* sem_ch3.adb (Check_Initialization): Fix bad test of GNATprove
(Process_Discriminants): Fix bad test of GNATprove mode
2014-08-04 Hristian Kirtchev <>
* sem_ch12.adb (Instantiate_Formal_Subprogram):
Move variable to their own section. Propagate the source
location of a formal parameter to the corresponding formal of
the subprogram renaming declaration. Code reformatting.
2014-08-04 Arnaud Charlet <>
* g-trasym-vms-ia64.adb, g-trasym-vms-alpha.adb: Removed.
2014-08-04 Ed Schonberg <>
* exp_aggr.adb (Expand_Array_Aggregate): Do not attempt expansion
if error already detected. We may reach this point in spite of
previous errors when compiling with -gnatq, to force all possible
errors (this is the usual ACATS mode).
2014-08-04 Gary Dismukes <>