12019-12-22 Maciej W. Rozycki <macro@wdc.com> 2 3 * gcc-interface/Makefile.in (toolexeclibdir): New variable. 4 52019-12-18 Eric Botcazou <ebotcazou@adacore.com> 6 7 * gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Warnings>: Push a 8 diagnostics state for pragma Warnings (Off) before turning off all 9 the warnings and only pop it for pragma Warnings (On). 10 112019-12-18 Justin Squirek <squirek@adacore.com> 12 13 * sem_ch6.adb (Analyze_Function_Return): Modify handling of 14 extended return statements to check accessibility of access 15 discriminants. 16 (Check_Aggregate_Accessibility): Removed. 17 (Check_Return_Obj_Accessibility): Added to centralize checking 18 of return aggregates and subtype indications in the case of an 19 extended return statement. 20 212019-12-18 Arnaud Charlet <charlet@adacore.com> 22 23 * libgnat/s-regpat.adb (Parse_Literal, Parse_Piece): Ensure 24 Expr_Flags is always fully initialized. 25 262019-12-18 Arnaud Charlet <charlet@adacore.com> 27 28 * libgnat/s-atopar.ads, libgnat/s-atopex.ads (Atomic_Type): Can 29 now be marked Atomic. This requires marking the unit Ada 202x. 30 312019-12-18 Arnaud Charlet <charlet@adacore.com> 32 33 * libgnat/a-nbnbin.ads, libgnat/a-nbnbin.adb, 34 libgnat/a-nbnbre.ads, libgnat/a-nbnbre.adb: Replace 35 Optional_Big_* types by a simple check and exception raise in 36 Get_Bignum. 37 (Set_Bignum): Arg should be 'out' and not 'in out'. 38 (Invalid_Big_Integer, No_Big_Real): Removed. 39 (Is_Valid): Now convention Intrinsic. 40 412019-12-18 Piotr Trojanek <trojanek@adacore.com> 42 43 * doc/gnat_rm/implementation_defined_pragmas.rst, 44 doc/gnat_rm/obsolescent_features.rst, 45 doc/gnat_ugn/gnat_and_program_execution.rst, exp_attr.adb, 46 exp_ch9.adb, init.c, libgnat/s-valrea.adb, par-ch6.adb, 47 sem_attr.adb, sem_ch4.adb, sem_util.ads: Fix trivial typos. 48 * gnat_rm.texi, gnat_ugn.texi: Regenerate. 49 502019-12-18 Gary Dismukes <dismukes@adacore.com> 51 52 * sem_res.adb (Resolve_Type_Conversion): Add handling for access 53 types with designated operand and target types that are 54 referenced in places that have a limited view of an interface 55 type by retrieving the nonlimited view when it exists. Add ??? 56 comments related to missing limited_with_clause handling for 57 Target (in the non-access case). 58 592019-12-18 Ed Schonberg <schonberg@adacore.com> 60 61 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada_2020 62 the keyword WITH can indicate the start of aspect specifications 63 and not a private type extension. 64 * sem_ch12.adb (Analyze_Formal_Type): Indicate that it is a 65 first subtype. 66 (Instantiate_Type): New procedure 67 Check_Shared_Variable_Control_Aspects to verify matching rules 68 between formal and actual types. Note that an array type with 69 aspect Atomic_Components is considered compatible with an array 70 type whose component type is Atomic, even though the array types 71 do not carry the same aspect. 72 * sem_ch13.adb (Analyze_One_Aspect): Allow shared variable 73 control aspects to appear on formal types. 74 (Rep_Item_Too_Early): Exclude aspects on formal types. 75 * sem_prag.adb (Mark_Type): Handle properly pragmas that come 76 from aspects on formal types. 77 (Analyze_Pragma, case Atomic_Components): Handle formal types. 78 792019-12-18 Eric Botcazou <ebotcazou@adacore.com> 80 81 * cstand.adb (Create_Standard): Remove duplicate line and 82 adjust. 83 842019-12-18 Javier Miranda <miranda@adacore.com> 85 86 * debug.adb: Document -gnatd_K as a reserved switch for the 87 detection of known problem issues of previous releases. 88 892019-12-18 Ghjuvan Lacambre <lacambre@adacore.com> 90 91 * par-ch13.adb: Check if declarations allow aspect 92 specifications. 93 942019-12-18 Piotr Trojanek <trojanek@adacore.com> 95 96 * einfo.ads (Is_Ghost_Entity): Fix typo in comment. 97 982019-12-18 Eric Botcazou <ebotcazou@adacore.com> 99 100 * layout.adb (Layout_Type): In the case of composite types, do 101 not copy the Esize onto the RM_Size if the latter is not set. 102 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: 103 Also cap the alignment if an Object_Size clause has been 104 specified. Pass VAR_DECL in the call to validate_size for the 105 Esize of a type. 106 (validate_size): Be prepared to give an error on an Object_Size 107 clause. 108 1092019-12-18 Eric Botcazou <ebotcazou@adacore.com> 110 111 * einfo.ads (Handling of Type'Size Value): Add references to the 112 introduction of Object_Size in Ada 2020. 113 * sem_eval.adb (Subtypes_Statically_Match): Likewise. 114 1152019-12-18 Bob Duff <duff@adacore.com> 116 117 * sem_ch3.adb (Derive_Subprogram): Do not set the 118 Requires_Overriding flag in the above-mentioned case. 119 1202019-12-18 Bob Duff <duff@adacore.com> 121 122 * sem_ch8.adb (Note_Redundant_Use): It was already checking for 123 a use clause in the visible part of the child. Add an additional 124 check for a use clause in the context clause of the child. 125 1262019-12-16 Bob Duff <duff@adacore.com> 127 128 * errout.adb (Handle_Serious_Error): Disable the above-mentioned 129 warnings. 130 1312019-12-16 Bob Duff <duff@adacore.com> 132 133 * errout.adb, errout.ads: Improve comments. 134 1352019-12-16 Bob Duff <duff@adacore.com> 136 137 * sem_util.ads: Minor comment fix. 138 1392019-12-16 Bob Duff <duff@adacore.com> 140 141 * errout.ads, errout.adb (Is_Size_Too_Small_Message): Check for 142 "size for" instead of "size for& too small, minimum allowed is 143 ^". 144 1452019-12-16 Eric Botcazou <ebotcazou@adacore.com> 146 147 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Set only 148 the RM_Size on the subtype built for a Component_Size clause 149 when the component type is a biased integer type. 150 1512019-12-16 Arnaud Charlet <charlet@adacore.com> 152 153 * socket.c: Shutdown warning. 154 1552019-12-16 Arnaud Charlet <charlet@adacore.com> 156 157 * libgnarl/s-tataat.ads (Deallocator): Mark as Favor_Top_Level. 158 1592019-12-16 Arnaud Charlet <charlet@adacore.com> 160 161 * libgnat/s-aotase.adb, libgnat/s-aotase.ads, 162 libgnat/s-atoope.ads, libgnat/s-atopar.adb, 163 libgnat/s-atopar.ads, libgnat/s-atopex.adb, 164 libgnat/s-atopex.ads: New files. 165 * libgnat/s-atopri.ads: Add new intrinsics. 166 * Makefile.rtl: Add new runtime files. 167 * impunit.adb: Add new units to Ada 2020 list. 168 1692019-12-16 Eric Botcazou <ebotcazou@adacore.com> 170 171 * freeze.adb (Check_Strict_Alignment): Remove new check on 172 Has_Aliased_Components for array types. 173 1742019-12-16 Ed Schonberg <schonberg@adacore.com> 175 176 * sem_ch4.adb (Try_Container_Indexing): In the case of a derived 177 container type, use the base type to look for candidate indexing 178 operations, because the object may be a constrained subtype or 179 itype with no explicit declaration. Candidate indexing 180 operations are found in the same scope and list of declarations 181 as the declaration of the base type. 182 1832019-12-16 Ed Schonberg <schonberg@adacore.com> 184 185 * scng.adb (Scan): In Ada2020, a left-bracket indicates the 186 start of an homogenous aggregate. 187 * par-ch4.adb (P_Reduction_Attribute_Reference): New procedure. 188 (P_Aggregate): Recognize Ada2020 bracket-delimited aggregates. 189 (P_Primary): Ditto. 190 * par-util.adb (Comma_Present): Return false on a right bracket 191 in Ada2020, indicating the end of an aggregate. 192 * snames.ads-tmpl: Introduce Name_Reduce and Attribute Reduce. 193 * sinfo.ads, sinfo.adb (Is_Homogeneous_Aggregate): New flag on 194 aggregates, to designate an Ada2020 array or container aggregate 195 that is bracket-delimited in the source. 196 * sem_attr.adb (Analyze_Attribute): For attribute Reduce, verify 197 that two arguments are present, and verify that the prefix is a 198 stream or an object that is iterable (array or contrainer). 199 (Resolve_Attribute): For attribute Reduce, resolve initial value 200 with the type of the context. Type-checking of element type of 201 prefix is performed after expansion. 202 * exp_attr.adb (Expand_N_Attribute_Reference): For attribute 203 Reduce, expand into a loop: a) If prefix is an aggregate with a 204 single iterated component association, use its iterator 205 specification to construct a loop, b) If prefix is a name, build 206 a loop using an element iterator loop. 207 * scans.ads: Add brackets tokens. 208 2092019-12-16 Eric Botcazou <ebotcazou@adacore.com> 210 211 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust calls to 212 validate_size. 213 (gnat_to_gnu_component_type): Likewise. 214 (gnat_to_gnu_field): Likewise and pass string for error messages. 215 (components_need_strict_alignment): Remove test on Is_Aliased and 216 add test for the independence of the component. 217 (validate_size): Add S1 and S2 string parameters and use them to 218 give better error messages for fields. Tweak a couple of messages. 219 * einfo.ads (Has_Independent_Components): Document more cases. 220 (Is_Independent): Likewise. 221 (Strict_Alignment): Document new semantics. 222 * exp_ch9.adb (Install_Private_Data_Declarations): Also set the 223 Is_Independent flag along with Is_Aliased on the renaming 224 entity. 225 * freeze.adb (Size_Known): Remove always-false test and add test 226 for the strict-alignment on the record type. Remove redundant 227 tests and add test for the strict-alignment on the component 228 type. 229 (Check_Strict_Alignment): Set the flag if the type is by-ref and 230 remove now redundant conditions. Set the flag on an array type 231 if it has aliased components. In the record type case, do not 232 set type for C_Pass_By_Copy convention. 233 (Freeze_Array_Type): Move code checking for conflicts between 234 representation aspects and clauses to before specific handling 235 of packed array types. Give a warnind instead of an error for a 236 conflict with pragma Pack. Do not test Has_Pragma_Pack for the 237 specific handling of packed array types. 238 (Freeze_Record_Type): Move error checking of representation 239 clause to... 240 (Freeze_Entity): ...here after Check_Strict_Alignment is called. 241 * sem_aggr.adb (Array_Aggr_Subtype): Also set the Is_Independent 242 flag along with Is_Aliased on the Itype. 243 * sem_ch13.adb (Check_Record_Representation_Clause): Do not set 244 the RM size for a strict-alignment type. 245 * sem_ch3.adb (Add_Interface_Tag_Components): Also set the 246 Is_Independent flag along with Is_Aliased on the tag. 247 (Add_Interface_Tag_Components): Likewise on the offset. 248 (Analyze_Component_Declaration): Likewise on the component. 249 (Analyze_Object_Declaration): Likewise on the object. 250 (Constrain_Array): Likewise on the array. 251 (Record_Type_Declaration: Likewise on the tag. 252 (Array_Type_Declaration): Also set the 253 Has_Independent_Components flag along with 254 Has_Aliased_Components on the array. 255 (Copy_Array_Base_Type_Attributes): Copy 256 Has_Independent_Components. 257 (Copy_Array_Subtype_Attributes): Copy Is_Atomic, Is_Independent 258 and Is_Volatile_Full_Access. 259 (Analyze_Iterator_Specification): Set Is_Independent on the loop 260 variable according to Independent_Components on the array. 261 * sem_ch5.adb: Likewise. 262 * sem_ch6.adb (Process_Formals): Also set the Is_Independent 263 flag along with Is_Aliased on the formal. 264 2652019-12-16 Eric Botcazou <ebotcazou@adacore.com> 266 267 * sem_ch8.adb (Analyze_Object_Renaming): Set Atomic, Independent 268 and Volatile_Full_Access aspects on the entity of the renaming 269 the same way as the Volatile aspect is set. 270 * sem_util.ads (Is_Atomic_Object_Entity): Move declaration to... 271 (Is_Independent_Object): New function. 272 (Is_Volatile_Full_Access_Object): Likewise. 273 * sem_util.adb (Is_Atomic_Object_Entity): ...here. 274 (Prefix_Has_Atomic_Components): Minor tweak. 275 (Is_Atomic_Object): Test Is_Atomic on the Etype uniformly. 276 (Is_Atomic_Or_VFA_Object): Call Is_Volatile_Full_Access_Object. 277 (Is_Independent_Object): New predicate. 278 (Is_Subcomponent_Of_Atomic_Object): Remove redundant test. 279 (Is_Volatile_Full_Access_Object): New predicate. 280 (Is_Volatile_Prefix): Rename into... 281 (Prefix_Has_Volatile_Components): ... and call 282 Is_Volatile_Object. 283 (Object_Has_Volatile_Components): Delete. 284 (Is_Volatile_Object): Simplify. 285 * gcc-interface/trans.c (node_is_volatile_full_access): Adjust 286 comment. 287 2882019-12-16 Bob Duff <duff@adacore.com> 289 290 * par.adb: Add Scopes function to do range checking on the scope 291 stack. Call Scopes all over the parser. Add 292 SIS_Aspect_Import_Seen flag. 293 * par-ch6.adb (P_Subprogram): Initialize SIS_Aspect_Import_Seen 294 to False at the start, and check it at the end. 295 * par-ch13.adb (Get_Aspect_Specifications): Set 296 SIS_Aspect_Import_Seen to True when appropriate. 297 * par-ch10.adb, par-ch12.adb, par-ch2.adb, par-ch3.adb, 298 par-ch5.adb, par-ch7.adb, par-ch9.adb, par-endh.adb, 299 par-util.adb: Call Scopes. 300 3012019-12-16 Eric Botcazou <ebotcazou@adacore.com> 302 303 * sem_prag.adb (Atomic_Components): Remove local variable and 304 fix consistency issues. Call Component_Type on the Etype of E. 305 (Independent_Components): Remove local variable. 306 * sem_util.adb (Is_Subcomponent_Of_Atomic_Object): Properly deal 307 with prefixes that are access values. 308 * gcc-interface/trans.c (atomic_acces_t): New enumeral type. 309 (node_is_atomic) <N_Indexed_Component>: Test the prefix. 310 (node_has_volatile_full_access): Rename into... 311 (node_is_volatile_full_access): ...this. 312 (node_is_component): New predicare. 313 (gnat_strip_type_conversion): Delete. 314 (outer_atomic_access_required_p): Likewise. 315 (atomic_access_required_p): Rename into... 316 (get_atomic_access): ...this. Implement the 3 different semantics 317 of Atomic and Volatile_Full_Access. 318 (simple_atomic_access_required_p): New predicate. 319 (Call_to_gnu): Remove outer_atomic_access parameter and change the 320 type of atomic_access parameter to atomic_acces_t. Replace call to 321 atomic_access_required_p with simple_atomic_access_required_p for 322 the in direction and call get_atomic_access for the out direction 323 instead of [outer_]atomic_access_required_p. 324 (lhs_or_actual_p): Constify local variables. 325 (present_in_lhs_or_actual_p): Likewise. 326 (gnat_to_gnu) <N_Identifier>: Replace call to atomic_access_required_p 327 with simple_atomic_access_required_p. 328 <N_Explicit_Dereference>: Likewise. 329 <N_Indexed_Component>: Likewise. 330 <N_Selected_Component>: Likewise. 331 <N_Assignment_Statement>: Call get_atomic_access for the name instead 332 of [outer_]atomic_access_required_p. Adjust call to Call_to_gnu. 333 <N_Function_Call>: Adjust call to Call_to_gnu. 334 (get_controlling_type): Fix typo in comment. 335 3362019-12-16 Eric Botcazou <ebotcazou@adacore.com> 337 338 * fe.h (Ada_Version_Type): New typedef. 339 (Ada_Version): Declare. 340 * opt.ads (Ada_Version_Type): Add Convention C and WARNING line. 341 (Ada_Version): Add WARNING line. 342 (Exception_Mechanism_Type): Likewise. 343 3442019-12-16 Gary Dismukes <dismukes@adacore.com> 345 346 * checks.adb, sem_util.adb: Minor reformatting and U.S. spelling 347 adjustment. 348 3492019-12-16 Bob Duff <duff@adacore.com> 350 351 * sem_ch10.adb (Analyze_Subunit): Give an error if the subunit 352 is not a proper body. This hides the confusing "duplicate body" 353 message that was previously given. 354 3552019-12-16 Eric Botcazou <ebotcazou@adacore.com> 356 357 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Document 358 third special case of renamings requiring special handling. 359 (Evaluation_Required): Return true for an atomic or VFA prefix. 360 3612019-12-16 Ed Schonberg <schonberg@adacore.com> 362 363 * checks.adb (Apply_Float_Conversion_Check): Use node of type 364 conversion and not its parent, when inserting the declaration 365 for the temporary that hold the result of the conversion. 366 Previously the declaration was inserted above the parent of the 367 conversion, apparently as a small optimization for the 368 subsequent traversal in Insert_Actions. Unfortunately a similar 369 optimization takes place in Insert_Actions, assuming that the 370 insertion point must be above the expression that creates the 371 actions to insert. This is not correct in the presence of 372 conditional expressions (i.e. since Ada2012), where the 373 insertion must be in the list of actions attached to the current 374 alternative. 375 3762019-12-16 Bob Duff <duff@adacore.com> 377 378 * sem_attr.adb (Analyze_Attribute): Use Known_RM_Size. But we 379 still need Size_Known_At_Compile_Time, because when the size 380 really is known, sometimes only one or the other of these is 381 True. 382 3832019-12-16 Eric Botcazou <ebotcazou@adacore.com> 384 385 * sem_util.adb (Is_Atomic_Or_VFA_Object): Also return true for 386 components whose type is Volatile_Full_Access or which are 387 subject to the aspect/pragma individually. 388 * sem_util.ads (Is_Atomic_Object_Entity): Small comment fix. 389 3902019-12-16 Yannick Moy <moy@adacore.com> 391 392 * exp_ch6.adb: Fix comment. 393 * sem_res.adb (Resolve_Call): Do not check No_Recursion 394 restriction or indirectly No_Secondary_Stack restriction, when 395 inside an ignored ghost subprogram. 396 3972019-12-16 Arnaud Charlet <charlet@adacore.com> 398 399 * impunit.adb: Add a-nbnbin, a-nbnbre, a-nubinu to Ada 2020 400 units. 401 * Makefile.rtl: Enable new file. 402 * libgnat/a-nbnbin.adb, libgnat/a-nbnbin.ads, 403 libgnat/a-nbnbre.adb, libgnat/a-nbnbre.ads, 404 libgnat/a-nubinu.ads: New files. Provide default standalone 405 implementation of Ada.Numerics.Big_Numbers.Big_* based on 406 System.Generic_Bignum. 407 * libgnat/a-nbnbin__gmp.adb: Alternate implementation of 408 Ada.Numerics.Big_Numbers.Big_Integers based on GMP. Not enabled 409 for now. 410 * libgnat/s-bignum.ads, libgnat/s-bignum.adb: Now a simple 411 wrapper on top of s-genbig.ads. 412 * libgnat/s-genbig.ads, libgnat/s-genbig.adb: New files, making 413 s-bignum generic for reuse in Ada.Numerics.Big_Numbers. 414 4152019-12-16 Bob Duff <duff@adacore.com> 416 417 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: 418 Correct documentation of -gnatw_C switch 419 * gnat_ugn.texi: Regenerate. 420 4212019-12-16 Joel Brobecker <brobecker@adacore.com> 422 423 * doc/gnat_ugn/building_executable_programs_with_gnat.rst 424 (_Switches_for_gnatbind): Reword the section explaining the 425 impact of -minimal on debugging. 426 * gnat_ugn.texi: Regenerate. 427 4282019-12-16 Gary Dismukes <dismukes@adacore.com> 429 430 * libgnat/g-exptty.adb, libgnat/g-exptty.ads: Typo fixes and 431 minor reformatting. 432 4332019-12-16 Eric Botcazou <ebotcazou@adacore.com> 434 435 * exp_ch6.adb (Requires_Atomic_Or_Volatile_Copy): New predicate. 436 (Expand_Actuals): Use it to decide whether to add call by copy 437 code as per the RM C.6(19) clause. 438 * fe.h (Is_Atomic_Object): Remove. 439 (Is_Volatile_Object): Likewise. 440 * sem_util.ads (Is_Atomic_Object): Remove WARNING note. 441 (Is_Volatile_Object): Likewise. 442 * gcc-interface/trans.c (atomic_or_volatile_copy_required_p): Delete. 443 (Call_to_gnu): Do not implement the RM C.6(19) clause. 444 4452019-12-16 Ghjuvan Lacambre <lacambre@adacore.com> 446 447 * sem_ch12.adb (Validate_Access_Subprogram_Instance): Add 448 Can_Never_Be_Null checks. 449 4502019-12-16 Eric Botcazou <ebotcazou@adacore.com> 451 452 * doc/gnat_rm/implementation_defined_pragmas.rst (VFA): Document 453 extension of the no-aliasing rule to any subcomponent. 454 * freeze.adb (Freeze_Object_Declaration): Small comment tweak. 455 (Freeze_Record_Type): Do not deal with delayed aspect 456 specifications for components here but... 457 (Freeze_Entity): ...here instead. 458 * sem_ch12.adb (Instantiate_Object): Improve wording of errors 459 given for legality rules in C.6(12) and implement the new rule 460 in C.6(13). 461 * sem_res.adb (Resolve_Actuals): Likewise. 462 * sem_prag.adb (Check_Atomic_VFA): New procedure implementing 463 the new legality rules in C.6(13). 464 (Process_Atomic_Independent_Shared_Volatile): Call 465 Check_Atomic_VFA to check the legality rules. Factor out code 466 marking types into... 467 (Mark_Type): ...this new procedure. 468 (Check_VFA_Conflicts): Do not check the legality rules here. 469 (Pragma_Atomic_Components): Call Check_Atomic_VFA on component 470 type. 471 * sem_util.ads (Is_Subcomponent_Of_Atomic_Object): Declare. 472 * sem_util.adb (Is_Subcomponent_Of_Atomic_Object): New 473 predicate. 474 * gnat_rm.texi: Regenerate. 475 4762019-12-13 Gary Dismukes <dismukes@adacore.com> 477 478 * doc/gnat_rm/implementation_defined_pragmas.rst: Minor 479 rewording of one sentence. 480 * gnat_rm.texi: Regenerate. 481 4822019-12-13 Arnaud Charlet <charlet@adacore.com> 483 484 * exp_unst.adb (Unnest_Subprogram): Account for trees produced 485 by Annex E constructs. 486 4872019-12-13 Ghjuvan Lacambre <lacambre@adacore.com> 488 489 * doc/gnat_rm/implementation_defined_pragmas.rst: Update 490 Initialize_Scalars documentation. 491 * gnat_rm.texi: Regenerate. 492 4932019-12-13 Javier Miranda <miranda@adacore.com> 494 495 * sem_ch13.adb (Analyze_Aspect_Specification): Processing a 496 precondition, if the expression is of the form A and then B, do 497 not generate separate Pre/Post aspects for the separate clases 498 when we are processing a generic unit. Required to avoid 499 reporting spurious visibility errors on the instantiations. 500 5012019-12-13 Eric Botcazou <ebotcazou@adacore.com> 502 503 * sem_res.adb (Resolve_Actuals): Give canonical error for 504 illegal case of atomic/volatile parameter also if the formal is 505 aliased. 506 5072019-12-13 Eric Botcazou <ebotcazou@adacore.com> 508 509 * sem_util.ads (Is_Atomic_Object): Mention relevant RM clauses. 510 * sem_util.adb (Is_Atomic_Object): For an indexed component, 511 only look at the Has_Atomic_Components aspect of the prefix and 512 do not recurse on it; for a selected component, do not look at 513 the prefix. 514 (Is_Atomic_Or_VFA_Object): Minor tweak. 515 5162019-12-13 Arnaud Charlet <charlet@adacore.com> 517 518 * libgnat/a-calfor.ads, libgnat/a-calfor.adb (Split_Duration): 519 New procedure. 520 (Split, Image): Use Split_Duration. Update Image spec. 521 5222019-12-13 Javier Miranda <miranda@adacore.com> 523 524 * exp_unst.adb (Unnest_Subprogram): Generate an extra temporary 525 to facilitate the C backend processing dereferences. 526 5272019-12-13 Javier Miranda <miranda@adacore.com> 528 529 * sem_prag.adb (Analyze_Pragma): Propagate the 530 Linker_Section_Attribute to the ultimate alias of the subprogram 531 to facilitate the C backend processing this attribute. 532 5332019-12-13 Yannick Moy <moy@adacore.com> 534 535 * sem_util.adb (Original_Aspect_Pragma_Name): Go through 536 Original_Node for pragma. 537 5382019-12-13 Piotr Trojanek <trojanek@adacore.com> 539 540 * exp_aggr.adb, exp_unst.adb: Minor fix typo in comment. 541 5422019-12-13 Steve Baird <baird@adacore.com> 543 544 * sem_res.adb (Resolve, Valid_Conversion): Add Base_Type call 545 when testing whether a type is a general access type. 546 5472019-12-13 Javier Miranda <miranda@adacore.com> 548 549 * exp_ch4.adb (Expand_N_Unchecked_Type_Conversion): Generate an 550 extra temporary for cases unsupported by the C backend. 551 5522019-12-13 Steve Baird <baird@adacore.com> 553 554 * einfo.ads: Correct comment for Derived_Type_Link to reflect 555 that fact that this function is now used for more than just 556 generation of warnings. 557 * sem_ch3.adb (Build_Derived_Type): Do not call 558 Set_Derived_Type_Link if the derived type and the parent type 559 are in different compilation units. Such a derivation cannot be 560 a problematic "early" derivation (identifying these is what the 561 Derived_Type_Link attribute is used for) and we don't like 562 inter-unit references that go in the opposite direction of 563 semantic dependencies. 564 * sem_ch13.adb (Is_Type_Related_Rep_Item): A new function, 565 analogous to the existing function Is_Operational_Item. 566 (Rep_Item_Too_Late): Generate a hard error (with same text as 567 the warning that was previously being generated) if the 568 AI12-0109 legality rule is violated. 569 5702019-12-13 Eric Botcazou <ebotcazou@adacore.com> 571 572 * doc/gnat_rm/implementation_defined_pragmas.rst: Minor tweak to 573 Volatile_Full_Access wording in GNAT RM. 574 * gnat_rm.texi: Regenerate. 575 5762019-12-13 Gary Dismukes <dismukes@adacore.com> 577 578 * exp_attr.adb (Expand_N_Attribute_Reference, 579 Attribute_Address): Suppress generation of a call to 580 Base_Address in the case where the Address attribute is being 581 used to initialize a corresponding component of an activation 582 record. 583 (Is_Unnested_Component_Init): New function to determine whether 584 an attribute reference for Address is used to initialized a 585 component of an activation record object that corresponds to the 586 object denoted by the prefix of the attribute (an assignment 587 used in support of unnesting for back ends like LLVM). 588 5892019-12-13 Ed Schonberg <schonberg@adacore.com> 590 591 * sem_res.adb (Resolve): IF an entity reference is overloaded 592 because its type has an Implicit_Dereference aspect, we must 593 examine the discriminants of the type to determine whether an 594 explicit dereference must be inserted for use in code 595 generation. Previously this was done for other expressions but 596 not for entity references by themselves. This was sufficient to 597 handle uses of the aspect in container handling and iteration, 598 but not more generally. 599 6002019-12-13 Javier Miranda <miranda@adacore.com> 601 602 * exp_disp.ads (Expand_Interface_Thunk): Adding one formal (the 603 interface type). 604 * exp_disp.adb (Expand_Interface_Thunk): Using the added formal 605 to ensure the correct profile of the thunk generated for 606 predefined primitives; in addition, the added formal is also 607 used to perform a check that ensures that the controlling type 608 of the thunk is the one expected by the GCC backend. 609 (Make_Secondary_DT, Register_Primitive): Adding the new formal 610 to the calls to Expand_Interface_Thunk. 611 * exp_ch6.adb (Register_Predefined_DT_Entry): Adding the new 612 formal to the call to Expand_Interface_Thunk. 613 * exp_intr.adb (Expand_Unc_Deallocation): When deallocating a 614 controlled type and the call to unchecked deallocation is 615 performed with a pointer to one of the convered interface types, 616 displace the pointer to the object to reference the base of the 617 object to deallocate its memory. 618 * gcc-interface/trans.c (maybe_make_gnu_thunk): Assert that the 619 controlling type of the thunk is an interface type. 620 6212019-12-13 Bob Duff <duff@adacore.com> 622 623 * exp_attr.adb (Is_Available): Remove this function, and replace 624 all calls with RTE_Available. RTE_Available will return True if 625 "not Configurable_Run_Time_Mode". Remove the "???" comment. 626 6272019-12-13 Ed Schonberg <schonberg@adacore.com> 628 629 * sem_ch7.adb (Analyze_Package_Body_Helper): Do not call 630 Declare_Inherited_Private_Subprograms on s child body: the 631 required operations have already been created when analyzing the 632 corresponding package declaration. This prevents a redeclaration 633 of inehrited operation, and a crash when inserting the new 634 operation in the current scope. 635 6362019-12-13 Yannick Moy <moy@adacore.com> 637 638 * sem_prag.adb (Analyze_Depends_In_Decl_Part, 639 Analyze_Global_In_Decl_Part, 640 Analyze_Refined_Depends_In_Decl_Part, 641 Analyze_Refined_Global_In_Decl_Part, Check_Missing_Part_Of): 642 Skip redundant checking involving visibility inside 643 instantiations. 644 6452019-12-13 Yannick Moy <moy@adacore.com> 646 647 * sem_res.adb (Resolve_Call): Prevent inlining inside while loop 648 conditions. 649 * sem_util.adb, sem_util.ads (In_While_Loop_Condition): New 650 query function. 651 6522019-12-13 Bob Duff <duff@adacore.com> 653 654 * impunit.ads: Add Ada_202X_Unit. 655 * impunit.adb: Add a table Non_Imp_File_Names_2X analogous to 656 the other tables. Add code to search this table. 657 * opt.ads: Add Warn_On_Ada_202X_Compatibility flag, currently 658 always True. 659 * sem_ch10.adb (Analyze_With_Clause): Give a warning if an Ada 660 2020 unit is with-ed when Ada_Version < Ada_2020. Change 'if' 661 to 'case': Full coverage rules rule. 662 6632019-12-13 Bob Duff <duff@adacore.com> 664 665 * rtsfind.ads: Minor comment fix. 666 6672019-12-13 Gary Dismukes <dismukes@adacore.com> 668 669 * sem_util.adb (Scope_Within): For the case of checking for a 670 task type procedure, check the Implementation_Base_Type of Curr. 671 (Scope_Within_Or_Same): For the case of checking for a task type 672 procedure, check the Implementation_Base_Type of Curr. 673 6742019-12-13 Arnaud Charlet <charlet@adacore.com> 675 676 * impunit.adb (Non_Imp_File_Names_12): Add 677 Ada.Containers.Vectors.Generic_Parallel_Sorting. 678 6792019-12-13 Justin Squirek <squirek@adacore.com> 680 681 * sem_res.adb (Resolve_Allocator): Add calls to 682 Check_Cond_Expr_Accessibility when a conditional expression is 683 found. 684 (Check_Allocator_Discrim_Accessibility_Exprs): Created to 685 recursively traverse a potentially compound conditional 686 expression and perform accessibility checks for each 687 alternative. 688 * sem_util.adb (Dynamic_Accessibility_Level): Avoid use of 689 original node of the expression in question so we can handle 690 dynamic accessibility in the limited case of a constant folded 691 conditional expression. 692 6932019-12-13 Steve Baird <baird@adacore.com> 694 695 * exp_ch4.adb (Expand_N_Op_Eq.Is_Equality): Move this function 696 from within Expand_N_Op_Eq.Find_Equality out to immediately 697 within Expand_N_Op_Eq in order to give it greater visibility. 698 Add a new Typ parameter (defaulted to Empty) which, if 699 non-empty, means the function will return False in the case of 700 an equality op for some other type. 701 * (Expand_N_Op_Eq.User_Defined_Primitive_Equality_Op): A new 702 function. Given an untagged record type, finds the corresponding 703 user-defined primitive equality op (if any). May return Empty. 704 Ignores visibility. 705 * (Expand_N_Op): For Ada2012 or later, check for presence of a 706 user-defined primitive equality op before falling back on the 707 usual predefined component-by-component comparison. If found, 708 then call the user-defined op instead. 709 7102019-12-13 Justin Squirek <squirek@adacore.com> 711 712 * sem_ch6.adb (Check_Overriding_Indicator): Modify condition to 713 take into account the modification of the Is_Hidden flag within 714 generic instances. 715 (Verify_Overriding_Indicator): Add an exception for controlled 716 primitives within an instance. 717 7182019-12-13 Ed Schonberg <schonberg@adacore.com> 719 720 * sinfo.ads, sinfo.adb (Aspect_On_Partial_View, 721 Set_Aspect_On_Partial_View): New flag for use by SPARK, to 722 indicate whether an aspect that appears on a type declaration 723 applies to the partial view of that type. 724 * sem_ch13.adb (Analyze_Aspect_Specification): Set new flag 725 appropriately. 726 7272019-12-12 Ed Schonberg <schonberg@adacore.com> 728 729 * sem_ch13.adb (Same_Reprewentation): if the actual in a call is 730 a generic actual type, use its bsae type to determine whether a 731 change of representastion may be necessary for proper parameter 732 passing. 733 7342019-12-12 Ed Schonberg <schonberg@adacore.com> 735 736 * sem_type.adb (Find_Unique_Type): A call to the universal 737 access equality operator requires one operand to be a universal 738 access, and the other to be an access type. There is no 739 requirement, as previously implied by this routine, that 740 pool-specific access types were illegal in this context. 741 7422019-12-12 Steve Baird <baird@adacore.com> 743 744 * sem_ch6.adb 745 (New_Overloaded_Entity.Check_Conforming_Paramters): Add new 746 Conformance_Type parameter. With the value of 747 Subtype_Conformant, the behavior of Check_Conforming_Parameters 748 is unchanged. The call in Matching_Entry_Or_Subprogram to 749 instead passes in Type_Conformant. This corresponds to the use 750 of "type conformant" in Ada RM 9.4(11.4/3). 751 (New_Overloaded_Entity.Has_Matching_Entry_Or_Subprogram): Add 752 new Normalized_First_Parameter_Type function to help in ignoring 753 the distinction between protected and access-to-protected first 754 parameters when checking prefixed-view profile matching. Replace 755 computations of the type of the first parameter with calls to 756 this function as appropriate. 757 7582019-12-12 Ed Schonberg <schonberg@adacore.com> 759 760 * sem_ch5.adb: (Analyze_Iterator_Specification): If the 761 iteration is over a slice, complete the resolution of its 762 bounds, which may be aebitrary expressions. The previous 763 pre-analysis may have created itypes for the slice but has not 764 performed the expansion that for example may introduce actions 765 that specify explicit dereferences and run-time checks. 766 7672019-12-12 Ed Schonberg <schonberg@adacore.com> 768 769 * sem_ch8.adb: Improve error message for dispatching subprogram 770 formals. 771 7722019-12-12 Gary Dismukes <dismukes@adacore.com> 773 774 * exp_ch9.adb (Build_Protected_Entry): Set the Scope of the new 775 block to be the entity of the procedure created for the entry. 776 7772019-12-12 Steve Baird <baird@adacore.com> 778 779 * sem_ch10.adb (Install_With_Clause): Check for the case of a 780 circular dependency involving a predefined (or GNAT-defined) 781 unit and handle that case by generating an appropropriate error 782 message. 783 7842019-12-12 Gary Dismukes <dismukes@adacore.com> 785 786 * sem_ch4.adb, sem_res.adb: Minor reformatting. 787 7882019-12-12 Justin Squirek <squirek@adacore.com> 789 790 * sem_ch4.adb (Analyze_One_Call): Add condition to check for 791 incorrectly resolved hidden controlled primitives. 792 7932019-12-12 Ed Schonberg <schonberg@adacore.com> 794 795 * sem_res.adb: Fix processing of standard predefined operators. 796 7972019-12-12 Piotr Trojanek <trojanek@adacore.com> 798 799 * libgnarl/a-dispat.ads (Yield): Update Global contract. 800 8012019-12-12 Piotr Trojanek <trojanek@adacore.com> 802 803 * libgnat/g-altive.ads: Fix typo in comment. 804 * bindo-graphs.adb: Fix repeated words in comment. 805 * exp_ch4.adb: Likewise. 806 * exp_ch5.adb: Likewise. 807 * exp_ch7.adb: Likewise. 808 * exp_pakd.adb: Likewise. 809 * exp_unst.adb: Likewise. 810 * exp_util.adb: Likewise. 811 * freeze.adb: Likewise. 812 * inline.adb: Likewise. 813 * layout.adb: Likewise. 814 * sem_ch12.adb: Likewise. 815 * sem_ch13.adb: Likewise. 816 * sem_ch4.adb: Likewise. 817 * sem_ch9.adb: Likewise. 818 * sem_elab.adb: Likewise. 819 * doc/gnat_ugn/gnat_and_program_execution.rst: Fix repeated 820 words in user documentation. 821 * gnat_ugn.texi: Regenerate. 822 8232019-12-12 Eric Botcazou <ebotcazou@adacore.com> 824 825 * exp_attr.adb (Expand_Size_Attribute): Look directly at the 826 prefix to detect the bit-packed slices. Apply the checks last 827 in case the attribute needs to be processed by the back-end. 828 * exp_ch4.adb (Expand_N_Slice): Do not create a temporary for 829 a prefix of the Size attribute. 830 8312019-12-12 Steve Baird <baird@adacore.com> 832 833 * sem_ch12.adb 834 (Instantiate_Type.Validate_Derived_Type_Instance): Implement the 835 legality check of AI12-0036 836 8372019-12-12 Ed Schonberg <schonberg@adacore.com> 838 839 * sem_ch10.adb (Analyze_Subunit): Fix spurious visibility error 840 on subunit with optimization. 841 8422019-12-12 Arnaud Charlet <charlet@adacore.com> 843 844 * raise-gcc.c (__gnat_personality_v0): Define for SEH. 845 8462019-12-12 Gary Dismukes <dismukes@adacore.com> 847 848 * exp_ch9.adb (Build_Protected_Entry): Analyze the block created 849 to hold the declarations and statements of the protected entry 850 body right after it's created, and then call Reset_Scopes_To on 851 that block to reset the Scope of nested entities to the block 852 scope. 853 (Reset_Scope): Add handling for N_Freeze_Entity nodes, calling 854 Reset_Scopes recursively on the Actions of such nodes. Also, for 855 subprogram bodies that are encountered that might not have a 856 separate declaration (such as type init procedures), reset the 857 Scope of the subprogram's entity. 858 8592019-12-12 Justin Squirek <squirek@adacore.com> 860 861 * sem_attr.adb (Analyze_Attribute): Add error message for 862 invalid usage of Attribute_Result. 863 8642019-12-12 Bob Duff <duff@adacore.com> 865 866 * sem_attr.adb (Eval_Attribute): Never mark T'Descriptor_Size as 867 static, even if T is a static subtype, because otherwise we will 868 request the value of the attribute, which will crash because we 869 have not evaluated it. 870 8712019-12-12 Ed Schonberg <schonberg@adacore.com> 872 873 * exp_ch5.adb (Expand_N_Assognment_Statement): Extend the 874 processing involving private types with unknown discriminants to 875 handle the case where the full view of the type is an 876 unconstrained array type. 877 8782019-12-12 Bob Duff <duff@adacore.com> 879 880 * sem_ch4.adb (Transform_Object_Operation): Deal properly with 881 prefix notation in instances. 882 8832019-12-12 Claire Dross <dross@adacore.com> 884 885 * libgnat/a-cofove.adb, libgnat/a-cfinve.adb (Find_Index): Use 886 Extended_Index for call to Last. 887 8882019-12-12 Gary Dismukes <dismukes@adacore.com> 889 890 * sem_ch3.adb, sem_util.adb: Minor reformatting. 891 8922019-12-12 Bob Duff <duff@adacore.com> 893 894 * doc/gnat_ugn/gnat_utility_programs.rst: Update gnatmetric 895 documentation for average lengths 896 8972019-12-12 Ed Schonberg <schonberg@adacore.com> 898 899 * sem_ch3.adb (Constrain_Access): Remove obsolete comments and 900 warning concerning component types of an access type whose 901 designated type is a constrained record type. (Such constraints 902 were previously ignored). Set scope of itype for component to 903 the scope of the enclosing record. 904 * sem_ch4.adb: Remove call to Set_Ekind. 905 * sem_util.adb (Build_Actual_Subtype_Of_Component): Handle 906 components whose type is an access to a constrained 907 discriminant, where the constraints may be given by the 908 discriminants of the enclosing type. New subprogram 909 Build_Access_Record_Constraint. 910 9112019-12-12 Justin Squirek <squirek@adacore.com> 912 913 * exp_ch6.adb (Expand_Call_Helper): Added null case for 914 'Loop_Entry, 'Old, and 'Result when calculating whether to 915 create extra accessibility parameters. 916 * sem_util.adb (Dynamic_Accessibility_Level): Added null case 917 for 'Loop_Entry, 'Old, and 'Result when calculating 918 accessibility level based on access-valued attributes. Also 919 added special handling for uses of 'Loop_Entry when used in its 920 indexed component form. 921 9222019-12-12 Arnaud Charlet <charlet@adacore.com> 923 924 * raise-gcc.c: Remove references to VMS 925 9262019-12-12 Eric Botcazou <ebotcazou@adacore.com> 927 928 * atree.ads, comperr.ads, debug.ads, einfo.ads, elists.ads, 929 err_vars.ads, errout.ads, exp_ch11.ads, exp_code.ads, 930 exp_dbug.ads, exp_tss.ads, exp_util.ads, lib.ads, namet.ads, 931 nlists.ads, opt.ads, repinfo.ads, restrict.ads, scos.ads, 932 sem_aggr.ads, sem_aux.ads, sem_eval.ads, sem_util.ads, 933 sinfo.ads, sinput.ads, stringt.ads, targparm.ads, types.ads, 934 urealp.ads warnsw.ads: Add WARNING line(s) in commentary. 935 * atree.h, elists.h, namet.h, nlists.h, repinfo.h, scos.h, 936 stringt.h, types.h, uintp.h, urealp.h: Tidy up. 937 * fe.h: Likewise. Document WARNING mark. 938 9392019-12-12 Dmitriy Anisimkov <anisimko@adacore.com> 940 941 * libgnat/g-comlin.ads (Get_Argument): New routine similar to 942 original Get_Argument but with one more out parameter 943 End_Of_Arguments. 944 (Get_Arguments): Comment improved. 945 * libgnat/g-comlin.adb (Get_Argument): Implementation taken from 946 original Get_Argument and improved. 947 (Get_Argument): Calls new routine Get_Argument with additional 948 parameter. 949 9502019-12-03 Eric Botcazou <ebotcazou@adacore.com> 951 952 * gcc-interface/utils.c (potential_alignment_gap): Delete. 953 (rest_of_record_type_compilation): Do not call above function. Use 954 the alignment of the field instead of that of its type, if need be. 955 When the original field has variable size, always lower the alignment 956 of the pointer type. Reset the bit-field status of the new field if 957 it does not encode a bit-field. 958 9592019-12-03 Eric Botcazou <ebotcazou@adacore.com> 960 961 * gcc-interface/utils.c (fold_convert_size): New function. 962 (fold_bit_position): Invoke it to do further folding. 963 9642019-12-03 Eric Botcazou <ebotcazou@adacore.com> 965 966 * gcc-interface/decl.c (gnat_to_gnu_subprog_type): With the Copy-In/ 967 Copy-Out mechanism, do not promote the mode of the return type to an 968 integral mode if it contains a field on a non-integral type and even 969 demote it for 64-bit targets. 970 9712019-11-25 Eric Botcazou <ebotcazou@adacore.com> 972 973 PR ada/92362 974 * gcc-interface/trans.c (gnat_to_gnu) <N_Attribute_Definition_Clause>: 975 Use a temporary instead of clobbering the result with a freeze node. 976 9772019-11-25 Eric Botcazou <ebotcazou@adacore.com> 978 979 PR ada/92575 980 * expect.c (__gnat_expect_poll [VMS, HPUX]): Fix typo. 981 9822019-11-06 Eric Botcazou <ebotcazou@adacore.com> 983 Alexandre Oliva <oliva@adacore.com> 984 985 * gcc-interface/misc.c (callgraph_info_file): Delete. 986 9872019-10-27 Jakub Jelinek <jakub@redhat.com> 988 989 * locales.c (iso_3166): Add missing comma after "United-States". 990 9912019-10-15 Arnaud Charlet <charlet@adacore.com> 992 993 * Makefile.rtl (a-except.o): Put -O1 earlier so that it can be 994 overriden if needed by other variables. 995 9962019-10-12 Eric Botcazou <ebotcazou@adacore.com> 997 998 PR ada/91995 999 * sem_ch8.adb (Chain_Use_Clause): Remove second argument in calls 1000 to Defining_Entity. 1001 * sem_elab.adb (Find_Unit_Entity): Likewise. Deal with N_Subunit 1002 here in lieu of in Defining_Entity. 1003 * sem_util.ads (Defining_Entity): Remove 2nd and 3th parameters. 1004 * sem_util.adb (Defining_Entity): Remove 2nd and 3th parameters, 1005 and adjust accordingly. Deal with N_Compilation_Unit. 1006 10072019-10-11 Eric Botcazou <ebotcazou@adacore.com> 1008 1009 * gcc-interface/decl.c (elaborate_reference_1): Specifically deal with 1010 pointer displacement. 1011 1012 * gcc-interface/decl.c (components_to_record): Use proper name. 1013 1014 * gcc-interface/trans.c (Sloc_to_locus): Use standard types. 1015 10162019-10-11 Eric Botcazou <ebotcazou@adacore.com> 1017 1018 * gcc-interface/decl.c (gnat_to_gnu_field): Adjust again the packing 1019 for a field without strict alignment and with an oversized clause. 1020 10212019-10-11 Eric Botcazou <ebotcazou@adacore.com> 1022 1023 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Really test the 1024 sign of the value when deciding to build a NEGATE_EXPR. 1025 <PLUS_EXPR>: Remove redundant line. 1026 <BIT_AND_EXPR>: Do the negation here. 1027 10282019-10-11 Eric Botcazou <ebotcazou@adacore.com> 1029 1030 * gcc-interface/decl.c (Gigi_Equivalent_Type) <E_Array_Subtype>: New 1031 case. Return the base type if the subtype is not constrained. 1032 10332019-10-11 Eric Botcazou <ebotcazou@adacore.com> 1034 1035 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Named_{Integer|Real}>: 1036 New case to deal with the definition of named numbers. 1037 <E_Variable>: Minor tweaks. Set DECL_IGNORED_P on the CONST_DECL 1038 if a corresponding variable is built. 1039 * gcc-interface/trans.c (gnat_to_gnu) <N_Integer_Literal>: Return 1040 error_mark_node instead of aborting on overflow for named numbers. 1041 <N_Number_Declaration>: Reuse the <N_Object_Declaration> case and 1042 deal with error_mark_node specifically. 1043 * gcc-interface/utils.c (create_var_decl): Do not set DECL_IGNORED_P 1044 on CONST_DECLs. 1045 (gnat_write_global_declarations): Output global constants. 1046 10472019-10-10 Gary Dismukes <dismukes@adacore.com> 1048 1049 * exp_ch7.adb (Check_Unnesting_In_Decls_Or_Stmts): When 1050 encountering a loop at the top level of a package declaration 1051 list (that is, within the declarations of a package spec or 1052 body) that has nested subprograms, call Unnest_Loop to create a 1053 new library-level procedure that will contain the loop, to allow 1054 for proper handling of up-level references from within nested 1055 subprograms, such as to loop parameters. 1056 (Unnest_Loop): New procedure that takes a loop statement and 1057 creates a new procedure body to enclose the loop statement, 1058 along with generating a call to the procedure. 1059 10602019-10-10 Arnaud Charlet <charlet@adacore.com> 1061 1062 * freeze.adb (Freeze_Subprogram): Ensure constructor is a C++ 1063 constructor. 1064 10652019-10-10 Gary Dismukes <dismukes@adacore.com> 1066 1067 * libgnat/a-ststio.ads (File_Type): Apply pragma 1068 Preelaborable_Initialization to the type. 1069 10702019-10-10 Yannick Moy <moy@adacore.com> 1071 1072 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not peek 1073 under private types whose completion is SPARK_Mode Off. 1074 10752019-10-10 Gary Dismukes <dismukes@adacore.com> 1076 1077 * exp_ch4.adb, sem_cat.adb, sem_ch12.adb, sem_ch3.adb, 1078 sem_ch6.adb, sem_prag.adb, sem_util.adb, sem_util.ads: Minor 1079 typo fixes. 1080 10812019-10-10 Ed Schonberg <schonberg@adacore.com> 1082 1083 * sem_warn.adb (Warn_On_Useless_Assignment): Do not warn if the 1084 second assignment is at the same source position as the first. 1085 10862019-10-10 Gary Dismukes <dismukes@adacore.com> 1087 1088 * sem_util.adb (Enclosing_Subprogram): Handle the case of 1089 E_Entry_Family, returning the entry family's associated 1090 Protected_Body_Subprogram (as was already done for E_Entry). 1091 * exp_ch9.adb (Expand_N_Accept_Statement): Call Reset_Scopes_To 1092 on the block created for an accept statement to reset the scopes 1093 of any local entities to the block scope. 1094 10952019-10-10 Ed Schonberg <schonberg@adacore.com> 1096 1097 * sem_ch12.adb (Analyze_Formal_Package_Declaration): Propagate 1098 an aspect specification for Abstract_State from generic package 1099 to formal package, so that it is available when analyzing the 1100 constructed formal. 1101 11022019-10-10 Eric Botcazou <ebotcazou@adacore.com> 1103 1104 * sem_ch6.adb (Set_Actual_Subtypes): Put the freeze node of the 1105 actual subtype after its declaration when the type of the formal 1106 has a predicate. 1107 11082019-10-10 Eric Botcazou <ebotcazou@adacore.com> 1109 1110 * sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): Do not use 1111 the Esize of the component to compute its layout, but only the 1112 Component_Clause. Do not issue a warning for the _Tag 1113 component. Also set the Esize of the component at the end of 1114 the layout. 1115 (Analyze_Record_Representation_Clause): Remove Hbit local 1116 variable. Lay out the Original_Record_Component only if it's 1117 distinct from the component. 1118 (Check_Record_Representation_Clause): Fix off-by-one bug for the 1119 Last_Bit of the artificial clause built for the _Tag component. 1120 11212019-10-10 Bob Duff <duff@adacore.com> 1122 1123 * treepr.ads, treepr.adb (ppar): New procedure. 1124 11252019-10-10 Bob Duff <duff@adacore.com> 1126 1127 * sem_aggr.adb (Resolve_Aggregate): Add missing cases in the 1128 Others_Allowed => True case -- N_Case_Expression_Alternative and 1129 N_If_Expression. Use Nkind_In. 1130 * atree.adb, atree.ads, sinfo.adb, sinfo.ads (Nkind_In): New 1131 16-parameter version. 1132 11332019-10-10 Ed Schonberg <schonberg@adacore.com> 1134 1135 * sem_aggr.adb (Resolve_Array_Aggregate): Set properly the 1136 Predicated_Parent link of an itype created for an aggregate, so 1137 that the predicate_function of the parent can support proofs on 1138 the object that it initializes. 1139 11402019-10-10 Eric Botcazou <ebotcazou@adacore.com> 1141 1142 * sem_ch3.adb (Analyze_Number_Declaration): Set 1143 Debug_Info_Needed in the case where the expression is an integer 1144 literal. 1145 11462019-10-10 Yannick Moy <moy@adacore.com> 1147 1148 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add subprograms 1149 with deep parameter or result type as not candidates for 1150 inlining. 1151 11522019-10-10 Vadim Godunko <godunko@adacore.com> 1153 1154 * libgnat/g-exptty.ads (TTY_Process_Descriptor): Set default 1155 value for Process. 1156 11572019-10-10 Bob Duff <duff@adacore.com> 1158 1159 * sem_prag.adb (Defer_Compile_Time_Warning_Error_To_BE): In 1160 addition to saving the pragma for further processing, copy the 1161 pragma into the main unit if necessary. 1162 11632019-10-10 Bob Duff <duff@adacore.com> 1164 1165 * einfo.ads, einfo.adb (Invariants_Ignored): New flag on types. 1166 This leaves just one unused flag. 1167 * sem_prag.adb (Invariant): Set the flag if appropriate. 1168 * exp_util.adb (Make_Invariant_Call): Check the flag. 1169 11702019-10-10 Arnaud Charlet <charlet@adacore.com> 1171 1172 * gnat1drv.adb (Gnat1drv): Skip code generation when handling an 1173 incomplete unit with -gnatceg. 1174 11752019-10-10 Gary Dismukes <dismukes@adacore.com> 1176 1177 * exp_ch7.adb (Check_Unnesting_Elaboration_Code): Various 1178 cleanups. 1179 (Set_Elab_Proc): New procedure to create the defining identifier 1180 for a procedure created to encapsulate top-level blocks 1181 occurring as a part of library package elaboration. 1182 (First_Local_Scope): Function replaced by 1183 Reset_Scopes_To_Elab_Proc. 1184 (Reset_Scopes_To_Elab_Proc): New recursive procedure based on 1185 First_Local_Scope, which it replaces, that is called to traverse 1186 the statements of a library package body to locate top-level 1187 blocks and determine whether they contain nested subprograms 1188 that might address library-level objects of the package. Such 1189 blocks (and loops) and certain top-level subprograms within the 1190 statements will have their Scope reset here to match an 1191 encapsulating procedure created by 1192 Check_Unnesting_Elaboration_Code that will contain the 1193 statements. 1194 (Check_Unnesting_In_Decls_Or_Stmts): Code for handling blocks 1195 factored out into Unnest_Block. Add handling for package 1196 declarations and bodies, making recursive calls for 1197 visible/private declarations, body declarations, statements, and 1198 exception handlers. Also remove test for Is_Compilation_Unit: 1199 caller tests for Is_Library_Level_Entity instead. Also, this 1200 proc's name was changed from Check_Unnesting_In_Declarations. 1201 (Check_Unnesting_In_Handlers): New procedure to traverse a 1202 sequence of exception handlers, calling 1203 Check_Unnesting_In_Decls_Or_Stmts on the statements of each 1204 handler. 1205 (Expand_N_Package_Body): Call Check_Unnesting_* routines only 1206 when Unnest_Subprogram_Mode is set and the current scope is a 1207 library-level entity (which includes packages and instantiations 1208 nested directly within a library unit). 1209 (Expand_N_Package_Declaration): Call Check_Unnesting_* routines 1210 only when Unnest_Subprogram_Mode is set and the current scope is 1211 a library-level entity (which includes packages and 1212 instantiations nested directly within a library unit). 1213 (Unnest_Block): New procedure factored out of 1214 Check_Unnesting_In_Decls_Or_Stmts, for creating a new procedure 1215 to replace a block statement and resetting the Scope fields of 1216 the block's top-level entities. 1217 12182019-10-10 Anthony Leonardo Gracio <leonardo@adacore.com> 1219 1220 * doc/gnat_ugn/about_this_guide.rst, 1221 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 1222 doc/gnat_ugn/getting_started_with_gnat.rst, 1223 doc/gnat_ugn/gnat_and_program_execution.rst, errout.ads, 1224 exp_ch3.adb, gnatls.adb, impunit.adb, lib-writ.ads, opt.ads, 1225 sem_ch7.adb, sem_prag.adb, sem_res.adb, sem_warn.adb, 1226 terminals.c: Replace GPS by GNAT Studio. 1227 * gnat_ugn.texi: Regenerate. 1228 12292019-10-10 Ed Schonberg <schonberg@adacore.com> 1230 1231 * exp_ch6.adb (Expand_Simple_Function_Return_Statement): If the 1232 function to which the return statement applies is an 1233 Ignored_Ghost_Function, do not indicate that it uses the 1234 secondary stack when the return type is unconstrained. 1235 12362019-10-10 Bob Duff <duff@adacore.com> 1237 1238 * libgnat/a-cbdlli.adb, libgnat/a-cbhama.adb, 1239 libgnat/a-cbhase.adb, libgnat/a-cbmutr.adb, 1240 libgnat/a-cborma.adb, libgnat/a-cborse.adb, 1241 libgnat/a-cdlili.adb, libgnat/a-cidlli.adb, 1242 libgnat/a-cihama.adb, libgnat/a-cihase.adb, 1243 libgnat/a-cimutr.adb, libgnat/a-ciorma.adb, 1244 libgnat/a-ciorse.adb, libgnat/a-cobove.adb, 1245 libgnat/a-cohama.adb, libgnat/a-cohase.adb, 1246 libgnat/a-coinve.adb, libgnat/a-comutr.adb, 1247 libgnat/a-conhel.adb, libgnat/a-convec.adb, 1248 libgnat/a-coorma.adb, libgnat/a-coorse.adb (Reference, 1249 Constant_Reference): Use Busy instead of Lock, so we forbid 1250 tampering with cursors, rather than tampering with elements. 1251 12522019-10-10 Ed Schonberg <schonberg@adacore.com> 1253 1254 * sem_cat.adb (Set_Categorization_From_Pragma): Do not modify 1255 any visibility settings if there are no compilation_unit pragmas 1256 following the package declaration. Add comments for future 1257 cleanup. 1258 12592019-10-10 Patrick Bernardi <bernardi@adacore.com> 1260 1261 * bindgen.adb (System_Secondary_Stack_Package_In_Closure): 1262 Renamed flag System_Secondary_Stack_Used to be clearer of what 1263 it represents. 1264 (Gen_Adainit): Refactor secondary stack related code to make it 1265 clearer. 1266 * rtsfind.adb (Load_RTU): Don't set Sec_Stack_Used flag here 1267 (RTE): Set Sec_Stack_Used if the System.Secondary_Stack is 1268 referenced, but not if we're ignoring ghost code. 1269 12702019-10-10 Piotr Trojanek <trojanek@adacore.com> 1271 1272 * sem_prag.adb (Analyze_Global_In_Decl_Part): Simplify previous 1273 test, just like in a recent commit we simplified a similar test 1274 for Depends contract. 1275 12762019-10-04 Joseph Myers <joseph@codesourcery.com> 1277 1278 * gcc-interface/utils.c (flag_isoc2x): New variable. 1279 12802019-10-01 Maciej W. Rozycki <macro@wdc.com> 1281 1282 * gcc-interface/Makefile.in (ADA_RTL_DSO_DIR): New variable. 1283 (install-gnatlib): Use it in place of ADA_RTL_OBJ_DIR for shared 1284 library installation. 1285 12862019-10-01 Maciej W. Rozycki <macro@wdc.com> 1287 1288 * gcc-interface/Make-lang.in (ada.install-common): Split into... 1289 (gnat-install-tools, gnat-install-lib): ... these. 1290 12912019-09-26 Alexandre Oliva <oliva@adacore.com> 1292 1293 * gcc-interface/decl.c (components_to_record): Set 1294 DECL_SIZE_UNIT for zero-sized fields. 1295 12962019-09-26 Arnaud Charlet <charlet@adacore.com> 1297 1298 * osint.adb (OS_Time_To_GNAT_Time): Remove dependency on To_C/To_Ada 1299 13002019-09-23 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 1301 1302 * libgnarl/s-osinte__solaris.ads (sysconf): Declare. 1303 (SC_NPROCESSORS_ONLN): Define. 1304 * libgnarl/s-tasinf__solaris.ads (Number_Of_Processors): Declare. 1305 * libgnarl/s-tasinf__solaris.adb (N_CPU): New variable. 1306 (Number_Of_Processors): New function. 1307 13082019-09-23 Eric Botcazou <ebotcazou@adacore.com> 1309 1310 * gcc-interface/trans.c (Regular_Loop_to_gnu): Do not rotate the loop 1311 if -Og is enabled. 1312 (build_return_expr): Do not perform NRV if -Og is enabled. 1313 (Subprogram_Body_to_gnu): Likewise. 1314 (gnat_to_gnu) <N_Simple_Return_Statement>: Likewise. 1315 (Handled_Sequence_Of_Statements_to_gnu): Do not inline finalizers if 1316 -Og is enabled. 1317 * gcc-interface/utils.c (convert_to_index_type): Return early if -Og 1318 is enabled. 1319 13202019-09-23 Eric Botcazou <ebotcazou@adacore.com> 1321 1322 * gcc-interface/trans.c (gnat_compile_time_expr_list): New variable. 1323 (Pragma_to_gnu): Rename local variable. Save the (first) expression 1324 of pragma Compile_Time_{Error|Warning} for later processing. 1325 (Compilation_Unit_to_gnu): Process the expressions saved above. 1326 13272019-09-23 Eric Botcazou <ebotcazou@adacore.com> 1328 1329 * gcc-interface/trans.c (Attribute_to_gnu): Test Can_Use_Internal_Rep 1330 on the underlying type of the node. 1331 (Call_to_gnu): Likewise with the type of the prefix. 1332 13332019-09-23 Eric Botcazou <ebotcazou@adacore.com> 1334 1335 * gcc-interface/decl.c (components_to_record): Do not reorder fields 1336 in packed record types if they contain fixed-size fields that cannot 1337 be laid out in a packed manner. 1338 13392019-09-19 Tom Tromey <tromey@adacore.com> 1340 1341 * gcc-interface/misc.c (gnat_get_type_bias): Return the bias 1342 when -fgnat-encodings=gdb. 1343 13442019-09-19 Steve Baird <baird@adacore.com> 1345 1346 * sem_prag.adb (Preferred_String_Type): A new function. Given an 1347 expression, determines whether the preference rules defined for 1348 the third-and-later arguments of pragma Annotate suffice to 1349 determine the type of the expression. If so, then the preferred 1350 type is returned; if not then Empty is returned. Handles 1351 concatenations. 1352 (Analyze_Pragma): Replace previous code, which dealt only with 1353 string literals, with calls to the new Preferred_String_Type 1354 function, which also handles concatenations. 1355 * doc/gnat_rm/implementation_defined_pragmas.rst: Update 1356 documentation for pragma Annotate. 1357 * gnat_rm.texi: Regenerate. 1358 13592019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1360 1361 * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not return true 1362 on pure alignment considerations if the target does not require 1363 the strict alignment of memory accesses. 1364 13652019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1366 1367 * sem_ch12.adb (Check_Private_View): Add a comment to indicate 1368 future work. 1369 13702019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1371 1372 * exp_aggr.adb (Has_Mutable_Components): Look at the underlying 1373 type of components to find out whether they are mutable. 1374 13752019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1376 1377 * sem_ch12.adb (Instantiate_Package_Body): Check that the body 1378 has not already been instantiated when the body of the parent 1379 was being loaded. 1380 13812019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1382 1383 * sem_util.adb (In_Instance): Test whether the current unit has 1384 been analyzed instead of being on the scope stack to detect the 1385 case of actuals of an instantiation of a generic child unit done 1386 as a compilation unit. 1387 13882019-09-19 Dmitriy Anisimkov <anisimko@adacore.com> 1389 1390 * libgnat/g-socket.ads, libgnat/g-socket.adb 1391 (Create_Socket_Pair): New routine. 1392 * libgnat/g-socthi.ads (OS_Has_Socketpair): Boolean constant. 1393 (C_Socketpair): New imported routine. 1394 * libgnat/g-socthi__mingw.ads, libgnat/g-socthi__vxworks.ads 1395 (Default_Socket_Pair_Family): New constant. 1396 (C_Socketpair): New routine. 1397 * libgnat/g-socthi__mingw.adb, libgnat/g-socthi__vxworks.adb 1398 (C_Socketpair): Is separated in anouther file. 1399 * libgnat/g-sthcso.adb (C_Socketpair): Non UNIX implementation. 1400 * libgnat/g-stsifd__sockets.adb: Reuse C_Socketpair. 1401 14022019-09-19 Yannick Moy <moy@adacore.com> 1403 1404 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Simplify previous 1405 test. 1406 14072019-09-19 Ed Schonberg <schonberg@adacore.com> 1408 1409 * sem_ch7.adb (Install_Parent_Private_Declarations): If a 1410 generic child unit is instantiated within a sibling child unit, 1411 the analysis of its private part requires that the private part 1412 of the ancestor be available, as is done when the context 1413 includes an instance of the ancestor. 1414 14152019-09-19 Yannick Moy <moy@adacore.com> 1416 1417 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add special 1418 case for traversal functions. 1419 14202019-09-19 Yannick Moy <moy@adacore.com> 1421 1422 * sem_prag.adb (Analyze_Global_In_Decl_Part): Do not issue an 1423 error when a constant of an access type is used as output in a 1424 Global contract. 1425 (Analyze_Depends_In_Decl_Part): Do not issue an error when a 1426 constant of an access type is used as output in a Depends 1427 contract. 1428 14292019-09-19 Arnaud Charlet <charlet@adacore.com> 1430 1431 * exp_attr.adb: Remove obsolete comment. 1432 14332019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1434 1435 * sem_ch3.adb (Build_Derived_Access_Type): If this is an access- 1436 to-subprogram type, copy Can_Use_Internal_Rep from the parent. 1437 14382019-09-19 Yannick Moy <moy@adacore.com> 1439 1440 * gcc-interface/Make-lang.in: Remove references to sem_spark. 1441 * sem_spark.adb, sem_spark.ads: Remove unit. 1442 14432019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1444 1445 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Treat 1446 Machine_Rounding as an alias for Rounding. 1447 * sem_res.adb (Simplify_Type_Conversion): Likewise. 1448 14492019-09-19 Gary Dismukes <dismukes@adacore.com> 1450 1451 * exp_unst.adb (Unnest_Subprogram): Bypass the transformation of 1452 up-level references unless Opt.Generate_C_Code is enabled. 1453 14542019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1455 1456 * exp_ch4.adb (Expand_Array_Equality): If optimization is 1457 enabled, generate a simple conjunction of comparisons for the 1458 specific case of constrained 1-dimensional 2-element arrays. 1459 Fix formatting. 1460 14612019-09-19 Piotr Trojanek <trojanek@adacore.com> 1462 1463 * exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Remove. 1464 (Append_Homonym_Number): Use Homonym_Number instead of 1465 Get_Homonym_Number. 1466 * exp_util.ads, exp_util.adb (Homonym_Number): Mirror style of 1467 the removed Get_Homonym_Number routine, i.e. initialize local 1468 objects at declaration and refine the type of result. 1469 * sem_util.adb (Add_Homonym_Suffix): Use Homonym_Number instead 1470 of Get_Homonym_Number. 1471 14722019-09-19 Ed Schonberg <schonberg@adacore.com> 1473 1474 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Simplify 1475 handling of expressions in predicates when the context is a 1476 generic unit. 1477 14782019-09-19 Bob Duff <duff@adacore.com> 1479 1480 * sem_attr.adb (Resolve_Attribute): Make sure the secondary 1481 stack is properly managed in the case of a 'Range attribute in a 1482 loop. 1483 14842019-09-19 Raphael Amiard <amiard@adacore.com> 1485 1486 * libgnat/a-cfhase.ads (Set): Add comments to public primitives. 1487 14882019-09-19 Raphael Amiard <amiard@adacore.com> 1489 1490 * libgnat/a-cbhama.ads, libgnat/a-cbhase.ads, 1491 libgnat/a-chtgop.ads (Clear): Refine comments 1492 14932019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1494 1495 * sem_ch12.adb (Restore_Private_Views): Comment out new code 1496 that clear the Is_Generic_Actual_Type also on the full view. 1497 14982019-09-19 Bob Duff <duff@adacore.com> 1499 1500 * exp_ch3.adb (Rewrite_As_Renaming): Return False if there are 1501 any aspect specifications, because otherwise Insert_Actions 1502 blows up. 1503 15042019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1505 1506 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Add 1507 Bit_Packed_Array parameter and documet it. Always insert a copy 1508 if it is set True. 1509 (Expand_Actuals): Adjust the calls to 1510 Add_Simple_Call_By_Copy_Code. 1511 15122019-09-19 Bob Duff <duff@adacore.com> 1513 1514 * xref_lib.adb (Get_Symbol_Name): If we reach EOF in the first 1515 loop without finding the symbol, return "???". Otherwise, it's 1516 an infinite loop. 1517 (Parse_EOL): Assert that we're not already at EOF. Remove 1518 processing of LF/CR -- there are no operating systems that use 1519 that. 1520 15212019-09-19 Eric Botcazou <ebotcazou@adacore.com> 1522 1523 * exp_ch6.adb (Is_Legal_Copy): Also return false for an aliased 1524 formal and a formal passed by reference in convention Ada. Add 1525 missing guard to the existing test on Is_Valued_Procedure. 1526 15272019-09-19 Bob Duff <duff@adacore.com> 1528 1529 * rtsfind.ads (RTE_Available): Improve comment. 1530 15312019-09-18 Bob Duff <duff@adacore.com> 1532 1533 * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Move call 1534 to RTE_Available later, so it doesn't disturb the elab order. 1535 The RE_Copy_Bitfield entity is defined in package 1536 System.Bitfields which has a dependency on package 1537 System.Bitfield_Utils, which has it its spec: 1538 pragma Elaborate_Body; 1539 The query on RTE_Available forces loading and analyzing 1540 System.Bitfields and all its withed units. 1541 15422019-09-18 Eric Botcazou <ebotcazou@adacore.com> 1543 1544 * checks.ads (Alignment_Warnings_Record): Add P component. 1545 * checks.adb (Apply_Address_Clause_Check): Be prepared to kill 1546 the warning also if the clause is of the form X'Address. 1547 (Validate_Alignment_Check_Warning): Kill the warning if the 1548 clause is of the form X'Address and the alignment of X is 1549 compatible. 1550 15512019-09-18 Ed Schonberg <schonberg@adacore.com> 1552 1553 * sem_res.adb (Set_Mixed_Node_Expression): If a conditional 1554 expression has universal_real alternaitves and the context is 1555 Universal_Fixed, as when it is an operand in a fixed-point 1556 multiplication or division, resolve the expression with a 1557 visible fixed-point type, which must be unique. 1558 15592019-09-18 Ed Schonberg <schonberg@adacore.com> 1560 1561 * sem_ch3.adb (Constrain_Component_Type): For a discriminated 1562 type, handle the case of a constraint given by a conversion of a 1563 discriminant of the enclosing type. Necessary when compiling a 1564 discriminated task for a restricted run-time, when the generated 1565 Secondary_Stack component may be set by means of an aspect on 1566 the task type. 1567 15682019-09-18 Ed Schonberg <schonberg@adacore.com> 1569 1570 * exp_aggr.adb (Expand_Record_Aggregate, Rewrite_Discriminant): 1571 After rewriting a reference to an outer discriminant as a 1572 selected component of the enclosing object, analyze the selected 1573 component to ensure that the entity of the selector name is 1574 properly set. This is necessary when the aggregate appears 1575 within an expression that may have been analyzed already. 1576 15772019-09-18 Justin Squirek <squirek@adacore.com> 1578 1579 * sem_ch8.adb (Use_One_Type): Add guard to prevent warning on a 1580 reundant use package clause where there is no previous 1581 use_clause in the chain. 1582 15832019-09-18 Justin Squirek <squirek@adacore.com> 1584 1585 * exp_ch4.adb (Expand_N_Type_Conversion): Add calculation of an 1586 alternative operand for the purposes of generating accessibility 1587 checks. 1588 15892019-09-18 Eric Botcazou <ebotcazou@adacore.com> 1590 1591 * exp_aggr.adb (Build_Array_Aggr_Code): In STEP 1 (c), duplicate 1592 the expression and reset the Loop_Actions for each loop 1593 generated for an others choice. 1594 15952019-09-18 Justin Squirek <squirek@adacore.com> 1596 1597 * einfo.adb, einfo.ads (Minimum_Accessibility): Added new field. 1598 (Set_Minimum_Accessibility): Added to set new field. 1599 (Minimum_Accessibility): Added to fetch new field. 1600 * exp_ch6.adb (Expand_Subprogram_Call): Modify calls to fetch 1601 accessibility levels to the new subprogram Get_Accessibility 1602 which handles cases where minimum accessibility might be needed. 1603 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Add section to 1604 generate a Minimum_Accessibility object within relevant 1605 subprograms. 1606 * sem_util.adb, sem_util.ads (Dynamic_Accessibility_Level): 1607 Additional documentation added and modify section to use new 1608 function Get_Accessibility. 1609 (Get_Accessibility): Added to centralize processing of 1610 accessibility levels. 1611 16122019-09-18 Steve Baird <baird@adacore.com> 1613 1614 * sem_util.ads (Interval_Lists): A new visible package. This 1615 package is visible because it is also intended for eventual use 1616 in Sem_Eval.Subtypes_Statically_Compatible when that function is 1617 someday upgraded to handle static predicates correctly. This 1618 new package doesn't really need to be visible for now, but it 1619 still seems like a good idea. 1620 * sem_util.adb (Gather_Components): Implement AI12-0086 via the 1621 following strategy. The existing code knows how to take a static 1622 discriminant value and identify the corresponding variant; in 1623 the newly-permitted case of a non-static value of a static 1624 subtype, we arbitrarily select a value of the subtype and find 1625 the corresponding variant using the existing code. Subsequently, 1626 we check that every other value of the discriminant's subtype 1627 corresponds to the same variant; this is done using the newly 1628 introduced Interval_Lists package. 1629 (Interval_Lists): Provide a body for the new package. 1630 16312019-09-18 Javier Miranda <miranda@adacore.com> 1632 1633 * exp_ch4.adb (Expand_N_Op_Eq): The frontend assumes that we can 1634 do a bit-for-bit comparison of two access to protected 1635 subprogram pointers. However, there are two reasons why we may 1636 not be able to do that: (1) there may be padding bits for 1637 alignment before the access to subprogram, and (2) the access to 1638 subprogram itself may not be compared bit-for- bit because the 1639 activation record part is undefined: two pointers are equal iff 1640 the subprogram addresses are equal. This patch fixes it by 1641 forcing a field-by-field comparison. 1642 * bindgen.adb (Gen_Adainit): The type No_Param_Proc is defined 1643 in the library as having Favor_Top_Level, but when we create an 1644 object of that type in the binder file we don't have that 1645 pragma, so the types are different. This patch fixes this issue. 1646 * libgnarl/s-interr.adb, libgnarl/s-interr__hwint.adb, 1647 libgnarl/s-interr__sigaction.adb, libgnarl/s-interr__vxworks.adb 1648 (Is_Registered): This routine erroneously assumes that the 1649 access to protected subprogram is two addresses. We need to 1650 create the same record that the compiler makes to ensure that 1651 any padding is the same. Then we have to look at just the first 1652 word of the access to subprogram. This patch fixes this issue. 1653 16542019-09-18 Bob Duff <duff@adacore.com> 1655 1656 * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): The call 1657 to Copy_Bitfield is now enabled. 1658 (Expand_Assign_Array_Bitfield): Multiply 'Length times 1659 'Component_Size "by hand" instead of using 'Size. 1660 16612019-09-18 Vasiliy Fofanov <fofanov@adacore.com> 1662 1663 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix minor 1664 formatting issue. 1665 16662019-09-18 Javier Miranda <miranda@adacore.com> 1667 1668 * exp_disp.adb (Make_DT, Make_Secondary_DT): Remove generation 1669 of alignment representation clause for the following tables: 1670 Predef_Prims, Iface_DT, TSD, ITable, DT. 1671 16722019-09-18 Steve Baird <baird@adacore.com> 1673 1674 * sem_eval.adb (Expr_Value): Do not fail "the type of a null 1675 literal must be an access type" assertion if errors have already 1676 been posted on the given node. 1677 16782019-09-18 Piotr Trojanek <trojanek@adacore.com> 1679 1680 * exp_dbug.ads, exp_dbug.adb (Get_Homonym_Number): Refine type 1681 from Nat to Pos. 1682 * sem_util.adb (Add_Homonym_Suffix): Refine type of a local 1683 variable. 1684 16852019-09-18 Yannick Moy <moy@adacore.com> 1686 1687 * exp_dbug.adb (Append_Homonym_Number): Use new function 1688 Get_Homonym_Number. 1689 (Get_Homonym_Number): New function to return the homonym number. 1690 (Qualify_Entity_Name): Remove special case for GNATprove. 1691 * exp_dbug.ads (Get_Homonym_Number): Make the new function 1692 public for use in GNATprove. 1693 * frontend.adb (Frontend): Do not qualify names in GNATprove 1694 mode. 1695 * sem_util.adb (Unique_Name): Append homonym suffix where needed 1696 for entities which have local homonyms in the same scope. 1697 16982019-09-18 Nicolas Roche <roche@adacore.com> 1699 1700 * libgnat/s-valrea.adb (Scan_Integral_Digits): New procedure. 1701 (Scan_Decimal_Digits): New procedure. 1702 (As_Digit): New function. 1703 (Scan_Real): Use Scan_Integral_Digits and Scan_Decimal_Digits. 1704 17052019-09-18 Claire Dross <dross@adacore.com> 1706 1707 * exp_attr.adb (Expand_N_Attribute_Reference): Call routine from 1708 Exp_Util to know the value of the Constrained attribute in the 1709 static case. 1710 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Make 1711 implicit dereferences inside the Constrained attribute explicit. 1712 * exp_util.ads, exp_util.adb 1713 (Attribute_Constrained_Static_Value): New routine to compute the 1714 value of a statically known reference to the Constrained 1715 attribute. 1716 17172019-09-18 Vadim Godunko <godunko@adacore.com> 1718 1719 * libgnat/g-expect.adb (Expect_Internal): Don't include invalid 1720 file descriptors into the set of file descriptors for Poll. 1721 Raise Process_Died exception when computed set of file 1722 descriptors to monitor is empty. 1723 17242019-09-18 Frederic Konrad <konrad@adacore.com> 1725 1726 * adaint.c: Include dosFsLib.h and vwModNum.h for VxWorks 6. 1727 (__gnat_rename): Map S_dosFsLib_FILE_NOT_FOUND to ENOENT. 1728 17292019-09-18 Steve Baird <baird@adacore.com> 1730 1731 * freeze.adb (Freeze_Object_Declaration): Do not call 1732 Check_Large_Modular_Array when the object declaration being 1733 frozen is an ignored ghost entity. 1734 17352019-09-18 Tom Tromey <tromey@adacore.com> 1736 1737 * make.adb (Initialize): Fix typo. 1738 17392019-09-18 Olivier Hainque <hainque@adacore.com> 1740 1741 * libgnat/s-win32.ads (DWORD_PTR): New type, pointer size 1742 unsigned int. 1743 (SYSTEM_INFO): Use it for dwActiveProcessorMask. 1744 17452019-09-18 Arnaud Charlet <charlet@adacore.com> 1746 1747 * doc/gnat_rm/implementation_defined_pragmas.rst: Improve doc on 1748 Warning_As_Error. 1749 * gnat_rm.texi: Regenerate. 1750 17512019-09-18 Arnaud Charlet <charlet@adacore.com> 1752 1753 * doc/gnat_rm/implementation_defined_characteristics.rst, 1754 doc/gnat_rm/implementation_defined_pragmas.rst, 1755 doc/gnat_rm/implementation_of_specific_ada_features.rst: Remove 1756 remaining references to VMS support 1757 * gnat_rm.texi: Regenerate. 1758 17592019-09-18 Arnaud Charlet <charlet@adacore.com> 1760 1761 * libgnat/s-stausa.adb: Fix a typo 1762 17632019-09-18 Bob Duff <duff@adacore.com> 1764 1765 * libgnat/a-cbhama.adb, libgnat/a-cbhase.adb, 1766 libgnat/a-cbmutr.adb, libgnat/a-cborma.adb, 1767 libgnat/a-cborse.adb, libgnat/a-cobove.adb (Copy): Avoid reading 1768 the uninitialized variable C in the Checks = False case. Change 1769 variable to be a constant. 1770 17712019-09-18 Claire Dross <dross@adacore.com> 1772 1773 * libgnat/a-cofuma.adb (Remove, Elements_Equal_Except, 1774 Keys_Included, Keys_Included_Except): Rename loop indexes and 1775 global constants from I to J. 1776 17772019-09-18 Arnaud Charlet <charlet@adacore.com> 1778 1779 * exp_unst.adb (Unnest_Subprograms): Refine previous change. 1780 17812019-09-17 Claire Dross <dross@adacore.com> 1782 1783 * libgnat/a-cofuma.ads, libgnat/a-cofuma.adb (Remove): New 1784 function which returns a copy of the input container without a 1785 given mapping. 1786 17872019-09-17 Yannick Moy <moy@adacore.com> 1788 1789 * libgnat/s-arit64.adb (Double_Divide): Correctly handle the 1790 special case when rounding. 1791 17922019-09-17 Javier Miranda <miranda@adacore.com> 1793 1794 * sem_ch3.adb (Complete_Private_Subtype): Propagate attributes 1795 Has_Attributes and Predicate_Function to the cloned subtype. 1796 17972019-09-17 Eric Botcazou <ebotcazou@adacore.com> 1798 1799 * sem.adb (Do_Analyze): Save Style_Check_Max_Line_Length on 1800 entry and restore it on exit instead of recomputing it. 1801 18022019-09-17 Tom Tromey <tromey@adacore.com> 1803 1804 * exp_dbug.ads: Update character type comment. 1805 18062019-09-17 Yannick Moy <moy@adacore.com> 1807 1808 * libgnat/s-arit64.adb (Double_Divide): Simplify needlessly 1809 complex computation. Fix comments. 1810 (Scaled_Divide): Fix comments. Explain why implementation does 1811 not suffer from bugs in Algorithm D from 2nd Edition of TAOCP. 1812 18132019-09-17 Yannick Moy <moy@adacore.com> 1814 1815 * libgnat/s-arit64.adb (Scaled_Divide): Add protection against 1816 undesirable wrap-around. 1817 18182019-09-17 Yannick Moy <moy@adacore.com> 1819 1820 * libgnat/s-arit64.adb (Double_Divide): Fix two possible 1821 overflows. 1822 18232019-09-17 Dmitriy Anisimkov <anisimko@adacore.com> 1824 1825 * make_util.ads (On_Windows): Move... 1826 * osint.ads (On_Windows): There. 1827 * osint.adb (OS_Time_To_GNAT_Time): If odd incremented on 1828 Windows before conversion to Time_Stamp_Type. 1829 18302019-09-17 Yannick Moy <moy@adacore.com> 1831 1832 * sem_spark.adb (Check_Declaration): Do not check the assignment 1833 from an illegal declaration. 1834 18352019-09-17 Bob Duff <duff@adacore.com> 1836 1837 * doc/gnat_ugn/gnat_and_program_execution.rst: Clarify 1838 documentation. 1839 * gnat_ugn.texi: Regenerate. 1840 * libgnat/s-stausa.ads: Clarify comments. 1841 18422019-09-17 Steve Baird <baird@adacore.com> 1843 1844 * sem_util.adb (Wrong_Type): In deciding to suppress a message, 1845 it is not enough for In_Instance to be True; in addition, 1846 In_Generic_Actual (Expr) must be False. 1847 * sem_type.adb (In_Generic_Actual): Fix bug where traversal of 1848 parents skips every other node. 1849 18502019-09-17 Claire Dross <dross@adacore.com> 1851 1852 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): If the 1853 definition of a local borrower contains calls to traversal 1854 functions, the borrowed expression is the first parameter of the 1855 first traversal function call in the definition. 1856 18572019-09-17 Ed Falis <falis@adacore.com> 1858 1859 * doc/gnat_rm/implementation_defined_pragmas.rst: Remove 1860 section. 1861 * gnat_rm.texi, gnat_ugn.texi: Regenerate. 1862 18632019-09-17 Vadim Godunko <godunko@adacore.com> 1864 1865 * libgnat/g-exptty.ads (Close_Input): New subprogram. 1866 * libgnat/g-exptty.adb (Close_Input): New subprogram. 1867 (Close): Move close of TTY to Close_Input. 1868 * terminals.c (__gnat_close_tty): Set file descriptors to 1869 invalid value after close. 1870 18712019-09-17 Vadim Godunko <godunko@adacore.com> 1872 1873 * libgnat/g-expect.adb (Expect_Internal): Try to call 'poll' few 1874 times. 1875 18762019-09-17 Vadim Godunko <godunko@adacore.com> 1877 1878 * libgnat/g-expect.ads, libgnat/g-expect.adb (Close_Input): New 1879 subprogram. 1880 (Get_Command_Output): Call Close_Input to close input stream. 1881 (Expect_Internal): Likewise. 1882 (Close): Likewise. 1883 * libgnat/g-exptty.adb (Close): Likewise. 1884 18852019-09-17 Piotr Trojanek <trojanek@adacore.com> 1886 1887 * sem_util.ads, sem_util.adb (Is_Attribute_Old): New utility 1888 routine. 1889 18902019-09-17 Yannick Moy <moy@adacore.com> 1891 1892 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add handling 1893 for dispatching operations. 1894 18952019-09-17 Ed Schonberg <schonberg@adacore.com> 1896 1897 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): In a 1898 generic context, for a Predicate aspect, use 1899 Preanalyze_Spec_Expression to verify conformance. 1900 19012019-09-17 Javier Miranda <miranda@adacore.com> 1902 1903 * sem_ch3.adb (Constrain_Corresponding_Record): Propagate 1904 attribute Is_Tagged_Type. 1905 19062019-09-17 Javier Miranda <miranda@adacore.com> 1907 1908 * exp_ch3.adb (Build_Record_Init_Proc): Do not generate code to 1909 adjust the tag component when the record is initialized with a 1910 raise expression. 1911 * sem_aggr.adb (Valid_Limited_Ancestor): Return True for 1912 N_Raise_Expression nodes. 1913 (Valid_Ancestor_Type): Return True for raise expressions. 1914 * sem_ch3.adb (Analyze_Component_Declaration): Do not report an 1915 error when a component is initialized with a raise expression. 1916 * sem_ch4.adb (Analyze_Qualified_Expression): Do not report an 1917 error when the aggregate has a raise expression. 1918 19192019-09-17 Piotr Trojanek <trojanek@adacore.com> 1920 1921 * ali.ads: Fix casing in comment. 1922 * ali-util.ads, ali-util.adb (Read_Withed_ALIs): Remove 1923 Ignore_Errors parameter; it was only set to non-default value of 1924 True when running in GNATprove_Mode and wrongly reset to False 1925 when calling this routine recursively. Now in GNATprove mode we 1926 want it to be always True, so in fact it is equivalent to 1927 GNATProve_Mode flag itself (which was already used in this 1928 routine). 1929 19302019-09-17 Arnaud Charlet <charlet@adacore.com> 1931 1932 * adaint.c (_REENTRANT, _THREAD_SAFE): Only define if needed. 1933 19342019-09-17 Arnaud Charlet <charlet@adacore.com> 1935 1936 * libgnat/s-bitfie.ads (Val_Bits, Val_Bytes): Define from 1937 Long_Long_Integer'Size. 1938 19392019-09-17 Javier Miranda <miranda@adacore.com> 1940 1941 * exp_ch6.ads (Needs_BIP_Task_Actuals): New subprogram. 1942 * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): Code 1943 cleanup. 1944 (Check_Number_Of_Actuals): New subprogram. 1945 (Make_Build_In_Place_Call_In_Allocator): Adding assertion. 1946 (Make_Build_In_Place_Call_In_Anonymous_Context): Adding 1947 assertion. 1948 (Make_Build_In_Place_Call_In_Assignment): Adding assertion. 1949 (Make_Build_In_Place_Call_In_Object_Declaration): Code cleanup 1950 plus assertion addition. 1951 (Needs_BIP_Task_Actuals): New subprogram. 1952 * sem_ch6.adb (Create_Extra_Formals): Rely on 1953 Needs_BIP_Task_Actuals() to check if the master of the tasks to 1954 be created, and the caller's activation chain formals are 1955 needed. 1956 19572019-09-17 Bob Duff <duff@adacore.com> 1958 1959 * libgnat/s-bituti.adb (Get_Val_2, Set_Val_2): Use new routines 1960 for getting and setting a Val_2, avoiding touching the second 1961 half when that half might not exist. 1962 * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Correct 1963 tests for potential volatile or independent components. In 1964 particular, do not call Prefix unless we know it's a slice. 1965 19662019-09-17 Dmitriy Anisimkov <anisimko@adacore.com> 1967 1968 * gsocket.h: Include sys/un.h. 1969 * s-oscons-tmplt.c (AF_UNIX): New constant generation. 1970 (SIZEOF_sockaddr_un): Idem. 1971 * libgnat/g-socket.ads (Family_Type): New value Family_Unix 1972 added. 1973 (Family_Inet_4_6): New subtype only for network families. 1974 (Sock_Addr_Type): Add Unbounded_String field for Family_Unix 1975 variant. 1976 (Unix_Socket_Address): Create Sock_Addr_Type from socket 1977 pathname. 1978 (Network_Socket_Address): Create Sock_Addr_Type from 1979 Inet_Addr_Type and Port_Type parameters. 1980 * libgnat/g-socket.adb: Support local unix address in socket 1981 routines. 1982 (Get_Address_Info): Disable warning about Result may be 1983 referenced before it has a value. Remove duplicated code to exit 1984 from Look_For_Supported. 1985 * libgnat/g-sothco.ads (Unix_Name_Length): New constant defining 1986 maximum number of characters in local socket address path. 1987 (Sockaddr): Add variant for Family_Unix address family. Move 1988 Sin_Port and Sin_Family to Family_Inet section. Add Sin6_Port 1989 and Sin6_Family to Family_Inet6 section. 1990 (Set_Address): Add out parameter Length to return valuable 1991 Sockaddr data length. 1992 (Get_Address): Add input parameter Length to set valuable 1993 Sockaddr data length. 1994 * libgnat/g-sothco.adb: Support local unix address in socket 1995 routines. 1996 19972019-09-17 Eric Botcazou <ebotcazou@adacore.com> 1998 1999 * exp_attr.adb (Expand_Size_Attribute): Chain the special cases 2000 on the back-end path and rewrite the attribute appled to slices 2001 of bit-packed arrays into the product of the Length and the 2002 Compoent_Size attributes of the slices. 2003 * exp_ch5.adb (Expand_Assign_Array_Bitfield): Use Size attribute 2004 directly to compute the bitfield's size. 2005 20062019-09-17 Bob Duff <duff@adacore.com> 2007 2008 * exp_ch5.adb (Expand_Assign_Array_Loop_Or_Bitfield): Add tests 2009 for potential volatile or independent components. 2010 * libgnat/s-bituti.adb (Copy_Small_Bitfield, 2011 Copy_Large_Bitfield): Move declarations to more appropriate 2012 place. 2013 20142019-09-13 Maciej W. Rozycki <macro@wdc.com> 2015 2016 * make.adb (Scan_Make_Arg): Also accept `--sysroot=' for the 2017 compiler and the linker. 2018 20192019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2020 2021 * gcc-interface/decl.c (maybe_saturate_size): New function. 2022 (gnat_to_gnu_entity): Invoke it on the Esize of types before sending 2023 it for back-annotations. 2024 * gcc-interface/trans.c: Fix typo. 2025 20262019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2027 2028 * gcc-interface/ada-tree.h (DECL_FORCED_BY_REF_P): New macro. 2029 * gcc-interface/decl.c (gnat_to_gnu_param): Set it on parameters 2030 whose mechanism was forced to by-reference. 2031 * gcc-interface/trans.c (Call_to_gnu): Do not issue a warning about a 2032 misaligned actual parameter if it is based on a CONSTRUCTOR. Remove 2033 obsolete warning for users of Starlet. Issue a warning if a temporary 2034 is make around the call for a parameter with DECL_FORCED_BY_REF_P set. 2035 (addressable_p): Return true for REAL_CST and ADDR_EXPR. 2036 20372019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2038 2039 * gcc-interface/trans.c (gnat_to_gnu): Do not set the location on an 2040 expression used for a tag. 2041 20422019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2043 2044 * gcc-interface/gigi.h (aggregate_type_contains_array_p): Declare. 2045 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For an 2046 extension, test Has_Record_Rep_Clause instead of Has_Specified_Layout. 2047 (adjust_packed): Return 0 if the type of the field is an aggregate 2048 type that contains (or is) a self-referential array. 2049 (type_has_variable_size): Delete. 2050 * gcc-interface/utils.c (inish_record_type): Constify a variable. 2051 (aggregate_type_contains_array_p): Add parameter SELF_REFERENTIAL. 2052 <RECORD_TYPE>: Pass it in the recursive call. 2053 <ARRAY_TYPE>: If it is true, return true only if the array type is 2054 self-referential. 2055 (create_field_decl): Streamline the setting of the alignment on the 2056 field. Pass false to aggregate_type_contains_array_p. 2057 20582019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2059 2060 * gcc-interface/trans.c (lvalue_required_p) <N_Slice>: Adjust GNU_TYPE 2061 in the recursive call. 2062 <N_Selected_Component>: Likewise. 2063 20642019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2065 2066 * gcc-interface/utils.c (build_template): Deal with parameters 2067 passed by pointer to component of multi-dimensional arrays. 2068 20692019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2070 2071 * gcc-interface/decl.c (annotate_value) <CALL_EXPR>: Inline the call 2072 also if List_Representation_Info is greater than 3. 2073 20742019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2075 2076 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Size>: Add assertion. 2077 20782019-08-30 Eric Botcazou <ebotcazou@adacore.com> 2079 2080 * gcc-interface/gigi.h (gigi_checking_assert): New macro. 2081 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Modular_Integer_Type>: 2082 Remove redundant test and adjust comments. Minor tweaks. 2083 * gcc-interface/trans.c (Call_to_gnu): Do not generate range checks, 2084 instead assert that the Do_Range_Check flag is not set. Adjust call 2085 to convert_with_check. 2086 (gnat_to_gnu): Likewise. 2087 (assoc_to_constructor): Likewise. 2088 (pos_to_constructor): Likewise. Remove GNAT_COMPONENT_TYPE parameter. 2089 (emit_range_check): Delete. 2090 (convert_with_check): Remove RANGE_P parameter and adjust. Do a single 2091 overflow check for modular types. 2092 20932019-08-23 Jakub Jelinek <jakub@redhat.com> 2094 2095 PR middle-end/91283 2096 * gcc-interface/misc.c (gnat_post_options): Set flag_excess_precision 2097 instead of flag_excess_precision_cmdline. 2098 20992019-08-21 Vadim Godunko <godunko@adacore.com> 2100 2101 * libgnat/g-expect.adb (Expect_Internal): Attempt to read 2102 several times when 'read' returns non-positive. 2103 21042019-08-21 Piotr Trojanek <trojanek@adacore.com> 2105 2106 * einfo.adb (Is_Discriminal): Remove extra parens. 2107 (Is_Constant_Object): Simplify by reusing Ekind_In. 2108 (Is_Prival): Remove extra parens. 2109 * checks.adb, exp_ch4.adb, sem_ch3.adb, sem_spark.adb: Minor 2110 reformattings. 2111 21122019-08-21 Claire Dross <dross@adacore.com> 2113 2114 * libgnat/a-cofove.ads (Vector): Add an Iterable aspect to allow 2115 iteration. 2116 (Iter_First, Iter_Next): Primitives used for iteration. 2117 21182019-08-21 Yannick Moy <moy@adacore.com> 2119 2120 * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit RM_Size 2121 field for formal type parameters in generic instantiations. 2122 21232019-08-21 Yannick Moy <moy@adacore.com> 2124 2125 * sem_spark.adb: Update references to the SPARK RM. 2126 21272019-08-21 Eric Botcazou <ebotcazou@adacore.com> 2128 2129 * repinfo.adb (List_Array_Info): In -gnatR4 mode, set the 2130 relevant flag on the component type here instead of... 2131 (List_Object_Info): Likewise for the object type. 2132 (List_Entities): ...here. In -gnatR4 mode, recurse into 2133 entities local to a record type. 2134 (List_Component_Layout): In -gnatR4 mode, mark the type as 2135 relevant. 2136 21372019-08-21 Bob Duff <duff@adacore.com> 2138 2139 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add s-bitutil.o and 2140 s-biutin.o. 2141 * exp_ch5.adb (Expand_Assign_Array_Bitfield): New function to 2142 generate a call to Copy_Bitfield. This is disabled for now. 2143 (Expand_Assign_Array_Loop_Or_Bitfield): New function to decide 2144 whether to call Expand_Assign_Array_Bitfield. 2145 (Expand_Assign_Array): Call Expand_Assign_Array_Loop_Or_Bitfield 2146 instead of Expand_Assign_Array_Loop. 2147 * libgnat/s-bitfie.ads, libgnat/s-bituti.adb, 2148 libgnat/s-bituti.ads: New units. 2149 * rtsfind.ads: Add enum literals for accessing Copy_Bitfield. 2150 21512019-08-21 Piotr Trojanek <trojanek@adacore.com> 2152 2153 * bindo-graphs.ads (Iterate_Edges_To_Successors): Fix typo in 2154 pragma Inline. 2155 * bindo-graphs.adb (Delete_Edge): Fix layout in parameter list. 2156 21572019-08-21 Gary Dismukes <dismukes@adacore.com> 2158 2159 * exp_ch3.adb (Build_Master): Suppress call to 2160 Build_Class_Wide_Master in the case where the 2161 access-to-limited-class-wide type was created for a component in 2162 an entry's formal parameter 2163 block (Is_Parameter_Block_Component_Type), to prevent a master 2164 from being created for such access types generated by the front 2165 end in a task spec for entry formals in a parameter block. Add 2166 a ??? about whether this suppression should be done more 2167 generally (such as by using Comes_From_Source). 2168 21692019-08-21 Eric Botcazou <ebotcazou@adacore.com> 2170 2171 * exp_ch6.adb (Expand_N_Extended_Return_Statement): In the case 2172 of a built-in-place function that doesn't need a BIP_Alloc_Form 2173 parameter but returns unconstrained, build the return 2174 consistently using the function's result subtype. Remove bypass 2175 added in previous change. 2176 21772019-08-21 Piotr Trojanek <trojanek@adacore.com> 2178 2179 * sem_prag.adb (Max_Entry_Queue_Length): Do not substitute 2180 expression of the pragma argument with its value during 2181 analysis. 2182 * sem_util.adb (Get_Max_Queue_Length): Compute value of the 2183 pragma argument when needed. 2184 21852019-08-21 Yannick Moy <moy@adacore.com> 2186 2187 * checks.adb (Install_Null_Excluding_Check): Do not install 2188 check in GNATprove mode. 2189 21902019-08-21 Yannick Moy <moy@adacore.com> 2191 2192 * sem_spark.adb (Process_Path): Do nothing on address of 2193 subprogram. 2194 21952019-08-21 Eric Botcazou <ebotcazou@adacore.com> 2196 2197 * exp_util.adb (Finalize_Address): Deal consistently with 2198 subtypes of private protected types. 2199 22002019-08-21 Piotr Trojanek <trojanek@adacore.com> 2201 2202 * exp_util.adb (Corresponding_Runtime_Package): Use high-level 2203 Is_Protected_Type. 2204 * sem_ch8.adb (Analyze_Renamed_Entry): Likewise. 2205 * sem_ch9.adb (Analyze_Requeue): Likewise. 2206 22072019-08-21 Javier Miranda <miranda@adacore.com> 2208 2209 * sem_util.adb (Update_Named_Associations): Update 2210 First_Named_Actual when the subprogram call has a single named 2211 actual. 2212 22132019-08-21 Joel Brobecker <brobecker@adacore.com> 2214 2215 * doc/Makefile (mk_empty_dirs): New (PHONY) rule. 2216 (%.html, %.pdf, %.txt, %.info, %.texinfo): Add dependencies on 2217 mk_empty_dirs. 2218 22192019-08-21 Justin Squirek <squirek@adacore.com> 2220 2221 * doc/gnat_rm/implementation_defined_pragmas.rst: Modify 2222 documentation to reflect expected behavior. 2223 * gnat_rm.texi: Regenerate. 2224 * sem_prag.adb (Analyze_Pragma): Modify handling of pragma 2225 Max_Entry_Queue_Length to not reject integer values of negative 2226 one. 2227 * sem_util.adb (Get_Max_Queue_Length): Add processing for values 2228 of negative one to fit within the current scheme. 2229 22302019-08-20 Arnaud Charlet <charlet@adacore.com> 2231 2232 * exp_unst.adb (Unnest_Subprograms, Unnest_Subprogram): Take 2233 inlining (-gnatn) into account. 2234 22352019-08-20 Ed Schonberg <schonberg@adacore.com> 2236 2237 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 2238 Storage_Size): If the expression for Storage_Size is not static 2239 it may depend on characterstics of another type that may bot be 2240 frozen yet, so the elaboration of the expression for the aspect 2241 must be attached directly to the freeze actions of the type to 2242 which it applies. 2243 22442019-08-20 Piotr Trojanek <trojanek@adacore.com> 2245 2246 * exp_util.adb (Build_DIC_Procedure_Declaration): Set the last 2247 entity of the generated Default_Initial_Condition procedure in 2248 order to construct a proper entity chain. 2249 22502019-08-20 Yannick Moy <moy@adacore.com> 2251 2252 * exp_spark.adb (Expand_SPARK_N_Slice_Or_Indexed_Component): 2253 Renaming of function to apply to slices as well. 2254 (Expand_SPARK): Expand prefix of slices of access type. 2255 22562019-08-20 Bob Duff <duff@adacore.com> 2257 2258 * exp_aggr.adb (Expand_Array_Aggregate): Use build-in-place in 2259 the nonlimited case in STEP 4. This improves the efficiency of 2260 things like (1 .. 1000 => <>). We still generate some code for 2261 that, unfortunately, but it is much improved. 2262 (Aggr_Assignment_OK_For_Backend): Return false if <> components 2263 are present. 2264 22652019-08-20 Bob Duff <duff@adacore.com> 2266 2267 * exp_ch6.adb (Needs_BIP_Alloc_Form): Call 2268 Requires_Transient_Scope rather than checking constrainedness 2269 and so forth. We have previously improved 2270 Requires_Transient_Scope to return False in various cases, 2271 notably a limited record with an access discriminant. This 2272 change takes advantage of that to avoid using the secondary 2273 stack for functions returning such types. 2274 (Make_Build_In_Place_Call_In_Allocator): Be consistent by 2275 calling Needs_BIP_Alloc_Form rather than Is_Constrained and so 2276 forth. 2277 * sem_ch4.adb (Analyze_Allocator): The above change causes the 2278 compiler to generate code that is not legal Ada, in particular 2279 an uninitialized allocator for indefinite subtype. This is 2280 harmless, so we suppress the error message in this case. 2281 22822019-08-20 Gary Dismukes <dismukes@adacore.com> 2283 2284 * ali.adb, ali.ads, aspects.adb, checks.ads, checks.adb, 2285 doc/gnat_rm/implementation_defined_pragmas.rst, 2286 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 2287 einfo.ads, exp_aggr.adb, exp_ch11.adb, exp_ch3.ads, exp_ch4.adb, 2288 exp_disp.adb, inline.adb, libgnat/a-locale.ads, 2289 libgnat/s-soflin.ads, par_sco.adb, repinfo.adb, sem_ch5.adb, 2290 sem_disp.adb, sem_elab.adb, sem_eval.adb, sem_spark.adb, 2291 sem_spark.ads, sinfo.ads: Minor reformattings, typo fixes and 2292 and rewordings. 2293 22942019-08-20 Dmitriy Anisimkov <anisimko@adacore.com> 2295 2296 * adaint.c (__gnat_to_gm_time): On _WIN32, don't round time up 2297 to even second. 2298 22992019-08-20 Ed Schonberg <schonberg@adacore.com> 2300 2301 * sem_ch3.adb (Analyze_Object_Declaration): If actual type is 2302 private and distinct from nominal type in declaration, propagate 2303 flags Is_Constr_Subt_For_U_Nominal and _UN_Aliased to full view 2304 of private type. 2305 23062019-08-20 Ed Schonberg <schonberg@adacore.com> 2307 2308 * exp_attr.adb (Expand_Loop_Entry_Attribute): When expanding a 2309 loop entry attribute for a while_loop we construct a function 2310 that incorporates the expanded condition of the loop. The itypes 2311 that may be generated in that expansion must carry the scope of 2312 the constructed function for proper handling in gigi. 2313 23142019-08-20 Ed Schonberg <schonberg@adacore.com> 2315 2316 * exp_disp.adb (Build_Class_Wide_Check, Replace_Formals): When a 2317 dispatching call tp a subprogram with a class-wide precondition 2318 occurrs in the same declarative part as the ancestor subprogram 2319 being called, the`expression for the precondition has not been 2320 analyzed yet. Such a call may appear, e.g. in an expression 2321 function. In that case, the replacement of formals by actuals in 2322 the call cannot use the formal entities of the subprogram being 2323 called, and the occurrence of the formals in the expression must 2324 be located by name (Chars fields) as would be done at a later 2325 freeze point, when the expression is resolved in the context of 2326 the subprogram itself. 2327 23282019-08-20 Bob Duff <duff@adacore.com> 2329 2330 * sem_prag.adb (Persistent_BSS): If an initialization is present 2331 because of Initialize_Scalars or Normalize_Scalars, generate an 2332 implicit pragma Suppress_Initialization to remove that, because 2333 initialization is not allowed for these variables. Other 2334 initializations remain illegal. 2335 23362019-08-20 Gary Dismukes <dismukes@adacore.com> 2337 2338 * sem_ch3.adb (OK_For_Limited_Init_In_05): In the case of type 2339 conversions, apply the recursive call to the Original_Node of 2340 the expression Exp rather than the Expression of the 2341 Original_Node, in the case where Exp has been rewritten; 2342 otherwise, when Original_Node is the same as Exp, apply the 2343 recursive call to the Expression. 2344 (Check_Initialization): Revise condition for special check on 2345 type conversions of limited function calls to test Original_Node 2346 (avoiding spurious errors on expanded unchecked conversions 2347 applied to build-in-place dispatching calls). 2348 23492019-08-20 Patrick Bernardi <bernardi@adacore.com> 2350 2351 * exp_aggr.adb (Expand_Record_Aggregate): Always convert a 2352 record Aggregate to assignment statements if the option 2353 Aggregate_Individually_Assign is set. 2354 * opt.ads (Aggregate_Individually_Assign): New option. 2355 * par-prag.adb (Prag): Add Pragma_Aggregate_Individually_Assign. 2356 * sem_prag.adb (Analyze_Pragma): Likewise. 2357 * snames.ads-tmpl: Add Pragma_Aggregate_Individually_Assign and 2358 Name_Aggregate_Individually_Assign. 2359 * doc/gnat_rm/implementation_defined_pragmas.rst: Document 2360 pragma Aggregate_Individually_Assign. 2361 * gnat_rm.texi: Regenerate. 2362 23632019-08-20 Bob Duff <duff@adacore.com> 2364 2365 * par-ch4.adb: Minor wording change in error messages. 2366 * sem_aggr.adb (Resolve_Delta_Aggregate): Emit an error for Ada 2367 versions prior to Ada 2020. 2368 23692019-08-20 Bob Duff <duff@adacore.com> 2370 2371 * freeze.adb (Is_Atomic_VFA_Aggregate): Make the temp for 2372 initialization of the atomic variable be constant. This is 2373 cleaner, and might improve efficiency. 2374 23752019-08-20 Eric Botcazou <ebotcazou@adacore.com> 2376 2377 * repinfo.adb (List_Record_Info): In -gnatR4 mode, set the 2378 relevant flag on the implicit base type of a record subtype. 2379 23802019-08-20 Bob Duff <duff@adacore.com> 2381 2382 * sem_eval.adb (Expr_Value): Implement the case of an unchecked 2383 conversion of a static expression. 2384 23852019-08-20 Bob Duff <duff@adacore.com> 2386 2387 * sem_ch13.adb (Is_Null_Array): New function, used to detect the 2388 null array case; used to warn about uncheckedly converting to a 2389 zero-sized array. It is unfortunate that we can't just check 2390 the size, and warn on all cases of converting from a 2391 nonzero-sized type to a zero-sized one. That's because "0" means 2392 two different things: "size is zero" and "size is unknown". 2393 Until we fix that design flaw, we need this more targeted fix. 2394 23952019-08-20 Bob Duff <duff@adacore.com> 2396 2397 * libgnat/a-cborma.adb, libgnat/a-cborse.adb (Clear): Repeatedly 2398 call Delete. This avoids clearing the free list, which 2399 substantially speeds up future Delete operations. 2400 24012019-08-20 Bob Duff <duff@adacore.com> 2402 2403 * sem_ch13.adb (Component_Order_Check): New procedure to check 2404 for out-of-order clauses. 2405 * warnsw.ads, warnsw.adb: New -gnatw_r switch. 2406 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: 2407 Document new switch. 2408 * gnat_ugn.texi: Regenerate. 2409 24102019-08-20 Bob Duff <duff@adacore.com> 2411 2412 * sem_ch13.adb (Object_Size): Give an error for zero. It really 2413 rubs me the wrong way that we don't honor "for T'Object_Size use 2414 0;", but it's not important enough to fix. In any case, if we're 2415 not going to obey the clause, we should give an error. 2416 24172019-08-20 Bob Duff <duff@adacore.com> 2418 2419 * errout.adb (Error_Msg_Internal): Set Warn_Err in case of 2420 Is_Style_Msg. 2421 * erroutc.adb (Output_Msg_Text): Do Warnings_Treated_As_Errors 2422 processing and [warning-as-error] modification for style 2423 messages. Clean up code, simplify, remove unnecessary block 2424 statement, add renaming of table entry. 2425 * erroutc.ads (Warning_Treated_As_Error): Fix comment: no such 2426 thing as Set_Warning_As_Error. 2427 * opt.ads: Clean up comments and move related declarations near 2428 each other. 2429 * par-prag.adb: Process Warning_As_Error. This is necessary 2430 because many style warning happen during parsing. 2431 * sem_prag.adb: Use new Acquire_Warning_Match_String. 2432 * sem_util.ads, sem_util.adb (Acquire_Warning_Match_String): New 2433 function shared by par-prag.adb and sem_prag.adb. Replaces the 2434 procedure in sem_prag.adb. Avoid use of global variables. 2435 * stringt.ads, stringt.adb (To_String): New function to convert 2436 String_Id to String. 2437 * doc/gnat_rm/implementation_defined_pragmas.rst: Document the 2438 new feature. 2439 * gnat_rm.texi: Regenerate. 2440 24412019-08-20 Eric Botcazou <ebotcazou@adacore.com> 2442 2443 * lib.ads: Add with clause for GNAT.HTable. 2444 Add pragma Inline for Is_Loaded and alphabetize the list. 2445 (Unit_Name_Table_Size): New constant. 2446 (Unit_Name_Header_Num): New subtype. 2447 (Unit_Name_Hash): New function declaration. 2448 (Unit_Names): New simple hash table. 2449 (Init_Unit_Name): New procedure declaration. 2450 * lib.adb (Set_Unit_Name): Unregister the old name in the table, 2451 if any, and then register the new name. 2452 (Init_Unit_Name): New procedure. 2453 (Is_Loaded): Reimplement using a lookup in the names table. 2454 (Remove_Unit): Unregister the name. 2455 (Unit_Name_Hash): New function. 2456 * lib-load.adb (Create_Dummy_Package_Unit): Call Init_Unit_Name. 2457 (Load_Unit): Use a lookup in the names table to find out whether 2458 the unit has already been loaded. Call Init_Unit_Name and then 2459 Remove_Unit if the loading has failed. 2460 (Make_Child_Decl_Unit): Call Init_Unit_Name. 2461 (Make_Instance_Unit): Likewise. 2462 * lib-writ.adb (Ensure_System_Dependency): Likewise. 2463 24642019-08-20 Bob Duff <duff@adacore.com> 2465 2466 * sem_ch13.adb (Record_Hole_Check): Initialize After_Last. 2467 24682019-08-20 Piotr Trojanek <trojanek@adacore.com> 2469 2470 * impunit.adb (Get_Kind_Of_Unit): Revert change for adapting 2471 this routine for gnatprove. 2472 24732019-08-20 Arnaud Charlet <charlet@adacore.com> 2474 2475 * doc/gnat_rm/implementation_defined_pragmas.rst: Document 2476 requirements for Pragma Lock_Free. 2477 * gnat_rm.texi: Regenerate. 2478 24792019-08-20 Philippe Gil <gil@adacore.com> 2480 2481 * bindgen.adb (Gen_Main): Set gnat_argc/gnat_argv to argc/argv 2482 only when still uninitialized. 2483 24842019-08-20 Bob Duff <duff@adacore.com> 2485 2486 * libgnat/g-comlin.ads (Exit_From_Command_Line): Fix 2487 documentation for GNAT.Command_Line. 2488 24892019-08-20 Pierre-Marie de Rodat <derodat@adacore.com> 2490 2491 PR ada/91492 2492 * gcc-interface/lang.opt (-fdump-scos): Add missing dot at the 2493 end of the documentation. 2494 24952019-08-20 Richard Sandiford <richard.sandiford@arm.com> 2496 2497 * gcc-interface/misc.c (default_pass_by_ref): Update call to 2498 pass_by_reference. 2499 25002019-08-19 Bob Duff <duff@adacore.com> 2501 2502 * doc/gnat_rm/implementation_advice.rst: Fix documentation for 2503 stream oriented attributes. 2504 * gnat_rm.texi: Regenerate. 2505 25062019-08-19 Gary Dismukes <dismukes@adacore.com> 2507 2508 * einfo.ads (E_Function, E_Procedure): Update comments to 2509 reflect that Renamed_Entity is also used for nongeneric 2510 subprograms. 2511 25122019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2513 2514 * sem_prag.adb (Is_Before_First_Decl): Deal with rewritten 2515 pragmas. 2516 25172019-08-19 Bob Duff <duff@adacore.com> 2518 2519 * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning 2520 on formal parameters of dispatching operations. 2521 25222019-08-19 Ed Schonberg <schonberg@adacore.com> 2523 2524 * sem_res.adb (Resolve_Call): A call to an expression function 2525 freezes when expander is active, unless the call appears within 2526 the body of another expression function, 2527 25282019-08-19 Dmitriy Anisimkov <anisimko@adacore.com> 2529 2530 * libgnat/s-os_lib.ads, libgnat/s-os_lib.adb (To_Ada, To_C): New 2531 routines. 2532 25332019-08-19 Bob Duff <duff@adacore.com> 2534 2535 * exp_attr.adb (Attribute_Valid): Correct the handling of 2536 private types where the full type is modular. System.Address is 2537 an example. Otherwise, we convert uncheckedly to a signed type, 2538 so we get an incorrect range 0 .. -1, for which all values will 2539 fail. The 'Valid attribute is illegal for such types, but we 2540 generate such illegal attribute_references for 'Valid_Scalars, 2541 and we generate 'Valid_Scalars when the -gnateV switch is used. 2542 Rename Btyp --> PBtyp to avoid hiding the outer Btyp, which was 2543 confusing. 2544 * libgnat/a-except.adb: Set the Exception_Raised component. 2545 Otherwise, we have incorrect reads of invalid data. 2546 25472019-08-19 Pierre-Marie de Rodat <derodat@adacore.com> 2548 2549 * libgnat/a-cgaaso.ads, libgnat/a-cgarso.ads, 2550 libgnat/a-cogeso.ads, libgnat/a-contai.ads, 2551 libgnat/a-locale.ads: Import documentation from the RM. 2552 25532019-08-19 Jerome Guitton <guitton@adacore.com> 2554 2555 * Makefile.rtl (system.o): New target to add generation of 2556 target properties. 2557 * gcc-interface/Makefile.in (install-gnatlib): Install 2558 ada_target_properties. 2559 25602019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2561 2562 * inline.adb (Add_Inlined_Body): Do not special-case instances 2563 that are compilation units. 2564 (Add_Pending_Instantiation): Likewise. 2565 (Instantiate_Body): Skip instantiations that are compilation 2566 units and have already been performed. 2567 * sem_ch12.adb (Needs_Body_Instantiated): Do not special-case 2568 instances that are compilation units. 2569 (Load_Parent_Of_Generic): Be prepared for parent that is a 2570 compilation unit but whose instantiation node has not been 2571 replaced. 2572 25732019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2574 2575 * inline.adb (Initialize, Lock): Deal with 2576 Called_Pending_Instantiations. 2577 25782019-08-19 Ed Schonberg <schonberg@adacore.com> 2579 2580 * sem_ch6.adb (Check_Synchronized_Overriding): Complete 2581 predicate that applies legality check in 9.4 (11.9/2): if an 2582 inherited subprogram is implemented by a protected procedure or 2583 entry, its first paarameter must be out, in_out or 2584 access_to_varible. 2585 25862019-08-19 Javier Miranda <miranda@adacore.com> 2587 2588 PR ada/65696 2589 * exp_atag.ads, exp_atag.adb (Build_Inherit_Predefined_Prims): 2590 Adding formal to specify how many predefined primitives are 2591 inherited from the parent type. 2592 * exp_disp.adb (Number_Of_Predefined_Prims): New subprogram. 2593 (Make_Secondary_DT): Compute the number of predefined primitives 2594 of all tagged types (including tagged types not defined at 2595 library level). Previously we unconditionally relied on the 2596 Max_Predef_Prims constant value when building the dispatch 2597 tables of tagged types not defined at library level (thus 2598 consuming more memory for their dispatch tables than required). 2599 (Make_DT): Compute the number of predefined primitives that must 2600 be inherited from their parent type when building the dispatch 2601 tables of tagged types not defined at library level. Previously 2602 we unconditionally relied on the Max_Predef_Prims constant value 2603 when building the dispatch tables of tagged types not defined at 2604 library level (thus copying more data than required from the 2605 parent type). 2606 26072019-08-19 Bob Duff <duff@adacore.com> 2608 2609 * sem_ch13.adb (Record_Hole_Check): Procedure to check for holes 2610 that incudes processing type extensions. A type extension is 2611 processed by first calling Record_Hole_Check recursively on the 2612 parent type to compute the bit number after the last component 2613 of the parent. 2614 26152019-08-19 Gary Dismukes <dismukes@adacore.com> 2616 2617 * checks.adb (Length_Mismatch_Info_Message): New function in 2618 Selected_Length_Checks to return a message indicating the 2619 element counts for the mismatched lengths for a failed 2620 compile-time length check. 2621 (Plural_Or_Singular_Ending): Support function in 2622 Length_Mismatch_Info_Message to return either "" or "s", for 2623 concatenating to the end of words. 2624 (Selected_Length_Checks): Pass the result of 2625 Length_Mismatch_Info_Message as an extra warning message to 2626 Compile_Time_Constraint_Error to indicate the mismatched lengths 2627 for a failed compile-time length check. 2628 * sem_util.ads (Compile_Time_Constraint_Error): Add an optional 2629 message formal (Extra_Msg), defaulted to the empty string. 2630 * sem_util.adb (Compile_Time_Constraint_Error): Output an extra 2631 message following the main warning message (when Extra_Msg is 2632 not the empty string). 2633 26342019-08-19 Patrick Bernardi <bernardi@adacore.com> 2635 2636 * socket.c: Removed the redefinition of getaddrinfo, getnameinfo 2637 and freeaddrinfo to internal VxWorks kernel calls because they 2638 are, well, internal kernel calls and cannot be called from RTPs. 2639 VxWorks provides the necessary components to call these routines 2640 directly. 2641 26422019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2643 2644 * exp_dist.adb (Is_Generic_Actual_Subtype): New predicate. 2645 (Build_From_Any_Call, Build_To_Any_Call, Build_TypeCode_Call): 2646 Use it instead of Is_Generic_Actual_Type flag to detect subtypes 2647 representing generic actual types. 2648 26492019-08-19 Ed Schonberg <schonberg@adacore.com> 2650 2651 * sem_warn.adb (Check_References, Generic_Body_Formal): When a 2652 formal parameter of a generic subprogram is not referenced in 2653 the body, place the corresponding warning on the corresponding 2654 entity in the specification of the generic body, as is done for 2655 non-generic subprograms. 2656 26572019-08-19 Bob Duff <duff@adacore.com> 2658 2659 * errout.ads (Size_Too_Small_Message): New constant. 2660 * errout.adb, freeze.adb, sem_ch13.adb: Use it. 2661 26622019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2663 2664 * exp_dist.adb (Build_Package_Stubs): Do not specifically visit 2665 the declarations of an N_Subprogram_Instantiation node. 2666 26672019-08-19 Bob Duff <duff@adacore.com> 2668 2669 * doc/gnat_ugn/gnat_utility_programs.rst: Document missing 2670 metrics switches. 2671 26722019-08-19 Piotr Trojanek <trojanek@adacore.com> 2673 2674 * sem_ch12.adb (Get_Unit_Instantiation_Node): Simplify Nkind_In 2675 membership test. 2676 * sem.adb (Depends_On_Main): Whitespace cleanup; only assign a 2677 local variable if needed. 2678 26792019-08-19 Claire Dross <dross@adacore.com> 2680 2681 * sem_spark.ads, sem_spark.adb (Is_Pledge_Function): New 2682 parameter of the generic. Function used to decide whether a 2683 function is a pledge function. 2684 (Check_Not_Borrowed): Disable check inside the second parameter 2685 of a pledge function for the path borrowed by the first 2686 parameter. Also disable checks for entities inside a Global 2687 contract. 2688 26892019-08-19 Joffrey Huguet <huguet@adacore.com> 2690 2691 * libgnat/a-cfdlli.ads, libgnat/a-cfhama.ads, 2692 libgnat/a-cfinve.ads, libgnat/a-cforma.ads, 2693 libgnat/a-cofove.ads, libgnat/a-cofuma.ads, 2694 libgnat/a-cofuve.ads: Add formal function parameter "=" (L, R : 2695 Element_Type) to the generic packages. 2696 26972019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2698 2699 * opt.ads: Clean up left-overs of earlier implementation in 2700 comment: 2701 27022019-08-19 Ed Schonberg <schonberg@adacore.com> 2703 2704 * sem_ch3.adb (Derived_Enumeration_Type): Do no freeze anonymous 2705 base type if the bounds in the derived type declaration are 2706 literals of the type. 2707 27082019-08-19 Yannick Moy <moy@adacore.com> 2709 2710 * sem_res.adb (Resolve_Call): Check non-aliasing rules before 2711 GNATprove inlining. 2712 27132019-08-19 Eric Botcazou <ebotcazou@adacore.com> 2714 2715 * inline.adb (Add_Inlined_Body): Do not add pending 2716 instantiations. 2717 * sem_ch12.adb (Needs_Body_Instantiated): New predicate. 2718 (Analyze_Package_Instantiation): Use it to decide whether to add 2719 a pending instantiation for the body of the package. 2720 27212019-08-19 Olivier Hainque <hainque@adacore.com> 2722 2723 * gcc-interface/trans.c (Acc_Loop_to_gnu): Return the openacc 2724 BIND_EXPR node we have constructed on purpose. Remove unused 2725 variable. 2726 27272019-08-19 Pierre-Marie de Rodat <derodat@adacore.com> 2728 2729 * gcc-interface/lang.opt (fdump-scos): Define. 2730 * gcc-interface/misc.c (gnat_handle_option): Handle 2731 OPT_fdump_scos. 2732 27332019-08-14 Joffrey Huguet <huguet@adacore.com> 2734 2735 * libgnat/a-cofuba.ads: Add a Length attribute to type 2736 Container. Add a type Array_Base which replaces the previous 2737 Elements attribute of Container. 2738 (Content_Init): New subprogram. It is used to initialize the 2739 Base attribute of Container. 2740 * libgnat/a-cofuba.adb (Resize): New subprogram. It is used to 2741 resize the underlying array of a container if necessary. 2742 (=, <=, Find, Get, Intersection, Length, Num_Overlaps, Set, 2743 Union): Update to match changes in type declarations. 2744 (Add): Modify body to damp the time and space cost in a specific 2745 case. 2746 (Content_Init): New subprogram. It is used to initialize the 2747 Base attribute of Container. 2748 (Remove): Modify body to damp the time and space cost in a 2749 specific case. 2750 27512019-08-14 Bob Duff <duff@adacore.com> 2752 2753 * sem_ch13.adb (Get_Alignment_Value): Return 1 for Alignment 0, 2754 and do not give an error. 2755 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Update the 2756 corresponding documentation. 2757 * gnat_rm.texi: Regenerate. 2758 27592019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2760 2761 * inline.adb (Add_Pending_Instantiation): Fix off-by-one error 2762 in the comparison against the maximum number of instantiations. 2763 27642019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2765 2766 * inline.adb (Add_Pending_Instantiation): Use greater-or-equal 2767 in the comparison against the maximum number of instantiations. 2768 27692019-08-14 Ed Schonberg <schonberg@adacore.com> 2770 2771 * sem_aux.adb (Next_Rep_Item): If a node in the rep chain 2772 involves a Ghost aspect it may have been replaced by a null 2773 statement; use the original node to find next Rep_Item. 2774 * repinfo.adb (List_Entities): Do not list an Ignored 2775 Ghost_Entity, for which information may have been deleted. 2776 27772019-08-14 Bob Duff <duff@adacore.com> 2778 2779 * sem_prag.ads, sem_prag.adb 2780 (Process_Compile_Time_Warning_Or_Error): In parameterless 2781 version, improve detection of whether we are in a generic unit 2782 to cover the case of an instance within a generic unit. 2783 (Process_Compile_Time_Warning_Or_Error): Rename the 2784 two-parameter version to be 2785 Validate_Compile_Time_Warning_Or_Error, and do not export it. 2786 Issue a warning if the condition is not known at compile time. 2787 The key point is that the warning must be given only for pragmas 2788 deferred to the back end, because the back end discovers 2789 additional values that are known at compile time. Previous 2790 changes in this ticket have enabled this by deferring to the 2791 back end without checking for special cases such as 'Size. 2792 (Validate_Compile_Time_Warning_Or_Error): Rename to be 2793 Defer_Compile_Time_Warning_Error_To_BE. 2794 * warnsw.ads, warnsw.adb (Warn_On_Unknown_Compile_Time_Warning): 2795 Add new switches -gnatw_c and -gnatw_C to control the above 2796 warning. 2797 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: 2798 Document new switches. 2799 * gnat_ugn.texi: Regenerate. 2800 28012019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2802 2803 * sem_ch12.adb (Might_Inline_Subp): Rework comment and restrict 2804 the shortcut based on Is_Inlined to the back-end inlining case. 2805 28062019-08-14 Bob Duff <duff@adacore.com> 2807 2808 * inline.adb (Check_And_Split_Unconstrained_Function): Ignore 2809 protected functions to get rid of spurious error. The 2810 transformation done by this procedure triggers legality errors 2811 in the generated code in this case. 2812 28132019-08-14 Bob Duff <duff@adacore.com> 2814 2815 * sem_prag.adb (Process_Compile_Time_Warning_Or_Error): Defer 2816 processing to the back end in all cases where the pragma's 2817 condition is not known at compile time during the front end 2818 (except in generics), as opposed to detecting 'Size attributes 2819 and the like. This ensures that we take advantage of whatever 2820 can be compile-time known after running the back end, as opposed 2821 to having the front end guess what the back end can do. Remove 2822 a little duplicated code at the call site. 2823 * gnat1drv.adb (Post_Compilation_Validation_Checks): Unlock the 2824 Elists while in Validate_Compile_Time_Warning_Errors, because it 2825 does analysis and name resolution, which sometimes involves 2826 adding Elists. 2827 28282019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2829 2830 * einfo.ads (Is_Called): Document new usage on E_Package 2831 entities. 2832 * einfo.adb (Is_Called): Accept E_Package entities. 2833 (Set_Is_Called): Likewise. 2834 * exp_ch6.adb (Expand_Call_Helper): Move code dealing with 2835 instances for back-end inlining to Add_Inlined_Body. 2836 * inline.ads: Remove with clauses for Alloc and Table. 2837 (Pending_Instantiations): Move to... 2838 * inline.adb: Add with clauses for Alloc, Uintp, Table and 2839 GNAT.HTable. 2840 (Backend_Instances): New variable. 2841 (Pending_Instantiations): ...here. 2842 (Called_Pending_Instantiations): New table. 2843 (Node_Table_Size): New constant. 2844 (Node_Header_Num): New subtype. 2845 (Node_Hash): New function. 2846 (To_Pending_Instantiations): New hash table. 2847 (Add_Inlined_Body): Bail out early for subprograms in the main 2848 unit or subunit. Likewise if the Is_Called flag is set. If the 2849 subprogram is an instance, invoke Add_Inlined_Instance. Call 2850 Set_Is_Called earlier. If the subrogram is within an instance, 2851 invoke Add_Inlined_Instance. Also deal with the case where the 2852 call itself is within an instance. 2853 (Add_Inlined_Instance): New procedure. 2854 (Add_Inlined_Subprogram): Remove conditions always fulfilled. 2855 (Add_Pending_Instantiation): Move the defence against ludicruous 2856 number of instantiations to here. When back-end inlining is 2857 enabled, associate an instantiation with its index in table and 2858 mark a few selected kinds of instantiations as always needed. 2859 (Initialize): Set Backend_Instances to No_Elist. 2860 (Instantiate_Body): New procedure doing the work extracted 2861 from... 2862 (Instantiate_Bodies): ...here. When back-end inlining is 2863 enabled, loop over Called_Pending_Instantiations instead of 2864 Pending_Instantiations. 2865 (Is_Nested): Minor tweak. 2866 (List_Inlining_Info): Also list the contents of 2867 Backend_Instances. 2868 * sem_ch12.adb (Might_Inline_Subp): Return early if Is_Inlined 2869 is set and otherwise set it before returning true. 2870 (Analyze_Package_Instantiation): Remove the defence against 2871 ludicruous number of instantiations. Invoke 2872 Remove_Dead_Instance instead of doing the removal manually if 2873 there is a guaranteed ABE. 2874 28752019-08-14 Gary Dismukes <dismukes@adacore.com> 2876 2877 * exp_ch3.adb (Predef_Spec_Or_Body): For an equality operation 2878 of an interface type, create an expression function (that 2879 returns False) rather than declaring an abstract function. 2880 * freeze.adb (Check_Inherited_Conditions): Set Needs_Wrapper to 2881 False unconditionally at the start of the loop creating wrappers 2882 for inherited operations. 2883 28842019-08-14 Bob Duff <duff@adacore.com> 2885 2886 * table.adb: Assert that the table is not locked when increasing 2887 Last, even if it doesn't cause reallocation. In other words, 2888 assert that on operations that MIGHT cause reallocation. 2889 * table.ads: Fix comment accordingly. 2890 28912019-08-14 Arnaud Charlet <charlet@adacore.com> 2892 2893 * doc/gnat_ugn/gnat_and_program_execution.rst: Remove 2894 documentation of gnatelim. 2895 28962019-08-14 Bob Duff <duff@adacore.com> 2897 2898 * sem_prag.adb (Validate_Compile_Time_Warning_Error): Attach the 2899 warning to the Sloc of the first pragma argument, rather than to 2900 the pragma itself. This is to make pragmas processed after the 2901 back end use the same Sloc as pragmas processed earlier, in the 2902 front end. There's no reason for this discrepancy, and it 2903 hinders further work on this ticket. 2904 29052019-08-14 Bob Duff <duff@adacore.com> 2906 2907 * sem.ads (Inside_A_Generic): Remove the ??? comment. 2908 29092019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2910 2911 * inline.ads (Pending_Descriptor): Delete. 2912 * inline.adb (Initialize): Do not initialize it. 2913 * sem_ch12.adb (Delay_Descriptors): Delete. 2914 (Analyze_Package_Instantiation): Call 2915 Set_Delay_Subprogram_Descriptors instead of Delay_Descriptors 2916 throughout. 2917 29182019-08-14 Bob Duff <duff@adacore.com> 2919 2920 * exp_aggr.adb (Init_Hidden_Discriminants): Avoid processing the 2921 wrong discriminant, which could be of the wrong type. 2922 29232019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2924 2925 * sem_ch12.adb (Analyze_Instance_And_Renamings): Do not reset 2926 the Is_Generic_Instance flag previously set on the package 2927 generated for the instantiation of a generic subprogram. 2928 29292019-08-14 Ed Schonberg <schonberg@adacore.com> 2930 2931 * exp_ch4.adb (Expand_N_Quantified_Expression): Freeze 2932 explicitly the type of the loop parameter. 2933 29342019-08-14 Javier Miranda <miranda@adacore.com> 2935 2936 * sem_util.adb (New_Copy_Tree.Copy_Node_With_Replacement): 2937 Update the Chars attribute of identifiers. 2938 29392019-08-14 Yannick Moy <moy@adacore.com> 2940 2941 * sem_spark.adb, sem_spark.ads (Is_Legal): New function exposed 2942 for use in GNATprove, to test legality rules not related to 2943 permissions. 2944 (Check_Declaration_Legality): Extract the part of 2945 Check_Declaration that checks rules not related to permissions. 2946 (Check_Declaration): Call the new Check_Declaration_Legality. 2947 (Check_Type_Legality): Rename of Check_Type. Introduce 2948 parameters to force or not checking, and update a flag detecting 2949 illegalities. 2950 (Check_Node): Ignore attribute references in statement position. 2951 29522019-08-14 Yannick Moy <moy@adacore.com> 2953 2954 * sem_spark.adb (Check_Old_Loop_Entry): New procedure to check 2955 correct use of Old and Loop_Entry. 2956 (Check_Node): Check subprogram contracts. 2957 (Check_Pragma): Check Loop_Variant. 2958 (Check_Safe_Pointers): Apply checking to library-level 2959 subprogram declarations as well, in order to check their 2960 contract. 2961 29622019-08-14 Yannick Moy <moy@adacore.com> 2963 2964 * sem_spark.adb (Is_Subpath_Expression): Take into account 2965 conversion and qualification. 2966 29672019-08-14 Eric Botcazou <ebotcazou@adacore.com> 2968 2969 * sem_ch7.adb (Install_Private_Declarations) 2970 <Swap_Private_Dependents>: Do not rely solely on the 2971 Is_Child_Unit flag on the unit to recurse. 2972 (Uninstall_Declarations) <Swap_Private_Dependents>: New 2973 function. Use it to recurse on the private dependent entities 2974 for child units. 2975 29762019-08-14 Javier Miranda <miranda@adacore.com> 2977 2978 * exp_aggr.adb (Is_CCG_Supported_Aggregate): Return False for 2979 arrays with bounds not known at compile time. 2980 29812019-08-14 Ed Schonberg <schonberg@adacore.com> 2982 2983 * sem_util.adb (New_Copy_Tree, Visit_Entity): A quantified 2984 expression includes the implicit declaration of the loop 2985 parameter. When a quantified expression is copied during 2986 expansion, for example when building the precondition code from 2987 the generated pragma, a new loop parameter must be created for 2988 the new tree, to prevent duplicate declarations for the same 2989 symbol. 2990 29912019-08-14 Yannick Moy <moy@adacore.com> 2992 2993 * sem_disp.adb (Check_Dispatching_Operation): Update assertion 2994 for the separate declarations created in GNATprove mode. 2995 * sem_disp.ads (Is_Overriding_Subprogram): Update comment. 2996 * sem_elab.adb (SPARK_Processor): Fix test for checking of 2997 overriding primitives. 2998 29992019-08-14 Eric Botcazou <ebotcazou@adacore.com> 3000 3001 * inline.adb (Add_Inlined_Body): Tweak comments. 3002 (List_Inlining_Info): Also list information about non-main 3003 units. 3004 30052019-08-14 Gary Dismukes <dismukes@adacore.com> 3006 3007 * sem_ch4.adb (Analyze_Selected_Component): In the case where 3008 the prefix is of a concurrent type, and the selected entity 3009 matching the selector is the first private declaration of the 3010 type (such as the first local variable in a task's body), set 3011 Is_Private_Op. 3012 30132019-08-14 Piotr Trojanek <trojanek@adacore.com> 3014 3015 * einfo.adb (Is_Generic_Actual_Subprogram): Replace repeated 3016 calls to Ekind with Ekind_In. 3017 30182019-08-13 Richard Sandiford <richard.sandiford@arm.com> 3019 3020 PR middle-end/91421 3021 * gcc-interface/trans.c (gigi): Call set_decl_buillt_in_function. 3022 (Call_to_gnu): Use DECL_FE_FUNCTION_CODE instead of DECL_FUNCTION_CODE. 3023 30242019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3025 3026 * ali.ads (Linker_Option_Record): Remove Original_Pos component. 3027 * ali.adb (Scan_ALI): Do not set it. 3028 30292019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3030 3031 * sem_ch3.adb (Build_Derived_Concurrent_Type): Add a couple of 3032 local variables and use them. When the derived type fully 3033 constrains the parent type, rewrite it as a subtype of an 3034 implicit (unconstrained) derived type instead of the other way 3035 around. 3036 (Copy_And_Build): Deal with concurrent types and use predicates. 3037 (Build_Derived_Private_Type): Build the full derivation if 3038 needed for concurrent types too. 3039 (Build_Derived_Record_Type): Add marker comment. 3040 (Complete_Private_Subtype): Use predicates. 3041 30422019-08-13 Ed Schonberg <schonberg@adacore.com> 3043 3044 * sem_ch3.adb (Check_Generic_Ancestor): New subprogram, 3045 aubsidiary to Build_Derived_Record_Type. to enforce the rule 3046 that a type extension declared in a generic body cznnot have an 3047 ancestor that is a generic formal (RM 3.9.1 (4/2)). The rule 3048 applies to all ancestors of the type, including interface 3049 progenitors. 3050 30512019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3052 3053 * sem_ch3.adb (Build_Underlying_Full_View): Delete. 3054 (Complete_Private_Subtype): Do not set the full view on the 3055 private subtype here. If the full base is itself derived from 3056 private, do not re-derive the parent type but instead constrain 3057 an existing underlying full view. 3058 (Prepare_Private_Subtype_Completion): Do not get to the 3059 underlying full view, if any. Set the full view on the private 3060 subtype here. 3061 (Process_Full_View): Likewise. 3062 * sem_ch12.adb (Check_Generic_Actuals): Also set 3063 Is_Generic_Actual_Type on the full view if the type of the 3064 actual is private. 3065 (Restore_Private_Views): Also reset Is_Generic_Actual_Type on 3066 the full view if the type of the actual is private. 3067 * sem_eval.adb (Subtypes_Statically_Match): Remove bypass for 3068 generic actual types. 3069 30702019-08-13 Javier Miranda <miranda@adacore.com> 3071 3072 * sem_res.adb (Resolve_Selected_Component): When the type of the 3073 component is an access to a class-wide type and the type of the 3074 context is an access to a tagged type the relevant type is that 3075 of the component (since in such case we may need to generate 3076 implicit type conversions or dispatching calls). 3077 30782019-08-13 Ed Schonberg <schonberg@adacore.com> 3079 3080 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Preanalyze 3081 expression, rather do a full analysis, to prevent unwanted 3082 removal of side effects which mask the intent of the expression. 3083 30842019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3085 3086 * impunit.adb (Non_Imp_File_Names_95): Add 3087 GNAT.Branch_Prediction. 3088 30892019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3090 3091 * exp_ch6.adb: Remove with and use clauses for Sem_Ch12. 3092 (Expand_Call_Helper): Swap the back-end inlining case and the 3093 special front-end expansion case. In back-end inlining mode, do 3094 not invoke Add_Inlined_Body unless the call may be inlined. 3095 * inline.ads (Add_Pending_Instantiation): New function moved 3096 from... 3097 * inline.adb (Add_Inlined_Body): Simplify comment. Turn test on 3098 the enclosing unit into assertion. 3099 (Add_Pending_Instantiation): New function moved from... 3100 * sem_ch12.ads (Add_Pending_Instantiation): ...here. 3101 * sem_ch12.adb (Add_Pending_Instantiation): ...here. 3102 31032019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3104 3105 * sem.adb (Do_Analyze): Recompute Style_Check_Max_Line_Length 3106 after restoring Style_Max_Line_Length. 3107 31082019-08-13 Arnaud Charlet <charlet@adacore.com> 3109 3110 * sem_ch13.adb (Check_Iterator_Functions): Protect against 3111 cascaded errors. 3112 31132019-08-13 Ed Schonberg <schonberg@adacore.com> 3114 3115 * sem_ch8.adb (Analyze_Subprogram_Renaming): Do no suppress mode 3116 conformance checks on child unit instance that is a compilation 3117 unit. 3118 31192019-08-13 Gary Dismukes <dismukes@adacore.com> 3120 3121 * exp_dbug.adb (Fully_Qualify_Name): Add full name qualification 3122 for the E_Exception case. 3123 31242019-08-13 Gary Dismukes <dismukes@adacore.com> 3125 3126 * exp_aggr.adb (Aggr_Size_OK): Compute the aggregate size using 3127 universal arithmetic, to avoid situations where the size 3128 computation overflows. 3129 31302019-08-13 Justin Squirek <squirek@adacore.com> 3131 3132 * repinfo.adb (List_Scalar_Storage_Order): Modify conditionals 3133 for displaying ordering to always be triggered when -gnatR4 is 3134 in effect. 3135 31362019-08-13 Justin Squirek <squirek@adacore.com> 3137 3138 * aspects.adb, aspects.ads: Register new aspect. 3139 * par-prag.adb (Prag): Register new pragma 3140 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 3141 for new aspect similar to Aspect_Max_Entry_Queue_Length. 3142 * sem_prag.adb, sem_prag.ads (Analyze_Pragma): Register new 3143 pragma and set it to use the same processing as 3144 Pragma_Max_Queue_Length. 3145 * snames.ads-tmpl: Move definition of 3146 Name_Max_Entry_Queue_Length so that it can be processed as a 3147 pragma in addition to a restriction and add an entry for the 3148 pragma itself. 3149 31502019-08-13 Yannick Moy <moy@adacore.com> 3151 3152 * sem_ch4.adb (Analyze_Allocator): Do not insert subtype 3153 declaration for allocator inside a spec expression. 3154 31552019-08-13 Yannick Moy <moy@adacore.com> 3156 3157 * sem_res.adb (Resolve_Call): Do not inline calls inside record 3158 types. 3159 31602019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3161 3162 * sem_ch4.adb (Analyze_One_Call): Remove bypass for type 3163 mismatch in nested instantiations. 3164 * sem_ch8.adb (Find_Nearer_Entity): New function. 3165 (Find_Renamed_Entity): Use it to disambiguate the candidates for 3166 the renaming generated for an instantiation when it is 3167 ambiguous. 3168 31692019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3170 3171 * gnat1drv.adb (Adjust_Global_Switches): Do not set 3172 Back_End_Inlining in ASIS mode either. 3173 31742019-08-13 Olivier Hainque <hainque@adacore.com> 3175 3176 * libgnat/s-win32.ads: Define size_t and fix the MapViewOfFile 3177 binding to use it instead of DWORD for the dwNumberOfBytesToMap 3178 argument. 3179 * libgnat/g-sercom__mingw.adb (Read): State which definition of 3180 size_t to fetch in call to Last_Index. 3181 31822019-08-13 Arnaud Charlet <charlet@adacore.com> 3183 3184 * gcc-interface/Make-lang.in: Remove unused TRACE variable. Pass 3185 LN_S to relevant gnatlib targets. 3186 * gcc-interface/Makefile.in: Systematically pass LN_S to 3187 relevant gnatlib targets. 3188 31892019-08-13 Yannick Moy <moy@adacore.com> 3190 3191 * sem_dim.adb (Analyze_Dimension, 3192 Analyze_Dimension_Array_Aggregate, Analyze_Dimension_Call, 3193 Analyze_Dimension_Extension_Or_Record_Aggregate): Return 3194 immediately when inside an inlined body. 3195 * sem_res.adb (Resolve_Call): Remove special checking now done 3196 inside Analyze_Dimension_Call. 3197 31982019-08-13 Justin Squirek <squirek@adacore.com> 3199 3200 * exp_ch4.adb (Expand_N_Allocator): Add condition to detect 3201 library-level object declarations 3202 32032019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3204 3205 * doc/gnat_ugn/building_executable_programs_with_gnat.rst 3206 (-gnateT): Document Double_Float_Alignment parameter and fix 3207 description of Double_Scalar_Alignment parameter. 3208 * gnat_ugn.texi: Regenerate. 3209 32102019-08-13 Eric Botcazou <ebotcazou@adacore.com> 3211 3212 * exp_ch6.adb (Expand_Call_Helper): If back-end inlining is 3213 enabled, also instantiate the body of a generic unit containing 3214 a subprogram subject to aspect/pragma Inline_Always at 3215 optimization level zero. 3216 * sem_ch12.adb (Might_Inline_Subp): Minor tweak. 3217 (Analyze_Package_Instantiation): Do not instantiate the package 3218 body because of inlining considerations if the instantiation is 3219 done in a generic unit. Move around similar condition involving 3220 the main unit. Add test on Back_End_Inlining to processing for 3221 front-end inlining. 3222 32232019-08-13 Javier Miranda <miranda@adacore.com> 3224 3225 * exp_disp.adb (Make_Secondary_DT): Handle record type 3226 derivations that have interface components located at fixed 3227 positions and interface components located at variable offset. 3228 The offset of components located at fixed positions is computed 3229 using the dummy object (similar to the case where all the 3230 interface components are located at fixed positions). 3231 (Make_DT): Build the dummy object for all tagged types that 3232 implement interface types (that is, build it also for types with 3233 variable size components), and use the dummy object to compute 3234 the offset of all tag components located at fixed positions when 3235 initializing the Interface_Table object. 3236 32372019-08-13 Justin Squirek <squirek@adacore.com> 3238 3239 * gnatcmd.adb (GNATCmd): Add constant for new compiler switch 3240 --help-ada, and include usage subprogram. Add line to usage help 3241 explaining the new flag. 3242 (GNATCmd_Usage): Rename from locally declared Usage so as not to 3243 confuse with the newly imported version. Add new argument case 3244 for --help-ada and add bug report email to implicit display of 3245 help without the --help flag so as to unify output between the 3246 two cases. 3247 32482019-08-13 Dmitriy Anisimkov <anisimko@adacore.com> 3249 3250 * libgnat/g-comlin.adb (Getopt): Quote unrecognized switch in 3251 Invalid_Switch exception message. 3252 32532019-08-13 Yannick Moy <moy@adacore.com> 3254 3255 * sem_util.adb (Traverse_More_Func): Take into account 3256 Loop_Actions inside N_Iterated_Component_Association nodes. 3257 * sinfo.ads: Document correctly Loop_Actions as a field of nodes 3258 of kind N_Iterated_Component_Association. 3259 32602019-08-13 Claire Dross <dross@adacore.com> 3261 3262 * libgnat/a-cfinve.adb, libgnat/a-cofove.adb (Find_Index, 3263 Reverse_Find_Index): Use bigger type to avoid range check 3264 failure at the last loop iteration. 3265 32662019-08-12 Dmitriy Anisimkov <anisimko@adacore.com> 3267 3268 * libgnat/g-socket.adb (Is_IPv6_Address): Check that no less 3269 then 2 colons in IPv6 numeric address. 3270 32712019-08-12 Dmitriy Anisimkov <anisimko@adacore.com> 3272 3273 * libgnat/g-comlin.ads, libgnat/g-comlin.adb (Getopt): Add 3274 parameter Quiet. Need to do not output error messages to 3275 console. Invalid_Switch exception generation surrounded by an 3276 error message. 3277 32782019-08-12 Ed Schonberg <schonberg@adacore.com> 3279 3280 * exp_ch6.adb (Expand_Actuals. Add_Call_By_Copy_Code): Add code 3281 to generate proper checks when an actual for an in-out or out 3282 parameter has a non-null access type. No constraints are 3283 applied to an inbound access parameter, but on exit a not-null 3284 check must be performed if the type of the actual requires it. 3285 32862019-08-12 Ed Schonberg <schonberg@adacore.com> 3287 3288 * sem_util.adb (Is_Expaned_Priority_Attribute): Check whether 3289 call comes from a rewritten attribute before comparing name with 3290 Get_Ceiling run-time subprogram. 3291 32922019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3293 3294 * exp_util.ads (Component_May_Be_Bit_Aligned): Small comment 3295 tweaks. 3296 (Possible_Bit_Aligned_Component): Likewise. 3297 (Type_May_Have_Bit_Aligned_Components): Likewise. 3298 * exp_util.adb (Component_May_Be_Bit_Aligned): Likewise. 3299 (Possible_Bit_Aligned_Component): Likewise. 3300 (Type_May_Have_Bit_Aligned_Components): Likewise. 3301 33022019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3303 3304 * exp_ch4.adb (Expand_N_Op_Eq): Expand the array equality if 3305 either operand is a possibly unaligned slice. 3306 * exp_ch6.adb (Expand_Simple_Function_Return): Do not generate a 3307 copy for a possibly unaligned object if it is represented as a 3308 scalar. 3309 * exp_util.adb (Is_Possibly_Unaligned_Slice): Do not always 3310 return false if the target doesn't have strict alignment. 3311 33122019-08-12 Bob Duff <duff@adacore.com> 3313 3314 * sem_ch12.adb (Instantiate_Package_Body): Remove suppression of 3315 checks in instances of internal units. 3316 * sem_ch6.adb (Analyze_Function_Return): Do not generate a 3317 constraint check on an extended_return_statement if the subtype 3318 of the return object in the statement is identical to the return 3319 subtype of the function. 3320 33212019-08-12 Bob Duff <duff@adacore.com> 3322 3323 * libgnat/a-cbmutr.adb (Is_Reachable): Declare Idx to be of the 3324 base subtype. Clearly it makes no sense to loop "while Idx >= 3325 0", if Idx is of a nonnegative subtype. 3326 33272019-08-12 Bob Duff <duff@adacore.com> 3328 3329 * libgnat/a-tifiio.adb (Put_Scaled): Prevent AA from being 3330 negative, since Field is range 0 .. something. 3331 33322019-08-12 Bob Duff <duff@adacore.com> 3333 3334 * doc/gnat_ugn/gnat_utility_programs.rst (gnatmetric, gnatpp, 3335 gnatstub): Remove documentation for Ada language version 3336 switches, and note that they are no longer needed. 3337 33382019-08-12 Gary Dismukes <dismukes@adacore.com> 3339 3340 * sem_ch5.adb (Prepare_Param_Spec_Loop): Set the parents of the 3341 copied low and high bounds in the case where the loop range is 3342 given by a discrete_subtype_indication, to prevent hanging (or 3343 Assert_Failure) in Insert_Actions. 3344 33452019-08-12 Ed Schonberg <schonberg@adacore.com> 3346 3347 * sem_ch6.adb (heck_Untagged_Equality): Verify that user-defined 3348 equality has the same profile as the predefined equality before 3349 applying legality rule in RM 4.5.2 (9.8). 3350 33512019-08-12 Bob Duff <duff@adacore.com> 3352 3353 * libgnat/a-except.ads: Update obsolete comment, still making 3354 clear that this is a variant. Add explicit default for Id 3355 component of Exception_Occurrence, because that value is used. 3356 Define Null_Occurrence less redundantly. 3357 * libgnat/a-einuoc.adb: Minor simplification of code. 3358 33592019-08-12 Justin Squirek <squirek@adacore.com> 3360 3361 * libgnat/a-dhfina.adb, libgnat/a-dhfina.ads (Is_Simple_Name, 3362 Is_Root_Directory, Is_Parent_Directory, 3363 Is_Current_Directory_Name, Is_Relative_Name, Initial_Directory, 3364 Relative_Name, Compose): Add implementation and documentation. 3365 * libgnat/a-direct.adb (Containing_Directory): Modify routine to 3366 use routines from Ada.Directories.Hierarchical_File_Names and 3367 remove incorrect special case for parent directories. 3368 (Fetch_Next_Entry): Add check for current directory and parent 3369 directory and ignore them under certain circumstances. 3370 (Simple_Nmae): Add check for null result from 3371 Simple_Name_Internal and raise Name_Error. 3372 (Simple_Name_Internal): Add explicit check for root directories, 3373 sanitize trailing directory separators, and modify behavior so 3374 that current and parent directories are considered valid 3375 results. 3376 * Makefile.rtl: Add entry to GNATRTL_NONTASKING_OBJS. 3377 33782019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3379 3380 * freeze.adb (Freeze_Entity): Give the same error for an 3381 Object_Size clause on a variable-sized type as for a Size 3382 clause. 3383 33842019-08-12 Gary Dismukes <dismukes@adacore.com> 3385 3386 * sem_prag.adb (Analyze_Pragma, Pragma_Suppress_Initialization): 3387 For private types, set the Suppress_Initialization flag on the 3388 Full_View of the entity rather than the entity's base type. 3389 33902019-08-12 Yannick Moy <moy@adacore.com> 3391 3392 * aspects.adb, aspects.ads (Aspect_No_Caching): New aspect. 3393 * contracts.adb, contracts.ads (Add_Contract_Item): Add handling 3394 of No_Caching. 3395 (Analyze_Object_Contract): Add handling of No_Caching. 3396 * einfo.adb, einfo.ads 3397 (Get_Pragma): Add handling of No_Caching. 3398 * doc/gnat_rm/implementation_defined_aspects.rst, 3399 doc/gnat_rm/implementation_defined_pragmas.rst: Document new 3400 aspect/pragma. 3401 * gnat_rm.texi: Regenerate. 3402 * par-prag.adb (Prag): New pragma Pragma_No_Caching. 3403 * sem_ch13.adb (Analyze_Aspect_Specifications, 3404 Check_Aspect_At_Freeze_Point): Add handling of No_Caching. 3405 * sem_prag.adb (Analyze_Pragma): Deal with pragma No_Caching. 3406 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): Now 3407 applies to No_Caching. 3408 * sem_util.adb, sem_util.ads (Is_Effectively_Volatile): Add 3409 handling of No_Caching. 3410 (No_Caching_Enabled): New query function. 3411 * snames.ads-tmpl: New names for pragma. 3412 34132019-08-12 Yannick Moy <moy@adacore.com> 3414 3415 * sem_util.adb, sem_util.ads (Traverse_More_Func, 3416 Traverse_More_Proc): Add formal parameter for Itypes traversal. 3417 34182019-08-12 Yannick Moy <moy@adacore.com> 3419 3420 * exp_attr.adb, exp_attr.ads (Expand_Size_Attribute): New 3421 procedure to share part of the attribute expansion with 3422 GNATprove mode. 3423 (Expand_N_Attribute_Reference): Extract part of the 3424 Size/Object_Size expansion in the new procedure 3425 Expand_Size_Attribute. 3426 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand 3427 Size/Object_Size attributes using the new procedure 3428 Expand_Size_Attribute. 3429 34302019-08-12 Yannick Moy <moy@adacore.com> 3431 3432 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Only 3433 expand Enum_Rep attribute when its parameter is a literal. 3434 34352019-08-12 Justin Squirek <squirek@adacore.com> 3436 3437 * sem_eval.adb (Check_Non_Static_Context): Add a condition to 3438 determine if a range violation constitues a warning or an error. 3439 (Out_Of_Range): Add a condition to determine if a range 3440 violation constitues a warning or an error. 3441 34422019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3443 3444 * exp_ch4.adb (Real_Range_Check): Do not rewrite the conversion 3445 node but its expression instead, after having fetched its 3446 current value. Clear the Do_Range_Check flag on entry. Return 3447 early for a rewritten float-to-float conversion. Remove 3448 redundant local variable. Suppress all checks when inserting 3449 the temporary and do not reanalyze the node. 3450 34512019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3452 3453 * sprint.ads: Minor comment tweak. 3454 34552019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3456 3457 * checks.adb (Insert_Valid_Check): Do not retrieve the 3458 Do_Range_Check flag from the Original_Node but from the 3459 Validated_Object. Remove useless bypass for floating-point 3460 types. 3461 34622019-08-12 Yannick Moy <moy@adacore.com> 3463 3464 * sem_util.adb, sem_util.ads (Traverse_More_Func, 3465 Traverse_More_Proc): New traversal subprograms. 3466 34672019-08-12 Jerome Lambourg <lambourg@adacore.com> 3468 3469 * libgnarl/s-taprop__vxworks.adb (Abort_Handler): Only call 3470 s-tpopsp.Self when actually needed. 3471 34722019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3473 3474 * exp_ch4.adb (Discrete_Range_Check): Return if checks are 3475 suppressed. 3476 34772019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3478 3479 * sem_res.adb: Add with & use clause for Sem_Mech and 3480 alphabetize. 3481 (Resolve_Actuals): Do not apply a scalar range check for the 3482 source of a conversion whose result is passed by reference to a 3483 valued procedure. 3484 34852019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3486 3487 * checks.adb (Insert_Valid_Check): Reset the Do_Range_Check flag 3488 on the validated object. 3489 * exp_ch6.adb (Add_Call_By_Copy_Code): Reset the Do_Range_Check 3490 flag on the actual here, as well as on the Expression if the 3491 actual is a N_Type_Conversion node. 3492 (Add_Validation_Call_By_Copy_Code): Generate the incoming range 3493 check if needed and reset the Do_Range_Check flag on the 3494 Expression if the actual is a N_Type_Conversion node. 3495 (Expand_Actuals): Do not reset the Do_Range_Check flag here. 3496 Generate the incoming range check for In parameters here instead 3497 of... 3498 (Expand_Call_Helper): ...here. Remove redudant condition. 3499 * sem_res.adb (Resolve_Actuals): Use local variable A_Typ and 3500 remove obsolete comments. 3501 (Resolve_Type_Conversion): Do not force the Do_Range_Check flag 3502 on the operand if range checks are suppressed. 3503 35042019-08-12 Eric Botcazou <ebotcazou@adacore.com> 3505 3506 * checks.adb (Activate_Range_Check): Remove redundant argument. 3507 (Generate_Range_Check): Likewise. 3508 (Apply_Float_Conversion_Check): Reset the Do_Range_Check flag on 3509 entry and remove redundant condition. 3510 35112019-08-02 Alexandre Oliva <oliva@adacore.com> 3512 3513 * libgnat/a-exexpr.adb (Begin_Handler_v1, End_Handler_v1): New. 3514 (Claimed_Cleanup): New. 3515 (Begin_Handler, End_Handler): Document. 3516 * gcc-interface/trans.c (gigi): Switch to exception handler 3517 ABI #1. 3518 (Exception_Handler_to_gnu_gcc): Save the original cleanup 3519 returned by begin handler, pass it to end handler, and use 3520 EH_ELSE_EXPR to pass a propagating exception to end handler. 3521 (gnat_to_gnu): Leave the exception pointer alone for reraise. 3522 (add_cleanup): Handle EH_ELSE_EXPR, require it by itself. 3523 35242019-07-23 Ed Schonberg <schonberg@adacore.com> 3525 3526 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations, 3527 Freeze_Entity_Checks): Include Aspect_CPU with other aspects 3528 whose expresssion may depend on a discriminant, and thus require 3529 that components of the type be made visible. 3530 35312019-07-23 Eric Botcazou <ebotcazou@adacore.com> 3532 3533 * checks.adb (Convert_And_Check_Range): Add Suppress parameter 3534 and pass it in the call to Insert_Actions. Rename local 3535 variable. 3536 (Generate_Range_Check): Minor comment fixes. Pass Range_Check 3537 in the first call to Convert_And_Check_Range and All_Checks in 3538 the second call. 3539 * exp_ch4.adb (Expand_N_Type_Conversion): Reset the 3540 Do_Overflow_Check flag in the float-to-float case too if there 3541 is also a range check. 3542 35432019-07-23 Eric Botcazou <ebotcazou@adacore.com> 3544 3545 * checks.adb (Activate_Overflow_Check): Remove redundant 3546 argument. 3547 * exp_ch4.adb (Discrete_Range_Check): Reset the overflow flag. 3548 (Expand_N_Type_Conversion): Do not reset it here. 3549 35502019-07-23 Eric Botcazou <ebotcazou@adacore.com> 3551 3552 * repinfo.adb (List_Component_Layout): Pass Decimal to UI_Write. 3553 (Write_Val): Likewise. 3554 35552019-07-23 Ed Schonberg <schonberg@adacore.com> 3556 3557 * aspects.ads: New table Operational_Aspect, used to distinguish 3558 between aspects that are view-specific, such as those related to 3559 iterators, and representation aspects that apply to all views of 3560 a type. 3561 * aspects.adb (Find_Aspect): If the aspect being sought is 3562 operational, do not ecamine the full view of a private type to 3563 retrieve it. 3564 * sem_ch5.adb (Analyze_Iterator_Specification): Improve error 3565 message when the intended domain of iteration does not implement 3566 the required iterator aspects. 3567 35682019-07-23 Yannick Moy <moy@adacore.com> 3569 3570 * sem_spark.ads (Is_Local_Context): New function. 3571 * sem_spark.adb (Check_Declaration): Issue errors on violations 3572 of SPARK RM 3.10(4) 3573 (Process_Path): Do not issue error on borrow/observe during 3574 elaboration, as these are caught by the new rule. 3575 35762019-07-23 Yannick Moy <moy@adacore.com> 3577 3578 * exp_ch7.adb (Create_Finalizer): Force finalizer not to be 3579 Ghost enabled. 3580 * exp_dbug.adb (Get_External_Name): Explain special case of 3581 Ghost finalizer. 3582 35832019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3584 3585 * repinfo.adb (List_Entities): Also list compiled-generated 3586 types present as Etype of objects. 3587 35882019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3589 3590 * sinfo.ads: Update the documentation about the 3591 Do_Division_Check, Do_Overflow_Check and Do_Range_Check flags. 3592 35932019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3594 3595 * exp_ch4.adb (Expand_N_Type_Conversion): Beef up comment. 3596 (Fixup_Universal_Fixed_Operation): Set the base type instead of 3597 the type of the enclosing type conversion on the operation. 3598 35992019-07-22 Ed Schonberg <schonberg@adacore.com> 3600 3601 * exp_ch4.adb (Expand_N_In): Do not suggest the use of attribute 3602 'Valid as a replacement for a range check on a discrete type 3603 when the bounds of the range are given by type conversions, 3604 because in such a case there are distinct types involved and the 3605 subbested attribute replacement would be misplaced. 3606 36072019-07-22 Yannick Moy <moy@adacore.com> 3608 3609 * sem_spark.adb (Get_Root_Object, Is_Path_Expression, 3610 Is_Subpath_Expression): Add parameter Is_Traversal to adapt 3611 these functions to the case of paths returned from a traversal 3612 function. 3613 (Read_Indexes): Handle the case of an if-expression or 3614 case-expression. 3615 (Check_Statement): Check Emit_Messages only when issuing an 3616 error message. This is important as Emit_Messages may store the 3617 information that an error was detected. 3618 36192019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3620 3621 * checks.adb (Apply_Type_Conversion_Checks): Do not set 3622 Do_Range_Check flag on conversions from fixed-point types 3623 either. 3624 * exp_attr.adb: Add use and with clause for Expander. 3625 (Expand_N_Attribute_Reference) <Fixed_Value, Integer_Value>: Set 3626 the Conversion_OK flag and do not generate overflow/range checks 3627 manually. 3628 * exp_ch4.adb (Expand_N_Qualified_Expression): Remove 3629 superfluous clearing of Do_Range_Check flag. 3630 (Discrete_Range_Check): New procedure to generate a range check 3631 for discrete types. 3632 (Real_Range_Check): Remove redundant local variable and adjust. 3633 Remove useless shortcut. Clear Do_Range_Check flag on all 3634 paths. 3635 (Expand_N_Type_Conversion): Remove redundant test on 3636 Conversion_OK. Call Discrete_Range_Check to generate range 3637 checks on discrete types. Remove obsolete code for 3638 float-to-integer conversions. Add code to generate range checks 3639 for conversions involving fixed-point types. 3640 36412019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3642 3643 * sprint.ads: Fix pasto in comment. 3644 36452019-07-22 Javier Miranda <miranda@adacore.com> 3646 3647 * sem_res.adb (Resolve_Actuals): Replace code that displaces the 3648 pointer to an allocated object to reference its secondary 3649 dispatch table by a type conversion (which takes care of 3650 handling all cases). 3651 36522019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3653 3654 * sprint.adb (Sprint_Node_Actual) 3655 <N_Decimal_Fixed_Point_Definition>: Swap a couple of spaces. 3656 (Write_Itype): Minor consistency fixes throughout. Add support 3657 for printing ordinary and decimal fixed-point types and 3658 subtypes. 3659 36602019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3661 3662 * exp_attr.adb (Expand_Loop_Entry_Attribute): Beef up comment. 3663 36642019-07-22 Ed Schonberg <schonberg@adacore.com> 3665 3666 * libgnat/s-valboo.ads, libgnat/s-valcha.ads, 3667 libgnat/s-valdec.ads, libgnat/s-valenu.ads, 3668 libgnat/s-valint.ads, libgnat/s-vallld.ads, 3669 libgnat/s-vallli.ads, libgnat/s-valllu.ads, 3670 libgnat/s-valrea.ads, libgnat/s-valuns.ads, 3671 libgnat/s-valwch.ads: Change categorization of packages that 3672 implement attribute 'Value from Pure to Preelaborate, to prevent 3673 undesirable optimizations when the evaluation of the attribute 3674 raises Constraint_Error, but subsequent use of the result of 3675 this evsaluation is removed by a subsequent optimization. 3676 36772019-07-22 Ed Schonberg <schonberg@adacore.com> 3678 3679 * sem_warn.adb (Check_References): Do not emit s warning on a 3680 referenced entity with no explicit assignment if the type of the 3681 entity has Preelaborable_Initialixation, such as 3682 Exception_Occurrence. 3683 36842019-07-22 Javier Miranda <miranda@adacore.com> 3685 3686 * exp_ch4.adb (Size_In_Storage_Elements): Improve the expansion 3687 to handle array indexes that are modular type. 3688 (Expand_N_Allocator): For 32-bit targets improve the generation 3689 of the runtime check associated with large arrays supporting 3690 arrays initialized with a qualified expression. 3691 * libgnat/s-imenne.adb (Image_Enumeration_8, 3692 Image_Enumeration_16, Image_Enumeration_32): Define the index of 3693 Index_Table with range Natural'First .. Names'Length since in 3694 the worst case all the literals of the enumeration type would be 3695 single letter literals and the Table built by the frontend would 3696 have as many components as the length of the names string. As a 3697 result of this enhancement, the internal tables declared using 3698 Index_Table have a length closer to the real needs, thus 3699 avoiding the declaration of large arrays on 32-bit CCG targets. 3700 37012019-07-22 Yannick Moy <moy@adacore.com> 3702 3703 * sem_ch3.adb (Constrain_Access): Issue a message about ignored 3704 constraint. 3705 37062019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3707 3708 * sem_ch8.adb (End_Use_Type): Reset the In_Use flag on the 3709 class-wide type if the type is tagged. 3710 (Use_One_Type): Add commentary on the handling of the class-wide 3711 type. 3712 37132019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3714 3715 * einfo.ads (Is_For_Access_Subtype): Delete. 3716 (Set_Is_For_Access_Subtype): Likewise. 3717 * einfo.adb (Is_For_Access_Subtype): Likewise. 3718 (Set_Is_For_Access_Subtype): Likewise. 3719 (Write_Entity_Flags): Do not write Is_For_Access_Subtype. 3720 * exp_ch4.adb (Expand_N_Selected_Component): Do not deal with 3721 it. 3722 * exp_spark.adb (Expand_SPARK_N_Selected_Component): Likewise. 3723 * sem_ch4.adb (Analyze_Explicit_Dereference): Likewise. 3724 * sem_ch3.adb (Build_Discriminated_Subtype): Do not build a 3725 special private subtype for access-to-record subtypes. 3726 37272019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3728 3729 * sem_ch3.adb (Complete_Private_Subtype): Rework the setting of 3730 the Etype of the full view for full base types that cannot 3731 contain any discriminant. Remove code and comment about it in 3732 the main path. 3733 37342019-07-22 Ed Schonberg <schonberg@adacore.com> 3735 3736 * sem_ch3.adb (Convert_Bound): Subsidiary of 3737 Floating_Point_Type_Declaration, to handle properly range 3738 specifications with bounds that may include static constants of 3739 a given type rather than real literals. 3740 37412019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3742 3743 * sem_aggr.adb (Rewrite_Bound): Be prepared for discriminals 3744 too. 3745 (Rewrite_Range;): Minor tweak. 3746 (Resolve_Record_Aggregate): For a component with default 3747 initialization whose expression is an array aggregate, also 3748 rewrite the bounds of the component associations, if any. 3749 37502019-07-22 Gary Dismukes <dismukes@adacore.com> 3751 3752 * exp_ch5.adb (Expand_N_Case_Statement): In the case where a 3753 case statement is rewritten as an equivalent if statement, 3754 inherit the From_Condition_Expression flag from the case 3755 statement. 3756 37572019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3758 3759 * sem_ch8.adb (Check_Constrained_Object): Further extend the 3760 special optimization to all limited types. 3761 37622019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3763 3764 * exp_attr.adb (Expand_N_Attribute_Reference) 3765 <Attribute_Enum_Val>: Set No_Truncation on the 3766 N_Unchecked_Type_Conversion built around the argument passed to 3767 the attribute. 3768 37692019-07-22 Nicolas Roche <roche@adacore.com> 3770 3771 * libgnat/s-valrea.adb (Scan_Real): Ignore non significative 3772 digits to avoid converging to infinity in some cases. 3773 37742019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3775 3776 * libgnat/g-encstr.adb (Encode_Wide_String): Fix oversight. 3777 (Encode_Wide_Wide_String): Likewise. 3778 37792019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3780 3781 * sem_warn.adb (Find_Var): Bail out for a function call with an 3782 Out or In/Out parameter. 3783 37842019-07-22 Nicolas Roche <roche@adacore.com> 3785 3786 * terminals.c (__gnat_tty_waitpid): Support both blocking and 3787 not blocking mode. 3788 * libgnat/g-exptty.ads (Is_Process_Running): New function. 3789 * libgnat/g-exptty.adb (Close): Don't try to interrupt/terminate 3790 a process if it is already dead. 3791 37922019-07-22 Ed Schonberg <schonberg@adacore.com> 3793 3794 * freeze.adb (Freeze_Fixed_Point_Type): When freezing a 3795 fixed-point subtype, check whether the parent type declarastion 3796 includes an aspect specification for the 'Small type attribute, 3797 and inherit the specified value. 3798 37992019-07-22 Javier Miranda <miranda@adacore.com> 3800 3801 * freeze.adb (Freeze_Subprogram): Check that C++ constructors 3802 must have external or link name. 3803 38042019-07-22 Ed Schonberg <schonberg@adacore.com> 3805 3806 * sem_res.adb (Resolve_Selected_Component): If the prefix has a 3807 deferred reference, generate the correct reference now, to 3808 indicate that the previous assignment is used. This prevents 3809 spurious warnings on useless assignments when compiling with all 3810 warnings enabled. when there is a subsequent call in the same 3811 stqtement list, in which the prefix of the selected component is 3812 the actual for an out parameter. 3813 38142019-07-22 Eric Botcazou <ebotcazou@adacore.com> 3815 3816 * exp_attr.adb (Expand_Loop_Entry_Attribute): Copy the condition 3817 of a while loop instead of simply relocating it. 3818 38192019-07-18 Arnaud Charlet <charlet@adacore.com> 3820 3821 * Makefile.rtl, expect.c, env.c, aux-io.c, mkdir.c, initialize.c, 3822 cstreams.c, raise.c, tracebak.c, adadecode.c, init.c, raise-gcc.c, 3823 argv.c, adaint.c, adaint.h, ctrl_c.c, sysdep.c, rtinit.c, cio.c, 3824 seh_init.c, exit.c, targext.c: Introduce a "STANDALONE" mode where C 3825 runtime files do not have any dependency on GCC include files. 3826 Remove unnecessary includes. 3827 Remove remaining references to VMS in runtime C file. 3828 * runtime.h: new File. 3829 38302019-07-13 Andreas Schwab <schwab@linux-m68k.org> 3831 3832 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes. 3833 38342019-07-11 Piotr Trojanek <trojanek@adacore.com> 3835 3836 * lib-writ.adb (Ensure_System_Dependency, 3837 Up_To_Date_ALI_File_Exists, Write_ALI): Replace low-level access 3838 to table with a high-level query. 3839 38402019-07-11 Piotr Trojanek <trojanek@adacore.com> 3841 3842 * checks.adb: Fix typo in comment. 3843 * sem.adb (Semantics): Avoid repeated calls to 3844 In_Extended_Main_Source_Unit by reusing an already-cached 3845 result. 3846 * sem_util.adb (First_Global): Fix style. 3847 38482019-07-11 Yannick Moy <moy@adacore.com> 3849 3850 * sem_res.adb (Resolve_Call): Do not perform dimensionality 3851 checking on inlined bodies. 3852 38532019-07-11 Yannick Moy <moy@adacore.com> 3854 3855 * debug.adb: Flip meaning of debug switch -gnatdF. 3856 38572019-07-11 Yannick Moy <moy@adacore.com> 3858 3859 * sem_eval.adb (Is_Same_Value): Add special case for rewritten 3860 Loop_Entry attribute. 3861 38622019-07-11 Claire Dross <dross@adacore.com> 3863 3864 * gnat1drv.adb: SPARK checking rules for pointer aliasing are 3865 moved to GNATprove backend. 3866 * sem_spark.ads, sem_spark.adb (Sem_SPARK): Is now a generic 3867 unit. Takes as parameters: 3868 - Retysp which is used to query the most underlying type 3869 visible in SPARK. We do not introduce aliasing checks for 3870 types which are not visibly deep. 3871 - Component_Is_Visible_In_SPARK is used to avoid doing pointer 3872 aliasing checks on components which are not visible in SPARK. 3873 - Emit_Messages returns True in the second phase of SPARK 3874 analysis. Error messages for failed aliasing checks are only 3875 output in this case. 3876 Additionally, errors on constructs not supported in SPARK are 3877 removed as duplicates of marking errors. Components are stored 3878 in the permission map using their original component to avoid 3879 inconsistencies between components of different views of the 3880 same type. 3881 (Check_Expression): Handle delta constraints. 3882 (Is_Deep): Exported so that we can check for SPARK restrictions 3883 on deep types inside SPARK semantic checkings. 3884 (Is_Traversal_Function): Exported so that we can check for SPARK 3885 restrictions on traversal functions inside SPARK semantic 3886 checkings. 3887 (Check_Call_Statement, Read_Indexes): Check wether we are 3888 dealing with a subprogram pointer type before querying called 3889 entity. 3890 (Is_Subpath_Expression): Image attribute can appear inside a 3891 path. 3892 (Check_Loop_Statement): Correct order of statements in the loop. 3893 (Check_Node): Ignore raise nodes. 3894 (Check_Statement): Use Last_Non_Pragma to get the object 3895 declaration in an extended return statement. 3896 38972019-07-11 Patrick Bernardi <bernardi@adacore.com> 3898 3899 * bindgen.adb (Gen_Main): Do not generate a reference to 3900 Ada_Main_Program_Name when the Minimal_Binder flag is set. 3901 (Gen_Output_File_Ada): Do not output GNAT_Version and 3902 Ada_Main_Program_Name info if Minimal_Binder flag is set. 3903 * bindusg.adb: Add documentation for new -minimal switch. 3904 * gnatbind.adb (Scan_Bind_Arg): Scan -minimal switch. 3905 * opt.ads: Add new global flag Minimal_Binder to indicate if the 3906 binder should not produce global variables. 3907 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: 3908 Update documentation with new binder -minimal switch. 3909 * gnat_ugn.texi: Regenerate. 3910 39112019-07-11 Eric Botcazou <ebotcazou@adacore.com> 3912 3913 * Makefile.rtl: Add warning note about compilation flags and 3914 capitalize. 3915 39162019-07-11 Ed Schonberg <schonberg@adacore.com> 3917 3918 * exp_ch9.adb (Expand_N_Protected_Type_Declaaration): New 3919 subsidiary routine Replace_Access_Definition, to handle properly 3920 a protected type PT one of whose private components is of type 3921 access PT. 3922 39232019-07-11 Dmitriy Anisimkov <anisimko@adacore.com> 3924 3925 * libgnat/g-socket.ads (Level_Type): Add enumerators for 3926 IP_Protocol_For_ICMP, IP_Protocol_For_IGMP, 3927 IP_Protocol_For_RAW_Level. 3928 * libgnat/g-socket.adb (Levels): Handle them. 3929 * s-oscons-tmplt.c: Import socket protocols defined in 3930 netinet/in.h. 3931 39322019-07-11 Claire Dross <dross@adacore.com> 3933 3934 * libgnat/a-cfhama.adb, libgnat/a-cfhase.adb (Free): Do not 3935 reset the Has_Element flag if no element is freed. 3936 39372019-07-11 Arnaud Charlet <charlet@adacore.com> 3938 3939 * errno.c: Remove obsolete support for MaRTE OS. 3940 39412019-07-11 Ed Schonberg <schonberg@adacore.com> 3942 3943 * exp_ch4.adb (Expand_N_Type_Conversion): If a predicate check 3944 is generated, analyze it with range check suppressed, because 3945 that check has been previously applied. 3946 * exp_ch5.adb (Expand_N_Assignment_Statement): If the RHS is a 3947 type conversion to the type of the LHS, do not apply a predicate 3948 check to the RHS because it will have been generated already 3949 during its expansion. 3950 * exp_ch6.adb (Can_Fold_Predicate_Call): Extend processing to 3951 handle a predicate check on a constant entity whose value is 3952 static. 3953 39542019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 3955 3956 * bindo.adb: Remove the documentation of switch -d_N because it 3957 is no longer in use. 3958 * bindo-graphs.ads, bindo-graphs.adb (Is_Spec_Before_Body_Edge): 3959 New routine. 3960 * bindo-writers.adb (Write_Dependency_Edge): Add the missing 3961 case of a spec-before-body edge. 3962 39632019-07-11 Dmitriy Anisimkov <anisimko@adacore.com> 3964 3965 * libgnat/g-socket.ads (Mode_Type): Add a Socket_Raw enumerator. 3966 * libgnat/g-socket.adb (Modes): Handle Socket_Raw. 3967 39682019-07-11 Justin Squirek <squirek@adacore.com> 3969 3970 * exp_ch9.adb (Build_Private_Protected_Declaration): Add 3971 exception for the moving of pragmas to internally generated 3972 specs for pragma Unreferenced. 3973 39742019-07-11 Bob Duff <duff@adacore.com> 3975 3976 * doc/gnat_ugn/gnat_utility_programs.rst: Fix inconsistent 3977 documentation for gnatmetric. 3978 * gnat_ugn.texi: Regenerate. 3979 39802019-07-11 Bob Duff <duff@adacore.com> 3981 3982 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's 3983 --spaces-only switch. 3984 39852019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 3986 3987 * sem_util.adb (Null_Status): Assume that an erroneous construct 3988 has an undefined null status. 3989 39902019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 3991 3992 * checks.adb, exp_ch6.adb, gnat1drv.adb, sem_aux.adb, 3993 sem_ch2.adb, sem_ch8.adb, sem_res.adb: Minor reformatting. 3994 39952019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 3996 3997 * sem_ch8.adb (Analyze_Object_Renaming): Obtain the object being 3998 renamed using routine Get_Object_Name which takes care of 3999 various name forms. 4000 (Get_Object_Name): New routine. 4001 40022019-07-11 Ed Schonberg <schonberg@adacore.com> 4003 4004 * exp_ch6.adb (Can_Fold_Predicate_Call): New function, 4005 subsidiary of Expand_Call_Helper, to compute statically a 4006 predicate check when the argument is a static integer. 4007 40082019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 4009 4010 * sem_res.adb (Resolve_Op_Not): Do not rewrite an equality 4011 operator into a function call when the operator is intrinsic. 4012 40132019-07-11 Thomas Quinot <quinot@adacore.com> 4014 4015 * sem_prag.adb (Analyze_Pragma, case pragma Check): Do not call 4016 Set_SCO_Pragma_Enabled for the dynamic predicate case. 4017 40182019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 4019 4020 * exp_util.ads, exp_util.adb (Needs_Finalization): Move to 4021 Sem_Util. 4022 * sem_ch9.adb (Analyze_Protected_Definition): Code cleanup. Mark 4023 the protected type as having controlled components when it 4024 contains at least one such component. 4025 * sem_util.ads, sem_util.adb (Needs_Finalization): New 4026 function. 4027 40282019-07-11 Eric Botcazou <ebotcazou@adacore.com> 4029 4030 * alloc.ads (Rep_JSON_Table_Initial): New constant. 4031 (Rep_JSON_Table_Increment): Likewise. 4032 * debug.adb: Document -gnatd_j switch. 4033 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS): Add 4034 repinfo-input.o. 4035 * gnat1drv.adb: Add with clause for Repinfo.Input. 4036 Add with and use clauses for Sinput. 4037 (Read_JSON_Files_For_Repinfo): New procedure. 4038 (Gnat1drv1): Deal with -gnatd_j switch. 4039 * repinfo-input.ad[sb]: New unit. 4040 * snames.ads-tmpl (Name_Discriminant): New constant. 4041 (Name_Operands): Likewise. 4042 40432019-07-11 Justin Squirek <squirek@adacore.com> 4044 4045 * checks.adb (Apply_Accessibility_Check): Add check for constant 4046 folded conditions on accessibility checks. 4047 40482019-07-11 Arnaud Charlet <charlet@adacore.com> 4049 4050 * libgnarl/g-thread.ads, libgnarl/g-thread.adb (Get_Thread): 4051 Update comments. Add new version taking a Task_Id. 4052 40532019-07-11 Hristian Kirtchev <kirtchev@adacore.com> 4054 4055 * bindo.adb: Update the section of switches and debugging 4056 elaboration issues. 4057 * bindo.ads: Add type Elaboration_Phase. 4058 * bindo-augmentors.adb: Add use clause for 4059 Bindo.Writers.Phase_Writers. 4060 (Augment_Library_Graph): Signal the start and end of the 4061 aubmentation phase. 4062 * bindo-builders.adb: Add with and use clause for Bindo.Writers. 4063 Add use clause for Bindo.Writers.Phase_Writers. 4064 (Build_Invocation_Graph): Signal the start and end of the 4065 invocation graph construction phase. 4066 (Build_Library_Graph): Signal the start and end of the library 4067 graph construction phase. 4068 * bindo-diagnostics.adb: Add use clause for 4069 Bindo.Writers.Phase_Writers. 4070 (Diagnose_Cycle): Signal the start and end of the cycle 4071 diagnostic phase. 4072 * bindo-elaborators.adb: Add use clause for 4073 Bindo.Writers.Phase_Writers. 4074 (Elaborate_Units): Signal the start and end of the unit 4075 elaboration phase. 4076 * bindo-graphs.adb: Add use clause for 4077 Bindo.Writers.Phase_Writers. 4078 (Find_Components): Signal the start and end of the component 4079 discovery phase. 4080 (Find_Cycles): Signal the start and end of the cycle discovery 4081 phase. 4082 * bindo-units.adb: Add with and use clause for Bindo.Writers. 4083 Add use clause for Bindo.Writers.Phase_Writers. 4084 (Collect_Elaborable_Units): Signal the start and end of the unit 4085 collection phase. 4086 * bindo-validators.adb: Add with and use clause for 4087 Bindo.Writers. Add use clause for Bindo.Writers.Phase_Writers. 4088 (Validate_Cycles, Validate_Elaboration_Order, 4089 Validate_Invocation_Graph, Validate_Library_Graph): Signal the 4090 start and end of the libray graph validation phase. 4091 * bindo-writers.ads, bindo-writers.adb: Add new nested package 4092 Phase_Writers. 4093 * debug.adb: Update the documentation of switch d_S. 4094 40952019-07-11 Yannick Moy <moy@adacore.com> 4096 4097 * sem_res.adb (Check_Argument_Order): Special case calls to 4098 operators. 4099 41002019-07-10 Dmitriy Anisimkov <anisimko@adacore.com> 4101 4102 * libgnat/s-ststop.adb: Remove System.Strings.Stream_Ops 4103 dependence on System.Streams.Stream_IO. 4104 41052019-07-10 Ed Schonberg <schonberg@adacore.com> 4106 4107 * sem_ch2.adb (Analyze_Integer_Literal): Preserve the type of 4108 the literal if prior analysis determined that its type is a 4109 modular integer type. 4110 41112019-07-10 Doug Rupp <rupp@adacore.com> 4112 4113 * init.c: Do not attempt to re-arm guard page on x86_64-vx7(r2). 4114 41152019-07-10 Ed Schonberg <schonberg@adacore.com> 4116 4117 * sem_ch8.adb (Check_Constrained_Object): A record that is 4118 limited because of the presence of a limited component is 4119 constrained, and no subtype indiciation needs to be created for 4120 it, just as is the case for declared limited records. 4121 41222019-07-10 Yannick Moy <moy@adacore.com> 4123 4124 * sem_aux.adb, sem_aux.ads (Is_Protected_Operation): New 4125 function to determine if a subprogram is protected. 4126 * sem_spark.adb (Setup_Protected_Components): New procedure to 4127 add protected components to the environment. 4128 (Check_Callable_Body): Call the new Setup_Protected_Components. 4129 (Check_Package_Spec): Merge local environment with enclosing one 4130 when done. 4131 41322019-07-10 Claire Dross <dross@adacore.com> 4133 4134 * sem_spark.adb (Check_Expression): Allow digits constraints as 4135 input. 4136 (Illegal_Global_Usage): Pass in the entity. 4137 (Is_Subpath_Expression): New function to allow different nodes 4138 as inner parts of a path expression. 4139 (Read_Indexes): Allow concatenation and aggregates with box 4140 expressions. Allow attributes Update and Loop_Entry. 4141 (Check_Expression): Allow richer membership test. 4142 (Check_Node): Ignore bodies of generics. 4143 (Get_Root_Object): Allow concatenation and attributes. 4144 41452019-07-10 Hristian Kirtchev <kirtchev@adacore.com> 4146 4147 * sem_ch6.adb (Check_Discriminant_Conformance): Use Find_Type to 4148 discover the type of a full view discriminant. 4149 41502019-07-10 Arnaud Charlet <charlet@adacore.com> 4151 4152 * doc/gnat_ugn/gnat_and_program_execution.rst: Improve gnatmem's 4153 doc for the depth switch. 4154 41552019-07-10 Bob Duff <duff@adacore.com> 4156 4157 * doc/gnat_ugn/gnat_utility_programs.rst: Document gnatpp's 4158 --source-line-breaks switch. 4159 41602019-07-10 Justin Squirek <squirek@adacore.com> 4161 4162 * doc/gnat_rm/implementation_defined_attributes.rst: Add mention 4163 of 'Image attribute with 'Img's entry to mention additional 4164 added 2012 usage of Obj'Image. 4165 * doc/gnat_rm/implementation_defined_pragmas.rst: Correct 4166 mispelling of Async_Writers. 4167 * gnat_rm.texi: Regenerate. 4168 * sem_prag.adb (Analyze_Pragma): Correct mispelling of 4169 Async_Writers. 4170 * sem_util.adb (State_Has_Enabled_Property): Correct mispelling 4171 of Async_Writers. 4172 41732019-07-10 Simon Buist <buist@adacore.com> 4174 4175 * sem_util.ads (Child_Prefix): New constant. 4176 * sem_util.adb (Unique_Name): Add a special prefix to child 4177 units that have a nested subprogram or package. 4178 41792019-07-10 Arnaud Charlet <charlet@adacore.com> 4180 4181 * sfn_scan.adb (Scan_SFN_Pragmas): Add pragma Assert. 4182 41832019-07-10 Hristian Kirtchev <kirtchev@adacore.com> 4184 4185 * sem_ch3.adb (Check_Nonoverridable_Aspects): Correct the 4186 spelling in certain error messages. 4187 (Check_Pragma_Implemented): Correct the spelling in certain 4188 error messages. 4189 41902019-07-10 Eric Botcazou <ebotcazou@adacore.com> 4191 4192 * Makefile.rtl (GNATRTL_NONTASKING_OBJS): Add g-brapre. 4193 * libgnat/g-brapre.ads: New package specification. 4194 * doc/gnat_rm/the_gnat_library.rst: Document it. 4195 * gnat_rm.texi: Regenerate. 4196 41972019-07-10 Yannick Moy <moy@adacore.com> 4198 4199 * osint-c.adb (Set_File_Name): Always add extension for multiple 4200 units per file mode. 4201 42022019-07-10 Corentin Gay <gay@adacore.com> 4203 4204 * sysdep.c: Put include directive for 'vxWorks.h' before any 4205 other VxWorks headers. 4206 42072019-07-10 Eric Botcazou <ebotcazou@adacore.com> 4208 4209 * doc/gnat_rm/implementation_defined_attributes.rst 4210 (Scalar_Storage_Order): Minor tweaks. Add note about debuggers. 4211 * gnat_rm.texi: Regenerate. 4212 42132019-07-10 Hristian Kirtchev <kirtchev@adacore.com> 4214 4215 * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated 4216 assignments to the temporary result as being OK because the 4217 expansion of case expressions is correct by construction. 4218 (Is_Copy_Type): Update the predicate to match the comment 4219 within. 4220 42212019-07-10 Hristian Kirtchev <kirtchev@adacore.com> 4222 4223 * bindo-graphs.adb, bindo.adb, debug.adb, exp_ch6.adb, 4224 sem_ch10.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, 4225 sem_ch6.adb, sem_ch7.adb, sem_res.adb, sem_spark.adb, 4226 sem_util.adb, warnsw.ads: Minor reformatting. 4227 42282019-07-10 Joffrey Huguet <huguet@adacore.com> 4229 4230 * libgnat/a-strbou.ads, libgnat/a-strfix.ads, 4231 libgnat/a-strunb.ads, libgnat/a-strunb__shared.ads: Add global 4232 contracts, contract cases, preconditions and postconditions to 4233 procedures and functions. 4234 42352019-07-10 Doug Rupp <rupp@adacore.com> 4236 4237 * sysdep.c (__gnat_is_file_not_found_error): Reformulate to also 4238 work for vxworks7r2 SR0610. 4239 42402019-07-10 Doug Rupp <rupp@adacore.com> 4241 4242 * env.c (__gnat_environ): Reformulate to also work for 4243 vxworks7r2 SR0610. 4244 42452019-07-10 Patrick Bernardi <bernardi@adacore.com> 4246 4247 * Makefile.rtl: Handle vxworks7r2 ppc target 4248 42492019-07-10 Hristian Kirtchev <kirtchev@adacore.com> 4250 4251 * bindo.adb: Update the section on switches. 4252 * bindo-graphs.adb 4253 (Add_Cycle, Add_Vertex_And_Complement): Remove. 4254 (Create): The graph no longer needs a set of recorded cycles 4255 because the cycles are not rediscovered in permuted forms. 4256 (Cycle_End_Vertices): New routine. 4257 (Destroy): The graph no longer needs a set of recorded cycles 4258 because the cycles are not rediscovered in permuted forms. 4259 (Destroy_Library_Graph_Vertex): Move to the library level. 4260 (Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge): 4261 Remove. 4262 (Find_Cycles_From_Successor, Find_Cycles_From_Vertex, 4263 Find_Cycles_In_Component, Has_Elaborate_All_Edge): New routines. 4264 (Insert_And_Sort): Remove. 4265 (Is_Elaborate_Body_Edge): Use predicate 4266 Is_Vertex_With_Elaborate_Body. 4267 (Is_Recorded_Cycle): Remove. 4268 (Is_Vertex_With_Elaborate_Body): New routine. 4269 (Normalize_And_Add_Cycle): Remove. 4270 (Precedence): Rename to xxx_Precedence, where xxx relates to the 4271 input. These versions better reflect the desired input 4272 precedence. 4273 (Record_Cycle): New routine. 4274 (Remove_Vertex_And_Complement, Set_Is_Recorded_Cycle): Remove. 4275 (Trace_xxx): Update all versions to use debug switch -d_t. 4276 (Trace_Component): New routine. 4277 (Trace_Eol): Removed. 4278 (Trace_Vertex): Do not output the component as this information 4279 is already available when the component is traced. 4280 (Unvisit, Visit): New routine. 4281 * bindo-graphs.ads: Add new instance LGV_Lists. Remove instance 4282 RC_Sets. Update the structure of type Library_Graph_Attributes 4283 to remove the set of recorded cycles. 4284 (Destroy_Library_Graph_Vertex): Move to the library level. 4285 * bindo-writers.adb (Write_Component_Vertices): Output 4286 information about the number of vertices. 4287 * debug.adb: Document the use of binder switch -d_t. Update the 4288 use of binder switch -d_T. 4289 42902019-07-10 Yannick Moy <moy@adacore.com> 4291 4292 * sem_spark.adb (Get_Root_Object): Replace precondition by error 4293 message. 4294 (Read_Indexes): Replace precondition by error message. 4295 (Check_Callable_Body): Check only traversal function returns an 4296 anonymous access type. 4297 (Check_Expression): Issue error on unexpected expression as 4298 path. 4299 * sem_util.adb (First_Global): Fix access to global on 4300 entry/task. 4301 43022019-07-10 Javier Miranda <miranda@adacore.com> 4303 4304 * exp_ch6.adb (Is_Class_Wide_Interface_Type): New subprogram. 4305 (Expand_Call_Helper): Handle non-limited views when we check if 4306 any formal is a class-wide interface type. 4307 * exp_disp.adb (Expand_Interface_Actuals): Handle non-limited 4308 views when we look for interface type formals to force "this" 4309 displacement. 4310 43112019-07-10 Ed Schonberg <schonberg@adacore.com> 4312 4313 * sem_res.adb (Resolve_Equality_Op): Do not replace the resolved 4314 operator by its alias if expander is not active, because the 4315 operand type may not be frozen yet and its inherited operations 4316 have not yet been created. 4317 43182019-07-10 Hristian Kirtchev <kirtchev@adacore.com> 4319 4320 * bindo-elaborators.adb (Elaborate_Units): Set attribute 4321 Elab_Position of all elaborated units. 4322 (Set_Unit_Elaboration_Positions): New routine. 4323 43242019-07-10 Gary Dismukes <dismukes@adacore.com> 4325 4326 * exp_util.adb: Reformatting and a typo fix. 4327 43282019-07-10 Yannick Moy <moy@adacore.com> 4329 4330 * exp_util.adb (Remove_Side_Effects): Prefer renamings for 4331 objects of possible owning type in GNATprove mode. 4332 43332019-07-09 Ed Schonberg <schonberg@adacore.com> 4334 4335 * sem_ch3.adb (Analyze_Object_Declaration): If the object type 4336 is a composite type that has a dynamic predicate and, the 4337 expression in the declaration is an aggregate, the generated 4338 predicate check must appear after the expanded code for the 4339 aggregate, which will appear after the rewritten object 4340 declarastion. 4341 43422019-07-09 Justin Squirek <squirek@adacore.com> 4343 4344 * sem_eval.adb (Expr_Value_E): Add conditional to correctly 4345 handle constant enumerated character types. 4346 43472019-07-09 Eric Botcazou <ebotcazou@adacore.com> 4348 4349 * libgnarl/s-osinte__mingw.ads (CRITICAL_SECTION): Use proper 4350 type for SpinCount component. 4351 43522019-07-09 Justin Squirek <squirek@adacore.com> 4353 4354 * exp_ch4.adb (Expand_N_Allocator): Add conditional to detect 4355 the presence of anoymous access type allocators and issue a 4356 warning if the appropriate warning flag is enabled. 4357 * warnsw.ads: Add new warning flag for anonymous allocators 4358 * warnsw.adb (All_Warnings, Restore_Warnings, Save_Warnings, 4359 Set_Underscore_Warning_Switch): Register new flags. 4360 (WA_Warnings): Register new flag as an "all warnings" switch 4361 * usage.adb, 4362 doc/gnat_ugn/building_executable_programs_with_gnat.rst: 4363 Document new warning switches -gnatw_a and -gnatw_A. 4364 * gnat_ugn.texi: Regenerate. 4365 43662019-07-09 Ed Schonberg <schonberg@adacore.com> 4367 4368 * sem_ch4.adb (Diagnose_Call): Improve error recovery when a 4369 local subprogram name hides a possible candidate name declared 4370 in a child package in the context of the current unit. 4371 * sem_ch6.adb (Process_Formals): Protect against malformed 4372 formal types when the parameter type does not denote an entity. 4373 43742019-07-09 Hristian Kirtchev <kirtchev@adacore.com> 4375 4376 * bindo-augmentors.adb (Visit_Elaboration_Root): Do not start a 4377 DFS from an elaboration root whose corresponding unit lacks 4378 elaboration code. This behavior mimics that of the old 4379 elaboration order mechanism. 4380 * bindo-graphs.adb (Find_All_Cycles_Through_Vertex): Move the 4381 vertex tracing within the functional branches of the routine. 4382 This prevents spurious trace output. 4383 (Has_No_Elaboration_Code): New routine. 4384 (Trace_Cycle, Trace_Edge): Update the various Ids to use the 4385 "standard" trace format. 4386 * bindo-graphs.ads (Has_No_Elaboration_Code): New routine. 4387 * bindo-units.ads, bindo-units.adb (Has_No_Elaboration_Code): 4388 New routine. 4389 43902019-07-09 Piotr Trojanek <trojanek@adacore.com> 4391 4392 * ali.ads, bindo-graphs.adb, bindo-validators.adb, clean.adb, 4393 doc/gnat_ugn/elaboration_order_handling_in_gnat.rst, einfo.ads, 4394 exp_aggr.adb, exp_ch13.adb, exp_ch4.adb, exp_ch5.adb, 4395 exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, exp_pakd.adb, 4396 fname-uf.ads, gnatlink.adb, inline.adb, lib.ads, make.adb, 4397 namet.ads, opt.ads, par-ch4.adb, par-ch6.adb, par-labl.adb, 4398 prep.adb, sem_aggr.adb, sem_ch13.adb, sem_ch4.adb, sem_ch5.adb, 4399 sem_ch6.adb, sem_ch6.ads, sem_ch7.adb, sem_ch8.adb, sem_dim.adb, 4400 sem_disp.adb, sem_prag.adb, sem_res.adb, sem_warn.adb, 4401 sinfo.ads: Replace ". " with ". ". Minor reformatting and typo 4402 corrections. 4403 * gnat_ugn.texi: Generate. 4404 44052019-07-09 Hristian Kirtchev <kirtchev@adacore.com> 4406 4407 * bindo.ads: Move type Precedence_Kind from the private to the 4408 visible part of the unit. 4409 * bindo-augmentors.adb: Remove the use of global data as it is 4410 bad practice. 4411 (Augment_Library_Graph): Update the parameter profile. 4412 (Is_Visited, Set_Is_Visited): Remove. 4413 (Visit_Elaboration_Root, Visit_Elaboration_Roots): Update the 4414 parameter profile and comment on usage. 4415 (Visit_Vertex): Likewise. Also keep track of which invocation 4416 edge activates a task. 4417 * bindo-augmentors.ads (Augment_Library_Graph): Update the 4418 parameter profile and comment on usage. 4419 * bindo-builders.adb (Create_Forced_Edge, 4420 Create_Spec_And_Body_Edge, Create_With_Edge): Update the call to 4421 Add_Edge. 4422 * bindo-diagnostics.adb: Add with end use clauses for Restrict 4423 and Rident. 4424 (Output_Dynamic_Model_Suggestions): Remove. 4425 (Output_Invocation_Related_Suggestions): New routine. 4426 (Output_Suggestions): Output all invocation-related suggestions 4427 together. 4428 * bindo-elaborators.adb: Remove types Comparator_Ptr and 4429 Predicate_Ptr. 4430 (Find_Best_Vertex): Update the parameter profile. 4431 * bindo-graphs.adb (Activates_Task): New routine. 4432 (Add_Body_Before_Spec_Edge): Update the call to 4433 Add_Edge_With_Return. 4434 (Add_Edge): Update the parameter profile and the call to 4435 Add_Edge_With_Return. 4436 (Add_Edge_With_Return): Update the parameter profile and comment 4437 on usage. 4438 (At_Least_One_Edge_Satisfies): New routine. 4439 (Contains_Elaborate_All_Edge): Reimplement. 4440 (Contains_Static_Successor_Edge, Contains_Task_Activation): New 4441 routine. 4442 (Contains_Weak_Static_Successor): Remove. 4443 (Is_Static_Successor_Edge): New routine. 4444 * bindo-graphs.ads: Add types LGE_Predicate_Ptr, 4445 LGV_Comparator_Ptr, and LGV_Predicate_Ptr. Update type 4446 Library_Graph_Edge_Attributes to capture whether an invocation 4447 edge activates a task. Update the value of 4448 No_Library_Graph_Edge_Attributes. 4449 (Activates_Task): Update the parameter profile and comment on 4450 usage. 4451 (Contains_Static_Successor_Edge, Contains_Task_Activation): New 4452 routines. 4453 (Contains_Weak_Static_Successor): Remove. 4454 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: 4455 Update the documentation to reflect the new task-related advice. 4456 * gnat_ugn.texi: Regenerate. 4457 44582019-07-09 Piotr Trojanek <trojanek@adacore.com> 4459 4460 * exp_util.adb (Containing_Package_With_Ext_Axioms): Replace 4461 low-level Ekind test with a high-level wrapper. 4462 44632019-07-09 Arnaud Charlet <charlet@adacore.com> 4464 4465 * libgnat/s-memory.adb: Disable calls to Abort defer/undefer 4466 when ZCX_By_Default. 4467 44682019-07-09 Javier Miranda <miranda@adacore.com> 4469 4470 * sem_ch13.adb (Rep_Item_Too_Early): Representation clauses are 4471 not allowed for a derivation of a generic type. Extend the 4472 current test to check that none of the parents is a generic 4473 type. 4474 44752019-07-09 Hristian Kirtchev <kirtchev@adacore.com> 4476 4477 * exp_ch9.adb, exp_util.adb, repinfo.adb, sem_ch12.adb, 4478 sem_prag.adb, sem_res.adb, sem_spark.adb, sem_util.adb: Minor 4479 reformatting. 4480 44812019-07-09 Ed Schonberg <schonberg@adacore.com> 4482 4483 * sem_res.adb (Resolve_Equality_Op): If the node was overloaded, 4484 set properly the entity to which the node has been resolved. The 4485 original entity is the first one found during analysis, and is 4486 not necessarily the resolved one. 4487 (Resolve_Op_Not): If the argument of negation is an overloaded 4488 equality operation, call its resolution directly given that the 4489 context type does not participate in overload resolution. 4490 44912019-07-09 Hristian Kirtchev <kirtchev@adacore.com> 4492 4493 * bindo.adb: Remove with and use clauses for Debug. Add with 4494 and use clauses for Opt. 4495 (Find_Elaboration_Order): Enable the v4.0 elaboration order. The 4496 v3.0 mechanism is now available under binder switch -H. 4497 * bindusg.adb (Display): Enable switch -H. 4498 * debug.adb: Free compiler switch -gnatd_G. Free binder switch 4499 -d_N. 4500 * sem_elab.adb: Update the section on switches to remove 4501 -gnatd_G. 4502 (Invocation_Graph_Recording_OK): The invocation graph is now 4503 unconditionally recorded in ALI files. 4504 * switch-b.adb (Scan_Binder_Switches): Scan switch -H. 4505 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: 4506 Update the documentation on compiler switches related to 4507 elaboration. Update the documentation on binder switches to 4508 include switch -H. 4509 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update 4510 the documentation on elaboration order handling in GNAT. 4511 * gnat_ugn.texi: Regenerate. 4512 45132019-07-09 Eric Botcazou <ebotcazou@adacore.com> 4514 4515 * repinfo.adb (List_Entities): Disregard formals altogether. 4516 (List_Name): Properly escape the double quote in the JSON 4517 output. 4518 45192019-07-09 Javier Miranda <miranda@adacore.com> 4520 4521 * exp_util.adb (Remove_Side_Effects): Preserve the 4522 Do_Range_Check flag. 4523 45242019-07-09 Yannick Moy <moy@adacore.com> 4525 4526 * sinfo.ads: Refine comment for Do_Range_Check. 4527 45282019-07-09 Yannick Moy <moy@adacore.com> 4529 4530 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Expand 4531 attribute reference on Enum_Rep. 4532 45332019-07-09 Ed Schonberg <schonberg@adacore.com> 4534 4535 * sem_ch12.adb (Instantiate_Formal_Package): Handle properly the 4536 case where the actual for a formal package in an instance is the 4537 current instance of an enclosing generic package. 4538 (Check_Formal_Packages): If the formal package declaration is 4539 box-initialized or lacks associations altogether, no internal 4540 instance was created to verify conformance, and there is no 4541 validating package to remove from tree. 4542 45432019-07-09 Yannick Moy <moy@adacore.com> 4544 4545 * freeze.adb (Build_Renamed_Body): Do not set body to inline in 4546 GNATprove mode. 4547 45482019-07-09 Yannick Moy <moy@adacore.com> 4549 4550 * exp_util.adb (Expand_Subtype_From_Expr): Still expand the type 4551 of static expressions in GNATprove_Mode. 4552 * sem_ch3.adb (Analyze_Object_Declaration): Remove obsolete 4553 special case for GNATprove_Mode. 4554 45552019-07-09 Piotr Trojanek <trojanek@adacore.com> 4556 4557 * doc/gnat_rm/the_gnat_library.rst, 4558 doc/gnat_ugn/building_executable_programs_with_gnat.rst, 4559 erroutc.adb, libgnat/g-comlin.adb, libgnat/g-comlin.ads, 4560 libgnat/g-regexp.ads, libgnat/g-regpat.ads, 4561 libgnat/g-spipat.ads, libgnat/s-os_lib.ads, 4562 libgnat/s-regexp.ads: Reword "wild card" to "wildcard". 4563 * gnat_rm.texi, gnat_ugn.texi: Regenerate. 4564 45652019-07-09 Yannick Moy <moy@adacore.com> 4566 4567 * sem_spark.adb (Check_Expression): Handle correctly implicit 4568 assignments as part of allocators and (extension) aggregates. 4569 (Get_Root_Object): Adapt for new path expressions. 4570 (Is_Path_Expression): Return True for (extension) aggregate. 4571 45722019-07-09 Piotr Trojanek <trojanek@adacore.com> 4573 4574 * einfo.ads: Fix a typo. 4575 45762019-07-09 Ed Schonberg <schonberg@adacore.com> 4577 4578 * sem_util.adb (Scope_Within_Or_Same): Handle properly task 4579 bodies and protected bodies, so that local variables within have 4580 their proper scopes after these constructs have been rewritten 4581 during expansion. This patch resembles but is not identical to 4582 the code in Scope_Within. 4583 45842019-07-09 Arnaud Charlet <charlet@adacore.com> 4585 4586 * gnat1drv.adb (Adjust_Global_Switches): Set 4587 Dynamic_Elaboration_Checks to True in CodePeer mode. 4588 45892019-07-09 Yannick Moy <moy@adacore.com> 4590 4591 * sem_spark.adb (Get_Perm_Or_Tree): Issue an error when 4592 encountering unknown global variable. 4593 45942019-07-09 Yannick Moy <moy@adacore.com> 4595 4596 * sem_spark.adb (Check_Expression): Change signature to take an 4597 Extended_Checking_Mode, for handling read permission checking of 4598 sub-expressions in an assignment. 4599 (Check_Parameter_Or_Global): Adapt to new behavior of 4600 Check_Expression for mode Assign. 4601 (Check_Safe_Pointers): Do not analyze generic bodies. 4602 (Check_Assignment): Separate checking of the target of an 4603 assignment. 4604 46052019-07-09 Eric Botcazou <ebotcazou@adacore.com> 4606 4607 * repinfo.ads (JSON format): Adjust. 4608 * repinfo.adb (Need_Blank_Line): Rename to... 4609 (Need_Separator): ...this. 4610 (Blank_Line): Rename to... 4611 (Write_Separator): ...this and add JSON specific handling. 4612 (List_Array_Info): Adjust to above renaming. 4613 (List_Object_Info): Likewise. 4614 (List_Record_Info): Likewise. 4615 (List_Subprogram_Info): Likewise. 4616 (List_Type_Info): Likewise. 4617 (List_Entities): Do not set Need_Blank_Line. 4618 (List_Rep_Info): Set Need_Separator and add JSON specific 4619 handling. Output a single JSON stream in the normal case. 4620 46212019-07-09 Arnaud Charlet <charlet@adacore.com> 4622 4623 * doc/gnat_ugn/the_gnat_compilation_model.rst: Update doc on 4624 -fdump-ada-spec now that we generate Ada 2012. 4625 * gnat_ugn.texi: Regenerate. 4626 46272019-07-08 Eric Botcazou <ebotcazou@adacore.com> 4628 4629 * repinfo.adb (List_Common_Type_Info): New procedure extracted 4630 from... 4631 (List_Type_Info): ...here. Call it for the common information, 4632 start with a blank line and output the linker section at the 4633 end, if any. 4634 (List_Mechanisms): Rename to... 4635 (List_Subprogram_Info): ...this. 4636 (List_Array_Info): Call List_Common_Type_Info. 4637 (List_Entities): Adjust to above change and renaming. 4638 (List_Record_Info): Call List_Common_Type_Info. 4639 46402019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> 4641 4642 * libgnat/g-sercom.ads 4643 (Serial_Port_Descriptor): New type. 4644 (Serial_Port): Add a comment, make it hold a 4645 Serial_Port_Descriptor. 4646 (To_Ada, To_C): New procedures. 4647 (Port_Data, Port_Data_Access): Remove types. 4648 * libgnat/g-sercom.adb (To_Ada): New stub. 4649 * libgnat/g-sercom__linux.adb, libgnat/g-sercom__mingw.adb: 4650 Update implementations accordingly. 4651 * s-oscons-tmplt.c: Bind Serial_Port_Descriptor to 4652 System.Win32.HANDLE on Windows, and to Interfaces.C.int on 4653 Linux. Add "Interfaces.C." prefix for other basic integer type 4654 bindings. 4655 * xoscons.adb (Output_Info): Remove the "Interfaces.C." prefix 4656 for subtypes generation. 4657 46582019-07-08 Arnaud Charlet <charlet@adacore.com> 4659 4660 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: 4661 Update documentation on No_Exceptions restriction. 4662 * gnat_rm.texi: Regenerate. 4663 46642019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> 4665 4666 * libgnat/s-os_lib.adb: Do not call __gnat_kill for Invalid_Pid. 4667 46682019-07-08 Piotr Trojanek <trojanek@adacore.com> 4669 4670 * sem_util.adb (Enclosing_Package_Or_Subprogram): Do not expect 4671 package and subprogram bodies. 4672 46732019-07-08 Bob Duff <duff@adacore.com> 4674 4675 * doc/gnat_ugn/gnat_utility_programs.rst: Remove documentation 4676 of ignored GNATpp switch. 4677 46782019-07-08 Hristian Kirtchev <kirtchev@adacore.com> 4679 4680 * doc/gnat_rm/implementation_defined_pragmas.rst: 4681 Update the documentation of pragma Initialize_Scalars. 4682 * gnat_rm.texi: Regenerate. 4683 46842019-07-08 Javier Miranda <miranda@adacore.com> 4685 4686 * exp_ch4.adb (Tagged_Membership): Fix regression silently 4687 introduced in r260738 that erroneouslusy causes the evaluation 4688 to True of the membership test when the left operand of the 4689 membership test is a class-wide interface object and the right 4690 operand is a type that implements such interface type. 4691 46922019-07-08 Hristian Kirtchev <kirtchev@adacore.com> 4693 4694 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Do not 4695 register an address clause when its prefix denotes a generic 4696 formal object. 4697 46982019-07-08 Hristian Kirtchev <kirtchev@adacore.com> 4699 4700 * bindo-diagnostics.adb (Diagnose_Cycle): Capture the presence 4701 of an Elaborate_All edge before iterating over the edges of the 4702 cycle. 4703 (Output_Elaborate_Body_Transition): Update the parameter profile 4704 and the comment on usage. Add a missing case where the edge is 4705 within the context of an Elaborate_All. 4706 (Output_Transition): Update the call to 4707 Output_Elaborate_Body_Transition. 4708 * bindo-graphs.ads, bindo-graphs.adb 4709 (Contains_Elaborate_All_Edge): New routine. 4710 47112019-07-08 Piotr Trojanek <trojanek@adacore.com> 4712 4713 * lib-xref-spark_specific.adb (Create_Heap): Set dummy Etype for 4714 the fake __HEAP entity. 4715 47162019-07-08 Daniel Mercier <mercier@adacore.com> 4717 4718 * gnat1drv.adb: Suppress warnings on memory representation in 4719 CodePeer compiler mode. 4720 47212019-07-08 Nicolas Roche <roche@adacore.com> 4722 4723 * rtinit.c (__gnat_runtime_initialize): Remove dependency on 4724 CommandLineToArgvW. 4725 47262019-07-08 Doug Rupp <rupp@adacore.com> 4727 4728 * Makefile.rtl: Handle vxworks7r2 in x86_64 and x86 vxworks7. 4729 47302019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> 4731 4732 * Makefile.rtl: Use g-sercom__linux.adb for all linuxes. 4733 47342019-07-08 Yannick Moy <moy@adacore.com> 4735 4736 * expander.adb (Expand): Do not reset Analyzed flag always. 4737 * sem_eval.adb (Fold_Ureal): Mark node as analyzed. 4738 47392019-07-08 Ed Schonberg <schonberg@adacore.com> 4740 4741 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Do not insert twice 4742 the assignment statement that computes the delay value, to 4743 prevent improper tree sharing when the value is a type 4744 conversion and Float_Overflow checks are enabled. 4745 47462019-07-08 Hristian Kirtchev <kirtchev@adacore.com> 4747 4748 * bindo.adb: Update the section on terminology to include new 4749 concepts. Update the section on switches to include new 4750 entries. 4751 * bindo.ads: Add type Precedence_Kind. 4752 * bindo-builders.adb: Add with and use clauses for Debug and 4753 Bindo.Validators. Add use clauses for 4754 Bindo.Validators.Invocation_Graph_Validators and 4755 Bindo.Validators.Library_Graph_Validators. 4756 (Build_Invocation_Graph): Validate the graph immediately after 4757 it was built. 4758 (Build_Library_Graph): Update the parameter profile. The 4759 creation of the graph is now elaboration model-agnostic. 4760 Validate the graph immediately after it was built. 4761 (Create_With_Edge): Create regular with edges for Elaborate and 4762 Elaborate_All edges when the appropriate debug switches are in 4763 effect. 4764 * bindo-builders.ads (Build_Library_Graph): Update the parameter 4765 profile. 4766 * bindo-diagnostics.adb (Diagnose_Cycle): Track the presence of 4767 an Elaborate_All edge throughout the inspection of the cycle's 4768 edges. 4769 (Output_Dynamic_Model_Suggestions): Output the suggestion only 4770 when the cycle contains at least one weak edge where the 4771 successor was statically elaborated. 4772 (Output_Elaborate_Body_Transition, Output_Forced_Transition, 4773 Output_With_Transition): Update the assertions. 4774 * bindo-elaborators.adb: Remove use clauses for 4775 Bindo.Validators.Invocation_Graph_Validators and 4776 Bindo.Validators.Library_Graph_Validators. Remove strings 4777 Add_To_All_Candidates_Msg and Add_To_Comp_Candidates_Msg. 4778 Remove type String_Ptr. 4779 (Add_Vertex, Add_Vertex_If_Elaborable, Create_All_Candidates_Set 4780 Create_Component_Candidates_Set): Remove. 4781 (Create_Component_Vertex_Sets, Create_Vertex_Sets): New routine. 4782 (Elaborate_Component): Update the parameter profile and the 4783 comment on usage. Reimplement the elaboration of a component. 4784 The algorithm will now attempt to elaborate as many vertices 4785 possible. If this is not possible, and a weakly elaborable 4786 vertex is available use unit was compiled using the dynamic 4787 model, the algorithm will elaborate it. 4788 (Elaborate_Library_Graph): Reimplement the elaboration of the 4789 graph. The algorithm will now attempt to elaborate as many 4790 vertices along with their components as possible. If this is not 4791 possible, and a weakly elaborable vertex is available use unit 4792 was compiled using the dynamic model, the algorithm will 4793 elaborate it along with its component. 4794 (Elaborate_Units): Merge with the functionality of 4795 Elaborate_Units_Common. 4796 (Elaborate_Units_Common, Elaborate_Units_Dynamic, 4797 Elaborate_Units_Static): Remove. 4798 (Elaborate_Vertex): Update the parameter profile and the comment 4799 on usage. Reimplemented. 4800 (Find_Best_Candidate): Remove. 4801 (Find_Best_Elaborable_Vertex, Find_Best_Vertex, 4802 Find_Best_Weakly_Elaborable_Vertex, Has_Elaborable_Body, 4803 Insert_Elaborable_Successor, Insert_Vertex): New routines. 4804 (Is_Better_Candidate): Remove. 4805 (Is_Better_Elaborable_Vertex, 4806 Is_Better_Weakly_Elaborable_Vertex, 4807 Is_Suitable_Elaborable_Vertex, 4808 Is_Suitable_Weakly_Elaborable_Vertex): New routines. 4809 (Trace_Candidate_Vertices): Remove. 4810 (Trace_Component): Output the number of strong and weak 4811 predecessors. 4812 (Trace_Unelaborated_Vertices): Remove. 4813 (Trace_Vertex): Output the number of strong and weak 4814 predecessors. 4815 (Trace_Vertices): New routine. 4816 (Update_Successor, Update_Successors): Update the parameter 4817 profile and the comment on usage. 4818 * bindo-graphs.adb: Remove type Precedence_Kind. 4819 (Add_Edge_With_Return): Update the increment of pending 4820 predecessors. 4821 (Add_Vertex): Provide default values for strong and weak 4822 predecessors. 4823 (Complementary_Vertex): Move the initial declaration to the 4824 spec. Update the parameter profile and the comment on usage. 4825 (Contains_Weak_Static_Successor): New routine. 4826 (Create): Update the parameter profile. The creation of the 4827 graph is now elaboration model-agnostic. 4828 (Decrement_Pending_Predecessors): Update the parameter profile 4829 and the comment on usage. Reimplemented. 4830 (Delete_Edge): Update the decrement of pending predecesors. 4831 (Has_Elaborate_Body): Do not treat a vertex as being subject to 4832 Elaborate_Body when a debug switch is in effect. 4833 (Increment_Pending_Predecessors): Update the parameter profile 4834 and the comment on usage. Reimplemented. 4835 (Is_Elaborable_Component): Reimplemented. 4836 (Is_Elaborable_Vertex): Move the initial declaration to the 4837 spec. Reimplemented. 4838 (Is_Elaborate_Body_Pair): New routine. 4839 (Is_Dynamically_Elaborated): Update the parameter profile. 4840 Reimplemented. 4841 (Is_Weakly_Elaborable_Vertex): New routine. 4842 (Pending_Predecessors): Removed. 4843 (Pending_Predecessors_For_Elaboration, 4844 Pending_Strong_Predecessors, Pending_Weak_Predecessors, 4845 Update_Pending_Predecessors): New routines. 4846 (Update_Pending_Predecessors_Of_Components): Update the 4847 increment of pending predecessors. 4848 * bindo-graphs.ads: Update the components of type 4849 Component_Attributes. Update the components of type 4850 Library_Graph_Attributes. Update the components of type 4851 Library_Graph_Vertex_Attributes. Update the initialization of 4852 No_Component_Attributes. Update the initialization of 4853 No_Library_Graph_Vertex_Attributes. 4854 (Complementary_Vertex, Contains_Weak_Static_Successor): New 4855 routines. 4856 (Create): Update the parameter profile and the comment on usage. 4857 (Decrement_Pending_Predecessors, Is_Dynamically_Elaborated): 4858 Update the parameter profile and the comment on usage. 4859 (Is_Elaborate_Body_Pair, Is_Weakly_Elaborable_Vertex): New 4860 routines. 4861 (Pending_Predecessors): Removed. 4862 (Pending_Predecessors_For_Elaboration, 4863 Pending_Strong_Predecessors, Pending_Weak_Predecessors): New 4864 routines. 4865 * bindo-writers.adb (Write_Components): Moved from the spec. 4866 (Write_Component): Output the strong and weak predecessors. 4867 (Write_Library_Graph): Output the components as part of the 4868 graph. 4869 (Write_Library_Graph_Vertex): Output the strong and weak 4870 predecessors. 4871 * bindo-writers.ads (Write_Components): Moved to the body. 4872 * debug.adb: Add and document new GNATbind switches -d_a, -d_b, 4873 -d_e. 4874 * bindo-validators.adb: Minor reformattings. 4875 48762019-07-08 Bob Duff <duff@adacore.com> 4877 4878 * libgnat/g-sercom.ads, libgnat/g-sercom__linux.adb (Data_Rate): 4879 Support additional data rates. 4880 48812019-07-08 Olivier Hainque <hainque@adacore.com> 4882 4883 * gcc-interface/trans.c (Compilation_Unit_to_gnu): Don't request 4884 DECL_ARTIFICIAL_P on elab proc declarations. 4885 48862019-07-08 Eric Botcazou <ebotcazou@adacore.com> 4887 4888 * repinfo.adb (List_Record_Info): Declare Incomplete_Layout and 4889 Not_In_Extended_Main local exceptions. 4890 (List_Structural_Record_Layout): For an extension, raise the 4891 former if the parent subtype has not been built and the latter 4892 if it is not declared in the main source unit. Fall back to the 4893 flat layout if either exception has been raised. 4894 48952019-07-08 Ed Schonberg <schonberg@adacore.com> 4896 4897 * libgnat/a-strfix.adb (Delete): The RM describes the semantics 4898 of Delete as equivalent to that of Replace_String with a null 4899 argument. As a result, deleting a null string that starts past 4900 the end of its argument is a noop and must not raise 4901 Index_Error. 4902 49032019-07-08 Javier Miranda <miranda@adacore.com> 4904 4905 * exp_disp.adb (Register_Primitive): When registering a 4906 primitive in the secondary dispatch table, handle primitive 4907 inherited through several levels of type derivation (required to 4908 properly handle inherited 'null' primitive). 4909 49102019-07-08 Bob Duff <duff@adacore.com> 4911 4912 * doc/gnat_ugn/gnat_utility_programs.rst: Document handling of 4913 preprocessor directives in GNATpp. 4914 49152019-07-08 Javier Miranda <miranda@adacore.com> 4916 4917 * gnat1drv.adb (Post_Compilation_Validation_Checks: 4918 Validate_Compile_Time_Warning_Errors is now located in sem_prag 4919 (instead of sem_ch13). 4920 * sem_ch13.ads (Validate_Compile_Time_Warning_Error, 4921 Validate_Compile_Time_Warning_Errors): Move to sem_prag. 4922 * sem_ch13.adb 4923 (Compile_Time_Warnings_Errors): Move to sem_prag. 4924 (Initialize): Remove initialization of table 4925 Compile_Time_Warning_Errors. 4926 (Validate_Compile_Time_Warning_Error, 4927 Validate_Compile_Time_Warning_Errors): Move to sem_prag. 4928 * sem_prag.ads (Validate_Compile_Time_Warning_Errors): New 4929 procedure. 4930 * sem_prag.adb (Initialize): Initialize table 4931 Compile_Time_Warning_Errors. 4932 49332019-07-08 Ed Schonberg <schonberg@adacore.com> 4934 4935 * sem_ch13.adb (Analyze_Aspect_Specifications): For a 4936 pre/postcondition of a generic subprogram declaration, do not 4937 use Relocate_Node on the aspect expression to construct the 4938 corresponding attribute specification, to prevent tree anomalies 4939 when the expression is a call with named actual parameters. 4940 49412019-07-08 Javier Miranda <miranda@adacore.com> 4942 4943 * sem_attr.adb (Analyze_Attribute [Attribute_Size]): For pragmas 4944 used to report user defined compile time warning or errors 4945 handle 'Size for types with known static RM size. 4946 49472019-07-08 Justin Squirek <squirek@adacore.com> 4948 4949 * exp_imgv.adb (Build_Enumeration_Image_Tables): Default SSO for 4950 the building of image tables. 4951 (Expand_Image_Attribute): Minor cleanup. 4952 49532019-07-08 Dmitriy Anisimkov <anisimko@adacore.com> 4954 4955 * libgnat/g-socket.ads, libgnat/g-socket.adb: Improve 4956 documentation. 4957 (Get_Socket_Option, Set_Socket_Option): Remove default value for 4958 the Level formal. 4959 49602019-07-08 Ed Schonberg <schonberg@adacore.com> 4961 4962 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): For an 4963 unanalized aspect in a generic context that has not been 4964 analyzed yet, if the aspect applies to a type, place the type on 4965 the scope stack to make its components visible, before checking 4966 conformance with the version of the expression analyzed at the 4967 freeze point. 4968 49692019-07-05 Justin Squirek <squirek@adacore.com> 4970 4971 * checks.adb (Apply_Accessibility_Check): Add logic to fetch the 4972 function result accessibility level if one is required within 4973 the generated check. 4974 * exp_ch6.adb (Needs_Result_Accessibility_Level): Modify 4975 controlling elsif block to handle more cases such as anonymous 4976 access results and disable checking for coextensions. 4977 49782019-07-05 Ed Schonberg <schonberg@adacore.com> 4979 4980 * sem_ch9.adb (Analyze_Accept_Statement): If this is an illegal 4981 accept statement for an enclosing entry abandon analysis to 4982 prevent scope mismatches and potential infinite loops in 4983 compiler. 4984 49852019-07-05 Hristian Kirtchev <kirtchev@adacore.com> 4986 4987 * ali.adb (For_Each_Invocation_Construct, 4988 For_Each_Invocation_Relation): New version. 4989 (Scan_ALI): Initialize field Invocation_Graph_Encoding. 4990 (Set_Invocation_Graph_Encoding): Update the setting of the 4991 invocation graph encoding. 4992 * ali.ads: Move field Invocation_Graph_Encoding from Unit_Record 4993 to ALI_Record because the encoding applies to the whole ALI, 4994 rather than one of the units (spec or body) for which the ALI 4995 file was created. 4996 (For_Each_Invocation_Construct, For_Each_Invocation_Relation): 4997 New version. 4998 * bindo.adb: Update the section on switches. Complete the 4999 section of debugging elaboration order issues. 5000 (Find_Elaboration_Order): Prepare the routine for the switch 5001 from the old to the new elaboration order mechanism. 5002 * bindo-diagnostics.adb (Find_And_Output_Invocation_Paths): 5003 Manage a visited set used by Visit_Vertex. 5004 (Output_All_Cycles_Suggestions, 5005 Output_Dynamic_Model_Suggestions): Clarify the nature of the 5006 suggested switch. 5007 (Output_Elaborate_Body_Transition): Update the diagnostic to 5008 emit a better message. 5009 (Output_Forced_Suggestions, Output_Full_Encoding_Suggestions): 5010 Clarify the nature of the suggested switch. 5011 (Visit_Vertex): Update the parameter profile to add a set of 5012 invokers visited during the transition. This set prevents 5013 infinite exploration of the graph in case the invocations are 5014 recursive. 5015 * bindo-elaborators.adb: Add a use clause for 5016 Bindo.Writers.Dependency_Writers. 5017 (Elaborate_Units_Common): Output the library graph after it has 5018 been augmented with invocation edges. Output just the components 5019 instead of outputting the whole library graph again. 5020 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Output the 5021 dependencies as expressed in the library graph. 5022 * bindo-units.adb (Invocation_Graph_Encoding): Update the 5023 extraction of the invocation graph encoding. 5024 * bindo-writers.adb: Add with and use clauses for Binderr and 5025 Butil. 5026 (palgc, plgc): New debug routine. 5027 (Write_Components): Moved to the spec. Add a header for the 5028 output. 5029 (Write_Dependencies, Write_Dependencies_Of_Vertex, 5030 Write_Dependency_Edge): New routine. 5031 (Write_Elaboration_Order): Update the logic to follow the format 5032 of Binde's order output. 5033 (Write_Library_Graph): Do not output the components every time 5034 the graph is written. 5035 (Write_Unit): Output the invocation graph encoding of the unit. 5036 Output the invocation constructs and relations for the unit 5037 only. 5038 * bindo-writers.ads (Write_Components): Moved from the body. 5039 (Write_Dependencies): New routine. 5040 * bindusg.adb: Prepare the routine for the switch from the old 5041 to the new elaboration order mechanism. 5042 * debug.adb: Binder switch -d_O is now not associated with any 5043 functionality. 5044 * einfo.adb (Is_Elaboration_Target): The attribute applies to 5045 packages, as specified by the comment on the attribute usage. 5046 * opt.ads: Add a global flag which controls the choice between 5047 the new and the legacy elaboration order mechanism. 5048 * sem_elab.adb: Add Package_Target to type Target_Kind. 5049 (Build_Elaborate_Body_Procedure, Build_Elaborate_Procedure, 5050 Build_Elaborate_Spec_Procedure, Check_Elaboration_Scenarios, 5051 Check_SPARK_Model_In_Effect): Use Main_Unit_Entity to obtain the 5052 entity of the main unit. 5053 (Create_Package_Rep): New routine. 5054 (Create_Target_Rep): Add processing for packages. 5055 (Declaration_Placement_Of_Node, Has_Prior_Elaboration): Use 5056 Main_Unit_Entity to obtain the entity of the main 5057 unit. 5058 (Invocation_Graph_Recording_OK): Prepare the routine for the 5059 switch from the old to the new elaboration order mechanism. 5060 (Main_Unit_Entity): New routine. 5061 (Meet_Elaboration_Requirement, 5062 Process_Conditional_ABE_Variable_Reference): Use 5063 Main_Unit_Entity to obtain the entity of the main unit. 5064 (Process_Invocation_Instantiation): New routine. 5065 (Process_Invocation_Scenario): Add processing for 5066 instantiations. 5067 * switch-b.adb (Scan_Binder_Switches): Prepare the routine for 5068 the switch from the old to the new elaboration order mechanism. 5069 50702019-07-05 Joffrey Huguet <huguet@adacore.com> 5071 5072 * libgnat/a-textio.adb: Add abstract state refinment. 5073 * libgnat/a-textio.ads: Add File_System abstract state. Add 5074 global contracts, contract cases, preconditions and 5075 postconditions to procedures and functions. 5076 (Set_Input, Set_Output, Set_Error, Standard_Input, 5077 Standard_Output, Standard_Error, Current_Input, Current_Output, 5078 Current_Error): Turn SPARK_Mode off. 5079 (Get_Line): Turn SPARK_Mode off on Get_Line functions. 5080 * libgnat/a-tideio.ads, libgnat/a-tienio.ads, 5081 libgnat/a-tifiio.ads, libgnat/a-tiflio.ads, 5082 libgnat/a-tiinio.ads, libgnat/a-timoio.ads: Add global 5083 contracts, contract cases, preconditions and postconditions to 5084 procedures and functions. 5085 50862019-07-05 Arnaud Charlet <charlet@adacore.com> 5087 5088 * doc/gnat_ugn/platform_specific_information.rst: Refresh doc on 5089 installing from the command line on Windows. Remove obsolete 5090 part. 5091 * gnat_ugn.texi: Regenerate. 5092 50932019-07-05 Vasiliy Fofanov <fofanov@adacore.com> 5094 5095 * libgnat/a-wichha.ads (Is_Alphanumeric): Replace comment with 5096 the correct one. Also capitalize references to False 5097 throughout. 5098 50992019-07-05 Eric Botcazou <ebotcazou@adacore.com> 5100 5101 * exp_ch4.adb (Expand_N_Indexed_Component): Do not expand actual 5102 parameters of function calls here either. 5103 51042019-07-05 Hristian Kirtchev <kirtchev@adacore.com> 5105 5106 * bindo-units.adb, checks.adb, exp_attr.adb, exp_ch3.adb, 5107 exp_ch4.adb, exp_pakd.adb, lib-writ.adb, libgnat/g-traceb.adb, 5108 libgnat/g-traceb.ads, libgnat/s-stratt.ads, sem_aux.ads, 5109 sem_util.adb: Minor reformatting. 5110 51112019-07-05 Ed Schonberg <schonberg@adacore.com> 5112 5113 * sem_ch13.adb (Build_Predicate_Functions): If a subtype that 5114 carries a static predicate aspect is frozen immediately after 5115 its declaration, ensure that the generated function body created 5116 for predicate checking is inserted after the corresponding 5117 subprogram declaration, which is created at the point the 5118 declaration is elaborated. 5119 51202019-07-05 Hristian Kirtchev <kirtchev@adacore.com> 5121 5122 * exp_ch7.adb (Cleanup_Record): Use the underlying type when 5123 checking for components with tasks. 5124 51252019-07-05 Arnaud Charlet <charlet@adacore.com> 5126 5127 * libgnarl/s-osinte__linux.ads: Link with -lrt before -lpthread. 5128 51292019-07-05 Ed Schonberg <schonberg@adacore.com> 5130 5131 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Add explicit 5132 range checks when the index type of the bit-packed array is an 5133 enumeration type with a non-standard representation, 5134 51352019-07-05 Hristian Kirtchev <kirtchev@adacore.com> 5136 5137 * sem_res.adb (Is_Control_Flow_Statement): Delay statements 5138 contain an expression, which in turn may have side effects and 5139 affect the infinite recursion. As a result, delay statements 5140 should not be treated specially. 5141 51422019-07-05 Arnaud Charlet <charlet@adacore.com> 5143 5144 * libgnarl/s-linux.ads, libgnarl/s-linux__alpha.ads, 5145 libgnarl/s-linux__android.ads, libgnarl/s-linux__hppa.ads, 5146 libgnarl/s-linux__mips.ads, libgnarl/s-linux__riscv.ads, 5147 libgnarl/s-linux__sparc.ads: Fix typos in comments. 5148 51492019-07-05 Hristian Kirtchev <kirtchev@adacore.com> 5150 5151 * sem_res.adb (Check_Infinite_Recursion): Reimplemented. 5152 (Enclosing_Declaration_Or_Statement, 5153 Invoked_With_Different_Arguments, Is_Conditional_Statement, 5154 Is_Control_Flow_Statement, Is_Immediately_Within_Body, 5155 Is_Raise_Idiom, Is_Raise_Statement, Is_Sole_Statement, 5156 Preceded_By_Control_Flow_Statement, 5157 Within_Conditional_Statement): New routines. 5158 51592019-07-05 Javier Miranda <miranda@adacore.com> 5160 5161 * exp_ch4.adb (Expand_N_Type_Conversion): Do not apply an 5162 accessibility check when the conversion is an access to 5163 class-wide interface type and it is an actual parameter. 5164 * exp_ch6.adb (Expand_Call_Helper): Add documentation on the 5165 accessibility level of an anonymous allocator defining the value 5166 of an access parameter. 5167 * sem_util.ads, sem_util.adb (Dynamic_Accessibility_Level): Add 5168 support for an anonymous allocator whose type is that of a 5169 stand-alone object of an anonymous access to object type. 5170 51712019-07-05 Piotr Trojanek <trojanek@adacore.com> 5172 5173 * einfo.ads, sem_res.adb: Typo fixes in comments. 5174 51752019-07-05 Bob Duff <duff@adacore.com> 5176 5177 * exp_ch6.adb (Is_Build_In_Place_Function): Narrow the check for 5178 Has_Foreign_Convention to the imported case only. If a 5179 build-in-place function is exported, and called from Ada code, 5180 build-in-place protocols should be used. 5181 51822019-07-05 Ed Schonberg <schonberg@adacore.com> 5183 5184 * sem_util.adb (Encloing_Subprogram): If Enclosing_Dynamic_Scope 5185 is a loop, continue climbing the scope stack to find the 5186 enclosing subprogram. 5187 (Gather_Components): Handle properly a choice in a record 5188 aggregate that is given by a subtype with a static predicate. 5189 51902019-07-05 Javier Miranda <miranda@adacore.com> 5191 5192 * debug.adb (-gnatd.K): Leave available this switch. 5193 * contracts.adb (Build_And_Analyze_Contract_Only_Subprograms): 5194 Remove. 5195 * scil_ll.ads, scil_ll.adb (Contract_Only_Body_Flag, 5196 Contract_Only_Body_Nodes, Get_Contract_Only_Body, 5197 Is_Contract_Only_Body, Set_Contract_Only_Body): Remove. 5198 51992019-07-05 Pierre-Marie de Rodat <derodat@adacore.com> 5200 5201 * libgnat/a-strunb.ads: Import documentation from the RM 5202 52032019-07-05 Pierre-Marie de Rodat <derodat@adacore.com> 5204 5205 * libgnat/a-strfix.ads: Import documentation from the RM 5206 52072019-07-05 Yannick Moy <moy@adacore.com> 5208 5209 * adabkend.adb (Scan_Back_End_Switches): Accept -Og and -Ofast 5210 switches. 5211 52122019-07-05 Hristian Kirtchev <kirtchev@adacore.com> 5213 5214 * ali.adb: Relocate types Invocation_Construct_Record, 5215 Invocation_Relation_Record, and Invocation_Signature_Record to 5216 the body of ALI. Relocate tables Invocation_Constructs, 5217 Invocation_Relations, and Invocation_Signatures to the body of 5218 ALI. Remove type Body_Placement_Codes. Add new types 5219 Declaration_Placement_Codes, and 5220 Invocation_Graph_Encoding_Codes. Update the literals of type 5221 Invocation_Graph_Line_Codes. 5222 (Add_Invocation_Construct): Update the parameter profile. Add an 5223 invocation construct built from all attributes provided. 5224 (Add_Invocation_Relation): Update the parameter profile. Add an 5225 invocation relation built from all attributes provided. 5226 (Body_Placement): New routine. 5227 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind): 5228 Removed. 5229 (Code_To_Declaration_Placement_Kind, 5230 Code_To_Invocation_Graph_Encoding_Kind, Column, 5231 Declaration_Placement_Kind_To_Code, Extra, 5232 For_Each_Invocation_Construct, For_Each_Invocation_Relation, 5233 Invocation_Graph_Encoding, 5234 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line, 5235 Locations, Name): New routine. 5236 (Scan_Invocation_Construct_Line): Reimplement the scanning 5237 mechanism. 5238 (Scan_Invocation_Graph_Attributes_Line): New routine. 5239 (Scan_Invocation_Graph_Line): Use a case statement to dispatch. 5240 (Scan_Invocation_Relation_Line): Reimplement the scanning 5241 mechanism. 5242 (Scope): New routine. 5243 (Set_Invocation_Graph_Encoding, Signature, Spec_Placement, 5244 Target): New routine. 5245 * ali.ads: Add new type Invocation_Graph_Encoding_Kind. Add 5246 component Invocation_Graph_Encoding to type Unit_Record. 5247 Relocate various types and data structures to the body of ALI. 5248 (Add_Invocation_Construct, Add_Invocation_Relation): Update the 5249 parameter profile. 5250 (Body_Placement): New routine. 5251 (Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind): 5252 Removed. 5253 (Code_To_Declaration_Placement_Kind, 5254 Code_To_Invocation_Graph_Encoding_Kind, Column, 5255 Declaration_Placement_Kind_To_Code, Extra, 5256 For_Each_Invocation_Construct, For_Each_Invocation_Relation, 5257 Invocation_Graph_Encoding, 5258 Invocation_Graph_Encoding_Kind_To_Code, Invoker, Kind, Line, 5259 Locations, Name, Scope, Set_Invocation_Graph_Encoding, 5260 Signature, Spec_Placement, Target): New routine. 5261 * bindo.adb: Add with clause for Binde. Add with and use 5262 clauses for Debug. Update the documentation. Add new switches. 5263 (Find_Elaboration_Order): Dispatch to the proper elaboration 5264 mechanism. 5265 * bindo-augmentors.adb: 5266 Remove with and use clauses for GNAT and GNAT.Sets. Remove 5267 membership set VS. Update the parameter profiles of most 5268 routines to use better parameter names. Update the 5269 implementation of most routine to use the new parameter names. 5270 Remove various redundant assertions. 5271 * bindo-builders.adb: Use better names for instantiated data 5272 structures. Update all references to these names. Update the 5273 parameter profiles of most routines to use better parameter 5274 names. Update the implementation of most routine to use the new 5275 parameter names. 5276 (Build_Library_Graph): Update the parameter profile. Update the 5277 call to Create. 5278 (Create_Vertex): Reimplemented. 5279 (Declaration_Placement_Vertex): New routine. 5280 * bindo-builders.ads (Build_Library_Graph): Update the parameter 5281 profile and comment on usage. 5282 * bindo-diagnostics.adb: Almost a new unit. 5283 * bindo-diagnostics.ads: Add a use clause for 5284 Bindo.Graphs.Invocation_Graphs. Remove package 5285 Cycle_Diagnostics. 5286 (Diagnose_Circularities): New routine. 5287 * bindo-elaborators.adb: Remove the with and use clauses for 5288 Binderr and GNAT.Sets. Remove the use clause for 5289 Bindo.Diagnostics.Cycle_Diagnostics. Remove membership set VS. 5290 Update the parameter profiles of most routines to use better 5291 parameter names. Update the implementation of most routine to 5292 use the new parameter names. (Elaborate_Units_Common): Update 5293 the parameter profile. Pass an infication to the library graph 5294 builder whether the dynamic model is in effect. 5295 (Elaborate_Units_Dynamic, Elaborate_Units_Static): Use 5296 Diagnose_Circularities to provide diagnostics. 5297 (Update_Successor): Use routine In_Same_Component to determine 5298 whether the predecessor and successor reside in different 5299 components. 5300 * bindo-graphs.adb: Add with and use clauses for Butil, Debug, 5301 Output, and Bindo.Writers. Remove with and use clauses for 5302 GNAT.Lists. Update the parameter profiles of most routines to 5303 use better parameter names. Update the implementation of most 5304 routine to use the new parameter names. Remove various 5305 redundant assertions. Remove doubly linked list EL. Add new 5306 type Precedence_Kind. 5307 (Add_Cycle): New routine. 5308 (Add_Vertex): Update the parameter profile. Update the creation 5309 of vertex attributes. 5310 (Add_Vertex_And_Complement, Body_Vertex, Column, 5311 Complementary_Vertex, Copy_Cycle_Path, Cycle_Kind_Of): New 5312 routines. 5313 (Destroy_Invocation_Graph_Edge, Destroy_Library_Graph_Cycle, 5314 Destroy_Library_Graph_Edge, Extra, File_Name, 5315 Find_All_Cycles_Through_Vertex, Find_All_Cycles_With_Edge, 5316 Find_Cycles, Find_First_Lower_Precedence_Cycle, 5317 Get_LGC_Attributes, Has_Next, Hash_Library_Graph_Cycle, 5318 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle, 5319 Highest_Precedence_Edge, In_Same_Component, Insert_And_Sort, 5320 Invocation_Edge_Count, Invocation_Graph_Encoding, 5321 Is_Cycle_Initiating_Edge, Is_Cyclic_Edge, 5322 Is_Cyclic_Elaborate_All_Edge, Is_Cyclic_Elaborate_Body_Edge, 5323 Is_Cyclic_Elaborate_Edge, Is_Cyclic_Forced_Edge, 5324 Is_Cyclic_Invocation_Edge, Is_Cyclic_With_Edge, 5325 Is_Dynamically_Elaborated, Is_Elaborate_All_Edge, 5326 Is_Elaborate_Body_Edge, Is_Elaborate_Edge: New routines. 5327 (Is_Existing_Predecessor_Successor_Relation): Removed. 5328 (Is_Forced_Edge, Is_Invocation_Edge, Is_Recorded_Cycle, 5329 Is_Recorded_Edge, Is_With_Edge, Iterate_Edges_Of_Cycle, Kind, 5330 Length): New routine. 5331 (Lib_Vertex): Removed. 5332 (Line, Links_Vertices_In_Same_Component, 5333 Maximum_Invocation_Edge_Count, Next, Normalize_And_Add_Cycle, 5334 Normalize_Cycle_Path, Number_Of_Cycles, Path, Precedence, 5335 Remove_Vertex_And_Complement, Sequence_Next_Cycle): New routines. 5336 (Sequence_Next_IGE_Id): Renamed to Sequence_Next_Edge. 5337 (Sequence_Next_IGV_Id): Renamed to Sequence_Next_Vertex. 5338 (Sequence_Next_LGE_Id): Renamed to Sequence_Next_Edge. 5339 (Sequence_Next_LGV_Id): Renamed to Sequence_Next_Vertex. 5340 (Set_Is_Existing_Predecessor_Successor_Relation): Removed. 5341 (Set_Is_Recorded_Cycle, Set_Is_Recorded_Edge, 5342 Set_LGC_Attributes, Spec_Vertex, Trace_Cycle, Trace_Edge, 5343 Trace_Eol, Trace_Vertex): New routines. 5344 * bindo-graphs.ads: Add with and use clauses for Types and 5345 GNAT.Lists. Update the parameter profiles of most routines to 5346 use better parameter names. Update the implementation of most 5347 routine to use the new parameter names. Add the new 5348 instantiated data structures IGE_Lists, IGV_Sets, LGC_Lists, 5349 LGE_Lists, LGE_Sets, LGV_Sets, and RC_Sets. Add new type 5350 Library_Graph_Cycle_Id along with an empty and initial value. 5351 Remove component Lib_Vertex and add new components Body_Vertex 5352 and Spec_Vertex to type Invocation_Graph_Vertex_Attributes. Add 5353 new type Library_Graph_Cycle_Kind. Add new iterators 5354 All_Cycle_Iterator and Edges_Of_Cycle_Iterator. Add new type 5355 Library_Graph_Cycle_Attributes. Add new components 5356 Cycle_Attributes, Cycles, and Dynamically_Elaborated to type 5357 Library_Graph_Attributes. 5358 (Body_Vertex, Column, Destroy_Invocation_Graph_Edge, 5359 Destroy_Library_Graph_Cycle_Attributes, 5360 Destroy_Library_Graph_Edge, Extra, File_Name, Find_Cycles, 5361 Has_Elaborate_All_Cycle, Has_Next, Hash_Library_Graph_Cycle, 5362 Hash_Library_Graph_Cycle_Attributes, Highest_Precedence_Cycle, 5363 In_Same_Component, Invocation_Edge_Count, 5364 Invocation_Graph_Encoding, Is_Dynamically_Elaborated, 5365 Is_Elaborate_All_Edge, Is_Elaborate_Body_Edge, 5366 Is_Elaborate_Edge, Is_Forced_Edge, Is_Invocation_Edge, 5367 Is_With_Edge, Iterate_All_Cycles, Iterate_Edges_Of_Cycle, Kind): 5368 New routines. 5369 (Length, Lib_Vertex, (Line, Next, Number_Of_Cycles, Present, 5370 Same_Library_Graph_Cycle_Attributes, Spec_Vertex): New routines. 5371 * bindo-units.adb (File_Name, Invocation_Graph_Encoding): New 5372 routines. 5373 * bindo-units.ads: Add new instantiated data structure 5374 Unit_Sets. 5375 (File_Name, Invocation_Graph_Encoding): New routine. 5376 * bindo-validators.adb: Remove with and use clauses for GNAT and 5377 GNAT.Sets. Remove membership set US. Update the parameter 5378 profiles of most routines to use better parameter names. Update 5379 the implementation of most routine to use the new parameter 5380 names. 5381 (Validate_Cycle, Validate_Cycle_Path, Validate_Cycles, 5382 Validate_Invocation_Graph_Vertex): Remove the validation of 5383 component Lib_Vertex. Add the validation of components 5384 Body_Vertex and Spec_Vertex. 5385 (Write_Error): New routine. 5386 * bindo-validators.ads (Validate_Cycles): New routine. 5387 * bindo-writers.adb: Update the parameter profiles of most 5388 routines to use better parameter names. Update the 5389 implementation of most routine to use the new parameter names. 5390 (Write_Cycle, Write_Cyclic_Edge, Write_Cycles): New routines. 5391 (Write_Invocation_Graph_Vertex): Remove the output of component 5392 Lib_Vertex. Add the output of components Body_Vertex and 5393 Spec_Vertex. 5394 * bindo-writers.ads (Write_Cycles): New routine. 5395 * debug.adb: Use binder switches -d_C and -d_P, add 5396 documentation on their usage. 5397 * gnatbind.adb: Remove with and use clauses for Binde. Delegate 5398 the choice of elaboration mechanism to Bindo. 5399 * lib-writ.adb (Column, Extra, Invoker, Kind, Line, Locations, 5400 Name, Placement, Scope, Signature, Target): Removed. 5401 (Write_Invocation_Graph): Moved at the top level. 5402 (Write_Invocation_Graph_Attributes): New routine. 5403 (Write_Invocation_Relation, Write_Invocation_Signature): Moved 5404 at the top level. 5405 * lib-writ.ads: Add a documentation section on invocation graph 5406 attributes. 5407 * sem_elab.adb (Body_Placement_Of): New routine. 5408 (Declare_Invocation_Construct): Update the call to 5409 Add_Invocation_Construct. 5410 (Declaration_Placement_Of_Node): New routine. 5411 (Get_Invocation_Attributes): Correct the retrieval of the 5412 enclosing subprogram where the postcondition procedure lives. 5413 (Placement_Of, Placement_Of_Node): Removed. 5414 (Record_Invocation_Graph): Record the encoding format used. 5415 (Record_Invocation_Graph_Encoding): New routine. 5416 (Record_Invocation_Relation): Update the call to 5417 Add_Invocation_Relation. 5418 (Spec_Placement_Of): Removed. 5419 * libgnat/g-lists.ads, libgnat/g-lists.adb (Equal): New routine. 5420 54212019-07-05 Ed Schonberg <schonberg@adacore.com> 5422 5423 * checks.adb (Apply_Predicate_Check): Except within the 5424 subprogram body that defines the formal, do not apply predicate 5425 check on a formal IN parameter: such a check is redundant and 5426 its expansion can lead to out-of-scope references when it is 5427 originates in a function call in a precondition, 5428 54292019-07-05 Yannick Moy <moy@adacore.com> 5430 5431 * sem_res.adb (Resolve_Call): Cannot inline in quantified 5432 expressions. 5433 * sem_util.adb, sem_util.ads (In_Quantified_Expression): New 5434 function. 5435 54362019-07-05 Bob Duff <duff@adacore.com> 5437 5438 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: 5439 Fix typo. 5440 * gnat_rm.texi: Regenerate. 5441 54422019-07-05 Bob Duff <duff@adacore.com> 5443 5444 * exp_attr.adb (Input): Take the No_Stream_Optimizations 5445 restriction into account. 5446 54472019-07-05 Claire Dross <dross@adacore.com> 5448 5449 * libgnat/a-cofove.ads, libgnat/a-cofove.adb: Definite formal 5450 vectors are now always bounded so that they do not need to be 5451 limited anymore. 5452 54532019-07-05 Dmitriy Anisimkov <anisimko@adacore.com> 5454 5455 * libgnat/g-traceb.ads, libgnat/g-traceb.adb (Call_Chain): New 5456 function. 5457 54582019-07-04 James Clarke <jrtc27@debian.org> 5459 5460 * libgnarl/s-osinte__kfreebsd-gnu.ads (clockid_t): Make type 5461 definition public. 5462 (CLOCK_REALTIME): Make value public. 5463 54642019-07-04 Javier Miranda <miranda@adacore.com> 5465 5466 * exp_tss.adb (Init_Proc): Adding missing support for access to 5467 subprograms and access to protected subprograms of non-default 5468 C++ constructors. 5469 54702019-07-04 Eric Botcazou <ebotcazou@adacore.com> 5471 5472 * gnat1drv.adb (Adjust_Global_Switches): Use proper interface to 5473 set the validity settings in CodePeer mode. 5474 * par-load.adb (Load): Remove all code dealing with validity 5475 settings. 5476 * validsw.ads (Validity_Check_Copies): Alphabetize. 5477 * validsw.adb (Reset_Validity_Check_Options): Set all options to 5478 off. 5479 (Save_Validity_Check_Options): Save all options. 5480 54812019-07-04 Hristian Kirtchev <kirtchev@adacore.com> 5482 5483 * exp_ch3.adb, exp_ch4.adb, exp_ch4.ads, exp_ch5.adb, 5484 exp_ch7.adb, exp_ch9.adb, exp_ch11.adb, exp_unst.adb, 5485 rtsfind.ads, sem_attr.adb, sem_ch10.adb, sem_ch12.adb, 5486 sem_ch13.adb, sem_dim.adb, sem_disp.adb, xref_lib.adb: Minor 5487 reformatting. 5488 54892019-07-04 Joffrey Huguet <huguet@adacore.com> 5490 5491 * libgnarl/a-taside.ads: Add assertion policy to ignore 5492 preconditions. 5493 (Abort_Task, Is_Terminated, Is_Callable): Add preconditions. 5494 54952019-07-04 Eric Botcazou <ebotcazou@adacore.com> 5496 5497 * doc/gnat_rm/implementation_defined_pragmas.rst: Fix 5498 capitalization and parenthesis glitches. 5499 * gnat_rm.texi: Regenerate. 5500 55012019-07-04 Ed Schonberg <schonberg@adacore.com> 5502 5503 * sem_ch10.adb (Remove_Context_Clauses): Handle properly the 5504 removal of a limited_with_clause which appears in the library 5505 unit oF the main unit, when some other unit in the context has a 5506 regular with_clause on the same unit, to prevent spurious 5507 visibility errors in the subsequent analysis of pending instance 5508 bodies. 5509 55102019-07-04 Hristian Kirtchev <kirtchev@adacore.com> 5511 5512 * sem_elab.adb: Add new type Elaboration_Phase_Status along with 5513 a global to keep track of the elaboration phase status. 5514 Initialize all internal data structures to Nil for services 5515 Elaborated_Units, Internal_Representation, and Scenario_Storage. 5516 (Build_Call_Marker): Do not create a call marker when the 5517 elaboration phase is not active. 5518 (Build_Variable_Reference_Marker): Do not create a call marker 5519 when the elaboration phase is not active. 5520 (Check_Elaboration_Scenarios): Destroy all internal structures 5521 when the elaboration phase does not have to run. Do not execute 5522 when the elaboration phase is not active. 5523 (Elaboration_Phase_Active): New routine. 5524 (Finalize_All_Data_Structures): New routine. 5525 (Initialize): Initialize all internal data structures and signal 5526 that the elaboration phase has started. 5527 (Initialize_All_Data_Structures): New routine. 5528 (Initialize_Elaborated_Units): Initialize all internal data 5529 structures. 5530 (Initialize_Internal_Representation): Initialize all internal 5531 data structures. 5532 (Initialize_Scenario_Storage): Initialize all internal data 5533 structures. 5534 (Kill_Elaboration_Scenario): Do not execute when the elaboration 5535 phase is not active. 5536 (Set_Elaboration_Phase): New routine. 5537 (Update_Elaboration_Scenario): Do not execute when the 5538 elaboration phase is not active. 5539 55402019-07-04 Gary Dismukes <dismukes@adacore.com> 5541 5542 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The special 5543 treatment of calling Mask_Unfrozen_Types must also be done in 5544 the case of an Ignored_Ghost_Entity, because Expander_Active is 5545 False in that case. 5546 55472019-07-04 Yannick Moy <moy@adacore.com> 5548 5549 * sem_prag.adb (Check_Library_Level_Entity): Update for new rule 5550 on SPARK_Mode. 5551 55522019-07-04 Justin Squirek <squirek@adacore.com> 5553 5554 * sem_disp.adb (Check_Controlling_Formals): Obtain the full view 5555 before type comparison. 5556 55572019-07-04 Ed Schonberg <schonberg@adacore.com> 5558 5559 * exp_ch4.ads, exp_ch4.adb (Build_Eq_Call): New visible 5560 subprogram, extracted from Expand_Composite_Equality, to handle 5561 properly the composition of equality for variant record types. 5562 * exp_ch3.adb (MAke_Eq_If): Use Build_Eq_Call for each 5563 component, to handle properly the case of a component with a 5564 user-defined equality. Revert to predefined equality if the 5565 user-defined operation is abstract, to maintain compatibility 5566 with older versions, 5567 55682019-07-04 Justin Squirek <squirek@adacore.com> 5569 5570 * exp_ch3.adb (Build_Initialization_Call): Fixup 5571 *_skip_null_excluding_check argument to handle new default. 5572 (Init_Formals): Make *_skip_null_excluding_check formal default 5573 to False 5574 * exp_ch4.adb (Expand_N_Allocator): Add comment to note heavy 5575 code duplication 5576 55772019-07-04 Bob Duff <duff@adacore.com> 5578 5579 * sem_ch3.adb (Access_Definition): Do not create a master unless 5580 Tasking_Allowed. Otherwise, this fails on restricted runtimes. 5581 55822019-07-04 Hristian Kirtchev <kirtchev@adacore.com> 5583 5584 * sem_util.adb (Propagate_DIC_Attributes): Do not propagate the 5585 Default_Initial_Condition attributes to an incomplete type. 5586 55872019-07-04 Ed Schonberg <schonberg@adacore.com> 5588 5589 * sem_attr.adb (Check_Array_Type): An array type attribute such 5590 as 'First can be applied to an unconstrained array tyope when 5591 the attribute reference appears within an aspect specification 5592 and the prefix is a current instance, given that the prefix of 5593 the attribute will become a formal of the subprogram that 5594 implements the aspect (typically a predicate check). 5595 55962019-07-04 Piotr Trojanek <trojanek@adacore.com> 5597 5598 * sem_util.adb (Yields_Synchronized_Object): Fix typos in 5599 comments. 5600 56012019-07-04 Yannick Moy <moy@adacore.com> 5602 5603 * sem_util.adb (Yields_Synchronized_Object): Adapt to new SPARK 5604 rule. 5605 56062019-07-04 Yannick Moy <moy@adacore.com> 5607 5608 * sem_spark.adb (Check_Statement): Only check permission of 5609 object in extended return when it is of a deep type. 5610 56112019-07-04 Justin Squirek <squirek@adacore.com> 5612 5613 * sem_ch12.adb (Perform_Appropriate_Analysis): Added for 5614 selecting which type of analysis based on wheither the 5615 instantiation is a generic at the library-level. In which case 5616 expansion during analysis. 5617 (Preanalyze_Actuals): Modify calls to Analyze to use the new 5618 routine. 5619 56202019-07-04 Ed Schonberg <schonberg@adacore.com> 5621 5622 * exp_unst.adb: Handle conditional expressions. 5623 56242019-07-04 Yannick Moy <moy@adacore.com> 5625 5626 * sem_spark.adb (Check_Package_Spec, Check_Package_Body): Only 5627 analyze parts of the code marked in SPARK. 5628 56292019-07-04 Hristian Kirtchev <kirtchev@adacore.com> 5630 5631 * erroutc.adb, exp_aggr.adb, inline.adb, opt.adb, sem_ch3.adb: 5632 Minor reformatting. 5633 56342019-07-04 Yannick Moy <moy@adacore.com> 5635 5636 * sem_spark.adb (Explanation, Get_Expl): New functions to get 5637 the explanation for a permission mismatch. 5638 (Perm_Error, Perm_Mismatch, Perm_Error_Loop_Exit): Take 5639 explanation into account for issuing a more precise error 5640 message. 5641 (Set_Perm_Prefixes, Set_Perm_Extensions, 5642 Set_Perm_Extensions_Move): Pass suitable argument for the 5643 explanation node. 5644 56452019-07-04 Arnaud Charlet <charlet@adacore.com> 5646 5647 * exp_aggr.adb (In_Place_Assign_OK): Moved to top level and add 5648 support for record aggregates. 5649 (Component_Check): Use Is_CCG_Supported_Aggregate instead of a 5650 similar local predicate. 5651 (Convert_To_Assignments): Take advantage of In_Place_Assign_OK 5652 predicate when possible. 5653 (Is_CCG_Supported_Aggregate): Return False for records with 5654 representation clauses and fix the logic for dealing with nested 5655 aggregates. 5656 56572019-07-04 Piotr Trojanek <trojanek@adacore.com> 5658 5659 * opt.adb (Set_Config_Switches): Keep assertions policy as 5660 enabled when analysing internal units in GNATprove mode. 5661 56622019-07-04 Arnaud Charlet <charlet@adacore.com> 5663 5664 * exp_ch4.adb (Expand_Short_Circuit_Operator): Strip 5665 N_Variable_Reference_Marker when checking for the presence of 5666 actions. 5667 56682019-07-04 Arnaud Charlet <charlet@adacore.com> 5669 5670 * exp_aggr.adb (Check_Component): Take into account type 5671 conversions. 5672 56732019-07-04 Dmitriy Anisimkov <anisimko@adacore.com> 5674 5675 * doc/gnat_ugn/platform_specific_information.rst: Document 5676 Windows socket timeout particularity. 5677 * gnat_ugn.texi: Regenerate. 5678 * gsocket.h: Include versionhelpers.h. 5679 * socket.c (__gnat_minus_500ms): New function. 5680 * libgnat/g-sothco.ads (Minus_500ms_Windows_Timeout): New 5681 imported function. 5682 * libgnat/g-socket.adb (Set_Socket_Option): Refactor to remove 5683 500ms from the requested timeout only on old Windows version. 5684 56852019-07-04 Thomas Quinot <quinot@adacore.com> 5686 5687 * get_scos.adb: Remove bogus, dead code. 5688 56892019-07-04 Ed Schonberg <schonberg@adacore.com> 5690 5691 * sem_dim.adb (Analyze_Dimension_Array_Aggregate): If the 5692 component is an entity name, its dimensions are those of its 5693 type. 5694 56952019-07-03 Bob Duff <duff@adacore.com> 5696 5697 * doc/gnat_ugn/gnat_utility_programs.rst: Document new flags in 5698 GNATpp. 5699 57002019-07-03 Hristian Kirtchev <kirtchev@adacore.com> 5701 5702 * binde.adb: Remove with clause for System.OS_Lib. 5703 (Force_Elab_Order): Refactor the majority of the code in Butil. 5704 Use the new forced units iterator to obtain unit names. 5705 * bindo-builders.adb: Add with and use clauses for Binderr, 5706 Butil, Opt, Output, Types, GNAT, and GNAT.Dynamic_HTables. Add 5707 a hash table which maps units to line number in the forced 5708 elaboration order file. 5709 (Add_Unit): New routine. 5710 (Build_Library_Graph): Create forced edges between pairs of 5711 units listed in the forced elaboration order file. 5712 (Create_Forced_Edge, Create_Forced_Edges, Destroy_Line_Number, 5713 Duplicate_Unit_Error, Hash_Unit, Internal_Unit_Info, 5714 Is_Duplicate_Unit, Missing_Unit_Info): New routines. 5715 * bindo-graphs.adb (Is_Internal_Unit, Is_Predefined_Unit): 5716 Refactor some of the behavior to Bindo-Units. 5717 * bindo-graphs.ads: Enable the enumeration literal for forced 5718 edges. 5719 * bindo-units.adb, bindo-units.ads (Is_Internal_Unit, 5720 Is_Predefined_Unit): New routines. 5721 * butil.adb: Add with and use clauses for Opt, GNAT, and 5722 System.OS_Lib. Add with clause for Unchecked_Deallocation. 5723 (Has_Next, Iterate_Forced_Units, Next, Parse_Next_Unit_Name, 5724 Read_Forced_Elab_Order_File): New routines. 5725 * butil.ads: Add with and use clauses for Types. Add new 5726 iterator over the units listed in the forced elaboration order 5727 file. 5728 (Has_Next, Iterate_Forced_Units, Next): New routine. 5729 * namet.adb, namet.ads (Present): New routine. 5730 57312019-07-03 Bob Duff <duff@adacore.com> 5732 5733 * sem_ch3.adb (Access_Definition): The code was creating a 5734 master in the case where the designated type is a class-wide 5735 interface type. Create a master in the noninterface case as 5736 well. That is, create a master for all limited class-wide types. 5737 57382019-07-03 Yannick Moy <moy@adacore.com> 5739 5740 * erroutc.adb (Sloc_In_Range): New function to determine whether 5741 the range of a pragma Warnings covers a location, taking 5742 instantiations into account. 5743 57442019-07-03 Johannes Kanig <kanig@adacore.com> 5745 5746 * osint.ads, osint.adb (Get_First_Main_File_Name): New routine 5747 to access the first file provided on the command line. 5748 57492019-07-03 Ed Schonberg <schonberg@adacore.com> 5750 5751 * inline.adb (Process_Formals_In_Aspects): New procedure within 5752 Expand_Inlined_Call, to perform a replacement of references to 5753 formals that appear in aspect specifications within the body 5754 being inlined. 5755 57562019-07-03 Justin Squirek <squirek@adacore.com> 5757 5758 * sem_ch8.adb (Analyze_Object_Renaming): Add call to search for 5759 the appropriate actual subtype of the object renaming being 5760 analyzed. 5761 (Check_Constrained_Object): Minor cleanup. 5762 57632019-07-03 Yannick Moy <moy@adacore.com> 5764 5765 * sem_spark.adb (Get_Observed_Or_Borrowed_Expr): New function to 5766 return go through traversal function call. 5767 (Check_Type): Consistently use underlying type. 5768 (Get_Perm): Adapt for case of elaboration code where variables 5769 are not declared in the environment. Remove incorrect handling 5770 of borrow and observe. 5771 57722019-07-03 Hristian Kirtchev <kirtchev@adacore.com> 5773 5774 * inline.adb (Build_Return_Object_Formal): New routine. 5775 (Can_Split_Unconstrained_Function): Code clean up. 5776 (Copy_Formals,Copy_Return_Object): New routines. 5777 (Split_Unconstrained_Function): Code clean up and refactoring. 5778 57792019-07-03 Gary Dismukes <dismukes@adacore.com> 5780 5781 * bindo-augmentors.adb, bindo-augmentors.ads, 5782 bindo-builders.ads, bindo-elaborators.adb, sem_ch12.adb, 5783 sem_ch13.adb, sem_spark.adb, sinfo.ads: Minor editorial 5784 corrections and reformatting. 5785 57862019-07-03 Bob Duff <duff@adacore.com> 5787 5788 * sem_warn.adb (Check_Infinite_Loop_Warning): Avoid the warning 5789 if an Iterator_Specification is present. 5790 57912019-07-03 Bob Duff <duff@adacore.com> 5792 5793 * doc/gnat_ugn/gnat_utility_programs.rst: Document default 5794 new-line behavior. 5795 57962019-07-03 Hristian Kirtchev <kirtchev@adacore.com> 5797 5798 * ali.adb: Add with and use clauses for GNAT, 5799 GNAT.Dynamic_HTables, and Snames. Add a map from invocation 5800 signature records to invocation signature ids. Add various 5801 encodings of invocation-related attributes. Sort and update 5802 table Known_ALI_Lines. 5803 (Add_Invocation_Construct, Add_Invocation_Relation, 5804 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind, 5805 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind, 5806 Code_To_Invocation_Graph_Line_Kind, Destroy, Hash): New 5807 routines. 5808 (Initialize_ALI): Sort the initialization sequence. Add 5809 initialization for all invocation-related tables. 5810 (Invocation_Construct_Kind_To_Code, 5811 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code, 5812 Invocation_Signature_Of, Present): New routines. 5813 (Scan_ALI): Add the default values for invocation-related ids. 5814 Scan invocation graph lines. 5815 (Scan_Invocation_Graph_Line): New routine. 5816 * ali.ads: Add with clause for GNAT.Dynamic_Tables. Add types 5817 for invocation constructs, relations, and signatures. Add 5818 tables for invocation constructs, relations, and signatures. 5819 Update Unit_Record to capture invocation-related ids. Relocate 5820 table Unit_Id_Tables and subtypes Unit_Id_Table, Unit_Id_Array 5821 from Binde. 5822 (Add_Invocation_Construct, Add_Invocation_Relation, 5823 Body_Placement_Kind_To_Code, Code_To_Body_Placement_Kind, 5824 Code_To_Invocation_Construct_Kind, Code_To_Invocation_Kind, 5825 Code_To_Invocation_Graph_Line_Kind, 5826 Invocation_Construct_Kind_To_Code, 5827 Invocation_Graph_Line_Kind_To_Code, Invocation_Kind_To_Code, 5828 Invocation_Signature_Of, Present): New routines. 5829 * binde.adb: Add with and use clause for Types. Add use clause 5830 for ALI.Unit_Id_Tables; 5831 * binde.ads: Relocate table Unit_Id_Tables and subtypes 5832 Unit_Id_Table, Unit_Id_Array to ALI. 5833 * bindgen.adb: Remove with and use clause for ALI. 5834 * bindgen.ads: Remove with and use clause for Binde. Add with 5835 and use clause for ALI. 5836 * bindo.adb, bindo.ads, bindo-augmentors.adb, 5837 bindo-augmentors.ads, bindo-builders.adb, bindo-builders.ads, 5838 bindo-diagnostics.adb, bindo-diagnostics.ads, 5839 bindo-elaborators.adb, bindo-elaborators.ads, bindo-graphs.adb, 5840 bindo-graphs.ads, bindo-units.adb, bindo-units.ads, 5841 bindo-validators.adb, bindo-validators.ads, bindo-writers.adb, 5842 bindo-writers.ads: New units. 5843 * debug.adb: Use and describe GNAT debug switches -gnatd_F and 5844 -gnatd_G. Add GNATbind debug switches in the ranges dA .. dZ, 5845 d.a .. d.z, d.A .. d.Z, d.1 .. d.9, d_a .. d_z, d_A .. d_Z, and 5846 d_1 .. d_9. Use and describe GNATbind debug switches -d_A, 5847 -d_I, -d_L, -d_N, -d_O, -d_T, and -d_V. 5848 * exp_util.adb, exp_util.ads (Exceptions_OK): Relocate to 5849 Sem_Util. 5850 * gnatbind.adb: Add with and use clause for Bindo. Use the new 5851 Bindo elaboration order only when -d_N is in effect. 5852 * lib-writ.adb 5853 (Column, Extra, Invoker, Kind, Line, Locations, Name, Placement, 5854 Scope, Signature, Target): New routines. 5855 (Write_ALI): Output all invocation-related data. 5856 (Write_Invocation_Graph): New routine. 5857 * lib-writ.ads: Document the invocation graph ALI line. 5858 * namet.adb, namet.ads (Present): New routines. 5859 * sem_ch8.adb (Find_Direct_Name): Capture the status of 5860 elaboration checks and warnings of an identifier. 5861 (Find_Expanded_Name): Capture the status of elaboration checks 5862 and warnings of an expanded name. 5863 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Ensure 5864 that invocation graph-related data within the body of the main 5865 unit is encoded in the ALI file. 5866 (Analyze_Generic_Subprogram_Declaration): Ensure that invocation 5867 graph-related data within the body of the main unit is encoded 5868 in the ALI file. 5869 (Analyze_Package_Instantiation): Perform minimal decoration of 5870 the instance entity. 5871 (Analyze_Subprogram_Instantiation): Perform minimal decoration 5872 of the instance entity. 5873 * sem_elab.adb: Perform heavy refactoring of all code. The unit 5874 is now split into "services" which specialize in one area of ABE 5875 checks. Add processing in order to capture invocation-graph 5876 related attributes of the main unit, and encode them in the ALI 5877 file. The Processing phase can now operate in multiple modes, 5878 all described by type Processing_Kind. Scenarios and targets 5879 are now distinct at the higher level, and carry their own 5880 representations. This eliminates the need to constantly 5881 recompute their attributes, and offers the various processors a 5882 uniform interface. The various initial states of the Processing 5883 phase are now encoded using type Processing_In_State, and 5884 xxx_State constants. 5885 * sem_elab.ads: Update the literals of type 5886 Enclosing_Level_Kind. Add Inline pragmas on several routines. 5887 * sem_prag.adb (Process_Inline): Ensure that invocation 5888 graph-related data within the body of the main unit is encoded 5889 in the ALI file. 5890 * sem_util.adb (Enclosing_Generic_Body, Enclosing_Generic_Unit): 5891 Code clean up. 5892 (Exceptions_OK): Relocated from Sem_Util. 5893 (Mark_Save_Invocation_Graph_Of_Body): New routine. 5894 * sem_util.ads (Exceptions_OK): Relocated from Sem_Util. 5895 (Mark_Save_Invocation_Graph_Of_Body): New routine. 5896 * sinfo.adb (Is_Elaboration_Checks_OK_Node): Now applicable to 5897 N_Variable_Reference_Marker. 5898 (Is_Elaboration_Warnings_OK_Node): Now applicable to 5899 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker. 5900 (Is_Read): Use Flag4. 5901 (Is_SPARK_Mode_On_Node): New applicable to 5902 N_Variable_Reference_Marker. 5903 (Is_Write): Use Flag5. 5904 (Save_Invocation_Graph_Of_Body): New routine. 5905 (Set_Is_Elaboration_Checks_OK_Node): Now applicable to 5906 N_Variable_Reference_Marker. 5907 (Set_Is_Elaboration_Warnings_OK_Node): Now applicable to 5908 N_Expanded_Name, N_Identifier, N_Variable_Reference_Marker. 5909 (Set_Is_SPARK_Mode_On_Node): New applicable to 5910 N_Variable_Reference_Marker. 5911 (Set_Save_Invocation_Graph_Of_Body): New routine. 5912 * sinfo.ads: Update the documentation of attributes 5913 Is_Elaboration_Checks_OK_Node, Is_Elaboration_Warnings_OK_Node, 5914 Is_SPARK_Mode_On_Node. Update the flag usage of attributes 5915 Is_Read, Is_Write. Add attribute Save_Invocation_Graph_Of_Body 5916 and update its occurrence in nodes. 5917 (Save_Invocation_Graph_Of_Body): New routine along with pragma 5918 Inline. 5919 (Set_Save_Invocation_Graph_Of_Body): New routine along with 5920 pragma Inline. 5921 * switch-b.adb (Scan_Binder_Switches): Refactor the scanning of 5922 debug switches. 5923 (Scan_Debug_Switches): New routine. 5924 * libgnat/g-dynhta.adb, libgnat/g-dynhta.ads (Contains): New routine. 5925 * libgnat/g-graphs.adb (Associate_Vertices): Update the use of 5926 Component_Vertex_Iterator. 5927 (Contains_Component, Contains_Edge, Contains_Vertex, Has_Next): 5928 Reimplemented. 5929 (Iterate_Component_Vertices): New routine. 5930 (Iterate_Vertices): Removed. 5931 (Next): Update the parameter profile. 5932 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New 5933 routines. 5934 * libgnat/g-graphs.ads: Update the initialization of 5935 No_Component. Add type Component_Vertex_Iterator. Remove type 5936 Vertex_Iterator. 5937 (Has_Next): Add new versions and remove old ones. 5938 (Iterate_Component_Vertices): New routine. 5939 (Iterate_Vertices): Removed. 5940 (Next): Add new versions and remove old ones. 5941 (Number_Of_Component_Vertices, Number_Of_Outgoing_Edges): New 5942 routines. 5943 * libgnat/g-sets.adb (Contains): Reimplemented. 5944 * gcc-interface/Make-lang.in (GNATBIND_OBJS): Add 5945 GNAT.Dynamic_HTables, GNAT.Graphs and Bindo units. 5946 * rtsfind.ads: Remove extra space. 5947 59482019-07-03 Yannick Moy <moy@adacore.com> 5949 5950 * sem_spark.adb: Add support for locally borrowing and observing 5951 a path. 5952 (Get_Root_Object): Add parameter Through_Traversal to denote 5953 when we are interesting in getting to the traversed parameter. 5954 (Is_Prefix_Or_Almost): New function to support detection of 5955 illegal access to borrowed or observed paths. 5956 (Check_Pragma): Add analysis of assertion pragmas. 5957 59582019-07-03 Ed Schonberg <schonberg@adacore.com> 5959 5960 * sem_ch13.adb (Build_Predicate_Functions): In a generic context 5961 we do not build the bodies of predicate fuctions, but the 5962 expression in a static predicate must be elaborated to allow 5963 case coverage checking within the generic unit. 5964 (Build_Discrete_Static_Predicate): In a generic context, return 5965 without building function body once the 5966 Static_Discrete_Predicate expression for the type has been 5967 constructed. 5968 59692019-07-03 Hristian Kirtchev <kirtchev@adacore.com> 5970 5971 * bindgen.adb, inline.adb, layout.adb, sem_ch12.adb, 5972 sem_ch13.adb, sem_ch7.adb, styleg.adb: Minor reformatting. 5973 59742019-07-03 Bob Duff <duff@adacore.com> 5975 5976 * par-ch3.adb (P_Defining_Identifier): Call 5977 Check_Defining_Identifier_Casing. 5978 * style.ads, styleg.ads, styleg.adb 5979 (Check_Defining_Identifier_Casing): New procedure to check for 5980 mixed-case defining identifiers. 5981 * stylesw.ads, stylesw.adb (Style_Check_Mixed_Case_Decls): New 5982 flag for checking for mixed-case defining identifiers. 5983 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: 5984 Document new feature. 5985 * gnat_ugn.texi: Regenerate. 5986 59872019-07-03 Eric Botcazou <ebotcazou@adacore.com> 5988 5989 * doc/gnat_ugn/building_executable_programs_with_gnat.rst 5990 (Warning message control): Document that -gnatw.z/Z apply to 5991 array types. 5992 * freeze.adb (Freeze_Entity): Give -gnatw.z warning for array 5993 types as well, but not if the specified alignment is the minimum 5994 one. 5995 * gnat_ugn.texi: Regenerate. 5996 59972019-07-03 Bob Duff <duff@adacore.com> 5998 5999 * einfo.ads, exp_util.adb, layout.ads, sinfo.ads: Spell "laid" 6000 correctly. 6001 60022019-07-03 Ed Schonberg <schonberg@adacore.com> 6003 6004 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): No error 6005 message on attribute applied to a renaming when the renamed 6006 object is an aggregate (from code reading). 6007 (Check_Aspect_At_End_Of_Declarations): In a generic context 6008 where freeze nodes are not generated, the original expression 6009 for an aspect may need to be analyzed to precent spurious 6010 conformance errors when compared with the expression that is 6011 anakyzed at the end of the current declarative list. 6012 60132019-07-03 Eric Botcazou <ebotcazou@adacore.com> 6014 6015 * layout.adb (Layout_Type): Do not set the component size of an 6016 array with a scalar component if the component type is 6017 overaligned. 6018 60192019-07-03 Ed Schonberg <schonberg@adacore.com> 6020 6021 * inline.adb (Make_Loop_Labels_Unique): New procedure to modify 6022 the source code of subprograms that are inlined by the 6023 front-end, to prevent accidental duplication between loop labels 6024 in the inlined code and the code surrounding the inlined call. 6025 60262019-07-03 Hristian Kirtchev <kirtchev@adacore.com> 6027 6028 * doc/gnat_ugn/elaboration_order_handling_in_gnat.rst: Update 6029 the section on resolving elaboration circularities to eliminate 6030 certain combinations of switches which together do not produce 6031 the desired effect and confuse users. 6032 * gnat_ugn.texi: Regenerate. 6033 60342019-07-03 Arnaud Charlet <charlet@adacore.com> 6035 6036 * bindgen.adb (Gen_Main): Disable generation of reference to 6037 Ada_Main_Program_Name for CCG. 6038 * bindusg.adb (Display): Add -G to the command-line usage for 6039 gnatbind. 6040 * opt.ads (Generate_C_Code): Update comment. 6041 * switch-b.adb (Scan_Binder_Switches): Add handling for -G. 6042 60432019-07-03 Arnaud Charlet <charlet@adacore.com> 6044 6045 * sem_ch7.adb (Has_Referencer): Do not consider inlined 6046 subprograms when generating C code, which allows us to generate 6047 static inline subprograms. 6048 60492019-07-03 Justin Squirek <squirek@adacore.com> 6050 6051 * sem_ch6.adb (Check_Conformance): Add expression checking for 6052 constant modifiers in anonymous access types (in addition to 6053 "non-null" types) so that they are considered "matching" for 6054 subsequent conformance tests. 6055 60562019-07-03 Arnaud Charlet <charlet@adacore.com> 6057 6058 * doc/gnat_rm/standard_and_implementation_defined_restrictions.rst: 6059 Clarify wording on No_Multiple_Elaboration. 6060 * gnat_rm.texi: Regenerate. 6061 60622019-07-03 Ed Schonberg <schonberg@adacore.com> 6063 6064 * sem_ch8.adb (Find_Selected_Component): If the prefix is the 6065 current instance of a type or subtype, complete the resolution 6066 of the name by finding the component of the type denoted by the 6067 selector name. 6068 60692019-07-03 Eric Botcazou <ebotcazou@adacore.com> 6070 6071 * doc/gnat_rm/interfacing_to_other_languages.rst (Interfacing to C): 6072 Document that boolean types with convention C now map to C99 bool. 6073 * gnat_rm.texi: Regenerate. 6074 60752019-07-03 Javier Miranda <miranda@adacore.com> 6076 6077 * exp_attr.adb (Expand_Min_Max_Attribute): Code cleanup: 6078 removing code that it is now never executed in the CCG compiler 6079 (dead code). 6080 60812019-07-02 Iain Sandoe <iain@sandoe.co.uk> 6082 6083 * libgnat/system-darwin-ppc.ads: Set Stack_Check_Probes True for 6084 PPC Darwin. 6085 60862019-07-01 Ed Schonberg <schonberg@adacore.com> 6087 6088 * sem_ch12.adb (Is_Defaulted): New predicate in 6089 Check_Formal_Package_Intance, to skip the conformance of checks 6090 on parameters of a formal package that are defaulted, 6091 60922019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6093 6094 * checks.adb, exp_ch9.adb, exp_unst.adb, sem_ch4.adb, 6095 sem_prag.adb, sem_spark.adb: Minor reformatting. 6096 60972019-07-01 Ed Schonberg <schonberg@adacore.com> 6098 6099 * sem_attr.adb (Analyze_Attribute, case Enum_Rep): Allow prefix 6100 of attribute to be an attribute reference of a discrete type. 6101 61022019-07-01 Eric Botcazou <ebotcazou@adacore.com> 6103 6104 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Move up 6105 handling of Has_Pragma_Inline_Always and deal with 6106 Has_Pragma_No_Inline. 6107 61082019-07-01 Ed Schonberg <schonberg@adacore.com> 6109 6110 * sem_ch3.adb (Build_Derived_Record_Type): If the parent type is 6111 declared as a subtype of a private type with an inherited 6112 discriminant constraint, its generated full base appears as a 6113 record subtype, so we need to retrieve its oen base type so that 6114 the inherited constraint can be applied to it. 6115 61162019-07-01 Yannick Moy <moy@adacore.com> 6117 6118 * sem_spark.adb: Completely rework the algorithm for ownership 6119 checking, as the rules in SPARK RM have changed a lot. 6120 * sem_spark.ads: Update comments. 6121 61222019-07-01 Dmitriy Anisimkov <anisimko@adacore.com> 6123 6124 * gsocket.h (Has_Sockaddr_Len): Use the offset of sin_family offset in 6125 the sockaddr_in structure to determine the existence of length field 6126 before the sin_family. 6127 61282019-07-01 Ed Schonberg <schonberg@adacore.com> 6129 6130 * sem_prag.adb (Analyze_Pragma, case Weak_External): Pragma only 6131 applies to entities with run-time addresses, not to types. 6132 61332019-07-01 Piotr Trojanek <trojanek@adacore.com> 6134 6135 * einfo.adb, sem_ch7.adb, sem_prag.adb, sem_util.adb: Update 6136 references to the SPARK RM after the removal of Rule 7.1.4(5). 6137 61382019-07-01 Piotr Trojanek <trojanek@adacore.com> 6139 6140 * sysdep.c: Cleanup references to LynuxWorks in docs and 6141 comments. 6142 61432019-07-01 Ed Schonberg <schonberg@adacore.com> 6144 6145 * checks.adb (Insert_Valid_Check): Do not apply validity check 6146 to variable declared within a protected object that uses the 6147 Lock_Free implementation, to prevent unwarranted constant 6148 folding, because entities within such an object msut be treated 6149 as volatile. 6150 61512019-07-01 Eric Botcazou <ebotcazou@adacore.com> 6152 6153 * exp_ch9.adb (Check_Inlining): Deal with Has_Pragma_No_Inline. 6154 61552019-07-01 Ed Schonberg <schonberg@adacore.com> 6156 6157 * exp_unst.adb (Visit_Node, Check_Static_Type): Improve the 6158 handling of private and incomplete types whose full view is an 6159 access type, to detect additional uplevel references in dynamic 6160 bounds. This is relevant to N_Free_Statement among others that 6161 manipulate types whose full viww may be an access type. 6162 61632019-07-01 Pat Rogers <rogers@adacore.com> 6164 6165 * doc/gnat_rm/representation_clauses_and_pragmas.rst: Correct 6166 size indicated for R as a component of an array. 6167 * gnat_rm.texi: Regenerate. 6168 61692019-07-01 Justin Squirek <squirek@adacore.com> 6170 6171 * libgnat/s-win32.ads: Add definition for ULONG, modify 6172 OVERLAPPED type, and add appropriate pragmas. 6173 61742019-07-01 Bob Duff <duff@adacore.com> 6175 6176 * gnat1drv.adb (gnat1drv): Call Write_ALI if the main unit is 6177 ignored-ghost. 6178 61792019-07-01 Yannick Moy <moy@adacore.com> 6180 6181 * sem_ch4.adb (Operator_Check): Refine error message. 6182 61832019-07-01 Piotr Trojanek <trojanek@adacore.com> 6184 6185 * libgnat/a-calend.ads: Revert "Global => null" contracts on 6186 non-pure routines. 6187 61882019-07-01 Piotr Trojanek <trojanek@adacore.com> 6189 6190 * exp_attr.adb, libgnat/g-graphs.ads: Fix typos in comments: 6191 componant -> component. 6192 61932019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6194 6195 * libgnat/g-graphs.adb: Use type Directed_Graph rather than 6196 Instance in various routines. 6197 * libgnat/g-graphs.ads: Change type Instance to Directed_Graph. 6198 Update various routines that mention the type. 6199 62002019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6201 6202 * libgnat/g-sets.adb: Use type Membership_Set rathern than 6203 Instance in various routines. 6204 * libgnat/g-sets.ads: Change type Instance to Membership_Set. 6205 Update various routines that mention the type. 6206 62072019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6208 6209 * libgnat/g-lists.adb: Use type Doubly_Linked_List rather than 6210 Instance in various routines. 6211 * libgnat/g-lists.ads: Change type Instance to 6212 Doubly_Linked_List. Update various routines that mention the 6213 type. 6214 62152019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6216 6217 * libgnat/g-dynhta.adb: Use type Dynamic_Hash_Table rather than 6218 Instance in various routines. 6219 * libgnat/g-dynhta.ads: Change type Instance to 6220 Dynamic_Hash_Table. Update various routines that mention the 6221 type. 6222 62232019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6224 6225 * exp_attr.adb, exp_ch7.adb, exp_unst.adb, sem_ch3.adb, 6226 sem_util.adb, uintp.adb, uintp.ads: Minor reformatting. 6227 62282019-07-01 Javier Miranda <miranda@adacore.com> 6229 6230 * exp_attr.adb (Expand_Min_Max_Attribute): Disable expansion of 6231 'Min/'Max on integer, enumeration, fixed point and floating 6232 point types since the CCG backend now provides in file 6233 standard.h routines to support it. 6234 62352019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6236 6237 * impunit.adb: Add GNAT.Graphs to list Non_Imp_File_Names_95. 6238 * Makefile.rtl, gcc-interface/Make-lang.in: Register unit 6239 GNAT.Graphs. 6240 * libgnat/g-dynhta.adb: Various minor cleanups (use Present 6241 rather than direct comparisons). 6242 (Delete): Reimplement to use Delete_Node. 6243 (Delete_Node): New routine. 6244 (Destroy_Bucket): Invoke the provided destructor. 6245 (Present): New routines. 6246 * libgnat/g-dynhta.ads: Add new generic formal Destroy_Value. 6247 Use better names for the components of iterators. 6248 * libgnat/g-graphs.adb, libgnat/g-graphs.ads: New unit. 6249 * libgnat/g-lists.adb: Various minor cleanups (use Present 6250 rather than direct comparisons). 6251 (Delete_Node): Invoke the provided destructor. 6252 (Present): New routine. 6253 * libgnat/g-lists.ads: Add new generic formal Destroy_Element. 6254 Use better names for the components of iterators. 6255 (Present): New routine. 6256 * libgnat/g-sets.adb, libgnat/g-sets.ads (Destroy, Preset, 6257 Reset): New routines. 6258 62592019-07-01 Dmitriy Anisimkov <anisimko@adacore.com> 6260 6261 * libgnat/g-sothco.adb (Get_Address): Fix the case when AF_INET6 6262 is not defined. 6263 62642019-07-01 Ed Schonberg <schonberg@adacore.com> 6265 6266 * exp_attr.adb (Expand_Attribute_Reference, case Invalid_Value): 6267 Resolve result of call to Get_Simple_Init_Val, which may be a 6268 conversion of a literal. 6269 62702019-07-01 Hristian Kirtchev <kirtchev@adacore.com> 6271 6272 * freeze.adb (Freeze_Expression): Remove the horrible useless 6273 name hiding of N. Insert the freeze nodes generated by the 6274 expression prior to the expression when the nearest enclosing 6275 scope is transient. 6276 62772019-07-01 Pierre-Marie de Rodat <derodat@adacore.com> 6278 6279 * doc/gnat_ugn/building_executable_programs_with_gnat.rst: Fix 6280 formatting issues in the -gnatR section. 6281 * gnat_ugn.texi: Regenerate. 6282 62832019-06-30 Iain Sandoe <iain@sandoe.co.uk> 6284 6285 * gnatlink.adb (Link_Step): Remove duplicate -static-libgcc switches. 6286 Push -shared-libgcc explicitly, when it is the target default (unless 6287 overidden by the static flag). 6288 When the user has put an instance of shared/static-libgcc do not push 6289 a duplicate of this. 6290 62912019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6292 6293 * gcc-interface/decl.c (gnat_to_gnu_entity): Beep up comment on SAVED, 6294 and tweak comment on the assertion about the scopes of Itypes. Do not 6295 skip the regular processing for Itypes that are E_Record_Subtype with 6296 a Cloned_Subtype. Get the Cloned_Subtype for every E_Record_Subtype 6297 if the type is dummy and hasn't got its own freeze node. 6298 <E_Record_Subtype>: Save again the DECL of the Cloned_Subtype, if any. 6299 <E_Access_Subtype>: Save again the DECL of the equivalent type. 6300 (Gigi_Equivalent_Type) <E_Access_Subtype>: New case. 6301 63022019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6303 6304 * gcc-interface/utils.c (unchecked_convert): Tweak comment. Only skip 6305 dereferences when padding to have the same size on both sides. Do it 6306 for destination types with self-referential size too. 6307 63082019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6309 6310 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the 6311 type requires strict alignment, then set the RM size to the type size. 6312 Rework handling of alignment and sizes of tagged types in ASIS mode. 6313 (validate_size): Rename local variable and remove special handling for 6314 strict-alignment types. 6315 * gcc-interface/utils.c (finish_record_type): Constify local variables 6316 and use properly typed constants. 6317 63182019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6319 6320 * gcc-interface/decl.c (gnat_to_gnu_field): Rework error messages for 6321 fields requiring strict alignment, add explicit test on Storage_Unit 6322 for position and size, and mention type alignment for position. 6323 63242019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6325 6326 * gcc-interface/trans.c (mark_visited_r): Set TYPE_SIZES_GIMPLIFIED on 6327 the main variant of a type, if any. 6328 63292019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6330 6331 * gcc-interface/decl.c (set_nonaliased_component_on_array_type): Add 6332 missing guard for the presence of TYPE_CANONICAL. 6333 (set_reverse_storage_order_on_array_type): Likewise. 6334 63352019-06-29 Eric Botcazou <ebotcazou@adacore.com> 6336 6337 * gcc-interface/gigi.h (make_packable_type): Remove default value. 6338 (value_factor_p): Tweak prototype. 6339 * gcc-interface/decl.c (gnat_to_gnu_entity): Add comment. 6340 (gnat_to_gnu_component_type): Likewise. 6341 (gnat_to_gnu_field): Likewise. Fetch the position of the field earlier 6342 and simplify the condition under which the type is packed. Declare 6343 local variable is_bitfield. Pass 1 as max_align to make_packable_type 6344 if it is set to true. 6345 (copy_and_substitute_in_layout): Pass 0 to make_packable_type. 6346 * gcc-interface/utils.c (make_packable_array_type): New function. 6347 (make_packable_type): Use it to rewrite the type of array field. 6348 (maybe_pad_type): Pass align parameter to make_packable_type. 6349 (create_field_decl): Minor tweaks. 6350 (value_factor_p): Assert that FACTOR is a power of 2 and replace the 6351 modulo computation by a masking operation. 6352 63532019-06-25 Eric Botcazou <ebotcazou@adacore.com> 6354 6355 * gcc-interface/decl.c (gnat_to_gnu_entity): Remove superfluous test 6356 in previous change. 6357 * gcc-interface/gigi.h (maybe_character_type): Fix formatting. 6358 (maybe_character_value): Likewise. 6359 63602019-06-24 Jan Hubicka <jh@suse.cz> 6361 6362 * gcc-interface/decl.c (gnat_to_gnu_entity): Check that 6363 type is array or integer prior checking string flag. 6364 * gcc-interface/gigi.h (maybe_character_type): Likewise. 6365 (maybe_character_value): Likewise. 6366 63672019-06-24 Martin Sebor <msebor@redhat.com> 6368 6369 * gcc-interface/utils.c (handle_nonnull_attribute): Quote attribute 6370 name. 6371 63722019-06-18 Arnaud Charlet <charlet@adacore.com> 6373 6374 PR ada/80590 6375 * sem_ch5.adb (Analyze_Loop_Statement): Avoid exception propagation 6376 during normal processing. 6377 63782019-06-17 Arnaud Charlet <charlet@adacore.com> 6379 6380 PR ada/80590 6381 * exp_ch9.adb (Expand_N_Delay_Relative_Statement): Swap the two 6382 conditions to avoid a unnecessary exception propagation in the default 6383 case. 6384 63852019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6386 6387 * gcc-interface/utils.c (handle_stack_protect_attribute): Move around. 6388 63892019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6390 6391 * doc/gnat_rm/implementation_defined_pragmas.rst (Machine_Attribute): 6392 Document additional optional parameters. 6393 * sem_prag.adb (Analyze_Pragma) <Pragma_Machine_Attribute>: Accept 6394 more than one optional parameter. 6395 * gcc-interface/decl.c (prepend_one_attribute_pragma): Alphabetize 6396 the list of supported pragmas. Simplify the handling of parameters 6397 and add support for more than one optional parameter. 6398 * gcc-interface/utils.c (attr_cold_hot_exclusions): New constant. 6399 (gnat_internal_attribute_table): Add entry for no_icf, noipa, flatten, 6400 used, cold, hot, target and target_clones. 6401 (begin_subprog_body): Do not create the RTL for the subprogram here. 6402 (handle_noicf_attribute): New static function. 6403 (handle_noipa_attribute): Likewise. 6404 (handle_flatten_attribute): Likewise. 6405 (handle_used_attribute): Likewise. 6406 (handle_cold_attribute): Likewise. 6407 (handle_hot_attribute): Likewise. 6408 (handle_target_attribute): Likewise. 6409 (handle_target_clones_attribute): Likewise. 6410 64112019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6412 6413 * gcc-interface/trans.c (lvalue_required_for_attribute_p): Return 0 6414 for 'Size too. 6415 (Identifier_to_gnu): Use the actual subtype for a reference to a 6416 packed array in a return statement. 6417 (Attribute_to_gnu) <Attr_Size>: Do not strip VIEW_CONVERT_EXPRs from 6418 the prefix in every case. 6419 64202019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6421 6422 * gcc-interface/trans.c (gnat_to_gnu): Remove superfluous tests on 6423 Backend_Overflow_Checks_On_Target and rework comments. 6424 64252019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6426 6427 * gcc-interface/trans.c (walk_nesting_tree): New static function. 6428 (finalize_nrv): Use it to walk the entire nesting tree. 6429 64302019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6431 6432 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Remove 6433 obsolete test on Is_For_Access_Subtype. 6434 64352019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6436 6437 * gcc-interface/decl.c (components_to_record): Set a name on the type 6438 created for the REP part, if any. 6439 * gcc-interface/utils.c (finish_record_type): Only take the maximum 6440 when merging sizes for a variant part at offset 0. 6441 (merge_sizes): Rename has_rep parameter into max. 6442 64432019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6444 6445 * gcc-interface/utils.c (gnat_internal_attribute_table): Add support 6446 for stack_protect attribute. 6447 (handle_stack_protect_attribute): New static function. 6448 64492019-05-28 Eric Botcazou <ebotcazou@adacore.com> 6450 6451 * gcc-interface/decl.c (intrin_arglists_compatible_p): Do not return 6452 false if the internal builtin uses a variable list. 6453 64542019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6455 6456 * gcc-interface/trans.c (Call_to_gnu): Do not initialize the temporary 6457 created out of addressability concerns if it's for the _Init parameter 6458 of an initialization procedure. 6459 64602019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6461 6462 * gcc-interface/ada-builtin-types.def: New file. 6463 * gcc-interface/ada-builtins.def: Likewise. 6464 * gcc-interface/ada-tree.h (BUILT_IN_LIKELY): New macro. 6465 (BUILT_IN_UNLIKELY): Likewise. 6466 * gcc-interface/trans.c (independent_iterations_p): Initialize the 6467 auto-vector to 16 elements. 6468 (Call_to_gnu): Remove local variable and change the vector of actual 6469 parameters to an auto-vector. Do not convert actual parameters to 6470 the argument type for front-end built-in functions. Add support for 6471 front-end built-in functions. 6472 (build_noreturn_cond): Use internal instead of built-in function. 6473 * gcc-interface/utils.c (c_builtin_type): Include ada-builtin-types.def 6474 (install_builtin_function_types): Likewise. 6475 (install_builtin_functions): Include ada-builtins.def first. 6476 64772019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6478 6479 * gcc-interface/utils.c (maybe_pad_type): Issue the warning for the 6480 specific case of component types preferably. 6481 64822019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6483 6484 * gcc-interface/trans.c (Identifier_to_gnu): Minor tweaks. 6485 (gnat_to_gnu): Do not convert the result if it is a reference to an 6486 unconstrained array used as the prefix of an attribute reference that 6487 requires an lvalue. 6488 64892019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6490 6491 * gcc-interface/trans.c (Gigi_Types_Compatible): New predicate. 6492 (Identifier_to_gnu): Use it to assert that the type of the identifier 6493 and that of its entity are compatible for gigi. Rename a couple of 6494 local variables and separate the processing of the result type. 6495 64962019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6497 6498 * gcc-interface/trans.c (Call_to_gnu): Use the unpadded type when 6499 putting back an intermediate conversion the type of the actuals. 6500 65012019-05-27 Eric Botcazou <ebotcazou@adacore.com> 6502 6503 * gcc-interface/trans.c (gnat_to_gnu) <Shift operations>: Convert the 6504 count to the unsigned version of its base type before proceeding. 6505 65062019-05-16 Martin Sebor <msebor@redhat.com> 6507 6508 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Quote 6509 reserved names. 6510 65112019-05-08 Arnaud Charlet <charlet@adacore.com> 6512 6513 * standard.ads.h: New file. 6514 65152019-05-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6516 6517 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. 6518 Honor DESTDIR. 6519 65202019-04-29 Michael K. Darling <darlingm@gmail.com> 6521 6522 * gnatvsn.ads: Bump Library_Version to 10. 6523 65242019-04-24 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com> 6525 Bernd Edlinger <bernd.edlinger@hotmail.de> 6526 Jakub Jelinek <jakub@redhat.com> 6527 6528 PR target/89093 6529 * raise-gcc.c (TARGET_ATTRIBUTE): Define. 6530 (continue_unwind, personality_body, PERSONALITY_FUNCTION): Add 6531 TARGET_ATTRIBUTE. 6532 65332019-04-07 Eric Botcazou <ebotcazou@adacore.com> 6534 6535 * libgnat/i-cexten.ads (CFloat_128): New type. 6536 65372019-03-22 Dmitriy Anisimkov <anisimko@adacore.com> 6538 6539 PR ada/89583 6540 * libgnat/g-socket.adb (Bind_Socket, Connect_Socket, 6541 Send_Socket): Fix the computation of structure lengths passed to 6542 low level routines. 6543 (Is_IPv6_Address): Fix the number of expected colons. 6544 65452019-03-11 Martin Liska <mliska@suse.cz> 6546 6547 * gcc-interface/misc.c (gnat_post_options): Wrap option name in string 6548 format message and fix GNU coding style. 6549 65502019-02-08 Eric Botcazou <ebotcazou@adacore.com> 6551 6552 * gcc-interface/trans.c (gnat_to_gnu) <N_Aggregate>: Minor tweak. 6553 * gcc-interface/utils.c (convert): Do not pad when doing an unchecked 6554 conversion here. Use TREE_CONSTANT throughout the function. 6555 (unchecked_convert): Also pad if the source is a CONSTRUCTOR and the 6556 destination is a more aligned array type or a larger aggregate type, 6557 but not between original and packable versions of a type. 6558 65592019-02-08 Eric Botcazou <ebotcazou@adacore.com> 6560 6561 * gcc-interface/utils.c (max_size) <tcc_unary>: Be prepared for an 6562 operand with VOID_TYPE. 6563 65642019-02-08 Eric Botcazou <ebotcazou@adacore.com> 6565 6566 * gcc-interface/trans.c (elaborate_all_entities): Do not elaborate the 6567 entities of a package renaming another one. 6568 65692019-02-08 Eric Botcazou <ebotcazou@adacore.com> 6570 6571 * gcc-interface/trans.c (Regular_Loop_to_gnu): Replace tests on 6572 individual flag_unswitch_loops and flag_tree_loop_vectorize switches 6573 with test on global optimize switch. 6574 (Raise_Error_to_gnu): Likewise. 6575 65762019-02-07 Eric Botcazou <ebotcazou@adacore.com> 6577 6578 * libgnarl/s-linux__sparc.ads (ETIMEDOUT): Set to correct value. 6579 65802019-02-06 Arnaud Charlet <charlet@adacore.com> 6581 6582 * libgnarl/s-linux__x32.ads: Resync list of signals with s-linux.ads 6583 65842019-01-27 Eric Botcazou <ebotcazou@adacore.com> 6585 6586 * repinfo.adb (List_Component_Layout): Remove superfluous space for 6587 zero-sized field. 6588 * gcc-interface/ada-tree.h (TYPE_IS_EXTRA_SUBTYPE_P): New macro. 6589 * gcc-interface/gigi.h (create_extra_subtype): Declare. 6590 * gcc-interface/decl.c (TYPE_ARRAY_SIZE_LIMIT): Likewise. 6591 (update_n_elem): New function. 6592 (gnat_to_gnu_entity): Use create_extra_subtype to create extra subtypes 6593 instead of doing it manually. 6594 <E_Array_Type>: Use update_n_elem to compute the maximum size. Use the 6595 index type instead of base type for the bounds. Set TYPE_ARRAY_MAX_SIZE 6596 of the array to the maximum size. 6597 <E_Array_Subtype>: Create an extra subtype using the index type of the 6598 base array type for self-referential bounds. Use update_n_elem to 6599 compute the maximum size. Set TYPE_ARRAY_MAX_SIZE of the array to the 6600 maximum size. 6601 (gnat_to_gnu_field): Clear DECL_NONADDRESSABLE_P on discriminants. 6602 * gcc-interface/misc.c (gnat_get_alias_set): Return the alias set of 6603 the base type for an extra subtype. 6604 (gnat_type_max_size): Remove obsolete code. 6605 * gcc-interface/trans.c (Attribute_to_gnu): Minor tweak. 6606 (can_be_lower_p): Deal with pathological types. 6607 * gcc-interface/utils.c (create_extra_subtype): New function. 6608 (create_field_decl): Minor tweak. 6609 (max_size) <tcc_reference>: Compute a better value by using the extra 6610 subtypes on the self-referential bounds. 6611 <tcc_binary>: Rewrite. Deal with "negative value" in unsigned types. 6612 <tcc_expression>: Likewise. 6613 * gcc-interface/utils2.c (compare_arrays): Retrieve the original bounds 6614 of the arrays upfront. Swap only if the second length is not constant. 6615 Use comparisons on the original bounds consistently for the null tests. 6616 (build_binary_op): Use TYPE_IS_EXTRA_SUBTYPE_P macro. 6617 (build_allocator): Minor tweak. 6618 66192019-01-27 Eric Botcazou <ebotcazou@adacore.com> 6620 6621 * gcc-interface/decl.c (array_type_has_nonaliased_component): Return 6622 the same value for every dimension of a multidimensional array type. 6623 66242019-01-26 Eric Botcazou <ebotcazou@adacore.com> 6625 6626 * gcc-interface/trans.c (Regular_Loop_to_gnu): Use the SLOC of the 6627 iteration scheme, if present, throughout the translation. 6628 66292019-01-26 Eric Botcazou <ebotcazou@adacore.com> 6630 6631 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use 6632 DECL_SIZE_UNIT instead of TYPE_SIZE_UNIT for the size to be assigned 6633 by a call to memset if the LHS is a DECL. 6634 66352019-01-26 Eric Botcazou <ebotcazou@adacore.com> 6636 6637 * gcc-interface/trans.c (struct loop_info_d): Remove artificial field. 6638 (Loop_Statement_to_gnu): Do not set it. 6639 66402019-01-26 Eric Botcazou <ebotcazou@adacore.com> 6641 6642 * gcc-interface/trans.c (Iterate_Acc_Clause_Arg): Fix formatting. 6643 (Acc_gnat_to_gnu): Likewise. 6644 (Acc_Data_to_gnu): Likewise. 6645 (Acc_Var_to_gnu): Likewise. 6646 (Acc_Reduc_to_gnu): Likewise. 6647 (Acc_Size_List_to_gnu): Likewise. 6648 (Pragma_to_gnu) <Pragma_Acc_Loop>: Likewise. 6649 <Pragma_Acc_Data>): Likewise. 6650 (find_loop_for): Remove default value for parameters. 6651 * gcc-interface/trans.c (gnat_to_gnu) <N_Op_And>: Merge into... 6652 <N_Op_Eq>): ...this. 6653 66542019-01-26 Eric Botcazou <ebotcazou@adacore.com> 6655 6656 * gcc-interface/decl.c (annotate_value) <INTEGER_CST>: Use test on 6657 the sign bit instead of on the sign of the value. 6658 <PLUS_EXPR>: Turn addition of negative constant into subtraction. 6659 <MULT_EXPR>: Add test for degenerate case. 6660 <BIT_AND_EXPR>: Simplify. 6661 66622019-01-18 Sebastian Huber <sebastian.huber@embedded-brains.de> 6663 6664 * s-oscons-tmplt.c (AF_INET6): Do not undefine for RTEMS. 6665 66662019-01-09 Sandra Loosemore <sandra@codesourcery.com> 6667 6668 PR other/16615 6669 * exp_ch11.adb: Change "can not" to "cannot". 6670 * sem_ch4.adb: Likewise. 6671 66722019-01-09 Sandra Loosemore <sandra@codesourcery.com> 6673 6674 PR other/16615 6675 * exp_ch9.adb: Mechanically replace "can not" with "cannot". 6676 * libgnat/s-regpat.ads: Likewise. 6677 * par-ch4.adb: Likewise. 6678 * set_targ.adb: Likewise. 6679 * types.ads: Likewise. 6680 66812019-01-08 Justin Squirek <squirek@adacore.com> 6682 6683 Revert: 6684 2018-07-31 Justin Squirek <squirek@adacore.com> 6685 6686 * lib-writ.adb (Write_With_Lines): Modfiy the generation 6687 of dependencies within ali files so that source unit 6688 bodies are properly listed even if said bodies are 6689 missing. Perform legacy behavior in GNATprove mode. 6690 * lib-writ.ads: Modify documentation to reflect current 6691 behavior. 6692 6693 and: 6694 2018-09-26 Justin Squirek <squirek@adacore.com> 6695 6696 * lib-writ.adb, lib-writ.ads (Write_With_Lines): Add 6697 documentation and an extra conditional check for RCI 6698 units so that generated ali files will list the spec 6699 only instead of a body when a body is not found. 6700 67012019-01-04 Eric Botcazou <ebotcazou@adacore.com> 6702 6703 * gnatvsn.ads: Bump copyright year. 6704 67052019-01-01 Jakub Jelinek <jakub@redhat.com> 6706 6707 Update copyright years. 6708 6709 * gnat_ugn.texi: Bump @copying's copyright year. 6710 * gnat_rm.texi: Likewise. 6711 6712Copyright (C) 2019 Free Software Foundation, Inc. 6713 6714Copying and distribution of this file, with or without modification, 6715are permitted in any medium without royalty provided the copyright 6716notice and this notice are preserved. 6717