- 25 Apr, 2017 40 commits
-
-
2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_disp.adb (Check_Dispatching_Context): Add guard to refine the check that recognizes a call to a private overridding and replaces the called subprogram with its alias. 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * exp_util.adb: Minor reformatting. From-SVN: r247206
Arnaud Charlet committed -
From-SVN: r247205
Arnaud Charlet committed -
2017-04-25 Justin Squirek <squirek@adacore.com> * exp_ch3.adb (Freeze_Type): Add condition to always treat interface types as a partial view of a private type for the generation of invariant procedure bodies. * exp_util.adb, exp_util.ads (Add_Inherited_Invariants): Add a condition to get the Corresponding_Record_Type for concurrent types, add condition to return in the absence of a class in the pragma, remove call to Replace_Type_References, and add call to Replace_References. (Add_Interface_Invariatns), (Add_Parent_Invariants): Modify call to Add_Inherited_Invariants to including the working type T. (Add_Own_Invariants): Remove legacy condition for separate units, remove dispatching for ASIS and save a copy of the expression in the pragma expression. (Build_Invariant_Procedure_Body): Default initalize vars, remove return condition on interfaces, always use the private type for interfaces, and move the processing of types until after the processing of invariants for the full view. (Build_Invariant_Procedure_Declaration): Remove condition to return if an interface type is encountered and add condition to convert the formal parameter to its class-wide counterpart if Work_Typ is abstract. (Replace_Type): Add call to Remove_Controlling_Arguments. (Replace_Type_Ref): Remove class-wide dispatching for the current instance of the type. (Replace_Type_References): Remove parameter "Derived" (Remove_Controlling_Arguments): Created in order to removing the controlliong argument from calls to primitives in the case of the formal parameter being an class-wide abstract type. * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical to the change made to Freeze_Type in exp_ch3. Add a condition to treat interface types as a partial view. * sem_prag.adb (Analyze_Pragma): Modify parameters in the call to Build_Invariant_Procedure_Declaration to properly generate a "partial" invariant procedure when Typ is an interface. 2017-04-25 Bob Duff <duff@adacore.com> * a-numeri.ads: Go back to using brackets encoding for the Greek letter pi. From-SVN: r247204
Arnaud Charlet committed -
Integer promotion combined with equal sizes for short and int (16 bits) causes overflow warnings when expanding the TEST macro for USHRT_MAX. Fix by explicitly disabling overflow warnings for targets with !int32plus. gcc/testsuite/ 2017-04-25 Senthil Kumar Selvaraj <senthil_kumar.selvaraj@atmel.com> * gcc.dg/attr-alloc_size-10.c: Ignore overflow warnings for targets with int size less than 32 bits. From-SVN: r247203
Senthil Kumar Selvaraj committed -
2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1 (10-15): if derived type T with progenitors is abstract, and primitive P of this type inherits non-trivial classwide preconditions from both a parent operation and from an interface operation, then the inherited operation is abstract if the parent operation is not null. * sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface with Covered_Interface_Op to yield the actual interface operation that is implemented by a given inherited operation. 2017-04-25 Javier Miranda <miranda@adacore.com> * exp_ch4.adb (Expand_N_Op_Expon): Relocate left and right operands after performing the validity checks. Required because validity checks may remove side effects from the operands. 2017-04-25 Javier Miranda <miranda@adacore.com> * exp_attr.adb (Attribute_Unrestricted_Access): Do not disable implicit type conversion. Required to generate code that displaces the pointer to reference the secondary dispatch table. 2017-04-25 Pascal Obry <obry@adacore.com> * prj-attr.adb, snames.ads-tmpl: Add package Install's Required_Artifacts attribute. From-SVN: r247202
Arnaud Charlet committed -
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (LEGITIMATE_OFFSET_ADDRESS_P): Delete macro. (legitimate_offset_address_p): New function. (arc_legitimate_address_p): Use above function. From-SVN: r247201
Claudiu Zissulescu committed -
The TARGET_ASM_OUTPUT_MI_THUNK hook doesn't take into account the variant when we compile for PIC. gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_output_mi_thunk): Emit PIC calls. From-SVN: r247200
Claudiu Zissulescu committed -
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_conditional_register_usage): Use ACCL, ACCH registers whenever they are available. From-SVN: r247199
Claudiu Zissulescu committed -
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_conditional_register_usage): Make D0, D1 double regs fix when not used. From-SVN: r247198
Claudiu Zissulescu committed -
2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_util.adb (Same_Value): String literals are compile-time values, and comparing them must use Expr_Value_S. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Complete_Object_Interpretation): If an explicit dereference is introduced for the object, and the object is overloaded, do not check whether it is aliased, because it may include an implicit dereference. * sem_type.adb (Disambiguate): If two interpretations are access attribute types with the same designated type keep either of them and do not report an ambiguity. A true ambiguity will be reported elsewhere. 2017-04-25 Bob Duff <duff@adacore.com> * a-numeri.ads: Change the encoding of Greek letter Pi from brackets encoding to UTF-8. Use pragma Wide_Character_Encoding to indicate the encoding. We considered using a byte order mark (BOM), but that causes various trouble (misc software eats the BOM, if you have a patch with a BOM, then it's not at the start of the patch, so it's not a BOM, the BOM affects with-ing files, etc.). * scng.adb, s-wchcnv.adb: Minor. 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting. From-SVN: r247197
Arnaud Charlet committed -
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.h (REGNO_OK_FOR_BASE_P): Consider also extension core registers. (REG_OK_FOR_INDEX_P_NONSTRICT): Likewise. (REG_OK_FOR_BASE_P_NONSTRICT): Likewise. From-SVN: r247196
Claudiu Zissulescu committed -
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.c (arc_output_addsi): Check for h-register class when emitting short ADD instructions. From-SVN: r247195
Claudiu Zissulescu committed -
gcc/ 2017-04-25 Claudiu Zissulescu <claziss@synopsys.com> * config/arc/arc.md (cmpsi_cc_insn_mixed): Use 'h' register constraint. (cmpsi_cc_c_insn): Likewise. (cbranchsi4_scratch): Compute proper instruction length using compact_hreg_operand. * config/arc/predicates.md (compact_hreg_operand): New predicate. From-SVN: r247194
Claudiu Zissulescu committed -
From-SVN: r247193
Arnaud Charlet committed -
2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Add_Internal_Interface_Entities): Move Has_Non_Trivial_Precondition to sem_util. for use elsewhere. Improve error message on operations that inherit non-conforming classwide preconditions from ancestor and progenitor. * sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition): moved here from sem_ch3. * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality check given in RM 6.1.1 (17) concerning renamings of overriding operations that inherits class-wide preconditions from ancestor or progenitor. 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup. (Build_Adjust_Statements): Code cleanup. (Build_Finalizer): Update the initialization of Exceptions_OK. (Build_Finalize_Statements): Code cleanup. (Build_Initialize_Statements): Code cleanup. (Make_Deep_Array_Body): Update the initialization of Exceptions_OK. (Make_Deep_Record_Body): Update the initialization of Exceptions_OK. (Process_Object_Declaration): Generate a null exception handler only when exceptions are allowed. (Process_Transients_In_Scope): Update the initialization of Exceptions_OK. * exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New routine. * sem_ch11.adb (Analyze_Exception_Handlers): Do not check any restrictions when the handler is internally generated and the mode is warnings. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to enforce legality rule on classwide preconditions inherited from both an ancestor and a progenitor (RM 6.1.1 (10-13). * sem_disp.adb (Check_Dispatching_Context): A call to an abstract subprogram need not be dispatching if it appears in a precondition for an abstract or null subprogram. 2017-04-25 Gary Dismukes <dismukes@adacore.com> * sem_ch10.adb: Minor typo fix. From-SVN: r247192
Arnaud Charlet committed -
From-SVN: r247186
Arnaud Charlet committed -
From-SVN: r247184
Arnaud Charlet committed -
2017-04-25 Eric Botcazou <ebotcazou@adacore.com> * fname.adb (Is_Internal_File_Name): Arrange for the slices to have a length which is a power of 2. (Is_Predefined_File_Name): Likewise. Adjust comment. 2017-04-25 Bob Duff <duff@adacore.com> * exp_aggr.adb (Component_Count): Protect the arithmetic from attempting to convert a value >= 2**31 to Int, which would otherwise raise Constraint_Error. 2017-04-25 Bob Duff <duff@adacore.com> * opt.ads (Locking_Policy): Fix incorrect documentation. The first character of the policy name is not unique. 2017-04-25 Bob Duff <duff@adacore.com> * s-fileio.adb (Name): Raise Use_Error if the file is a temp file. * s-ficobl.ads (Is_Temporary_File): Remove incorrect comment about this flag not being used. It was already used, and it is now used more. From-SVN: r247183
Arnaud Charlet committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * einfo.adb Flag301 is now known as Ignore_SPARK_Mode_Pragmas. (Ignore_SPARK_Mode_Pragmas): New routine. (Set_Ignore_SPARK_Mode_Pragmas): New routine. (Write_Entity_Flags): Add an entry for Ignore_SPARK_Mode_Pragmas. * einfo.ads Add new attribute Ignore_SPARK_Mode_Pragmas and update related entities. (Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline. (Set_Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline. * opt.ads Rename flag Ignore_Pragma_SPARK_Mode to Ignore_SPARK_Mode_Pragmas_In_Instance. * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Save and restore the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set or reinstate the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when either the corresponding spec or the body must ignore all SPARK_Mode pragmas found within. (Analyze_Subprogram_Declaration): Mark the spec when it needs to ignore all SPARK_Mode pragmas found within to allow the body to infer this property in case it is instantiated or inlined later. * sem_ch7.adb (Analyze_Package_Body_Helper): Save and restore the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the corresponding spec also ignored all SPARK_Mode pragmas found within. (Analyze_Package_Declaration): Mark the spec when it needs to ignore all SPARK_Mode pragmas found within to allow the body to infer this property in case it is instantiated or inlined later. * sem_ch12.adb (Analyze_Formal_Package_Declaration): Save and restore the value of flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the formal spec when it needs to ignore all SPARK_Mode pragmas found within to allow the body to infer this property in case it is instantiated or inlined later. (Analyze_Package_Instantiation): Save and restore the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the instance spec when it needs to ignore all SPARK_Mode pragmas found within to allow the body to infer this property in case it is instantiated or inlined later. (Analyze_Subprogram_Instantiation): Save and restore the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the instance spec and anonymous package when they need to ignore all SPARK_Mode pragmas found within to allow the body to infer this property in case it is instantiated or inlined later. (Instantiate_Package_Body): Save and restore the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the corresponding instance spec also ignored all SPARK_Mode pragmas found within. (Instantiate_Subprogram_Body): Save and restore the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the corresponding instance spec also ignored all SPARK_Mode pragmas found within. * sem_prag.adb (Analyze_Pragma): Update the reference to Ignore_Pragma_SPARK_Mode. * sem_util.adb (SPARK_Mode_Is_Off): A construct which ignored all SPARK_Mode pragmas defined within yields mode "off". 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * bindgen.adb, exp_dbug.adb, errout.adb, fname.adb: Minor reformatting. 2017-04-25 Bob Duff <duff@adacore.com> * exp_atag.adb (Build_CW_Membership): Add "Suppress => All_Checks" to avoid generating unnecessary checks. * exp_ch4.adb (Expand_N_In, Make_Tag_Check): Add "Suppress => All_Checks". * sem.ads: Fix comment. * expander.ads: Fix comment. * exp_atag.ads: Fix comment: "Index = 0" should be "Index >= 0". 2017-04-25 Gary Dismukes <dismukes@adacore.com> * s-taprop-linux.adb: Minor editorial fixes. From-SVN: r247182
Arnaud Charlet committed -
2017-04-25 Eric Botcazou <ebotcazou@adacore.com> * sem_util.adb (New_Copy_Tree): Put back the declarations of the hash tables at library level. Reinstate the NCT_Hash_Tables_Used variable and set it to True whenever the main hash table is populated. Short- circuit the Assoc function if it is false and add associated guards. From-SVN: r247181
Arnaud Charlet committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Insert_Valid_Check): Code cleanup. * exp_ch6.adb (Add_Validation_Call_By_Copy_Code): New routine. (Expand_Actuals): Generate proper copy-back for a validation variable when it acts as the argument of a type conversion. * sem_util.adb (Is_Validation_Variable_Reference): Augment the predicate to operate on type qualifications. From-SVN: r247180
Hristian Kirtchev committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb, exp_ch6.adb, binde.adb, sem_disp.adb, s-fileio.adb: Minor reformatting. From-SVN: r247179
Hristian Kirtchev committed -
2017-04-25 Bob Duff <duff@adacore.com> * sem_prag.adb (No_Return): Give an error if the pragma applies to a body. Specialize the error for the specless body case, as is done for (e.g.) pragma Convention. * debug.adb: Add switch -gnatd.J to disable the above legality checks. This is mainly for use in our test suite, to avoid rewriting a lot of illegal (but working) code. It might also be useful to customers. Under this switch, if a pragma No_Return applies to a body, and the procedure raises an exception (as it should), the pragma has no effect. If the procedure does return, execution is erroneous. 2017-04-25 Bob Duff <duff@adacore.com> * exp_ch6.adb (Expand_Actuals): This is the root of the problem. It took N as an 'in out' parameter, and in some cases, rewrote N, but then set N to Original_Node(N). So the node returned in N had no Parent. The caller continued processing of this orphaned node. In some cases that caused a crash (e.g. Remove_Side_Effects climbs up Parents in a loop, and trips over the Empty Parent). The solution is to make N an 'in' parameter. Instead of rewriting it, return the list of post-call actions, so the caller can do the rewriting later, after N has been fully processed. (Expand_Call_Helper): Move most of Expand_Call here. It has too many premature 'return' statements, and we want to do the rewriting on return. (Insert_Post_Call_Actions): New procedure to insert the post-call actions in the appropriate place. In the problematic case, that involves rewriting N as an Expression_With_Actions. (Expand_Call): Call the new procedures Expand_Call_Helper and Insert_Post_Call_Actions. From-SVN: r247178
Bob Duff committed -
2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Inherits_Class_Wide_Pre): Cleanup code, handle properly type derived from generic formal types, to handle properly modified version of ACATS 4.1B B611017. 2017-04-25 Javier Miranda <miranda@adacore.com> * exp_unst.adb (Subp_Index): Adding missing support for renamings and functions that return a constrained array type (i.e. functions for which the frontend built a procedure with an extra out parameter). 2017-04-25 Pascal Obry <obry@adacore.com> * s-string.adb: Minor code clean-up. 2017-04-25 Bob Duff <duff@adacore.com> * s-os_lib.ads, s-os_lib.adb (Non_Blocking_Wait_Process): New procedure. * adaint.h, adaint.c (__gnat_portable_no_block_wait): C support function for Non_Blocking_Wait_Process. 2017-04-25 Bob Duff <duff@adacore.com> * prep.adb (Preprocess): Remove incorrect Assert. Current character can be ASCII.CR. From-SVN: r247177
Arnaud Charlet committed -
2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Set_Convention_From_Pragma): Cleanup code for convention Stdcall, which has a number of exceptions. Convention is legal on a component declaration whose type is an anonymous access to subprogram. 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch4.adb: sem_ch4.adb Various reformattings. (Try_One_Prefix_Interpretation): Use the base type when dealing with a subtype created for purposes of constraining a private type with discriminants. 2017-04-25 Javier Miranda <miranda@adacore.com> * einfo.ads, einfo.adb (Has_Private_Extension): new attribute. * warnsw.ads, warnsw.adb (All_Warnings): Set warning on late dispatching primitives (Restore_Warnings): Restore warning on late dispatching primitives (Save_Warnings): Save warning on late dispatching primitives (Do_Warning_Switch): Use -gnatw.j/-gnatw.J to enable/disable this warning. (WA_Warnings): Set warning on late dispatching primitives. * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remember that its parent type has a private extension. * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension): New subprogram. * usage.adb: Document -gnatw.j and -gnatw.J. From-SVN: r247176
Arnaud Charlet committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch7.adb, checks.adb, sem_prag.adb, eval_fat.adb: Minor reformatting. 2017-04-25 Bob Duff <duff@adacore.com> * binde.adb (Validate): Do not pass dynamic strings to pragma Assert, because older compilers do not support that. 2017-04-25 Bob Duff <duff@adacore.com> * s-fileio.adb (Close): When a temp file is closed, delete it and clean up its Temp_File_Record immediately, rather than waiting until later. (Temp_File_Record): Add File component, so Close can know which Temp_File_Record corresponds to the file being closed. (Delete): Don't delete temp files, because they are deleted by Close. (Open): Set the File component of Temp_File_Record. This requires moving the creation of the Temp_File_Record to the end, after the AFCB has been created. From-SVN: r247175
Arnaud Charlet committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Insert_Valid_Check): Do not generate a validity check when inside a generic. 2017-04-25 Yannick Moy <moy@adacore.com> * sem_res.adb (Resolve_Type_Conversion): Fix bad logic. 2017-04-25 Arnaud Charlet <charlet@adacore.com> * snames.ads-tmpl (Snames): More names for detecting predefined potentially blocking subprograms. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Analyze_Pre_Post_Condition): The rules concerning inheritance of class-wide preconditions do not apply to postconditions. 2017-04-25 Bob Duff <duff@adacore.com> * s-ficobl.ads: Minor comment fix. From-SVN: r247174
Arnaud Charlet committed -
checks.adb (Apply_Scalar_Range_Check): Analyze precisely conversions from float to integer in GNATprove mode. 2017-04-25 Yannick Moy <moy@adacore.com> * checks.adb (Apply_Scalar_Range_Check): Analyze precisely conversions from float to integer in GNATprove mode. (Apply_Type_Conversion_Checks): Make sure in GNATprove mode to call Apply_Type_Conversion_Checks, so that range checks are properly positioned when needed on conversions, including when converting from float to integer. (Determine_Range): In GNATprove mode, take into account the possibility of conversion from float to integer. * sem_res.adb (Resolve_Type_Conversion): Only enforce range check on conversions from fixed-point to integer, not anymore on conversions from floating-point to integer, when in GNATprove mode. From-SVN: r247173
Yannick Moy committed -
checks.adb (Determine_Range_R): Special case type conversions from integer to float in order to get bounds in... 2017-04-25 Yannick Moy <moy@adacore.com> * checks.adb (Determine_Range_R): Special case type conversions from integer to float in order to get bounds in that case too. * eval_fat.adb (Machine): Avoid issuing warnings in GNATprove mode, for computations involved in interval checking. From-SVN: r247172
Yannick Moy committed -
2017-04-25 Richard Biener <rguenther@suse.de> PR middle-end/80509 * passes.c (pass_manager::pass_manager): Initialize m_name_to_pass_map. From-SVN: r247171
Richard Biener committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * checks.adb (Insert_Valid_Check): Partially reimplement validity checks. * einfo.adb Node36 is now used as Validated_Object. (Validated_Object): New routine. (Set_Validated_Object): New routine. (Write_Field36_Name): Add an entry for Validated_Object. * einfo.ads Add new attribute Validated_Object along with usage in entities. (Validated_Object): New routine along with pragma Inline. (Set_Validated_Object): New routine along with pragma Inline. * exp_attr.adb (Make_Range_Test): Add processing for validation variables to avoid extra reads and copies of the prefix. * exp_ch6.adb (Expand_Actuals): Add copy-back for validation variables in order to reflect any changes done in the variable back into the original object. * sem_util.adb (Is_Validation_Variable_Reference): New routine. * sem_util.ads (Is_Validation_Variable_Reference): New routine. 2017-04-25 Steve Baird <baird@adacore.com> * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs, Make_Finalize_Address_Body): Don't generate Finalize_Address routines for CodePeer. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_prag.adb (Inherits_Class_Wide_Pre): subsidiary of Analyze_Pre_Post_Condition, to implement the legality checks mandated by AI12-0131: Pre'Class shall not be specified for an overriding primitive subprogram of a tagged type T unless the Pre'Class aspect is specified for the corresponding primitive subprogram of some ancestor of T. From-SVN: r247170
Arnaud Charlet committed -
2017-04-25 Bob Duff <duff@adacore.com> * sem_ch8.adb (Use_One_Type): If a use_type_clause is redundant, set its Used_Operations to empty. This is only necessary for use clauses that appear in the parent of a generic child unit, because those use clauses get reanalyzed when we instantiate the generic, and we don't want the Used_Operations carried over from the original context (where it was probably not redundant). 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * exp_ch6.adb: Minor reformatting. From-SVN: r247169
Arnaud Charlet committed -
2017-04-25 Bob Duff <duff@adacore.com> * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Use Source_Index (Current_Sem_Unit) to find the correct casing. * exp_prag.adb (Expand_Pragma_Check): Use Source_Index (Current_Sem_Unit) to find the correct casing. * par.adb (Par): Null out Current_Source_File, to ensure that the above bugs won't rear their ugly heads again. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch8.adb (Find_Type): For an attribute reference 'Class, if prefix type is synchronized and previous errors have suppressed the creation of the corresponding record type, create a spurious class-wide for the synchonized type itself, to catch other misuses of the attribute 2017-04-25 Steve Baird <baird@adacore.com> * exp_ch6.adb (Expand_Simple_Function_Return): if CodePeer_Mode is True, then don't generate the accessibility check for the tag of a tagged result. * exp_intr.adb (Expand_Dispatching_Constructor_Call): if CodePeer_Mode is True, then don't generate the tag checks for the result of call to an instance of Ada.Tags.Generic_Dispatching_Constructor (i.e., both the "is a descendant of" check and the accessibility check). 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch13.adb: Code cleanups. * a-strbou.ads: minor whitespace fix in Trim for bounded strings. * sem_ch8.ads: Minor comment fix. From-SVN: r247168
Arnaud Charlet committed -
2017-04-25 Eric Botcazou <ebotcazou@adacore.com> * exp_ch4.adb (Library_Level_Target): New function. (Expand_Concatenate): When optimization is enabled, also expand the operation out-of-line if the concatenation is present within the expression of the declaration of a library-level object and not only if it is the expression of the declaration. 2017-04-25 Bob Duff <duff@adacore.com> * freeze.adb (Freeze_Object_Declaration): Do not Remove_Side_Effects if there is a pragma Linker_Section, because in that case we want static initialization in the appropriate section. 2017-04-25 Gary Dismukes <dismukes@adacore.com> * exp_dbug.adb: Minor rewording and reformatting. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_attr.adb (Statically_Denotes_Object): New predicate, to handle the proposed changes to rules concerning potentially unevaluated expressions, to include selected components that do not depend on discriminants, and indexed components with static indices. * sem_util.adb (Is_Potentially_Unevaluated): Add check for predicate in quantified expression, and fix bugs in the handling of case expressions and membership test. (Analyze_Attribute_Old_Result): use new predicate. (Analyze_Attribute, case Loop_Entry): ditto. From-SVN: r247167
Arnaud Charlet committed -
2017-04-25 Bob Duff <duff@adacore.com> * s-secsta.adb (SS_Info): Add a comment explaining why we don't need to walk all the chunks in order to compute the total size. 2017-04-25 Bob Duff <duff@adacore.com> * namet.ads, namet.adb (Global_Name_Buffer): Increase the length of the global name buffer to 4*Max_Line_Length. 2017-04-25 Javier Miranda <miranda@adacore.com> * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): When creating a renaming entity for debug information, mark the entity as needing debug info if it comes from sources. 2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove the restriction converning the use of 'Address where the prefix is of a controlled type. 2017-04-25 Pierre-Marie de Rodat <derodat@adacore.com> * exp_dbug.adb: In Debug_Renaming_Declaration, skip slices that are made redundant by an indexed component access. * atree.h: New definition for Original_Node. From-SVN: r247166
Arnaud Charlet committed -
2017-04-25 Hristian Kirtchev <kirtchev@adacore.com> * sem_prag.adb, sem_prag.ads: Minor reformatting. From-SVN: r247165
Hristian Kirtchev committed -
From-SVN: r247164
Arnaud Charlet committed -
sem_ch3.adb (Check_Entry_Contract): Call Preanalyze_Spec_Expression so that resolution takes place as well. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch3.adb (Check_Entry_Contract): Call Preanalyze_Spec_Expression so that resolution takes place as well. * sem_util.adb (Check_Internal_Protected_Use): Reject properly internal calls that appear in preconditions of protected operations, in default values for same, and in contract guards for contract cases in SPARK. From-SVN: r247163
Ed Schonberg committed -
2017-04-25 Eric Botcazou <ebotcazou@adacore.com> * a-numaux.ads: Fix description of a-numaux-darwin and a-numaux-x86. (Double): Define to Long_Float. * a-numaux-vxworks.ads (Double): Likewise. * a-numaux-darwin.ads (Double): Likewise. * a-numaux-libc-x86.ads (Double): Define to Long_Long_Float. * a-numaux-x86.ads: Fix package description. * a-numaux-x86.adb (Is_Nan): Minor tweak. (Reduce): Adjust and complete description. Call Is_Nan instead of testing manually. Use an integer temporary to hold rounded value. * a-numaux-darwin.adb (Reduce): Likewise. (Is_Nan): New function. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * sem_ch4.adb (Analyze_Selected_Component): Additional refinement on analysis of prefix whose type is a current instance of a synchronized type, but where the prefix itself is an entity that is an object. 2017-04-25 Ed Schonberg <schonberg@adacore.com> * exp_ch5.adb (Replace_Target): When rewriting the RHS, preserve the identity of callable entities therein, because they have been properly resolved, and prefixed calls may have been rewritten as normal calls. 2017-04-25 Patrick Bernardi <bernardi@adacore.com> * exp_ch3.adb (Build_Init_Statements): Convert the expression of the pragma/aspect Secondary_Stack_Size to internal type System.Parameters.Size_Type before assigning it to the Secondary_Stack_Size component of the task type's corresponding record. 2017-04-25 Eric Botcazou <ebotcazou@adacore.com> * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc) optimizations when the type is modular and the offsets are equal. 2017-04-25 Eric Botcazou <ebotcazou@adacore.com> * s-osinte-freebsd.ads: Minor comment tweaks 2017-04-25 Javier Miranda <miranda@adacore.com> * urealp.adb (UR_Write): Reverse previous patch adding documentation on why we generate multiplications instead of divisions (needed to avoid expressions whose computation with large numbers may cause division by 0). 2017-04-25 Bob Duff <duff@adacore.com> * erroutc.adb (Set_Specific_Warning_Off, Set_Warnings_Mode_Off): Use the correct source file for Stop. Was using Current_Source_File, which is only valid during parsing. Current_Source_File will have a leftover value from whatever file happened to be parsed last, because of a with_clause or something. 2017-04-25 Bob Duff <duff@adacore.com> * lib.ads, lib.adb (In_Internal_Unit): New functions similar to In_Predefined_Unit, but including GNAT units. * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): Replace with Should_Ignore_Pragma_Par and Should_Ignore_Pragma_Sem, because Should_Ignore_Pragma was not working reliably outside the parser, because Current_Source_File is not valid. * sem_prag.adb, exp_prag.adb: Call Should_Ignore_Pragma_Sem. * par-prag.adb: Call Should_Ignore_Pragma_Par. From-SVN: r247162
Arnaud Charlet committed -
From-SVN: r247161
Arnaud Charlet committed
-