2014-01-20 Pascal Obry <obry@adacore.com>
* s-win32.ads (FreeLibrary): New import.
2014-01-20 Robert Dewar <dewar@adacore.com>
* sem_res.adb, sem_cat.adb: Minor reformatting.
* sem_ch11.adb (Analyze_Raise_Statement): Only give warning about
assigning to OUT parameters for the current subprogram scope.
* exp_ch4.adb: Minor reformatting.
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* exp_ch4.adb (Process_Transient_Object,
Find_Enclosing_Contexts): If the top-level if-expression that
generated the transient object is an actual in a call, the proper
Hook_Context is a construct enclosing the call.
* einfo.ads: Indicate that Related_Expression is used to link a
loop variable to the container expression over which the loop
takes place.
(Analyze_Iterator_Specification): Set the Related_Expression of
the loop variable in a container element iterator.
(Note_Possible_Modification): If the variable is the loop
variable in a container element iterator, indicate that the
enclosing container is also modified.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb (Move_Or_Merge_Aspects): Reimplemented.
From-SVN: r206824
2014-01-20 Robert Dewar <dewar@adacore.com>
* s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads:
Minor reformatting and code clean up.
2014-01-20 Arnaud Charlet <charlet@adacore.com>
* sem_cat.adb (Validate_Object_Declaration): Relax semantics
of objects of private type if Relaxed_RM_Semantics.
From-SVN: r206823
2014-01-20 Claire Dross <dross@adacore.com>
* a-cofove.ads (Vector): Capacity discriminant
should be in range of the index.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue):
Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for
possible difference between epoch of Ada.Calendar clock and Ada
real-time/tasking clock.
* s-taprop-posix.adb: Minor comment fix.
2014-01-20 Doug Rupp <rupp@adacore.com>
* sysdep.c [vxworks]: Remove Vxworks version noise for RTP.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_attr.adb (Expand_N_Attribute_Reference): Generate validity
checks on the prefix of attribute 'Old.
* sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the
generation of validity checks on a range that belongs to the
iteration scheme of a quantified expression.
* sem_ch5.adb (One_Bound): Suppress the generation of validity
checks on a bound that belongs to the iteration scheme of a
quantified expression, generate the check in all other cases.
2014-01-20 Bob Duff <duff@adacore.com>
* gnat_ugn.texi: Enable --pp-new by default. Minor reorganization.
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* sem_res.adb (Resolve): When compiling a predefined unit, ignore
interpretations that do not come from other predefined units,
to prevent spurious ambiguities in the presence of user-defined
operators in the context of (an instance of) a predefined unit.
From-SVN: r206822
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Document that Loop_Variant is included in
Statement_Assertions.
* sem_prag.adb (Check_Kind): Add Loop_Variant to
Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant
to Statement_Assertions.
2014-01-20 Doug Rupp <rupp@adacore.com>
* sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case
for errno ENOENT from RTP on NFS mounted file system.
From-SVN: r206821
2014-01-20 Ed Schonberg <schonberg@adacore.com>
* sem_util.adb (Check_Function_Writable_Actuals): 1) Do not
examine code that does not come from source. The check does not
apply to code generated for constraint checks, and such code may
generate spurious error messages when compiled with expansion
disabled (as in a generic unit) because side effects may not
have been removed.
2) Make error messages more explicit: indicate the component
of the construct whose value is indeterminate because of a
call to a function with in-out parameter in another component,
when there is no mandated order of execution between the two
components (actuals, aggregate components, alternatives).
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat_rm.texi: Minor cleanup.
From-SVN: r206820
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result
can now apply to a refined postcondition.
* sem_ch6.adb (Analyze_Subprogram_Contract): Remove local
variable Result_Seen. Add variables Case_Prag, Post_Prag,
Seen_In_Case and Seen_In_Post. Update the mechanism that detects
whether postconditions and/or constract-cases mention attribute
'Result and introduce a post-state when applied to functions.
(Check_Result_And_Post_State): Removed.
* sem_prag.adb (Analyze_Pragma): Add local variable
Result_Seen. Verify that the expression of pragma Refined_Post
mentions attribute 'Result and introduces a post-state.
* sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch7.adb (Is_Subprogram_Call): New routine.
(Process_Transient_Objects): Make variable Must_Hook global with
respect to all locally declared subprograms. Search the context
for at least one subprogram call.
(Requires_Hooking): Removed.
2014-01-20 Claire Dross <dross@adacore.com>
* a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads
* a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove,
External_Axiomatization);
From-SVN: r206819
2014-01-20 Robert Dewar <dewar@adacore.com>
* sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow
Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas.
* sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume):
Allow Loop_Entry to be used in these pragmas if they appear in
an appropriate context.
(Placement_Error): Specialize error
message for pragma Assert[_And_Cut] or pragma Assume containing
Loop_Entry attribute.
* a-exexpr-gcc.adb, sinput.adb: Minor reformatting.
* s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting
and code clean ups.
From-SVN: r206818
2014-01-20 Robert Dewar <dewar@adacore.com>
* gnat1drv.adb: Minor comment update.
2014-01-20 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused
variables, comment out unused code.
* a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads
* s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb
* s-excmac-arm.ads: New file.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Slice): Remove constant D and variables
Drange and Index_Typ. Remove the circuitry which creates a
range check to compare the index type of the array against the
discrete_range.
* sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update
the circuitry which creates a range check to handle a
discrete_range denoted by a subtype indication.
2014-01-20 Pierre-Marie Derodat <derodat@adacore.com>
* sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original
nodes to get the original sloc range.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the
entity of a [library level] package.
From-SVN: r206817
2014-01-20 Tristan Gingold <gingold@adacore.com>
* raise-gcc.c (exception_class_eq): New function.
(is_handled_by): Use it to compare exception classes.
(PERSONALITY_STORAGE): Define. (continue_unwind): New function to
be called to return URC_CONTINUE_UNWIND.
(personality_body): New function, extracted from PERSONALITY_ROUTINE.
(PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder.
2014-01-20 Robert Dewar <dewar@adacore.com>
* opt.ads: Minor comment update.
From-SVN: r206815
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* exp_ch4.adb (Expand_N_Slice): Relocate some variables and
constants to the "Local variables" area. Add new constant D. Add
new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp
to Pref_Typ and update all occurrences. Add circuitry to extract
the discrete_range and the index type and build a range check.
2014-01-20 Arnaud Charlet <charlet@adacore.com>
* gnat1drv.adb (Adjust_Global_Switches): Enable
Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics
is set.
2014-01-20 Thomas Quinot <quinot@adacore.com>
* sem_ch5.adb, sem_ch4.adb: Minor reformatting.
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* sem_ch13.adb (Analyze_Aspect_Specifications):
When aspect SPARK_Mode appears on a package body, insert the
generated pragma at the top of the body declarations.
From-SVN: r206814
2014-01-20 Yannick Moy <moy@adacore.com>
* gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove
mode.
2014-01-20 Pascal Obry <obry@adacore.com>
* g-arrspl.ads (Slice_Set): New definition (will use a copy on
write scheme).
* g-arrspl.adb: Adapt all routine to this new implementation.
(Set): Copy the Slice_Set definition before reusing it.
From-SVN: r206812
2014-01-20 Arnaud Charlet <charlet@adacore.com>
* sem_prag.adb (Process_Import_Or_Interface): In
Relaxed_RM_Semantics, support old Ada 83 style of pragma Import.
(Analyze_Pragma): Ditto for pragma Export.
* exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma
Import style.
From-SVN: r206810
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.ads: E_Abstract_State is now part of the entities that
can be overloaded. Update type Overloadable_Kind to reflect the
inclusion of abstract states.
* sem_ch6.adb (New_Overloaded_Entity): A function can now
overload an abstract state.
* sem_prag.adb (Analyze_Constituent): Handle the overloading
of states by functions. Use Entity_Of to obtain the entity of
a constituent. (Analyze_Global_Item): Handle the overloading of
states by functions.
(Analyze_Initialization_Item): Handle the
overloading of states by functions. Use Entity_Of to obtain the
entity of an item.
(Analyze_Input_Item): Handle the overloading
of states by functions. Use Entity_Of to obtain the entity of an item.
(Analyze_Input_Output): Handle the overloading of states by functions.
(Analyze_Refinement_Clause): Handle the overloading
of states by functions. Use Entity_Of to obtain the entity of an item.
(Appears_In): Use Entity_Of to obtain the entity of an element.
(Check_Usage): Use Entity_Of to obtain the entity of
an item. Add a guard to prevent a crash due to a previous error.
(Resolve_State): New routine.
2014-01-20 Yannick Moy <moy@adacore.com>
* spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads,
opt.ads: Minor comments updates.
From-SVN: r206809
2014-01-20 Hristian Kirtchev <kirtchev@adacore.com>
* einfo.adb (Non_Limited_View): Applies to abstract states.
(Set_From_Limited_With): Applies to abstract states.
(Set_Non_Limited_View): Applies to abstract states.
(Write_Field17): Output the non-limited view of an abstract state.
* einfo.ads: Update the comment on usage and occurrences in
nodes for attributes From_Limited_With and Non_Limited_View.
* sem_aux.adb (Available_View): This routine can now handle
abstract states.
* sem_aux.ads (Available_View): This routine can now handle
abstract states. Update the comment on usage.
* sem_ch8.adb (Find_Expanded_Name): Handle abstract views
of states and variables.
(In_Pragmas_Depends_Or_Global): New routine.
* sem_ch10.adb (Build_Limited_Views): Implement
abstract (limited) views of variables and states.
(Build_Shadow_Entity): This routine is now a procedure. Add
formal parameter Shadow. Update the comment on usage. Add
context-specific decoration for states and variables.
(Decorate_State): New routine. (Decorate_Variable): New routine.
(Find_And_Process_States): New routine.
(Process_Declarations): Renamed to Process_Declarations_And_States.
(Process_Declarations_And_States): Add formal parameters
Pack and Create_Abstract_Views. Update the comment on usage.
(Process_States): New routine.
* sem_prag.adb (Check_Dependency_Clause): Handle abstract
views of states and variables. Match the abstract view of a state
against its corresponding non-abstract view.
(Is_Matching_Input):
Handle abstract views of states and variables. Match the abstract
view of a state against its corresponding non-abstract view.
(Process_Global_Item): Handle abstract views of states and
variables.
From-SVN: r206808
2014-01-20 Bob Duff <duff@adacore.com>
* sem_ch10.adb (Expand_With_Clause): Don't
recurse on the prefix if the current with-ed name refers to a
package that renames its own parent, eg "package P.Q renames P;".
From-SVN: r206807
* adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb,
* exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb,
* sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb,
* sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into
GNATprove_Mode.
* sem_ch13.adb: Remove blank.
* exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace
subprograms by alias for renamings, not for inherited primitive
operations.
* exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion
in GNATprove mode.
(Remove_Side_Effects): Apply the removal in
GNATprove mode, for the full analysis of expressions.
* expander.adb (Expand): Call the light SPARK expansion in GNATprove
mode.
(Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore
save/restore actions for Expander_Active flag in GNATprove mode,
similar to what is done in ASIS mode.
* frontend.adb (Frontend): Generic bodies are instantiated in
GNATprove mode.
* gnat1drv.adb (Adjust_Global_Switches): Set operating
mode to Check_Semantics in GNATprove mode, although a light
expansion is still performed.
(Gnat1drv): Set Back_End_Mode to
Declarations_Only in GNATprove mode, and later on special case
the GNATprove mode to continue analysis anyway.
* lib-writ.adb (Write_ALI): Always generate ALI files in
GNATprove mode.
* opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to
Expander_Active.
(SPARK_Mode): Renamed as GNATprove_Mode.
* sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the
tree in GNATprove_Mode.
* sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate
body in GNATprove mode.
(Need_Subprogram_Instance_Body): Always instantiate body in GNATprove
mode.
* sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl):
Make sure side effects are removed in GNATprove mode.
From-SVN: r206805
gcc/
* common/config/aarch64/aarch64-common.c
(aarch64_handle_option): Don't handle any option order logic here.
* config/aarch64/aarch64.c (aarch64_parse_arch): Do not override
selected_cpu, warn on architecture version mismatch.
(aarch64_override_options): Fix parsing order for option strings.
From-SVN: r206803
* gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Record_Subtype>:
Tidy up. For a subtype with discriminants and variant part, if a
variant is statically selected and the fields all have a constant
position, put them in order of increasing position. Likewise if
no variant part but representation clause is present.
* gcc-interface/utils.c (make_packable_type): Robustify.
(maybe_pad_type): Use local variable and tidy up condition. If no
alignment is specified, use the original one.
(create_type_stub_decl): Minor tweak.
(convert) <case VECTOR_CST>: Fix typo.
<case CONSTRUCTOR>: Deal with padding types around the same type.
Do not punt on missing fields.
(unchecked_convert): Call finish_record_type to lay out the special
record types made for conversions from/to problematic integer types.
Bump the alignment of CONSTRUCTORs before converting them to a more
aligned type.
From-SVN: r206796
PR target/59880
* config/i386/i386.c (ix86_avoid_lea_for_addr): Return false
if operands[1] is a REG or ZERO_EXTEND of a REG.
* gcc.target/i386/pr59880.c: New test.
From-SVN: r206792
PR rtl-optimization/57763
* bb-reorder.c (fix_crossing_unconditional_branches): Set JUMP_LABEL
on the new indirect jump_insn and increment LABEL_NUSES (label).
From-SVN: r206773
fortran/
PR fortran/58007
* module.c (MOD_VERSION): Bump.
(fp2, find_pointer2): Remove.
(mio_component_ref): Don't forcedfully set the containing derived type
symbol for loading. Remove unused argument.
(mio_ref): Update caller
(mio_symbol): Dump component list earlier.
(skip_list): New argument nest_level. Initialize level with the new
argument.
(read_module): Add forced pointer components association for derived
type symbols.
testsuite/
PR fortran/58007
* gfortran.dg/unresolved_fixup_1.f90: New test.
* gfortran.dg/unresolved_fixup_2.f90: New test.
From-SVN: r206759