12017-12-21 Eric Botcazou <ebotcazou@adacore.com> 2 3 PR ada/83535 4 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Always take 5 into account the Esize if it is known. 6 72017-12-21 Richard Sandiford <richard.sandiford@linaro.org> 8 Alan Hayward <alan.hayward@arm.com> 9 David Sherwood <david.sherwood@arm.com> 10 11 * gcc-interface/trans.c (Attribute_to_gnu): Track polynomial 12 offsets and sizes. 13 * gcc-interface/utils2.c (build_unary_op): Likewise. 14 152017-12-20 Eric Botcazou <ebotcazou@adacore.com> 16 17 * gcc-interface/trans.c (Loop_Statement_to_gnu): Use IN_RANGE macro. 18 * gcc-interface/misc.c (gnat_get_array_descr_info): Likewise. 19 (default_pass_by_ref): Likewise. 20 * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. 21 222017-12-19 Jakub Jelinek <jakub@redhat.com> 23 24 * gcc-interface/trans.c (Loop_Statement_to_gnu): Replace Yoda 25 conditions with typical order conditions. 26 * gcc-interface/misc.c (gnat_get_array_descr_info): Likewise. 27 (default_pass_by_ref): Likewise. 28 * gcc-interface/decl.c (gnat_to_gnu_entity): Likewise. 29 * adaint.c (__gnat_tmp_name): Likewise. 30 312017-12-19 Arnaud Charlet <charlet@adacore.com> 32 33 PR ada/66205 34 * bindgen.adb (Gen_AdaFinal): Revert previous change. 35 362017-12-15 Jakub Jelinek <jakub@redhat.com> 37 38 * gcc-interface/utils.c (gnat_internal_attribute_table): Swap 39 affects_type_identity and handler fields, adjust comments. 40 412017-12-15 Eric Botcazou <ebotcazou@adacore.com> 42 43 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Use Component_Size of 44 the innermost array instead of Esize of its component type to exclude 45 inappropriate array types, including packed array types. 46 472017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 48 49 * sem_prag.adb (Analyze_Input_Item): Allow concurrent types to appear 50 within the input list of Initializes. Remove the uses of Input_OK. 51 522017-12-15 Ed Schonberg <schonberg@adacore.com> 53 54 * exp_ch4.adb (Expand_N_In): Do not replace a membership test on a 55 scalar type with a validity test when the membership appears in a 56 predicate expression, to prevent a spurious error when predicate is 57 specified static. 58 * sem_ch13.adb (Build_Predicate_Functions): Add warning if a static 59 predicate, after constant-folding, reduces to True and is this 60 redundant. 61 * par-ch4.adb: Typo fixes and minor reformattings. 62 632017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 64 65 * sem_elab.adb (Ensure_Prior_Elaboration_Static): Mark the generated 66 with clause as being implicit for an instantiation in order to 67 circumvent an issue with 'W' and 'Z' line encodings in ALI files. 68 692017-12-15 Ed Schonberg <schonberg@adacore.com> 70 71 * sem_util.adb (Is_Potentially_Unevaluated): Detect further cases of 72 misuse of 'Old that appear within an expression that is potentially 73 unevaluated, when the prefix of the attribute does not statically 74 designate an object (e.g. a function call). 75 762017-12-15 Ed Schonberg <schonberg@adacore.com> 77 78 * sem_ch6.adb (Conformking_Types): Two incomplete types are conforming 79 when one of them is used as a generic actual, but only within an 80 instantiation. 81 * einfo.ads: Clarify use of flag Used_As_Generic_Actual. 82 832017-12-15 Justin Squirek <squirek@adacore.com> 84 85 * sem_attr.adb (Resolve_Attribute): Modify check for aliased view on 86 prefix to use the prefix's original node to avoid looking at expanded 87 conversions for certain array types. 88 892017-12-15 Ed Schonberg <schonberg@adacore.com> 90 91 * sem_res.adb (Resolve_Membership_Op): Add warning on a membership 92 operation on a scalar type for which there is a user-defined equality 93 operator. 94 952017-12-15 Yannick Moy <moy@adacore.com> 96 97 * doc/gnat_rm/implementation_defined_pragmas.rst: Add Ghost assertion 98 policy. 99 1002017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 101 102 * sem_prag.adb (Analyze_Initialization_Item): Remove the specialized 103 processing for a null initialization item. Such an item is always 104 illegal. 105 1062017-12-15 Bob Duff <duff@adacore.com> 107 108 * types.ads, types.h, libgnat/a-except.adb, exp_ch11.adb 109 (PE_Build_In_Place_Mismatch): New reason code for raising when the 110 BIPalloc formal parameter is incorrect. This can happen if a compiler 111 bug causes a mismatch of build-in-place between caller and callee. 112 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use 113 PE_Build_In_Place_Mismatch. 114 1152017-12-15 Ed Schonberg <schonberg@adacore.com> 116 117 * exp_ch4.ads, exp_ch4.adb (Expand_N_Reduction_Expression): New 118 procedure. 119 * exp_util.adb (Insert_Actions): Handle N_Reduction_Expression. 120 * expander.adb (Expand): Call Expand_N_Reduction_Expression 121 * par-ch4.adb (P_Reduction_Expression): New procedure. 122 (P_Iterated_Component_Assoc_Or_Reduction): New precedure, extension of 123 P_Iterated_Component_Association. 124 (OK_Reduction_Expression_Parameter): New procedure. 125 (P_Aggregate_Or_Paren_Expr): Improve error message for malformed delta 126 aggregate. 127 * sem.adb (Analyze): Call Analyze_Reduction_Expression and 128 Analyze_Reduction_Expression_Parameter 129 * sinfo.ads, sinfo.adb: New node kinds N_Reduction_Expression and 130 N_Reduction_Expression_Parameter. 131 * sem_ch4.ads, sem_ch4.adb (Analyze_Reduction_Expression, 132 Analyze_Reduction_Expression_Parameter): New procedures. 133 * sem_res.adb (Resolve): Handle Reduction_Expression and 134 Reduction_Expression_Parameter 135 * sem_spark.adb: Dummy entries for Reduction_Expression and 136 Reduction_Expression_Parameter 137 * sprint.adb (Sprint_Node_Actual): Print Reduction_Expression, 138 Reduction_Expression_Parameter 139 1402017-12-15 Bob Duff <duff@adacore.com> 141 142 * einfo.ads: Comment fix. 143 1442017-12-15 Piotr Trojanek <trojanek@adacore.com> 145 146 * s-vercon.adb: Minor style fixes. 147 1482017-12-15 Ed Schonberg <schonberg@adacore.com> 149 150 * sem_ch6.adb (Freeze_Expr_Types): Do not emit a freeze node for an 151 itype that is the type of a discriminant-dependent component. 152 1532017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 154 155 * sem_prag.adb (Analyze_Part_Of): The context-specific portion of the 156 analysis is now directed to several specialized routines. 157 (Check_Part_Of_Abstract_State): New routine. 158 (Check_Part_Of_Concurrent_Type): New routine. Reimplement the checks 159 involving the item, the single concurrent type, and their respective 160 contexts. 161 * sem_res.adb (Resolve_Entity_Name): Potential constituents of a single 162 concurrent type are now recorded regardless of the SPARK mode. 163 * sem_util.adb (Check_Part_Of_Reference): Split some of the tests in 164 individual predicates. A Part_Of reference is legal when it appears 165 within the statement list of the object's immediately enclosing 166 package. 167 (Is_Enclosing_Package_Body): New routine. 168 (Is_Internal_Declaration_Or_Body): New routine. 169 (Is_Single_Declaration_Or_Body): New routine. 170 (Is_Single_Task_Pragma): New routine. 171 1722017-12-15 Patrick Bernardi <bernardi@adacore.com> 173 174 * gnat_ugn.texi: Regenerate. 175 1762017-12-15 Bob Duff <duff@adacore.com> 177 178 * gnatvsn.ads: Minor comment fixes. 179 1802017-12-15 Patrick Bernardi <bernardi@adacore.com> 181 182 * doc/gnat_ugn/gnat_and_program_execution.rst: Update section "Dynamic 183 Stack Usage Analysis" to include more details about GNAT_STACK_LIMIT. 184 1852017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 186 187 * exp_util.adb (Add_Own_DIC): Ensure that the expression of the pragma 188 is available (Is_Verifiable_DIC_Pragma): Moved from Sem_Util. 189 * sem_util.adb (Has_Full_Default_Initialization): 190 Has_Fully_Default_Initializing_DIC_Pragma is now used to determine 191 whether a type has full default initialization due to pragma 192 Default_Initial_Condition. 193 (Has_Fully_Default_Initializing_DIC_Pragma): New routine. 194 (Is_Verifiable_DIC_Pragma): Moved to Exp_Util. 195 * sem_util.ads (Has_Fully_Default_Initializing_DIC_Pragma): New 196 routine. 197 (Is_Verifiable_DIC_Pragma): Moved to Exp_Util. 198 * sem_warn.adb (Is_OK_Fully_Initialized): 199 Has_Fully_Default_Initializing_DIC_Pragma is now used to determine 200 whether a type has full default initialization due to pragma 201 Default_Initial_Condition. 202 2032017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 204 205 * sem_prag.adb (Match_Constituent): Do not quietly accept constants as 206 suitable constituents. 207 * exp_util.adb: Minor reformatting. 208 2092017-12-15 Ed Schonberg <schonberg@adacore.com> 210 211 * exp_aggr.adb (In_Place_Assign_OK): Extend the predicate to recognize 212 an array aggregate in an allocator, when the designated type is 213 unconstrained and the upper bound of the aggregate belongs to the base 214 type of the index. 215 2162017-12-15 Bob Duff <duff@adacore.com> 217 218 * exp_ch6.adb (Expand_N_Extended_Return_Statement, 219 Expand_Simple_Function_Return): Assert that the b-i-p-ness of the 220 caller and callee match. Otherwise, we would need some substantial 221 changes to allow b-i-p calls non-b-i-p, and vice versa. 222 2232017-12-15 Ed Schonberg <schonberg@adacore.com> 224 225 * exp_unst.adb (Unnest_Subprograms): Nothing to do if the main unit is 226 a generic package body. Unnesting is only an issue when generating 227 code, and if the main unit is generic then nested instance bodies have 228 not been created and analyzed, and unnesting will crash in the absence 229 of those bodies, 230 2312017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 232 233 * inline.adb (Add_Inlined_Body): Do not add a function which is 234 completed by an expression function defined in the same context as the 235 initial declaration because the completing body is not in a package 236 body. 237 (Is_Non_Loading_Expression_Function): New routine. 238 2392017-12-15 Hristian Kirtchev <kirtchev@adacore.com> 240 241 * debug.adb: Move the functionality of -gnatdL to -gnatd_i. Restore 242 the behavior of -gnatdL from before revision 255412. 243 * sem_elab.adb: Update the section of compiler switches. 244 (Build_Call_Marker): Do not create a marker for a call which originates 245 from an expanded spec or body of an instantiated gener, does not invoke 246 a generic formal subprogram, the target is external to the instance, 247 and -gnatdL is in effect. 248 (In_External_Context): New routine. 249 (Process_Conditional_ABE_Activation_Impl): Update the uses of -gnatdL 250 and associated flag. 251 (Process_Conditional_ABE_Call): Update the uses of -gnatdL and 252 associated flag. 253 * switch-c.adb (Scan_Front_End_Switches): Switch -gnatJ now sets switch 254 -gnatd_i. 255 * exp_unst.adb: Minor typo fixes and edits. 256 2572017-12-15 Ed Schonberg <schonberg@adacore.com> 258 259 * sem_ch6.adb (Possible_Freeze): Do not set Delayed_Freeze on an 260 subprogram instantiation, now that the enclosing wrapper package 261 carries an explicit freeze node. THis prevents freeze nodes for the 262 subprogram for appearing in the wrong scope. This is relevant when the 263 generic subprogram has a private or incomplete formal type and the 264 instance appears within a package that declares the actual type for the 265 instantiation, and that type has itself a delayed freeze. 266 2672017-12-15 Patrick Bernardi <bernardi@adacore.com> 268 269 * doc/gnat_ugn/gnat_and_program_execution.rst: Removed references to 270 the environment variable GNAT_STACK_LIMIT from the Stack Overflow 271 Checking section as it is no longer used by any of our supported 272 targets. 273 2742017-12-15 Bob Duff <duff@adacore.com> 275 276 * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the 277 Init_Assignment is rewritten, we need to set Assignment_OK on the new 278 node. Otherwise, we will get spurious errors when initializing via 279 assignment statement. 280 2812017-12-15 Arnaud Charlet <charlet@adacore.com> 282 283 * exp_unst.adb (Visit_Node): Refine handling of 'Access to ignore non 284 relevant nodes. 285 (Has_Non_Null_Statements): Moved to sem_util for later reuse. 286 2872017-12-15 Eric Botcazou <ebotcazou@adacore.com> 288 289 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Fix comment. 290 * libgnat/s-fatgen.adb (Model): Use Machine attribute. 291 (Truncation): Likewise. 292 2932017-12-15 Bob Duff <duff@adacore.com> 294 295 * exp_ch7.adb (Expand_Cleanup_Actions): Make sure the block and handled 296 statement sequence generated for certain extended return statements 297 have a Sloc that is not No_Location. Otherwise, the back end doesn't 298 set any location and ends up reading uninitialized variables. 299 3002017-12-15 Bob Duff <duff@adacore.com> 301 302 * types.ads, exp_ch6.adb, libgnat/s-regexp.ads, opt.ads: Partly revert 303 r255414, committed by mistake. 304 3052017-12-14 Eric Botcazou <ebotcazou@adacore.com> 306 307 * gcc-interface/Makefile.in: Generalize support for symbolic traces. 308 3092017-12-14 Eric Botcazou <ebotcazou@adacore.com> 310 311 * gcc-interface/misc.c (default_pass_by_ref): Minor tweak. 312 3132017-12-14 Eric Botcazou <ebotcazou@adacore.com> 314 315 * gcc-interface/trans.c (Call_to_gnu): Set DECL_DISREGARD_INLINE_LIMITS 316 to 0 on the callee if the call is recursive. 317 3182017-12-14 Eric Botcazou <ebotcazou@adacore.com> 319 320 * gcc-interface/decl.c (gnat_to_gnu_field): Do not set the alignment 321 of the enclosing record type if it is not already set. 322 3232017-12-14 Eric Botcazou <ebotcazou@adacore.com> 324 325 * gcc-interface/gigi.h (pad_type_has_rm_size): Declare. 326 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Do not build 327 a padding type for the alignment before validating the size. 328 Flip conditional construct and add a comment. 329 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Make sure to 330 apply the exception for padded objects to the type of the object. 331 * gcc-interface/utils.c (hash_pad_type): New static function. 332 (lookup_and_insert_pad_type): Rename into... 333 (canonicalize_pad_type): ...this. Call hash_pad_type, do only one 334 lookup with insertion and always return the canonical type. 335 (maybe_pad_type): Adjust to above changes. Set debug type later. 336 (pad_type_has_rm_size): New predicate. 337 (set_reverse_storage_order_on_pad_type): Adjust to above changes. 338 3392017-12-13 Eric Botcazou <ebotcazou@adacore.com> 340 341 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Initialize locus. 342 3432017-12-13 Eric Botcazou <ebotcazou@adacore.com> 344 345 * gcc-interface/trans.c (process_freeze_entity): Be prepared for a 346 package without body. 347 3482017-12-13 Eric Botcazou <ebotcazou@adacore.com> 349 350 * gcc-interface/decl.c (gnat_to_gnu_entity): Robustify test for types 351 descendant of System.Address. 352 (gnat_to_gnu_subprog_type): Likewise. 353 3542017-12-08 Jakub Jelinek <jakub@redhat.com> 355 356 * gcc-interface/utils.c (gnat_internal_attribute_table): Add 357 exclusions to the comment. 358 3592017-12-07 Martin Sebor <msebor@redhat.com> 360 361 PR c/81544 362 * gcc-interface/utils.c (gnat_internal_attribute_table): Initialize 363 new member of struct attribute_spec. 364 3652017-12-06 Simon Wright <simon@pushface.org> 366 367 PR ada/66205 368 * bindgen.adb (Gen_AdaFinal): If the restriction No_Task_Termination is 369 set, generate a null body. 370 3712017-12-05 Piotr Trojanek <trojanek@adacore.com> 372 373 * sem_util.adb (Contains_Refined_State): Remove. 374 3752017-12-05 Ed Schonberg <schonberg@adacore.com> 376 377 * sem_ch13.adb (Analyze_Aspect_Specifications, case Predicate): A 378 predicate cannot apply to a formal type. 379 3802017-12-05 Arnaud Charlet <charlet@adacore.com> 381 382 * exp_unst.ads: Fix typos. 383 3842017-12-05 Jerome Lambourg <lambourg@adacore.com> 385 386 * libgnarl/s-taprop__qnx.adb: Better detect priority ceiling bug in 387 QNX. At startup, the first mutex created has a non-zero ceiling 388 priority whatever its actual policy. This makes some tests fail 389 (c940013 for example). 390 3912017-12-05 Bob Duff <duff@adacore.com> 392 393 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Call 394 Expand_Cleanup_Actions for N_Extended_Return_Statement. 395 * exp_ch7.adb (Expand_Cleanup_Actions): Handle 396 N_Extended_Return_Statement by transforming the statements into a 397 block, and (indirectly) calling Expand_Cleanup_Actions on the block. 398 It's too hard for Expand_Cleanup_Actions to operate directly on the 399 N_Extended_Return_Statement, because it has a different structure than 400 the other node kinds that Expand_Cleanup_Actions. 401 * exp_util.adb (Requires_Cleanup_Actions): Add support for 402 N_Extended_Return_Statement. Change "when others => return False;" to 403 "when others => raise ...;" so it's clear what nodes this function 404 handles. Use named notation where appropriate. 405 * exp_util.ads: Mark incorrect comment with ???. 406 4072017-12-05 Javier Miranda <miranda@adacore.com> 408 409 * exp_ch9.adb (Install_Private_Data_Declarations): Add missing 410 Debug_Info_Needed decoration of internally generated discriminal 411 renaming declaration. 412 4132017-12-05 Arnaud Charlet <charlet@adacore.com> 414 415 * exp_unst.adb (Unnest_Subprogram): Add handling of 'Access on 416 nested subprograms. 417 4182017-12-05 Sergey Rybin <rybin@adacore.com> 419 420 * doc/gnat_ugn/gnat_utility_programs.rst: Add description of '--ignore' 421 option for gnatmetric, gnatpp, gnat2xml, and gnattest. 422 4232017-12-05 Piotr Trojanek <trojanek@adacore.com> 424 425 * sem_util.adb (Contains_Refined_State): Remove. 426 4272017-12-05 Piotr Trojanek <trojanek@adacore.com> 428 429 * rtsfind.ads: Add new enumeration literals: RE_Clock_Time (for 430 Ada.Real_Time.Clock_Time) and RO_CA_Clock_Time (for 431 Ada.Calendar.Clock_Time). 432 4332017-12-05 Ed Schonberg <schonberg@adacore.com> 434 435 * sem_ch4.adb (Is_Private_Overriding): If the candidate private 436 subprogram is overloaded, scan the list of homonyms in the same 437 scope, to find the inherited operation that may be overridden 438 by the candidate. 439 * exp_ch11.adb, exp_ch7.adb: Minor reformatting. 440 4412017-12-05 Bob Duff <duff@adacore.com> 442 443 * exp_ch6.adb (Expand_N_Extended_Return_Statement): If the 444 Init_Assignment is rewritten, we need to set Assignment_OK on the new 445 node. Otherwise, we will get spurious errors when initializing via 446 assignment statement. 447 4482017-12-05 Hristian Kirtchev <kirtchev@adacore.com> 449 450 * sem_elab.adb: Update the terminology and switch sections. 451 (Check_SPARK_Model_In_Effect): New routine. 452 (Check_SPARK_Scenario): Verify the model in effect for SPARK. 453 (Process_Conditional_ABE_Call_SPARK): Verify the model in effect for 454 SPARK. 455 (Process_Conditional_ABE_Instantiation_SPARK): Verify the model in 456 effect for SPARK. 457 (Process_Conditional_ABE_Variable_Assignment_SPARK): Verify the model 458 in effect for SPARK. 459 4602017-12-05 Nicolas Setton <setton@adacore.com> 461 462 * terminals.c (__gnat_setup_child_communication): As documented, 463 __gnat_setup_child_communication should not terminate - it is intended 464 to be used as the child process of a call to fork(). However, execvp 465 might actually return in some cases, for instance when attempting to 466 run a 32-bit binary on a 64-bit Linux distribution when the 467 compatibility packages are not installed. In these cases, exit the 468 program to conform to the documentation. 469 4702017-12-05 Olivier Hainque <hainque@adacore.com> 471 472 * libgnat/s-tsmona.adb: Fix for oversight in the tsmona interface 473 update. 474 4752017-12-05 Gary Dismukes <dismukes@adacore.com> 476 477 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Minor typo fix 478 and reformatting. 479 * gnat_ugn.texi: Regenerate. 480 4812017-12-05 Olivier Hainque <hainque@adacore.com> 482 483 * sem_util.adb (Set_Convention): Always clear Can_Use_Internal_Rep 484 on access to subprogram types with foreign convention. 485 4862017-12-05 Yannick Moy <moy@adacore.com> 487 488 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix User's 489 Guide description of default settings of warnings. 490 4912017-12-05 Olivier Hainque <hainque@adacore.com> 492 493 * s-dwalin.adb (Read_And_Execute_Isn): Adjust test checking for the end 494 of section. Add comments explaining the rationale of the computation. 495 4962017-12-05 Bob Duff <duff@adacore.com> 497 498 * exp_ch11.adb: Minor refactoring. 499 5002017-12-05 Hristian Kirtchev <kirtchev@adacore.com> 501 502 * debug.adb: Add debug switches d_a, d_e, and d_p, along with 503 documentation. 504 (Set_Underscored_Debug_Flag): New routine. 505 * debug.ads: Add the flags for all underscore switches. 506 (Set_Underscored_Debug_Flag): New routine. 507 * einfo.adb: Flag303 is now Suppress_Elaboration_Warnings. 508 (Suppress_Elaboration_Warnings): New routine. 509 (Set_Suppress_Elaboration_Warnings): New routine. 510 (Write_Entity_Flags): Add output for Suppress_Elaboration_Warnings. 511 * einfo.ads: Add new flag Suppress_Elaboration_Warnings. 512 (Suppress_Elaboration_Warnings): New routine along with pragma Inline. 513 (Set_Suppress_Elaboration_Warnings): New routine along with pragma 514 Inline. 515 * exp_ch3.adb (Build_Init_Procedure): Restore the behavior of the 516 legacy elaboration model. 517 (Default_Initialize_Object): Restore the behavior of the legacy 518 elaboration model. 519 * exp_ch9.adb: Add with and use clause for Sem_Elab. 520 (Build_Task_Activation_Call): Restore the behavior of the legacy 521 elaboration model. 522 * frontend.adb (Frontend): Restore the behavior of the legacy 523 elaboration model. 524 * opt.ads: Add new flags Legacy_Elaboration_Checks and 525 Relaxed_Elaboration_Checks, along with documentation. 526 * sem_attr.adb (Analyze_Access_Attribute): Restore the behavior of the 527 legacy elaboration model. 528 * sem_ch5.adb (Analyze_Assignment): Restore the behavior of the legacy 529 elaboration model. 530 * sem_ch7.adb (Analyze_Package_Declaration): Restore the behavior of 531 the legacy elaboration model. 532 * sem_ch8.adb (Attribute_Renaming): Restore the behavior of the legacy 533 elaboration model. 534 * sem_ch12.adb (Analyze_Instance_And_Renamings): Restore the behavior 535 of the legacy elaboration model. 536 (Analyze_Package_Instantiation): Restore the behavior of the legacy 537 elaboration model. 538 (Analyze_Subprogram_Instantiation): Restore the behavior of the legacy 539 elaboration model. 540 * sem_elab.adb: Update the documentation of the Processing phase. 541 Update the documentation on elaboration-related compilation 542 switches. Update the documentation on adding a new target. Add 543 Processing_Attributes which represent the state of the Processing 544 phase. Resurrect the previous elaboration model as "legacy elaboration 545 model". 546 (Build_Call_Marker): This routine does not function when the legacy 547 elaboration model is in effect. Do not consider entry calls and requeue 548 statements when debug flag d_e is in effect. Do not consider calls to 549 subprograms which verify the runtime semantics of certain assertion 550 pragmas when debug flag d_p is in effect. 551 (Build_Variable_Reference_Marker): This routine does not function when 552 the legacy elaboration model is in effect. 553 (Check_Elaboration_Scenarios): This routine does not function when the 554 legacy elaboration model is in effect. 555 (Ensure_Prior_Elaboration): The various flags have now been replaced 556 with a state. Do not generate implicit Elaborate[_All] pragmas when 557 their creation has been suppressed. 558 (Ensure_Prior_Elaboration_Static): The with clause is marked based on 559 the requested pragma, not on the nature of the scenario. 560 (In_External_Context): Removed. 561 (Is_Assertion_Pragma_Target): New routine. 562 (Is_Potential_Scenario): Stop the traversal of a task body when 563 reaching an accept or select statement, and debug switch d_a is in 564 effect. 565 (Kill_Elaboration_Scenario): This routine does not function when the 566 legacy elaboration model is in effect. 567 (Process_Activation_Generic): The various flags have now been replaced 568 with a state. 569 (Process_Conditional_ABE): The various flags have now been replaced 570 with a state. 571 (Process_Conditional_ABE_Access): The various flags have now been 572 replaced with a state. 573 (Process_Conditional_ABE_Activation_Impl): The various flags have now 574 been replaced with a state. Do not process an activation call which 575 activates a task whose type is defined in an external instance, and 576 debug switch dL is in effect. Suppress the generation of implicit 577 Elaborate[_All] pragmas once a conditional ABE check has been 578 installed. 579 (Process_Conditional_ABE_Call): The various flags have now been 580 replaced with a state. Do not process a call which invokes a subprogram 581 defined in an external instance, and debug switch dL is in effect. 582 (Process_Conditional_ABE_Call_Ada): The various flags have now been 583 replaced with a state. Suppress the generation of implicit 584 Elaborate[_All] pragmas once a conditional ABE check has been 585 installed. 586 (Process_Conditional_ABE_Call_SPARK): The various flags have now been 587 replaced with a state. 588 (Process_Conditional_ABE_Instantiation): The various flags have now 589 been replaced with a state. 590 (Process_Conditional_ABE_Instantiation_Ada): The various flags have now 591 been replaced with a state. Suppress the generation of implicit 592 Elaborate[_All] pragmas once a conditional ABE check has been 593 installed. 594 (Process_Conditional_ABE_Instantiation_SPARK): The various flags have 595 now been replaced with a state. 596 (Process_Guaranteed_ABE_Activation_Impl): The various flags have now 597 been replaced with a state. 598 (Process_Single_Activation): The various flags have now been replaced 599 with a state. 600 (Record_Elaboration_Scenario): This routine does not function when the 601 legacy elaboration model is in effect. 602 (Traverse_Body): The various flags have now been replaced with a state. 603 * sem_elab.ads: Resurrect the pre-18.x elaboration model as "legacy 604 elaboration model". 605 * sem_prag.adb (Analyze_Pragma): Restore the behavior of the legacy 606 elaboration model. 607 * sem_res.adb (Resolve_Call): Restore the behavior of the legacy 608 elaboration model. 609 (Resolve_Entity_Name): Restore the behavior of the legacy elaboration 610 model. 611 * sem_util.adb (Mark_Elaboration_Attributes): This routine does not 612 function when the legacy elaboration model is in effect. 613 * sinfo.adb (Is_Known_Guaranteed_ABE): Update the assertion check. 614 (No_Elaboration_Check): New routine. 615 (Set_Is_Known_Guaranteed_ABE): Update the assertion check. 616 (Set_No_Elaboration_Check): New routine. 617 * sinfo.ads: Update the documentation of flag Is_Known_Guaranteed_ABE 618 along with occurrences in nodes. Add new flag No_Elaboration_Check 619 along with occurrences in nodes. 620 * switch-c.adb (Scan_Front_End_Switches): Add processing for debug 621 switches with underscores. Add processing for switches -gnatH and 622 -gnatJ. 623 * usage.adb (Usage): Add output for switches -gnatH and -gnatJ. 624 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the 625 documentation to include the legacy and relaxed elaboration models. 626 * gnat_ugn.texi: Regenerate. 627 6282017-12-05 Arnaud Charlet <charlet@adacore.com> 629 630 * doc/gnat_ugn/platform_specific_information.rst: Minor edit. 631 Improve doc on required packages for linux 32bits. 632 6332017-12-05 Doug Rupp <rupp@adacore.com> 634 635 * tracebak.c (ppc64-vx7): USE_GCC_UNWINDER for 64bit. 636 6372017-12-05 Javier Miranda <miranda@adacore.com> 638 639 * checks.adb (Generate_Range_Check): Force evaluation of the node in 640 more cases. This patch was written to improve the code generated by 641 the CCG compiler but it is enabled for all targets since double 642 evaluation is always a potential source of inefficiency. 643 6442017-12-05 Gary Dismukes <dismukes@adacore.com> 645 646 * doc/gnat_ugn/gnat_utility_programs.rst: Remove reference to obsolete 647 -fdump-xref switch. 648 6492017-12-05 Eric Botcazou <ebotcazou@adacore.com> 650 651 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Use the SLOC of the 652 iteration scheme throughout, except for the new loop statement(s). 653 6542017-12-05 Ed Schonberg <schonberg@adacore.com> 655 656 * exp_aggr.adb (Gen_Assign): Do not analyze the expressionn of the 657 assignment if it is part of an Iterated_Component_Association: the 658 analysis needs to take place once the loop structure is analyzed and 659 the loop parameter made visible, because references to it typically 660 appear in the corresponding expression. This is necessary if the 661 expression is an aggregate, because previous pre-analysis of the 662 expression does not handle nested aggregates properly. 663 6642017-12-05 Bob Duff <duff@adacore.com> 665 666 * sem_res.adb (Resolve_Allocator): Avoid coextension processing for an 667 allocator that is the expansion of a build-in-place function call. 668 6692017-12-05 Olivier Hainque <hainque@adacore.com> 670 671libgnat/ 672 * s-trasym__dwarf.adb (spec of Module_Name.Get): Instead of 673 possibly adjusting the lookup address by a load address, expect 674 a extra argument through which the load address can be conveyed 675 separately. 676 (Multi_Module_Symbolic_Traceback): Adjust accordingly. Pass the 677 retrieved load address to Init_Module. 678 * s-tsmona__linux.adb (Get): Honor the new interface. 679 * s-tsmona__mingw.adb (Get): Likewise. 680 * s-dwalin.ads: Adjust comments to be explicit about which 681 addresses are from module info and which are run-time addresses, 682 offsetted by the module load address. 683 * s-dwalin.adb (Set_Load_Address): Simply set C.Load_Slide. 684 Do not alter the module Low and High (relative) addresses. 685 (Is_Inside): Improve documentation regarding the kinds of addresses 686 at hand and correct the test. 687 (Symbolic_Traceback): Use separate variables with explicit names 688 for the address in traceback (run-time value) and the address to 689 lookup within the shared object (module-relative). Adjust the 690 computation of address passed to Symbolic_Address for symbolization. 691 6922017-12-05 Arnaud Charlet <charlet@adacore.com> 693 694 * opt.ads (Expand_Nonbinary_Modular_Ops): New flag. 695 * exp_ch4.adb (Expand_Nonbinary_Modular_Op): Use 696 Expand_Nonbinary_Modular_Ops instead of Modify_Tree_For_C, so that 697 other back-ends can also benefit from the front-end expansion. Remove 698 test for Modify_Tree_For_C in all callers to better share code. 699 * gnat1drv.adb (Adjust_Global_Switches): Set 700 Expand_Nonbinary_Modular_Ops when generating C code. 701 7022017-12-05 Ed Schonberg <schonberg@adacore.com> 703 704 * exp_ch5.adb (Expand_Formal_Container_Loop): Ensure that the loop 705 parameter becomes invisible after analyzing the loop, which has been 706 rewritten as a while-loop. 707 7082017-12-05 Doug Rupp <rupp@adacore.com> 709 710 * vxaddr2line.adb: Revise and enhance for new ports, remove dead ports, 711 and update for 64bit ports. 712 7132017-12-05 Bob Duff <duff@adacore.com> 714 715 * exp_ch6.adb (Build_In_Place_Formal): Search for the formal by suffix 716 instead of the full name. 717 * sem_ch6.adb (Create_Extra_Formals): Make sure there are extra formals 718 in the case of an instance of a generic. 719 7202017-12-05 Arnaud Charlet <charlet@adacore.com> 721 722 (Adjust_Global_Switches): Create an alias GNAT_Annotate to map to 723 pragma Annotate. 724 7252017-12-05 Sebastian Huber <sebastian.huber@embedded-brains.de> 726 727 * gcc-interface/Makefile.in (RTEMS): Define EH_MECHANISM. 728 7292017-12-04 Sebastian Huber <sebastian.huber@embedded-brains.de> 730 731 * gcc-interface/Makefile.in (RTEMS): Use s-osprim__rtems.adb. 732 * libgnat/s-osprim__rtems.adb: New file. 733 * libgnarl/s-osinte__rtems.adb (pthread_cond_t): Fix alignment. 734 (pthread_mutexattr_t): Likewise. 735 (pthread_rwlockattr_t): Likewise. 736 (pthread_rwlock_t): Likewise. 737 (time_t): Use 64-bit integer. 738 7392017-12-01 Sebastian Huber <sebastian.huber@embedded-brains.de> 740 741 * libgnarl/s-osinte__rtems.ads (pthread_cond_t): Use correct size and 742 alignment. 743 (pthread_mutex_t): Likewise. 744 (pthread_rwlock_t): Likewise. 745 7462017-11-28 Jakub Jelinek <jakub@redhat.com> 747 748 * gcc-interface/trans.c (Case_Statement_to_gnu): Build SWITCH_EXPR 749 using build2 instead of build3. 750 7512017-11-23 Eric Botcazou <ebotcazou@adacore.com> 752 753 PR ada/83091 754 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not build a variant 755 type for the implementation type of a packed array. 756 7572017-11-23 Mike Stump <mikestump@comcast.net> 758 Eric Botcazou <ebotcazou@adacore.com> 759 760 * gcc-interface/trans.c (gnat_gimplify_stmt) <LOOP_STMT>: Pass 3rd 761 operand to ANNOTATE_EXPR and also pass unrolling hints. 762 7632017-11-20 Eric Botcazou <ebotcazou@adacore.com> 764 765 PR ada/83016 766 * gnatlink.adb (Process_Args): Accept multiple switches for --LINK. 767 (Usage): Adjust. 768 * gcc-interface/Makefile.in (GCC_LINK): Remove $(ADA_INCLUDES). 769 (common-tools): Pass $(CC) as --GCC= and $(GCC_LINK) as --LINK= in 770 the invocations of $(GNATLINK). 771 (../../gnatdll$(exeext)): Likewise. 772 (../../vxaddr2line$(exeext)): Likewise. 773 (gnatmake-re): Likewise. 774 (gnatlink-re): Likewise. 775 7762017-11-16 Doug Rupp <rupp@adacore.com> 777 778 * gcc-interface/Makefile.in: Merge Aarch64 and ARM "ifeq" blocks. 779 7802017-11-16 Steve Baird <baird@adacore.com> 781 782 * debug.adb: Update another comment to indicate gnat2scil's use of the 783 -gnatd.7 switch. 784 7852017-11-16 Bob Duff <duff@adacore.com> 786 787 * exp_ch6.adb (Expand_Call_Helper): Avoid creating a transient scope in 788 the case of nested build-in-place calls. 789 7902017-11-16 Joel Brobecker <brobecker@adacore.com> 791 792 * doc/gnat_ugn/gnat_utility_programs.rst: Document the switches 793 available in gnatsymbolize. 794 7952017-11-16 Steve Baird <baird@adacore.com> 796 797 * debug.adb: Update comment to indicate gnat2scil's use of the -gnatd.7 798 switch. 799 8002017-11-16 Gary Dismukes <dismukes@adacore.com> 801 802 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, sem_ch6.adb, 803 sem_elab.adb: Minor editorial corrections. 804 * gnat_ugn.texi: Regenerate. 805 8062017-11-16 Joel Brobecker <brobecker@adacore.com> 807 808 * doc/gnat_ugn/gnat_utility_programs.rst (GNAT UGN): Add 809 gnatsymbolize documentation. 810 * gnat_ugn.texi: Regenerate. 811 8122017-11-16 Steve Baird <baird@adacore.com> 813 814 * sem_ch3.adb (Build_Derived_Record_Type): Replace all uses of 815 "Scope (Parent_Type)" with "Scope (Parent_Base)". 816 8172017-11-16 Hristian Kirtchev <kirtchev@adacore.com> 818 819 * opt.ads: Elaboration warnings are now on by default. Add a comment 820 explaining why this is needed. 821 * sem_ch9.adb (Analyze_Requeue): Preserve the status of elaboration 822 warnings. 823 * sem_ch12.adb (Analyze_Package_Instantiation): Preserve the status of 824 elaboration warnings. 825 (Analyze_Subprogram_Instantiation): Preserve the status of elaboration 826 warnings. 827 * sem_elab.adb: Update the structure of Call_Attributes and 828 Instantiation_Attributes. 829 (Build_Call_Marker): Propagate the status of elaboration warnings from 830 the call to the marker. 831 (Extract_Call_Attributes): Extract the status of elaboration warnings. 832 (Extract_Instantiation_Attributes): Extract the status of elaboration 833 warnings. 834 (Process_Conditional_ABE_Activation_Impl): Elaboration diagnostics are 835 now dependent on the status of elaboration warnings. 836 (Process_Conditional_ABE_Call_Ada): Elaboration diagnostics are now 837 dependent on the status of elaboration warnings. 838 (Process_Conditional_ABE_Instantiation_Ada): Elaboration diagnostics 839 are now dependent on the status of elaboration warnings. 840 (Process_Guaranteed_ABE_Activation_Impl): Remove pragma Unreferenced 841 for formal Call_Attrs. Elaboration diagnostics are now dependent on the 842 status of elaboration warnings. 843 (Process_Guaranteed_ABE_Call): Elaboration diagnostics are now 844 dependent on the status of elaboration warnings. 845 (Process_Guaranteed_ABE_Instantiation): Elaboration diagnostics are now 846 dependent on the status of elaboration warnings. 847 * sem_prag.adb (Analyze_Pragma): Remove the unjustified warning 848 concerning pragma Elaborate. 849 * sem_res.adb (Resolve_Call): Preserve the status of elaboration 850 warnings. 851 (Resolve_Entry_Call): Propagate flag Is_Elaboration_Warnings_OK_Node 852 from the procedure call to the entry call. 853 * sem_util.adb (Mark_Elaboration_Attributes): Add formal parameter 854 Warnings. 855 (Mark_Elaboration_Attributes_Node): Preserve the status of elaboration 856 warnings 857 * sem_util.ads (Mark_Elaboration_Attributes): Add formal parameter 858 Warnings. Update the comment on usage. 859 * sinfo.adb (Is_Dispatching_Call): Update to use Flag6. 860 (Is_Elaboration_Warnings_OK_Node): New routine. 861 (Set_Is_Dispatching_Call): Update to use Flag6. 862 (Set_Is_Elaboration_Warnings_OK_Node): New routine. 863 * sinfo.ads: Attribute Is_Dispatching_Call now uses Flag6. Add new 864 attribute Is_Elaboration_Warnings_OK_Node along with occurrences 865 in nodes. 866 (Is_Elaboration_Warnings_OK_Node): New routine along with pragma 867 Inline. 868 (Set_Is_Elaboration_Warnings_OK_Node): New routine along with pragma 869 Inline. 870 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update various 871 sections to indicate how to suppress elaboration warnings. Document 872 switches -gnatwl and -gnatwL. 873 * gnat_ugn.texi: Regenerate. 874 8752017-11-16 Sylvain Dailler <dailler@adacore.com> 876 877 * sem_util.adb (Get_Enum_Lit_From_Pos): Add a condition for Pos 878 lower than 0. 879 8802017-11-16 Bob Duff <duff@adacore.com> 881 882 * sem_ch13.adb (Check_Expr_Constants): Avoid error message in case of 883 System'To_Address. 884 8852017-11-16 Yannick Moy <moy@adacore.com> 886 887 * sem_elab.adb (Include): Fix mode of parameter Curr to out. 888 8892017-11-16 Piotr Trojanek <trojanek@adacore.com> 890 891 * sem_util.ads, sem_util.adb (Is_CCT_Instance): Allow calls where 892 Context_Id denotes a record type. 893 8942017-11-16 Hristian Kirtchev <kirtchev@adacore.com> 895 896 * sem_ch8.adb (Check_SPARK_Primitive_Operation): Enable the check in 897 instantiations. 898 8992017-11-16 Doug Rupp <rupp@adacore.com> 900 901 Initial gnat port to aarch64-wrs-vxworks7 902 * libgnarl/s-vxwork__aarch64.ads, 903 libgnat/system-vxworks7-aarch64-rtp-smp.ads, 904 libgnat/system-vxworks7-aarch64.ads: New files 905 * sigtramp-vxworks-target.inc (aarch64): New section. 906 * tracebak.c (USE_ARM_UNWINDING): Disable for ARMARCH8A. 907 9082017-11-16 Hristian Kirtchev <kirtchev@adacore.com> 909 910 * sem_elab.adb (Include): Including a node which is also a compilation 911 unit terminates the search because there are no more lists to examine. 912 9132017-11-16 Hristian Kirtchev <kirtchev@adacore.com> 914 915 * sem_ch8.adb (Analyze_Subprogram_Renaming): Ensure that a renaming 916 declaration does not define a primitive operation of a tagged type for 917 SPARK. 918 (Check_SPARK_Primitive_Operation): New routine. 919 9202017-11-16 Arnaud Charlet <charlet@adacore.com> 921 922 * libgnat/a-elchha.adb (Last_Chance_Handler): Display Argv (0) in 923 message when using -E binder switch. 924 9252017-11-16 Piotr Trojanek <trojanek@adacore.com> 926 927 * errout.ads: Fix minor typo in comment. 928 9292017-11-16 Ed Schonberg <schonberg@adacore.com> 930 931 * sem_ch3.adb (Process_Subtype): If the subtype indication does not 932 syntactically denote a type, return Any_Type to prevent subsequent 933 compiler crashes or infinite loops. 934 9352017-11-16 Steve Baird <baird@adacore.com> 936 937 * lib-writ.adb: Fix bug which causes Program_Error to be raised in some 938 cases when writing out a .ali file when a Rename_Pragma pragma is in 939 effect. 940 * lib-writ.adb (Write_Unit_Information): Replace call to 941 Pragma_Name_Unmapped with call to Pragma_Name. 942 9432017-11-16 Gary Dismukes <dismukes@adacore.com> 944 945 * sem_elab.adb: Minor typo fixes. 946 9472017-11-16 Justin Squirek <squirek@adacore.com> 948 949 * sem_res.adb (Resolve_Allocator): Correct warning messages and make 950 them more explicit. 951 9522017-11-16 Hristian Kirtchev <kirtchev@adacore.com> 953 954 * atree.ads (Nkind_In): Add 10 and 11 parameter versions. 955 * checks.adb (Install_Primitive_Elaboration_Check): Mark the setting of 956 the elaboration flag as elaboration code. 957 * einfo.adb (Contract): Update the comments. 958 (Ignore_SPARK_Mode_Pragmas): Update the comments. 959 (SPARK_Aux_Pragma): Update the comments. 960 (SPARK_Aux_Pragma_Inherited): Update the comments. 961 (SPARK_Pragma): Update the comments. The attribute now applies 962 to all types and abstract states. 963 (SPARK_Pragma_Inherited): Update the comments. The attribute now 964 applies to all types and abstract states. 965 (Set_Contract): Update the comments. 966 (Set_Ignore_SPARK_Mode_Pragmas): Update the comments. 967 (Set_SPARK_Aux_Pragma): Update the comments. 968 (Set_SPARK_Aux_Pragma_Inherited): Update the comments. 969 (Set_SPARK_Pragma): Update the comments. The attribute now applies to 970 all types and abstract states. 971 (Set_SPARK_Pragma_Inherited): Update the comments. The attribute now 972 applies to all types and abstract states. 973 (Write_Field40_Name): Add output for SPARK_Pragma when it appears on a 974 type and abstract states. 975 * einfo.ads: Update the documentation of attributes SPARK_Pragma and 976 SPARK_Pragma_Inherited. Both of them now apply to all types and 977 abstract states. 978 * exp_util.adb (Set_Elaboration_Flag): Mark the setting of the 979 elaboration flag as elaboration code. 980 * sem_ch3.adb: Add with and use clauses for Sem_Elab. 981 (Analyze_Full_Type_Declaration): Set the SPARK_Mode of the type. Record 982 a derived type for later processing by the ABE mechanism. 983 (Analyze_Incomplete_Type_Decl): Set the SPARK_Mode of the type. 984 (Analyze_Private_Extension_Declaration): Set the SPARK_Mode of the 985 type. 986 * sem_ch7.adb (Analyze_Private_Type_Declaration): Set the SPARK_Mode of 987 the type. 988 * sem_elab.adb: Define the term "early call region". Update the 989 terminology for "scenario" and "target". Update the architecture of 990 the ABE mechanism. Update the steps which must be taken when adding a 991 new scenario. Update the section on debugging ABE issues. Add new 992 hash tables Early_Call_Regions and Recorded_SPARK_Scenarios. Add new 993 table SPARK_Scenarios. Hash table Elaboration_Context is now 994 Elaboration_Statuses. The majority of Process_xxx routines have been 995 updated to better reflect their role. 996 (Add_Unit): Reimplemented. 997 (Check_Elaboration_Constituent): New routine. 998 (Check_Elaboration_Scenarios): Verify previously recorded scenarios for 999 conditional ABE issues. Verify previously recorded SPARK scenarios. 1000 (Check_SPARK_Derived_Type): New routine. 1001 (Check_SPARK_Instantiation): New routine. 1002 (Check_SPARK_Scenario): New routine. 1003 (Check_SPARK_Refined_State_Pragma): New routine. 1004 (Early_Call_Region): New routine. 1005 (Elaboration_Status): New routine. 1006 (Ensure_Prior_Elaboration): Add new formal parameter Prag_Nam. The 1007 implicit Elabotate[_All] pragma is now specified via Prag_Nam. 1008 (Find_Early_Call_Region): New routine. 1009 (Info_Scenario): Add output for refinement constituents. 1010 (Is_Recorded_SPARK_Scenario): New routine. 1011 (Is_Suitable_SPARK_Derived_Type): New routine. 1012 (Is_Suitable_SPARK_Instantiation): New routine. 1013 (Is_Suitable_SPARK_Refined_State_Pragma): New routine. 1014 (Is_Visited_Body): New routine. 1015 (Kill_Elaboration_Scenario): Reimplemented. 1016 (Output_Active_Scenarios): Add output for pragma Refined_State. 1017 (Output_SPARK_Refined_State_Pragma): New routine. 1018 (Process_Conditional_ABE_Call): Remove the use of -gnatd.v. The effect 1019 is now achieved by different means. 1020 (Process_Conditional_ABE_Call_SPARK): Verify that a call which precedes 1021 the subprogram body appears within the early call region of the body. 1022 Either ensure the prior elaboration of external subprograms or verify 1023 that the context meets the suitable elaboration requirement. 1024 (Process_Conditional_ABE_Instantiation_SPARK): New routine. 1025 (Record_Elaboration_Scenario): Reimplement the portion which enforces 1026 the level restrictions of the static model. Add support for SPARK 1027 scenarios. 1028 (Record_SPARK_Elaboration_Scenario): New routine. 1029 (Reset_Visited_Bodies): New routine. 1030 (Set_Early_Call_Region): New routine. 1031 (Set_Elaboration_Status): New routine. 1032 (Set_Is_Recorded_SPARK_Scenario): New routine. 1033 (Update_Elaboration_Scenario): Reimplemented. 1034 * sem_elab.ads: Add new subtype Library_Or_Instantiation_Level. 1035 * sem_prag.adb (Analyze_Refined_State_In_Decl_Part): Save the pragma 1036 for examination by the ABE Processing phase. 1037 (Create_Abstract_State): Save the SPARK_Mode from the context. 1038 * sem_util.adb (Is_Non_Preelaborable_Construct): New routine. 1039 * sem_util.ads (Is_Non_Preelaborable_Construct): New routine. 1040 * sinfo.adb (Is_Elaboration_Code): New routine. 1041 (Set_Is_Elaboration_Code): New routine. 1042 (Nkind_In): Add 10 and 11 parameter versions. 1043 * sinfo.ads: Add new attribute Is_Elaboration_Code along with 1044 occurrences in nodes. 1045 (Is_Elaboration_Code): New routine along with pragma Inline. 1046 (Set_Is_Elaboration_Code): New routine along with pragma Inline. 1047 (Nkind_In): Add 10 and 11 parameter versions. 1048 10492017-11-16 Justin Squirek <squirek@adacore.com> 1050 1051 * sem.adb (Analyze): Remove requirement that the original node of N be 1052 an operator in the case that analysis on the node yields the relevant 1053 operator - so prefer it instead. 1054 10552017-11-16 Bob Duff <duff@adacore.com> 1056 1057 * sem_ch6.adb (Create_Extra_Formals): The type of the BIP_Object_Access 1058 formal must not have a designated type that is the full view coming 1059 from a limited-with'ed package. 1060 * sem_util.adb,sem_util.ads (Incomplete_View_From_Limited_With): New 1061 function called from sem_ch6. 1062 * sem_ch5.adb (Analyze_Assignment): Treat user-defined concatenation 1063 specially for b-i-p cases. 1064 10652017-11-10 Martin Sebor <msebor@redhat.com> 1066 1067 PR c/81117 1068 * adadecode.c (__gnat_decode): Use memcpy instead of strncpy. 1069 * argv.c (__gnat_fill_arg, __gnat_fill_env): Likewise. 1070 10712017-11-10 Eric Botcazou <ebotcazou@adacore.com> 1072 1073 * gcc-interface/utils.c (convert) <RECORD_TYPE>: Add comment and do 1074 not fall through to the next case. 1075 <ARRAY_TYPE>: Deal specially with a dereference from another array 1076 type with the same element type. 1077 10782017-11-09 Gary Dismukes <dismukes@adacore.com> 1079 1080 * exp_util.adb, freeze.adb: Minor reformatting. 1081 10822017-11-09 Jerome Lambourg <lambourg@adacore.com> 1083 1084 * gcc-interface/Makefile.in: Add rules to build aarch64-qnx runtimes. 1085 10862017-11-09 Hristian Kirtchev <kirtchev@adacore.com> 1087 1088 * gcc-interface/trans.c (gnat_to_gnu): Add processing for 1089 N_Variable_Reference_Marker nodes. 1090 10912017-11-09 Ed Schonberg <schonberg@adacore.com> 1092 1093 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Handle properly 1094 the pragma Compile_Time_Error when it appears in a generic package 1095 declaration and uses an expanded name to denote the current unit. 1096 10972017-11-09 Jerome Lambourg <lambourg@adacore.com> 1098 1099 * libgnarl/s-taprop__qnx.adb: Fix incorrect casing for pthread_self. 1100 * tracebak.c: Add support for tracebacks in QNX. 1101 11022017-11-09 Eric Botcazou <ebotcazou@adacore.com> 1103 1104 * exp_aggr.adb (Aggr_Size_OK): Bump base limit from 50000 to 500000. 1105 11062017-11-09 Yannick Moy <moy@adacore.com> 1107 1108 * erroutc.adb, set_targ.adb: Remove pragma Annotate for CodePeer 1109 justification. 1110 11112017-11-09 Joel Brobecker <brobecker@adacore.com> 1112 1113 * doc/gnat_ugn/platform_specific_information.rst: Document packages 1114 needed on GNU/Linux by GNAT. 1115 * gnat_ugn.texi: Regenerate. 1116 11172017-11-09 Hristian Kirtchev <kirtchev@adacore.com> 1118 1119 * contracts.adb (Analyze_Contracts): Remove the three parameter 1120 version. This routine now only analyzes contracts and does not perform 1121 any freezing actions. 1122 (Analyze_Previous_Contracts): Removed. 1123 (Freeze_Previous_Contracts): New routine. 1124 * contracts.ads (Analyze_Previous_Contracts): Removed. 1125 (Freeze_Previous_Contracts): New routine. 1126 * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an 1127 enclosing package spec regardless of whether the list denotes the 1128 visible or private declarations. Fix the removal of partial state 1129 refinements when the context is a package spec. 1130 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Freeze previous 1131 contracts. 1132 * sem_ch7.adb (Analyze_Package_Body_Helper): Freeze previous contracts. 1133 * sem_ch9.adb (Analyze_Entry_Body): Freeze previous contracts. 1134 (Analyze_Protected_Body): Freeze previous contracts. 1135 (Analyze_Task_Body): Freeze previous contracts. 1136 * sem_prag.adb: Comment reformatting. 1137 11382017-11-09 Bob Duff <duff@adacore.com> 1139 1140 * libgnarl/g-thread.ads, libgnarl/g-thread.adb: (Make_Independent): 1141 Export this so users can use it without importing 1142 System.Tasking.Utilities. 1143 * libgnarl/s-tassta.adb (Vulnerable_Complete_Task): Relax assertion 1144 that fails when Make_Independent is called on a user task. 1145 * libgnarl/s-taskin.ads (Master_Of_Task): Avoid unusual 1146 capitalization style ((style) bad casing of "Master_of_Task"). 1147 11482017-11-09 Ed Schonberg <schonberg@adacore.com> 1149 1150 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Correct use of 1151 uninitialized variable uncovered by Codepeer. 1152 11532017-11-09 Arnaud Charlet <charlet@adacore.com> 1154 1155 * namet.adb: Replace pragma Assume by pragma Assert to fix bootstrap. 1156 11572017-11-09 Javier Miranda <miranda@adacore.com> 1158 1159 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: 1160 (Static_Dispatch_Tables): Minor rewording. 1161 * gnat_rm.texi: Regenerate. 1162 11632017-11-09 Justin Squirek <squirek@adacore.com> 1164 1165 * sem_ch8.adb (Analyze_Use_Package): Remove forced installation of 1166 use_clauses within instances. 1167 (Use_One_Package): Add condition to check for "hidden" open scopes to 1168 avoid skipping over packages that have not been properly installed even 1169 though they are visible. 1170 11712017-11-09 Ed Schonberg <schonberg@adacore.com> 1172 1173 * sem_ch4.adb (Analyze_Selected_Component): Reject properly a call to a 1174 private operation of a protected type, when the type has no visible 1175 operations. 1176 11772017-11-09 Javier Miranda <miranda@adacore.com> 1178 1179 * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_HT_Link. 1180 * exp_disp.adb (Make_DT): Initialize the HT_Link field of the TSD only 1181 if available. 1182 11832017-11-09 Bob Duff <duff@adacore.com> 1184 1185 * exp_ch4.adb, exp_ch9.adb, exp_prag.adb, par-ch3.adb, sem_aggr.adb, 1186 sem_ch12.adb, sem_ch13.adb, sem_ch4.adb, sem_disp.adb, sem_prag.adb, 1187 sem_res.adb, sem_util.adb: Get rid of warnings about uninitialized 1188 variables. 1189 11902017-11-09 Yannick Moy <moy@adacore.com> 1191 1192 * exp_disp.adb (Make_DT): Default initialize Ifaces_List and 1193 Ifaces_Comp_List. 1194 11952017-11-09 Pascal Obry <obry@adacore.com> 1196 1197 * libgnarl/s-taprop__mingw.adb: On Windows, initialize the thead handle 1198 only for foreign threads. We initialize the thread handle only if not 1199 yet initialized. This happens in Enter_Task for foreign threads only. 1200 But for native threads (Ada tasking) we do want to keep the real 1201 handle (from Create_Task) to be able to free the corresponding 1202 resources in Finalize_TCB (CloseHandle). 1203 12042017-11-09 Yannick Moy <moy@adacore.com> 1205 1206 * sem_attr.adb (Analyze_Attribute): Default initialize P_Type, 1207 P_Base_Type. 1208 (Error_Attr_P): Fix name in pragma No_Return. 1209 (Unexpected_Argument): Add pragma No_Return. 1210 (Placement_Error): Add pragma No_Return. 1211 12122017-11-09 Javier Miranda <miranda@adacore.com> 1213 1214 * exp_disp.adb (Elab_Flag_Needed): Elaboration flag not needed when the 1215 dispatch table is statically built. 1216 (Make_DT): Declare constant the Interface_Table object associated with 1217 an statically built dispatch table. For this purpose the Offset_To_Top 1218 value of each interface is computed using the dummy object. 1219 * exp_ch3.adb (Build_Init_Procedure): Do not generate code initializing 1220 the Offset_To_Top field of secondary dispatch tables when the dispatch 1221 table is statically built. 1222 (Initialize_Tag): Do not generate calls to Register_Interface_Offset 1223 when the dispatch table is statically built. 1224 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: 1225 Document the new GNAT restriction Static_Dispatch_Tables. 1226 * gnat_rm.texi: Regenerate. 1227 12282017-11-09 Hristian Kirtchev <kirtchev@adacore.com> 1229 1230 * sem_aggr.adb (Resolve_Delta_Record_Aggregate): Reorder declarations 1231 to avoid a dormant bug. 1232 12332017-11-09 Jerome Lambourg <lambourg@adacore.com> 1234 1235 * init.c: Define missing __gnat_alternate_stack for QNX. Set it to 0, 1236 as such capability is not available on the OS. 1237 * link.c: Make sure linker options for QNX are correct. 1238 * libgnarl/s-osinte__qnx.ads: Add some missing bindings to pthread. 1239 * libgnarl/s-taprop__qnx.adb: New, derived from s-taprop__posix.adb. This brings 1240 in particular a workaround with locks priority ceiling where a higher 1241 priority task is allowed to lock a lower ceiling priority lock. This 1242 also fixes the scheduling of FIFO tasks when the priority of a task is 1243 lowered. 1244 * libgnat/system-qnx-aarch64.ads: Fix priority ranges. 1245 12462017-11-09 Yannick Moy <moy@adacore.com> 1247 1248 * erroutc.adb (Output_Error_Msgs): Justify CodePeer false positive 1249 message. 1250 * gnatbind.adb (Scan_Bind_Arg): Simplify test to remove always true 1251 condition. 1252 * namet.adb (Copy_One_Character): Add assumption for static analysis, 1253 as knowledge that Hex(2) is in the range 0..255 is too complex for 1254 CodePeer. 1255 (Finalize): Add assumption for static analysis, as the fact that there 1256 are symbols in the table depends on a global invariant at this point in 1257 the program. 1258 * set_targ.adb (Check_Spaces): Justify CodePeer false positive message. 1259 * stylesw.adb (Save_Style_Check_Options): Rewrite to avoid test always 1260 true. 1261 12622017-11-09 Javier Miranda <miranda@adacore.com> 1263 1264 * libgnat/s-rident.ads (Static_Dispatch_Tables): New restriction name. 1265 * exp_disp.adb (Building_Static_DT): Check restriction. 1266 (Building_Static_Secondary_DT): Check restriction. 1267 (Make_DT): Initialize the HT_Link to No_Tag. 1268 * opt.ads (Static_Dispatch_Tables): Rename flag... 1269 (Building_Static_Dispatch_Tables): ... into this. This will avoid 1270 conflict with the restriction name. 1271 * gnat1drv.adb: Update. 1272 * exp_aggr.adb (Is_Static_Dispatch_Table_Aggregate): Update. 1273 * exp_ch3.adb (Expand_N_Object_Declaration): Update. 1274 12752017-11-09 Pascal Obry <obry@adacore.com> 1276 1277 * libgnarl/s-taprop__mingw.adb: Minor code clean-up. Better using a 1278 named number. 1279 12802017-11-09 Yannick Moy <moy@adacore.com> 1281 1282 * binde.adb (Diagnose_Elaboration_Problem): Mark procedure No_Return. 1283 * checks.adb (Apply_Scalar_Range_Check): Rescope variable OK closer to 1284 use. Default initialize Hi, Lo. 1285 (Selected_Range_Checks): Retype Num_Checks more precisely. 1286 (Determine_Range, Determine_Range_R): Default initialize Hi_Right, 1287 Lo_Right. 1288 * contracts.adb (Process_Contract_Cases): Mark parameter Stmts as 1289 Unmodified. 1290 (Process_Postconditions): Mark parameter Stmts as Unmodified. 1291 * exp_attr.adb (Expand_Loop_Entry_Attribute): Default initialize Blk. 1292 * exp_ch4.adb (Expand_N_Allocator): Default initialize Typ. 1293 (Expand_Concatenate): Default initialize High_Bound. 1294 (Optimize_Length_Comparison): Default initialize Ent, Index. 1295 * exp_ch5.adb (Expand_Predicated_Loop): Default initialize L_Hi and 1296 L_Lo. 1297 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Default initialize 1298 Return_Stmt. 1299 * exp_ch9.adb (Expand_Entry_Barrier): Default initialize Func_Body and 1300 remove pragma Warnings(Off). 1301 * exp_imgv.adb (Expand_Image_Attribute): Default initialize Tent. 1302 * exp_util.adb (Find_Interface_Tag): Default initialize AI_Tag. 1303 * freeze.adb (Check_Component_Storage_Order): Default initialize 1304 Comp_Byte_Aligned rather than silencing messages with pragma 1305 Warnings(Off), which does not work for CodePeer initialization 1306 messages, and given that here the possible read of an unitialized value 1307 depends on a proper use of parameters by the caller. 1308 * inline.adb (Expand_Inlined_Call): Default initialize Lab_Decl, Targ. 1309 * sem_ch12.adb (Build_Operator_Wrapper): Default initialize Expr. 1310 * sem_ch3.adb (Build_Derived_Array_Type): Default initialize 1311 Implicit_Base. 1312 * sem_ch4.adb (List_Operand_Interps): Default initialize Nam and remove 1313 pragma Warnings(Off). 1314 (Analyze_Case_Expression): Rescope checking block within branch where 1315 Others_Present is set by the call to Check_Choices. 1316 * sem_ch5.adb (Analyze_Assignment): Default initialize 1317 Save_Full_Analysis. 1318 * sem_ch6.adb (Analyze_Function_Return): Default initialize Obj_Decl, 1319 and restructure code to defend against previous errors, so that, in 1320 that case, control does not flow to the elsif condition which read an 1321 uninitialized Obj_Decl. 1322 * sem_ch9.adb (Analyze_Requeue): Default initialize Synch_Type. 1323 (Check_Interfaces): Default initialize Full_T_Ifaces and Priv_T_Ifaces, 1324 which seem to be left uninitialized and possibly read in some cases. 1325 * sem_dim.adb (Analyze_Aspect_Dimension_System): Retype Position more 1326 precisely. This requires to exchange the test for exiting in case of 1327 too many positions and the increment to Position, inside the loop. 1328 * sem_eval.adb (Eval_Concatenation): Default initialize Folded_Val, 1329 which cannot be read uninitialized, but the reasons for that are quite 1330 subtle. 1331 * sem_intr.adb (Check_Intrinsic_Call): Default initialize Rtyp. 1332 * sem_prag.adb (Collect_Subprogram_Inputs_Outputs): Default initialize 1333 Spec_Id. 1334 * sem_res.adb (Make_Call_Into_Operator): Default initialize Opnd_Type, 1335 and test for presence of non-null Opnd_Type before testing its scope, 1336 in a test which would read its value uninitialized, and is very rarely 1337 exercized (it depends on the presence of an extension of System). 1338 * sem_spark.ads: Update comment to fix name of main analysis procedure. 1339 * sem_warn.adb (Warn_On_Known_Condition): Default initialize 1340 Test_Result. 1341 * set_targ.adb (FailN): Mark procedure with No_Return. 1342 * stylesw.adb (Save_Style_Check_Options): Delete useless code to 1343 initialize all array Options to white space, as there is already code 1344 doing the same for the remaining positions in Options at the end of the 1345 procedure. 1346 13472017-11-09 Eric Botcazou <ebotcazou@adacore.com> 1348 1349 * exp_ch11.adb (Possible_Local_Raise): Do not issue the warning for 1350 generic instantiations either. 1351 13522017-11-09 Piotr Trojanek <trojanek@adacore.com> 1353 1354 * sem_prag.adb (Analyze_Part_Of): Reword error message. 1355 (Get_SPARK_Mode_Type): Do not raise Program_Error in case pragma 1356 SPARK_Mode appears with an illegal mode, treat this as a non-existent 1357 mode. 1358 13592017-11-09 Ed Schonberg <schonberg@adacore.com> 1360 1361 * sem_ch4.adb (Analyze_Call): Reject a call to a function that returns 1362 a limited view of a type T declared in unit U1, when the function is 1363 declared in another unit U2 and the call appears in a procedure within 1364 another unit. 1365 13662017-11-09 Justin Squirek <squirek@adacore.com> 1367 1368 * sem_ch8.adb (Analyze_Use_Package): Force installation of use_clauses 1369 when processing generic instances. 1370 13712017-11-09 Bob Duff <duff@adacore.com> 1372 1373 * namet.ads, namet.adb (Valid_Name_Id): New subtype that excludes 1374 Error_Name and No_Name. Use this (versus Name_Id) to indicate which 1375 objects can have those special values. Valid_Name_Id could usefully be 1376 used all over the compiler front end, but that's too much trouble for 1377 now. If we did that, we might want to rename: 1378 Name_Id --> Optional_Name_Id, Valid_Name_Id --> Name_Id. 1379 For parameters of type Valid_Name_Id, remove some redundant tests, 1380 including the ones found by CodePeer. Use Is_Valid_Name instead of 1381 membership test when appropriate. 1382 (Error_Name_Or_No_Name): Delete this; it's no longer needed. 1383 * sem_ch2.adb (Analyze_Identifier): Use "not Is_Valid_Name" instead of 1384 "in Error_Name_Or_No_Name". 1385 (Check_Parameterless_Call): Use "not Is_Valid_Name" instead of "in 1386 Error_Name_Or_No_Name". 1387 13882017-11-09 Arnaud Charlet <charlet@adacore.com> 1389 1390 * gnat1drv.adb (Adjust_Global_Switches): Suppress warnings in codepeer 1391 mode here unless -gnateC is specified. 1392 * switch-c.adb (Scan_Front_End_Switches): Do not suppress warnings with 1393 -gnatC here. 1394 13952017-11-09 Piotr Trojanek <trojanek@adacore.com> 1396 1397 * lib-writ.adb (Write_ALI): Remove processing of the frontend xrefs as 1398 part of the ALI writing; they are now processed directly from memory 1399 when requested by the backend. 1400 * lib-xref.ads (Collect_SPARK_Xrefs): Remove. 1401 (Iterate_SPARK_Xrefs): New routine for iterating over frontend xrefs. 1402 * lib-xref-spark_specific.adb (Traverse_Compilation_Unit): Remove. 1403 (Add_SPARK_File): Remove. 1404 (Add_SPARK_Xref): Refactored from removed code; filters xref entries 1405 that are trivially uninteresting to the SPARK backend. 1406 * spark_xrefs.ads: Remove code that is no longer needed. 1407 * spark_xrefs.adb (dspark): Adapt to use Iterate_SPARK_Xrefs. 1408 14092017-11-09 Hristian Kirtchev <kirtchev@adacore.com> 1410 1411 * sem_elab.adb: Update the documentation on adding a new elaboration 1412 schenario. Add new hash table Recorded_Top_Level_Scenarios. 1413 (Is_Check_Emitting_Scenario): Removed. 1414 (Is_Recorded_Top_Level_Scenario): New routine. 1415 (Kill_Elaboration_Scenario): Reimplemented. 1416 (Record_Elaboration_Scenario): Mark the scenario as recorded. 1417 (Set_Is_Recorded_Top_Level_Scenario): New routine. 1418 (Update_Elaboration_Scenario): Reimplemented. 1419 * sinfo.adb (Is_Recorded_Scenario): Removed. 1420 (Set_Is_Recorded_Scenario): Removed. 1421 * sinfo.ads: Remove attribute Is_Recorded_Scenario along with 1422 occurrences in nodes. 1423 (Is_Recorded_Scenario): Removed along with pragma Inline. 1424 (Set_Is_Recorded_Scenario): Removed along with pragma Inline. 1425 14262017-11-09 Piotr Trojanek <trojanek@adacore.com> 1427 1428 * sem_prag.adb (Analyze_Part_Of): Change "designate" to "denote" in 1429 error message. 1430 14312017-11-09 Justin Squirek <squirek@adacore.com> 1432 1433 * sem_res.adb (Resolve_Allocator): Add warning messages corresponding 1434 to the allocation of an anonymous access-to-controlled object. 1435 14362017-11-09 Jerome Lambourg <lambourg@adacore.com> 1437 1438 * sigtramp-qnx.c: Fix obvious typo. 1439 14402017-11-09 Doug Rupp <rupp@adacore.com> 1441 1442 * libgnarl/s-taprop__linux.adb (Monotonic_Clock): Minor reformatting. 1443 14442017-11-09 Ed Schonberg <schonberg@adacore.com> 1445 1446 * sem_res.adb (Resolve): If expression is an entity whose type has 1447 implicit dereference, generate reference to it, because no reference is 1448 generated for an overloaded entity during analysis, given that its 1449 identity may not be known. 1450 14512017-11-09 Javier Miranda <miranda@adacore.com> 1452 1453 * exp_disp.adb (Expand_Interface_Thunk): Replace substraction of 1454 offset-to-top field by addition. 1455 (Make_Secondary_DT): Initialize the offset-to-top field with a negative 1456 offset. 1457 * exp_ch3.adb (Build_Offset_To_Top_Function): Build functions that 1458 return a negative offset-to-top value. 1459 (Initialize_Tag): Invoke runtime services Set_Dynamic_Offset_To_Top and 1460 Set_Static_Offset_To_Top passing a negative offet-to-top value; 1461 initialize also the offset-to-top field with a negative offset. 1462 * libgnat/a-tags.adb (Base_Address): Displace the pointer by means of 1463 an addition since the offset-to-top field is now a negative value. 1464 (Displace): Displace the pointer to the object means of a substraction 1465 since it is now a negative value. 1466 (Set_Dynamic_Offset_to_top): Displace the pointer to the object by 1467 means of a substraction since it is now a negative value. 1468 14692017-11-09 Eric Botcazou <ebotcazou@adacore.com> 1470 1471 * gnat1drv.adb (Gnat1drv): Call Errout.Finalize (Last_Call => True) 1472 before Errout.Output_Messages also in the case of compilation errors. 1473 14742017-11-09 Javier Miranda <miranda@adacore.com> 1475 1476 * doc/gnat_ugn/the_gnat_compilation_model.rst (Interfacing with C++ at 1477 the Class Level): Fix error interfacing with C strings. 1478 * gnat_ugn.texi: Regenerate. 1479 14802017-11-09 Jerome Lambourg <lambourg@adacore.com> 1481 1482 * system-qnx-aarch64.ads: Fix the priority constants. 1483 * s-osinte__qnx.ads: Fix constants for handling the locking protocols 1484 and scheduling. 1485 * s-osinte__qnx.adb: New file , prevents the use of priority 0 that 1486 corresponds to an idle priority on QNX. 1487 14882017-11-09 Piotr Trojanek <trojanek@adacore.com> 1489 1490 * sem_prag.adb, sem_util.adb, sem_elab.adb: Fix minor typos in 1491 comments. 1492 14932017-11-09 Piotr Trojanek <trojanek@adacore.com> 1494 1495 * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Ignore loop parameters 1496 in expression funtions that are expanded into variables. 1497 14982017-11-09 Piotr Trojanek <trojanek@adacore.com> 1499 1500 * sem_util.adb: Minor whitespace cleanup. 1501 15022017-11-09 Jerome Lambourg <lambourg@adacore.com> 1503 1504 * libgnarl/s-taprop__qnx.adb: Refine aarch64-qnx. Use the POSIX 1505 s-taprop version rather than a custom one. 1506 * sigtramp-qnx.c (aarch64-qnx): Implement the signal trampoline. 1507 15082017-11-08 Piotr Trojanek <trojanek@adacore.com> 1509 1510 * lib-xref.ads, lib-xref-spark_specific.adb 1511 (Traverse_Compilation_Unit): Move declaration to package body. 1512 15132017-11-08 Hristian Kirtchev <kirtchev@adacore.com> 1514 1515 * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): Obtain 1516 the type of the renaming from its defining entity, rather then the 1517 subtype mark as there may not be a subtype mark. 1518 15192017-11-08 Jerome Lambourg <lambourg@adacore.com> 1520 1521 * adaint.c, s-oscons-tmplt.c, init.c, libgnat/system-qnx-aarch64.ads, 1522 libgnarl/a-intnam__qnx.ads, libgnarl/s-intman__qnx.adb, 1523 libgnarl/s-osinte__qnx.ads, libgnarl/s-qnx.ads, 1524 libgnarl/s-taprop__qnx.adb, s-oscons-tmplt.c, sigtramp-qnx.c, 1525 terminals.c: Initial port of GNAT for aarch64-qnx 1526 15272017-11-08 Elisa Barboni <barboni@adacore.com> 1528 1529 * exp_util.adb (Find_DIC_Type): Move... 1530 * sem_util.ads, sem_util.adb (Find_DIC_Type): ... here. 1531 15322017-11-08 Justin Squirek <squirek@adacore.com> 1533 1534 * sem_res.adb (Resolve_Allocator): Add info messages corresponding to 1535 the owner and corresponding coextension. 1536 15372017-11-08 Ed Schonberg <schonberg@adacore.com> 1538 1539 * sem_aggr.adb (Resolve_Delta_Aggregate): Divide into the 1540 following separate procedures. 1541 (Resolve_Delta_Array_Aggregate): Previous code form 1542 Resolve_Delta_Aggregate. 1543 (Resolve_Delta_Record_Aggregate): Extend previous code to cover latest 1544 ARG decisions on the legality rules for delta aggregates for records: 1545 in the case of a variant record, components from different variants 1546 cannot be specified in the delta aggregate, and this must be checked 1547 statically. 1548 15492017-11-08 Piotr Trojanek <trojanek@adacore.com> 1550 1551 * spark_xrefs.ads (SPARK_Scope_Record): Remove File_Num component. 1552 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of 1553 removed component. 1554 15552017-11-08 Gary Dismukes <dismukes@adacore.com> 1556 1557 * sem_ch4.adb: Minor typo fix. 1558 15592017-11-08 Piotr Trojanek <trojanek@adacore.com> 1560 1561 * spark_xrefs.ads (SPARK_Scope_Record): Remove Spec_File_Num and 1562 Spec_Scope_Num components. 1563 * spark_xrefs.adb (dspark): Skip pretty-printing to removed components. 1564 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Skip initialization of 1565 removed components. 1566 (Collect_SPARK_Xrefs): Skip setting proper values of removed 1567 components. 1568 15692017-11-08 Gary Dismukes <dismukes@adacore.com> 1570 1571 * exp_ch4.adb (Expand_N_Type_Conversion): Add test that the selector 1572 name is a discriminant in check for unconditional accessibility 1573 violation within instances. 1574 15752017-11-08 Piotr Trojanek <trojanek@adacore.com> 1576 1577 * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove special-case 1578 for constants (with variable input). 1579 (Is_Constant_Object_Without_Variable_Input): Remove. 1580 15812017-11-08 Hristian Kirtchev <kirtchev@adacore.com> 1582 1583 * exp_ch9.adb, sem_disp.adb, sem_util.adb: Minor reformatting. 1584 15852017-11-08 Piotr Trojanek <trojanek@adacore.com> 1586 1587 * spark_xrefs.ads (Rtype): Remove special-casing of constants for SPARK 1588 cross-references. 1589 (dspark): Remove hardcoded table bound. 1590 15912017-11-08 Ed Schonberg <schonberg@adacore.com> 1592 1593 * sem_ch4.adb (Analyze_Aggregate): For Ada2020 delta aggregates, use 1594 the type of the base of the construct to determine the type (or 1595 candidate interpretations) of the delta aggregate. This allows the 1596 construct to appear in a context that expects a private extension. 1597 * sem_res.adb (Resolve): Handle properly a delta aggregate with an 1598 overloaded base. 1599 16002017-11-08 Piotr Trojanek <trojanek@adacore.com> 1601 1602 * spark_xrefs.ads (SPARK_Xref_Record): Replace file and scope indices 1603 with Entity_Id of the reference. 1604 * spark_xrefs.adb (dspark): Adapt pretty-printing routine. 1605 * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Store Entity_Id of the 1606 reference, not the file and scope indices. 1607 16082017-11-08 Arnaud Charlet <charlet@adacore.com> 1609 1610 * errout.ads (Current_Node): New. 1611 * errout.adb (Error_Msg): Use Current_Node. 1612 * par-ch6.adb, par-ch7.adb, par-ch9.adb, par-util.adb: Set Current_Node 1613 when relevant. 1614 * style.adb: Call Error_Msg_N when possible. 1615 16162017-11-08 Piotr Trojanek <trojanek@adacore.com> 1617 1618 * spark_xrefs.ads (SPARK_Scope_Record): Rename Scope_Id component to 1619 Entity. 1620 * lib-xref-spark_specific.adb, spark_xrefs.adb: Propagate renaming of 1621 the Scope_Id record component. 1622 16232017-11-08 Piotr Trojanek <trojanek@adacore.com> 1624 1625 * spark_xrefs.ads (SPARK_File_Record): Remove string components. 1626 * spark_xrefs.adb (dspark): Remove pretty-printing of removed 1627 SPARK_File_Record components. 1628 * lib-xref-spark_specific.adb (Add_SPARK_File): Do not store string 1629 representation of files/units. 1630 16312017-11-08 Piotr Trojanek <trojanek@adacore.com> 1632 1633 * lib-xref.ads, lib-xref-spark_specific.adb (Traverse_Declarations): 1634 Remove Inside_Stubs parameter. 1635 16362017-11-08 Piotr Trojanek <trojanek@adacore.com> 1637 1638 * spark_xrefs.ads (SPARK_Xref_Record): Referenced object is now 1639 represented by Entity_Id. 1640 (SPARK_Scope_Record): Referenced scope (e.g. subprogram) is now 1641 represented by Entity_Id; this information is not repeated as 1642 Scope_Entity. 1643 (Heap): Moved from lib-xref-spark_specific.adb, to reside next to 1644 Name_Of_Heap_Variable. 1645 * spark_xrefs.adb (dspark): Adapt debug routine to above changes in 1646 data types. 1647 * lib-xref-spark_specific.adb: Adapt routines for populating SPARK 1648 scope and xrefs tables to above changes in data types. 1649 16502017-11-08 Justin Squirek <squirek@adacore.com> 1651 1652 * sem_ch8.adb (Mark_Use_Clauses): Add condition to always mark the 1653 primitives of generic actuals. 1654 (Mark_Use_Type): Add recursive call to properly mark class-wide type's 1655 base type clauses as per ARM 8.4 (8.2/3). 1656 16572017-11-08 Ed Schonberg <schonberg@adacore.com> 1658 1659 * sem_ch6.adb (Analyze_Generic_Subprobram_Body): Validate 1660 categorization dependency of the body, as is done for non-generic 1661 units. 1662 (New_Overloaded_Entity, Visible_Part_Type): Remove linear search 1663 through declarations (Simple optimization, no behavior change). 1664 16652017-11-08 Piotr Trojanek <trojanek@adacore.com> 1666 1667 * spark_xrefs.ads (SPARK_Xref_Record): Remove inessential components. 1668 (SPARK_Scope_Record): Remove inessential components. 1669 * spark_xrefs.adb (dspark): Remove pretty-printing of removed record 1670 components. 1671 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove setting of 1672 removed record components. 1673 (Add_SPARK_Xrefs): Remove setting of removed record components. 1674 16752017-11-08 Piotr Trojanek <trojanek@adacore.com> 1676 1677 * lib-xref-spark_specific.adb (Add_SPARK_Xrefs): Remove dead check for 1678 empty entities. 1679 16802017-11-08 Javier Miranda <miranda@adacore.com> 1681 1682 * sem_disp.adb (Is_Inherited_Public_Operation): Extend the 1683 functionality of this routine to handle multiple levels of derivations. 1684 16852017-11-08 Hristian Kirtchev <kirtchev@adacore.com> 1686 1687 * einfo.adb: Elist36 is now used as Nested_Scenarios. 1688 (Nested_Scenarios): New routine. 1689 (Set_Nested_Scenarios): New routine. 1690 (Write_Field36_Name): New routine. 1691 * einfo.ads: Add new attribute Nested_Scenarios along with occurrences 1692 in entities. 1693 (Nested_Scenarios): New routine along with pragma Inline. 1694 (Set_Nested_Scenarios): New routine along with pragma Inline. 1695 * sem_elab.adb (Find_And_Process_Nested_Scenarios): New routine. 1696 (Process_Nested_Scenarios): New routine. 1697 (Traverse_Body): When a subprogram body is traversed for the first 1698 time, find, save, and process all suitable scenarios found within. 1699 Subsequent traversals of the same subprogram body utilize the saved 1700 scenarios. 1701 17022017-11-08 Piotr Trojanek <trojanek@adacore.com> 1703 1704 * lib-xref-spark_specific.adb (Add_SPARK_Scope): Remove detection of 1705 protected operations. 1706 (Add_SPARK_Xrefs): Simplify detection of empty entities. 1707 * get_spark_xrefs.ads, get_spark_xrefs.adb, put_spark_xrefs.ads, 1708 put_spark_xrefs.adb, spark_xrefs_test.adb: Remove code for writing, 1709 reading and testing SPARK cross-references stored in the ALI files. 1710 * lib-xref.ads (Output_SPARK_Xrefs): Remove. 1711 * lib-writ.adb (Write_ALI): Do not write SPARK cross-references to the 1712 ALI file. 1713 * spark_xrefs.ads, spark_xrefs.adb (pspark): Remove, together 1714 with description of the SPARK xrefs ALI format. 1715 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Remove get_spark_refs.o 1716 and put_spark_refs.o. 1717 17182017-11-08 Hristian Kirtchev <kirtchev@adacore.com> 1719 1720 * exp_ch4.adb (Apply_Accessibility_Check): Do not finalize the object 1721 when the associated access type is subject to pragma 1722 No_Heap_Finalization. 1723 * exp_intr.adb (Expand_Unc_Deallocation): Use the available view of the 1724 designated type in case it comes from a limited withed unit. 1725 17262017-11-08 Hristian Kirtchev <kirtchev@adacore.com> 1727 1728 * exp_ch3.adb (Expand_N_Object_Declaration): Save and restore relevant 1729 SPARK-related flags. Add ??? comment. 1730 * exp_util.adb (Insert_Actions): Add an entry for node 1731 N_Variable_Reference_Marker. 1732 * sem.adb (Analyze): Add an entry for node N_Variable_Reference_Marker. 1733 * sem_ch8.adb (Find_Direct_Name): Add constant Is_Assignment_LHS. Build 1734 and record a variable reference marker for the current name. 1735 (Find_Expanded_Name): Add constant Is_Assignment_LHS. Build and record 1736 a variable reference marker for the current name. 1737 * sem_elab.adb (Build_Variable_Reference_Marker): New routine. 1738 (Extract_Variable_Reference_Attributes): Reimplemented. 1739 (Info_Scenario): Add output for variable references and remove output 1740 for variable reads. 1741 (Info_Variable_Read): Removed. 1742 (Info_Variable_Reference): New routine. 1743 (Is_Suitable_Scenario): Variable references are now suitable scenarios 1744 while variable reads are not. 1745 (Output_Active_Scenarios): Add output for variable references and 1746 remove output for variable reads. 1747 (Output_Variable_Read): Removed. 1748 (Output_Variable_Reference): New routine. 1749 (Process_Variable_Read): Removed. 1750 (Process_Variable_Reference): New routine. 1751 (Process_Variable_Reference_Read): New routine. 1752 * sem_elab.ads (Build_Variable_Reference_Marker): New routine. 1753 * sem_res.adb (Resolve_Actuals): Build and record a variable reference 1754 marker for the current actual. 1755 * sem_spark.adb (Check_Node): Add an entry for node 1756 N_Variable_Reference_Marker. 1757 * sem_util.adb (Within_Subprogram_Call): Moved to the library level. 1758 * sem_util.ads (Within_Subprogram_Call): Moved to the library level. 1759 * sinfo.adb (Is_Read): New routine. 1760 (Is_Write): New routine. 1761 (Target): Updated to handle variable reference markers. 1762 (Set_Is_Read): New routine. 1763 (Set_Is_Write): New routine. 1764 (Set_Target): Updated to handle variable reference markers. 1765 * sinfo.ads: Add new attributes Is_Read and Is_Write along with 1766 occurrences in nodes. Update attribute Target. Add new node 1767 kind N_Variable_Reference_Marker. 1768 (Is_Read): New routine along with pragma Inline. 1769 (Is_Write): New routine along with pragma Inline. 1770 (Set_Is_Read): New routine along with pragma Inline. 1771 (Set_Is_Write): New routine along with pragma Inline. 1772 * sprint.adb (Sprint_Node_Actual): Add an entry for node 1773 N_Variable_Reference_Marker. 1774 17752017-11-08 Arnaud Charlet <charlet@adacore.com> 1776 1777 * sem_util.adb (Subprogram_Name): Append suffix for overloaded 1778 subprograms. 1779 17802017-11-08 Yannick Moy <moy@adacore.com> 1781 1782 * sem_ch8.adb (Use_One_Type, Update_Use_Clause_Chain): Do not report 1783 about unused use-type or use-package clauses inside inlined bodies. 1784 17852017-11-08 Hristian Kirtchev <kirtchev@adacore.com> 1786 1787 * sem_elab.adb (Ensure_Prior_Elaboration): Add new parameter 1788 In_Partial_Fin along with a comment on its usage. Do not guarantee the 1789 prior elaboration of a unit when the need came from a partial 1790 finalization context. 1791 (In_Initialization_Context): Relocated to Process_Call. 1792 (Is_Partial_Finalization_Proc): New routine. 1793 (Process_Access): Add new parameter In_Partial_Fin along with a comment 1794 on its usage. 1795 (Process_Activation_Call): Add new parameter In_Partial_Fin along with 1796 a comment on its usage. 1797 (Process_Activation_Conditional_ABE_Impl): Add new parameter 1798 In_Partial_Fin along with a comment on its usage. Do not emit any ABE 1799 diagnostics when the activation occurs in a partial finalization 1800 context. 1801 (Process_Activation_Guaranteed_ABE_Impl): Add new parameter 1802 In_Partial_Fin along with a comment on its usage. 1803 (Process_Call): Add new parameter In_Partial_Fin along with a comment 1804 on its usage. A call is within a partial finalization context when it 1805 targets a finalizer or primitive [Deep_]Finalize, and the call appears 1806 in initialization actions. Pass this information down to the recursive 1807 steps of the Processing phase. 1808 (Process_Call_Ada): Add new parameter In_Partial_Fin along with a 1809 comment on its usage. Remove the guard which suppresses the generation 1810 of implicit Elaborate[_All] pragmas. This is now done in 1811 Ensure_Prior_Elaboration. 1812 (Process_Call_Conditional_ABE): Add new parameter In_Partial_Fin along 1813 with a comment on its usage. Do not emit any ABE diagnostics when the 1814 call occurs in a partial finalization context. 1815 (Process_Call_SPARK): Add new parameter In_Partial_Fin along with a 1816 comment on its usage. 1817 (Process_Instantiation): Add new parameter In_Partial_Fin along with a 1818 comment on its usage. 1819 (Process_Instantiation_Ada): Add new parameter In_Partial_Fin along 1820 with a comment on its usage. 1821 (Process_Instantiation_Conditional_ABE): Add new parameter 1822 In_Partial_Fin along with a comment on its usage. Do not emit any ABE 1823 diagnostics when the instantiation occurs in a partial finalization 1824 context. 1825 (Process_Instantiation_SPARK): Add new parameter In_Partial_Fin along 1826 with a comment on its usage. 1827 (Process_Scenario): Add new parameter In_Partial_Fin along with a 1828 comment on its usage. 1829 (Process_Single_Activation): Add new parameter In_Partial_Fin along 1830 with a comment on its usage. 1831 (Traverse_Body): Add new parameter In_Partial_Fin along with a comment 1832 on its usage. 1833 18342017-11-08 Arnaud Charlet <charlet@adacore.com> 1835 1836 * sem_ch13.adb: Add optional parameter to Error_Msg. 1837 18382017-11-08 Jerome Lambourg <lambourg@adacore.com> 1839 1840 * fname.adb (Is_Internal_File_Name): Do not check the 8+3 naming schema 1841 for the Interfaces.* hierarchy as longer unit names are now allowed. 1842 18432017-11-08 Arnaud Charlet <charlet@adacore.com> 1844 1845 * sem_util.adb (Subprogram_Name): Emit sloc for the enclosing 1846 subprogram as well. Support more cases of entities. 1847 (Append_Entity_Name): Add some defensive code. 1848 18492017-11-06 Eric Botcazou <ebotcazou@adacore.com> 1850 1851 * gcc-interface/misc.c (gnat_post_options): Clear warn_return_type. 1852 18532017-10-31 Eric Botcazou <ebotcazou@adacore.com> 1854 1855 PR ada/82785 1856 * gcc-interface/Makefile.in (m68k/Linux): Fix typo. 1857 18582017-10-21 Eric Botcazou <ebotcazou@adacore.com> 1859 1860 * gcc-interface/Makefile.in: Remove bogus settings for VxWorks. 1861 18622017-10-21 Eric Botcazou <ebotcazou@adacore.com> 1863 1864 * gcc-interface/utils.c (pad_type_hash): Use hashval_t for hash value. 1865 (convert): Do not use an unchecked conversion for converting from a 1866 type to another type padding it. 1867 18682017-10-20 Doug Rupp <rupp@adacore.com> 1869 1870 * libgnarl/s-osinte__linux.ads (Relative_Timed_Wait): Add variable 1871 needed for using monotonic clock. 1872 * libgnarl/s-taprop__linux.adb: Revert previous monotonic clock 1873 changes. 1874 * libgnarl/s-taprop__linux.adb, s-taprop__posix.adb: Unify and factor 1875 out monotonic clock related functions body. 1876 (Timed_Sleep, Timed_Delay, Montonic_Clock, RT_Resolution, 1877 Compute_Deadline): Move to... 1878 * libgnarl/s-tpopmo.adb: ... here. New separate package body. 1879 18802017-10-20 Ed Schonberg <schonberg@adacore.com> 1881 1882 * sem_util.adb (Is_Controlling_Limited_Procedure): Handle properly the 1883 case where the controlling formal is an anonymous access to interface 1884 type. 1885 * exp_ch9.adb (Extract_Dispatching_Call): If controlling actual is an 1886 access type, handle properly the the constructed dereference that 1887 designates the object used in the rewritten synchronized call. 1888 (Parameter_Block_Pack): If the type of the actual is by-copy, its 1889 generated declaration in the parameter block does not need an 1890 initialization even if the type is a null-excluding access type, 1891 because it will be initialized with the value of the actual later on. 1892 (Parameter_Block_Pack): Do not add controlling actual to parameter 1893 block when its type is by-copy. 1894 18952017-10-20 Justin Squirek <squirek@adacore.com> 1896 1897 * sem_ch8.adb (Update_Use_Clause_Chain): Add sanity check to verify 1898 scope stack traversal into the context clause. 1899 19002017-10-20 Bob Duff <duff@adacore.com> 1901 1902 * sinfo.ads: Fix a comment typo. 1903 19042017-10-20 Eric Botcazou <ebotcazou@adacore.com> 1905 1906 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-flto): Add 1907 warning against usage in conjunction with -gnatn. 1908 (-fdump-xref): Delete entry. 1909 * doc/gnat_ugn/gnat_utility_programs.rst (--ext): Remove mention of 1910 -fdump-xref switch. 1911 * gnat_ugn.texi: Regenerate. 1912 19132017-10-20 Hristian Kirtchev <kirtchev@adacore.com> 1914 1915 * sem_type.adb, exp_util.adb, sem_util.adb, sem_dim.adb, sem_elab.adb: 1916 Minor reformatting. 1917 19182017-10-20 Yannick Moy <moy@adacore.com> 1919 1920 * sem_dim.adb (Analyze_Dimension_Binary_Op): Accept with a warning to 1921 compare a dimensioned expression with a literal. 1922 (Dim_Warning_For_Numeric_Literal): Do not issue a warning for the 1923 special value zero. 1924 * doc/gnat_ugn/gnat_and_program_execution.rst: Update description of 1925 dimensionality system in GNAT. 1926 * gnat_ugn.texi: Regenerate. 1927 19282017-10-20 Yannick Moy <moy@adacore.com> 1929 1930 * sem_ch6.adb (Analyze_Expression_Function.Freeze_Expr_Types): Remove 1931 inadequate silencing of errors. 1932 * sem_util.adb (Check_Part_Of_Reference): Do not issue an error when 1933 checking the subprogram body generated from an expression function, 1934 when this is done as part of the preanalysis done on expression 1935 functions, as the subprogram body may not yet be attached in the AST. 1936 The error if any will be issued later during the analysis of the body. 1937 (Is_Aliased_View): Trivial rewrite with Is_Formal_Object. 1938 19392017-10-20 Arnaud Charlet <charlet@adacore.com> 1940 1941 * sem_ch8.adb (Update_Chain_In_Scope): Add missing [-gnatwu] marker for 1942 warning on ineffective use clause. 1943 19442017-10-20 Eric Botcazou <ebotcazou@adacore.com> 1945 1946 * exp_ch11.ads (Warn_If_No_Local_Raise): Declare. 1947 * exp_ch11.adb (Expand_Exception_Handlers): Use Warn_If_No_Local_Raise 1948 to issue the warning on the absence of local raise. 1949 (Possible_Local_Raise): Do not issue the warning for Call_Markers. 1950 (Warn_If_No_Local_Raise): New procedure to issue the warning on the 1951 absence of local raise. 1952 * sem_elab.adb: Add with and use clauses for Exp_Ch11. 1953 (Record_Elaboration_Scenario): Call Possible_Local_Raise in the cases 1954 where a scenario could give rise to raising Program_Error. 1955 * sem_elab.adb: Typo fixes. 1956 * fe.h (Warn_If_No_Local_Raise): Declare. 1957 * gcc-interface/gigi.h (get_exception_label): Change return type. 1958 * gcc-interface/trans.c (gnu_constraint_error_label_stack): Change to 1959 simple vector of Entity_Id. 1960 (gnu_storage_error_label_stack): Likewise. 1961 (gnu_program_error_label_stack): Likewise. 1962 (gigi): Adjust to above changes. 1963 (Raise_Error_to_gnu): Likewise. 1964 (gnat_to_gnu) <N_Goto_Statement>: Set TREE_USED on the label. 1965 (N_Push_Constraint_Error_Label): Push the label onto the stack. 1966 (N_Push_Storage_Error_Label): Likewise. 1967 (N_Push_Program_Error_Label): Likewise. 1968 (N_Pop_Constraint_Error_Label): Pop the label from the stack and issue 1969 a warning on the absence of local raise. 1970 (N_Pop_Storage_Error_Label): Likewise. 1971 (N_Pop_Program_Error_Label): Likewise. 1972 (push_exception_label_stack): Delete. 1973 (get_exception_label): Change return type to Entity_Id and adjust. 1974 * gcc-interface/utils2.c (build_goto_raise): Change type of first 1975 parameter to Entity_Id and adjust. Set TREE_USED on the label. 1976 (build_call_raise): Adjust calls to get_exception_label and also 1977 build_goto_raise. 1978 (build_call_raise_column): Likewise. 1979 (build_call_raise_range): Likewise. 1980 * doc/gnat_ugn/building_executable_programs_with_gnat.rst (-gnatw.x): 1981 Document actual default behavior. 1982 19832017-10-20 Piotr Trojanek <trojanek@adacore.com> 1984 1985 * einfo.ads: Minor consistent punctuation in comment. All numbered 1986 items in the comment of Is_Internal are now terminated with a period. 1987 19882017-10-20 Piotr Trojanek <trojanek@adacore.com> 1989 1990 * exp_util.adb (Build_Temporary): Mark created temporary entity as 1991 internal. 1992 19932017-10-20 Piotr Trojanek <trojanek@adacore.com> 1994 1995 * sem_type.adb (In_Generic_Actual): Simplified. 1996 19972017-10-20 Justin Squirek <squirek@adacore.com> 1998 1999 * sem_ch12.adb (Check_Formal_Package_Instance): Add sanity check to 2000 verify a renaming exists for a generic formal before comparing it to 2001 the actual as defaulted formals will not have a renamed_object. 2002 20032017-10-20 Javier Miranda <miranda@adacore.com> 2004 2005 * exp_ch6.adb (Replace_Returns): Fix wrong management of 2006 N_Block_Statement nodes. 2007 20082017-10-20 Bob Duff <duff@adacore.com> 2009 2010 * exp_aggr.adb (Initialize_Array_Component): Avoid adjusting a 2011 component of an array aggregate if it is initialized by a 2012 build-in-place function call. 2013 * exp_ch6.adb (Is_Build_In_Place_Result_Type): Use -gnatd.9 to disable 2014 bip for nonlimited types. 2015 * debug.adb: Document -gnatd.9. 2016 20172017-10-20 Bob Duff <duff@adacore.com> 2018 2019 * sem_ch12.adb: Remove redundant setting of Parent. 2020 20212017-10-20 Eric Botcazou <ebotcazou@adacore.com> 2022 2023 * sem_ch4.adb (Find_Concatenation_Types): Filter out operators if one 2024 of the operands is a string literal. 2025 20262017-10-20 Bob Duff <duff@adacore.com> 2027 2028 * einfo.ads: Comment fix. 2029 20302017-10-20 Clement Fumex <fumex@adacore.com> 2031 2032 * switch-c.adb: Remove -gnatwm from the switches triggered by -gnateC. 2033 20342017-10-20 Ed Schonberg <schonberg@adacore.com> 2035 2036 * sem_dim.adb (Extract_Power): Accept dimension values that are not 2037 non-negative integers when the dimensioned base type is an Integer 2038 type. 2039 20402017-10-20 Bob Duff <duff@adacore.com> 2041 2042 * sinfo.ads, sinfo.adb (Alloc_For_BIP_Return): New flag to indicate 2043 that an allocator came from a b-i-p return statement. 2044 * exp_ch4.adb (Expand_Allocator_Expression): Avoid adjusting the return 2045 object of a nonlimited build-in-place function call. 2046 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Set the 2047 Alloc_For_BIP_Return flag on generated allocators. 2048 * sem_ch5.adb (Analyze_Assignment): Move Assert to where it can't fail. 2049 If the N_Assignment_Statement has been transformed into something else, 2050 then Should_Transform_BIP_Assignment won't work. 2051 * exp_ch3.adb (Expand_N_Object_Declaration): A previous revision said, 2052 "Remove Adjust if we're building the return object of an extended 2053 return statement in place." Back out that part of the change, because 2054 the Alloc_For_BIP_Return flag is now used for that. 2055 20562017-10-19 Bob Duff <duff@adacore.com> 2057 2058 * exp_ch6.adb (Is_Build_In_Place_Result_Type): Fix silly bug -- "Typ" 2059 should be "T". Handle case of a subtype of a class-wide type. 2060 20612017-10-19 Bob Duff <duff@adacore.com> 2062 2063 * exp_util.adb: (Process_Statements_For_Controlled_Objects): Clarify 2064 which node kinds can legitimately be ignored, and raise Program_Error 2065 for others. 2066 20672017-10-19 Hristian Kirtchev <kirtchev@adacore.com> 2068 2069 * sem_elab.adb (Compilation_Unit): Handle the case of a subprogram 2070 instantiation that acts as a compilation unit. 2071 (Find_Code_Unit): Reimplemented. 2072 (Find_Top_Unit): Reimplemented. 2073 (Find_Unit_Entity): New routine. 2074 (Process_Instantiation_SPARK): Correct the elaboration requirement a 2075 package instantiation imposes on a unit. 2076 20772017-10-19 Bob Duff <duff@adacore.com> 2078 2079 * exp_ch6.adb (Is_Build_In_Place_Result_Type): Enable build-in-place 2080 for a narrow set of controlled types. 2081 20822017-10-19 Eric Botcazou <ebotcazou@adacore.com> 2083 2084 * sinput.ads (Line_Start): Add pragma Inline. 2085 * widechar.ads (Is_Start_Of_Wide_Char): Likewise. 2086 20872017-10-19 Bob Duff <duff@adacore.com> 2088 2089 * exp_attr.adb (Expand_N_Attribute_Reference): Disable 2090 Make_Build_In_Place_Call_... for F(...)'Old, where F(...) is a 2091 build-in-place function call so that the temp is declared in the right 2092 place. 2093 20942017-10-18 Eric Botcazou <ebotcazou@adacore.com> 2095 2096 * gcc-interface/misc.c (gnat_tree_size): Move around. 2097 2098 * gcc-interface/utils.c (max_size): Deal with SSA names. 2099 21002017-10-17 Jakub Jelinek <jakub@redhat.com> 2101 2102 * gcc-interface/misc.c (gnat_tree_size): New function. 2103 (LANG_HOOKS_TREE_SIZE): Redefine. 2104 21052017-10-14 Hristian Kirtchev <kirtchev@adacore.com> 2106 2107 * sem_elab.adb (In_Preelaborated_Context): A generic package subject to 2108 Remote_Call_Interface is not a suitable preelaboratd context when the 2109 call appears in the package body. 2110 21112017-10-14 Eric Botcazou <ebotcazou@adacore.com> 2112 2113 * layout.ads (Set_Elem_Alignment): Add Align parameter defaulted to 0. 2114 * layout.adb (Set_Elem_Alignment): Likewise. Use M name as maximum 2115 alignment for consistency. If Align is non-zero, use the minimum of 2116 Align and M for the alignment. 2117 * cstand.adb (Build_Float_Type): Use Set_Elem_Alignment instead of 2118 setting the alignment directly. 2119 21202017-10-14 Ed Schonberg <schonberg@adacore.com> 2121 2122 * sem_prag.adb (Analyze_Pragma, case Check): Defer evaluation of the 2123 optional string in an Assert pragma until the expansion of the pragma 2124 has rewritten it as a conditional statement, so that the string 2125 argument is only evaluaed if the assertion fails. This is mandated by 2126 RM 11.4.2. 2127 21282017-10-14 Hristian Kirtchev <kirtchev@adacore.com> 2129 2130 * debug.adb: Switch -gnatd.v and associated flag are now used to 2131 enforce the SPARK rules for elaboration in SPARK code. 2132 * sem_elab.adb: Describe switch -gnatd.v. 2133 (Process_Call): Verify the SPARK rules only when -gnatd.v is in effect. 2134 (Process_Instantiation): Verify the SPARK rules only when -gnatd.v is 2135 in effect. 2136 (Process_Variable_Assignment): Clarify why variable assignments are 2137 processed reglardless of whether -gnatd.v is in effect. 2138 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update the 2139 sections on elaboration code and compilation switches. 2140 * gnat_ugn.texi: Regenerate. 2141 21422017-10-14 Gary Dismukes <dismukes@adacore.com> 2143 2144 * exp_util.adb, freeze.adb, sem_aggr.adb, sem_util.ads, sem_util.adb, 2145 sem_warn.adb: Minor reformattings. 2146 21472017-10-14 Ed Schonberg <schonberg@adacore.com> 2148 2149 * doc/gnat_rm/implementation_defined_aspects.rst: Add documentation 2150 for reverse iteration over formal containers. 2151 * gnat_rm.texi: Regenerate. 2152 21532017-10-14 Hristian Kirtchev <kirtchev@adacore.com> 2154 2155 * sem_elab.adb (Ensure_Dynamic_Prior_Elaboration): Renamed to 2156 Ensure_Prior_Elaboration_Dynamic for consistency reasons. 2157 (Ensure_Static_Prior_Elaboration): Renamed to 2158 Ensure_Prior_Elaboration_Static for consistency reasons. 2159 (Info_Variable_Reference): Renamed to Info_Variable_Read in order to 2160 reflect its new purpose. 2161 (Is_Initialized): New routine. 2162 (Is_Suitable_Variable_Reference): Renamed to Is_Suitable_Variable_Read 2163 in order to reflect its new purpose. 2164 (Is_Variable_Read): New routine. 2165 (Output_Variable_Reference): Renamed to Output_Variable_Read in order 2166 to reflect its new purpose. 2167 (Process_Variable_Assignment): This routine now acts as a top level 2168 dispatcher for variable assignments. 2169 (Process_Variable_Assignment_Ada): New routine. 2170 (Process_Variable_Assignment_SPARK): New routine. 2171 (Process_Variable_Reference): Renamed to Process_Variable_Read in order 2172 to reflects its new purpose. A reference to a variable is now suitable 2173 for ABE processing only when it is a read. The logic in the routine now 2174 reflects the latest SPARK elaboration rules. 2175 21762017-10-14 Justin Squirek <squirek@adacore.com> 2177 2178 * sem_ch8.adb (Analyze_Subprogram_Renaming): Modify condition that 2179 triggers marking on formal subprograms. 2180 21812017-10-14 Javier Miranda <miranda@adacore.com> 2182 2183 * checks.adb (Ensure_Valid): Do not skip adding the validity check on 2184 renamings of objects that come from the sources. 2185 21862017-10-14 Eric Botcazou <ebotcazou@adacore.com> 2187 2188 * cstand.adb (Build_Float_Type): Move down Siz parameter, add Align 2189 parameter and set the alignment of the type to Align. 2190 (Copy_Float_Type): Adjust call to Build_Float_Type. 2191 (Register_Float_Type): Add pragma Unreferenced for Precision. Adjust 2192 call to Build_Float_Type and do not set RM_Size and Alignment. 2193 21942017-10-14 Patrick Bernardi <bernardi@adacore.com> 2195 2196 * Makefile.rtl (GNATRTL_NONTASKING_OBJ): Add s-soliin to 2197 GNATRTL_NONTASKING_OBJ. 2198 21992017-10-14 Bob Duff <duff@adacore.com> 2200 2201 * exp_ch6.adb (Is_Build_In_Place_Result_Type): Include code for 2202 enabling b-i-p for nonlimited controlled types (but disabled). 2203 22042017-10-14 Justin Squirek <squirek@adacore.com> 2205 2206 * sem_elab.adb (Is_Suitable_Variable_Assignment): Replace call to 2207 Has_Warnings_Off with Warnings_Off. 2208 22092017-10-14 Piotr Trojanek <trojanek@adacore.com> 2210 2211 * sinfo.ads (Generic_Parent): Remove wrong (possibly obsolete) comment. 2212 22132017-10-14 Hristian Kirtchev <kirtchev@adacore.com> 2214 2215 * sem_ch3.adb (Analyze_Declarations): Analyze the contract of an 2216 enclosing package at the end of the visible declarations. 2217 * sem_prag.adb (Analyze_Initialization_Item): Suppress the analysis of 2218 an initialization item which is undefined due to some illegality. 2219 22202017-10-14 Patrick Bernardi <bernardi@adacore.com> 2221 2222 * ali.adb: Add new ALI line 'T' to read the number of tasks contain 2223 within each unit that require a default-sized primary and secondary 2224 stack to be generated by the binder. 2225 (Scan_ALI): Scan new 'T' lines. 2226 * ali.ads: Add Primary_Stack_Count and Sec_Stack_Count to Unit_Record. 2227 * bindgen.adb (Gen_Output_File): Count the number of default-sized 2228 stacks within the closure that are to be created by the binder. 2229 (Gen_Adainit, Gen_Output_File_Ada): Generate default-sized secondary 2230 stacks and record these in System.Secodnary_Stack. 2231 (Resolve_Binder_Options): Check if System.Secondary_Stack is in the 2232 closure of the program being bound. 2233 * bindusg.adb (Display): Add "-Q" switch. Remove rouge "--RTS" comment. 2234 * exp_ch3.adb (Count_Default_Sized_Task_Stacks): New routine. 2235 (Expand_N_Object_Declaration): Count the number of default-sized stacks 2236 used by task objects contained within the object whose declaration is 2237 being expanded. Only performed when either the restrictions 2238 No_Implicit_Heap_Allocations or No_Implicit_Task_Allocations are in 2239 effect. 2240 * exp_ch9.adb (Create_Secondary_Stack_For_Task): New routine. 2241 (Expand_N_Task_Type_Declaration): Create a secondary stack as part of 2242 the expansion of a task type if the size of the stack is known at 2243 run-time and the restrictions No_Implicit_Heap_Allocations or 2244 No_Implicit_Task_Allocations are in effect. 2245 (Make_Task_Create_Call): If using a restricted profile provide 2246 secondary stack parameter: either the statically created stack or null. 2247 * lib-load.adb (Create_Dummy_Package_Unit, Load_Unit, 2248 Load_Main_Source): Include Primary_Stack_Count and Sec_Stack_Count in 2249 Unit_Record initialization expressions. 2250 * lib-writ.adb (Add_Preprocessing_Dependency, 2251 Ensure_System_Dependency): Include Primary_Stack_Count and 2252 Sec_Stack_Count in Unit_Record initialization expression. 2253 (Write_ALI): Write T lines. 2254 (Write_Unit_Information): Do not output 'T' lines if there are no 2255 stacks for the binder to generate. 2256 * lib-writ.ads: Updated library information documentation to include 2257 new T line entry. 2258 * lib.adb (Increment_Primary_Stack_Count): New routine. 2259 (Increment_Sec_Stack_Count): New routine. 2260 (Primary_Stack_Count): New routine. 2261 (Sec_Stack_Count): New routine. 2262 * lib.ads: Add Primary_Stack_Count and Sec_Stack_Count components to 2263 Unit_Record and updated documentation. 2264 (Increment_Primary_Stack_Count): New routine along with pragma Inline. 2265 (Increment_Sec_Stack_Count): New routine along with pragma Inline. 2266 (Primary_Stack_Count): New routine along with pragma Inline. 2267 (Sec_Stack_Count): New routine along with pragma Inline. 2268 * opt.ads: New constant No_Stack_Size. Flag Default_Stack_Size 2269 redefined. New flag Default_Sec_Stack_Size and 2270 Quantity_Of_Default_Size_Sec_Stacks. 2271 * rtfinal.c Fixed erroneous comment. 2272 * rtsfind.ads: Moved RE_Default_Secondary_Stack_Size from 2273 System.Secondary_Stack to System.Parameters. Add RE_SS_Stack. 2274 * sem_util.adb (Number_Of_Elements_In_Array): New routine. 2275 * sem_util.ads (Number_Of_Elements_In_Array): New routine. 2276 * switch-b.adb (Scan_Binder_Switches): Scan "-Q" switch. 2277 * libgnarl/s-solita.adb (Get_Sec_Stack_Addr): Removed routine. 2278 (Set_Sec_Stack_Addr): Removed routine. 2279 (Get_Sec_Stack): New routine. 2280 (Set_Sec_Stack): New routine. 2281 (Init_Tasking_Soft_Links): Update System.Soft_Links reference to 2282 reflect new procedure and global names. 2283 * libgnarl/s-taprop__linux.adb, libgnarl/s-taprop__mingw.adb, 2284 libgnarl/s-taprop__posix.adb, libgnarl/s-taprop__solaris.adb, 2285 libgnarl/s-taprop__vxworks.adb (Register_Foreign_Thread): Update 2286 parameter profile to allow the secondary stack size to be specified. 2287 * libgnarl/s-tarest.adb (Create_Restricted_Task): Update the parameter 2288 profile to include Sec_Stack_Address. Update Tasking.Initialize_ATCB 2289 call to remove Secondary_Stack_Size reference. Add secondary stack 2290 address and size to SSL.Create_TSD call. 2291 (Task_Wrapper): Remove secondary stack creation. 2292 * libgnarl/s-tarest.ads (Create_Restricted_Task, 2293 Create_Restricted_Task_Sequential): Update parameter profile to include 2294 Sec_Stack_Address and clarify the Size parameter. 2295 * libgnarl/s-taskin.adb (Initialize_ATCB): Remove Secondary_Stack_Size 2296 from profile and body. 2297 (Initialize): Remove Secondary_Stack_Size from Initialize_ATCB call. 2298 * libgnarl/s-taskin.ads: Removed component Secondary_Stack_Size from 2299 Common_ATCB. 2300 (Initialize_ATCB): Update the parameter profile to remove 2301 Secondary_Stack_Size. 2302 * libgnarl/s-tassta.adb (Create_Task): Updated parameter profile and 2303 call to Initialize_ATCB. Add secondary stack address and size to 2304 SSL.Create_TSD call, and catch any storage exception from the call. 2305 (Finalize_Global_Tasks): Update System.Soft_Links references to reflect 2306 new subprogram and component names. 2307 (Task_Wrapper): Remove secondary stack creation. 2308 (Vulnerable_Complete_Master): Update to reflect TSD changes. 2309 * libgnarl/s-tassta.ads: Reformat comments. 2310 (Create_Task): Update parameter profile. 2311 * libgnarl/s-tporft.adb (Register_Foreign_Thread): Update parameter 2312 profile to include secondary stack size. Remove secondary size 2313 parameter from Initialize_ATCB call and add it to Create_TSD call. 2314 * libgnat/s-parame.adb, libgnat/s-parame__rtems.adb, 2315 libgnat/s-parame__vxworks.adb (Default_Sec_Stack_Size): New routine. 2316 * libgnat/s-parame.ads, libgnat/s-parame__ae653.ads, 2317 libgnat/s-parame__hpux.ads, libgnat/s-parame__vxworks.ads: Remove type 2318 Percentage. Remove constants Dynamic, Sec_Stack_Percentage and 2319 Sec_Stack_Dynamic. Add constant Runtime_Default_Sec_Stack_Size and 2320 Sec_Stack_Dynamic. 2321 (Default_Sec_Stack_Size): New routine. 2322 * libgnat/s-secsta.adb, libgnat/s-secsta.ads: New implementation. Is 2323 now Preelaborate. 2324 * libgnat/s-soflin.adb: Removed unused with-clauses. With 2325 System.Soft_Links.Initialize to initialize non-tasking TSD. 2326 (Create_TSD): Update parameter profile. Initialize the TSD and 2327 unconditionally call SS_Init. 2328 (Destroy_TSD): Update SST.SS_Free call. 2329 (Get_Sec_Stack_Addr_NT, Get_Sec_Stack_Addr_Soft, Set_Sec_Stack_Addr_NT, 2330 Set_Sec_Stack_Addr_Soft): Remove routines. 2331 (Get_Sec_Stack_NT, Get_Sec_Stack_Soft, Set_Sec_Stack_NT, 2332 Set_Sec_Stack_Soft): Add routines. 2333 (NT_TSD): Move to private part of package specification. 2334 * libgnat/s-soflin.ads: New types Get_Stack_Call and Set_Stack_Call 2335 with suppressed access checks. Renamed *_Sec_Stack_Addr_* routines and 2336 objects to *_Sec_Stack_*. TSD: removed warning suppression and 2337 component intialization. Changed Sec_Stack_Addr to Sec_Stack_Ptr. 2338 (Create_TSD): Update parameter profile. 2339 (NT_TSD): Move to private section from body. 2340 * libgnat/s-soliin.adb, libgnat/s-soliin.ads: New files. 2341 * libgnat/s-thread.ads (Thread_Body_Enter): Update parameter profile. 2342 * libgnat/s-thread__ae653.adb (Get_Sec_Stack_Addr, Set_Sec_Stack_Addr): 2343 Remove routine. 2344 (Get_Sec_Stack, Set_Sec_Stack): Add routine. 2345 (Thread_Body_Enter): Update parameter profile and body to adapt to new 2346 System.Secondary_Stack. 2347 (Init_RTS): Update body for new System.Soft_Links names. 2348 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Add 2349 s-soliin.o. 2350 23512017-10-10 Richard Sandiford <richard.sandiford@linaro.org> 2352 2353 * gcc-interface/decl.c (annotate_value): Use wi::to_wide when 2354 operating on trees as wide_ints. 2355 23562017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2357 2358 * sem_unit.adb (Find_Enclosing_Scope): Do not treat a block statement 2359 as a scoping construct when it is byproduct of exception handling. 2360 23612017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2362 2363 * sinfo.ads: Update table Is_Syntactic_Field to reflect the nature of 2364 semantic field Target of node N_Call_Marker. 2365 23662017-10-09 Ed Schonberg <schonberg@adacore.com> 2367 2368 * sem_res.adb (Resolve_Allocator): Reject properly an allocator that 2369 attempts to copy a limited value, when the allocator is the expression 2370 in an expression function. 2371 23722017-10-09 Joel Brobecker <brobecker@adacore.com> 2373 2374 * doc/share/conf.py: Tell the style checker that this is a Python 2375 fragment, and therefore that pyflakes should not be run to validate 2376 this file. 2377 23782017-10-09 Eric Botcazou <ebotcazou@adacore.com> 2379 2380 * einfo.ads (Is_Boolean_Type): Add pragma Inline. 2381 (Is_Entity_Name): Likewise. 2382 (Is_String_Type): Likewise. 2383 * sem_type.adb (Full_View_Covers): Do not test Is_Private_Type here 2384 and remove useless comparisons on the base types. 2385 (Covers): Use simple tests for Standard_Void_Type. Move up cheap tests 2386 on T2. Always test Is_Private_Type before Full_View_Covers. 2387 23882017-10-09 Bob Duff <duff@adacore.com> 2389 2390 * exp_ch4.adb: Minor refactoring. 2391 23922017-10-09 Javier Miranda <miranda@adacore.com> 2393 2394 * sem_ch3.adb (Replace_Components): Browse the list of discriminants, 2395 not components. 2396 23972017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2398 2399 * sem_elab.adb (Static_Elaboration_Checks): Elaboration requirements 2400 are verified only in the static model. 2401 24022017-10-09 Ed Schonberg <schonberg@adacore.com> 2403 2404 * sem_ch5.adb (Analyze_Iterator_Specification, 2405 Check_Reverse_Iteration): Check that the domain of iteration supports 2406 reverse iteration when it is a formal container. This requires the 2407 presence of a Previous primitive in the Iterable aspect. 2408 * sem_ch13.adb (Resolve_Iterable_Operation): Verify legality of 2409 primitives Last and Previous to support reverse iteration over formal 2410 containers. 2411 (Validate_Iterable_Aspect): Add check for reverse iteration operations. 2412 * exp_ch5.adb (Build_Formal_Container_Iteration): Add proper expansion 2413 for reverse iteration using primitives Last and Previous in generated 2414 loop. 2415 24162017-10-09 Ed Schonberg <schonberg@adacore.com> 2417 2418 * sem_util.adb (Subprogram_Name): If this is a child unit, use the name 2419 of the Defining_Program_Unit_Name, which is an identifier, in order to 2420 construct the string for the fully qualified name. 2421 24222017-10-09 Justin Squirek <squirek@adacore.com> 2423 2424 * sem_ch3.adb: Rename Uses_Unseen_Priv into 2425 Contains_Lib_Incomplete_Type. 2426 24272017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2428 2429 * sem_aggr.adb, sem_spark.adb, adabkend.adb, exp_ch5.adb, frontend.adb, 2430 sem_ch12.adb, fmap.adb, exp_ch6.adb, exp_spark.adb, lib-load.adb, 2431 exp_ch9.adb, osint.adb, exp_disp.adb, sem_ch8.adb, sem_ch8.ads, 2432 prepcomp.adb, gnat1drv.adb, atree.adb, sinput-l.adb, targparm.adb, 2433 sem_ch10.adb, par-ch8.adb: Minor reformatting. 2434 24352017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2436 2437 * sem_elab.adb (Is_Suitable_Access): This scenario is now only relevant 2438 in the static model. 2439 (Is_Suitable_Variable_Assignment): This scenario is now only relevant 2440 in the static model. 2441 (Is_Suitable_Variable_Reference): This scenario is now only relevant in 2442 the static model. 2443 24442017-10-09 Ed Schonberg <schonberg@adacore.com> 2445 2446 * sem_ch3.adb (Analyze_Declarations): In ASIS mode, resolve aspect 2447 expressions when the enclosing scope is a subprogram body and the next 2448 declaration is a body that freezes entities previously declared in the 2449 scope. 2450 24512017-10-09 Justin Squirek <squirek@adacore.com> 2452 2453 * sem_ch8.adb (Analyze_Use_Package): Remove checking of mixture between 2454 ghost packages and living packages in use clauses. 2455 (Use_One_Type, Note_Redundant_Use): Correct warning messages 2456 24572017-10-09 Justin Squirek <squirek@adacore.com> 2458 2459 * osint.ads: Document new parameter FD for Read_Source_File. 2460 24612017-10-09 Ed Schonberg <schonberg@adacore.com> 2462 2463 * exp_util.adb (Make_Predicate_Call): If the type of the expression to 2464 which the predicate check applies is tagged, convert the expression to 2465 that type. This is in most cases a no-op, but is relevant if the 2466 expression is clas-swide, because the predicate function being invoked 2467 is not a primitive of the type and cannot take a class-wide actual. 2468 24692017-10-09 Gary Dismukes <dismukes@adacore.com> 2470 2471 * exp_disp.adb: Minor reformatting. 2472 24732017-10-09 Arnaud Charlet <charlet@adacore.com> 2474 2475 * sem_warn.adb (Warn_On_Unreferenced_Entity): Fix typo. 2476 24772017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2478 2479 * sem_elab.adb (Install_ABE_Check): Do not generate an ABE check for 2480 GNATprove. 2481 (Install_ABE_Failure): Do not generate an ABE failure for GNATprove. 2482 24832017-10-09 Bob Duff <duff@adacore.com> 2484 2485 * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Return 2486 immediately if the call has already been processed (by a previous call 2487 to Make_Build_In_Place_Call_In_Anonymous_Context). 2488 * sem_elab.adb: Minor typo fixes. 2489 24902017-10-09 Ed Schonberg <schonberg@adacore.com> 2491 2492 * sem_ch13.adb (Replace_Type_Ref): In the expression for a dynamic 2493 predicate, do not replace an identifier that matches the type if the 2494 identifier is a selector in a selected component, because this 2495 indicates a reference to some homograph of the type itself, and not to 2496 the current occurence in the predicate. 2497 24982017-10-09 Eric Botcazou <ebotcazou@adacore.com> 2499 2500 * repinfo.adb (List_Record_Layout): Tweak formatting. 2501 (Write_Val): Remove superfluous spaces in back-end layout mode. 2502 25032017-10-09 Piotr Trojanek <trojanek@adacore.com> 2504 2505 * sem_res.adb (Property_Error): Remove. 2506 (Resolve_Actuals): check for SPARK RM 7.1.3(10) rewritten to match the 2507 current wording of the rule. 2508 25092017-10-09 Justin Squirek <squirek@adacore.com> 2510 2511 * sem_ch3.adb (Analyze_Declarations): Add check for ghost packages 2512 before analyzing a given scope due to an expression function. 2513 (Uses_Unseen_Lib_Unit_Priv): Rename to Uses_Unseen_Priv. 2514 25152017-10-09 Bob Duff <duff@adacore.com> 2516 2517 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): Use 2518 Defining_Identifier (Obj_Decl) in two places, because it might have 2519 changed. 2520 * exp_ch6.adb (Make_Build_In_Place_Call_In_Allocator): Deal with cases 2521 involving 'Input on (not visibly) derived types. 2522 25232017-10-09 Hristian Kirtchev <kirtchev@adacore.com> 2524 2525 * atree.adb: Add new soft link Rewriting_Proc. 2526 (Rewrite): Invoke the subprogram attached to the rewriting soft link. 2527 (Set_Rewriting_Proc): New routine. 2528 * attree.ads: Add new access-to-subprogram type Rewrite_Proc. 2529 (Set_Rewriting_Proc): New routine. 2530 * checks.adb (Install_Primitive_Elaboration_Check): Use 'E' character 2531 for *E*laboration flag to maintain consistency with other elaboration 2532 flag generating subprograms. 2533 * debug.adb: Document the new usage of flag -gnatdL. 2534 * einfo.adb: Node19 is now used as Receiving_Entry. Node39 is now used 2535 as Protected_Subprogram. Flag148 is now used as 2536 Is_Elaboration_Checks_OK_Id. Flag302 is now used as 2537 Is_Initial_Condition_Procedure. 2538 (Is_Elaboration_Checks_OK_Id): New routine. 2539 (Is_Initial_Condition_Procedure): New routine. 2540 (Protected_Subprogram): New routine. 2541 (Receiving_Entry): New routine. 2542 (SPARK_Pragma): Update assertion. 2543 (SPARK_Pragma_Inherited): Update assertion. 2544 (Suppress_Elaboration_Warnings): Removed. 2545 (Set_Is_Elaboration_Checks_OK_Id): New routine. 2546 (Set_Is_Initial_Condition_Procedure): New routine. 2547 (Set_Protected_Subprogram): New routine. 2548 (Set_Receiving_Entry): New routine. 2549 (Set_SPARK_Pragma): Update assertion. 2550 (Set_SPARK_Pragma_Inherited): Update assertion. 2551 (Write_Entity_Flags): Update the output for Flag148 and Flag302. 2552 (Write_Field19_Name): Add output for Receiving_Entry. 2553 (Write_Field39_Name): Add output for Protected_Subprogram. 2554 (Write_Field40_Name): Update the output for SPARK_Pragma. 2555 * einfo.ads: New attributes Is_Elaboration_Checks_OK_Id, 2556 Is_Initial_Condition_Procedure, Protected_Subprogram, Receiving_Entry. 2557 Remove attribute Suppress_Elaboration_Warnings. Update the stricture 2558 of various entities. 2559 (Is_Elaboration_Checks_OK_Id): New routine along with pragma Inline. 2560 (Is_Initial_Condition_Procedure): New routine along with pragma Inline. 2561 (Protected_Subprogram): New routine along with pragma Inline. 2562 (Receiving_Entry): New routine along with pragma Inline. 2563 (Suppress_Elaboration_Warnings): Removed. 2564 (Set_Is_Elaboration_Checks_OK_Id): New routine along with pragma 2565 Inline. 2566 (Set_Is_Initial_Condition_Procedure): New routine along with pragma 2567 Inline. 2568 (Set_Protected_Subprogram): New routine along with pragma Inline. 2569 (Set_Receiving_Entry): New routine along with pragma Inline. 2570 (Set_Suppress_Elaboration_Warnings): Removed. 2571 * exp_ch3.adb (Build_Init_Procedure): Use name _Finalizer to maintain 2572 consistency with other finalizer generating subprograms. 2573 (Default_Initialize_Object): Mark the block which wraps the call to 2574 finalize as being part of initialization. 2575 * exp_ch7.adb (Expand_N_Package_Declaration): Directly expand pragma 2576 Initial_Condition. 2577 (Expand_N_Package_Body): Directly expand pragma Initial_Condition. 2578 (Next_Suitable_Statement): Update the comment on usage. Skip over call 2579 markers generated by the ABE mechanism. 2580 * exp_ch9.adb (Activation_Call_Loc): New routine. 2581 (Add_Accept): Link the accept procedure to the original entry. 2582 (Build_Protected_Sub_Specification): Link the protected or unprotected 2583 version to the original subprogram. 2584 (Build_Task_Activation_Call): Code cleanup. Use a source location which 2585 is very close to the "begin" or "end" keywords when generating the 2586 activation call. 2587 * exp_prag.adb (Expand_Pragma_Initial_Condition): Reimplemented. 2588 * exp_spark.adb (Expand_SPARK): Use Expand_SPARK_N_Loop_Statement to 2589 process loops. 2590 (Expand_SPARK_N_Loop_Statement): New routine. 2591 (Expand_SPARK_N_Object_Declaration): Code cleanup. Partially insert the 2592 call to the Default_Initial_Condition procedure. 2593 (Expand_SPARK_Op_Ne): Renamed to Expand_SPARK_N_Op_Ne. 2594 * exp_util.adb (Build_DIC_Procedure_Body): Capture the SPARK_Mode in 2595 effect. 2596 (Build_DIC_Procedure_Declaration): Capture the SPARK_Mode in effect. 2597 (Insert_Actions): Add processing for N_Call_Marker. 2598 (Kill_Dead_Code): Explicitly kill an elaboration scenario. 2599 * exp_util.ads (Make_Invariant_Call): Update the comment on usage. 2600 * frontend.adb: Initialize Sem_Elab. Process all saved top level 2601 elaboration scenarios for ABE issues. 2602 * gcc-interface/trans.c (gnat_to_gnu): Add processing for N_Call_Marker 2603 nodes. 2604 * lib.adb (Earlier_In_Extended_Unit): New variant. 2605 * sem.adb (Analyze): Ignore N_Call_Marker nodes. 2606 (Preanalysis_Active): New routine. 2607 * sem.ads (Preanalysis_Active): New routine. 2608 * sem_attr.adb (Analyze_Access_Attribute): Save certain 2609 elaboration-related attributes. Save the scenario for ABE processing. 2610 * sem_ch3.adb (Analyze_Object_Declaration): Save the SPARK mode in 2611 effect. Save certain elaboration-related attributes. 2612 * sem_ch5.adb (Analyze_Assignment): Save certain elaboration-related 2613 attributes. Save the scenario for ABE processing. 2614 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Save the SPARK 2615 mode in effect. Save certain elaboration-related attributes. 2616 (Analyze_Subprogram_Body_Helper): Skip N_Call_Marker nodes when 2617 locating the first real statement. 2618 (Analyze_Subprogram_Declaration): Save the SPARK mode in effect. Save 2619 certain elaboration-related attributes. 2620 * sem_ch7.adb (Analyze_Package_Declaration): Do not suppress 2621 elaboration warnings. 2622 * sem_ch8.adb (Attribute_Renaming): Mark a subprogram body which was 2623 generated for purposes of wrapping an attribute used as a generic 2624 actual. 2625 (Find_Direct_Name): Save certain elaboration-related attributes. Save 2626 the scenario for ABE processing. 2627 (Find_Expanded_Name): Save certain elaboration-related attributes. Save 2628 the scenario for ABE processing. 2629 * sem_ch9.adb (Analyze_Entry_Declaration): Save certain 2630 elaboration-related attributes. 2631 (Analyze_Requeue): Save certain elaboration-related attributes. Save 2632 the scenario for ABE processing. 2633 (Analyze_Single_Task_Declaration): Save certain elaboration-related 2634 attributes. 2635 (Analyze_Task_Type_Declaration): Save certain elaboration-related 2636 attributes. 2637 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Save certain 2638 elaboration-related attributes. 2639 (Analyze_Generic_Subprogram_Declaration): Save the SPARK mode in 2640 effect. Save certain elaboration-related attributes. 2641 (Analyze_Package_Instantiation): Save certain elaboration-related 2642 attributes. Save the scenario for ABE processing. Create completing 2643 bodies in case the instantiation results in a guaranteed ABE. 2644 (Analyze_Subprogram_Instantiation): Save certain elaboration-related 2645 attributes Save the scenario for ABE processing. Create a completing 2646 body in case the instantiation results in a guaranteed ABE. 2647 (Provide_Completing_Bodies): New routine. 2648 * sem_elab.ads: Brand new implementation. 2649 * sem_prag.adb (Analyze_Pragma, cases Elaborate, Elaborate_All, 2650 Elaborate_Body): Do not suppress elaboration warnings. 2651 * sem_res.adb (Make_Call_Into_Operator): Set the parent field of the 2652 operator. 2653 (Resolve_Call): Save certain elaboration-related attributes. Save the 2654 scenario for ABE processing. 2655 (Resolve_Entity_Name): Do not perform any ABE processing here. 2656 (Resolve_Entry_Call): Inherit certain attributes from the original call. 2657 * sem_util.adb (Begin_Keyword_Location): New routine. 2658 (Defining_Entity): Update the parameter profile. Add processing for 2659 concurrent subunits that are rewritten as null statements. 2660 (End_Keyword_Location): New routine. 2661 (Find_Enclosing_Scope): New routine. 2662 (In_Instance_Visible_Part): Code cleanup. 2663 (In_Subtree): Update the parameter profile. Add new version. 2664 (Is_Preelaborable_Aggregate): New routine. 2665 (Is_Preelaborable_Construct): New routine. 2666 (Mark_Elaboration_Attributes): New routine. 2667 (Scope_Within): Update the parameter profile. 2668 (Scope_Within_Or_Same): Update the parameter profile. 2669 * sem_util.ads (Begin_Keyword_Location): New routine. 2670 (Defining_Entity): Update the parameter profile and the comment on 2671 usage. 2672 (End_Keyword_Location): New routine. 2673 (Find_Enclosing_Scope): New routine. 2674 (In_Instance_Visible_Part): Update the parameter profile. 2675 (In_Subtree): Update the parameter profile. Add new version. 2676 (Is_Preelaborable_Aggregate): New routine. 2677 (Is_Preelaborable_Construct): New routine. 2678 (Mark_Elaboration_Attributes): New routine. 2679 (Scope_Within): Update the parameter profile and the comment on usage. 2680 (Scope_Within_Or_Same): Update the parameter profile and the comment on 2681 usage. 2682 * sem_warn.adb (Check_Infinite_Loop_Warning): Use Has_Condition_Actions 2683 to determine whether a loop has meaningful condition actions. 2684 (Has_Condition_Actions): New routine. 2685 * sinfo.adb (ABE_Is_Certain): Removed. 2686 (Is_Declaration_Level_Node): New routine. 2687 (Is_Dispatching_Call): New routine. 2688 (Is_Elaboration_Checks_OK_Node): New routine. 2689 (Is_Initialization_Block): New routine. 2690 (Is_Known_Guaranteed_ABE): New routine. 2691 (Is_Recorded_Scenario): New routine. 2692 (Is_Source_Call): New routine. 2693 (Is_SPARK_Mode_On_Node): New routine. 2694 (No_Elaboration_Check): Removed. 2695 (Target): New routine. 2696 (Was_Attribute_Reference): New routine. 2697 (Set_ABE_Is_Certain): Removed. 2698 (Set_Is_Declaration_Level_Node): New routine. 2699 (Set_Is_Dispatching_Call): New routine. 2700 (Set_Is_Elaboration_Checks_OK_Node): New routine. 2701 (Set_Is_Initialization_Block): New routine. 2702 (Set_Is_Known_Guaranteed_ABE): New routine. 2703 (Set_Is_Recorded_Scenario): New routine. 2704 (Set_Is_Source_Call): New routine. 2705 (Set_Is_SPARK_Mode_On_Node): New routine. 2706 (Set_No_Elaboration_Check): Removed. 2707 (Set_Target): New routine. 2708 (Set_Was_Attribute_Reference): New routine. 2709 * sinfo.ads: Remove attribute ABE_Is_Certain. Attribute 2710 Do_Discriminant_Check now utilizes Flag3. Attribute 2711 No_Side_Effect_Removal now utilizes Flag17. Add new node 2712 N_Call_Marker. Update the structure of various nodes. 2713 (ABE_Is_Certain): Removed along with pragma Inline. 2714 (Is_Declaration_Level_Node): New routine along with pragma Inline. 2715 (Is_Dispatching_Call): New routine along with pragma Inline. 2716 (Is_Elaboration_Checks_OK_Node): New routine along with pragma Inline. 2717 (Is_Initialization_Block): New routine along with pragma Inline. 2718 (Is_Known_Guaranteed_ABE): New routine along with pragma Inline. 2719 (Is_Recorded_Scenario): New routine along with pragma Inline. 2720 (Is_Source_Call): New routine along with pragma Inline. 2721 (Is_SPARK_Mode_On_Node): New routine along with pragma Inline. 2722 (No_Elaboration_Check): Removed along with pragma Inline. 2723 (Target): New routine along with pragma Inline. 2724 (Was_Attribute_Reference): New routine along with pragma Inline. 2725 (Set_ABE_Is_Certain): Removed along with pragma Inline. 2726 (Set_Is_Declaration_Level_Node): New routine along with pragma Inline. 2727 (Set_Is_Dispatching_Call): New routine along with pragma Inline. 2728 (Set_Is_Elaboration_Checks_OK_Node): New routine along with pragma 2729 Inline. 2730 (Set_Is_Initialization_Block): New routine along with pragma Inline. 2731 (Set_Is_Known_Guaranteed_ABE): New routine along with pragma Inline. 2732 (Set_Is_Recorded_Scenario): New routine along with pragma Inline. 2733 (Set_Is_Source_Call): New routine along with pragma Inline. 2734 (Set_Is_SPARK_Mode_On_Node): New routine along with pragma Inline. 2735 (Set_No_Elaboration_Check): Removed along with pragma Inline. 2736 (Set_Target): New routine along with pragma Inline. 2737 (Set_Was_Attribute_Reference): New routine along with pragma Inline. 2738 * sprint.adb (Sprint_Node_Actual): Add an entry for N_Call_Marker. 2739 27402017-10-09 Bob Duff <duff@adacore.com> 2741 2742 * exp_ch7.adb (Create_Finalizer): Suppress checks within the finalizer. 2743 27442017-10-09 Bob Duff <duff@adacore.com> 2745 2746 * freeze.ads: Minor comment fixed. 2747 27482017-10-09 Bob Duff <duff@adacore.com> 2749 2750 * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Take 2751 care of unchecked conversions in addition to regular conversions. This 2752 takes care of a case where a type is derived from a private untagged 2753 type that is completed by a tagged controlled type. 2754 27552017-10-09 Ed Schonberg <schonberg@adacore.com> 2756 2757 * exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When 2758 rewriting a class-wide condition, handle properly the case where the 2759 controlling argument of the operation to which the condition applies is 2760 an access to a tagged type, and the condition includes a dispatching 2761 call with an implicit dereference. 2762 27632017-10-09 Bob Duff <duff@adacore.com> 2764 2765 * exp_ch6.adb: (Make_Build_In_Place_Call_In_Object_Declaration): Remove 2766 the code at the end of this procedure that was setting the type of a 2767 class-wide object to the specific type returned by a function call. 2768 Treat this case as indefinite instead. 2769 27702017-10-09 Ed Schonberg <schonberg@adacore.com> 2771 2772 * sem_ch4.adb (Try_Class_Wide_Operation, Traverse_Homonyms): 2773 Suppress spurious ambiguity error when two traversals of the homonym 2774 chain (first directly, and then through an examination of relevant 2775 interfaces) retrieve the same operation, when other irrelevant homonyms 2776 of the operatioh are also present. 2777 27782017-10-09 Ed Schonberg <schonberg@adacore.com> 2779 2780 * sem_util.adb (Object_Access_Level): If the object is the return 2781 statement of an expression function, return the level of the function. 2782 This is relevant when the object involves an implicit conversion 2783 between access types and the expression function is a completion, which 2784 forces the analysis of the expression before rewriting it as a body, so 2785 that freeze nodes can appear in the proper scope. 2786 27872017-10-09 Bob Duff <duff@adacore.com> 2788 2789 * atree.adb: Make nnd apply to everything "interesting", including 2790 Rewrite. Remove rrd. 2791 27922017-10-09 Javier Miranda <miranda@adacore.com> 2793 2794 * exp_ch3.adb (Expand_N_Object_Declaration): Avoid never-ending loop 2795 processing the declaration of the dummy object internally created by 2796 Make_DT to compute the offset to the top of components referencing 2797 secondary dispatch tables. 2798 (Initialize_Tag): Do not initialize the offset-to-top field if it has 2799 been initialized initialized. 2800 * exp_disp.ads (Building_Static_Secondary_DT): New subprogram. 2801 * exp_disp.adb (Building_Static_Secondary_DT): New subprogram. 2802 (Make_DT): Create a dummy constant object if we can statically build 2803 secondary dispatch tables. 2804 (Make_Secondary_DT): For statically allocated secondary dispatch tables 2805 use the dummy object to compute the offset-to-top field value by means 2806 of the attribute 'Position. 2807 28082017-10-09 Bob Duff <duff@adacore.com> 2809 2810 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Add self-checking 2811 code so if BIPAlloc is not passed in, it will likely raise 2812 Program_Error instead of cause miscellaneous chaos. 2813 (Is_Build_In_Place_Result_Type): Return False if not Expander_Active, 2814 as for the other Is_B-I-P... functions. 2815 * sem_aggr.adb (Resolve_Extension_Aggregate): For an extension 2816 aggregate whose ancestor part is a build-in-place call returning a 2817 nonlimited type, transform the assignment to the ancestor part to use a 2818 temp. 2819 * sem_ch3.adb (Build_Itype_Reference): Handle the case where we're 2820 creating an Itype for a library unit entity. 2821 (Check_Initialization): Avoid spurious error message on 2822 internally-generated call. 2823 * sem_ch5.adb (Analyze_Assignment): Handle the case where the 2824 right-hand side is a build-in-place call. This didn't happen when b-i-p 2825 was only for limited types. 2826 * sem_ch6.adb (Create_Extra_Formals): Remove assumption that b-i-p 2827 implies >= Ada 2005. 2828 * sem_ch7.adb (Scan_Subprogram_Refs): Avoid traversing the same nodes 2829 repeatedly. 2830 * sem_util.adb (Next_Actual): Handle case of build-in-place call. 2831 28322017-10-09 Arnaud Charlet <charlet@adacore.com> 2833 2834 * doc/gnat_ugn/gnat_and_program_execution.rst: Minor edit. 2835 28362017-10-09 Piotr Trojanek <trojanek@adacore.com> 2837 2838 * libgnarl/s-taprob.adb: Minor whitespace fix. 2839 28402017-10-09 Bob Duff <duff@adacore.com> 2841 2842 * namet.ads: Minor comment fix. 2843 28442017-10-09 Piotr Trojanek <trojanek@adacore.com> 2845 2846 * sem_aux.adb (Unit_Declaration_Node): Detect protected declarations, 2847 just like other program units listed in Ada RM 10.1(1). 2848 28492017-10-09 Justin Squirek <squirek@adacore.com> 2850 2851 * sem_ch8.adb (Update_Chain_In_Scope): Modify warning messages. 2852 28532017-10-09 Ed Schonberg <schonberg@adacore.com> 2854 2855 * sem_ch12.adb (Analyze_Associations, Check_Generic_Parent): If an 2856 actual for a formal package is an instantiation of a child unit, create 2857 a freeze node for the instance of the parent if it appears in the same 2858 scope and is not frozen yet. 2859 28602017-10-09 Pierre-Marie de Rodat <derodat@adacore.com> 2861 2862 * exp_atag.ads, libgnat/a-tags.adb, libgnat/a-tags.ads: Enhance 2863 in-source documentation for tagged types's Offset_To_Top. 2864 28652017-10-09 Bob Duff <duff@adacore.com> 2866 2867 * exp_ch3.adb (Build_Assignment): Parameter name N was somewhat 2868 confusing. Same for N_Loc. Remove assumption that b-i-p implies 2869 limited. This is for the case of a function call that occurs as the 2870 default for a record component. 2871 (Expand_N_Object_Declaration): Deal with the case where expansion has 2872 created an object declaration initialized with something like 2873 F(...)'Reference. 2874 * exp_ch3.adb: Minor reformatting. 2875 28762017-10-09 Ed Schonberg <schonberg@adacore.com> 2877 2878 * exp_attr.adb (Expand_Attribute_Reference, case 'Valid): The prefix of 2879 the attribute is an object, but it may appear within a conversion. The 2880 object itself must be retrieved when generating the range test that 2881 implements the validity check on a scalar type. 2882 28832017-10-05 Eric Botcazou <ebotcazou@adacore.com> 2884 2885 PR ada/82393 2886 * mingw32.h (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Delete. 2887 * sysdep.c (__gnat_set_mode ): Use DJGPP version for Cygwin. 2888 28892017-10-02 Eric Botcazou <ebotcazou@adacore.com> 2890 Pierre-Marie de Rodat <derodat@adacore.com> 2891 2892 PR ada/82384 2893 * libgnarl/s-linux__x32.ads (suseconds_t): New subtype. 2894 (time_t): Change from derived type to subtype. 2895 (timeval): Use suseconds_t for tv_usec. 2896 * libgnarl/s-osinte__x32.adb (To_Timespec): Remove use type clause. 2897 28982017-10-02 Richard Sandiford <richard.sandiford@linaro.org> 2899 2900 * gcc-interface/decl.c (annotate_value): Use wi::to_widest when 2901 handling the form (plus/mult (convert @0) @1). 2902 29032017-09-29 Bob Duff <duff@adacore.com> 2904 2905 * exp_ch6.adb (Expand_Call_Helper): Replace with code more similar to 2906 what we had before. 2907 (Make_Build_In_Place_Call_In_Object_Declaration): Back out previous 2908 change. Set the Etype in the class-wide case. This fixes a regression 2909 in the libadalang test suite. 2910 29112017-09-29 Joel Brobecker <brobecker@adacore.com> 2912 2913 * doc/gnat_ugn/building_executable_programs_with_gnat.rst, 2914 doc/gnat_ugn/the_gnat_compilation_model.rst: Avoid use of single colon 2915 in comment markup. 2916 * gnat_ugn.texi: Regenerate. 2917 29182017-09-29 Justin Squirek <squirek@adacore.com> 2919 2920 * ali-util.adb, comperr.adb, cprint.adb, errout.adb, fmap.adb, 2921 fname-sf.adb, frontend.adb, lib-xref-spark_specific.adb, gnat1drv.adb, 2922 gnatls.adb, lib.adb, lib-load.adb, lib-writ.adb, prepcomp.adb, 2923 sinput-d.adb, sinput-l.adb, sprint.adb, targparm.adb: Update comparison 2924 for checking source file status and error message and/or call to 2925 Read_Source_File. 2926 * libgnat/s-os_lib.ads: Add new potential value constant for 2927 uninitialized file descriptors. 2928 * osint.adb, osint.ads (Read_Source_File): Add extra parameter to 2929 return result of IO to encompass a read access failure in addition to a 2930 file-not-found error. 2931 29322017-09-29 Bob Duff <duff@adacore.com> 2933 2934 * exp_ch6.adb (Expand_Call_Helper): Handle case of build-in-place 2935 functions returning nonlimited types. Allow for qualified expressions 2936 and type conversions. 2937 (Expand_N_Extended_Return_Statement): Correct the computation of 2938 Func_Bod to allow for child units. 2939 (Expand_Simple_Function_Return): Remove assumption that b-i-p implies 2940 limited (initialization of In_Place_Expansion), and implies >= Ada 2941 2005. 2942 (Is_Build_In_Place_Result_Type): New function to accompany 2943 Is_Build_In_Place_Function and Is_Build_In_Place_Function_Call, because 2944 sometimes we just have the type on our hands, not the function. For 2945 now, does the same thing as the old version, so build-in-place is 2946 disabled for nonlimited types, except that you can use -gnatd.9 to 2947 enable it. 2948 * exp_ch6.ads (Is_Build_In_Place_Result_Type): New function to 2949 accompany Is_Build_In_Place_Function and 2950 Is_Build_In_Place_Function_Call, because sometimes we just have the 2951 type on our hands, not the function. 2952 (Make_Build_In_Place_Call_In_...): Handle nonlimited build-in-place 2953 cases. 2954 (Make_Build_In_Place_Call_In_Object_Declaration): Remove the 2955 questionable code at the end that was setting the Etype. 2956 * exp_aggr.adb (Is_Build_In_Place_Aggregate_Return): New function to 2957 determine whether "return (...agg...);" is returning from a 2958 build-in-place function. 2959 (Initialize_Ctrl_Array_Component, Initialize_Ctrl_Record_Component): 2960 Remove assumption that b-i-p implies limited (initialization of 2961 In_Place_Expansion). 2962 (Build_Record_Aggr_Code): AI-287: fix comment; it can't be wrapped in 2963 an unchecked conversion. Add assertions. 2964 (Convert_Aggr_In_Object_Decl): Establish_Transient_Scope -- no need for 2965 secondary stack here, just because the type needs finalization. That 2966 code is obsolete. 2967 (Convert_To_Assignments): Only set Unc_Decl if Nkind (N) = N_Aggregate. 2968 For "return (...agg...);" don't assume b-i-p implies limited. 2969 Needs_Finalization does not imply secondary stack. 2970 (Expand_Array_Aggregate): Named notation. Reverse the sense of 2971 Component_OK_For_Backend -- more readability with fewer double 2972 negatives. 2973 * exp_attr.adb (Expand_N_Attribute_Reference): Remove assumptions that 2974 b-i-p implies >= Ada 2005. 2975 * exp_ch3.adb (Expand_N_Object_Declaration): Remove assumptions that 2976 b-i-p implies >= Ada 2005. Remove Adjust if we're building the return 2977 object of an extended return statement in place. 2978 * exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Indexed_Component, 2979 Expand_N_Selected_Component, Expand_N_Slice): Remove assumptions that 2980 b-i-p implies >= Ada 2005. 2981 * exp_ch5.adb (Expand_N_Assignment_Statement): Remove assumption that 2982 b-i-p implies >= Ada 2005. 2983 * exp_ch7.adb: Comment fix. 2984 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Remove 2985 assumptions that b-i-p implies >= Ada 2005. 2986 * exp_disp.adb (Expand_Interface_Actuals): Remove assumptions that 2987 b-i-p implies >= Ada 2005. 2988 * exp_util.adb (Build_Allocate_Deallocate_Proc): Look at Storage_Pool 2989 (Expr), in case Pool_Id is not set. 2990 (Initialized_By_Aliased_BIP_Func_Call): Handle case where the call is 2991 qualified or converted. 2992 (Is_Secondary_Stack_BIP_Func_Call): Don't check if Nkind (Selector_Name 2993 (Param)) = N_Identifier; that's all it could be. 2994 * sinfo.ads: Comment fixes. 2995 * snames.ads-tmpl: Comment fixes. 2996 * debug.adb: Add flag gnatd.9, to enable the build-in-place machinery. 2997 29982017-09-29 Justin Squirek <squirek@adacore.com> 2999 3000 * sem_ch8.adb (Mark_Use_Clauses): Add recursive call to properly handle 3001 all cases related to marking entity identifiers. 3002 30032017-09-29 Vasiliy Fofanov <fofanov@adacore.com> 3004 3005 * adaint.c (win32_wait): Properly handle error and take into account 3006 the WIN32 limitation on the number of simultaneous wait objects. 3007 30082017-09-29 Vasiliy Fofanov <fofanov@adacore.com> 3009 3010 * cal.c: Minor proofreading. 3011 30122017-09-29 Vasiliy Fofanov <fofanov@adacore.com> 3013 3014 * doc/gnat_ugn/gnat_utility_programs.rst: Minor formatting fix. 3015 * gnat_ugn.texi: Regenerate. 3016 30172017-09-29 Bob Duff <duff@adacore.com> 3018 3019 * lib-xref.ads: Comment fix. 3020 30212017-09-29 Bob Duff <duff@adacore.com> 3022 3023 * exp_aggr.adb: Remove calls to Set_No_Ctrl_Actions for discriminants. 3024 Discriminants can't need finalization. 3025 30262017-09-29 Ed Schonberg <schonberg@adacore.com> 3027 3028 * sem_ch6.adb (Analyze_Expression_Function): Do not emit freeze nodes 3029 for types in expression if the function is within a generic unit. 3030 * sem_res.adb (Resolve): In a generic context do not freeze an 3031 expression, unless it is an entity. This exception is solely for the 3032 purpose of detecting illegal uses of deferred constants in generic 3033 units. 3034 * sem_res.adb: Minor reformatting. 3035 30362017-09-29 Justin Squirek <squirek@adacore.com> 3037 3038 * sem_ch8.adb (Note_Redundant_Use): Add guard to protect against false 3039 redundant warnings. 3040 30412017-09-29 Yannick Moy <moy@adacore.com> 3042 3043 * sinput-c.adb: Remove unused with-clause on Ada.Unchecked_Conversion. 3044 30452017-09-29 Eric Botcazou <ebotcazou@adacore.com> 3046 3047 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Minor rewording. 3048 * doc/gnat_rm/implementation_defined_pragmas.rst (Optimize_Alignment): 3049 Document the effect of pragma Optimize_Alignment (Space) on non-packed 3050 record types. 3051 * gnat_rm.texi: Regenerate. 3052 30532017-09-25 Justin Squirek <squirek@adacore.com> 3054 3055 * aspects.adb, bindgen.adb, clean.adb, erroutc.adb, exp_ch13.adb, 3056 exp_dbug.adb, exp_unst.adb, exp_util.adb, frontend.adb, gnat1drv.adb, 3057 gnatdll.adb, gnatlink.adb, gnatls.adb, gnatname.adb, gnatxref.adb, 3058 gnatfind.adb, libgnat/a-cfhama.ads, libgnat/a-exetim__mingw.adb, 3059 libgnat/a-strmap.adb, libgnat/a-teioed.adb, libgnat/g-alvety.ads, 3060 libgnat/g-expect.adb, libgnat/g-regist.adb, libgnat/g-socket.adb, 3061 libgnat/g-socthi__mingw.ads, libgnat/s-stausa.adb, 3062 libgnat/s-tsmona__linux.adb, libgnat/s-tsmona__mingw.adb, 3063 libgnarl/s-taenca.adb, libgnarl/s-tassta.adb, libgnarl/s-tarest.adb, 3064 libgnarl/s-tpobop.adb, make.adb, makeusg.adb, namet.adb, output.ads, 3065 put_scos.adb, repinfo.adb, rtsfind.adb, scn.ads, sem_attr.adb, 3066 sem_aux.ads, sem_warn.ads, targparm.adb, xr_tabls.adb, xref_lib.adb: 3067 Removal of ineffective use-clauses. 3068 * exp_ch9.adb (Is_Simple_Barrier_Name): Check for false positives with 3069 constant folded barriers. 3070 * ghost.adb, sprint.adb, sem_ch10.adb, sem_warn.adb: Change access to 3071 Subtype_Marks and Names list in use-clause nodes to their new singular 3072 counterparts (e.g. Subtype_Mark, Name). 3073 * par.adb, par-ch8.adb (Append_Use_Clause): Created to set 3074 Prev_Ids and More_Ids in use-clause nodes. 3075 (P_Use_Clause): Modify to take a list as a parameter. 3076 (P_Use_Package_Clause, P_Use_Type_Clause): Divide names and 3077 subtype_marks within an aggregate use-clauses into individual clauses. 3078 * par-ch3.adb, par-ch10.adb, par-ch12.adb: Trivally modify call to 3079 P_Use_Clause to match its new behavior. 3080 * sem.adb (Analyze): Mark use clauses for non-overloaded entities. 3081 * sem_ch4.adb (Try_One_Interp): Add sanity check to handle previous 3082 errors. 3083 * sem_ch6.adb (Analyze_Generic_Subprogram_Body, 3084 Analyze_Subprogram_Body_Helper): Update use clause chain at the end of 3085 the declarative region. 3086 * sem_ch7.adb (Analyze_Package_Body_Helper): Update use clause chain 3087 after analysis (Analyze_Package_Specification): Update use clause chain 3088 when there is no body. 3089 * sem_ch8.ads, sem_ch8.adb (Analyze_Use_Package, Analyze_Use_Type): Add 3090 parameter to determine weither the installation of scopes should also 3091 propagate on the use-clause "chain". 3092 (Mark_Use_Clauses): Created to traverse use-clause chains and determine 3093 what constitutes a valid "use" of a clause. 3094 (Update_Use_Clause_Chain): Created to aggregate common machinary used 3095 to clean up use-clause chains (and warn on ineffectiveness) at the end 3096 of declaritive regions. 3097 * sem_ch8.adb (Analyze_Package_Name): Created to perform analysis on a 3098 package name from a use-package clause. 3099 (Analyze_Package_Name_List): Created to perform analysis on a list of 3100 package names (similar to Analyze_Package_Name). 3101 (Find_Most_Prev): Created to traverse to the beginning of a given 3102 use-clause chain. 3103 (Most_Decendant_Use_Clause): Create to identify which clause from a 3104 given set is highest in scope (not always the most prev). 3105 (Use_One_Package, Use_One_Type): Major cleanup and reorganization to 3106 handle the new chaining algorithm, also many changes related to 3107 redundant clauses. A new parameter has also been added to force 3108 installation to handle certain cases. 3109 * sem_ch9.adb (Analyze_Entry_Body, Analyze_Protected_Body, 3110 Analyze_Task_Body): Mark use clauses on relevant entities. 3111 * sem_ch10.adb, sem_ch10.ads (Install_Context_Clauses, 3112 Install_Parents): Add parameter to determine weither the installation 3113 of scopes should also propagate on the use-clause "chain". 3114 * sem_ch12.adb (Inline_Instance_Body): Add flag in call to 3115 Install_Context to avoid redundant chaining of use-clauses. 3116 * sem_ch13.adb: Minor reformatting. 3117 * sem_res.adb (Resolve): Mark use clauses on operators. 3118 (Resolve_Call, Resolve_Entity_Name): Mark use clauses on relevant 3119 entities. 3120 * sinfo.adb, sinfo.ads (Is_Effective_Use_Clause, 3121 Set_Is_Effective_Use_Clause): Add new flag to N_Use_Clause nodes to 3122 represent any given clause's usage/reference/necessity. 3123 (Prev_Use_Clause, Set_Prev_Use_Clause): Add new field to N_Use_Clause 3124 nodes to allow loose chaining of redundant clauses. 3125 (Set_Used_Operations, Set_Subtype_Mark, Set_Prev_Ids, Set_Names, 3126 Set_More_Ids, Set_Name): Modify set procedure calls to reflect 3127 reorganization in node fields. 3128 * types.ads (Source_File_Index): Adjust index bounds. 3129 (No_Access_To_Source_File): New constant. 3130 31312017-09-25 Ed Schonberg <schonberg@adacore.com> 3132 3133 * sem_ch13.adb (Analyze_One_Aspect): In ASIS mode make a full copy of 3134 the expression to be used in the generated attribute specification 3135 (rather than relocating it) to avoid resolving a potentially malformed 3136 tree when the expression is resolved through an ASIS-specific call to 3137 Resolve_Aspect_Expressions. This manifests itself as a crash on a 3138 function with parameter associations. 3139 31402017-09-25 Yannick Moy <moy@adacore.com> 3141 3142 * exp_spark.adb (Expand_SPARK_Indexed_Component, 3143 Expand_SPARK_Selected_Component): New procedures to insert explicit 3144 dereference if required. 3145 (Expand_SPARK): Call the new procedures. 3146 31472017-09-25 Patrick Bernardi <bernardi@adacore.com> 3148 3149 * libgnat/a-stwiun.adb, libgnat/s-stchop__vxworks.adb, 3150 libgnat/g-socthi__vxworks.ads, libgnat/a-stzunb.adb, 3151 libgnat/a-strunb.adb, libgnarl/s-osinte__lynxos178.adb, 3152 libgnarl/s-intman__vxworks.adb, libgnarl/s-osinte__darwin.adb, 3153 libgnarl/a-exetim__darwin.adb: Removed ineffective use-clauses. 3154 31552017-09-25 Vasiliy Fofanov <fofanov@adacore.com> 3156 3157 * adaint.c (win32_wait): Properly handle error and take into account 3158 the WIN32 limitation on the number of simultaneous wait objects. 3159 31602017-09-25 Yannick Moy <moy@adacore.com> 3161 3162 * sem_ch3.adb (Constant_Redeclaration): Do not insert a call to the 3163 invariant procedure in GNATprove mode. 3164 * sem_ch5.adb (Analyze_Assignment): Likewise. 3165 31662017-09-25 Piotr Trojanek <trojanek@adacore.com> 3167 3168 * adabkend.adb (Call_Back_End): Fix wording of "front-end" and 3169 "back-end" in comments. 3170 31712017-09-25 Ed Schonberg <schonberg@adacore.com> 3172 3173 * exp_ch6.adb (Expand_Call_Helper): The extra accessibility check in a 3174 call that appears in a classwide precondition and that mentions an 3175 access formal of the subprogram, must use the accessibility level of 3176 the actual in the call. This is one case in which a reference to a 3177 formal parameter appears outside of the body of the subprogram. 3178 31792017-09-25 Hristian Kirtchev <kirtchev@adacore.com> 3180 3181 * sem_res.adb (Replace_Actual_Discriminants): Replace a discriminant 3182 for GNATprove. 3183 (Resolve_Entry): Clean up predicate 3184 31852017-09-25 Hristian Kirtchev <kirtchev@adacore.com> 3186 3187 * sem_prag.adb (Analyze_Constituent): Raise Unrecoverable_Error rather 3188 than Program_Error because U_E is more in line with respect to the 3189 intended behavior. 3190 31912017-09-25 Ed Schonberg <schonberg@adacore.com> 3192 3193 * sem_ch13.adb (Resolve_Aspect_Expressions): The expression for aspect 3194 Storage_Size does not freeze, and thus can include references to 3195 deferred constants. 3196 31972017-09-25 Hristian Kirtchev <kirtchev@adacore.com> 3198 3199 * exp_spark.adb (Expand_SPARK_Potential_Renaming): Do not process a 3200 reference when it appears within a pragma of no significance to SPARK. 3201 (In_Insignificant_Pragma): New routine. 3202 * sem_prag.ads: Add new table Pragma_Significant_In_SPARK. 3203 32042017-09-25 Ed Schonberg <schonberg@adacore.com> 3205 3206 * sem_ch12.adb (Analyze_Associations, case N_Formal_Package): If the 3207 actual is a renaming, indicate that it is the renamed package that must 3208 be frozen before the instantiation. 3209 32102017-09-25 Yannick Moy <moy@adacore.com> 3211 3212 * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo in description 3213 of dimensionality system in GNAT UG. 3214 * gnat_ugn.texi: Regenerate. 3215 32162017-09-25 Yannick Moy <moy@adacore.com> 3217 3218 * gnat1drv.adb: Call Check_Safe_Pointers from the frontend in 3219 GNATprove_Mode when switch -gnatdF used. 3220 32212017-09-25 Piotr Trojanek <trojanek@adacore.com> 3222 3223 * adabkend.adb (Call_Back_End): Reset Current_Error_Node when starting 3224 the backend. 3225 32262017-09-25 Javier Miranda <miranda@adacore.com> 3227 3228 * exp_imgv.adb (Expand_Image_Attribute): Disable the optimized 3229 expansion of user-defined enumeration types when the generation of 3230 names for enumeration literals is suppressed. 3231 32322017-09-25 Gary Dismukes <dismukes@adacore.com> 3233 3234 * libgnarl/s-taprop__linux.adb: Minor reformatting. 3235 32362017-09-25 Ed Schonberg <schonberg@adacore.com> 3237 3238 * sem_ch13.adb (Resolve_Aspect_Expressions): Do not resolve identifiers 3239 that appear as selector names of parameter associations, as these are 3240 never resolved by visibility. 3241 32422017-09-25 Justin Squirek <squirek@adacore.com> 3243 3244 * sem_res.adb (Resolve_Entry): Generate reference for index entities. 3245 32462017-09-25 Doug Rupp <rupp@adacore.com> 3247 3248 * libgnarl/s-taprop__linux.adb (Compute_Base_Monotonic_Clock): Refine. 3249 32502017-09-25 Javier Miranda <miranda@adacore.com> 3251 3252 * exp_imgv.adb (Is_User_Defined_Enumeration_Type): New subprogram. 3253 (Expand_User_Defined_Enumeration_Image): New subprogram. 3254 (Expand_Image_Attribute): Enable speed-optimized expansion of 3255 user-defined enumeration types when we are compiling with optimizations 3256 enabled. 3257 32582017-09-25 Piotr Trojanek <trojanek@adacore.com> 3259 3260 * sem_util.adb (Has_Null_Abstract_State): Remove, as an exactly same 3261 routine is already provided by Einfo. 3262 * einfo.adb (Has_Null_Abstract_State): Replace with the body from 3263 Sem_Util, which had better comments and avoided double calls to 3264 Abstract_State. 3265 32662017-09-25 Bob Duff <duff@adacore.com> 3267 3268 * exp_ch3.adb: Rename Comp_Type_Simple to be Comp_Simple_Init. 3269 32702017-09-25 Doug Rupp <rupp@adacore.com> 3271 3272 * libgnarl/s-taprop__linux.adb (Base_Monotonic_Clock): New variable. 3273 (Compute_Base_Monotonic_Clock): New function. 3274 (Timed_Sleep): Adjust to use Base_Monotonic_Clock. 3275 (Timed_Delay): Likewise. 3276 (Monotonic_Clock): Likewise. 3277 * s-oscons-tmplt.c (CLOCK_MONOTONIC): Use on Linux. 3278 32792017-09-25 Ed Schonberg <schonberg@adacore.com> 3280 3281 * sem_ch12.adb (Save_References_In_Aggregate): Small correction to 3282 previous change. 3283 32842017-09-25 Hristian Kirtchev <kirtchev@adacore.com> 3285 3286 * exp_ch5.adb, sem_ch4.adb, sem_ch13.adb, sem_attr.adb, exp_ch3.adb: 3287 Minor reformatting. 3288 32892017-09-20 Alexandre Oliva <aoliva@redhat.com> 3290 3291 * gcc-interface/lang.opt (gant, gnatO, gnat): Add RejectNegative. 3292 32932017-09-18 Bob Duff <duff@adacore.com> 3294 3295 * sem_ch4.adb (Complete_Object_Operation): Do not insert 'Access for 3296 reference types in the access-to-access case. 3297 32982017-09-18 Eric Botcazou <ebotcazou@adacore.com> 3299 3300 * sem_attr.adb (Analyze_Access_Attribute): Move check for the presence 3301 of the "aliased" keyword on the prefix from here to... 3302 (Resolve_Attribute) <Attribute_Access>: ...here. Remove useless call 3303 to Check_No_Implicit_Aliasing. 3304 * sinfo.ads (Non_Aliased_Prefix): Delete. 3305 (Set_Non_Aliased_Prefix): Likewise. 3306 * sinfo.adb (Non_Aliased_Prefix): Delete. 3307 (Set_Non_Aliased_Prefix): Likewise. 3308 33092017-09-18 Bob Duff <duff@adacore.com> 3310 3311 * exp_ch5.adb (Build_Formal_Container_Iteration, 3312 Expand_Formal_Container_Element_Loop): Convert the container to the 3313 root type before passing it to the iteration operations, so it will be 3314 of the right type. 3315 33162017-09-18 Bob Duff <duff@adacore.com> 3317 3318 * einfo.ads, validsw.ads, treepr.ads, sem_util.ads: Comment fixes. 3319 33202017-09-18 Bob Duff <duff@adacore.com> 3321 3322 * exp_ch3.adb (Build_Array_Init_Proc): If validity checking is enabled, 3323 and it's a bit-packed array, pass False to the Consider_IS parameter of 3324 Needs_Simple_Initialization. 3325 33262017-09-18 Hristian Kirtchev <kirtchev@adacore.com> 3327 3328 * sem_ch6.adb (Check_Inline_Pragma): Link the newly generated spec to 3329 the preexisting body. 3330 * sem_prag.adb (Check_Inline_Always_Placement): New routine. 3331 (Process_Inline): Verify the placement of pragma Inline_Always. The 3332 pragma must now appear on the initial declaration of the related 3333 subprogram. 3334 33352017-09-18 Ed Schonberg <schonberg@adacore.com> 3336 3337 * sem_ch3.adb (Analyze_Declarations): In ASIS mode, At the end of the 3338 declarative list in a subprogram body, analyze aspext specifications to 3339 provide basic semantic information, because otherwise the aspect 3340 specifications might only be snalyzed during expansion, when related 3341 subprograms are generated. 3342 33432017-09-18 Bob Duff <duff@adacore.com> 3344 3345 * exp_ch9.adb (Is_Simple_Barrier_Name): Follow Original_Node, in case 3346 validity checks have rewritten the tree. 3347 33482017-09-18 Bob Duff <duff@adacore.com> 3349 3350 * sem_util.adb: Comment fixes, and remove redundant Is_Itype check. 3351 33522017-09-18 Ed Schonberg <schonberg@adacore.com> 3353 3354 * sem_ch12.adb (Save_References_In_Aggregate): When constructing a 3355 qualified exxpression for an aggregate in a generic unit, verify that 3356 the scope of the type is itself visible and not hidden, so that the 3357 qualified expression is correctly resolved in any instance. 3358 33592017-09-18 Bob Duff <duff@adacore.com> 3360 3361 * sem_ch4.adb (Analyze_Qualified_Expression): Give an error if the type 3362 mark refers to the current instance. Set the type to Any_Type in that 3363 case, to avoid later crashes. 3364 33652017-09-18 Ed Schonberg <schonberg@adacore.com> 3366 3367 * exp_ch3.adb (Replace_Discriminant_References): New procedure, 3368 subsidiary of Build_Assignment, used to handle the initialization code 3369 for a mutable record component whose default value is an aggregate that 3370 sets the values of the discriminants of the components. 3371 33722017-09-18 Eric Botcazou <ebotcazou@adacore.com> 3373 3374 * sem_ch13.adb (Analyze_Attribute_Definition_Clause) <Address>: Mark 3375 the entity as being volatile for an overlay that toggles the scalar 3376 storage order. 3377 33782017-09-18 Fedor Rybin <frybin@adacore.com> 3379 3380 * doc/gnat_ugn/gnat_utility_programs.rst: Document that gnattest 3381 options -U main and --harness-only are not compatible. 3382 33832017-09-18 Hristian Kirtchev <kirtchev@adacore.com> 3384 3385 * freeze.adb, sem_ch6.adb, sem_res.adb: Minor reformatting. 3386 33872017-09-18 Piotr Trojanek <trojanek@adacore.com> 3388 3389 * einfo.ads (Is_Imported): Update comment, as this 3390 routine also applies to constants. 3391 33922017-09-18 Yannick Moy <moy@adacore.com> 3393 3394 * sem_util.adb (Find_Placement_In_State_Space): Allow generic package 3395 holding state. 3396 33972017-09-18 Justin Squirek <squirek@adacore.com> 3398 3399 * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Change the 3400 constant indication for Pragma_Linker_Section. 3401 34022017-09-18 Bob Duff <duff@adacore.com> 3403 3404 Alternate fix for PR ada/71358 3405 * libgnat/g-comlin.adb (Getopt): Remove manual null access checks. 3406 Instead, make a local copy of Config, and if it's null, allocate an 3407 empty Command_Line_Configuration_Record, so we won't crash on null 3408 pointer dereference. 3409 34102017-09-16 Eric Botcazou <ebotcazou@adacore.com> 3411 3412 * libgnarl/a-intnam__rtems.ads: Update copyright date. 3413 * libgnarl/s-interr__hwint.adb: Likewise. 3414 * libgnarl/s-osinte__kfreebsd-gnu.ads: Likewise. 3415 * libgnarl/s-osinte__rtems.adb: Likewise. 3416 * libgnarl/s-osinte__rtems.ads: Likewise. 3417 34182017-09-13 Nicolas Roche <roche@adacore.com> 3419 3420 * Make-lang.in: In the fallback mechanim, parse the associated .ali 3421 file and try to guess the locations of dependencies. 3422 34232017-09-13 Eric Botcazou <ebotcazou@adacore.com> 3424 3425 * sem_ch13.adb (Register_Address_Clause_Check): New procedure to save 3426 the suppression status of Alignment_Check on the current scope. 3427 (Alignment_Checks_Suppressed): New function to use the saved instead of 3428 the current suppression status of Alignment_Check. 3429 (Address_Clause_Check_Record): Add Alignment_Checks_Suppressed field. 3430 (Analyze_Attribute_Definition_Clause): Instead of manually appending to 3431 the table, call Register_Address_Clause_Check. 3432 (Validate_Address_Clauses): Call Alignment_Checks_Suppressed on the 3433 recorded address clause instead of its entity. 3434 34352017-09-13 Jerome Guitton <guitton@adacore.com> 3436 3437 * libgnarl/s-tpopsp__vxworks-tls.adb, 3438 libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-tpopsp__vxworks.adb 3439 (Self): Register thread if task id is null. 3440 34412017-09-13 Arnaud Charlet <charlet@adacore.com> 3442 3443 * libgnat/s-htable.adb, libgnat/s-htable.ads: Minor style tuning. 3444 34452017-09-13 Arnaud Charlet <charlet@adacore.com> 3446 3447 * lib-xref-spark_specific.adb (Scopes): simplify hash map; now it maps 3448 from an entity to only scope index, as a mapping from an entity to the 3449 same entity was useless. 3450 (Get_Scope_Num): refactor as a simple renaming; rename parameter from N 3451 to E. 3452 (Set_Scope_Num): refactor as a simple renaming; rename parameter from N 3453 to E. 3454 (Is_Constant_Object_Without_Variable_Input): remove local "Result" 3455 variable, just use return statements. 3456 34572017-09-13 Arnaud Charlet <charlet@adacore.com> 3458 3459 * libgnarl/s-vxwext__kernel-smp.adb, 3460 libgnarl/s-tpopsp__vxworks-rtp.adb, libgnarl/s-vxwext__noints.adb: 3461 New file. 3462 34632017-09-13 Hristian Kirtchev <kirtchev@adacore.com> 3464 3465 * einfo.adb: Flag42 is now Is_Controlled_Active. 3466 (Is_Controlled): This attribute is now synthesized. 3467 (Is_Controlled_Active): This attribute is now an explicit flag rather 3468 than a synthesized attribute. (Set_Is_Controlled): Removed. 3469 (Set_Is_Controlled_Active): New routine. 3470 (Write_Entity_Flags): Update the output for Flag42. 3471 * einfo.ads: Update the documentation of the following attributes: 3472 Disable_Controlled, Is_Controlled, Is_Controlled_Active, Is_Controlled 3473 and Is_Controlled_Active have swapped their functionality. 3474 (Is_Controlled): Renamed to Is_Controlled_Active. 3475 (Is_Controlled_Active): Renamed to Is_Controlled. 3476 (Set_Is_Controlled): Renamed to Set_Is_Controlled_Active. 3477 * exp_ch3.adb (Expand_Freeze_Record_Type): Restore the original use of 3478 Is_Controlled. 3479 * exp_util.adb (Has_Some_Controlled_Component): Code clean up. 3480 (Needs_Finalization): Code clean up. Remove the tests for 3481 Disable_Controlled because a) they were incorrect as they would reject 3482 a type which is sublect to the aspect, but may contain controlled 3483 components, and b) they are no longer necessary. 3484 * exp_util.ads (Needs_Finalization): Update comment on documentation. 3485 * freeze.adb (Freeze_Array_Type): Restore the original use of 3486 Is_Controlled. 3487 (Freeze_Record_Type): Restore the original use of Is_Controlled. 3488 * sem_ch3.adb (Analyze_Object_Declaration): Restore the original use of 3489 Is_Controlled. 3490 (Array_Type_Declaration): Restore the original use of Is_Controlled. 3491 (Build_Derived_Private_Type): Restore the original use of 3492 Is_Controlled. 3493 (Build_Derived_Record_Type): Set the Is_Controlled_Active flag of a 3494 type derived from Ada.Finalization.[Limited_]Controlled. 3495 (Build_Derived_Type): Restore the original use of Is_Controlled. 3496 (Record_Type_Definition): Restore the original use of Is_Controlled. 3497 * sem_ch7.adb (Preserve_Full_Attributes): Restore the original use of 3498 Is_Controlled. 3499 * sem_ch13.adb (Analyze_Aspect_Disable_Controlled): New routine. 3500 (Analyze_Aspect_Specifications): Use routine 3501 Analyze_Aspect_Disable_Controlled to process aspect Disable_Controlled. 3502 35032017-09-13 Vincent Celier <celier@adacore.com> 3504 3505 * clean.adb (Gnatclean): Fix error when looking for target 3506 of <target>-gnatclean 3507 35082017-09-13 Javier Miranda <miranda@adacore.com> 3509 Ed Schonberg <schonberg@adacore.com> 3510 3511 * sem_ch8.adb (Find_Expanded_Name): Complete code that identifies an 3512 expanded name that designates the current instance of a child unit in 3513 its own body and appears as the prefix of a reference to an entity 3514 local to the child unit. 3515 35162017-09-12 Bob Duff <duff@adacore.com> 3517 3518 * sem_warn.adb: Minor comment. 3519 35202017-09-12 Bob Duff <duff@adacore.com> 3521 3522 * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb, 3523 libgnat/a-cbmutr.adb, libgnat/a-cborma.adb: Rename New_Item to 3524 be Default_Initialized_Item, and apply pragma Unmodified to it, 3525 to suppress the warning. 3526 35272017-09-12 Eric Botcazou <ebotcazou@adacore.com> 3528 3529 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Add early return 3530 for access types. 3531 35322017-09-12 Yannick Moy <moy@adacore.com> 3533 3534 * gnat1drv.adb (Adjust_Global_Switches): Consider Refined_Global 3535 together with Global when ignoring one in CodePeer mode. 3536 35372017-09-12 Javier Miranda <miranda@adacore.com> 3538 3539 * sem_ch3.adb (Analyze_Declarations): In nested 3540 package declarations that have a private part enable missing check 3541 of the RM rule 13.1.1(11/3): usage names in aspect definitions are 3542 resolved at the end of the immediately enclosing declaration list. 3543 35442017-09-12 Bob Duff <duff@adacore.com> 3545 3546 * sem_ch6.adb (Analyze_Expression_Function): Initialize Def_Id to 3547 Empty. 3548 35492017-09-12 Georges-Axel Jaloyan <jaloyan@adacore.com> 3550 3551 * debug.adb: Reserving flag -gnatdF for safe pointer checking. 3552 * gnat1drv.adb (gnat1drv): Adding the call to the analysis on 3553 dF flag. 3554 * sem_spark.adb, sem_spark.ads: Implementation of the analysis, 3555 in preparation for the evolution of the SPARK language that 3556 includes a pointer analysis for checking non-aliasing of access 3557 types. The Check_Safe_Pointers function is the entry point, and 3558 will traverse the AST and raise compile-time errors everytime 3559 it detects non-begign aliasing. Detailed comments are present 3560 in the sem_spark.ads file. 3561 * sem_util.adb, sem_util.ads (First_Global, Next_Global): New 3562 functions to iterate over the list of globals of a subprogram. 3563 * libgnat/system.ads: Add restriction No_Finalization. 3564 * gcc-interface/Make-lang.in: Add new file sem_spark.adb and 3565 dependency on g-dynhta.adb. 3566 35672017-09-12 Bob Duff <duff@adacore.com> 3568 3569 * sem_ch6.adb (Analyze_Expression_Function): Call 3570 Check_Dynamically_Tagged_Expression. 3571 * sem_util.adb (Check_Dynamically_Tagged_Expression): Remove 3572 "and then Is_Tagged_Type (Typ)" because there is an earlier 3573 "Assert (Is_Tagged_Type (Typ))". 3574 35752017-09-12 Eric Botcazou <ebotcazou@adacore.com> 3576 3577 * gcc-interface/Makefile.in (SPARC/Solaris): Remove obsolete stuff. 3578 35792017-09-11 Arnaud Charlet <charlet@adacore.com> 3580 3581 * doc/gnat_ugn/the_gnat_compilation_model.rst: Fix sphinx warning. 3582 * doc/gnat_ugn/platform_specific_information.rst: Remove doc 3583 for no longer supported platforms. 3584 * doc/gnat_ugn/gnat_and_program_execution.rst: Added detailed 3585 description of the semantics for dimensionality analysis. 3586 * gnat_ugn.texi: Regenerated. 3587 35882017-09-11 Eric Botcazou <ebotcazou@adacore.com> 3589 3590 * freeze.adb (Has_Incomplete_Compoent): Delete. 3591 (Freeze_Profile): 3592 Do not inhibit the freezing of the profile of an expression 3593 function here. 3594 (Freeze_Subprogram): Do not re-create extra formals. 3595 * sem_ch6.adb (Analyze_Expression_Function): Always 3596 pre-analyze the expression if the function is not a completion. 3597 (Analyze_Subprogram_Body_Helper): For the body generated 3598 from an expression function that is not a completion, do 3599 not freeze the profile and temporary mask the types declared 3600 outside the expression that are not yet frozen. 3601 * sem_res.adb (Rewrite_Renamed_Operator): Also bail out if invoked 3602 during the pre-analysis of an expression function. 3603 36042017-09-11 Eric Botcazou <ebotcazou@adacore.com> 3605 3606 * gcc-interface/gigi.h (enum standard_datatypes): Minor tweak. 3607 (gigi): Likewise. 3608 36092017-09-11 Yannick Moy <moy@adacore.com> 3610 3611 * lib-xref-spark_specific.adb: Minor rewrite. 3612 36132017-09-11 Jerome Lambourg <lambourg@adacore.com> 3614 3615 * libgnat: Rename ?-[a-z]*-* into ?-[a-z]*__* 3616 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Take this 3617 renaming into account. 3618 36192017-09-11 Jerome Lambourg <lambourg@adacore.com> 3620 3621 * libgnarl: Rename ?-[a-z]*-* into ?-[a-z]*__* 3622 * gcc-interface/Makefile.in: Take this renaming into account. 3623 36242017-09-11 Arnaud Charlet <charlet@adacore.com> 3625 3626 * s-auxdec-empty.ads, s-auxdec-empty.adb, 9drpc.adb: Removed, no 3627 longer used. 3628 36292017-09-11 Yannick Moy <moy@adacore.com> 3630 3631 * sem_util.adb (Check_Result_And_Post_State): 3632 Do not issue a warning about missing reference to an outcome if 3633 the subprogram is ghost and has no outputs. 3634 * lib-xref-spark_specific.adb, sem_aggr.adb, sem_aux.ads: Minor 3635 reformatting. 3636 36372017-09-11 Yannick Moy <moy@adacore.com> 3638 3639 * gnat1drv.adb (Adjust_Global_Switches): Set 3640 Check_Validity_Of_Parameters to False in GNATprove mode. 3641 * opt.ads (Check_Validity_Of_Parameters): Document switch to 3642 set option. 3643 36442017-09-09 Pierre-Marie de Rodat <derodat@adacore.com> 3645 3646 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Don't 3647 generate debug info for inner record types if -fgnat-encodings=minimal. 3648 (gnat_to_gnu_entity) <E_Record_Subtype>: Use the ultimate base record 3649 type as the debug type. 3650 36512017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3652 3653 * gcc-interface/decl.c (components_to_record): Do not reorder in non- 3654 packed record types if pragma Optimize_Alignment (Space) is enabled. 3655 36562017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3657 3658 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Disregard inlining 3659 limits for expression functions. 3660 (gnat_to_gnu) <N_Object_Declaration>: Fix formatting. 3661 36622017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3663 3664 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Copy the 3665 layout of the record from the parent type only if both are or are not 3666 unchecked unions. 3667 (is_stored_discriminant): Return false for an unchecked union. 3668 36692017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3670 3671 * gcc-interface/utils2.c (build_allocator): In type_annotate_only mode 3672 return NULL_EXPR. 3673 36742017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3675 3676 * gcc-interface/decl.c (promote_object_alignment): New function taken 3677 from... 3678 (gnat_to_gnu_entity) <E_Variable>: ...here. Invoke it. 3679 (gnat_to_gnu_field): If the field is Atomic or VFA, invoke it and 3680 create a padding type on success before doing the atomic check. 3681 36822017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3683 3684 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Variable>: Apply the 3685 promotion to static memory earlier in the processing. 3686 36872017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3688 3689 * gcc-interface/decl.c (gnat_to_gnu_entity): Only set the TYPE_ALIGN_OK 3690 and TYPE_BY_REFERENCE_P flags on types after various promotions. 3691 * gcc-interface/trans.c (node_has_volatile_full_access) <N_Identifier>: 3692 Consider all kinds of entities. 3693 36942017-09-09 Eric Botcazou <ebotcazou@adacore.com> 3695 3696 * gcc-interface/utils.c (convert): When converting to a padding type, 3697 reuse an existing CONSTRUCTOR if it has got the right size. 3698 36992017-09-08 Nicolas Roche <roche@adacore.com> 3700 3701 * gcc-interface/Make-lang.in, gcc-interface/Makefile.in: Find runtime 3702 source in libgnat/ 3703 * a-lfztio.ads, g-timsta.ads, g-sercom-linux.adb, s-osprim-solaris.adb, 3704 a-inteio.ads, s-stchop-rtems.adb, s-casuti.adb, s-pack39.adb, 3705 i-vxwork-x86.ads, a-strbou.adb, a-stzmap.adb, s-assert.adb, 3706 a-sfecin.ads, a-cohama.adb, s-casuti.ads, a-suenco.adb, s-pack39.ads, 3707 a-stzmap.ads, a-strbou.ads, s-stalib.adb, s-trasym.adb, g-comver.adb, 3708 s-assert.ads, s-vector.ads, g-cgi.adb, a-cohama.ads, s-wchcnv.adb, 3709 a-titest.adb, s-pack48.adb, a-suenco.ads, a-strunb.adb, s-stalib.ads, 3710 s-trasym.ads, a-nudira.adb, g-comver.ads, a-nuflra.adb, g-cgi.ads, 3711 a-chacon.adb, s-wchcnv.ads, a-excach.adb, s-pack48.ads, a-titest.ads, 3712 a-strunb.ads, s-dwalin.adb, a-nudira.ads, a-chtgbo.adb, s-resfil.adb, 3713 a-scteio.ads, a-nuflra.ads, g-soliop-mingw.ads, s-pack57.adb, 3714 a-chacon.ads, s-bytswa.ads, s-pooloc.adb, g-os_lib.adb, s-dwalin.ads, 3715 a-szuzha.adb, s-resfil.ads, a-chtgbo.ads, s-spsufi.adb, s-pack57.ads, 3716 s-pooloc.ads, g-os_lib.ads, a-stfiha.ads, a-lcteio.ads, a-wtcoau.adb, 3717 a-szuzha.ads, s-mmosin-unix.adb, a-stmaco.ads, s-spsufi.ads, 3718 s-stchop-limit.ads, a-wtcoau.ads, a-exctra.adb, s-mmosin-unix.ads, 3719 s-sequio.adb, s-conca2.adb, g-table.adb, s-imglli.adb, 3720 a-numaux-x86.adb, a-strsea.adb, s-wchstw.adb, a-clrefi.adb, 3721 a-wwboio.adb, a-exctra.ads, s-sequio.ads, s-conca2.ads, a-wwunio.ads, 3722 system-linux-hppa.ads, g-table.ads, s-dimkio.ads, s-imglli.ads, 3723 a-cofove.adb, a-numaux-x86.ads, s-wchstw.ads, a-strsea.ads, 3724 a-clrefi.ads, a-wwboio.ads, s-stratt-xdr.adb, s-crc32.adb, 3725 s-excmac-arm.adb, g-busora.adb, a-cofove.ads, s-osprim-unix.adb, 3726 g-io.adb, s-pack49.adb, s-crc32.ads, s-excmac-arm.ads, a-fzteio.ads, 3727 g-busora.ads, s-stausa.adb, system-linux-mips.ads, sequenio.ads, 3728 g-exctra.adb, g-rewdat.adb, a-cgaaso.adb, g-io.ads, s-pack49.ads, 3729 a-wtflau.adb, a-undesu.adb, s-stausa.ads, a-ztenau.adb, g-enutst.ads, 3730 calendar.ads, s-pack58.adb, g-rewdat.ads, g-exctra.ads, s-ststop.adb, 3731 a-cgaaso.ads, a-strfix.adb, a-comlin.adb, a-strunb-shared.adb, 3732 a-wtflau.ads, a-undesu.ads, a-cbhase.adb, a-ztenau.ads, s-os_lib.adb, 3733 a-coorse.adb, a-chlat1.ads, s-pack58.ads, s-ststop.ads, a-strfix.ads, 3734 a-comlin.ads, a-strunb-shared.ads, a-nscefu.ads, s-valboo.adb, 3735 directio.ads, a-chtgke.adb, a-cbhase.ads, a-wtinau.adb, 3736 system-linux-alpha.ads, s-os_lib.ads, a-coorse.ads, 3737 system-linux-s390.ads, s-imgwiu.adb, a-chtgop.adb, s-valboo.ads, 3738 a-chtgke.ads, a-tienio.adb, s-conca3.adb, a-wtinau.ads, 3739 system-darwin-ppc.ads, i-c.adb, s-expllu.adb, g-expect.adb, 3740 g-sha256.ads, s-vallld.adb, s-imgwiu.ads, a-chtgop.ads, a-strmap.adb, 3741 a-tienio.ads, s-conca3.ads, s-imgint.adb, i-c.ads, s-expllu.ads, 3742 s-osprim-darwin.adb, a-cogeso.adb, g-expect.ads, a-iwteio.ads, 3743 s-vallld.ads, a-coinho-shared.adb, g-shsh64.adb, a-strmap.ads, 3744 g-comlin.adb, a-excpol.adb, s-imgint.ads, a-ztdeau.adb, a-cogeso.ads, 3745 a-coinho-shared.ads, g-shsh64.ads, g-comlin.ads, a-stzsup.adb, 3746 a-rbtgbk.adb, a-wtmoau.adb, a-ztdeau.ads, s-exnlli.adb, g-tty.adb, 3747 g-heasor.adb, g-socthi-dummy.adb, s-llflex.ads, a-zchara.ads, 3748 a-stzsup.ads, a-ztcstr.adb, a-rbtgbk.ads, a-sfwtio.ads, a-wtmoau.ads, 3749 a-sulcin.adb, s-exnlli.ads, system-freebsd.ads, a-stunha.adb, 3750 a-charac.ads, g-tty.ads, g-heasor.ads, s-exctra.adb, 3751 g-socthi-dummy.ads, a-coboho.adb, a-ztcstr.ads, a-tideio.adb, 3752 a-sulcin.ads, a-wrstfi.adb, g-alleve.adb, s-pack59.adb, a-ngrear.adb, 3753 a-stboha.adb, a-stunau-shared.adb, a-stunha.ads, a-lfwtio.ads, 3754 s-fileio.adb, s-exctra.ads, a-coboho.ads, a-ioexce.ads, a-tideio.ads, 3755 a-ngrear.ads, a-wrstfi.ads, s-pack59.ads, g-alleve.ads, a-stboha.ads, 3756 s-poosiz.adb, g-traceb.adb, g-rannum.adb, machcode.ads, s-purexc.ads, 3757 s-fileio.ads, a-cfinve.adb, a-crbtgk.adb, system-solaris-x86.ads, 3758 s-poosiz.ads, g-rannum.ads, g-traceb.ads, a-except.adb, s-conca4.adb, 3759 a-stream.adb, a-cfinve.ads, a-crbtgk.ads, s-wchwts.adb, 3760 system-mingw.ads, a-except.ads, s-conca4.ads, a-chzla9.ads, 3761 s-valenu.adb, s-soflin.adb, a-stream.ads, a-cgarso.adb, s-valllu.adb, 3762 g-crc32.adb, s-wchwts.ads, s-fatflt.ads, s-imguns.adb, s-strcom.adb, 3763 g-decstr.adb, s-valenu.ads, s-soflin.ads, a-cgarso.ads, a-cwila1.ads, 3764 s-valllu.ads, g-crc32.ads, s-imguns.ads, g-spipat.adb, s-valwch.adb, 3765 s-strcom.ads, g-decstr.ads, text_io.ads, g-debuti.adb, s-stchop.adb, 3766 g-spipat.ads, s-valwch.ads, a-string.ads, s-exnint.adb, g-awk.adb, 3767 g-tasloc.adb, s-wwdenu.adb, s-boustr.adb, a-zchuni.adb, s-stchop.ads, 3768 g-debuti.ads, s-stopoo.adb, system-dragonfly-x86_64.ads, 3769 system-linux-x86.ads, s-exnint.ads, g-awk.ads, a-stzhas.adb, 3770 g-tasloc.ads, s-wwdenu.ads, g-debpoo.adb, g-except.ads, 3771 g-sse.ads, s-boustr.ads, a-zchuni.ads, s-bitops.adb, s-wwdwch.adb, 3772 s-stopoo.ads, a-catizo.adb, a-stzhas.ads, a-nlcefu.ads, g-debpoo.ads, 3773 i-vxwoio.adb, s-bitops.ads, g-io-put-vxworks.adb, s-wwdwch.ads, 3774 g-sehamd.adb, a-ssicst.adb, a-catizo.ads, s-mmap.adb, g-string.adb, 3775 s-traceb.adb, a-swunau.adb, s-rannum.adb, a-ticoau.adb, i-vxwoio.ads, 3776 g-sehamd.ads, a-stwiun.adb, a-ssicst.ads, s-conca5.adb, a-ssitio.ads, 3777 s-mmap.ads, a-zttest.adb, g-string.ads, g-sercom.adb, a-cdlili.adb, 3778 a-swunau.ads, s-traceb.ads, s-rannum.ads, a-ticoau.ads, system-aix.ads, 3779 a-cforma.adb, a-stwiun.ads, s-conca5.ads, s-carsi8.adb, a-zttest.ads, 3780 g-sercom.ads, a-cdlili.ads, a-cihama.adb, g-sptain.ads, a-cforma.ads, 3781 s-maccod.ads, s-carsi8.ads, a-strsup.adb, g-sha1.adb, a-cihama.ads, 3782 g-stseme.adb, s-traent.adb, s-valcha.adb, g-curexc.ads, a-strsup.ads, 3783 g-sha1.ads, a-sflcin.ads, s-traent.ads, s-pack10.adb, s-valcha.ads, 3784 a-coteio.ads, s-tasloc.adb, g-utf_32.adb, a-suteio.adb, s-except.adb, 3785 a-direct.adb, g-stsifd-sockets.adb, a-numaux-vxworks.ads, s-winext.ads, 3786 s-pack10.ads, a-ztexio.adb, a-tiflau.adb, system-vxworks-arm.ads, 3787 s-tasloc.ads, a-suteio.ads, g-utf_32.ads, s-except.ads, 3788 a-direct.ads, a-swbwha.adb, g-hesorg.adb, s-wwdcha.adb, a-wtedit.adb, 3789 a-ztexio.ads, a-wtcoio.adb, a-tiflau.ads, a-ssizti.ads, s-casi32.adb, 3790 a-swbwha.ads, s-veboop.adb, g-hesorg.ads, s-parame-rtems.adb, 3791 s-wwdcha.ads, a-wtedit.ads, a-stuten.adb, a-coinve.adb, a-wtcoio.ads, 3792 s-casi32.ads, s-string.adb, a-tiinau.adb, a-cusyqu.adb, s-conca6.adb, 3793 s-veboop.ads, a-cgcaso.adb, a-numaux-darwin.adb, a-envvar.adb, 3794 a-stuten.ads, s-secsta.adb, a-coinve.ads, s-string.ads, a-cusyqu.ads, 3795 a-tiinau.ads, s-osprim-vxworks.adb, s-conca6.ads, g-spchge.adb, 3796 s-parint.adb, a-cuprqu.adb, a-cgcaso.ads, a-numaux-darwin.ads, 3797 a-envvar.ads, s-secsta.ads, g-spchge.ads, s-parint.ads, a-cuprqu.ads, 3798 a-swuwti.adb, a-flteio.ads, a-sbhcin.adb, a-coprnu.adb, g-u3spch.adb, 3799 s-atocou.adb, g-ctrl_c.adb, a-swuwti.ads, a-calend.adb, a-sbhcin.ads, 3800 a-coprnu.ads, g-dirope.adb, g-sha512.ads, g-u3spch.ads, s-atocou.ads, 3801 g-ctrl_c.ads, a-timoau.adb, a-witeio.adb, s-pack11.adb, a-strhas.adb, 3802 a-wtflio.adb, g-spitbo.adb, a-calend.ads, a-ztenio.adb, g-dirope.ads, 3803 a-slcain.adb, g-sechas.adb, a-timoau.ads, a-witeio.ads, s-pack11.ads, 3804 s-shasto.adb, s-traceb-mastop.adb, a-ciorse.adb, s-utf_32.adb, 3805 a-strhas.ads, a-wtflio.ads, g-spitbo.ads, a-ztenio.ads, a-slcain.ads, 3806 g-sechas.ads, s-gearop.adb, a-siztio.ads, s-pack20.adb, s-shasto.ads, 3807 a-ciorse.ads, s-utf_32.ads, s-crtl.ads, a-wtinio.adb, s-elaall.adb, 3808 s-explli.adb, s-chepoo.ads, s-gearop.ads, a-einuoc.adb, s-pack20.ads, 3809 system-linux-ia64.ads, a-swunau-shared.adb, a-wtinio.ads, g-alvety.ads, 3810 a-liztio.ads, g-calend.adb, s-conca7.adb, s-elaall.ads, s-explli.ads, 3811 a-einuoc.ads, s-widboo.adb, s-imgdec.adb, a-cbhama.adb, g-calend.ads, 3812 s-conca7.ads, a-llitio.ads, i-cexten.ads, a-coorma.adb, s-widboo.ads, 3813 s-diflio.adb, g-souinf.ads, s-imgdec.ads, g-strhas.ads, a-cbhama.ads, 3814 g-shshco.adb, a-ztdeio.adb, s-gloloc.adb, a-coorma.ads, g-wispch.adb, 3815 s-pack03.adb, g-eacodu.adb, s-casi16.adb, s-diflio.ads, a-colien.adb, 3816 g-shshco.ads, a-wtmoio.adb, a-rbtgbo.adb, a-ztdeio.ads, 3817 system-rtems.ads, s-gloloc.ads, a-csquin.ads, a-cofuse.adb, 3818 g-wispch.ads, s-pack03.ads, s-casi16.ads, s-io.adb, a-colien.ads, 3819 g-alveop.adb, gnat.ads, s-diinio.adb, a-cfdlli.adb, g-pehage.adb, 3820 a-wtmoio.ads, a-stwiha.adb, a-locale.adb, a-tirsfi.adb, a-nscoty.ads, 3821 a-rbtgbo.ads, s-pack12.adb, a-cofuse.ads, a-sfteio.ads, s-io.ads, 3822 g-alveop.ads, a-cfdlli.ads, s-diinio.ads, a-stwiha.ads, g-pehage.ads, 3823 a-locale.ads, a-tirsfi.ads, s-pack12.ads, s-valuti.adb, g-cppexc.adb, 3824 system-vxworks-ppc.ads, g-memdum.adb, a-lfteio.ads, s-pack21.adb, 3825 s-unstyp.ads, s-valuti.ads, g-cppexc.ads, system-hpux-ia64.ads, 3826 g-memdum.ads, g-soccon.ads, g-altive.ads, a-crbtgo.adb, s-pack21.ads, 3827 a-llizti.ads, a-numaux-libc-x86.ads, s-expint.adb, s-conca8.adb, 3828 a-crbtgo.ads, s-pack30.adb, s-vallli.adb, s-geveop.adb, s-expint.ads, 3829 a-direio.adb, s-conca8.ads, a-widcha.ads, s-pack30.ads, s-vallli.ads, 3830 s-strhas.adb, s-geveop.ads, g-md5.adb, a-direio.ads, a-numaux.ads, 3831 s-ransee.adb, a-szbzha.adb, i-cobol.adb, g-busorg.adb, s-strhas.ads, 3832 g-md5.ads, s-widenu.adb, s-ransee.ads, s-widllu.adb, a-szbzha.ads, 3833 a-ststio.adb, i-cobol.ads, g-busorg.ads, g-regpat.adb, s-widenu.ads, 3834 a-secain.adb, s-widllu.ads, s-pack13.adb, g-encstr.adb, a-ztcoau.adb, 3835 a-ststio.ads, s-widwch.adb, g-regpat.ads, s-atacco.adb, a-cborse.adb, 3836 a-secain.ads, s-pack13.ads, g-encstr.ads, a-ztcoau.ads, s-widwch.ads, 3837 g-io_aux.adb, s-atacco.ads, a-ncelfu.ads, interfac.ads, a-cborse.ads, 3838 g-regexp.adb, s-pack22.adb, a-szuzti.adb, g-io_aux.ads, s-caun32.adb, 3839 a-nselfu.ads, g-regexp.ads, s-pack22.ads, a-ticoio.adb, a-szuzti.ads, 3840 g-diopit.adb, s-caun32.ads, s-conca9.adb, a-tags.adb, a-swmwco.ads, 3841 a-sbecin.adb, s-pack31.adb, s-expuns.adb, a-ticoio.ads, s-valint.adb, 3842 s-conca9.ads, g-diopit.ads, a-tags.ads, a-nllcef.ads, a-izteio.ads, 3843 a-sbecin.ads, s-expuns.ads, s-pack31.ads, g-dyntab.adb, s-powtab.ads, 3844 s-flocon-none.adb, s-valint.ads, a-ssiwti.ads, s-mmosin-mingw.adb, 3845 s-pack40.adb, s-pack05.adb, a-ztflau.adb, g-dyntab.ads, 3846 a-szuzti-shared.adb, g-alvevi.ads, a-stwise.adb, s-mmosin-mingw.ads, 3847 s-pack40.ads, a-diocst.adb, a-ztflau.ads, s-pack05.ads, a-nlcoty.ads, 3848 a-contai.ads, a-stwisu.adb, g-byorma.adb, a-siwtio.ads, a-stwise.ads, 3849 s-regpat.adb, g-mbdira.adb, s-pack14.adb, a-diocst.ads, g-flocon.ads, 3850 g-mbflra.adb, a-ztinau.adb, s-dim.ads, s-mantis.adb, a-stwisu.ads, 3851 g-byorma.ads, s-atopri.adb, g-wistsp.ads, a-uncdea.ads, s-widcha.adb, 3852 a-caldel.adb, s-regpat.ads, g-mbdira.ads, a-tiflio.adb, s-pack14.ads, 3853 s-parame.adb, a-liwtio.ads, s-memory.adb, g-mbflra.ads, a-ztinau.ads, 3854 a-wtgeau.adb, s-direio.adb, s-mantis.ads, s-atopri.ads, s-widcha.ads, 3855 a-caldel.ads, s-pack23.adb, a-unccon.ads, a-tiflio.ads, s-parame.ads, 3856 a-llftio.ads, s-memory.ads, s-regexp.adb, a-wtgeau.ads, a-exexda.adb, 3857 s-direio.ads, s-pack23.ads, g-stheme.adb, a-tiinio.adb, g-sestin.ads, 3858 s-regexp.ads, a-wtfiio.adb, a-comutr.adb, a-exexpr.adb, a-tiinio.ads, 3859 a-ztmoau.adb, a-cohata.ads, a-wtfiio.ads, s-imgrea.adb, ada.ads, 3860 a-szunau-shared.adb, a-comutr.ads, s-valuns.adb, a-ztmoau.ads, 3861 system-linux-arm.ads, s-osprim-x32.adb, s-pack41.adb, s-pack06.adb, 3862 s-imgrea.ads, s-valuns.ads, s-finroo.adb, s-caun16.adb, s-pooglo.adb, 3863 a-zrstfi.adb, a-suenst.adb, s-pack41.ads, g-binenv.adb, s-pack06.ads, 3864 a-calari.adb, a-nlcoar.ads, s-finroo.ads, a-timoio.adb, s-caun16.ads, 3865 s-flocon.adb, a-suenst.ads, a-zrstfi.ads, s-pooglo.ads, s-wchcon.adb, 3866 s-traceb-hpux.adb, s-pack50.adb, i-fortra.adb, s-pack15.adb, 3867 a-ngcefu.adb, g-sptavs.ads, g-binenv.ads, s-wchjis.adb, a-calari.ads, 3868 a-timoio.ads, a-decima.adb, s-flocon.ads, s-wchcon.ads, a-llfzti.ads, 3869 i-fortra.ads, s-pack50.ads, s-pack15.ads, a-ngcefu.ads, a-cfhase.adb, 3870 s-wchjis.ads, g-soliop.ads, a-decima.ads, a-chlat9.ads, s-pack24.adb, 3871 a-nlelfu.ads, a-cfhase.ads, g-locfil.adb, s-atocou-builtin.adb, 3872 s-memcop.ads, a-szunau.adb, s-pack24.ads, s-imgllb.adb, s-auxdec.adb, 3873 g-locfil.ads, s-pack33.adb, a-szunau.ads, s-parame-vxworks.adb, 3874 s-imgllb.ads, a-ciorma.adb, s-auxdec.ads, a-cobove.adb, s-dsaser.ads, 3875 a-elchha.adb, s-pack33.ads, a-cofuve.adb, s-parame-vxworks.ads, 3876 a-ciorma.ads, system-darwin-x86.ads, s-multip.adb, a-stwiun-shared.adb, 3877 a-wichun.adb, a-cobove.ads, s-imgbiu.adb, s-tsmona-mingw.adb, 3878 a-coormu.adb, a-siocst.adb, s-win32.ads, a-elchha.ads, s-pack42.adb, 3879 s-pack07.adb, a-cofuve.ads, system-hpux.ads, a-teioed.adb, 3880 a-convec.adb, g-speche.adb, s-multip.ads, a-stwiun-shared.ads, 3881 a-wichun.ads, s-imgbiu.ads, a-numeri.ads, a-siocst.ads, a-coormu.ads, 3882 a-lliwti.ads, s-pack42.ads, s-pack07.ads, a-teioed.ads, a-convec.ads, 3883 g-speche.ads, g-socthi.adb, a-nucoty.ads, a-szmzco.ads, s-pack51.adb, 3884 s-osprim-mingw.adb, s-casi64.adb, g-strspl.ads, g-socthi.ads, 3885 g-socket-dummy.adb, s-pack51.ads, s-dimmks.ads, s-casi64.ads, 3886 a-wtenau.adb, s-stchop-vxworks.adb, s-pack60.adb, 3887 system-solaris-sparc.ads, s-pack25.adb, g-socket-dummy.ads, 3888 a-exstat.adb, a-cofuma.adb, s-tsmona-linux.adb, a-wtenau.ads, 3889 s-pack60.ads, s-pack25.ads, i-cstrea.adb, a-cofuma.ads, g-exptty.adb, 3890 a-chzla1.ads, s-pack34.adb, i-cstrea.ads, s-excdeb.adb, a-iteint.ads, 3891 g-exptty.ads, i-pacdec.adb, s-pack34.ads, s-rident.ads, s-sopco3.adb, 3892 i-vxwork.ads, s-excdeb.ads, system-linux-ppc.ads, a-swuwti-shared.adb, 3893 s-widlli.adb, s-pack43.adb, i-pacdec.ads, a-cwila9.ads, s-sopco3.ads, 3894 a-fwteio.ads, s-widlli.ads, s-pack43.ads, a-suhcin.adb, a-wtdeau.adb, 3895 g-allein.ads, a-suezst.adb, a-dirval-mingw.adb, g-zspche.adb, 3896 s-bignum.adb, a-ztedit.adb, g-regist.adb, a-nllefu.ads, a-ztcoio.adb, 3897 s-pack52.adb, a-llctio.ads, a-nucoar.ads, s-pack17.adb, a-suhcin.ads, 3898 a-wtdeau.ads, a-suezst.ads, a-dirval.adb, g-zspche.ads, g-regist.ads, 3899 a-ztedit.ads, s-bignum.ads, a-wtcstr.adb, system.ads, s-pack52.ads, 3900 a-ztcoio.ads, s-pack17.ads, s-imgboo.adb, a-rbtgso.adb, a-dirval.ads, 3901 a-cohase.adb, s-pack61.adb, a-wtcstr.ads, s-pack26.adb, s-osprim.ads, 3902 a-tigeau.adb, s-imgboo.ads, a-nuelfu.ads, a-swfwha.ads, s-commun.adb, 3903 g-socthi-vxworks.adb, a-rbtgso.ads, a-cohase.ads, g-zstspl.ads, 3904 s-pack61.ads, s-pack26.ads, a-intnam-dragonfly.ads, s-imglld.adb, 3905 a-tigeau.ads, s-commun.ads, g-socthi-vxworks.ads, a-cborma.adb, 3906 a-stwifi.adb, g-moreex.adb, s-pack35.adb, s-imglld.ads, s-valdec.adb, 3907 a-tifiio.adb, a-cborma.ads, g-moreex.ads, a-stwifi.ads, s-pack35.ads, 3908 s-sopco4.adb, g-sha224.ads, g-socket.adb, a-intnam-rtems.ads, 3909 s-finmas.adb, s-valdec.ads, s-addima.adb, a-finali.adb, a-tifiio.ads, 3910 s-rpc.adb, a-ztflio.adb, s-pack44.adb, s-pack09.adb, a-sblcin.adb, 3911 s-sopco4.ads, a-textio.adb, g-socket.ads, g-sptabo.ads, s-finmas.ads, 3912 g-shsh32.adb, s-addima.ads, a-finali.ads, s-mmauni-long.ads, s-rpc.ads, 3913 a-ztflio.ads, system-djgpp.ads, s-stache.adb, s-pack44.ads, 3914 s-pack09.ads, a-sblcin.ads, a-textio.ads, a-cidlli.adb, g-shsh32.ads, 3915 a-chtgbk.adb, a-tiocst.adb, s-pack53.adb, s-pack18.adb, s-stache.ads, 3916 a-zchhan.adb, s-fatlfl.ads, a-ztinio.adb, s-strops.adb, a-siteio.ads, 3917 a-cidlli.ads, a-chtgbk.ads, g-ssvety.ads, a-tiocst.ads, s-pack53.ads, 3918 s-parame-hpux.ads, s-pack18.ads, a-zchhan.ads, s-strops.ads, 3919 a-ztinio.ads, a-wichha.adb, a-stwima.adb, a-nlrear.ads, a-liteio.ads, 3920 s-pack62.adb, s-pack27.adb, s-fore.adb, s-vercon.adb, a-wichha.ads, 3921 a-stwima.ads, s-pack62.ads, system-linux-sparc.ads, s-pack27.ads, 3922 g-dynhta.adb, s-fore.ads, s-vercon.ads, a-cofuba.adb, a-cimutr.adb, 3923 i-cpoint.adb, s-imgenu.adb, a-stwibo.adb, s-pack36.adb, i-cstrin.adb, 3924 s-imgllu.adb, a-suteio-shared.adb, g-excact.adb, s-stoele.adb, 3925 s-addope.adb, g-dynhta.ads, a-cofuba.ads, a-ztmoio.adb, a-llfwti.ads, 3926 a-cimutr.ads, i-cpoint.ads, s-imgenu.ads, a-stwibo.ads, a-wttest.adb, 3927 s-pack36.ads, a-tgdico.ads, s-sopco5.adb, s-scaval.adb, i-cstrin.ads, 3928 s-imgllu.ads, g-excact.ads, s-stoele.ads, g-deutst.ads, s-addope.ads, 3929 s-imgwch.adb, g-sha384.ads, a-ztmoio.ads, s-pack45.adb, a-wttest.ads, 3930 s-sopco5.ads, s-excmac-gcc.adb, s-scaval.ads, a-storio.adb, 3931 a-coinho.adb, a-btgbso.adb, s-imgwch.ads, s-carun8.adb, memtrack.adb, 3932 s-pack45.ads, a-sfhcin.ads, s-excmac-gcc.ads, a-storio.ads, 3933 a-coinho.ads, a-btgbso.ads, s-stratt.adb, s-carun8.ads, a-shcain.adb, 3934 s-pack54.adb, s-pack19.adb, a-colire.adb, a-tigeli.adb, s-caun64.adb, 3935 s-stratt.ads, s-fatgen.adb, a-shcain.ads, a-stzunb-shared.adb, 3936 s-pack54.ads, s-pack19.ads, a-colire.ads, a-calcon.adb, s-caun64.ads, 3937 s-fatgen.ads, s-pack63.adb, g-arrspl.adb, a-stzunb-shared.ads, 3938 s-pack28.adb, a-nllrar.ads, a-zzboio.adb, a-zzunio.ads, a-stunau.adb, 3939 a-calcon.ads, g-cgideb.adb, s-objrea.adb, s-mastop.adb, a-tienau.adb, 3940 g-altcon.adb, g-arrspl.ads, s-pack63.ads, s-restri.adb, s-pack28.ads, 3941 a-zzboio.ads, a-stunau.ads, g-cgideb.ads, g-htable.adb, g-sothco.adb, 3942 s-objrea.ads, g-soliop-solaris.ads, s-mastop.ads, a-tienau.ads, 3943 system-linux-m68k.ads, g-altcon.ads, s-dmotpr.ads, s-memory-mingw.adb, 3944 g-cgicoo.adb, s-pack37.adb, s-restri.ads, s-fatllf.ads, s-expmod.adb, 3945 a-swuwha.adb, a-exextr.adb, a-cfhama.adb, s-gloloc-mingw.adb, 3946 a-tiboio.adb, g-forstr.adb, g-sothco.ads, a-stzbou.adb, a-nllcty.ads, 3947 a-suecin.adb, g-htable.ads, s-exctab.adb, a-tiunio.ads, g-cgicoo.ads, 3948 s-osprim-posix.adb, s-pack37.ads, a-ciormu.adb, s-atocou-x86.adb, 3949 a-swuwha.ads, s-expmod.ads, a-cfhama.ads, s-ficobl.ads, a-ngcoty.adb, 3950 g-forstr.ads, a-tiboio.ads, a-calfor.adb, a-stzbou.ads, a-suecin.ads, 3951 a-conhel.adb, a-crbltr.ads, s-exctab.ads, a-dhfina.ads, s-imgcha.adb, 3952 s-pack46.adb, a-ciormu.ads, system-linux-sh4.ads, a-chahan.adb, 3953 a-ngcoty.ads, a-stzunb.adb, a-szfzha.ads, a-calfor.ads, a-cbdlli.adb, 3954 a-conhel.ads, s-imgcha.ads, s-pack46.ads, a-assert.adb, a-chahan.ads, 3955 a-stzunb.ads, a-crdlli.adb, s-pack55.adb, a-cbdlli.ads, a-tideau.adb, 3956 a-assert.ads, ioexcept.ads, s-boarop.ads, g-hesora.adb, a-crdlli.ads, 3957 s-pack55.ads, a-tideau.ads, g-bubsor.adb, a-wtenio.adb, a-cbsyqu.adb, 3958 g-hesora.ads, s-pack29.adb, a-nurear.ads, g-catiio.adb, s-stposu.adb, 3959 g-bubsor.ads, a-wtenio.ads, a-cbsyqu.ads, a-suewst.adb, 3960 system-vxworks-x86.ads, s-pack29.ads, a-cbmutr.adb, a-cbprqu.adb, 3961 s-imenne.adb, g-sothco-dummy.adb, g-casuti.adb, g-catiio.ads, 3962 s-stposu.ads, a-stzsea.adb, s-pack38.adb, a-suewst.ads, s-imgllw.adb, 3963 a-cbprqu.ads, a-cbmutr.ads, s-imenne.ads, g-sothco-dummy.ads, 3964 g-casuti.ads, s-htable.adb, s-fatsfl.ads, g-trasym.adb, unchconv.ads, 3965 a-stzsea.ads, s-arit64.adb, s-pack38.ads, a-nllcar.ads, s-valrea.adb, 3966 s-imgllw.ads, s-htable.ads, a-sequio.adb, g-trasym.ads, a-ngcoar.adb, 3967 s-exnllf.adb, s-pack47.adb, s-arit64.ads, g-sercom-mingw.adb, 3968 s-valrea.ads, g-socthi-mingw.adb, g-bytswa.adb, g-sehash.adb, 3969 unchdeal.ads, a-sequio.ads, a-ngcoar.ads, s-exnllf.ads, a-wtdeio.adb, 3970 s-pack47.ads, g-socthi-mingw.ads, a-excpol-abort.adb, a-ztgeau.adb, 3971 g-bytswa.ads, g-sehash.ads, s-pack56.adb, a-wtdeio.ads, a-ngelfu.adb, 3972 a-ztgeau.ads, a-cforse.adb, s-filatt.ads, a-stzfix.adb, a-cihase.adb, 3973 s-pack56.ads, a-sfztio.ads, a-ngelfu.ads, s-trasym-dwarf.adb, 3974 a-cforse.ads, a-ztfiio.adb, g-timsta.adb, a-stzfix.ads, a-cihase.ads, 3975 a-ztfiio.ads, system-darwin-arm.ads: Move non-tasking runtime sources 3976 to libgnat subdirectory. 3977 39782017-09-08 Yannick Moy <moy@adacore.com> 3979 3980 * sem_aux.adb, sem_aux.ads (Get_Called_Entity): New function to 3981 return the entity associated with the call. 3982 * sem_util.adb, sem_util.ads (Check_Function_Writable_Actuals): 3983 Replace the internal Get_Function_Id with the new 3984 Sem_Aux.Get_Called_Entity. 3985 (Iterate_Call_Parameters): New 3986 procedure to iterate on formals and actuals at the same time. 3987 * sem_ch12.adb (Analyze_Subprogram_Instantiation): 3988 Set SPARK_Mode from spec when set, for analysis 3989 of instance. Restore after analysis of instance. 3990 (Instantiate_Subprogram_Body): Set SPARK_Mode from body when 3991 set, for analysis of body instance. Restored automatically at 3992 the end of the subprogram. 3993 * gnat1drv.adb (Adjust_Global_Switches): Set 3994 Check_Validity_Of_Parameters to False in GNATprove mode. 3995 * opt.ads (Check_Validity_Of_Parameters): Document switch to 3996 set option. 3997 39982017-09-08 Eric Botcazou <ebotcazou@adacore.com> 3999 4000 * sem_util.adb (NCT_Tables_In_Use): Move to library level from... 4001 (New_Copy_Tree): ...there. Reset the hash tables only if they 4002 were used in the previous invocation. 4003 * s-htable.adb: Fix typo. 4004 40052017-09-08 Bob Duff <duff@adacore.com> 4006 4007 * a-ssicst.adb (Open): Set File.Last_Op to the appropriate value. 4008 40092017-09-08 Arnaud Charlet <charlet@adacore.com> 4010 4011 * sem_aggr.adb: minor style fix. 4012 40132017-09-08 Bob Duff <duff@adacore.com> 4014 4015 * sprint.adb (Write_Corresponding_Source): Ignore if there is 4016 no current source file. 4017 (Write_Name_With_Col_Check, Write_Name_With_Col_Check_Sloc): 4018 Print something helpful in case N is invalid. 4019 * sprint.ads: Minor comment fix. 4020 40212017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4022 4023 * exp_aggr.adb: (Aggr_Assignment_OK_For_Backend): Add early return for 4024 access types. 4025 40262017-09-08 Bob Duff <duff@adacore.com> 4027 4028 * par-prag.adb, sem_prag.adb, snames.ads-tmpl: Implement pragma 4029 Ada_2020, along the same lines as the other Ada version pragmas. 4030 40312017-09-08 Gary Dismukes <dismukes@adacore.com> 4032 4033 * sem_ch12.adb: Minor typo fixes and reformatting. 4034 40352017-09-08 Yannick Moy <moy@adacore.com> 4036 4037 * sem_aggr.adb (Resolve_Record_Aggregate): 4038 Rewrite bounds of aggregate subexpressions which may depend on 4039 discriminants of the enclosing aggregate. 4040 40412017-09-08 Yannick Moy <moy@adacore.com> 4042 4043 * sem_ch5.adb: Prevent assertion failure on illegal code. 4044 40452017-09-08 Yannick Moy <moy@adacore.com> 4046 4047 * lib-xref-spark_specific.adb (Add_SPARK_Xrefs.Is_SPARK_Scope): Avoid 4048 calling Renamed_Entity on an entity which cannot be a renaming. 4049 40502017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4051 4052 * exp_aggr.adb: Add with & use clause for Urealp. 4053 (Aggr_Assignment_OK_For_Backend): Accept (almost all) 4054 elementary types instead of just discrete types. 4055 * sem_eval.adb (Expr_Value): Deal with N_Null for access types. 4056 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: 4057 Be prepared for the FP zero value in the memset case. Add small 4058 guard. 4059 40602017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4061 4062 * s-htable.adb (Static_HTable.Reset): Use aggregate instead 4063 of loop. 4064 40652017-09-08 Hristian Kirtchev <kirtchev@adacore.com> 4066 4067 * exp_aggr.adb (Expand_Array_Aggregate): Use New_Copy_Tree instead 4068 of New_Copy because the latter leaves the syntactic structure of 4069 the tree inconsistent (a child is accessible through two parents) 4070 and prevents proper replication of itypes by subsequent calls 4071 to New_Copy_Tree. 4072 * exp_ch4.adb (Expand_Concatenate): Use New_Copy_Tree instead of 4073 New_Copy because the latter leaves the syntactic structure of the 4074 tree inconsistent (a child is accessible through two parents) 4075 and prevents proper replication of itypes by subsequent calls 4076 to New_Copy_Tree. 4077 * sem_util.adb (In_Subtree): New routine. 4078 (New_Copy_Tree): Reimplemented. 4079 * sem_util.ads (In_Subtree): New routine. 4080 (New_Copy_Tree): Reimplemented. 4081 40822017-09-08 Ed Schonberg <schonberg@adacore.com> 4083 4084 * sem_ch13.adb (Resolve_Aspect_Expressions): The expression 4085 for aspect Default_Value is a static scalar value, but it does 4086 not freeze the type. Yhis allows for subsequent representation 4087 clauses for the type. 4088 40892017-09-08 Javier Miranda <miranda@adacore.com> 4090 4091 * sem_ch8.adb (Find_Direct_Name.Undefined): Do 4092 not add entries into the undefined reference table when we are 4093 compiling with errors ignored. 4094 40952017-09-08 Ed Schonberg <schonberg@adacore.com> 4096 4097 * sem_ch12.adb (Check_Formal_Packages): Do not apply conformance 4098 check if the instance is within an enclosing instance body. The 4099 formal package was legal in the enclosing generic, and is 4100 legal in the enclosing instantiation. This optimisation may be 4101 applicable elsewhere, and it also removes spurious errors that 4102 may arise with on-the-fly processing of instantiations that 4103 contain Inline_Always subprograms. 4104 41052017-09-08 Vincent Celier <celier@adacore.com> 4106 4107 * gnatcmd.adb: Disregard empty argument of GNAT driver. 4108 41092017-09-08 Justin Squirek <squirek@adacore.com> 4110 4111 * checks.adb (Insert_Valid_Check): Manually decorate 4112 the generated temporary for range valdity checks. 4113 41142017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4115 4116 * usage.adb (Usage): Document new -gnatw.q/-gnatw.Q switches. 4117 41182017-09-08 Justin Squirek <squirek@adacore.com> 4119 4120 * switch-c.adb (Scan_Front_End_Switches): Add new warning switch 4121 case to handle underscore flags. 4122 * warnsw.adb, warnsw.ads (Set_Underscore_Warning_Switch): Create 4123 new procedure to handle underscores. 4124 41252017-09-08 Javier Miranda <miranda@adacore.com> 4126 4127 * exp_ch4.adb (Expand_N_Op_Divide): Reordering code that handles 4128 divisions with fixed point results to avoid generating twice 4129 the runtime check on divide by zero. 4130 * checks.adb (Apply_Divide_Checks): Ensure that operands are 4131 not evaluated twice (once for their runtime checks and once for 4132 their regular computation). 4133 41342017-09-08 Yannick Moy <moy@adacore.com> 4135 4136 * sem_prag.adb (Analyze_Part_Of): Add missing 4137 return statements after issuing errors. Add detection of 4138 out-of-order item and single concurrent type. 4139 41402017-09-08 Nicolas Roche <roche@adacore.com> 4141 4142 * gcc-interface/Makefile.in, a-extiti.ads, s-taprop-linux.adb, 4143 s-osinte-solaris.adb, a-intnam.ads, s-osinte-solaris.ads, 4144 s-tpobop.adb, s-intman-android.adb, s-tasinf.adb, s-tpobop.ads, 4145 s-tasinf.ads, i-vxinco.adb, a-exetim-posix.adb, i-vxinco.ads, 4146 a-astaco.adb, a-astaco.ads, s-tporft.adb, s-tpoaal.adb, a-taside.adb, 4147 a-taside.ads, s-tpopsp-posix.adb, s-tasdeb.adb, s-tasdeb.ads, 4148 s-tpoben.adb, a-dinopr.ads, s-inmaop-vxworks.adb, s-tpoben.ads, 4149 s-interr-vxworks.adb, s-interr-dummy.adb, s-tassta.adb, 4150 a-intnam-mingw.ads, s-tassta.ads, s-taasde.adb, a-stcoed.ads, 4151 s-taasde.ads, s-osinte-darwin.adb, s-proinf.adb, s-taprop-dummy.adb, 4152 s-osinte-darwin.ads, s-proinf.ads, s-linux.ads, a-intnam-linux.ads, 4153 s-tasren.adb, s-tasren.ads, s-mudido.adb, g-semaph.adb, s-mudido.ads, 4154 s-taprop-posix.adb, g-semaph.ads, s-osinte-mingw.ads, s-vxwork-x86.ads, 4155 s-tposen.adb, s-linux-sparc.ads, s-taprop-vxworks.adb, s-tasini.adb, 4156 s-tposen.ads, s-tasini.ads, a-etgrbu.ads, s-interr-hwint.adb, 4157 s-osinte-linux.ads, s-taprop.ads, s-tasque.adb, s-tasque.ads, 4158 s-taenca.adb, s-taspri-vxworks.ads, s-taenca.ads, a-dynpri.adb, 4159 s-tpopsp-solaris.adb, a-dynpri.ads, s-taprop-hpux-dce.adb, 4160 a-interr.adb, a-intnam-freebsd.ads, s-tarest.adb, a-interr.ads, 4161 s-intman-susv3.adb, a-synbar.adb, a-intnam-dummy.ads, s-tadeca.adb, 4162 s-osinte-vxworks.adb, s-tarest.ads, s-taskin.adb, a-synbar.ads, 4163 s-taspri-hpux-dce.ads, s-tadeca.ads, s-osinte-vxworks.ads, 4164 s-taskin.ads, s-intman-solaris.adb, a-sytaco.adb, s-vxwext-kernel.adb, 4165 s-mudido-affinity.adb, a-sytaco.ads, s-vxwext-kernel.ads, s-taprob.adb, 4166 s-intman-mingw.adb, s-taprob.ads, s-osinte-kfreebsd-gnu.ads, 4167 s-osinte-dummy.ads, s-osinte-gnu.adb, s-osinte-rtems.adb, s-interr.adb, 4168 s-inmaop.ads, s-vxwext-rtp.adb, s-osinte-gnu.ads, s-osinte-rtems.ads, 4169 a-synbar-posix.adb, s-interr.ads, s-taspri-posix-noaltstack.ads, 4170 s-vxwext-rtp.ads, a-synbar-posix.ads, a-extiin.ads, s-osinte-posix.adb, 4171 s-tpinop.adb, s-tasres.ads, s-tpinop.ads, a-disedf.ads, a-diroro.ads, 4172 s-linux-alpha.ads, a-tasatt.adb, s-solita.adb, a-intnam-solaris.ads, 4173 a-tasatt.ads, s-solita.ads, s-tasinf-solaris.adb, s-tasinf-solaris.ads, 4174 s-vxwork-arm.ads, s-tpopsp-posix-foreign.adb, s-intman-dummy.adb, 4175 s-intman.ads, s-stusta.adb, s-stusta.ads, s-intman-posix.adb, 4176 s-tpopsp-vxworks.adb, s-inmaop-dummy.adb, s-taspri-mingw.ads, 4177 a-intnam-darwin.ads, s-osinte-aix.adb, s-osinte-dragonfly.adb, 4178 s-osinte-aix.ads, s-tasinf-mingw.adb, s-osinte-dragonfly.ads, 4179 s-linux-hppa.ads, s-osinte-x32.adb, s-inmaop-posix.adb, 4180 s-tasinf-mingw.ads, s-intman-vxworks.adb, s-linux-mips.ads, 4181 s-intman-vxworks.ads, s-osinte-android.adb, s-tasinf-linux.adb, 4182 s-osinte-android.ads, s-vxwork-ppc.ads, s-tasinf-linux.ads, 4183 a-dispat.adb, a-dispat.ads, s-tadert.adb, g-thread.adb, s-tadert.ads, 4184 g-thread.ads, a-intnam-hpux.ads, s-linux-android.ads, s-tataat.adb, 4185 a-exetim.ads, s-tataat.ads, a-reatim.adb, a-reatim.ads, thread.c, 4186 g-boubuf.adb, s-osinte-freebsd.adb, g-boubuf.ads, s-osinte-freebsd.ads, 4187 s-tasuti.adb, s-taspri-dummy.ads, a-exetim-mingw.adb, s-linux-x32.ads, 4188 s-tasuti.ads, g-signal.adb, a-exetim-mingw.ads, s-interr-sigaction.adb, 4189 g-signal.ads, s-osinte-hpux.ads, a-intnam-vxworks.ads, 4190 s-osinte-hpux-dce.adb, s-taspri-posix.ads, s-osinte-hpux-dce.ads, 4191 s-tasinf-vxworks.ads, g-tastus.ads, s-tpopsp-tls.adb, 4192 s-taprop-solaris.adb, a-retide.adb, a-exetim-darwin.adb, a-retide.ads, 4193 s-vxwext.adb, s-vxwext.ads, a-rttiev.adb, a-rttiev.ads, g-boumai.ads, 4194 a-exetim-default.ads, s-taprop-mingw.adb, s-taspri-solaris.ads, 4195 a-intnam-aix.ads: Move libgnarl sources to libgnarl subdir. 4196 41972017-09-08 Arnaud Charlet <charlet@adacore.com> 4198 4199 * doc/share/conf.py, doc/share/latex_elements.py, 4200 doc/share/ada_pygments.py, doc/Makefile: Improve support for Ada 4201 highlighting. 4202 42032017-09-08 Arnaud Charlet <charlet@adacore.com> 4204 4205 * gnat_rm.texi, gnat_ugn.texi, 4206 doc/gnat_ugn/the_gnat_compilation_model.rst, 4207 doc/gnat_ugn/getting_started_with_gnat.rst, 4208 doc/gnat_ugn/inline_assembler.rst, 4209 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 4210 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, 4211 doc/gnat_ugn/about_this_guide.rst, 4212 doc/gnat_ugn/platform_specific_information.rst, 4213 doc/gnat_ugn/example_of_binder_output.rst, 4214 doc/gnat_ugn/gnat_and_program_execution.rst, 4215 doc/gnat_ugn/gnat_utility_programs.rst, 4216 doc/gnat_rm/implementation_of_specific_ada_features.rst, 4217 doc/gnat_rm/interfacing_to_other_languages.rst, 4218 doc/gnat_rm/implementation_defined_aspects.rst, 4219 doc/gnat_rm/intrinsic_subprograms.rst, 4220 doc/gnat_rm/implementation_defined_characteristics.rst, 4221 doc/gnat_rm/implementation_advice.rst, 4222 doc/gnat_rm/implementation_defined_attributes.rst, 4223 doc/gnat_rm/compatibility_and_porting_guide.rst, 4224 doc/gnat_rm/standard_library_routines.rst, 4225 doc/gnat_rm/the_gnat_library.rst, 4226 doc/gnat_rm/implementation_defined_pragmas.rst, 4227 doc/gnat_rm/representation_clauses_and_pragmas.rst, 4228 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, 4229 doc/gnat_rm/obsolescent_features.rst, 4230 doc/gnat_rm/about_this_guide.rst, 4231 doc/gnat_rm/the_implementation_of_standard_i_o.rst, 4232 doc/gnat_rm/implementation_of_ada_2012_features.rst, 4233 doc/gnat_ugn.rst, 4234 doc/gnat_rm.rst: Update documentation. 4235 42362017-09-08 Arnaud Charlet <charlet@adacore.com> 4237 4238 * s-dwalin.ads, s-dwalin.adb, s-trasym-dwarf.adb, s-objrea.ads, 4239 s-objrea.adb, s-tsmona-linux.adb, s-tsmona-mingw.adb: New. 4240 * gcc-interface/Makefile.in: Enable s-trasym-dwarf.adb on x86*linux. 4241 42422017-09-08 Bob Duff <duff@adacore.com> 4243 4244 * s-ststop.ads, s-ststop.adb, rtsfind.ads (String_Input_Tag): 4245 New routine to read the Tag robustly. 4246 * exp_attr.adb (Input): Change the expansion of 'Input, 4247 in the class-wide case, to call String_Input_Tag instead of 4248 String_Input_Blk_IO. 4249 42502017-09-08 Arnaud Charlet <charlet@adacore.com> 4251 4252 * s-rident.ads (Restriction_Id): reorder enum 4253 literals, so that Pure_Barriers is no longer in range of the 4254 Cunit_Boolean_Restrictions subtype. 4255 42562017-09-08 Nicolas Roche <roche@adacore.com> 4257 4258 * a-taster.ads, a-taster.adb: Move to libgnarl 4259 * gcc-interface/Makefile.in: Remove obsolete targets. Code cleanups. 4260 Add support for files in libgnarl. 4261 42622017-09-08 Ed Schonberg <schonberg@adacore.com> 4263 4264 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply 4265 accessibility check to an interface conversion, whose purpose 4266 is to perform a pointer adjustment in a dispatching call. 4267 * exp_ch6.adb (Expand_Call_JHelper): Add accessibility checks 4268 when the actual is a construct that involves a dereference of an 4269 expression that includes a formal of the enclosing subprogram, 4270 In such cases, the accessibility level of the actual is that of 4271 the corresponding formal, which is passed in as an additional 4272 actual in the outer call. 4273 42742017-09-08 Bob Duff <duff@adacore.com> 4275 4276 * exp_intr.adb (Add_Source_Info): Do not decode 4277 file names; they were not encoded in the first place. 4278 42792017-09-08 Bob Duff <duff@adacore.com> 4280 4281 * a-tags.adb (Internal_Tag): Unsuppress checks, so we get 4282 exceptions instead of crashes. Check for absurdly long strings 4283 and empty strings. Empty strings cause trouble because they can 4284 have super-null ranges (e.g. 100..10), which causes Ext_Copy to 4285 be empty, which causes an array index out of bounds. 4286 * s-ststop.adb (Input): Unsuppress checks, so we get exceptions 4287 instead of crashes. 4288 42892017-09-08 Arnaud Charlet <charlet@adacore.com> 4290 4291 * sem_util.adb (Is_CCT_Instance): allow use in 4292 the context of protected types. 4293 42942017-09-08 Arnaud Charlet <charlet@adacore.com> 4295 4296 * a-tigeli.adb: minor remove extra whitespace. 4297 42982017-09-08 Gary Dismukes <dismukes@adacore.com> 4299 4300 * par-ch4.adb: Reformatting of an error message. 4301 43022017-09-08 Javier Miranda <miranda@adacore.com> 4303 4304 * sem_ch3.adb (Resolve_Name): Under ASIS mode analyze overloaded 4305 identifiers to ensure their correct decoration of names on 4306 aspect expressions. 4307 43082017-09-08 Yannick Moy <moy@adacore.com> 4309 4310 * exp_attr.adb (Expand_Loop_Entry_Attribute): Do 4311 not skip a loop coming from source which is rewritten into a loop. 4312 43132017-09-08 Ed Schonberg <schonberg@adacore.com> 4314 4315 * freeze.adb (Wrap_Imported_Subprogram): Indicate that the 4316 wrapper has convention Ada, to prevent spurious warnings on 4317 unconstrained array parameters. 4318 43192017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4320 4321 * sem_prag.adb (Check_Variant): Use First_Non_Pragma/Next_Non_Pragma. 4322 (Analyze_Pragma) <Pragma_Unchecked_Union>: Likewise. 4323 43242017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4325 4326 * sem_ch6.adb (Freeze_Expr_Types): Rename Spec_Id into Def_Id. 4327 43282017-09-08 Arnaud Charlet <charlet@adacore.com> 4329 4330 * exp_intr.adb (Append_Entity_Name): Move to ... 4331 * sem_util.ads, sem_util.adb: ... here to share it. 4332 (Subprogram_Name): New subprogram, to compute the name of the enclosing 4333 subprogram/entity. 4334 * errutil.adb (Error_Msg): Fill new field Node. 4335 * erroutc.ads (Subprogram_Name_Ptr): New. 4336 (Error_Msg_Object): New field Node. 4337 * erroutc.adb (dmsg, Output_Msg_Text): Take new field Node into account. 4338 * errout.adb (Error_Msg): New variant with node id parameter. 4339 Fill new parameter Node when emitting messages. Revert previous 4340 changes for Include_Subprogram_In_Messages. 4341 * sem_ch5.adb (Check_Unreachable_Code): Supply Node parameter when 4342 generating warning message. 4343 43442017-09-08 Ed Schonberg <schonberg@adacore.com> 4345 4346 * par-ch4.adb (P_Iterated_Component_Association): Place construct 4347 under -gnat2020 flag, given that it is a future feature of 4348 the language. 4349 * sem_aggr.adb (Resolve_Iterated_Component_Association): Mark 4350 defining identifier as referenced to prevent spurious warnings: 4351 corresponding loop is expanded into one or more loops whose 4352 variable has the same name, and the expression uses those names 4353 and not the original one. 4354 43552017-09-08 Hristian Kirtchev <kirtchev@adacore.com> 4356 4357 * sem_elab.adb (Check_A_Call): Do not consider 4358 references to internal variables for SPARK semantics. 4359 43602017-09-08 Arnaud Charlet <charlet@adacore.com> 4361 4362 * inline.adb (In_Package_Spec): refine type of 4363 the parameter from Node_Id to Entity_Id. 4364 43652017-09-08 Justin Squirek <squirek@adacore.com> 4366 4367 * exp_ch5.adb (Expand_Formal_Container_Loop): 4368 Reset the scope of the loop parameter after it is reanalyzed. 4369 43702017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4371 4372 * sem_util.ads (Set_Rep_Info): New inline procedure. 4373 * sem_util.adb (Set_Rep_Info): Implement it. 4374 * sem_ch3.adb (Process_Subtype): If the case of a constraint present, 4375 always copy the representation aspects onto the subtype. 4376 43772017-09-08 Georges-Alex Jaloyan <jaloyan@adacore.com> 4378 4379 * g-dynhta.adb, g-dynhta.ads (Get_First_Key, Get_Next_key): 4380 Correction of the return type from access type to option type. 4381 (Simple_HTable): Moving the Instance_Data to ads file. 4382 43832017-09-08 Yannick Moy <moy@adacore.com> 4384 4385 * sem_prag.adb: Use System.Case_Util.To_Lower to simplify code. 4386 43872017-09-08 Arnaud Charlet <charlet@adacore.com> 4388 4389 * opt.ads (Include_Subprogram_In_Messages): New variable. 4390 * errout.ads (Current_Subprogram_Ptr): New variable. 4391 * errout.adb (Error_Msg): Prepend current subprogram info 4392 in messages if Include_Subprogram_In_Messages is set. 4393 * sem_util.adb (elab code): Initialize Current_Subprogram_Ptr to 4394 Current_Subprogram. 4395 * gnat1drv.adb (Adjust_Global_Switches): Set 4396 Include_Subprogram_In_Messages when -gnatdJ is set. 4397 * debug.adb: Document and reserve -gnatdJ. 4398 43992017-09-08 Georges-Axel Jaloyan <jaloyan@adacore.com> 4400 4401 * g-dynhta.adb, g-dynhta.ads (Get_First_Key, Get_Next_Key): New 4402 functions to iterate over simple hastables. 4403 (Load_Factor_HTable): Remove obsolete and inefficient implementation. 4404 44052017-09-08 Javier Miranda <miranda@adacore.com> 4406 4407 * exp_ch6.adb (Unqual_BIP_Function_Call): Adding 4408 missing checks on the presence of Entity() before checking the 4409 entity attributes. 4410 44112017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4412 4413 * sem_ch6.adb (Analyze_Expression_Function): Reorder some 4414 statements, use local variable and remove unnecessary processing. 4415 44162017-09-08 Javier Miranda <miranda@adacore.com> 4417 4418 * exp_ch6.ads (Make_Build_In_Place_Iface_Call_In_Allocator): New 4419 subprogram. 4420 (Make_Build_In_Place_Iface_Call_In_Anonymous_Context): New subprogram. 4421 (Make_Build_In_Place_Iface_Call_In_Object_Declaration): New 4422 subprogram. 4423 (Unqual_BIP_Iface_Function_Call): New subprogram. 4424 * exp_ch6.adb (Replace_Renaming_Declaration_Id): New 4425 subprogram containing code that was previously inside 4426 Make_Build_In_Place_Call_In_Object_Declaration since it is also 4427 required for one of the new subprograms. 4428 (Expand_Actuals): 4429 Invoke Make_Build_In_Place_Iface_Call_In_Anonymous_Context 4430 (Expand_N_Extended_Return_Statement): Extend the 4431 cases covered by an assertion on expected BIP object 4432 declarations. 4433 (Make_Build_In_Place_Call_In_Assignment): 4434 Removing unused code; found working on this ticket. 4435 (Make_Build_In_Place_Call_In_Object_Declaration): Move the code 4436 that replaces the internal name of the renaming declaration 4437 into the new subprogram Replace_Renaming_Declaration_Id. 4438 (Make_Build_In_Place_Iface_Call_In_Allocator): New subprogram. 4439 (Make_Build_In_Place_Iface_Call_In_Anonymous_Context): 4440 New subprogram. 4441 (Make_Build_In_Place_Iface_Call_In_Object_Declaration): New 4442 subprogram. 4443 (Unqual_BIP_Iface_Function_Call): New subprogram. 4444 * exp_ch3.adb (Expand_N_Object_Declaration): Invoke the new 4445 subprogram Make_Build_In_Place_Iface_Call_In_Object_Declaration. 4446 * exp_attr.adb (Expand_N_Attribute_Reference): Invoke the new 4447 subprogram Make_Build_In_Place_Iface_Call_In_Anonymous_Context. 4448 * exp_ch4.adb (Expand_Allocator_Expression): Invoke the new 4449 subprogram Make_Build_In_Place_Iface_Call_In_Allocator. 4450 (Expand_N_Indexed_Component): Invoke the new subprogram 4451 Make_Build_In_Place_Iface_Call_In_Anonymous_Context. 4452 (Expand_N_Selected_Component): Invoke the new subprogram 4453 Make_Build_In_Place_Iface_Call_In_Anonymous_Context. 4454 (Expand_N_Slice): Invoke the new subprogram 4455 Make_Build_In_Place_Iface_Call_In_Anonymous_Context. 4456 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): 4457 Invoke the new subprogram 4458 Make_Build_In_Place_Iface_Call_In_Anonymous_Context. 4459 44602017-09-08 Javier Miranda <miranda@adacore.com> 4461 4462 * exp_disp.adb (Expand_Interface_Conversion): Fix handling of 4463 access to interface types. Remove also the accessibility check. 4464 44652017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4466 4467 * sem_ch6.adb (Freeze_Expr_Types): Really freeze 4468 all the types that are referenced by the expression. 4469 (Analyze_Expression_Function): Call Freeze_Expr_Types for 4470 a completion instead of manually freezing the type of the 4471 expression. 4472 (Analyze_Subprogram_Body_Helper): Do not call Freeze_Expr_Types here. 4473 44742017-09-08 Ed Schonberg <schonberg@adacore.com> 4475 4476 * exp_prag.adb (Replace_Discriminals_Of_Protected_Op): 4477 New procedure, auxiliary to Expand_Pragma_Check, to handle 4478 references to the discriminants of a protected type within a 4479 precondition of a protected operation. This is needed because 4480 the original precondition has been analyzed in the context of 4481 the protected declaration, but in the body of the operation 4482 references to the discriminants have been replaved by references 4483 to the discriminants of the target object, and these references 4484 are only created when expanding the protected body. 4485 44862017-09-08 Yannick Moy <moy@adacore.com> 4487 4488 * sem_prag.adb (Analyze_Pragma): Issue more precise error messages on 4489 Loop_Variant. 4490 44912017-09-08 Ed Schonberg <schonberg@adacore.com> 4492 4493 * exp_attr.adb (Build_Record_VS_Func): If the record is an 4494 unchecked union, do not emit checks for its (non-existent) 4495 discriminants, or for variant parts that depend on them. 4496 44972017-09-08 Justin Squirek <squirek@adacore.com> 4498 4499 * sem_ch4.adb (Find_Equality_Types.Try_One_Interp, 4500 Find_Comparison_Type.Try_One_Interp): Add check for generic 4501 instances. 4502 45032017-09-08 Arnaud Charlet <charlet@adacore.com> 4504 4505 * sem_ch3.adb, layout.adb, layout.ads, exp_attr.adb, debug.adb, 4506 exp_pakd.adb, sem_prag.adb, gnat1drv.adb, targparm.adb, targparm.ads, 4507 repinfo.adb, exp_ch6.adb, exp_aggr.adb, sem_eval.adb, sem_ch13.adb, 4508 exp_ch3.adb: Remove references to Frontend_Layout_On_Target and 4509 remaining references to AAMP_On_Target. 4510 45112017-09-08 Ed Schonberg <schonberg@adacore.com> 4512 4513 * style.adb: Fix typo. 4514 45152017-09-08 Javier Miranda <miranda@adacore.com> 4516 4517 * einfo.adb (Underlying_Type): Add missing support for class-wide 4518 types that come from the limited view. 4519 * exp_attr.adb (Attribute_Address): Check class-wide type 4520 interfaces using the underlying type to handle limited-withed 4521 types. 4522 (Attribute_Tag): Check class-wide type interfaces using 4523 the underlying type to handle limited-withed types. 4524 45252017-09-08 Ed Schonberg <schonberg@adacore.com> 4526 4527 * exp_ch5.adb (Expand_Predicated_Loop): Handle properly a loop 4528 over a subtype of a type with a static predicate, taking into 4529 account the predicate function of the parent type and the bounds 4530 given in the loop specification. 4531 * sem_ch3.adb (Inherit_Predicate_Flags): For qn Itype created for 4532 a loop specification that is a subtype indication whose type mark 4533 is a type with a static predicate, inherit predicate function, 4534 used to build case statement for rewritten loop. 4535 45362017-09-08 Justin Squirek <squirek@adacore.com> 4537 4538 * lib-load.adb: Modify printing of error message to exclude file 4539 line number. 4540 45412017-09-08 Arnaud Charlet <charlet@adacore.com> 4542 4543 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): 4544 don't inline subprograms declared in both visible and private 4545 parts of a package. 4546 (In_Package_Spec): previously In_Package_Visible_Spec; now 4547 detects subprograms declared both in visible and private parts 4548 of a package spec. 4549 45502017-09-08 Ed Schonberg <schonberg@adacore.com> 4551 4552 * exp_util.adb (Build_Invariant_Procedure_Declaration): If 4553 the type is an anonymous array in an object declaration, whose 4554 component type has an invariant, use the object declaration 4555 as the insertion point for the invariant procedure, given that 4556 there is no explicit type declaration for an anonymous array type. 4557 45582017-09-08 Bob Duff <duff@adacore.com> 4559 4560 * a-cbprqu.ads, a-cbdlli.adb: Suppress warnings. 4561 45622017-09-08 Bob Duff <duff@adacore.com> 4563 4564 * a-strfix.adb (Trim): Compute Low and High only if needed. 4565 45662017-09-08 Justin Squirek <squirek@adacore.com> 4567 4568 * lib-load.adb (Load_Main_Source): Add error output in the case a 4569 source file is missing. 4570 45712017-09-08 Bob Duff <duff@adacore.com> 4572 4573PR ada/80888 4574 * a-textio.adb, a-witeio.adb, a-ztexio.adb (Set_WCEM): Use 4575 Default_WCEM by default (i.e. if the encoding is not specified 4576 by the Form string). 4577 45782017-09-08 Bob Duff <duff@adacore.com> 4579 4580 * s-trasym.ads (Hexa_Traceback): If 4581 Suppress_Hex is True, print "..." instead of a hexadecimal 4582 address. 4583 * s-trasym.adb: Ignore No_Hex in this version. 4584 Misc cleanup. 4585 45862017-09-08 Bob Duff <duff@adacore.com> 4587 4588 * debug.adb: Minor reformatting. 4589 45902017-09-08 Bob Duff <duff@adacore.com> 4591 4592 * a-cbdlli.adb, a-cohama.adb, a-cohase.adb (Copy): Rewrite the 4593 code so it doesn't trigger an "uninit var" warning. 4594 45952017-09-08 Nicolas Roche <roche@adacore.com> 4596 4597 * s-hibaen.ads: Remove obsolete file. 4598 45992017-09-08 Arnaud Charlet <charlet@adacore.com> 4600 4601 * a-locale.ads: Add comment explaining the state of this package. 4602 46032017-09-08 Arnaud Charlet <charlet@adacore.com> 4604 4605 * sem_util.adb (Is_CCT_Instance): Allow calls in the context 4606 of packages. 4607 * sem_prag.ads, sem_prag.adb (Find_Related_Declaration_Or_Body): 4608 allow calls in the context of package spec (for pragma 4609 Initializes) and bodies (for pragma Refined_State). 4610 46112017-09-08 Bob Duff <duff@adacore.com> 4612 4613 * checks.adb (Insert_Valid_Check): Copy the Do_Range_Check flag to the 4614 new Exp. 4615 46162017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4617 4618 * debug.adb (dA): Adjust comment. 4619 * gnat1drv.adb (Gnat1drv): Likewise. 4620 * opt.ads (List_Representation_Info_Extended): New variable. 4621 * repinfo.adb (List_Record_Info): Split implementation into... 4622 (Compute_Max_Length): ...this. Recurse on records if requested. 4623 (List_Record_Layout): Likewise. 4624 * switch-c.adb (Scan_Front_End_Switches) <'R'>: Use case 4625 statement, accept '0' and set List_Representation_Info_Extended 4626 on 'e'. 4627 * usage.adb (Usage): Document new -gnatRe variant. 4628 46292017-09-08 Ed Schonberg <schonberg@adacore.com> 4630 4631 * sem_prag.adb (Analyze_Pragma, case Default_Storage_Pool): 4632 Do not save the given entity in the global variable Default_Pool 4633 if the pragma appears within a generic unit. 4634 46352017-09-08 Bob Duff <duff@adacore.com> 4636 4637 * errout.adb (Delete_Warning): Do not 4638 decrement Warnings_Treated_As_Errors. This is called before 4639 Warnings_Treated_As_Errors has been incremented to account for 4640 this warning. Decrementing it here can lead to negative values 4641 of Warnings_Treated_As_Errors, raising Constraint_Error in 4642 checks-on builds, and causing the compiler to return an error 4643 code in checks-off builds. 4644 46452017-09-08 Arnaud Charlet <charlet@adacore.com> 4646 4647 * sem_util.ads, sem_util.adb (Is_CCT_Instance): Only expect 4648 entities of named concurrent types as Ref_Id and not of anonymous 4649 concurrent objects (because callers already know when a conversion 4650 is necessary and can easily do it); also, do not expect protected 4651 types or protected objects as Context_Id (because no flow-related 4652 SPARK pragmas are attached there); reflect these changes in a 4653 more precise comment. 4654 46552017-09-08 Olivier Hainque <hainque@adacore.com> 4656 4657 * g-altive.ads: Add documentation. 4658 46592017-09-08 Bob Duff <duff@adacore.com> 4660 4661 * sem_util.ads, debug.adb: Minor comment fix. 4662 * erroutc.ads: Comment fix. 4663 46642017-09-08 Ed Schonberg <schonberg@adacore.com> 4665 4666 * sem_ch12.adb (Validate_Array_Type_Instance): Suppress check 4667 for compatibility of component types of formal and actual in an 4668 instantiation of a child unit, when the component type of the 4669 formal is itself a formal of an enclosing generic. 4670 46712017-09-08 Arnaud Charlet <charlet@adacore.com> 4672 4673 * sem_util.ads, sem_util.adb (Is_CCT_Instance): moved from 4674 sem_prag.adb to make it available for GNATprove; for concurrent 4675 types replace custom scope climbing with Scope_Same_Or_Within; for 4676 single concurrent objects add scope climbing (with Scope_Within), 4677 which was not there (that's the primary semantic change of this 4678 commit); also, when comparing a single concurrent object with 4679 its corresponding concurrent type rely on equality of types, 4680 not of objects (because that's simpler to code). 4681 * sem_prag.adb (Is_CCT_Instance): lifted to sem_util.ads. 4682 (Analyze_Global_Item): adjust special-casing of references to the 4683 current instance of a concurrent unit in the Global contracts 4684 of task types and single tasks objects; similar for references 4685 in the protected operations and entries of protected types and 4686 single protected objects (in all these cases the current instance 4687 behaves as an implicit parameter and must not be mentioned in 4688 the Global contract). 4689 46902017-09-08 Arnaud Charlet <charlet@adacore.com> 4691 4692 * exp_ch6.adb (Expand_Call_Helper): Introduce temporary for 4693 function calls returning a record within a subprogram call, 4694 for C generation. 4695 46962017-09-08 Ed Schonberg <schonberg@adacore.com> 4697 4698 * sem_ch8.adb (Find_Expanded_Name): Handle properly an expanded 4699 name that designates the current instance of a child unit in its 4700 own body and appears as the prefix of a reference to an entity 4701 local to the child unit. 4702 * exp_ch6.adb, freeze.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb: 4703 Minor reformatting. 4704 47052017-09-08 Yannick Moy <moy@adacore.com> 4706 4707 * sem_res.adb (Resolve_Equality_Op): Do not warn on comparisons that 4708 may be intentional. 4709 47102017-09-08 Tristan Gingold <gingold@adacore.com> 4711 4712 * sem_warn.adb (Check_Unused_Withs): Remove test that disabled 4713 warnings on internal units in configurable run time mode. 4714 47152017-09-08 Bob Duff <duff@adacore.com> 4716 4717 * sem_ch3.adb (Build_Derived_Private_Type): Inherit 4718 representation items from interfaces that the derived type 4719 implements, not just from the parent type. 4720 * sem_util.ads, sem_util.adb (Abstract_Interface_List): Change 4721 this to return an empty list when there are no interfaces. 4722 * einfo.ads, sem_ch13.adb: Minor comment fixes. 4723 * sem_attr.adb: Minor comment fix. 4724 47252017-09-08 Doug Rupp <rupp@adacore.com> 4726 4727 * sigtramp-vxworks.c [i386]: Adjust the kernel context for 4728 x86-vx7. 4729 47302017-09-08 Hristian Kirtchev <kirtchev@adacore.com> 4731 4732 * exp_ch4.adb (Expand_N_Allocator): Generate a 4733 call to Allocate_Any_Controlled when the allocation does not 4734 require any initialization. 4735 47362017-09-08 Hristian Kirtchev <kirtchev@adacore.com> 4737 4738 * sem_util.adb (Copy_Node_With_Replacement): 4739 Update the Renamed_Object field of a replicated object renaming 4740 declaration. 4741 47422017-09-08 Patrick Bernardi <bernardi@adacore.com> 4743 4744 * exp_ch9.adb (Is_Pure_Barrier): Allow type 4745 conversions and components of objects. Simplified the detection 4746 of the Count attribute by identifying the corresponding run-time 4747 calls. 4748 47492017-09-08 Yannick Moy <moy@adacore.com> 4750 4751 * exp_ch9.adb, exp_disp.adb, repinfo.adb, sem_ch12.adb, sem_dim.adb, 4752 sem_type.adb, sinfo.ads: Minor reformatting. 4753 47542017-09-08 Ed Schonberg <schonberg@adacore.com> 4755 4756 * freeze.adb (Has_Incomplete_Compoent): New predicate, subsidiary 4757 of Freeze_Profile, used to inhibit the freezing of the profile 4758 of an expression function declared within a nested package, when 4759 some type in the profile depends on a private type declared in 4760 an enclosing package. 4761 47622017-09-08 Bob Duff <duff@adacore.com> 4763 4764 * gnat1drv.adb (Gnat1drv): Do not set the Force_ALI_Tree_File flag in 4765 the subunit case. It's still OK to set it in the "missing subunits" 4766 case, because that won't cause the obsolete .ali files that cause 4767 confusion. 4768 47692017-09-08 Bob Duff <duff@adacore.com> 4770 4771 * sinput-l.adb: Remove unused "with Unchecked_Conversion;". It's 4772 unclear why this didn't cause a warning. 4773 * a-uncdea.ads, a-unccon.ads: Add "Ada." to names in the 4774 pragmas. It's unclear why this didn't cause an error. 4775 47762017-09-08 Hristian Kirtchev <kirtchev@adacore.com> 4777 4778 * exp_spark.adb (Expand_SPARK_N_Object_Renaming_Declaration): 4779 Reimplemented. 4780 (Expand_SPARK_Potential_Renaming): Code clean up. 4781 * sem_prag.adb (Analyze_Initialization_Item): Add a guard in case 4782 the item does not have a proper entity. 4783 (Analyze_Input_Item): Add a guard in case the item does not have a 4784 proper entity. 4785 (Collect_States_And_Objects): Include object renamings in the 4786 items being collected. 4787 (Resolve_State): Update the documentation of this routine. 4788 * sem_util.adb (Entity_Of): Add circuitry to handle 4789 renamings of function results. 4790 (Remove_Entity): New routine. 4791 (Remove_Overloaded_Entity): Take advantage of factorization. 4792 * sem_util.ads (Entity_Of): Update the documentation 4793 of this routine. 4794 (Remove_Entity): New routine. 4795 (Remove_Overloaded_Entity): Update the documentation of this 4796 routine. 4797 47982017-09-08 Eric Botcazou <ebotcazou@adacore.com> 4799 4800 * repinfo.adb (List_Record_Info): During first loop, 4801 do not override the normalized position and first bit 4802 if they have already been set. Move fallback code 4803 for the packed case to the case where it belongs. 4804 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): 4805 Also adjust the normalized position of components. 4806 (Adjust_Record_For_Reverse_Bit_Order_Ada_95): Likewise. 4807 48082017-09-08 Ed Schonberg <schonberg@adacore.com> 4809 4810 * exp_disp.adb (Make_DT, Set_All_DT_Position): Handle properly 4811 the placement of a primitive operation O that renames an operation 4812 R declared in an inner package, and which is thus not a primitive 4813 of the dispatching type of O. In this case O is a new primitive 4814 and does not inherit its dispatch table position from R (which 4815 has none). 4816 48172017-09-08 Ed Schonberg <schonberg@adacore.com> 4818 4819 * sem_dim.adb (Analyze_Dimension_If_Expression, 4820 Analyze_Dimension_Case_Expression): new subprograms to verify 4821 the dimensional correctness of Ada2012 conditional expressions, 4822 and set properly the dimensions of the construct. 4823 * sem_res.adb (Resolve_If_Expression, Resolve_Case_Expression)): 4824 call Analyze_Dimension. 4825 48262017-09-08 Ed Schonberg <schonberg@adacore.com> 4827 4828 * sem_type.adb (Expand_Interface_Conversion): Prevent an infinite 4829 loop on an interface declared as a private extension of another 4830 synchronized interface. 4831 48322017-09-08 Ed Schonberg <schonberg@adacore.com> 4833 4834 * sem_ch12.adb (Check_Generic_Parent): New procedure within 4835 Analyze_Associations, to handle actual packages that depend on 4836 previous instances. If a package IAP that is an instantiation is 4837 used as an actual in a subsequent instantiation SI in the same 4838 scope, and IAP has a body, IAP must be frozen before SI. If 4839 the generic parent of IAP is itself declared in a previous 4840 instantiation in the same scope, that instantiation must also 4841 be frozen before SI. 4842 (Install_Body): Prevent double insertion of freeze node for 4843 instance. 4844 48452017-09-08 Hristian Kirtchev <kirtchev@adacore.com> 4846 4847 * sem_prag.adb (Resolve_State): Update the 4848 comment on documentation. Generate a reference to the state once 4849 resolution takes place. 4850 48512017-09-08 Ed Schonberg <schonberg@adacore.com> 4852 4853 * sem_ch13.adb (Analyze_Aspect_Specifications, case 4854 Linker_Section): If the aspect applies to an object declaration 4855 with explicit initialization, do not delay the freezing of the 4856 object, to prevent access-before-elaboration in the generated 4857 initialization code. 4858 48592017-09-08 Ed Schonberg <schonberg@adacore.com> 4860 4861 * a-wtdeio.adb (Put, all versions): Use Long_Long_Integer 4862 (Integer_Value (Item)) when the size of the fixed decimal type 4863 is larger than Integer. 4864 48652017-09-07 Eric Botcazou <ebotcazou@adacore.com> 4866 4867 PR ada/82127 4868 * gcc-interface/decl.c (copy_and_substitute_in_layout): Put the fields 4869 in order of increasing position in more cases. 4870 48712017-09-07 Yannick Moy <moy@adacore.com> 4872 4873 * a-exetim-mingw.ads: Add contract Global=>null 4874 on all operations that are modeled as having no read or write 4875 of global variables in SPARK. 4876 48772017-09-07 Raphael Amiard <amiard@adacore.com> 4878 4879 * a-chtgop.adb, a-chtgop.ads (Generic_Iteration_With_Position): Added 4880 to Hmaps.Generic_Ops. 4881 * a-cohama.adb (Ada.Containers.Hmaps.Iterate): Pass proper position in 4882 cursors. 4883 * a-cihama.adb (Ada.Containers.Indefinite_Hmaps.Iterate): Pass pos in 4884 cursors. 4885 * a-cohase.adb (Ada.Containers.Hashed_Sets.Iterate): Pass proper 4886 position in cursors. 4887 48882017-09-07 Javier Miranda <miranda@adacore.com> 4889 4890 * sem_elab.adb (Check_Task_Activation): Adding switch -gnatd.y to 4891 allow disabling the generation of implicit pragma Elaborate_All 4892 on task bodies. 4893 48942017-09-07 Javier Miranda <miranda@adacore.com> 4895 4896 * exp_disp.adb (Make_Tags): Avoid suffix counter 4897 in the external name of the elaboration flag. Required to fix 4898 the regressions introduced by the initial version of this patch. 4899 49002017-09-07 Bob Duff <duff@adacore.com> 4901 4902 * sem_ch6.adb (Analyze_Function_Return): Do not 4903 insert an explicit conversion to force the displacement of the 4904 "this" pointer to reference the secondary dispatch table in the 4905 case where the return statement is returning a raise expression, 4906 as in "return raise ...". 4907 49082017-09-07 Arnaud Charlet <charlet@adacore.com> 4909 4910 * sem_disp.adb (Is_User_Defined_Equality): Removed procedure. 4911 * sem_util.ads, sem_util.adb (Is_User_Defined_Equality): Copied 4912 procedure from sem_disp.adb. 4913 * sem_ch12.ads (Get_Unit_Instantiation_Node): rename Package 4914 with Unit. 4915 * sem_ch12.adb (Get_Unit_Instantiation_Node): function extended to 4916 return the instantiation node for subprograms. Update references 4917 to Get_Unit_Instantiation_Node. 4918 * sem_ch7.adb (Install_Parent_Private_Declarations): update 4919 reference to Get_Unit_Instantiation_Node. 4920 * exp_dist.adb (Build_Package_Stubs): update reference to 4921 Get_Unit_Instantiation_Node. 4922 * sem_ch9.adb: minor typo in comment. 4923 * lib-xref-spark_specific.adb 4924 (Traverse_Declaration_Or_Statement): traverse into task type 4925 definition. 4926 49272017-09-07 Ed Schonberg <schonberg@adacore.com> 4928 4929 * sem_dim.adb (Analyze_Dimension_Type_Conversion): New procedure 4930 to handle properly various cases of type conversions where the 4931 target type and/or the expression carry dimension information. 4932 (Dimension_System_Root); If a subtype carries dimension 4933 information, obtain the source parent type that carries the 4934 Dimension aspect. 4935 49362017-09-07 Dmitriy Anisimkov <anisimko@adacore.com> 4937 4938 * g-socket.adb, g-socket.ads (GNAT.Sockets.To_Ada): New routine. 4939 49402017-09-07 Ed Schonberg <schonberg@adacore.com> 4941 4942 * exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained): 4943 If the prefix is a reference to an object, rewrite it as an 4944 explicit dereference, as required by 3.7.2 (2) and as is done 4945 with most other attributes whose prefix is an access value. 4946 49472017-09-07 Bob Duff <duff@adacore.com> 4948 4949 * par-ch13.adb: Set the Inside_Depends flag if we are inside a 4950 Refined_Depends aspect. 4951 * par-ch2.adb: Set the Inside_Depends flag if we are inside a 4952 Refined_Depends pragma. 4953 * scans.ads: Fix documentation of Inside_Depends flag. 4954 * styleg.adb, styleg.ads: Minor reformatting and comment fixes. 4955 49562017-09-07 Hristian Kirtchev <kirtchev@adacore.com> 4957 4958 * exp_ch7.adb (Insert_Actions_In_Scope_Around): 4959 Account for the case where the are no lists to insert, but the 4960 secondary stack still requires management. 4961 * a-chtgop.adb, a-cihama.adb, a-cohama.adb, a-cohase.adb, a-tags.adb, 4962 comperr.adb, einfo.adb, exp_aggr.adb, exp_ch3.adb, exp_disp.adb, 4963 lib-xref.adb, lib-xref-spark_specific.adb, sem_ch12.adb, sem_ch13.adb, 4964 sem_ch6.adb, sem_dim.adb, sem_dim.ads, sem_elab.adb, sem_prag.adb: 4965 Minor reformatting. 4966 49672017-09-07 Vincent Celier <celier@adacore.com> 4968 4969 * clean.adb: Do not get the target parameters before calling 4970 gprclean. 4971 49722017-09-07 Nicolas Roche <roche@adacore.com> 4973 4974 * s-osinte-solaris-posix.ads: Removed. 4975 49762017-09-07 Arnaud Charlet <charlet@adacore.com> 4977 4978 * sem_prag.adb (Collect_States_And_Objects): Detect also instances of 4979 single concurrent objects. 4980 49812017-09-07 Javier Miranda <miranda@adacore.com> 4982 4983 * s-regexp.ads: Fix documentation of the globbing grammar. 4984 49852017-09-07 Gary Dismukes <dismukes@adacore.com> 4986 4987 * a-tags.ads, einfo.ads, exp_disp.ads: Minor reformatting. 4988 49892017-09-07 Arnaud Charlet <charlet@adacore.com> 4990 4991 * gnat1drv.adb (Gnat1drv): Enable pragma Ignore_Pragma (Global) 4992 in CodePeer mode, to support more legacy code automatically. 4993 49942017-09-07 Ed Schonberg <schonberg@adacore.com> 4995 4996 * exp_disp.adb (Replace_Formals): If thr formal is classwide, 4997 and thus not a controlling argument, preserve its type after 4998 rewriting because it may appear in an nested call with a classwide 4999 parameter. 5000 50012017-09-07 Arnaud Charlet <charlet@adacore.com> 5002 5003 * comperr.adb (Delete_SCIL_Files): Handle case of 5004 N_Package_Instantiation. 5005 50062017-09-07 Ed Schonberg <schonberg@adacore.com> 5007 5008 * sem_ch10.adb (Remove_Private_With_Clause): If a private with 5009 clause for a unit U appears in a context that includes a regular 5010 with_clause on U, rewrite the redundant private clause into a null 5011 statement, rather than removing it altogether from the context, 5012 so that ASIS tools can reconstruct the original source. 5013 50142017-09-07 Ed Schonberg <schonberg@adacore.com> 5015 5016 * sem_ch13.adb (Check_Aspect_At_Freeze_Point): The expression 5017 for aspect Small can be of any real type (not only a universal 5018 real literal) as long as it is a static constant. 5019 50202017-09-07 Thomas Quinot <quinot@adacore.com> 5021 5022 * par_sco.adb: Minor reformatting. 5023 50242017-09-07 Arnaud Charlet <charlet@adacore.com> 5025 5026 * s-parame-ae653.ads: Removed. 5027 50282017-09-07 Nicolas Roche <roche@adacore.com> 5029 5030 * s-traces-default.adb, s-trafor-default.adb, s-trafor-default.ads, 5031 s-traces.adb, s-traces.ads, s-tratas-default.adb, s-tfsetr-default.adb, 5032 s-tfsetr-vxworks.adb, s-tratas.adb, s-tratas.ads, s-tasuti.adb, 5033 s-parame-hpux.ads, s-tassta.adb, s-taasde.adb, s-tasren.adb, 5034 s-taprob.adb, a-caldel.adb, s-parame.ads, Makefile.rtl, s-tpobop.adb, 5035 s-taenca.adb, s-parame-vxworks.ads: Remove support for System.Traces. 5036 50372017-09-07 Yannick Moy <moy@adacore.com> 5038 5039 * a-ngelfu.ads Add preconditions to all functions 5040 listed in Ada RM A.5.1(19-33) as having constraints on inputs. 5041 50422017-09-07 Arnaud Charlet <charlet@adacore.com> 5043 5044 * lib-xref.adb (Generate_Reference): ignore 5045 references to entities which are Part_Of single concurrent 5046 objects. 5047 50482017-09-07 Eric Botcazou <ebotcazou@adacore.com> 5049 5050 * sem_ch7.adb (Hide_Public_Entities): Add paragraph to main 5051 comment. 5052 50532017-09-07 Arnaud Charlet <charlet@adacore.com> 5054 5055 * a-taside.adb (Activation_Is_Complete): Raise Program_Error if 5056 Null_Task_Id is passed. 5057 50582017-09-07 Javier Miranda <miranda@adacore.com> 5059 5060 * einfo.ads, einfo.adb (Access_Disp_Table_Elab_Flag): New 5061 attribute. Defined for record types and subtypes. 5062 * exp_ch3.ads (Init_Secondary_Tags): Adding new formal 5063 (Init_Tags_List) to facilitate generating separate code in the 5064 IP routine to initialize the object components and for completing 5065 the elaboration of dispatch tables. 5066 * exp_ch3.adb (Build_Init_Procedure): Improve the code 5067 generated in the IP routines by means of keeping separate 5068 the initialization of the object components from the 5069 initialization of its dispatch tables. (Init_Secondary_Tags): 5070 Adding new formal (Init_Tags_List) and adjusting calls to 5071 Ada.Tags.Set_Dynamic_Offset_To_Top since it has a new formal; 5072 adjusting also calls to Ada.Tags.Register_Interface_Offset 5073 because the type of one of its formals has been changed. 5074 * a-tags.ads, a-tags.adb (Register_Interface_Offset): Profile 5075 modified. Instead of receiving a pointer to an object this 5076 routine receives now a primary tag. 5077 (Set_Dyanic_Offset_To_Top): Profile modified. This routine receives an 5078 additional formal: the tag of the primary dispatch table. 5079 * exp_disp.ads (Elab_Flag_Needed): New subprogram. 5080 * exp_disp.adb (Elab_Flag_Needed): New subprogram. 5081 (Make_Tags): Adding the declaration of the elaboration flag (if needed). 5082 * exp_aggr.adb (Build_Record_Aggr_Code): Adding actual of new 5083 formal in calls to Init_Secondary_Tags. 5084 50852017-09-07 Javier Miranda <miranda@adacore.com> 5086 5087 * ghost.adb (Mark_And_Set_Ghost_Instantiation.Check_Ghost_Actuals): New 5088 subprogram. 5089 * sem_prag.adb (Pragma_Ghost): Add missing support for ghost 5090 applied to generic subprograms. 5091 50922017-09-07 Arnaud Charlet <charlet@adacore.com> 5093 5094 * sem_util.adb (Check_Part_Of_Reference): rename Conc_Typ to Conc_Obj 5095 (because it refers to the anonymous concurrent object, not its type); 5096 fix condition for emitting error message about task/protected type, 5097 50982017-09-07 Bob Duff <duff@adacore.com> 5099 5100 * binde.adb (Debug_Flag_Old): If both -do and -dp 5101 are specified, behave as if just -do was specified, rather than 5102 using a mixture. 5103 51042017-09-07 Nicolas Roche <roche@adacore.com> 5105 5106 * system-vxworks-sparcv9.ads, s-vxwork-m68k.ads, s-vxwork-mips.ads, 5107 system-vxworks-m68k.ads, system-vxworks-mips.ads: Removed. 5108 51092017-09-07 Arnaud Charlet <charlet@adacore.com> 5110 5111 * sem_prag.adb (Find_Role): The Global_Seen flag 5112 is now consulted not only for abstract states and variables, 5113 but for all kinds of items. 5114 (Collect_Subprogram_Inputs_Outputs): Do not process formal 5115 generic parameters, because unlike ordinary formal parameters, 5116 generic formals only act as input/ outputs if they are explicitly 5117 mentioned in a Global contract. 5118 51192017-09-07 Yannick Moy <moy@adacore.com> 5120 5121 * ghost.adb (Check_Ghost_Context): Do not err on ghost code inside 5122 predicate procedure. Check predicate pragma/aspect with Ghost entity. 5123 * exp_ch6.adb, par-ch6.adb, sem_ch13.adb, sem_prag.adb; Minor 5124 reformatting. 5125 51262017-09-07 Ed Schonberg <schonberg@adacore.com> 5127 5128 * sem_aggr.adb: Move New_Copy_Tree_And_Dimensions to sem_dim 5129 (code cleanup); 5130 * sem_ch3.adb (Build_Derived_Record_Type):i Call 5131 Copy_Dimensions_Of_Components after creating the copy of the 5132 record declaration. 5133 * sem_dim.ads, sem_dim.adb (Copy_Dimensions_Of_Components): For a 5134 derived recor type, copy the dikensions if any of each component 5135 of the parent record to the corresponding component declarations 5136 of the derived record. These expressions are used among other 5137 things as default values in aggregates with box associations. 5138 * a-dirval-mingw.adb, g-cgi.adb, gnatcmd.adb, lib-xref.adb, 5139 repinfo.adb, sem_attr.adb, sem_ch10.adb, sem_ch6.adb, sem_prag.adb: 5140 Minor reformatting. 5141 51422017-09-07 Arnaud Charlet <charlet@adacore.com> 5143 5144 * sem_util.adb: Remove extra space after THEN. 5145 51462017-09-07 Eric Botcazou <ebotcazou@adacore.com> 5147 5148 * sem_ch7.adb (Has_Referencer): For a subprogram renaming, 5149 also mark the renamed subprogram as referenced. 5150 51512017-09-07 Ed Schonberg <schonberg@adacore.com> 5152 5153 * par-ch6.adb (P_Subprogram): Improve error message on null 5154 procedure with misplaced aspect specification, which the parser 5155 first attempts to interpret as a malformed expression function. 5156 51572017-09-07 Gary Dismukes <dismukes@adacore.com> 5158 5159 * sem_attr.adb (Analyze_Attribute_Old_Result): 5160 Allow attributes Result and Old in the case of an expression 5161 function. 5162 51632017-09-07 Justin Squirek <squirek@adacore.com> 5164 5165 * sem_prag.adb (Process_Atomic_Independent_Shared_Volatile): Propagate 5166 Volatile to subcomponents. 5167 51682017-09-07 Bob Duff <duff@adacore.com> 5169 5170 * exp_ch7.adb (Find_Last_Init): Check for the 5171 case where a build-in-place function call has been replaced by a 5172 'Reference attribute reference. 5173 51742017-09-07 Eric Botcazou <ebotcazou@adacore.com> 5175 5176 * sem_ch7.adb (Has_Referencer): Recurse on Actions of freeze 5177 nodes. 5178 51792017-09-07 Bob Duff <duff@adacore.com> 5180 5181 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration, 5182 Make_Build_In_Place_Call_In_Anonymous_Context): Do not use the 5183 secondary stack for all functions that return limited tagged 5184 types -- just do it for dispatching calls. Misc cleanup. 5185 * sem_util.ads, sem_util.adb (Unqual_Conv): New function to 5186 remove qualifications and type conversions. Fix various bugs 5187 where only a single level of qualification or conversion was 5188 removed, so e.g. "T1'(T2'(X))" would incorrectly return "T2'(X)" 5189 instead of "X". 5190 * checks.adb, exp_util.ads, exp_util.adb, sem_res.adb: Misc related 5191 cleanup. 5192 51932017-09-07 Ed Schonberg <schonberg@adacore.com> 5194 5195 * sem_ch6.adb (setr_Actual_Subtypes): Within a predicate function 5196 do not create actual subtypes that may generate further predicate 5197 functions. 5198 * sem_ch13.adb (Build_Predicate_Functions): Indicate that entity 5199 of body is a predicate function as well. 5200 (Resolve_Aspect_Expressions, Resolve_Name): For a component 5201 association, only the expression needs resolution, not the name. 5202 (Resolve_Aspect_Expressions, case Predicates): Construct and 5203 analyze the predicate function declaration in the scope of the 5204 type, before making the type and its discriminants visible. 5205 52062017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5207 5208 * gcc-interface/decl.c (warn_on_field_placement): Issue the warning 5209 only if the record type itself comes from source. 5210 52112017-09-06 Gary Dismukes <dismukes@adacore.com> 5212 5213 * sem_ch5.adb: Minor reformatting and a typo fix 5214 52152017-09-06 Arnaud Charlet <charlet@adacore.com> 5216 5217 * sinput-l.ads: minor remove extra period at the end of comment 5218 52192017-09-06 Arnaud Charlet <charlet@adacore.com> 5220 5221 * sem_prag.adb (Add_Item_To_Name_Buffer): remove support for 5222 E_Discriminant. 5223 (Find_Role): remove support for E_Discriminant. 5224 52252017-09-06 Javier Miranda <miranda@adacore.com> 5226 5227 * exp_ch6.adb (Expand_Simple_Function_Return): 5228 Add missing implicit type conversion to force displacement of the 5229 "this" pointer. 5230 52312017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5232 5233 * sem_ch3.adb, sem_aux.adb, sem_res.adb: Minor reformatting. 5234 52352017-09-06 Yannick Moy <moy@adacore.com> 5236 5237 * sem_ch12.adb (Analyze_Instance_And_Renamings): Refactor to set 5238 global variable Ignore_SPARK_Mode_Pragmas_In_Instance only once. 5239 52402017-09-06 Bob Duff <duff@adacore.com> 5241 5242 * sem_ch8.adb: Change Assert to be consistent with 5243 other similar ones. 5244 52452017-09-06 Bob Duff <duff@adacore.com> 5246 5247 * binde.adb (Find_Elab_Order): Do not run Elab_Old unless 5248 requested. Previously, the -do switch meant "run Elab_New and 5249 Elab_Old and use the order chosen by Elab_Old, possibly with 5250 debugging printouts comparing the two orders." Now it means 5251 "do not run Elab_New." This is of use if there are bugs that 5252 cause Elab_New to crash. 5253 (Elab_Position, Num_Chosen): Change type to Nat, to avoid various 5254 type conversions. 5255 * ali.ads (Elab_Position): Change type to Nat, to avoid various 5256 type conversions. 5257 52582017-09-06 Arnaud Charlet <charlet@adacore.com> 5259 5260 * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Fix 5261 reference to SPARK RM. 5262 52632017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5264 5265 * layout.adb: Use SSU short hand consistently throughout the file. 5266 52672017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5268 5269 * freeze.adb (Freeze_Record_Type) 5270 <Sized_Component_Total_Round_RM_Size>: New local variable to 5271 accumulate the rounded RM_Size of components. Update it for 5272 every component whose RM_Size is statically known. Add missing 5273 guard to check that bit packing is really required before issuing 5274 the error about packing. Swap condition for clarity's sake. 5275 * sem_prag.adb (Usage_Error): Fix reference to SPARK RM in comment. 5276 52772017-09-06 Fedor Rybin <frybin@adacore.com> 5278 5279 * makeutl.adb, makeutl.ads, mlib.adb, mlib.ads, mlib-fil.adb, 5280 mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, mlib-tgt.ads, 5281 mlib-tgt-specific.adb, mlib-tgt-specific.ads, 5282 mlib-tgt-specific-aix.adb, mlib-tgt-specific-darwin.adb, 5283 mlib-tgt-specific-hpux.adb, mlib-tgt-specific-linux.adb, 5284 mlib-tgt-specific-mingw.adb, mlib-tgt-specific-solaris.adb, 5285 mlib-tgt-specific-vxworks.adb, mlib-tgt-specific-xi.adb, mlib-utl.adb, 5286 mlib-utl.ads, prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, 5287 prj-attr-pm.adb, prj-attr-pm.ads, prj-com.ads, prj-conf.adb, 5288 prj-conf.ads, prj-dect.adb, prj-dect.ads, prj-env.adb, prj-env.ads, 5289 prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, prj-makr.adb, 5290 prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, prj-pars.adb, prj-pars.ads, 5291 prj-part.adb, prj-part.ads, prj-pp.adb, prj-pp.ads, prj-proc.adb, 5292 prj-proc.ads, prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, 5293 prj-util.adb, prj-util.ads, sinput-p.adb, sinput-p.ads: Remove obsolete 5294 project manager sources. 5295 52962017-09-06 Ed Schonberg <schonberg@adacore.com> 5297 5298 * sem_ch5.adb (Analyze_Assigment): If the left-hand side is an 5299 entity of a mutable type and the right-hand side is a conditional 5300 expression, resolve the alternatives of the conditional using 5301 the base type of the target entity, because the alternatives 5302 may have distinct subtypes. This is particularly relevant if 5303 the alternatives are aggregates. 5304 53052017-09-06 Ed Schonberg <schonberg@adacore.com> 5306 5307 * checks.adb (Apply_Predicate_Check): If the expression is an 5308 aggregate that is the RHS of an assignment, apply the check to 5309 the LHS after the assignment, rather than to the aggregate. This 5310 is more efficient than creating a temporary for the aggregate, 5311 and prevents back-end crashes when the aggregate includes a 5312 dynamic "others' association. 5313 53142017-09-06 Yannick Moy <moy@adacore.com> 5315 5316 * sem_ch12.adb (Analyze_Instance_And_Renamings): 5317 Set variable to ignore SPARK_Mode in instance before the analysis 5318 of the generated package declaration. 5319 53202017-09-06 Yannick Moy <moy@adacore.com> 5321 5322 * sem_res.adb (Resolve_Call): Do not issue a 5323 message for calls inside expression function, unless body was 5324 seen and is candidate for inlining. 5325 53262017-09-06 Ed Schonberg <schonberg@adacore.com> 5327 5328 * sem_aux.adb (Is_Generic_Formal): Handle properly formal packages. 5329 * sem_ch3.adb (Analyze_Declarations): In a generic subprogram 5330 body. do not freeze the formals of the generic unit. 5331 53322017-09-06 Gary Dismukes <dismukes@adacore.com> 5333 5334 * errout.adb (Error_Msg): Separate the 5335 treatment for warning vs. style messages in inlinings and 5336 instantiations. Prevents blowups on calls to Warn_Insertion for 5337 style messages, which should not be called in that case because 5338 Warning_Msg_Char is not set. 5339 53402017-09-06 Justin Squirek <squirek@adacore.com> 5341 5342 * sem_prag.adb (Check_VFA_Conflicts): Created 5343 to group all Volatile_Full_Access checks relating to other 5344 representation pragmas (Mark_Component_Or_Object): Created 5345 to centeralize the flagging of attributes for the record type 5346 component case, a pragma applied individually to a component, and 5347 the object case. 5348 (Process_Atomic_Independent_Shared_Volatile): 5349 Add propagation of certain pragmas to record components and move 5350 evaluation of VFA checks 5351 53522017-09-06 Ed Schonberg <schonberg@adacore.com> 5353 5354 * sem_prag.adb (Check_Postcondition_Use_In_Inlined_Subprogram): 5355 Do not warn on conditions that are not obeyed for Inline_Always 5356 subprograms, when assertions are not enabled. 5357 53582017-09-06 Arnaud Charlet <charlet@adacore.com> 5359 5360 * sem_util.adb (Unique_Entity): For abstract states return their 5361 non-limited view. 5362 53632017-09-06 Bob Duff <duff@adacore.com> 5364 5365 * sem_ch12.adb (Copy_Generic_Node): When we copy a node 5366 that is a proper body corresponding to a stub, we defer the 5367 adjustment of the sloc until after the correct adjustment has 5368 been computed. Otherwise, Adjust_Instantiation_Sloc will ignore 5369 the adjustment, because it will be outside the range in (the old, 5370 incorrect) S_Adjustment. 5371 * inline.adb: Use named notation for readability and uniformity. 5372 * sinput-l.adb: Minor improvements to debugging output printed 5373 for Debug_Flag_L. 5374 * sinput-l.ads (Create_Instantiation_Source): Minor comment 5375 correction. 5376 53772017-09-06 Vincent Celier <celier@adacore.com> 5378 5379 * make.adb: Do not invoke gprbuild for -bargs -P. 5380 53812017-09-06 Sylvain Dailler <dailler@adacore.com> 5382 5383 * sem_eval.adb (Compile_Time_Known_Value_Or_Aggr): Adding a 5384 case when Op is of kind N_Qualified_Expression. In this case, 5385 the function is called recursively on the subexpression like in 5386 other cases. 5387 * make.adb: Minor reformatting 5388 53892017-09-06 Justin Squirek <squirek@adacore.com> 5390 5391 * einfo.adb (Set_Linker_Section_Pragma): Modify 5392 Set_Linker_Section_Pragma to be consistant with the "getter" 5393 Linker_Section_Pragma. 5394 * exp_ch5.adb (Expand_Formal_Container_Loop): Add proper error 5395 checking for container loops so that the index cursor is not 5396 directly changable by the user with the use of E_Loop_Parameter. 5397 * sem_ch5.adb (Analyze_Block_Statement): Revert previous change. 5398 * sem_warn.adb (Check_References): Revert previous change. 5399 54002017-09-06 Bob Duff <duff@adacore.com> 5401 5402 * exp_util.adb (Is_Displace_Call): Make sure it works for indirect 5403 calls and the like. 5404 54052017-09-06 Yannick Moy <moy@adacore.com> 5406 5407 * sem_prag.adb (Analyze_Depends_Global): Reinforce test on object 5408 declarations to only consider valid uses of Global/Depends those on 5409 single concurrent objects. 5410 54112017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5412 5413 * sem_ch13.adb (Check_Record_Representation_Clause): Give an 5414 error as soon as one of the specified components overlaps the 5415 parent field. 5416 54172017-09-06 Arnaud Charlet <charlet@adacore.com> 5418 5419 * sem_prag.ads: minor fix typo in comment. 5420 54212017-09-06 Justin Squirek <squirek@adacore.com> 5422 5423 * sem_ch5.adb (Analyze_Block_Statement): Verify a block comes 5424 from source before checking source references. 5425 * sem_warn.adb (Check_References): Add check for internal block 5426 before recursing. 5427 54282017-09-06 Vincent Celier <celier@adacore.com> 5429 5430 * make.adb, makeusg.adb, switch-m.adb, switch-m.ads, make_util.adb, 5431 make_util.ads, sinput.adb, sinput.ads, clean.adb, gnatls.adb, 5432 gnatname.adb: Remove the Project Manager from the GNAT tools. 5433 * gcc-interface/Makefile.in: ditto. 5434 54352017-09-06 Bob Duff <duff@adacore.com> 5436 5437 * sem_util.ads: Minor comment fix. 5438 54392017-09-06 Ed Schonberg <schonberg@adacore.com> 5440 5441 * sem_ch12.adb (Analyze_Associations, case of Formal_Package): 5442 Generate a freeze node for the actual of a formal package, if 5443 the actual is declared in the same unit and has a corresponding 5444 body, to prevent the current instance from being frozen before 5445 the actual is. 5446 54472017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5448 5449 * sem_ch7.adb (Entity_Table_Size): Change to nearest prime number. 5450 54512017-09-06 Yannick Moy <moy@adacore.com> 5452 5453 * sem_warn.adb: Minor refactoring. 5454 54552017-09-06 Ed Schonberg <schonberg@adacore.com> 5456 5457 * einfo.ads, einfo.adb (Get_Classwwide_Pragma): New utility, 5458 to retrieve the inherited classwide precondition/postcondition 5459 of a subprogram. 5460 * freeze.adb (Freeze_Entity): Use Get_Classwide_Pragma when 5461 freezing a subprogram, to complete the generation of the 5462 corresponding checking code. 5463 54642017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5465 5466 * exp_util.adb (Is_Controlled_Indexing): New routine. 5467 (Is_Displace_Call): Use routine Strip to remove indirections. 5468 (Is_Displacement_Of_Object_Or_Function_Result): Code clean up. Add a 5469 missing case of controlled generalized indexing. 5470 (Is_Source_Object): Use routine Strip to remove indirections. 5471 (Strip): New routine. 5472 54732017-09-06 Bob Duff <duff@adacore.com> 5474 5475 * sysdep.c (__gnat_has_cap_sys_nice): If HAVE_CAPABILITY is defined, 5476 we include the proper header. Otherwise, we just declare the necessary 5477 things from the capabilities library. This is so we can build on 5478 machines without that library, while still enabling that library. 5479 At run time, we're using weak symbols, so __gnat_has_cap_sys_nice will 5480 simply return 0 if the library is not present, or not included 5481 in the link. 5482 54832017-09-06 Pierre-Marie de Rodat <derodat@adacore.com> 5484 5485 * exp_dbug.adb (Debug_Renaming_Declaration): Do not create an encoding 5486 for renamings that involve function calls in prefix form. 5487 54882017-09-06 Bob Duff <duff@adacore.com> 5489 5490 * sem_ch3.adb (Analyze_Subtype_Declaration): 5491 Set Has_Delayed_Freeze on a subtype of an incomplete type. 5492 54932017-09-06 Pierre-Marie de Rodat <derodat@adacore.com> 5494 5495 * par_sco.adb (Extend_Statement_Sequence): When the accept statement 5496 has no parameter specification and no entry index, use the entry name 5497 as the end of the generated SCO statement. 5498 54992017-09-06 Steve Baird <baird@adacore.com> 5500 5501 * exp_util.adb (Side_Effect_Free): For CodePeer (only) treat 5502 uses of 'Image and related attributes as having side effects in 5503 order to avoid replicating such uses. 5504 * pprint.ads (Expression_Image) Add new generic formal flag 5505 Hide_Temp_Derefs. The flag defaults to False; CodePeer will 5506 (eventually) override the default. 5507 * pprint.adb (Expression_Image) If the new flag is set, then 5508 suppress the ".all" suffix when displaying a dereference whose 5509 prefix is a use of a value-capturing compiler temp of the sort 5510 generated by Expr_Util.Remove_Side_Effects . 5511 * exp_attr.adb, g-catiio.adb, inline.adb, sem_attr.adb, sem_ch13.adb, 5512 sem_ch7.adb, sem_dim.adb, sem_util.adb, sem_util.ads, sem_warn.adb: 5513 Minor reformatting. 5514 * inline.adb: Minor wording change. 5515 55162017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5517 5518 * sem_ch7.adb: Update comment. 5519 55202017-09-06 Yannick Moy <moy@adacore.com> 5521 5522 * einfo.adb, einfo.ads (Is_Subprogram_Or_Entry): New predicate. 5523 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Use new function. 5524 * sem_util.adb, sem_util.ads (Within_Protected_Type): Renaming 5525 with slight modification from Is_Subp_Or_Entry_Inside_Protected, 5526 so that applies to any entity. 5527 55282017-09-06 Yannick Moy <moy@adacore.com> 5529 5530 * sem_ch3.adb (Derived_Type_Declaration): Use 5531 Incomplete_Or_Partial_View rather than local Find_Partial_View. 5532 55332017-09-06 Javier Miranda <miranda@adacore.com> 5534 5535 * g-catiio.ads, g-catiio.adb (Value): Extended to parse an UTC time 5536 following ISO-8861. 5537 55382017-09-06 Ed Schonberg <schonberg@adacore.com> 5539 5540 * sem_dim.adb (Analyze_Dimension): In an instance, a type 5541 conversion takes its dimensions from the expression, not from 5542 the context type. 5543 (Dimensions_Of_Operand): Ditto. 5544 55452017-09-06 Ed Schonberg <schonberg@adacore.com> 5546 5547 * exp_ch6.adb (Expand_Call_Helper): Do not optimize calls to 5548 null procedures when GNAT coverage is used, so that their (empty) 5549 bodies are properly covered. 5550 55512017-09-06 Bob Duff <duff@adacore.com> 5552 5553 * sem_ch13.adb (Resolve_Aspect_Expressions): If 5554 the entity is a type with discriminants, make the discriminants 5555 directly visible in aspect clauses. 5556 55572017-09-06 Ed Schonberg <schonberg@adacore.com> 5558 5559 * sem_res.adb (Resolve_Arithmentic_Op): If both operands are 5560 Universal_Real and the context is a floating-point type, resolve 5561 both operands to the target type. 5562 55632017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5564 5565 * a-comlin.adb, exp_aggr.adb, exp_ch6.adb, frontend.adb, gnatbind.adb, 5566 sem_ch3.adb, sem_util.adb: Minor reformatting. 5567 55682017-09-06 Yannick Moy <moy@adacore.com> 5569 5570 * freeze.adb (Check_Inherited_Conditions): Rewriting 5571 of inherited preconditions and postconditions should only occur 5572 in GNATprove mode, that is, when GNATprove_Mode is True, not to 5573 be confused with SPARK_Mode being On. 5574 55752017-09-06 Yannick Moy <moy@adacore.com> 5576 5577 * sem_warn.adb (Check_References): Take into 5578 account possibility of attribute reference as original node. 5579 55802017-09-06 Yannick Moy <moy@adacore.com> 5581 5582 * exp_attr.adb (Expand_N_Attribute_Reference): Protect against invalid 5583 use of attribute. 5584 55852017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5586 5587 * inline.adb (Split_Unconstrained_Function): Also set Is_Inlined 5588 on the procedure created to encapsulate the body. 5589 * sem_ch7.adb: Add with clause for GNAT.HTable. 5590 (Entity_Table_Size): New constant. 5591 (Entity_Hash): New function. 5592 (Subprogram_Table): New instantiation of GNAT.Htable.Simple_HTable. 5593 (Is_Subprogram_Ref): Rename into... 5594 (Scan_Subprogram_Ref): ...this. Record references to subprograms in 5595 the table instead of bailing out on them. Scan the value of constants 5596 if it is not known at compile time. 5597 (Contains_Subprograms_Refs): Rename into... 5598 (Scan_Subprogram_Refs): ...this. 5599 (Has_Referencer): Scan the body of all inlined subprograms. Reset the 5600 Is_Public flag on subprograms if they are not actually referenced. 5601 (Hide_Public_Entities): Beef up comment on the algorithm. 5602 Reset the table of subprograms on entry. 5603 56042017-09-06 Yannick Moy <moy@adacore.com> 5605 5606 * inline.adb: Add comments to Can_Be_Inlined_In_GNATprove_Mode. 5607 56082017-09-06 Javier Miranda <miranda@adacore.com> 5609 5610 * exp_aggr.adb (Component_Not_OK_For_Backend): The C backend 5611 cannot handle a type conversion of an array as an aggregate 5612 component. 5613 56142017-09-06 Bob Duff <duff@adacore.com> 5615 5616 * g-comlin.adb (Try_Help): Remove ".exe" so we 5617 get the same results on windows and unix. 5618 56192017-09-06 Justin Squirek <squirek@adacore.com> 5620 5621 * exp_imgv.adb (Expand_Image_Attribute), 5622 (Expand_Wide_Image_Attribute), (Expand_Wide_Wide_Image_Attribute): 5623 Added case to handle new-style 'Image expansion 5624 (Rewrite_Object_Image): Moved from exp_attr.adb 5625 * exp_attr.adb (Expand_N_Attribute_Reference): Modified Image 5626 attribute cases so that the relevant subprograms in exp_imgv.adb 5627 handle all expansion. 5628 (Rewrite_Object_Reference_Image): Moved to exp_imgv.adb 5629 * sem_attr.adb (Analyze_Attribute): Modified Image attribute 5630 cases to call common function Analyze_Image_Attribute. 5631 (Analyze_Image_Attribute): Created as a common path for all 5632 image attributes (Check_Object_Reference_Image): Removed 5633 * sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object): 5634 Removed and refactored into Is_Object_Image (Is_Object_Image): 5635 Created as a replacement for Is_Image_Applied_To_Object 5636 56372017-09-06 Yannick Moy <moy@adacore.com> 5638 5639 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add continuation 5640 message for missing input. 5641 56422017-09-06 Yannick Moy <moy@adacore.com> 5643 5644 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Prevent inlining 5645 of protected subprograms and entries. 5646 * sem_util.adb, sem_util.ads (Is_Subp_Or_Entry_Inside_Protected): 5647 New function to detect when a subprogram of entry is defined 5648 inside a protected object. 5649 56502017-09-06 Bob Duff <duff@adacore.com> 5651 5652 * sysdep.c (__gnat_has_cap_sys_nice): New function to determine 5653 whether the current process has the CAP_SYS_NICE capability. 5654 * s-taprop-linux.adb (Get_Ceiling_Support): Update this to allow 5655 ceiling priorities if the current process has the CAP_SYS_NICE 5656 capability. 5657 56582017-09-06 Bob Duff <duff@adacore.com> 5659 5660 * a-comlin.ads, a-comlin.adb (Argument): Move the constraint 5661 check back to the body, because SPARK is not yet ready for 5662 "or else raise Constraint_Error". 5663 56642017-09-06 Ed Schonberg <schonberg@adacore.com> 5665 5666 * exp_ch6.adb (Expand_Call_Helper): Replace call to null 5667 procedure by a single null statement, after evaluating the 5668 actuals that require it. 5669 56702017-09-06 Javier Miranda <miranda@adacore.com> 5671 5672 * exp_aggr.adb (Backend_Processing_Possible.Component_Check): 5673 Generating C code improve the code that checks the use of nested 5674 aggregates to initialize object declarations. 5675 56762017-09-06 Yannick Moy <moy@adacore.com> 5677 5678 * sem_ch3.adb (Derived_Type_Declaration): Detect 5679 violations of new rule SPARK RM 3.4(1). Also refactor existing 5680 check to use the new function Find_Partial_View. 5681 56822017-09-06 Vincent Celier <celier@adacore.com> 5683 5684 * gnatcmd.adb: gnat ls -V -P... invokes gprls -V -P... The code 5685 from the Prj hierarchy has been removed from the GNAT driver. 5686 56872017-09-06 Ed Schonberg <schonberg@adacore.com> 5688 5689 * sem_type.adb (Interface_Present_In_Ancestor): Within an 5690 expression function, or within a spec expression (default value, 5691 etc) a reference to an incomplete type is legal: legality of 5692 the operation will be checked when some related entity (type, 5693 object or subprogram) is frozen. 5694 56952017-09-06 Gary Dismukes <dismukes@adacore.com> 5696 5697 * exp_ch5.adb, s-diinio.ads, sem_ch4.adb, s-diflio.ads: Minor spelling 5698 adjustments and a typo fix. 5699 57002017-09-06 Yannick Moy <moy@adacore.com> 5701 5702 * sem_res.adb (Resolve_Call): Do not issue info 5703 message about inlining of calls to functions in assertions, 5704 for functions whose body has not been seen yet. 5705 57062017-09-06 Bob Duff <duff@adacore.com> 5707 5708 * a-comlin.ads, a-comlin.adb (Argument): Simplify the code, now that 5709 we can use modern Ada in this package. 5710 * s-resfil.ads, s-resfil.adb, a-clrefi.ads, a-clrefi.adb: 5711 Move Ada.Command_Line.Response_File to System.Response_File, 5712 and make Ada.Command_Line.Response_File into a rename of 5713 System.Response_File. This is to avoid having gnatbind depend 5714 Ada.Command_Line, which would damage the bootstrap process now 5715 that Ada.Command_Line contains modern Ada (the raise expression). 5716 * gnatbind.adb: Avoid dependence on 5717 Ada.Command_Line. Depend on System.Response_File instead 5718 of Ada.Command_Line.Response_File. Change one call to 5719 Ada.Command_Line.Command_Name to use Fill_Arg. Change one call 5720 to Ada.Command_Line.Argument_Count to use Arg_Count. 5721 * gcc-interface/Make-lang.in, Makefile.rtl: Take note of the new files. 5722 57232017-09-06 Bob Duff <duff@adacore.com> 5724 5725 * frontend.adb (Frontend): Skip -gnatec=gnat.adc 5726 switch, because we've already read gnat.adc by default. 5727 57282017-09-06 Bob Duff <duff@adacore.com> 5729 5730 * exp_ch5.adb (Get_Default_Iterator): Replace 5731 "Assert(False)" with "return Iter", because if an iterable 5732 type is derived from a noniterable one, then we won't find an 5733 overriding or inherited default iterator. 5734 57352017-09-06 Yannick Moy <moy@adacore.com> 5736 5737 * sem_warn.adb (Warn_On_Suspicious_Index): Improve warning when the 5738 literal index used to access a string is null or negative. 5739 57402017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5741 5742 * einfo.adb (Status_Flag_Or_Transient_Decl): The attribute is now 5743 allowed on loop parameters. 5744 (Set_Status_Flag_Or_Transient_Decl): The attribute is now allowed 5745 on loop parameters. 5746 (Write_Field15_Name): Update the output for 5747 Status_Flag_Or_Transient_Decl. 5748 * einfo.ads: Attribute Status_Flag_Or_Transient_Decl now applies 5749 to loop parameters. Update the documentation of the attribute 5750 and the E_Loop_Parameter entity. 5751 * exp_ch7.adb (Process_Declarations): Remove the bogus guard 5752 which assumes that cursors can never be controlled. 5753 * exp_util.adb (Requires_Cleanup_Actions): Remove the bogus 5754 guard which assumes that cursors can never be controlled. 5755 57562017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5757 5758 * exp_attr.adb, sem_util.adb, sem_attr.adb, sem_ch6.adb, sem_ch8.adb, 5759 sem_warn.adb: Minor reformatting. 5760 57612017-09-06 Ed Schonberg <schonberg@adacore.com> 5762 5763 * sem_warn.adb (Warn_On_Overlapping_Actuals): Refine previous 5764 fix and preserve older GNAT warning on overlapping actuals that 5765 are not elementary types. 5766 57672017-09-06 Justin Squirek <squirek@adacore.com> 5768 5769 * sem_attr.adb: Comment correction. 5770 57712017-09-06 Gary Dismukes <dismukes@adacore.com> 5772 5773 * sem_util.adb: Minor reformatting. 5774 57752017-09-06 Yannick Moy <moy@adacore.com> 5776 5777 * a-comlin.ads (Argument): Add precondition for analysis. 5778 57792017-09-06 Yannick Moy <moy@adacore.com> 5780 5781 * sem_res.adb (Resolve): Update message for function call as statement. 5782 57832017-09-06 Ed Schonberg <schonberg@adacore.com> 5784 5785 * sem_ch6.adb (Check_Returns): Clean up warnings coming from 5786 generated bodies for renamings that are completions, when renamed 5787 procedure is No_Return. 5788 * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality 5789 rule in 6.5.1 (7/2): if a renaming is a completion of a subprogram 5790 with No_Return, the renamed entity must be No_Return as well. 5791 57922017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5793 5794 * exp_ch5.adb, freeze.adb, exp_ch4.adb, exp_ch6.adb, lib-xref.adb: 5795 Minor reformatting. 5796 57972017-09-06 Justin Squirek <squirek@adacore.com> 5798 5799 * exp_attr.adb (Expand_N_Attribute_Reference): Modified Image 5800 attribute cases (Rewrite_Object_Reference_Image): Created to 5801 aid the rewriting of new-style 'Image attributes. 5802 * sem_attr.adb (Analyze_Attribute): Modified Image attribute cases 5803 (Check_Object_Reference_Image): Created to handle verification of 5804 'Image with object-references as prefixes. 5805 * sem_util.ads, sem_util.adb (Is_Image_Applied_To_Object): 5806 Create predicate to identify cases where an 'Image attribute's 5807 prefix applies to an object reference. 5808 58092017-09-06 Ed Schonberg <schonberg@adacore.com> 5810 5811 * freeze.adb (Freeze_Entity): Do not generate a freeze 5812 node for a generic unit, even if it includes delayed aspect 5813 specifications. Freeze nodes for generic entities must never 5814 appear in the tree that reaches the back-end of the compiler. 5815 58162017-09-06 Yannick Moy <moy@adacore.com> 5817 5818 * treepr.adb (Print_Entity_Info): Do not print empty Elist. 5819 58202017-09-06 Yannick Moy <moy@adacore.com> 5821 5822 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not consider calls 5823 to subprograms in other units as possibly inlined. 5824 58252017-09-06 Ed Schonberg <schonberg@adacore.com> 5826 5827 * freeze.adb (Freeze_Entity): For a derived type that has no 5828 explicit delayed aspects but may inherit delayed aspects from its 5829 parent type, analyze aspect at freeze point for proper capture 5830 of an inherited aspect. 5831 58322017-09-06 Arnaud Charlet <charlet@adacore.com> 5833 5834 * lib-xref.adb (Get_Through_Renamings): Get through subprogram 5835 renamings; also, avoid repeated calls to Renamed_Object when getting 5836 through object renamings. 5837 58382017-09-06 Ed Schonberg <schonberg@adacore.com> 5839 5840 * sem_ch3.adb (Array_Type_Declaration): Handle properly an 5841 array type declaration in a private part, when an index is a 5842 subtype indication of a discrete type with a private partial view. 5843 58442017-09-06 Javier Miranda <miranda@adacore.com> 5845 5846 * exp_ch4.adb (Expand_Modular_Op): Force generating 5847 temporary to improve the generated code. 5848 58492017-09-06 Tristan Gingold <gingold@adacore.com> 5850 5851 * s-fatgen.adb: Minor typo fix in comment. 5852 58532017-09-06 Ed Schonberg <schonberg@adacore.com> 5854 5855 * exp_ch5.adb (Make_Field_Assign): If the type 5856 of the right-hand side has stored constraint, use its values 5857 (except for those that are renamings of parent discriminants) 5858 to produce additional assignments for the discriminants of the 5859 left-hand side, which are invisible in the righ-hand side and 5860 not retrievable as selected components. 5861 58622017-09-06 Ed Schonberg <schonberg@adacore.com> 5863 5864 * sem_util.adb (Needs_One_Formal): The first formal of such a 5865 function must be a controlling formal, so that Obj.F (X, Y) 5866 can have the interpretation F(Obj)(X, Y). 5867 * sem_util.ads: Clarify documentation. 5868 58692017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5870 5871 * table.ads, table.adb: Restore original implementation. 5872 * namet.h (Names_Ptr): Adjust back. 5873 (Name_Chars_Ptr): Likewise. 5874 * uintp.h (Uints_Ptr): Likewise. 5875 (Udigits_Ptr): Likewise. 5876 * g-table.ads: Remove pragma Compiler_Unit_Warning. 5877 * par_sco.adb: Do not with GNAT.Table and use Table consistently. 5878 * scos.ads: Replace GNAT.Table with Table and adjust instantiations. 5879 * spark_xrefs.ads: Likewise. 5880 * scos.h: Undo latest changes. 5881 58822017-09-06 Ed Schonberg <schonberg@adacore.com> 5883 5884 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Propagate 5885 No_Return flag to instance if pragma applies to generic unit. This 5886 must be done explicitly because the pragma does not appear 5887 directly in the generic declaration (unlike the corresponding 5888 aspect specification). 5889 58902017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5891 5892 * sem_ch7.adb (Has_Referencer): Move up and expand comment 5893 explaining the test used to detect inlining. Use same test 5894 in second occurrence. 5895 (Analyze_Package_Body_Helper): Minor formatting fixes. 5896 58972017-09-06 Ed Schonberg <schonberg@adacore.com> 5898 5899 * exp_ch4.adb (Handle_Changed_Representation): For an untagged 5900 derived type with a mixture of renamed and constrained parent 5901 discriminants, the constraint for the target must obtain the 5902 discriminant values from both the operand and from the stored 5903 constraint for it, given that the constrained discriminants are 5904 not visible in the object. 5905 * exp_ch5.adb (Make_Field_Assign): The type of the right-hand 5906 side may be derived from that of the left-hand side (as in the 5907 case of an assignment with a change of representation) so the 5908 discriminant to be used in the retrieval of the value of the 5909 component must be the entity in the type of the right-hand side. 5910 59112017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 5912 5913 * sem_ch3.adb, sem_ch7.adb, sem_util.adb, g-debpoo.adb, sem_ch4.adb, 5914 sem_ch6.adb, sem_ch8.adb: Minor reformatting. 5915 * exp_util.adb (Is_Source_Object): Account for 5916 the cases where the source object may appear as a dereference 5917 or within a type conversion. 5918 * exp_ch6.adb: Fix missing space in error message. 5919 59202017-09-06 Ed Schonberg <schonberg@adacore.com> 5921 5922 * sem_prag.adb: Update description of Eliminate. 5923 59242017-09-06 Ed Schonberg <schonberg@adacore.com> 5925 5926 * sem_attr.adb (Analyze_Attribute, case 'Loop_Entry): Handle 5927 properly an attribute reference 'Loop_Entry that appears in the 5928 list of indices of an indexed expression, to prevent an infinite 5929 loop in the compiler. 5930 59312017-09-06 Bob Duff <duff@adacore.com> 5932 5933 * s-fileio.adb (Name): Do not raise Use_Error for temp files. 5934 59352017-09-06 Ed Schonberg <schonberg@adacore.com> 5936 5937 * sem_ch4.adb (Analyze_Set_Membership): If an alternative 5938 in a set membership is an overloaded enumeration literal, and 5939 the type of the alternative is resolved from a previous one, 5940 replace the entity of the alternative as well as the type, 5941 to prevent inconsistencies between the entity and the type. 5942 59432017-09-06 Eric Botcazou <ebotcazou@adacore.com> 5944 5945 * ali.ads (ALIs_Record): Add No_Component_Reordering component. 5946 (No_Component_Reordering_Specified): New switch. 5947 * ali.adb (Initialize_ALI): Set No_Component_Reordering_Specified. 5948 (Scan_ALI): Set No_Component_Reordering and deal with NC marker. 5949 * bcheck.adb (Check_Consistent_No_Component_Reordering): 5950 New check. 5951 (Check_Configuration_Consistency): Invoke it. 5952 * debug.adb (d.r): Toggle the effect of the switch. 5953 (d.v): Change to no-op. 5954 * einfo.ads (Has_Complex_Representation): 5955 Restrict to record types. 5956 (No_Reordering): New alias for Flag239. 5957 (OK_To_Reorder_Components): Delete. 5958 (No_Reordering): Declare. 5959 (Set_No_Reordering): Likewise. 5960 (OK_To_Reorder_Components): Delete. 5961 (Set_OK_To_Reorder_Components): Likewise. 5962 * einfo.adb (Has_Complex_Representation): Expect record types. 5963 (No_Reordering): New function. 5964 (OK_To_Reorder_Components): Delete. 5965 (Set_Has_Complex_Representation): Expect base record types. 5966 (Set_No_Reordering): New procedure. 5967 (Set_OK_To_Reorder_Components): Delete. 5968 (Write_Entity_Flags): Adjust to above change. 5969 * fe.h (Debug_Flag_Dot_R): New macro and declaration. 5970 * freeze.adb (Freeze_Record_Type): Remove conditional code setting 5971 OK_To_Reorder_Components on record types with convention Ada. 5972 * lib-writ.adb (Write_ALI): Deal with NC marker. 5973 * opt.ads (No_Component_Reordering): New flag. 5974 (No_Component_Reordering_Config): Likewise. 5975 (Config_Switches_Type): Add No_Component_Reordering component. 5976 * opt.adb (Register_Opt_Config_Switches): Copy 5977 No_Component_Reordering onto No_Component_Reordering_Config. 5978 (Restore_Opt_Config_Switches): Restore No_Component_Reordering. 5979 (Save_Opt_Config_Switches): Save No_Component_Reordering. 5980 (Set_Opt_Config_Switches): Set No_Component_Reordering. 5981 * par-prag.adb (Prag): Deal with Pragma_No_Component_Reordering. 5982 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Also set the 5983 No_Reordering flag from the default. 5984 (Build_Derived_Private_Type): Likewise. 5985 (Build_Derived_Record_Type): Likewise. Then inherit it 5986 for untagged types and clean up handling of similar flags. 5987 (Record_Type_Declaration): Likewise. 5988 * sem_ch13.adb (Same_Representation): Deal with No_Reordering and 5989 remove redundant test on Is_Tagged_Type. 5990 * sem_prag.adb (Analyze_Pragma): Handle No_Component_Reordering. 5991 (Sig_Flags): Likewise. 5992 * snames.ads-tmpl (Name_No_Component_Reordering): New name. 5993 (Pragma_Id): Add Pragma_No_Component_Reordering value. 5994 * warnsw.adb (Set_GNAT_Mode_Warnings): Enable -gnatw.q as well. 5995 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: 5996 Copy the layout of the parent type only if the No_Reordering 5997 settings match. 5998 (components_to_record): Reorder record types with 5999 convention Ada by default unless No_Reordering is set or -gnatd.r 6000 is specified and do not warn if No_Reordering is set in GNAT mode. 6001 60022017-09-06 Ed Schonberg <schonberg@adacore.com> 6003 6004 * sem_util.ads, sem_util.adb (Check_Previous_Null_Procedure): 6005 new predicate to reject declarations that can be completions, 6006 when there is a visible prior homograph that is a null procedure. 6007 * sem_ch6.adb (Analyze_Null_Procedure): use it. 6008 * sem_ch8.adb (Analyze_Subprogram_Renaming): ditto. 6009 60102017-09-06 Thomas Quinot <quinot@adacore.com> 6011 6012 * s-regpat.adb (Compile.Parse_Literal): Fix handling of literal 6013 run of 253 characters or more. 6014 60152017-09-06 Ed Schonberg <schonberg@adacore.com> 6016 6017 * einfo.adb (Designated_Type): Use Is_Incomplete_Type to handle 6018 properly incomplete subtypes that may be created by explicit or 6019 implicit declarations. 6020 (Is_Base_Type): Take E_Incomplete_Subtype into account. 6021 (Subtype_Kind): Ditto. 6022 * sem_ch3.adb (Build_Discriminated_Subtype): Set properly the 6023 Ekind of a subtype of a discriminated incomplete type. 6024 (Fixup_Bad_Constraint): Use Subtype_Kind in all cases, including 6025 incomplete types, to preserve error reporting. 6026 (Process_Incomplete_Dependents): Do not create a subtype 6027 declaration for an incomplete subtype that is created internally. 6028 * sem_ch7.adb (Analyze_Package_Specification): Handle properly 6029 incomplete subtypes that do not require a completion, either 6030 because they are limited views, of they are generic actuals. 6031 60322017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 6033 6034 * checks.adb (Insert_Valid_Check): Remove the 6035 suspicious manipulation of the Do_Range_Check flag as ths is 6036 no linger needed. Suppress validity check when analysing the 6037 validation variable. 6038 60392017-09-06 Philippe Gil <gil@adacore.com> 6040 6041 * g-debpoo.adb: adapt GNAT.Debug_Pools to allow safe thread 6042 GNATCOLL.Memory 6043 60442017-09-06 Bob Duff <duff@adacore.com> 6045 6046 * sem_elim.adb: Minor comment fix. 6047 60482017-09-06 Ed Schonberg <schonberg@adacore.com> 6049 6050 * sem_util.adb (Is_Object_Reference): A function call is an 6051 object reference, and thus attribute references for attributes 6052 that are functions (such as Pred and Succ) as well as predefined 6053 operators are legal in contexts that require an object, such as 6054 the prefix of attribute Img and the Ada2020 version of 'Image. 6055 60562017-09-06 Hristian Kirtchev <kirtchev@adacore.com> 6057 6058 * exp_util.adb, einfo.adb, sem_attr.adb, exp_ch4.adb, gnatls.adb, 6059 exp_ch3.adb, xoscons.adb: Minor reformatting. 6060 60612017-09-06 Raphael Amiard <amiard@adacore.com> 6062 6063 * a-chtgop.ads, a-chtgop.adb: Add versions of First and Next with 6064 Position parameter. If supplied, use it to provide efficient iteration. 6065 * a-cohase.ads, a-cohase.adb, a-cihama.ads, a-cihama.adb, 6066 a-cohama.ads, a-cohama.adb: Add/Use Position to provide efficient 6067 iteration. 6068 60692017-09-06 Ed Schonberg <schonberg@adacore.com> 6070 6071 * exp_util.adb (Build_Allocate_Deallocate_Proc): If the 6072 designated type is class-wide and the expression is an unchecked 6073 conversion, preserve the conversion when checking the tag of the 6074 designated object, to prevent spurious semantic errors when the 6075 expression in the conversion has an untagged type (for example 6076 an address attribute). 6077 60782017-09-06 Ed Schonberg <schonberg@adacore.com> 6079 6080 * sem_res.adb (Resolve_Entry_Call): Check whether a protected 6081 operation is subject to a pragma Eliminate. 6082 60832017-09-06 Ed Schonberg <schonberg@adacore.com> 6084 6085 * sem_elim.ads, exp_ch4.adb: Minor reformatting. 6086 60872017-09-06 Eric Botcazou <ebotcazou@adacore.com> 6088 6089 * fe.h (Eliminate_Error_Msg): Remove. 6090 60912017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 6092 6093 * gcc-interface/utils.c (make_packable_type): Update call to 6094 mode_for_size_tree. 6095 60962017-09-05 Richard Sandiford <richard.sandiford@linaro.org> 6097 6098 * gcc-interface/utils2.c (build_load_modify_store): 6099 Use int_mode_for_size. 6100 61012017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6102 6103 PR ada/62235 6104 * gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing 6105 for Itypes that are E_Record_Subtype with a cloned subtype. 6106 <E_Record_Subtype>: Use the DECL of the cloned type directly, if any. 6107 61082017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6109 6110 * gcc-interface/trans.c (convert_with_check): Use a custom base type 6111 if the base type of the expression has a different machine mode. 6112 Rename a couple of parameters and local variable. 6113 61142017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6115 6116 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Address>: Do not strip 6117 conversions around prefixes that are not references. 6118 61192017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6120 6121 * gcc-interface/utils.c (unchecked_convert): When the result type is a 6122 non-biased integral type with size 0, set the result to 0 directly. 6123 61242017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6125 6126 * gcc-interface/gigi.h (renaming_from_generic_instantiation_p): Turn to 6127 (renaming_from_instantiation_p): ...this. 6128 * gcc-interface/decl.c (gnat_to_gnu_entity): Use inline predicate 6129 instead of explicit tests on kind of entities. Adjust for renaming. 6130 (gnat_to_gnu_profile_type): Likewise. 6131 (gnat_to_gnu_subprog_type): Likewise. 6132 * gcc-interface/trans.c (Identifier_to_gnu): Likewise. 6133 (Case_Statement_to_gnu): Likewise. 6134 (gnat_to_gnu): Likewise. 6135 (process_freeze_entity): Likewise. 6136 (process_type): Likewise. 6137 (add_stmt_with_node): Adjust for renaming. 6138 * gcc-interface/utils.c (gnat_pushdecl): Adjust for renaming. 6139 (renaming_from_generic_instantiation_p): Rename to... 6140 (renaming_from_instantiation_p): ...this. Use inline predicate. 6141 (pad_type_hasher::keep_cache_entry): Fold. 6142 61432017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6144 6145 * gcc-interface/trans.c (adjust_for_implicit_deref): New function. 6146 (gnat_to_gnu) <N_Explicit_Dereference>: Translate result type first. 6147 (N_Indexed_Component): Invoke adjust_for_implicit_deref on the prefix. 6148 (N_Slice): Likewise. 6149 (N_Selected_Component): Likewise. Do not try again to translate it. 6150 (N_Free_Statement): Invoke adjust_for_implicit_deref on the expression. 6151 61522017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6153 6154 * repinfo.ads: Document new treatment of dynamic values. 6155 (TCode): Bump upper bound to 29. 6156 (Dynamic_Val): New constant set to 29. 6157 * repinfo.adb (Print_Expr) <Dynamic_Val>: New case. 6158 (Rep_Value) <Dynamic_Val>: Likewise. 6159 * repinfo.h (Dynamic_Val): New macro. 6160 * gcc-interface/decl.c (annotate_value): Tidy up and cache result for 6161 DECL_P nodes too. 6162 <INTEGER_CST>: Set TCODE instead of recursing. 6163 <COMPONENT_REF>: Set TCODE instead of calling Create_Node manually. 6164 <VAR_DECL>: New case. 6165 <MULT_EXPR, PLUS_EXPR>: Fold conversions into inner operations. 6166 <BIT_AND_EXPR>: Adjust. 6167 <CALL_EXPR>: Do not fall through. 6168 61692017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6170 6171 * gcc-interface/trans.c (Call_to_gnu): If this is a function call and 6172 there is no target, do not create a temporary for the return value for 6173 an allocator either. 6174 61752017-09-05 Eric Botcazou <ebotcazou@adacore.com> 6176 6177 * gcc-interface/trans.c (pos_to_constructor): Skip conversions to an 6178 unconstrained array type. 6179 61802017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6181 Alan Hayward <alan.hayward@arm.com> 6182 David Sherwood <david.sherwood@arm.com> 6183 6184 * gcc-interface/decl.c (validate_size): Use NARROWEST_INT_MODE 6185 instead of GET_CLASS_NARROWEST_MODE (MODE_INT). 6186 61872017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6188 Alan Hayward <alan.hayward@arm.com> 6189 David Sherwood <david.sherwood@arm.com> 6190 6191 * gcc-interface/decl.c (check_ok_for_atomic_type): Use 6192 is_a <scalar_int_mode>. 6193 * gcc-interface/trans.c (Pragma_to_gnu): Likewise. 6194 * gcc-interface/utils.c (gnat_type_for_mode): Likewise. 6195 61962017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6197 Alan Hayward <alan.hayward@arm.com> 6198 David Sherwood <david.sherwood@arm.com> 6199 6200 * gcc-interface/decl.c (gnat_to_gnu_entity): Use int_mode_for_size 6201 instead of mode_for_size. 6202 (gnat_to_gnu_subprog_type): Likewise. 6203 * gcc-interface/utils.c (make_type_from_size): Likewise. 6204 62052017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6206 Alan Hayward <alan.hayward@arm.com> 6207 David Sherwood <david.sherwood@arm.com> 6208 6209 * gcc-interface/misc.c (fp_prec_to_size): Use opt_scalar_float_mode. 6210 (fp_size_to_prec): Likewise. 6211 62122017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6213 Alan Hayward <alan.hayward@arm.com> 6214 David Sherwood <david.sherwood@arm.com> 6215 6216 * gcc-interface/utils.c (gnat_type_for_mode): Use is_a 6217 <scalar_float_mode> instead of SCALAR_FLOAT_MODE_P. 6218 62192017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6220 Alan Hayward <alan.hayward@arm.com> 6221 David Sherwood <david.sherwood@arm.com> 6222 6223 * gcc-interface/decl.c (validate_size): Update use of 6224 GET_MODE_WIDER_MODE, forcing a wider mode to exist. 6225 62262017-08-30 Richard Sandiford <richard.sandiford@linaro.org> 6227 Alan Hayward <alan.hayward@arm.com> 6228 David Sherwood <david.sherwood@arm.com> 6229 6230 * gcc-interface/misc.c (fp_prec_to_size): Use new mode iterators. 6231 (fp_size_to_prec): Likewise. 6232 62332017-08-29 Martin Liska <mliska@suse.cz> 6234 6235 PR other/39851 6236 * gcc-interface/trans.c (Pragma_to_gnu): Set argument to NULL. 6237 62382017-08-08 Martin Liska <mliska@suse.cz> 6239 6240 * gcc-interface/trans.c: Include header files. 6241 62422017-07-29 Jakub Jelinek <jakub@redhat.com> 6243 6244 * gcc-interface/utils.c (gnat_write_global_declarations): Pass false 6245 as new argument to the imported_module_or_decl debug hook. 6246 62472017-07-25 Javier Miranda <miranda@adacore.com> 6248 6249 * checks.adb (Apply_Divide_Checks): Ensure that operands are not 6250 evaluated twice. 6251 62522017-07-19 Jakub Jelinek <jakub@redhat.com> 6253 6254 * gcc-interface/ada-tree.h (TYPE_OBJECT_RECORD_TYPE, 6255 TYPE_GCC_MIN_VALUE): Use TYPE_MIN_VALUE_RAW instead of TYPE_MINVAL. 6256 (TYPE_GCC_MAX_VALUE): Use TYPE_MAX_VALUE_RAW instead of TYPE_MAXVAL. 6257 62582017-07-18 Mike Frysinger <vapier@chromium.org> 6259 6260 * gcc-interface/Makefile.in (../../gnatmake$(exeext)): Delete $(P). 6261 (../../gnatlink$(exeext)): Likewise. 6262 62632017-07-15 John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> 6264 6265 PR ada/81446 6266 * system-linux-m68k.ads: Add pragma No_Elaboration_Code_All. 6267 (Backend_Overflow_Checks): Set to True. 6268 62692017-06-23 Jakub Jelinek <jakub@redhat.com> 6270 6271 * gcc-interface/trans.c (gnat_to_gnu): Initialize sync to false. 6272 62732017-06-21 Pierre-Marie de Rodat <derodat@adacore.com> 6274 6275 * gcc-interface/ada-tree.h (DECL_FUNCTION_IS_DEF): Update copyright 6276 notice. New macro. 6277 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Tag the subprogram 6278 as a definition. 6279 (Compilation_Unit_to_gnu): Tag the elaboration procedure as a 6280 definition. 6281 * gcc-interface/decl.c (gnat_to_gnu_entity): Tag declarations of 6282 imported subprograms for the current compilation unit as 6283 definitions. Disable debug info for references to variables. 6284 * gcc-interface/gigi.h (create_subprog_decl): Update declaration. 6285 * gcc-interface/utils.c (gnat_pushdecl): Add external DECLs that are 6286 not built-in functions to their binding scope. 6287 (create_subprog_decl): Add a DEFINITION parameter. If it is true, tag 6288 the function as a definition. Update all callers. 6289 (gnat_write_global_declarations): Emit debug info for imported 6290 functions. Filter out external variables for which debug info 6291 is disabled. 6292 62932017-06-15 Nicolas Boulenguez <nicolas.boulenguez@free.fr> 6294 6295 PR ada/81105 6296 * gcc-interface/Makefile.in (x86 kfreebsd): Adjust system.ads setting. 6297 (i[3456]86-pc-gnu): Likewise. 6298 (x86_64 kfreebsd): Likewise. 6299 63002017-06-12 Eric Botcazou <ebotcazou@adacore.com> 6301 6302 PR bootstrap/80897 6303 * exp_ch3.adb (Make_Predefined_Primitive_Specs): Use Positive index. 6304 63052017-06-12 Eric Botcazou <ebotcazou@adacore.com> 6306 6307 PR ada/81070 6308 * s-interr-hwint.adb: Reinstate. 6309 * gcc-interface/Makefile.in (RTEMS): Use it again. 6310 63112017-06-08 Olivier Hainque <hainque@adacore.com> 6312 6313 * vx_crtbegin_auto.c: Update year in copyright notice. 6314 * vx_crtbegin.c: Likewise. 6315 * vx_crtbegin.inc: Likewise. 6316 * vx_crtend.c: Likewise. 6317 63182017-06-07 Sebastian Huber <sebastian.huber@embedded-brains.de> 6319 6320 * Makefile.in (rtems): Use TLS implementation for s-tpopsp.adb. 6321 * s-tpopsp-rtems.adb: Delete. 6322 63232017-06-02 Olivier Hainque <hainque@adacore.com> 6324 6325 * vx_crtbegin_auto.c: New file. 6326 * vx_crtbegin.c: New file. 6327 * vx_crtbegin.inc: New file. 6328 * vx_crtend.c: New file. 6329 63302017-05-25 Jonathan Wakely <jwakely@redhat.com> 6331 6332 * gcc-interface/utils2.c (compare_elmt_bitpos): Remove redundant 6333 const qualifiers that cause -Wignored-qualifiers warnings. 6334 63352017-05-22 Eric Botcazou <ebotcazou@adacore.com> 6336 6337 * gcc-interface/decl.c (gnat_to_gnu_entity): Skip regular processing 6338 for Itypes that are E_Access_Subtype. 6339 <E_Access_Subtype>: Use the DECL of the base type directly. 6340 63412017-05-22 Ed Schonberg <schonberg@adacore.com> 6342 Eric Botcazou <ebotcazou@adacore.com> 6343 6344 * sem_ch4.adb (Analyze_Call): In Ada2012 an incomplete type from a 6345 limited view may appear in the profile of a function, and a call to 6346 that function in another unit in which the full view is available must 6347 use this full view to spurious type errors at the point of call. 6348 * inline.adb (Analyze_Inlined_Bodies): Remove restriction on loading 6349 of parent body with a with clause for the main unit. 6350 * gcc-interface/decl.c (defer_limited_with_list): Document new usage. 6351 (gnat_to_gnu_entity) <E_Access_Type>: Handle completed Taft Amendment 6352 types declared in external units like types from limited with clauses. 6353 Adjust final processing of defer_limited_with_list accordingly. 6354 * gcc-interface/trans.c (gnat_to_gnu) < N_Selected_Component>: Try 6355 again to translate the prefix after the field if it is incomplete. 6356 63572017-05-22 Eric Botcazou <ebotcazou@adacore.com> 6358 6359 * gcc-interface/decl.c (gnat_to_gnu_field): Do not enforce strict 6360 alignment for simple volatile fields and remove associated errors. 6361 63622017-05-15 Eric Botcazou <ebotcazou@adacore.com> 6363 6364 * gcc-interface/gigi.h (get_elaboration_procedure): Delete. 6365 * gcc-interface/trans.c (get_elaboration_procedure): Make static. 6366 63672017-05-15 Pierre-Marie de Rodat <derodat@adacore.com> 6368 6369 * gcc-interface/utils.c (can_materialize_object_renaming_p): 6370 Synchronize with GNAT's Exp_Dbug.Debug_Renaming_Declaration: 6371 process Original_Node instead of expanded names. 6372 63732017-05-15 Eric Botcazou <ebotcazou@adacore.com> 6374 6375 * gcc-interface/trans.c (return_value_ok_for_nrv_p): Only apply the 6376 addressability check in the constrained case. 6377 63782017-05-15 Eric Botcazou <ebotcazou@adacore.com> 6379 6380 * gcc-interface/trans.c (Identifier_to_gnu): Also accept incomplete 6381 types not coming from a limited context. 6382 63832017-05-15 Eric Botcazou <ebotcazou@adacore.com> 6384 6385 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Skip subprograms on 6386 the inlined list that are not public. 6387 * gcc-interface/utils.c (create_subprog_decl): Clear TREE_PUBLIC if 6388 there is a pragma Inline_Always on the subprogram. 6389 63902017-05-15 Eric Botcazou <ebotcazou@adacore.com> 6391 6392 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Fix formatting. 6393 <N_Allocator>: Use properly typed constants. 6394 (extract_values): Move around. 6395 (pos_to_constructor): Minor tweaks. 6396 (Sloc_to_locus): Fix formatting. 6397 * gcc-interface/utils.c (process_deferred_decl_context): Minor tweaks. 6398 * gcc-interface/gigi.h (MARK_VISITED): Remove blank line. 6399 (Gigi_Equivalent_Type): Adjust head comment. 6400 * gcc-interface/decl.c (Gigi_Equivalent_Type): Likewise. 6401 64022017-05-15 Eric Botcazou <ebotcazou@adacore.com> 6403 6404 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: When there 6405 is a representation clause on an extension, propagate the alignment of 6406 the parent type only if the platform requires strict alignment. 6407 64082017-05-12 Eric Botcazou <ebotcazou@adacore.com> 6409 6410 * system-linux-arm.ads (Memory_Size): Use Long_Integer'Size 6411 instead of Word_Size. 6412 6413 Revert 6414 2017-03-28 Andreas Schwab <schwab@suse.de> 6415 6416 PR ada/80117 6417 * system-linux-aarch64-ilp32.ads: New file. 6418 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename 6419 from LIBGNAT_TARGET_PAIRS. 6420 (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define. 6421 (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and 6422 LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64 6423 or -mabi=ilp32, resp. 6424 64252017-05-10 H.J. Lu <hongjiu.lu@intel.com> 6426 6427 PR ada/80626 6428 * system-linux-x86.ads (Memory_Size): Use Long_Integer'Size 6429 instead of Word_Size. 6430 64312017-05-10 Bernd Edlinger <bernd.edlinger@hotmail.de> 6432 6433 * raise-gcc.c (exception_class_eq): Make ec parameter const. 6434 64352017-05-02 Richard Biener <rguenther@suse.de> 6436 6437 * gcc-interface/misc.c (gnat_post_options): Do not set 6438 -fstrict-overflow. 6439 64402017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6441 6442 * gcc-interface/trans.c (assoc_to_constructor): Make sure 6443 Corresponding_Discriminant is only called on discriminants. 6444 Skip the saving of the result only for them. 6445 (gnat_to_gnu) <N_Selected_Component>: Likewise. 6446 <N_Unchecked_Type_Conversion>: Translate the result type first. 6447 (gigi): Set TREE_NOTHROW on Begin_Handler. 6448 (stmt_list_cannot_raise_p): New predicate. 6449 (Exception_Handler_to_gnu_gcc): Emit a simple final call instead of 6450 a cleanup if the statements of the handler cannot raise. 6451 (process_freeze_entity): Use Is_Record_Type. 6452 (process_type): Likewise. 6453 64542017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6455 6456 * einfo.ads (Corresponding_Record_Component): New alias 6457 for Node21 used for E_Component and E_Discriminant. 6458 * einfo.adb (Corresponding_Record_Component): New function. 6459 (Set_Corresponding_Record_Component): New procedure. 6460 (Write_Field21_Name): Handle Corresponding_Record_Component. 6461 * sem_ch3.adb (Inherit_Component): Set 6462 Corresponding_Record_Component for every component in 6463 the untagged case. Clear it afterwards for non-girder 6464 discriminants. 6465 * gcc-interface/decl.c (gnat_to_gnu_entity) 6466 <E_Record_Type>: For a derived untagged type with discriminants 6467 and constraints, apply the constraints to the layout of the 6468 parent type to deduce the layout. 6469 (field_is_aliased): Delete. 6470 (components_to_record): Test DECL_ALIASED_P directly. 6471 (annotate_rep): Check that fields are present except for 6472 an extension. 6473 (create_field_decl_from): Add DEBUG_INFO_P 6474 parameter and pass it in recursive and other calls. Add guard 6475 for the manual CSE on the size. 6476 (is_stored_discriminant): New predicate. 6477 (copy_and_substitute_in_layout): Consider only 6478 stored discriminants and check that original fields are present 6479 in the old type. Deal with derived types. Adjust call to 6480 create_variant_part_from. 6481 64822017-05-02 Ed Schonberg <schonberg@adacore.com> 6483 6484 * exp_ch6.adb (Expand_Call_Helper): When locating the 6485 accessibility entity created for an access parameter, handle 6486 properly a reference to a formal of an enclosing subprogram. if 6487 the reference appears in an inherited class-wide condition, it 6488 is the rewriting of the reference in the ancestor expression, 6489 but the accessibility entity must be that of the current formal. 6490 64912017-05-02 Javier Miranda <miranda@adacore.com> 6492 6493 * exp_ch4.adb (Expand_Non_Binary_Modular_Op): New subprogram. 6494 (Expand_N_Op_Add, Expand_N_Op_Divide, Expand_N_Op_Minus, 6495 Expand_N_Op_Multiply, Expand_N_Op_Or, Expand_N_Op_Subtract): 6496 Call Expand_Non_Binary_Modular_Op. 6497 64982017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6499 6500 * sem_ch3.adb (Build_Derived_Private_Type): If the parent type 6501 has discriminants, do not override the Stored_Constraint list of 6502 the full view of the derived type with that of the derived type. 6503 65042017-05-02 Bob Duff <duff@adacore.com> 6505 6506 * sem_attr.adb (Attribute_Enum_Rep): Disallow T'Enum_Rep. 6507 65082017-05-02 Vasiliy Fofanov <fofanov@adacore.com> 6509 6510 * s-os_lib.ads: Minor typo fix. 6511 65122017-05-02 Vasiliy Fofanov <fofanov@adacore.com> 6513 6514 * gnatls.adb: Merge and refactor code from Prj.Env and remove 6515 this deprecated dependency. 6516 65172017-05-02 Ed Schonberg <schonberg@adacore.com> 6518 6519 * exp_util.ads: minor comment addition. 6520 65212017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6522 6523 * sem_ch3.adb (Build_Derived_Record_Type): Fix a few typos and 6524 pastos in part #3 of the head comment. 6525 65262017-05-02 Ed Schonberg <schonberg@adacore.com> 6527 6528 * exp_ch3.adb (Freeze_Type): Do not generate an invariant 6529 procedure body for a local (sub)type declaration within a 6530 predicate function. Invariant checks do not apply to these, and 6531 the expansion of the procedure will happen in the wrong scope, 6532 leading to misplaced freeze nodes. 6533 65342017-05-02 Ed Schonberg <schonberg@adacore.com> 6535 6536 * exp_util.adb (Insert_Library_Level_Action): Use proper scope 6537 to analyze generated actions. If the main unit is a body, 6538 the required scope is that of the corresponding unit declaration. 6539 65402017-05-02 Arnaud Charlet <charlet@adacore.com> 6541 6542 * einfo.adb (Declaration_Node): flip branches of 6543 an IF statement to avoid repeated negations in its condition; 6544 no change in semantics, only to improve readability. 6545 65462017-05-02 Arnaud Charlet <charlet@adacore.com> 6547 6548 * sem_case.adb: Remove extra spaces in parameter declarations. 6549 65502017-05-02 Justin Squirek <squirek@adacore.com> 6551 6552 * usage.adb: Replace space with hyphen ("run time" -> "run-time") 6553 in usage line for new -gnatwE switch. 6554 65552017-05-02 Claire Dross <dross@adacore.com> 6556 6557 * a-cofuve.ads (Remove): Remove unnecessary 6558 conditions in precondition. 6559 65602017-05-02 Vasiliy Fofanov <fofanov@adacore.com> 6561 6562 * a-stream.ads, exp_imgv.adb, sem_ch10.adb, 6563 sem_attr.adb, s-finmas.ads, osint.adb: Minor typo fix. 6564 65652017-05-02 Justin Squirek <squirek@adacore.com> 6566 6567 * sem_ch4.adb (Analyze_Case_Expression): Add check for valid 6568 alternative expression. 6569 * sem_res.adb (Resolve_Case_Expression): Ditto. 6570 65712017-05-02 Ed Schonberg <schonberg@adacore.com> 6572 6573 * exp_disp.adb (Set_All_DT_Position, In_Predef_Prim_DT): 6574 Refine predicate for the case where the primitive operation 6575 is a renaming of equality. An overriding operation that is 6576 a user-defined renaming of predefined equality inherits its 6577 slot from the overridden operation. Otherwise it is treated 6578 as a predefined op and occupies the same predefined slot as 6579 equality. A call to it is transformed into a call to its alias, 6580 which is the predefined equality. A dispatching call thus uses 6581 the proper slot if operation is further inherited and called 6582 with class-wide arguments. 6583 65842017-05-02 Justin Squirek <squirek@adacore.com> 6585 6586 * errout.adb (Set_Msg_Text): Add a case to switch the message 6587 type when the character '[' is detected signifying a warning 6588 about a run-time exception. 6589 * opt.ads Add a new Warning_Mode value for new switch 6590 * switch-b.adb (Scan_Binder_Switches): Add case for the binder 6591 to handle new warning mode 6592 * usage.adb (Usage): Add usage entry for -gnatwE 6593 * warnsw.adb (Set_Warning_Switch): Add case for the new switch 6594 65952017-05-02 Ed Schonberg <schonberg@adacore.com> 6596 6597 * sem_prag.adb (Process_Conversion): Reject an intrinsic operator 6598 declaration that operates on some fixed point type. 6599 66002017-05-02 Justin Squirek <squirek@adacore.com> 6601 6602 * a-crbtgo.adb, s-taasde.adb: Remove unused use-type clauses. 6603 66042017-05-02 Hristian Kirtchev <kirtchev@adacore.com> 6605 6606 * sem_ch6.adb (Analyze_Null_Procedure): Revert previous change. 6607 66082017-05-02 Justin Squirek <squirek@adacore.com> 6609 6610 * sem_ch4.adb (Analyze_Case_Expression): Add check for valid 6611 expression (Analyze_If_Expression): Add check for valid condition 6612 * sem_eval.adb (Eval_Case_Expression): Add check for error posted 6613 on case-expression 6614 * sem_res.adb (Resolve_If_Expression): Add check for valid 6615 condition and then-expression. 6616 66172017-05-02 Ed Schonberg <schonberg@adacore.com> 6618 6619 * exp_ch3.adb (Build_Initialization_Call): Generate a null 6620 statement if the initialization call is a null procedure, as 6621 can happen with a controlled type with no explicit Initialize 6622 procedure, or an array of such. 6623 * exp_ch7.adb (Process_Object_Declaration): For a type with 6624 controlled components that has a trivial Initialize procedure, 6625 insert declaration for finalization counter after object 6626 declaration itself. 6627 (Make_Deep_Array_Body, Build_Initialize_statements): Do not create 6628 finalization block and attendant declarations if component has 6629 a trivial Initialize procedure. 6630 (Make_Init_Call): Do not generate a call if controlled type has 6631 a trivial Initialize procedure. 6632 66332017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6634 6635 * g-forstr.ads (Data): Move Format component last. 6636 * g-forstr.adb ("+"): Adjust for above change. 6637 * g-rewdat.ads (Buffer): Move Buffer, Current, Pattern and Value last. 6638 * g-sechas.ads (Context): Move Key last. 6639 * g-socket.ads (Service_Entry_Type): Move Aliases last. 6640 * s-fileio.adb (Temp_File_Record): Move Name last. 6641 * s-regexp.adb (Regexp_Value): Move Case_Sensitive last. 6642 * xr_tabls.ads (Project_File): Move Src_Dir and Obj_Dir last. 6643 66442017-05-02 Jerome Lambourg <lambourg@adacore.com> 6645 6646 * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: Remove the -nognarl 6647 switch introduced recently. finally not needed. 6648 66492017-05-02 Hristian Kirtchev <kirtchev@adacore.com> 6650 6651 * sem_ch6.adb (Analyze_Null_Procedure): Set the 6652 Corresponding_Body link for a null procedure declaration. 6653 66542017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6655 6656 * atree.h (Flag290): Add missing terminating parenthesis. 6657 * einfo.adb (Is_Class_Wide_Clone): Use Flag290. 6658 (Set_Is_Class_Wide_Clone): Likewise. 6659 * einfo.ads (Is_Class_Wide_Clone): Likewise. 6660 66612017-05-02 Gary Dismukes <dismukes@adacore.com> 6662 6663 * checks.ads (Null_Exclusion_Static_Checks): Add Boolean 6664 parameter Array_Comp to indicate the case of an array object 6665 with null-excluding components. 6666 * checks.adb (Null_Exclusion_Static_Checks): 6667 Call Compile_Time_Constraint_Error instead of 6668 Apply_Compile_Time_Constraint_Error in the component case. Also 6669 call that when Array_Comp is True, with an appropriate warning for 6670 the array component case. Only create an explicit initialization 6671 by null in the case of an object of a null-excluding access type 6672 (and no longer do that in the component case). 6673 * sem_ch3.adb (Check_Component): Add a Boolean parameter 6674 Array_Comp defaulted to False. Pass Empty for the Comp 6675 actual when calling Null_Exclusion_Static_Checks in the case 6676 where Comp_Decl matches Object_Decl, because we don't have a 6677 component in that case. In the case of an object or component 6678 of an array type, pass True for Array_Comp on the recursive call 6679 to Check_Component. 6680 66812017-05-02 Bob Duff <duff@adacore.com> 6682 6683 * s-taprop-linux.adb (Prio_To_Linux_Prio): New function to correctly 6684 compute the linux priority from the Ada priority. Call this everywhere 6685 required. In particular, the previous version was not doing this 6686 computation when setting the ceiling priority in various places. It 6687 was just converting to C.int, which results in a ceiling that is off 6688 by 1. 6689 66902017-05-02 Ed Schonberg <schonberg@adacore.com> 6691 6692 * sem_ch3.adb: Comment predicate inheritance. 6693 66942017-05-02 Tristan Gingold <gingold@adacore.com> 6695 6696 * s-trasym.ads: Add comment. 6697 66982017-05-02 Bob Duff <duff@adacore.com> 6699 6700 * sem_elab.adb, sem_elab.ads: Minor comment fixes. 6701 * sem_ch4.adb: Minor reformatting. 6702 * s-taprop-linux.adb, s-taspri-posix.ads: Code refactoring. 6703 * s-taspri-posix-noaltstack.ads: Minor refactoring. 6704 * sinput.ads: Minor typo fix. 6705 67062017-05-02 Ed Schonberg <schonberg@adacore.com> 6707 6708 * exp_ch9.adb (Discriminated_Size): Moved to sem_util. 6709 * sem_util.ads, sem_util.adb (Discriminated_Size): Predicate moved 6710 here from exp_ch9, to recognize objects whose creation requires 6711 dynamic allocation, so that the proper warning can be emitted 6712 when restriction No_Implicit_Heap_Allocation is in effect. 6713 * sem_ch3.adb (Analyze_Object_Declaration): Use Discriminated_Size 6714 to emit proper warning when an object that requires dynamic 6715 allocation is declared. 6716 67172017-05-02 Tristan Gingold <gingold@adacore.com> 6718 6719 * s-trasym.ads, s-trasym.adb (Enable_Cache): New. 6720 67212017-05-02 Ed Schonberg <schonberg@adacore.com> 6722 6723 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): The same relaxed 6724 visibility rules for equality operators that apply within an 6725 instantiation apply within an inlined body. 6726 * sem_type.adb (Add_One_Interp): ditto. 6727 67282017-05-02 Hristian Kirtchev <kirtchev@adacore.com> 6729 6730 * sem_prag.adb (Analyze_Pragma): Forbid pragma Contract_Cases on null 6731 procedures. 6732 67332017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6734 6735 * snames.ads-tmpl 6736 (Name_Assume, Name_Attribute_Definition, Name_Loop_Optimize, 6737 Name_No_Tagged_Streams): Move to regular pragmas. Add 6738 placeholders for Default_Scalar_Storage_Order, Dispatching_Domain, 6739 and Secondary_Stack_Size. 6740 (Pragma_Id): Move Pragma_Assume, 6741 Pragma_Attribute_Definition, Pragma_Loop_Optimize and 6742 Pragma_No_Tagged_Streams to second part. 6743 67442017-05-02 Hristian Kirtchev <kirtchev@adacore.com> 6745 6746 * exp_attr.adb: Minor reformatting. 6747 67482017-05-02 Ed Schonberg <schonberg@adacore.com> 6749 6750 * sem_ch4.adb (Analyze_Selected_Component): Improve error 6751 detection for illegal references to private components or 6752 operations of a protected type in the body of the type. 6753 67542017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6755 6756 * opt.ads: Add missing GNAT markers in comments. 6757 * opt.adb (Set_Opt_Config_Switches): Do not override earlier 6758 settings of Optimize_Alignment at the end. 6759 67602017-05-02 Hristian Kirtchev <kirtchev@adacore.com> 6761 6762 * checks.adb (Apply_Constraint_Check): Do not apply 6763 a discriminant check when the associated type is a constrained 6764 subtype created for an unconstrained nominal type. 6765 * exp_attr.adb: Minor reformatting. 6766 67672017-05-02 Bob Duff <duff@adacore.com> 6768 6769 * sem_ch3.adb (OK_For_Limited_Init_In_05): Handle correctly 6770 the N_Raise_Expression case. 6771 * sem_ch6.adb (Check_Limited_Return): Minor: clarify comment, 6772 and add assertions. 6773 67742017-05-02 Yannick Moy <moy@adacore.com> 6775 6776 * exp_ch4.adb (Expand_N_Op_Ne): Do not bump parenthese level and 6777 optimize length comparison in GNATprove mode. 6778 * exp_spark.adb (Expand_SPARK_Op_Ne): New function to rewrite 6779 operator /= into negation of operator = when needed. 6780 (Expand_SPARK): Call new 6781 function to expand operator /=. 6782 67832017-05-02 Ed Schonberg <schonberg@adacore.com> 6784 6785 * exp_fixd.adb (Expand_Divide_Fixed_By_Fixed_Giving_Fixed): 6786 Simplify the expression for a fixed-fixed division to remove 6787 divisions by constants whenever possible, as an optimization 6788 for restricted targets. 6789 67902017-05-02 Hristian Kirtchev <kirtchev@adacore.com> 6791 6792 * checks.adb, sem_ch3.adb, sem_ch6.adb: Minor reformatting. 6793 67942017-05-02 Bob Duff <duff@adacore.com> 6795 6796 * exp_attr.adb (Callable, Identity, Terminated): Use Find_Prim_Op 6797 to find primitive ops, instead of using an Identifier that will 6798 later be looked up. This is necessary because these ops are not 6799 necessarily visible at all places where we need to call them. 6800 * exp_util.ads: Minor comment fix. 6801 68022017-05-02 Ed Schonberg <schonberg@adacore.com> 6803 6804 * sem_ch6.adb (Fully_Conformant_Expressions): Two entity 6805 references are fully conformant if they are both expansions 6806 of the discriminant of a protected type, within one of the 6807 protected operations. One occurrence may be expanded into a 6808 constant declaration while the other is an input parameter to 6809 the corresponding generated subprogram. 6810 68112017-05-02 Justin Squirek <squirek@adacore.com> 6812 6813 * sem_ch3.adb (Check_For_Null_Excluding_Components): Created for 6814 recursivly searching composite-types for null-excluding access 6815 types and verifying them. 6816 (Analyze_Object_Declaration): Add a 6817 call to Check_Null_Excluding_Components for static verification 6818 of non-initialized objects. 6819 * checks.adb, checks.ads (Null_Exclusion_Static_Checks): Added 6820 a parameter for a composite-type's component and an extra case 6821 for printing component information. 6822 68232017-05-02 Yannick Moy <moy@adacore.com> 6824 6825 * sem_ch10.adb (Analyze_Subunit): Take 6826 configuration pragma into account when restoring appropriate 6827 pragma for analysis of subunit. 6828 68292017-05-02 Justin Squirek <squirek@adacore.com> 6830 6831 * s-tasren.adb, s-tasini.adb, s-taprop-linux.adb, 6832 s-mudido-affinity.adb,, a-exetim-posix.adb, a-direio.adb, 6833 g-socket.adb, s-taenca.adb, s-fileio.adb: Remove unused use-type 6834 clauses from the runtime. 6835 68362017-05-02 Eric Botcazou <ebotcazou@adacore.com> 6837 6838 * freeze.adb (Check_Component_Storage_Order): Do not treat bit-packed 6839 array components specially. 6840 68412017-05-02 Ed Schonberg <schonberg@adacore.com> 6842 6843 * sem_ch8.adb (Premature_Usage): If the premature usage of 6844 an entity is as the expression in its own object decaration, 6845 rewrite the reference as Any_Id to prevent cascaded errors or 6846 compiler loops when such an entity is used in an address clause. 6847 68482017-05-01 Eric Botcazou <ebotcazou@adacore.com> 6849 6850 * gcc-interface/decl.c (components_to_record): Add missing guard. 6851 68522017-05-01 Eric Botcazou <ebotcazou@adacore.com> 6853 6854 * gcc-interface/decl.c (components_to_record): Add more comments. 6855 Put back pending fields onto the regular list if the misalignment 6856 happens to cancel itself. 6857 68582017-04-28 Ed Schonberg <schonberg@adacore.com> 6859 6860 * sem_ch4.adb (Complete_Object_Operation): When rewriting the 6861 controlling actual in a prefixed call, preserve the original node 6862 information if the prefix itself has been rewritten, for ASIS use. 6863 68642017-04-28 Hristian Kirtchev <kirtchev@adacore.com> 6865 6866 * exp_ch6.adb (Insert_Post_Call_Actions): 6867 Code clean up. Insert the post-call actions after an enclosing 6868 procedure call when N denotes a function call and appears as an 6869 actual parameter in the procedure call. 6870 68712017-04-28 Eric Botcazou <ebotcazou@adacore.com> 6872 6873 * freeze.adb (Check_Component_Storage_Order): If there is a clause 6874 for the component, also reject the attribute if the component 6875 doesn't end on a byte boundary and its scalar storage order is 6876 different from that of the enclosing record type. 6877 68782017-04-28 Javier Miranda <miranda@adacore.com> 6879 6880 * atree.ads (Info_Messages): Removed. 6881 (Warning_Info_Messages): New counter. 6882 (Report_Info_Messages): New counter. 6883 * err_vars.ads Update documentation. 6884 * errout.adb (Delete_Warning_And_Continuations): Update 6885 Info_Message occurrences. 6886 (Error_Msg_Internal): Update Info_Message occurrences. 6887 (Delete_Warning): Update Info_Message occurrences. 6888 (Write_Error_Summary): Update Info_Message occurrences. 6889 (Output_Messages): Update Info_Message occurrences. 6890 (To_Be_Removed): Update Info_Message occurrences. 6891 (Reset_Warnings): Update Info_Message occurrences. 6892 * errutil.adb (Error_Msg): Update Info_Message occurrences. 6893 (Finalize): Update Info_Message occurrences. 6894 (Initialize): Update Info_Message occurrences. 6895 * erroutc.adb (Delete_Msg): Update Info_Message occurrences. 6896 (Compilation_Errors): Update Info_Message_Occurences. 6897 68982017-04-28 Eric Botcazou <ebotcazou@adacore.com> 6899 6900 * exp_ch3.adb (Build_Init_Statements): Likewise on Nam. 6901 * freeze.adb (Check_Component_Storage_Order): And on Comp_Byte_Aligned. 6902 * sem_aggr.adb (Resolve_Record_Aggregate): Initialize Box_Node. 6903 * sem_attr.adb (Loop_Entry): Initialize Encl_Loop. 6904 * sem_ch12.adb (Build_Operator_Wrapper): Add pragma Warnings on Expr. 6905 * sem_ch13.adb (Validate_Address_Clauses): Initialize Y_Alignment and 6906 Y_Size. 6907 * sem_eval.adb (Why_Not_Static): Initialize Typ. 6908 * sem_prag.adb (Analyze_Pragma): Add pragma Warnings on Str. 6909 69102017-04-28 Bob Duff <duff@adacore.com> 6911 6912 * sem_util.ads, sem_util.adb (Might_Raise): New function 6913 that replaces Is_Exception_Safe, but has the opposite 6914 sense. Is_Exception_Safe was missing various cases -- calls inside 6915 a pragma Debug, calls inside an 'if' or assignment statement, 6916 etc. Might_Raise now walks the entire subtree looking for things 6917 that can raise. 6918 * exp_ch9.adb (Is_Exception_Safe): Remove. 6919 (Build_Protected_Subprogram_Body): Replace call to 6920 Is_Exception_Safe with "not Might_Raise". Misc cleanup (use 6921 constants where possible). 6922 * exp_ch7.adb: Rename Is_Protected_Body --> 6923 Is_Protected_Subp_Body. A protected_body is something different 6924 in the grammar. 6925 69262017-04-28 Eric Botcazou <ebotcazou@adacore.com> 6927 6928 * inline.adb (Expand_Inlined_Call): Initialize Targ1 variable. 6929 * par-ch3.adb (P_Component_Items): Initialize Decl_Node variable. 6930 (P_Discrete_Choice_List): Initialize Expr_Node variable. 6931 * par-ch9.adb (P_Task): Initialize Aspect_Sloc variable. 6932 (P_Protected): Likewise. 6933 * sem_case.adb (Check_Duplicates): 6934 Add pragma Warnings on variable. 6935 * sem_ch12.adb (Preanalyze_Actuals): Initialize Vis variable. 6936 * sem_ch4.adb (List_Operand_Interps): Add pragma Warnings on variable. 6937 * sem_ch5.adb (Analyze_Assignment): Initialize Save_Full_Analysis. 6938 (Analyze_Exit_Statement): Initialize Scope_Id variable. 6939 (Analyze_Iterator_Specification): Initialize Bas variable. 6940 * sem_ch9.adb (Allows_Lock_Free_Implementation): Initialize 6941 Error_Count (Satisfies_Lock_Free_Requirements): Likewise. 6942 (Analyze_Accept_Statement): Initialize Task_Nam. 6943 69442017-04-28 Hristian Kirtchev <kirtchev@adacore.com> 6945 6946 * checks.adb (Install_Primitive_Elaboration_Check): 6947 Do not generate an elaboration check if all checks have been 6948 suppressed. 6949 69502017-04-28 Ed Schonberg <schonberg@adacore.com> 6951 6952 * sem_ch13.adb (Analyze_Aspect_Specifications, case 6953 Interrupt_Handler and Attach_Handler): Generate reference 6954 to protected operation to prevent spurious warnings about 6955 unreferenced entities. Previous scheme failed with style checks 6956 enabled. 6957 69582017-04-28 Ed Schonberg <schonberg@adacore.com> 6959 6960 * sem_prag.adb (Relocate_Pragmas_To_Body): A pragma Warnings 6961 that follows an expression function must not be relocated to 6962 the generated body, because it applies to the code that follows. 6963 69642017-04-28 Gary Dismukes <dismukes@adacore.com> 6965 6966 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test 6967 Relaxed_RM_Semantics to avoid having CodePeer issue errors on 6968 code that might violate the more stringent checking for 'Access 6969 introduced in Ada 2005. 6970 69712017-04-28 Arnaud Charlet <charlet@adacore.com> 6972 6973 * a-cforse.adb: minor style fix in comment. 6974 69752017-04-28 Eric Botcazou <ebotcazou@adacore.com> 6976 6977 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Also 6978 initialize Block_Decls variable. 6979 (Expand_Entry_Barrier): Add pragma Warnings on Func_Body variable. 6980 (Build_Dispatching_Requeue): Add pragma Warnings on Op variable. 6981 * exp_disp.adb (Expand_Interface_Actuals): Initialize 6982 Formal_DDT and Actual_DDT variables. 6983 (Expand_Interface_Thunk): Initialize Iface_Formal. 6984 (Make_DT): Initialize Size_Comp. 6985 (Make_Select_Specific_Data_Table): Initialize Decls. 6986 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): 6987 Also initialize more RPC_Receiver_* variables. 6988 (Build_To_Any_Function): Initialize Cstr_Formal. 6989 * exp_prag.adb (Expand_Pragma_Contract_Cases): Initialize Msg_Str. 6990 69912017-04-28 Ed Schonberg <schonberg@adacore.com> 6992 6993 * sem_ch6.adb (Freeze_Type_Refs): For an interface conversion 6994 node between access types, freeze the designated type as well, 6995 so that dispatch table pointers are created in the proper scope, 6996 and not in the constructed body of the expression function. 6997 69982017-04-28 Bob Duff <duff@adacore.com> 6999 7000 * alloc.ads (Nodes_Initial): Go back to previous value. The large 7001 value makes large compilations faster, but small compilations slower. 7002 70032017-04-28 Arnaud Charlet <charlet@adacore.com> 7004 7005 * sem_util.adb: minor typos in Is_Child_Or_Sibling. 7006 70072017-04-28 Hristian Kirtchev <kirtchev@adacore.com> 7008 7009 * erroutc.adb (Compilation_Errors): Do not consider info messages 7010 as suitable warnings when warnings must be treated as errors. 7011 * sem_ch7.adb (Analyze_Package_Specification): Do not consider 7012 internally-generated packages when outputting completion 7013 information. 7014 * errout.adb (Output_Messages): Do not consider info messages as 7015 suitable warnings when warnings must be treated as errors. 7016 * errutil.adb (Finalize): Do not consider info messages as 7017 suitable warnings when warnings must be treated as errors. 7018 70192017-04-28 Eric Botcazou <ebotcazou@adacore.com> 7020 7021 * warnsw.ads: Minor fix for incorrect wording in comment. 7022 70232017-04-28 Ed Schonberg <schonberg@adacore.com> 7024 7025 * sem_res.adb (In_Instance_Code): New predicate in 7026 Valid_Conversion, to determine whether a type conversion appears 7027 as (or within) an actual for a formal object. Type conversions 7028 in instances are not rechecked in Valid_Conversion because 7029 visibility changes between generic location andi instance may 7030 lead to spurious errors, but conversions within an actual must be 7031 fully checked, and they are not fully resolved when pre-analyzing 7032 the actuals. 7033 70342017-04-28 Hristian Kirtchev <kirtchev@adacore.com> 7035 7036 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Use 7037 New_Copy_Tree instead of Relocate_Node as any subsequent copies 7038 of the relocated node will have mangled Parent pointers. 7039 * sem_util.adb (Build_NCT_Hash_Tables): Reset both hash 7040 tables used in conjunction with entity and itype replication. 7041 (Visit_Entity): Rewrite the restriction on which entities 7042 require duplication. The restriction now includes all types. 7043 70442017-04-28 Hristian Kirtchev <kirtchev@adacore.com> 7045 7046 * a-cofuse.ads, a-cfdlli.ads, a-cfhase.adb, a-cfhase.ads, a-cfinve.adb, 7047 a-cfinve.ads, a-cforma.adb, a-cforma.ads, a-cofuma.adb, a-cofuma.ads, 7048 a-cfhama.adb, a-cfhama.ads, a-cforse.adb: Minor reformatting and code 7049 cleanups. 7050 70512017-04-28 Hristian Kirtchev <kirtchev@adacore.com> 7052 7053 * exp_util.adb, g-dyntab.adb, par-ch4.adb, sem_util.adb, sem_attr.adb, 7054 gnat1drv.adb, exp_disp.adb, namet.adb, alloc.ads: Minor reformatting. 7055 70562017-04-28 Gary Dismukes <dismukes@adacore.com> 7057 7058 * exp_util.adb: Minor reformatting. 7059 70602017-04-28 Ed Schonberg <schonberg@adacore.com> 7061 7062 * sem_ch4.adb: Fix copy/pasto. 7063 70642017-04-27 Tristan Gingold <gingold@adacore.com> 7065 7066 * gcc-interface/Make-lang.in: Define EH_MECHANISM while building 7067 raise-gcc.c. Fix include search path for raise-gcc.c 7068 70692017-04-27 Eric Botcazou <ebotcazou@adacore.com> 7070 7071 * fe.h (Warn_On_Questionable_Layout): Declare. 7072 * warnsw.ads (Warn_On_Record_Holes): Move down. 7073 (Warn_On_Questionable_Layout): New boolean variable. 7074 (Warning_Record): Add Warn_On_Questionable_Layout field. 7075 * warnsw.adb (All_Warnings): Set Warn_On_Questionable_Layout. 7076 (Restore_Warnings): Likewise. 7077 (Save_Warnings): Likewise. 7078 (Set_Dot_Warning_Switch): Handle 'q' and 'Q' letters. 7079 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to 7080 components_to_record. 7081 (gnu_field_to_gnat): New function. 7082 (warn_on_field_placement): Likewise. 7083 (components_to_record): Add GNAT_RECORD_TYPE and remove REORDER 7084 parameters. Rename local variables and adjust recursive call. 7085 Rework final scan of the field list and implement warnings on the 7086 problematic placement of specific sorts of fields. 7087 70882017-04-27 Bob Duff <duff@adacore.com> 7089 7090 * errout.adb, exp_aggr.adb, exp_attr.adb, exp_code.adb, fname.adb, 7091 * fname.ads, freeze.adb, inline.adb, lib.adb, lib.ads, lib-list.adb, 7092 * lib-load.adb, lib-writ.adb, par.adb, restrict.adb, rtsfind.adb, 7093 * sem.adb, sem_cat.adb, sem_ch10.adb, sem_ch12.adb, sem_ch3.adb, 7094 * sem_ch4.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb, 7095 * sem_intr.adb, sem_res.adb, sem_util.adb, sem_warn.adb, sprint.adb: 7096 For efficiency, cache results of Is_Internal_File_Name and 7097 Is_Predefined_File_Name in the Units table. This avoids a lot 7098 of repeated text processing. 7099 71002017-04-27 Emmanuel Briot <briot@adacore.com> 7101 7102 * g-comlin.adb (Sort_Sections): remove useless test. 7103 71042017-04-27 Claire Dross <dross@adacore.com> 7105 7106 * a-cfhase.adb, a-cfhase.ads (=): Generic parameter removed to 7107 allow the use of regular equality over elements in contracts. 7108 (Formal_Model): Ghost package containing model functions that are 7109 used in subprogram contracts. 7110 (Current_To_Last): Removed, model functions should be used instead. 7111 (First_To_Previous): Removed, model functions should be used instead. 7112 (Strict_Equal): Removed, model functions should be used instead. 7113 (No_Overlap): Removed, model functions should be used instead. 7114 (Equivalent_Keys): Functions over cursors are removed. They were 7115 awkward with explicit container parameters. 7116 * a-cforse.adb, a-cforse.ads (=): Generic parameter removed to 7117 allow the use of regular equality over elements in contracts. 7118 (Formal_Model): Ghost package containing model functions that 7119 are used in subprogram contracts. 7120 (Current_To_Last): Removed, model functions should be used instead. 7121 (First_To_Previous): Removed, model functions should be used instead. 7122 (Strict_Equal): Removed, model functions should be used instead. 7123 (No_Overlap): Removed, model functions should be used instead. 7124 71252017-04-27 Yannick Moy <moy@adacore.com> 7126 7127 * gnat1drv.adb: Code cleanup. 7128 71292017-04-27 Ed Schonberg <schonberg@adacore.com> 7130 7131 * exp_util.adb (Replace_Entity): The prefix of a 'Result 7132 attribute reference in a post- condition is the subprogram to 7133 which the condition applies. If the condition is inherited 7134 by a type extension, the prefix becomes a reference to the 7135 inherited operation, but there is no need to create a wrapper 7136 for this operation, because 'Result is expanded independently 7137 when elaborating the postconditions. 7138 71392017-04-27 Bob Duff <duff@adacore.com> 7140 7141 * sinput.adb: Minor code cleanup. 7142 * namet.adb (Append): Create faster versions of 7143 Append(String) and Append(Name_Id) by using slice assignment 7144 instead of loops. 7145 * sem_util.adb (In_Instance): Speed this up by removing 7146 unnecessary tests; Is_Generic_Instance is defined for all 7147 entities. 7148 * sem_util.ads, sem_util.adb (In_Parameter_Specification): 7149 Remove unused function. 7150 * alloc.ads (Nodes_Initial): Use a much larger value, because 7151 the compiler was spending a lot of time copying the nodes table 7152 when it grows. This number was chosen in 1996, so is rather out 7153 of date with current memory sizes. Anyway, it's virtual memory. 7154 Get rid of Orig_Nodes_...; use Node_... instead. 7155 * atree.adb (Lock): Do not release the Nodes tables; it's a 7156 waste of time. 7157 Orig_Nodes_ ==> Nodes_ 7158 * nlists.adb: Orig_Nodes_ ==> Nodes_ 7159 * g-table.adb: Remove unused "with" clause. 7160 * g-table.ads, table.ads: Remove Big_Table_Type, which should 7161 not be used by clients. 7162 * g-dyntab.adb (Last_Allocated): New function 7163 to encapsulate T.P.Last_Allocated, which I'm thinking of changing. 7164 71652017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7166 7167 * sem_eval.adb (Subtypes_Statically_Compatible): Remove duplicated 7168 check. 7169 (Subtypes_Statically_Match): Remove duplicate check. 7170 * sem_prag.adb (Check_Arg_Is_External_Name): Remove duplicate check. 7171 71722017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7173 7174 * exp_aggr.adb (Replace_Type): Remove the special processing 7175 for selected components. 7176 * exp_attr.adb (Expand_N_Attribute_Reference): Merge the 7177 processing for attributes Fixed_Value and Integer_Value. 7178 * exp_util.adb (Side_Effect_Free): Merge the processing for 7179 qualified expressions, type conversions, and unchecked type 7180 conversions. 7181 * g-comlin.adb (Is_In_Config): Merge the processing for No_Space 7182 and Optional. 7183 * par-ch3.adb (P_Declarative_Items): Merge the processing for 7184 tokens function, not, overriding, and procedure. 7185 * sem_ch6.adb (Fully_Conformant_Expressions): Merge the processing 7186 for qualified expressions, type conversions, and unchecked 7187 type conversions. 7188 * sem_util.adb (Compile_Time_Constraint_Error): Merge the 7189 processing for Ada 83 and instances. 7190 (Object_Access_Level): Merge the processing for indexed components 7191 and selected components. 7192 * uname.adb (Add_Node_Name): Merge the processing for stubs. 7193 71942017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7195 7196 * checks.adb (Install_Primitive_Elaboration_Check): 7197 Do not generate the check when restriction No_Elaboration_Code 7198 is in effect. 7199 72002017-04-27 Ed Schonberg <schonberg@adacore.com> 7201 7202 * exp_disp.adb (Build_Class_Wide_Check): New subsidiary 7203 of Expand_Dispatching_Call. If the denoted subprogram has a 7204 class-wide precondition, this is the only precondition that 7205 applies to the call, rather that the class-wide preconditions 7206 that may apply to the body that is executed. (This is specified 7207 in AI12-0195). 7208 72092017-04-27 Yannick Moy <moy@adacore.com> 7210 7211 * gnat1drv.adb (Adjust_Global_Switches): Issue 7212 a warning in GNATprove mode if the runtime library does not 7213 support IEEE-754 floats. 7214 72152017-04-27 Ed Schonberg <schonberg@adacore.com> 7216 7217 * sem_prag.adb (Inherit_Class_Wide_Pre): If the parent operation 7218 is itself inherited it does not carry any contract information, 7219 so examine its parent operation which is its Alias. 7220 72212017-04-27 Ed Schonberg <schonberg@adacore.com> 7222 7223 * sem_attr.adb (Analyze_Attribute, case 'Image): In Ada2012 the 7224 prefix can be an object reference in which case Obj'Image (X) 7225 can only be interpreted as an indexing of the parameterless 7226 version of the attribute. 7227 * par-ch4.adb (P_Name): An attribute reference can be the prefix of 7228 an indexing or a slice operation if the attribute does not require 7229 parameters. In Ada2012 'Image also belongs in this category, 7230 and A'Image (lo .. hi) is legal and must be parsed as a slice. 7231 72322017-04-27 Yannick Moy <moy@adacore.com> 7233 7234 * exp_ch4.adb: Minor reformatting. 7235 * gnat1drv.adb (Adjust_Global_Switches): When in GNATprove mode, 7236 disable the CodePeer and C generation modes. Similar to the 7237 opposite actions done in CodePeer mode. 7238 72392017-04-27 Yannick Moy <moy@adacore.com> 7240 7241 * sem_res.adb: Remove duplicate code. 7242 * sem_attr.adb: Delete duplicate code. 7243 72442017-04-27 Bob Duff <duff@adacore.com> 7245 7246 * g-dyntab.adb: Reduce the amount of copying in 7247 Release. No need to copy items past Last. 7248 72492017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7250 7251 * checks.adb Add with and use clauses for Sem_Disp. 7252 (Install_Primitive_Elaboration_Check): New routine. 7253 * checks.ads (Install_Primitive_Elaboration_Check): New routine. 7254 * exp_attr.adb (Expand_N_Attribute_Reference): Clean up the 7255 processing of 'Elaborated. 7256 * exp_ch6.adb (Expand_N_Subprogram_Body): Install a primitive 7257 elaboration check. 7258 72592017-04-27 Bob Duff <duff@adacore.com> 7260 7261 * g-dyntab.ads, g-dyntab.adb, g-table.ads: Remove incorrect assertion. 7262 If the table grows and then shrinks back to empty, we won't necessarily 7263 point back to the empty array. Code cleanups. 7264 * sinput.ads: Add 'Base to Size clause to match the declared 7265 component subtypes. 7266 72672017-04-27 Claire Dross <dross@adacore.com> 7268 7269 * a-cforma.adb, a-cforma.ads (=): Generic parameter removed to 7270 allow the use of regular equality over elements in contracts. 7271 (Formal_Model): Ghost package containing model functions that 7272 are used in subprogram contracts. 7273 (Current_To_Last): Removed, model functions should be used instead. 7274 (First_To_Previous): Removed, model functions should be used instead. 7275 (Strict_Equal): Removed, model functions should be used instead. 7276 (No_Overlap): Removed, model functions should be used instead. 7277 * a-cofuma.adb, a-cofuma.ads (Enable_Handling_Of_Equivalence) 7278 Boolean generic parameter to disable contracts for equivalence 7279 between keys. 7280 (Witness): Create a witness of a key that is used for handling of 7281 equivalence between keys. 7282 (Has_Witness): Check whether a witness is contained in a map. 7283 (W_Get): Get the element associated to a witness. 7284 (Lift_Equivalent_Keys): Removed, equivalence between keys is handled 7285 directly. 7286 * a-cofuse.adb, a-cofuse.ads (Enable_Handling_Of_Equivalence) 7287 Boolean generic parameter to disable contracts for equivalence 7288 between keys. 7289 * a-cfhama.adb, a-cfhama.ads (Formal_Model.P) Disable handling 7290 of equivalence on functional maps. 7291 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.P) Disable handling 7292 of equivalence on functional maps. 7293 72942017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7295 7296 * exp_ch9.adb (Expand_Entry_Barrier): Code 7297 cleanup. Do not perform the optimization which removes the 7298 declarations of the discriminant and component renamings when 7299 validity checks on operands and attributes are in effect. 7300 73012017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7302 7303 * exp_spark.adb, exp_util.adb, sem_ch7.adb, g-dyntab.adb, g-dyntab.ads, 7304 freeze.adb, a-cfinve.ads, a-cofuma.adb, a-cofuma.ads, a-cfhama.adb, 7305 a-cfhama.ads, a-cofove.ads: Minor reformatting. 7306 73072017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7308 7309 * g-debpoo.adb (Dump_Gnatmem): Protect against a possible null 7310 pointer dereference. 7311 * g-spipat.adb (Dump): Code clean up. Protect against a possible 7312 null pointer dereference. 7313 73142017-04-27 Bob Duff <duff@adacore.com> 7315 7316 * g-dyntab.ads, g-dyntab.adb: Default for Table_Low_Bound. 7317 Rename Empty --> Empty_Table_Ptr, and don't duplicate code for it. 7318 Free renames Init, since they do the same thing. 7319 * g-table.ads: Default for Table_Low_Bound. 7320 * table.ads: Default for Table_Low_Bound, Table_Initial, and 7321 Table_Increment. 7322 73232017-04-27 Bob Duff <duff@adacore.com> 7324 7325 * g-dyntab.ads, g-dyntab.adb: Add assertions to subprograms that 7326 can reallocate. 7327 * atree.adb, elists.adb, fname-uf.adb, ghost.adb, inline.adb, 7328 * lib.adb, namet.adb, nlists.adb, sem.adb, sinput.adb, stringt.adb: 7329 Reorder code so that above assertions do not fail. 7330 * table.ads: Remove obsolete comment on Locked. 7331 73322017-04-27 Claire Dross <dross@adacore.com> 7333 7334 * a-cfdlli.ads: Code cleanup. 7335 73362017-04-27 Yannick Moy <moy@adacore.com> 7337 7338 * exp_spark.adb (Expand_SPARK_Freeze_Type): Build a DIC procedure 7339 when needed for proof. (Expand_SPARK): Call the new procedure. 7340 * exp_util.ads Fix typo. 7341 73422017-04-27 Gary Dismukes <dismukes@adacore.com> 7343 7344 * a-cofuma.ads, a-cfhama.ads: Minor reformatting, grammar, and typo 7345 fixes. 7346 73472017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7348 7349 * sem_elab.adb Add new type Visited_Element 7350 and update the contents of table Elab_Visited. Various code clean up. 7351 (Check_Elab_Call): Determine whether a prior call to 7352 the same subprogram was already examined within the same context. 7353 (Check_Internal_Call_Continue): Register the subprogram being 7354 called as examined within a particular context. Do not suppress 7355 elaboration warnings. 7356 73572017-04-27 Gary Dismukes <dismukes@adacore.com> 7358 7359 * xoscons.adb, osint.ads: Minor reformatting. 7360 73612017-04-27 Bob Duff <duff@adacore.com> 7362 7363 * g-dyntab.ads, g-dyntab.adb: Misc cleanup. Rename 7364 Table_Count_Type --> Table_Last_Type, because the name 7365 was confusing (a "count" usually starts at zero). Add 7366 functionality supported or needed by other tables packages 7367 (Move, Release_Threshold). 7368 * g-table.ads, g-table.adb: This is now just a thin wrapper 7369 around g-dyntab.ads/g-dyntab.adb. Add functionality supported 7370 or needed by other tables packages (Save, Restore). 7371 * table.ads, table.adb: This is now just a thin wrapper around 7372 * g-table.ads/g-table.adb. 7373 * namet.h, scos.h, uintp.h: These files are reaching into the 7374 private data of some instances of g-table, whose names changed, 7375 so the above change requires some adjustment here. It now uses 7376 public interfaces. 7377 73782017-04-27 Bob Duff <duff@adacore.com> 7379 7380 * namet.adb, namet.ads: Minor: remove unused procedures. 7381 73822017-04-27 Eric Botcazou <ebotcazou@adacore.com> 7383 7384 * checks.adb (Apply_Scalar_Range_Check): Initialize Ok variable too. 7385 (Minimize_Eliminate_Overflows): Initialize Llo and Lhi. 7386 Add pragma Warnings on Rtype variable in nested block. * 7387 * exp_ch3.adb (Build_Init_Statements): Initialize VAR_LOC. 7388 * exp_ch4.adb (Expand_Concatenate): Initialize 3 variables. 7389 (Size_In_Storage_Elements): Add pragma Warnings on Res variable. 7390 * exp_ch7.adb (Build_Adjust_Statements): Initialize Bod_Stmts. 7391 (Process_Component_List_For_Finalize): Initialize Counter_Id. 7392 (Build_Finalize_Statements): Initialize Bod_Stmts. 7393 * exp_disp.adb (Expand_Dispatching_Call): Initialize SCIL_Node. 7394 73952017-04-27 Claire Dross <dross@adacore.com> 7396 7397 * a-cfhama.adb, a-cfhamai.ads (=): Generic parameter removed to 7398 allow the use of regular equality over elements in contracts. 7399 (Formal_Model): Ghost package containing model functions that are 7400 used in subprogram contracts. 7401 (Current_To_Last): Removed, model 7402 functions should be used instead. 7403 (First_To_Previous): Removed, model functions should be used instead. 7404 (Strict_Equal): Removed, model functions should be used instead. 7405 (No_Overlap): Removed, model functions should be used instead. 7406 (Equivalent_Keys): Functions over cursors are removed. They were 7407 awkward with explicit container parameters. 7408 * a-cofuma.adb, a-cofuma.ads (Lift_Equivalent_Keys): New lemma 7409 (proof only) procedure to help GNATprove when equivalence over 7410 keys is not equality. 7411 74122017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7413 7414 * exp_util.adb, a-cfdlli.adb, a-cfdlli.ads, exp_ch9.adb, g-dyntab.adb, 7415 sem_dim.adb, a-cfinve.adb, a-cfinve.ads, a-cofove.adb, a-cofove.ads: 7416 Minor reformatting and code cleanups. 7417 74182017-04-27 Ed Schonberg <schonberg@adacore.com> 7419 7420 * freeze.adb (Build_Inherited_Condition_Pragmas): New procedure, 7421 subsidiary of Check_Inherited_Conditions, to build pragmas for an 7422 operation whose ancestor has classwide pre/postconditions. This 7423 is used both to check the legality of the inheritance in Ada 7424 and in SPARK, and to determine whether a wrapper is needed for 7425 an inherited operation. 7426 * exp_util.adb (Build_Class_Wide_Expression, Replace_Entity): 7427 Improve placement of error message for inherited classwide 7428 conditions that become illegal on type derivation. 7429 74302017-04-27 Yannick Moy <moy@adacore.com> 7431 7432 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Set 7433 SPARK_Mode from context on generic package. 7434 * sem_ch7.adb (Analyze_Package_Declaration): Simplify code to remove 7435 useless test. 7436 74372017-04-27 Claire Dross <dross@adacore.com> 7438 7439 * a-cofuve.ads (Range_Shifted): Rewrite precondition to avoid 7440 overflows in computations. 7441 * a-cofove.ads (Capacity_Range): Rewrite last bound to avoid 7442 overflows in computations. 7443 (Insert): Rewrite precondition to avoid overflows in computations. 7444 * a-cfinve.ads (Capacity_Range): Rewrite last bound to avoid 7445 overflows in computations. 7446 (Insert): Rewrite precondition to avoid overflows in computations. 7447 74482017-04-27 Steve Baird <baird@adacore.com> 7449 7450 * exp_ch9.adb (Expand_N_Asynchronous_Select): Initialize the Cancel 7451 flag when it is declared in order to avoid confusing CodePeer about 7452 the possibility of an uninitialized variable read. 7453 74542017-04-27 Ed Schonberg <schonberg@adacore.com> 7455 7456 * sem_dim.adb (Analyze_Dimension_Object_Declaration): There is 7457 no dimensionality error if the subtype of the expression is 7458 identical to the nominal subtype in the declaration, even though 7459 the expression itself may have been constant-folded and lack a 7460 dimension vector. 7461 * sem_dim.ads: Add comments on setting of dimension vectors and 7462 its interaction with node rewritings and side-effect removal. 7463 74642017-04-27 Bob Duff <duff@adacore.com> 7465 7466 * debug.adb: Minor comment correction. 7467 * sem_dim.ads: Minor reformatting and typo fixes. 7468 74692017-04-27 Bob Duff <duff@adacore.com> 7470 7471 * g-table.adb, g-table.adsa, scos.h: From the C side, access First and 7472 Last of the tables via function calls, rather than relying on layout 7473 of data structures. 7474 74752017-04-27 Ed Schonberg <schonberg@adacore.com> 7476 7477 * exp_util.adb: No wrapper in GNATprove mode. 7478 74792017-04-27 Yannick Moy <moy@adacore.com> 7480 7481 * sem_res.adb (Resolve_Comparison_Op): Always 7482 evaluate comparisons between values of universal types. 7483 74842017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7485 7486 * sem_elab.adb (Check_Internal_Call_Continue): Do not generate 7487 an elaboration counter nor a check when in GNATprove mode. 7488 * sem_util.adb (Build_Elaboration_Entity): Do not create an 7489 elaboration counter when in GNATprove mode. 7490 74912017-04-27 Ed Schonberg <schonberg@adacore.com> 7492 7493 * freeze.adb: copy-paste typo. 7494 74952017-04-27 Yannick Moy <moy@adacore.com> 7496 7497 * sem_prag.adb (Analyze_Pre_Post_In_Decl_Part): 7498 Use correct test to detect call in GNATprove mode instead of 7499 compilation. 7500 75012017-04-27 Claire Dross <dross@adacore.com> 7502 7503 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model.M_Elements_In_Union): 7504 New property function expressing that the element of a 7505 sequence are contained in the union of two sequences. 7506 (Formal_Model.M_Elements_Included): New property function 7507 expressing that the element of a sequence are another sequence. 7508 (Generic_Sorting): Use new property functions to state that 7509 elements are preserved by Sort and Merge. 7510 * a-cofove.adb, a-cofove.ads (=): Generic parameter removed to 7511 allow the use of regular equality over elements in contracts. 7512 (Formal_Model): Ghost package containing model functions 7513 that are used in subprogram contracts. (Capacity): 7514 On unbounded containers, return the maximal capacity. 7515 (Current_To_Last): Removed, model functions should be used instead. 7516 (First_To_Previous): Removed, model functions should be used instead. 7517 (Append): Default parameter value replaced 7518 by new wrapper to allow more precise contracts. 7519 (Insert): Subprogram restored, it seems it was useful to users even if 7520 it is inefficient. 7521 (Delete): Subprogram restored, it seems it was useful to users even if 7522 it is inefficient. 7523 (Prepend): Subprogram restored, it seems it was useful to users even 7524 if it is inefficient. 7525 (Delete_First): Subprogram restored, it seems it 7526 was useful to users even if it is inefficient. (Delete_Last): 7527 Default parameter value replaced by new wrapper to allow more 7528 precise contracts. 7529 (Generic_Sorting.Merge): Subprogram restored. 7530 * a-cfinve.adb, a-cfinve.ads (=): Generic parameter removed to 7531 allow the use of regular equality over elements in contracts. 7532 (Formal_Model): Ghost package containing model functions 7533 that are used in subprogram contracts. (Capacity): 7534 On unbounded containers, return the maximal capacity. 7535 (Current_To_Last): Removed, model functions should be used 7536 instead. 7537 (First_To_Previous): Removed, model functions should be used instead. 7538 (Append): Default parameter value replaced 7539 by new wrapper to allow more precise contracts. 7540 (Insert): Subprogram restored, it seems it was useful to users even if 7541 it is inefficient. 7542 (Delete): Subprogram restored, it seems it was useful to users even if 7543 it is inefficient. 7544 (Prepend): Subprogram restored, it seems it was useful to users even 7545 if it is inefficient. 7546 (Delete_First): Subprogram restored, it seems it 7547 was useful to users even if it is inefficient. (Delete_Last): 7548 Default parameter value replaced by new wrapper to allow more 7549 precise contracts. 7550 (Generic_Sorting.Merge): Subprogram restored. 7551 (Vector): Do not reuse formal vectors, as it is no longer possible 7552 to supply them with an equality function over elements. 7553 75542017-04-27 Bob Duff <duff@adacore.com> 7555 7556 * g-dyntab.adb (Release): When allocating the new 7557 table, use the correct slice of the old table to initialize it. 7558 75592017-04-27 Eric Botcazou <ebotcazou@adacore.com> 7560 7561 * einfo.ads: Minor fixes in comments. 7562 75632017-04-27 Ed Schonberg <schonberg@adacore.com> 7564 7565 * sem_prag.adb: disable clones in SPARK_Mode. 7566 75672017-04-27 Gary Dismukes <dismukes@adacore.com> 7568 7569 * sem_util.ads, contracts.adb: Minor reformatting. 7570 75712017-04-27 Ed Schonberg <schonberg@adacore.com> 7572 7573 * sem_util.adb, sem_util.ads (Build_Class_Wide_Clone_Body): 7574 Build body of subprogram that has a class-wide condition that 7575 contains calls to other primitives. 7576 (Build_Class_Wide_Clone_Call); Build a call to the common 7577 class-wide clone of a subprogram with classwide conditions. The 7578 body of the subprogram becomes a wrapper for a call to the 7579 clone. The inherited operation becomes a similar wrapper to which 7580 modified conditions apply, and the call to the clone includes 7581 the proper conversion in a call the parent operation. 7582 (Build_Class_Wide_Clone_Decl (Spec_Id : Entity_Id): For a 7583 subprogram that has a classwide condition that contains calls to 7584 other primitives, build an internal subprogram that is invoked 7585 through a type-specific wrapper for all inherited subprograms 7586 that may have a modified condition. 7587 * sem_prag.adb (Check_References): If subprogram has a classwide 7588 condition, create entity for corresponding clone, to be invoked 7589 through wrapper subprograns. 7590 (Analyze_Pre_Post_Condition_In_Decl_Part): Do not emit error 7591 message about placement if pragma isi internally generated. 7592 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If subprogram has 7593 a classwide clone, build body of clone as copy of original body, 7594 and rewrite original body as a wrapper as a wrapper for a call to 7595 the clone, so that it incorporates the original pre/postconditions 7596 of the subprogram. 7597 * freeze.adb (Check_Inherited_Conditions): For an inherited 7598 subprogram that inherits a classwide condition, build spec and 7599 body of corresponding wrapper so that call to inherited operation 7600 gets the modified conditions. 7601 * contracts.adb (Analyze_Contracts): If analysis of classwide 7602 condition has created a clone for a primitive operation, analyze 7603 declaration of clone. 7604 76052017-04-27 Steve Baird <baird@adacore.com> 7606 7607 * exp_util.adb (Build_Allocate_Deallocate_Proc): 7608 Add "Suppress => All_Checks" to avoid generating unnecessary 7609 checks. 7610 76112017-04-27 Yannick Moy <moy@adacore.com> 7612 7613 * debug.adb: Reserve debug flag 'm' for no inlining in GNATprove. 7614 * sem_ch6.adb (Anayze_Subprogram_Body_Helper): Skip creation of 7615 inlining body in GNATprove mode when switch -gnatdm used. 7616 * sem_res.adb (Resolve_Call): Skip detection of lack of inlining 7617 in GNATprove mode when switch -gnatdm used. 7618 76192017-04-27 Arnaud Charlet <charlet@adacore.com> 7620 7621 * sem_ch13.adb (Analyze_Attribute_Definition_Clause 7622 [Attribute_Address]): Call Set_Address_Taken when ignoring rep 7623 clauses, so that we keep an indication of the address clause 7624 before removing it from the tree. 7625 76262017-04-27 Yannick Moy <moy@adacore.com> 7627 7628 * exp_util.ads, exp_util.adb (Evaluate_Name): Force evaluation 7629 of expression being qualified, when not an object name, or else 7630 evaluate the underlying name. 7631 76322017-04-27 Jerome Lambourg <lambourg@adacore.com> 7633 7634 * bindusg.adb, bindgen.adb, gnatbind.adb, opt.ads: add -nognarl switch. 7635 76362017-04-27 Justin Squirek <squirek@adacore.com> 7637 7638 * exp_ch7.adb (Build_Finalize_Statements): Move Num_Comps to 7639 Process_Component_List_For_Finalization as a local variable. 7640 (Process_Component_For_Finalize): Add an extra parameter to avoid 7641 global references. 7642 (Process_Component_List_For_Finalization): Correct calls to 7643 Process_Component_For_Finalize to take Num_Comps as a parameter. 7644 76452017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7646 7647 * sem_ch8.adb (Find_Direct_Name): Account for the case where 7648 a use-visible entity is defined within a nested scope of an 7649 instance when giving priority to entities which were visible in 7650 the original generic. 7651 * sem_util.ads, sem_util.adb (Nearest_Enclosing_Instance): New routine. 7652 76532017-04-27 Tristan Gingold <gingold@adacore.com> 7654 7655 * raise-gcc.c: Don't use unwind.h while compiling 7656 for the frontend, but mimic host behavior. 7657 76582017-04-27 Javier Miranda <miranda@adacore.com> 7659 7660 * sem_ch3.adb (Build_Discriminated_Subtype): 7661 Propagate Has_Pragma_Unreferenced_Objects to the built subtype. 7662 76632017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7664 7665 * sem_prag.adb (Analyze_Global_Item): 7666 Do not consider discriminants because they are not "entire 7667 objects". Remove the discriminant-related checks because they are 7668 obsolete. 7669 (Analyze_Input_Output): Do not consider discriminants 7670 because they are not "entire objects". 7671 76722017-04-27 Ed Schonberg <schonberg@adacore.com> 7673 7674 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Do not 7675 perform check if the current scope does not come from source, 7676 as is the case for a rewritten task body, because check has 7677 been performed already, and may not be doable because of changed 7678 visibility. 7679 76802017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7681 7682 * a-cofuse.adb, a-cfdlli.adb, a-cofuse.ads, a-cfdlli.ads, a-cofuve.adb, 7683 a-cofuve.ads, a-cofuma.adb, a-cofuma.ads, sem_eval.adb, a-cofuba.adb: 7684 Minor reformatting. 7685 76862017-04-27 Ed Schonberg <schonberg@adacore.com> 7687 7688 * sem_ch4.adb (Analyze_Call): If the return type of a function 7689 is incomplete in an context in which the full view is available, 7690 replace the type of the call by the full view, to prevent spurious 7691 type errors. 7692 * exp_disp.adb (Check_Premature_Freezing): Disable check on an 7693 abstract subprogram so that compiler does not reject a parameter 7694 of a primitive operation of a tagged type being frozen, when 7695 the untagged type of that parameter cannot be frozen. 7696 76972017-04-27 Bob Duff <duff@adacore.com> 7698 7699 * sem_attr.adb (Compute_Type_Key): Don't walk 7700 representation items for irrelevant types, which could be in a 7701 different source file. 7702 77032017-04-27 Steve Baird <baird@adacore.com> 7704 7705 * exp_attr.adb (Expand_N_Attribute_Reference): 7706 Don't expand Image, Wide_Image, Wide_Wide_Image attributes 7707 for CodePeer. 7708 77092017-04-27 Yannick Moy <moy@adacore.com> 7710 7711 * exp_unst.ads: Fix typos in comments. 7712 77132017-04-27 Ed Schonberg <schonberg@adacore.com> 7714 7715 * sem_eval.adb (Choice_Matches): Handle properly a real literal 7716 whose type has a defined static predicate. 7717 77182017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7719 7720 * exp_ch4.adb (Insert_Dereference_Action): 7721 Do not adjust the address of a controlled object when the 7722 associated access type is subject to pragma No_Heap_Finalization. 7723 Code reformatting. 7724 77252017-04-27 Pierre-Marie de Rodat <derodat@adacore.com> 7726 7727 * gcc-interface/utils.c (gnat_type_for_size): Set 7728 TYPE_ARTIFICIAL on created types. 7729 77302017-04-27 Claire Dross <dross@adacore.com> 7731 7732 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to 7733 modifications in functional containers. 7734 * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat 7735 to improve readablity. Subprograms are separated between basic 7736 operations, constructors and properties. Universally quantified 7737 formulas in contracts are factorized in independant functions 7738 with a name and a comment. Names of parameters are improved. 7739 77402017-04-27 Gary Dismukes <dismukes@adacore.com> 7741 7742 * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix. 7743 77442017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7745 7746 * sem_res.adb (Resolve_Type_Conversion): Do not 7747 install a predicate check here since this is already done during 7748 the expansion phase. Verify whether the operand satisfies the 7749 static predicate (if any) of the target type. 7750 * sem_ch3.adb (Analyze_Object_Declaration): Do 7751 not install a predicate check if the object is initialized by 7752 means of a type conversion because the conversion is subjected 7753 to the same check. 7754 77552017-04-27 Tristan Gingold <gingold@adacore.com> 7756 7757 * raise.c (__gnat_builtin_longjmp): Remove. 7758 (__gnat_bracktrace): 7759 Add a dummy definition for the compiler (__gnat_eh_personality, 7760 __gnat_rcheck_04, __gnat_rcheck_10) (__gnat_rcheck_19, 7761 __gnat_rcheck_20, __gnat_rcheck_21) (__gnat_rcheck_30, 7762 __gnat_rcheck_31, __gnat_rcheck_32): Likewise. 7763 * a-exexpr.adb: Renamed from a-exexpr-gcc.adb 7764 * a-except.ads, a-except.adb: Renamed from a-except-2005.ads 7765 and a-except-2005.adb. 7766 * raise-gcc.c: Allow build in compiler, compiled as a C++ 7767 file. 7768 (__gnat_Unwind_ForcedUnwind): Adjust prototype. 7769 (db): Constify msg_format. 7770 (get_call_site_action_for): Don't use void arithmetic. 7771 * system.ads (Frontend_Exceptions): Set to False. 7772 (ZCX_By_Default): Set to True. 7773 (GCC_ZC_Support): Set to True. 7774 * gcc-interface/Makefile.in: No more variants for a-exexpr.adb and 7775 a-except.ad[sb]. 7776 * gcc-interface/Make-lang.in: Add support for backend zcx exceptions 7777 in gnat1 and gnatbind. 7778 * gnat1, gnatbind: link with raise-gcc.o, a-exctra.o, s-addima.o, 7779 s-excmac.o, s-imgint.o, s-traceb.o, s-trasym.o, s-wchstw.o 7780 * s-excmac.ads, s-excmac.adb: Copy of variants. 7781 * a-except.o: Adjust preequisites. 7782 Add handling of s-excmac-arm.adb and s-excmac-gcc.adb. 7783 77842017-04-27 Claire Dross <dross@adacore.com> 7785 7786 * a-cfdlli.adb, a-cfdlli.ads (Formal_Model): Adapt to 7787 modifications in functional containers. 7788 * a-cofuba.ads, a-cofuma.ads, a-cofuse.ads, a-cofuve.ads Reformat 7789 to improve readablity. Subprograms are separated between basic 7790 operations, constructors and properties. Universally quantified 7791 formulas in contracts are factorized in independant functions 7792 with a name and a comment. Names of parameters are improved. 7793 77942017-04-27 Gary Dismukes <dismukes@adacore.com> 7795 7796 * exp_spark.adb, sem_elab.adb: Minor reformatting and typo fix. 7797 77982017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7799 7800 * sem_res.adb (Resolve_Type_Conversion): Do not 7801 install a predicate check here since this is already done during 7802 the expansion phase. Verify whether the operand satisfies the 7803 static predicate (if any) of the target type. 7804 * sem_ch3.adb (Analyze_Object_Declaration): Do 7805 not install a predicate check if the object is initialized by 7806 means of a type conversion because the conversion is subjected 7807 to the same check. 7808 78092017-04-27 Tristan Gingold <gingold@adacore.com> 7810 7811 * a-except.ads, a-except.adb, a-exexpr.adb: Removed (will be 7812 replaced by their variants). 7813 78142017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7815 7816 * exp_prag.adb, a-cofuse.adb, a-cofuse.ads, einfo.adb, sem_prag.adb, 7817 cstand.adb, par-prag.adb, a-cofuve.adb, a-cofuve.ads, a-cofuma.adb, 7818 a-cofuma.ads, a-cofuba.adb, a-cofuba.ads: Minor reformatting. 7819 78202017-04-27 Tristan Gingold <gingold@adacore.com> 7821 7822 * s-excmac-gcc.ads, s-excmac-gcc.adb, 7823 s-excmac-arm.ads, s-excmac-arm.adb (New_Occurrence): Rewrite it in 7824 Ada95. 7825 78262017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7827 7828 * exp_ch7.adb (Establish_Transient_Scope): Rewrite 7829 the loop which detects potential enclosing transient scopes. The 7830 loop now terminates much earlier as transient scopes are bounded 7831 by packages and subprograms. 7832 78332017-04-27 Claire Dross <dross@adacore.com> 7834 7835 * a-cfdlli.adb, a-cfdlli.ads (=): Generic parameter removed to 7836 allow the use of regular equality over elements in contracts. 7837 (Cursor): Type is now public so that it can be used in 7838 model functions. 7839 (Formal_Model): Ghost package containing 7840 model functions that are used in subprogram contracts. 7841 (Current_To_Last): Removed, model functions should be used 7842 instead. 7843 (First_To_Previous): Removed, model functions should 7844 be used instead. 7845 (Strict_Equal): Removed, model functions 7846 should be used instead. 7847 (Append): Default parameter value 7848 replaced by new wrapper to allow more precise contracts. 7849 (Insert): Default parameter value replaced by new wrapper to 7850 allow more precise contracts. 7851 (Delete): Default parameter 7852 value replaced by new wrapper to allow more precise contracts. 7853 (Prepend): Default parameter value replaced by new wrapper to 7854 allow more precise contracts. 7855 (Delete_First): Default parameter 7856 value replaced by new wrapper to allow more precise contracts. 7857 (Delete_Last): Default parameter value replaced by new wrapper 7858 to allow more precise contracts. 7859 78602017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7861 7862 * exp_spark.adb (Expand_SPARK): Perform specialized expansion 7863 for object declarations. 7864 (Expand_SPARK_N_Object_Declaration): New routine. 7865 * sem_elab.adb (Check_A_Call): Include calls to the 7866 Default_Initial_Condition procedure of a type under the SPARK 7867 elaboration checks umbrella. 7868 78692017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7870 7871 * sem.adb (Analyze): Diagnose an illegal iterated component 7872 association. 7873 * sem_util.ads, sem_util.adb 7874 (Diagnose_Iterated_Component_Association): New routine. 7875 78762017-04-27 Bob Duff <duff@adacore.com> 7877 7878 * adaint.c (__gnat_get_current_dir): Return 0 in length if 7879 getcwd fails. 7880 * a-direct.adb, g-dirope.adb, osint.adb, s-os_lib.adb: Raise 7881 exception if getcwd failed. 7882 78832017-04-27 Yannick Moy <moy@adacore.com> 7884 7885 * exp_dbug.adb, exp_dbug.ads (Get_External_Name): Prefix ghost 7886 entities with special prefix. 7887 78882017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7889 7890 * debug.adb Change the documentation of switch -gnatd.s. 7891 * exp_ch7.adb (Make_Transient_Block): Transient blocks do not need 7892 to manage the secondary stack when an enclosing scope already 7893 performs this functionality (aka relaxed management). Switch 7894 -gnatd.s may be used to force strict management in which case 7895 the block will manage the secondary stack unconditionally. Add 7896 a guard to stop the traversal when encountering a package or a 7897 subprogram scope. 7898 78992017-04-27 Ed Schonberg <schonberg@adacore.com> 7900 7901 * sem_res.adb (Resolve_Call): Refine further the handling of 7902 limited views of return types in function calls. If the function 7903 that returns a limited view appears in the current unit, 7904 we do not replace its type by the non-limited view because 7905 this transformation is performed int the back-end. However, 7906 the type of the call itself must be the non-limited view, to 7907 prevent spurious resolution errors. 7908 79092017-04-27 Ed Schonberg <schonberg@adacore.com> 7910 7911 * einfo,ads, einfo.adb (Class_Wide_Preconds, Class_Wide_Postconds): 7912 Removed, proposed implementation using generics for class-wide 7913 preconditions proved impractical. 7914 (Class_Wide_Clone): New attribute of subprogram. Designates 7915 subprogram created for primitive operations with class-wide 7916 pre/postconditions that contain calls to other primitives. The 7917 clone holds the body of the original primitive, but the 7918 pre/postonditions do not apply to it. The original body is 7919 rewritten as a wrapper for a call to the clone. 7920 (Is_Class_Wide_Clone): New flag to identify a Class_Wide_Clone. If 7921 the flag is set, no code for the corresponding pre/postconditions 7922 is inserted into its body. 7923 79242017-04-27 Bob Duff <duff@adacore.com> 7925 7926 * exp_prag.adb, par-prag.adb, sem_ch13.adb: Ignore 7927 Scalar_Storage_Order if -gnatI is given. 7928 * sem_prag.adb (Analyze_Pragma): Ignore 7929 Default_Scalar_Storage_Order if -gnatI is given. 7930 79312017-04-27 Claire Dross <dross@adacore.com> 7932 7933 * a-cofuba.ads (Add): Take as an additional input parameter 7934 the position where the element should be inserted. 7935 (Remove): New function that removes an element from the container. 7936 * a-cofuma.ads (Add): Adapt to the new API of Base.Add. 7937 * a-cofuse.ads (Add): Adapt to the new API of Base.Add. 7938 (Remove): New function that removes an element from a set. 7939 * a-cofuve.ads (Add): Adapt to the new API of Base.Add. 7940 (Remove): New function that removes an element from a sequence. 7941 (Insert): New function that adds anywhere in a sequence. 7942 79432017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7944 7945 * checks.adb (Generate_Range_Check): Revert previous change. 7946 79472017-04-27 Gary Dismukes <dismukes@adacore.com> 7948 7949 * sem_util.adb: Minor reformatting/rewording. 7950 79512017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 7952 7953 * lib-xref.adb (Generate_Reference): The use 7954 of attribute 'Result is not considered a violation of pragma 7955 Unreferenced. 7956 79572017-04-27 Justin Squirek <squirek@adacore.com> 7958 7959 * cstand.adb (Create_Standard): Correctly set 7960 Directly_Designated_Type for Any_Access. 7961 * sem_type.adb (Covers): Minor grammar fixes. 7962 79632017-04-27 Bob Duff <duff@adacore.com> 7964 7965 * sem_attr.adb: Minor cleanup. 7966 79672017-04-27 Claire Dross <dross@adacore.com> 7968 7969 * a-cofuba.ads, a-cofuba.adb (Ada.Containers.Functional_Base): New 7970 private child of Ada.Containers used to implement all functional 7971 containers. 7972 * a-cofuma.ads, a-cofuma.adb (Ada.Containers.Functional_Maps): New 7973 child of Ada.Containers. It provides functional indefinite unbounded 7974 maps which can be used as high level models for specification 7975 of data structures. 7976 * a-cofuse.ads, a-cofuse.adb (Ada.Containers.Functional_Sets): New 7977 child of Ada.Containers. It provides functional indefinite unbounded 7978 sets which can be used as high level models for specification 7979 of data structures. 7980 * a-cofuve.ads, a-cofuve.adb (Ada.Containers.Functional_Vectors): New 7981 child of Ada.Containers. It provides functional indefinite unbounded 7982 vectors which can be used as high level models for specification 7983 of data structures. 7984 * Makefile.rtl: Add new packages. 7985 * impunit.adb: Add new packages. 7986 79872017-04-27 Gary Dismukes <dismukes@adacore.com> 7988 7989 * sem_ch4.adb: Minor reformatting. 7990 79912017-04-27 Ed Schonberg <schonberg@adacore.com> 7992 7993 * sem_ch12.adb (Analyze_Associations): minor reformatting. 7994 (Check_Fixed_Point_Actual): Do not emit a warning on a fixed 7995 point type actual that has user-defined arithmetic primitives, 7996 when there is a previous actual for a formal package that defines 7997 a fixed-point type with the parent user-defined operator. 7998 79992017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 8000 8001 * checks.adb (Generate_Range_Check): Reinstate part of previous change. 8002 * sem_attr.adb (Resolve_Attribute): Generate a range check when 8003 the component type allows range checks. 8004 80052017-04-27 Ed Schonberg <schonberg@adacore.com> 8006 8007 * sem_aux.adb (Is_Generic_Formal): Use original node to locate 8008 corresponding declaration, because formal derived types are 8009 rewritten as private extensions. 8010 80112017-04-27 Ed Schonberg <schonberg@adacore.com> 8012 8013 * sem_dim.adb (Analyze_Dimension_Binary_Op): Do not check 8014 dimensions of operands if node has been analyzed already, because 8015 previous analysis and dimension checking will have removed the 8016 dimension information from the operands. 8017 80182017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 8019 8020 * debug.adb: Document the use of switch -gnatd.s. 8021 * einfo.ads Update the documentation on attribute 8022 Sec_Stack_Needed_For_Return and attribute Uses_Sec_Stack. Remove 8023 the uses of these attributes from certain entities. 8024 * exp_ch7.adb (Make_Transient_Block): Reimplement the circuitry 8025 which determines whether the block should continue to manage 8026 the secondary stack. 8027 (Manages_Sec_Stack): New routine. 8028 80292017-04-27 Bob Duff <duff@adacore.com> 8030 8031 * atree.ads: Minor edit. 8032 80332017-04-27 Hristian Kirtchev <kirtchev@adacore.com> 8034 8035 * sinfo.ads: Update the section on Ghost mode. Add 8036 a section on SPARK mode. Update the placement of section on 8037 expression functions. 8038 80392017-04-27 Bob Duff <duff@adacore.com> 8040 8041 * sinput.adb (Get_Source_File_Index): Don't 8042 assert that S is in the right range in the case where this is 8043 a .dg file under construction. 8044 80452017-04-27 Yannick Moy <moy@adacore.com> 8046 8047 * sem_util.adb (Check_Result_And_Post_State): 8048 Handle more precisely each conjunct in expressions formed by 8049 and'ing sub-expressions. 8050 80512017-04-27 Gary Dismukes <dismukes@adacore.com> 8052 8053 * exp_ch4.adb, sem_ch4.adb: Minor typo fix and reformatting. 8054 80552017-04-25 Arnaud Charlet <charlet@adacore.com> 8056 8057 * gnat_rm.texi, gnat_ugn.texi, 8058 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 8059 doc/gnat_ugn/platform_specific_information.rst, 8060 doc/gnat_ugn/gnat_and_program_execution.rst, 8061 doc/gnat_ugn/gnat_utility_programs.rst, 8062 doc/gnat_ugn/the_gnat_compilation_model.rst, 8063 doc/gnat_rm/implementation_defined_attributes.rst, 8064 doc/gnat_rm/the_gnat_library.rst, 8065 doc/gnat_rm/implementation_defined_pragmas.rst, 8066 doc/gnat_rm/representation_clauses_and_pragmas.rst, 8067 doc/gnat_rm/implementation_of_specific_ada_features.rst, 8068 doc/gnat_rm/implementation_defined_aspects.rst, 8069 doc/gnat_rm/implementation_defined_characteristics.rst: Update 8070 documentation. 8071 80722017-04-25 Arnaud Charlet <charlet@adacore.com> 8073 8074 * exp_ch4.adb (Expand_N_Case_Expression): Emit error message when 8075 generating C code on complex case expressions. 8076 80772017-04-25 Arnaud Charlet <charlet@adacore.com> 8078 8079 * sem_prag.adb (Analyze_Pragma): Generate a warning instead 8080 of silently ignoring pragma Ada_xxx in Latest_Ada_Only mode. 8081 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Use 8082 Ada_2012 instead of Ada_2005 to be compatible with the above 8083 change. 8084 * bindgen.adb: Silence new warning on pragma Ada_95. 8085 80862017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8087 8088 * checks.adb (Generate_Range_Check): Revert part of previous change. 8089 80902017-04-25 Ed Schonberg <schonberg@adacore.com> 8091 8092 * sem_ch4.adb (Try_Container_Indexing): Handle properly a 8093 container indexing operation that appears as a an actual in a 8094 parameter association in a procedure call. 8095 80962017-04-25 Olivier Ramonat <ramonat@adacore.com> 8097 8098 * prj-proc.adb, sem_util.adb, s-stposu.adb, sem_attr.adb, prj-conf.ads: 8099 Fix spelling mistakes. 8100 81012017-04-25 Bob Duff <duff@adacore.com> 8102 8103 * types.ads, osint.adb, sinput-c.adb, sinput-d.adb, sinput-l.adb, 8104 * sinput-p.adb: Use regular fat pointers, with bounds checking, 8105 for source buffers. Fix misc obscure bugs. 8106 * sinput.ads, sinput.adb: Use regular fat pointers, with bounds 8107 checking, for source buffers. Modify representation clause for 8108 Source_File_Record as appropriate. Move Source_File_Index_Table 8109 from spec to body, because it is not used outside the body. 8110 Move Set_Source_File_Index_Table into the private part, because 8111 it is used only in the body and in children. Use trickery to 8112 modify the dope in the generic instantiation case. It's ugly, 8113 but not as ugly as the previous method. Fix documentation. 8114 Remove obsolete code. 8115 * fname-sf.adb, targparm.adb: Fix misc out-of-bounds 8116 indexing in source buffers. 8117 * fmap.adb: Avoid conversions from one string type to another. 8118 Remove a use of global name buffer. 8119 * osint.ads, sfn_scan.ads, sfn_scan.adb, sinput-c.ads: Comment 8120 fixes. 8121 81222017-04-25 Gary Dismukes <dismukes@adacore.com> 8123 8124 * exp_util.adb, exp_ch4.adb: Minor reformatting. 8125 81262017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8127 8128 * checks.adb: Code clean up in various routines. 8129 (Generate_Range_Check): Do not generate a range check when the 8130 expander is not active or when index/range checks are suppressed 8131 on the target type. 8132 (Insert_List_After_And_Analyze, Insert_List_Before_And_Analyze): 8133 Remove variants that include a Supress parameter. These routines 8134 are never used, and were introduced before the current scope-based 8135 check suppression method. 8136 81372017-04-25 Vasiliy Fofanov <fofanov@adacore.com> 8138 8139 * prj-part.adb, cstreams.c, osint.adb, osint.ads: Remove VMS specific 8140 code and some subprogram calls that are now noop. 8141 81422017-04-25 Arnaud Charlet <charlet@adacore.com> 8143 8144 * exp_ch4.adb (Expand_N_Case_Expression): Take 8145 Minimize_Expression_With_Actions into account when possible. 8146 81472017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8148 8149 * exp_util.adb (Known_Non_Null): Moved to Sem_Util. 8150 (Known_Null): Moved to Sem_Util. 8151 * exp_util.ads (Known_Non_Null): Moved to Sem_Util. 8152 (Known_Null): Moved to Sem_Util. 8153 * sem_util.adb Add new enumeration type Null_Status_Kind. 8154 (Known_Non_Null): Moved from Exp_Util. Most of the logic in 8155 this routine is now carried out by Null_Status. 8156 (Known_Null): Moved from Exp_Util. Most of the logic in this routine 8157 is now carried out by Null_Status. 8158 (Null_Status): New routine. 8159 * sem_util.ads (Known_Non_Null): Moved from Exp_Util. 8160 (Known_Null): Moved from Exp_Util. 8161 81622017-04-25 Ed Schonberg <schonberg@adacore.com> 8163 8164 * sem_ch6.adb (Analyze_Expression_Function): Do not report an 8165 error on the return type of an expression function that is a 8166 completion, if the type is derived from a generic formal type. 8167 81682017-04-25 Ed Schonberg <schonberg@adacore.com> 8169 8170 * sem_dim.adb (Dimensions_Of_Operand): The dimensions of a type 8171 conversion are those of the target type. 8172 81732017-04-25 Bob Duff <duff@adacore.com> 8174 8175 * a-clrefi.adb: Minor cleanup. 8176 81772017-04-25 Gary Dismukes <dismukes@adacore.com> 8178 8179 * exp_util.adb, exp_util.ads, types.ads: Minor reformatting. 8180 81812017-04-25 Bob Duff <duff@adacore.com> 8182 8183 * err_vars.ads, fmap.adb, fmap.ads, comperr.adb, fname-sf.adb, 8184 types.adb, types.ads, types.h, sinput-l.adb, targparm.adb, 8185 errout.adb, sinput.adb, sinput.ads, cstand.adb, scn.adb, 8186 scn.ads, gnatls.adb: Eliminate the vestigial Internal_Source_File and 8187 the Internal_Source buffer. This removes the incorrect call to "=" 8188 the customer noticed. 8189 Wrap remaining calls to "=" in Null_Source_Buffer_Ptr. We 8190 eventually need to eliminate them altogether. Or else get rid 8191 of zero-origin addressing. 8192 81932017-04-25 Claire Dross <dross@adacore.com> 8194 8195 * exp_util.ads (Expression_Contains_Primitives_Calls_Of): New 8196 function used in GNATprove to know if an expression contains 8197 non-dispatching calls on primitives of a tagged type. 8198 81992017-04-25 Bob Duff <duff@adacore.com> 8200 8201 * rtsfind.adb (Initialize): Initialize 8202 First_Implicit_With. Building the compiler with Normalize_Scalars 8203 and validity checking finds this being used as an uninitialized 8204 variable. 8205 82062017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8207 8208 * contracts.adb (Analyze_Entry_Or_Subprogram_Body_Contract): 8209 Add a warning about SPARK mode management. The routine now 8210 saves and restores both the mode and associated pragma. 8211 (Analyze_Entry_Or_Subprogram_Contract): Add a warning about 8212 SPARK mode management. The routine now saves and restores both 8213 the mode and associated pragma. 8214 (Analyze_Object_Contract): 8215 Add a warning about SPARK mode management. The routine 8216 now saves and restores both the mode and associated pragma. 8217 (Analyze_Package_Body_Contract): Add a warning about SPARK mode 8218 management. The routine now saves and restores both the mode 8219 and associated pragma. (Analyze_Package_Contract): Add a warning 8220 about SPARK mode management. The routine now saves and restores 8221 both the mode and associated pragma. 8222 (Analyze_Task_Contract): 8223 Add a warning about SPARK mode management. The routine now saves 8224 and restores both the mode and associated pragma. 8225 * expander.adb (Expand): Change the way the Ghost mode is saved 8226 and restored. 8227 * exp_ch3.adb (Freeze_Type): Change the way the Ghost mode is 8228 saved and restored. 8229 * exp_disp.adb (Make_DT): Change the way the Ghost mode is saved 8230 and restored. 8231 * exp_util.adb (Build_DIC_Procedure_Body): 8232 Change the way the Ghost mode is saved and restored. 8233 (Build_DIC_Procedure_Declaration): Change the way the Ghost 8234 mode is saved and restored. 8235 (Build_Invariant_Procedure_Body): 8236 Change the way the Ghost mode is saved and restored. 8237 (Build_Invariant_Procedure_Declaration): Change the way the Ghost 8238 mode is saved and restored. 8239 (Make_Predicate_Call): Change the 8240 way the Ghost mode is saved and restored. 8241 * freeze.adb (Freeze_Entity): Change the way the Ghost mode is 8242 saved and restored. 8243 * ghost.adb (Mark_And_Set_Ghost_Assignment): Remove parameter Mode 8244 and its assignment. 8245 (Mark_And_Set_Ghost_Body): Remove parameter 8246 Mode and its assignment. 8247 (Mark_And_Set_Ghost_Completion): 8248 Remove parameter Mode and its assignment. 8249 (Mark_And_Set_Ghost_Declaration): Remove parameter Mode and its 8250 assignment. 8251 (Mark_And_Set_Ghost_Instantiation): Remove parameter 8252 Mode and its assignment. 8253 (Mark_And_Set_Ghost_Procedure_Call): 8254 Remove parameter Mode and its assignment. 8255 (Set_Ghost_Mode): 8256 Remove parameter Mode and its assignment. 8257 * ghost.ads (Mark_And_Set_Ghost_Assignment): Remove parameter Mode 8258 and update the comment on usage. 8259 (Mark_And_Set_Ghost_Body): 8260 Remove parameter Mode and update the comment on usage. 8261 (Mark_And_Set_Ghost_Completion): Remove parameter Mode and 8262 update the comment on usage. 8263 (Mark_And_Set_Ghost_Declaration): 8264 Remove parameter Mode and update the comment on usage. 8265 (Mark_And_Set_Ghost_Instantiation): Remove parameter Mode and 8266 update the comment on usage. 8267 (Mark_And_Set_Ghost_Procedure_Call): 8268 Remove parameter Mode and update the comment on usage. 8269 (Set_Ghost_Mode): Remove parameter Mode and update the comment 8270 on usage. 8271 * lib.ads Remove obsolete fields SPARK_Mode_Pragma from various 8272 types. 8273 * lib-load.adb (Create_Dummy_Package_Unit): Remove the assignment 8274 of obsolete field SPARK_Mode_Pragma. 8275 (Load_Main_Source): Remove 8276 the assignment of obsolete field SPARK_Mode_Pragma. 8277 (Load_Unit): Remove the assignment of obsolete field SPARK_Mode_Pragma. 8278 * lib-writ.adb (Add_Preprocessing_Dependency): Remove 8279 the assignment of obsolete field SPARK_Mode_Pragma. 8280 (Ensure_System_Dependency): Remove the assignment of obsolete 8281 field SPARK_Mode_Pragma. 8282 * rtsfind.adb (Load_RTU): Add a warning about Ghost and SPARK 8283 mode management. Change the way Ghost and SPARK modes are saved 8284 and restored. 8285 * sem.adb (Analyze): Change the way the Ghost mode is saved 8286 and restored. 8287 * sem_ch3.adb (Analyze_Object_Declaration): Change the way the 8288 Ghost mode is saved and restored. 8289 (Process_Full_View): Change 8290 the way the Ghost mode is saved and restored. 8291 * sem_ch5.adb (Analyze_Assignment): Change the way the Ghost 8292 mode is saved and restored. 8293 * sem_ch6.adb (Analyze_Procedure_Call): Change the way the Ghost 8294 mode is saved and restored. 8295 (Analyze_Subprogram_Body_Helper): 8296 Change the way the Ghost mode is saved and restored. 8297 * sem_ch7.adb (Analyze_Package_Body_Helper): Change the way the 8298 Ghost mode is saved and restored. 8299 * sem_ch10.adb (Analyze_Subunit): Add a warning about SPARK mode 8300 management. Save the SPARK mode-related data prior to any changes 8301 to the scope stack and contexts. The mode is then reinstalled 8302 before the subunit is analyzed in order to restore the original 8303 view of the subunit. 8304 * sem_ch12.adb (Analyze_Package_Instantiation): Update the 8305 warning on region management. Change the way the Ghost and 8306 SPARK modes are saved and restored. 8307 (Inline_Instance_Body): 8308 Add a warning about SPARK mode management. Code clean up. 8309 (Analyze_Subprogram_Instantiation): Update the warning on region 8310 management. Change the way the Ghost and SPARK modes are saved 8311 and restored. 8312 (Instantiate_Package_Body): Update the warning 8313 on region management. Change the way the Ghost and SPARK modes 8314 are saved and restored. 8315 (Instantiate_Subprogram_Body): Update 8316 the warning on region management. Change the way the Ghost and 8317 SPARK modes are saved and restored. 8318 (Set_Instance_Env): Add a 8319 warning about SPARK mode management. Change the way SPARK mode 8320 is saved and restored. 8321 * sem_ch13.adb (Build_Predicate_Functions): 8322 Change the way the Ghost mode is saved and restored. 8323 (Build_Predicate_Function_Declaration): Change the way the Ghost 8324 mode is saved and restored. 8325 * sem_elab.adb (Check_Elab_Calls): Add a warning about SPARK 8326 mode management. Change the way SPARK mode is saved and restored. 8327 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): 8328 Change the way the Ghost mode is saved and restored. 8329 (Analyze_Initial_Condition_In_Decl_Part): Change the way 8330 the Ghost mode is saved and restored. 8331 (Analyze_Pragma): 8332 Change the way the Ghost mode is saved and restored. 8333 (Analyze_Pre_Post_Condition_In_Decl_Part): Change the way the 8334 Ghost mode is saved and restored. 8335 * sem_util.adb (Install_SPARK_Mode): New routine. 8336 (Restore_SPARK_Mode): New routine. 8337 (Save_SPARK_Mode_And_Set): Removed. 8338 (Set_SPARK_Mode): New routine. 8339 * sem_util.ads (Install_SPARK_Mode): New routine. 8340 (Restore_SPARK_Mode): New routine. 8341 (Save_SPARK_Mode_And_Set): Removed. 8342 (Set_SPARK_Mode): New routine. 8343 83442017-04-25 Ed Schonberg <schonberg@adacore.com> 8345 8346 * sem_util.adb, sem_util.ads (From_Nested_Package): New predicate 8347 to determine whether a type is declared in a local package that 8348 has not yet been frozen. 8349 * freeze.adb (Freeze_Before): Use new predicate to determine 8350 whether a local package must be installed on the scope stack 8351 in order to evaluate in the proper scope actions generated by 8352 aspect specifications, such as Predicate 8353 * sem_ch13.adb: Simplify code in Analyze_Aspects_At_Freeze_Point 8354 using new predicate. 8355 83562017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8357 8358 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not consider 8359 comparisons between non- scalar expressions expressions because 8360 their values cannot be invalidated. 8361 * sem_warn.ads (Warn_On_Constant_Valid_Condition): Update the 8362 comment on usage. 8363 83642017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8365 8366 * par_sco.adb: Minor reformatting. 8367 83682017-04-25 Ed Schonberg <schonberg@adacore.com> 8369 8370 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): If entity 8371 is a type from an unfrozen local package, install package to 8372 complete the analysis of delayed aspects of the type. 8373 83742017-04-25 Tristan Gingold <gingold@adacore.com> 8375 8376 * bingen.adb (System_Version_Control_Used): New variable. 8377 (Resolve_Binder_Options): Set the above variable. 8378 (Gen_Output_File_Ada): Conditionally call Gen_Versions. 8379 (Gen_Elab_Order): Emit blank line before. 8380 83812017-04-25 Justin Squirek <squirek@adacore.com> 8382 8383 * sem_cat.adb (Validate_RT_RAT_Component): Added 8384 an extra check to ignore incomplete types. 8385 83862017-04-25 Thomas Quinot <quinot@adacore.com> 8387 8388 * sem_prag.adb (Analyze_Pragma, case Pragma_Check): Remove 8389 bogus circuitry for the case where Name is Predicate. 8390 83912017-04-25 Thomas Quinot <quinot@adacore.com> 8392 8393 * par_sco.adb(Traverse_Declarations_Or_Statements.Traverse_Aspects): 8394 Create SCOs for Predicate aspects in disabled 8395 state initially, to be enabled later on by... 8396 * sem_ch13.adb (Build_Predicate_Functions.Add_Predicates): Mark 8397 SCO for predicate as enabled. 8398 83992017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8400 8401 * comperr.adb (Compiler_Abort): Remove now obsolete pair of 8402 pragmas Warnings Off / On. 8403 * namet.adb (Finalize): Remove now obsolete pair of pragmas 8404 Warnings Off / On. 8405 * output.adb: Remove now obsolete pair of pragmas Warnings Off / On. 8406 * sem_warn.adb (Warn_On_Constant_Valid_Condition): Do not 8407 consider comparisons between static expressions because their 8408 values cannot be invalidated. 8409 * urealp.adb (Tree_Read): Remove now obsolete pair of pragmas 8410 Warnings Off / On. 8411 (Tree_Write): Remove now obsolete pair of pragmas Warnings Off / On. 8412 * usage.adb Remove now obsolete pair of pragmas Warnings Off / On. 8413 84142017-04-25 Bob Duff <duff@adacore.com> 8415 8416 * sem_elab.adb (In_Task_Activation): Trace internal calls in 8417 task bodies. 8418 84192017-04-25 Gary Dismukes <dismukes@adacore.com> 8420 8421 * sem_prag.adb, sem_warn.adb, sem_eval.adb: Minor reformatting and 8422 typo fixes. 8423 84242017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8425 8426 * comperr.adb (Compiler_Abort): Add a pair of pragma Warnings 8427 On/Off to defend against a spurious warning in conditional 8428 compilation. 8429 * exp_ch4.adb (Rewrite_Comparison): Reimplemented. 8430 * namet.adb (Finalize): Add a pair of pragma Warnings On/Off to 8431 defend against a spurious warning in conditional compilation. 8432 * output.adb Add a pair of pragma Warnings On/Off to defend 8433 against a spurious warning in conditional compilation. 8434 * sem_eval.adb (Eval_Relational_Op): Major code clean up. 8435 (Fold_General_Op): New routine. 8436 (Fold_Static_Real_Op): New routine. 8437 (Test_Comparison): New routine. 8438 * sem_eval.ads (Test_Comparison): New routine. 8439 * sem_warn.adb (Is_Attribute_Constant_Comparison): New routine. 8440 (Warn_On_Constant_Valid_Condition): New routine. 8441 (Warn_On_Known_Condition): Use Is_Attribute_Constant_Comparison 8442 to detect a specific case. 8443 * sem_warn.adb (Warn_On_Constant_Valid_Condition): New routine. 8444 * urealp.adb (Tree_Read): Add a pair of pragma Warnings On/Off 8445 to defend against a spurious warning in conditional compilation. 8446 (Tree_Write): Add a pair of pragma Warnings On/Off to defend 8447 against a spurious warning in conditional compilation. 8448 * usage.adb Add a pair of pragma Warnings On/Off to defend 8449 against a spurious warning in conditional compilation. 8450 84512017-04-25 Arnaud Charlet <charlet@adacore.com> 8452 8453 * sinfo.ads, sem_ch13.adb: Update comment. 8454 84552017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8456 8457 * sem_util.adb (Is_Post_State): A reference to a 8458 generic in out parameter is considered a change in the post-state 8459 of a subprogram. 8460 84612017-04-25 Ed Schonberg <schonberg@adacore.com> 8462 8463 * sem_ch12.adb (Load_Parent_Of_Generic); When retrieving the 8464 declaration of a subprogram instance within its wrapper package, 8465 skip over null statements that may result from the rewriting of 8466 ignored pragmas. 8467 84682017-04-25 Ed Schonberg <schonberg@adacore.com> 8469 8470 * exp_attr.adb (Expand_Attribute_Reference, case 'Read): 8471 If the type is an unchecked_union, replace the attribute with 8472 a Raise_Program_Error (rather than inserting such before the 8473 attribute reference) to handle properly the case where we are 8474 processing a component of a larger record, and we need to prevent 8475 further expansion for the unchecked union. 8476 (Expand_Attribute_Reference, case 'Write): If the type is 8477 an unchecked_union, check whether enclosing scope is a Write 8478 subprogram. Replace attribute with a Raise_Program_Error if the 8479 discriminants of the unchecked_union type have not default values 8480 because such a use is erroneous.. 8481 84822017-04-25 Tristan Gingold <gingold@adacore.com> 8483 8484 * exp_ch9.adb (Expand_N_Task_Type_Declaration): 8485 Add relative_deadline to task record on edf profile. 8486 (Make_Initialize_Protection): Pass deadline_floor value on edf profile. 8487 (Make_Task_Create_Call): Pass relative_deadline value. 8488 * par-prag.adb (Prag): Handle Pragma_Deadline_Floor. 8489 * s-rident.ads (Profile_Name): Add GNAT_Ravenscar_EDF. 8490 (Profile_Info): Add info for GNAT_Ravenscar_EDF. 8491 * sem_prag.adb (Set_Ravenscar_Profile): Handle 8492 GNAT_Ravenscar_EDF (set scheduling policy). 8493 (Analyze_Pragma): Handle GNAT_Ravenscar_EDF profile and Deadline_Floor 8494 pragma. 8495 (Sig_Flags): Add choice for Pragma_Deadline_Floor. 8496 * snames.ads-tmpl (Name_Deadline_Floor, Name_Gnat_Ravenscar_EDF): 8497 New names. 8498 (Pragma_Deadline_Floor): New pragma. 8499 * targparm.adb (Get_Target_Parameters): Recognize 8500 GNAT_Ravenscar_EDF profile. 8501 85022017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 8503 8504 * gnatvsn.ads (Library_Version): Bump to 8. Update comment. 8505 85062017-04-25 Ed Schonberg <schonberg@adacore.com> 8507 8508 * sem_aux.adb (Nearest_Ancestor): Use original node of type 8509 declaration to locate nearest ancestor, because derived 8510 type declarations for record types are rewritten as record 8511 declarations. 8512 * sem_ch13.adb (Add_Call): Use an unchecked conversion to handle 8513 properly derivations that are completions of private types. 8514 (Add_Predicates): If type is private, examine rep. items of full 8515 view, which may include inherited predicates. 8516 (Build_Predicate_Functions): Ditto. 8517 85182017-04-25 Javier Miranda <miranda@adacore.com> 8519 8520 * sem_util.adb (New_Copy_Tree.Visit_Entity): Extend previous change 8521 to generate new entities for subtype declarations located in 8522 Expression_With_Action nodes. 8523 85242017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8525 8526 * sem_elab.adb (Check_A_Call): Remove 8527 local variables Is_DIC_Proc and Issue_In_SPARK. Verify the 8528 need for Elaborate_All when SPARK elaboration checks are 8529 required. Update the checks for instances, variables, and calls 8530 to Default_Initial_Condition procedures. 8531 85322017-04-25 Ed Schonberg <schonberg@adacore.com> 8533 8534 * aspects.ads, aspects.adb: Make the GNAT-specific pragma No_Inline 8535 into a boolean aspect, in analogy with the Ada aspect No_Return. 8536 85372017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8538 8539 * exp_ch6.adb, sem_ch13.adb, sem_ch6.adb: Minor reformatting. 8540 85412017-04-25 Bob Duff <duff@adacore.com> 8542 8543 * sem_res.adb (Resolve_Actuals): Under -gnatd.q, reset 8544 Is_True_Constant for an array variable that is passed to a 8545 foreign function as an 'in' parameter. 8546 * debug.adb: Document -gnatd.q. 8547 85482017-04-25 Ed Schonberg <schonberg@adacore.com> 8549 8550 * sem_ch6.adb (Analyze_Expression_Function): If expression function 8551 is completion and return type is an access type do not freeze 8552 designated type: this will be done in the process of freezing 8553 the expression if needed. 8554 (Freeze_Expr_Types): Check whether type is complete before 8555 creating freeze node, to provide a better error message if 8556 reference is premature. 8557 * sem_ch13.adb (Check_Indexing_Functions): Ignore inherited 8558 functions created by type derivations. 8559 85602017-04-25 Pascal Obry <obry@adacore.com> 8561 8562 * g-sercom.ads: Add simple usage of GNAT.Serial_Communication. 8563 85642017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8565 8566 * sem_res.adb (Resolve_Type_Conversion): 8567 When resolving against any fixed type, set the type of the 8568 operand as universal real when the operand is a multiplication 8569 or a division where both operands are of any fixed type. 8570 (Unique_Fixed_Point_Type): Add local variable ErrN. Improve the 8571 placement of an error message by pointing to the operand of a 8572 type conversion rather than the conversion itself. 8573 85742017-04-25 Thomas Quinot <quinot@adacore.com> 8575 8576 * sem_ch13.adb (Build_Predicate_Function_Declaration): Set 8577 Needs_Debug_Info when producing SCOs. 8578 85792017-04-25 Thomas Quinot <quinot@adacore.com> 8580 8581 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): 8582 Always pass a null finalization master for a library level named access 8583 type to which a pragme No_Heap_Finalization applies. 8584 85852017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 8586 8587 PR ada/78845 8588 8589 * a-ngcoar.adb, a-ngrear.adb (Inverse): call Unit_Matrix with First_1 8590 set to A'First(2) and vice versa. 8591 85922017-04-25 Yannick Moy <moy@adacore.com> 8593 8594 * freeze.adb (Freeze_Record_Type): Remove obsolete 8595 rule on volatile tagged record restriction on SPARK code. 8596 85972017-04-25 Yannick Moy <moy@adacore.com> 8598 8599 * sem_prag.adb (minor) Fix SPARK RM reference. 8600 86012017-04-25 Yannick Moy <moy@adacore.com> 8602 8603 * sem_util.adb, sem_util.ads (Unique_Defining_Entity): Update 8604 comment to reflect which entity is chosen as unique entity. 8605 (Unique_Entity): Return full view instead of private spec for 8606 protected type or task type. Fix possible incorrect access when 8607 called on entry. 8608 86092017-04-25 Eric Botcazou <ebotcazou@adacore.com> 8610 8611 * sem_res.adb (Set_Slice_Subtype): Treat specially bit-packed 8612 array types only instead of all packed array types. 8613 86142017-04-25 Ed Schonberg <schonberg@adacore.com> 8615 8616 * sem_ch6.adb (Conforming_Types): If type of formal as a specified 8617 dimension system, verify that dimensions of both match. 8618 (Check_Conformance): Add error message in case of dimension 8619 mismatch. 8620 * sem_dim.ads, sem_dim.adb (Dimensions_Match): New utility 8621 predicate. 8622 86232017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 8624 8625 * gnatxref.adb, gnatfind.adb: Avoid using the term project file, 8626 confusing. 8627 86282017-04-25 Yannick Moy <moy@adacore.com> 8629 8630 * sem_util.adb: Minor refactoring. 8631 * freeze.adb (Freeze_Record_Type): Fix checking of SPARK RM 7.1.3(5). 8632 86332017-04-25 Claire Dross <dross@adacore.com> 8634 8635 * sem_prag.adb (Collect_Inherited_Class_Wide_Conditions): Go to 8636 ultimate alias when accessing overridden operation. Indeed, if the 8637 overridden operation is itself inherited, it won't have any explicit 8638 contract. 8639 86402017-04-25 Ed Schonberg <schonberg@adacore.com> 8641 8642 * sem_warn.adb (Warn_On_Overlapping_Actuals): There can be no 8643 overlap if the two formals have different types, because formally 8644 the corresponding actuals cannot designate the same objects. 8645 86462017-04-25 Ed Schonberg <schonberg@adacore.com> 8647 8648 * sem_dim.adb (Dimensions_Of_Operand): minot cleanups: a) If 8649 dimensions are present from context, use them. b) If operand is 8650 a static constant rewritten as a literal, obtain the dimensions 8651 from the original declaration, otherwise use dimensions of type 8652 established from context. 8653 86542017-04-25 Yannick Moy <moy@adacore.com> 8655 8656 * sem_util.adb (Is_Effectively_Volatile): Protect against base type 8657 of array that is private. 8658 86592017-04-25 Gary Dismukes <dismukes@adacore.com> 8660 8661 * sem_ch3.adb, exp_util.adb, sem_prag.adb, exp_ch4.adb: Minor 8662 reformatting. 8663 86642017-04-25 Yannick Moy <moy@adacore.com> 8665 8666 * a-ngelfu.adb, a-ngelfu.ads: Add SPARK_Mode On on spec, Off 8667 on body. 8668 86692017-04-25 Ed Schonberg <schonberg@adacore.com> 8670 8671 * sem_disp.adb (Check_Dispatching_Context): Add guard to refine 8672 the check that recognizes a call to a private overridding and 8673 replaces the called subprogram with its alias. 8674 86752017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8676 8677 * exp_util.adb: Minor reformatting. 8678 86792017-04-25 Justin Squirek <squirek@adacore.com> 8680 8681 * exp_ch3.adb (Freeze_Type): Add condition to always treat 8682 interface types as a partial view of a private type for the 8683 generation of invariant procedure bodies. 8684 * exp_util.adb, exp_util.ads (Add_Inherited_Invariants): 8685 Add a condition to get the Corresponding_Record_Type for 8686 concurrent types, add condition to return in the absence of a 8687 class in the pragma, remove call to Replace_Type_References, 8688 and add call to Replace_References. 8689 (Add_Interface_Invariatns), 8690 (Add_Parent_Invariants): Modify call to Add_Inherited_Invariants 8691 to including the working type T. 8692 (Add_Own_Invariants): Remove 8693 legacy condition for separate units, remove dispatching for ASIS 8694 and save a copy of the expression in the pragma expression. 8695 (Build_Invariant_Procedure_Body): Default initalize vars, 8696 remove return condition on interfaces, always use the 8697 private type for interfaces, and move the processing of types 8698 until after the processing of invariants for the full view. 8699 (Build_Invariant_Procedure_Declaration): Remove condition 8700 to return if an interface type is encountered and add 8701 condition to convert the formal parameter to its class-wide 8702 counterpart if Work_Typ is abstract. 8703 (Replace_Type): Add call to Remove_Controlling_Arguments. 8704 (Replace_Type_Ref): Remove class-wide dispatching for the current 8705 instance of the type. 8706 (Replace_Type_References): Remove parameter "Derived" 8707 (Remove_Controlling_Arguments): Created in order to removing 8708 the controlliong argument from calls to primitives in the case 8709 of the formal parameter being an class-wide abstract type. 8710 * sem_ch3.adb (Build_Assertion_Bodies_For_Type): Almost identical 8711 to the change made to Freeze_Type in exp_ch3. Add a condition 8712 to treat interface types as a partial view. 8713 * sem_prag.adb (Analyze_Pragma): Modify parameters in the call 8714 to Build_Invariant_Procedure_Declaration to properly generate a 8715 "partial" invariant procedure when Typ is an interface. 8716 87172017-04-25 Bob Duff <duff@adacore.com> 8718 8719 * a-numeri.ads: Go back to using brackets encoding for the Greek 8720 letter pi. 8721 87222017-04-25 Ed Schonberg <schonberg@adacore.com> 8723 8724 * sem_ch3.adb (Derive_Subprogram): Implement rule in RM 6.1.1 8725 (10-15): if derived type T with progenitors is abstract, 8726 and primitive P of this type inherits non-trivial classwide 8727 preconditions from both a parent operation and from an interface 8728 operation, then the inherited operation is abstract if the parent 8729 operation is not null. 8730 * sem_disp.ads, sem_disp.adb: replace function Covers_Some_Interface 8731 with Covered_Interface_Op to yield the actual interface operation 8732 that is implemented by a given inherited operation. 8733 87342017-04-25 Javier Miranda <miranda@adacore.com> 8735 8736 * exp_ch4.adb (Expand_N_Op_Expon): Relocate left 8737 and right operands after performing the validity checks. Required 8738 because validity checks may remove side effects from the operands. 8739 87402017-04-25 Javier Miranda <miranda@adacore.com> 8741 8742 * exp_attr.adb (Attribute_Unrestricted_Access): 8743 Do not disable implicit type conversion. Required to generate 8744 code that displaces the pointer to reference the secondary 8745 dispatch table. 8746 87472017-04-25 Pascal Obry <obry@adacore.com> 8748 8749 * prj-attr.adb, snames.ads-tmpl: Add package Install's 8750 Required_Artifacts attribute. 8751 87522017-04-25 Ed Schonberg <schonberg@adacore.com> 8753 8754 * sem_util.adb (Same_Value): String literals are compile-time 8755 values, and comparing them must use Expr_Value_S. 8756 87572017-04-25 Ed Schonberg <schonberg@adacore.com> 8758 8759 * sem_ch4.adb (Complete_Object_Interpretation): If an explicit 8760 dereference is introduced for the object, and the object is 8761 overloaded, do not check whether it is aliased, because it may 8762 include an implicit dereference. 8763 * sem_type.adb (Disambiguate): If two interpretations are access 8764 attribute types with the same designated type keep either of 8765 them and do not report an ambiguity. A true ambiguity will be 8766 reported elsewhere. 8767 87682017-04-25 Bob Duff <duff@adacore.com> 8769 8770 * a-numeri.ads: Change the encoding of Greek letter Pi from 8771 brackets encoding to UTF-8. Use pragma Wide_Character_Encoding 8772 to indicate the encoding. We considered using a byte order mark 8773 (BOM), but that causes various trouble (misc software eats the 8774 BOM, if you have a patch with a BOM, then it's not at the start 8775 of the patch, so it's not a BOM, the BOM affects with-ing files, 8776 etc.). 8777 * scng.adb, s-wchcnv.adb: Minor. 8778 87792017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8780 8781 * sem_ch3.adb, sem_ch8.adb, sem_disp.adb: Minor reformatting. 87822017-04-25 Ed Schonberg <schonberg@adacore.com> 8783 8784 * sem_ch3.adb (Add_Internal_Interface_Entities): Move 8785 Has_Non_Trivial_Precondition to sem_util. for use elsewhere. 8786 Improve error message on operations that inherit non-conforming 8787 classwide preconditions from ancestor and progenitor. 8788 * sem_util.ads, sem_util.adb (Has_Non_Trivial_Precondition): 8789 moved here from sem_ch3. 8790 * sem_ch8.adb (Analyze_Subprogram_Renaming): Implement legality 8791 check given in RM 6.1.1 (17) concerning renamings of overriding 8792 operations that inherits class-wide preconditions from ancestor 8793 or progenitor. 8794 87952017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8796 8797 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Code cleanup. 8798 (Build_Adjust_Statements): Code cleanup. 8799 (Build_Finalizer): Update the initialization of 8800 Exceptions_OK. 8801 (Build_Finalize_Statements): Code cleanup. 8802 (Build_Initialize_Statements): Code cleanup. 8803 (Make_Deep_Array_Body): Update the initialization of 8804 Exceptions_OK. 8805 (Make_Deep_Record_Body): Update the initialization of Exceptions_OK. 8806 (Process_Object_Declaration): Generate a null exception handler only 8807 when exceptions are allowed. 8808 (Process_Transients_In_Scope): Update the initialization of 8809 Exceptions_OK. 8810 * exp_util.ads, exp_util.adb (Exceptions_In_Finalization_OK): New 8811 routine. 8812 * sem_ch11.adb (Analyze_Exception_Handlers): Do not check any 8813 restrictions when the handler is internally generated and the 8814 mode is warnings. 8815 88162017-04-25 Ed Schonberg <schonberg@adacore.com> 8817 8818 * sem_ch3.adb (Has_Non_Trivial_Precondition): New predicate to 8819 enforce legality rule on classwide preconditions inherited from 8820 both an ancestor and a progenitor (RM 6.1.1 (10-13). 8821 * sem_disp.adb (Check_Dispatching_Context): A call to an abstract 8822 subprogram need not be dispatching if it appears in a precondition 8823 for an abstract or null subprogram. 8824 88252017-04-25 Gary Dismukes <dismukes@adacore.com> 8826 8827 * sem_ch10.adb: Minor typo fix. 8828 88292017-04-25 Arnaud Charlet <charlet@adacore.com> 8830 8831 * gcc-interface/Makefile.in: Cleanup VxWorks targets. 8832 88332017-04-25 Eric Botcazou <ebotcazou@adacore.com> 8834 8835 * fname.adb (Is_Internal_File_Name): Arrange for the slices to 8836 have a length which is a power of 2. 8837 (Is_Predefined_File_Name): Likewise. Adjust comment. 8838 88392017-04-25 Bob Duff <duff@adacore.com> 8840 8841 * exp_aggr.adb (Component_Count): Protect the 8842 arithmetic from attempting to convert a value >= 2**31 to Int, 8843 which would otherwise raise Constraint_Error. 8844 88452017-04-25 Bob Duff <duff@adacore.com> 8846 8847 * opt.ads (Locking_Policy): Fix incorrect documentation. The 8848 first character of the policy name is not unique. 8849 88502017-04-25 Bob Duff <duff@adacore.com> 8851 8852 * s-fileio.adb (Name): Raise Use_Error if the file is a temp file. 8853 * s-ficobl.ads (Is_Temporary_File): Remove incorrect comment 8854 about this flag not being used. It was already used, and it is 8855 now used more. 8856 88572017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8858 8859 * einfo.adb Flag301 is now known as Ignore_SPARK_Mode_Pragmas. 8860 (Ignore_SPARK_Mode_Pragmas): New routine. 8861 (Set_Ignore_SPARK_Mode_Pragmas): New routine. 8862 (Write_Entity_Flags): Add an entry for Ignore_SPARK_Mode_Pragmas. 8863 * einfo.ads Add new attribute Ignore_SPARK_Mode_Pragmas and update 8864 related entities. 8865 (Ignore_SPARK_Mode_Pragmas): New routine 8866 along with pragma Inline. 8867 (Set_Ignore_SPARK_Mode_Pragmas): New routine along with pragma Inline. 8868 * opt.ads Rename flag Ignore_Pragma_SPARK_Mode to 8869 Ignore_SPARK_Mode_Pragmas_In_Instance. 8870 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): 8871 Save and restore the value of global flag 8872 Ignore_SPARK_Mode_Pragmas_In_Instance. Set or reinstate the value 8873 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance when either 8874 the corresponding spec or the body must ignore all SPARK_Mode 8875 pragmas found within. 8876 (Analyze_Subprogram_Declaration): Mark 8877 the spec when it needs to ignore all SPARK_Mode pragmas found 8878 within to allow the body to infer this property in case it is 8879 instantiated or inlined later. 8880 * sem_ch7.adb (Analyze_Package_Body_Helper): Save and restore the 8881 value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set 8882 the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance 8883 when the corresponding spec also ignored all SPARK_Mode pragmas 8884 found within. 8885 (Analyze_Package_Declaration): Mark the spec when 8886 it needs to ignore all SPARK_Mode pragmas found within to allow 8887 the body to infer this property in case it is instantiated or 8888 inlined later. 8889 * sem_ch12.adb (Analyze_Formal_Package_Declaration): 8890 Save and restore the value of flag 8891 Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the 8892 formal spec when it needs to ignore all SPARK_Mode 8893 pragmas found within to allow the body to infer this 8894 property in case it is instantiated or inlined later. 8895 (Analyze_Package_Instantiation): Save and restore the value 8896 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark 8897 the instance spec when it needs to ignore all SPARK_Mode 8898 pragmas found within to allow the body to infer this 8899 property in case it is instantiated or inlined later. 8900 (Analyze_Subprogram_Instantiation): Save and restore the value 8901 of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Mark the 8902 instance spec and anonymous package when they need to ignore 8903 all SPARK_Mode pragmas found within to allow the body to infer 8904 this property in case it is instantiated or inlined later. 8905 (Instantiate_Package_Body): Save and restore the value of global 8906 flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set the value of 8907 global flag Ignore_SPARK_Mode_Pragmas_In_Instance when the 8908 corresponding instance spec also ignored all SPARK_Mode pragmas 8909 found within. 8910 (Instantiate_Subprogram_Body): Save and restore the 8911 value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance. Set 8912 the value of global flag Ignore_SPARK_Mode_Pragmas_In_Instance 8913 when the corresponding instance spec also ignored all SPARK_Mode 8914 pragmas found within. 8915 * sem_prag.adb (Analyze_Pragma): Update the reference to 8916 Ignore_Pragma_SPARK_Mode. 8917 * sem_util.adb (SPARK_Mode_Is_Off): A construct which ignored 8918 all SPARK_Mode pragmas defined within yields mode "off". 8919 89202017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8921 8922 * bindgen.adb, exp_dbug.adb, errout.adb, fname.adb: Minor reformatting. 8923 89242017-04-25 Bob Duff <duff@adacore.com> 8925 8926 * exp_atag.adb (Build_CW_Membership): Add "Suppress => 8927 All_Checks" to avoid generating unnecessary checks. 8928 * exp_ch4.adb (Expand_N_In, Make_Tag_Check): Add "Suppress => 8929 All_Checks". 8930 * sem.ads: Fix comment. 8931 * expander.ads: Fix comment. 8932 * exp_atag.ads: Fix comment: "Index = 0" should be 8933 "Index >= 0". 8934 89352017-04-25 Gary Dismukes <dismukes@adacore.com> 8936 8937 * s-taprop-linux.adb: Minor editorial fixes. 8938 89392017-04-25 Eric Botcazou <ebotcazou@adacore.com> 8940 8941 * sem_util.adb (New_Copy_Tree): Put back the declarations of the 8942 hash tables at library level. Reinstate the NCT_Hash_Tables_Used 8943 variable and set it to True whenever the main hash table is 8944 populated. Short- circuit the Assoc function if it is false 8945 and add associated guards. 8946 89472017-04-25 Olivier Hainque <hainque@adacore.com> 8948 8949 * bindgen.adb (Gen_Elab_Calls): Also update counter of lone 8950 specs without elaboration code that have an elaboration counter 8951 nevertheless, e.g. when compiled with -fpreserve-control-flow. 8952 * sem_ch10.adb (Analyze_Compilation_Unit): 8953 Set_Elaboration_Entity_Required when requested to preserve 8954 control flow, to ensure the unit elaboration is materialized at 8955 bind time, resulting in the inclusion of the unit object file 8956 in the executable closure at link time. 8957 89582017-04-25 Pierre-Marie de Rodat <derodat@adacore.com> 8959 8960 * exp_dbug.adb: In Debug_Renaming_Declaration, 8961 when dealing with indexed component, accept to produce a renaming 8962 symbol when the index is an IN parameter or when it is a name 8963 defined in an outer scope. 8964 89652017-04-25 Yannick Moy <moy@adacore.com> 8966 8967 * errout.adb (Error_Msg): Adapt continuation 8968 message in instantiations and inlined bodies for info messages. 8969 89702017-04-25 Eric Botcazou <ebotcazou@adacore.com> 8971 8972 * fname.adb (Has_Internal_Extension): Add pragma Inline. 8973 Use direct 4-character slice comparisons. 8974 (Has_Prefix): Add 8975 pragma Inline. (Has_Suffix): Delete. 8976 (Is_Internal_File_Name): 8977 Test Is_Predefined_File_Name first. 8978 (Is_Predefined_File_Name): 8979 Use direct slice comparisons as much as possible and limit all 8980 comparisons to at most 8 characters. 8981 89822017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8983 8984 * checks.adb (Insert_Valid_Check): Code cleanup. 8985 * exp_ch6.adb (Add_Validation_Call_By_Copy_Code): New routine. 8986 (Expand_Actuals): Generate proper copy-back for a validation 8987 variable when it acts as the argument of a type conversion. 8988 * sem_util.adb (Is_Validation_Variable_Reference): Augment the 8989 predicate to operate on type qualifications. 8990 89912017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 8992 8993 * sem_prag.adb, exp_ch6.adb, binde.adb, sem_disp.adb, s-fileio.adb: 8994 Minor reformatting. 8995 89962017-04-25 Bob Duff <duff@adacore.com> 8997 8998 * sem_prag.adb (No_Return): Give an error if the pragma applies 8999 to a body. Specialize the error for the specless body case, 9000 as is done for (e.g.) pragma Convention. 9001 * debug.adb: Add switch -gnatd.J to disable the above legality 9002 checks. This is mainly for use in our test suite, to avoid 9003 rewriting a lot of illegal (but working) code. It might also 9004 be useful to customers. Under this switch, if a pragma No_Return 9005 applies to a body, and the procedure raises an exception (as it 9006 should), the pragma has no effect. If the procedure does return, 9007 execution is erroneous. 9008 90092017-04-25 Bob Duff <duff@adacore.com> 9010 9011 * exp_ch6.adb (Expand_Actuals): This is the 9012 root of the problem. It took N as an 'in out' parameter, and in 9013 some cases, rewrote N, but then set N to Original_Node(N). So 9014 the node returned in N had no Parent. The caller continued 9015 processing of this orphaned node. In some cases that caused a 9016 crash (e.g. Remove_Side_Effects climbs up Parents in a loop, 9017 and trips over the Empty Parent). The solution is to make N an 9018 'in' parameter. Instead of rewriting it, return the list of 9019 post-call actions, so the caller can do the rewriting later, 9020 after N has been fully processed. 9021 (Expand_Call_Helper): Move most of Expand_Call here. It has 9022 too many premature 'return' statements, and we want to do the 9023 rewriting on return. 9024 (Insert_Post_Call_Actions): New procedure to insert the post-call 9025 actions in the appropriate place. In the problematic case, 9026 that involves rewriting N as an Expression_With_Actions. 9027 (Expand_Call): Call the new procedures Expand_Call_Helper and 9028 Insert_Post_Call_Actions. 9029 90302017-04-25 Ed Schonberg <schonberg@adacore.com> 9031 9032 * sem_prag.adb (Inherits_Class_Wide_Pre): Cleanup code, handle 9033 properly type derived from generic formal types, to handle 9034 properly modified version of ACATS 4.1B B611017. 9035 90362017-04-25 Javier Miranda <miranda@adacore.com> 9037 9038 * exp_unst.adb (Subp_Index): Adding missing 9039 support for renamings and functions that return a constrained 9040 array type (i.e. functions for which the frontend built a 9041 procedure with an extra out parameter). 9042 90432017-04-25 Pascal Obry <obry@adacore.com> 9044 9045 * s-string.adb: Minor code clean-up. 9046 90472017-04-25 Bob Duff <duff@adacore.com> 9048 9049 * s-os_lib.ads, s-os_lib.adb (Non_Blocking_Wait_Process): New 9050 procedure. 9051 * adaint.h, adaint.c (__gnat_portable_no_block_wait): C support 9052 function for Non_Blocking_Wait_Process. 9053 90542017-04-25 Bob Duff <duff@adacore.com> 9055 9056 * prep.adb (Preprocess): Remove incorrect 9057 Assert. Current character can be ASCII.CR. 9058 90592017-04-25 Ed Schonberg <schonberg@adacore.com> 9060 9061 * sem_prag.adb (Set_Convention_From_Pragma): Cleanup code for 9062 convention Stdcall, which has a number of exceptions. Convention 9063 is legal on a component declaration whose type is an anonymous 9064 access to subprogram. 9065 90662017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9067 9068 * sem_ch4.adb: sem_ch4.adb Various reformattings. 9069 (Try_One_Prefix_Interpretation): Use the base type when dealing 9070 with a subtype created for purposes of constraining a private 9071 type with discriminants. 9072 90732017-04-25 Javier Miranda <miranda@adacore.com> 9074 9075 * einfo.ads, einfo.adb (Has_Private_Extension): new attribute. 9076 * warnsw.ads, warnsw.adb (All_Warnings): Set warning on late 9077 dispatching primitives (Restore_Warnings): Restore warning on 9078 late dispatching primitives (Save_Warnings): Save warning on late 9079 dispatching primitives (Do_Warning_Switch): Use -gnatw.j/-gnatw.J 9080 to enable/disable this warning. 9081 (WA_Warnings): Set warning on late dispatching primitives. 9082 * sem_ch3.adb (Analyze_Private_Extension_Declaration): Remember 9083 that its parent type has a private extension. 9084 * sem_disp.adb (Warn_On_Late_Primitive_After_Private_Extension): 9085 New subprogram. 9086 * usage.adb: Document -gnatw.j and -gnatw.J. 9087 90882017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9089 9090 * exp_ch7.adb, checks.adb, sem_prag.adb, eval_fat.adb: Minor 9091 reformatting. 9092 90932017-04-25 Bob Duff <duff@adacore.com> 9094 9095 * binde.adb (Validate): Do not pass dynamic strings 9096 to pragma Assert, because older compilers do not support that. 9097 90982017-04-25 Bob Duff <duff@adacore.com> 9099 9100 * s-fileio.adb (Close): When a temp file is 9101 closed, delete it and clean up its Temp_File_Record immediately, 9102 rather than waiting until later. 9103 (Temp_File_Record): Add File 9104 component, so Close can know which Temp_File_Record corresponds 9105 to the file being closed. 9106 (Delete): Don't delete temp files, 9107 because they are deleted by Close. 9108 (Open): Set the File component 9109 of Temp_File_Record. This requires moving the creation of the 9110 Temp_File_Record to the end, after the AFCB has been created. 9111 91122017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9113 9114 * checks.adb (Insert_Valid_Check): Do not generate 9115 a validity check when inside a generic. 9116 91172017-04-25 Yannick Moy <moy@adacore.com> 9118 9119 * sem_res.adb (Resolve_Type_Conversion): Fix bad logic. 9120 91212017-04-25 Arnaud Charlet <charlet@adacore.com> 9122 9123 * snames.ads-tmpl (Snames): More names for detecting predefined 9124 potentially blocking subprograms. 9125 91262017-04-25 Ed Schonberg <schonberg@adacore.com> 9127 9128 * sem_prag.adb (Analyze_Pre_Post_Condition): The rules 9129 concerning inheritance of class-wide preconditions do not apply 9130 to postconditions. 9131 91322017-04-25 Bob Duff <duff@adacore.com> 9133 9134 * s-ficobl.ads: Minor comment fix. 9135 91362017-04-25 Yannick Moy <moy@adacore.com> 9137 9138 * checks.adb (Apply_Scalar_Range_Check): Analyze precisely 9139 conversions from float to integer in GNATprove mode. 9140 (Apply_Type_Conversion_Checks): Make sure in GNATprove mode 9141 to call Apply_Type_Conversion_Checks, so that range checks 9142 are properly positioned when needed on conversions, including 9143 when converting from float to integer. (Determine_Range): In 9144 GNATprove mode, take into account the possibility of conversion 9145 from float to integer. 9146 * sem_res.adb (Resolve_Type_Conversion): Only enforce range 9147 check on conversions from fixed-point to integer, not anymore 9148 on conversions from floating-point to integer, when in GNATprove 9149 mode. 9150 91512017-04-25 Yannick Moy <moy@adacore.com> 9152 9153 * checks.adb (Determine_Range_R): Special case type conversions 9154 from integer to float in order to get bounds in that case too. 9155 * eval_fat.adb (Machine): Avoid issuing warnings in GNATprove 9156 mode, for computations involved in interval checking. 9157 91582017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9159 9160 * checks.adb (Insert_Valid_Check): Partially reimplement validity 9161 checks. 9162 * einfo.adb Node36 is now used as Validated_Object. 9163 (Validated_Object): New routine. 9164 (Set_Validated_Object): New routine. 9165 (Write_Field36_Name): Add an entry for Validated_Object. 9166 * einfo.ads Add new attribute Validated_Object along with 9167 usage in entities. 9168 (Validated_Object): New routine along with pragma Inline. 9169 (Set_Validated_Object): New routine along with pragma Inline. 9170 * exp_attr.adb (Make_Range_Test): Add processing for validation 9171 variables to avoid extra reads and copies of the prefix. 9172 * exp_ch6.adb (Expand_Actuals): Add copy-back for validation 9173 variables in order to reflect any changes done in the variable 9174 back into the original object. 9175 * sem_util.adb (Is_Validation_Variable_Reference): New routine. 9176 * sem_util.ads (Is_Validation_Variable_Reference): New routine. 9177 91782017-04-25 Steve Baird <baird@adacore.com> 9179 9180 * exp_ch7.adb (Build_Array_Deep_Procs, 9181 Build_Record_Deep_Procs, Make_Finalize_Address_Body): Don't 9182 generate Finalize_Address routines for CodePeer. 9183 91842017-04-25 Ed Schonberg <schonberg@adacore.com> 9185 9186 * sem_prag.adb (Inherits_Class_Wide_Pre): subsidiary of 9187 Analyze_Pre_Post_Condition, to implement the legality checks 9188 mandated by AI12-0131: Pre'Class shall not be specified for an 9189 overriding primitive subprogram of a tagged type T unless the 9190 Pre'Class aspect is specified for the corresponding primitive 9191 subprogram of some ancestor of T. 9192 91932017-04-25 Bob Duff <duff@adacore.com> 9194 9195 * sem_ch8.adb (Use_One_Type): If a use_type_clause 9196 is redundant, set its Used_Operations to empty. This is only 9197 necessary for use clauses that appear in the parent of a generic 9198 child unit, because those use clauses get reanalyzed when we 9199 instantiate the generic, and we don't want the Used_Operations 9200 carried over from the original context (where it was probably 9201 not redundant). 9202 92032017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9204 9205 * exp_ch6.adb: Minor reformatting. 9206 92072017-04-25 Bob Duff <duff@adacore.com> 9208 9209 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): 9210 Use Source_Index (Current_Sem_Unit) to find the correct casing. 9211 * exp_prag.adb (Expand_Pragma_Check): Use Source_Index 9212 (Current_Sem_Unit) to find the correct casing. 9213 * par.adb (Par): Null out Current_Source_File, to ensure that 9214 the above bugs won't rear their ugly heads again. 9215 92162017-04-25 Ed Schonberg <schonberg@adacore.com> 9217 9218 * sem_ch8.adb (Find_Type): For an attribute reference 9219 'Class, if prefix type is synchronized and previous errors 9220 have suppressed the creation of the corresponding record type, 9221 create a spurious class-wide for the synchonized type itself, 9222 to catch other misuses of the attribute 9223 92242017-04-25 Steve Baird <baird@adacore.com> 9225 9226 * exp_ch6.adb (Expand_Simple_Function_Return): if CodePeer_Mode 9227 is True, then don't generate the accessibility check for the 9228 tag of a tagged result. 9229 * exp_intr.adb (Expand_Dispatching_Constructor_Call): 9230 if CodePeer_Mode is True, then don't generate the 9231 tag checks for the result of call to an instance of 9232 Ada.Tags.Generic_Dispatching_Constructor (i.e., both the "is a 9233 descendant of" check and the accessibility check). 9234 92352017-04-25 Ed Schonberg <schonberg@adacore.com> 9236 9237 * sem_ch13.adb: Code cleanups. 9238 * a-strbou.ads: minor whitespace fix in Trim for bounded strings. 9239 * sem_ch8.ads: Minor comment fix. 9240 92412017-04-25 Eric Botcazou <ebotcazou@adacore.com> 9242 9243 * exp_ch4.adb (Library_Level_Target): New function. 9244 (Expand_Concatenate): When optimization is enabled, also expand 9245 the operation out-of-line if the concatenation is present within 9246 the expression of the declaration of a library-level object and 9247 not only if it is the expression of the declaration. 9248 92492017-04-25 Bob Duff <duff@adacore.com> 9250 9251 * freeze.adb (Freeze_Object_Declaration): Do 9252 not Remove_Side_Effects if there is a pragma Linker_Section, 9253 because in that case we want static initialization in the 9254 appropriate section. 9255 92562017-04-25 Gary Dismukes <dismukes@adacore.com> 9257 9258 * exp_dbug.adb: Minor rewording and reformatting. 9259 92602017-04-25 Ed Schonberg <schonberg@adacore.com> 9261 9262 * sem_attr.adb (Statically_Denotes_Object): New predicate, to 9263 handle the proposed changes to rules concerning potentially 9264 unevaluated expressions, to include selected components that 9265 do not depend on discriminants, and indexed components with 9266 static indices. 9267 * sem_util.adb (Is_Potentially_Unevaluated): Add check for 9268 predicate in quantified expression, and fix bugs in the handling 9269 of case expressions and membership test. 9270 (Analyze_Attribute_Old_Result): use new predicate. 9271 (Analyze_Attribute, case Loop_Entry): ditto. 9272 92732017-04-25 Bob Duff <duff@adacore.com> 9274 9275 * s-secsta.adb (SS_Info): Add a comment 9276 explaining why we don't need to walk all the chunks in order to 9277 compute the total size. 9278 92792017-04-25 Bob Duff <duff@adacore.com> 9280 9281 * namet.ads, namet.adb (Global_Name_Buffer): Increase the length 9282 of the global name buffer to 4*Max_Line_Length. 9283 92842017-04-25 Javier Miranda <miranda@adacore.com> 9285 9286 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): When creating a 9287 renaming entity for debug information, mark the entity as needing debug 9288 info if it comes from sources. 9289 92902017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9291 9292 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Remove the 9293 restriction converning the use of 'Address where the prefix is 9294 of a controlled type. 9295 92962017-04-25 Pierre-Marie de Rodat <derodat@adacore.com> 9297 9298 * exp_dbug.adb: In Debug_Renaming_Declaration, 9299 skip slices that are made redundant by an indexed component 9300 access. 9301 * atree.h: New definition for Original_Node. 9302 93032017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9304 9305 * sem_prag.adb, sem_prag.ads: Minor reformatting. 9306 93072017-04-25 Ed Schonberg <schonberg@adacore.com> 9308 9309 * sem_ch3.adb (Check_Entry_Contract): Call 9310 Preanalyze_Spec_Expression so that resolution takes place as well. 9311 * sem_util.adb (Check_Internal_Protected_Use): Reject properly 9312 internal calls that appear in preconditions of protected 9313 operations, in default values for same, and in contract guards 9314 for contract cases in SPARK. 9315 93162017-04-25 Eric Botcazou <ebotcazou@adacore.com> 9317 9318 * a-numaux.ads: Fix description of a-numaux-darwin 9319 and a-numaux-x86. 9320 (Double): Define to Long_Float. 9321 * a-numaux-vxworks.ads (Double): Likewise. 9322 * a-numaux-darwin.ads 9323 (Double): Likewise. 9324 * a-numaux-libc-x86.ads (Double): Define to Long_Long_Float. 9325 * a-numaux-x86.ads: Fix package description. 9326 * a-numaux-x86.adb (Is_Nan): Minor tweak. 9327 (Reduce): Adjust and complete description. Call Is_Nan instead of 9328 testing manually. Use an integer temporary to hold rounded value. 9329 * a-numaux-darwin.adb (Reduce): Likewise. 9330 (Is_Nan): New function. 9331 93322017-04-25 Ed Schonberg <schonberg@adacore.com> 9333 9334 * sem_ch4.adb (Analyze_Selected_Component): Additional refinement 9335 on analysis of prefix whose type is a current instance of a 9336 synchronized type, but where the prefix itself is an entity that 9337 is an object. 9338 93392017-04-25 Ed Schonberg <schonberg@adacore.com> 9340 9341 * exp_ch5.adb (Replace_Target): When rewriting the RHS, preserve 9342 the identity of callable entities therein, because they have been 9343 properly resolved, and prefixed calls may have been rewritten 9344 as normal calls. 9345 93462017-04-25 Patrick Bernardi <bernardi@adacore.com> 9347 9348 * exp_ch3.adb (Build_Init_Statements): Convert 9349 the expression of the pragma/aspect Secondary_Stack_Size to 9350 internal type System.Parameters.Size_Type before assigning 9351 it to the Secondary_Stack_Size component of the task type's 9352 corresponding record. 9353 93542017-04-25 Eric Botcazou <ebotcazou@adacore.com> 9355 9356 * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal 9357 (etc) optimizations when the type is modular and the offsets 9358 are equal. 9359 93602017-04-25 Eric Botcazou <ebotcazou@adacore.com> 9361 9362 * s-osinte-freebsd.ads: Minor comment tweaks 9363 93642017-04-25 Javier Miranda <miranda@adacore.com> 9365 9366 * urealp.adb (UR_Write): Reverse previous patch 9367 adding documentation on why we generate multiplications instead 9368 of divisions (needed to avoid expressions whose computation with 9369 large numbers may cause division by 0). 9370 93712017-04-25 Bob Duff <duff@adacore.com> 9372 9373 * erroutc.adb (Set_Specific_Warning_Off, 9374 Set_Warnings_Mode_Off): Use the correct source file for 9375 Stop. Was using Current_Source_File, which is only valid during 9376 parsing. Current_Source_File will have a leftover value from 9377 whatever file happened to be parsed last, because of a with_clause 9378 or something. 9379 93802017-04-25 Bob Duff <duff@adacore.com> 9381 9382 * lib.ads, lib.adb (In_Internal_Unit): New functions similar 9383 to In_Predefined_Unit, but including GNAT units. 9384 * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): Replace 9385 with Should_Ignore_Pragma_Par and Should_Ignore_Pragma_Sem, 9386 because Should_Ignore_Pragma was not working reliably outside 9387 the parser, because Current_Source_File is not valid. 9388 * sem_prag.adb, exp_prag.adb: Call Should_Ignore_Pragma_Sem. 9389 * par-prag.adb: Call Should_Ignore_Pragma_Par. 9390 93912017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 9392 9393 * gnat1drv.adb (Gnat1Drv): Disable Generate_Processed_File in 9394 codepeer mode. 9395 93962017-04-25 Javier Miranda <miranda@adacore.com> 9397 9398 * urealp.adb (UR_Write): Fix output of constants with a base other 9399 that 10. 9400 94012017-04-25 Justin Squirek <squirek@adacore.com> 9402 9403 * sem_ch13.adb (Get_Interfacing_Aspects): Moved to sem_util.adb. 9404 * sem_prag.adb (Analyze_Pragma, Process_Import_Or_Interface): 9405 Add extra parameter for Process_Interface_Name. 9406 (Process_Interface_Name): Add parameter for pragma to analyze 9407 corresponding aspect. 9408 * sem_util.ads, sem_util.adb (Get_Interfacing_Aspects): Added 9409 from sem_ch13.adb 9410 94112017-04-25 Gary Dismukes <dismukes@adacore.com> 9412 9413 * exp_ch7.adb, einfo.ads, sem_prag.adb: Minor reformatting and typo 9414 correction. 9415 94162017-04-25 Yannick Moy <moy@adacore.com> 9417 9418 * sem_res.adb (Resolve_Comparison_Op): Do not 9419 attempt evaluation of relational operations inside assertions. 9420 94212017-04-25 Justin Squirek <squirek@adacore.com> 9422 9423 * exp_util.adb (Add_Interface_Invariants): 9424 Restored, code moved back from Build_Invariant_Procedure_Body. 9425 (Add_Parent_Invariants): Restored, code moved back from 9426 Build_Invariant_Procedure_Body. 9427 (Build_Invariant_Procedure_Body): 9428 Remove refactored calls and integrated code from 9429 Add_Parent_Invariants and Add_Interface_Invariants. 9430 94312017-04-25 Johannes Kanig <kanig@adacore.com> 9432 9433 * errout.adb (Output_Messages): Adjust computation of total 9434 errors 9435 * erroutc.adb (Error_Msg): In statistics counts, deal 9436 correctly with informational messages that are not warnings. 9437 * errutil.adb (Finalize): adjust computation of total errors. 9438 94392017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 9440 9441 * terminals.c (__gnat_terminate_pid): New. 9442 * g-exptty.ads (Terminate_Process): New. Update comments. 9443 94442017-04-25 Arnaud Charlet <charlet@adacore.com> 9445 9446 * a-cfinve.ads, a-cofove.ads (Empty_Vector): add Global contract. 9447 94482017-04-25 Justin Squirek <squirek@adacore.com> 9449 9450 * sem_ch3.adb (Analyze_Declarations): Minor 9451 correction to comments, move out large conditional and scope 9452 traversal into a predicate. 9453 (Uses_Unseen_Lib_Unit_Priv): Predicate function made from extracted 9454 logic. 9455 94562017-04-25 Ed Schonberg <schonberg@adacore.com> 9457 9458 * sem_ch4.adb (Analyze_Selected_Component): Refine analysis 9459 of prefix whose type is a current instance of a synchronized 9460 type. If the prefix is an object this is an external call (or 9461 requeue) that can only access public operations of the object. The 9462 previous predicate was too restrictive, and did not allow public 9463 protected operations, only task entries. 9464 94652017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9466 9467 * sem_ch5.adb, fname.adb: Minor reformatting. 9468 94692017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9470 9471 * einfo.adb (Is_Anonymous_Access_Type): New routine. 9472 * einfo.ads Update the placement of 9473 E_Anonymous_Access_Subprogram_Type along with all subtypes that 9474 mention the ekind. 9475 (Is_Anonymous_Access_Type): New routine. 9476 * exp_ch7.adb (Allows_Finalization_Master): Do not generate a 9477 master for an access type subject to pragma No_Heap_Finalization. 9478 * exp_util.adb (Build_Allocate_Deallocate_Proc): An object being 9479 allocated or deallocated does not finalization actions if the 9480 associated access type is subject to pragma No_Heap_Finalization. 9481 * opt.ads Add new global variable No_Heap_Finalization_Pragma. 9482 * par-prag.adb Pragma No_Heap_Finalization does not need special 9483 processing from the parser. 9484 * sem_ch6.adb (Check_Return_Subtype_Indication): Remove ancient 9485 ??? comments. Use the new predicate Is_Anonymous_Access_Type. 9486 * sem_prag.adb Add an entry in table Sig_Flags for pragma 9487 No_Heap_Finalization. 9488 (Analyze_Pragma): Add processing for 9489 pragma No_Heap_Finalization. Update various error messages to 9490 use Duplication_Error. 9491 * sem_util.ads, sem_util.adb (No_Heap_Finalization): New routine. 9492 * snames.ads-tmpl: Add new predefined name No_Heap_Finalization 9493 and corresponding pragma id. 9494 94952017-04-25 Bob Duff <duff@adacore.com> 9496 9497 * freeze.adb (Freeze_Record_Type): Use the 9498 underlying type of the component type to determine whether it's 9499 elementary. For representation clause purposes, a private type 9500 should behave the same as its full type. 9501 * fname.ads, fname.adb (Is_Predefined_File_Name): 9502 Make sure things like "system.ali" are recognized as predefined. 9503 95042017-04-25 Javier Miranda <miranda@adacore.com> 9505 9506 * debug.adb: Update documentation of -gnatd.6. 9507 95082017-04-25 Ed Schonberg <schonberg@adacore.com> 9509 9510 * sem_ch5.adb (Preanalyze_Range): Handle properly an Ada2012 9511 element iterator when the name is an overloaded function call, 9512 one of whose interpretations yields an array. 9513 95142017-04-25 Bob Duff <duff@adacore.com> 9515 9516 * uname.ads, uname.adb (Is_Predefined_Unit_Name, 9517 Is_Internal_Unit_Name): New functions for operating on unit 9518 names, as opposed to file names. There's some duplicated code 9519 with fname.adb, which is unfortunate, but it seems like we don't 9520 want to add dependencies here. 9521 * fname-uf.adb (Get_File_Name): Change Is_Predefined_File_Name 9522 to Is_Predefined_Unit_Name; the former was wrong, because Uname 9523 is not a file name at all. 9524 * fname.ads, fname.adb: Document the fact that 9525 Is_Predefined_File_Name and Is_Internal_File_Name can be called 9526 for ALI files, and fix the code so it works properly for ALI 9527 files. E.g. these should return True for "system.ali". 9528 95292017-04-25 Justin Squirek <squirek@adacore.com> 9530 9531 * exp_util.adb (Add_Invariant): Removed, 9532 code moved to Add_Invariant_Check, Add_Inherited_Invariant, 9533 and Add_Own_Invariant. (Add_Invariant_Check): Used 9534 for adding runtime checks from any kind of invariant. 9535 (Add_Inherited_Invariant): Generates invariant checks for 9536 class-wide invariants (Add_Interface_Invariants): Removed, code 9537 moved to Build_Invariant_Procedure_Body (Add_Own_Invariant): 9538 Create a types own invariant procedure (Add_Parent_Invariants): 9539 Removed, code moved to Build_Invariant_Procedure_Body 9540 (Build_Invariant_Procedure_Body): Add refactored calls 9541 and integrated code from Add_Parent_Invariants and 9542 Add_Interface_Invariants. 9543 (Process_Type): Removed, the 9544 relavant code was inlined into both Add_Own_Invariant and 9545 Add_Inherited_Invariant. 9546 95472017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9548 9549 * make.adb, par-ch2.adb, sem_util.adb, scans.ads, sem_ch8.adb, 9550 scn.adb, osint.adb, fname.adb: Minor reformatting. 9551 95522017-04-25 Pascal Obry <obry@adacore.com> 9553 9554 * s-taprop-mingw.adb: Do not check for CloseHandle in 9555 Finalize_TCB. 9556 95572017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9558 9559 * sem_util.adb (Check_Part_Of_Reference): 9560 Continue to examine the context if the reference appears within 9561 an expression function. 9562 95632017-04-25 Justin Squirek <squirek@adacore.com> 9564 9565 * exp_ch7.adb, exp_ch7.ads Remove Build_Invariant_Procedure_Body 9566 and Build_Invariant_Procedure_Declaration. 9567 * exp_util.ads, exp_util.adb Add Build_Invariant_Procedure_Body 9568 and Build_Invariant_Procedure_Declaration from exp_ch7 9569 and break-out Is_Untagged_Private_Derivation from 9570 Build_Invariant_Procedure_Body. 9571 (Replace_Type_References): 9572 Append an extra parameter to allow for dispatching replacements 9573 and add the corrasponding logic. 9574 (Type_Invariant): Remove 9575 Replace_Typ_Refs and replace its references with calls to 9576 Replace_Type_References. 9577 * sem_ch3.adb, sem_prag.adb: Remove with and use of exp_ch7. 9578 95792017-04-25 Bob Duff <duff@adacore.com> 9580 9581 * sem_util.ads, sem_util.adb (Should_Ignore_Pragma): New function 9582 that returns True when appropriate. 9583 * par-prag.adb, exp_prag.adb, sem_prag.adb: Do not ignore pragmas 9584 when compiling predefined files. 9585 * fname.ads, fname.adb (Is_Predefined_File_Name): Fix bug: 9586 "gnat.adc" should not be considered a predefined file name. 9587 That required (or at least encouraged) a lot of cleanup of global 9588 variable usage. We shouldn't be communicating information via 9589 the global name buffer. 9590 * bindgen.adb, errout.adb, fname-uf.adb, lib-load.adb, make.adb, 9591 * restrict.adb, sem_ch10.adb, sem_ch6.adb, sem_ch8.adb: Changes 9592 required by the above-mentioned cleanup. 9593 95942017-04-25 Ed Schonberg <schonberg@adacore.com> 9595 9596 * osint.adb (Find_File): Handle properly a request for a 9597 configuration file whose name is a directory. 9598 95992017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9600 9601 * sem_attr.adb, sem_ch5.adb: Minor reformatting. 9602 96032017-04-25 Bob Duff <duff@adacore.com> 9604 9605 * types.ads: Minor: Fix '???' comment. 9606 * sem_ch8.adb: Minor comment fix. 9607 96082017-04-25 Bob Duff <duff@adacore.com> 9609 9610 * sem_prag.adb: Remove suspicious uses of Name_Buf. 9611 * stringt.ads, stringt.adb, exp_dbug.adb, sem_dim.adb: Remove 9612 Add_String_To_Name_Buffer, to avoid using the global Name_Buf. 9613 Add String_To_Name with no side effects. 9614 96152017-04-25 Justin Squirek <squirek@adacore.com> 9616 9617 * sem_ch3.adb (Analyze_Declarations): Add 9618 additional condition for edge case. 9619 96202017-04-25 Bob Duff <duff@adacore.com> 9621 9622 * par-ch2.adb, scans.ads, scn.adb: Do not give an error for 9623 reserved words inside pragmas. This is necessary to allow the 9624 pragma name Interface to be used in pragma Ignore_Pragma. 9625 * par.adb: Minor comment fix. 9626 96272017-04-25 Javier Miranda <miranda@adacore.com> 9628 9629 * a-tags.ads, a-tags.adb (Type_Is_Abstract): Renamed as Is_Abstract. 9630 * rtsfind.ads (RE_Type_Is_Abstract): Renamed as Is_Abstract. 9631 * exp_disp.adb (Make_DT): Update occurrences of RE_Type_Is_Abstract. 9632 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Update 9633 occurrences of RE_Type_Is_Abstract 9634 96352017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9636 9637 * exp_util.adb (Build_Chain): Account for ancestor 9638 subtypes while traversing the derivation chain. 9639 96402017-04-25 Ed Schonberg <schonberg@adacore.com> 9641 9642 * sem_attr.adb: minor reformatting. 9643 96442017-04-25 Doug Rupp <rupp@adacore.com> 9645 9646 * sigtramp-vxworks-target.inc [PPC64]: Add a .localentry pseudo-op. 9647 96482017-04-25 Ed Schonberg <schonberg@adacore.com> 9649 9650 * sem_ch5.adb (Analyze_Assignment): Reset Full_Analysis flag on 9651 the first pass over an assignment statement with target names, 9652 to prevent the generation of subtypes (such as discriminated 9653 record components)that may carry the target name outside of the 9654 tree for the assignment. The subtypes will be generated when 9655 the assignment is reanalyzed in full. 9656 (Analyze_Target_Name): Handle properly class-wide types. 9657 96582017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9659 9660 * elists.ads, elists.adb (Prepend_Unique_Elmt): New routine. 9661 * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for 9662 the purposes of freezing. 9663 * exp_util.adb Update the documentation and structure of the 9664 type map used in class-wide semantics of assertion expressions. 9665 (Add_Inherited_Tagged_DIC): There is really no need to preanalyze 9666 and resolve the triaged expression because all substitutions 9667 refer to the proper entities. Update the replacement of 9668 references. 9669 (Build_DIC_Procedure_Body): Add formal parameter 9670 For_Freeze. Add local variable Build_Body. Inherited DIC pragmas 9671 are now only processed when freezing occurs. Build a body only 9672 when one is needed. 9673 (Entity_Hash): Removed. 9674 (Map_Types): New routine. 9675 (Replace_Object_And_Primitive_References): Removed. 9676 (Replace_References): New routine. 9677 (Replace_Type_References): Moved to the library level of Exp_Util. 9678 (Type_Map_Hash): New routine. 9679 (Update_Primitives_Mapping): Update the mapping call. 9680 (Update_Primitives_Mapping_Of_Types): Removed. 9681 * exp_util.ads (Build_DIC_Procedure_Body): Add formal 9682 parameter For_Freeze and update the comment on usage. 9683 (Map_Types): New routine. 9684 (Replace_References): New routine. 9685 (Replace_Type_References): Moved to the library level of Exp_Util. 9686 (Update_Primitives_Mapping_Of_Types): Removed. 9687 * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC 9688 properties of the private type to the full view in case the full 9689 view derives from a parent type and inherits a DIC pragma. 9690 * sem_prag.adb (Analyze_Pragma): Guard against a case where a 9691 DIC pragma is placed at the top of a declarative region. 9692 96932017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 9694 9695 * a-tasatt.adb: Complete previous change and use an unsigned 9696 int to avoid overflow checks. 9697 96982017-04-25 Ed Schonberg <schonberg@adacore.com> 9699 9700 * sem_attr.adb (Analyze_Attribute, case 'Access): Specialize 9701 the error message when the attribute reference is an actual in 9702 a call to a subprogram inherited from a generic formal type with 9703 unknown discriminants, which makes the subprogram and its formal 9704 parameters intrinsic (see RM 6.3.1 (8) and (13)). 9705 97062017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9707 9708 * sem_aggr.adb, inline.adb, einfo.adb, einfo.ads, scng.adb, 9709 sem_prag.adb: Minor reformatting. 9710 97112017-04-25 Bob Duff <duff@adacore.com> 9712 9713 * sem_attr.adb (Type_Key): Add code in the 9714 recursive Compute_Type_Key to protect against fetching the source 9715 code for Standard, in case a component of the type is declared 9716 in Standard. There was already code to do this for the original 9717 type, but not for its components. 9718 97192017-04-25 Javier Miranda <miranda@adacore.com> 9720 9721 * exp_ch3.adb (Build_Initialization_Call): Handle 9722 subtypes of private types when searching for the underlying full 9723 view of a private type. 9724 97252017-04-25 Javier Miranda <miranda@adacore.com> 9726 9727 * sem_res.adb (Set_Mixed_Mode_Operand): A universal 9728 real conditional expression can appear in a fixed-type context 9729 and must be resolved with that context to facilitate the code 9730 generation to the backend. 9731 97322017-04-25 Ed Schonberg <schonberg@adacore.com> 9733 9734 * einfo.adb, einfo.ads (Body_Needed_For_Inlining): New flag, 9735 to indicate whether during inline processing, when some unit U1 9736 appears in the context of a unit U2 compiled for instantiation 9737 or inlining purposes, the body of U1 needs to be compiled as well. 9738 * sem_prag.adb (Process_Inline): Set Body_Needed_For_Inlining if 9739 context is a package declaration. 9740 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration, 9741 Analyze_Generic_Package_Declaration): ditto. 9742 * inline.adb (Analyze_Inlined_Bodies): Check 9743 Body_Needed_For_Inlining. 9744 97452017-04-25 Ed Schonberg <schonberg@adacore.com> 9746 9747 * par.adb (Current_Assign_Node): Global variable use to record 9748 the presence of a target_name in the right hand side of the 9749 assignment being parsed. 9750 * par-ch4.adb (P_Name): If the name is a target_name, mark the 9751 enclosing assignment node accordingly. 9752 * par-ch5.adb (P_Assignment_Statement): Set Current_Assign_Node 9753 appropriately. 9754 * sem_ch5.adb (Analyze_Assignment): Disable expansion before 9755 analyzing RHS if the statement has target_names. 9756 * sem_aggr.adb (Resolve_Iterated_Component_Association): Handle 9757 properly choices that are subtype marks. 9758 * exp_ch5.adb: Code cleanup. 9759 97602017-04-25 Bob Duff <duff@adacore.com> 9761 9762 * s-memory.adb: Add a comment regarding efficiency. 9763 * atree.adb: Fix the assertion, and combine 2 assertions into one, 9764 "the source has an extension if and only if the destination does." 9765 * sem_ch3.adb, sem_ch13.adb: Address ??? comments. 9766 97672017-04-25 Arnaud Charlet <charlet@adacore.com trojanek> 9768 9769 * a-tasatt.adb (Set_Value): Fix handling of 32bits -> 64bits 9770 conversion. 9771 97722017-04-25 Doug Rupp <rupp@adacore.com> 9773 9774 * init.c (__gnat_error_handler) [vxworks]: Turn on sigtramp 9775 handling for ppc64-vx7. 9776 * sigtramp-vxworks-target.inc 9777 [SIGTRAMP_BODY]: Add section for ppc64-vx7. 9778 97792017-04-25 Arnaud Charlet <charlet@adacore.com> 9780 9781 * ada_get_targ.adb: New file. 9782 97832017-04-25 Bob Duff <duff@adacore.com> 9784 9785 * uintp.adb (Most_Sig_2_Digits): In case Direct (Right), fetch 9786 Direct_Val (Right), instead of the incorrect Direct_Val (Left). 9787 (UI_GCD): Remove ??? comment involving possible efficiency 9788 improvements. This just isn't important after all these years. 9789 Also minor cleanup. 9790 * uintp.ads: Minor cleanup. 9791 97922017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9793 9794 * exp_util.adb, exp_util.ads, sem_ch7.adb, sem_prag.adb, exp_ch3.adb: 9795 Revert previous changes. 9796 * scng.adb: Minor reformatting. 9797 * s-stratt.ads: Fix unbalanced parens in comment. 9798 97992017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9800 9801 * sem_ch3.adb, exp_util.adb, sem_prag.adb, freeze.adb, sem_util.adb: 9802 Minor reformatting. 9803 98042017-04-25 Ed Schonberg <schonberg@adacore.com> 9805 9806 * scng.adb (Scan): Handle '@' appropriately. 9807 * sem_ch5.adb: Code cleanup. 9808 98092017-04-25 Ed Schonberg <schonberg@adacore.com> 9810 9811 * freeze.adb (Check_Expression_Function): Do not check for the 9812 use of deferred constants if the freezing of the expression 9813 function is triggered by its generated body, rather than a 9814 premature use. 9815 98162017-04-25 Javier Miranda <miranda@adacore.com> 9817 9818 * exp_attr.adb (Rewrite_Stream_Proc_Call): Handle 9819 subtypes of private types when performing the view conversion. 9820 98212017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9822 9823 * exp_ch3.adb (Freeze_Type): Signal the DIC body is created for 9824 the purposes of freezing. 9825 * exp_util.adb Update the documentation and structure of the 9826 type map used in class-wide semantics of assertion expressions. 9827 (Add_Inherited_Tagged_DIC): There is really no need to preanalyze 9828 and resolve the triaged expression because all substitutions 9829 refer to the proper entities. Update the replacement of 9830 references. 9831 (Build_DIC_Procedure_Body): Add formal parameter 9832 For_Freeze. Add local variable Build_Body. Inherited DIC pragmas 9833 are now only processed when freezing occurs. Build a body only 9834 when one is needed. 9835 (Entity_Hash): Removed. 9836 (Map_Types): New routine. 9837 (Replace_Object_And_Primitive_References): Removed. 9838 (Replace_References): New routine. 9839 (Replace_Type_References): Moved to the library level of Exp_Util. 9840 (Type_Map_Hash): New routine. 9841 (Update_Primitives_Mapping): Update the mapping call. 9842 (Update_Primitives_Mapping_Of_Types): Removed. 9843 * exp_util.ads (Build_DIC_Procedure_Body): Add formal 9844 parameter For_Freeze and update the comment on usage. 9845 (Map_Types): New routine. 9846 (Replace_References): New routine. 9847 (Replace_Type_References): Moved to the library level of Exp_Util. 9848 (Update_Primitives_Mapping_Of_Types): Removed. 9849 * sem_ch7.adb (Preserve_Full_Attributes): Propagate the DIC 9850 properties of the private type to the full view in case the full 9851 view derives from a parent type and inherits a DIC pragma. 9852 * sem_prag.adb (Analyze_Pragma): Guard against a case where a 9853 DIC pragma is placed at the top of a declarative region. 9854 98552017-04-25 Tristan Gingold <gingold@adacore.com> 9856 9857 * s-mmap.ads (Data): Add pragma Inline. 9858 98592017-04-25 Hristian Kirtchev <kirtchev@adacore.com> 9860 9861 * checks.adb (Insert_Valid_Check): Do not use 9862 a renaming to alias a volatile name because this will lead to 9863 multiple evaluations of the volatile name. Use a constant to 9864 capture the value instead. 9865 98662017-04-25 Doug Rupp <rupp@adacore.com> 9867 9868 * init.c [VxWorks Section]: Disable sigtramp for ppc64-vx7. 9869 98702017-04-25 Ed Schonberg <schonberg@adacore.com> 9871 9872 * exp_util.adb, exp_util.ads (Build_Class_Wide_Expression): 9873 Add out parameter to indicate to caller that a wrapper must 9874 be constructed for an inherited primitive whose inherited 9875 pre/postcondition has called to overridden primitives. 9876 * freeze.adb (Check_Inherited_Conditions): Build wrapper body 9877 for inherited primitive that requires it. 9878 * sem_disp.adb (Check_Dispatching_Operation): Such wrappers are 9879 legal primitive operations and belong to the list of bodies 9880 generated after the freeze point of a type. 9881 * sem_prag.adb (Build_Pragma_Check_Equivalent): Use new signature 9882 of Build_Class_Wide_Expression. 9883 * sem_util.adb, sem_util.ads (Build_Overriding_Spec): New procedure 9884 to construct the specification of the wrapper subprogram created 9885 for an inherited operation. 9886 98872017-04-25 Bob Duff <duff@adacore.com> 9888 9889 * s-osinte-linux.ads (pthread_mutexattr_setprotocol, 9890 pthread_mutexattr_setprioceiling): Add new interfaces for these 9891 pthread operations. 9892 * s-taprop-linux.adb (Initialize_Lock, Initialize_TCB): Set 9893 protocols as appropriate for Locking_Policy 'C' and 'I'. 9894 * s-taprop-posix.adb: Minor reformatting to make it more similar 9895 to s-taprop-linux.adb. 9896 98972017-04-25 Ed Schonberg <schonberg@adacore.com> 9898 9899 * sem_ch3.adb (Get_Discriminant_Value, Search_Derivation_Levels): 9900 Handle properly a multi- level derivation involving both renamed 9901 and constrained parent discriminants, when the type to be 9902 constrained has fewer discriminants that the ultimate ancestor. 9903 99042017-04-25 Bob Duff <duff@adacore.com> 9905 9906 * sem_util.adb (Is_Object_Reference): In the 9907 case of N_Explicit_Dereference, return False if it came from a 9908 conditional expression. 9909 99102017-04-25 Bob Duff <duff@adacore.com> 9911 9912 * par-ch4.adb (P_Case_Expression): If a semicolon 9913 is followed by "when", assume that ";" was meant to be ",". 9914 99152017-04-25 Gary Dismukes <dismukes@adacore.com> 9916 9917 * sem_ch9.adb, sem_ch10.adb, sem_util.adb: Minor reformatting and typo 9918 fixes. 9919 99202017-04-25 Arnaud Charlet <charlet@adacore.com> 9921 9922 * rtsfind.ads (SPARK_Implicit_Load): New procedure for forced 9923 loading of an entity. 9924 * rtsfind.adb (SPARK_Implicit_Load): Body with a pattern 9925 previously repeated in the analysis. 9926 * sem_ch9.adb (Analyze_Protected_Type_Declaration): use new 9927 procedure SPARK_Implicit_Load. (Analyze_Task_Type_Declaration): 9928 use new procedure SPARK_Implicit_Load. 9929 * sem_ch10.adb (Analyze_Compilation_Unit): Use new procedure 9930 SPARK_Implicit_Load. 9931 99322017-04-25 Javier Miranda <miranda@adacore.com> 9933 9934 * sem_util.adb (New_Copy_Tree): By default 9935 copying of defining identifiers is prohibited because 9936 this would introduce an entirely new entity into the 9937 tree. This patch introduces an exception to this general 9938 rule: the declaration of constants and variables located in 9939 Expression_With_Action nodes. 9940 (Copy_Itype_With_Replacement): Renamed as Copy_Entity_With_Replacement. 9941 (In_Map): New subprogram. 9942 (Visit_Entity): New subprogram. 9943 (Visit_Node): Handle EWA_Level, 9944 EWA_Inner_Scope_Level, and take care of defining entities defined 9945 in Expression_With_Action nodes. 9946 99472017-04-25 Thomas Quinot <quinot@adacore.com> 9948 9949 * exp_ch6.adb: minor comment edit. 9950 * sinfo.ads, sinfo.adb: New Null_Statement attribute for null 9951 procedure specifications that come from source. 9952 * par-ch6.adb (P_Subprogram, case of a null procedure): Set new 9953 Null_Statement attribute. 9954 * par_sco.adb (Traverse_Declarations_Or_Statements): For a null 9955 procedure, generate statement SCO for the generated NULL statement. 9956 * sem_ch6.adb (Analyze_Null_Procedure): Use null statement from 9957 parser, if available. 9958 99592017-04-04 Andreas Krebbel <krebbel@linux.vnet.ibm.com> 9960 9961 * system-linux-s390.ads: Use Long_Integer'Size to define 9962 Memory_Size. 9963 99642017-04-04 Eric Botcazou <ebotcazou@adacore.com> 9965 9966 * sem_ch3.adb (Build_Derived_Record_Type): Fix long line. 9967 99682017-04-03 Jonathan Wakely <jwakely@redhat.com> 9969 9970 * doc/gnat_ugn/gnat_and_program_execution.rst: Fix typo. 9971 * g-socket.adb (To_Host_Entry): Fix typo in comment. 9972 * gnat_ugn.texi: Fix typo. 9973 * raise.c (_gnat_builtin_longjmp): Fix capitalization in comment. 9974 * s-stposu.adb (Allocate_Any_Controlled): Fix typo in comment. 9975 * sem_ch3.adb (Build_Derived_Record_Type): Likewise. 9976 * sem_util.adb (Mark_Coextensions): Likewise. 9977 * sem_util.ads (Available_Full_View_Of_Component): Likewise. 9978 99792017-03-28 Andreas Schwab <schwab@suse.de> 9980 9981 PR ada/80117 9982 * system-linux-aarch64-ilp32.ads: New file. 9983 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS_COMMON): Rename 9984 from LIBGNAT_TARGET_PAIRS. 9985 (LIBGNAT_TARGET_PAIRS_32, LIBGNAT_TARGET_PAIRS_64): Define. 9986 (LIBGNAT_TARGET_PAIRS): Use LIBGNAT_TARGET_PAIRS_COMMON, and 9987 LIBGNAT_TARGET_PAIRS_64 or LIBGNAT_TARGET_PAIRS_32 for -mabi=lp64 9988 or -mabi=ilp32, resp. 9989 99902017-03-14 James Cowgill <James.Cowgill@imgtec.com> 9991 9992 * s-osinte-linux.ads (struct_sigaction): Use correct type for sa_flags. 9993 99942017-03-08 Thanassis Tsiodras <ttsiodras@gmail.com> 9995 9996 PR ada/79903 9997 * socket.c (__gnat_gethostbyaddr): Add missing test for __rtems__. 9998 99992017-03-08 Eric Botcazou <ebotcazou@adacore.com> 10000 10001 PR ada/79945 10002 * system-linux-ppc.ads (Default_Bit_Order): Use Standard's setting. 10003 10004 * system-linux-arm.ads (Default_Bit_Order): Likewise. 10005 * system-linux-mips.ads (Default_Bit_Order): Likewise. 10006 * system-linux-armeb.ads: Delete. 10007 * system-linux-mipsel.ads: Likewise. 10008 * gcc-interface/Makefile.in (MIPS/Linux): Adjust. 10009 (ARM/Linux): Likewise. 10010 100112017-02-24 Jakub Jelinek <jakub@redhat.com> 10012 10013 PR c/79677 10014 * gcc-interface/misc.c (gnat_handle_option): Pass true to 10015 handle_generated_option GENERATED_P. 10016 100172017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10018 10019 * gcc-interface/decl.c (gnat_to_gnu_field): Do not remove the wrapper 10020 around a justified modular type if it doesn't have the same scalar 10021 storage order as the enclosing record type. 10022 100232017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10024 10025 * gcc-interface/trans.c (gnat_to_gnu): Do not apply special handling 10026 of boolean rvalues to function calls. 10027 100282017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10029 10030 * gcc-interface/utils.c (fold_bit_position): New function. 10031 (rest_of_record_type_compilation): Call it instead of bit_position to 10032 compute the field position and remove the call to remove_conversions. 10033 (compute_related_constant): Factor out the multiplication in both 10034 operands, if any, and streamline the final test. 10035 100362017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10037 10038 * gcc-interface/trans.c (return_value_ok_for_nrv_p): Add sanity check. 10039 100402017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10041 10042 * gcc-interface/decl.c: Include demangle.h. 10043 (is_cplusplus_method): Return again true for a primitive operation 10044 only if it is dispatching. For a subprogram with an interface name, 10045 call the demangler to get the number of C++ parameters and compare it 10046 with the number of Ada parameters. 10047 100482017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10049 10050 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If 10051 there is no end label, put the location of the At_End procedure on 10052 the call to the procedure. 10053 100542017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10055 10056 * gcc-interface/misc.c (gnat_type_max_size): Try to return a meaningful 10057 value for array types with TYPE_INDEX_TYPE set on their domain type. 10058 * gcc-interface/utils.c (max_size): For operations and expressions, do 10059 not build a new node if the operands have not changed or are missing. 10060 100612017-02-24 Eric Botcazou <ebotcazou@adacore.com> 10062 10063 * gcc-interface/utils.c (max_size) <tcc_expression>: Flip the second 10064 argument when recursing on TRUTH_NOT_EXPR. 10065 100662017-02-12 John Marino <gnugcc@marino.st> 10067 10068 * system-freebsd-x86.ads: Rename into... 10069 * system-freebsd.ads: ...this. 10070 (Default_Bit_Order): Define using Standard'Default_Bit_Order. 10071 * gcc-interface/Makefile.in: Support aarch64-freebsd. 10072 (x86-64/FreeBSD): Adjust to above renaming. 10073 (i386/FreeBSD): Likewise. 10074 100752017-02-09 Gerald Pfeifer <gerald@pfeifer.com> 10076 10077 * comperr.adb: Update FSF bug reporting URL. 10078 100792017-02-01 Eric Botcazou <ebotcazou@adacore.com> 10080 Jakub Jelinek <jakub@redhat.com> 10081 10082 PR ada/79309 10083 * adaint.c (__gnat_killprocesstree): Fix broken string handling. 10084 100852017-01-25 Maxim Ostapenko <m.ostapenko@samsung.com> 10086 10087 PR lto/79061 10088 * gcc-interface/utils.c (get_global_context): Pass main_input_filename 10089 to build_translation_unit_decl. 10090 100912017-01-23 Javier Miranda <miranda@adacore.com> 10092 10093 * sem_util.adb (New_Copy_Tree): Code cleanup: 10094 removal of the internal map (ie. variable Actual_Map, its 10095 associated local variables, and all the code handling it). 10096 * sem_ch9.adb (Analyze_Task_Type_Declaration): in GNATprove mode 10097 force loading of the System package when processing a task type. 10098 (Analyze_Protected_Type_Declaration): in GNATprove mode force 10099 loading of the System package when processing a protected type. 10100 * sem_ch10.adb (Analyze_Compilation_Unit): in GNATprove mode 10101 force loading of the System package when processing compilation 10102 unit with a main-like subprogram. 10103 * frontend.adb (Frontend): remove forced loading of the System 10104 package. 10105 101062017-01-23 Ed Schonberg <schonberg@adacore.com> 10107 10108 * sem_prag.adb (Default_Initial_Condition): If the desired type 10109 declaration is a derived type declaration with discriminants, 10110 it is rewritten as a private type declaration. 10111 * sem_ch13.adb (Replace_Type_References_Generic, 10112 Visible_Component): A discriminated private type with descriminnts 10113 has components that must be rewritten as selected components 10114 if they appear as identifiers in an aspect expression such as 10115 a Default_Initial_Condition. 10116 * sem_util.adb (Defining_Entity): support N_Iterator_Specification 10117 nodes. 10118 101192017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10120 10121 * ghost.ads, ghost.adb (Is_Ignored_Ghost_Unit): New routine. 10122 * gnat1drv.adb Generate an empty object file for an ignored 10123 Ghost compilation unit. 10124 * inline.adb, sem_util.adb, sem_ch4.adb: Minor reformatting. 10125 101262017-01-23 Yannick Moy <moy@adacore.com> 10127 10128 * sem_ch4.adb (Analyze_Indexed_Component_Form): 10129 Adapt to inlined prefix with string literal subtype. 10130 * inline.adb (Expand_Inlined_Call): Keep unchecked 10131 conversion inside inlined call when formal type is constrained. 10132 101332017-01-23 Javier Miranda <miranda@adacore.com> 10134 10135 * sem_util.adb (New_Copy_Tree): Code cleanup: 10136 removal of global variables. All the global variables, global 10137 functions and tables of this subprogram are now declared locally. 10138 101392017-01-23 Gary Dismukes <dismukes@adacore.com> 10140 10141 * exp_strm.ads: Minor reformatting and typo fixes. 10142 101432017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10144 10145 * sem_aggr.adb, par_sco.adb, exp_util.adb, sem.adb, sem_ch4.adb, 10146 exp_aggr.adb: Minor reformatting. 10147 * g-diopit.adb: minor grammar/punctuation fix in comment. 10148 * g-byorma.ads: minor fix of unbalanced parens in comment. 10149 101502017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10151 10152 * par.adb: Update the documentation of component Labl. 10153 * par-ch6.adb (P_Return_Statement): Set the expected label of 10154 an extended return statement to Error. 10155 101562017-01-23 Tristan Gingold <gingold@adacore.com> 10157 10158 * s-boustr.ads, s-boustr.adb (Is_Full): New function. 10159 101602017-01-23 Ed Schonberg <schonberg@adacore.com> 10161 10162 * expander.adb: Handle N_Delta_Aggregate. 10163 101642017-01-23 Javier Miranda <miranda@adacore.com> 10165 10166 * exp_ch6.adb (Expand_Call): Improve the code that 10167 checks if some formal of the called subprogram is a class-wide 10168 interface, to handle subtypes of class-wide interfaces. 10169 101702017-01-23 Javier Miranda <miranda@adacore.com> 10171 10172 * checks.adb (Apply_Parameter_Aliasing_Checks): 10173 Remove side effects of the actuals before generating the overlap 10174 check. 10175 101762017-01-23 Justin Squirek <squirek@adacore.com> 10177 10178 * exp_strm.ads, exp_strm.ads 10179 (Build_Record_Or_Elementary_Input_Function): Add an extra parameter so 10180 as to avoid getting the underlying type by default. 10181 * exp_attr.adb (Expand_N_Attribute_Reference): Remove use of 10182 underlying type in the Iiput and output attribute cases when 10183 building their respective functions. 10184 101852017-01-23 Gary Dismukes <dismukes@adacore.com> 10186 10187 * scng.adb: Minor reformatting of error message. 10188 101892017-01-23 Ed Schonberg <schonberg@adacore.com> 10190 10191 * sem_ch6.adb (Analyze_Expression_Function): Do not attempt 10192 to freeze the return type of an expression funxtion that is a 10193 completion, if the type is a limited view and the non-limited 10194 view is available. 10195 101962017-01-23 Ed Schonberg <schonberg@adacore.com> 10197 10198 * par-ch4.adb (P_Aggregate_Or_Parent_Expr): Recognize delta 10199 aggregate construct. 10200 (P_Record_Or_Array_Component_Association): An array aggregate 10201 can start with an Iterated_Component_Association. 10202 * scng.adb: Modify error message on improper use of @ in earlier 10203 versions of the language. 10204 * sinfo.ads: New node kind N_Delta_Aggregate. 10205 * sinfo.adb: An N_Delta_Aggregate has component associations and 10206 an expression. 10207 * sem_res.adb (Resolve): Call Resolve_Delta_Aggregate. 10208 * sem_aggr.ads, sem_aggr.adb (Resolve_Iterated_Component_Association): 10209 Create a new index for each one of the choices in the association, 10210 to prevent spurious homonyms in the scope. 10211 (Resolve_Delta_Aggregate): New. 10212 * sem.adb: An N_Delta_Aggregate is analyzed like an aggregate. 10213 * exp_util.adb (Insert_Actions): Take into account 10214 N_Delta_Aggregate. 10215 * exp_aggr.ads: New procedure Expand_N_Delta_Aggregate. 10216 * exp_aggr.adb: New procedure Expand_N_Delta_Aggregate, 10217 and local procedures Expand_Delta_Array_Aggregate and 10218 expand_Delta_Record_Aggregate. 10219 * sprint.adb: Handle N_Delta_Aggregate. 10220 102212017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10222 10223 * exp_ch11.adb (Expand_N_Exception_Declaration): Generate an 10224 empty name when the exception declaration is subject to pragma 10225 Discard_Names. 10226 (Null_String): New routine. 10227 102282017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10229 10230 * par-ch9.adb (P_Protected_Definition): Parse 10231 any optional and potentially illegal pragmas which appear in 10232 a protected operation declaration list. 10233 (P_Task_Items): Parse 10234 any optional and potentially illegal pragmas which appear in a 10235 task item list. 10236 102372017-01-23 Pascal Obry <obry@adacore.com> 10238 10239 * s-taprop-mingw.adb (Enter_Task): Initialize the Thread handle which 10240 is needed when a foreign thread call a Win32 API using a thread handle 10241 like GetThreadTimes() for example. 10242 102432017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10244 10245 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not 10246 allow an 'Address clause to be specified on a prefix of a 10247 class-wide type. 10248 102492017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10250 10251 * checks.adb (Insert_Valid_Check): Ensure that the prefix of 10252 attribute 'Valid is a renaming of the original expression when 10253 the expression denotes a name. For all other kinds of expression, 10254 use a constant to capture the value. 10255 * exp_util.adb (Is_Name_Reference): Moved to Sem_Util. 10256 * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util. 10257 102582017-01-23 Justin Squirek <squirek@adacore.com> 10259 10260 * sem_eval.adb (Eval_Integer_Literal): Add special 10261 case to avoid optimizing out check if the literal appears in 10262 an if-expression. 10263 102642017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10265 10266 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not 10267 allow an 'Address clause to be specified on a prefix of a 10268 class-wide type. 10269 102702017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10271 10272 * checks.adb (Insert_Valid_Check): Ensure that the prefix of 10273 attribute 'Valid is a renaming of the original expression when 10274 the expression denotes a name. For all other kinds of expression, 10275 use a constant to capture the value. 10276 * exp_util.adb (Is_Name_Reference): Moved to Sem_Util. 10277 * sem_util.ads, sem_util.adb (Is_Name_Reference): Moved from Exp_Util. 10278 102792017-01-23 Justin Squirek <squirek@adacore.com> 10280 10281 * sem_eval.adb (Eval_Integer_Literal): Add special 10282 case to avoid optimizing out check if the literal appears in 10283 an if-expression. 10284 102852017-01-23 Ed Schonberg <schonberg@adacore.com> 10286 10287 * sem_ch4.adb (Try_Primitive_Operations, 10288 Is_Valid_First_Argument_Of): argument is valid if it is a derived 10289 type with unknown discriminants that matches its underlying 10290 record view. 10291 * exp_util.adb (Expand_Subtype_From_Expr): Do not expand 10292 expression if its type is derived from a limited type with 10293 unknown discriminants, because the expansion (which is a call) 10294 must be expanded in the enclosing context to add the proper build- 10295 in-place parameters to the call. 10296 * lib.ads, exp_ch9.adb: Minor fixes in comments. 10297 102982017-01-23 Yannick Moy <moy@adacore.com> 10299 10300 * frontend.adb (Frontend): Do not load runtime 10301 unit for GNATprove when parsing failed. 10302 * exp_ch9.adb: minor removal of extra whitespace 10303 * exp_ch6.adb: minor typo in comment 10304 * sem_util.adb: Code cleanup. 10305 * exp_ch9.ads, par-ch2.adb: minor style fixes in whitespace and comment 10306 * a-ngcefu.adb: minor style fix in whitespace 10307 103082017-01-23 Thomas Quinot <quinot@adacore.com> 10309 10310 * scos.ads: Document usage of 'd' as default SCO kind for 10311 declarations. 10312 * par_sco.adb (Traverse_Declarations_Or_Statements. 10313 Traverse_Degenerate_Subprogram): New supporting routine for expression 10314 functions and null procedures. 10315 (Traverse_Declarations_Or_Statements.Traverse_One): Add 10316 N_Expression_Function to the subprogram case; add required 10317 support for null procedures and expression functions. 10318 103192017-01-23 Bob Duff <duff@adacore.com> 10320 10321 * namet.ads (Bounded_String): Decrease the size of type 10322 Bounded_String to avoid running out of stack space. 10323 * namet.ads (Append): Don't ignore buffer overflow; raise 10324 Program_Error instead. 10325 103262017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10327 10328 * exp_ch5.adb, freeze.adb, par-ch4.adb, scng.adb, sem_ch13.adb, 10329 sem_ch3.adb, sem_ch5.adb, sem_ch5.ads, sem_util.adb, sinfo.ads: Minor 10330 reformatting. 10331 * exp_ch9.adb: minor style fix in comment. 10332 103332017-01-23 Ed Schonberg <schonberg@adacore.com> 10334 10335 * sem_ch4.adb (Analyze_Allocator): Handle properly a type derived 10336 for a limited record extension with unknown discriminants whose 10337 full view has no discriminants. 10338 103392017-01-23 Yannick Moy <moy@adacore.com> 10340 10341 * exp_spark.adb: Alphabetize with clauses. 10342 103432017-01-23 Yannick Moy <moy@adacore.com> 10344 10345 * sem_util.adb (Has_Enabled_Property): Treat 10346 protected objects and variables differently from other variables. 10347 103482017-01-23 Thomas Quinot <quinot@adacore.com> 10349 10350 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): 10351 Split original Ada 95 part off into new subprogram 10352 below. Call that subprogram (instead of proceeding with 10353 AI95-0133 behaviour) if debug switch -gnatd.p is in use. 10354 (Adjust_Record_For_Reverse_Bit_Order_Ada_95): ... new subprogram 10355 * debug.adb Document new switch -gnatd.p 10356 * freeze.adb (Freeze_Entity.Freeze_Record_Type): Do not adjust 10357 record for reverse bit order if an error has already been posted 10358 on the record type. This avoids generating extraneous "info:" 10359 messages for illegal code. 10360 103612017-01-23 Justin Squirek <squirek@adacore.com> 10362 10363 * sem_ch3.adb (Analyze_Declarations): Correct comments 10364 * freeze.adb (Find_Constant): Add detection of deferred constants 10365 so they are not incorrectly flagged as premature. 10366 103672017-01-23 Ed Schonberg <schonberg@adacore.com> 10368 10369 * scans.ads: New token At_Sign. Remove '@' from list of illegal 10370 characters for future version of the language. '@' is legal name. 10371 * scng.ads, scng.adb (Scan): Handle '@' appropriately. 10372 * scn.adb (Scan_Reserved_Identifier): An occurrence of '@' 10373 denotes a Target_Name. 10374 * par-ch4.adb (P_Name, P_Primary): Handle Target_Name. 10375 * sinfo.ads, sinfo.adb (N_Target_Name): New non-terminal node. 10376 (Has_Target_Names): New flag on N_Assignment_Statement, to 10377 indicate that RHS has occurrences of N_Target_Name. 10378 * sem.adb: Call Analyze_Target_Name. 10379 * sem_ch5.ads, sem_ch5.adb (Analyze_Target_Name): New subpogram. 10380 (urrent_LHS): Global variable that denotes LHS of assignment, 10381 used in the analysis of Target_Name nodes. 10382 * sem_res.adb (Resolve_Target_Name): New procedure. 10383 * exp_ch5.adb (Expand_Assign_With_Target_Names): (AI12-0125): 10384 N is an assignment statement whose RHS contains occurences of @ 10385 that designate the value of the LHS of the assignment. If the 10386 LHS is side-effect free the target names can be replaced with 10387 a copy of the LHS; otherwise the semantics of the assignment 10388 is described in terms of a procedure with an in-out parameter, 10389 and expanded as such. 10390 (Expand_N_Assignment_Statement): Call 10391 Expand_Assign_With_Target_Names when needed. 10392 * exp_util.adb (Insert_Actions): Take into account N_Target_Name. 10393 * sprint.adb: Handle N_Target_Name. 10394 103952017-01-23 Eric Botcazou <ebotcazou@adacore.com> 10396 10397 * checks.adb: Minor fix in comment. 10398 103992017-01-23 Philippe Gil <gil@adacore.com> 10400 10401 * g-debpoo.adb (Do_Report) remove freed chunks from chunks 10402 count in Sort = Memory_Usage or Allocations_Count 10403 104042017-01-23 Justin Squirek <squirek@adacore.com> 10405 10406 * sem_ch3.adb: Code cleanup. 10407 104082017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10409 10410 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Move all global 10411 variables to the local variable section. Update the profile 10412 of various nested routine that previously had visibility 10413 of those globals. One the matching phase has completed, 10414 remove certain classes of clauses which are considered noise. 10415 (Check_Dependency_Clause): Properly detect a match between two 10416 'Result attributes. Update the various post-match cases to use 10417 Is_Already_Matched as this routine now automatically recognizes 10418 a previously matched 'Result attribute. 10419 (Is_Already_Matched): New routine. 10420 (Remove_Extra_Clauses): New routine. 10421 (Report_Extra_Clauses): Remove the detection of ... => null 10422 clauses as this is now done in Remove_Extra_Clauses. 10423 104242017-01-23 Ed Schonberg <schonberg@adacore.com> 10425 10426 * sem_aggr.adb (Resolve_Array_Aggregate): In ASIS mode do not 10427 report on spurious overlaps between values involving a subtype 10428 with a static predicate, because the expansion of such a subtype 10429 into individual ranges in inhibited in ASIS mode. 10430 104312017-01-23 Justin Squirek <squirek@adacore.com> 10432 10433 * sem_ch3.adb (Analyze_Declarations): Add detection 10434 of an edge case and delay freezing if it is present. 10435 104362017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10437 10438 * sem_ch3.adb, exp_spark.adb, exp_attr.adb, sem_ch9.adb, sem_prag.adb, 10439 sem_util.adb, sem_warn.adb, exp_ch3.adb: Minor reformatting. 10440 104412017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10442 10443 * freeze.adb (Freeze_Subprogram): Ensure that all anonymous 10444 access-to-subprogram types inherit the convention of the 10445 associated subprogram. (Set_Profile_Convention): New routine. 10446 * sem_ch6.adb (Check_Conformance): Do not compare the conventions 10447 of the two entities directly, use Conventions_Match to account 10448 for anonymous access-to-subprogram and subprogram types. 10449 (Conventions_Match): New routine. 10450 104512017-01-23 Claire Dross <dross@adacore.com> 10452 10453 * exp_spark.adb (Expand_SPARK_Attribute_Reference): For attributes 10454 which return Universal_Integer, force the overflow check flag for 10455 Length and Range_Length for types as big as Long_Long_Integer. 10456 104572017-01-23 Claire Dross <dross@adacore.com> 10458 10459 * exp_spark.adb (Expand_SPARK_Attribute_Reference): For 10460 attributes which return Universal_Integer, introduce a conversion 10461 to the expected type with the appropriate check flags set. 10462 * sem_res.adb (Resolve_Range): The higher bound can be in Typ's 10463 base type if the range is null. It may still be invalid if it 10464 is higher than the lower bound. This is checked later in the 10465 context in which the range appears. 10466 104672017-01-23 Pierre-Marie de Rodat <derodat@adacore.com> 10468 10469 * scos.ads: Introduce a constant to represent ignored 10470 dependencies in SCO_Unit_Table_Entry. 10471 104722017-01-23 Hristian Kirtchev <kirtchev@adacore.com> 10473 10474 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Remove extra 10475 spaces from error messages. 10476 104772017-01-23 Ed Schonberg <schonberg@adacore.com> 10478 10479 * exp_ch3.adb (Check_Large_Modular_Array): New procedure, 10480 subsidiary to Expand_N_Object_ Declaration, to compute a guard on 10481 an object declaration for an array type with a modular index type 10482 with the size of Long_Long_Integer. Special processing is needed 10483 in this case to compute reliably the size of the object, and 10484 eventually to raise Storage_Error, when wrap-around arithmetic 10485 might compute a meangingless size for the object. 10486 104872017-01-23 Justin Squirek <squirek@adacore.com> 10488 10489 * a-wtenau.adb, par-endh.adb, sem_prag.adb, 10490 sem_type.adb: Code cleanups. 10491 104922017-01-23 Bob Duff <duff@adacore.com> 10493 10494 * sem_res.adb (Resolve_Call): In the part of the code where 10495 it is deciding whether to turn the call into an indexed 10496 component, avoid doing so if the call is to an instance of 10497 Unchecked_Conversion. Otherwise, the compiler turns it into an 10498 indexed component, and resolution of that turns it back into a 10499 function call, and so on, resulting in infinite recursion. 10500 * sem_util.adb (Needs_One_Actual): If the first formal has a 10501 default, then return False. 10502 105032017-01-21 Eric Botcazou <ebotcazou@adacore.com> 10504 10505 * sem_eval.adb (Compile_Time_Compare): Reinstate the expr+literal (etc) 10506 optimizations when the type is modular and the offsets are equal. 10507 105082017-01-20 Thomas Quinot <quinot@adacore.com> 10509 10510 * sem_warn.adb (Warn_On_Useless_Assignment): Adjust wording of warning 10511 message. 10512 105132017-01-20 Nicolas Roche <roche@adacore.com> 10514 10515 * terminals.c: Ignore failures on setpgid and tcsetpgrp commands. 10516 105172017-01-20 Bob Duff <duff@adacore.com> 10518 10519 * sem_eval.adb (Compile_Time_Compare): Disable the expr+literal 10520 (etc) optimizations when the type is modular. 10521 105222017-01-20 Yannick Moy <moy@adacore.com> 10523 10524 * sem_ch6.adb (Move_Pragmas): move some pragmas, 10525 but copy the SPARK_Mode pragma instead of moving it. 10526 (Build_Subprogram_Declaration): Ensure that the generated spec 10527 and original body share the same SPARK_Pragma aspect/pragma. 10528 * sem_util.adb, sem_util.ads (Copy_SPARK_Mode_Aspect): New 10529 procedure to copy SPARK_Mode aspect. 10530 105312017-01-20 Bob Duff <duff@adacore.com> 10532 10533 * sem_ch3.adb (Analyze_Declarations): Disable Resolve_Aspects 10534 even in ASIS mode. 10535 * sem_ch13.adb (Resolve_Name): Enable setting the entity to 10536 Empty even in ASIS mode. 10537 105382017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10539 10540 * exp_ch9.adb: minor style fixes in comments. 10541 * sem_ch9.adb (Analyze_Delay_Relative): in GNATprove mode a delay 10542 relative statement introduces an implicit dependency on 10543 Ada.Real_Time.Clock_Time. 10544 * sem_util.adb: Minor reformatting. 10545 105462017-01-20 Ed Schonberg <schonberg@adacore.com> 10547 10548 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect Alignment 10549 must be treated as delayed aspect even if the expression is 10550 a literal, because the aspect affects the freezing and the 10551 elaboration of the object to which it applies. 10552 105532017-01-20 Tristan Gingold <gingold@adacore.com> 10554 10555 * s-osinte-vxworks.ads (Interrup_Range): New subtype. 10556 105572017-01-20 Ed Schonberg <schonberg@adacore.com> 10558 10559 * lib-xref.adb (Generate_Reference): Do not warn about the 10560 presence of a pragma Unreferenced if the entity appears as the 10561 actual in a procedure call that does not come from source. 10562 105632017-01-20 Pascal Obry <obry@adacore.com> 10564 10565 * expect.c, terminals.c: Fix some warnings about unused variables. 10566 * gsocket.h, adaint.c, adaint.h: Fix some more warnings in the C part 10567 of the runtime. 10568 105692017-01-20 Bob Duff <duff@adacore.com> 10570 10571 * exp_attr.adb (Constrained): Apply an access check (check that 10572 the prefix is not null) when the prefix denotes an object of an 10573 access type; that is, when there is an implicit dereference. 10574 105752017-01-20 Gary Dismukes <dismukes@adacore.com> 10576 10577 * s-rident.ads (constant Profile_Info): Remove 10578 No_Calendar from GNAT_Extended_Ravenscar restrictions. 10579 105802017-01-20 Tristan Gingold <gingold@adacore.com> 10581 10582 * s-maccod.ads: Add pragma No_Elaboration_Code_All 10583 105842017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10585 10586 * ghost.adb (Mark_Ghost_Clause): New routine. 10587 (Prune_Node): Do not prune compilation unit nodes. 10588 (Remove_Ignored_Ghost_Code): Prune the compilation unit node directly. 10589 This does not touch the node itself, but does prune all its fields. 10590 * ghost.ads (Mark_Ghost_Clause): New routine. 10591 * sem_ch8.adb (Analyze_Use_Package): Emit an error when a use 10592 package clause mentions Ghost and non-Ghost packages. Mark a 10593 use package clause as Ghost when it mentions a Ghost package. 10594 (Analyze_Use_Type): Emit an error when a use type clause mentions 10595 Ghost and non-Ghost types. Mark a use type clause as Ghost when 10596 it mentions a Ghost type. 10597 * sem_ch10.adb (Analyze_With_Clause): Mark a with clause as 10598 Ghost when it withs a Ghost unit. 10599 106002017-01-20 Javier Miranda <miranda@adacore.com> 10601 10602 * sem_res.adb (Resolve_Call): If a function call 10603 returns a limited view of a type and at the point of the call the 10604 function is not declared in the extended main unit then replace 10605 it with the non-limited view, which must be available. If the 10606 called function is in the extended main unit then no action is 10607 needed since the back-end handles this case. 10608 106092017-01-20 Eric Botcazou <ebotcazou@adacore.com> 10610 10611 * sem_ch7.adb (Contains_Subp_Or_Const_Refs): Rename into... 10612 (Contains_Subprograms_Refs): ...this. Adjust comment 10613 for constants. (Is_Subp_Or_Const_Ref): Rename into... 10614 (Is_Subprogram_Ref): ...this. 10615 (Has_Referencer): Rename Has_Non_Subp_Const_Referencer variable into 10616 Has_Non_Subprograms_Referencer and adjust comment. Remove 10617 incorrect shortcut for package declarations and bodies. 10618 106192017-01-20 Ed Schonberg <schonberg@adacore.com> 10620 10621 * sem_ch3.adb (Complete_Private_Subtype): If the scope of the 10622 base type differs from that of the completion and the private 10623 subtype is an itype (created for a constraint on an access 10624 type e.g.), set Delayed_Freeze on both to prevent out-of-scope 10625 anomalies in gigi. 10626 106272017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10628 10629 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): 10630 When inheriting the SPARK_Mode of a prior expression function, 10631 look at the properly resolved entity rather than the initial 10632 candidate which may denote a homonym. 10633 106342017-01-20 Ed Schonberg <schonberg@adacore.com> 10635 10636 * sem_prag.adb (Rewrite_Assertion_Kind): If the name is 10637 Precondition or Postcondition, and the context is pragma 10638 Check_Policy, indicate that this Pre-Ada2012 usage is deprecated 10639 and suggest the standard names Assertion_Policy /Pre /Post 10640 instead. 10641 106422017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10643 10644 * sem_ch10.adb, sem_cat.adb: Minor reformatting. 10645 106462017-01-20 Javier Miranda <miranda@adacore.com> 10647 10648 * sem_ch3.adb (Access_Type_Declaration): Protect access to the 10649 Entity attribute. 10650 * sem_ch10.adb (Install_Siblings): Skip processing malformed trees. 10651 * sem_cat.adb (Validate_Categoriztion_Dependency): Skip processing 10652 malformed trees. 10653 106542017-01-20 Ed Schonberg <schonberg@adacore.com> 10655 10656 * sem_ch13.adb (Analyze_Aspect_Specification, case 10657 Dynamic_Predicate): If the entity E is a subtype that inherits 10658 a static predicate for its parent P,, the inherited and the 10659 new predicate combine in the generated predicate function, 10660 and E only has a dynamic predicate. 10661 106622017-01-20 Tristan Gingold <gingold@adacore.com> 10663 10664 * s-boustr.ads, s-boustr.adb: New package. 10665 * Makefile.rtl: Add s-boustr. 10666 106672017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10668 10669 * inline.adb (Process_Formals): Qualify the 10670 expression of a return statement when it yields a universal type. 10671 106722017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10673 10674 * freeze.adb (Freeze_All): Freeze the default 10675 expressions of all eligible formal parameters that appear in 10676 entries, entry families, and protected subprograms. 10677 106782017-01-20 Ed Schonberg <schonberg@adacore.com> 10679 10680 * sem_ch3.adb (Check_Nonoverridable_Aspects); Refine check 10681 for illegal inherited Implicit_Dereference aspects with renamed 10682 discriminants. 10683 106842017-01-20 Javier Miranda <miranda@adacore.com> 10685 10686 * debug.adb (switch d.6): do not avoid declaring unreferenced itypes. 10687 * nlists.ads (Lock_Lists, Unlock_Lists): New subprograms. 10688 * nlists.adb (Lock_Lists, Unlock_Lists): New subprograms. 10689 (Set_First, Set_Last, Set_List_Link, Set_Next, Set_Parent, 10690 Set_Prev, Tree_Read): Adding assertion. 10691 * atree.ads (Lock_Nodes, Unlock_Nodes): New subprograms. 10692 * atree.adb (Lock_Nodes, Unlock_Nodes): New subprograms. 10693 (Set_Analyzed, Set_Check_Actuals, Set_Comes_From_Source, 10694 Set_Ekind, Set_Error_Posted, Set_Has_Aspects, 10695 Set_Is_Ignored_Ghost_Node, Set_Original_Node, Set_Paren_Count, 10696 Set_Parent, Set_Sloc, Set_Nkind, Set_FieldNN, Set_NodeNN, 10697 Set_ListNN, Set_ElistNN, Set_NameN, Set_StrN, Set_UintNN, 10698 Set_UrealNN, Set_FlagNNN, Set_NodeN_With_Parent, 10699 Set_ListN_With_Parent): Adding assertion. 10700 107012017-01-20 Ed Schonberg <schonberg@adacore.com> 10702 10703 * sem_prag.adb (Process_Convention): Diagnose properly a pragma 10704 import that applies to several homograph subprograms. when one 10705 of them is declared by a subprogram body. 10706 107072017-01-20 Justin Squirek <squirek@adacore.com> 10708 10709 * exp_ch6.adb (Expand_Call): Remove optimization 10710 that nulls out calls to null procedures. 10711 107122017-01-20 Yannick Moy <moy@adacore.com> 10713 10714 * inline.adb (Expand_Inlined_Call): Keep more 10715 precise type of actual for inlining whenever possible. In 10716 particular, do not switch to the formal type in GNATprove mode in 10717 some case where the GNAT backend might require it for visibility. 10718 107192017-01-20 Ed Schonberg <schonberg@adacore.com> 10720 10721 * sem_ch3.adb (Check_Non_Overridable_Aspects): An inherited 10722 aspect Implicit_Dereference can be inherited by a full view if 10723 the partial view has no discriminants, because there is no way 10724 to apply the aspect to the partial view. 10725 (Build_Derived_Record_Type): If derived type renames discriminants 10726 of the parent, the new discriminant inherits the aspect from 10727 the old one. 10728 * sem_ch4.adb (Analyze_Call): Handle properly a parameterless 10729 call through an access discriminant designating a subprogram. 10730 * sem_ch5.adb (Analyze_Assignment): (Analyze_Call): Handle 10731 properly a parameterless call through an access discriminant on 10732 the left-hand side of an assignment. 10733 * sem_res.adb (resolve): If an interpreation involves a 10734 discriminant with an implicit dereference and the expression is an 10735 entity, resolution takes place later in the appropriate routine. 10736 * sem_ch13.adb (Analyze_Aspect_Implicit_Dereference): Recognize 10737 access discriminants that designate a subprogram type. 10738 107392017-01-20 Pascal Obry <obry@adacore.com> 10740 10741 * a-locale.adb, a-locale.ads: Update Ada.Locales for RM 2012 COR:1:2016 10742 107432017-01-20 Yannick Moy <moy@adacore.com> 10744 10745 * sem_ch10.adb (Check_No_Elab_Code_All): Do not issue an error 10746 on implicitly with'ed units in GNATprove mode. 10747 * sinfo.ads (Implicit_With): Document use of flag for implicitly 10748 with'ed units in GNATprove mode. 10749 107502017-01-20 Ed Schonberg <schonberg@adacore.com> 10751 10752 * sem_cat.adb (Validate_Static_Object_Name): In a preelaborated 10753 unit Do not report an error on a non-static entity that appears 10754 in the context of a spec expression, such as an aspect expression. 10755 107562017-01-20 Hristian Kirtchev <kirtchev@adacore.com> 10757 10758 * einfo.adb: Flag298 now denotes Is_Underlying_Full_View. 10759 (Is_Underlying_Full_View): New routine. 10760 (Set_Is_Underlying_Full_View): New routine. 10761 (Write_Entity_Flags): Add an entry for Is_Underlying_Full_View. 10762 * einfo.ads Add new attribute Is_Underlying_Full_View. 10763 (Is_Underlying_Full_View): New routine along with pragma Inline. 10764 (Set_Is_Underlying_Full_View): New routine along with pragma Inline. 10765 * exp_util.adb (Build_DIC_Procedure_Body): Do not consider 10766 class-wide types and underlying full views. The first subtype 10767 is used as the working type for all Itypes, not just array base types. 10768 (Build_DIC_Procedure_Declaration): Do not consider 10769 class-wide types and underlying full views. The first subtype 10770 is used as the working type for all Itypes, not just array 10771 base types. 10772 * freeze.adb (Freeze_Entity): Inherit the freeze node of a full 10773 view or an underlying full view without clobbering the attributes 10774 of a previous freeze node. 10775 (Inherit_Freeze_Node): New routine. 10776 * sem_ch3.adb (Build_Derived_Private_Type): Mark an underlying 10777 full view as such. 10778 (Build_Underlying_Full_View): Mark an underlying full view as such. 10779 * sem_ch7.adb (Install_Private_Declarations): Mark an underlying 10780 full view as such. 10781 107822017-01-20 Yannick Moy <moy@adacore.com> 10783 10784 * sinfo.ads: Document lack of Do_Division_Check flag 10785 on float exponentiation. 10786 107872017-01-19 Javier Miranda <miranda@adacore.com> 10788 10789 * ghost.adb (Propagate_Ignored_Ghost_Code): Protect access to the 10790 identifier attribute of a block-statement node. Required to avoid 10791 assertion failure when building the new containers library. 10792 107932017-01-19 Bob Duff <duff@adacore.com> 10794 10795 * exp_ch3.adb: Update comment. 10796 107972017-01-19 Vincent Celier <celier@adacore.com> 10798 10799 * gprep.adb (Gnatprep): Parse the definition file without 10800 "replace in comments" even when switch -C is used. 10801 108022017-01-19 Justin Squirek <squirek@adacore.com> 10803 10804 * exp_ch9.adb (Is_Pure_Barrier): Create function 10805 Is_Count_Attribute to identify an expansion of the 'Count 10806 attribute. 10807 108082017-01-19 Ed Schonberg <schonberg@adacore.com> 10809 10810 * sem_ch5.adb (Analyze_Loop_Statement): In GNATprove mode the 10811 statements within an element iterator loop are only analyzed 10812 agter the loop is rewritten. Within a generic the analysis must 10813 be performed in any case to complete name capture. 10814 108152017-01-19 Bob Duff <duff@adacore.com> 10816 10817 * sem_prag.adb (Analyze_Pragma): Check for ignored pragmas first, 10818 before checking for unrecognized pragmas. 10819 Initialize Pname on its declarations; that's always good style. 10820 108212017-01-19 Claire Dross <dross@adacore.com> 10822 10823 * exp_ch7.adb (Build_Invariant_Procedure_Body): Semi-insert the 10824 body into the tree for GNATprove by setting its Parent field. The 10825 components invariants of composite types are not checked by 10826 the composite type's invariant procedure in GNATprove mode. 10827 (Build_Invariant_Procedure_Declaration): Semi-insert the 10828 declaration into the tree for GNATprove by setting its Parent 10829 field. 10830 * freeze.adb (Freeze_Arry_Type):In GNATprove mode, do not add 10831 the component invariants to the array type invariant procedure 10832 so that the procedure can be used to check the array type 10833 invariants if any. 10834 (Freeze_Record_Type): In GNATprove mode, do 10835 not add the component invariants to the record type invariant 10836 procedure so that the procedure can be used to check the record 10837 type invariants if any. 10838 108392017-01-19 Hristian Kirtchev <kirtchev@adacore.com> 10840 10841 * lib-xref-spark_specific.adb: Minor reformatting. 10842 * exp_ch7.adb (Add_Parent_Invariants): Do not process array types. 10843 108442017-01-19 Javier Miranda <miranda@adacore.com> 10845 10846 * exp_aggr.adb (Pass_Aggregate_To_Back_End): Renamed as 10847 Build_Back_End_Aggregate. 10848 (Generate_Aggregate_For_Derived_Type): Code cleanup. 10849 (Prepend_Stored_Values): Code cleanup. 10850 108512017-01-19 Ed Schonberg <schonberg@adacore.com> 10852 10853 * sem_ch6.adb (Analyze_Expression_Function): Check for an 10854 incomplete return type after attempting to freeze it, so that 10855 other freeze actiona are generated in the proper order. 10856 108572017-01-19 Ed Schonberg <schonberg@adacore.com> 10858 10859 * sem_aggr.adb (Resolve_Aggregate): If the type is a string 10860 type, ie. a type whose component is a character type, and the 10861 aggregate is positional, do not convert into a string literal 10862 if the index type is not an integer type, because the original 10863 type may be required in an enclosing operation. 10864 108652017-01-19 Bob Duff <duff@adacore.com> 10866 10867 * binde.adb, debug.adb: Enable new elaboration order algorithm 10868 by default. -dp switch reverts to the old algorithm. 10869 108702017-01-19 Hristian Kirtchev <kirtchev@adacore.com> 10871 10872 * sem_ch3.adb Add with and use clauses for Exp_Ch7. 10873 (Analyze_Declarations): Create the DIC and Invariant 10874 procedure bodies s after all freezing has taken place. 10875 (Build_Assertion_Bodies): New routine. 10876 * sem_ch7.adb Remove the with and use clauses for Exp_Ch7 10877 and Exp_Util. 10878 (Analyze_Package_Specification): Remove the 10879 generation of the DIC and Invariant procedure bodies. This is 10880 now done by Analyze_Declarations. 10881 * sem_disp.adb (Check_Dispatching_Operation): DIC and Invariant 10882 procedures are never treated as primitives. 10883 108842017-01-19 Yannick Moy <moy@adacore.com> 10885 10886 * frontend.adb: Analyze inlined bodies and check elaboration 10887 rules in GNATprove mode too. 10888 * sem_elab.adb (Delay_Element): Add Boolean component to save 10889 indication that call is in SPARK code. (Check_Elab_Calls): 10890 Check elaboration rules in GNATprove mode, and correctly set 10891 the current value of SPARK_Mode. 10892 * lib-xref-spark_specific.adb 10893 (Add_SPARK_Xrefs): Simplify iteration over dereferences. 10894 108952017-01-19 Ed Schonberg <schonberg@adacore.com> 10896 10897 * exp_ch4.adb (Expand_Concatenate): Do no enable overflow 10898 checks on the expression for the high bound of concatenation 10899 when checks are disabled, to suppress warnings about potential 10900 constraint errors in restricted runtimes. 10901 109022017-01-19 Hristian Kirtchev <kirtchev@adacore.com> 10903 10904 * exp_ch3.adb (Expand_Freeze_Enumeration_Type): Mark the 10905 representation-to-position function as inlined. 10906 * sem_cat.adb (Set_Categorization_From_Scope): Do not modify 10907 the purity of an internally generated entity if it has been 10908 explicitly marked as pure for optimization purposes. 10909 * exp_aggr.adb: Minor reformatting. 10910 109112017-01-19 Javier Miranda <miranda@adacore.com> 10912 10913 * exp_ch6.adb (Expand_Call): Remove side effects on 10914 actuals that are allocators with qualified expression since the 10915 initialization of the object is performed by means of individual 10916 statements (and hence it must be done before the call). 10917 109182017-01-19 Ed Schonberg <schonberg@adacore.com> 10919 10920 * sem_ch3.adb (Analyze_Declarations): Minor reformatting. 10921 (Build_Derived_Enumeration_Type): If the derived type inherits a 10922 dynamic predicate from its parent, the bounds of the type must 10923 freeze because an explicit constraint is constructed for the 10924 type and the corresponding range is elaborated now. 10925 109262017-01-19 Arnaud Charlet <charlet@adacore.com> 10927 10928 * sem_attr.ads: minor fix of inconsistent casing in comment 10929 * lib-writ.ads: minor align comments in columns 10930 * sem_ch3.adb: Minor reformatting. 10931 * spark_xrefs.ads: minor fix typo in SPARK-related comment 10932 * table.ads: minor style fix in comment 10933 * lib-xref-spark_specific.adb 10934 (Add_SPARK_Xrefs): simplify processing of SPARK cross-references. 10935 * sem_ch12.adb: minor whitespace fix 10936 * freeze.adb: Add comment. 10937 * sem_util.adb (Unique_Name): for instances of 10938 generic subprograms ignore the name of the wrapper package. 10939 109402017-01-19 Javier Miranda <miranda@adacore.com> 10941 10942 * exp_aggr.adb (Resolve_Record_Aggregate): 10943 Factorize code needed for aggregates of limited and unlimited 10944 types in a new routine. 10945 (Pass_Aggregate_To_Back_End): New subprogram. 10946 109472017-01-19 Yannick Moy <moy@adacore.com> 10948 10949 * sinfo.adb (Pragma_Name): Only access up to Last_Pair of Pragma_Map. 10950 109512017-01-19 Ed Schonberg <schonberg@adacore.com> 10952 10953 * sem_ch4.ads, sem_ch4.adb (Try_Object_Operation): Make subprogram 10954 public, for use elsewhere. 10955 * sem_ch6.adb (Analyze_Procedure_Call): In SPARK_Mode and within 10956 an Inlined_body, recognize a call that uses object notation 10957 and has not been rewritten as a regular call because regular 10958 expansion has not taken place. 10959 109602017-01-19 Bob Duff <duff@adacore.com> 10961 10962 * checks.adb (Apply_Type_Conversion_Checks): Disable small optimization 10963 in case of generic formal discrete types, because it causes crashes in 10964 the compiler when built with assertions on. 10965 109662017-01-19 Hristian Kirtchev <kirtchev@adacore.com> 10967 10968 * lib-xref-spark_specific.adb, sem_util.adb, sem_util.ads, 10969 sem_ch4.adb, sem_ch8.adb, lib-xref.ads: Minor reformatting. 10970 109712017-01-19 Bob Duff <duff@adacore.com> 10972 10973 * bcheck.adb (Check_Consistent_Dynamic_Elaboration_Checking): 10974 Increment Warnings_Detected. It was decrementing, which is 10975 wrong since we just issued a warning message. 10976 * binderr.ads (Errors_Detected, Warnings_Detected): Declare 10977 these variables to be of subtype Nat instead of Int, because 10978 they should never be negative. 10979 109802017-01-19 Javier Miranda <miranda@adacore.com> 10981 10982 * contracts.adb (Build_Postconditions_Procedure): Replace 10983 Generate_C_Code by Modify_Tree_For_C. 10984 * exp_aggr.adb (Build_Record_Aggr_Code, Expand_Array_Aggregate): 10985 Replace Generate_C_Code by Modify_Tree_For_C. 10986 * exp_attr.adb (Float_Valid, Is_GCC_Target): Replace Generate_C_Code by 10987 Modify_Tree_For_C. 10988 * exp_ch11.adb (Expand_N_Exception_Declaration): Replace 10989 Generate_C_Code by Modify_Tree_For_C. 10990 * exp_ch4.adb (Expand_Allocator_Expression): Replace 10991 Generate_C_Code by Modify_Tree_For_C. 10992 * exp_dbug.adb (Qualify_Entity_Name): Replace Generate_C_Code 10993 by Modify_Tree_For_C. 10994 * exp_util.adb (Remove_Side_Effects, Side_Effect_Free): Replace 10995 Generate_C_Code by Modify_Tree_For_C. 10996 * sem_res.adb (Resolve_Type_Conversion): Replace Generate_C_Code 10997 by Modify_Tree_For_C. 10998 * sinfo.ads (Modify_Tree_For_C): Adding documentation. 10999 110002017-01-19 Javier Miranda <miranda@adacore.com> 11001 11002 * sem_util.ads, sem_util.adb (Expression_Of_Expression_Function): New 11003 subprogram. 11004 (Is_Inlinable_Expression_Function): New subprogram. 11005 * exp_ch6.ads, exp_ch6.adb (Expression_Of_Expression_Function): Moved 11006 to Sem_Util. 11007 (Is_Inlinable_Expression_Function): Moved to Sem_Util. 11008 110092017-01-19 Ed Schonberg <schonberg@adacore.com> 11010 11011 * sem_ch4.adb (Diagnose_Call): Improve error message when a 11012 selected component has a prefix that might be interpreted 11013 as a parameterless function call, but none of the candidate 11014 interpretations is parameterless, and there is a hidden homonym 11015 of the prefix that is a package. 11016 * sem_ch8.adb (Find_Selected_Component): If the prefix might be 11017 interpreted as a parameterless function call and its analysis 11018 fails, do not call Analyze_Selected_Component. 11019 110202017-01-19 Steve Baird <baird@adacore.com> 11021 11022 * sem_util.ads: Add new Use_Full_View Boolean parameter to 11023 Get_Index_Bounds. 11024 * sem_util.adb (Get_Index_Bounds): replace calls to Scalar_Range with 11025 calls to a newly-defined Scalar_Range_Of_Right_View function. 11026 110272017-01-19 Arnaud Charlet <charlet@adacore.com> 11028 11029 * gnat1drv.adb: minor fix of unbalanced parens in comment 11030 * lib-xref.ads (Traverse_Compilation_Unit): declaration moved 11031 to visible part of the package to allow re-use in GNATprove. 11032 * lib-xref-spark_specific.adb (Traverse_Stub): routine refactored 11033 from repeated code of Traverse_Compilation_Unit. 11034 (Traverse_Declaration_Or_Statement): fixed detection of 11035 generic subprograms and packages; also, iteration over case 11036 statement alternatives rewritten to avoid testing if the first 11037 alternative is present (since it must be present due to Ada 11038 syntax restrictions). 11039 110402017-01-19 Hristian Kirtchev <kirtchev@adacore.com> 11041 11042 * exp_ch6.adb (Expand_N_Subprogram_Body): Mark the spec as 11043 returning by reference not just for subprogram body stubs, 11044 but for all subprogram cases. 11045 * sem_util.adb: Code reformatting. 11046 (Requires_Transient_Scope): Update the call to Results_Differ. 11047 (Results_Differ): Update the parameter profile and the associated 11048 comment on usage. 11049 110502017-01-19 Ed Schonberg <schonberg@adacore.com> 11051 11052 * sem_dim.adb (Analyze_Dimension): Analyze object declaration and 11053 identifier nodes that do not come from source, to handle properly 11054 dimensionality check within an inlined body which inclddes both 11055 original operands and rewritten operands. This removes spurious 11056 dimensionality errors in the presence of front-end inlining, 11057 as well as in SPARK mode. 11058 110592017-01-16 Jakub Jelinek <jakub@redhat.com> 11060 11061 PR driver/49726 11062 * gcc-interface/lang.opt (gant, gnatO, gnat): Add Driver flag. 11063 110642017-01-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 11065 11066 * gcc-interface/Makefile.in (SPARC/Solaris): Fix typo. 11067 110682017-01-13 Arnaud Charlet <charlet@adacore.com> 11069 11070 * doc/gnat_ugn/getting_started_with_gnat.rst, 11071 doc/gnat_ugn/inline_assembler.rst, 11072 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 11073 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, 11074 doc/gnat_ugn/about_this_guide.rst, 11075 doc/gnat_ugn/platform_specific_information.rst, 11076 doc/gnat_ugn/example_of_binder_output.rst, 11077 doc/gnat_ugn/gnat_and_program_execution.rst, 11078 doc/gnat_ugn/gnat_utility_programs.rst, 11079 doc/gnat_ugn/the_gnat_compilation_model.rst, 11080 doc/gnat_rm/implementation_defined_attributes.rst, 11081 doc/gnat_rm/compatibility_and_porting_guide.rst, 11082 doc/gnat_rm/standard_library_routines.rst, 11083 doc/gnat_rm/standard_and_implementation_defined_restrictions.rst, 11084 doc/gnat_rm/implementation_defined_pragmas.rst, 11085 doc/gnat_rm/the_gnat_library.rst, 11086 doc/gnat_rm/obsolescent_features.rst, 11087 doc/gnat_rm/about_this_guide.rst, 11088 doc/gnat_rm/the_implementation_of_standard_i_o.rst, 11089 doc/gnat_rm/implementation_of_ada_2012_features.rst, 11090 doc/gnat_rm/interfacing_to_other_languages.rst, 11091 doc/gnat_rm/implementation_defined_aspects.rst, 11092 doc/gnat_rm.rst: Update documentation. 11093 * gnat_rm.texi, gnat_ugn.texi: Regenerated. 11094 110952017-01-13 Ed Schonberg <schonberg@adacore.com> 11096 11097 * einfo.ads: minor grammar fixes in comment of Normalized_Position_Max. 11098 * scil_ll.adb: Minor style fix in comment. 11099 * sem_ch8.adb (Analyze_Expanded_Name): Perform dimension analysis 11100 even if entity is already set, because the node may be renalyzed 11101 after inlining transformations. 11102 111032017-01-13 Javier Miranda <miranda@adacore.com> 11104 11105 * sem_res.adb (Resolve_Call): Do not establish a transient scope 11106 for a call to inlinable expression function (since the call will 11107 be replaced by its returned object). 11108 * exp_ch6.ads (Is_Inlinable_Expression_Function): New subprogram. 11109 * exp_ch6.adb (Expression_Of_Expression_Function): New subprogram. 11110 (Expand_Call): For inlinable expression function call replace the 11111 call by its returned object. 11112 (Is_Inlinable_Expression_Function): New subprogram. 11113 111142017-01-13 Gary Dismukes <dismukes@adacore.com> 11115 11116 * checks.adb: Minor typo fix and reformatting. 11117 111182017-01-13 Javier Miranda <miranda@adacore.com> 11119 11120 * contracts.adb (Contract_Only_Subprograms): Remove formal. 11121 (Copy_Original_Specification): Removed. 11122 (Skip_Contract_Only_Subprogram): Move here checks previously 11123 located in the caller of this routine (to leave the code more clean). 11124 (Build_Contract_Only_Subprogram): Code cleanup. 11125 * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): Removed. 11126 (Get_Contract_Only_Missing_Body_Name): Removed. 11127 111282017-01-13 Javier Miranda <miranda@adacore.com> 11129 11130 * sem_ch6.adb (Cloned_Expression): New subprogram. 11131 (Freeze_Expr_Types): Complete previous patch since the expression 11132 of an expression-function may have iterators and loops with 11133 defining identifiers which, as part of the preanalysis of the 11134 expression, may be left decorated with itypes that will not be 11135 available in the tree passed to the backend. 11136 111372017-01-13 Ed Schonberg <schonberg@adacore.com> 11138 11139 * checks.adb (Apply_Type_Conversion_Checks): Optimize a type 11140 conversion to Integer of an expression that is an attribute 11141 reference 'Pos on an enumeration type. 11142 111432017-01-13 Bob Duff <duff@adacore.com> 11144 11145 * atree.ads: Minor comment fix. 11146 111472017-01-13 Justin Squirek <squirek@adacore.com> 11148 11149 * sem_ch6.adb (Check_Aggregate_Accessibility): Ignore function 11150 calls in accessibility check on return statement. 11151 111522017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11153 11154 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): 11155 Ensure that the input body is a subprogram body before trying to 11156 determine whether it denoted an expression function. Note that 11157 subprogram body stubs cannot denote expression functions. 11158 111592017-01-13 Gary Dismukes <dismukes@adacore.com> 11160 11161 * bindgen.adb, sem_ch6.adb, binde.adb, exp_ch3.adb: Minor reformatting 11162 and typo fixes. 11163 111642017-01-13 Javier Miranda <miranda@adacore.com> 11165 11166 * einfo.ads (Component_Bit_Offset): Fix documentation. 11167 * sem_ch13.adb (Check_Record_Representation_Clause): Skip check 11168 on record holes for components with unknown compile-time offsets. 11169 111702017-01-13 Bob Duff <duff@adacore.com> 11171 11172 * ali.ads, ali.adb (Static_Elaboration_Model_Used): Remove unused flag. 11173 * g-locfil.ads: Minor comment fix. 11174 111752017-01-13 Bob Duff <duff@adacore.com> 11176 11177 * binde.adb (Elab_New): New elaboration order algorithm 11178 that is expected to cause fewer ABE issues. This is a work in 11179 progress. The new algorithm is currently disabled, and can be 11180 enable by the -dp switch, or by modifying the Do_Old and Do_New 11181 etc. flags and rebuilding. Experimental code is included to 11182 compare the results of the old and new algorithms. 11183 * binde.ads: Use GNAT.Dynamic_Tables instead of Table, so we 11184 can have multiple of these tables, so the old and new algorithms 11185 can coexist. 11186 * bindgen.ads (Gen_Output_File): Pass Elab_Order as an 'in' 11187 parameter of type array. This avoids the global variable, and 11188 allows bounds checking (which is normally defeated by the tables 11189 packages). It also ensures that the Elab_Order is read-only 11190 to Bindgen. 11191 * bindgen.adb: Pass Elab_Order as an 'in' parameter to all 11192 subprograms that need it, as above. 11193 * debug.adb: Document new -dp switch. Modify doc of old -do 11194 switch. 11195 * gnatbind.adb (Gnatbind): Make use of new interfaces to Binde 11196 and Bindgen. Move writing of closure (-R and -Ra switches) 11197 to Binde; that's more convenient. 11198 111992017-01-13 Ed Schonberg <schonberg@adacore.com> 11200 11201 * sem_ch6.adb (Analyze_Expression_Function): If the expression 11202 function is a completion, all entities referenced in the 11203 expression are frozen. As a consequence, a reference to an 11204 uncompleted private type from an enclosing scope is illegal. 11205 112062017-01-13 Javier Miranda <miranda@adacore.com> 11207 11208 * sem_ch6.adb (Freeze_Expr_Types): New subprogram. 11209 (Analyze_Subprogram_Body_Helper): At the occurrence of an 11210 expression function declaration that is a completion, its 11211 expression causes freezing (AI12-0103). 11212 112132017-01-13 Vadim Godunko <godunko@adacore.com> 11214 11215 * a-coinho-shared.adb: Fix memory leaks in Constant_Reference and 11216 Reference functions of Ada.Containers.Indefinite_Holders. 11217 112182017-01-13 Bob Duff <duff@adacore.com> 11219 11220 * s-os_lib.ads: Minor comment fixes. 11221 112222017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11223 11224 * exp_ch3.adb (Default_Initialize_Object): Do not default 11225 initialize an object when it is of a task type and restriction 11226 No_Tasking is in effect because the initialization is obsolete. 11227 * exp_ch9.adb (Build_Master_Entity): Do not generate a master when 11228 restriction No_Tasking is in effect. 11229 (Build_Master_Renaming): Do not rename a master when restriction 11230 No_Tasking is in effect. 11231 112322017-01-13 Ed Schonberg <schonberg@adacore.com> 11233 11234 * sem_aggr.adb (Resolve_Array_Aggregate): The code that verifies 11235 the legality of An others clause applies as well to a choice in 11236 an Iterated_component_ association. 11237 (Resolve_Iterated_Component_Association): An others choice 11238 is legal. 11239 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): An 11240 Iterated_Component_Association is not static. 11241 112422017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11243 11244 * exp_ch3.adb (Freeze_Type): Mark the Ghost mode as set in case 11245 control is passed to the expresion handler before the new mode 11246 is set. 11247 * sem_ch12.adb (Analyze_Package_Instantiation, 11248 Analyze_Subprogram_Instantiation): Mark the Ghost mode as set 11249 in case control is passed to the expresion handler before the 11250 new mode is set. 11251 112522017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11253 11254 * sem_aggr.adb, sem_ch3.adb, inline.adb, sem_util.adb, exp_ch4.adb, 11255 exp_aggr.adb: Minor reformatting. 11256 112572017-01-13 Gary Dismukes <dismukes@adacore.com> 11258 11259 * inline.adb: Minor reformatting and typo fix. 11260 112612017-01-13 Ed Schonberg <schonberg@adacore.com> 11262 11263 * sem_util.ads, sem_util.adb (Choice_List): Move function here 11264 from sem_aggr.adb, for use elsewhere. 11265 * sem_ch3.adb (Analyze_Object_Declaration): Use Choice_List. 11266 * sem_aggr.adb (Resolve_Array_Aggregate): Remove 11267 Iterated_Component_Present. 11268 * exp_aggr.adb: Use Choice_List throughout, to handle 11269 Iterated_Component_Associations. 11270 (Gen_Loop): Generate proper loop for an 11271 Iterated_Component_Association: loop variable has the identifier 11272 of the original association. Generate a loop even for a single 11273 component choice, in order to make loop parameter visible in 11274 expression. 11275 (Flatten): An Iterated_Component_Association is not static. 11276 112772017-01-13 Yannick Moy <moy@adacore.com> 11278 11279 * exp_ch4.adb (Expand_N_Op_Expon): Ensure that the value of 11280 float exponentiation for statically known small negative values 11281 is the reciprocal of the exponentiation for the opposite value 11282 of the exponent. 11283 * s-exnllf.adb (Exn_Float, Exn_Long_Float, Exn_Long_Long_Float): 11284 Ensure that the value of float exponentiation for negative values 11285 is the reciprocal of the exponentiation for the opposite value 11286 of the exponent. 11287 * inline.adb (Expand_Inlined_Call): Fix the count 11288 for the number of generated gotos. 11289 112902017-01-13 Yannick Moy <moy@adacore.com> 11291 11292 * inline.adb: Code cleanup. 11293 * sem_util.adb (Is_OK_Volatile_Context): Add 11294 expression in delay statement as OK for volatile context. 11295 112962017-01-13 Ed Schonberg <schonberg@adacore.com> 11297 11298 * sem_aggr.adb (Resolve_Array_Aggregate): In normal compilation 11299 mode a choice that is a subtype with a static predicate is 11300 replaced by the values it covers. This transformation must not 11301 be performed in ASIS mode, to preserve the source for analysis. 11302 113032017-01-13 Justin Squirek <squirek@adacore.com> 11304 11305 * nlists.ads: Correct minor typo. 11306 113072017-01-13 Gary Dismukes <dismukes@adacore.com> 11308 11309 * sem_ch13.adb: Minor reformatting and typo fix. 11310 113112017-01-13 Ed Schonberg <schonberg@adacore.com> 11312 11313 * par-ch4.adb (P_Aggregate_Or_Parent_Expr): An 11314 Iterated_Component_Association is a named association in an 11315 array aggregate. 11316 * sem_aggr.adb (Resolve_Iterated_Component_Association): New 11317 procedure, subsidiary of Resolve_Array_Aggregate, to analyze 11318 and resolve the discrete choices and the expression of the 11319 new construct. 11320 * sinfo.adb, sinfo.ads: In analogy with N_Component_Association, 11321 Loop_Actions and Box_Present are attributes of 11322 N_Iterated_Component_Association nodes. Box_Present is always 11323 False in this case. 11324 * sprint.adb (Sprint_Node): An Iterated_Component_Association 11325 has a Discrete_Choices list, as specified in the RM. A 11326 Component_Association for aggregate uses instead a Choices list. 11327 We have to live with this small inconsistency because the new 11328 construct also has a defining identifier, and there is no way 11329 to merge the two node structures. 11330 113312017-01-13 Yannick Moy <moy@adacore.com> 11332 11333 * inline.adb (Remove_Aspects_And_Pragmas): Add Unused to the 11334 list of pragmas to remove. Remove pragmas from the list of 11335 statements in the body to inline. 11336 * namet.adb, namet.ads (Nam_In): New version with 12 parameters. 11337 113382017-01-13 Ed Schonberg <schonberg@adacore.com> 11339 11340 * sem_ch3.adb (Resolve_Aspects): New procedure, subsidiary of 11341 Analyze_Declarations, to analyze and resolve the expressions of 11342 aspect specifications in the current declarative list, so that 11343 the expressions have proper entity and type info. This is needed 11344 for ASIS when there is no subsequent expansion to generate this 11345 semantic information. 11346 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Use Etype of 11347 original expression, to suppress cascaded errors when expression 11348 has been constant-folded. 11349 (Resolve_Aspect_Expressions, Resolve_Name): Preserve entities in 11350 ASIS mode, because there is no subsequent expansion to decorate 11351 the tree. 11352 113532017-01-13 Yannick Moy <moy@adacore.com> 11354 11355 * inline.adb, inline.ads (Call_Can_Be_Inlined_In_GNATprove_Mode): 11356 New function to detect when a call may be inlined or not in 11357 GNATprove mode. 11358 (Expand_Inlined_Call): Ensure that a temporary 11359 is always created in the cases where a type conversion may be 11360 needed on an input parameter in GNATprove mode, so that GNATprove 11361 sees the check to perform. 11362 * sem_res.adb (Resolve_Call): In GNATprove mode, skip inlining 11363 when not applicable due to actual requiring type conversion 11364 with possible check but no temporary value can be copied for 11365 GNATprove to see the check. 11366 113672017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11368 11369 * sem_aggr.adb, par_sco.adb, s-osprim-mingw.adb, exp_ch5.adb, 11370 exp_prag.adb, sem_ch3.adb, xr_tabls.adb, lib-xref-spark_specific.adb, 11371 layout.adb, sem_dist.adb, exp_spark.adb, exp_ch7.adb, gnatcmd.adb, 11372 exp_util.adb, prj-proc.adb, sem_aux.adb, comperr.adb, g-memdum.adb, 11373 exp_attr.adb, s-intman-solaris.adb, exp_ch9.adb, make.adb, live.adb, 11374 g-sercom-linux.adb, sem_dim.adb, mlib-prj.adb, s-intman-posix.adb, 11375 sem_ch9.adb, sem_ch10.adb, prep.adb, einfo.adb, scng.adb, checks.adb, 11376 prj-strt.adb, sem_prag.adb, eval_fat.adb, sem_ch12.adb, sem.adb, 11377 a-numaux-x86.adb, a-stwifi.adb, i-cobol.adb, prj.adb, 11378 get_spark_xrefs.adb, s-tasini.adb, rtsfind.adb, freeze.adb, 11379 g-arrspl.adb, par-ch4.adb, sem_util.adb, sem_res.adb, expander.adb, 11380 sem_attr.adb, exp_dbug.adb, prj-pp.adb, a-stzfix.adb, s-interr.adb, 11381 s-wchcnv.adb, switch-m.adb, gnat1drv.adb, sinput-l.adb, stylesw.adb, 11382 contracts.adb, s-intman-android.adb, g-expect.adb, exp_ch4.adb, 11383 g-comlin.adb, errout.adb, sinput.adb, s-exctra.adb, repinfo.adb, 11384 g-spipat.adb, g-debpoo.adb, exp_ch6.adb, sem_ch4.adb, exp_ch13.adb, 11385 a-wtedit.adb, validsw.adb, pprint.adb, widechar.adb, makeutl.adb, 11386 ali.adb, set_targ.adb, sem_mech.adb, sem_ch6.adb, gnatdll.adb, 11387 get_scos.adb, g-pehage.adb, s-tratas-default.adb, gnatbind.adb, 11388 prj-dect.adb, g-socthi-mingw.adb, par-prag.adb, prj-nmsc.adb, 11389 exp_disp.adb, par-ch12.adb, binde.adb, sem_ch8.adb, 11390 s-tfsetr-default.adb, s-regexp.adb, gprep.adb, s-tpobop.adb, 11391 a-teioed.adb, sem_warn.adb, sem_eval.adb, g-awk.adb, s-io.adb, 11392 a-ztedit.adb, xoscons.adb, exp_intr.adb, sem_cat.adb, sprint.adb, 11393 g-socket.adb, exp_dist.adb, sem_ch13.adb, s-tfsetr-vxworks.adb, 11394 par-ch3.adb, treepr.adb, g-forstr.adb, g-catiio.adb, par-ch5.adb, 11395 uname.adb, osint.adb, exp_ch3.adb, prj-env.adb, a-strfix.adb, 11396 a-stzsup.adb, prj-tree.adb, s-fileio.adb: Update all eligible case 11397 statements to reflect the new style for case alternatives. Various 11398 code clean up and reformatting. 11399 114002017-01-13 Gary Dismukes <dismukes@adacore.com> 11401 11402 * exp_util.adb: Minor reformatting. 11403 114042017-01-13 Yannick Moy <moy@adacore.com> 11405 11406 * exp_spark.adb: Code cleanup. 11407 * sem_ch9.adb (Analyze_Delay_Until): Resolve 11408 expression so that calls are identified as such inside delay 11409 until. 11410 114112017-01-13 Ed Schonberg <schonberg@adacore.com> 11412 11413 * exp_util.adb (Insert_Actions): Handle Iterated_Component_Association. 11414 * par-ch3.adb (P_Discrete_Choice_List): An 11415 Iterated_Component_Association is an array aggregate component. 11416 * par-ch4.adb (P_Iterated_Component_Association): New procedure. 11417 (Is_Quantified_Expression): New function that performs a lookahead 11418 to distinguish quantified expressions from iterated component 11419 associations. 11420 (P_Aggregate_Or_Paren_Expr): Recognize iterated component 11421 associations. 11422 (P_Unparen_Cond_Case_Quant_Expression, P_Primary): Ditto. 11423 * sem.adb (Analyze): Handle Iterated_Component_Association. 11424 * sem_aggr.adb (Resolve_Array_Aggregate): Dummy handling of iterated 11425 component associations. 11426 * sinfo.ads, sinfo.adb: Entries for for 11427 N_Iterated_Component_Association and its fields. 11428 * sprint.adb (Sprint_Node_Actual): Handle 11429 N_Iterated_Component_Association. 11430 114312017-01-13 Justin Squirek <squirek@adacore.com> 11432 11433 * sem_ch12.adb (Analyze_Package_Instantiation): Move disabiling 11434 of the style check until after preanalysis of acutals. 11435 114362017-01-13 Yannick Moy <moy@adacore.com> 11437 11438 * sem_ch13.adb: Minor reformatting. 11439 * par-ch11.adb: minor style fix in whitespace 11440 * gnatbind.adb (Gnatbind): Scope of Std_Lib_File 11441 reduced to Add_Artificial_ALI_File; style fix in declaration of 11442 Text; grammar fix in comment. 11443 * osint-c.adb (Read_Library_Info): strip trailing NUL from result. 11444 * freeze.adb: Cleanup to pass pragma instead of 11445 expression to call. 11446 * exp_spark.adb (Expand_SPARK_Attribute_Reference): New procedure to 11447 replace System'To_Address by equivalent call. 11448 114492017-01-13 Arnaud Charlet <charlet@adacore.com> 11450 11451 * bindusg.adb: Improve usage output for -f switch. 11452 114532017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11454 11455 * frontend.adb, freeze.adb, sem_res.adb, sem_attr.adb, sem_ch8.adb: 11456 Minor reformatting. 11457 114582017-01-13 Ed Schonberg <schonberg@adacore.com> 11459 11460 * sem_ch13.adb (Is_Predicate_Static): Following the intent of the RM, 11461 treat comparisons on strings as legal in a Static_Predicate. 11462 (Is_Predicate_Static, Is_Type_Ref): Predicate also returns true on 11463 a function call that is the expansion of a string comparison.The 11464 function call is built when compiling the corresponding predicate 11465 function, but the expression has been found legal as a static 11466 predicate during earlier analysis. 11467 * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Handle 11468 properly a function call that is the expansion of a string 11469 comparison operation, in order to recover the Static_Predicate 11470 expression and apply it to a static argument when needed. 11471 114722017-01-13 Tristan Gingold <gingold@adacore.com> 11473 11474 * s-mmap.adb, s-mmap.ads (Open_Read_No_Exception): New function. 11475 (Open_Read): Re-implement using Open_Read_No_Exception. 11476 (Open_Write): Raise exception in case of error. 11477 * s-mmosin-mingw.adb (Open_Common): Do not raise exception. 11478 * s-mmosin-unix.adb (Open_Read, Open_Write): Do not 11479 reaise exception. 11480 * s-mmosin-mingw.ads, s-mmosin-unix.ads (Open_Read): Adjust comment. 11481 114822017-01-13 Yannick Moy <moy@adacore.com> 11483 11484 * checks.adb: Code cleanup. 11485 114862017-01-13 Yannick Moy <moy@adacore.com> 11487 11488 * freeze.adb (Check_Inherited_Conditions): Use analyzed pragma 11489 expression instead of unanalyzed aspect expression for checking 11490 the validity of inheriting an operation. Also copy the expression 11491 being passing it to Build_Class_Wide_Expression, as this call 11492 modifies its argument. 11493 * sem_util.ads Fix comment to reference correct function name 11494 New_Copy_Tree. 11495 114962017-01-13 Javier Miranda <miranda@adacore.com> 11497 11498 * sem_res.adb (Resolve_Generalized_Indexing): Compiling in ASIS mode, 11499 when we propagate information about the indexes back to the original 11500 indexing mode and the prefix of the index is a function call, do not 11501 remove any parameter from such call. 11502 115032017-01-13 Gary Dismukes <dismukes@adacore.com> 11504 11505 * exp_ch6.ads (Needs_BIP_Finalization_Master): Update comment. 11506 * exp_ch6.adb (Needs_BIP_Finalization_Master): Return True for 11507 a build-in-place function whose result type is tagged. 11508 115092017-01-13 Yannick Moy <moy@adacore.com> 11510 11511 * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper): 11512 Do not generate a wrapper when the only candidate is a class-wide 11513 subprogram. 11514 (Analyze_Subprogram_Renaming): Do not freeze the renaming or renamed 11515 inside a generic context. 11516 115172017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11518 11519 * exp_util.adb (Add_Inherited_Tagged_DIC): 11520 Pass the object parameters of both the parent and the derived 11521 type DIC procedure to the reference replacement circuitry. 11522 (Find_DIC_Type): Modify the circuitry to present the partial 11523 view of a private type in case the private type defines its own 11524 DIC pragma. 11525 (Replace_Object_And_Primitive_References): Add two 11526 optional formal parameters. Update the comment on usage. Update 11527 the replacement of references to object parameters. 11528 115292017-01-13 Gary Dismukes <dismukes@adacore.com> 11530 11531 * einfo.adb, sem_ch6.adb, atree.adb: Minor reformatting and typo fix. 11532 115332017-01-13 Ed Schonberg <schonberg@adacore.com> 11534 11535 * sem_res.adb (Resolve_Actuals): Apply Scalar_Range_Check to 11536 an out parameter that is a type conversion, independently of th 11537 range check that may apply to the expression of the conversion, 11538 for use in GNATProve. 11539 115402017-01-13 Yannick Moy <moy@adacore.com> 11541 11542 * gnat1drv.adb (Gnat1drv): Move the implicit with for System in 11543 GNATprove_Mode here to Frontend. 11544 * frontend.adb (Frontend): Move the implicit with for System 11545 in GNATprove_Mode here as it ismore correct this way; the old 11546 place only worked by chance, since there were no overloaded names. 11547 * rtsfind.ads (RE_Id, RE_Unit_Table): Add RE_Tasking_State. 11548 * sem_attr.adb (Analyze_Attribute): In GNATprove_Mode, for the 11549 four attributes identified in SRM 9(18), add an implicit with 11550 to Ada.Task_Identification. 11551 * sem_ch8.adb (Analyze_Subprogram_Renaming.Build_Class_Wide_Wrapper): 11552 Deal specially with the wrapper introduced for AI05-0071 in GNATprove 11553 mode. 11554 * checks.adb (Apply_Discriminant_Check, 11555 Apply_Selected_Length_Checks, Apply_Selected_Range_Checks): 11556 In GNATprove mode, we do not apply the checks, but we still 11557 analyze the expression to possibly issue errors on SPARK 11558 code when a run-time error can be detected at compile time. 11559 (Selected_Length_Checks, Selected_Range_Checks): Perform analysis 11560 in GNATprove mode. 11561 115622017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11563 11564 * expander.adb (Expand): Add a warning about using return 11565 statements in Ghost management code. 11566 * exp_ch3.adb (Freeze_Type): Add a warning about using return 11567 statements in Ghost management code. 11568 * exp_ch7.adb (Build_Invariant_Procedure_Body, 11569 Build_Invariant_Procedure_Declaration): Add a warning about 11570 using return statements in Ghost management code. 11571 * exp_disp.adb (Make_DT): Add a warning about using return 11572 statements in Ghost management code. 11573 * exp_util.adb (Build_DIC_Procedure_Body, 11574 Build_DIC_Procedure_Declaration, Make_Predicated_Call): Add a 11575 warning about using return statements in Ghost management code. 11576 * freeze.adb (Freeze_Entity): Add a warning about using return 11577 statements in Ghost management code. 11578 * sem.adb (Analyze, Do_Analyze): Add a warning about using return 11579 statements in Ghost management code. 11580 * sem_ch3.adb (Analyze_Object_Declaration, Process_Full_View): Add 11581 a warning about using return statements in Ghost management code. 11582 * sem_ch5.adb (Analyze_Assignment): Add a warning about using 11583 return statements in Ghost management code. 11584 * sem_ch6.adb (Analyze_Procedure_Call, 11585 Analyze_Subprogram_Body_Helper): Add a warning about using return 11586 statements in Ghost management code. 11587 * sem_ch7.adb (Analyze_Package_Body_Helper): Add a warning about 11588 using return statements in Ghost management code. 11589 * sem_ch12.adb (Analyze_Package_Instantiation, 11590 Analyze_Subprogram_Instantiation, Instantiate_Package_Body, 11591 Instantiate_Subprogram_Body): Add a warning about using return 11592 statements in Ghost management code. 11593 * sem_ch13.adb (Build_Predicate_Functions, 11594 Build_Predicate_Function_Declarations): Add a warning about 11595 using return statements in Ghost management code. 11596 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part, 11597 Analyze_Initial_Condition_In_Decl_Part, Analyze_Pragma, 11598 Analyze_Pre_Post_Condition_In_Decl_Part): Add a warning about 11599 using return statements in Ghost management code. 11600 116012017-01-13 Tristan Gingold <gingold@adacore.com> 11602 11603 * s-mmosin-mingw.adb: Fix pragma import. 11604 116052017-01-13 Arnaud Charlet <charlet@adacore.com> 11606 11607 * gnat1drv.adb (Adjust_Global_Switches): Ignore -gnateE in 11608 codepeer mode. 11609 116102017-01-13 Hristian Kirtchev <kirtchev@adacore.com> 11611 11612 * atree.adb (Allocate_Initialize_Node): A newly created node is 11613 no longer marked as Ghost at this level. 11614 (Mark_New_Ghost_Node): New routine. 11615 (New_Copy): Mark the copy as Ghost. 11616 (New_Entity): Mark the entity as Ghost. 11617 (New_Node): Mark the node as Ghost. 11618 * einfo.adb (Is_Checked_Ghost_Entity): This attribute can now 11619 apply to unanalyzed entities. 11620 (Is_Ignored_Ghost_Entity): This attribute can now apply to unanalyzed 11621 entities. 11622 (Set_Is_Checked_Ghost_Entity): This attribute now 11623 applies to all entities as well as unanalyzed entities. 11624 (Set_Is_Ignored_Ghost_Entity): This attribute now applies to 11625 all entities as well as unanalyzed entities. 11626 * expander.adb Add with and use clauses for Ghost. 11627 (Expand): Install and revert the Ghost region associated with the node 11628 being expanded. 11629 * exp_ch3.adb (Expand_Freeze_Array_Type): Remove all Ghost-related code. 11630 (Expand_Freeze_Class_Wide_Type): Remoe all Ghost-related code. 11631 (Expand_Freeze_Enumeration_Type): Remove all Ghost-related code. 11632 (Expand_Freeze_Record_Type): Remove all Ghost-related code. 11633 (Freeze_Type): Install and revert the Ghost region associated 11634 with the type being frozen. 11635 * exp_ch5.adb Remove with and use clauses for Ghost. 11636 (Expand_N_Assignment_Statement): Remove all Ghost-related code. 11637 * exp_ch6.adb Remove with and use clauses for Ghost. 11638 (Expand_N_Procedure_Call_Statement): Remove all Ghost-relatd code. 11639 (Expand_N_Subprogram_Body): Remove all Ghost-related code. 11640 * exp_ch7.adb (Build_Invariant_Procedure_Body): Install and revert the 11641 Ghost region of the working type. 11642 (Build_Invariant_Procedure_Declaration): Install and revert 11643 the Ghost region of the working type. 11644 (Expand_N_Package_Body): Remove all Ghost-related code. 11645 * exp_ch8.adb Remove with and use clauses for Ghost. 11646 (Expand_N_Exception_Renaming_Declaration): Remove all Ghost-related 11647 code. 11648 (Expand_N_Object_Renaming_Declaration): Remove all Ghost-related code. 11649 (Expand_N_Package_Renaming_Declaration): Remove all Ghost-related code. 11650 (Expand_N_Subprogram_Renaming_Declaration): Remove all Ghost-related 11651 code. 11652 * exp_ch13.adb Remove with and use clauses for Ghost. 11653 (Expand_N_Freeze_Entity): Remove all Ghost-related code. 11654 * exp_disp.adb (Make_DT): Install and revert the Ghost region of 11655 the tagged type. Move the generation of various entities within 11656 the Ghost region of the type. 11657 * exp_prag.adb Remove with and use clauses for Ghost. 11658 (Expand_Pragma_Check): Remove all Ghost-related code. 11659 (Expand_Pragma_Contract_Cases): Remove all Ghost-related code. 11660 (Expand_Pragma_Initial_Condition): Remove all Ghost-related code. 11661 (Expand_Pragma_Loop_Variant): Remove all Ghost-related code. 11662 * exp_util.adb (Build_DIC_Procedure_Body): Install 11663 and revert the Ghost region of the working types. 11664 (Build_DIC_Procedure_Declaration): Install and revert the 11665 Ghost region of the working type. 11666 (Make_Invariant_Call): Install and revert the Ghost region of the 11667 associated type. 11668 (Make_Predicate_Call): Reimplemented. Install and revert the 11669 Ghost region of the associated type. 11670 * freeze.adb (Freeze_Entity): Install and revert the Ghost region 11671 of the entity being frozen. 11672 (New_Freeze_Node): Removed. 11673 * ghost.adb Remove with and use clauses for Opt. 11674 (Check_Ghost_Completion): Update the parameter profile 11675 and all references to formal parameters. 11676 (Ghost_Entity): Update the comment on usage. 11677 (Install_Ghost_Mode): New routines. 11678 (Is_Ghost_Assignment): New routine. 11679 (Is_Ghost_Declaration): New routine. 11680 (Is_Ghost_Pragma): New routine. 11681 (Is_Ghost_Procedure_Call): New routine. 11682 (Is_Ghost_Renaming): Removed. 11683 (Is_OK_Declaration): Reimplemented. 11684 (Is_OK_Pragma): Reimplemented. 11685 (Is_OK_Statement): Reimplemented. 11686 (Is_Subject_To_Ghost): Update the comment on usage. 11687 (Mark_And_Set_Ghost_Assignment): New routine. 11688 (Mark_And_Set_Ghost_Body): New routine. 11689 (Mark_And_Set_Ghost_Completion): New routine. 11690 (Mark_And_Set_Ghost_Declaration): New routine. 11691 (Mark_And_Set_Ghost_Instantiation): New routine. 11692 (Mark_And_Set_Ghost_Procedure_Call): New routine. 11693 (Mark_Full_View_As_Ghost): Removed. 11694 (Mark_Ghost_Declaration_Or_Body): New routine. 11695 (Mark_Ghost_Pragma): New routine. 11696 (Mark_Ghost_Renaming): New routine. 11697 (Mark_Pragma_As_Ghost): Removed. 11698 (Mark_Renaming_As_Ghost): Removed. 11699 (Propagate_Ignored_Ghost_Code): Update the comment on usage. 11700 (Prune_Node): Freeze nodes no longer need special pruning, they 11701 are processed by the general ignored Ghost code mechanism. 11702 (Restore_Ghost_Mode): New routine. 11703 (Set_Ghost_Mode): Reimplemented. 11704 (Set_Ghost_Mode_From_Entity): Removed. 11705 * ghost.ads Add with and use clauses for Ghost. 11706 (Check_Ghost_Completion): Update the parameter profile 11707 along with the comment on usage. 11708 (Install_Ghost_Mode): New routine. 11709 (Is_Ghost_Assignment): New routine. 11710 (Is_Ghost_Declaration): New routine. 11711 (Is_Ghost_Pragma): New routine. 11712 (Is_Ghost_Procedure_Call): New routine. 11713 (Mark_And_Set_Ghost_Assignment): New routine. 11714 (Mark_And_Set_Ghost_Body): New routine. 11715 (Mark_And_Set_Ghost_Completion): New routine. 11716 (Mark_And_Set_Ghost_Declaration): New routine. 11717 (Mark_And_Set_Ghost_Instantiation): New routine. 11718 (Mark_And_Set_Ghost_Procedure_Call): New routine. 11719 (Mark_Full_View_As_Ghost): Removed. 11720 (Mark_Ghost_Pragma): New routine. 11721 (Mark_Ghost_Renaming): New routine. 11722 (Mark_Pragma_As_Ghost): Removed. 11723 (Mark_Renaming_As_Ghost): Removed. 11724 (Restore_Ghost_Mode): New routine. 11725 (Set_Ghost_Mode): Redefined. 11726 (Set_Ghost_Mode_From_Entity): Removed. 11727 * sem.adb (Analyze): Install and revert the Ghost region of the 11728 node being analyzed. 11729 (Do_Analyze): Change the way a clean Ghost 11730 region is installed and reverted. 11731 * sem_ch3.adb (Analyze_Full_Type_Declaration): Remove 11732 all Ghost-related code. 11733 (Analyze_Incomplete_Type_Decl): Remove all Ghost-related code. 11734 (Analyze_Number_Declaration): Remove all Ghost-related code. 11735 (Analyze_Object_Declaration): Install and revert the Ghost region of 11736 a deferred object declaration's completion. 11737 (Array_Type_Declaration): Remove all Ghost-related code. 11738 (Build_Derived_Type): Update the comment on 11739 the propagation of Ghost attributes from a parent to a derived type. 11740 (Derive_Subprogram): Remove all Ghost-related code. 11741 (Make_Class_Wide_Type): Remove all Ghost-related code. 11742 (Make_Implicit_Base): Remove all Ghost-related code. 11743 (Process_Full_View): Install and revert the Ghost region of 11744 the partial view. There is no longer need to check the Ghost 11745 completion here. 11746 * sem_ch5.adb (Analyze_Assignment): Install and revert the Ghost 11747 region of the left hand side. 11748 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Remove 11749 all Ghost-related code. 11750 (Analyze_Expression_Function): Remove all Ghost-related code. 11751 (Analyze_Generic_Subprogram_Body): Remove all Ghost-related code. 11752 (Analyze_Procedure_Call): Install and revert the Ghost region of 11753 the procedure being called. 11754 (Analyze_Subprogram_Body_Helper): Install and revert the Ghost 11755 region of the spec or body. 11756 (Analyze_Subprogram_Declaration): Remove all Ghost-related code. 11757 (Build_Subprogram_Declaration): Remove all Ghost-related code. 11758 (Find_Corresponding_Spec): Remove all Ghost-related code. 11759 (Process_Formals): Remove all Ghost-related code. 11760 * sem_ch7.adb (Analyze_Package_Body_Helper): Install and revert 11761 the Ghost region of the spec. 11762 (Analyze_Package_Declaration): Remove all Ghost-related code. 11763 * sem_ch8.adb (Analyze_Exception_Renaming): Mark a renaming as 11764 Ghost when it aliases a Ghost entity. 11765 (Analyze_Generic_Renaming): Mark a renaming as Ghost when it aliases 11766 a Ghost entity. 11767 (Analyze_Object_Renaming): Mark a renaming as Ghost when 11768 it aliases a Ghost entity. 11769 (Analyze_Package_Renaming): Mark a renaming as Ghost when it aliases 11770 a Ghost entity. 11771 (Analyze_Subprogram_Renaming): Mark a renaming as Ghost when it 11772 aliases a Ghost entity. 11773 * sem_ch11.adb Remove with and use clauses for Ghost. 11774 (Analyze_Exception_Declaration): Remove all Ghost-related code. 11775 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Remove all 11776 Ghost-related code. 11777 (Analyze_Generic_Subprogram_Declaration): Remove all Ghost-related 11778 code. 11779 (Analyze_Package_Instantiation): Install and revert the Ghost region 11780 of the package instantiation. 11781 (Analyze_Subprogram_Instantiation): Install 11782 and revert the Ghost region of the subprogram instantiation. 11783 (Instantiate_Package_Body): Code clean up. Install and revert the 11784 Ghost region of the package body. 11785 (Instantiate_Subprogram_Body): Code clean up. Install and revert the 11786 Ghost region of the subprogram body. 11787 * sem_ch13.adb (Build_Predicate_Functions): Install 11788 and revert the Ghost region of the related type. 11789 (Build_Predicate_Function_Declaration): Code clean up. Install 11790 and rever the Ghost region of the related type. 11791 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): 11792 Install and revert the Ghost region of the pragma. 11793 (Analyze_Initial_Condition_In_Decl_Part): Install and revert the 11794 Ghost region of the pragma. 11795 (Analyze_Pragma): Install and revert the Ghost region of various 11796 pragmas. Mark a pragma as Ghost when it is related to a Ghost entity 11797 or encloses a Ghost entity. 11798 (Analyze_Pre_Post_Condition): Install and revert the Ghost 11799 region of the pragma. 11800 (Analyze_Pre_Post_Condition_In_Decl_Part): Install and revert the 11801 Ghost region of the pragma. 11802 * sem_res.adb (Resolve): Remove all Ghost-related code. 11803 * sem_util.adb (Is_Declaration): Reimplemented. 11804 (Is_Declaration_Other_Than_Renaming): New routine. 11805 * sem_util.ads (Is_Declaration_Other_Than_Renaming): New routine. 11806 * sinfo.adb (Is_Checked_Ghost_Pragma): New routine. 11807 (Is_Ghost_Pragma): Removed. 11808 (Is_Ignored_Ghost_Pragma): New routine. 11809 (Set_Is_Checked_Ghost_Pragma): New routine. 11810 (Set_Is_Ghost_Pragma): Removed. 11811 (Set_Is_Ignored_Ghost_Pragma): New routine. 11812 * sinfo.ads: Update the documentation on Ghost mode and 11813 Ghost regions. New attributes Is_Checked_Ghost_Pragma 11814 and Is_Ignored_Ghost_Pragma along with usages in nodes. 11815 Remove attribute Is_Ghost_Pragma along with usages in nodes. 11816 (Is_Checked_Ghost_Pragma): New routine along with pragma Inline. 11817 (Is_Ghost_Pragma): Removed along with pragma Inline. 11818 (Is_Ignored_Ghost_Pragma): New routine along with pragma Inline. 11819 (Set_Is_Checked_Ghost_Pragma): New routine along with pragma Inline. 11820 (Set_Is_Ghost_Pragma): Removed along with pragma Inline. 11821 (Set_Is_Ignored_Ghost_Pragma): New routine along with pragma Inline. 11822 118232017-01-12 Tristan Gingold <gingold@adacore.com> 11824 11825 * s-mmap.ads, s-mmap.adb, s-mmosin-unix.ads, s-mmosin-unix.adb, 11826 s-mmauni-long.ads, s-mmosin-mingw.ads, s-mmosin-mingw.adb: New files. 11827 118282017-01-12 Yannick Moy <moy@adacore.com> 11829 11830 * errout.adb, errout.ads (Initialize): Factor common treatment 11831 in Reset_Warnings. 11832 (Reset_Warnings): New procedure to reset counts related to warnings. 11833 (Record_Compilation_Errors): New variable to store the presence of an 11834 error, used in gnat2why to allow changing the Warning_Mode. 11835 (Compilation_Errors): Use new variable Record_Compilation_Errors to 11836 store the presence of an error. 11837 118382017-01-12 Javier Miranda <miranda@adacore.com> 11839 11840 * sem_ch13.adb (Analyze_Aspect_Specifications): 11841 For Interrupt_Handler and Attach_ Handler aspects, decorate the 11842 internally built reference to the protected procedure as coming 11843 from sources and force its analysis. 11844 118452017-01-12 Ed Schonberg <schonberg@adacore.com> 11846 11847 * sem_ch3.adb (Build_Derived_Type): For a scalar derived type, 11848 inherit predicates if any from the first_subtype of the parent, 11849 not from the anonymous parent type. 11850 * sem_eval.adb (Is_Static_Subtype): A type that inherits a dynamic 11851 predicate is not a static subtype. 11852 118532017-01-12 Gary Dismukes <dismukes@adacore.com> 11854 11855 * freeze.adb (Check_Suspicious_Convention): New procedure 11856 performing a warning check on discriminated record types with 11857 convention C or C++. Factored out of procedure Freeze_Record_Type, 11858 and changed to only apply to base types (to avoid spurious 11859 warnings on subtypes). Minor improvement of warning messages 11860 to refer to discriminated rather than variant record types. 11861 (Freeze_Record_Type): Remove code for performing a suspicious 11862 convention check. 11863 (Freeze_Entity): Only call Freeze_Record_Type 11864 on types that aren't declared within any enclosing generic units 11865 (rather than just excluding the type when the innermost scope 11866 is generic). Call Check_Suspicious_Convention whether or not 11867 the type is declared within a generic unit. 11868 * sem_ch8.adb (In_Generic_Scope): Move this function to Sem_Util. 11869 * sem_util.ads, sem_util.adb (In_Generic_Scope): New function (moved 11870 from Sem_Ch8). 11871 118722017-01-12 Tristan Gingold <gingold@adacore.com> 11873 11874 * sysdep.c, adaint.c, rtinit.c, ming32.h: 11875 (__gnat_current_codepage): Renamed from CurrentCodePage 11876 (__gnat_current_ccs_encoding): Renamed from CurrentCCSEncoding 11877 118782017-01-12 Ed Schonberg <schonberg@adacore.com> 11879 11880 * sem_ch6.adb (Fully_Conformant_Expressions): Handle properly 11881 quantified expressions, following AI12-050: the loop parameters 11882 of two quantified expressions are conformant if they have the 11883 same identifier. 11884 118852017-01-12 Arnaud Charlet <charlet@adacore.com> 11886 11887 * gcc-interface/Makefile.in: Clean up VxWorks targets. 11888 118892017-01-12 Ed Schonberg <schonberg@adacore.com> 11890 11891 * sem_attr.adb (Analyze_Attribute_Reference, case Loop_Entry): 11892 Hnadle properly the attribute reference when it appears as part 11893 of an expression in another loop aspect. 11894 118952017-01-12 Ed Schonberg <schonberg@adacore.com> 11896 11897 * exp_ch3.adb (Check_Predicated_Discriminant): New procedure, 11898 subsidiary of Build_Initialization_Call, to complete generation 11899 of predicate checks on discriminants whose (sub)types have 11900 predicates, and to add checks on variants that do not have an 11901 others clause. 11902 * sem_util.adb (Gather_Components): A missing Others alternative is 11903 not an error when the type of the discriminant is a static predicate 11904 (and coverage has been checked when analyzing the case statement). A 11905 runtime check is generated to verify that a given discriminant 11906 satisfies the predicate (RM 3.8.1. (21.1/2)). 11907 119082017-01-12 Yannick Moy <moy@adacore.com> 11909 11910 * gnat1drv.adb (Adjust_Global_Switches): Only 11911 perform checking of exception mechanism when generating code. 11912 119132017-01-12 Justin Squirek <squirek@adacore.com> 11914 11915 * exp_ch7.adb (Add_Type_Invariants, Process_Array_Component): 11916 Remove handling of access component with invariant. 11917 (Build_Invariant_Procedure_Declaration): Remove return on class 11918 wide type. 11919 * freeze.adb (Freeze_Array_Type, Freeze_Record_Type): Remove 11920 conditional exception for component or array so Has_Own_Invariants 11921 flag is not falsly set. 11922 * sem_ch3.adb (Make_Class_Wide_Type): Initialize copy of class 11923 wide type to have no invariant flags. 11924 119252017-01-12 Hristian Kirtchev <kirtchev@adacore.com> 11926 11927 * exp_ch9.adb, sem_prag.adb, s-tassta.adb, sem_util.adb, s-tarest.adb, 11928 sem_ch13.adb: Minor reformatting. 11929 119302017-01-12 Hristian Kirtchev <kirtchev@adacore.com> 11931 11932 * exp_aggr.adb (Build_Record_Aggr_Code): Guard against a missing 11933 adjustment primitive when the ancestor type was not properly frozen. 11934 (Gen_Assign): Guard against a missing initialization 11935 primitive when the component type was not properly frozen. 11936 (Initialize_Array_Component): Guard against a missing adjustment 11937 primitive when the component type was not properly frozen. 11938 (Initialize_Record_Component): Guard against a missing adjustment 11939 primitive when the component type was not properly frozen. 11940 (Process_Transient_Component_Completion): The transient object may 11941 not be finalized when its associated type was not properly frozen. 11942 * exp_ch3.adb (Build_Assignment): Guard against a missing 11943 adjustment primitive when the component type was not properly frozen. 11944 (Build_Initialization_Call): Guard against a missing 11945 initialization primitive when the associated type was not properly 11946 frozen. 11947 (Expand_N_Object_Declaration): Guard against a missing 11948 adjustment primitive when the base type was not properly frozen. 11949 (Predefined_Primitive_Bodies): Create an empty Deep_Adjust 11950 body when there is no adjustment primitive available. Create an 11951 empty Deep_Finalize body when there is no finalization primitive 11952 available. 11953 * exp_ch4.adb (Apply_Accessibility_Check): Guard against a 11954 missing finalization primitive when the designated type was 11955 not properly frozen. 11956 (Expand_N_Allocator): Guard against a missing initialization primitive 11957 when the designated type was not properly frozen. 11958 * exp_ch5.adb (Make_Tag_Ctrl_Assignment): Add the adjustment call 11959 only when the corresponding adjustment primitive is available. 11960 * exp_ch7.adb (Build_Adjust_Or_Finalize_Statements): Generate the 11961 adjustment/finalization statements only when there is an available 11962 primitive to carry out the action. 11963 (Build_Initialize_Statements): Generate the initialization/finalization 11964 statements only when there is an available primitive to carry out the 11965 action. 11966 (Make_Adjust_Call): Do not generate a call when the underlying 11967 type is not present due to a possible missing full view. 11968 (Make_Final_Call): Do not generate a call when the underlying 11969 type is not present due to a possible missing full view. 11970 (Make_Finalize_Address_Stmts): Generate an empty body when the 11971 designated type lacks a finalization primitive. 11972 (Make_Init_Call): Do not generate a call when the underlying type is 11973 not present due to a possible missing full view. 11974 (Process_Component_For_Adjust): Add the adjustment call only when the 11975 corresponding adjustment primitive is available. 11976 (Process_Component_For_Finalize): Add the finalization call only when 11977 the corresponding finalization primitive is available. 11978 (Process_Object_Declaration): Use a null statement to emulate a 11979 missing call to the finalization primitive of the object type. 11980 * exp_ch7.ads (Make_Adjust_Call): Update the comment on usage. 11981 (Make_Final_Call): Update the comment on usage. 11982 (Make_Init_Call): Update the comment on usage. 11983 * exp_util.adb (Build_Transient_Object_Statements): Code reformatting. 11984 119852017-01-12 Arnaud Charlet <charlet@adacore.com> 11986 11987 * einfo.ads: Update documentation of Address_Taken. 11988 * sem_attr.adb (Analyze_Access_Attribute, Resolve_Attribute 11989 [Access_Attribute]): Only consider 'Access/'Unchecked_Access 11990 for subprograms when setting Address_Taken flag. 11991 119922017-01-12 Patrick Bernardi <bernardi@adacore.com> 11993 11994 * sem_ch10.adb (Analyze_With_Clause): Removed code that turned 11995 Configurable_Run_Time_Mode off when analysing with'ed predefined 11996 libraries. 11997 119982017-01-12 Gary Dismukes <dismukes@adacore.com> 11999 12000 * sem_prag.adb: Minor reformatting. 12001 * sem_util.adb (Unique_Entity): fix result for 12002 bodies of entry families. 12003 120042017-01-12 Justin Squirek <squirek@adacore.com> 12005 12006 * sem_prag.adb (Analyze_Pragma): Add appropriate calls to 12007 Resolve_Suppressible in the pragma Assertion_Policy case. 12008 (Resolve_Suppressible): Created this function to factor out 12009 common code used to resolve Suppress to either Ignore or Check 12010 * snames.ads-tmpl: Add name for Suppressible. 12011 120122017-01-12 Gary Dismukes <dismukes@adacore.com> 12013 12014 * exp_ch9.adb, s-secsta.adb, snames.ads-tmpl, exp_ch3.adb: Minor 12015 reformatting. 12016 * debug.adb: Minor comment fixes. 12017 120182017-01-12 Arnaud Charlet <charlet@adacore.com> 12019 12020 * sem_util.adb (Unique_Entity): For concurrent 12021 bodies that are defined with stubs and complete a declaration 12022 of a single concurrent object return the entity of an implicit 12023 concurrent type, not the entity of the anonymous concurrent 12024 object. 12025 * debug.adb: -gnatd.J is no longer used. 12026 * make.adb (Globalize): Removed, no longer used. 12027 * sem_ch9.adb: minor typo in comment for entry index 12028 120292017-01-12 Patrick Bernardi <bernardi@adacore.com> 12030 12031 * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size. 12032 * exp_ch3.adb (Build_Init_Statements): As part of initialising 12033 the value record of a task, set its _Secondary_Stack_Size field 12034 if present. 12035 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create 12036 a _Secondary_Stack_Size field in the value record of 12037 the task if a Secondary_Stack_Size rep item is present. 12038 (Make_Task_Create_Call): Include secondary stack size 12039 parameter. If No_Secondary_Stack restriction is in place, passes 12040 stack size of 0. 12041 * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma 12042 Secondary_Stack_Size. 12043 * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New 12044 function to define the overhead of the secondary stack. 12045 * s-tarest.adb (Create_Restricted_Task, 12046 Create_Restricted_Task_Sequential): Functions now include 12047 Secondary_Stack_Size parameter to pass to Initialize_ATCB. 12048 * s-tarest.adb (Create_Restricted_Task, 12049 Create_Restricted_Task_Sequential): Calls to Initialize_ATCB now 12050 include Secondary_Stack_Size parameter. 12051 (Task_Wrapper): Secondary stack now allocated to the size specified by 12052 the Secondary_Stack_Size parameter in the task's ATCB. 12053 * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialize_ATCB): New 12054 Secondary_Stack_Size component. 12055 * s-tassta.adb, s-tassta.ads (Create_Restricted_Task, 12056 Create_Restricted_Task_Sequential): Function now include 12057 Secondary_Stack_Size parameter. 12058 (Task_Wrapper): Secondary stack now allocated to the size 12059 specified by the Secondary_Stack_Size parameter in the task's 12060 ATCB. 12061 * s-tproft.adb (Register_Foreign_Thread): Amended Initialize_ATCB call 12062 to include Secondary_Stack_Size parameter. 12063 * sem_ch13.adb (Analyze_Aspect_Specification): Add support for 12064 Secondary_Stack_Size aspect, turning the aspect into its corresponding 12065 internal attribute. 12066 (Analyze_Attribute_Definition): Process Secondary_Stack_Size attribute. 12067 * snames.adb-tmpl, snames.ads-tmpl: Added names 12068 Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size, 12069 Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size. 12070 120712017-01-12 Yannick Moy <moy@adacore.com> 12072 12073 * exp_spark.adb (Expand_SPARK_Potential_Renaming): Fix sloc of copied 12074 subtree. 12075 120762017-01-12 Justin Squirek <squirek@adacore.com> 12077 12078 * exp_attr.adb (Expand_N_Attribute_Reference): 12079 Fix Finalization_Size case by properly resolving the type after 12080 rewritting the node. 12081 120822017-01-12 Hristian Kirtchev <kirtchev@adacore.com> 12083 12084 * exp_util.adb (Build_DIC_Procedure_Body): Semi-insert the body into 12085 the tree. 12086 (Build_DIC_Procedure_Declaration): Semi-insert the body into the tree. 12087 * binde.adb, exp_ch5.adb, sem_type.adb, sem.ads, sem_res.adb, 12088 exp_sel.ads: Minor reformatting. 12089 120902017-01-12 Justin Squirek <squirek@adacore.com> 12091 12092 * exp_ch6.adb (Expand_Call): Add guard to prevent 12093 invariant checks from being created for internally generated 12094 subprograms. 12095 120962017-01-12 Bob Duff <duff@adacore.com> 12097 12098 * lib-writ.ads: Remove incorrect comment. 12099 121002017-01-12 Javier Miranda <miranda@adacore.com> 12101 12102 * debug.adb (-gnatd.K): Enable generation of contract-only 12103 procedures in CodePeer mode. 12104 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms): 12105 New subprogram. 12106 (Analyze_Contracts): Generate contract-only procedures if -gnatdK is 12107 set. 12108 * scil_ll.ads, scil_ll.adb (Get_Contract_Only_Body_Name): New 12109 subprogram. 12110 (Get_Contract_Only_Missing_Body_Name): New subprogram. 12111 (Get_Contract_Only_Body): New subprogram. 12112 (Set_Contract_Only_Body): New subprogram. 12113 (Is_Contract_Only_Body): New subprogram. 12114 (Set_Is_Contract_Only_Body): New subprogram. 12115 (SCIL_Nodes): Replace table by hash-table. 12116 121172017-01-12 Hristian Kirtchev <kirtchev@adacore.com> 12118 12119 * exp_ch6.adb: Minor reformatting. 12120 * spark_xrefs.ads: minor cleanup of comments for SPARK xrefs 12121 121222017-01-12 Bob Duff <duff@adacore.com> 12123 12124 * binde.adb (Forced): New reason for a dependence. 12125 (Force_Elab_Order): Implementation of the new switch. 12126 * binde.ads: Minor comment fixes. 12127 * bindusg.adb: Add -f switch. Apparently, there was an -f switch 12128 long ago that is no longer supported; removed comment about that. 12129 * opt.ads (Force_Elab_Order_File): Name of file specified for 12130 -f switch. 12131 * switch-b.adb: Parse -f switch. 12132 121332017-01-12 Justin Squirek <squirek@adacore.com> 12134 12135 * exp_ch6.adb (Check_View_Conversion): Created this function 12136 to properly chain calls to check type invariants that may be 12137 present in a subprogram call after the subprogram. 12138 (Expand_Call): Add a conditional to identify when a view conversion 12139 needs to be checked. 12140 * nlists.adb, nlists.ads (Prepend_New): New routine. 12141 (Prepend_New_To): New routine. 12142 121432017-01-12 Hristian Kirtchev <kirtchev@adacore.com> 12144 12145 * sinfo.ads: Minor reformatting. 12146 121472017-01-12 Gary Dismukes <dismukes@adacore.com> 12148 12149 * exp_util.adb, exp_util.ads, einfo.ads: Minor typo fixes and 12150 reformatting. 12151 121522017-01-12 Hristian Kirtchev <kirtchev@adacore.com> 12153 12154 * exp_ch6.adb (Make_Build_In_Place_Call_In_Anonymous_Context): Add new 12155 variable Definite. Create a local object and pass its 'Access to the 12156 BIP function when the result type is either definite or it does not 12157 require any finalization or secondary stack management. 12158 121592017-01-12 Bob Duff <duff@adacore.com> 12160 12161 * contracts.adb, einfo.adb, errout.adb, exp_attr.adb, 12162 exp_ch3.adb, exp_ch7.adb, exp_ch9.adb, exp_prag.adb, freeze.adb, 12163 frontend.adb, ghost.adb, inline.adb, lib-writ.adb, lib-xref.adb, 12164 par.adb, par-ch10.adb, par-ch2.adb, par-prag.adb, par_sco.adb, 12165 sem_attr.adb, sem_aux.adb, sem_ch10.adb, sem_ch12.adb, 12166 sem_ch13.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, sem_elab.adb, 12167 sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads, 12168 sem_warn.adb, sinfo.adb, sinfo.ads, sprint.adb (Pragma_Name): 12169 Change name to Pragma_Name_Unmapped. 12170 (Pragma_Name_Mapped): Change name to Pragma_Name. 12171 This is because the "mapped" version should be the usual case. 12172 121732017-01-09 Hristian Kirtchev <kirtchev@adacore.com> 12174 12175 * einfo.ads, einfo.adb: Remove uses of flags Has_Default_Init_Cond, 12176 Is_Default_Init_Cond_Procedure, and 12177 Has_Inherited_Default_Init_Cond. Add uses of flags 12178 Has_Own_DIC, Is_DIC_Procedure, and Has_Inherited_DIC. 12179 (Default_Init_Cond_Procedure): Removed. 12180 (DIC_Procedure): New routine. 12181 (Has_Default_Init_Cond): Removed. 12182 (Has_DIC): New routine. 12183 (Has_Inheritable_Invariants): The attribute applies to the base type. 12184 (Has_Inherited_Default_Init_Cond): Removed. 12185 (Has_Inherited_DIC): New routine. 12186 (Has_Inherited_Invariants): The attribute applies to the base type. 12187 (Has_Own_DIC): New routine. 12188 (Has_Own_Invariants): The attribute applies to the base type. 12189 (Is_Default_Init_Cond_Procedure): Removed. 12190 (Is_DIC_Procedure): New routine. 12191 (Set_Default_Init_Cond_Procedure): Removed. 12192 (Set_DIC_Procedure): New routine. 12193 (Set_Has_Default_Init_Cond): Removed. 12194 (Set_Has_Inheritable_Invariants): The attribute applies 12195 to the base type. 12196 (Set_Has_Inherited_Default_Init_Cond): Removed. 12197 (Set_Has_Inherited_DIC): New routine. 12198 (Set_Has_Inherited_Invariants): The attribute applies to the base type. 12199 (Set_Has_Own_DIC): New routine. 12200 (Set_Has_Own_Invariants): The attribute applies to the base type. 12201 (Set_Is_Default_Init_Cond_Procedure): Removed. 12202 (Set_Is_DIC_Procedure): New routine. 12203 (Write_Entity_Flags): Update the output of all flags related to 12204 default initial condition. 12205 * exp_ch3.adb (Expand_N_Object_Declaration): Update the generation 12206 of the call to the DIC procedure. 12207 (Freeze_Type): Generate the body of the DIC procedure. 12208 * exp_ch7.adb (Build_Invariant_Procedure_Body): Replace 12209 all occurrences of Create_Append with Append_New_To. Do 12210 not generate an invariant procedure for a class-wide type. 12211 The generated body acts as a freeze action of the working type. 12212 (Build_Invariant_Procedure_Declaration): Do not generate an 12213 invariant procedure for a class-wide type. 12214 (Create_Append): Removed. 12215 * exp_util.adb: Add with and use clauses for Sem_Ch3, sem_ch6, 12216 sem_Ch12, Sem_Disp, and GNAT.HTable. Move the handling of 12217 class-wide pre/postcondition description and data structures from 12218 Sem_Prag. 12219 (Build_Class_Wide_Expression): Moved from Sem_Prag. 12220 (Build_DIC_Call): New routine. 12221 (Build_DIC_Procedure_Body): New routine. 12222 (Build_DIC_Procedure_Declaration): New routine. 12223 (Entity_Hash): Moved from Sem_Prag. 12224 (Find_DIC_Type): New routine. 12225 (Update_Primitives_Mapping): Reimplemented. 12226 (Update_Primitives_Mapping_Of_Types): New routine. 12227 * exp_util.ads (Build_Class_Wide_Expression): Moved from Sem_Prag. 12228 (Build_DIC_Call): New routine. 12229 (Build_DIC_Procedure_Body): New routine. 12230 (Build_DIC_Procedure_Declaration): New routine. 12231 (Update_Primitives_Mapping): Moved from Sem_Prag. 12232 (Update_Primitives_Mapping_Of_Types): New routine. 12233 * nlists.adb (Append_New): New routine. 12234 (Append_New_To): New routine. 12235 * nlists.ads (Append_New): New routine. 12236 (Append_New_To): New routine. 12237 * sem_ch3.adb (Analyze_Declarations): Do not generate the bodies 12238 of DIC procedures here. This is now done at the end of the 12239 visible declarations, private declarations, and at the freeze 12240 point of a type. 12241 (Analyze_Private_Extension_Declaration): 12242 A private extension inherits the DIC pragma of a parent type. 12243 (Analyze_Subtype_Declaration): No need to propagate invariant 12244 attributes to a subtype as those apply to the base type. 12245 (Build_Derived_Record_Type): No need to inherit invariants here 12246 as this is now done in Build_Derived_Type. 12247 (Build_Derived_Type): Inherit both the DIC pragma and invariants from 12248 a parent type. 12249 (Process_Full_View): Update the propagation of DIC attributes. 12250 (Propagate_Default_Init_Cond_Attributes): Removed. 12251 * sem_ch7.adb Add with and use clauses for Exp_Util. 12252 (Analyze_Package_Specification): Create the body of the DIC 12253 procedure at the end of the visible and private declarations. 12254 (Preserve_Full_Attributes): Propagate DIC attributes. 12255 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Propagate 12256 DIC attributes. 12257 (Analyze_Task_Type_Declaration): Propagate DIC attributes. 12258 * sem_elab.adb (Check_A_Call): Update the call to 12259 Is_Nontrivial_Default_Init_Cond_Procedure. 12260 * sem_prag.adb Remove the with and use clauses for 12261 GNAT.HTable. Move the handling of class- wide pre/postcondition 12262 description and data structures to Exp_Util. 12263 (Analyze_Pragma): Create the declaration of the DIC procedure. There 12264 is no need to propagate invariant-related attributes at this point 12265 as this is done in Build_Invariant_Procedure_Declaration. 12266 (Build_Class_Wide_Expression): Moved to Exp_Util. 12267 (Entity_Hash): Moved to Exp_Util. 12268 (Update_Primitives_Mapping): Moved to Exp_Util. 12269 * sem_prag.ads (Build_Class_Wide_Expression): Moved to Exp_Util. 12270 (Update_Primitives_Mapping): Moved to Exp_Util. 12271 * sem_util.adb: Remove with and use clauses for Ghost 12272 and Sem_Ch13. 12273 (Build_Default_Init_Cond_Call): Removed. 12274 (Build_Default_Init_Cond_Procedure_Bodies): Removed. 12275 (Build_Default_Init_Cond_Procedure_Declaration): Removed. 12276 (Get_Views): Reimplemented. 12277 (Has_Full_Default_Initialization): Reimplement the section on DIC. 12278 (Inherit_Default_Init_Cond_Procedure): Removed. 12279 (Is_Nontrivial_Default_Init_Cond_Procedure): Removed. 12280 (Is_Nontrivial_DIC_Procedure): New routine. 12281 (Is_Verifiable_DIC_Pragma): New routine. 12282 (Propagate_DIC_Attributes): New routine. 12283 * sem_util.ads (Build_Default_Init_Cond_Call): Removed. 12284 (Build_Default_Init_Cond_Procedure_Bodies): Removed. 12285 (Build_Default_Init_Cond_Procedure_Declaration): Removed. 12286 (Inherit_Default_Init_Cond_Procedure): Removed. 12287 (Is_Nontrivial_Default_Init_Cond_Procedure): Removed. 12288 (Is_Nontrivial_DIC_Procedure): New routine. 12289 (Is_Verifiable_DIC_Pragma): New routine. 12290 (Propagate_DIC_Attributes): New routine. 12291 * sem_warn.adb (Is_OK_Fully_Initialized): Reimplement the section 12292 on DIC. 12293 * sinfo.ads, sinfo.adb: Add new attribute Expression_Copy along with 12294 usage in nodes. 12295 (Expression_Copy): New routine along with pragma Inline. 12296 (Set_Expression_Copy): New routine along with pragma Inline. 12297 122982017-01-06 Bob Duff <duff@adacore.com> 12299 12300 * bindgen.adb (Gen_Adainit, Gen_Adafinal): Change 12301 "Bind_Main_Program" to "not Bind_For_Library", because otherwise 12302 we won't generate the call to s_stalib_adafinal when the main 12303 is not written in Ada. 12304 123052017-01-06 Bob Duff <duff@adacore.com> 12306 12307 * sem_prag.adb: Minor: remove pragma Warnings. 12308 123092017-01-06 Tristan Gingold <gingold@adacore.com> 12310 12311 * Makefile.rtl: Do not compile s-stchop by default. 12312 123132017-01-06 Patrick Bernardi <bernardi@adacore.com> 12314 12315 * aspects.adb, aspects.ads, exp_ch3.adb, exp_ch9.adb, par-prag.adb, 12316 sem_ch13.adb, sem_prag.adb, sem_prag.ads, snames.adb-tmpl, 12317 snames.ads-tmpl, s-secsta.adb, s-secsta.ads, s-tarest.adb, 12318 s-tarest.ads, s-taskin.adb, s-taskin.ads, s-tassta.adb, s-tassta.ads: 12319 Reverted previous change for now. 12320 123212017-01-06 Ed Schonberg <schonberg@adacore.com> 12322 12323 * exp_ch3.adb (Build_Initialization_Call): Apply predicate 12324 check to default discriminant value if checks are enabled. 12325 (Build_Assignment): If type of component has static predicate, 12326 apply check to its default value, if any. 12327 123282017-01-06 Patrick Bernardi <bernardi@adacore.com> 12329 12330 * aspect.adb, aspect.ads: Added new aspect Secondary_Stack_Size. 12331 * exp_ch3.adb (Build_Init_Statements): As part of initialising 12332 the value record of a task, set its _Secondary_Stack_Size field 12333 if present. 12334 * exp_ch9.adb (Expand_N_Task_Type_Declaration): Create 12335 a _Secondary_Stack_Size field in the value record of 12336 the task if a Secondary_Stack_Size rep item is present. 12337 (Make_Task_Create_Call): Include secondary stack size 12338 parameter. If No_Secondary_Stack restriction is in place, passes 12339 stack size of 0. 12340 * par-prag.adb, sem_prag.adb, sem_prag.ads: Added new pragma 12341 Secondary_Stack_Size. 12342 * s-secsta.adb, s-secsta.ads (Minimum_Secondary_Stack_Size): New 12343 function to define the overhead of the secondary stack. 12344 * s-tarest.adb (Create_Restricted_Task, 12345 Create_Restricted_Task_Sequential): Functions now include 12346 Secondary_Stack_Size parameter to pass to Initialize_ATCB. 12347 * s-tarest.adb (Create_Restricted_Task, 12348 Create_Restricted_Task_Sequential): Calls to Initialize_ATCB 12349 now include Secondary_Stack_Size parameter. 12350 (Task_Wrapper): 12351 Secondary stack now allocated to the size specified by the 12352 Secondary_Stack_Size parameter in the task's ATCB. 12353 * s-taskin.adb, s-taskin.adb (Common_ATCB, Initialise_ATCB): New 12354 Secondary_Stack_Size component. 12355 * s-tassta.adb, s-tassta.ads (Create_Restricted_Task, 12356 Create_Restricted_Task_Sequential): Function now include 12357 Secondary_Stack_Size parameter. 12358 (Task_Wrapper): Secondary stack 12359 now allocated to the size specified by the Secondary_Stack_Size 12360 parameter in the task's ATCB. 12361 * sem_ch13.adb (Analyze_Aspect_Specification): Add support 12362 for Secondary_Stack_Size aspect, turning the aspect into its 12363 corresponding internal attribute. 12364 (Analyze_Attribute_Definition): 12365 Process Secondary_Stack_Size attribute. 12366 * snames.adb-tmpl, snames.ads-tmpl: Added names 12367 Name_Secondary_Stack_Size, Name_uSecondary_Stack_Size, 12368 Attribute_Secondary_Stack_Size and Pragma_Secondary_Stack_Size. 12369 123702017-01-06 Pascal Obry <obry@adacore.com> 12371 12372 * a-direio.adb, a-direio.ads, a-sequio.adb, a-sequio.ads: Add Flush to 12373 Sequential_IO and Direct_IO. 12374 123752017-01-06 Bob Duff <duff@adacore.com> 12376 12377 * snames.ads-tmpl (Renamed): New name for the pragma argument. 12378 * par-ch2.adb: Allow the new pragma (with analysis deferred 12379 to Sem_Prag). 12380 * sinfo.ads, sinfo.adb (Map_Pragma_Name, Pragma_Name_Mapped): 12381 Keep a mapping from new pragma names to old names. 12382 * sem_prag.adb: Check legality of pragma Rename_Pragma, and 12383 implement it by calling Map_Pragma_Name. 12384 * checks.adb, contracts.adb, einfo.adb, errout.adb, 12385 * exp_attr.adb, exp_ch3.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, 12386 * exp_prag.adb, exp_util.adb, freeze.adb, frontend.adb, ghost.adb, 12387 * inline.adb, lib-writ.adb, scans.adb, scans.ads, sem_attr.adb, 12388 * sem_aux.adb, sem_ch10.adb, sem_ch13.adb, sem_ch6.adb, sem_ch9.adb, 12389 * sem_elab.adb, sem_res.adb, sem_util.adb, sem_util.ads, 12390 * sem_warn.adb: Call Pragma_Name_Mapped instead of Pragma_Name 12391 as appropriate. 12392 123932017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12394 12395 * exp_ch9.adb: Minor reformatting. 12396 123972017-01-06 Tristan Gingold <gingold@adacore.com> 12398 12399 * exp_ch9.ads, exp_ch9.adb (Build_Entry_Names): Remove (unused). 12400 * rtsfind.ads (RE_Task_Entry_Names_Array, RO_ST_Set_Entry_Names) 12401 (RE_Protected_Entry_Names_Array, RO_PE_Set_Entry_Names): Remove 12402 (unused). 12403 * s-taskin.ads, s-taskin.adb (Set_Entry_Names, 12404 Task_Entry_Names_Array, Task_Entry_Names_Access): Remove. 12405 * s-tpoben.ads, s-tpoben.adb (Set_Entry_Names, 12406 Protected_Entry_Names_Array, Protected_Entry_Names_Access): Remove. 12407 124082017-01-06 Bob Duff <duff@adacore.com> 12409 12410 * sinfo.ads, sinfo.adb (Map_Pragma_Name): Preparation work, 12411 dummy implementation of Map_Pragma_Name. 12412 124132017-01-06 Tristan Gingold <gingold@adacore.com> 12414 12415 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Make the 12416 entry_body variable constant. 12417 * s-taprob.ads (Entry_Body_Access): Move to s-tposen. 12418 * s-tpoben.ads (Protected_Entry_Body_Access): Now access 12419 to constant. 12420 * s-tposen.ads (Entry_Body_Access): Moved from s-taprob, 12421 now access to constant. 12422 124232017-01-06 Gary Dismukes <dismukes@adacore.com> 12424 12425 * einfo.ads, sem_res.adb, sem_attr.adb, sem_ch6.adb: Minor 12426 reformatting and typo fixes. 12427 124282017-01-06 Bob Duff <duff@adacore.com> 12429 12430 * snames.ads-tmpl: New names for pragma renaming. 12431 * snames.adb-tmpl (Is_Configuration_Pragma_Name): Minor cleanup. 12432 * par-prag.adb: Add new pragma name to case statement. 12433 * sem_prag.adb (Rename_Pragma): Initial cut at semantic analysis 12434 of the pragma. 12435 * sinfo.ads, sinfo.adb (Pragma_Name_Mapped): Preparation work, 12436 Dummy implementation of Pragma_Name_Mapped. 12437 124382017-01-06 Ed Schonberg <schonberg@adacore.com> 12439 12440 * exp_ch6.adb (Expand_Protected_Subprogram_Call): Add guard to 12441 better detect call within an entry_wrapper. 12442 * sem_res.adb (Resolve_Call): A protected call within an 12443 entity_wrapper is analyzed in the context of the protected 12444 object but corresponds to a pre-analysis and is not an access 12445 before elaboration. 12446 * sem_attr.adb: Minor reformatting. 12447 124482017-01-06 Justin Squirek <squirek@adacore.com> 12449 12450 * sem_attr.adb (Analyze_Attribute): Modify semantic checks for 12451 Finalization_Size to allow a prefix of any non-class-wide type. 12452 * sem_attr.ads Modify comment for Finalization_Size to include 12453 definite type use case. 12454 124552017-01-06 Ed Schonberg <schonberg@adacore.com> 12456 12457 * einfo.ads, einfo.adb (Is_Entry_Wrapper): New flag, defined 12458 on procedures that are wrappers created for entries that have 12459 preconditions. 12460 * sem_ch6.adb (Analyze_Subrogram_Body_Helper): If the subprogram 12461 body is an entry_wrapper, compile it in the context of the 12462 synchronized type, because a precondition may refer to funtions 12463 of the type. 12464 * exp_ch9.adb (Build_Contract_Wrapper): Set Is_Entry_Wrapper on 12465 body entity. 12466 * exp_ch6.adb (Expand_Protected_Subprogram_Call): if the call is 12467 within an Entry_Wrapper this is an external call whose target 12468 is the synchronized object that is the actual in the call to 12469 the wrapper. 12470 124712017-01-06 Yannick Moy <moy@adacore.com> 12472 12473 * sem_attr.adb (Analyze_Attribute/Attribute_Loop_Entry): Analyze node 12474 in tree, which means not analyzing the previous prefix if the node has 12475 been rewritten into its prefix. 12476 124772017-01-06 Gary Dismukes <dismukes@adacore.com> 12478 12479 * s-tpobop.adb: Minor reformatting. 12480 124812017-01-06 Ed Schonberg <schonberg@adacore.com> 12482 12483 * checks.adb (Ensure_Valid): Do not generate a validity check 12484 within a generated predicate function, validity checks will have 12485 been applied earlier when required. 12486 124872017-01-06 Tristan Gingold <gingold@adacore.com> 12488 12489 * s-tpoben.ads (Protection_Entries): Add comment and reorder 12490 components for performances. 12491 * s-tpobop.adb (PO_Do_Or_Queue): Implement Max_Queue_Length runtime 12492 semantic. 12493 124942017-01-06 Ed Schonberg <schonberg@adacore.com> 12495 12496 * sem_eval.adb (Check_Expression_Against_Static_Predicate): 12497 If expression is compile-time known and obeys a static predicate 12498 it must be labelled as static, to prevent spurious warnings and 12499 run-time errors, e.g. in case statements. This is relevant when 12500 the expression is the result of constant-folding a type conversion 12501 whose expression is a variable with a known static value. 12502 125032017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12504 12505 * exp_attr.adb, sem_attr.ads: Minor reformatting. 12506 125072017-01-06 Justin Squirek <squirek@adacore.com> 12508 12509 * exp_attr.adb (Expand_N_Attribute_Reference): Add entry for 12510 expansion of Finalization_Size attribute. 12511 * sem_attr.adb (Analyze_Attribute): Add entry to check the 12512 semantics of Finalization_Size. 12513 (Eval_Attribute): Add null entry for Finalization_Size. 12514 * sem_attr.ads: Add Finalization_Size to the implementation 12515 dependent attribute list. 12516 * snames.ads-tmpl: Add name entry for Finalization_Size attribute. 12517 125182017-01-06 Ed Schonberg <schonberg@adacore.com> 12519 12520 * sem_ch5.adb (Analyze_Loop_Statement): If the loop includes an 12521 iterator specification with a serious syntactic error, transform 12522 construct into an infinite loop in order to continue analysis 12523 and prevent a compiler abort. 12524 125252017-01-06 Tristan Gingold <gingold@adacore.com> 12526 12527 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Do not generate 12528 max_queue_lengths_array if unused. 12529 125302017-01-06 Bob Duff <duff@adacore.com> 12531 12532 * errout.adb (Set_Msg_Text): Protect against out-of-bounds 12533 array access, in case "\" is at the end of Text. 12534 * stylesw.adb (Set_Style_Check_Options): Don't include input 12535 characters in the error message template, because they could 12536 be control characters such as "\", which Errout will try to 12537 interpret. 12538 125392017-01-06 Ed Schonberg <schonberg@adacore.com> 12540 12541 * sem_ch4.adb (Find_Indexing_Operations, Inspect_Declarations): 12542 For a private type examine the visible declarations that follow 12543 the partial view, not just the private declarations that follow 12544 the full view. 12545 125462017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12547 12548 * exp_ch5.adb, sem_ch3.adb, checks.adb: Minor reformatting and 12549 code cleanup. 12550 125512017-01-06 Ed Schonberg <schonberg@adacore.com> 12552 12553 * exp_ch5.adb (Get_Default_Iterator): For a derived type, the 12554 alias of the inherited op is the parent iterator, no need to 12555 examine dispatch table positions which might not be established 12556 yet if type is not frozen. 12557 * sem_disp.adb (Check_Controlling_Formals): The formal of a 12558 predicate function may be a subtype of a tagged type. 12559 * sem_ch3.adb (Complete_Private_Subtype): Adjust inheritance 12560 of representation items for the completion of a type extension 12561 where a predicate applies to the partial view. 12562 * checks.ads, checks.adb (Apply_Predicate_Check): Add optional 12563 parameter that designates function whose actual receives a 12564 predicate check, to improve warning message when the check will 12565 lead to infinite recursion. 12566 * sem_res.adb (Resolve_Actuals): Pass additional parameter to 12567 Apply_Predicate_Check. 12568 125692017-01-06 Tristan Gingold <gingold@adacore.com> 12570 12571 * s-rident.ads (Profile_Info): Remove No_Entry_Queue from 12572 Gnat_Extended_Ravenscar. 12573 * exp_ch9.adb, s-tpoben.adb, s-tpoben.ads: Fix spelling. 12574 125752017-01-06 Gary Dismukes <dismukes@adacore.com> 12576 12577 * sem_util.ads: Minor typo fix and reformatting. 12578 125792017-01-06 Yannick Moy <moy@adacore.com> 12580 12581 * ghost.adb Minor fixing of references to SPARK RM. 12582 (Check_Ghost_Context): Check whether reference is to a lvalue 12583 before issuing an error about violation of SPARK RM 6.9(13) 12584 when declaration has Ghost policy Check and reference has Ghost 12585 policy Ignore. 12586 * sem_util.adb Minor indentation. 12587 * sem_ch10.adb (Analyze_Package_Body_Stub, Analyze_Protected_Body_Stub, 12588 Analyze_Task_Body_Stub): Set Ekind of the defining identifier. 12589 * sem_util.ads (Unique_Defining_Entity): Document the result 12590 for package body stubs. 12591 125922017-01-06 Tristan Gingold <gingold@adacore.com> 12593 12594 * raise-gcc.c (abort): Macro to call Abort_Propagation. 12595 * s-tpoben.ads (Protected_Entry_Queue_Max_Access): Make it access 12596 constant. 12597 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): 12598 Do not generate the Entry_Max_Queue_Lengths_Array if all default 12599 values. 12600 * exp_util.adb (Corresponding_Runtime_Package): Consider 12601 Max_Queue_Length pragma. 12602 126032017-01-06 Justin Squirek <squirek@adacore.com> 12604 12605 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): 12606 Remove declaration generation in the case of 12607 System_Tasking_Protected_Objects_Single_Entry being used, 12608 and add a warning message when this is detected to occur. 12609 (Make_Initialize_Protection): Remove reference pass in the case 12610 of System_Tasking_Protected_Objects_Single_Entry. 12611 * rtsfind.ads: Remove RE_Protected_Entry_Queue_Max 12612 * s-tposen.adb (Initialize_Protection_Entry): Remove 12613 Entry_Queue_Max parameter. 12614 * s-tposen.ads: Remove the types use to store the entry queue 12615 maximum. 12616 * sem_prag.adb (Analyze_Pragma): Remove entry families restriction 12617 126182017-01-06 Yannick Moy <moy@adacore.com> 12619 12620 * sem_util.adb, sem_util.ads (Get_Enum_Lit_From_Pos): Strengthen 12621 behavior of function, to also accept out of range positions 12622 and raise Constraint_Error in such case, and to copy sloc from 12623 literal if No_Location passed as location. 12624 * uintp.adb, uintp.ads (UI_To_Int, UI_To_CC): Strengthen behavior 12625 of functions to raise Constraint_Error in case of value not in 12626 appropriate range. 12627 126282017-01-06 Tristan Gingold <gingold@adacore.com> 12629 12630 * sem_util.adb, s-taprop-linux.adb (Finalize_TCB): Remove call to 12631 Invalidate_Stack_Cache. 12632 126332017-01-06 Eric Botcazou <ebotcazou@adacore.com> 12634 12635 * s-os_lib.adb: Minor fix to the signature of Readlink. 12636 126372017-01-06 Javier Miranda <miranda@adacore.com> 12638 12639 * sem_ch6.adb (Conforming_Types): Handle another 12640 confusion between views in a nested instance with an actual 12641 private type whose full view is not in scope. 12642 126432017-01-06 Arnaud Charlet <charlet@adacore.com> 12644 12645 * exp_ch5.adb (Expand_N_If_Statement): Obey existing comment and 12646 mark a rewritten if statement as explicit (Comes_From_Source). 12647 126482017-01-06 Gary Dismukes <dismukes@adacore.com> 12649 12650 * sem_prag.adb, rtsfind.adb, sem_util.adb: Minor typo fixes. 12651 126522017-01-06 Tristan Gingold <gingold@adacore.com> 12653 12654 * ada.ads, a-unccon.ads: Add pragma No_Elaboration_Code_All. 12655 126562017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12657 12658 * sem_case.adb: Minor reformatting. 12659 126602017-01-06 Thomas Quinot <quinot@adacore.com> 12661 12662 * g-socthi-mingw.adb: Remove now extraneous USE TYPE clause 12663 126642017-01-06 Justin Squirek <squirek@adacore.com> 12665 12666 * aspects.adb: Register aspect in Canonical_Aspect. 12667 * aspects.ads: Associate qualities of Aspect_Max_Queue_Length 12668 into respective tables. 12669 * einfo.ads, einfo.adb: Add a new attribute for 12670 handling the parameters for Pragma_Max_Entry_Queue 12671 (Entry_Max_Queue_Lengths_Array) in E_Protected_Type. Subprograms 12672 for accessing and setting were added as well. 12673 * par-prag.adb (Prag): Register Pramga_Max_Entry_Queue. 12674 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Emit 12675 declaration for pramga arguments and store them in the protected 12676 type node. 12677 (Make_Initialize_Protection): Pass a reference to 12678 the Entry_Max_Queue_Lengths_Array in the protected type node to 12679 the runtime. 12680 * rtsfind.adb: Minor grammar fix. 12681 * rtsfind.ads: Register new types taken from the 12682 runtime libraries RE_Protected_Entry_Queue_Max and 12683 RE_Protected_Entry_Queue_Max_Array 12684 * s-tposen.adb, s-tpoben.adb 12685 (Initialize_Protection_Entry/Initialize_Protection_Entries): 12686 Add extra parameter and add assignment to local object. 12687 * s-tposen.ads, s-tpoben.ads: Add new types to 12688 store entry queue maximums and a field to the entry object record. 12689 * sem_ch13.adb (Analyze_Aspect_Specifications): Add case statement 12690 for Aspect_Max_Queue_Length. 12691 (Check_Aspect_At_Freeze_Point): 12692 Add aspect to list of aspects that don't require delayed analysis. 12693 * sem_prag.adb (Analyze_Pragma): Add case statement for 12694 Pragma_Max_Queue_Length, check semantics, and register arugments 12695 in the respective entry nodes. 12696 * sem_util.adb, sem_util.ads Add functions Get_Max_Queue_Length 12697 and Has_Max_Queue_Length 12698 * snames.ads-tmpl: Add constant for the new aspect-name 12699 Name_Max_Queue_Length and corrasponding pragma. 12700 127012017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12702 12703 * exp_util.adb (Is_Controlled_Function_Call): 12704 Reimplemented. Consider any node which has an entity as the 12705 function call may appear in various ways. 12706 127072017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12708 12709 * exp_attr.adb (Rewrite_Stream_Proc_Call): Use 12710 an unchecked type conversion when performing a view conversion 12711 to/from a private type. In all other cases use a regular type 12712 conversion to ensure that any relevant checks are properly 12713 installed. 12714 127152017-01-06 Hristian Kirtchev <kirtchev@adacore.com> 12716 12717 * sem_prag.adb, sem_ch8.adb: Minor reformatting. 12718 127192017-01-06 Ed Schonberg <schonberg@adacore.com> 12720 12721 * sem_case.adb (Explain_Non_Static_Bound): Suppress cascaded 12722 error on case expression that is an entity, when coverage is 12723 incomplete and entity has a static value obtained by local 12724 propagation. 12725 (Handle_Static_Predicate): New procedure, subsidiary of 12726 Check_Choices, to handle case alternatives that are either 12727 subtype names or subtype indications involving subtypes that 12728 have static predicates. 12729 127302017-01-06 Thomas Quinot <quinot@adacore.com> 12731 12732 * s-oscons-tmplt.c, g-socket.adb, g-socket.ads, g-sothco.ads: 12733 (GNAT.Socket): Add support for Busy_Polling and Generic_Option 12734 127352017-01-06 Bob Duff <duff@adacore.com> 12736 12737 * sem_elab.adb (Activate_Elaborate_All_Desirable): Don't add 12738 Elaborate_All(P) to P itself. That could happen in obscure cases, 12739 and always introduced a cycle (P body must be elaborated before 12740 P body). 12741 * lib-writ.ads: Comment clarification. 12742 * ali-util.ads: Minor comment fix. 12743 * ali.adb: Minor reformatting. 12744 127452017-01-06 Tristan Gingold <gingold@adacore.com> 12746 12747 * a-exexpr-gcc.adb: Improve comment. 12748 127492017-01-03 James Cowgill <James.Cowgill@imgtec.com> 12750 12751 * s-linux-mips.ads: Use correct signal and errno constants. 12752 (sa_handler_pos, sa_mask_pos): Fix offsets for 64-bit MIPS. 12753 127542017-01-03 James Cowgill <James.Cowgill@imgtec.com> 12755 12756 * s-linux-mips.ads: Rename from s-linux-mipsel.ads. 12757 * gcc-interface/Makefile.in (MIPS/Linux): Merge mips and mipsel 12758 sections. 12759 127602017-01-01 Eric Botcazou <ebotcazou@adacore.com> 12761 12762 * gnatvsn.ads: Bump copyright year. 12763 127642017-01-01 Jakub Jelinek <jakub@redhat.com> 12765 12766 * gnat_ugn.texi: Bump @copying's copyright year. 12767 * gnat_rm.texi: Likewise. 12768 12769Copyright (C) 2017 Free Software Foundation, Inc. 12770 12771Copying and distribution of this file, with or without modification, 12772are permitted in any medium without royalty provided the copyright 12773notice and this notice are preserved. 12774