12014-12-22 Eric Botcazou <ebotcazou@adacore.com> 2 3 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_{Min,Max}>: If the 4 type is a floating-point type, implement the semantics of the C99 5 f{min,max} routines with regard to NaNs. 6 (gnat_to_gnu): Call builtin_decl_implicit. 7 * gcc-interface/utils2.c (compare_arrays): Adjust comments. 8 92014-12-22 Eric Botcazou <ebotcazou@adacore.com> 10 11 * gcc-interface/decl.c (gnat_to_gnu_field): Post the error message 12 for parent overlapping on the position instead of on the first bit. 13 For a field that needs strict alignment, issue the error for the 14 position first and, for the size, issue an error if it is too large 15 only for the atomic and aliased cases. Issue a specific error if 16 the size is not a multiple of a byte in the volatile and the strict 17 alignment cases. 18 192014-12-22 Eric Botcazou <ebotcazou@adacore.com> 20 21 * gcc-interface/decl.c (check_ok_for_atomic): Rename into... 22 (check_ok_for_atomic_type): ...this. When checking the mode, also 23 check that the type is sufficient aligned. Remove useless code and 24 tidy up implementation. 25 (gnat_to_gnu_entity): Adjust to above renaming. 26 (gnat_to_gnu_component_type): Likewise. 27 (gnat_to_gnu_field): Likewise. 28 292014-12-17 Pierre-Marie de Rodat <derodat@adacore.com> 30 31 * gcc-interface/misc.c (gnat_get_array_descr_info): New. Use it for 32 the get_array_descr_info lang-hook. Use it to tune the DWARF output 33 for array types. 34 352014-11-24 Eric Botcazou <ebotcazou@adacore.com> 36 37 * gcc-interface/Makefile.in (Cygwin/Mingw): Fix previous change. 38 392014-11-24 Eric Botcazou <ebotcazou@adacore.com> 40 41 * gcc-interface/trans.c (build_return_expr): Use INIT_EXPR instead of 42 MODIFY_EXPR to assign to the return object. 43 (finalize_nrv_r): Adjust to above change. 44 (finalize_nrv_unc_r): Likewise. 45 462014-11-24 Eric Botcazou <ebotcazou@adacore.com> 47 48 * gcc-interface/trans.c (push_range_check_info): Replace early test 49 with assertion. 50 (Raise_Error_to_gnu): Do not call push_range_check_info if the loop 51 stack is empty. 52 * gcc-interface/utils.c (convert_to_fat_pointer): Fix formatting. 53 * gcc-interface/utils2.c (gnat_invariant_expr): Deal with padded types 54 and revert latest change. 55 562014-11-22 Eric Botcazou <ebotcazou@adacore.com> 57 58 * gcc-interface/trans.c (Call_to_gnu): Strip unchecked conversions on 59 actuals of In parameters if the destination type is an unconstrained 60 composite type. 61 622014-11-22 Eric Botcazou <ebotcazou@adacore.com> 63 64 * gcc-interface/trans.c (gnat_gimplify_expr): Add 'type' variable. 65 <case NULL_EXPR>: Deal with unconstrained array types and use 'type'. 66 <case ADDR_EXPR>: Use 'type'. 67 <case DECL_EXPR>: Likewise. 68 692014-11-20 Trevor Saunders <tsaunders@mozilla.com> 70 71 * gcc-interface/decl.c (annotate_value_cache): Replace htab with 72 hash_table. 73 (annotate_value): Adjust. 74 (init_gnat_decl): Likewise. 75 (destroy_gnat_decl): Likewise. 76 * gcc-interface/utils.c (pad_type_hash_table): Replace htab with 77 hash_table. 78 (init_gnat_utils): Adjust. 79 (destroy_gnat_utils): Likewise. 80 (lookup_and_insert_pad_type): Likewise. 81 822014-11-20 Arnaud Charlet <charlet@adacore.com> 83 84 PR ada/63931 85 * gnatvsn.ads (Library_Version): Switch to "5". 86 872014-11-20 Thomas Quinot <quinot@adacore.com> 88 89 * freeze.adb (Freeze_Entity): Do not reset Is_True_Constant 90 for aliased constant objects. 91 922014-11-20 Robert Dewar <dewar@adacore.com> 93 94 * exp_util.adb (Following_Address_Clause): Use new Name_Table 95 boolean flag set by parser to avoid the search if there is no 96 address clause anywhere for the name. 97 * namet.adb (Name_Enter): Initialize Boolean_Info flag 98 (Name_Find): ditto (Reinitialize): ditto (Get_Name_Table_Boolean): 99 New function (Set_Name_Table_Boolean): New procedure 100 * namet.ads: Add and document new Boolean field in name table 101 (Get_Name_Table_Boolean): New function. 102 (Set_Name_Table_Boolean): New procedure. 103 * par-ch13.adb (P_Representation_Clause): Set Name_Table boolean 104 flag for an identifier name if we detect an address clause or 105 use-at clause for the identifier. 106 * sem_ch3.adb (Analyze_Object_Declaration): Remove comment about 107 Following_Address_Clause since this function is now optimized 108 and is not a performance concern. 109 * sem_prag.adb (Analyze_Pragma, case Elaborate): In SPARK 110 mode, pragma Elaborate is now allowed, but does not suppress 111 elaboration checking. 112 1132014-11-20 Jerome Lambourg <lambourg@adacore.com> 114 115 * gcc-interface/Makefile.in: Add some support for VxWorks7. 116 1172014-11-20 Thomas Quinot <quinot@adacore.com> 118 119 * sem_ch13.adb, freeze.adb: Minor reformatting. 120 * gnat_rm.texi: Minor editing. 121 1222014-11-20 Robert Dewar <dewar@adacore.com> 123 124 * sem_prag.adb (Analyze_Pragma): Minor reformatting. 125 (Process_Suppress_Unsuppress): Ignore suppress Elaboration_Check 126 in SPARK. 127 1282014-11-20 Bob Duff <duff@adacore.com> 129 130 * gnat_rm.texi: Correction to documentation of 131 'Unrestricted_Access in case of access to unconstrained array. 132 * a-cofove.adb (Capacity): Fix bug -- was always 133 returning Capacity_Range'Last. 134 (Is_Sorted): Fix bug -- was always returning True, because 135 Container.Last = Last. That test isn't even needed, because the 136 loop will go around zero times in that case, so deleted that 137 test rather than fixing it. 138 (Reverse_Elements): Make sure to use the correct array bounds. 139 1402014-11-20 Ed Schonberg <schonberg@adacore.com> 141 142 * sem_ch12.adb (Analyze_Associations): In GNATProve mode, build 143 wrappers for functions and operators that are actuals only if 144 expander is enabled. Wrappers play no role within a generic unit. 145 1462014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 147 148 * sem_util.adb (Policy_In_Effect): Use the 149 configuration level assertion flag. 150 1512014-11-20 Arnaud Charlet <charlet@adacore.com> 152 153 * s-parame-ae653.ads: Update comments. 154 1552014-11-20 Robert Dewar <dewar@adacore.com> 156 157 * types.ads, einfo.ads: Minor reformatting. 158 * sem_elab.adb (Check_A_Call): Add guard for reference to Alias 159 for variable case. 160 1612014-11-20 Bob Duff <duff@adacore.com> 162 163 * a-cofove.adb (Elems,Elemsc): Use access-to-constrained arrays 164 instead of access-to-unconstrained, because the latter doesn't 165 work with 'Unrestricted_Access when the result is returned from 166 a function. 167 * a-cofove.ads (Vector): Move the discriminant-dependent array 168 after the other components for efficiency. Otherwise the compiler 169 will generate a lot of code to calculate the offset of the other 170 components every time they're accessed. 171 1722014-11-20 Olivier Hainque <hainque@adacore.com> 173 174 * opt.ads: Fix comment on Generate_SCO_Instance_Table wrt when 175 it is set to true. 176 1772014-11-20 Ed Schonberg <schonberg@adacore.com> 178 179 * exp_ch3.adb (Expand_N_Object_Declaration): Handle properly 180 a type invariant check on an object with default initialization 181 and an address clause. 182 1832014-11-20 Robert Dewar <dewar@adacore.com> 184 185 * sem_elab.adb (Check_A_Call): Handle variable ref case in 186 SPARK (Check_Elab_Call): ditto (Find_Elab_Reference): ditto 187 (Get_Referenced_Ent): ditto. 188 * sem_elab.ads: Comment fixes to account for the fact that we 189 now deal with variable references in SPARK mode. 190 * sem_res.adb (Resolve_Entity_Name): In SPARK_Mode Call 191 Check_Elab_Call for variable. 192 1932014-11-20 Yannick Moy <moy@adacore.com> 194 195 * a-cofove.ads (Copy): Fix precondition, which should allow 196 Capacity = 0. 197 (First_To_Previous, Current_To_Last): Add necessary preconditions. 198 1992014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 200 201 * exp_ch3.adb (Build_Initialization_Call): Reimplement the 202 circuitry which extraacts the [underlying] full view of a 203 private type to handle a case where the private type acts as a 204 generic actual. 205 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Inherit the 206 loop label form the original loop regardless of whether it came 207 from source. 208 * sem_attr.adb (Analyze_Attribute): When taking 'Access of an 209 expression function with a generated body that has not been 210 analyzed yet, analyze the body to freeze the expression. 211 * sem_util.adb (Set_Public_Status_Of): New routine. 212 (Transfer_Entities): Handle the case where a private type with 213 an internally generated full view is being transfered and update 214 its full view. 215 2162014-11-20 Vincent Celier <celier@adacore.com> 217 218 * prj-nmsc.adb (Check_Object): If a unit is in a multi-source 219 file, its object file is never the same as any other unit. 220 2212014-11-20 Bob Duff <duff@adacore.com> 222 223 * s-taskin.adb (Initialize_ATCB): Take into 224 account the fact that the domain of the activator can be null 225 if we're initializing a foreign task. 226 2272014-11-20 Robert Dewar <dewar@adacore.com> 228 229 * sem_ch12.adb: Minor reformatting. 230 2312014-11-20 Jerome Lambourg <lambourg@adacore.com> 232 233 * s-osinte-vxworks.ads: Add comments. Minor reformatting. 234 2352014-11-20 Yannick Moy <moy@adacore.com> 236 237 * sem_prag.adb, sem_elab.adb: Minor rewording of error message in 238 SPARK mode, for consistency. 239 2402014-11-20 Vasiliy Fofanov <fofanov@adacore.com> 241 242 * gnat_ugn.texi: New section on gnattest stubbing. Minor 243 reformatting. 244 2452014-11-20 Jerome Lambourg <lambourg@adacore.com> 246 247 * s-taprop-vxworks.adb (Create_Task): Fix thread comparison. 248 Minor reformatting. 249 2502014-11-20 Robert Dewar <dewar@adacore.com> 251 252 * s-tassta.adb, exp_aggr.adb, s-taskin.adb, exp_strm.adb: Minor 253 reformatting. 254 * comperr.adb (Compiler_Abort): New wording for bug box. 255 * par-ch13.adb: Minor reformatting. 256 * par-ch3.adb (P_Identifier_Declarations): Handle aspect 257 specifications given before initialization expression in object 258 declaration cleanly. 259 * gnat1drv.adb (Adjust_Global_Switches): Make sure static 260 elaboration mode is set if we are operating in SPARK mode. 261 * sem_ch12.adb (Analyze_Package_Instantiation): Make 262 sure static elab mode is set if we are in SPARK mode. 263 (Analyze_Subprogram_Instantiation): ditto. 264 (Set_Instance_Env): ditto. 265 * sem_elab.adb (Check_A_Call): In SPARK mode, we require 266 Elaborate_All in the case of a call during elaboration to a 267 subprogram in another unit. 268 2692014-11-20 Ed Schonberg <schonberg@adacore.com> 270 271 * inline.adb (Can_Split_Unconstrained_Function, 272 Build_Procedure): Copy parameter type rather than creating 273 reference to the entity, to capture class-wide reference, whose 274 name is not retrieved by visibility. 275 2762014-11-20 Arnaud Charlet <charlet@adacore.com> 277 278 * s-taspri-solaris.ads: Replace 64 by long_long_integer'size. 279 2802014-11-20 Olivier Hainque <hainque@adacore.com> 281 282 * init.c (__gnat_map_signal for VxWorks): Use a common mapping 283 scheme for VxWorks version >= 6, instead of falling back to the 284 vx5 scheme for versions > 6. 285 2862014-11-20 Ed Schonberg <schonberg@adacore.com> 287 288 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Use 289 base type when constructing subtype indication for constrained 290 target object. 291 2922014-11-20 Jose Ruiz <ruiz@adacore.com> 293 294 * projects.texi: Minor spelling fix. 295 2962014-11-20 Bob Duff <duff@adacore.com> 297 298 * gnat_ugn.texi: Add doc for --split-line-before-op switch in gnatpp. 299 3002014-11-20 Vincent Celier <celier@adacore.com> 301 302 * prj-attr.adb (Register_New_Package): Allow the registration 303 of an already unknown package and make it known. 304 3052014-11-20 Trevor Saunders <tsaunders@mozilla.com> 306 307 * gcc-interface/decl.c, gcc-interface/utils.c: replace htab with 308 hash_table. 309 3102014-11-20 Robert Dewar <dewar@adacore.com> 311 312 * sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma 313 Elaborate in SPARK mode. 314 3152014-11-20 Bob Duff <duff@adacore.com> 316 317 * s-taskin.adb, s-tassta.adb (Initialize_ATCB): If Domain 318 is null, then initialize T.Common.Domain to that of the 319 activating task (not the parent task!), as required by RM-D.16.1. 320 T.Common.Domain should never be null; so Assert. Remove similar 321 code from Create_Task in s-tassta.adb. 322 * s-mudido-affinity.adb: Remove checks for Domain = null, 323 because it can't be null. 324 * s-taskin.ads, s-taspri-dummy.ads, s-taspri-mingw.ads, 325 s-taspri-posix.ads, s-taspri-posix-noaltstack.ads, 326 s-taspri-solaris.ads, s-taspri-vxworks.ads: Mark limited types as 327 explicitly limited for clarity. 328 3292014-11-20 Ed Schonberg <schonberg@adacore.com> 330 331 * exp_aggr.adb (Init_Hidden_Discriminants): Code clean up. 332 3332014-11-20 Robert Dewar <dewar@adacore.com> 334 335 * errout.adb (Error_Msg): Don't suppress continuation msgs for 336 run-time files. 337 * sem_prag.adb (Analyze_Pragma, case Elaborate): Forbid pragma 338 Elaborate in SPARK mode. 339 3402014-11-20 Yannick Moy <moy@adacore.com> 341 342 * gnat_rm.texi: Update GNAT RM with rule about expressions in 343 Update attribute. 344 3452014-11-20 Thomas Quinot <quinot@adacore.com> 346 347 * g-socket.adb (To_Host_Entry): Guard against case of a 348 non-AF_INET entry. 349 3502014-11-20 Vadim Godunko <godunko@adacore.com> 351 352 * a-strunb-shared.adb (To_Unbounded_String): Use shared empty 353 object to construct return value when source string is empty or 354 requested length is zero. 355 * a-stwiun-shared.adb (To_Unbounded_Wide_String): Likewise. 356 * a-stzunb-shared.adb (To_Unbounded_Wide_Wide_String): Likewise. 357 3582014-11-20 Yannick Moy <moy@adacore.com> 359 360 * a-cfhase.adb, a-cfinve.adb, a-cforma.adb, a-cfhama.adb, a-cforse.adb, 361 a-cofove.adb: Skip CodePeer analysis on body of all formal containers. 362 3632014-11-20 Arnaud Charlet <charlet@adacore.com> 364 365 * adaint.c: Fix typo. 366 * exp_util.adb (Make_Subtype_From_Expr): Complete previous change, 367 generate constant values. 368 * sem_eval.adb (Decompose_Expr): Fix latent bug leading to a wrong 369 evaluation to '0' of some unknown values. 370 3712014-11-20 Robert Dewar <dewar@adacore.com> 372 373 * repinfo.adb (List_Record_Info): Do not list discriminant in 374 unchecked union. 375 * sem_ch13.adb (Has_Good_Profile): Minor reformatting 376 (Analyze_Stream_TSS_Definition): Minor reformatting 377 (Analyze_Record_Representation_Clause): Do not issue warning 378 for missing rep clause for discriminant in unchecked union. 379 3802014-11-20 Vadim Godunko <godunko@adacore.com> 381 382 * a-strunb-shared.adb, a-stwiun-shared.adb, a-stzunb-shared.adb 383 ("&") Use already computed value of data length to call allocation 384 subprogram. 385 3862014-11-20 Ed Schonberg <schonberg@adacore.com> 387 388 * exp_ch6.adb (Expand_Call, Inlined_Subprogram): Do not suppress 389 debugging information for a call to a predefined unit, if the 390 call comes from source and the unit is in the Ada hierarchy. 391 3922014-11-20 Bob Duff <duff@adacore.com> 393 394 * s-mudido.ads: Update signature of Create and Get_Last_CPU. Add 395 CPU_Set, another Create, and Get_CPU_Set. 396 * s-mudido.adb: Corresponding changes to the spec. New 397 operations just raise an exception. Also minor cleanup: use 398 raise_expressions. 399 * s-mudido-affinity.adb: Implementations of new operations from 400 * s-mudido.ads, for the platforms that actually support processor 401 affinity. The new Create (which takes a set) now does all the 402 work; the old Create (which takes a range) now just calls the 403 new one. Change error messages to reflect the fact that it's an 404 arbitrary set, not just a range. 405 4062014-11-20 Robert Dewar <dewar@adacore.com> 407 408 * exp_attr.adb: Minor reformatting. 409 4102014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 411 412 * exp_util.adb (Make_Subtype_From_Expr): Capture the bounds of 413 all index constracts when the expression is of an array type. 414 4152014-11-20 Bob Duff <duff@adacore.com> 416 417 * s-taskin.ads: Minor comment improvements. 418 4192014-11-20 Bob Duff <duff@adacore.com> 420 421 * exp_ch9.adb: Minor comment fixes. 422 * s-taskin.adb (Initialize): Small simplification: pass System_Domain 423 to Initialize_ATCB instead of passing null and then setting the Domain 424 to System_Domain. This requires moving the creation of System_Domain 425 earlier. 426 * s-taprop-linux.adb (Set_Task_Affinity): Only call CPU_SET for 427 processors that have a True in the Domain. This is necessary if the 428 Domain is not all-True values. 429 4302014-11-20 Ed Schonberg <schonberg@adacore.com> 431 432 * sem_ch13.adb (Has_Good_Profile): a) An stream attribute 433 for the class-wide type of an interface type is not a primitive 434 operation and is not subject to the restrictions of 13.13. (38/3). 435 b) A stream operation for an interface type must be a null 436 procedure, and it cannot be a function. 437 4382014-11-20 Bob Duff <duff@adacore.com> 439 440 * exp_attr.adb (Attribute_Max_Size_In_Storage_Elements): 441 Eliminate 'Class references from the tree, because gigi crashes on 442 'Class. Also, don't check Nkind (Attr) -- it is known to be 443 N_Attribute_Reference. Assert that instead. 444 4452014-11-20 Bob Duff <duff@adacore.com> 446 447 * debug.adb: Minor comment fix. 448 4492014-11-20 Arnaud Charlet <charlet@adacore.com> 450 451 * a-ciorma.adb: Minor update: move pragma Annotate up. 452 * a-cfdlli.adb: Skip codepeer analysis on this body. 453 4542014-11-20 Robert Dewar <dewar@adacore.com> 455 456 * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): 457 Allow use of this pragma with generic unit (package or subprogram). 458 * gnat_rm.texi: Clarify that pragma No_Elaboration_Code_All can 459 be applied to generics. 460 4612014-11-20 Ed Schonberg <schonberg@adacore.com> 462 463 * sem_aggr.adb (Valid_Limited_Ancestor): Ancestor part of 464 extension aggregate can itself be an extension aggregate, as 465 well as a call that is rewritten as a reference. 466 4672014-11-20 Eric Botcazou <ebotcazou@adacore.com> 468 469 * inline.adb (Add_Inlined_Subprogram): Insert all programs 470 generated as a body or whose declaration was provided along with 471 the body. 472 4732014-11-20 Javier Miranda <miranda@adacore.com> 474 475 * sem.adb (Semantics): Disable expansion if we are compiling a 476 separate unit under configurable runtime. By default separate 477 units are compiled with expansion disabled but under configurable 478 runtime we enable the expansion to get error messages about 479 missing entities. 480 4812014-11-20 Robert Dewar <dewar@adacore.com> 482 483 * sem_ch13.adb: Minor reformatting. 484 * exp_util.adb (Following_Address_Clause): Handle case of 485 package private part. 486 4872014-11-20 Arnaud Charlet <charlet@adacore.com> 488 489 * a-cdlili.adb, a-cihama.adb, a-coinve.adb, a-cusyqu.adb, a-ciorse.adb, 490 a-coorma.adb, a-cborma.adb, a-cidlli.adb, a-cimutr.adb, a-ciormu.adb, 491 a-cbprqu.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, a-coboho.adb, 492 a-cuprqu.adb, a-cbhama.adb, a-rbtgbo.adb, a-cborse.adb, a-comutr.adb, 493 a-ciorma.adb, a-cobove.adb, a-coormu.adb, a-convec.adb, a-cohase.adb, 494 a-coinho.adb, a-coinho-shared.adb, a-cbdlli.adb, a-cbsyqu.adb, 495 a-cbmutr.adb, a-cbhase.adb: Add pragma Annotate to prevent codepeer 496 from analyzing these bodies. 497 4982014-11-20 Ed Schonberg <schonberg@adacore.com> 499 500 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not apply 501 inlining expansion if function build in place, i.e. has a limited 502 return type. 503 5042014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 505 506 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Add 507 variables Body_Id, Body_Inputs, Body_Outputs, Spec_Inputs, 508 Spec_Outputs. Synthesize the inputs and outputs of the subprogram 509 when pragma [Refined_]Global is missing and perform legality 510 checks on output states with visible refinement. 511 (Appears_In): Update the comment on usage. 512 (Check_Output_States): New routine. 513 (Collect_Dependency_Clause): New routine. 514 (Collect_Global_Items): Relocated to 515 Analyze_Refined_Global_In_Decl_Part. 516 (Collect_Subprogram_Inputs_Outputs): Add new formal parameters 517 Synthesize and Depends_Seen. The routine can now synthesize inputs 518 and outputs from pragma [Refined_]Depends. 519 (Normalize_Clause): Update the comment on usage. The routine no longer 520 performs normalization of outputs. 521 (Normalize_Clauses): Normalize both inputs and outputs. 522 (Normalize_Output): Relocated to Normalize_Clauses. 523 * sem_prag.ads (Collect_Subprogram_Inputs_Outputs): Add new 524 formal parameters Synthesize and Depends_Seen and update the 525 comment on usage. 526 5272014-11-20 Vincent Celier <celier@adacore.com> 528 529 PR ada/47500 530 * back_end.adb (Scan_Back_End_Switches): Skip switch -G and 531 its argument. 532 5332014-11-20 Ed Schonberg <schonberg@adacore.com> 534 535 * sem_ch13.adb (Reset_Loop_Variable): New subsidiary procedure 536 in Build_Predicate_Functions, to handle properly quantified 537 expressions in dynamic predicates. 538 5392014-11-20 Robert Dewar <dewar@adacore.com> 540 541 * gnatcmd.adb, sem_ch6.adb, exp_dist.adb: Minor reformatting. 542 * sem_util.adb (Bad_Unordered_Enumeration_Reference): Suppress 543 warning (return False) for generic type. 544 5452014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 546 547 * sem_res.adb (Appears_In_Check): Removed. 548 (Is_OK_Volatile_Context): Rewrite the checks which verify that 549 an effectively volatile object subject to enabled properties 550 Async_Writers or Effective_Reads appears in a suitable context to 551 properly recognize a procedure call. 552 (Within_Check): New routine. 553 (Within_Procedure_Call): New routine. 554 5552014-11-20 Ed Schonberg <schonberg@adacore.com> 556 557 * sem_ch6.adb: Improve better error message. 558 5592014-11-20 Thomas Quinot <quinot@adacore.com> 560 561 * freeze.adb, sem_ch13.adb: Minor editing. 562 5632014-11-20 Vincent Celier <celier@adacore.com> 564 565 * gnatcmd.adb: Remove any special processing for the ASIS tools 566 (gnatpp, gnatmetric, gnatcheck, gnatelim and gnatstup) and simply 567 invoke the tool with the provided switches and arguments. 568 5692014-11-20 Ed Schonberg <schonberg@adacore.com> 570 571 * sem_ch6.adb (Analyze_Expression_Function): Reject declaration 572 of expression function with identical profile as previous 573 expression function. 574 5752014-11-20 Thomas Quinot <quinot@adacore.com> 576 577 * sem_ch13.adb: Complete previous change. 578 * exp_dist.adb, exp_dist.ads: Rework PolyORB/DSA arguments processing 579 circuitry to correctly handle the case of non-private limited 580 unconstrained formals. 581 5822014-11-20 Robert Dewar <dewar@adacore.com> 583 584 * freeze.adb, exp_dbug.adb, sem_ch13.adb: Minor reformatting. 585 5862014-11-20 Thomas Quinot <quinot@adacore.com> 587 588 * einfo.ads: Fix minor typo in comment. 589 5902014-11-20 Robert Dewar <dewar@adacore.com> 591 592 * inline.adb, sem_util.adb: Minor reformatting. 593 5942014-11-20 Pierre-Marie Derodat <derodat@adacore.com> 595 596 * uintp.h (UI_Eq): Declare. 597 * urealp.h (Norm_Den): Declare. 598 (Norm_Num): Declare. 599 * exp_dbug.adb (Is_Handled_Scale_Factor): New. 600 (Get_Encoded_Name): Do not output ___XF GNAT encodings 601 for fixed-point types when these can be handled by GCC's DWARF 602 back-end. 603 6042014-11-20 Thomas Quinot <quinot@adacore.com> 605 606 * sem_ch13.db (Inherit_Aspects_At_Freeze_Point): Inherit parent 607 SSO even if set through a pragma Default_Scalar_Storage_Order. 608 * freeze.adb (Set_SSO_From_Default): For a type extension, 609 do not let the default SSO override the parent SSO. 610 * gnat_rm.texi: document the above 611 6122014-11-20 Robert Dewar <dewar@adacore.com> 613 614 * a-stream.ads, a-reatim.ads, a-calend.ads, sinfo.ads, s-crtl.ads, 615 interfac.ads, s-taskin.ads: Minor reformatting. 616 6172014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 618 619 * sem_prag.adb (Analyze_Pragma): Extensions_Visible can now 620 apply to an expression function. 621 * sem_util.adb (Extensions_Visible_Status): Add special processing 622 for expression functions. 623 6242014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 625 626 * inline.adb (Build_Body_To_Inline): Remove meaningless aspects 627 and pragmas. 628 (Generate_Subprogram_Body): Remove meaningless aspects and pragmas. 629 (Remove_Aspects_And_Pragmas): New routine. 630 (Remove_Pragmas): Removed. 631 * namet.ads, namet.adb (Nam_In): New versions of the routine. 632 6332014-11-20 Thomas Quinot <quinot@adacore.com> 634 635 * sem_util.adb: Minor reformatting. 636 6372014-11-20 Robert Dewar <dewar@adacore.com> 638 639 * sem_prag.adb (Analyze_Pragma, case Linker_Section): Detect 640 duplicate Linker_Section. 641 6422014-11-20 Ed Schonberg <schonberg@adacore.com> 643 644 * exp_ch4.adb: Add guard for build-in-place boolean op. 645 6462014-11-20 Yannick Moy <moy@adacore.com> 647 648 * checks.adb (Apply_Scalar_Range_Check): In GNATprove mode, 649 put a range check when an empty range is used, instead of an 650 error message. 651 * sinfo.ads Update comment on GNATprove mode. 652 6532014-11-20 Arnaud Charlet <charlet@adacore.com> 654 655 * a-stream.ads, s-osinte-linux.ads, a-reatim.ads, a-calend.ads, 656 s-crtl.ads, interfac.ads, s-taskin.ads: Replace uses of 2 ** 63 and 657 2 ** 64 by references to Long_Long_Integer instead, to allow these 658 units to be analyzed by codepeer or spark when using a target 659 configuration file with long_long_size set to 32. 660 6612014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 662 663 * sem_util.adb (Extensions_Visible_Status): Modify the logic to account 664 for non-SPARK code. 665 (Object_Access_Level): In ASIS mode, recognize 666 a selected component with an implicit dereference so that it 667 yields the same value with and without expansion. 668 6692014-11-20 Ed Schonberg <schonberg@adacore.com> 670 671 * sem_prag.adb (Analyze_Pragma, case Implemented): In ASIS 672 (compile-only) mode, use original type declaration to determine 673 whether protected type implements an interface. 674 6752014-11-20 Yannick Moy <moy@adacore.com> 676 677 * a-cfdlli.adb, a-cfdlli.ads, a-cfinve.adb, a-cfinve.ads, 678 * a-cofove.adb, a-cofove.ads: Mark spec as SPARK_Mode, and private 679 part/body as SPARK_Mode Off. 680 * a-cfhama.adb, a-cfhama.ads, a-cfhase.adb, a-cfhase.ads, 681 * a-cforma.adb, a-cforma.ads, a-cforse.adb, a-cforse.ads: Use 682 aspect instead of pragma for uniformity. 683 6842014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 685 686 * sem_util.adb (Is_EVF_Expression): Include 687 attributes 'Loop_Entry, 'Old and 'Update to the logic. 688 6892014-11-20 Bob Duff <duff@adacore.com> 690 691 * sem_res.adb (Make_Call_Into_Operator): Don't 692 call Left_Opnd in the case of unary operators, because they only 693 have Right. 694 6952014-11-20 Pascal Obry <obry@adacore.com> 696 697 * initialize.c (ProcListCS): New extern variable (critical section). 698 (ProcListEvt): New extern variable (handle). 699 (__gnat_initialize)[Win32]: Initialize the ProcListCS critical 700 section object and the ProcListEvt event. 701 * final.c (__gnat_finalize)[Win32]: Properly finalize the 702 ProcListCS critical section and the ProcListEvt event. 703 * adaint.c (ProcListEvt): New Win32 event handle. 704 (EnterCS): New routine to enter the critical section when dealing with 705 child processes chain list. 706 (LeaveCS): As above to exit from the critical section. 707 (SignalListChanged): Routine to signal that the chain process list has 708 been updated. 709 (add_handle): Use EnterCS/LeaveCS, also call SignalListChanged when the 710 handle has been added. 711 (__gnat_win32_remove_handle): Use EnterCS/LeaveCS, 712 also call SignalListChanged if the handle has been found and removed. 713 (remove_handle): Routine removed, implementation merged with the above. 714 (win32_wait): Use EnterCS/LeaveCS for the critical section. Properly 715 copy the PID list locally to ensure that even if the list is updated 716 the local copy remains valid. Add into the hl (handle list) the 717 ProcListEvt handle. This handle is used to signal that a change has 718 been made into the process chain list. This is to ensure that a waiting 719 call can be resumed to take into account new processes. We also make 720 sure that if the handle was not found into the list we start over 721 the wait call. Indeed another concurrent call to win32_wait() 722 could already have handled this process. 723 7242014-11-20 Ed Schonberg <schonberg@adacore.com> 725 726 * sem_res.adb (Resolve_Actuals): The legality rule concerning 727 the use of class-wide actuals for a non-controlling formal are 728 not rechecked in an instance. 729 7302014-11-20 Pascal Obry <obry@adacore.com> 731 732 * g-dirope.ads: Minor typo fix. 733 7342014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 735 736 * exp_attr.adb (Expand_N_Attribute_Reference, 737 Expand_Update_Attribute): Preserve the tag of a prefix by offering 738 a specific view of the class-wide version of the prefix. 739 7402014-11-20 Javier Miranda <miranda@adacore.com> 741 742 * sem_ch6.adb (Analyze_Function_Return): For functions returning 743 an access to an interface add an implicit conversion to the target 744 type to force the displacement of the pointer to the object to 745 reference the secondary dispatch table. 746 (Check_Anonymous_Return): Skip internally built functions which handle 747 the case of null access when locating the master of a task. 748 * sem_res.adb (Valid_Conversion): Return true for internally 749 generated conversions of access to interface types added to force 750 the displacement of the pointer to reference the corresponding 751 dispatch table. 752 7532014-11-20 Pascal Obry <obry@adacore.com> 754 755 * adaint.c (add_handle): realloc with a size of +100. 756 7572014-11-20 Ed Schonberg <schonberg@adacore.com> 758 759 * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate 760 back the resolved operands to the original call node, taking 761 into account that the original call may have named associations. 762 7632014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 764 765 * inline.adb (Has_Some_Contract): Change the 766 guard to test the Ekind of the entity rather than the Analyzed 767 flag. This handles partially analyzed contexts. 768 7692014-11-20 Ed Schonberg <schonberg@adacore.com> 770 771 * sem_ch8.adb (Analyze_Object_Renaming): In Ada 83 mode, do 772 not reject the renaming of a function result if the renaming 773 does not come for source. 774 7752014-11-20 Robert Dewar <dewar@adacore.com> 776 777 * exp_util.ads: Minor addition of ??? clause. 778 7792014-11-20 Ed Schonberg <schonberg@adacore.com> 780 781 * sem_util.adb (Is_Variable): For an Ada 2012 implicit 782 dereference introduced for an indexing opertion, check that the 783 type of the corresponding access discriminant is not an access 784 to constant. 785 7862014-11-20 Hristian Kirtchev <kirtchev@adacore.com> 787 788 * sem_ch6.adb (Find_Corresponding_Spec): Inherit 789 the ghostness of the matching spec, the same way convention 790 is inherited. 791 7922014-11-20 Eric Botcazou <ebotcazou@adacore.com> 793 794 * sem_ch3.adb (Analyze_Object_Declaration): Swap a couple of 795 tests in a condition so Following_Address_Clause is invoked 796 only if need be. 797 * exp_util.ads (Following_Address_Clause): Add small note. 798 7992014-11-20 Pascal Obry <obry@adacore.com> 800 801 * adaint.c (remove_handle): New local routine without a lock. 802 (win32_wait): fix the critical section to properly protect needed 803 code, use new remove_handle. 804 (__gnat_win32_remove_handle): refactor code with remove_handle. 805 8062014-11-20 Eric Botcazou <ebotcazou@adacore.com> 807 808 * inline.adb (Analyze_Inlined_Bodies): Iterate between loading 809 of the inlined bodies and instantiation of the generic bodies 810 until no more bodies need to be loaded. 811 8122014-11-20 Vincent Celier <celier@adacore.com> 813 814 * prj.adb, prj.ads, prj-conf.adb: Minor change of procedure name: 815 Update_Ignore_Missing_With becomes Set_Ignore_Missing_With. 816 8172014-11-20 Robert Dewar <dewar@adacore.com> 818 819 * exp_ch7.adb, sem_ch5.adb, sem_ch7.adb, sem_util.adb, 820 sem_ch6.adb: Minor reformatting. 821 8222014-11-20 Javier Miranda <miranda@adacore.com> 823 824 * exp_ch4.adb (Expand_N_Type_Conversion): Add missing implicit 825 conversion to force the displacement of the pointer to the object 826 to reference the secondary dispatch table. 827 8282014-11-11 Simon Wright <simon@pushface.org> 829 830 PR ada/42978 831 * mlib-utl.adb (ar): Output the options passed to ranlib. 832 8332014-11-07 Arnaud Charlet <charlet@adacore.com> 834 835 * debug.adb, snames.adb-tmpl (Is_Keyword_Name): Consider 'overriding' 836 a keyword in Ada 95 mode when -gnatd.D is used. 837 * gnat_ugn.texi: Document -gnatd.D. 838 8392014-11-07 Vasiliy Fofanov <fofanov@adacore.com> 840 841 * gnatls.adb: Lower severity of the program's return value in 842 some common cases. 843 8442014-11-07 Ed Schonberg <schonberg@adacore.com> 845 846 * sem_ch10.adb (Decorate_Type): The limited view of a tagged 847 type has an empty list of primitive operations. 848 8492014-11-07 Hristian Kirtchev <kirtchev@adacore.com> 850 851 * sem_ch3.adb (Analyze_Object_Declaration): Update references to SPARK 852 RM. 853 (Process_Full_View): Update references to SPARK RM. 854 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Update references 855 to SPARK RM. 856 (Analyze_Subprogram_Body_Helper): Update references 857 to SPARK RM. 858 * sem_ch7.adb (Analyze_Package_Body_Helper): Update references 859 to SPARK RM. 860 * sem_prag.adb (Check_Ghost_Constituent): Update references to 861 SPARK RM. 862 * sem_res.adb (Check_Ghost_Policy): Update references to SPARK RM. 863 (Resolve_Actuals): Ensure that the actual parameter of a Ghost 864 subprogram whose formal is of mode IN OUT or OUT is Ghost. 865 * sem_util.adb (Check_Ghost_Completion): Update references to 866 SPARK RM. 867 8682014-11-07 Ed Schonberg <schonberg@adacore.com> 869 870 * exp_ch7.adb (Make_Final_Call): If type of designated object is 871 derived from that of the formal of the Deep_Finalize procedure, 872 add an unchecked conversion to prevent spurious type error. 873 8742014-11-07 Robert Dewar <dewar@adacore.com> 875 876 * table.adb, inline.adb, einfo.adb, gnat1drv.adb, exp_ch13.adb, 877 exp_fixd.adb, prj-conf.adb, exp_strm.adb, a-cofove.adb, exp_ch3.ads: 878 Minor reformatting. 879 8802014-11-07 Robert Dewar <dewar@adacore.com> 881 882 * sem_ch12.adb, sem_ch13.adb, prj-tree.adb: Minor reformatting. 883 8842014-11-07 Hristian Kirtchev <kirtchev@adacore.com> 885 886 * einfo.adb (Set_Is_Checked_Ghost_Entity, 887 Set_Is_Ignored_Ghost_Entity): Add exceptions to the assertion 888 check. 889 * sem_ch6.adb (Check_Conformance): Consider only 890 source subprograms when checking for Ghost conformance. 891 * sem_prag.adb (Analyze_Pragma): Handle the case 892 where pragma Ghost applies to a stand alone subprogram body that 893 acts as a compilation unit. 894 * sem_res.adb: Minor reformatting (merge if statements). 895 8962014-11-07 Ed Schonberg <schonberg@adacore.com> 897 898 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): 899 Check whether underlying type is constrained before generating 900 the object declaration for the result object of the function. 901 9022014-11-07 Robert Dewar <dewar@adacore.com> 903 904 * freeze.adb: Code clean up. 905 9062014-11-07 Yannick Moy <moy@adacore.com> 907 908 * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cfinve.ads, 909 * a-cforma.ads, a-cforse.ads, a-cofove.ads: Mark First_To_Previous, 910 Current_To_Last and Strict_Equal as Ghost. 911 9122014-11-07 Ed Schonberg <schonberg@adacore.com> 913 914 * sem_ch3.adb: Code clean up. 915 9162014-11-07 Hristian Kirtchev <kirtchev@adacore.com> 917 918 * freeze.adb (Freeze_Entity): Issue an error regardless of the 919 SPARK_Mode when a ghost type is effectively volatile. 920 * sem_ch3.adb (Analyze_Object_Contract): Decouple the checks 921 related to Ghost from SPARK_Mode. 922 * sem_res.adb (Check_Ghost_Policy): Issue an error regardless 923 of the SPARK_Mode when the Ghost policies do not match. 924 * sem_util.adb (Check_Ghost_Completion): Issue an error regardless 925 of the SPARK_Mode when the Ghost policies do not match. 926 9272014-11-07 Ed Schonberg <schonberg@adacore.com> 928 929 * sem_ch5.adb (Analyze_Iterator_Specification): return if name 930 in iterator does not have any usable aspect for iteration. 931 9322014-11-07 Ed Schonberg <schonberg@adacore.com> 933 934 * sem_ch6.adb (Analyze_Null_Procedure): Reject a null procedure 935 that there is a previous null procedure in scope with a matching 936 profile. 937 9382014-11-07 Hristian Kirtchev <kirtchev@adacore.com> 939 940 * atree.adb (Copy_Separate_Tree): Copy the aspect specifications. 941 * inline.adb (Has_Some_Contract): Do the check only when the 942 related entity has been analyzed. 943 9442014-11-07 Ed Schonberg <schonberg@adacore.com> 945 946 * exp_fixd.adb (Expand_Multiply_Fixed_By_Fixed_Giving_Integer): 947 If the restriction No_Floating_Point is in effect, and the 948 operands have the same type, introduce a temporary to hold 949 the fixed point result, to prevent the use of floating-point 950 operations at run-time. 951 9522014-11-07 Robert Dewar <dewar@adacore.com> 953 954 * freeze.adb (Check_Address_Clause): Minor reformatting 955 (Find_Constant): Minor reformatting. 956 (Freeze_Array_Type): Modify check for packed declarations. 957 (Freeze_Entity): Minor reformatting. 958 9592014-11-05 Eric Botcazou <ebotcazou@adacore.com> 960 961 * gnatvsn.ads (Library_Version): Bump to 5.0. 962 9632014-11-05 Eric Botcazou <ebotcazou@adacore.com> 964 965 * gcc-interface/trans.c (Subprogram_Body_to_gnu): For a function with 966 copy-in/copy-out parameters and which returns by invisible reference, 967 do not create the variable for the return value; instead, manually 968 generate the indirect copy out statements on exit. 969 (gnat_to_gnu) <N_Simple_Return_Statement>: Adjust accordingly and build 970 a simple indirect assignment for the return value. 971 9722014-11-05 Eric Botcazou <ebotcazou@adacore.com> 973 974 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: For a 975 derived untagged type that renames discriminants, be prepared for 976 a type derived from a private discriminated type when changing the 977 type of the stored discriminants. 978 9792014-11-05 Eric Botcazou <ebotcazou@adacore.com> 980 981 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Set 982 the SLOC of the node on the call to set_jmpbuf_address_soft emitted 983 on block entry with SJLJ. 984 9852014-11-05 Eric Botcazou <ebotcazou@adacore.com> 986 987 * gcc-interface/utils.c (create_subprog_decl): Move code dealing with 988 conflicting inlining status of nested subprograms to... 989 * gcc-interface/trans.c (check_inlining_for_nested_subprog): ...here. 990 (Attribute_to_gnu) <Attr_Access>: Call it. 991 (Call_to_gnu): Likewise. 992 (Subprogram_Body_to_gnu): Drop the body if it is an inlined external 993 function that has been marked uninlinable. 994 9952014-10-31 Hristian Kirtchev <kirtchev@adacore.com> 996 997 * aspects.adb Add an entry for aspect Ghost in table 998 Canonical_Aspect. 999 * aspects.ads Add an entry for aspect Ghost in tables 1000 Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names and 1001 Implementation_Defined_Aspect. 1002 * einfo.adb: Flags 277 and 278 are now in use. 1003 (Is_Checked_Ghost_Entity): New routine. 1004 (Is_Ghost_Entity): Removed. 1005 (Is_Ghost_Subprogram): Removed. 1006 (Is_Ignored_Ghost_Entity): New routine. 1007 (Set_Is_Checked_Ghost_Entity): New routine. 1008 (Set_Is_Ignored_Ghost_Entity): New routine. 1009 (Write_Entity_Flags): Output flags Is_Checked_Ghost_Entity and 1010 Is_Ignored_Ghost_Entity. 1011 * einfo.ads: Add new flags Is_Checked_Ghost_Entity 1012 and Is_Ignored_Ghost_Entity along with usage in nodes. 1013 (Is_Checked_Ghost_Entity): New routine and pragma Inline. 1014 (Is_Ghost_Entity): Removed along with synthesized flag 1015 description and usage in nodes. 1016 (Is_Ghost_Subprogram): Removed along with synthesized flag description 1017 and usage in nodes. 1018 (Is_Ignored_Ghost_Entity): New routine and pragma Inline. 1019 (Set_Is_Checked_Ghost_Entity): New routine and pragma Inline. 1020 (Set_Is_Ignored_Ghost_Entity): New routine and pragma Inline. 1021 * freeze.adb (Freeze_Entity): A Ghost type cannot be effectively 1022 volatile. 1023 * par-prag.adb Pragma Ghost does not need special handling by 1024 the parser. 1025 * repinfo.adb (List_Mechanisms): Remove the entry for convention Ghost. 1026 * sem_attr.adb (Analyze_Access_Attribute): Remove obsolete check. 1027 * sem_ch3.adb (Analyze_Full_Type_Declaration): Mark 1028 the type as Ghost when its enclosing context is Ghost. 1029 (Analyze_Incomplete_Type_Decl): Mark the type as Ghost when 1030 its enclosing context is Ghost. 1031 (Analyze_Number_Declaration): Mark the number as Ghost when its 1032 enclosing context is Ghost. 1033 (Analyze_Object_Declaration): Mark the object as Ghost when its 1034 enclosing context is Ghost. Verify the Ghost policy between 1035 initial declaration and completion of a deferred constant. 1036 (Analyze_Object_Contract): A Ghost variable cannot be effectively 1037 volatile, imported or exported. 1038 (Build_Derived_Record_Type): Mark a type extension as Ghost when it 1039 implements a Ghost interface. 1040 (Build_Record_Type): Inherit volatility and "ghostness" from 1041 the parent type. 1042 (Check_Completion): A Ghost entity declared 1043 in a non-Ghost package does not require completion in a body. 1044 (Implements_Ghost_Interface): New routine. 1045 (Process_Full_View): Inherit "ghostness" from the partial view. Verify 1046 the Ghost policy between the partial and full views. Verify the 1047 completion of a Ghost type extension. 1048 * sem_ch4.adb (Check_Ghost_Subprogram_Call): Removed. 1049 * sem_ch5.adb (Analyze_Assignment): Analyze the left hand side first. 1050 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Mark 1051 the subprogram as Ghost when its enclosing context is Ghost. 1052 (Analyze_Generic_Subprogram_Body): Mark the generic body as Ghost 1053 when its enclosing context is Ghost. Verify the Ghost policy 1054 between the spec and body. 1055 (Analyze_Subprogram_Body_Helper): Mark the body as Ghost when its 1056 enclosing context is Ghost. Verify the Ghost policy between the spec 1057 and body. 1058 (Check_Conformance): A Ghost subprogram profile and a non-Ghost 1059 subprogram profile are not subtype conformant. 1060 (Convention_Of): Removed. 1061 * sem_ch7.adb (Analyze_Package_Body_Helper): Inherit the 1062 "ghostness" from the spec. Verify the Ghost policy between 1063 the spec and body. 1064 (Analyze_Private_Type_Declaration): Mark the type as Ghost when its 1065 enclosing context is Ghost. 1066 (Requires_Completion_In_Body): New routine. 1067 (Unit_Requires_Body): Use Requires_Completion_In_Body. 1068 (Unit_Requires_Body_Info): Rename formal parameter P to Pack_Id, update 1069 comment on usage and all uses of P in the body. Use 1070 Requires_Completion_In_Body. 1071 * sem_ch7.ads (Unit_Requires_Body): Rename formal parameter P 1072 to Pack_Id, update comment on usage and all uses of P in the body. 1073 * sem_ch8.adb (Analyze_Exception_Renaming): Inherit the "ghostness" 1074 from the renamed excention. 1075 (Analyze_Generic_Renaming): Inherit the "ghostness" from the 1076 renamed generic subprogram. 1077 (Analyze_Object_Renaming): Inherit the "ghostness" from the renamed 1078 object. 1079 (Analyze_Package_Renaming): Inherit the "ghostness" from the 1080 renamed package. 1081 (Analyze_Subprogram_Renaming): Inherit the "ghostness" from the 1082 renamed subprogram. 1083 * sem_ch11.adb (Analyze_Exception_Declaration): Mark an exception 1084 as Ghost when its enclosing context is Ghost. 1085 * sem_ch12.adb (Analyze_Generic_Package_Declaration, 1086 Analyze_Generic_Subprogram_Declaration): Mark an exception as 1087 Ghost when its enclosing context is Ghost. 1088 (Preanalyze_Actuals): Remove obsolete check. 1089 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 1090 for aspect Ghost. 1091 (Check_Aspect_At_Freeze_Point): Aspects 1092 Depends and Global do no need special checking at freeze point. 1093 (Insert_After_SPARK_Mode): Update comment on usage. 1094 * sem_mech.adb (Set_Mechanisms): Remove the entry for convention Ghost. 1095 * sem_prag.adb Add an entry for pragma Ghost in table Sig_Flags. 1096 (Analyze_Abstract_State): Update the grammar of the pragma. Add 1097 formal parameter Pack_Id along with comment on usage. Mark an 1098 abstract state as Ghost when its enclosing context is Ghost. Add 1099 processing for option Ghost. 1100 (Analyze_Constituent): Verify 1101 that a Ghost abstract state is refined by Ghost constituents. 1102 (Analyze_Pragma): "Ghost" is now a valid policy. Add checks 1103 related to the use and placement of Check_Policy Ghost. Add 1104 processing for pragma Ghost. 1105 (Check_Ghost_Constituent): New routine. 1106 (Is_Valid_Assertion_Kind): "Ghost" is now a valid assertion. 1107 (Process_Convention): Remove obsolete check. 1108 (Set_Convention_From_Pragma): Remove the processing for convention 1109 Ghost. 1110 * sem_res.adb (Check_Ghost_Context): New routine. 1111 (Resolve_Call): Verify that a reference to a Ghost entity appears in a 1112 suitable context. Verify the Ghost polity between point of declaration 1113 and point of use. 1114 (Resolve_Entity_Name): Verify that a reference to 1115 a Ghost entity appears in a suitable context. Verify the Ghost 1116 polity between point of declaration and point of use. 1117 * sem_util.adb (Check_Ghost_Completion): New routine. 1118 (Check_Ghost_Derivation): New routine. 1119 (Incomplete_Or_Partial_View): New routine. 1120 (Incomplete_Or_Private_View): Removed. 1121 (Is_Ghost_Entity): New routine. 1122 (Is_Ghost_Statement_Or_Pragma): New routine. 1123 (Is_Subject_To_Ghost): New routine. 1124 (Policy_In_Effect): New routine. 1125 (Set_Is_Ghost_Entity): New routine. 1126 (Within_Ghost_Scope): New routine. 1127 * sem_util.ads (Check_Ghost_Completion): New routine. 1128 (Check_Ghost_Derivation): New routine. 1129 (Incomplete_Or_Partial_View): New routine. 1130 (Incomplete_Or_Private_View): Removed. 1131 (Is_Ghost_Entity): New routine. 1132 (Is_Ghost_Statement_Or_Pragma): New routine. 1133 (Is_Subject_To_Ghost): New routine. 1134 (Policy_In_Effect): New routine. 1135 (Set_Is_Ghost_Entity): New routine. 1136 (Within_Ghost_Scope): New routine. 1137 * snames.adb-tmpl (Get_Convention_Id): Remove the entry for 1138 convention Ghost. 1139 (Get_Convention_Name): Remove the entry for convention Ghost. 1140 * snames.ads-tmpl Remove the convention id for Ghost. Add a 1141 pragma id for Ghost. 1142 11432014-10-31 Sergey Rybin <rybin@adacore.com frybin> 1144 1145 * gnat_ugn.texi: Add description of --RTS option for ASIS tools. 1146 11472014-10-31 Olivier Hainque <hainque@adacore.com> 1148 1149 * gcc-interface/Makefile.in (arm-vxworks): Update target pairs. 1150 11512014-10-31 Vincent Celier <celier@adacore.com> 1152 1153 * prj-part.adb (Parse_Single_Project): Call Set_Display_Name_Of. 1154 * prj-proc.adb (Recursive_Process): Call Display_Name_Of to 1155 get the project Display_Name. 1156 * prj-tree.adb (Display_Name_Of): New function 1157 (Set_Display_Name_Of): New procedure. 1158 (Create_Project): Call Set_Display_Name_Of. 1159 * prj-tree.ads (Display_Name_Of): New function. 1160 (Set_Display_Name_Of): New procedure. 1161 (Project_Node_Record): New component Display_Name. 1162 (Project_Name_And_Node): Remove component Display_Name. 1163 * prj-conf.adb (Parse_Project_And_Apply_Config): Use the full 1164 Config_File_Path as the Config_File_Name, not just its simple 1165 name. 1166 11672014-10-31 Thomas Quinot <quinot@adacore.com> 1168 1169 * get_scos.adb: Minor reformatting. 1170 11712014-10-31 Ed Schonberg <schonberg@adacore.com> 1172 1173 * exp_ch5.adb (Expand_Formal_Container_Loop): Create block to 1174 capture declaration for cursor to prevent spurious errors when 1175 several formal iterators that use the same cursoe name appear 1176 in the same context. 1177 11782014-10-31 Vincent Celier <celier@adacore.com> 1179 1180 * prj-proc.adb (Recursive_Process): Make sure that the project 1181 display name is never No_Name. 1182 11832014-10-31 Ed Schonberg <schonberg@adacore.com> 1184 1185 * sem_attr.adb (Analyze_Access_Attribute): Do not emit error 1186 message if reference does not come from source, as in the case 1187 for the controlling argument of a dispatching call. Error is 1188 diagnosed when call is resolved. 1189 * sem_ch4.adb (Complete_Object_Operation); Fix incorrect RM 1190 reference in error message. 1191 * sem_res.adb (Check_Prefixed_Call): ditto. 1192 11932014-10-31 Yannick Moy <moy@adacore.com> 1194 1195 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): Do not 1196 suppress checks when pragma Restrictions (No_Exception) is used in 1197 CodePeer or GNATprove mode. 1198 11992014-10-31 Yannick Moy <moy@adacore.com> 1200 1201 * gnat1drv.adb (Adjust_Global_Switches): Explicitly mark language 1202 checks as not suppressed in GNATprove mode. 1203 12042014-10-31 Ed Schonberg <schonberg@adacore.com> 1205 1206 * sem_elab.adb (Check_Elab_Call): Nothing to check if call is 1207 being pre-analyzed. 1208 * sem_ch3.adb (Complete_Private_Subtype): If all rep items of full 1209 view are those of the base, use rep_item chain of partial view, 1210 which may include aspects. 1211 * sem_cat.adb (Is_non_Remote_Access_Type): Use underlying type 1212 of base type, to handle properly declared subtypes. 1213 12142014-10-31 Ed Schonberg <schonberg@adacore.com> 1215 1216 * sem_ch12.adb (Analyze_Generic_Package_Declaration): If there 1217 is a default storage pool, add a corresponding aspect to the 1218 generic unit, to be used at the point of instantiation. 1219 (Analyze_Package_Instantiation): If generic unit has aspect 1220 specifications, propagate them to instance. If instance has a 1221 Default_Storage_Pool aspect, make sure that it overrides the 1222 one that may be inherited from the generic. 1223 12242014-10-31 Vincent Celier <celier@adacore.com> 1225 1226 * prj-attr.adb: Minor removal of attributes of package Linker 1227 that have never been used and never been documented. 1228 * projects.texi: Add documentation for attribute Runtime. 1229 * prj-nmsc.adb (Check_Configuration): Do not report a warning 1230 for unknown compilers when the project is externally built. 1231 12322014-10-31 Vasiliy Fofanov <fofanov@adacore.com> 1233 1234 * prj-conf.adb (Do_Autoconf): Refactor the code so that empty 1235 Normalized_Pathname doesn't inhibit the custom Selected_Target 1236 value. 1237 * prj-conf.adb (Parse_Project_And_Apply_Config): Make sure that 1238 Automatically_Generated is correctly set after the first call 1239 to Process_Project_And_Apply_Config and not modified after the 1240 second call, if any. 1241 12422014-10-31 Yannick Moy <moy@adacore.com> 1243 1244 * Makefile.rtl, gnat_rm.texi, impunit.adb: Add mention of new library 1245 files. 1246 * a-cfinve.adb, a-cfinve.ads: New unit for formal indefinite 1247 vectors, suitable for use in client SPARK code, also more 1248 efficient than the standard vectors. 1249 * a-coboho.adb, a-coboho.ads New unit for bounded holders, that 1250 are used to define formal indefinite vectors in terms of formal 1251 definite ones. 1252 * a-cofove.adb, a-cofove.ads: Simplification of the API of formal 1253 definite vectors, similar to the API of the new indefinite ones. A 1254 new formal parameter of the generic unit called Bounded allows 1255 to define growable vectors that use dynamic allocation. 1256 12572014-10-31 Vincent Celier <celier@adacore.com> 1258 1259 * prj-conf.adb (Look_For_Project_Paths): New procedure 1260 (Parse_Project_And_Apply_Config): Initially, parse the project 1261 files ignoring missing withs. If there are missing withs, extend 1262 the project path with directories rooted at the compiler roots, 1263 including directories rooted at the runtime roots, if there are 1264 non default runtimes, in the PATH orser. 1265 * prj-env.adb (Initialize_Default_Project_Path): Do not add 1266 any directory from the prefix if the target is "-". 1267 * prj-part.adb (Parse): Initialize the tables, as Parse may be 1268 call several times by gprbuild. 1269 * prj.adb (Update_Ignore_Missing_With): New procedure. 1270 12712014-10-31 Ed Schonberg <schonberg@adacore.com> 1272 1273 * sem_aux.adb (First_Stored_Discriminant, 1274 Has_Completely_Hidden_Discriminant): When scanning the list of 1275 discriminants to locate possibly hidden (inherited) discriminants, 1276 ignore itypes that may appear in the entity list, when an access 1277 discriminants is constrained by an access attribute reference. 1278 12792014-10-31 Javier Miranda <miranda@adacore.com> 1280 1281 * freeze.adb (Freeze_Record_Type): Add missing 1282 check to verify that all the primitives of an interface type 1283 are abstract or null procedures. 1284 12852014-10-31 Vincent Celier <celier@adacore.com> 1286 1287 * s-os_lib.adb, s-os_lib.ads: New function Non_Blocking_Spawn that 1288 redirects standard output and standard error to two different files. 1289 12902014-10-31 Bob Duff <duff@adacore.com> 1291 1292 * makeutl.ads: Minor comment fix. 1293 12942014-10-31 Arnaud Charlet <charlet@adacore.com> 1295 1296 * system-linux-x86_64.ads, system-mingw-x86_64.ads (Word_Size, 1297 Memory_Size): Use Standard'Word_Size so that the value can be changed 1298 via a target configuration file. 1299 13002014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1301 1302 * exp_ch4.adb: Minor tweak. 1303 13042014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1305 1306 * sem_ch12.adb (Analyze_Package_Instantiation): Do not inline with 1307 back-end inlining. 1308 (Must_Inline_Subp): Delete. 1309 * sem_util.ads, sem_util.adb (Must_Inline): Likewise. 1310 13112014-10-31 Ed Schonberg <schonberg@adacore.com> 1312 1313 * freeze.adb (Freeze_Entity): A default_pool does not apply to 1314 internal access types generated for 'access references. 1315 * sem_prag (Analyze_Pragma, case Default_Pool): If the name is 1316 not null it must designate a variable. 1317 13182014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1319 1320 * inline.adb: Minor reformatting. 1321 13222014-10-31 Ed Schonberg <schonberg@adacore.com> 1323 1324 * sem_ch3.adb (Build_Derived_Private_Type): If the derived 1325 type has access discriminants, create itype references for their 1326 anonymous types, so that they are elaborated before the generated 1327 bodies for the primitive operations of the type. 1328 13292014-10-31 Tristan Gingold <gingold@adacore.com> 1330 1331 * prj-conf.adb (Locate_Runtime): Remove procedure. 1332 13332014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1334 1335 * inline.adb (Has_Excluded_Declaration): With back-end inlining, 1336 only return true for nested packages. 1337 (Cannot_Inline): Issue errors/warnings whatever the optimization level 1338 for back-end inlining and remove assertion. 1339 13402014-10-31 Sergey Rybin <rybin@adacore.com frybin> 1341 1342 * table.adb (Tree_Read, Tree_Write): Use parentheses to specify 1343 the desired order of '*' and '/' operations to avoid overflow. 1344 13452014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1346 1347 * exp_ch6.adb (Do_Inline): Remove unreachable code. 1348 (Do_Inline_Always): Likewise. 1349 13502014-10-31 Vincent Celier <celier@adacore.com> 1351 1352 * prj-nmsc.adb (Check_Stand_Alone_Library): Change error message 1353 when library has no Ada interfaces and Library_Standalone is 1354 declared. 1355 13562014-10-31 Arnaud Charlet <charlet@adacore.com> 1357 1358 * sem_ch13.adb (Check_Constant_Address_Clause): Disable checks 1359 on address clauses in CodePeer mode. 1360 13612014-10-31 Javier Miranda <miranda@adacore.com> 1362 1363 * inline.adb (Expand_Inlined_Call): Do not skip 1364 inlining of calls to subprogram renamings. 1365 13662014-10-31 Hristian Kirtchev <kirtchev@adacore.com> 1367 1368 * sem_res.adb (Resolve_Entity_Name): Account for 1369 the case where the immediate parent of a reference to an entity 1370 is a parameter association. 1371 13722014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1373 1374 * inline.adb (Check_And_Split_Unconstrained_Function): Do not 1375 test for the presence of nested subprograms. 1376 13772014-10-31 Ed Schonberg <schonberg@adacore.com> 1378 1379 * aspects.ads, aspects.adb: Add aspect Default_Storage_Pool. 1380 * sem_ch13.adb (Analyze_One_Aspect): Generate pragma for aspect 1381 Default_Storage_Pool. 1382 13832014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1384 1385 * sem_ch6.adb: Remove obsolete comment. 1386 13872014-10-31 Olivier Hainque <hainque@adacore.com> 1388 1389 * g-allein.ads: bind vec_sld for pixels to 8hi vsldoi instead 1390 of 4si, as pixels are short. 1391 13922014-10-31 Ed Schonberg <schonberg@adacore.com> 1393 1394 * sem_res.adb (Resolve_Call): Do not reject a call to a protected 1395 operation in the spec of a protected type, when the call appears 1396 in a pre/postcondition for another protected operation. 1397 13982014-10-31 Tristan Gingold <gingold@adacore.com> 1399 1400 * prj-conf.adb: Locate_Runtime: Always search the runtime in 1401 project path. 1402 14032014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1404 1405 * inline.adb (Check_Package_Body_For_Inlining): Adjust previous 1406 change to use correct idiom for back-end inlining. 1407 14082014-10-31 Ed Schonberg <schonberg@adacore.com> 1409 1410 * freeze.adb (Freeze_Record_Type): Do not check component size 1411 if its type is generic. 1412 14132014-10-31 Bob Duff <duff@adacore.com> 1414 1415 * gnat_rm.texi: Fix documentation w.r.t -gnatw.w. 1416 14172014-10-31 Ed Schonberg <schonberg@adacore.com> 1418 1419 * sem_ch4.adb (Try_Container_Indexing): Use Check_Implicit_Dereference. 1420 * sem_util.adb (Check_Implicit_Dereference): a) Handle generalized 1421 indexing as well as function calls. b) If the context is a 1422 selected component and whe are in an instance, remove entity from 1423 selector name to force resolution of the node, so that explicit 1424 dereferences can be generated in the instance if they were in 1425 the generic unit. 1426 14272014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1428 1429 * inline.adb (Back_End_Cannot_Inline): Delete. 1430 (Add_Inlined_Subprogram): Do not call it. 1431 14322014-10-31 Ed Schonberg <schonberg@adacore.com> 1433 1434 * exp_ch3.ads (Make_Tag_Assignment): New function, used to 1435 re-initialize the tag in a tagged object declaration with 1436 initial value. 1437 * exp_ch3.adb (Expand_N_Object_Declaration): Use 1438 Make_Tag_Assignment to simplify code for a tagged object 1439 declaration. 1440 * exp_ch13.adb (Expand_Freeze_Entity): Analyze freeze actions 1441 for the freeze node of an object. 1442 * freeze.adb (Check_Address_Clause): Use Make_Tag_Assignment when 1443 needed to extend Freeze_Actions for a tagged object declaration. 1444 14452014-10-31 Eric Botcazou <ebotcazou@adacore.com> 1446 1447 * gnat_ugn.texi: Further minor improvement to -flto entry. 1448 14492014-10-31 Gary Dismukes <dismukes@adacore.com> 1450 1451 * g-dynhta.adb, g-dynhta.ads: Minor typo fixes and reformatting. 1452 14532014-10-30 Ed Schonberg <schonberg@adacore.com> 1454 1455 * exp_ch3.adb (Expand_N_Object_Declaration): Code cleanup. 1456 14572014-10-30 Ed Schonberg <schonberg@adacore.com> 1458 1459 * sem_ch5.adb (Analyze_Iterator_Specification): If a subtype 1460 indication is provided, check properly that it covers the element 1461 type of of the container type. 1462 14632014-10-30 Hristian Kirtchev <kirtchev@adacore.com> 1464 1465 * g-dynhta.ads, g-dynhta.adb: Add the implementation of a load facto 1466 -based hash table. 1467 14682014-10-30 Ed Schonberg <schonberg@adacore.com> 1469 1470 * exp_util.ads, exp_util.adb (Following_Address_Clause): Modify 1471 Has_Following_Address_Clause so that it returns the address 1472 clause if present, rather than a boolean value. 1473 * sem_ch3.adb (Analyze_Object_Declaration): use 1474 Following_Address_Clause. 1475 * exp_ch3.adb (Expand_N_Object_Declaration): When a tagged object 1476 is initialized, insert tag assignment after object is frozen, 1477 which may be after an address clause that follows the declaration. 1478 14792014-10-30 Tristan Gingold <gingold@adacore.com> 1480 1481 * system-darwin-x86.ads, system-linux-s390x.ads, system-linux-alpha.ads, 1482 system-vxworks-arm.ads, system-freebsd-x86_64.ads, 1483 system-linux-hppa.ads, system-linux-s390.ads, 1484 system-solaris-sparcv9.ads, system-mingw.ads, system-linux-ia64.ads, 1485 system-vxworks-sparcv9.ads, system-linux-ppc.ads, system-aix64.ads, 1486 system-linux-sh4.ads, system-solaris-x86.ads, system-linux-x86_64.ads, 1487 system-linux-x86.ads, system-vxworks-ppc.ads, system-hpux.ads, 1488 system-linux-armel.ads, system-darwin-ppc.ads, system-solaris-sparc.ads, 1489 system-vxworks-m68k.ads, system-hpux-ia64.ads, system.ads, 1490 system-solaris-x86_64.ads, system-mingw-x86_64.ads, 1491 system-vxworks-mips.ads, system-linux-sparc.ads, system-freebsd-x86.ads, 1492 system-aix.ads, system-darwin-x86_64.ads, system-vxworks-x86.ads: Add 1493 pragma No_Elaboration_Code_All. 1494 14952014-10-30 Eric Botcazou <ebotcazou@adacore.com> 1496 1497 * gnat_ugn.texi: Minor improvement to -flto entry. 1498 14992014-10-30 Hristian Kirtchev <kirtchev@adacore.com> 1500 1501 * sem_util.adb (Inherit_Subprogram_Contract): 1502 Add a guard to protect against enumeration literal overriding. 1503 * sem_ch3.adb, sem_ch4.adb, sem_res.adb, sem_util.adb: 1504 Minor reformatting (add SPARK RM references). 1505 15062014-10-30 Robert Dewar <dewar@adacore.com> 1507 1508 * exp_dbug.adb, opt.ads: Minor reformatting. 1509 15102014-10-30 Yannick Moy <moy@adacore.com> 1511 1512 * inline.adb (Has_Single_Return_In_GNATprove_Mode): 1513 Return False when return statement is inside one or more blocks. 1514 15152014-10-30 Hristian Kirtchev <kirtchev@adacore.com> 1516 1517 * exp_ch7.adb (Is_Subprogram_Call): Account for the case where an 1518 object declaration initialized by a function call that returns 1519 an unconstrained result may be rewritted as a renaming of the 1520 secondary stack result. 1521 15222014-10-30 Hristian Kirtchev <kirtchev@adacore.com> 1523 1524 * aspects.adb: Add an entry for aspect Extensions_Visible in 1525 table Canonical_Aspect. 1526 * aspects.ads: Add entry for aspect Extensions_Visible in 1527 tables Aspect_Argument, Aspect_Delay, Aspect_Id, Aspect_Names, 1528 Implementation_Defined_Aspect. 1529 * einfo.adb (Get_Pragma): Include pragma Extensions_Visible in 1530 the list of contract pragmas. 1531 * par-prag.adb Pragma Extensions_Visible does not require special 1532 processing from the parser. 1533 * sem_ch3.adb (Analyze_Object_Declaration): Prevent an 1534 implicit class-wide conversion of a formal parameter 1535 of a specific tagged type whose related subprogram is 1536 subject to pragma Extensions_Visible with value "False". 1537 (Check_Abstract_Overriding): Add various overriding checks 1538 related to pragma Extensions_Visible. 1539 (Derive_Subprogram): 1540 A subprogram subject to pragma Extensions_Visible with value 1541 False requires overriding if the subprogram has at least one 1542 controlling OUT parameter. 1543 (Is_EVF_Procedure): New routine. 1544 * sem_ch4.adb (Analyze_Type_Conversion): A formal parameter of 1545 a specific tagged type whose related subprogram is subject to 1546 pragma Extensions_Visible with value "False" cannot appear in 1547 a class-wide conversion. 1548 * sem_ch6.adb (Analyze_Subprogram_Contract): Remove 1549 the assertion to account for pragma Extensions_Visible. 1550 (Check_Overriding_Indicator): An overriding subprogram 1551 inherits the contact of the overridden subprogram. 1552 (New_Overloaded_Entity): An overriding subprogram inherits the 1553 contact of the overridden subprogram. 1554 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 1555 for aspect Extensions_Visible. 1556 (Check_Aspect_At_Freeze_Point): Aspect Extensions_Visible does not 1557 require special processing at the freeze point. 1558 * sem_prag.adb Add an entry for pragma Extensions_Visible in 1559 table Sig_Flags. 1560 (Analyze_Pragma): Ensure that various SPARK 1561 pragmas lack identifiers in their arguments. Add processing for 1562 pragma Extensions_Visible. 1563 (Chain_CTC): Code reformatting. 1564 * sem_res.adb (Resolve_Actuals): A formal parameter of a 1565 specific tagged type whose related subprogram is subject to 1566 pragma Extensions_Visible with value "False" cannot act as an 1567 actual in a subprogram with value "True". 1568 * sem_util.adb (Add_Classification): New routine. 1569 (Add_Contract_Item): Account for pragma Extensions_Visible. Code 1570 reformatting. 1571 (Add_Contract_Test_Case): New routine. 1572 (Add_Pre_Post_Condition): New routine. 1573 (Extensions_Visible_Status): New routine. 1574 (Inherit_Subprogram_Contract): New routine. 1575 (Is_EVF_Expression): New routine. 1576 (Is_Specific_Tagged_Type): New routine. 1577 * sem_util.ads Add type Extensions_Visible_Mode and document all values. 1578 (Add_Contract_Item): Add pragma Extensions_Visible to the 1579 comment on usage. 1580 (Inherit_Subprogram_Contract): New routine. 1581 (Is_EVF_Expression): New routine. 1582 (Is_Specific_Tagged_Type): New routine. 1583 * sinfo.adb (Is_Inherited): New routine. 1584 (Set_Is_Inherited): New routine. 1585 * sinfo.ads Add flag Is_Inherited along with its usage in 1586 nodes. 1587 (Is_Inherited): New routine along with pragma Inline. 1588 (Set_Is_Inherited): New routine along with pragma Inline. 1589 * snames.ads-tmpl: Add predefined name "Extensions_Visible" 1590 and a new Pragma_Id for the pragma. 1591 15922014-10-30 Vincent Celier <celier@adacore.com> 1593 1594 * prj-proc.adb (Process_Case_Construction): Do not look for 1595 the ultimate extending project for a case variable. 1596 15972014-10-30 Pierre-Marie Derodat <derodat@adacore.com> 1598 1599 * exp_dbug.adb, opt.ads (GNAT_Encodings): Import from C. Define 1600 enumerators. 1601 (gnat_encodings): Define a dummy variable for the AAMP back-end. 1602 (Get_Encoded_Name): When -fgnat-encodings=all|gdb, encode names 1603 for all discrete types whose bounds do not match size and do so 1604 only for biased types when -fgnat-encodings=minimal. 1605 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not create ___XA 1606 parallel types when array bounds are constant while the lower bound is 1607 not 1. Also stop generating them because the bound type is 1608 larger than sizetype. 1609 * gcc-interface/misc.c (gnat_encodings): New. 1610 16112014-10-30 Thomas Quinot <quinot@adacore.com> 1612 1613 * opt.adb (Set_Opt_Config_Switches): For an internal unit, 1614 always reset Default_SSO to ' '. 1615 16162014-10-30 Thomas Quinot <quinot@adacore.com> 1617 1618 * freeze.adb (Freeze_Record_Type): Set SSO from default before 1619 checking SSO consistency. 1620 16212014-10-30 Javier Miranda <miranda@adacore.com> 1622 1623 * inline.adb (Check_Package_Body_For_Inlining): 1624 Cleanup this subprogram to implement exactly the behavior 1625 documented in the spec. 1626 16272014-10-30 Hristian Kirtchev <kirtchev@adacore.com> 1628 1629 * a-comutr.adb, a-cimutr.adb (Insert_Child): Add new variable First. 1630 Update the position after all insertions have taken place. 1631 16322014-10-30 Ed Schonberg <schonberg@adacore.com> 1633 1634 * sem_prag.adb (Analyze_Pragma, case License): Do not perform 1635 analysis of pragma arguments when in CodePeer mode, pragma has 1636 different format on other compilers. 1637 16382014-10-30 Thomas Quinot <quinot@adacore.com> 1639 1640 * s-os_lib.adb: Minor reformatting. 1641 16422014-10-29 Richard Sandiford <richard.sandiford@arm.com> 1643 1644 * gcc-interface/decl.c, gcc-interface/gigi.h, gcc-interface/misc.c, 1645 gcc-interface/trans.c, gcc-interface/utils.c, gcc-interface/utils2.c: 1646 Remove redundant enum from machine_mode. 1647 16482014-10-28 Andrew MacLeod <amacleod@redhat.com> 1649 1650 * gcc-interface/trans.c: Adjust include files. 1651 * gcc-interface/utils.c: Ditto. 1652 16532014-10-27 Eric Botcazou <ebotcazou@adacore.com> 1654 1655 * gcc-interface/utils.c (create_subprog_decl): Adjust condition. 1656 16572014-10-27 Eric Botcazou <ebotcazou@adacore.com> 1658 1659 * gcc-interface/misc.c (gnat_init_options_struct): Parameterize errno 1660 support here instead of... 1661 Do not set flag_delete_dead_exceptions to 1 unconditionally. 1662 (gnat_init_gcc_eh): Set flag_delete_dead_exceptions to 1. 1663 (gnat_init_gcc_fp): ...here. 1664 16652014-10-27 Eric Botcazou <ebotcazou@adacore.com> 1666 1667 * gcc-interface/trans.c (gnat_to_gnu) <N_Real_Literal>: Minor tweaks. 1668 16692014-10-27 Eric Botcazou <ebotcazou@adacore.com> 1670 1671 * gcc-interface/utils.c (create_var_decl_1): For a variable declared 1672 in the unit, set TREE_PUBLIC only if it has static storage duration. 1673 16742014-10-27 Eric Botcazou <ebotcazou@adacore.com> 1675 1676 * gcc-interface/decl.c (gnat_to_gnu_entity): Apply special treatment 1677 of derived packed array types to constrained subtypes only. 1678 16792014-10-27 Eric Botcazou <ebotcazou@adacore.com> 1680 1681 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove 1682 superfluous computation for the max size. 1683 <E_Array_Subtype>: Likewise. Make sure that the max size calculation 1684 does not overflow at compile time. 1685 16862014-10-23 Ed Schonberg <schonberg@adacore.com> 1687 1688 * sem_eval.adb (Check_Non_Static_Context): Do not set 1689 Is_Machine_Number on a literal of a fixed-point type. 1690 16912014-10-23 Robert Dewar <dewar@adacore.com> 1692 1693 * mlib-prj.adb, sem_ch4.adb, exp_ch3.adb: Minor reformatting. 1694 16952014-10-23 Pierre-Marie Derodat <derodat@adacore.com> 1696 1697 * exp_dbug.ads: Update ___XA parallel type specification. 1698 16992014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1700 1701 * sem_ch3.adb (Copy_Array_Subtype_Attributes): Inherit the rep 1702 chain of the source type. 1703 * sem_ch13.adb (Analyze_Aspect_Specifications): Minor 1704 reformatting of an error message. 1705 * sem_util.adb (Inherit_Rep_Item_Chain): Do not inherit a rep 1706 chain that has been inherited already. 1707 17082014-10-23 Ed Schonberg <schonberg@adacore.com> 1709 1710 * sem_ch6.adb (Analyze_Expression_Function): Simplify analysis 1711 in generic context, and generate body in this case as well, 1712 to simplify ASIS traversals on the construct. 1713 17142014-10-23 Ed Schonberg <schonberg@adacore.com> 1715 1716 * sem_ch4.adb (Complete_Object_Operation): Indicate that the 1717 scope of the operation (s) is referenced, to prevent spurious 1718 warnings about unused units. 1719 17202014-10-23 Johannes Kanig <kanig@adacore.com> 1721 1722 * errout.adb (Error_Msg_Internal): Copy check flag, increment 1723 check msg count. 1724 * erroutc.adb (Delete_Msg) adjust check msg count. 1725 (Output_Msg_Text) handle check msg case (do nothing). 1726 (Prescan_Message) recognize check messages with severity prefixes. 1727 * errutil.adb (Error_Msg) handle check flag, adjust counter. 1728 17292014-10-23 Ed Schonberg <schonberg@adacore.com> 1730 1731 * sem_eval.adb (Subtypes_Statically_Match): For a generic actual 1732 type, check for the presence of discriminants in its parent type, 1733 against the presence of discriminants in the context type. 1734 17352014-10-23 Tristan Gingold <gingold@adacore.com> 1736 1737 * adaint.c: __gnat_get_file_names_case_sensitive: Default is 1738 true on arm-darwin. 1739 17402014-10-23 Arnaud Charlet <charlet@adacore.com> 1741 1742 * pprint.adb (Expression_Image): Add handling of quantifiers. 1743 17442014-10-23 Ed Schonberg <schonberg@adacore.com> 1745 1746 * exp_pakd.adb (Expand_Packed_Element_Reference): If the 1747 prefix is a source entity, generate a reference to it before 1748 transformation, because rewritten node might not generate a 1749 proper reference, leading to spurious warnings. 1750 17512014-10-23 Tristan Gingold <gingold@adacore.com> 1752 1753 * init.c: Fix thinko in previous patch. 1754 17552014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1756 1757 * sem_ch3.adb (Decimal_Fixed_Point_Type_Declaration): 1758 Inherit the rep chain of the implicit base type. 1759 (Floating_Point_Type_Declaration): Inherit the rep chain of the 1760 implicit base type. 1761 (Ordinary_Fixed_Point_Type_Declaration): Inherit the rep chain of the 1762 implicit base type. 1763 (Signed_Integer_Type_Declaration): Inherit the rep chain of the 1764 implicit base type. 1765 * sem_util.ads, sem_util.adb (Inherit_Rep_Item_Chain): New routine. 1766 17672014-10-23 Pascal Obry <obry@adacore.com> 1768 1769 * g-regist.adb, g-regist.ads: Add support for reading 32bit or 64bit 1770 view of the registry. 1771 17722014-10-23 Ed Schonberg <schonberg@adacore.com> 1773 1774 * exp_ch3.adb (Expand_N_Object_Declaration): If type is abstract, 1775 return without expanding expression, to prevent subsequent crash. 1776 * freeze.adb: better error message for illegal declaration. 1777 17782014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1779 1780 * sysdep.c (__gnat_localtime_tzoff): Properly delimit the 1781 substring which represents the time zone on VxWorks. 1782 17832014-10-23 Vincent Celier <celier@adacore.com> 1784 1785 * gnatls.adb: If --RTS= was not used, check if there is a default 1786 runtime. If there is none, in verbose mode, indicate that the 1787 default runtime is not available and show only the current 1788 directory in the source and the object search paths. 1789 17902014-10-23 Ed Schonberg <schonberg@adacore.com> 1791 1792 * sem_ch6.adb (Process_Formals): A thunk procedure with a 1793 parameter of a limited view does not need a freeze node. 1794 17952014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1796 1797 * sem_ch7.adb (Analyze_Package_Body_Helper): 1798 The logic which hides local entities from external 1799 visibility is now contained in routine Hide_Public_Entities. 1800 (Hide_Public_Entities): New routine. Object and subprogram 1801 renamings are now hidden from external visibility the same way 1802 objects are. 1803 18042014-10-23 Ed Schonberg <schonberg@adacore.com> 1805 1806 * sem_attr.adb (Analyze_Attribute): The prefix of attribute Elaborated 1807 does not require freezing, in particular if it denotes a generic 1808 function. 1809 18102014-10-23 Yannick Moy <moy@adacore.com> 1811 1812 * sem_prag.adb (Analyze_Pragma/Pragma_Inline & Pragma_Inline_Always): 1813 Disable analysis in GNATprove mode. 1814 18152014-10-23 Arnaud Charlet <charlet@adacore.com> 1816 1817 * mlib-prj.adb: Remove obsolete references to libdecgnat (VMS only). 1818 18192014-10-23 Arnaud Charlet <charlet@adacore.com> 1820 1821 * gnat1drv.adb (Adjust_Global_Switches): Ignore style check 1822 pragmas in codepeer mode. 1823 18242014-10-23 Gary Dismukes <dismukes@adacore.com> 1825 1826 * gnat_rm.texi: Minor syntax fix for pragma Annotate (missing ','). 1827 18282014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1829 1830 * sem_ch12.adb (Inline_Instance_Body): Alphabetize 1831 local variables and constants. Add constants Save_SM and Save_SMP 1832 to capture SPARK_Mode-related attributes. Compile the inlined 1833 body with the SPARK_Mode of the enclosing context. 1834 18352014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1836 1837 * sinfo.adb (Elaboration_Boolean): Removed. 1838 (Set_Elaboration_Boolean): Removed. 1839 * sinfo.ads Remove attribute Elaboration_Boolean along with its 1840 occurrence in nodes. 1841 (Elaboration_Boolean): Removed along with pragma Inline. 1842 (Set_Elaboration_Boolean): Removed along with pragma Inline. 1843 18442014-10-23 Ed Schonberg <schonberg@adacore.com> 1845 1846 * sem_ch3.adb (Constant_Redeclaration): Make error message more 1847 explicit on a deferred constant whose object_definition is an 1848 anonymous array. 1849 18502014-10-23 Vincent Celier <celier@adacore.com> 1851 1852 * gnatls.adb: Never call Targparm.Get_Target_Parameters. 1853 18542014-10-23 Ed Schonberg <schonberg@adacore.com> 1855 1856 * sem_ch6.adb (Analyze_Expression_Function): In a generic 1857 context do not create a body, and only pre-analyze the expression, 1858 which may include incomplete views. 1859 18602014-10-23 Robert Dewar <dewar@adacore.com> 1861 1862 * sem_type.adb: Minor code reorganization (use Nkind_In, Ekind_In). 1863 * sem_ch3.adb: Minor reformatting. 1864 18652014-10-23 Ed Schonberg <schonberg@adacore.com> 1866 1867 * sem_ch12.adb (Analyze_Associations): If an actual for a formal 1868 object is a call to a parameterless expression function, add 1869 the function to the list of actuals to freeze. 1870 * freeze.adb (Check_Expression_Function): Create freeze nodes of 1871 outer types that may be references in the body of the expression. 1872 18732014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1874 1875 * exp_util.ads, checks.ads: Minor comment reformatting. 1876 18772014-10-23 Javier Miranda <miranda@adacore.com> 1878 1879 * sem_eval (Test_In_Range): Disable removal of range_check for 1880 VM targets. 1881 18822014-10-23 Robert Dewar <dewar@adacore.com> 1883 1884 * erroutc.adb (Validate_Specific_Warnings): Fix test for -W 1885 messages, which got disabled when we unconditionally added an 1886 asterisk at the start of the string. 1887 18882014-10-23 Vincent Celier <celier@adacore.com> 1889 1890 * gnatls.adb: Ensure that "gnatls -l" works even when there is 1891 no default runtime. 1892 18932014-10-23 Eric Botcazou <ebotcazou@adacore.com> 1894 1895 * sem_ch3.adb (Build_Derived_Private_Type): When the parent is 1896 untagged and has discriminants, build the implicit full view after 1897 building the derived type. Capture original declaration and type 1898 here instead of... 1899 (Copy_And_Build): ...here. 1900 * sem_type.adb (Full_View_Covers): Handle the Underlying_Full_View. 1901 19022014-10-23 Hristian Kirtchev <kirtchev@adacore.com> 1903 1904 * checks.adb (Ensure_Valid): Update the subprogram 1905 profile. Propagate the contex attributes to Insert_Valid_Check. 1906 (Insert_Valid_Check): Update the subprogram profile. Propagate 1907 the attributes of the context to Duplicate_Subexpr_No_Checks. 1908 (Validity_Check_Range): Update the subprogram profile. Propagate 1909 the context attribute to Ensure_Valid. 1910 * checks.ads (Ensure_Valid): Update the subprogram profile 1911 along with the comment on usage. 1912 (Insert_Valid_Check): Update the subprogram profile along with the 1913 comment on usage. 1914 (Validity_Check_Range): Update the subprogram profile along with 1915 the comment on usage. 1916 * exp_util.adb (Build_Temporary): New routine. 1917 (Duplicate_Subexpr_No_Checks): Update the subprogram 1918 profile. Propagate the attributes of the context to Remove_Side_Effects. 1919 (Remove_Side_Effects): Update the subprogram profile. Update all calls 1920 to Make_Temporary to invoke Build_Temporary. 1921 * exp_util.ads (Duplicate_Subexpr_No_Checks): Update 1922 the subprogram profile along with the comment on usage. 1923 (Remove_Side_Effects): Update the subprogram profile along with 1924 the comment on usage. 1925 * sem_ch3.adb (Process_Range_Expr_In_Decl): Pass the subtype 1926 to the validity check machinery. Explain the reason for this 1927 propagation. 1928 19292014-10-23 Robert Dewar <dewar@adacore.com> 1930 1931 * a-strsea.adb: Minor reformatting. 1932 19332014-10-23 Thomas Quinot <quinot@adacore.com> 1934 1935 * bcheck.adb (Check_Consistent_SSO_Default): Exclude internal 1936 units from consistency check. 1937 * gnat_rm.texi (Default_Scalar_Storage_Order): Document that 1938 consistency check excludes run-time units. 1939 19402014-10-23 Ed Schonberg <schonberg@adacore.com> 1941 1942 * a-strsea.adb (Find_Token): Enable constraint checking in this 1943 procedure, so that even when compiling with checks suppressed, as is 1944 the case for the run-time, an exception is raised in this routine when 1945 the input meets the conditions described in RM 2005 A.4.3 (68/1). 1946 19472014-10-20 Eric Botcazou <ebotcazou@adacore.com> 1948 1949 * sem_ch3.adb (Build_Derived_Private_Type): When the parent 1950 is untagged and has discriminants, build the implicit full 1951 view even if the derived type is a completion, and make it 1952 the Underlying_Full_View of the type. 1953 (Copy_And_Build): Fix Is_Completion actual parameter in the calls to 1954 Build_Derived_Type. 1955 (Build_Derived_Record_Type): Likewise. 1956 19572014-10-20 Ed Schonberg <schonberg@adacore.com> 1958 1959 * sem_ch13.adb: Add guard to convention setting. 1960 19612014-10-20 Robert Dewar <dewar@adacore.com> 1962 1963 * sem_ch3.adb, prj-proc.adb, prj-proc.ads, prj-conf.adb: Minor 1964 reformatting. 1965 19662014-10-20 Robert Dewar <dewar@adacore.com> 1967 1968 * par-prag.adb (Add_List_Pragma_Entry): New procedure. 1969 * par.adb (P_Pragma): Document requirement to handle multiple calls. 1970 19712014-10-20 Robert Dewar <dewar@adacore.com> 1972 1973 * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): 1974 Fix error of bad inheritance of this pragma from with'ed unit. 1975 19762014-10-20 Ed Schonberg <schonberg@adacore.com> 1977 1978 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Point): For a subtype, 1979 inherit convention from parent type, because the subtype may 1980 have been declared on a partial view, prior to the pragma on 1981 the parent. 1982 19832014-10-20 Olivier Hainque <hainque@adacore.com> 1984 Tristan Gingold <gingold@adacore.com> 1985 1986 * gcc-interface/Makefile.in: Handle arm-darwin and VxWorks 7. 1987 Misc clean ups. 1988 19892014-10-20 Nicolas Roche <roche@adacore.com> 1990 1991 * gcc-interface/Make-lang.in: ensure that automatically generated 1992 dependency are referencing generated gnatvsn rather than original 1993 one. 1994 19952014-10-20 Gary Dismukes <dismukes@adacore.com> 1996 1997 * gnat_ugn.texi: Minor reformatting. 1998 * sem_ch3.adb: Minor reformatting. 1999 20002014-10-20 Vincent Celier <celier@adacore.com> 2001 2002 * prj-attr.adb: New project level attribute Runtime. 2003 * prj-conf.adb (Get_Project_Runtimes): New procedure to get 2004 the attributes Runtime declared in the main project, to use 2005 in auto-configuration. 2006 (Get_Or_Create_Configuration_File): Call Get_Project_Runtimes. 2007 * prj-proc.adb (Runtime_Defaults): New table to store 2008 the default values of attributes Runtime (<language>). 2009 (Set_Default_Runtime_For): New procedure to store the default 2010 value of a Runtime (<language>) in table Runtime_Defaults. 2011 (Expression): Use the value stored in table Runtime_Defaults as 2012 the default for Runtime (<language>). 2013 * prj-proc.ads (Set_Default_Runtime_For): New procedure. 2014 * prj.ads (Attribute_Default_Value): New enumerated value 2015 Runtime_Value. 2016 20172014-10-20 Ed Schonberg <schonberg@adacore.com> 2018 2019 * sem_ch3.adb (Analyze_Object_Declaration): If the type is 2020 an unconstrained unchecked_union type, rewrite declaration 2021 as a renaming to prevent attempt to retrieve non- existent 2022 discriminants from expression. 2023 20242014-10-20 Ed Schonberg <schonberg@adacore.com> 2025 2026 * gnat_ugn.texi: Minor reformatting. 2027 20282014-10-20 Tristan Gingold <gingold@adacore.com> 2029 2030 * init.c (__gnat_is_stack_guard): Don't use mach_vm_region_recurse on 2031 arm-darwin. 2032 * raise-gcc.c: Add ATTRIBUTE_UNUSED to remove warnings for 2033 unused arguments. 2034 20352014-10-20 Hristian Kirtchev <kirtchev@adacore.com> 2036 2037 * sem_attr.adb (Analyze_Attribute): Replace 2038 variables CS and PS with Proc_Id and Subp_Id to better illustrate 2039 their purpose. Account for the case where _Postconditions 2040 has not been generated yet and the context is aspect/pragma 2041 Refined_Post. In that scenario the expected prefix of attribute 2042 'Result is the current scope. 2043 20442014-10-20 Robert Dewar <dewar@adacore.com> 2045 2046 * par-ch4.adb (P_Expression): Handle extraneous comma/semicolon 2047 in middle of expression with logical operators. 2048 20492014-10-20 Robert Dewar <dewar@adacore.com> 2050 2051 * par-ch13.adb (Possible_Misspelled_Aspect): New function. 2052 20532014-10-20 Steve Baird <baird@adacore.com> 2054 2055 * pprint.adb: Improve Expression_Image function. 2056 20572014-10-20 Robert Dewar <dewar@adacore.com> 2058 2059 * gnat_rm.texi: Document No_Tagged_Streams pragma and aspect. 2060 * snames.ads-tmpl: Add entry for pragma No_Tagged_Streams. 2061 * aspects.ads, aspects.adb: Add aspect No_Tagged_Streams. 2062 * einfo.adb (No_Tagged_Streams_Pragma): New field. 2063 * einfo.ads: Minor reformatting (reorder entries). 2064 (No_Tagged_Streams_Pragma): New field. 2065 * exp_ch3.adb: Minor comment update. 2066 * opt.ads (No_Tagged_Streams): New variable. 2067 * par-prag.adb: Add dummy entry for pragma No_Tagged_Streams. 2068 * sem.ads (Save_No_Tagged_Streams): New field in scope record. 2069 * sem_attr.adb (Check_Stream_Attribute): Check stream ops 2070 prohibited by No_Tagged_Streams. 2071 * sem_ch3.adb (Analyze_Full_Type_Declaration): Set 2072 No_Tagged_Streams_Pragma. 2073 (Analyze_Subtype_Declaration): ditto. 2074 (Build_Derived_Record_Type): ditto. 2075 (Record_Type_Declaration): ditto. 2076 * sem_ch8.adb (Pop_Scope): Restore No_Tagged_Streams. 2077 (Push_Scope): Save No_Tagged_Streams. 2078 * sem_prag.adb (Analyze_Pragma, case No_Tagged_Streams): Implement new 2079 pragma. 2080 20812014-10-20 Robert Dewar <dewar@adacore.com> 2082 2083 * sem_ch3.adb, prj-proc.adb, sem_ch4.adb, prj-env.adb, lib.ads, 2084 sem_ch13.adb: Minor reformatting. 2085 20862014-10-20 Javier Miranda <miranda@adacore.com> 2087 2088 * exp_ch3.adb (Expand_N_Object_Declaration): Expand the 2089 declaration of a class-wide limited object containing an 2090 initializing expression into a renaming declaration. Required to 2091 avoid passing such declaration to the backend and also to avoid 2092 generating an extra copy. 2093 20942014-10-20 Eric Botcazou <ebotcazou@adacore.com> 2095 2096 * inline.adb (List_Inlining_Info): Minor tweaks. 2097 (Add_Inlined_Body): Inline the enclosing package 2098 if it is not internally generated, even if it doesn't come 2099 from source. 2100 21012014-10-20 Ed Schonberg <schonberg@adacore.com> 2102 2103 * sem_ch4.adb (Process_Function_Call): If the first actual 2104 denotes a discrete type, the mode must be interpreted as a slice 2105 of an array returned by a parameterless call. 2106 21072014-10-20 Vasiliy Fofanov <fofanov@adacore.com> 2108 2109 * prj-env.ads, prj-env.adb (Get_Runtime_Path): No longer inhibit 2110 searching for runtime referenced by a simple name on a project path. 2111 21122014-10-20 Olivier Hainque <hainque@adacore.com> 2113 2114 * vxworks-x86-link.spec: New file. 2115 * system-vxworks-x86.ads: Add pragma Linker_Options to link with 2116 vxworks-x86-link.spec. 2117 21182014-10-20 Vincent Celier <celier@adacore.com> 2119 2120 * opt.ads (Origin_Of_Target): New type. 2121 (Target_Origin): New variable. 2122 * prj-conf.adb (Parse_Project_And_Apply_Config): Record 2123 Target_Value and Target_Origin. If target was not specified 2124 on the command line with --target=, check if attribute Target 2125 is declared in the main project. If it is and it is not the 2126 native target, parse again the projects so that 'Target get 2127 the new value. Fail if the target has changed again. Invoke 2128 Process_Project_And_Apply_Config with Do_Phase_1 set to False 2129 is Process_Project_Tree_Phase_1 has already been invoked. 2130 * prj-conf.ads (Process_Project_And_Apply_Config): New Boolean 2131 parameter Do_Phase_1, defaulted to True. 2132 * prj-proc.adb (Expression): Check the special values and 2133 defaults for attribute Target. 2134 21352014-10-20 Ed Schonberg <schonberg@adacore.com> 2136 2137 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Do not analyze 2138 the subprogram spec of the body in full, because it will be 2139 reanalyzed when the declaration itself is analyzed; otherwise. a 2140 formal may end up duplicated in the list of formals leading to 2141 spurious conformance errors with an existing declaration. 2142 21432014-10-20 Ed Schonberg <schonberg@adacore.com> 2144 2145 * sem_ch13.adb: Improve error recovery on illegal aspect. 2146 21472014-10-20 Arnaud Charlet <charlet@adacore.com> 2148 2149 * set_targ.adb (Write_Target_Dependent_Values, Write_Line): 2150 Fix calling C APIs with no trailing NUL char by calling better 2151 wrappers instead. 2152 21532014-10-20 Tristan Gingold <gingold@adacore.com> 2154 2155 * gnat_ugn.texi: Document that gdb users must be in group 2156 _developer on mac os. 2157 21582014-10-20 Arnaud Charlet <charlet@adacore.com> 2159 2160 * a-tgdico.ads: Fix typo. 2161 21622014-10-20 Ed Schonberg <schonberg@adacore.com> 2163 2164 * exp_aggr.adb (Convert_To_Assignments): Do not create a 2165 transient scope for a component whose type requires it, if the 2166 context is an initialization procedure, because the target of 2167 the assignment must be visible outside of the block. 2168 21692014-10-20 Tristan Gingold <gingold@adacore.com> 2170 2171 * tracebak.c: Define PC_ADJUST for arm-darwin. 2172 * env.c: Remove darwin specific code. 2173 * raise-gcc.c (__gnat_Unwind_ForcedUnwind): Error on arm-darwin. 2174 21752014-10-20 Ed Schonberg <schonberg@adacore.com> 2176 2177 * sem_ch3.adb (Analyze_Full_Type_Declaration): If previous view 2178 is incomplete rather than private, and full type declaration 2179 has aspects, analyze aspects on the full view rather than 2180 the incomplete view, to prevent freezing anomalies with the 2181 class-wide type. 2182 21832014-10-17 Robert Dewar <dewar@adacore.com> 2184 2185 * exp_ch9.adb (Expand_N_Task_Body): Add defense against 2186 previous errors. 2187 * freeze.adb (Freeze_Entity): Add defense against checking null 2188 scope for generic. 2189 * restrict.adb (Tasking_Allowed): Add test for No_Run_Time mode. 2190 * sem_ch13.adb (Freeze_Entity_Checks): Add defense against 2191 previous errors. 2192 * sem_ch9.adb (Analyze_Task_Type_Declaration): Give error if 2193 in No_Run_Time mode. 2194 21952014-10-17 Robert Dewar <dewar@adacore.com> 2196 2197 * prj-makr.adb: Minor reformatting. 2198 21992014-10-17 Robert Dewar <dewar@adacore.com> 2200 2201 * gnatcmd.adb, make.adb, prj-part.adb, gnatlink.adb, prj-nmsc.adb, 2202 prj-conf.adb, prj-env.adb: Use Is_Directory_Separator where possible. 2203 22042014-10-17 Ed Schonberg <schonberg@adacore.com> 2205 2206 * exp_prag.adb (Undo_Initialization): If Initialize_Scalars 2207 is enabled, code will be generated for some composite types 2208 to initialize an object after its declaration. If there is 2209 a subsequent Import pragma for the object, that code must be 2210 removed as specified byw the semantics of the pragma, and to 2211 prevent out-of-order elaboration issues in the back-end. 2212 22132014-10-17 Hristian Kirtchev <kirtchev@adacore.com> 2214 2215 * exp_ch4.adb (Expand_N_Op_Concat): Keep concatenation operator 2216 wrapping mechanism under debug flag -gnatd.h. 2217 * debug.adb: Claim debug switch -gnatd.h. 2218 22192014-10-17 Doug Rupp <rupp@adacore.com> 2220 2221 * gcc-interface/Makefile.in: Enable the socket runtime bits 2222 for Android. 2223 22242014-10-17 Ed Schonberg <schonberg@adacore.com> 2225 2226 * sem_ch13.adb (Add_Invariants, Replace_Type_References): Do 2227 not perform the replacement on the expression for an inherited 2228 class-wide invariant if in ASIS_Mode and the type reference is 2229 already the prefix of a 'Class attribute reference: the expression 2230 has already been preanalyzed and the replacement performed when 2231 first encountered on the declaration of the parent type. 2232 22332014-10-17 Robert Dewar <dewar@adacore.com> 2234 2235 * sem_ch5.adb, sem_ch7.adb, prj-nmsc.adb, sem_ch13.adb, exp_ch3.adb: 2236 Minor reformatting. 2237 22382014-10-17 Ed Schonberg <schonberg@adacore.com> 2239 2240 * exp_ch3.adb (Build_Component_Invariant_Call): Retrieve Invariant 2241 subprogram from base type. 2242 * sem_ch7.adb (Analyze_Package_Specification): Build invariant 2243 subprogram for private type, not any of its subtypes. 2244 * sem_ch13.adb (Build_Invariant_Procedure_Declaration): Set type 2245 of procedure entity, because a call to it may be generated in 2246 a client unit before the corresponding subprogram declaration 2247 is analyzed. 2248 22492014-10-17 Vincent Celier <celier@adacore.com> 2250 2251 * prj-nmsc.adb (Get_Directories): Do not create directories 2252 when a project is abstract. 2253 22542014-10-17 Ed Schonberg <schonberg@adacore.com> 2255 2256 * sem_ch5.adb (Analyze_Iterator_Specification): If the domain 2257 of iteration is given by an expression that is not an array type, 2258 verify that its type implements an iterator iterface. 2259 22602014-10-17 Robert Dewar <dewar@adacore.com> 2261 2262 * sem_attr.adb (Eval_Attribute): Ensure that attribute 2263 reference is not marked as being a static expression if the 2264 prefix evaluation raises CE. 2265 22662014-10-17 Robert Dewar <dewar@adacore.com> 2267 2268 * exp_pakd.adb: Move bit packed entity tables to spec. 2269 * exp_pakd.ads: Move bit packed entity tables here from body. 2270 * freeze.adb (Freeze_Array_Type): Check that packed array type 2271 is supported. 2272 * rtsfind.adb (PRE_Id_Table): New table (Entity_Not_Defined): 2273 Specialize messages using PRE_Id_Table. 2274 * uintp.ads, uintp.adb (UI_Image): New functional form. 2275 22762014-10-17 Robert Dewar <dewar@adacore.com> 2277 2278 * aspects.ads, aspects.adb: Add Suppress_Initialization aspect. 2279 * einfo.ads, einfo.adb (Suppress_Initialization): Now applies to 2280 E_Variable. 2281 * exp_ch3.adb (Default_Initialize_Object): Handle 2282 Suppress_Initialization. 2283 * exp_prag.adb (Expand_Pragma_Suppress_Initialization): New 2284 procedure (Expand_N_Pragma): Handle Suppress_Initialization 2285 (Expand_Pragma_Import_Or_Interface): Use Undo_Initialization 2286 (Undo_Initialization): New procedure. 2287 * sem_prag.adb (Analyze_Pragma, case Suppress_Initialization): 2288 This is now allowed for E_Variable case. 2289 * gnat_rm.texi: Document new aspect Suppress_Initialization 2290 Suppress_Initialization aspect/pragma can apply to variable. 2291 * einfo.ads: Minor reformatting. 2292 22932014-10-17 Arnaud Charlet <charlet@adacore.com> 2294 2295 * spark_xrefs.ads: Add documentation pointer to Flow_Computed_Globals. 2296 22972014-10-17 Robert Dewar <dewar@adacore.com> 2298 2299 * cstand.adb (Create_Standard): Mark Short_Integer as 2300 implementation defined. 2301 * sem_util.adb (Set_Entity_With_Checks): Avoid blow up for 2302 compiler built with assertions for No_Implementation_Identifiers test. 2303 23042014-10-17 Robert Dewar <dewar@adacore.com> 2305 2306 * aspects.ads: Documentation fix, aspect Lock_Free does have a 2307 corresponding pragma. 2308 * gnat_rm.texi: Document implementation defined boolean aspects 2309 as boolean. 2310 23112014-10-17 Ed Schonberg <schonberg@adacore.com> 2312 2313 * sem_ch13.adb (Add_Invariants): For a class-wide type invariant, 2314 preserve semantic information on the invariant expression 2315 (typically a function call) because it may be inherited by a 2316 type extension in a different unit, and it cannot be resolved 2317 by visibility elsewhere because it may refer to local entities. 2318 23192014-10-17 Robert Dewar <dewar@adacore.com> 2320 2321 * gnat_rm.texi: Document that string literal can be used for 2322 pragma Warnings when operating in Ada 83 mode. 2323 23242014-10-17 Ed Schonberg <schonberg@adacore.com> 2325 2326 * freeze.adb (Find_Aggregate_Component_Desig_Type): New 2327 subsidiary function to Freeze_ Expression, used to determine 2328 whether an aggregate for an array of access types also freezes the 2329 designated type, when some aggregate components are allocators. 2330 23312014-10-17 Ed Schonberg <schonberg@adacore.com> 2332 2333 * a-strsea.adb (Find_Token): AI05-031 indicates that the 2334 procedure must raise Index_Error when Source is not empty and 2335 the From parameter is not within the range of the Source string. 2336 23372014-10-17 Robert Dewar <dewar@adacore.com> 2338 2339 * sem_prag.adb (Is_Static_String_Expression): Allow string 2340 literal in Ada 83 mode. 2341 23422014-10-17 Vincent Celier <celier@adacore.com> 2343 2344 * prj-conf.adb (Get_Config_Switches): In CodePeer mode, do 2345 not take into account any compiler command from package IDE. 2346 23472014-10-17 Ed Schonberg <schonberg@adacore.com> 2348 2349 * sem_ch12.adb (Build_Function_Wrapper): The formals of the 2350 wrapper must have the same identifiers as those of the formal 2351 subprogram, because calls within the generic may use named 2352 associations. 2353 23542014-10-17 Robert Dewar <dewar@adacore.com> 2355 2356 * sem_ch3.adb, a-strsea.adb: Minor reformatting. 2357 * par-ch6.adb (P_Subprogram): Fix bad handling of null procedures. 2358 23592014-10-17 Ed Schonberg <schonberg@adacore.com> 2360 2361 * sem_ch3.adb (Build_Derived_Enumeration_Type): Propagate aspect 2362 specfications from original type declaration to declaration of 2363 implicit base, because original node is rewritten as a subtype 2364 declaration on which type aspects do not belong. 2365 23662014-10-17 Hristian Kirtchev <kirtchev@adacore.com> 2367 2368 * sem_ch3.adb (Propagate_Default_Init_Cond_Attributes): A derived type 2369 inherits the attributes related to pragma Default_Initial_Condition 2370 from its parent type. 2371 23722014-10-17 Ed Schonberg <schonberg@adacore.com> 2373 2374 * a-strsea.adb (Index - versions with a From parameter): 2375 According to AI05-056, the Index functions with a From parameter 2376 return 0 if the source is an empty string. 2377 23782014-10-17 Hristian Kirtchev <kirtchev@adacore.com> 2379 2380 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Disable 2381 the consistency checks in ASIS mode. 2382 23832014-10-17 Arnaud Charlet <charlet@adacore.com> 2384 2385 * s-expmod.ads: Minor typo fix. 2386 23872014-10-17 Robert Dewar <dewar@adacore.com> 2388 2389 * sem_util.adb: Minor reformatting. 2390 23912014-10-17 Ed Schonberg <schonberg@adacore.com> 2392 2393 * sem_ch12.adb (Build_Function_Wrapper): Build wrappers for 2394 actuals that are defaulted subprograms of the formal subprogram 2395 declaration. 2396 23972014-10-17 Robert Dewar <dewar@adacore.com> 2398 2399 * exp_ch4.adb (Expand_N_Op_Eq): Make sure we deal with the 2400 implementation base type. 2401 * sinfo.ads: Add a note for N_Op_Eq and N_Op_Ne that record 2402 operands are always expanded out into component comparisons. 2403 24042014-10-17 Robert Dewar <dewar@adacore.com> 2405 2406 * s-vallli.adb: Minor comment correction. 2407 * s-valuti.ads: Minor comment reformatting. 2408 24092014-10-17 Robert Dewar <dewar@adacore.com> 2410 2411 * gnat_rm.texi: Document System.Atomic_Counters. 2412 * impunit.adb: Add System.Atomic_Counters (s-atocou.ads) to the 2413 list of user- accessible units added as children of System. 2414 * s-atocou.ads: Update comment. 2415 24162014-10-17 Arnaud Charlet <charlet@adacore.com> 2417 2418 * s-expmod.ads: Add comments. 2419 24202014-10-17 Hristian Kirtchev <kirtchev@adacore.com> 2421 2422 * sem_ch3.adb (Build_Derived_Record_Type): Remove the propagation 2423 of all attributes related to pragma Default_Initial_Condition. 2424 (Build_Derived_Type): Propagation of all attributes related 2425 to pragma Default_Initial_Condition. 2426 (Process_Full_View): Account for the case where the full view derives 2427 from another private type and propagate the attributes related 2428 to pragma Default_Initial_Condition to the private view. 2429 (Propagate_Default_Init_Cond_Attributes): New routine. 2430 * sem_util.adb: Alphabetize various routines. 2431 (Build_Default_Init_Cond_Call): Use an unchecked type conversion 2432 when calling the default initial condition procedure of a private type. 2433 (Build_Default_Init_Cond_Procedure_Declaration): Prevent 2434 the generation of multiple default initial condition procedures. 2435 24362014-10-17 Robert Dewar <dewar@adacore.com> 2437 2438 * prj-conf.adb: Revert previous change. 2439 24402014-10-17 Robert Dewar <dewar@adacore.com> 2441 2442 * lib-writ.ads, s-valdec.ads: Minor reformatting. 2443 24442014-10-17 Ed Schonberg <schonberg@adacore.com> 2445 2446 * sem_ch12.adb: Additional work on function wrappers. 2447 24482014-10-17 Eric Botcazou <ebotcazou@adacore.com> 2449 2450 * exp_util.adb (Possible_Bit_Aligned_Component): Also recurse 2451 on the renamed object of renamings. 2452 24532014-10-17 Vincent Celier <celier@adacore.com> 2454 2455 * prj-conf.adb (Parse_Project_And_Apply_Config): In CodePeer 2456 mode, always use the native target. 2457 24582014-10-16 Andrew MacLeod <amacleod@redhat.com> 2459 2460 * gcc-interface/misc.c: Adjust include files. 2461 24622014-10-13 Eric Botcazou <ebotcazou@adacore.com> 2463 Alan Modra <amodra@gmail.com> 2464 2465 PR ada/63225 2466 * uintp.adb (Vector_To_Uint): Move from here to... 2467 * uintp.ads (UI_Vector): Make public. 2468 (Vector_To_Uint): ...here. 2469 24702014-10-10 Robert Dewar <dewar@adacore.com> 2471 2472 * freeze.adb, sem_attr.adb: Minor reformatting. 2473 24742014-10-10 Johannes Kanig <kanig@adacore.com> 2475 2476 * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cforma.ads, 2477 a-cforse.ads, a-cofove.ads: add "Default_Initial_Condition" 2478 to container type. 2479 24802014-10-10 Vincent Celier <celier@adacore.com> 2481 2482 * prj-conf.adb (Do_Autoconf): In Codepeer mode, do not try to get 2483 any configuration switches from the project file. 2484 24852014-10-10 Ed Schonberg <schonberg@adacore.com> 2486 2487 * sem_ch12.adb (Build_Wrapper): Renamed as Build_Operator_Wrapper. 2488 (Build_Function_Wrapper): New function, to construct a wrapper 2489 function for actuals that are functions with an arbitrary 2490 number of parameters. Used in GNATProve mode to simplify proof 2491 propagation in instantiations. 2492 24932014-10-10 Robert Dewar <dewar@adacore.com> 2494 2495 * freeze.adb, gnat1drv.adb, sem_ch13.adb: Minor reformatting and 2496 code clean up. 2497 24982014-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2499 2500 * sem_res.adb (Is_OK_Volatile_Context): Allow 2501 a volatile object reference to appear as the expression of a 2502 type conversion. 2503 25042014-10-10 Ed Schonberg <schonberg@adacore.com> 2505 2506 * sem_ch13.adb (Analyze_Aspect_Specifications, Library_Unit_Aspects): 2507 Aspect specification is legal on a local instantiation of a 2508 library-level generic unit. 2509 25102014-10-10 Gary Dismukes <dismukes@adacore.com> 2511 2512 * gnat1drv.adb (Adjust_Global_Switches): Set Front_End_Inlining 2513 if inlining has been enabled via -gnatn and the target is not GCC. 2514 25152014-10-10 Ed Schonberg <schonberg@adacore.com> 2516 2517 * freeze.adb (Freeze_Entity): Freezing a subprogram does 2518 not always freeze its profile. In particular, an attribute 2519 reference that takes the access type does not freeze the types 2520 of the formals. 2521 25222014-10-10 Robert Dewar <dewar@adacore.com> 2523 2524 * errout.adb (Adjust_Name_Case): New procedure. 2525 (Set_Msg_Node): Use Adjust_Name_Case. 2526 * errout.ads (Adjust_Name_Case): New procedure. 2527 * exp_intr.adb (Add_Source_Info): Minor code reorganization 2528 (use Ekind_In). 2529 (Write_Entity_Name): Use Errout.Adjust_Name_Case. 2530 * sem_prag.adb (Is_Non_Significant_Pragma_Reference): Review 2531 and fix up entries in Sig_Flags, and correct logical errors in 2532 function itself. 2533 * sprint.adb (Sprint_Node_Actual): Properly print string for 2534 raise statement. 2535 25362014-10-10 Ed Schonberg <schonberg@adacore.com> 2537 2538 * sem_ch3.adb (Analyze_Object_Declaration): For an object of an 2539 anonymous array type with delayed aspects, defer freezing of 2540 type until object itself is frozen. 2541 * freeze.adb (Freeze_Entity): When freezing an object of an 2542 anonymous array type with delayed aspects, remove freeze node of 2543 object after freezing type, to prevent out-of-order elaboration 2544 in the back-end. The initialization call for the object has 2545 already been constructed when expanding the object declaration. 2546 25472014-10-10 Robert Dewar <dewar@adacore.com> 2548 2549 * exp_intr.adb (Write_Entity_Name): Moved to outer level 2550 (Write_Entity_Name): Properly handle operator names 2551 (Expand_Source_Info): New procedure. 2552 * exp_intr.ads (Add_Source_Info): New procedure. 2553 25542014-10-10 Robert Dewar <dewar@adacore.com> 2555 2556 * butil.ads: Minor reformatting. 2557 * sem_ch5.adb: Code clean up. 2558 25592014-10-10 Robert Dewar <dewar@adacore.com> 2560 2561 * exp_ch11.adb (Expand_N_Raise_Statement): Handle 2562 Prefix_Exception_Messages. 2563 * opt.adb: Handle new flags Prefix_Exception_Message[_Config]. 2564 * opt.ads: New flags Prefix_Exception_Message[_Config]. 2565 * par-prag.adb: New dummy entry for pragma Prefix_Exception_Messages. 2566 * snames.ads-tmpl: Add entries for new pragma Prefix_Exception_Messages. 2567 * sem_prag.adb: Implement new pragma Prefix_Exception_Messages 2568 * gnat_rm.texi: Document pragma Prefix_Exception_Messages. 2569 25702014-10-10 Gary Dismukes <dismukes@adacore.com> 2571 2572 * sinfo.ads, gnat_ugn.texi, a-except.adb, a-except-2005.adb, 2573 raise-gcc.c Spelling changes (prolog => prologue, epilog => epilogue). 2574 25752014-10-10 Ed Schonberg <schonberg@adacore.com> 2576 2577 * sem_ch5.adb (Is_Wrapped_In_Block): Handle properly blocks that 2578 contain pragmas generated for loop invariants and type predicates. 2579 Clarify use of this subprogram. 2580 25812014-10-10 Yannick Moy <moy@adacore.com> 2582 2583 * sem_prag.adb (Analyze_Global_Item): Accept formal objects in Global 2584 contracts. 2585 * errout.adb, errout.ads (SPARK_Msg_NE): Issue error unless 2586 SPARK_Mode is Off. 2587 25882014-10-10 Vadim Godunko <godunko@adacore.com> 2589 2590 * a-stwima.adb (To_Sequence): Compute size of result array. 2591 25922014-10-10 Javier Miranda <miranda@adacore.com> 2593 2594 * gnat_ugn.texi (Interfacing with C++ at the Class Level): Update the 2595 sources of the example to avoid a warning when the Ada files are 2596 automatically generated by the binding generator. 2597 25982014-10-10 Ed Schonberg <schonberg@adacore.com> 2599 2600 * sem_attr.adb (Resolve_Attribute, case 'Update): Set 2601 Do_Range_Check on the expression of a record component 2602 association when needed, as is done for array components, when 2603 the corresponding type is a scalar type. 2604 26052014-10-10 Gary Dismukes <dismukes@adacore.com> 2606 2607 * a-coinho-shared.adb: Minor typo fix. 2608 * prj-env.ads: Minor reformatting. 2609 26102014-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2611 2612 * sem_res.adb (Resolve_String_Literal): Do not 2613 generate a string literal subtype for the default expression of 2614 a formal parameter in GNATprove mode. 2615 26162014-10-10 Yannick Moy <moy@adacore.com> 2617 2618 * errout.adb (SPARK_Msg_N): Issue error unless SPARK_Mode is Off. 2619 26202014-10-10 Ed Schonberg <schonberg@adacore.com> 2621 2622 * exp_ch5.adb (Expand_Formal_Container_Element_Loop): Analyze 2623 declaration for loop parameter before rest of loop, and set 2624 entity kind to prevent assignments to it in the user code. 2625 * sem_ch3.adb (Analyze_Object_Contract): No contracts apply to the 2626 loop parameter in an element iteration over o formal container. 2627 26282014-10-10 Robert Dewar <dewar@adacore.com> 2629 2630 * gnat_ugn.texi: Document use of user-level routines to handle 2631 e.g. col major arrays. 2632 26332014-10-10 Doug Rupp <rupp@adacore.com> 2634 2635 * s-osinte-android.adb: Fix misspelling. 2636 * gsocket.h: Tweak the Android quirks. 2637 26382014-10-10 Robert Dewar <dewar@adacore.com> 2639 2640 * errout.ads (SPARK_Msg_N): Fix spec to match change in body. 2641 26422014-10-10 Robert Dewar <dewar@adacore.com> 2643 2644 * sem_ch13.adb: Minor code reorganization. 2645 26462014-10-10 Pat Rogers <rogers@adacore.com> 2647 2648 * gnat_rm.texi: Text now indicates pragma No_Run_Time is not 2649 for users. 2650 26512014-10-10 Vadim Godunko <godunko@adacore.com> 2652 2653 * a-coinho-shared.adb: Add minor comment. 2654 * a-stzmap.adb (To_Sequence): Compute size of result array. 2655 26562014-10-10 Javier Miranda <miranda@adacore.com> 2657 2658 * exp_ch3.adb (Build_Init_Procedure): Complete the condition of an 2659 if-stmt to match its current documentation. 2660 26612014-10-10 Robert Dewar <dewar@adacore.com> 2662 2663 * sem_ch7.adb, einfo.adb, einfo.ads, sem_prag.adb, sem_ch12.adb, 2664 freeze.adb, sem_util.adb, sem_res.adb, exp_ch6.adb, exp_ch13.adb, 2665 sem_ch6.adb, sem_cat.adb, sem_disp.adb 2666 (Is_Subprogram_Or_Generic_Subprogram): New primitive. Use this primitive 2667 throughout where appropriate. 2668 26692014-10-10 Bob Duff <duff@adacore.com> 2670 2671 * a-coinho-shared.ads: Minor reformatting. 2672 * s-traceb.adb: Minor clean up. 2673 26742014-10-10 Robert Dewar <dewar@adacore.com> 2675 2676 * ali.adb (Scan_ALI): Read and process new GP flag on ALI P line. 2677 * ali.ads (GNATprove_Mode): New component in ALI table. 2678 (GNATprove_Mode_Specified): New global. 2679 * gnatbind.adb (Gnatbind): Give fatal error if any file compiled 2680 in GNATProve mode. 2681 * lib-writ.ads, lib-writ.adb (GP): New flag on P line for 2682 GNATProve_Mode. 2683 26842014-10-10 Javier Miranda <miranda@adacore.com> 2685 2686 * exp_ch3.adb (Build_Init_Procedure): Adding assertion. 2687 (Build_Init_Statement): Ensure that statements 2688 associated with the parent components are located at the beginning 2689 of the returned list of statements. 2690 26912014-10-10 Ed Schonberg <schonberg@adacore.com> 2692 2693 * sem_ch13.adb (Inherit_Aspects_At_Freeze_Node): If the full 2694 view of a private type T that has a type invariant is a scalar 2695 or constrained array type, the base type created for the full 2696 view has the same type invariant. 2697 26982014-10-10 Robert Dewar <dewar@adacore.com> 2699 2700 * exp_util.ads, sem_ch12.adb, exp_util.adb, i-fortra.ads: Minor code 2701 reorganization. 2702 27032014-09-22 Eric Botcazou <ebotcazou@adacore.com> 2704 2705 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust comment. 2706 * gcc-interface/utils.c (gnat_write_global_declarations): Fix typo. 2707 27082014-09-15 Jakub Jelinek <jakub@redhat.com> 2709 2710 * gcc-interface/Make-lang.in (check_acats_numbers0, 2711 check_acats_numbers1, check_acats_numbers2, check_acats_numbers3, 2712 check_acats_numbers4, check_acats_numbers5, check_acats_numbers6, 2713 check_acats_numbers, check_acats_subdirs): New variables. 2714 (check_acats_targets): Use $(check_acats_subdirs). 2715 (check-acats, check-acats%): Rewritten so that for parallelized 2716 testing each job runs all the chapters files, with 2717 GCC_RUNTEST_PARALLELIZE_DIR set in environment. Prepare the support 2718 directory sequentially and share it. 2719 (check-acats-subtargets): Always print just check-acats. 2720 27212014-08-25 Martin Liska <mliska@suse.cz> 2722 2723 * gcc-interface/utils.c (rest_of_subprog_body_compilation): Adjust to 2724 new cgraph interface. 2725 (gnat_write_global_declarations): Likewise. 2726 27272014-08-13 Sylvestre Ledru <sylvestre@debian.org> 2728 2729 * 9drpc.adb: Fix a typo 2730 * s-interr.ads: Likewise 2731 * s-taskin.ads: Likewise 2732 * s-traces.ads: Likewise 2733 * sysdep.c: Likewise 2734 27352014-08-12 Joel Sherrill <joel.sherrill@oarcorp.com> 2736 2737 * socket.c: For RTEMS, use correct prototype of gethostbyname_r(). 2738 * gsocket.h Add include of <unistd.h> on RTEMS. 2739 27402014-08-11 Joel Sherrill <joel.sherrill@oarcorp.com> 2741 2742 * s-osinte-rtems.adb: Correct formatting of line in license block. 2743 27442014-08-04 Claire Dross <dross@adacore.com> 2745 2746 * exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity): 2747 For an instance, look at the scope before the generic parent. 2748 27492014-08-04 Yannick Moy <moy@adacore.com> 2750 2751 * lib-writ.ads: Update comments. 2752 * sem_disp.ads, sem_disp.adb (Inherited_Subprograms): Add 2753 parameters to filter inherited subprograms. 2754 27552014-08-04 Robert Dewar <dewar@adacore.com> 2756 2757 * gnat_rm.texi: Add section on use of address clause for memory 2758 mapped I/O. 2759 27602014-08-04 Ed Schonberg <schonberg@adacore.com> 2761 2762 * sem_ch3.adb (Analyze_Subtype_Declaration): A subtype, in 2763 particular the subtype created for a generic actual, inherits 2764 invariant information from the base type. 2765 27662014-08-04 Robert Dewar <dewar@adacore.com> 2767 2768 * aspects.ads, aspects.adb: Add entries for aspect Obsolescent. 2769 * gnat_rm.texi: Add documentation for aspect Obsolescent. 2770 * sem_ch13.adb (Analyze_Aspect_Specifications): Implement aspect 2771 Obsolescent. 2772 (Check_Aspect_At_Freeze_Point): Add dummy entry for pragma Obsolescent. 2773 * s-osprim-mingw.adb: Minor reformatting. 2774 * sem_res.adb (Is_Atomic_Ref_With_Address): New function 2775 (Resolve_Indexed_Component): Rework warnings for non-atomic access 2776 (Resolve_Selected_Component): Add warnings for non-atomic access. 2777 27782014-08-04 Doug Rupp <rupp@adacore.com> 2779 2780 * g-calend.adb (timeval_to_duration, duration_to_timeval): Change sec 2781 formal to long_long. 2782 * g-calend.ads (timeval): Bump up size to accomodate sec type. 2783 * s-taprop-linux.adb (timeval_to_duration): Change sec formal to 2784 long_long 2785 * s-osprim-posix.adb (timeval): Bump up size to accomodate 2786 new sec type. 2787 (timeval_to_duration): Change sec formal to Long_Long_Integer 2788 * s-osinte-darwin.adb (timeval): Bump up 2789 size to accomodate new sec type. 2790 (timeval_to_duration): Change sec formal to long_long 2791 * s-osinte-android.adb: Likewise. 2792 * cal.c (__gnat_timeal_to_duration, __gnat_duration_to_timeval): Change 2793 sec formal from long to long long. 2794 27952014-08-04 Robert Dewar <dewar@adacore.com> 2796 2797 * sem_res.adb (Resolve_Qualified_Expression): Make sure 2798 Do_Range_Check flag gets set. 2799 28002014-08-04 Robert Dewar <dewar@adacore.com> 2801 2802 * einfo.ads, einfo.adb (Is_Standard_String_Type): New function. 2803 * exp_ch3.adb (Build_Array_Init_Proc): Use 2804 Is_Standard_String_Type. 2805 (Expand_Freeze_Array_Type): ditto. 2806 (Get_Simple_Init_Val): ditto. 2807 (Needs_Simple_Initialization): ditto. 2808 * sem_eval.adb (Eval_String_Literal): Use Is_Standard_String_Type. 2809 * sem_warn.adb (Is_Suspicious_Type): Use Is_Standard_String_Type. 2810 28112014-08-04 Pascal Obry <obry@adacore.com> 2812 2813 * adaint.c (__gnat_try_lock): Use _tcscpy and _tcscat instead of 2814 _stprintf which insert garbage into the wfull_path buffer. 2815 28162014-08-04 Arnaud Charlet <charlet@adacore.com> 2817 2818 * cal.c: Remove old VMS/nucleus code. Remove obsolete vxworks 2819 code. 2820 * fe.h: Minor reformatting. 2821 28222014-08-04 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 2823 2824 * cstreams.c: (_LARGEFILE_SOURCE): Guard definition. 2825 28262014-08-04 Robert Dewar <dewar@adacore.com> 2827 2828 * par-ch13.adb (Get_Aspect_Specifications): Improve error 2829 recovery, fixing a -gnatQ bomb. 2830 28312014-08-04 Yannick Moy <moy@adacore.com> 2832 2833 * sem_ch3.adb (Analyze_Object_Declaration): In GNATprove mode, 2834 do not generate two Itypes with the same name for an array 2835 definition. 2836 * sinfo.ads: Expand doc on GNATprove mode. 2837 28382014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2839 2840 * exp_ch3.adb (Expand_Freeze_Record_Type): Set the finalization 2841 master and storage pool attributes on the root type of an 2842 anonymous access type. 2843 * exp_ch4.adb (Expand_N_Allocator): Set the finalization master 2844 and storage pool attributes on the root type of an anonymous 2845 access type. 2846 28472014-08-04 Arnaud Charlet <charlet@adacore.com> 2848 2849 * exp_ch3.adb: Minor reformatting. 2850 * tb-alvms.c, tb-alvxw.c, tb-ivms.c: Removed. 2851 * tracebak.c: Remove use of above files. 2852 * gcc-interface/Makefile.in: Update dependencies. 2853 28542014-08-04 Pierre-Marie Derodat <derodat@adacore.com> 2855 2856 * gcc-interface/utils.c (gnat_set_type_context): Also set the 2857 context for parallel types' TYPE_STUB_DECL. Do not change 2858 anything if the context is already set for them. 2859 (gnat_pushdecl): Update the comment for calls to 2860 gnat_set_type_context to mention parallel types. 2861 (add_parallel_type): When adding a context-less parallel type to 2862 a type that has a context, propagate the context from the latter 2863 type to the former. 2864 (process_deferred_decl_context): Call gnat_set_type_context 2865 rather than manually setting the type context. 2866 (build_unc_object_type): Call gnat_set_type_context on the 2867 template type. 2868 28692014-08-04 Ed Schonberg <schonberg@adacore.com> 2870 2871 * exp_ch5.adb (Expand_N_Case_Statement): If a choice is a 2872 subtype indication and the case statement has only two choices, 2873 replace subtype indication with its range, because the resulting 2874 membership test cannot have a subtype indication as an operand. 2875 28762014-08-04 Arnaud Charlet <charlet@adacore.com> 2877 2878 * exp_ch3.adb: Update comments, minor reformatting. 2879 28802014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2881 2882 * sem_ch3.adb (Analyze_Declarations): Explain why the bodies of 2883 the default initial condition procedures are build here. 2884 * sem_util.adb (Build_Default_Init_Cond_Procedure): Wrap the 2885 analyzed argument of pragma Default_Initial_Condition in some 2886 dummy code as GNATprove mode disables assertions, but still 2887 needs to see the argument. 2888 28892014-08-04 Robert Dewar <dewar@adacore.com> 2890 2891 * exp_ch6.adb, sem_util.adb: Minor reformatting. 2892 28932014-08-04 Olivier Hainque <hainque@adacore.com> 2894 2895 * a-comutr.ads: Set Root_Node_Type'Alignment to 2896 Standard'Maximum_Alignment, so that it is at least as large as 2897 the max default for Tree_Node_Type'Alignment. 2898 28992014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2900 2901 * exp_ch3.adb (Freeze_Type): Remove the generation and inheritance 2902 of the default initial condition procedure [body]. 2903 * sem_ch3.adb (Analyze_Declarations): Create the bodies of 2904 all default initial condition procedures at the end of private 2905 declaration analysis. 2906 * sem_util.adb (Build_Default_Init_Cond_Procedure_Bodies): New 2907 routine. 2908 (Build_Default_Init_Cond_Procedure_Body): Merged in the 2909 processing of routine Build_Default_Init_Cond_Procedure_Bodies. 2910 * sem_util.ads (Build_Default_Init_Cond_Procedure_Bodies): 2911 New routine. 2912 (Build_Default_Init_Cond_Procedure_Body): Removed. 2913 29142014-08-04 Ed Schonberg <schonberg@adacore.com> 2915 2916 * sem_elab.adb (Check_Elab_Call): Do not check a call to a 2917 postcondtion. 2918 * exp_ch6.adb (Expand_Call): Clarify handling of inserted 2919 postcondition call. 2920 29212014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2922 2923 * sem_prag.adb (Analyze_Pragma): Ensure that an 2924 internally generated spec for a stand alone body is recognized 2925 as a proper context for pragma SPARK_Mode. 2926 29272014-08-04 Robert Dewar <dewar@adacore.com> 2928 2929 * erroutc.adb (Delete_Msg): Do not decrement Warnings_Treated_As_Errors. 2930 29312014-08-04 Arnaud Charlet <charlet@adacore.com> 2932 2933 * adabkend.adb (Scan_Back_End_Switches): Ignore extra -o 2934 when -gnatO has already been specified, for compatibility 2935 with gcc driver. 2936 (Scan_Compiler_Args): Do not call Set_Output_Object_File_Name in 2937 codepeer mode. 2938 * g-expect.ads: Fix typo. 2939 29402014-08-04 Thomas Quinot <quinot@adacore.com> 2941 2942 * exp_ch4.adb (Insert_Dereference_Action): the actual Size 2943 must account for the bounds template if the designated type is 2944 an unconstrained array. 2945 29462014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2947 2948 * a-cfhama.adb, a-cfhase.adb, a-cforma.adb, a-cforse.adb Add 2949 SPARK_Mode in the body. 2950 * sem_ch7.adb (Analyze_Package_Body_Helper): Restore the original 2951 way to verify the consistency of SPARK_Mode between a spec and 2952 a body. 2953 * sem_ch12.adb (Analyze_Package_Instantiation): Remove the call 2954 to Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode 2955 manually. 2956 (Analyze_Subprogram_Instantiation): Remove the call to 2957 Set_Ignore_Pragma_SPARK_Mode. Set flag Ignore_Pragma_SPARK_Mode 2958 manually. 2959 * sem_prag.adb (Analyze_Pragma): Remove local variable 2960 Inst_Id. SPARK_Mode can no longer be applied to a package or 2961 subprogram instantiation. 2962 * sem_util.adb, sem_util.ads (Set_Ignore_Pragma_SPARK_Mode): 2963 Removed. 2964 29652014-08-04 Robert Dewar <dewar@adacore.com> 2966 2967 * sem_prag.adb, osint.adb, osint.ads: Minor reformatting. 2968 29692014-08-04 Yannick Moy <moy@adacore.com> 2970 2971 * sem_ch3.adb (Derive_Type_Declaration, 2972 Process_Discriminants): Remove SPARK-specific legality checks. 2973 29742014-08-04 Thomas Quinot <quinot@adacore.com> 2975 2976 * g-sechas.ads, g-sechas.adb (HMAC_Initial_Context): New subprogram. 2977 * gnat_rm.texi (GNAT.MD5/SHA1/SHA224/SHA256/SHA512): Document support 2978 for HMAC. 2979 29802014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2981 2982 * sem_ch7.adb (Analyze_Package_Body_Helper): When verifying the 2983 compatibility of SPARK_Mode between a spec and a body, use the 2984 SPARK_Mode of the public part. 2985 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Use 2986 the already available routine to exchange the aspects between 2987 the template and its copy. Analyze the aspects of copy to 2988 ensure that the corresponding pragmas perform their semantic 2989 effects. The partial analysis of aspects is no longer needed. 2990 (Analyze_Package_Instantiation): Save and restore the SPARK_Mode 2991 of the context. 2992 (Analyze_Subprogram_Instantiation): Save and restore the SPARK_Mode of 2993 the context. 2994 * sem_prag.adb (Analyze_Pragma): Do not bypass a subprogram 2995 instantiation which does not come from source. 2996 29972014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 2998 2999 * a-cfhama.ads, a-cfhase.ads, a-cforma.ads, a-cforse.ads Add 3000 SPARK_Mode pragmas to the public and private part of the unit. 3001 * sem_ch3.adb (Derive_Type_Declaration): Ensure that a derived 3002 type cannot have discriminants if the parent type already has 3003 discriminants. 3004 (Process_Discriminants): Ensure that the type of a discriminant is 3005 discrete. 3006 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The check on 3007 SPARK_Mode compatibility between a spec and a body can now be 3008 safely performed while processing a generic. 3009 * sem_ch7.adb (Analyze_Package_Body_Helper): The check on 3010 SPARK_Mode compatibility between a spec and a body can now be 3011 safely performed while processing a generic. 3012 * sem_prag.adb (Analyze_Pragma): Pragma SPARK_Mode can now be 3013 safely analyzed when processing a generic. 3014 30152014-08-04 Nicolas Roche <roche@adacore.com> 3016 3017 * g-dirope.adb: Minor reformating. 3018 30192014-08-04 Robert Dewar <dewar@adacore.com> 3020 3021 * sem_ch6.adb: Minor reformatting. 3022 30232014-08-04 Ed Schonberg <schonberg@adacore.com> 3024 3025 * sem_prag.adb (Analyze_Pragma, case Assert and related pragmas): 3026 Before normalizing these pragmas into a pragma Check, preanalyze 3027 the optional Message argument, (which is subsequently copied) 3028 so that it has the proper semantic information for ASIS use. 3029 * sem_case.adb: Initialize flag earlier. 3030 * osint.adb, osint.ads (Find_File): Add parameter Full_Name, used when 3031 the full source path of a configuration file is requested. 3032 (Read_Source_File): Use Full_Name parameter.. 3033 30342014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3035 3036 * opt.ads Alphabetize various global flags. New flag 3037 Ignore_Pragma_SPARK_Mode along with a comment on usage. 3038 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): 3039 Pragma SPARK_Mode is now allowed in generic units. 3040 (Analyze_Subprogram_Body_Helper): Do not verify the compatibility 3041 between the SPARK_Mode of a spec and that of a body when inside 3042 a generic. 3043 * sem_ch7.adb (Analyze_Package_Body_Helper): Do not verify the 3044 compatibility between the SPARK_Mode of a spec and that of a 3045 body when inside a generic. 3046 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): 3047 Pragma SPARK_Mode is now allowed in generic units. 3048 (Analyze_Package_Instantiation): Save and restore the value of 3049 flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set 3050 the governing SPARK_Mode before analyzing the instance. 3051 (Analyze_Subprogram_Instantiation): Save and restore the value 3052 of flag Ignore_ Pragma_SPARK_Mode in a stack-like fasion. Set 3053 the governing SPARK_Mode before analyzing the instance. 3054 * sem_ch13.adb (Analyze_Aspect_Specifications): Emulate the 3055 placement of a source pragma when inserting the generated pragma 3056 for aspect SPARK_Mode. 3057 * sem_prag.adb (Analyze_Pragma): Reimplement the handling of 3058 pragma SPARK_Mode to allow for generics and their respective 3059 instantiations. 3060 * sem_util.ads, sem_util.adb (Check_SPARK_Mode_In_Generic): Removed. 3061 (Set_Ignore_Pragma_SPARK_Mode): New routine. 3062 30632014-08-04 Eric Botcazou <ebotcazou@adacore.com> 3064 3065 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Component>: Deal with 3066 renaming discriminants in tagged types first. 3067 * gcc-interface/trans.c (gnat_to_gnu) <N_Selected_Component>: Test 3068 the underlying type of the prefix. 3069 (Pragma_to_gnu, case Pragma_Warning): Ignore Reason => "..." 3070 (process_freeze_entity): Reset the nodes of all the view of a type, 3071 if any. 3072 30732014-08-04 Doug Rupp <rupp@adacore.com> 3074 Olivier Hainque <hainque@adacore.com> 3075 3076 * gcc-interface/Makefile.in (x86 VxWorks): Add filter-out for vxworks7 3077 and remove incorrect EH_MECHANISM macros. 3078 Add sigtramp.h to EXTRA_LIBGNAT_SRCS when we add sigtramp-vxworks.o to 3079 EXTRA_LIBGNAT_OBJS. 3080 30812014-08-04 Robert Dewar <dewar@adacore.com> 3082 3083 * exp_attr.adb (Expand_N_Attribute_Reference): Make sure prefix 3084 of constructed 'Valid attribute in -gnatVa mode does not appear 3085 to come from source. 3086 * sem_attr.adb (Analyze_Access_Attribute): Don't set 3087 Never_Set_In_Source for non-source reference. 3088 * sem_util.adb: Minor reformatting. 3089 * sem_warn.adb (Check_References): Don't check Address_Taken, 3090 not necessary, see comment. 3091 30922014-08-04 Robert Dewar <dewar@adacore.com> 3093 3094 * sem_util.adb, sem_case.adb: Minor reformatting. 3095 30962014-08-04 Ed Schonberg <schonberg@adacore.com> 3097 3098 * exp_ch9.adb (Extract_Entry): If the synchronized object is a 3099 limited view, replace with non-limited view, which is available 3100 at the point of an entry call. 3101 31022014-08-04 Ed Schonberg <schonberg@adacore.com> 3103 3104 * exp_ch6.adb (Expand_Call): If the call is to a function in 3105 a run-time unit that is marked Inline_Always, we must suppress 3106 debugging information on it, so that the code that is eventually 3107 inlined will not affect debugging of the user program. 3108 31092014-08-04 Robert Dewar <dewar@adacore.com> 3110 3111 * inline.adb, einfo.ads, s-tassta.adb, s-tarest.adb: Minor comment 3112 fixes. 3113 31142014-08-04 Ed Schonberg <schonberg@adacore.com> 3115 3116 * sem_prag.adb (Process_Import_Or_Interface): Handle properly 3117 an aspect Import that specifies a False value. 3118 31192014-08-04 Robert Dewar <dewar@adacore.com> 3120 3121 * gnat_rm.texi: Add section on aspect Invariant'Class. 3122 31232014-08-04 Ed Schonberg <schonberg@adacore.com> 3124 3125 * sem_case.adb (Check_Choice_Set): New flag Predicate_Error, 3126 for better control of cascaded error messages when some choice 3127 in a case statement over a predicated type violates the given 3128 static predicate. 3129 31302014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3131 3132 * sem_ch3.adb (Build_Derived_Type): Modify the 3133 inheritance of the rep chain to ensure that a non-tagged type's 3134 items are not clobbered during the inheritance. 3135 31362014-08-04 Robert Dewar <dewar@adacore.com> 3137 3138 * sem_ch3.adb, einfo.ads: Minor reformatting. 3139 31402014-08-04 Yannick Moy <moy@adacore.com> 3141 3142 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Fix 3143 detection of subprograms that cannot be inlined in GNATprove mode. 3144 31452014-08-04 Ed Schonberg <schonberg@adacore.com> 3146 3147 * einfo.adb: Add guard to Returns_Limited_View. 3148 31492014-08-04 Jose Ruiz <ruiz@adacore.com> 3150 3151 * s-tassta.adb, s-tarest.adb (Task_Wrapper): Force maximum alignment of 3152 the secondary stack to respect the alignments of the returned objects. 3153 31542014-08-04 Ed Schonberg <schonberg@adacore.com> 3155 3156 * einfo.ads, einfo.adb (Returns_Limited_View): New flag defined 3157 on function entities whose return type is a limited view. 3158 * freeze.adb (Freeze_Entity): Use Returns_Limited_View to determine 3159 where to place the freeze node for a function that returns the 3160 limited view of a type, when the function is called and frozen 3161 in a different unit. 3162 31632014-08-04 Eric Botcazou <ebotcazou@adacore.com> 3164 3165 * sem_ch3.adb (Build_Derived_Private_Type): Minor code 3166 refactoring. 3167 31682014-08-04 Robert Dewar <dewar@adacore.com> 3169 3170 * gnat_ugn.texi: Clarify documentation on assertions. 3171 31722014-08-04 Ed Schonberg <schonberg@adacore.com> 3173 3174 * sem_aggr.adb (Resolve_Record_Aggregate, Get_Value): Warn 3175 if a component association has a box initialization when the 3176 component type has no default initialization, either through an 3177 initial value, an aspect, or an implicit initialization procedure. 3178 31792014-08-04 Ed Schonberg <schonberg@adacore.com> 3180 3181 * freeze.adb: Code clean up. 3182 31832014-08-04 Thomas Quinot <quinot@adacore.com> 3184 3185 * sem_ch5.adb: Minor reformatting. 3186 31872014-08-04 Ed Schonberg <schonberg@adacore.com> 3188 3189 * freeze.adb (Late_Freeze_Subprogram): Following AI05-151, 3190 a function can return a limited view of a type declared 3191 elsewhere. In that case the function cannot be frozen at the end 3192 of its enclosing package. If its first use is in a different unit, 3193 it cannot be frozen there, but if the call is legal the full view 3194 of the return type is available and the subprogram can now be 3195 frozen. However the freeze node cannot be inserted at the point 3196 of call, but rather must go in the package holding the function, 3197 so that the backend can process it in the proper context. 3198 31992014-08-04 Robert Dewar <dewar@adacore.com> 3200 3201 * exp_ch5.adb, sem_ch5.adb, einfo.ads: Minor reformatting. 3202 32032014-08-04 Arnaud Charlet <charlet@adacore.com> 3204 3205 * sem_ch4.adb (Operator_Check): Refine previous change. 3206 32072014-08-04 Arnaud Charlet <charlet@adacore.com> 3208 3209 * sem_scil.ads: Improve comments. 3210 * sem_ch4.adb (Analyze_Equality_Op): Add support for 3211 Allow_Integer_Address (equality between Address and Integer). 3212 32132014-08-04 Yannick Moy <moy@adacore.com> 3214 3215 * a-cfhama.adb, a-cforse.adb: Minor fixes to avoid using prefix 3216 notation on untagged objects. 3217 * sem.ads: Update comment. 3218 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do 3219 not inline subprograms declared in the visible part of a package. 3220 32212014-08-04 Ed Schonberg <schonberg@adacore.com> 3222 3223 * exp_ch5.adb: minor reformatting. 3224 * einfo.ads, einfo.adb (Is_Processed_Transient): Applies to loop 3225 parameters. 3226 32272014-08-04 Thomas Quinot <quinot@adacore.com> 3228 3229 * s-fatgen.adb: Minor reformatting. 3230 32312014-08-04 Arnaud Charlet <charlet@adacore.com> 3232 3233 * exp_util.adb (Is_Possibly_Unaligned_Object): Always return 3234 False on .NET. 3235 32362014-08-04 Ed Schonberg <schonberg@adacore.com> 3237 3238 * sem_ch5.adb (Analyze_Loop_Statement): Set properly the kind of 3239 the loop parameter for element iterators over containers and 3240 arrays, so that improper uses of it are detected in the loop 3241 body when expansion is disabled. 3242 * exp_ch5.adb (Expand_Iterator_Loop): The entity kind of the 3243 generated cursor is that of the analyzed loop parameter. 3244 32452014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3246 3247 * exp_ch3.adb (Build_CPP_Init_Procedure): Remove 3248 Flag_Decl. Do not analyze the declaration of the flag as it is 3249 not part of the tree yet, instead add it to the freeze actions 3250 of the C++ type. 3251 32522014-08-04 Robert Dewar <dewar@adacore.com> 3253 3254 * checks.adb (Apply_Scalar_Range_Check): Make sure we handle 3255 case of OUT and IN OUT parameter correctly (where Source_Typ is 3256 set), we were missing one case where a check must be applied. 3257 32582014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3259 3260 * sem_ch8.adb (Build_Class_Wide_Wrapper): Update the comment on 3261 the generated code. Instead of hiding the renaming and using the 3262 wrapper as the proper association, have the subprogram renaming 3263 alias the wrapper. 3264 (Build_Spec): The entity of the wrapper is 3265 now derived from the entity of the related primitive. 3266 32672014-08-04 Emmanuel Briot <briot@adacore.com> 3268 3269 * s-regpat.adb: s-regpat.adb (Parse): fix incorrect link when 3270 using non-capturing groups. 3271 32722014-08-04 Ed Schonberg <schonberg@adacore.com> 3273 3274 * inline.adb (Build_Body_To_Inline): Remove Unmodified and 3275 related pragmas before copying the original body, to prevent 3276 spurious errors when the pragmas apply to formals that will not 3277 appear in the inlined body. 3278 32792014-08-04 Robert Dewar <dewar@adacore.com> 3280 3281 * exp_prag.adb, sem_ch7.adb, einfo.adb, sem_prag.adb, sem_util.adb, 3282 exp_ch3.adb: Minor reformatting. 3283 32842014-08-04 Robert Dewar <dewar@adacore.com> 3285 3286 * prj-strt.adb, prj-strt.ads, sem_attr.adb: Minor reformatting. 3287 32882014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3289 3290 * aspects.adb Add an entry in table Canonical_Aspect for 3291 Default_Initial_Condition. 3292 * aspects.ads Add an entry in tables Aspect_Id, Aspect_Argument, 3293 Aspect_Names and Aspect_Delay for Default_Initial_Condition. 3294 * einfo.adb Flag3 is now Has_Default_Init_Cond. Flag132 3295 is now Is_Default_Init_Cond_ Procedure. Flag133 is now 3296 Has_Inherited_Default_Init_Cond. 3297 (Default_Init_Cond_Procedure): New routine. 3298 (Has_Default_Init_Cond): New routine. 3299 (Has_Inherited_Default_Init_Cond): New routine. 3300 (Is_Default_Init_Cond_Procedure): New routine. 3301 (Set_Default_Init_Cond_Procedure): New routine. 3302 (Set_Has_Default_Init_Cond): New routine. 3303 (Set_Has_Inherited_Default_Init_Cond): New routine. 3304 (Set_Is_Default_Init_Cond_Procedure): New routine. 3305 (Write_Entity_Flags): Output all the new flags. 3306 * einfo.ads New attributes Default_Init_Cond_Procedure, 3307 Has_Inherited_Default_Init_Cond and Is_Default_Init_Cond_Procedure 3308 along with usage in nodes. 3309 (Default_Init_Cond_Procedure): New routine. 3310 (Has_Default_Init_Cond): New routine and pragma Inline. 3311 (Has_Inherited_Default_Init_Cond): New routine and 3312 pragma Inline. 3313 (Is_Default_Init_Cond_Procedure): New routine and 3314 pragma Inline. 3315 (Set_Default_Init_Cond_Procedure): New routine. 3316 (Set_Has_Default_Init_Cond): New routine and pragma Inline. 3317 (Set_Has_Inherited_Default_Init_Cond): New routine and pragma Inline. 3318 (Set_Is_Default_Init_Cond_Procedure): New routine and pragma Inline. 3319 * exp_ch3.adb (Expand_N_Object_Declaration): New constant 3320 Next_N. Generate a call to the default initial condition procedure 3321 if the object's type is subject to the pragma. (Freeze_Type): 3322 Generate the body of the default initial condition procedure or 3323 inherit the spec from a parent type. 3324 * exp_ch7.adb Add with and use clause for Exp_Prag. 3325 (Expand_Pragma_Initial_Condition): Removed. 3326 * exp_prag.ads, exp_prag.adb (Expand_Pragma_Initial_Condition): New 3327 routine. 3328 * par-prag.adb (Prag): Pragma Default_Initial_Condition does 3329 not need special treatment by the parser. 3330 * sem_ch3.adb (Build_Derived_Record_Type): Propagate the 3331 attributes related to pragma Default_Initial_Condition to the 3332 derived type. 3333 (Process_Full_View): Propagate the attributes 3334 related to pragma Default_Initial_Condition to the full view. 3335 * sem_ch7.adb (Analyze_Package_Specification): Build the 3336 declaration of the default initial condition procedure for all 3337 types that qualify or inherit the one from the parent type. 3338 * sem_ch13.adb (Analyze_Aspect_Specifications): 3339 Add processing for aspect Default_Initial_Condition. 3340 (Check_Aspect_At_Freeze_Point): Aspect 3341 Default_Initial_Condition does not require delayed analysis. 3342 (Replace_Type_References_Generic): Moved to spec. 3343 * sem_ch13.ads (Replace_Type_References_Generic): Moved from body. 3344 * sem_prag.adb Add an entry in table Sif_Glags for 3345 Default_Initial_Condition. 3346 (Analyze_Pragma): Pragma 3347 Default_Initial_Condition is now part of assertion 3348 policy. Add processing for pragma Default_Initial_Condition. 3349 (Is_Valid_Assertion_Kind): Pragma Default_Initial_Condition is 3350 now recognized as a proper assertion policy. 3351 * sem_util.ads, sem_util.adb (Build_Default_Init_Cond_Call): New 3352 routine. 3353 (Build_Default_Init_Cond_Procedure_Body): New routine. 3354 (Build_Default_Init_Cond_Procedure_Declaration): New routine. 3355 (Inherit_Default_Init_Cond_Procedure): New routine. 3356 * snames.ads-tmpl Add new predefined name and pragma id for 3357 Default_Initial_Condition. 3358 33592014-08-04 Vincent Celier <celier@adacore.com> 3360 3361 * prj-dect.adb (Parse_Case_Construction): It is no longer 3362 an error if the variable for a case construction is not 3363 typed, only if the variable value is not a single string. Call 3364 Parse_Choice_List and End_Case_Construction with the new parameter 3365 to indicate that the variable is typed. 3366 * prj-strt.adb (End_Case_Construction): Only check the labels 3367 if the variable is typed. If the variable is not typed, 3368 issue a warning when there is no "when others" allternative. 3369 (Parse_Choice_List): Manage the labels only if the variable 3370 is typed. 3371 * prj-strt.ads (End_Case_Construction): New Boolean parameter 3372 String_Type. 3373 (Parse_Choice_List): Ditto. 3374 33752014-08-04 Ed Schonberg <schonberg@adacore.com> 3376 3377 * sem_ch5.adb: Additional fix to Check_Predicate_Use. 3378 33792014-08-04 Vincent Celier <celier@adacore.com> 3380 3381 * projects.texi: Update documentation of case constructions with 3382 variables that are not typed. 3383 33842014-08-04 Ed Schonberg <schonberg@adacore.com> 3385 3386 * sem_ch8.adb (Build_Class_Wide_Wrapper): If the operator carries 3387 an Eliminated pragma, indicate that the wrapper is also to be 3388 eliminated, to prevent spurious errors when using gnatelim on 3389 programs that include box-initialization of equality operators 3390 (consequence of AI05-071).. 3391 33922014-08-04 Robert Dewar <dewar@adacore.com> 3393 3394 * checks.adb (Activate_Overflow_Check): Handle floating-point 3395 case correctly. 3396 * checks.ads (Activate_Overflow_Check): Clarify handling of 3397 floating-point cases. 3398 * exp_util.adb (Check_Float_Op_Overflow): Reset Do_Overflow_Check 3399 flag if we generate an explicit overflow check (for 3400 Check_Float_Overflow mode). 3401 34022014-08-04 Robert Dewar <dewar@adacore.com> 3403 3404 * prj-proc.adb, prj-part.adb, prj-strt.adb, prj.adb, prj.ads, 3405 prj-attr.adb, prj-attr.ads: Minor reformatting. 3406 34072014-08-04 Yannick Moy <moy@adacore.com> 3408 3409 * expander.adb (Expand): Always perform special 3410 expansion in GNATprove mode, even when doing pre-analysis. 3411 34122014-08-04 Thomas Quinot <quinot@adacore.com> 3413 3414 * repinfo.adb (List_Scalar_Storage_Order): List bit order if 3415 not default. Also list bit order if SSO is specified. Do not 3416 assume that bit order is always equal to scalar storage order. 3417 34182014-08-04 Thomas Quinot <quinot@adacore.com> 3419 3420 * freeze.adb (Set_SSO_From_Default): Do not set scalar storage 3421 order to reverse SSO for a type that has an explicit native 3422 Bit_Order. 3423 34242014-08-04 Doug Rupp <rupp@adacore.com> 3425 3426 * cal.c: Macro check for VxWorks7. 3427 * init.c (getpid): Likewise. 3428 * mkdir.c (__gnat_mkdir): Likewise. 3429 * sysdep.c (__gnat_is_file_not_found_error): Likewise. 3430 34312014-08-04 Gary Dismukes <dismukes@adacore.com> 3432 3433 * exp_ch3.adb (Expand_N_Object_Declaration): Inhibit generation 3434 of an invariant check in the case where No_Initialization is set, 3435 since the object is uninitialized. 3436 34372014-08-04 Thomas Quinot <quinot@adacore.com> 3438 3439 * snames.ads-tmpl (Default_Scalar_Storage_Order): Now an attribute 3440 name, in addition to a pragma name. 3441 * snames.adb-tmpl (Get_Pragma_Id, Is_Configuration_Pragma_Name, 3442 Is_Pragma_Name): Adjust accordingly. 3443 * sem_attr.ads, sem_attr.adb, exp_attr.adb 3444 (Attribute_Default_Scalar_Storage_Order): Add handling of new 3445 attribute. 3446 * gnat_rm.texi: Document the above. 3447 34482014-08-04 Arnaud Charlet <charlet@adacore.com> 3449 3450 * exp_util.adb (Check_Float_Op_Overflow): No-op in codepeer 3451 mode for now, to revert to previous behavior. 3452 * checks.adb: Revert previous change, no longer needed. 3453 34542014-08-04 Robert Dewar <dewar@adacore.com> 3455 3456 * gnat1drv.adb (Adjust_Global_Switches): Don't set 3457 Check_Float_Overflow if Machine_Oveflows_On_Target is True. 3458 * sem_prag.adb (Analyze_Pragma, case Check_Float_Overflow): Don't 3459 set Check_Float_Overflow if Machine_Oveflows_On_Target is True. 3460 * switch-c.adb (Scan_Front_End_Switches): Don't set 3461 Check_Float_Overflow if Machine_Oveflows_On_Target is True. 3462 34632014-08-04 Vincent Celier <celier@adacore.com> 3464 3465 * prj-attr.adb: Add new default indications for 3466 attributes Object_Dir, Exec_Dir, Source_Dirs and Target. 3467 (Attribute_Default_Of): New function (Initialize): Set the 3468 default for those attributes that have one specified. 3469 * prj-attr.ads (Attribute_Data): New component Default. 3470 * prj-proc.adb (Expression): Take into account the new defaults 3471 for attributes Object_Dir, Exec_Dir and Source_Dirs. 3472 * prj-strt.adb (Attribute_Reference): Set the default for 3473 the attribute. 3474 * prj-tree.ads, prj-tree.adb (Default_Of): New function. 3475 (Set_Default_Of): New procedure. 3476 * prj.adb (The_Dot_String): New global Name_Id variable, 3477 initialized in procedure Initialize. 3478 (Dot_String): New function 3479 (Initialize): Initialize The_Dot_String. 3480 (Reset): Create the string list Shared.Dot_String_List. 3481 * prj.ads (Attribute_Default_Value): New enumeration type. 3482 (Project_Qualifier): Change enumeration value Dry to Abstract_Project. 3483 (Dot_String): New function. 3484 (Shared_Project_Tree_Data): New string list component Dot_String_List. 3485 * projects.texi: Document new defaults for attribute Object_Dir, 3486 Exec_Dir and Source_Dirs. 3487 34882014-08-04 Robert Dewar <dewar@adacore.com> 3489 3490 * sem_ch12.adb: Minor reformatting. 3491 34922014-08-04 Arnaud Charlet <charlet@adacore.com> 3493 3494 * exp_util.adb, checks.adb (Check_Float_Op_Overflow): Add special 3495 expansion in CodePeer_Mode. 3496 (Selected_Range_Checks): Add handling of overflow checks in 3497 CodePeer_Mode. 3498 34992014-08-04 Robert Dewar <dewar@adacore.com> 3500 3501 * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): 3502 Remove special test for Float'First, no longer required. 3503 (Expand_N_Attribute_Reference, case Succ): Remove special test 3504 for Float'First, no longer required. 3505 * s-fatgen.adb (Pred): return infinity unchanged. 3506 (Succ): ditto. 3507 35082014-08-04 Claire Dross <dross@adacore.com> 3509 3510 * sem_ch12.adb (Analyze_Associations): Defaults should only be 3511 used if there is no explicit match. 3512 * exp_util.adb (Get_First_Parent_With_Ext_Axioms_For_Entity): 3513 Also check for pragma external_axiomatization on generic units. 3514 35152014-08-04 Robert Dewar <dewar@adacore.com> 3516 3517 * checks.adb (Activate_Overflow_Check): Remove 3518 Check_Float_Overflow processing. 3519 (Apply_Scalar_Range_Check): Ditto. 3520 (Generate_Range_Check): Ditto. 3521 * exp_ch4.adb (Expand_N_Op_Add): Add call to 3522 Check_Float_Op_Overflow. 3523 (Expand_N_Op_Divide): ditto. 3524 (Expand_N_Op_Multiply): ditto. 3525 (Expand_N_Op_Subtract): ditto. 3526 * exp_util.ads, exp_util.adb (Check_Float_Op_Overflow): New procedure. 3527 * sem_attr.adb (Analyze_Attribute, case Pred): Make sure 3528 Do_Range_Check is set for floating-point case in -gnatc or 3529 GNATprove mode. 3530 (Analyze_Attribute, case Succ): Make sure 3531 Do_Range_Check is set for floating-point case in -gnatc or 3532 GNATprove mode. 3533 * sem_res.adb (Resolve_Type_Conversion): Make sure Do_Range_Check 3534 flag is set for real to integer conversion in GNATprove or 3535 -gnatc mode. 3536 35372014-08-04 Gary Dismukes <dismukes@adacore.com> 3538 3539 * sem_ch13.adb (Analyze_Aspect_Specifications): Resolve 3540 the expression of an Import or Export aspect as type Boolean 3541 and require it to be static. Add ??? comment. Also, set the 3542 Is_Exported flag when appropriate. 3543 35442014-08-04 Robert Dewar <dewar@adacore.com> 3545 3546 * exp_ch4.adb: Minor reformatting. 3547 * exp_attr.adb: Minor reformatting. 3548 35492014-08-04 Thomas Quinot <quinot@adacore.com> 3550 3551 * s-fatgen.ads, s-fatgen.adb (S, P): New visible type declarations 3552 (Unaligned_Valid): Remove now unused subprogram. 3553 * exp_attr.adb (Expand_N_Attribute_Reference, case 3554 Attribute_Valid): If the prefix is in reverse SSO or potentially 3555 unaligned, copy it using a byte copy operation to a temporary 3556 variable. 3557 * einfo.adb: Minor comment fix. 3558 35592014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3560 3561 * freeze.adb (Freeze_Entity): Do not freeze formal subprograms. 3562 35632014-08-04 Robert Dewar <dewar@adacore.com> 3564 3565 * s-imgrea.adb (Image_Floating_Point): Don't add space before +Inf. 3566 * s-fatgen.adb (Pred): Handle Float'First. 3567 (Succ): Handle Float'Last. 3568 35692014-08-04 Ed Schonberg <schonberg@adacore.com> 3570 3571 * sem_util.adb (Is_Potentially_Unevaluated): If the original 3572 node of a parent node in the tree is a short-circuit operation, 3573 the node is potentially unevaluated. 3574 35752014-08-04 Robert Dewar <dewar@adacore.com> 3576 3577 * sem_res.adb (Resolve_Type_Conversion): Set Do_Range_Check on 3578 conversion from a real type to an integer type. 3579 35802014-08-04 Yannick Moy <moy@adacore.com> 3581 3582 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_ch7.adb, sem_ch9.adb, 3583 sem_ch12.adb, sem_util.adb, sem_util.ads, sem_res.adb, sem_attr.adb, 3584 exp_ch6.adb, sem_ch4.adb, restrict.adb, restrict.ads, sem_ch6.adb, 3585 sem_ch8.adb, sem_ch11.adb: Update some subprogram names to refer to 3586 SPARK_05 instead of SPARK. 3587 35882014-08-04 Robert Dewar <dewar@adacore.com> 3589 3590 * sem.ads: Minor reformatting. 3591 * sem_ch13.adb (Analyze_Aspect_External_Or_Link_Name): Minor 3592 reformatting. 3593 (Analyze_Aspect_Specifications, case Convention): Put External_Name 3594 before Link_Name when constructing pragma. 3595 35962014-08-04 Yannick Moy <moy@adacore.com> 3597 3598 * sem.adb, sem.ads (In_Default_Expr): Global flag that is set 3599 to True during analysis of a default component expression. 3600 (Semantics): Save and restore In_Default_Expr around analysis. 3601 * sem_ch3.adb, sem_ch3.ads (Analyze_Component_Declaration): 3602 Call new wrapper Preanalyze_Default_Expression. 3603 (Preanalyze_Default_Expression): New wrapper on 3604 Preanalyze_Spec_Expression which sets and restores In_Default_Expr. 3605 * sem_res.adb (Resolve_Call): Mark calls inside default 3606 expressions as not inlined in GNATprove mode. 3607 36082014-08-04 Robert Dewar <dewar@adacore.com> 3609 3610 * exp_ch4.adb: Minor reformatting. 3611 36122014-08-04 Olivier Hainque <hainque@adacore.com> 3613 3614 * link.c: remove const on __gnat_objlist_file_supported for AIX 3615 36162014-08-04 Robert Dewar <dewar@adacore.com> 3617 3618 * sem_util.ads: Minor addition of comment. 3619 36202014-08-04 Vincent Celier <celier@adacore.com> 3621 3622 * prj-dect.adb (Check_Package_Allowed): Allow package IDE in 3623 all projects, including aggregate and aggregate library projects. 3624 36252014-08-04 Yannick Moy <moy@adacore.com> 3626 3627 * back_end.adb (Call_Back_End): Do not call gigi in GNATprove mode. 3628 36292014-08-04 Robert Dewar <dewar@adacore.com> 3630 3631 * sem_eval.adb (Test_In_Range): Always in range for 3632 Is_Known_Valid target type, where input type has smaller or 3633 equal size and does not have biased rep. 3634 36352014-08-04 Ed Schonberg <schonberg@adacore.com> 3636 3637 * sem_attr.adb (Eval_Attribute): Constrained is not treated as 3638 a static attribute, and the Static flag must not be set on it 3639 during resolution. It may be constant-folded during expansion, 3640 but if expansion is disabled it is not a static expression. 3641 36422014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3643 3644 * sem_ch8.adb (Build_Class_Wide_Wrapper): Mark the primitive as 3645 referenced once resolution has taken place. 3646 36472014-08-04 Gary Dismukes <dismukes@adacore.com> 3648 3649 * exp_ch4.adb (Expand_N_Type_Conversion): Don't 3650 compare access levels in the case where the target type is the 3651 anonymous type of an access discriminant, since the level of 3652 such types is defined based on context. Add comment. 3653 36542014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3655 3656 * sem_ch8.adb (Build_Class_Wide_Wrapper): Handle various special 3657 cases related to equality. Remove the special processing 3658 for dispatching abstract subprograms as it is not needed. 3659 (Interpretation_Error): Add a specialized error message for 3660 predefined operators. 3661 (Is_Intrinsic_Equality): New routine. 3662 (Is_Suitable_Candidate): New routine. 3663 36642014-08-04 Gary Dismukes <dismukes@adacore.com> 3665 3666 * checks.adb: Minor comment reformatting. 3667 36682014-08-04 Ed Schonberg <schonberg@adacore.com> 3669 3670 * restrict.adb (Check_Restriction): For checked max_parameter 3671 restrictions reset Violated flag, so that subsequent violations 3672 are properly detected. 3673 36742014-08-04 Robert Dewar <dewar@adacore.com> 3675 3676 * sem_ch3.adb (Check_Initialization): Fix bad test of GNATprove 3677 mode. 3678 (Process_Discriminants): Fix bad test of GNATprove mode 3679 36802014-08-04 Hristian Kirtchev <kirtchev@adacore.com> 3681 3682 * sem_ch12.adb (Instantiate_Formal_Subprogram): 3683 Move variable to their own section. Propagate the source 3684 location of a formal parameter to the corresponding formal of 3685 the subprogram renaming declaration. Code reformatting. 3686 36872014-08-04 Arnaud Charlet <charlet@adacore.com> 3688 3689 * g-trasym-vms-ia64.adb, g-trasym-vms-alpha.adb: Removed. 3690 36912014-08-04 Ed Schonberg <schonberg@adacore.com> 3692 3693 * exp_aggr.adb (Expand_Array_Aggregate): Do not attempt expansion 3694 if error already detected. We may reach this point in spite of 3695 previous errors when compiling with -gnatq, to force all possible 3696 errors (this is the usual ACATS mode). 3697 36982014-08-04 Gary Dismukes <dismukes@adacore.com> 3699 3700 * checks.adb (Generate_Range_Check): For the case of converting 3701 a base type with a larger range to a smaller target subtype, only 3702 use unchecked conversions of bounds in the range check followed 3703 by conversion in the case where both types are discrete. In other 3704 cases, convert to the target base type and save in a temporary 3705 followed by the range check. 3706 (Convert_And_Check_Range): New procedure factoring code to save 3707 conversion to a temporary followed by a range check (called two 3708 places in Generate_Range_Check). 3709 * exp_ch4.adb (Expand_N_Type_Conversion): Relax previous 3710 check-in, to generate range checks for conversions between 3711 any floating-point types rather than limiting it to matching 3712 base types. 3713 37142014-08-02 Trevor Saunders <tsaunders@mozilla.com> 3715 3716 * gcc-interface/trans.c: Use hash_set instead of pointer_set. 3717 37182014-08-01 Ed Schonberg <schonberg@adacore.com> 3719 3720 * restrict.adb (Update_Restrictions): For restrictions with a 3721 maximum parameter (e.g. number of protected entries in Ravenscar) 3722 do not compute the maximum of the violation over several objects, 3723 because the restriction is per-object. 3724 (Check_Restriction): After possible message, reset the value 3725 of of a checked max_parameter restriction to zero, to prevent 3726 cascaded errors. 3727 * sem_ch3.adb (Build_Derived_Private_Type): Use base of parent 3728 (sub)type to determine whether derived type should be on the 3729 list of private dependents of a type whose full view may become 3730 visible subsequently. 3731 37322014-08-01 Olivier Hainque <hainque@adacore.com> 3733 3734 * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS, native): use 3735 $(CXX) instead of ../../xg++ to feed CXX. 3736 (CXX_LFLAGS): Remove. Now unused as the proper flags 3737 are expected to be included in the CXX variable. 3738 37392014-08-01 Pierre-Marie Derodat <derodat@adacore.com> 3740 3741 * gcc-interface/decl.c (elaborate_expression_1): Return the new 3742 variable when debug info is needed and the expression is not 3743 constant. Tag as external only new variables that are global. 3744 (gnat_to_gnu_entity): Call it after the GNU declaration is saved. 3745 * gcc-interface/trans.c (Attribute_to_gnu): Do not cache 3746 attributes for IN array parameters when their actual subtype 3747 needs debug info. 3748 (Compilation_Unit_to_gnu): Call it to process all remaining nodes. 3749 * gcc-interface/gigi.h (process_deferred_decl_context): New. 3750 * gcc-interface/utils.c (gnat_write_global_declarations): Do not 3751 emit debug info for ignored global declarations. 3752 (struct deferred_decl_context_node, 3753 add_deferred_decl_context, add_deferred_type_context, 3754 compute_deferred_decl_context, defer_or_set_type_context, 3755 deferred_decl_context_queue, get_debug_scope, 3756 get_global_context, process_deferred_decl_context): New. 3757 (gnat_pushdecl): Re-implement the DECL_CONTEXT and TYPE_CONTEXT 3758 computation machinery to rely on the GNAT Scope attribute. 3759 37602014-08-01 Eric Botcazou <ebotcazou@adacore.com> 3761 3762 * gcc-interface/utils2.c (build_simple_component_ref): Add guard. 3763 37642014-08-01 Robert Dewar <dewar@adacore.com> 3765 3766 * sem_ch8.adb, opt.ads Minor comment updates. 3767 37682014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 3769 3770 * exp_intr.adb (Expand_Unc_Deallocation): Request a renaming 3771 from the side effects removal machinery. 3772 * exp_util.adb (Duplicate_Subexpr): Add formal parameter 3773 Renaming_Req. Update the nested call to Remove_Side_Effects. 3774 (Duplicate_Subexpr_No_Checks): Add formal parameter 3775 Renaming_Req. Update the nested call to Remove_Side_Effects. 3776 (Duplicate_Subexpr_Move_Checks): Add formal parameter 3777 Renaming_Req. Update the nested call to Remove_Side_Effects. 3778 (Remove_Side_Effects): Add formal parameter Renaming_Req. Generate 3779 an object renaming declaration when the caller requests it. 3780 * exp_util.ads (Duplicate_Subexpr): Add formal 3781 parameter Renaming_Req. Update comment on usage. 3782 (Duplicate_Subexpr_No_Checks): Add formal parameter Renaming_Req. 3783 (Duplicate_Subexpr_Move_Checks): Add formal parameter 3784 Renaming_Req. 3785 37862014-08-01 Bob Duff <duff@adacore.com> 3787 3788 * gnat_ugn.texi: Minor updates. 3789 37902014-08-01 Robert Dewar <dewar@adacore.com> 3791 3792 * atree.adb: Minor reformatting. 3793 37942014-08-01 Ed Schonberg <schonberg@adacore.com> 3795 3796 * exp_aggr.adb (Init_Hidden_Discriminants): If some ancestor is a 3797 private extension, get stored constraint, if any, from full view. 3798 37992014-08-01 Robert Dewar <dewar@adacore.com> 3800 3801 * opt.ads (No_Elab_Code_All_Pragma): New global variable. 3802 * sem_ch10.adb (Check_No_Elab_Code_All): New procedure 3803 (Analyze_Compilation_Unit): Call Check_No_Elab_Code_All 3804 (Analyze_Subunit_Context): Call Check_No_Elab_Code_All. 3805 * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): 3806 Remove code for checking with's, now in sem_ch10.adb, set 3807 Opt.No_Elab_Code_All_Pragma. 3808 38092014-08-01 Eric Botcazou <ebotcazou@adacore.com> 3810 3811 * sem_ch3.adb (Copy_And_Build): Copy the declaration for 3812 access types as well and adjust the subtype mark if there are 3813 no constraints. 3814 38152014-08-01 Robert Dewar <dewar@adacore.com> 3816 3817 * sem_eval.adb (Test_In_Range): Return Unknown if error posted. 3818 38192014-08-01 Robert Dewar <dewar@adacore.com> 3820 3821 * sem_ch3.adb, einfo.ads, exp_ch4.adb: Code clean ups. 3822 38232014-08-01 Eric Botcazou <ebotcazou@adacore.com> 3824 3825 * einfo.ads (Has_Private_Ancestor): Remove obsolete usage. 3826 * exp_ch4.adb (Expand_Composite_Equality): Add conversion 3827 of the actuals in the case of untagged record types too. 3828 * sem_ch3.adb (Build_Full_Derivation): New procedure to create the 3829 full derivation of a derived private type, extracted from... 3830 (Copy_And_Build): In the case of record types and most 3831 enumeration types, copy the original declaration. Build the 3832 full derivation according to the approach extracted from... 3833 (Build_Derived_Private_Type): ...here. Call Build_Full_Derivation 3834 to create the full derivation in all existing cases and also 3835 create it in the no-discriminants/discriminants case instead of 3836 deriving directly from the full view. 3837 (Is_Visible_Component): Remove obsolete code. 3838 * sem_aggr.adb (Resolve_Record_Aggregate): Likewise. 3839 38402014-08-01 Arnaud Charlet <charlet@adacore.com> 3841 3842 * fe.h (GNAT_Mode): New. 3843 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not error out on 3844 reverse SSO in GNAT mode. 3845 38462014-08-01 Thomas Quinot <quinot@adacore.com> 3847 3848 * freeze.adb: Minor reformatting. 3849 38502014-08-01 Thomas Quinot <quinot@adacore.com> 3851 3852 * exp_ch3.adb (Default_Initialize_Object): Do not generate 3853 default initialization for an imported object. 3854 38552014-08-01 Olivier Hainque <hainque@adacore.com> 3856 3857 * seh_init.c (__gnat_map_SEH): Cast argument of IsBadCodePtr 3858 to the expected FARPROC type instead of void *. 3859 * adaint.c (f2t): Expect __time64_t * as second argument, in line with 3860 other datastructures. 3861 (__gnat_file_time_name_attr): Adjust accordingly. 3862 (__gnat_check_OWNER_ACL): Declare pSD as PSECURITY_DESCRIPTOR, 3863 in line with uses. 3864 (__gnat_check_OWNER_ACL): Declare AccessMode 3865 parameter as ACCESS_MODE instead of DWORD, in line with callers 3866 and uses. 3867 (__gnat_set_executable): Add ATTRIBUTE_UNUSED on mode, 3868 unused on win32. Correct cast of "args" on call to spawnvp. 3869 (add_handle): Cast realloc calls into their destination types. 3870 (win32_wait): Remove declaration and initialization of unused variable. 3871 (__gnat_locate_exec_on_path): Cast alloca calls 3872 into their destination types. 3873 * initialize.c (append_arg, __gnat_initialize): Cast xmalloc calls into 3874 their destination types. 3875 38762014-08-01 Gary Dismukes <dismukes@adacore.com> 3877 3878 * exp_ch4.adb (Expand_N_Type_Conversion): Expand 3879 range checks for conversions between floating-point subtypes 3880 when the target and source types are the same. 3881 38822014-08-01 Robert Dewar <dewar@adacore.com> 3883 3884 * exp_aggr.adb: Minor reformatting. 3885 38862014-08-01 Eric Botcazou <ebotcazou@adacore.com> 3887 3888 * sem_ch13.adb (Check_Indexing_Functions): Initialize 3889 Indexing_Found. 3890 38912014-08-01 Arnaud Charlet <charlet@adacore.com> 3892 3893 * gnat1drv.adb (Gnat1drv): In gnatprove mode, we now write the 3894 ALI file before we call the backend (so that gnat2why can append 3895 to it). 3896 38972014-08-01 Thomas Quinot <quinot@adacore.com> 3898 3899 * exp_pakd.adb (Expand_Bit_Packed_Element_Set, 3900 Expand_Packed_Element_Reference): Pass additional Rev_SSO 3901 parameter indicating whether the packed array type has reverse 3902 scalar storage order to the s-pack* Set/Get routines. 3903 * s-pack*.ad* (Get, Set, GetU, SetU): New formal Rev_SSO 3904 indicating reverse scalar storage order. 3905 39062014-08-01 Robert Dewar <dewar@adacore.com> 3907 3908 * sem_ch3.adb (Check_Initialization): Set Do_Range_Check 3909 for initial component value in -gnatc or GNATprove mode. 3910 (Process_Discriminants): Same fix for default discriminant values. 3911 * sem_eval.adb (Test_In_Range): Improve accuracy of results by 3912 checking subtypes. 3913 39142014-08-01 Robert Dewar <dewar@adacore.com> 3915 3916 * sinfo.ads: Minor comment clarification. 3917 39182014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 3919 3920 * sem_ch13.adb (Analyze_Aspect_Specifications): Code 3921 reformatting. Store the generated pragma Import in the related 3922 subprogram as routine Wrap_Imported_Subprogram will need it later. 3923 * sem_prag.adb (Is_Unconstrained_Or_Tagged_Item): An item of 3924 a private type with discriminants is considered to fall in the 3925 category of unconstrained or tagged items. 3926 39272014-08-01 Arnaud charlet <charlet@adacore.com> 3928 3929 * s-os_lib.adb (Open_Append): New functions to open a file for 3930 appending. This binds to the already existing (but not used) 3931 __gnat_open_append. 3932 * osint.ads, osint.adb (Open_File_To_Append_And_Check): New procedure 3933 to open a file for appending. 3934 * osint-c.ads, osint-c.adb (Open_Output_Library_Info): New procedure 3935 to open the ALI file for appending. 3936 39372014-08-01 Robert Dewar <dewar@adacore.com> 3938 3939 * sem_ch8.adb: Minor reformatting. 3940 39412014-08-01 Yannick Moy <moy@adacore.com> 3942 3943 * sem_ch13.adb (Insert_Pragma): Add special case for precondition 3944 pragmas from aspects, which need to be inserted in proper order. 3945 39462014-08-01 Ed Schonberg <schonberg@adacore.com> 3947 3948 * exp_aggr.adb (Expand_Record_Aggregate, Init_Hidden_Discriminants): 3949 Handle properly a type extension that constrains a discriminated 3950 derived type that renames other discriminants of an ancestor. 3951 39522014-08-01 Thomas Quinot <quinot@adacore.com> 3953 3954 * s-pack06.adb, s-pack10.adb, s-pack03.ads, s-pack12.adb, s-pack14.ads, 3955 s-pack25.adb: Fix minor inconsistencies and typos. 3956 39572014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 3958 3959 * sem_ch8.adb (Analyze_Subprogram_Renaming): Alphabetize 3960 globals and move certain variables to the "local 3961 variable" section. Call Build_Class_Wide_Wrapper when 3962 renaming a default actual subprogram with a class-wide actual. 3963 (Build_Class_Wide_Wrapper): New routine. 3964 (Check_Class_Wide_Actual): Removed. 3965 (Find_Renamed_Entity): Code reformatting. 3966 (Has_Class_Wide_Actual): Alphabetize. Change the 3967 logic of the predicate as the renamed name may not necessarely 3968 denote the correct subprogram. 3969 39702014-08-01 Eric Botcazou <ebotcazou@adacore.com> 3971 3972 * sem_ch7.adb: Fix minor oversight in condition. 3973 39742014-08-01 Bob Duff <duff@adacore.com> 3975 3976 * projects.texi: Minor documentation improvements. 3977 39782014-08-01 Robert Dewar <dewar@adacore.com> 3979 3980 * aspects.ads, aspects.adb: Add aspect No_Elaboration_Code_All. 3981 * gnat_rm.texi: Document No_Elaboration_Code_All pragma and aspect. 3982 * lib-load.adb: Initialize No_Elab_Code_All field. 3983 * lib-writ.adb: Initialize No_Elab_Code_All. 3984 * lib.ads, lib.adb: New field No_Elab_Code_All. 3985 * par-prag.adb: Add dummy entry for pragma No_Elaboration_Code_All. 3986 * restrict.ads, restrict.adb: Restriction No_Elaboration_Code_All no 3987 longer exists. 3988 * sem_ch10.adb (Analyze_Context): Processing for 3989 No_Elaboration_Code_All removed. 3990 (Generate_Parent_References): Moved to Sem_Util. 3991 * sem_prag.adb: Add processing for pragma No_Elaboration_Code_All. 3992 * sem_util.ads, sem_util.adb (Get_Parent_Entity): Moved here from 3993 Sem_Ch10. 3994 * snames.ads-tmpl: Add entry for pragma No_Elaboration_Code_All. 3995 * targparm.adb: Minor comment updates Add comments on ignoring 3996 pragma No_Elaboration_Code_All. 3997 39982014-08-01 Nicolas Roche <roche@adacore.com> 3999 4000 * adaint.c (__gnat_set_close_on_exec): Ensure that 4001 we can unset "close_on_exec" flag. 4002 40032014-08-01 Ed Schonberg <schonberg@adacore.com> 4004 4005 * exp_ch9.adb (Build_Wrapper_Spec, Replicate_Formals): When building 4006 the parameter specs of the wrapper program for a primitive operation 4007 of a synchronized type that implements an interface, copy the 4008 null_exclusion indicator as well. 4009 40102014-08-01 Robert Dewar <dewar@adacore.com> 4011 4012 * sem_eval.ads: Minor reformatting. 4013 40142014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4015 4016 * exp_ch3.adb (Build_Initialization_Call): Call Underlying_Type 4017 to go down the chain of private derivations. 4018 * freeze.adb (Freeze_Entity): Fix typo in comment. 4019 40202014-08-01 Ed Schonberg <schonberg@adacore.com> 4021 4022 * sem_ch3.adb (Access_Type_Declaration): If designated type is 4023 a limited view, create a master entity (as is already done for 4024 class-wide types) in case the full view designates a type that 4025 contains tasks. 4026 * sem_ch8.adb (Find_Selected_Component): If prefix is a dereference 4027 and the designated type is a limited view, use the non-limited 4028 view if available. 4029 40302014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4031 4032 * gcc-interface/ada-tree.h (DECL_BY_DESCRIPTOR_P): Delete. 4033 (DECL_FUNCTION_STUB): Likewise. 4034 (SET_DECL_FUNCTION_STUB): Likewise. 4035 (DECL_PARM_ALT_TYPE): Likewise. 4036 (SET_DECL_PARM_ALT_TYPE): Likewise. 4037 (TYPE_VAX_FLOATING_POINT_P): Delete. 4038 (TYPE_DIGITS_VALUE): Likewise. 4039 (SET_TYPE_DIGITS_VALUE): Likewise. 4040 * gcc-interface/gigi.h (standard_datatypes): Remove ADT_malloc32_decl. 4041 (malloc32_decl): Delete. 4042 (build_vms_descriptor): Likewise. 4043 (build_vms_descriptor32): Likewise. 4044 (fill_vms_descriptor): Likewise. 4045 (convert_vms_descriptor): Likewise. 4046 (TARGET_ABI_OPEN_VMS): Likewise. 4047 (TARGET_MALLOC64): Likewise. 4048 * gcc-interface/decl.c (add_parallel_type_for_packed_array): New. 4049 (gnat_to_gnu_entity): Call it to add the original type as a parallel 4050 type to the implementation type of a packed array type. 4051 <E_Procedure>: Remove now obsolete kludge. 4052 <E_Exception>: Delete obsolete comment. 4053 <object>: Small tweak. 4054 <E_Subprogram_Type>: Remove support for stub subprograms, as well as 4055 for the descriptor passing mechanism. 4056 (gnat_to_gnu_param): Likewise. 4057 * gcc-interface/misc.c (gnat_init_gcc_fp): Remove special case. 4058 (gnat_print_type): Adjust. 4059 * gcc-interface/trans.c (gigi): Remove obsolete initializations. 4060 (vms_builtin_establish_handler_decl): Delete. 4061 (gnat_vms_condition_handler_decl): Likewise. 4062 (establish_gnat_vms_condition_handler): Likewise. 4063 (build_function_stub): Likewise. 4064 (Subprogram_Body_to_gnu): Do not call above functions. 4065 (Call_to_gnu): Remove support for the descriptor passing mechanism. 4066 * gcc-interface/utils.c (make_descriptor_field): Delete. 4067 (build_vms_descriptor32): Likewise. 4068 (build_vms_descriptor): Likewise. 4069 (fill_vms_descriptor): Likewise. 4070 (convert_vms_descriptor64): Likewise. 4071 (convert_vms_descriptor32): Likewise. 4072 (convert_vms_descriptor): Likewise. 4073 * gcc-interface/utils.c (unchecked_convert): Likewise. 4074 * gcc-interface/utils2.c (maybe_wrap_malloc): Remove obsolete stuff. 4075 40762014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4077 4078 * gcc-interface/trans.c (gigi): Use gnat_to_gnu_type for the exception 4079 type and get_unpadded_type for the longest FP type. 4080 (Attribute_to_gnu) <Machine>: Compare the precision of the types. 4081 (convert_with_check): Adjust formatting and remove FIXME. 4082 40832014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4084 4085 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Signed_Integer_Subtype>: 4086 Do not convert the RM bounds to the base type. 4087 (E_Floating_Point_Subtype): Likewise. 4088 (E_Array_Subtype): Convert the bounds to the base type. 4089 * gcc-interface/trans.c (get_type_length): New function. 4090 (Attribute_to_gnu) <Range_Length>: Call it. 4091 <Length>: Likewise. 4092 (Loop_Statement_to_gnu): Convert the bounds to the base type. 4093 (gnat_to_gnu) <N_In>: Likewise. 4094 * gcc-interface/utils.c (make_type_from_size): Do not convert the RM 4095 bounds to the base type. 4096 (create_range_type): Likewise. 4097 (convert): Convert the bounds to the base type for biased types. 4098 * gcc-interface/utils2.c (compare_arrays): Convert the bounds to the 4099 base type. 4100 41012014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4102 4103 * gcc-interface/trans.c (gnat_to_gnu) <N_Selected_Component>: Remove 4104 incorrect implicit type derivation. 4105 * gcc-interface/utils.c (max_size) <tcc_reference>: Convert the bounds 4106 to the base type. 4107 41082014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4109 4110 * sem_attr.adb (Analyze_Attribute): Preanalyze and resolve the 4111 prefix of attribute Loop_Entry. 4112 * sem_prag.adb (Analyze_Pragma): Verify the placement of pragma 4113 Loop_Variant with respect to an enclosing loop (if any). 4114 (Contains_Loop_Entry): Update the parameter profile and all 4115 calls to this routine. 4116 * sem_res.adb (Resolve_Call): Code reformatting. Do not ask 4117 for the corresponding body before determining the nature of the 4118 ultimate alias's declarative node. 4119 41202014-08-01 Robert Dewar <dewar@adacore.com> 4121 4122 * gnat1drv.adb, sem_ch4.adb: Minor reformatting. 4123 41242014-08-01 Robert Dewar <dewar@adacore.com> 4125 4126 * sem_eval.adb (Rewrite_In_Raise_CE): Don't try to reuse inner 4127 constraint error node since it is a list member. 4128 41292014-08-01 Robert Dewar <dewar@adacore.com> 4130 4131 * sem_warn.adb: Minor reformatting. 4132 41332014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4134 4135 * einfo.adb (Underlying_Type): Return the underlying full view 4136 of a private type if present. 4137 * freeze.adb (Freeze_Entity): 4138 Build a single freeze node for partial, full and underlying full 4139 views, if any. 4140 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Private_Type>: Add a 4141 missing guard before the access to the Underlying_Full_View. 4142 * gcc-interface/trans.c (process_freeze_entity): Deal with underlying 4143 full view if present. 4144 * gcc-interface/utils.c (make_dummy_type): Avoid superfluous work. 4145 41462014-08-01 Ed Schonberg <schonberg@adacore.com> 4147 4148 * sem_res.adb (Resolve_Entry_Call): When an entry has 4149 preconditions, the entry call is wrapped in a procedure call 4150 that incorporates the precondition checks. To prevent a double 4151 expansion, with possible duplication of extra formals, that 4152 procedure call must only be pre-analyzed and resolved. Expansion 4153 takes place upon return to the caller Resolve_Call. 4154 41552014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4156 4157 * sem_res.adb (Resolve_Call): Do not perform 4158 GNATprove-specific inlining while within a generic. 4159 41602014-08-01 Ed Schonberg <schonberg@adacore.com> 4161 4162 * sem_ch4.adb (Analyze_Case_Expression): Handle properly a 4163 case expression with incompatible alternatives, when the first 4164 alternative is overloaded. 4165 41662014-08-01 Ed Schonberg <schonberg@adacore.com> 4167 4168 * sem_res.adb (Check_Parameterless_Call): Use Relocate_Node 4169 to create the name of the parameterless call, rather than 4170 New_Copy, to preserve the tree structure when the name is a 4171 complex expression, e.g. a selected component that denotes a 4172 protected operation, whose prefix is itself a selected component. 4173 41742014-08-01 Ed Schonberg <schonberg@adacore.com> 4175 4176 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use 4177 Unit_Declaration_Node to retrieve body when inlining, to handle 4178 properly subprogram child units. 4179 41802014-08-01 Robert Dewar <dewar@adacore.com> 4181 4182 * sem_attr.adb: Minor reformatting. 4183 41842014-08-01 Vincent Celier <celier@adacore.com> 4185 4186 * debug.adb: Minor documentation addition for -dn switch. 4187 41882014-08-01 Robert Dewar <dewar@adacore.com> 4189 4190 * sem_aggr.adb, exp_ch9.adb, sem_prag.adb, sem_util.adb, 4191 sem_attr.adb, sem_eval.ads, sem_cat.adb, sem_ch13.adb: Improve 4192 documentation of Is_Static_Expression vs Is_OK_Static_Expression. 4193 In several places, use the Is_OK version as suggested by the spec. 4194 41952014-08-01 Vincent Celier <celier@adacore.com> 4196 4197 * gnatcmd.adb: Revert last change which was not correct. 4198 41992014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4200 4201 * freeze.adb (Find_Constant): Ensure that the constant being 4202 inspected is still an object declaration (i.e. not a renaming). 4203 42042014-08-01 Ed Schonberg <schonberg@adacore.com> 4205 4206 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): a) 4207 An attribute_reference to Loop_Entry denotes an iterator 4208 specification: its prefix is an object, as is the case for 'Old. 4209 b) If the domain of iteration is an expression whose type has 4210 the Iterable aspect defined, this is an iterator specification. 4211 42122014-08-01 Robert Dewar <dewar@adacore.com> 4213 4214 * gnatcmd.adb: Minor reformatting. 4215 42162014-08-01 Robert Dewar <dewar@adacore.com> 4217 4218 * atree.ads (Info_Messages): New counter. 4219 * err_vars.ads: Minor comment update. 4220 * errout.adb (Delete_Warning_And_Continuations): Deal 4221 with new Info_Messages counter. 4222 (Error_Msg_Internal): ditto. 4223 (Delete_Warning): ditto. 4224 (Initialize): ditto. 4225 (Write_Error_Summary): ditto. 4226 (Output_Messages): ditto. 4227 (To_Be_Removed): ditto. 4228 * erroutc.adb (Delete_Msg): Deal with Info_Messages counter. 4229 (Compilation_Errors): ditto. 4230 * errutil.adb (Error_Msg): Deal with Info_Messages counter. 4231 (Finalize): ditto. 4232 (Initialize): ditto. 4233 * sem_prag.adb (Analyze_Pragma): Minor comment addition. 4234 * gnat_ugn.texi: Document that -gnatwe does not affect info 4235 messages. 4236 42372014-08-01 Robert Dewar <dewar@adacore.com> 4238 4239 * debug.adb: Document debug switch -gnatd.Z. 4240 * sem.adb (Semantics): Force expansion on in no or configurable 4241 run time mode. 4242 42432014-08-01 Ed Schonberg <schonberg@adacore.com> 4244 4245 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): An 4246 unchecked conversion denotes an iterator specification. Such a 4247 conversion will be inserted in the context of an inlined call 4248 when needed, and its argument is always an object. 4249 42502014-08-01 Robert Dewar <dewar@adacore.com> 4251 4252 * make.adb, makeutl.ads: Minor reformatting. 4253 * debug.adb, opt.ads: Clarify documentation of Front_End_Inlining and 4254 Back_End_Inlining. 4255 42562014-08-01 Tristan Gingold <gingold@adacore.com> 4257 4258 * gnatcmd.adb (GNATCmd): Set AAMP_On_Target using command name. 4259 42602014-08-01 Javier Miranda <miranda@adacore.com> 4261 4262 * gnat1drv.adb (Adjust_Global_Switches): Reverse meaning of 4263 -gnatd.z. 4264 * debug.adb: Updating documentation. 4265 * exp_ch6.adb (Expand_Call): Remove assertion. 4266 42672014-08-01 Robert Dewar <dewar@adacore.com> 4268 4269 * sem_aggr.adb, sem_ch3.adb, sem_ch5.adb, sem_util.adb, 4270 sem_res.adb: Minor reformatting. 4271 42722014-08-01 Vincent Celier <celier@adacore.com> 4273 4274 * make.adb (Initialize): Set Keep_Temporary_Files to True when 4275 -dn is specified. 4276 * makeusg.adb: Add line for new switch --keep-temp-files. 4277 * makeutl.ads (Keep_Temp_Files_Option): New constant String. 4278 * opt.ads (Keep_Temporary_Files): Document that it is also used 4279 by gnatmake and gprbuild. 4280 * switch-m.adb: Recognize new switch --keep-temp-files. 4281 42822014-08-01 Tristan Gingold <gingold@adacore.com> 4283 4284 * sem_ch9.adb (Analyze_Task_Type_Declaration): Move code from ... 4285 * exp_ch9.adb (Make_Task_Create_Call): ... here. 4286 42872014-08-01 Vincent Celier <celier@adacore.com> 4288 4289 * gnat1drv.adb: Do not try to get the target parameters when 4290 invoked with -gnats. 4291 42922014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4293 4294 * exp_ch7.adb (Find_Last_Init): Nothing to do for an object 4295 declaration subject to No_Initialization. 4296 42972014-08-01 Ed Schonberg <schonberg@adacore.com> 4298 4299 * sem_aggr.adb (Resolve_Array_Aggregate): Reject choice that 4300 is a subtype with dynamic predicates, or a non-static subtype 4301 with predicates. 4302 * sem_ch3.adb (Analyze_Number_Declaration): Reject qualified 4303 expression if subtype has a dynamic predicate. 4304 (Constrain_Index): Reject subtype indication if subtype mark 4305 has predicates. 4306 (Inerit_Predicate_Flags): Inherit Has_Predicates as well. 4307 (Make_Index): If index is a subtype indication, itype inhereits 4308 predicate flags for subsequent testing. 4309 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): New 4310 procedure Check_Predicate_Use, to reject illegal uses of domains 4311 of iteration that have dynamic predicates. 4312 * sem_res.adb (Resolve_Slice): Reject slices given by a subtype 4313 indication to which a predicate applies. 4314 * sem_util.adb (Bad_Predicated_Subtype_Use): Add guard to 4315 prevent cascaded errors when subtype is invalid. 4316 43172014-08-01 Robert Dewar <dewar@adacore.com> 4318 4319 * sem_ch10.adb: Minor reformatting. 4320 43212014-08-01 Ed Schonberg <schonberg@adacore.com> 4322 4323 * sem_ch6.adb (Same_Generic_Actual): Make function symmetric, 4324 because either type may be a subtype of the other. 4325 43262014-08-01 Vincent Celier <celier@adacore.com> 4327 4328 * makeusg.adb: Add documentation for debug switch -dn. 4329 43302014-08-01 Ed Schonberg <schonberg@adacore.com> 4331 4332 * sem_dim.adb (Process_Minus, Process_Divide): Label dimension 4333 expression with standard operator and type, for pretty-printing 4334 use, when in ASIS_Mode. When generating code dimensional analysis 4335 is not involved and dimension expressions are handled statically, 4336 and other operators are resolved in the usual way. 4337 43382014-08-01 Ed Schonberg <schonberg@adacore.com> 4339 4340 * sem_ch3.adb (Build_Derived_Record_Type): Remove setting of 4341 Parent_Subtype in ASIS mode, leads to several failures. 4342 * sem_ch4.adb (Analyze_Selected_Component): In an instance, 4343 if the prefix is a type extension, check whether component is 4344 declared in the parent type, possibly in a parent unit. Needed 4345 in ASIS mode when Parent_Subtype is not set. 4346 43472014-08-01 Robert Dewar <dewar@adacore.com> 4348 4349 * sem_prag.adb: Minor reformatting. 4350 * s-regpat.adb: Minor reformatting. 4351 * sem_ch3.adb (Analyze_Object_Declaration): Do not set 4352 Treat_As_Volatile on constants. 4353 43542014-08-01 Tristan Gingold <gingold@adacore.com> 4355 4356 * exp_ch9.adb (Make_Task_Create_Call): Improve error message. 4357 43582014-08-01 Ed Schonberg <schonberg@adacore.com> 4359 4360 * sem_ch10.adb (Analyze_Compilation_Unit): Do not place a 4361 warning on a with_clause created for the renaming of a parent 4362 unit in an explicit with_clause. 4363 43642014-08-01 Ed Schonberg <schonberg@adacore.com> 4365 4366 * sem_ch13.adb (Analyze_Aspect_Specifications, case Aspect_Import): 4367 Set Is_Imported flag at once, to simplify subsequent legality 4368 checks. Reject the aspect on an object whose declaration has an 4369 explicit initial value. 4370 * sem_prag.adb (Process_Import_Or_Interface): Use original node 4371 to check legality of an initial value for an imported entity. 4372 Set Is_Imported flag in case of error to prevent cascaded errors. 4373 Do not set the Is_Imported flag if the pragma comes from an 4374 aspect, because it is already done when analyzing the aspect. 4375 43762014-08-01 Emmanuel Briot <briot@adacore.com> 4377 4378 * g-regpat.adb (Parse): Add support for non-capturing parenthesis. 4379 43802014-08-01 Robert Dewar <dewar@adacore.com> 4381 4382 * sem_ch7.adb, einfo.adb, einfo.ads, sem_ch13.adb: Minor change of 4383 identifier name. 4384 43852014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4386 4387 * sem_ch3.adb (Analyze_Object_Contract): Enable the volatility 4388 checks when the related variable comes from source. 4389 * sem_res.adb (Resolve_Actuals): Enable the volatility checks 4390 when the related actual parameter comes from source. Update comment. 4391 * freeze.adb (Freeze_Record_Type): Do not freeze the designated 4392 type of an array of pointers when the designated type is 4393 class-wide and its root type is the record being currently frozen. 4394 43952014-08-01 Ed Schonberg <schonberg@adacore.com> 4396 4397 * sem_ch5.adb (Analyze_Iterator_Specification): Preserve Ekind 4398 of renaming declaration created for domain of iteration. 4399 * sem_aggr.adb (Resolve_Array_Aggregate): Better placement 4400 for error messages on aggregates whose index subtypes have 4401 predicates. The new placement avoids posting messages on previous 4402 subtype declarations rather than on the aggregate itself. 4403 * sem_disp.adb (Is_Inherited_Public_Operation): New predicate for 4404 Add_Dispatching_Operation, to handle properly the overriding of 4405 the predefined operations on controlled types, when the partial 4406 view of a type is not visibly controlled. 4407 44082014-08-01 Ben Brosgol <brosgol@adacore.com> 4409 4410 * gnat_ugn.texi: Add tutorial on portable fixed-point types as an 4411 appendix. 4412 44132014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4414 4415 * einfo.adb (Is_Hidden_Non_Overridden_Subprogram): Remove the 4416 assertion check as the attribute is defined for all entities. 4417 (Set_Is_Hidden_Non_Overridden_Subprogram): Remove the assertion 4418 check as the attribute is defined for all entities. 4419 * einfo.ads Update the documentation of attribute 4420 Is_Hidden_Non_Overridden_Subprogram. 4421 * sem_ch7.adb (Install_Package_Entity): No need to check the 4422 entity kind of the Id. 4423 * sem_ch13.adb (Hide_Matching_Homograph): Update the comment on 4424 usage. Ensure that the homographs are of the same entity kind 4425 and not fully conformant. 4426 (Hide_Non_Overridden_Subprograms): Update the comment on usage. 4427 44282014-08-01 Robert Dewar <dewar@adacore.com> 4429 4430 * inline.adb: Minor code reorganization. 4431 * sem_ch12.adb, s-tasdeb.ads: Minor reformatting. 4432 44332014-08-01 Robert Dewar <dewar@adacore.com> 4434 4435 * inline.adb, s-os_lib.ads: Minor reformatting. 4436 44372014-08-01 Arnaud Charlet <charlet@adacore.com> 4438 4439 * s-tasdeb.ads, s-tasdeb.adb (Master_Hook, Master_Completed_Hook): New. 4440 * s-tassta.adb (Task_Wrapper, Vulnerable_Complete_Master): Call new 4441 hooks. 4442 44432014-08-01 Yannick Moy <moy@adacore.com> 4444 4445 * inline.adb (Cannot_Inline): Issue info message instead of 4446 warning for subprograms not inlined in GNATprove mode. 4447 * sem_res.adb (Resolve_Call): Take body into account for deciding 4448 whether subprogram can be inlined in GNATprove mode or not. 4449 44502014-08-01 Claire Dross <dross@adacore.com> 4451 4452 * exp_util.ads (Get_First_Parent_With_Ext_Axioms_For_Entity): Renaming 4453 of Get_First_Parent_With_External_Axiomatization_For_Entity for 4454 shorter. 4455 * sem_ch12.adb (Analyze_Associations): Only call Build_Wrapper 4456 for parameters of packages with external axiomatization. 4457 44582014-08-01 Robert Dewar <dewar@adacore.com> 4459 4460 * sem_res.adb: Minor comment addition. 4461 44622014-08-01 Arnaud Charlet <charlet@adacore.com> 4463 4464 * s-crtl.ads, i-cstrea.ads, adaint.c, adaint.h, osint.adb, 4465 s-fileio.adb (__gnat_fopen, __gnat_freopen): Remove vms_form parameter, 4466 no longer used. 4467 * s-os_lib.ads: Minor reformatting. 4468 44692014-08-01 Arnaud Charlet <charlet@adacore.com> 4470 4471 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Restore more 4472 completely previous code since only GCC back-ends are prepared 4473 to handle e.g. 'Machine attribute. 4474 * targparm.adb, targparm.ads: Remove remaining refs and 4475 handling of OpenVMS_On_Target, VAX_Float_On_Target and 4476 RTX_RTSS_Kernel_Module_On_Target. 4477 * hostparm.ads (OpenVMS, Max_Debug_Name_Length): Removed, 4478 no longer used. 4479 44802014-08-01 Robert Dewar <dewar@adacore.com> 4481 4482 * exp_dist.adb, exp_attr.adb: Minor reformatting. 4483 * sem_ch3.adb, mlib-tgt-specific-hpux.adb, a-direct.ads, 4484 a-synbar-posix.adb, exp_ch9.adb, sem_ch10.adb, sem_prag.adb, 4485 sem_ch12.adb, sem.ads, sem_res.adb, s-exctra.adb, s-soflin.ads, 4486 g-alveop.ads, sem_ch8.adb, vxaddr2line.adb, sem_cat.ads: Remove 4487 improper use of shall. 4488 44892014-08-01 Robert Dewar <dewar@adacore.com> 4490 4491 * sem_aggr.adb, exp_atag.adb, layout.adb, nlists.adb, nlists.ads, 4492 exp_attr.adb, exp_ch9.adb, par-ch12.adb, exp_aggr.adb, 4493 exp_ch3.adb: Minor reformatting & code reorganization. 4494 44952014-08-01 Robert Dewar <dewar@adacore.com> 4496 4497 * gnat_rm.texi: Remove VMS specific rules for pragma Ident. 4498 * Makefile.rtl, adaint.c, gnat_rm.texi, s-asthan.adb, s-asthan.ads, 4499 s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, s-fvagfl.ads, 4500 s-po32gl.adb, s-po32gl.ads, s-vaflop.adb, s-vaflop.ads, s-vmexta.adb, 4501 s-vmexta.ads, sem_vfpt.adb, sem_vfpt.ads, socket.c: Remove VMS specific 4502 code. 4503 * gcc-interface/decl.c, gcc-interface/Makefile.in, 4504 gcc-interface/Make-lang.in: Ditto. Also remove refs to rTX. 4505 45062014-08-01 Pascal Obry <obry@adacore.com> 4507 4508 * s-os_lib.ads: Rename File_Size to Large_File_Size. 4509 45102014-08-01 Robert Dewar <dewar@adacore.com> 4511 4512 * a-numaux-vxworks.ads, a-numaux-x86.adb, a-numaux-x86.ads, 4513 a-numaux-darwin.adb, a-numaux-darwin.ads, a-numaux.ads, 4514 a-numaux-libc-x86.ads: Fix bad package header comments. 4515 * elists.ads, elists.adb (Append_New_Elmt): New procedure. 4516 * gnat_rm.texi, a-calend.adb, gnatcmd.adb, einfo.adb, einfo.ads, 4517 checks.adb, sem_prag.adb, sem_prag.ads, rtsfind.ads, freeze.adb, 4518 sem_util.adb, sem_attr.adb, exp_dbug.adb, exp_dbug.ads, gnat1drv.adb, 4519 targparm.adb, targparm.ads, exp_ch6.adb, switch-b.adb, s-shasto.ads, 4520 stand.ads, s-auxdec.ads, opt.adb, opt.ads, mlib-tgt.ads, s-fatgen.adb, 4521 s-fatgen.ads, system.ads, snames.ads-tmpl, s-stalib.ads, 4522 s-os_lib.adb: Remove VMS-specific code. 4523 45242014-08-01 Arnaud Charlet <charlet@adacore.com> 4525 4526 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): Revert to 4527 previous state in CodePeer_Mode. 4528 45292014-08-01 Robert Dewar <dewar@adacore.com> 4530 4531 * hostparm.ads: Put back definition of OpenVMS as False to aid 4532 the transition process. 4533 * sem_ch7.adb: Minor reformatting. 4534 * prj-env.adb: Minor code fix. 4535 * gnat_rm.texi: Complete previous change. 4536 * sem_ch3.adb: Minor reformatting. 4537 * sem_ch6.adb: Minor reformatting. 4538 * sem_elab.adb: Minor reformatting. 4539 * exp_strm.adb: Complete previous change. 4540 45412014-08-01 Vincent Celier <celier@adacore.com> 4542 4543 * sem_warn.adb (Warn_On_Unreferenced_Entity): Do not issue a 4544 warning when a constant is unreferenced and its type has pragma 4545 Unreferenced_Objects. 4546 45472014-08-01 Hristian Kirtchev <kirtchev@adacore.com> 4548 4549 * einfo.adb: Flag2 is now known as 4550 Is_Hidden_Non_Overridden_Subprogram. 4551 (Is_Hidden_Non_Overridden_Subprogram): New routine. 4552 (Set_Is_Hidden_Non_Overridden_Subprogram): New routine. 4553 (Write_Entity_Fields): Output Flag2. 4554 * einfo.ads: New attribute Is_Hidden_Non_Overridden_Subprogram 4555 along with occurrences in entities. 4556 (Is_Hidden_Non_Overridden_Subprogram): New routine and pragma Inline. 4557 (Set_Is_Hidden_Non_Overridden_Subprogram): New routine 4558 and pragma Inline. 4559 * sem_ch7.adb (Install_Package_Entity): Do not enter implicitly 4560 declared non-overriden homographs into visibility. 4561 * sem_ch13.adb (Freeze_Entity_Checks): Hide all 4562 implicitly declared non-overriden homographs. 4563 (Hide_Non_Overridden_Subprograms): New routine. 4564 45652014-08-01 Robert Dewar <dewar@adacore.com> 4566 4567 * snames.ads-tmpl, s-os_lib.adb, s-os_lib.ads, s-fileio.adb: Remove 4568 VMS-specific code. 4569 * prj-conf.adb: Minor reformatting. 4570 * xr_tabls.adb (Read_File): Restore code which was enabled on 4571 non VMS platforms before. 4572 * prj-env.adb (Initialize_Default_Project_Path): Ditto. 4573 * sem_ch5.adb: Minor reformatting. 4574 * lib-writ.adb, lib-writ.ads, bindgen.adb, sem_vfpt.adb, 4575 sem_vfpt.ads, ali.adb, ali.ads, opt.ads, bcheck.adb, exp_strm.adb: 4576 Remove VMS-specific code. 4577 45782014-08-01 Vincent Celier <celier@adacore.com> 4579 4580 * make.adb (Await_Compile): Remove loop that was only needed 4581 for VMS. 4582 45832014-08-01 Robert Dewar <dewar@adacore.com> 4584 4585 * a-calcon.ads, a-direct.adb, a-dirval-mingw.adb, a-dirval.adb, 4586 a-dirval.ads, a-except-2005.adb, a-excpol-abort.adb, 4587 a-numaux-darwin.ads, a-numaux.ads, bindgen.adb, bindusg.adb, 4588 einfo.adb, einfo.ads, err_vars.ads, errout.ads, errutil.adb, 4589 exp_ch3.adb, exp_ch4.adb, exp_ch7.adb, exp_ch7.ads, fname-uf.adb, 4590 fname.adb, fname.ads, freeze.adb, g-debpoo.adb, g-dirope.ads, 4591 g-excact.ads, g-expect.ads, g-socket.adb, g-socket.ads, g-sothco.ads, 4592 g-traceb.ads, gnat_rm.texi, gnatlink.adb, gnatls.adb, i-cstrea.adb, 4593 krunch.adb, krunch.ads, layout.adb, lib-util.adb, make.adb, 4594 mlib.adb, osint-b.adb, osint-b.ads, osint-c.adb, osint.adb, 4595 osint.ads, output.ads, par.adb, prj-conf.adb, prj-env.adb, 4596 prj-makr.adb, prj-nmsc.adb, prj.adb, prj.ads, repinfo.adb, rtsfind.adb, 4597 rtsfind.ads, s-excmac-gcc.ads, s-fatgen.adb, s-mastop.ads, 4598 s-parame-ae653.ads, s-parame-hpux.ads, s-parame-vxworks.ads, 4599 s-parame.ads, s-soflin.ads, s-stoele.adb, s-tasini.adb, 4600 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-mingw.ads, 4601 s-taspri-posix-noaltstack.ads, s-taspri-posix.ads, 4602 s-taspri-solaris.ads, s-taspri-vxworks.ads, s-trasym.ads, 4603 sem_ch12.adb, sem_ch4.adb, sem_eval.adb, sem_intr.adb, sem_mech.adb, 4604 sem_mech.ads, sem_prag.adb, sem_res.adb, sem_util.adb, sem_util.ads, 4605 sinfo.adb, sinfo.ads, sinput-c.adb, symbols.ads, targparm.adb, 4606 treepr.adb, types.ads, xr_tabls.adb, xr_tabls.ads: Remove VMS 4607 specific code and comments. 4608 46092014-08-01 Ed Schonberg <schonberg@adacore.com> 4610 4611 * sem_ch5.adb (Analyze_Iterator_Specification): New procedure 4612 Check_Reverse_Iteration, to verify the legality of the Reverse 4613 indicator on various container types, and to detect illegal 4614 reverse iterations on containers that only supoort forward 4615 iteration. 4616 46172014-08-01 Vincent Celier <celier@adacore.com> 4618 4619 * gnatcmd.adb: Remove the VMS specific stuff. Integrate in 4620 procedure GNATCmd the relevant declarations from packages VMS_Cmds 4621 and VMS_Conv. 4622 * gnatcmd.ads: Update comments to remove any trace of VMS 4623 46242014-08-01 Ed Schonberg <schonberg@adacore.com> 4625 4626 * sem_ch12.adb: sem_ch12.adb (Build_Wrapper): Capture entity for 4627 defaulted actual that is an operator, before building wrapper 4628 for it in GNATprove mode. Restrict construction of wrapper to 4629 actuals that are operators. 4630 46312014-08-01 Vincent Celier <celier@adacore.com> 4632 4633 * vms_conv.adb, vms_conv.ads, vms_data.ads, vms_cmds.ads: Remove VMS 4634 specific packages no longer needed. 4635 46362014-08-01 Pascal Obry <obry@adacore.com> 4637 4638 * s-os_lib.ads (System.CRTL): Move with clause to body. 4639 (File_Size): New type. 4640 (File_Length64): Use it. 4641 (File_Length): Restore previous spec returning a Long_Integer. 4642 * s-os_lib.adb (System.CRTL): Move with clause here. 4643 46442014-08-01 Vincent Celier <celier@adacore.com> 4645 4646 * mlib-prj.adb: Update comments to remove any mention of VMS. 4647 46482014-08-01 Arnaud Charlet <charlet@adacore.com> 4649 4650 * ug_words, xgnatugn.adb, gcc-interface/Make-lang.in: Remove 4651 xgnatugn.adb and ug_words. 4652 46532014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4654 4655 * exp_attr.adb (Expand_N_Attribute_Reference): Check whether 4656 expansion can be avoid for Machine, Model and Rounding. 4657 (Is_Inline_Floating_Point_Attribute): Return true for Machine 4658 & Model, as well as Rounding if wrapped in a conversion to an 4659 integer type. 4660 * sem_res.adb (Simplify_Type_Conversion): Deal with Rounding as well. 4661 * gcc-interface/gigi.h (fp_arith_may_widen): Declare. 4662 * gcc-interface/utils.c (fp_arith_may_widen): New global variable. 4663 * gcc-interface/misc.c (enumerate_modes): Compute it. 4664 * gcc-interface/trans.c (FP_ARITH_MAY_WIDEN): Delete. 4665 (lvalue_required_for_attribute_p): Deal with Descriptor_Size, 4666 Machine and Model. 4667 (Attribute_to_gnu) <Attr_Model>: New case. 4668 <Attr_Machine>): Likewise. 4669 (convert_with_check): Test 4670 fp_arith_may_widen variable. 4671 46722014-08-01 Pascal Obry <obry@adacore.com> 4673 4674 * adaint.h (GNAT_FOPEN): New definition for Windows. 4675 (GNAT_OPEN): Likewise. 4676 (GNAT_STAT): Likewise. 4677 (GNAT_FSTAT): Likewise. 4678 (GNAT_LSTAT): Likewise. 4679 (GNAT_STRUCT_STAT): Likewise. 4680 * adaint.c (__gnat_stat): Fix computation of file size for 4681 Windows. 4682 46832014-08-01 Vincent Celier <celier@adacore.com> 4684 4685 * Makefile.rtl: Minor comment update. 4686 46872014-08-01 Vincent Celier <celier@adacore.com> 4688 4689 * Make-generated.in: Remove dependencies for vms-help. 4690 46912014-08-01 Gary Dismukes <dismukes@adacore.com> 4692 4693 * makeutl.ads, opt.ads: Minor grammar fixes. 4694 * makeutl.adb: Minor code reorganization. 4695 46962014-08-01 Arnaud Charlet <charlet@adacore.com> 4697 4698 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in, 4699 gnatsym.adb: Remove gnatsym (VMS only tool). 4700 47012014-08-01 Ben Brosgol <brosgol@adacore.com> 4702 4703 * gnat_ugn.texi, projects.texi, xgnatugn.adb: Removed all VMS 4704 conditionalization from gnat_ugn.texi and projects.texi, and updated 4705 (considerably simplified) xgnatugn.adb, to be removed soon. 4706 47072014-08-01 Vincent Celier <celier@adacore.com> 4708 4709 * debug.adb: Remove doc for gnatmake/gprbuild switch -ds. 4710 * make.adb (List_Bad_Compilations): Use Opt.No_Exit_Message 4711 instead of Debug.Debug_Flag_S. 4712 * makeutl.adb (Finish_Program, Fail_Program): Use Opt flag 4713 No_Exit_Message instead of Debug.Debug_Flag_S to suppress exit 4714 error messages. 4715 * makeutl.ads (No_Exit_Message_Option): New constant string 4716 for switch --no-exit-message. 4717 * opt.ads (No_Exit_Message): New Boolean flag, defaulted to False. 4718 * switch-m.adb (Scan_Make_Switches): Recognize new switch 4719 --no-exit-message. 4720 47212014-08-01 Arnaud Charlet <charlet@adacore.com> 4722 4723 * exp_vfpt.adb, exp_vfpt.ads: Removed, no longer used. 4724 * gcc-interface/Make-lang.in: Remove exp_vfpt.o 4725 47262014-08-01 Javier Miranda <miranda@adacore.com> 4727 4728 * inline.ads (Inlined_Calls, Backend_Calls, 4729 Backend_Inlined_Subps, Backend_Not_Inlined_Subps): Declarations 4730 moved to inline.adb (Cannot_Inline): Update documentation. 4731 (Check_And_Build_Body_To_Inline): Renamed. 4732 (List_Inlining_Info): Subprogram moved here from package exp_ch6. 4733 * inline.adb (Check_Inlining_Restrictions): New local variable. 4734 (Inlined_Calls, Backend_Calls, Backend_Inlined_Subps, 4735 Backend_Not_Inlined_Subps): Declarations moved here 4736 from inline.ads (Number_Of_Statements): Removed. 4737 (Remove_Pragmas): Avoid duplicated version of this subprogram. 4738 (Build_Body_To_Inline): Code cleanup. 4739 (Build_Body_To_Inline.Has_Excluded_Statament): Removed. 4740 (Check_And_Build_Body_To_Inline): Renamed. Code cleanup. 4741 (Check_Body_To_Inline): Removed. 4742 (Generate_Body_To_Inline): Renamed as Generate_Subprogram_Body. 4743 (Has_Excluded_Declaration): No action if not 4744 Check_Inlining_Restrictions. 4745 (Has_Excluded_Statement): No action if not Check_Inlining_Restrictions. 4746 (Initialize): Initialize the lists of inlined calls and subprograms. 4747 (List_Inlining_Info): Subprogram moved here from package exp_ch6. 4748 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Update call 4749 to Check_And_Build_Body_To_Inline since it has been renamed as 4750 Check_And_Split_Unconstrained_Function 4751 * exp_ch6.ad[sb] (List_Inlining_Info): Subprogram moved to 4752 package inline. 4753 * gnat1drv.adb Update call to Inline.List_Inlining_Info. 4754 47552014-08-01 Vincent Celier <celier@adacore.com> 4756 4757 * debug.adb: Add documentation for new debug switch -ds. 4758 * make.adb (List_Bad_Compilations): Do not issue any message 4759 when switch -ds is specified. 4760 * makeutl.adb (Fail_Program): Do not issue any message when 4761 -ds is specified. 4762 (Finish_Program): Ditto. 4763 47642014-08-01 Robert Dewar <dewar@adacore.com> 4765 4766 * s-exnint.adb, s-exnint.ads, s-wwdwch.ads, s-carsi8.ads, 4767 s-casi32.ads, indepsw.adb, a-timoau.ads, s-explli.adb, s-explli.ads, 4768 s-casi16.ads, s-powtab.ads, g-wistsp.ads, a-ztmoau.adb, 4769 indepsw-gnu.adb, s-imgllb.ads, types.adb, gnat.ads, s-proinf.adb, 4770 indepsw-aix.adb, s-caun64.ads, s-imgllw.ads, s-traces-default.adb, 4771 s-vxwork-x86.ads, s-expllu.adb, s-exnlli.adb, s-exnlli.ads, 4772 s-traces.adb, widechar.ads, stand.adb, s-expint.adb, 4773 s-tratas-default.adb, s-expint.ads, s-geveop.ads, s-caun32.ads, 4774 s-expuns.adb, s-mantis.adb, s-mantis.ads, s-caun16.ads, s-tasinf.adb, 4775 s-memcop.ads, s-dsaser.ads, s-imgbiu.ads, a-szmzco.ads, g-strspl.ads, 4776 s-casi64.ads, g-zstspl.ads, indepsw-mingw.adb, tree_io.adb, 4777 s-boarop.ads, uname.ads, s-fore.adb, s-fore.ads, g-timsta.adb, 4778 g-timsta.ads, s-assert.adb, s-vector.ads, s-tratas.adb, 4779 s-tratas.ads: Minor fix to copyright notices. 4780 47812014-08-01 Eric Botcazou <ebotcazou@adacore.com> 4782 4783 * sinfo.ads: Remove long obsolete comment. 47842014-08-01 Ed Schonberg <schonberg@adacore.com> 4785 4786 * sem_util.adb: Add guard to setting of No_Predicate_On_Actual. 4787 * sem_ch3.adb: Minor reformatting. 4788 47892014-08-01 Pascal Obry <obry@adacore.com> 4790 4791 * cstreams.c: Only enable large file support on know supported 4792 platforms. Add missing defines/includes. 4793 47942014-08-01 Ed Schonberg <schonberg@adacore.com> 4795 4796 * einfo.ads, einfo.adb New flags No_Predicate_On_Actual and 4797 No_Dynamic_Predicate_On_Actual, to enforce the generic contract 4798 on generic units that contain constructs that forbid subtypes 4799 with predicates. 4800 * sem_ch3.adb (Analyze_Subtype_Declaration, Process_Subtype): 4801 Inherit flags indicating the presence of predicates in subtype 4802 declarations with and without constraints. 4803 (Inherit_Predicate_Flags): Utility for the above. 4804 * sem_util.adb (Bad_Predicated_Subtype_Use): In a generic context, 4805 indicate that the actual cannot have predicates, and preserve 4806 warning. In an instance, report error if actual has predicates 4807 and the construct appears in a package declaration. 4808 * sem_ch12.adb (Diagnose_Predicated_Actual): Report error 4809 for an actual with predicates, if the corresponding formal 4810 carries No_Predicate_On_Actual or (in the case of a loop) 4811 No_Dynamic_Predicate_On_Actual. 4812 * sem_ch13.adb (Build_Predicate_Functions); Do not build a 4813 Static_Predicate function if the type is non-static (in the 4814 presence of previous errors), 4815 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Set flag 4816 No_Dynamic_Predicate_On_Actual in a generic context, to enforce 4817 generic contract on actuals that cannot have predicates. 4818 48192014-08-01 Pascal Obry <obry@adacore.com> 4820 4821 * a-direct.adb (C_Size): Returns an int64. 4822 * osint.adb (System.CRTL): New with clause. 4823 (File_Length.Internal): Returns an int64. 4824 * s-os_lib.ads (File_Length): Returns an int64. 4825 48262014-08-01 Robert Dewar <dewar@adacore.com> 4827 4828 * gnatchop.adb, gnatcmd.adb, make.adb, mlib-prj.adb, bindgen.adb, 4829 mlib.ads, butil.adb, clean.adb, binde.adb, gnatls.adb, gnatname.adb, 4830 osint.adb, krunch.adb: Minor reformatting. 4831 48322014-08-01 Robert Dewar <dewar@adacore.com> 4833 4834 * inline.adb, inline.ads, fe.h, einfo.adb, einfo.ads, sem_util.adb, 4835 sem_util.ads, exp_ch4.adb, exp_ch11.adb, exp_ch6.adb, cstand.adb, 4836 sem_mech.adb, sem_ch6.adb, sem_ch8.adb, sem_ch11.adb, snames.ads-tmpl: 4837 Remove VMS-specific code. 4838 * gcc-interface/decl.c, gcc-interface/trans.c: Ditto. 4839 48402014-08-01 Arnaud Charlet <charlet@adacore.com> 4841 4842 * binde.adb, bindgen.adb, butil.adb, clean.adb, gnatbind.adb, 4843 gnatchop.adb, gnatcmd.adb, gnatls.adb, gnatname.adb, krunch.adb, 4844 make.adb, makeutl.adb, memtrack.adb, mlib-prj.adb, mlib.adb, 4845 mlib.ads, tempdir.adb: Remove VMS handling. 4846 48472014-08-01 Pascal Obry <obry@adacore.com> 4848 4849 * adaint.h, adaint.c (__gnat_file_length): Returns an __int64. 4850 (__gnat_named_file_length): Likewise. 4851 (__gnat_file_length_attr): Likewise. 4852 * a-direct.adb (C_Size): Use size_t as returned type. 4853 * osint.adb (File_Length): Adjust spec for Internal routine 4854 (returns size_t). 4855 * s-os_lib.adb (File_Length): Now returns a CRTL.size_t. 4856 (System.CRTL): With claused moved to spec. 4857 * s-os_lib.ads (System.CRTL): With clause moved to here. 4858 48592014-08-01 Pascal Obry <obry@adacore.com> 4860 4861 * adaint.h, adaint.c (__gnat_open): Added. 4862 * s-crtl.ads (open): Import __gnat_open for large file support. 4863 48642014-08-01 Robert Dewar <dewar@adacore.com> 4865 4866 * sem_case.adb (Dup_Choice): Improve message for integer constants. 4867 48682014-08-01 Arnaud Charlet <charlet@adacore.com> 4869 4870 * gnatlink.adb: Remove special handling of VMS, RTX and JVM. 4871 48722014-08-01 Pascal Obry <obry@adacore.com> 4873 4874 * adaint.h (GNAT_OPEN): Defines as open64 where supported. 4875 * adaint.c (GNAT_OPEN): Uses new macro where needed. 4876 48772014-07-31 Eric Botcazou <ebotcazou@adacore.com> 4878 4879 * gcc-interface/utils.c (lookup_and_insert_pad_type): New function 4880 extracted from... 4881 (maybe_pad_type): ...here. Call it to canonicalize the pad type. 4882 * gcc-interface/gigi.h: Update comment. 4883 48842014-07-31 Javier Miranda <miranda@adacore.com> 4885 4886 * debug.adb Remove documentation of -gnatd.k (no longer needed). 4887 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Code cleanup. 4888 * inline.ads (Backend_Inlined_Subps): New 4889 Elist. (Backend_Not_Inlined_Subps): New Elist. 4890 (Has_Excluded_Declaration): Declaration previously located in 4891 * inline.adb (Has_Excluded_Statement): Declaration previously 4892 located in inline.adb 4893 * inline.adb (Has_Single_Return): Moved out of 4894 Build_Body_To_Inline to avoid having duplicated code. 4895 (Number_Of_Statements): New subprogram. 4896 (Register_Backend_Inlined_Subprogram): New subprogram. 4897 (Register_Backend_Not_Inlined_Subprogram): New subprogram. 4898 (Add_Inlined_Subprogram): Register backend inlined subprograms and 4899 also register subprograms that cannot be inlined by the backend. 4900 (Has_Excluded_Declaration): Moved out of Build_Body_To_Inline 4901 to avoid having duplicated code. Replace occurrences of 4902 Debug_Flag_Dot_K by Back_End_Inlining. 4903 * sem_res.adb (Resolve_Call): Code cleanup. 4904 * exp_ch6.adb (Expand_Call): Complete previous patch. Replace 4905 occurrence of Debug_Flag_Dot_K by Back_End_Inlining. 4906 (List_Inlining_Info): Add listing of subprograms passed to the 4907 backend and listing of subprograms that cannot be inlined by 4908 the backend. 4909 * sem_ch12.adb, sem_ch3.adb Replace occurrences of 4910 Debug_Flag_Dot_K by Back_End_Inlining. 4911 49122014-07-31 Robert Dewar <dewar@adacore.com> 4913 4914 * nlists.ads: Minor code fix (remove unwise Inline for 4915 List_Length). 4916 49172014-07-31 Arnaud Charlet <charlet@adacore.com> 4918 4919 * einfo.adb: Remove VMS specific code. 4920 * exp_attr.adb: Remove VAX specific code. 4921 * set_targ.adb: Remove handling of VAX_Float. 4922 * sem_vfpt.adb: Remove references to Vax_Native. 4923 * sem_attr.adb (Is_VAX_Float): Remove ref to VAX_Native. 4924 49252014-07-31 Robert Dewar <dewar@adacore.com> 4926 4927 * sem_ch4.adb: Minor reformatting. 4928 49292014-07-31 Arnaud Charlet <charlet@adacore.com> 4930 4931 * gcc-interface/trans.c, gcc-interface/misc.c: Remove references 4932 to VMS. Misc clean ups. 4933 * gcc-interface/Makefile.in (gnatlib-shared-vms): Remove. 4934 49352014-07-31 Robert Dewar <dewar@adacore.com> 4936 4937 * cstand.adb, einfo.adb, einfo.ads, errout.adb, exp_attr.adb, 4938 exp_prag.adb, frontend.adb, interfac.ads, 4939 par-prag.adb, s-auxdec.ads, s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, 4940 s-fvaffl.ads, s-fvagfl.ads, s-vaflop.ads, sem_attr.adb, sem_attr.ads, 4941 sem_ch13.adb, sem_ch3.adb, sem_ch8.adb, sem_prag.adb, snames.adb-tmpl, 4942 snames.ads-tmpl: Remove obsolete VMS-specific code. 4943 49442014-07-31 Robert Dewar <dewar@adacore.com> 4945 4946 * sem_ch3.adb, sem_ch13.adb: Minor reformatting. 4947 49482014-07-31 Arnaud Charlet <charlet@adacore.com> 4949 4950 * a-intnam-linux.ads: Minor: update obsolete comments. 4951 * s-taasde.adb: Minor: fix comment header. 4952 49532014-07-31 Arnaud Charlet <charlet@adacore.com> 4954 4955 * s-auxdec-vms-ia64.adb, s-parame-vms-alpha.ads, s-asthan-vms-alpha.adb, 4956 s-tpopde-vms.adb, s-mastop-vms.adb, s-tpopde-vms.ads, s-taprop-vms.adb, 4957 mlib-tgt-vms_common.adb, mlib-tgt-vms_common.ads, s-inmaop-vms.adb, 4958 g-enblsp-vms-alpha.adb, s-ransee-vms.adb, s-osprim-vms.adb, 4959 s-osprim-vms.ads, g-socthi-vms.adb, g-socthi-vms.ads, system-vms_64.ads, 4960 s-osinte-vms.adb, s-osinte-vms.ads, g-eacodu-vms.adb, 4961 s-vaflop-vms-alpha.adb, s-parame-vms-ia64.ads, a-dirval-vms.adb, 4962 a-caldel-vms.adb, mlib-tgt-specific-vms-alpha.adb, s-tasdeb-vms.adb, 4963 symbols-vms.adb, a-intnam-vms.ads, g-expect-vms.adb, 4964 symbols-processing-vms-alpha.adb, mlib-tgt-specific-vms-ia64.adb, 4965 s-traent-vms.adb, s-traent-vms.ads, i-cstrea-vms.adb, a-numaux-vms.ads, 4966 symbols-processing-vms-ia64.adb, s-interr-vms.adb, s-memory-vms_64.adb, 4967 s-memory-vms_64.ads, g-enblsp-vms-ia64.adb, s-taspri-vms.ads, 4968 s-auxdec-vms_64.ads, s-intman-vms.adb, s-intman-vms.ads, 4969 s-tpopsp-vms.adb, s-asthan-vms-ia64.adb, a-calend-vms.adb, 4970 a-calend-vms.ads, system-vms-ia64.ads, s-auxdec-vms-alpha.adb: Removed. 4971 * namet.h (Is_Non_Ada_Error): Remove. 4972 49732014-07-31 Robert Dewar <dewar@adacore.com> 4974 4975 * exp_util.adb, lib-writ.adb, sem_ch12.adb, s-direio.adb: Minor 4976 reformatting. 4977 49782014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 4979 4980 * exp_attr.adb (Expand_Loop_Entry_Attribute): Update the comment 4981 which demonstrates the expansion of while loops subject to 4982 attribute 'Loop_Entry. The condition of a while loop along with 4983 related condition actions is now wrapped in a function. Instead 4984 of repeating the condition, the expansion now calls the function. 4985 49862014-07-31 Ed Schonberg <schonberg@adacore.com> 4987 4988 * sem_case.adb (Check_Against_Predicate): Correct off-by-one 4989 error when reporting of missing values in a case statement for 4990 a type with a static predicate. 4991 (Check_Choices): Reject a choice given by a subtype to which a 4992 Dynamic_Predicate applies. 4993 * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit 4994 Has_Dynamic_Predicate_Aspect flag from parent. 4995 49962014-07-31 Ed Schonberg <schonberg@adacore.com> 4997 4998 * sem_ch13.adb (Analyze_Aspect_Specifications): A predicate 4999 cannot apply to a subtype of an incomplete type. 5000 (Is_Static_Choice): Treat an Others_Clause as static. The 5001 staticness of the expression and of the range are checked 5002 elsewhere. 5003 50042014-07-31 Pascal Obry <obry@adacore.com> 5005 5006 * adaint.h (__gnat_ftell64): Added. 5007 (__gnat_fseek64): Added. 5008 (__int64): Added. 5009 * cstreams.c (__int64): Removed. 5010 50112014-07-31 Pascal Obry <obry@adacore.com> 5012 5013 * a-stream.ads (Stream_Element_Offset): Now a signed 64bit type. 5014 * i-cstrea.ads, s-crtl.ads (fseek64): Offset is always a 64bit value. 5015 (ftell64): Always returns a 64bit value. 5016 * cstreams.c (int64): New definition. 5017 (_FILE_OFFSET_BITS): Set to 64 to enable 64bit offset support. 5018 (__gnat_ftell64): Always returns a 64bit value. The implemenation now 5019 uses ftello() on UNIX. 5020 (__gnat_fseek64): Offset is always a 64bit value. The 5021 implementation now uses fseeko() on UNIX. 5022 * a-ststio.adb, s-direio.adb (Set_Position): Simplify code, 5023 always use fseek64 to set the offset. 5024 (Size): Simplify code, always use fseek64/ftell64. 5025 * s-direio.ads (Count): Now an int64. 5026 * g-socket.ads (Vector_Element): Adjust definition for Length 5027 to be a size_t. This matches the C definition and avoid using 5028 a 64bit integer on 32bit platforms now that Count is always 64bit. 5029 * g-socthi-mingw.adb (Ada.Streams): Removed as not used anymore. 5030 (C_Recvmsg): Change some conversion to account for change in 5031 Vector_Element. 5032 (C_Sendmsg): Likewise. 5033 50342014-07-31 Robert Dewar <dewar@adacore.com> 5035 5036 * cstand.adb (Create_Standard): Remove handling of -gnatdm flag. 5037 * debug.adb: Remove documentation of -gnatdm flag. 5038 * gnat1drv.adb (Adjust_Global_Switches): Remove handling of 5039 -gnatdm flag. 5040 50412014-07-31 Arnaud Charlet <charlet@adacore.com> 5042 5043 * lib-writ.adb (Write_Unit_Information): Fix case where U = 5044 No_Unit. 5045 50462014-07-31 Claire Dross <dross@adacore.com> 5047 5048 * exp_util.adb, exp_util.ads 5049 (Get_First_Parent_With_External_Axiomatization_For_Entity): 5050 New routine to find the first parent of an entity with 5051 a pragma Annotate (GNATprove, External_Axiomatization). 5052 (Has_Annotate_Pragma_For_External_Axiomatization): New function 5053 to check if a package has a pragma Annotate (GNATprove, 5054 External_Axiomatization). 5055 * einfo.ads, einfo.adb (Is_Generic_Actual_Subprogram): New 5056 flag on the entity for the declaration created for a formal 5057 subprogram in an instance. This is a renaming declaration, 5058 or in GNATprove_Mode the declaration of an expression function 5059 that captures the axiomatization of the actual. 5060 * sem_ch6.adb (Analyze_Expression_Function): For a 5061 Generic_Actual_Subprogram, place body immediately after the 5062 declaration because it may be used in a subsequent declaration 5063 in the instance. 5064 * sem_ch12.adb (Build_Wrapper): Add code to handle instances where 5065 the actual is a function, not an operator. Handle functions with 5066 one and two parameters and binary and unary operators. 5067 50682014-07-31 Pascal Obry <obry@adacore.com> 5069 5070 * cstreams.c (__gnat_is_regular_file_fd): Removed. 5071 * adaint.c (__gnat_is_regular_file_fd): Added. 5072 50732014-07-31 Robert Dewar <dewar@adacore.com> 5074 5075 * exp_strm.adb: Minor reformatting. 5076 50772014-07-31 Ed Schonberg <schonberg@adacore.com> 5078 5079 * sem_ch12.adb (Build_Wrapper): New procedure, subsidiary to 5080 Analyze_Associations, to create a wrapper around operators that 5081 are actuals to formal subprograms. This is done in GNATProve 5082 mode in order to propagate the contracts of the operators to 5083 the body of the instance. 5084 50852014-07-31 Ed Schonberg <schonberg@adacore.com> 5086 5087 * sem_attr.adb (Analyze_Attribute, case 'Old): The reference is 5088 legal if within an aspect specification for a generic subprogram. 5089 50902014-07-31 Javier Miranda <miranda@adacore.com> 5091 5092 * gnat1drv.adb (Back_End_Inlining): Set to false if 5093 Suppress_All_Inlining is set. 5094 * debug.adb: Adding documentation for -gnatd.z. 5095 * inline.adb (Add_Inlined_Body): Extend the -gnatn2 5096 processing to -gnatn1 for calls to Inline_Always routines. 5097 (Add_Inlined_Subprogram): Remove previous patch. 5098 50992014-07-31 Ed Schonberg <schonberg@adacore.com> 5100 5101 * sem_ch13.adb (Check_One_Function): Apply properly the static 5102 semantic rules for indexing aspects and the functions they denote. 5103 51042014-07-31 Javier Miranda <miranda@adacore.com> 5105 5106 * debug.adb: Complete documentation of -gnatd.z. 5107 51082014-07-31 Bob Duff <duff@adacore.com> 5109 5110 * gnat_ugn.texi: Minor doc fixes. 5111 51122014-07-31 Robert Dewar <dewar@adacore.com> 5113 5114 * sem_aggr.adb (Resolve_Array_Aggregate): Fix posting of missing 5115 index value. 5116 51172014-07-31 Tristan Gingold <gingold@adacore.com> 5118 5119 * s-unstyp.ads (Packed_Byte): Make this type universal aliasing. 5120 (Packed_Bytes1): Make component aliased. 5121 51222014-07-31 Robert Dewar <dewar@adacore.com> 5123 5124 * s-unstyp.ads, s-fileio.adb: Minor reformatting. 5125 51262014-07-31 Robert Dewar <dewar@adacore.com> 5127 5128 * inline.adb, gnat1drv.adb, exp_ch6.adb, s-fileio.adb: Minor 5129 reformatting. 5130 51312014-07-31 Eric Botcazou <ebotcazou@adacore.com> 5132 5133 * gcc-interface/utils2.c ((build_binary_op): Don't set TREE_THIS_NOTRAP 5134 on array references here, now done more selectively in trans.c. 5135 51362014-07-31 Doug Rupp <rupp@adacore.com> 5137 5138 * gcc-interface/misc.c (gnat_init_gcc_fp(): Set flag_errno_math to 0. 5139 51402014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 5141 5142 * sem_util.adb (Is_Effectively_Volatile): New routine. 5143 51442014-07-31 Fedor Rybin <frybin@adacore.com> 5145 5146 * gnat_ugn.texi: Document --test-duration option for gnattest. 5147 51482014-07-31 Javier Miranda <miranda@adacore.com> 5149 Eric Botcazou <ebotcazou@adacore.com> 5150 5151 * opt.ads (Back_End_Inlining): New variable which controls 5152 activation of inlining by back-end expansion. 5153 * gnat1drv.adb (Adjust_Global_Switches): Initialize Back_End_Inlining 5154 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not build 5155 the body to be inlined by the frontend if Back_End_Inlining 5156 is enabled. 5157 * exp_ch6.adb (Register_Backend_Call): Moved to inline.adb. 5158 (Expand_Call): If backend inlining is enabled let the backend to 5159 handle inlined subprograms. 5160 * inline.ads (Register_Backend_Call): Moved here from exp_ch6 5161 * inline.adb (Register_Backend_Call): Moved here from exp_ch6. 5162 (Add_Inlined_Subprogram): Add subprograms when Back_End_Inlining is set. 5163 (Must_Inline): Do not return Inline_Call if Back_End_Inlining is 5164 enabled. 5165 * debug.adb Document -gnatd.z 5166 * fe.h Import Back_End_Inlining variable. 5167 * gcc-interface/utils.c (create_subprog_decl): If Back_End_Inlining is 5168 enabled then declare attribute "always inline" 5169 * gcc-interface/decl.c, gcc-interface/trans.c, 5170 gcc-interface/gigi.h: Add handling of Inline_Always pragma. 5171 51722014-07-31 Robert Dewar <dewar@adacore.com> 5173 5174 * a-ngelfu.ads: Minor comment fix. 5175 51762014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 5177 5178 * freeze.adb (Freeze_Record_Type): Replace all calls to 5179 Is_SPARK_Volatile with Is_Effectively_Volatile and update 5180 related comments. 5181 * sem_ch3.adb (Analyze_Object_Contract, Process_Discriminants): 5182 Replace all calls to Is_SPARK_Volatile with 5183 Is_Effectively_Volatile and update related comments. 5184 * sem_ch5.adb (Analyze_Iterator_Specification, 5185 Analyze_Loop_Parameter_Specification): Replace all calls to 5186 Is_SPARK_Volatile with Is_Effectively_Volatile and update 5187 related comments. 5188 * sem_ch6.adb (Process_Formals): Replace all calls to 5189 Is_SPARK_Volatile with Is_Effectively_Volatile and update 5190 related comments. 5191 * sem_ch12.adb (Instantiate_Object): Replace the call to 5192 Is_SPARK_Volatile_Object with Is_Effectively_Volatile_Object 5193 and update related comment. 5194 * sem_prag.adb (Analyze_External_Property_In_Decl_Part, 5195 Analyze_Global_Item): Replace all calls to Is_SPARK_Volatile 5196 with Is_Effectively_Volatile and update related comments. 5197 * sem_res.adb (Resolve_Actuals, Resolve_Entity_Name): Replace 5198 all calls to Is_SPARK_Volatile with Is_Effectively_Volatile and 5199 update related comments. 5200 * sem_util.adb (Has_Enabled_Property, 5201 Variable_Has_Enabled_Property): Replace all calls 5202 to Is_SPARK_Volatile with Is_Effectively_Volatile and 5203 update related comments. 5204 (Is_Effectively_Volatile): New routine. 5205 (Is_Effectively_Volatile_Object): New routine. 5206 (Is_SPARK_Volatile): Removed. 5207 (Is_SPARK_Volatile_Object): Removed. 5208 * sem_util.ads (Is_Effectively_Volatile): New routine. 5209 (Is_Effectively_Volatile_Object): New routine. 5210 (Is_SPARK_Volatile): Removed. 5211 (Is_SPARK_Volatile_Object): Removed. 5212 52132014-07-31 Pascal Obry <obry@adacore.com> 5214 5215 * s-fileio.adb (Open): Make sure a shared file gets inserted into 5216 the global list atomically. This ensures that the file descriptor 5217 won't be freed because another tasks is closing the file. 5218 52192014-07-31 Robert Dewar <dewar@adacore.com> 5220 5221 * sem_ch3.adb (Process_Range_Expr_In_Decl): Add comments on 5222 generation of _FIRST and _LAST variables even in GNATprove_Mode. 5223 * gnat_ugn.texi: Minor editing. 5224 * sem_prag.adb (Ensure_Aggregate_Form): Make sure generated 5225 aggregate is marked Comes_From_Source if argument is CFS. 5226 52272014-07-31 Pascal Obry <obry@adacore.com> 5228 5229 * s-fileio.adb: Remove obsolete comment. 5230 52312014-07-31 Vincent Celier <celier@adacore.com> 5232 5233 * a-strbou.ads ("=" (Bounded_String, Bounded_String): Add 5234 overriding keyword before function to avoid error when compiler 5235 is called with -gnatyO (check overriding indicators). 5236 52372014-07-31 Tucker Taft <taft@adacore.com> 5238 5239 * gnat_ugn.texi: Add a paragraph pointing the reader 5240 to the "plugins" example. 5241 52422014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 5243 5244 * freeze.adb (Freeze_Expression): Document the 5245 purpose of the parent chain traversal. 5246 52472014-07-31 Robert Dewar <dewar@adacore.com> 5248 5249 * checks.ads, checks.adb (Activate_Overflow_Check): Do not set flag for 5250 unconstrained fpt ops. 5251 52522014-07-31 Pascal Obry <obry@adacore.com> 5253 5254 * s-fileio.adb (Open): Make sure a shared file gets inserted into 5255 the global list atomically. This ensures that the file descriptor 5256 won't be freed because another tasks is closing the file. 5257 52582014-07-31 Vincent Celier <celier@adacore.com> 5259 5260 * projects.texi: Minor spelling error fix. 5261 52622014-07-31 Robert Dewar <dewar@adacore.com> 5263 5264 * gnat_rm.texi: Document No_Elaboration_Code_All restriction. 5265 * lib-writ.adb, lib-load.adb: Initialize No_Elab_Code field in unit 5266 information. 5267 * lib.ads, lib.adb (No_Elab_Code): New field in unit information. 5268 * restrict.adb (Process_Restriction_Synonyms): Add handling 5269 of No_Elaboration_Code_All. 5270 * restrict.ads (Process_Restriction_Synonyms): Now handles 5271 No_Elaboration_Code_All. 5272 * sem_ch10.adb (Analyze_Context): Enforce transitive with for 5273 No_Elaboration_Code_All. 5274 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): 5275 Handle setting of No_Elab_Code in unit information. Handle 5276 No_Elaboration_Code_All. 5277 * snames.ads-tmpl (Name_No_Elaboration_Code): New name for 5278 pragma processing. 5279 (Name_No_Elaboration_Code_All): New name for pragma processing. 5280 52812014-07-31 Eric Botcazou <ebotcazou@adacore.com> 5282 5283 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array 5284 types with a null range and use the Esize of the component 5285 instead of its RM_Size to identify appropriate values. 5286 52872014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 5288 5289 * freeze.adb Add with and use clause for Aspects. 5290 (Freeze_Expression): Emit an error when a volatile constant lacks 5291 Boolean aspect Import. 5292 (Has_Boolean_Aspect_Import): New routine. 5293 52942014-07-31 Gary Dismukes <dismukes@adacore.com> 5295 5296 * exp_util.adb: Minor reformatting. 5297 52982014-07-31 Vincent Celier <celier@adacore.com> 5299 5300 * errutil.adb (Error_Msg): Make sure that all components of 5301 the error message object are initialized. 5302 53032014-07-31 Ed Schonberg <schonberg@adacore.com> 5304 5305 * sem_ch4.adb (Try_Container_Indexing): If the container type is 5306 class-wide, use specific type to locate iteration primitives. 5307 * sem_ch13.adb (Check_Indexing_Functions): Add legality checks for 5308 rules in RM 4.1.6 (Illegal_Indexing): New diagnostic procedure. 5309 Minor error message reformating. 5310 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly Iterator 5311 aspect for a derived type. 5312 53132014-07-31 Robert Dewar <dewar@adacore.com> 5314 5315 * debug.adb: Document debug flag d.X. 5316 53172014-07-31 Ed Schonberg <schonberg@adacore.com> 5318 5319 * sem_util.ads (Find_Specific_Type): Moved here from exp_disp.adb. 5320 * sem_util.adb (Find_Specific_Type): If type is untagged private, 5321 retrieve full view so that primitive operations can be located. 5322 * exp_disp.adb Move Find_Specific_Type to sem_util. 5323 * exp_ch4.adb (Expand_N_Op_Eq): If operands are class-wide, use 5324 Find_Specific_Type to locate primitive equality. 5325 * exp_util.adb (Make_CW_Equivalent_Type): A class_wide equivalent 5326 type does not require initialization. 5327 * exp_attr.adb (Compile_Stream_Body_In_Scope): Within an instance 5328 body all visibility is established, and the enclosing package 5329 declarations must not be installed. 5330 53312014-07-31 Yannick Moy <moy@adacore.com> 5332 5333 * sem_parg.adb, sem_prag.ads (Collect_Subprogram_Inputs_Outputs): 5334 Make subprogram public. 5335 53362014-07-31 Ed Schonberg <schonberg@adacore.com> 5337 5338 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): New 5339 predicate Discriminated_Size, to distinguish between private 5340 components that depend on discriminants from those whose size 5341 depends on some other non-static expression. 5342 53432014-07-31 Nicolas Setton <setton@adacore.com> 5344 5345 * g-exptty.adb (Close): Fix binding to Waitpid: use the 5346 tty version. 5347 53482014-07-31 Ed Schonberg <schonberg@adacore.com> 5349 5350 * sem_ch3.adb (Make_Index): Reject properly the use of 'Length 5351 in a discrete range, when 'range was probably intended. 5352 53532014-07-31 Robert Dewar <dewar@adacore.com> 5354 5355 * sem_warn.adb, sem_warn.ads (Has_Junk_Name): Moved from body to spec. 5356 53572014-07-31 Robert Dewar <dewar@adacore.com> 5358 5359 * frontend.adb: Minor reformatting. 5360 * sem.adb: Minor reformatting. 5361 * sem_ch6.adb (Analyze_Null_Procedure): Set proper sloc for 5362 identifiers on rewrite. 5363 * par.adb: Minor comment updates. 5364 * a-ngelfu.adb (Cos): Minor simplification. 5365 * par-ch13.adb (Get_Aspect_Specifications): Improve messages 5366 and recovery for bad aspect. 5367 * exp_ch3.adb: Code clean up. 5368 * sem_util.ads: Minor comment correction. 5369 * sem_ch13.adb (Check_Array_Type): Properly handle large types. 5370 * sem_ch3.adb: Code clean up. 5371 * binderr.ads: Minor comment correction. 5372 53732014-07-31 Ed Schonberg <schonberg@adacore.com> 5374 5375 * exp_disp.adb (Expand_Interface_Conversion): A call whose 5376 prefix is a static conversion to an interface type that is not 5377 class-wide is not dispatching. 5378 53792014-07-31 Robert Dewar <dewar@adacore.com> 5380 5381 * inline.adb, s-traceb.adb, s-traceb-hpux.adb, memtrack.adb, 5382 s-traceb-mastop.adb: Minor reformatting. 5383 53842014-07-31 Ed Schonberg <schonberg@adacore.com> 5385 5386 * exp_ch3.adb (Expand_Record_Extension): In ASIS_Mode perform 5387 expansion, to handle properly visibility of selected components 5388 in instance bodies. 5389 53902014-07-31 Robert Dewar <dewar@adacore.com> 5391 5392 * par-ch13.adb (Get_Aspect_Specifications): Set Inside_Depends. 5393 * par-ch2.adb (P_Pragma): Set Inside_Depends. 5394 * par-ch4.adb (P_Simple_Expression): Pass Inside_Depends to 5395 Check_Unary_Plus_Or_Minus. 5396 * scans.ads (Inside_Depends): New flag. 5397 * scng.adb (Scan): Pass Inside_Depends to Check_Arrow. 5398 * style.ads: Add Inside_Depends parameter to Check_Arrow Add 5399 Inside_Depends parameter to Check_Unary_Plus_Or_Minus. 5400 * styleg.adb (Check_Arrow): Handle Inside_Depends case. 5401 (Check_Unary_Plus_Or_Minus): Handle Inside_Depends case. 5402 * styleg.ads: Add Inside_Depends parameter to Check_Arrow Add. 5403 Inside_Depends parameter to Check_Unary_Plus_Or_Minus. 5404 54052014-07-31 Javier Miranda <miranda@adacore.com> 5406 5407 * s-vaflop.adb Move the body of function T_To_G before 5408 T_To_D. Required for frontend inlining. 5409 * inline.adb (Has_Excluded_Contract): New subprogram used to 5410 check if a subprogram inlined by the frontend has contracts 5411 which cannot be inlined. 5412 54132014-07-31 Bob Duff <duff@adacore.com> 5414 5415 * s-traceb.adb, s-traceb-hpux.adb, s-traceb-mastop.adb: 5416 (Call_Chain): Add 1 to number of frames to skip, to account for 5417 the fact that there's one more frame on the stack. 5418 * gcc-interface/Makefile.in (s-traceb.o): Adjust rules. 5419 54202014-07-31 Robert Dewar <dewar@adacore.com> 5421 5422 * checks.adb (Enable_Overflow_Check): More precise setting of 5423 Do_Overflow_Check flag for division. 5424 54252014-07-31 Eric Botcazou <ebotcazou@adacore.com> 5426 5427 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject packed 5428 array types with implementation type. 5429 54302014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 5431 5432 * sem_ch10.adb (Process_State): Remove local variable Name. Add 5433 local variable Decl. Partially declare an abstract state by 5434 generating an entity and storing it in the state declaration. 5435 * sem_prag.adb (Create_Abstract_State): Fully declare a 5436 semi-declared abstract state. 5437 54382014-07-31 Robert Dewar <dewar@adacore.com> 5439 5440 * prj-nmsc.adb: Minor reformatting. 5441 54422014-07-31 Bob Duff <duff@adacore.com> 5443 5444 * s-tasdeb.adb (System.Tasking.Debug): Remove 5445 all usage of the secondary stack from this package. 5446 54472014-07-31 Hristian Kirtchev <kirtchev@adacore.com> 5448 5449 * freeze.adb (Freeze_Expression): Update the loop in charge 5450 of finding a proper insertion place for freeze nodes to handle 5451 N_Expression_With_Actions nodes. 5452 54532014-07-31 Robert Dewar <dewar@adacore.com> 5454 5455 * sem_util.adb, a-ngelfu.ads, prj-nmsc.adb, prj-conf.adb: Minor 5456 reformatting. 5457 54582014-07-31 Pascal Obry <obry@adacore.com> 5459 5460 * prj-nmsc.adb: Minor reformatting. 5461 54622014-07-31 Ed Schonberg <schonberg@adacore.com> 5463 5464 * sem_util.adb (Has_Preelaborable_Initialization): Check that 5465 type is tagged before checking whether a user-defined Initialize 5466 procedure is present. 5467 54682014-07-31 Gary Dismukes <dismukes@adacore.com> 5469 5470 * a-ngelfu.ads (Sqrt): Augment postcondition. 5471 54722014-07-31 Pascal Obry <obry@adacore.com> 5473 5474 * prj-nmsc.adb (Check_Library_Attributes): An aggegate library 5475 directory and ALI directory must be different than all object 5476 and library directories of aggregated projects. 5477 54782014-07-31 Vincent Celier <celier@adacore.com> 5479 5480 * prj-pars.adb, prj-conf.ads, prj-conf.adb (Locate_Runtime): Move spec 5481 to package body, as it is not called from outside. Remove argument 5482 Project_Tree, no longer used. When runtime cannot be found, 5483 call Raise_Invalid_Config instead of failing the program. 5484 54852014-07-31 Robert Dewar <dewar@adacore.com> 5486 5487 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Suppress 5488 (Overflow_Check). 5489 * gnatlink.adb (Process_Args): Remove generation of -gnato0, 5490 no longer needed. 5491 54922014-07-31 Robert Dewar <dewar@adacore.com> 5493 5494 * gnat_ugn.texi: Document new switch -gnato0. 5495 * sem_ch3.ads: Minor reformatting. 5496 * gnatlink.adb (Process_Args): Compile bind file with -gnato0 5497 (we do not want overflow checks when incrementing elaboration 5498 counters). 5499 * einfo.ads: Minor reformatting. 5500 55012014-07-31 Robert Dewar <dewar@adacore.com> 5502 5503 * exp_ch5.adb, freeze.adb, exp_ch3.adb: Minor comment correction. 5504 * s-arit64.adb: Minor reformatting. 5505 55062014-07-31 Robert Dewar <dewar@adacore.com> 5507 5508 * gnat1drv.adb (Adjust_Global_Switches): Default for overflow 5509 checking is enabled except in GNAT_Mode. 5510 * switch-c.adb (Scan_Front_End_Switches): Implement -gnato0 5511 (suppress overflow checks). 5512 55132014-07-31 Ed Schonberg <schonberg@adacore.com> 5514 5515 * exp_ch3.adb (Expand_Freeze_Record_Type): Do not build an 5516 invariant procedure for an internally generated subtype that is 5517 created for an object of a class-wide type. 5518 55192014-07-31 Vincent Celier <celier@adacore.com> 5520 5521 * prj-nmsc.adb, errutil.adb: Make code similar to Errout. 5522 55232014-07-31 Gary Dismukes <dismukes@adacore.com> 5524 5525 * gnat_rm.texi, sem_aux.ads, einfo.ads, sem_util.ads, sem_ch6.adb, 5526 exp_disp.adb: Minor reformatting. 5527 55282014-07-31 Robert Dewar <dewar@adacore.com> 5529 5530 * exp_ch5.adb, sem_ch3.adb, exp_ch7.adb, exp_util.adb, exp_ch9.adb, 5531 sem_ch7.adb, checks.adb, s-exctra.adb, exp_ch6.adb, exp_disp.adb, 5532 exp_dist.adb, sem_ch13.adb, exp_strm.adb, exp_ch3.adb: Minor 5533 reformatting. 5534 55352014-07-31 Robert Dewar <dewar@adacore.com> 5536 5537 * sem_ch13.adb: Minor reformatting. 5538 55392014-07-31 Ed Schonberg <schonberg@adacore.com> 5540 5541 * exp_ch3.adb (Build_Invariant_Checks): If the enclosing record 5542 is an unchecked_union, warn that invariants will not be checked 5543 on components that have them. 5544 55452014-07-31 Robert Dewar <dewar@adacore.com> 5546 5547 * freeze.adb (Freeze_Entity): Check for error of 5548 Type_Invariant'Class applied to a untagged type. 5549 * sem_ch6.adb (Analyze_Null_Procedure): Unconditionally rewrite 5550 as null body, so that we perform error checks even if expansion 5551 is off. 5552 55532014-07-31 Ed Schonberg <schonberg@adacore.com> 5554 5555 * sem_ch13.adb (Build_Invariant_Procedure): If body of procedure 5556 is already present, nothing to do. 5557 * exp_ch3.adb (Build_Component_Invariant_Call): For an access 5558 component, check whether the access type has an invariant before 5559 checking the designated type. 5560 (Build_Record_Invariant_Proc): Change suffix of generated 5561 name to prevent ambiguity when record type has invariants 5562 in addition to those of components, and two subprograms are 5563 constructed. Consistent with handling of array types. 5564 (Insert_Component_Invariant_Checks): Build invariant procedure 5565 body when one has not been created yet, in the case of composite 5566 types that are completions and whose full declarations carry 5567 invariants. 5568 55692014-07-30 Thomas Quinot <quinot@adacore.com> 5570 5571 * gnat_rm.texi: Minor doc fixes. 5572 55732014-07-30 Robert Dewar <dewar@adacore.com> 5574 5575 * a-rbtgbo.adb, sem_ch13.adb: Minor reformatting. 5576 55772014-07-30 Vincent Celier <celier@adacore.com> 5578 5579 * errutil.adb (Set_Msg_Text): Process tilde ('~'): no processing 5580 of error message. 5581 * prj-nmsc.adb (Locate_Directory): Use a tilde ('~') in the 5582 message to report that a directory cannot be created, to avoid 5583 processing of the directory path that may contains special 5584 insertion characters. 5585 55862014-07-30 Ed Schonberg <schonberg@adacore.com> 5587 5588 * a-crdlli.ads: Place declaration of Empty_List after full type 5589 declaration for Curosr, to prevent freezing error. 5590 55912014-07-30 Robert Dewar <dewar@adacore.com> 5592 5593 * get_targ.adb: Minor code reorganization. 5594 * prj-proc.adb, prj-proc.ads, get_targ.ads, sem_ch6.adb: Minor 5595 reformatting. 5596 55972014-07-30 Ed Schonberg <schonberg@adacore.com> 5598 5599 * a-cbhase.adb: a-cbhase.adb (Insert): Raise Constraint_Error, 5600 not Program_Error, when attempting to remove an element not in 5601 the set. This is the given semantics for all set containers. 5602 56032014-07-30 Ed Schonberg <schonberg@adacore.com> 5604 5605 * a-rbtgbo.adb (Delete_Node_Sans_Free): If 5606 element is not present in tree return rather than violating 5607 an assertion. Constraint_Error will be raised in the caller if 5608 element is not in the container. 5609 56102014-07-30 Arnaud Charlet <charlet@adacore.com> 5611 5612 * set_targ.adb (Read_Target_Dependent_Values): New subprogram. 5613 (elab body): Add provision for default target config file. 5614 * get_targ.ads, get_targ.adb (Get_Back_End_Config_File): New subprogram. 5615 56162014-07-30 Ed Schonberg <schonberg@adacore.com> 5617 5618 * a-cbhase.adb (Delete): Raise Constraint_Error, not Program_Error, 5619 when attempting to remove an element not in the set. This is 5620 the given semantics for all set containers. 5621 * a-cborse.adb (Delete): Attempt removal first, to check for 5622 tampering, before checking whether this is an attempt to 5623 delete a non-existing element, and in fthe latter case raise 5624 Constraint_Error. 5625 56262014-07-30 Vincent Celier <celier@adacore.com> 5627 5628 * prj-proc.adb (Recursive_Process): Do not create a new 5629 Project_Id if the project is already in the list of projects of 5630 the tree. 5631 56322014-07-30 Ed Schonberg <schonberg@adacore.com> 5633 5634 * sem_ch6.adb (Analyze_Function_Return): Reject a return expression 5635 whose type is an incomplete formal type. 5636 (Analyze_Return_Type): Reject a return type that is an untagged 5637 imcomplete formal type. 5638 (Process_Formals): Reject a formal parameter whose type is an 5639 untagged formal incomplete type. 5640 * sem_res.adb (Resolve_Actuals): Reject an actual whose type is 5641 an untagged formal incomplete type. 5642 56432014-07-30 Robert Dewar <dewar@adacore.com> 5644 5645 * gnat_ugn.texi: Minor spelling correction. 5646 * makeutl.adb: Minor code reorganization. 5647 * exp_ch4.adb, exp_aggr.adb, exp_ch3.adb: Minor reformatting. 5648 56492014-07-30 Robert Dewar <dewar@adacore.com> 5650 5651 * einfo.ads (Has_Unchecked_Union): Document that this is used 5652 to check for illegal Valid_Scalars attribute references. 5653 * exp_attr.adb (Build_Record_VS_Func): New function 5654 (Expand_N_Attribute_Reference, case Valid_Scalars): Call this 5655 function. 5656 * gnat_rm.texi: Document 'Valid_Scalars cannot be applied to 5657 Unchecked_Union Add note on 'Valid_Scalars generating a lot 5658 of code. 5659 * sem_attr.adb (Analyze_Attribute, case Valid_Scalars): Give 5660 error on attempt to apply Valid_Scalars to Unchecked_Union type. 5661 56622014-07-30 Steve Baird <baird@adacore.com> 5663 5664 * exp_ch4.adb (Expand_N_Indexed_Component): Disable optimized handling 5665 of A(I..J)(K) in CodePeer_Mode. 5666 56672014-07-30 Ben Brosgol <brosgol@adacore.com> 5668 5669 * gnat_ugn.texi: Fix typo. 5670 56712014-07-30 Thomas Quinot <quinot@adacore.com> 5672 5673 * lib-writ.ads: document format change. 5674 56752014-07-30 Pascal Obry <obry@adacore.com> 5676 5677 * prj-util.adb (For_Interface_Sources): Do not 5678 include sources from withed externally built projects. 5679 56802014-07-30 Robert Dewar <dewar@adacore.com> 5681 5682 * lib.adb: Minor reformatting. 5683 * prj-util.adb: Minor reformatting. 5684 56852014-07-30 Ed Schonberg <schonberg@adacore.com> 5686 5687 * exp_aggr.adb (Build_Record_Aggr_Code): For an array component 5688 that depends on discriminants, and which is given by an others 5689 clause, create an explicit subtype with the discriminant values 5690 of the enclosing aggregate, because the backend cannot otherwise 5691 retrieve the actual bounds of the array. 5692 56932014-07-30 Fedor Rybin <frybin@adacore.com> 5694 5695 * gnat_ugn.texi: Improve gnattest documentation. 5696 56972014-07-30 Pascal Obry <obry@adacore.com> 5698 5699 * makeutl.adb (Insert_Project_Sources): Properly handle sources 5700 that are aggregated. We want to include sources not only part 5701 of libraries but also if part of an aggregated project from an 5702 aggregate library. 5703 * prj.adb (For_Project_And_Aggregated_Context): Properly check 5704 state of root project. 5705 57062014-07-30 Thomas Quinot <quinot@adacore.com> 5707 5708 * lib-load.ads: Minor reformatting. 5709 * sinfo.ads (Library_Unit): Update comment. 5710 * lib.ads (Notes): Simplify. The Unit component in Notes_Entry 5711 is redundant. Instead used the pragma Node_Id directly as the 5712 element type. 5713 57142014-07-30 Thomas Quinot <quinot@adacore.com> 5715 5716 * lib.adb (Store_Note): Store only notes that do not come from 5717 an instance, and that are in the extended main source unit. 5718 * lib-writ (Write_Unit_Information): Annotations from subunits 5719 must be emitted along with those for the main unit, and they 5720 must carry a specific file name. 5721 * ali.ads (Notes_Record): Use a File_Name_Type instead of a 5722 Unit_Id for the source file containing the pragma, as in the 5723 case of annotations from subunits we might not have a readily 5724 available unit id. 5725 * ali.adb (Scan_ALI): Account for above change in data structure. 5726 57272014-07-30 Vincent Celier <celier@adacore.com> 5728 5729 * makeutl.adb (Insert_Project_Sources): When the library project 5730 is an aggregate Stand-Alone Library, insert in the queue the 5731 Ada interface units, with Closure set to True; 5732 57332014-07-30 Eric Botcazou <ebotcazou@adacore.com> 5734 5735 * sem_util.adb: Fix minor typo. 5736 * makeutl.adb: Minor reformatting. 5737 57382014-07-30 Robert Dewar <dewar@adacore.com> 5739 5740 * exp_ch7.adb, checks.adb, makeutl.adb, makeutl.ads: Minor reformatting. 5741 57422014-07-30 Yannick Moy <moy@adacore.com> 5743 5744 * checks.ads: Fix typo in comment. 5745 57462014-07-30 Pierre-Marie Derodat <derodat@adacore.com> 5747 5748 * sem_util.adb (Set_Debug_Info_Needed): For scalar types, recurse on 5749 entities that materialize range bounds, if any. 5750 57512014-07-30 Vincent Celier <celier@adacore.com> 5752 5753 * projects.texi: Minor spelling fix. 5754 57552014-07-30 Hristian Kirtchev <kirtchev@adacore.com> 5756 5757 * checks.adb (Make_Bignum_Block): Use the new secondary stack 5758 build routines to manage the mark. 5759 * exp_ch7.adb (Create_Finalizer, Expand_Cleanup_Actions): 5760 Use the new secodary stack build routines to manage the mark. 5761 (Insert_Actions_In_Scope_Around): Add new formal parameter 5762 Manage_SS along with comment on its usage. Code and comment 5763 reformatting. Mark and release the secondary stack when the 5764 context warrants it. 5765 (Make_Transient_Block): Update the call 5766 to Insert_Actions_In_Scope_Around to account for parameter Manage_SS. 5767 (Wrap_Transient_Declaration): Remove local variable 5768 Uses_SS. Ensure that the secondary stack is marked and released 5769 when the related object declaration appears in a library level 5770 package or package body. Code and comment reformatting. 5771 * exp_util.ads, exp_util.adb (Build_SS_Mark_Call): New routine. 5772 (Build_SS_Release_Call): New routine. 5773 57742014-07-30 Steve Baird <baird@adacore.com> 5775 5776 * exp_attr.adb: Revert previous change, not needed after all. 5777 57782014-07-30 Vincent Celier <celier@adacore.com> 5779 5780 * makeutl.adb (Queue.Insert_Project_Sources): Insert with 5781 Closure => True for interfaces of Stand-Alone Libraries. 5782 * makeutl.ads (Source_Info (Format => Gprbuild)): Add new 5783 Boolean component Closure, defaulted to False. 5784 57852014-07-30 Yannick Moy <moy@adacore.com> 5786 5787 * sem_res.adb: Fix typo in error message. 5788 57892014-07-30 Robert Dewar <dewar@adacore.com> 5790 5791 * sem_ch3.adb (Process_Range_Expr_In_Decl): Use _FIRST/_LAST 5792 as name suffixes rather than L/H for subtype bounds. 5793 * tbuild.ads: Minor comment improvements and fixes 5794 (Make_External_Name): Document that suffix can start with an 5795 underscore. 5796 57972014-07-30 Bob Duff <duff@adacore.com> 5798 5799 * gnat_ugn.texi: Document --rep-clauses switch. 5800 58012014-07-30 Ed Schonberg <schonberg@adacore.com> 5802 5803 * sem_ch13.adb (Analyze_Aspect_Specifications): Default_Value and 5804 Default_Component_Value can only be specified for scalar type or 5805 arrays of scalar types respectively. This legality check must 5806 be performed at the point the aspect is analyzed, in order to 5807 reject aspect specifications that apply to a partial view. 5808 58092014-07-30 Thomas Quinot <quinot@adacore.com> 5810 5811 * freeze.adb: Minor reformatting. 5812 58132014-07-30 Robert Dewar <dewar@adacore.com> 5814 5815 * exp_attr.adb (Expand_Attribute, case First/Last): Don't expand in 5816 codepeer mode. 5817 58182014-07-30 Ed Schonberg <schonberg@adacore.com> 5819 5820 * freeze.adb (Check_Expression_Function): At the freeze point 5821 of an expression function, verify that the expression in the 5822 function does not contain references to any deferred constants 5823 that have no completion yet. 5824 (Freeze_Expression, Freeze_Before): call 5825 Check_Expression_Function. 5826 * a-ciorse.ads: Add Reference_Control_Type to detect tampering. 5827 * a-ciorse.adb: Add Adjust and Finalize routines for 5828 Reference_Control_Type. Use it in the construction of Reference 5829 and Constant_Reference values. 5830 58312014-07-30 Robert Dewar <dewar@adacore.com> 5832 5833 * exp_aggr.adb: Update comments. 5834 * a-chtgbo.adb, a-chtgbo.ads, a-cbhase.adb, a-cbhase.ads: Minor 5835 reformatting. 5836 58372014-07-30 Robert Dewar <dewar@adacore.com> 5838 5839 * cstand.adb (New_Standard_Entity): New version takes name 5840 string to call Make_Name. 5841 (Create_Standard): Use this routine to set name before setting other 5842 fields. 5843 58442014-07-30 Robert Dewar <dewar@adacore.com> 5845 5846 * exp_attr.adb (Expand_Attribute, case First): Rewrite simple 5847 entity reference. 5848 (Expand_Attribute, case Last): Ditto. 5849 * exp_ch3.adb (Constrain_Index): New calling sequence for 5850 Process_Range_Expr_In_Decl. 5851 (Expand_N_Object_Declaration): Avoid setting Is_Known_Valid in one 5852 problematical case. 5853 * sem_ch3.adb (Constrain_Index): New calling sequence for 5854 Process_Range_Expr_In_Decl. 5855 (Set_Scalar_Range_For_Subtype): ditto. 5856 (Process_Range_Expr_In_Decl): Create constants to hold bounds for 5857 subtype. 5858 * sem_ch3.ads (Process_Range_Expr_In_Decl): Add Subtyp parameter. 5859 * sem_eval.adb (Compile_Time_Compare): Make sure we use base 5860 types if we are not assuming no invalid values. 5861 58622014-07-30 Robert Dewar <dewar@adacore.com> 5863 5864 * clean.adb: Minor reformatting. 5865 * opt.ads: Minor fix to incorrect comment. 5866 58672014-07-30 Ed Schonberg <schonberg@adacore.com> 5868 5869 * a-chtgbo.ads, a-chtgbo.adb (Delete_Node_At_Index): New 5870 subprogram, used by bounded hashed sets, to delete a node at 5871 a given index, whose element may have been improperly updated 5872 through a Reference_Preserving key. 5873 * a-cbhase.ads: Add Reference_Control_Type to package Generic_Keys. 5874 * a-cbhase.adb: Add Adjust and Finalize routines for 5875 Reference_Control_Type. 5876 (Delete, Insert): Raise Program_Error, not Constraint_Error, 5877 when operation is illegal. 5878 (Reference_Preserving_Key): Build aggregate for Reference_Control_Type 5879 * a-cmbutr.ads: Add Reference_Control_Type to detect tampering. Add 5880 private with_clause for Ada.Finalization. 5881 * a-cbmutr.adb: Add Adjust and Finalize routines for 5882 Reference_Control_Type. Use it in the construction of Reference 5883 and Constant_Reference values. 5884 58852014-07-30 Robert Dewar <dewar@adacore.com> 5886 5887 * sem_ch3.adb, sem_ch3.ads: Minor code reorganization. 5888 58892014-07-30 Pascal Obry <obry@adacore.com> 5890 5891 * clean.adb (Clean_Project): Properly check for directory 5892 existence before trying to enter it. 5893 58942014-07-30 Robert Dewar <dewar@adacore.com> 5895 5896 * sem_ch3.ads, prj.ads, prj-nmsc.adb: Minor reformatting. 5897 58982014-07-30 Robert Dewar <dewar@adacore.com> 5899 5900 * par-ch5.adb (P_Sequence_Of_Statements): Properly handle 5901 missing semicolon after name. 5902 59032014-07-30 Pascal Obry <obry@adacore.com> 5904 5905 * prj.ads (Gprinstall_Flags): New constant. 5906 * prj-nmsc.adb (Check_Library_Attributes): Do not fails for 5907 missing library dir if Directories_Must_Exist_In_Projects 5908 is false. 5909 59102014-07-30 Bob Duff <duff@adacore.com> 5911 5912 * a-except-2005.adb, a-except.adb: Remove obsolete comments. 5913 * s-traceb.ads: Updagte comments. 5914 59152014-07-30 Robert Dewar <dewar@adacore.com> 5916 5917 * checks.adb, a-cihase.adb, a-cihase.ads, a-chtgop.adb, a-chtgop.ads, 5918 a-except.adb, a-except-2005.adb, a-cborse.adb, a-cborse.ads, 5919 a-exexda.adb, a-elchha.adb, exp_aggr.adb, a-cohase.adb: Minor 5920 reformatting. 5921 59222014-07-30 Ed Schonberg <schonberg@adacore.com> 5923 5924 * a-chtgop.ads, a-chtgop.adb (Delete_Node_At_Index): New 5925 subprogram, used by all versions of hashed sets, to delete a node 5926 whose element has been improperly updated through a Reference_ 5927 Preserving key. 5928 * a-cohase.adb: Remove Delete_Node, use new common procedure 5929 Delete_Node_At_Index. 5930 * a-cihase.ads: Add Reference_Control_Type to package Generic_Keys. 5931 * a-cihase.adb: Add Adjust and Finalize routines for 5932 Reference_Control_Type. 5933 (Reference_Preserving_Key): Build aggregate for 5934 Reference_Control_Type 5935 59362014-07-30 Yannick Moy <moy@adacore.com> 5937 5938 * checks.adb, checks.ads (Determine_Range_R): New procedure to 5939 determine the possible range of a floating-point expression. 5940 59412014-07-30 Ed Schonberg <schonberg@adacore.com> 5942 5943 * a-cborse.ads: Add Reference_Control_Type to package Generic_Keys. 5944 * a-cborse.adb: Add Adjust and Finalize routines for 5945 Reference_Control_Type. 5946 (Reference_Preserving_Key): Build aggregate for 5947 Reference_Control_Type. 5948 (Delete): Check for tampering, and raise Program_Error (not 5949 Constraint_Error) when attempting to delete an element not in 5950 the set. 5951 (Insert): Ditto. 5952 59532014-07-30 Bob Duff <duff@adacore.com> 5954 5955 * a-elchha.adb, a-except-2005.adb, a-except.adb, a-exexda.adb, 5956 * a-exextr.adb, a-exstat.adb, exp_intr.ads, s-tassta.adb: 5957 Exception_Information is used to produce useful debugging 5958 information for the programmer. However, it was also used to 5959 implement the stream attributes for type Exception_Occurrence. The 5960 latter requires a stable and portable interface, which meant 5961 that we couldn't include a symbolic traceback. A separate set of 5962 routines was used to provide symbolic tracebacks under program 5963 control (i.e. not automatically). The goal of this ticket is 5964 to provide such automatic tracebacks, so the change here is to 5965 split the two functionalities: Exception_Information gives the 5966 maximally useful information for debugging (i.e. it now includes 5967 a symbolic traceback when a decorator is set, and it can be 5968 improved freely in the future without disturbing streaming). 5969 Untailored_Exception_Information always uses hexadecimal addresses 5970 in the traceback, has a stable and portable output, and is now 5971 used for streaming. 5972 59732014-07-30 Eric Botcazou <ebotcazou@adacore.com> 5974 5975 * exp_aggr.adb (Expand_Array_Aggregate): Add missing test 5976 on the target of the assignment to find out whether it 5977 can be directly done by the back-end. 5978 * exp_util.adb (Is_Possibly_Unaligned_Slice): Remove obscure test. 5979 59802014-07-30 Robert Dewar <dewar@adacore.com> 5981 5982 * inline.adb, a-coorse.adb, a-coorse.ads, a-cohase.adb, a-cohase.ads, 5983 a-tasatt.adb: Minor reformatting. 5984 59852014-07-30 Robert Dewar <dewar@adacore.com> 5986 5987 * exp_ch4.adb: Minor reformatting. 5988 59892014-07-30 Ed Schonberg <schonberg@adacore.com> 5990 5991 * a-coorse.adb, a-coorse.ads (Generic_Keys): Add a 5992 Reference_Control_Type to generic package, to keep additional 5993 information for Reference_Types that manipulate keys. Add Adjust and 5994 Finalize procedures for this type. 5995 (Finalize): When finalizing a reference_preserving_key, verify 5996 that the key of the new value is equivalent to the key of the 5997 original element, raise Program_Error otherwise. 5998 (Insert): Detect tampering. 5999 (Reference_Preserving_Key): Build proper Reference_Control_Type, 6000 and update Busy and Lock bits to detect tampering. 6001 * a-cohase.ads: Keep with-clause private. 6002 60032014-07-30 Hristian Kirtchev <kirtchev@adacore.com> 6004 6005 * exp_ch4.adb (Expand_N_Op_Eq): Emit a warning when the operands 6006 of an equality are of an Unchecked_Union type and lack inferable 6007 discriminants. 6008 60092014-07-30 Bob Duff <duff@adacore.com> 6010 6011 * g-exctra.adb, g-exctra.ads, s-exctra.adb, s-exctra.ads, Makefile.rtl, 6012 g-trasym.adb, g-trasym.ads, s-trasym.adb, s-trasym.ads: Move 6013 GNAT.Traceback.Symbolic and GNAT.Exception_Traces into the System 6014 hierarchy (System.Traceback.Symbolic and System.Exception_Traces), so 6015 we can call them from the runtimes. Leave renamings in place under GNAT. 6016 60172014-07-30 Yannick Moy <moy@adacore.com> 6018 6019 * inline.adb (Check_And_Build_Body_To_Inline): Include code for 6020 inlining in GNATprove mode. 6021 60222014-07-30 Ed Schonberg <schonberg@adacore.com> 6023 6024 * a-cohase.adb, a-cohase.ads (Generic_Keys): Add a 6025 Reference_Control_Type to generic package, to keep additional 6026 information for Reference_Types that manipulate keys. Add Adjust and 6027 Finalize procedures for this type. 6028 (Delete_Node): New procedure called when finalizing a 6029 Reference_Control_Type, to remove a node whose element has been 6030 improperly updated through a Reference. 6031 (Insert): Detect tampering. 6032 (Reference_Preserving_Key): Build proper Reference_Control_Type, 6033 and update Busy and Lock bits to detect tampering. 6034 60352014-07-30 Bob Duff <duff@adacore.com> 6036 6037 * exp_intr.ads: Minor comment fix. 6038 60392014-07-30 Gary Dismukes <dismukes@adacore.com> 6040 6041 * exp_prag.adb, a-tags.ads: Minor typo fixes. 6042 60432014-07-30 Bob Duff <duff@adacore.com> 6044 6045 * a-excach.adb, a-excach-cert.adb, a-except-2005.ads, 6046 a-except.ads, g-traceb.adb, memtrack.adb, 6047 s-traceb.adb, s-traceb.ads, s-traceb-hpux.adb, s-traceb-mastop.adb: 6048 Cleanup: Make the three versions of System.Traceback.Call_Chain 6049 have the same interface. Use an array for the Traceback parameter 6050 instead of an Address. This will enable reduction in code 6051 duplication. 6052 60532014-07-30 Pat Rogers <rogers@adacore.com> 6054 6055 * gnat_ugn.texi: Corrected minor textual error in description 6056 of switch -gnatwl. 6057 60582014-07-30 Bob Duff <duff@adacore.com> 6059 6060 * Makefile.rtl: Sort file names. 6061 60622014-07-30 Arnaud Charlet <charlet@adacore.com> 6063 6064 * a-tasatt.adb: Complete previous change: kill spurious warning 6065 on e.g. sparc, and make sure we only use the fast path when the 6066 alignment is compatible. 6067 60682014-07-30 Yannick Moy <moy@adacore.com> 6069 6070 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Mark new Spec_Id as 6071 coming from source. 6072 60732014-07-30 Yannick Moy <moy@adacore.com> 6074 6075 * inline.adb (Build_Body_To_Inline): Issue more precise messages 6076 for declarations that prevent inlining. 6077 (Cannot_Inline): Change usual start of message to refer to contextual 6078 analysis in GNATprove mode. 6079 * sem_res.adb (Resolve_Call): Change usual start of message to 6080 refer to contextual analysis in GNATprove mode, when inlining 6081 not possible. 6082 60832014-07-30 Robert Dewar <dewar@adacore.com> 6084 6085 * sem_res.adb, sem_ch6.adb: Minor code reorganization. 6086 * inline.adb: Minor reformatting. 6087 60882014-07-30 Javier Miranda <miranda@adacore.com> 6089 6090 * a-tags.ads: Add comments. 6091 60922014-07-30 Pat Rogers <rogers@adacore.com> 6093 6094 * gnat_rm.texi: Minor word error. 6095 60962014-07-30 Ed Schonberg <schonberg@adacore.com> 6097 6098 * exp_prag.adb (Expand_Old): Insert declarationss of temporaries 6099 created to capture the value of the prefix of 'Old at the 6100 beginning of the current declarative part, to prevent data flow 6101 anomalies in the postcondition procedure that will follow. 6102 61032014-07-30 Yannick Moy <moy@adacore.com> 6104 6105 * debug.adb: Retire debug flag -gnatdQ. 6106 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Check SPARK_Mode 6107 on decl, not on body. Ignore predicate functions. 6108 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove use of 6109 debug flag -gnatdQ. Correctly analyze SPARK_Mode on decl and 6110 body when generating a decl for a body on which SPARK_Mode aspect 6111 is given. 6112 * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Reorder tests for 6113 attaching pragma to entity, to account for declaration not coming 6114 from source. 6115 * sem_res.adb (Resolve_Call): Issue warning and flag subprogram 6116 as not always inlined in GNATprove mode, when called in an 6117 assertion context. 6118 61192014-07-30 Vincent Celier <celier@adacore.com> 6120 6121 * debug.adb: Minor comment update. 6122 61232014-07-30 Robert Dewar <dewar@adacore.com> 6124 6125 * s-tasuti.adb, s-tassta.adb: Minor reformatting. 6126 * sprint.adb (Sprint_Node): Handle N_Contract case. 6127 * exp_prag.adb: Minor reformatting. 6128 * freeze.adb (Freeze_Entity): Check useless postcondition for 6129 No_Return subprogram. 6130 * sem_prag.adb: Minor reformatting. 6131 61322014-07-30 Javier Miranda <miranda@adacore.com> 6133 6134 * a-tags.ads: Complete comments about performance. 6135 61362014-07-30 Fedor Rybin <frybin@adacore.com> 6137 6138 * gnat_ugn.texi: Adding description for --exit-status option to 6139 gnattest section. Fixing index entry of --passed-tests option 6140 in gnattest section. 6141 61422014-07-30 Javier Miranda <miranda@adacore.com> 6143 6144 * Makefile.rtl, gnat_rm.texi, i-cpp.adb, i-cpp.ads, impunit.adb, 6145 rtsfind.ads: Remove references to package Interfaces.CPP since this 6146 package is no longer needed. 6147 61482014-07-30 Bob Duff <duff@adacore.com> 6149 6150 * s-taasde.adb (Timer_Queue): Don't use a 6151 build-in-place function call to initialize the Timer_Queue. 6152 * s-traent.adb, s-traent.ads, s-traent-vms.adb, s-traent-vms.ads: 6153 Turn off polling in these units, because otherwise we get 6154 elaboration circularities with Ada.Exceptions when the -gnatP 6155 switch is used. 6156 * s-tassta.adb (Create_Task): Make sure independent tasks 6157 are created with Parent = Environment_Task. This was not true, 6158 for example, in s-interr.adb, when Interrupt_Manager does "new 6159 Server_Task"; the Server_Task had Parent = Interrupt_Manager, 6160 which is wrong because the master is determined by the access 6161 type, which is at library level. 6162 * s-tasuti.adb (Make_Independent): Avoid setting Parent; it is 6163 now set correctly by Create_Task. 6164 (Make_Passive): Remove the workaround for the race condition in 6165 Make_Independent. 6166 * frontend.adb (Frontend): Revert to previous method of detecting 6167 temporary configuration pragma files, recognizing such files by 6168 ".tmp" in the name. This is more general than detecting pragmas 6169 Source_File_Name_Project, because it allows any tool to use 6170 this naming convention, no matter the content of the file. 6171 * gnat_ugn.texi: Document this naming convention. 6172 61732014-07-30 Robert Dewar <dewar@adacore.com> 6174 6175 * exp_ch7.adb, s-tataat.adb, s-tataat.ads, s-parame-vms-alpha.ads, 6176 inline.adb, s-parame-hpux.ads, exp_smem.adb, s-tasini.adb, 6177 s-tasini.ads, s-parame-vms-ia64.ads, s-parame.ads, s-taskin.ads, 6178 s-parame-vxworks.ads, a-tasatt.adb, a-tasatt.ads: Minor reformatting. 6179 * a-suenco.adb (Convert): Handle overlong encodings in UTF8-UTF8 6180 conversion. 6181 61822014-07-30 Ed Schonberg <schonberg@adacore.com> 6183 6184 * sem_ch5.adb: Improve error recovery. 6185 * inline.adb (Build_Body_To_Inline): Set Full_Analysis to false 6186 before analyzing the body, so that in GNATprove mode there is 6187 no light expansion. Whatever expansion is required by SPARK will 6188 be performed when analysing the inlined code. 6189 61902014-07-30 Bob Duff <duff@adacore.com> 6191 6192 * s-tataat.adb, s-tataat.ads, a-tasatt.adb: Minor comment fixes. 6193 61942014-07-30 Ed Schonberg <schonberg@adacore.com> 6195 6196 * sem_ch5.adb (Analyze_Loop_Statement): If loop has a label, 6197 verify that it is not hidden by an inner implicit declaration. 6198 61992014-07-30 Thomas Quinot <quinot@adacore.com> 6200 6201 * sem.ads (Scope_Table_Entry): New component Locked_Shared_Objects. 6202 * sem_ch8.adb (Push_Scope): Initialize Locked_Shared_Objects. 6203 * exp_smem.adb (Add_Shared_Var_Lock_Procs): Handle the case where 6204 the call returns an unconstrained type: in this case there is 6205 already a transient scope, and we should not establish a new one. 6206 * exp_ch7.adb (Insert_Actions_In_Scope_Around): New formal Clean. If 6207 True, also insert cleanup actions in the tree. 6208 (Wrap_Transient_Declaration): Call Insert_Actions_In_Scope_Around 6209 with Clean set True. 6210 62112014-07-30 Arnaud Charlet <charlet@adacore.com> 6212 6213 * s-taskin.ads (Direct_Index, Direct_Index_Range, 6214 Direct_Attribute_Element, Direct_Attribute_Array, 6215 Direct_Index_Vector, Direct_Attributes, Is_Defined, 6216 Indirect_Attributes): Removed. (Atomic_Address, 6217 Attribute_Array, Attributes): New. 6218 * s-tasini.ads, s-tasini.adb (Proc_T, Initialize_Attributes, 6219 Finalize_Attributes_Link, Initialize_Attributes_Link): Removed. 6220 (Finalize_Attributes): Reimplement. 6221 * s-tassta.adb (Create_Task): Remove call to 6222 Initialize_Attributes_Link (Free_Task, Vulnerable_Free_Task): 6223 Replace Finalize_Attributes_Link by Finalize_Attributes. 6224 * a-tasatt.ads, a-tasatt.adb, s-tataat.ads, s-tataat.adb: 6225 Reimplement from scratch, using a simpler and more efficient 6226 implementation. 6227 * s-tporft.adb (Register_Foreign_Thread): Remove now obsolete comment. 6228 * s-parame.ads, s-parame-hpux.ads, 6229 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, 6230 * s-parame-vxworks.ads (Max_Attribute_Count): New, replace 6231 Default_Attribute_Count. 6232 62332014-07-30 Olivier Hainque <hainque@adacore.com> 6234 6235 * vxworks-ppc-link.spec: New file. Extra link 6236 instructions for ppc-vxworks. 6237 * vxworks-crtbe-link.spec: Likewise, for ZCX related support. 6238 * system-vxworks-ppc.ads: Adjust linker options to use spec files. 6239 * system-vxworks-arm.ads: Likewise. 6240 * gcc-interface/Makefile.in: Enable .spec files. 6241 62422014-07-30 Ed Schonberg <schonberg@adacore.com> 6243 6244 * sem_aggr.adb: Minor comment reformatting. 6245 62462014-07-30 Robert Dewar <dewar@adacore.com> 6247 6248 * sem_util.ads, sem_util.adb (Is_Junk_Name): Removed. 6249 * sem_warn.adb (Has_Junk_Name): New function 6250 (Check_References): Use Has_Junk_Name to delete junk warnings 6251 (Check_Unset_Reference): ditto. 6252 (Warn_On_Unreferenced_Entity): ditto. 6253 (Warn_On_Useless_Assignment): ditto. 6254 62552014-07-30 Ed Schonberg <schonberg@adacore.com> 6256 6257 * checks.adb (Insert_Valid_Check): Do not check for the packed 6258 array type of a prefix that is an access type. 6259 62602014-07-30 Ed Schonberg <schonberg@adacore.com> 6261 6262 * sem_attr.adb (Eval_Attribute): Evaluate the GNAT attribute 6263 Unconstrained_Array even if prefix is not frozen yet, as can 6264 occur with a private subtype used as a generic actual. 6265 62662014-07-30 Gary Dismukes <dismukes@adacore.com> 6267 6268 * sem_attr.adb: Minor reformatting. 6269 62702014-07-30 Pat Rogers <rogers@adacore.com> 6271 6272 * gnat_rm.texi: Corrected minor wording error in description 6273 of No_Exception_Registration. 6274 62752014-07-30 Yannick Moy <moy@adacore.com> 6276 6277 * einfo.ads, einfo.adb: New flag Is_Inlined_Always for use in GNATprove 6278 mode. Realphabetize two subprograms. 6279 * inline.adb (Cannot_Inline): Use Is_Inlined_Always in GNATprove mode. 6280 (Can_Be_Inlined_In_GNATprove_Mode): Adapt to possible Empty Body_Id. 6281 (Check_And_Build_Body_To_Inline): Use Is_Inlined_Always in GNATprove 6282 mode. 6283 (Expand_Inline_Call): Use Is_Inlined_Always in GNATprove mode. 6284 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not use 6285 Is_Inline in GNATprove mode. 6286 (Analyze_Subprogram_Specification): 6287 Set Is_Inlined_Always at subprogram entity creation. 6288 * sem_res.adb (Resolve_Call): Do not deal with inlining during 6289 pre-analysis. Issue warning on call to possibly inlined 6290 subprogram when body not seen. 6291 62922014-07-30 Yannick Moy <moy@adacore.com> 6293 6294 * lib-xref.adb (Generate_Reference): Add special 6295 case for compiler-generated formals in GNATprove mode. 6296 62972014-07-30 Yannick Moy <moy@adacore.com> 6298 6299 * sem_ch6.adb: Add comments. 6300 63012014-07-30 Thomas Quinot <quinot@adacore.com> 6302 6303 * s-os_lib.ads (GM_Time_Of): Clarify documentation. 6304 63052014-07-30 Robert Dewar <dewar@adacore.com> 6306 6307 * sem_aggr.adb, sem_res.adb: Minor reformatting. 6308 63092014-07-30 Thomas Quinot <quinot@adacore.com> 6310 6311 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 6312 Bit_Order): Set Reverse_Bit_Order on the base type of the 6313 specified first subtype. 6314 63152014-07-30 Ed Schonberg <schonberg@adacore.com> 6316 6317 * inline.adb (Expand_Inlined_Call): Use a renaming declaration 6318 to capture the value of actuals of a limited type rather than 6319 an object declaration, to prevent spurious errors when analyzing 6320 the inlined body. 6321 63222014-07-30 Ed Schonberg <schonberg@adacore.com> 6323 6324 * sem_ch4.adb (Analyze_Type_Conversion): Treat an inlined body 6325 as an instance, and inhibit semantic checks on already analyzed 6326 code to prevent spurious errors. 6327 63282014-07-30 Arnaud Charlet <charlet@adacore.com> 6329 6330 * a-exctra.ads ("="): New function, to restore compatibility. 6331 63322014-07-30 Pascal Obry <obry@adacore.com> 6333 6334 * adaint.c (__gnat_to_os_time): Set isdst to -1 for the mktime 6335 routine to use the OS dst setting. 6336 63372014-07-30 Pat Rogers <rogers@adacore.com> 6338 6339 * gnat_ugn.texi: Minor correction to description of -gnatw.K. 6340 63412014-07-30 Ed Schonberg <schonberg@adacore.com> 6342 6343 * sem_util.adb (Wrong_Type): Disable some checks equally within 6344 instances and within inlined bodies, to suppress spurious type 6345 errors on already analyzed code. 6346 * sem_aggr.adb (Check_Expr_OK_In_Limited_Aggregate): Expression 6347 is legal in an inlined body, juts as it is in an instance body. 6348 63492014-07-30 Ed Schonberg <schonberg@adacore.com> 6350 6351 * sem_res.adb (Resolve_Unchecked_Conversion): Within an inlined 6352 body the operand of an unchecked conversion may be a literal, in 6353 which case its type is the target type of the conversion. This 6354 is in contrast to conversions in other contexts, where the 6355 operand cannot be a literal and must be resolvable independent 6356 of the context. 6357 63582014-07-30 Pierre-Marie Derodat <derodat@adacore.com> 6359 6360 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create a 6361 mere scalar constant instead of a reference for a renaming of 6362 scalar literal. 6363 * gcc-interface/utils.c (renaming_from_generic_instantiation_p): New. 6364 * gcc-interface/gigi.h (renaming_from_generic_instantiation_p): New. 6365 63662014-07-30 Robert Dewar <dewar@adacore.com> 6367 6368 * s-tasuti.adb, s-tasuti.ads, einfo.ads, sem_prag.adb, s-taasde.adb, 6369 g-socthi-vms.adb, s-taprop-mingw.adb, s-interr.adb, s-interr-hwint.adb, 6370 g-decstr.adb, s-tasdeb-vms.adb, g-expect-vms.adb, makeutl.adb, 6371 s-interr-vms.adb, g-socthi.adb, exp_aggr.adb, s-tasdeb.adb, 6372 g-awk.adb, gnatls.adb, s-taspri-posix.ads, g-catiio.adb, 6373 s-interr-sigaction.adb, s-os_lib.adb, s-fileio.adb: Minor reformatting 6374 & code reorganization. 6375 63762014-07-30 Bob Duff <duff@adacore.com> 6377 6378 * s-tassta.adb, sem_util.ads: Minor reformatting. 6379 63802014-07-30 Yannick Moy <moy@adacore.com> 6381 6382 * inline.adb (Build_Body_To_Inline): Detect when 6383 subprogram has multiple returns, or not a single last return 6384 statement, in GNATprove mode. 6385 (Cannot_Inline): Simplify logic to handle case of GNATprove 6386 inlining first. 6387 63882014-07-30 Ed Schonberg <schonberg@adacore.com> 6389 6390 * sem_ch6.adb: Stubs are not subject to inlining. 6391 63922014-07-30 Bob Duff <duff@adacore.com> 6393 6394 * s-tasuti.ads, s-tasuti.adb (Make_Independent): Change this 6395 from a procedure to a function, so that it can more easily be 6396 called before the "begin" of a task. 6397 * s-taasde.ads (Delay_Block): Make this type immutably limited, 6398 so we can use a build-in-place function call to initialize 6399 Timer_Queue in the body. 6400 * a-rttiev.adb, s-asthan-vms-alpha.adb, s-asthan-vms-ia64.adb, 6401 * s-interr.adb, s-interr-hwint.adb, s-interr-sigaction.adb, 6402 * s-interr-vms.adb, s-taasde.adb: Each independent task now calls 6403 Make_Independent before reaching its "begin", to avoid race 6404 conditions. This causes the activating task to wait until after 6405 Make_Independent is complete before proceeding. In addition, 6406 we initialize data structures used by independent tasks before 6407 activating those tasks, to avoid possible use of uninitialized data. 6408 * s-interr.ads, s-intman.ads, s-taspri-posix.ads, s-tasdeb.ads: 6409 Minor comment fixes. 6410 64112014-07-30 Bob Duff <duff@adacore.com> 6412 6413 * a-exctra.ads, s-traent-vms.ads, s-traent.ads (Tracebacks_Array): Move 6414 the declaration of Tracebacks_Array from Ada.Exceptions.Traceback to 6415 System.Traceback_Entries (s-traent.ads and s-traent-vms.ads). Add 6416 subtypes renaming Tracebacks_Array in Ada.Exceptions.Traceback. 6417 * g-debpoo.adb: Refer to Tracebacks_Array in its new home. 6418 64192014-07-30 Arnaud Charlet <charlet@adacore.com> 6420 6421 * a-tasatt.adb: Remove old comments. 6422 64232014-07-30 Yannick Moy <moy@adacore.com> 6424 6425 * einfo.ads (Is_Inlined): Document new use in GNATprove mode. 6426 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Add comments 6427 to explain rationale for inlining or not in GNATprove mode. 6428 (Expand_Inlined_Call): In GNATprove mode, set Is_Inlined flag 6429 to False when inlining is not possible. 6430 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set Is_Inlined 6431 flag to indicate that subprogram is fully inlined. To be reversed 6432 if inlining problem is found. 6433 * sem_res.adb (Resolve_Call): Set Is_Inlined flag to False when 6434 call in potentially unevaluated context. 6435 64362014-07-30 Jose Ruiz <ruiz@adacore.com> 6437 6438 * s-tarest.adb, s-tarest.ads: Fix comments. 6439 64402014-07-30 Robert Dewar <dewar@adacore.com> 6441 6442 * exp_attr.adb, checks.adb, sem_util.adb, sem_util.ads, sem_attr.adb: 6443 Change No_Scalar_Parts predicate to Scalar_Part_Present and 6444 invert sense of test. This avoids the "not No_xxx" situation 6445 which is always ugly. 6446 64472014-07-30 Ed Schonberg <schonberg@adacore.com> 6448 6449 * inline.adb (Expand_Inlined_Call): When generating code for 6450 an internal subprogram the expansion uses the location of the 6451 call, so that gdb can skip over it. In GNATprove mode we want to 6452 preserve slocs of original subprogram when expanding an inlined 6453 call, to obtain better warnings, even though subprogram appears 6454 not to come from source if it is the inlining of a subprogram 6455 body without a previous spec. 6456 64572014-07-30 Eric Botcazou <ebotcazou@adacore.com> 6458 6459 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): Reject array 6460 types with atomic components. 6461 64622014-07-30 Thomas Quinot <quinot@adacore.com> 6463 6464 * Make-generated.in: Remove now unnecessary targets after s-oscons 6465 reorg. 6466 64672014-07-30 Yannick Moy <moy@adacore.com> 6468 6469 * sem_res.adb (Resolve_Call): Use ultimate alias 6470 of callee when available. 6471 64722014-07-30 Ed Schonberg <schonberg@adacore.com> 6473 6474 * sem_ch6.adb (Analyze_Expression_Function): To check whether 6475 an expression function is a completion, use the specification of 6476 the previous declaration, not its entity, which may be internally 6477 generated in an inlined context. 6478 64792014-07-30 Doug Rupp <rupp@adacore.com> 6480 6481 * adaint.c (__gnat_tmp_name) [__ANDROID__]: Default to putting 6482 temp files in /cache directory unless overridden by TMPDIR. 6483 64842014-07-30 Jose Ruiz <ruiz@adacore.com> 6485 6486 * s-tassta.adb, s-tarest.adb (Initialize, Create_Task, 6487 Create_Restricted_Task): Remove redundant check. Number_Of_CPUs returns 6488 type CPU, so it can never be greater than CPU_Range'Last. 6489 64902014-07-30 Bob Duff <duff@adacore.com> 6491 6492 * s-taskin.ads: Minor comment fix. 6493 64942014-07-30 Thomas Quinot <quinot@adacore.com> 6495 6496 * g-socket.adb: Remove now useless WITH, USE, and USE TYPE 6497 clauses. 6498 64992014-07-30 Yannick Moy <moy@adacore.com> 6500 6501 * debug.adb: Free debug flag dQ used for frontend inlining in 6502 GNATprove mode.. 6503 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove test of 6504 debug flag.. 6505 65062014-07-30 Thomas Quinot <quinot@adacore.com> 6507 6508 * Make-generated.in: Remove generation of s-oscons.ads, only 6509 generate the xoscons utility, in runtime-agnostic rules. 6510 * gcc-interface/Makefile.in: Clean up rules. Remove VMS parts, 6511 no longer supported. 6512 65132014-07-30 Bob Duff <duff@adacore.com> 6514 6515 * exp_ch6.adb (Add_Task_Actuals_To_Build_In_Place_Call): New 6516 parameter Chain to be used in the allocator case. 6517 (Make_Build_In_Place_Call_In_Allocator): If the allocated object 6518 has tasks, wrap the code in a block that will activate them, 6519 including the usual finalization code to kill them off in case 6520 of exception or abort. 6521 65222014-07-30 Robert Dewar <dewar@adacore.com> 6523 6524 * treepr.adb, treepr.ads; Reorganize documentation for new pp routines 6525 Remove renamings (don't work for gdb). 6526 (par): New synonym for p (avoid gdb ambiguities). 6527 * inline.adb, sem_ch6.adb, sem_ch13.adb: Minor reformatting. 6528 65292014-07-30 Bob Duff <duff@adacore.com> 6530 6531 * exp_ch9.ads, sem_prag.adb, exp_ch4.adb, sem_ch13.adb: Minor comment 6532 fixes. 6533 * treepr.ads, treepr.adb (ppp): Make this debugging routine 6534 accept any type covered by Union_Id. 6535 65362014-07-30 Robert Dewar <dewar@adacore.com> 6537 6538 * sem_ch4.adb (Analyze_If_Expression): Resolve condition before 6539 analyzing branches. 6540 * sem_eval.adb (Out_Of_Range): Check for statically unevaluated 6541 expression case. 6542 65432014-07-30 Robert Dewar <dewar@adacore.com> 6544 6545 * sem_ch13.adb (Analyze_Aspect, predicate cases): Diagnose use 6546 of predicate aspect on entity other than a type. 6547 65482014-07-30 Ed Schonberg <schonberg@adacore.com> 6549 6550 * sem_ch6.adb (Body_Has_Contract): New predicate to determine 6551 when a subprogram body without a previous spec cannot be inlined 6552 in GNATprove mode, because it includes aspects or pragmas that 6553 generate a SPARK contract clause. 6554 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): A subprogram 6555 instance cannot be inlined. 6556 65572014-07-30 Robert Dewar <dewar@adacore.com> 6558 6559 * debug.adb: Document that d7 suppresses compilation time output. 6560 * errout.adb (Write_Header): Include compilation time in 6561 header output. 6562 * exp_intr.adb (Expand_Intrinsic_Call): Add 6563 Compilation_Date/Compilation_Time (Expand_Source_Info): Expand 6564 Compilation_Date/Compilation_Time. 6565 * g-souinf.ads (Compilation_Date): New function 6566 (Compilation_Time): New function. 6567 * gnat1drv.adb (Gnat1drv): Set Opt.Compilation_Time. 6568 * gnat_rm.texi (Compilation_Date): New function 6569 (Compilation_Time): New function. 6570 * opt.ads (Compilation_Time): New variable. 6571 * s-os_lib.ads, s-os_lib.adb (Current_Time_String): New function. 6572 * sem_intr.adb (Compilation_Date): New function. 6573 (Compilation_Time): New function. 6574 * snames.ads-tmpl (Name_Compilation_Date): New entry. 6575 (Name_Compilation_Time): New entry. 6576 65772014-07-30 Yannick Moy <moy@adacore.com> 6578 6579 * inline.adb: Add comment. 6580 65812014-07-30 Ed Schonberg <schonberg@adacore.com> 6582 6583 * par-ch4.adb (Is_Parameterless_Attribute): 'Result is a 6584 parameterless attribute, and a postondition can mention an 6585 indexed component or a slice whose prefix is an attribute 6586 reference F'Result. 6587 65882014-07-30 Robert Dewar <dewar@adacore.com> 6589 6590 * sprint.adb (Sprint_Node_Actual, case Object_Declaration): 6591 Avoid bomb when printing package Standard. 6592 65932014-07-30 Ed Schonberg <schonberg@adacore.com> 6594 6595 * sem_elab.adb (Check_Internal_Call_Continue): If an elaboration 6596 entity is created at this point, ensure that the name of the 6597 flag is unique, because the subprogram may be overloaded and 6598 other homonyms may also have elaboration flags created on the fly. 6599 66002014-07-30 Hristian Kirtchev <kirtchev@adacore.com> 6601 6602 * sem_attr.adb (Analyze_Array_Component_Update): New routine. 6603 (Analyze_Attribute): Major cleanup of attribute 6604 'Update. The logic is now split into two distinct routines 6605 depending on the type of the prefix. The use of <> is now illegal 6606 in attribute 'Update. 6607 (Analyze_Record_Component_Update): New routine. 6608 (Check_Component_Reference): Removed. 6609 (Resolve_Attribute): Remove the return statement and ??? comment 6610 following the processing for attribute 'Update. As a result, 6611 the attribute now freezes its prefix. 6612 66132014-07-30 Javier Miranda <miranda@adacore.com> 6614 6615 * exp_ch4.adb (Apply_Accessibility_Check): Do 6616 not call Base_Address() in VM targets. 6617 66182014-07-30 Yannick Moy <moy@adacore.com> 6619 6620 * gnat1drv.adb (Adjust_Global_Switches): Set 6621 Ineffective_Inline_Warnings to True in GNATprove mode. 6622 * inline.adb (Cannot_Inline): Prepare new semantics for GNATprove 6623 mode of inlining. 6624 * opt.ads (Ineffective_Inline_Warnings): Add comment that 6625 describes use in GNATprove mode. 6626 * sem_prag.adb (Analyze_Pragma|SPARK_Mode): Ignore 6627 pragma when applied to the special body created for inlining. 6628 66292014-07-30 Robert Dewar <dewar@adacore.com> 6630 6631 * inline.adb, exp_ch4.adb, sinput.adb, sem_ch6.adb, sem_ch13.adb: 6632 Minor reformatting. 6633 66342014-07-30 Hristian Kirtchev <kirtchev@adacore.com> 6635 6636 * aspects.ads Add a comment explaining why SPARK 2014 aspects are 6637 not delayed. Update the delay status of most SPARK 2014 aspects. 6638 * sem_ch13.adb (Analyze_Aspect_Specifications): Update all calls 6639 to Decorate_Aspect_And_Pragma and Insert_Delayed_Pragma to refert 6640 to Decorate and Insert_Pragma. Add various comments concerning 6641 the delay status of several SPARK 2014 aspects. The insertion 6642 of Refined_State now uses routine Insert_After_SPARK_Mode. 6643 (Decorate): New routine. 6644 (Decorate_Aspect_And_Pragma): Removed. 6645 (Insert_Delayed_Pragma): Removed. 6646 (Insert_Pragma): New routine. 6647 66482014-07-30 Ed Schonberg <schonberg@adacore.com> 6649 6650 * inline.adb (Expand_Inlined_Call): In GNATprove mode, emit 6651 only a warning, not an error on an attempt to inline a recursive 6652 subprogram. 6653 66542014-07-30 Robert Dewar <dewar@adacore.com> 6655 6656 * g-forstr.adb: Minor code reorganization (use J rather than I 6657 as a variable name). 6658 * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_ch13.adb, 6659 g-forstr.ads: Minor reformatting. 6660 66612014-07-30 Eric Botcazou <ebotcazou@adacore.com> 6662 6663 * sprint.adb (Set_Debug_Sloc): Also reset the end location if 6664 we are debugging the generated code. 6665 66662014-07-30 Yannick Moy <moy@adacore.com> 6667 6668 * sinput.ads, sinput.adb (Comes_From_Inlined_Body): New function that 6669 returns True for source pointer for an inlined body. 6670 66712014-07-30 Javier Miranda <miranda@adacore.com> 6672 6673 * exp_ch4.adb (Apply_Accessibility_Check): Add 6674 missing calls to Base_Address(). 6675 66762014-07-30 Ed Schonberg <schonberg@adacore.com> 6677 6678 * sem_ch6.adb (Hanalyze_Subprogram_Body_Helper): In GNATprove 6679 mode, subprogram bodies without a previous declaration are also 6680 candidates for front-end inlining. 6681 66822014-07-30 Hristian Kirtchev <kirtchev@adacore.com> 6683 6684 * aspects.ads Aspects Async_Readers, Async_Writers, 6685 Effective_Reads and Effective_Writes do not need to be delayed. 6686 * sem_ch13.adb (Analyze_Aspect_Specifications): Propagate the 6687 optional Boolean expression when generating the corresponding 6688 pragma for an external property aspect. 6689 * sem_prag.adb (Analyze_External_Property_In_Decl_Part): Remove 6690 local constant Obj. Add local constant Obj_Id. Reimplement the 6691 check which ensures that the related variable is in fact volatile. 6692 (Analyze_Pragma): Reimplement the analysis of external property pragmas. 6693 * sem_util.adb (Is_Enabled): New routine. 6694 (Variable_Has_Enabled_Property): Reimplement the detection of 6695 an enabled external property. 6696 66972014-07-30 Sergey Rybin <rybin@adacore.com frybin> 6698 6699 * gnat_ugn.texi, vms_data.ads: gnatstub: describe generating subunits 6700 for body stubs. 6701 67022014-07-30 Pascal Obry <obry@adacore.com> 6703 6704 * g-forstr.adb, g-forstr.ads: New. 6705 * gnat_rm.texi, impunit.adb Makefile.rtl: Add new unit 6706 GNAT.Formatted_String. 6707 67082014-07-30 Eric Botcazou <ebotcazou@adacore.com> 6709 6710 * exp_aggr.adb (Aggr_Assignment_OK_For_Backend): New predicate. 6711 (Expand_Array_Aggregate): Also enable in-place expansion for 6712 code generated by the compiler. For an object declaration, 6713 set the kind of the object in addition to its type. If an 6714 in-place assignment is to be generated and it can be directly 6715 done by the back-end, do not expand the aggregate. 6716 * fe.h (Is_Others_Aggregate): Declare. 6717 * gcc-interface/trans.c 6718 (gnat_to_gnu) <N_Assignment_Statement>: Add support for an 6719 aggregate with a single Others choice on the RHS by means of 6720 __builtin_memset. Tidy up. 6721 67222014-07-30 Ed Schonberg <schonberg@adacore.com> 6723 6724 * gnat_rm.texi: minor reformatting. 6725 67262014-07-30 Yannick Moy <moy@adacore.com> 6727 6728 * sem_ch6.adb (Analyze_Subprogram_Helper_Body): Remove body to inline 6729 in SPARK_Mode Off. 6730 67312014-07-30 Robert Dewar <dewar@adacore.com> 6732 6733 * gnat_rm.texi: Document additional implementation-defined use 6734 of Constrained. 6735 67362014-07-30 Robert Dewar <dewar@adacore.com> 6737 6738 * prj-proc.adb, prj-strt.adb: Update comments. 6739 67402014-07-30 Gary Dismukes <dismukes@adacore.com> 6741 6742 * sinfo.ads, einfo.ads, checks.ads: Minor typo fix and reformatting. 6743 67442014-07-30 Vincent Celier <celier@adacore.com> 6745 6746 * prj-proc.adb (Imported_Or_Extended_Project_From): New Boolean 6747 parameter No_Extending, defaulted to False. When No_Extending 6748 is True, do not look for an extending project. 6749 (Expression): For a variable reference that is not for the current 6750 project, get its Id calling Imported_Or_Extended_Project_From 6751 with No_Extending set to True. 6752 * prj-strt.adb (Parse_Variable_Reference): If a referenced 6753 variable is not found in the current project, check if it is 6754 defined in one of the projects it extends. 6755 67562014-07-30 Robert Dewar <dewar@adacore.com> 6757 6758 * sem_util.adb (Predicate_Tests_On_Arguments): Omit tests for 6759 some additional cases of internally generated routines. 6760 67612014-07-30 Ed Schonberg <schonberg@adacore.com> 6762 6763 * sem_ch10.adb (Analyze_Proper_Body): When compiling for ASIS, 6764 if the compilation unit is a subunit, extend optional processing 6765 to all subunits of the current one. This allows gnatstub to 6766 supress generation of spurious bodies. 6767 67682014-07-30 Hristian Kirtchev <kirtchev@adacore.com> 6769 6770 * a-cbmutr.adb (Insert_Child): Use local variable First to keep 6771 track of the initial element's index within the tree. 6772 67732014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 6774 6775 * a-cbmutr.adb (Allocate_Node): Remove the two parameter version. 6776 (Insert_Child): Add local variable First. Capture the index of the 6777 first node being created to ensure correct cursor construction 6778 later on. Use the three parameter version of Allocate_Node 6779 when creating multiple children as this method allows aspect 6780 Default_Value to take effect (if applicable). 6781 67822014-07-29 Eric Botcazou <ebotcazou@adacore.com> 6783 6784 * exp_aggr.adb (Safe_Slice_Assignment): Remove. 6785 (Expand_Array_Aggregate): For a safe slice assignment, just set 6786 the target and use the common code path. 6787 67882014-07-29 Robert Dewar <dewar@adacore.com> 6789 6790 * sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb: Invert 6791 predicate No_Predicate_Test_On_Arguments, new name is 6792 Predicate_Tests_On_Arguments (with the opposite sense). 6793 67942014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 6795 6796 * sem_attr.adb (Resolve_Attribute): Clean up the code for 6797 attribute 'Access. Do not generate an elaboration flag for a 6798 stand alone expression function. The expression of an expression 6799 function is now frozen when the expression function appears as 6800 the prefix of attribute 'Access. 6801 * sem_ch6.adb (Analyze_Expression_Function): Remove local 6802 variable New_Decl and update all references to it after the 6803 rewriting has taken place. Establish the linkages between the 6804 generated spec and body. 6805 68062014-07-29 Robert Dewar <dewar@adacore.com> 6807 6808 * sem_prag.adb (ip, rv): Prevent from being optimized away. 6809 * gnatls.adb (gnatls): Set E_Fatal exit status if ali file not found. 6810 * s-imgllb.adb, s-imgllw.adb, s-imgwiu.adb, s-imgbiu.adb: Minor 6811 reformatting. 6812 68132014-07-29 Vincent Celier <celier@adacore.com> 6814 6815 * prj-pp.adb: Minor comment update. 6816 * frontend.adb: If a target dependency info file has been read 6817 through switch -gnateT= add it to the dependencies of the source 6818 being compiled. 6819 68202014-07-29 Robert Dewar <dewar@adacore.com> 6821 6822 * sem_ch3.adb, prj.adb: Minor reformatting. 6823 68242014-07-29 Vincent Celier <celier@adacore.com> 6825 6826 * prj-pp.adb (Pretty_Print.Output_Project_File): New 6827 procedure to output project file names between quotes without 6828 concatenation, even if the line is too long. 6829 (Pretty_Print): Use Output_Project_File for project being extended and 6830 project imported. 6831 68322014-07-29 Vincent Celier <celier@adacore.com> 6833 6834 * gnat_ugn.texi: Document that configuration pragmas files are 6835 added to the dependencies, unless they contain only pragmas 6836 Source_File_Name_Project. 6837 68382014-07-29 Robert Dewar <dewar@adacore.com> 6839 6840 * frontend.adb: Minor reformatting. 6841 68422014-07-29 Robert Dewar <dewar@adacore.com> 6843 6844 * exp_ch6.adb (Add_Call_By_Copy_Code): Minor reformatting 6845 (Expand_Actuals): Make sure predicate checks are properly applied 6846 for the case of OUT or IN OUT parameters. 6847 * sem_res.adb: Minor reformatting (Resolve_Actuals): Skip 6848 predicate tests on arguments for Finalize 6849 * sem_util.adb (No_Predicate_Test_On_Arguments): Returns True 6850 if predicate tests on subprogram arguments should be skipped. 6851 * sem_util.ads (No_Predicate_Test_On_Arguments): New function 6852 68532014-07-29 Ed Schonberg <schonberg@adacore.com> 6854 6855 * sem_ch3.adb (Analyze_Object_Declaration): If there is an address 6856 clause for the object and the expression is an aggregate, defer 6857 resolution and expansion of the aggregate until the freeze point 6858 of the entity. 6859 * sem_aggr.adb (Resolve_Aggregate): An others_clause is legal if 6860 the parent node is an N_Reference generated during expansion. 6861 68622014-07-29 Vincent Celier <celier@adacore.com> 6863 6864 * prj.adb (Add_To_Buffer): Effectively double the size of the buffer. 6865 68662014-07-29 Robert Dewar <dewar@adacore.com> 6867 6868 * frontend.adb, inline.adb, sem_util.adb, sem_res.adb, 6869 prepcomp.ads: Minor reformatting and code clean up. 6870 * exp_ch6.adb (Expand_Actuals): Generate predicate test 6871 unconditionally for case of OUT or IN OUT actual (before this 6872 was generated only for certain subcases, which is wrong, the 6873 test is always needed). 6874 68752014-07-29 Ed Schonberg <schonberg@adacore.com> 6876 6877 * sem_ch3.adb: Move Has_Defaulted_Discriminants to sem_util. 6878 * sem_ch4.adb (Analyze_Allocator): Defer resolution of expression 6879 until context type is available. 6880 * sem_res.adb (Resolve_Allocator): In the case of a qualified 6881 expression, complete resolution of expression. 6882 (Check_Aliased_Parameter): New procedure within Resolve_Actuals, 6883 to apply Ada2012 checks on aliased formals, as well as 6884 accesibility checks when the context of the call is an allocator 6885 or a qualified expression. 6886 * sem_util.ads, sem_util.adb (Has_Defaulted_Discriminants): 6887 Moved here from sem_ch3. 6888 (Object_Access_Level): Handle properly aliased formals and 6889 aggregates. 6890 * exp_ch6.adb (Expand_Call): Remove check on aliased parameters, 6891 now properly performed in sem_res (Resolve_Actuals, 6892 Check_Aliased_Parameter). 6893 68942014-07-29 Yannick Moy <moy@adacore.com> 6895 6896 * debug.adb Enable GNATprove inlining under debug flag -gnatdQ for now. 6897 * inline.ads, inline.adb (Can_Be_Inlined_In_GNATprove_Mode): New 6898 function to decide when a subprogram can be inlined in GNATprove mode. 6899 (Check_And_Build_Body_To_Inline): Include GNATprove_Mode as a 6900 condition for possible inlining. 6901 * sem_ch10.adb (Analyze_Compilation_Unit): Remove special case 6902 for Inline_Always in GNATprove mode. 6903 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build inlined 6904 body for subprograms in GNATprove mode, under debug flag -gnatdQ. 6905 * sem_prag.adb Minor change in comments. 6906 * sem_res.adb (Resolve_Call): Only perform GNATprove inlining 6907 inside subprograms marked as SPARK_Mode On. 6908 * sinfo.ads: Minor typo fix. 6909 69102014-07-29 Vincent Celier <celier@adacore.com> 6911 6912 * frontend.adb: Add dependency on gnat.adc when taken into account 6913 and on non-temporary configuration pragmas files specified in 6914 switches -gnatec. 6915 * prepcomp.ads, prepcomp.adb (Add_Dependency): New procedure to add 6916 dependencies on configuration pragmas files. 6917 69182014-07-29 Pat Rogers <rogers@adacore.com> 6919 6920 * gnat_ugn.texi: Minor clarification to the explanation for the 6921 GNATtest -v switch. 6922 69232014-07-29 Robert Dewar <dewar@adacore.com> 6924 6925 * types.ads (Mechanism_Type): Change range back to -18 .. Int'Last with 6926 documentation that explains the need for this extended range 6927 (use by C_Pass_By_Copy). 6928 69292014-07-29 Robert Dewar <dewar@adacore.com> 6930 6931 * gnat_rm.texi, sem_prag.adb: Minor reformatting. 6932 69332014-07-29 Sergey Rybin <rybin@adacore.com frybin> 6934 6935 * gnat_ugn.texi: gnatmetric: clarify documentation for cyclomatic 6936 complexity metrics. 6937 69382014-07-29 Thomas Quinot <quinot@adacore.com> 6939 6940 PR ada/60652 6941 * s-oscons-tmplt.c: For Linux, define _BSD_SOURCE in order for 6942 CRTSCTS to be visible. 6943 69442014-07-29 Bob Duff <duff@adacore.com> 6945 6946 * g-trasym.adb, g-trasym.ads: Code cleanup. 6947 69482014-07-29 Doug Rupp <rupp@adacore.com> 6949 6950 * sigtramp-vxworks.c: Minor reformatting. 6951 69522014-07-29 Ed Schonberg <schonberg@adacore.com> 6953 6954 * gnat_rm.texi: No doc needed for Ada2012 aspect 6955 Implicit_dereference. 6956 69572014-07-29 Robert Dewar <dewar@adacore.com> 6958 6959 * sem_attr.adb (Attribute_12): New array 6960 (Analyze_Attribute): Check impl-defined Ada 2012 attributes. 6961 (Check_Ada_2012_Attribute): Removed. 6962 69632014-07-29 Doug Rupp <rupp@adacore.com> 6964 6965 * init.c (vxworks6): Call sigtramp for RTP (as well as DKM) for ARM, 6966 PPC, and e500. 6967 * sigtramp-vxworks.c: New file. 6968 * sigtramp-armvxw.c, sigtramp-ppcvxw.c: removed files. 6969 69702014-07-29 Ed Schonberg <schonberg@adacore.com> 6971 6972 * lib-xref.adb (Output_Refs, Check_Type_Reference): For a 6973 derived array type, add information about component type, which 6974 was previously missing in ali file. 6975 * gnat_rm.texi: Add documentation for Atomic_Always_Lock_Free. 6976 69772014-07-29 Thomas Quinot <quinot@adacore.com> 6978 6979 * sem_ch3.adb (Constrain_Corresponding_Record): For the case 6980 of the subtype created for a record component, do not mark 6981 the subtype as frozen. For one thing, this is anomalous (in 6982 particular, the base type might not itself be frozen yet); 6983 furthermore, proper freezing of the subtype must happen in any 6984 case. So, we just mark the subtype as requiring delayed freezing 6985 (and we'll actually freeze it when generating the init_proc of 6986 the enclosing record). 6987 Also change the name of the constrained record subtype (append a 6988 'C' so that it is clearly different from the unconstrained record 6989 type, "related_idV") to make debugging easier. 6990 (Process_Full_View): When creating a full subtype for a pending 6991 private subtype, re-establish the scope of the private subtype 6992 so that we get proper visibility on outer discriminants. 6993 * exp_ch3.adb (Build_Init_Statements): Freeze any component 6994 subtype that is not frozen yet. 6995 69962014-07-29 Vincent Celier <celier@adacore.com> 6997 6998 * prj-proc.adb (Recursive_Process): Always initialize the 6999 environment when the project is an aggregate project, even when 7000 it is not the root tree. 70012014-07-29 Robert Dewar <dewar@adacore.com> 7002 7003 * exp_ch5.adb, exp_ch9.adb: Minor comment additions. 7004 * gnat_rm.texi: Complete list of implementation aspects. 7005 * aspects.ads: Minor comment clarification. 7006 70072014-07-29 Ed Schonberg <schonberg@adacore.com> 7008 7009 * exp_ch5.adb (Expand_N_Assignment_Statement): If the target type 7010 is a null-excluding access type, do not generate a constraint 7011 check if Suppress_Assignment_Checks is set on assignment node. 7012 * exp_ch9.adb (Build_Simple_Entry_Call): If actual is an out 7013 parameter of a null-excluding access type, there is access check 7014 on entry, so set Suppress_Assignment_Checks on generated statement 7015 that assigns actual to parameter block. 7016 * sinfo.ads: Document additional use of Suppress_Assignment_Checks. 7017 70182014-07-29 Robert Dewar <dewar@adacore.com> 7019 7020 * gnat_rm.texi: Change theta to @ in documentation of aspect 7021 Dimension_System. 7022 70232014-07-29 Robert Dewar <dewar@adacore.com> 7024 7025 * sem_attr.adb (Uneval_Old_Msg): Flags Uneval_Old_Accept/Warn 7026 are now on pragma. 7027 * sem_ch13.adb (Analyze_Aspect_Specifications): Remove setting 7028 of Uneval_Old_* 7029 * sem_prag.adb (Analyze_Pragma): Set Uneval_Old_* flags 7030 * sinfo.ads, sinfo.adb: Move Uneval_Old_Accept/Warn to N_Pragma node. 7031 70322014-07-29 Javier Miranda <miranda@adacore.com> 7033 7034 * types.ads Update documentation on how to add new reason codes 7035 for exceptions. 7036 (RT_Exception_Code): Keep values ordered by their 7037 reason code. Required by the .NET backend. 7038 (RT_CE_Exceptions): Subtype declaration removed. 7039 (RT_PE_Exceptions): Subtype declaration removed. 7040 (RT_SE_Exceptions): Subtype declaration removed. 7041 (Kind): New mapping table of RT_Exception_Codes. 7042 * exp_ch11.adb (Get_RT_Exception_Entity): Updated to use the 7043 new mapping table. 7044 * tbuild.adb (Make_Raise_Storage_Error): Updated to use the new 7045 mapping table. (Make_Raise_Program_Error): Updated to use the 7046 new mapping table. 7047 (Make_Raise_Storage_Error): Updated to use the new mapping table. 7048 * a-except.adb Keep Rcheck_CE_xxx entities ordered according to 7049 their reason code. 7050 70512014-07-29 Thomas Quinot <quinot@adacore.com> 7052 7053 * gnat_rm.texi: Document internal attributes used for PolyORB/DSA 7054 distributed stubs generation. 7055 * exp_ch3.adb: Minor reformatting. 7056 70572014-07-29 Yannick Moy <moy@adacore.com> 7058 7059 * sinfo.ads: Document constraint between frontend and GNATprove. 7060 70612014-07-29 Robert Dewar <dewar@adacore.com> 7062 7063 * a-except.adb: Minor comment clarification. 7064 70652014-07-29 Robert Dewar <dewar@adacore.com> 7066 7067 * gnat_rm.texi: Complete list of implementation attributes. 7068 * snames.ads-tmpl: Clean up list of impl-defined attributes. 7069 70702014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7071 7072 * freeze.adb (Freeze_Record_Type): Perform various 7073 volatility-related checks. 7074 70752014-07-29 Robert Dewar <dewar@adacore.com> 7076 7077 * sem_ch3.adb, sem_eval.adb: Minor reformatting. 7078 70792014-07-29 Ed Schonberg <schonberg@adacore.com> 7080 7081 * sem_attr.adb: sem_attr.adb (Access_Attribute): Handle properly 7082 the case where the attribute reference appears in a nested scope 7083 from that of the subprogram prefix. 7084 * sem_attr.adb: Minor reformatting. 7085 70862014-07-29 Robert Dewar <dewar@adacore.com> 7087 7088 * gnat_ugn.texi: Clarify documentation of Initialize_Scalar 7089 initialization options. 7090 70912014-07-29 Robert Dewar <dewar@adacore.com> 7092 7093 * sinfo.ads: Minor comment addition. 7094 70952014-07-29 Bob Duff <duff@adacore.com> 7096 7097 * sem_eval.adb, sem_ch13.adb: Minor reformatting. 7098 70992014-07-29 Doug Rupp <rupp@adacore.com> 7100 7101 * init.c: Complete previous change. 7102 71032014-07-29 Robert Dewar <dewar@adacore.com> 7104 7105 * exp_ch4.adb (Expand_N_If_Expression): Deal with unconstrained 7106 array case. 7107 71082014-07-29 Ed Schonberg <schonberg@adacore.com> 7109 7110 * sem_attr.adb (Access_Attribute): If the prefix is a subprogram 7111 and the completion will appear in the same declarative part, 7112 create elaboration flag. 7113 * exp_util.adb (Set_Elaboration_Flag): If the subprogram body 7114 is a completion of a declaration in the same declarative part, 7115 and the subprogram has had its address taken, add elaboration 7116 check inside the subprogram body, to detect elaboration errors 7117 that may occur through indirect calls. 7118 71192014-07-29 Doug Rupp <rupp@adacore.com> 7120 7121 * sigtramp-armvxw.c: Enhance to handle RTP trampolining. 7122 * init.c: Remove guard on sigtramp for ARM VxWorks RTP. 7123 71242014-07-29 Vincent Celier <celier@adacore.com> 7125 7126 * switch-c.adb (Scan_Front_End_Switches): Do not fail when two 7127 runtime directorie specified with two switches --RTS= designate 7128 the same directory, even when there are no literarily the same. 7129 71302014-07-29 Robert Dewar <dewar@adacore.com> 7131 7132 * gnat_ugn.texi: Minor documentation clarification. 7133 * switch-c.adb: Minor reformatting. 7134 71352014-07-29 Robert Dewar <dewar@adacore.com> 7136 7137 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): 7138 Fix incorrect RTE call which caused bomb if pragma was in 7139 configuration pragma file. 7140 71412014-07-29 Jerome Lambourg <lambourg@adacore.com> 7142 7143 * expect.c (__gnat_expect_poll): Fix typo in previous change. 7144 * g-expect.adb: Update comments. 7145 71462014-07-29 Arnaud Charlet <charlet@adacore.com> 7147 7148 * s-parame-hpux.ads, s-parame-vms-ia64.ads, s-parame.ads 7149 (Default_Attribute_Count): Bump to 16 on native platforms. 7150 71512014-07-29 Ed Schonberg <schonberg@adacore.com> 7152 7153 * sem_res.adb: Add guard to front-end inlining for SPARK. 7154 71552014-07-29 Robert Dewar <dewar@adacore.com> 7156 7157 * sem_ch10.adb, debug.adb, sem_prag.adb, sem_res.adb, sem_ch6.adb: 7158 Minor reformatting. 7159 71602014-07-29 Ed Schonberg <schonberg@adacore.com> 7161 7162 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Build body to 7163 inline in GNATprove mode when subprogran is marked Inline_Always. 7164 * sem_res.adb (Resolve_Call): Expand call in place in GNATProve 7165 mode if body to inline is available. 7166 * sem_prag.adb (Analyze_Pragma, case Inline_Always): Make pragma 7167 effective in GNATprove mode. 7168 * sem_ch10.adb (Analyze_Compilation_Unit): Call 7169 Check_Package_Body_For_Inlining in GNATprove mode, so that body 7170 containing subprograms with Inline_Always can be available before 7171 calls to them. 7172 71732014-07-29 Ed Schonberg <schonberg@adacore.com> 7174 7175 * inline.ads, inline.adb, sem_ch10.adb: Rename Check_Body_For_Inlining 7176 to Check_Package_Body_For_Inlining, to prevent confusion with other 7177 inlining subprograms. 7178 71792014-07-29 Robert Dewar <dewar@adacore.com> 7180 7181 * opt.ads: Minor comment update. 7182 * sem_attr.adb (Uneval_Old_Msg): Deal with case of aspect, where 7183 we want setting of Uneval_Old at time of encountering the aspect. 7184 * sem_ch13.adb (Analyze_Aspect_Specifications): Capture setting 7185 of Opt.Uneval_Old. 7186 * sinfo.adb (Uneval_Old_Accept): New function (Uneval_Old_Warn): 7187 New function (Set_Uneval_Old_Accept): New procedure. 7188 (Set_Uneval_Old_Warn): New procedure. 7189 * sinfo.ads: Uneval_Old_Accept: New flag Uneval_Old_Warn: New flag. 7190 71912014-07-29 Robert Dewar <dewar@adacore.com> 7192 7193 * sinfo.ads, inline.adb, inline.ads, sem_ch6.adb: Minor reformatting. 7194 * snames.ads-tmpl: Minor reformatting. 7195 * xsnamest.adb (XSnamesT): Remove special casing of Name_Error 7196 to give <Error>. Not clear why this was there, but the compiler 7197 sources do not reference Name_Error, and this interfered with 7198 the circuits for pragma Unevaluated_Use_Of_Old. 7199 72002014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7201 7202 * sem_prag.adb (Process_Atomic_Shared_Volatile): Allow volatile 7203 types in SPARK 2014 (again). 7204 * sem_res.adb (Is_OK_Volatile_Context): New routine. 7205 (Resolve_Entity_Name): Ensure that a volatile object with 7206 enabled properties Async_Writers or Effectire_Reads appears in 7207 a non-interfering context. 7208 72092014-07-29 Ed Schonberg <schonberg@adacore.com> 7210 7211 * sem_ch6.adb: Move Build_Body_To_Inline, 7212 Check_And_Buid_Body_To_Inline, and Cannot_Inline to package Inline. 7213 * exp_ch6.adb: Mode Expand_Inlined_Body to package Inline. 7214 * inline.ads, inline.adb: Package now contains subprograms that 7215 implement front-end inlining. No functional changes, no test 7216 needed. 7217 72182014-07-29 Robert Dewar <dewar@adacore.com> 7219 7220 * exp_dbug.adb, g-expect.adb, sem_elab.adb: Minor typo fix. 7221 72222014-07-29 Ed Schonberg <schonberg@adacore.com> 7223 7224 * sem_ch6.adb (Analyze_Return_Type): Reject a return type that 7225 is a limited view when the context is a package body, because 7226 there is no subsequent place at which the non-limited view may 7227 become visible. 7228 (Process_Formals): Ditto. 7229 * sinfo.ads, par-ch3.adb: Minor reformatting. 7230 72312014-07-29 Jerome Lambourg <lambourg@adacore.com> 7232 7233 * expect.c (__gnat_expect_poll): New parameter dead_process 7234 used to return the dead process among the array of file 7235 descriptors. The Windows, VMS and HPUX implementations now 7236 properly report the dead process via this parameter. Other unixes 7237 don't need it. 7238 * g-expect.adb (Poll): Adapt to the C profile. 7239 (Expect_Internal): Use the new parameter to properly close the 7240 File Descriptor. This then can be properly reported by the 7241 function First_Dead_Process as is expected. 7242 72432014-07-29 Robert Dewar <dewar@adacore.com> 7244 7245 * gnat_ugn.texi: Minor clarification of -gnatQ switch. 7246 72472014-07-29 Robert Dewar <dewar@adacore.com> 7248 7249 * einfo.adb (Derived_Type_Link): New function 7250 (Set_Derived_Type_Link): New procedure. 7251 (Write_Field31_Name): Output Derived_Type_Link. 7252 * einfo.ads: New field Derived_Type_Link. 7253 * exp_ch6.adb (Expand_Call): Warn if change of representation 7254 needed on call. 7255 * sem_ch13.adb: Minor addition of ??? comment. 7256 (Rep_Item_Too_Late): Warn on case that is legal but could cause an 7257 expensive implicit conversion. 7258 * sem_ch3.adb (Build_Derived_Type): Set Derived_Type_Link if needed. 7259 72602014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7261 7262 * exp_ch3.adb (Build_Init_Procedure): Renamed Local_DF_Id 7263 to DF_Id. Add new local variable DF_Call. Do not perform any 7264 elaboration-related checks on the call to the partial finalization 7265 routine within an init proc to avoid generating bogus elaboration 7266 warnings on expansion-related code. 7267 * sem_elab.adb (Check_A_Call): Move constant Access_Case to 7268 the top level of the routine. Ensure that Output_Calls takes 7269 into account flags -gnatel and -gnatwl when emitting warnings 7270 or info messages. 7271 (Check_Internal_Call_Continue): Update the call to Output_Calls. 7272 (Elab_Warning): Moved to the top level of routine Check_A_Call. 7273 (Emit): New routines. 7274 (Output_Calls): Add new formal parameter Check_Elab_Flag along with a 7275 comment on usage. Output all warnings or info messages only when the 7276 caller context demands it and the proper elaboration flag is set. 7277 72782014-07-29 Yannick Moy <moy@adacore.com> 7279 7280 * sem_attr.adb (Analyze_Attribute/Attribute_Old): 7281 Check rule about Old appearing in potentially unevaluated 7282 expression everywhere, not only in Post. 7283 72842014-07-29 Arnaud Charlet <charlet@adacore.com> 7285 7286 * sem_prag.adb: Update comment. 7287 * a-except.adb, a-except-2005.adb: Minor editing. 7288 72892014-07-29 Pierre-Marie Derodat <derodat@adacore.com> 7290 7291 * exp_dbug.adb (Debug_Renaming_Declaration): 7292 Do not create renaming entities for renamings of non-packed 7293 objects and for exceptions. 7294 72952014-07-29 Robert Dewar <dewar@adacore.com> 7296 7297 * sem_ch3.adb, sinfo.ads, types.ads, sem_prag.adb, a-except-2005.adb, 7298 sem_ch6.adb, par-ch3.adb: Minor reformatting. 7299 73002014-07-29 Ed Schonberg <schonberg@adacore.com> 7301 7302 * sem_ch6.adb (Check_Return_Subtype_Indication): Reject a return 7303 subtype indication in an extended return statement when the 7304 return value is an ancestor of the return type of the function, 7305 and that return type is a null record extension. 7306 73072014-07-29 Thomas Quinot <quinot@adacore.com> 7308 7309 * sem_ch13.adb (Rep_Item_Too_Late): Specialize/clarify error 7310 message produced for the case of a type-related representation 7311 item that is made illegal by 13.10(1). 7312 * gnat_rm.texi (Scalar_Storage_Order): Minor change in 7313 documentation. 7314 73152014-07-29 Robert Dewar <dewar@adacore.com> 7316 7317 * gnat_ugn.texi: Add section on Wide_Wide_Character encodings. 7318 * erroutc.adb (Output_Error_Msgs): Take wide characters into 7319 account in computing position of error flags. 7320 * sinput.adb (Get_Column_Number): Take wide characters into 7321 account. 7322 73232014-07-29 Ed Schonberg <schonberg@adacore.com> 7324 7325 * par-ch3.adb (P_Access_Type_Definition): The subtype indication 7326 in an access type definition can carry a null_exclusion indicator. 7327 * sem_ch3.adb (Access_Type_Declaration): If the subtype indication 7328 carries a null_exclusion indicator, verify that the subtype 7329 indication denotes an access type, and create a null-excluding 7330 subtype for it. 7331 * sinfo.ads, sinfo.adb: New attribute Null_Excluding_Subtype, 7332 defined on N_Access_To_Object_Definition to indicate that the 7333 subtype indication carries a null_exclusion indicator. 7334 73352014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7336 7337 * exp_ch6.adb (Add_Extra_Actual): Do not construct 7338 the extra actual by name, generate a reference instead. 7339 73402014-07-29 Arnaud Charlet <charlet@adacore.com> 7341 7342 * sem_prag.adb (Analyze_Pragma): Do not crash analyzing 7343 Allow_Integer_Address if already set. 7344 * a-except-2005.adb (Rcheck_PE_Stream_Operation_Not_Allowed): 7345 Fix order, for consistency with Rmsg_xx declarations. 7346 73472014-07-29 Ed Schonberg <schonberg@adacore.com> 7348 7349 * sem_ch4.adb (Complete_Object_Operation): If the type of the 7350 candidate subprogram is a limited view, use non-limited view 7351 when available. 7352 73532014-07-29 Robert Dewar <dewar@adacore.com> 7354 7355 * sem_ch13.adb: Minor change in RM reference. 7356 * sem_mech.ads: Minor reformatting. 7357 * einfo.ads: Minor comment fix. 7358 * types.ads: Minor correction to range given for Mechanism_Type. 7359 * exp_ch6.adb (Add_Invariant_And_Predicate_Checks): Do not 7360 check predicate on way out for OUT or IN OUT parameters. 7361 * par-ch3.adb (P_Constraint_Opt): Handle missing RANGE keyword 7362 better (P_Range_Constraint): Corresponding fix. 7363 * checks.ads: Minor comment clarification. 7364 73652014-07-29 Gary Dismukes <dismukes@adacore.com> 7366 7367 * sem_ch8.adb (Analyze_Object_Renaming): Set the Is_Volatile 7368 and Treat_As_Volatile flags based on whether the renamed object 7369 is a volatile object. 7370 73712014-07-29 Olivier Hainque <hainque@adacore.com> 7372 7373 * g-debpoo.adb 7374 (Default_Alignment): Rename as Storage_Alignment. This is not 7375 a "default" that can be overriden. Augment comment to clarify 7376 intent and document why we need to manage alignment padding. 7377 (Header_Offset): Set to Header'Object_Size instead of 'Size 7378 rounded up to Storage_Alignment. Storage_Alignment on the 7379 allocation header is not required by our internals so was 7380 overkill. 'Object_Size is enough to ensure proper alignment 7381 of the header address when substracted from a storage address 7382 aligned on Storage_Alignment. 7383 (Minimum_Allocation): Rename as Extra_Allocation, conveying that 7384 this is always added on top of the incoming allocation requests. 7385 (Align): New function, to perform alignment rounding operations. 7386 (Allocate): Add comments on the Storage_Address computation 7387 scheme and adjust so that the alignment padding applies to that 7388 (Storage_Address) only. 7389 73902014-07-29 Robert Dewar <dewar@adacore.com> 7391 7392 * exp_ch3.adb (Default_Initialize_Object): Remove incorrect 7393 pragma Unreferenced. 7394 * cstand.adb (Create_Standard): Use E_Array_Type for standard 7395 string types. Make sure index of Any_String/Any_Array is in a list. 7396 * errout.adb: Minor reformatting. 7397 73982014-07-29 Robert Dewar <dewar@adacore.com> 7399 7400 * gnat_ugn.texi: Clean up and correct documentation of warnings. 7401 * usage.adb: Minor corrections to make sure warnings are properly 7402 documented. 7403 * warnsw.adb (Set_Warning_Switch): Remove redundant return statement. 7404 (WA_Warnings): Add Warn_On_Suspicious_Modulus_Value. 7405 74062014-07-29 Ed Schonberg <schonberg@adacore.com> 7407 7408 * exp_ch3.adb (Expand_N_Object_Declaration): The dummy block 7409 created to match internal sequence numbers between compilations 7410 with/without abort must have its type properly set. 7411 74122014-07-29 Robert Dewar <dewar@adacore.com> 7413 7414 * ali.adb (Initialize_ALI): Initialize SSO_Default_Specified 7415 (Scan_ALI): Set SSO_Default in ALIs_Record (Scan_ALI): Set 7416 SSO_Default_Specified. 7417 * ali.ads (ALIs_Record): Add field SSO_Default 7418 (SSO_Default_Specified): New global switch. 7419 * bcheck.adb (Check_Consistent_SSO_Default): New procedure 7420 (Check_Configuration_Consistency): Call this procedure 7421 * einfo.adb (SSO_Set_High_By_Default): New 7422 function (SSO_Set_Low_By_Default): New function 7423 (Set_SSO_Set_High_By_Default): New procedure 7424 (Set_SSO_Set_Low_By_Default): New procedure (Write_Entity_Flags): 7425 List new flags 7426 * einfo.ads (SSO_Set_Low_By_Default): New flag 7427 (SSO_Set_High_By_Default): New flag 7428 * freeze.adb (Set_SSO_From_Default): New procedure 7429 (Freeze_Array_Type): Call Set_SSO_From_Default 7430 (Freeze_Record_Type): Call Set_SSO_From_Default 7431 * gnat_rm.texi: Document pragma Default_Scalar_Storage_Order 7432 * lib-writ.adb (Write_ALI): Set OL/OH in P line as needed 7433 * lib-writ.ads: Add OL/OH parameters to P line 7434 * opt.adb: Set Default_SSO, Default_SSO_Config as appropriate 7435 * opt.ads (Default_SSO): New global switch (Default_SSO_Config): 7436 New global switch 7437 * repinfo.adb (List_Scalar_Storage_Order): List SSO when it is 7438 set by default using pragma Default_Scalar_Storage_Order. 7439 * sem.ads (Scope_Stack_Entry): Add component Save_Default_SSO 7440 * sem_ch13.adb (Inherit_Delayed_Rep_Aspects): 7441 Clear SSO defaults when explicit SSO is inherited. 7442 (Analyze_Attribute_Definition_Clause): Clear SSO defaults when 7443 explicit SSO is specified. 7444 (Inherit_Aspects_At_Freeze_Point): 7445 Clear SSO default when inheriting SSO. 7446 * sem_ch3.adb (Set_Default_SSO): New procedure 7447 (Analyze_Private_Extension_Declaration): Set defualt SSO 7448 (Array_Type_Declaration): ditto (Build_Derived_Array_Type): ditto 7449 (Build_Derived_Private_Type): ditto (Build_Derived_Record_Type): 7450 ditto (Build_Derived_Type): ditto (Make_Class_Wide_Type): ditto 7451 (Record_Type_Declaration): ditto 7452 * sem_ch8.adb (Pop_Scope): Restore Default_SSO (Push_Scope): 7453 Save Default_SSO 7454 * sem_prag.adb (Analyze_Pragma, case 7455 Default_Scalar_Storage_Order): Set Default_SSO 7456 74572014-07-29 Ed Schonberg <schonberg@adacore.com> 7458 7459 * sem_ch6.adb (Valid_Operator_Definition): Verify that 7460 all parameter have mode IN. This check must be done here for 7461 subprogram instantiations that have operator names, because their 7462 analysis does not follow the same path as that for subprogram 7463 declarations. 7464 74652014-07-29 Robert Dewar <dewar@adacore.com> 7466 7467 * freeze.adb (Freeze_Entity, Concurrent_Type case): Add a guard 7468 to make sure that the Etype of a component of the corresponding 7469 record type is present before trying to freeze it. 7470 * sem_ch5.adb: Minor reformatting. 7471 74722014-07-29 Robert Dewar <dewar@adacore.com> 7473 7474 * exp_attr.adb, types.ads, types.h, exp_ch11.adb, a-except.adb, 7475 a-except-2005.adb: Add new reason code PE_Stream_Operation_Not_Allowed, 7476 and then use it when a stream operation is used from a library generic 7477 when the restriction (No_Streams) is active. 7478 74792014-07-29 Thomas Quinot <quinot@adacore.com> 7480 7481 * projects.texi: Fix minor typo. 7482 74832014-07-29 Yannick Moy <moy@adacore.com> 7484 7485 * sem_attr.adb (Analyze_Attribute): Fix generation of warning. 7486 74872014-07-29 Arnaud Charlet <charlet@adacore.com> 7488 7489 * sem_ch5.adb (Check_Unreachable_Code): Do not remove code in 7490 CodePeer mode. 7491 74922014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7493 7494 * exp_ch7.adb (Find_Last_Init): Add local variable 7495 Deep_Init_Found. Check the statement immediately following the 7496 declaration if [Deep_]Initialization was not found. 7497 74982014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7499 7500 * exp_util.adb (Is_Aliased): It appears that 7501 'reference-d and renamed objects still play some role in Boolean 7502 expression with actions and cannot be finalized immediately. 7503 75042014-07-29 Ed Schonberg <schonberg@adacore.com> 7505 7506 * exp_dbug.adb (Qualify_Needed): For debugging purposes, 7507 Loop names are not part of the full qualification of entity names. 7508 75092014-07-29 Robert Dewar <dewar@adacore.com> 7510 7511 * einfo.adb (Has_Protected): Test base type. 7512 * sem_ch4.adb (Analyze_Allocator): Reorganize code to make sure 7513 that we always properly check No_Protected_Type_Allocators. 7514 75152014-07-29 Ed Schonberg <schonberg@adacore.com> 7516 7517 * sem_util.ads, sem_util.adb (Defining_Entity): Now applies to 7518 loop declarations as well. 7519 * exp_ch5.adb (Expand_Loop_Statement): Apply Qualify_Entity_Names 7520 to an iterator loop, because it may contain local renaming 7521 declarations that require debugging information. 7522 75232014-07-29 Robert Dewar <dewar@adacore.com> 7524 7525 * sem_util.ads, exp_util.adb, sem_attr.adb: Minor reformatting. 7526 75272014-07-29 Robert Dewar <dewar@adacore.com> 7528 7529 * einfo.ads, einfo.adb (Static_Real_Or_String_Predicate): New function 7530 (Set_Static_Real_Or_String_Predicate): New procedure 7531 * sem_ch13.adb (Build_Predicate_Functions): Accomodate static 7532 string predicates (Is_Predicate_Static): Handle static string 7533 predicates. 7534 * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): 7535 New procedure (Check_Expression_Against_Static_Predicate): 7536 Deal with static string predicates, now fully implemented 7537 (Eval_Relational_Op): Allow string equality/inequality as static 7538 if not comes from source. 7539 75402014-07-29 Robert Dewar <dewar@adacore.com> 7541 7542 * sem_aggr.adb, exp_ch5.adb, sem_ch5.adb, exp_util.adb, einfo.adb, 7543 einfo.ads, sem_util.adb, sem_attr.adb, sem_case.adb, sem_eval.adb, 7544 sem_eval.ads, sem_ch13.adb: General cleanup of static predicate 7545 handling. Change name of Discrete_Predicate to 7546 Discrete_Static_Predicate, and replace testing of the presence of this 7547 field by testing the flag Has_Static_Expression. 7548 75492014-07-29 Robert Dewar <dewar@adacore.com> 7550 7551 * gnat_rm.texi: Document pragma Unevaluated_Use_Of_Old. 7552 * opt.adb: Handle Uneval_Old. 7553 * opt.ads (Uneval_Old, Uneval_Old_Config): New variables. 7554 * par-prag.adb: Add dummy entry for pragma Unevaluated_Use_Of_Old. 7555 * sem.ads (Save_Uneval_Old): New field in Scope_Stack_Entry. 7556 * sem_attr.adb (Uneval_Old_Msg): New procedure. 7557 * sem_ch8.adb (Push_Scope): Save Uneval_Old. 7558 (Pop_Scope): Restore Uneval_Old. 7559 * sem_prag.adb (Analyze_Pragma, case Unevaluated_Use_Of_Old): 7560 Implemented. 7561 * snames.ads-tmpl: Add entries for pragma Unevaluated_Use_Of_Old 7562 Add entries for Name_Warn, Name_Allow. 7563 75642014-07-29 Robert Dewar <dewar@adacore.com> 7565 7566 * sem_aggr.adb (Resolve_Array_Aggregate): Change Is_Static_Range 7567 to Is_OK_Static_Range. 7568 * sem_attr.adb (Eval_Attribute): Make sure we properly flag 7569 static attributes (Eval_Attribute, case Size): Handle size of 7570 zero properly (Eval_Attribute, case Value_Size): Handle size of 7571 zero properly. 7572 * sem_ch13.adb: Minor reformatting. 7573 * sem_ch3.adb (Process_Range_Expr_In_Decl): Change 7574 Is_Static_Range to Is_OK_Static_Range. 7575 * sem_eval.adb (Eval_Case_Expression): Total rewrite, was 7576 wrong in several ways (Is_Static_Range): Moved here from spec 7577 (Is_Static_Subtype): Moved here from spec Change some incorrect 7578 Is_Static_Subtype calls to Is_OK_Static_Subtype. 7579 * sem_eval.ads: Add comments to section on 7580 Is_Static_Expression/Raises_Constraint_Error (Is_OK_Static_Range): 7581 Add clarifying comments (Is_Static_Range): Moved to body 7582 (Is_Statically_Unevaluated): New function. 7583 * sem_util.ads, sem_util.adb (Is_Preelaborable_Expression): Change 7584 Is_Static_Range to Is_OK_Static_Range. 7585 * sinfo.ads: Additional commments for Is_Static_Expression noting 7586 that clients should almost always use Is_OK_Static_Expression 7587 instead. Many other changes throughout front end units to obey 7588 this rule. 7589 * tbuild.ads, tbuild.adb (New_Occurrence_Of): Set Is_Static_Expression 7590 for enumeration literal. 7591 * exp_ch5.adb, sem_intr.adb, sem_ch5.adb, exp_attr.adb, exp_ch9.adb, 7592 lib-writ.adb, sem_ch9.adb, einfo.ads, checks.adb, checks.ads, 7593 sem_prag.adb, sem_ch12.adb, freeze.adb, sem_res.adb, exp_ch4.adb, 7594 exp_ch6.adb, sem_ch4.adb, sem_ch6.adb, exp_aggr.adb, sem_cat.adb: 7595 Replace all occurrences of Is_Static_Expression by 7596 Is_OK_Static_Expression. 7597 75982014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7599 7600 * exp_ch4.adb (Process_Transient_Object): Remove constant 7601 In_Cond_Expr, use its initialization expression in place. 7602 * exp_ch7.adb (Process_Declarations): There is no need to check 7603 that a transient object being hooked is controlled as it would 7604 not have been hooked in the first place. 7605 * exp_util.adb (Is_Aliased): 'Reference-d or renamed transient 7606 objects are not considered aliased when the related context is 7607 a Boolean expression_with_actions. 7608 (Requires_Cleanup_Actions): There is no need to check that a transient 7609 object being hooked is controlled as it would not have been hooked in 7610 the first place. 7611 76122014-07-29 Robert Dewar <dewar@adacore.com> 7613 7614 * errout.adb: Minor reformatting. 7615 76162014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7617 7618 * exp_ch3.adb (Default_Initialize_Object): Add new variables 7619 Abrt_Blk and Dummy. Generate a dummy temporary when aborts are 7620 not allowed to ensure the symmetrical generation of symbols. 7621 * exp_ch7.adb (Build_Object_Declarations): Remove variables A_Expr 7622 and E_Decl. Add new variables Decl and Dummy. Generate a dummy 7623 temporary when aborts are not allowed to ensure symmertrical 7624 generation of symbols. 7625 * exp_intr.adb (Expand_Unc_Deallocation): Add new variable 7626 Dummy. Generate a dummy temporary when aborts are not allowed 7627 to ensure symmertrical generation of symbols. 7628 76292014-07-29 Ed Schonberg <schonberg@adacore.com> 7630 7631 * exp_dbug.adb (Debug_Renaming_Declaration): For an object 7632 renaming, indicate that the renamed entity itself needs debug 7633 information. This is necessary if that entity is a temporary, 7634 e.g. part of the expansion of an explicit dereference in an 7635 iterator. 7636 76372014-07-29 Thomas Quinot <quinot@adacore.com> 7638 7639 * errout.adb (Set_Error_Posted): When propagating flag to 7640 an enclosing named association, also propagate to the parent 7641 of that node, so that named and positional associations are 7642 treated consistently. 7643 76442014-07-29 Ed Schonberg <schonberg@adacore.com> 7645 7646 * sem_attr.adb (Resolve_Attribute, case 'Update): Set 7647 Do_Range_Check properly on array component expressions that 7648 have a scalar type. In GNATprove mode, only checks on scalar 7649 components must be marked by the front-end. 7650 76512014-07-29 Ed Schonberg <schonberg@adacore.com> 7652 7653 * sem_res.adb (Resolve_Type_Conversion): If the type of the 7654 expression is a limited view, use the non-limited view when 7655 available. 7656 76572014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7658 7659 * exp_ch4.adb (Expand_N_Case_Expression): Mark the generated 7660 case statement as coming from a conditional expression. 7661 (Expand_N_If_Expression): Mark the generated if statement as 7662 coming from a conditional expression. 7663 * exp_ch5.adb (Expand_N_Case_Statement): Do not process controlled 7664 objects found in case statement alternatives when the case 7665 statement is actually a case expression. 7666 (Expand_N_If_Statement): 7667 Do not process controlled objects found in an if statement when 7668 the if statement is actually an if expression. 7669 * sinfo.adb (From_Conditional_Expression): New routine. 7670 (Set_From_Conditional_Expression): New routine. 7671 * sinfo.ads Add new semantic flag From_Conditional_Expression and 7672 update related nodes. 7673 (From_Conditional_Expression): New routine along with pragma Inline. 7674 (Set_From_Conditional_Expression): New routine along with pragma Inline. 7675 76762014-07-29 Hristian Kirtchev <kirtchev@adacore.com> 7677 7678 * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Remove 7679 formal parameter Obj_Id and update the comment on usage. Renamed 7680 Obj_Typ to Func_Typ and update all occurrences. 7681 (Find_Last_Init): Remove formal parameter Decl and update the comment 7682 on usage. 7683 Remove local constants Obj_Id and Obj_Typ. Remove local variables 7684 Init_Typ and Is_Conc. Remove the extraction of the initialization type. 7685 (Find_Last_Init_In_Block): Remove formal parameter 7686 Init_Typ and update the comment on usage. 7687 (Is_Init_Call): Remove formal parameter Init_Typ and update the comment 7688 on usage. Check whether the procedure call is an initialization 7689 procedure of either the object type or the initialization type. 7690 (Is_Init_Proc_Of): New routine. 7691 (Process_Object_Declaration): Obj_Id and Obj_Typ are now global to this 7692 routine. Add new variable Init_Typ. Add circuitry to extract the object 7693 type as well as the initialization type. 7694 76952014-07-29 Robert Dewar <dewar@adacore.com> 7696 7697 * sem_case.adb: Minor reformatting. 7698 * sem_aux.ads: Minor reformatting. 7699 77002014-07-29 Ed Schonberg <schonberg@adacore.com> 7701 7702 * sinfo.adb (Set_Else_Actions, Set_Then_Actions): Set parent 7703 pointer on these fields, even though they are semantic, because 7704 subsequent analysis and expansion of action nades may require 7705 exploring the tree, for example to locate a node to be wrapped 7706 when a function with controlled result is called. 7707 77082014-07-29 Claire Dross <dross@adacore.com> 7709 7710 * sem_aux.adb (Get_Binary_Nkind): Use case on 7711 Name_Id instead of an intermediate string. 7712 (Get_Unary_Nkind): Use case on Name_Id instead of an intermediate 7713 string. 7714 77152014-07-29 Sergey Rybin <rybin@adacore.com frybin> 7716 7717 * gnat_ugn.texi (gnatelim, gnatstub, gnatmetric): Add note 7718 about processing sources with preprocessor directives. 7719 77202014-07-24 Martin Liska <mliska@suse.cz> 7721 7722 * gcc-interface/trans.c (finalize_nrv): Adjust function call. 7723 * gcc-interface/utils.c (rest_of_subprog_body_compilation): Likewise. 7724 (gnat_write_global_declarations): Likewise. 7725 77262014-07-19 David Wohlferd <dw@LimeGreenSocks.com> 7727 7728 * gnat_rm.texi: Clean up for makeinfo 5.2. 7729 77302014-07-19 David Wohlferd <dw@LimeGreenSocks.com> 7731 7732 * gnat_rm.texi (Machine Code Insertions): Clean up. 7733 77342014-07-18 Robert Dewar <dewar@adacore.com> 7735 7736 * exp_ch7.adb: Minor reformatting. 7737 77382014-07-18 Claire Dross <dross@adacore.com> 7739 7740 * sem_aux.ads (Get_Binary_Nkind): New function that returns 7741 the Node_Kind value of an entity defining a binary operator. 7742 (Get_Unary_Nkind): New function that returns the Node_Kind value 7743 of an entity defining a unary operator. 7744 77452014-07-18 Pascal Obry <obry@adacore.com> 7746 7747 * sysdep.c: comment update. 7748 * adaint.c (__gnat_fputwc): Use wchar_t on a limited set of 7749 platforms where it is known to be supported. 7750 77512014-07-18 Thomas Quinot <quinot@adacore.com> 7752 7753 * sem_dist.adb (Process_Remote_AST_Declaration): Need 7754 to set Fat_Type's Ekind in order to be able to use its 7755 Corresponding_Remote_Type attribute. 7756 77572014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 7758 7759 * einfo.adb Last_Aggregate_Assignment is now Node 30. 7760 (Last_Aggregate_Assignment): Include 7761 constants in the assertion. Update the underlying node. 7762 (Set_Last_Aggregate_Assignment): Include constants in the 7763 assertion. Update the underlying node. (Write_Field11_Name): 7764 Remove the entry for Last_Aggregate_Assignment. 7765 (Write_Field30_Name): Add an entry for Last_Aggregate_Assignment. 7766 * einfo.ads Update the node designation and usage of attribute 7767 Last_Aggregate_Assignment. 7768 * exp_aggr.adb (Expand_Array_Aggregate): Store the last 7769 assignment statement used to initialize a controlled object. 7770 (Late_Expansion): Store the last assignment statement used to 7771 initialize a controlled record or an array of controlled objects. 7772 * exp_ch3.adb (Expand_N_Object_Declaration): Default 7773 initialization of objects is now performed in a separate routine. 7774 (Default_Initialize_Object): New routine. 7775 * exp_ch7.adb (Build_BIP_Cleanup_Stmts): Add formal parameter 7776 Obj_Id. Update the comment on usage. 7777 (Find_Last_Init): Remove formal parameter Typ. Update comment on usage. 7778 Reimplement the logic. (Find_Last_Init_In_Block): New routine. 7779 (Is_Init_Call): Add formal parameter Init_Typ. Update the 7780 comment on usage. Account for the type init proc when trying 7781 to determine whether a statement is an initialization call. 7782 (Make_Adjust_Call): Rename formal parameter For_Parent to 7783 Skip_Self. Update all occurrences of For_Parent. Account for 7784 non-tagged types. Update the call to Make_Call. 7785 (Make_Call): Rename formal parameter For_Parent to Skip_Self. Update 7786 comment on usage. Update all occurrences of For_Parent. 7787 (Make_Final_Call): Rename formal parameter For_Parent to 7788 Skip_Self. Update all occurrences of For_Parent. Account 7789 for non-tagged types. Update the call to Make_Call. 7790 (Process_Object_Declaration): Most variables and constants are 7791 now local to the routine. 7792 * exp_ch7.ads (Make_Adjust_Call): Rename formal parameter 7793 For_Parent to Skip_Self. Update the comment on usage. 7794 (Make_Final_Call): Rename formal parameter For_Parent to 7795 Skip_Self. Update the comment on usage. 7796 77972014-07-18 Ed Schonberg <schonberg@adacore.com> 7798 7799 * sem_ch9.adb (Analyze_Requeue): The entry being referenced 7800 can be a procedure that is implemented by entry, and have a 7801 formal that is a synchronized interface. It does not have to 7802 be declared as a protected operation. 7803 78042014-07-18 Robert Dewar <dewar@adacore.com> 7805 7806 * gnat_rm.texi: Remove mention of obsolete attributes 7807 Max[_Interrupt]_Priority, which have never been implemented 7808 (or at the very least were removed long ago if they ever were 7809 implemented. Add documentation of Max[_Interrupt]_Priority 7810 constants in package System. 7811 * ttypes.ads: Document actual handling of package System, 7812 rather than a historical fantasy version. Remove mention of 7813 non-existent attributes Max[_Interrupt]_Priority. 7814 78152014-07-18 Pascal Obry <obry@adacore.com> 7816 7817 * a-witeio.adb (Put): No 16-bit character output when text 7818 translation is disabled. 7819 * i-cstrea.ads: Code clean up. 7820 78212014-07-18 Robert Dewar <dewar@adacore.com> 7822 7823 * gnat_rm.texi: Document that Wchar_T_Size and Word_Size are 7824 static attributes. 7825 78262014-07-18 Arnaud Charlet <charlet@adacore.com> 7827 7828 * a-witeio.adb, initialize.c: Update comments. Minor clean ups. 7829 78302014-07-18 Pascal Obry <obry@adacore.com> 7831 7832 * adaint.c: Do not include wchar.h on VxWorks. 7833 * mingw32.h: Remove obsolete definition. 7834 78352014-07-18 Pascal Obry <obry@adacore.com> 7836 7837 * a-textio.adb, a-witeio.adb, a-ztexio.adb: Use C_Streams Default_Text. 7838 * i-cstrea.ads (Content_Encoding): Moved here, add convention C. 7839 * s-ficobl.ads (Content_Encoding): Moved to C_Streams. 7840 * s-fileio.adb (Open): Adjust to use Content_Encoding from C_Streams. 7841 78422014-07-18 Pascal Obry <obry@adacore.com> 7843 7844 * a-textio.adb: Rename Is_Text_File to Text_Encoding. 7845 * a-ztexio.adb: Likewise. 7846 * a-witeio.adb: Likewise. 7847 (Open): Pass file's translation mode to set_text_mode. 7848 * s-ficobl.ads (Content_Encoding): New type. 7849 (Text_Content_Encoding): New subtype. 7850 (AFCB): Rename Is_Text_File to Text_Encoding. 7851 * s-fileio.adb (Open): Handles new text_translation 7852 values. Remove Is_Text_File which is equivalent to Text_Encoding 7853 in Text_Content_Encoding. 7854 * adaint.h (__gnat_set_mode): New routine. 7855 * sysdep.c (__gnat_set_wide_text_mode): Removed. 7856 (__gnat_set_mode): New routine. 7857 78582014-07-18 Arnaud Charlet <charlet@adacore.com> 7859 7860 * gcc-interface/decl.c, gcc-interface/trans.c, 7861 gcc-interface/utils.c (Is_Packed_Array_Type): Renamed 7862 Is_Packed_Array_Impl_Type. 7863 78642014-07-18 Gary Dismukes <dismukes@adacore.com> 7865 7866 * sem_util.adb: Minor typo correction. 7867 78682014-07-18 Ben Brosgol <brosgol@adacore.com> 7869 7870 * gnat_rm.texi: Complete previous change. 7871 78722014-07-18 Pascal Obry <obry@adacore.com> 7873 7874 * s-fileio.adb: Minor style fix. 7875 78762014-07-18 Ed Schonberg <schonberg@adacore.com> 7877 7878 * sem_ch13.adb (Analyze_Aspect_Specifications): Detect improper 7879 specification of stream attributes for subtypes that are not 7880 first subtypes, to prevent malformed rep_item chains in the case 7881 of such illegal specifications for discriminated private subtypes. 7882 (Check_Overloaded_Name): Verify that the name is an entity name 7883 before other checks. 7884 78852014-07-18 Pascal Obry <obry@adacore.com> 7886 7887 * adaint.c (__gnat_fputwc) Do not disable on cross-build. 7888 78892014-07-18 Robert Dewar <dewar@adacore.com> 7890 7891 * sem_prag.adb, sem_attr.adb, 7892 sem_aggr.adb, sinfo.ads, sem_eval.ads: Minor reformatting. 7893 78942014-07-18 Pascal Obry <obry@adacore.com> 7895 7896 * sysdep.c (__gnat_wide_text_translation_required): Removed from here. 7897 * initialize.c (__gnat_wide_text_translation_required): Defined here. 7898 78992014-07-18 Pascal Obry <obry@adacore.com> 7900 7901 * adaint.c (__gnat_fputwc): New routine. 7902 * s-crtl.ads (fputwc): Now imported as __gnat_fputwc. 7903 79042014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 7905 7906 * einfo.adb: Flag 270 is now used as Stores_Attribute_Old_Prefix. 7907 (Set_Stores_Attribute_Old_Prefix): New routine. 7908 (Stores_Attribute_Old_Prefix): New routine. 7909 (Write_Entity_Flags): 7910 Output flag Stores_Attribute_Old_Prefix. 7911 * einfo.ads Add new flag Stores_Attribute_Old_Prefix along with 7912 comment on usage. 7913 (Set_Stores_Attribute_Old_Prefix): New routine 7914 along with pragma Inline. 7915 (Stores_Attribute_Old_Prefix): New 7916 routine along with pragma Inline. 7917 * exp_attr.adb (Expand_N_Attribute_Reference): Mark the generated 7918 constant which captures the result of attribute 'Old's prefix. 7919 * sem_util.adb (In_Assertion_Expression_Pragma): Recognize a 7920 relocated expression which acted as a prefix of attribute 'Old. 7921 79222014-07-18 Bob Duff <duff@adacore.com> 7923 7924 * s-spsufi.adb (Finalize_And_Deallocate): Set Subpool.Owner to 7925 null before dispatching to Deallocate_Subpool. 7926 * s-stposu.ads (Default_Subpool_For_Pool): Change mode of 7927 parameter of Default_Subpool_For_Pool to 'in out'. 7928 * s-stposu.adb (Set_Pool_Of_Subpool): Use raise expression. Add 7929 a message to the raise. 7930 * sem_util.adb: Minor reformatting. 7931 79322014-07-18 Robert Dewar <dewar@adacore.com> 7933 7934 * sem_util.adb (Check_Expression_Against_Static_Predicate): 7935 Mark expression as non-static if it fails static predicate check, 7936 and issue additional warning. 7937 79382014-07-18 Pascal Obry <obry@adacore.com> 7939 7940 * a-witeio.adb (Put): Control translation based on 7941 wide_text_translation_required. 7942 * adaint.c (CurrentCCSEncoding): New variable. 7943 * initialize.c (__gnat_initialize): On Windows initialize 7944 CurrentCCSEncoding based on values in GNAT_CCS_ENCODING 7945 environment variable. 7946 * mingw32.h (CurrentCCSEncoding): New external. 7947 (__gnat_wide_text_translation_required): Likewise. 7948 * sysdep.c (wide_text_translation_required): New variable. 7949 (__gnat_set_wide_text_mode): Set mode based on CurrentCCSEncoding. 7950 79512014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 7952 7953 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global 7954 variable Refined_States. Add global variable Matched_Items. 7955 (Check_Dependency_Clause): Account for dependency 7956 clauses utilizing states with visible null refinements. 7957 (Is_Null_Refined_State): New routine. 7958 (Match_Items): Record each successfully matched item of pragma Depends. 7959 (Record_Item): New routine. 7960 79612014-07-18 Ed Schonberg <schonberg@adacore.com> 7962 7963 * sem_attr.adb (Analyze_Attribute, case 'Update): Set 7964 Do_Range_Check flag on a dynamic index expression used in a 7965 component association in the argument of Update. 7966 79672014-07-18 Gary Dismukes <dismukes@adacore.com> 7968 7969 * einfo.ads, sem_eval.ads, sem_ch13.adb: Minor reformatting. 7970 79712014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 7972 7973 * exp_ch6.adb (Expand_Simple_Function_Return): Redo the marking 7974 of enclosing blocks, loops and the enclosing function using a 7975 parent-based traversal. 7976 * exp_util.adb (Wrap_Statements_In_Block): Suppress the secondary 7977 stack reclamation if the iterator loop contains a return statement 7978 that uses the stack. 7979 * sem_ch5.adb (Analyze_Loop_Statement): There is no need to 7980 patch up the scope stack as the secondary stack management now 7981 takes into account the enclosing function of the iterator loop. 7982 79832014-07-18 Robert Dewar <dewar@adacore.com> 7984 7985 * sem_ch3.adb, g-memdum.ads, i-cstrea.ads: Minor reformatting. 7986 79872014-07-18 Robert Dewar <dewar@adacore.com> 7988 7989 * einfo.adb (Has_Static_Predicate): New function. 7990 (Set_Has_Static_Predicate): New procedure. 7991 * einfo.ads (Has_Static_Predicate): New flag. 7992 * sem_ch13.adb (Is_Predicate_Static): New function 7993 (Build_Predicate_Functions): Use Is_Predicate_Static to reorganize 7994 (Add_Call): Minor change in Sloc of generated expression 7995 (Add_Predicates): Remove setting of Static_Pred, no longer used. 7996 * sem_ch4.adb (Has_Static_Predicate): Removed this function, 7997 replace by use of the entity flag Has_Static_Predicate_Aspect. 7998 * sem_eval.adb (Eval_Static_Predicate_Check): Check real case 7999 and issue warning that predicate is not checked for now. 8000 * sem_eval.ads (Eval_Static_Predicate_Check): Fix comments in 8001 spec. 8002 * sem_util.adb (Check_Expression_Against_Static_Predicate): 8003 Carry out check for any case where there is a static predicate, 8004 and output appropriate message. 8005 * sinfo.ads: Minor comment corrections. 8006 80072014-07-18 Ed Schonberg <schonberg@adacore.com> 8008 8009 * exp_ch3.adb (Expand_Freeze_Record_Type): If the type is derived 8010 from an untagged private type whose full view is tagged, the type 8011 is marked tagged for layout reasons, but it has no dispatch table, 8012 so Set_All_DT_Position must not be called. 8013 * exp_ch13.adb: If the freeze node is for a type internal to a 8014 record declaration, as is the case for a class-wide subtype 8015 of a parent component, the relevant scope is the scope of the 8016 enclosing record. 8017 80182014-07-18 Thomas Quinot <quinot@adacore.com> 8019 8020 * g-memdum.adb, g-memdum.ads: Code clean ups. 8021 80222014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 8023 8024 * sem_prag.adb (Check_Dependency_Clause): 8025 Update the comment on usage. Reimplement the mechanism which 8026 attempts to match a single clause of Depends against one or 8027 more clauses of Refined_Depends. 8028 (Input_Match): Removed. 8029 (Inputs_Match): Removed. 8030 (Is_Self_Referential): Removed. 8031 (Normalize_Clause): Update the call to Split_Multiple_Outputs. 8032 (Normalize_Outputs): Rename variable Split to New_Claue and update 8033 all its occurrences. 8034 (Report_Extra_Clauses): Update the comment on usage. 8035 (Split_Multiple_Outputs): Renamed to Normalize_Outputs. 8036 80372014-07-18 Gary Dismukes <dismukes@adacore.com> 8038 8039 * i-cstrea.ads: Minor reformatting. 8040 80412014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 8042 8043 * exp_util.adb (Wrap_Statements_In_Block): Propagate both 8044 secondary stack-related flags to the generated block. 8045 * sem_ch5.adb (Analyze_Loop_Statement): Update the scope chain 8046 once the loop is relocated in a block. 8047 80482014-07-18 Robert Dewar <dewar@adacore.com> 8049 8050 * repinfo.ads: Add documentation on handling of back annotation 8051 for dynamic case. 8052 80532014-07-18 Ed Schonberg <schonberg@adacore.com> 8054 8055 * sinfo.ads, sinfo.adb (Incomplete_View): New semantic attribute 8056 of full type declaration, denotes previous declaration for 8057 incomplete view of the type. 8058 * sem_ch3.adb (Analyze_Full_Type_Declaration): Set Incomplete_View 8059 of declaration if one is present. 8060 (Replace_Type): When constructing the signature of an inherited 8061 operation, handle properly the case where the operation has a 8062 formal whose type is an incomplete view. 8063 * sem_util.adb (Collect_Primitive_Operations): Handle properly 8064 the case of an operation declared after an incomplete declaration 8065 for a type T and before the full declaration of T. 8066 80672014-07-18 Pascal Obry <obry@adacore.com> 8068 8069 * i-cstrea.ads: Add documentation for set_wide_text_mode. 8070 80712014-07-18 Robert Dewar <dewar@adacore.com> 8072 8073 * a-witeio.adb: Minor code reorganization. 8074 * i-cstrea.ads: Add comment. 8075 80762014-07-18 Thomas Quinot <quinot@adacore.com> 8077 8078 * s-oscons-tmplt.c (NAME_MAX): Minor cleaup and comment 8079 clarifications. 8080 80812014-07-18 Robert Dewar <dewar@adacore.com> 8082 8083 * g-memdum.adb, g-memdum.ads, exp_strm.adb: Minor reformatting. 8084 80852014-07-18 Pascal Obry <obry@adacore.com> 8086 8087 * s-crtl.ads, i-cstrea.ads (fputwc): New routine. 8088 * a-witeio.adb (Put): On platforms where there is translation 8089 done by the OS output the raw text. 8090 (New_Line): Use Put above to properly handle the LM wide characters. 8091 80922014-07-18 Thomas Quinot <quinot@adacore.com> 8093 8094 * g-memdum.adb, g-memdum.ads (Dump): New parameter Prefix, defaulted 8095 to Absolute_Address. 8096 80972014-07-18 Eric Botcazou <ebotcazou@adacore.com> 8098 8099 * opt.ads (Suppress_Back_Annotation): Remove as unused. 8100 * fe.h (Back_Annotate_Rep_Info): Likewise. 8101 (Global_Discard_Names): Likewise. 8102 81032014-07-18 Robert Dewar <dewar@adacore.com> 8104 8105 * sem_ch13.adb (Is_Type_Ref): Check that type name is not 8106 parenthesized. 8107 81082014-07-18 Vincent Celier <celier@adacore.com> 8109 8110 * s-osinte-vms.ads: Fix style errors. 8111 81122014-07-18 Thomas Quinot <quinot@adacore.com> 8113 8114 * s-oscons-tmplt.c (_POSIX_SOURCE): Define in order to get 8115 NAME_MAX and PATH_MAX. 8116 81172014-07-18 Bob Duff <duff@adacore.com> 8118 8119 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function, 8120 Build_Record_Or_Elementary_Output_Procedure): For Input and 8121 Output attributes, do not read/write the discriminants if they 8122 have default values; that will be done by Read/Write. 8123 81242014-07-18 Robert Dewar <dewar@adacore.com> 8125 8126 * sem_aggr.adb, exp_ch5.adb, sem_ch3.adb, layout.adb, sem_type.adb, 8127 exp_util.adb, exp_attr.adb, einfo.adb, einfo.ads, exp_pakd.adb, 8128 checks.adb, exp_pakd.ads, freeze.adb, sem_util.adb, exp_dbug.adb, 8129 exp_dbug.ads, exp_ch4.adb, sem_ch8.adb, exp_aggr.adb, sem_eval.adb, 8130 sem_ch13.adb: Change name Packed_Array_Type to Packed_Array_Impl_Type. 8131 81322014-07-18 Robert Dewar <dewar@adacore.com> 8133 8134 * lib-writ.adb, makeutl.adb, ali.ads: Minor reformatting. 8135 81362014-07-18 Vincent Celier <celier@adacore.com> 8137 8138 * lib-writ.ads: Update documentation about the D lines. 8139 81402014-07-18 Ed Schonberg <schonberg@adacore.com> 8141 8142 * sem_ch13.adb (Replace_Type_References_Generic): Use type entity 8143 as a parameter, rather than its Chars field, in order to locate 8144 freeze node of type. If the predicate or invariant has references 8145 to types other than the one to which the contract applies, these 8146 types must be frozen, and the corresponding predicate functions 8147 created, before that freeze node. 8148 81492014-07-18 Robert Dewar <dewar@adacore.com> 8150 8151 * freeze.adb, einfo.ads, einfo.adb: Minor code reorganization. 8152 * par_sco.adb: Minor reformatting. 8153 81542014-07-18 Gary Dismukes <dismukes@adacore.com> 8155 8156 * exp_ch4.adb (Real_Range_Check): Turn off 8157 the Do_Range_Check flag on the conversion's current Expression 8158 argument rather than on the originally captured Operand node, 8159 as Expression may reflect a rewriting (as in conversions to a 8160 fixed-point type). 8161 81622014-07-18 Vincent Celier <celier@adacore.com> 8163 8164 * ali.adb (Scan_ALI): Set Sdep_Record.Unit_Name, when the unit 8165 is not a subunit. 8166 * ali.ads (Sdep_Record): New component Unit_Name. 8167 * lib-writ.adb (Write_ALI): Write the unit name in D lines. 8168 * makeutl.adb (Check_Source_Info_In_ALI): Return False if a 8169 dependent unit is in a project and the source file name is not 8170 one of its sources. 8171 81722014-07-18 Bob Duff <duff@adacore.com> 8173 8174 * s-addima.ads: Minor: add comment. 8175 81762014-07-18 Thomas Quinot <quinot@adacore.com> 8177 8178 * freeze.adb (Check_Component_Storage_Order): Fix enforcement 8179 of nesting rules for composites with different SSOs. 8180 81812014-07-18 Thomas Quinot <quinot@adacore.com> 8182 8183 * par_sco.adb (Is_Logical_Operator): An If_Expression is not 8184 a proper logical operator. 8185 (Has_Decision): An If_Expression indicates the presence of a decision 8186 although it is not a logical operator. 8187 81882014-07-18 Robert Dewar <dewar@adacore.com> 8189 8190 * gnat_ugn.texi: Remove note that -gnatR not allowed with -gnatc. 8191 * switch-c.adb: Remove prohibition of -gnatR and -gnatc together. 8192 81932014-07-18 Eric Botcazou <ebotcazou@adacore.com> 8194 8195 * sem_ch13.adb (Kill_Rep_Clause): Clear Comes_From_Source flag 8196 on the null statement. 8197 81982014-07-18 Thomas Quinot <quinot@adacore.com> 8199 8200 * adaint.c: Minor comment rewording. 8201 * socket.c: Define macros _REENTRANT and _THREAD_SAFE so that 8202 use of errno in this file is thread safe. 8203 82042014-07-18 Arnaud Charlet <charlet@adacore.com> 8205 8206 * gnat_ugn.texi: Doc clarification. 8207 * sem_ch13.adb (Kill_Rep_Clause): Use Replace not Rewrite. 8208 * sem_ch13.ads: Minor comment update. 8209 82102014-07-18 Robert Dewar <dewar@adacore.com> 8211 8212 * repinfo.ads: Minor comment fix. 8213 82142014-07-18 Robert Dewar <dewar@adacore.com> 8215 8216 * par-prag.adb: Add dummy entry for Default_Scalar_Storage_Order. 8217 * sem_prag.adb: Add dummy implementation of 8218 Default_Scalar_Storage_Order. 8219 * snames.ads-tmpl: Add dummy entry for 8220 Default_Scalar_Storage_Order pragma. 8221 82222014-07-18 Robert Dewar <dewar@adacore.com> 8223 8224 * opt.adb (Tree_Read): Read Address_Is_Private, 8225 Ignore_Rep_Clauses, Ignore_Style_Check_Pragmas, Multiple_Unit_Index. 8226 (Tree_Write): Corresponding writes 8227 * opt.ads: Minor comment reformatting and fixes. 8228 * tree_io.ads: Increment ASIS_Version_Number. 8229 82302014-07-18 Robert Dewar <dewar@adacore.com> 8231 8232 * sem_attr.adb, s-os_lib.ads, prj-tree.adb: Minor reformatting. 8233 * types.h: Fix typo. 8234 82352014-07-18 Robert Dewar <dewar@adacore.com> 8236 8237 * freeze.adb (Check_Address_Clause): Use Kill_Rep_Clause (no 8238 functional change). 8239 * gnat_ugn.texi: Document that -gnatI removes rep clauses from 8240 ASIS trees. 8241 * sem_ch13.adb (Kill_Rep_Clause): New procedure 8242 (Analyze_Attribute_Definition_Clause): Use 8243 Kill_Rep_Clause. This is just a cleanup, no functional effect. 8244 (Analyze_Enumeration_Representation_Clause): 8245 Use Kill_Rep_Clause. This means that enum rep 8246 clauses are now properly removed from -gnatct trees. 8247 (Analyze_Record_Representation_Clause): Same change. 8248 * sem_ch13.ads (Kill_Rep_Clause): New procedure. 8249 82502014-07-18 Pascal Obry <obry@adacore.com> 8251 8252 * s-os_lib.ads, s-os_lib.adb (GM_Time_Of): New routine to create an 8253 OS_Time from time parts. 8254 * adaint.h, adaint.c (__gnat_to_os_time): New routine. 8255 82562014-07-18 Ed Schonberg <schonberg@adacore.com> 8257 8258 * sem_ch4.adb (Try_Container_Indexing): Refine previous patch for 8259 indexing over containers that are derived types: check whether 8260 signature of found operation has the correct first parameter 8261 before retrieving directly a primitive operation. 8262 82632014-07-18 Ed Schonberg <schonberg@adacore.com> 8264 8265 * sem_attr.adb (Analyze_Attribute, case 'Update): Set 8266 Do_Range_Check flag on dynamic bounds of a range used in a 8267 component association in the argument of Update. 8268 82692014-07-18 Thomas Quinot <quinot@adacore.com> 8270 8271 * adaint.c: #define _REENTRANT and _THREAD_SAFE in order for 8272 accesses to errno(3) to be thread safe. 8273 82742014-07-18 Vincent Celier <celier@adacore.com> 8275 8276 * prj-tree.adb (Imported_Or_Extended_Project_Of): For each non 8277 limited imported project that is an extending project, return 8278 a project being extended if it has the expected name. 8279 82802014-07-18 Pascal Obry <obry@adacore.com> 8281 8282 * s-os_lib.ads, s-os_lib.adb (Set_File_Last_Modify_Time_Stamp): New 8283 routine to set the last modification time stamp for the given file. 8284 * gnatchop.adb (File_Time_Stamp): Removed. 8285 (Write_Unit): Use 8286 Set_File_Last_Modify_Time_Stamp instead of ad-hoc implementation. 8287 82882014-07-18 Ed Schonberg <schonberg@adacore.com> 8289 8290 * sem_aggr.adb (Aggregate_Constraint_Checks): Moved to sem_util. 8291 * sem_util.ads, sem_util.adb (Aggregate_Constraint_Checks): 8292 Moved here, so it can be shared with the resolution of 'Update, 8293 whose argument shares some features with aggregates. 8294 * sem_attr.adb (Resolve_Attribute, case 'Update): Apply 8295 Aggregate_Constraint_Checks with the expression of each 8296 association, so that the Do_Range_Check flag is set when needed. 8297 82982014-07-18 Ed Schonberg <schonberg@adacore.com> 8299 8300 * sem_ch4.adb (Try_Container_Indexing): If the container 8301 type is a derived type, the value of the inherited aspect is 8302 the Reference operation declared for the parent type. However, 8303 Reference is also a primitive operation of the new type, and 8304 the inherited operation has a different signature. We retrieve 8305 the right one from the list of primitive operations of the 8306 derived type. 8307 83082014-07-18 Vincent Celier <celier@adacore.com> 8309 8310 * debug.adb: Update comment. 8311 83122014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 8313 8314 * exp_util.adb (Needs_Finalization): There is no reason why a 8315 C type should not benefit from finalization actions. 8316 83172014-07-18 Thomas Quinot <quinot@adacore.com> 8318 8319 * s-oscons-tmplt.c (NAME_MAX): Fix definition for Solaris 8320 (FILENAME_MAX): Remove unneeded definition. 8321 83222014-07-18 Robert Dewar <dewar@adacore.com> 8323 8324 * exp_attr.adb, debug.adb: Update comments. 8325 83262014-07-18 Vincent Celier <celier@adacore.com> 8327 8328 * par-ch4.adb (Simple_Expression): Add missing style check 8329 for binary adding operators. 8330 (Term): Add missing style check for multiplying operators. 8331 83322014-07-18 Robert Dewar <dewar@adacore.com> 8333 8334 * impunit.adb: Minor comment correction. 8335 * widechar.adb, s-wchcon.ads: Minor comment corrections. 8336 83372014-07-18 Robert Dewar <dewar@adacore.com> 8338 8339 * sem_ch13.adb (Build_Discrete_Static_Predicate): New name 8340 for Build_Static_Predicate (Build_Predicate_Functions): 8341 Don't try to build discrete predicate for real type. 8342 (Build_Predicate_Functions): Report attempt to use 8343 Static_Predicate function on real type as unimplemented. 8344 * sem_util.adb (Check_Expression_Against_Static_Predicate): 8345 Add guard to prevent blow up on predicate for real type. 8346 83472014-07-18 Ed Schonberg <schonberg@adacore.com> 8348 8349 * einfo.adb (Set_Static_Predicate): Simplify assertion to handle 8350 properly static predicate on enumeration types and modular types 8351 (not subtypes). 8352 83532014-07-18 Pierre-Marie Derodat <derodat@adacore.com> 8354 8355 * scos.ads (SCO_Unit_Table_Entry): Add a field to keep track of 8356 the corresponding source file index. 8357 * get_scos.ads (Get_SCOs): Add a default value for it. 8358 * par_sco.adb (SCO_Record): Fill the corresponding value. 8359 * scos.h: New. 8360 83612014-07-18 Vincent Celier <celier@adacore.com> 8362 8363 * a-strunb-shared.adb, s-auxdec.ads, s-rannum.adb, atree.ads, 8364 urealp.adb, vms_data.ads, lib.ads, s-auxdec-vms_64.ads: Minor 8365 reformatting. 8366 * gnat_ugn.texi: Add documentation for new gnatmem switch -t. 8367 83682014-07-18 Thomas Quinot <quinot@adacore.com> 8369 8370 * g-sercom.ads (Set): document possible data loss. 8371 83722014-07-18 Ed Schonberg <schonberg@adacore.com> 8373 8374 * exp_attr.adb (Expand_N_Attribute_Reference, cases Input, 8375 Output, Read, Write): If the restriction No_Streams is active, 8376 replace each occurrence of a stream attribute by an explicit 8377 Raise statement. 8378 83792014-07-18 Robert Dewar <dewar@adacore.com> 8380 8381 * par_sco.adb, a-reatim.ads, exp_attr.adb, sem_util.adb: Minor 8382 reformatting. 8383 83842014-07-18 Robert Dewar <dewar@adacore.com> 8385 8386 * einfo.ads, einfo.adb (Has_Out_Or_In_Out_Parameter): New flag and 8387 function. 8388 (Set_Has_Out_Or_In_Out_Parameter): New procedure. 8389 * sem_ch6.adb (Set_Formal_Mode): Set Has_Out_Or_In_Out_Parameter flag. 8390 * sem_res.adb (Resolve_Call): Error if call of Ada 2012 function 8391 with OUT or IN OUT from earlier Ada mode (e.g. Ada 2005) 8392 83932014-07-18 Robert Dewar <dewar@adacore.com> 8394 8395 * bcheck.adb (Check_Consistent_Restrictions): 8396 Remove obsolete code checking for violation of 8397 No_Standard_Allocators_After_Elaboration (main program) 8398 * bindgen.adb (Gen_Adainit): Handle 8399 No_Standard_Allocators_After_Elaboration 8400 (Gen_Output_File_Ada): ditto. 8401 * exp_ch4.adb (Expand_N_Allocator): Handle 8402 No_Standard_Allocators_After_Elaboration. 8403 * Makefile.rtl: Add entry for s-elaall 8404 * rtsfind.ads: Add entry for Check_Standard_Allocator. 8405 * s-elaall.ads, s-elaall.adb: New files. 8406 * sem_ch4.adb (Analyze_Allocator): Handle 8407 No_Standard_Allocators_After_Elaboration. 8408 84092014-07-18 Robert Dewar <dewar@adacore.com> 8410 8411 * lib.adb, lib.ads, lib-writ.adb, lib-writ.ads, ali.adb, 8412 ali.ads, lib-load.adb: Remove Lib.Has_Allocator and all uses. 8413 Remove AB parameter from ali files and all uses. 8414 Remove Allocator_In_Body and all uses. 8415 84162014-07-18 Robert Dewar <dewar@adacore.com> 8417 8418 * g-expect-vms.adb: Add comment. 8419 84202014-07-18 Thomas Quinot <quinot@adacore.com> 8421 8422 * par_sco.adb (Is_Logical_Operation): return True for 8423 N_If_Expression. 8424 84252014-07-18 Ed Schonberg <schonberg@adacore.com> 8426 8427 * sem_attr.adb (Resolve_Attribute, case 'Update): Do full 8428 analysis and resolution of each choice in the associations within 8429 the argument of Update, because they may be variable names. 8430 84312014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 8432 8433 * exp_attr.adb (Expand_Loop_Entry_Attribute): Insert any condition 8434 actions before the generated if statement. 8435 84362014-07-18 Hristian Kirtchev <kirtchev@adacore.com> 8437 8438 * gnat_ugn.texi Enhance the documentation of 8439 switches -gnateA and -gnateV. 8440 84412014-07-18 Ed Schonberg <schonberg@adacore.com> 8442 8443 * sem_util.adb (Build_Default_Subtype): Add missing condition 8444 so that code matches description: use the full view of the base 8445 only if the base is private and the subtype is not. 8446 84472014-07-17 Gary Dismukes <dismukes@adacore.com> 8448 8449 * exp_disp.adb: Minor reformatting. 8450 * exp_disp.adb: Minor code reorganization. 8451 84522014-07-17 Thomas Quinot <quinot@adacore.com> 8453 8454 * gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Do not 8455 require an explicit SSO attribute definition clause on a composite type 8456 just because one of its components has one. 8457 84582014-07-17 Robert Dewar <dewar@adacore.com> 8459 8460 * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Rewrite 8461 attribute out of existence if the enclosing pragma is ignored. 8462 * sem_util.adb: Minor reformatting. 8463 84642014-07-17 Ed Schonberg <schonberg@adacore.com> 8465 8466 * exp_aggr.adb (Expand_Array_Aggregate): Handle properly an 8467 array aggregate expanded into assignments when it appears as a 8468 local declaration in an inlined body. 8469 84702014-07-17 Doug Rupp <rupp@adacore.com> 8471 8472 * init.c [__ANDROID__]: Modify for ZCX. 8473 * exp_aggr.adb: Minor reformatting 8474 * sigtramp-armvxw.c, sigtramp-ppcvxw.c: Update comments. 8475 84762014-07-17 Robert Dewar <dewar@adacore.com> 8477 8478 * a-strunb-shared.ads, a-stwiun-shared.ads, a-stzunb-shared.ads, 8479 exp_ch7.adb, g-pehage.ads, g-socket.ads, gnat_ugn.texi, gnat_ugx.texi, 8480 scng.adb: Remove incorrect usage "allow to" and "allows to". 8481 84822014-07-17 Robert Dewar <dewar@adacore.com> 8483 8484 * exp_dist.adb: Minor reformatting. 8485 84862014-07-17 Bob Duff <duff@adacore.com> 8487 8488 * gnat_ugn.texi: Improve documentation of Unrestricted_Access. 8489 84902014-07-17 Robert Dewar <dewar@adacore.com> 8491 8492 * sem_ch13.adb (Build_Invariant_Procedure): Add variable Nam 8493 (Add_Invariants): Set Nam to Name_Type_Invariant if from aspect. 8494 84952014-07-17 Thomas Quinot <quinot@adacore.com> 8496 8497 * exp_pakd.adb (Create_Packed_Array_Type.Install_PAT): For a 8498 non-bit-packed array, propagate Reverse_Storage_Order to the 8499 packed array type. 8500 85012014-07-17 Javier Miranda <miranda@adacore.com> 8502 8503 * exp_disp.adb: Fix comment. 8504 * exp_pakd.adb: Minor reformatting. 8505 85062014-07-17 Robert Dewar <dewar@adacore.com> 8507 8508 * bindgen.adb (Gen_Elab_Calls): Skip reference to elab 8509 entity if none exists (Gen_Elab_Calls): Complain if clash with 8510 No_Multiple_Elaboration. 8511 * s-rident.ads, restrict.ads: Add restriction No_Multiple_Elaboration. 8512 * sem_util.adb (Build_Elaboration_Entity): Skip building entity 8513 if not needed. 8514 * gnat_rm.texi: Document restriction No_Multiple_Elaboration. 8515 * sem_ch4.adb: Minor comment updates. 8516 85172014-07-17 Ed Schonberg <schonberg@adacore.com> 8518 8519 * exp_ch9.adb (Buid_Protected_Subprogram_Call): Preserve type 8520 of function call for later use when shared passive objects 8521 are involved. 8522 85232014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8524 8525 * par-ch13.adb (Get_Aspect_Specifications): 8526 Catch a case where the argument of SPARK aspect Refined_State 8527 is not properly parenthesized. 8528 85292014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8530 8531 * exp_ch6.adb (Expand_Ctrl_Function_Call): Do not extend 8532 the lifetime of a reference to an Ada 2012 container element. 8533 (Is_Element_Reference): New routine. 8534 85352014-07-17 Robert Dewar <dewar@adacore.com> 8536 8537 * ali.ads: Minor comment fix. 8538 * lib-writ.adb: Minor reformatting. 8539 85402014-07-17 Ed Schonberg <schonberg@adacore.com> 8541 8542 * sem_ch10.adb (Analyze_Proper_Body): When analyzing a subunit 8543 in ASIS mode, load another subunit only if it a subunit of the 8544 current one, not a sibling that has been reached through the 8545 analysis of an ancestor. This allows the construction of the 8546 ASIS tree for the subunit even when sibling subunits have errors. 8547 85482014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8549 8550 * sem_ch3.adb (Analyze_Declarations): Remove the guard which 8551 prevents the analysis of various contracts when the associated 8552 construct is erroneous. 8553 * sem_util.adb (Save_SPARK_Mode_And_Set): Do not query the 8554 SPARK_Pragma of an illegal or a partially decorated construct. 8555 85562014-07-17 Robert Dewar <dewar@adacore.com> 8557 8558 * s-imguns.ads: Minor reformatting. 8559 85602014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8561 8562 * exp_ch7.adb (Build_Finalization_Master): Move all local 8563 variables to the proper code section. When looking for an existing 8564 finalization master, inspect the ultimate ancestor type of the 8565 full view. 8566 * sem_util.ads, sem_util.adb (Root_Type_Of_Full_View): New routine. 8567 85682014-07-17 Robert Dewar <dewar@adacore.com> 8569 8570 * aspects.ads, aspects.adb: Add entries for aspect Annotate. 8571 * gnat_rm.texi: Document Entity argument for pragma Annotate and 8572 Annotate aspect. 8573 * sem_ch13.adb (Analyze_Aspect_Specification): Add processing 8574 for Annotate aspect. 8575 * sem_prag.adb (Analyze_Pragma, case Annotate): Allow optional 8576 Entity argument at end. 8577 * sinfo.ads (N_Aspect_Specification): Add note on Annotate aspect. 8578 85792014-07-17 Tristan Gingold <gingold@adacore.com> 8580 8581 * s-imguns.ads: Fix minor typo. 8582 85832014-07-17 Thomas Quinot <quinot@adacore.com> 8584 8585 * sprint.adb: Minor reformatting. 8586 85872014-07-17 Robert Dewar <dewar@adacore.com> 8588 8589 * sprint.adb (Write_Itype): Print proper header for string 8590 literal subtype. 8591 85922014-07-17 Steve Baird <baird@adacore.com> 8593 8594 * sinfo.ads, sem_scil.ads: Improve comments, minor reformatting. 8595 85962014-07-17 Vincent Celier <celier@adacore.com> 8597 8598 * gnatbind.adb: Change in message "try ... for more information". 8599 86002014-07-17 Robert Dewar <dewar@adacore.com> 8601 8602 * sprint.adb: Code clean up. 8603 86042014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8605 8606 * exp_ch7.adb (Find_Last_Init): Relocate local variables to 8607 the relevant code section. Add new local constant Obj_Id. When 8608 a limited controlled object is initialized by a function call, 8609 the build-in-place object access function call acts as the last 8610 initialization statement. 8611 * exp_util.adb (Is_Object_Access_BIP_Func_Call): New routine. 8612 (Is_Secondary_Stack_BIP_Func_Call): Code reformatting. 8613 * exp_util.ads (Is_Object_Access_BIP_Func_Call): New routine. 8614 86152014-07-17 Ed Schonberg <schonberg@adacore.com> 8616 8617 * sem_ch8.adb (Analyze_Generic_Renaming): For generic subprograms, 8618 propagate intrinsic flag to renamed entity, to allow e.g. renaming 8619 of Unchecked_Conversion. 8620 * sem_ch3.adb (Analyze_Declarations): Do not analyze contracts 8621 if the declaration has errors. 8622 86232014-07-17 Ed Schonberg <schonberg@adacore.com> 8624 8625 * a-rbtgbk.adb: a-rbtgbk.adb (Generic_Insert_Post): Check whether 8626 container is busy before checking whether capacity allows for 8627 a further insertion. Insertion in a busy container that is full 8628 raises Program_Error rather than Capacity_Error. Previous to that 8629 patch which exception was raised varied among container types. 8630 86312014-07-17 Robert Dewar <dewar@adacore.com> 8632 8633 * g-comlin.ads, g-comlin.adb: Minor clean up. 8634 86352014-07-17 Bob Duff <duff@adacore.com> 8636 8637 * gnat_ugn.texi: Update gnatpp doc. 8638 86392014-07-17 Robert Dewar <dewar@adacore.com> 8640 8641 * gnat_rm.texi: Document new restriction No_Long_Long_Integers. 8642 * exp_ch4.adb (Make_Array_Comparison_Op): Add note that we 8643 could do this by actually expanding a real generic. 8644 * a-tags.ads: Add comments about performance. 8645 * sprint.adb (Sprint_Node_Actual, case N_Object_Declaration): 8646 Print Etype of defining identifier, rather than the object 8647 definition. More information. 8648 86492014-07-17 Thomas Quinot <quinot@adacore.com> 8650 8651 * exp_dist.adb: Minor documentation clarification. 8652 86532014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8654 8655 * exp_util.adb (Is_Aliased): Revert previous change. 8656 86572014-07-17 Vincent Celier <celier@adacore.com> 8658 8659 * g-comlin.adb (Try_Help): New procedure. 8660 (Getopt): Use new procedure Try_Help. 8661 * g-comlin.ads (Try_Help): New procedure. 8662 86632014-07-17 Bob Duff <duff@adacore.com> 8664 8665 * gnat_ugn.texi: Minor update. 8666 86672014-07-17 Robert Dewar <dewar@adacore.com> 8668 8669 * gnat_rm.texi: Improve documentation of Unrestricted_Access. 8670 * sinfo.ads: Document restriction on aggregates (must expand to 8671 assignments if one or more assignments needs expansion, e.g. for 8672 controlled types). 8673 * sem_ch13.adb: All warning messages regarding bit order should 8674 be info: messages. 8675 * gnat_ugn.texi: Minor correction of missing @ on @code 8676 86772014-07-17 Robert Dewar <dewar@adacore.com> 8678 8679 * restrict.ads (Implementation_Restriction): Add No_Long_Long_Integer. 8680 * s-rident.ads (Partition_Boolean_Restrictions): Add 8681 No_Long_Long_Integer. 8682 * sem_ch3.adb (Modular_Type_Declaration): Size must be <= 8683 Long_Integer'Size if restriction No_Long_Long_Integer is active. 8684 (Signed_Integer_Type_Declaration): Do not allow Long_Long_Integer 8685 as the implicit base type for a signed integer type declaration 8686 if restriction No_Long_Long_Integer is active. 8687 * sem_util.ads, sem_util.adb (Set_Entity_With_Checks): Include check for 8688 No_Long_Long_Integer. 8689 86902014-07-17 Robert Dewar <dewar@adacore.com> 8691 8692 * sem_ch3.adb, a-ztexio.ads, exp_imgv.adb, casing.adb, casing.ads, 8693 einfo.ads, checks.adb, sem_ch12.adb, a-textio.ads, freeze.adb, 8694 repinfo.adb, exp_ch6.adb, sem_ch4.adb, a-witeio.ads, sem_ch8.adb, 8695 sem_warn.adb, exp_aggr.adb, exp_dist.adb, par-tchk.adb, s-fatgen.adb, 8696 treepr.adb, lib-xref.adb: Remove the word kludge from ada sources. 8697 86982014-07-17 Robert Dewar <dewar@adacore.com> 8699 8700 * debug.adb: Remove -gnatdQ. 8701 * exp_disp.adb: Remove -gnatdQ. 8702 * a-ztenio.ads, a-wtinio.ads, a-wtmoio.ads, a-ztcoau.ads, a-tiinio.ads, 8703 a-wtfiio.ads, a-timoio.ads, sem_ch12.adb, a-tifiio.ads, a-ztinio.ads, 8704 rtsfind.adb, rtsfind.ads, a-ztmoio.ads, a-wtdeio.ads, a-ztfiio.ads, 8705 a-tideio.ads, a-wtflio.ads, a-ztdeio.ads, sem_ch8.adb, a-tiflio.ads, 8706 sprint.adb, a-ztflio.ads, snames.ads-tmpl, a-wtenio.ads, 8707 a-tienio.ads: Rename Text_IO_Kludge to Text_IO_Special_Unit. 8708 87092014-07-17 Robert Dewar <dewar@adacore.com> 8710 8711 * back_end.adb: Minor reformatting and comment additions. 8712 * checks.ads, checks.adb (Duplicated_Tag_Checks_Suppressed): New 8713 function. 8714 * exp_disp.adb (Make_DT): Use Duplicated_Tag_Checks_Suppressed. 8715 (Make_VM_TSD): Use Duplicated_Tag_Checks_Suppressed. 8716 * gnat_rm.texi: Document new check Duplicated_Tag_Checks_Suppressed. 8717 * gnat_ugn.texi: Additional documentation for Duplicated_Tag_Check. 8718 * snames.ads-tmpl (Duplicated_Tag_Checks_Suppressed): New check. 8719 * types.ads (Duplicated_Tag_Checks_Suppressed): New check. 8720 87212014-07-17 Robert Dewar <dewar@adacore.com> 8722 8723 * gnat_rm.texi: Minor comment updates. 8724 87252014-07-17 Ed Schonberg <schonberg@adacore.com> 8726 8727 * sem_util.adb (Make_Explicit_Dereference): If the expression 8728 being dereferenced is a generalized indexing, reset the overloaded 8729 flag on the generalized indexing call, consistent with the 8730 resetting of the flag on the original indexed component. 8731 87322014-07-17 Robert Dewar <dewar@adacore.com> 8733 8734 * gnat_ugn.texi: Document advise not to mix -gnatV? and 8735 optimization. 8736 87372014-07-17 Robert Dewar <dewar@adacore.com> 8738 8739 * checks.adb (Insert_Valid_Check): Don't insist on a name 8740 for the prefix when we make calls to Force_Evaluation and 8741 Duplicate_Subexpr_No_Checks. 8742 * exp_util.adb (Is_Volatile_Reference): Handle all cases properly 8743 (Remove_Side_Effects): Handle all volatile references right 8744 (Side_Effect_Free): Volatile reference is never side effect free 8745 * sinfo.ads (N_Attribute_Reference): Add comments explaining 8746 that in the tree, the prefix can be a general expression. 8747 87482014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8749 8750 * sem_ch6.adb (Analyze_Subprogram_Body_Contract, 8751 Analyze_Subprogram_Contract): Add comments on SPARK_Mode save/restore. 8752 * sem_ch7.adb (Analyze_Package_Body_Contract, 8753 Analyze_Package_Contract): Add comments on SPARK_Mode save/restore. 8754 87552014-07-17 Robert Dewar <dewar@adacore.com> 8756 8757 * exp_ch7.ads, exp_util.ads: Document Insert_Action_After, 8758 Store_After_Actions_In_Scope. 8759 87602014-07-17 Robert Dewar <dewar@adacore.com> 8761 8762 * sem_aux.ads: Minor comment addition. 8763 87642014-07-17 Ed Schonberg <schonberg@adacore.com> 8765 8766 * sem_res.adb (Make_Call_Into_Operator): If the call is already 8767 a rewriting of an operator node, there are no actuals to be 8768 propagated from original node to rewritten node when in ASIS mode. 8769 87702014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8771 8772 * sem_ch6.adb (Analyze_Subprogram_Body_Contract, 8773 Analyze_Subprogram_Contract): Add new local variable Mode. Save 8774 and restore the SPARK mode of the related construct in a 8775 stack-like fashion. 8776 * sem_ch7.adb (Analyze_Package_Body_Contract, 8777 Analyze_Package_Contract): Add new local variable Mode. Save and 8778 restore the SPARK mode of the related construct in a stack-like fashion. 8779 * sem_util.adb Remove with and use clause for Opt. 8780 (Restore_SPARK_Mode): New routine. 8781 (Save_SPARK_Mode_And_Set): New routine. 8782 * sem_util.ads Add with and use clause for Opt. 8783 (Restore_SPARK_Mode): New routine. 8784 (Save_SPARK_Mode_And_Set): New routine. 8785 87862014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8787 8788 * exp_util.adb (Is_Aliased): Transient objects 8789 within an expression with actions cannot be considered aliased. 8790 87912014-07-17 Thomas Quinot <quinot@adacore.com> 8792 8793 * sem.ads (Scope_Stack_Entry): Reorganize storage of action lists; 8794 introduce a new list (cleanup actions) for each (transient) scope. 8795 * sinfo.ads, sinfo.adb (Cleanup_Actions): New attribute for 8796 N_Block_Statement 8797 * exp_ch7.ads (Store_Cleanup_Actions_In_Scope): New subprogram. 8798 * exp_ch7.adb (Store_Actions_In_Scope): New subprogram, common 8799 processing for Store_xxx_Actions_In_Scope. 8800 (Build_Cleanup_Statements): Allow for a list of additional 8801 cleanup statements to be passed by the caller. 8802 (Expand_Cleanup_Actions): Take custom cleanup actions associated 8803 with an N_Block_Statement into account. 8804 (Insert_Actions_In_Scope_Around): Account for Scope_Stack_Entry 8805 reorganization (refactoring only, no behaviour change). 8806 (Make_Transient_Block): Add assertion to ensure that the current 8807 scope is indeed a block (namely, the entity for the transient 8808 block being constructed syntactically, which has already been 8809 established as a scope). If cleanup actions are present in the 8810 transient scope, transfer them now to the transient block. 8811 * exp_ch6.adb (Expand_Protected_Subprogram_Call): Freeze the 8812 called function while it is still present as the name in a call 8813 in the tree. This may not be the case later on if the call is 8814 rewritten into a transient block. 8815 * exp_smem.adb (Add_Shared_Var_Lock_Procs): The post-actions 8816 inserted after calling a protected operation on a shared passive 8817 protected must be performed in a block finalizer, not just 8818 inserted in the tree, so that they are executed even in case of 8819 a normal (RETURN) or abnormal (exception) transfer of control 8820 outside of the current scope. 8821 * exp_smem.ads (Add_Shared_Var_Lock_Procs): Update documentation 8822 * sem_ch8.adb, expander.adb, exp_ch11.adb: Adjust for 8823 Scope_Stack_Entry reorganization. 8824 88252014-07-17 Thomas Quinot <quinot@adacore.com> 8826 8827 * exp_disp.adb (Make_DT, Make_VM_TSD): Do not omit Check_TSD 8828 call for types that do not have an explicit attribute definition 8829 clause for External_Tag, as their default tag may clash with an 8830 explicit tag defined for some other type. 8831 88322014-07-17 Hristian Kirtchev <kirtchev@adacore.com> 8833 8834 * exp_util.adb (Is_Controlled_Function_Call): Recognize a 8835 controlled function call with multiple actual parameters that 8836 appears in Object.Operation form. 8837 88382014-07-17 Thomas Quinot <quinot@adacore.com> 8839 8840 * einfo.ads, einfo.adb (Has_External_Tag_Rep_Clause): Remove 8841 entity flag. 8842 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 8843 External_Tag): No need to set entity flag. 8844 * sem_aux.ads, sem_aux.adb (Has_External_Tag_Rep_Clause): 8845 Reimplement correctly in terms of Has_Rep_Item. 8846 88472014-07-17 Thomas Quinot <quinot@adacore.com> 8848 8849 * exp_ch7.adb (Establish_Transient_Scope.Find_Node_To_Be_Wrapped): 8850 Start examining the tree at the node passed to 8851 Establish_Transient_Scope (not its parent). 8852 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): 8853 The access type for the variable storing the reference to 8854 the call must be declared and frozen prior to establishing a 8855 transient scope. 8856 * exp_ch9.adb: Minor reformatting. 8857 88582014-07-17 Pascal Obry <obry@adacore.com> 8859 8860 * s-os_lib.ads: Minor comment update. 8861 88622014-07-17 Tristan Gingold <gingold@adacore.com> 8863 8864 * sysdep.c: Add ATTRIBUTE_UNUSED to avoid warnings. Fix some 8865 indentation. 8866 * socket.c: Remove #warning to avoid warning. 8867 * expect.c: Indent some preprocessor directives to clarify 8868 nested if. Do not use wait.h on PikeOS. Add ATTRIBUTE_UNUSED 8869 to remove warnings. 8870 * env.c: Fix indentation. Port to PikeOS. 8871 * gsocket.h: Port to PikeOS. Remove #warning. 8872 * terminals.c: Port to PikeOS. Fix indentation of the stubs. 8873 Add ATTRIBUTE_UNUSED to stubs arguments. Fix return statement 8874 of stubbed __gnat_setup_parent_communication. 8875 * adaint.c: Port to PikeOS. Reindent some preprocessor 8876 directives to clarify nested if. Fix indentation. Add missing 8877 ATTRIBUTE_UNUSED. 8878 88792014-07-17 Robert Dewar <dewar@adacore.com> 8880 8881 * sem_attr.adb: Minor reformatting. 8882 88832014-07-17 Robert Dewar <dewar@adacore.com> 8884 8885 * exp_ch7.adb, exp_ch7.ads, sinfo.ads: Minor reformatting. 8886 88872014-07-17 Ed Schonberg <schonberg@adacore.com> 8888 8889 * sem_case.adb (Check_Choice_Set): If the case expression is the 8890 expression in a predicate, do not recheck coverage against itself, 8891 to prevent spurious errors. 8892 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): Indicate that 8893 expression comes from an aspect specification, to prevent spurious 8894 errors when expression is a case expression in a predicate. 8895 88962014-07-17 Pascal Obry <obry@adacore.com> 8897 8898 * adaint.c, adaint.h (__gnat_set_executable): Add mode parameter. 8899 * s-os_lib.ads, s-os_lib.adb (Set_Executable): Add Mode parameter. 8900 89012014-07-17 Vincent Celier <celier@adacore.com> 8902 8903 * gnatchop.adb, make.adb, gnatbind.adb, clean.adb, gprep.adb, 8904 gnatxref.adb, gnatls.adb, gnatfind.adb, gnatname.adb: Do not output 8905 the usage for an erroneous invocation of a gnat tool. 8906 89072014-07-16 Vincent Celier <celier@adacore.com> 8908 8909 * gnatls.adb: Get the target parameters only if -nostdinc was 8910 not specified. 8911 89122014-07-16 Ed Schonberg <schonberg@adacore.com> 8913 8914 * checks.adb (Insert_Valid_Check): If the expression is a packed 8915 component of a modular type of the right size the data is always 8916 valid. This os particularly useful if the component is part of 8917 a volatile variable. 8918 89192014-07-16 Robert Dewar <dewar@adacore.com> 8920 8921 * gnat_rm.texi, sinfo.ads, freeze.adb, exp_aggr.adb: Minor reformatting 8922 89232014-07-16 Thomas Quinot <quinot@adacore.com> 8924 8925 * exp_ch7.ads: Minor documentation fix. 8926 89272014-07-16 Ed Schonberg <schonberg@adacore.com> 8928 8929 * sem_ch3.adb (Find_Type_Name): Diagnose properly 8930 a private extension completion that is an interface definition 8931 with an interface list. 8932 89332014-07-16 Arnaud Charlet <charlet@adacore.com> 8934 8935 * gnatls.adb (Gnatls): Code clean ups. 8936 89372014-07-16 Thomas Quinot <quinot@adacore.com> 8938 8939 * sinfo.ads, sinfo.adb (N_Compound_Statement): New node kind. 8940 * sem.adb (Analyze): Handle N_Compound_Statement. 8941 * sprint.adb (Sprint_Node_Actual): Ditto. 8942 * sem_ch5.ads, sem_ch5.adb (Analyze_Compound_Statement): New 8943 procedure to handle N_Compound_Statement. 8944 * exp_aggr.adb (Collect_Initialization_Statements): 8945 Use a proper compound statement node, instead of a bogus 8946 expression-with-actions with a NULL statement as its expression, 8947 to wrap collected initialization statements. 8948 * freeze.ads, freeze.adb 8949 (Explode_Initialization_Compound_Statement): New public procedure, 8950 lifted from Freeze_Entity. 8951 (Freeze_Entity): When freezing 8952 an object with captured initialization statements and without 8953 delayed freezing, explode compount statement. 8954 * sem_ch4.adb (Analyze_Expression_With_Actions): Remove special 8955 case that used to handle bogus EWAs with NULL statement as 8956 the expression. 8957 * exp_ch13.adb (Expand_N_Freeze_Entity): For an object with 8958 delayed freezing and captured initialization statements, explode 8959 compound statement. 8960 89612014-07-16 Gary Dismukes <dismukes@adacore.com> 8962 8963 * g-rewdat.adb, g-rewdat.ads: Minor reformatting. 8964 89652014-07-16 Doug Rupp <rupp@adacore.com> 8966 8967 * s-interr-hwint.adb: Casing error on parameter. 8968 89692014-07-16 Pascal Obry <obry@adacore.com> 8970 8971 * Makefile.rtl: Add g-rewdat.o dependencies in 8972 GNATRTL_NONTASKING_OBJS. 8973 89742014-07-16 Ed Schonberg <schonberg@adacore.com> 8975 8976 * sem_case.adb: Code clean up. 8977 89782014-07-16 Vincent Celier <celier@adacore.com> 8979 8980 * make.adb: Do not read gnat.adc when gnatmake is invoked 8981 with -gnatA. 8982 89832014-07-16 Pascal Obry <obry@adacore.com> 8984 8985 * gnat_rm.texi, impunit.adb, g-rewdat.adb, g-rewdat.ads: Initial 8986 implementation of GNAT.Rewrite_Data. 8987 89882014-07-16 Vincent Celier <celier@adacore.com> 8989 8990 * gnatls.adb (Normalize): New function. 8991 (Gnatls): Get the target parameters. On targets other than VMS, 8992 normalize the path names in the source search path, the object search 8993 path and the project search path. 8994 89952014-07-16 Ed Schonberg <schonberg@adacore.com> 8996 8997 * sem_case.adb: Avoid self-checking of case expressions in 8998 dynamic predicates. 8999 90002014-07-16 Robert Dewar <dewar@adacore.com> 9001 9002 * gnat_rm.texi: Document effect of Suppress_Initialization on tags and 9003 discriminants. 9004 90052014-07-16 Eric Botcazou <ebotcazou@adacore.com> 9006 9007 * switch-b.adb (Scan_Binder_Switches): Add missing guard. 9008 90092014-07-16 Ben Brosgol <brosgol@adacore.com> 9010 9011 * gnat_ugn.texi: Fix typo. 9012 90132014-07-16 Ed Schonberg <schonberg@adacore.com> 9014 9015 * exp_ch4.adb (Expand_N_Case_Expression): Do not expand case 9016 expression if it is the specification of a subtype predicate: 9017 it will be expanded when the return statement is analyzed, or 9018 when a static predicate is transformed into a static expression 9019 for evaluation by the front-end. 9020 * sem_ch13.adb (Get_RList): If the expression for a static 9021 predicate is a case expression, extract the alternatives of the 9022 branches with a True value to create the required statically 9023 evaluable expression. 9024 90252014-07-16 Thomas Quinot <quinot@adacore.com> 9026 9027 * exp_prag.adb (Expand_Pragma_Check): Use the location of the 9028 expression, not the location of the aspect, for all generated 9029 code, so that in particular the call to raise_assert_failure 9030 gets the sloc of the associated condition. 9031 * exp_ch6.adb 9032 (Expand_Subprogram_Contract.Build_Postconditions_Procedure): 9033 Set an explicit End_Label on the handled sequence of statements 9034 for the _Postconditions procedure so that the implicit return 9035 statement does not erroneously get associated with code generated 9036 for the last condition in postconditions. 9037 90382014-07-16 Thomas Quinot <quinot@adacore.com> 9039 9040 * ug_words: Fix name of VMS synonym for -gnatw.z (SIZE_ALIGNMENT, 9041 not SIZE_ALIGN) and -gnatw.Z (NOSIZE_ALIGNMENT, not NOSIZE_ALIGN). 9042 * vms_data.ads: Add missing spaces in VMS synonyms for -gnatw.z / 9043 -gnatw.Z. 9044 90452014-07-16 Robert Dewar <dewar@adacore.com> 9046 9047 * sem_ch3.adb, sem_prag.adb, sem_util.adb, sem_res.adb, sem_ch13.adb: 9048 Minor code reorganization (use Is_Access_Type, not in Access_Kind). 9049 * exp_ch3.adb: Minor code reorganization, use Is_Access_Type, 9050 not in Access_Kind. 9051 * par-ch4.adb (At_Start_Of_Attribute): New function 9052 (P_Simple_Expression): Better msg for bad attribute prefix. 9053 * scans.ads: Minor reformatting. 9054 90552014-07-16 Ed Schonberg <schonberg@adacore.com> 9056 9057 * sem_attr.adb (Resolve_Attribute, case 'Update): If choice is a 9058 static constant, check that in belongs to the corresponding index 9059 subtype, to produce the proer warning when expansion is disabled. 9060 90612014-07-16 Robert Dewar <dewar@adacore.com> 9062 9063 * freeze.adb (Freeze_Entity): Warn on incompatible size/alignment. 9064 * gnat_ugn.texi: Document -gnatw.z and -gnatw.Z. 9065 * ug_words: VMS synonyms (WARNINGS=[NO]SIZE_ALIGN) for -gnatw.z/-gnatw.Z 9066 * usage.adb: Add lines for -gnatw.z/-gnatw.Z. 9067 * vms_data.ads: VMS synonyms (WARNINGS=[NO]SIZE_ALIGN) for 9068 -gnatw.z/-gnatw.Z 9069 * warnsw.adb: Set Warn_On_Size_Alignment appropriately. 9070 * warnsw.ads (Warn_On_Size_Alignment): New flag Minor 9071 reformatting. 9072 90732014-07-16 Hristian Kirtchev <kirtchev@adacore.com> 9074 9075 * exp_ch7.adb (Process_Declarations): Reinstate the check on 9076 a hook object to ensure that the related transient declaration 9077 is finalizable. 9078 * exp_util.adb (Is_Aliased): Do not consider expresison with 9079 actions as a special context. 9080 (Requires_Cleanup_Actions): Reinstate the check on a hook object to 9081 ensure that the related transient declaration is finalizable. 9082 90832014-07-16 Robert Dewar <dewar@adacore.com> 9084 9085 * checks.ads, checks.adb (Allocation_Checks_Suppressed): New function. 9086 * snames.ads-tmpl: Add Allocation_Check to list of check names. 9087 * types.ads: Add Allocation_Check to list of check names. 9088 90892014-07-16 Thomas Quinot <quinot@adacore.com> 9090 9091 * sem_util.adb (Enter_Name): replace bogus test for presence of 9092 Corresponding_Remote_Type with correct test on Ekind. 9093 * sem_res.adb (Valid_Conversion): ditto; also clarify validity 9094 of calls to Corresponding_ Remote_Type (documentation fix). 9095 90962014-07-16 Robert Dewar <dewar@adacore.com> 9097 9098 * gnat_rm.texi: Document illegal case of Unrestricted_Access. 9099 * sem_attr.adb (Analyze_Access_Attribute): Set_Non_Aliased_Prefix 9100 where it applies. 9101 (Resolve_Attribute, case Access): Flag illegal Unrestricted_Access use. 9102 * sinfo.ads, sinfo.adb (Non_Aliased_Prefix): New flag. 9103 91042014-07-16 Robert Dewar <dewar@adacore.com> 9105 9106 * gnat_ugn.texi: Document binder switch -Ra. 9107 * gnatbind.adb (List_Closure_Display): Implement -Ra switch 9108 (List_Closure_All). 9109 * opt.ads (List_Closure_All): New switch. 9110 * switch-b.adb (Scan_Binder_Switches): Recognize -Ra to set 9111 List_Closure_All. 9112 91132014-07-16 Ben Brosgol <brosgol@adacore.com> 9114 9115 * gnat_rm.texi: Minor edits, to make case consistent in names 9116 of types and fields. 9117 91182014-07-16 Robert Dewar <dewar@adacore.com> 9119 9120 * gnat_rm.texi: Document erroneous mixing of thin pointers and 9121 unrestricted access 9122 * gnat_ugn.texi: Add note on size of access types about thin 9123 pointers and the use of attribute Unrestricted_Access. 9124 91252014-07-16 Ed Schonberg <schonberg@adacore.com> 9126 9127 * a-cbdlli.ads, a-cbdlli.adb, a-cbhama.ads, a-cbhama.adb, 9128 * a-cbhase.ads, a-cbhase.adb, a-cborma.ads, a-cborma.adb, 9129 * a-cborse.ads, a-cborse.adb, a-cobove.ads a-cobove.adb: Add Control 9130 machinery to detect tampering on bounded vectors. 9131 91322014-07-16 Robert Dewar <dewar@adacore.com> 9133 9134 * gnat_rm.texi: Document that leading/trailing asterisks are 9135 now implied for the pattern match string for pragma Warnings 9136 and Warning_As_Error. 9137 * sem_prag.adb (Acquire_Warning_Match_String): New procedure. 9138 (Analyze_Pragma, case Warning_As_Error): Call 9139 Acquire_Warning_Match_String. 9140 (Analyze_Pragma, case Warnings): Call Acquire_Warning_Match_String. 9141 91422014-07-16 Bob Duff <duff@adacore.com> 9143 9144 * gnat_ugn.texi: Document need for project file 9145 for --incremental switch for gnat2xml. 9146 91472014-07-16 Robert Dewar <dewar@adacore.com> 9148 9149 * gnat_rm.texi: Fix example of non-packable components in packed 9150 records section. 9151 91522014-07-16 Robert Dewar <dewar@adacore.com> 9153 9154 * s-tpoben.adb, s-tasren.adb, s-interr.adb, s-interr-hwint.adb, 9155 s-shasto.adb, s-interr-vms.adb, s-interr-sigaction.adb: Avoid use of 9156 upper case in exception messages. 9157 91582014-07-16 Robert Dewar <dewar@adacore.com> 9159 9160 * snames.ads-tmpl, sem_attr.adb, exp_attr.adb: Same_Storage attribute 9161 is renamed Has_Same_Storage. 9162 * gnat_rm.texi: Document missing SPARK pragmas and attributes. 9163 * sem_prag.adb: Minor comment fix (use LOCAL_NAME in syntax 9164 descriptions). 9165 91662014-07-16 Robert Dewar <dewar@adacore.com> 9167 9168 * exp_util.adb, sem_attr.adb, exp_ch4.adb, a-cohase.ads, 9169 a-coinho-shared.adb, a-coinho-shared.ads: Minor reformatting. 9170 91712014-07-16 Robert Dewar <dewar@adacore.com> 9172 9173 * gnat_ugn.texi: Add note that integrated 9174 preprocessing cannot be applied to configuration pragma files. 9175 91762014-07-16 Yannick Moy <moy@adacore.com> 9177 9178 * sem_attr.adb (Analyze_Attribute/cases Pred 9179 and Succ): Always enable range check on fixed-point types if 9180 not suppressed for the type. 9181 91822014-07-16 Hristian Kirtchev <kirtchev@adacore.com> 9183 9184 * sem_util.adb (State_Has_Enabled_Property): 9185 Account for an external property denoted by an others choice. 9186 91872014-07-16 Hristian Kirtchev <kirtchev@adacore.com> 9188 9189 * exp_ch4.ads, exp_ch4.adb (Find_Hook_Context): Relocated to Exp_Util. 9190 * exp_ch7.adb (Process_Declarations): There is no need to check 9191 that a transient object being hooked is controlled as it would 9192 not have been hooked in the first place. 9193 * exp_ch9.adb Remove with and use clause for Exp_Ch4. 9194 * exp_util.adb (Find_Hook_Context): Relocated from Exp_Ch4. 9195 (Is_Aliased): A renaming of a transient controlled object is 9196 not considered aliasing when it occurs within an expression 9197 with actions. 9198 (Requires_Cleanup_Actions): There is no need to 9199 check that a transient object being hooked is controlled as it 9200 would not have been hooked in the first place. 9201 * exp_util.ads (Find_Hook_Context): Relocated from Exp_Ch4. 9202 92032014-07-16 Hristian Kirtchev <kirtchev@adacore.com> 9204 9205 * sem_ch13.adb (Insert_After_SPARK_Mode): Moved to 9206 the outer level of routine Analyze_Aspect_Specifications. Ensure 9207 that the corresponding pragmas of aspects Initial_Condition and 9208 Initializes are inserted after pragma SPARK_Mode. 9209 92102014-07-16 Ed Schonberg <schonberg@adacore.com> 9211 9212 * sem_attr.adb (Analyze_Attribute, case 'Update): Handle 9213 properly a choice list with more than one choice, where each 9214 is an aggregate denoting a sequence of array indices for a 9215 multidimentional array. For SPARK use. 9216 92172014-07-16 Vadim Godunko <godunko@adacore.com> 9218 9219 * a-coinho-shared.adb (Adjust): Create 9220 copy of internal shared object and element when source container 9221 is locked. 9222 (Copy): Likewise. 9223 (Query_Element): Likewise. 9224 (Update_Element): Likewise. 9225 (Constant_Reference): Likewise. Raise Constraint_Error on attempt 9226 to get reference for empty holder. 9227 (Reference): Likewise. 9228 92292014-07-16 Thomas Quinot <quinot@adacore.com> 9230 9231 * exp_ch4.adb (Find_Hook_Context): New subprogram, extracted 9232 from Process_Transient_Oject. 9233 * exp_ch4.ads: Ditto. 9234 * exp_ch9.adb (Build_Class_Wide_Master): Insert the _master 9235 declaration as an action on the topmost enclosing expression, 9236 not on a possibly conditional subexpreession. 9237 92382014-07-16 Vadim Godunko <godunko@adacore.com> 9239 9240 * a-coinho.adb, a-coinho-shared.adb, a-coinho.ads, a-coinho-shared.ads: 9241 Fix parameter mode of Update_Element. 9242 92432014-07-16 Robert Dewar <dewar@adacore.com> 9244 9245 * a-coinho.adb, a-coinho-shared.adb, a-coinho-shared.ads: Minor 9246 reformatting. 9247 92482014-07-16 Ed Schonberg <schonberg@adacore.com> 9249 9250 * a-cohase.ads: Type Iterator must be controlled, so that the 9251 tampering bit is properly set through an iteration. 9252 * a-cohase.adb: Add Finalize operation for type Iterator. 9253 92542014-07-16 Ed Schonberg <schonberg@adacore.com> 9255 9256 * a-coinho-shared.adb, a-coinho-shared.ads: Proper structures for 9257 tampering checks. 9258 92592014-07-16 Ed Schonberg <schonberg@adacore.com> 9260 9261 * a-coinho-shared.adb: Fix spurious accessibility check. 9262 92632014-06-15 Jan Hubicka <hubicka@ucw.cz> 9264 9265 * gcc-interface/utils.c (process_attributes): Use set_decl_tls_model. 9266 92672014-06-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 9268 9269 PR ada/61505 9270 * gnat_rm.texi: Fix errors with makeinfo 5.1. 9271 92722014-06-14 Arnaud Charlet <charlet@adacore.com> 9273 9274 PR ada/61505 9275 * gnat_rm.texi: Attempt to fix error with makeinfo 5.1. 9276 92772014-06-13 Yannick Moy <moy@adacore.com> 9278 9279 * exp_attr.adb: Fix typo in comment. 9280 * gnat1drv.adb (Adjust_Global_Switches): Force float overflow 9281 checking in GNATprove_Mode. 9282 92832014-06-13 Ed Schonberg <schonberg@adacore.com> 9284 9285 * a-coinho-shared.adb, a-coinho-shared.ads: Update shared version. 9286 92872014-06-13 Robert Dewar <dewar@adacore.com> 9288 9289 * sem_ch3.adb, sem_ch9.adb, a-coinho.adb, a-coinho.ads: Minor 9290 reformatting. 9291 92922014-06-13 Hristian Kirtchev <kirtchev@adacore.com> 9293 9294 * sem_prag.adb (Analyze_Pragma): Add local 9295 variable Missing_Parentheses. Emit an error when a state 9296 declaration with options appears without parentheses. Add a 9297 guard to prevent a bogus error when a state declaration may be 9298 interpreted as an option if a previous declaration with options 9299 was not parenthesized. 9300 93012014-06-13 Robert Dewar <dewar@adacore.com> 9302 9303 * checks.adb: Validate_Alignment_Check_Warnings: New procedure 9304 (Apply_Address_Clause_Check): Make Aligment_Warnings table entry. 9305 * checks.ads (Alignment_Warnings_Record): New type. 9306 (Alignment_Warnings): New table 9307 (Validate_Alignment_Check_Warnings): New procedure. 9308 * errout.adb (Delete_Warning_And_Continuations): New procedure 9309 (Error_Msg_Internal): Set Warning_Msg (Delete_Warning): Handle 9310 Warnings_Treated_As_Errors (Finalize): Minor reformatting 9311 * errout.ads (Warning_Msg): New variable 9312 (Delete_Warning_And_Continuations): New procedure 9313 * erroutc.adb (Delete_Msg): Handle Warnings_Treated_As_Errors count. 9314 * gnat1drv.adb (Post_Compilation_Validation_Checks): New procedure. 9315 93162014-06-13 Ed Schonberg <schonberg@adacore.com> 9317 9318 * a-coinho.adb, a-coinho.ads: Add Reference machinery. 9319 93202014-06-13 Hristian Kirtchev <kirtchev@adacore.com> 9321 9322 * errout.adb (SPARK_Msg_N): New routine. 9323 (SPARK_Msg_NE): New routine. 9324 * errout.ads Add a section on SPARK-related error routines. 9325 (SPARK_Msg_N): New routine. 9326 (SPARK_Msg_NE): New routine. 9327 * sem_ch13.adb (Analyze_Aspect_Specifications): Ensure that 9328 pragma Abstract_State is always inserted after SPARK_Mode. 9329 (Insert_After_SPARK_Mode): New routine. 9330 * sem_prag.adb (Analyze_Abstract_State, 9331 Analyze_Constituent, Analyze_External_Property, 9332 Analyze_External_Property_In_Decl_Part, Analyze_Global_Item, 9333 Analyze_Global_List, Analyze_Initialization_Item, 9334 Analyze_Initialization_Item_With_Inputs, Analyze_Input_Item, 9335 Analyze_Input_List, Analyze_Input_Output, Analyze_Part_Of, 9336 Analyze_Pragma, Analyze_Refined_Depends_In_Decl_Part, 9337 Analyze_Refined_Global_In_Decl_Part, 9338 Analyze_Refined_State_In_Decl_Part, Analyze_Refinement_Clause, 9339 Check_Aspect_Specification_Order, Check_Constituent_Usage, 9340 Check_Declaration_Order, Check_Dependency_Clause, 9341 Check_Duplicate_Mode, Check_Duplicate_Option, 9342 Check_Duplicate_Property, Check_External_Properties, 9343 Check_External_Property, Check_Function_Return, 9344 Check_Matching_Constituent, Check_Matching_State, 9345 Check_Mode_Restriction_In_Enclosing_Context, 9346 Check_Mode_Restriction_In_Function, Check_Refined_Global_Item, 9347 Check_State_And_Constituent_Use, Create_Or_Modify_Clause, 9348 Has_Extra_Parentheses, Inconsistent_Mode_Error, 9349 Match_Error, Propagate_Part_Of, Report_Extra_Clauses, 9350 Report_Extra_Constituents_In_List, Report_Extra_Inputs, 9351 Report_Unrefined_States, Report_Unused_Constituents, 9352 Report_Unused_States, Role_Error, Usage_Error): 9353 Convert Error_Msg_XXX calls to SPARK_Msg_XXX calls 9354 to report semantic errors only when SPARK_Mode is on. 9355 (Analyze_Depends_In_Decl_Part): Do not check the syntax of 9356 pragma Depends explicitly, this is now done by the analysis. 9357 (Analyze_Global_In_Decl_List): Do not check the syntax of 9358 pragma Global explicitly, this is now done by the analysis. 9359 (Analyze_Initializes_In_Decl_Part): Do not check the syntax of 9360 pragma Initializes explicitly, this is now done by the analysis. 9361 (Analyze_Part_Of): Do not check the syntax of the encapsulating 9362 state, this is now done by the analysis. 9363 (Analyze_Pragma): Do 9364 not check the syntax of a state declaration, this is now done 9365 by the analysis. 9366 (Analyze_Refined_Depends_In_Decl_Part): Do not 9367 check the syntax of pragma Refined_Depends explicitly, this is now 9368 done by the analysis. 9369 (Analyze_Refined_Global_In_Decl_Part): Do 9370 not check the syntax of pragma Refined_Global explicitly, this is 9371 now done by the analysis. 9372 (Analyze_Refined_State_In_Decl_Part): 9373 Do not check the syntax of pragma Refined_State explicitly, this 9374 is now done by the analysis. 9375 (Check_Dependence_List_Syntax): Removed. 9376 (Check_Global_List_Syntax): Removed. 9377 (Check_Initialization_List_Syntax): Removed. 9378 (Check_Item_Syntax): Removed. 9379 (Check_Missing_Part_Of): Do not consider items from an instance. 9380 (Check_Refinement_List_Syntax): Removed. 9381 (Check_State_Declaration_Syntax): Removed. 9382 (Collect_Global_List): Do not raise Program_Error when the input is 9383 malformed. 9384 (Process_Global_List): Do not raise Program_Error when the input 9385 is malformed. 9386 * sem_ch13.adb: Minor reformatting. 9387 93882014-06-13 Ed Schonberg <schonberg@adacore.com> 9389 9390 * sem_ch3.adb (Find_Type_Name): Diagnose a private type completion 9391 that is an interface definition with an interface list. 9392 (Process_Full_View): Move error message on missmatched interfaces 9393 between views to the declaration of full view, for clarity. 9394 * sem_ch9.adb (Check_Interfaces): Move error message to full view, 9395 for clarity. 9396 93972014-06-13 Robert Dewar <dewar@adacore.com> 9398 9399 * exp_attr.adb (Expand_N_Attribute_Reference, case Pred/Succ): Change 9400 reason to Overflow. 9401 94022014-06-13 Robert Dewar <dewar@adacore.com> 9403 9404 * makeutl.adb: Minor reformatting. 9405 94062014-06-13 Gail Schenker <schenker@adacore.com> 9407 9408 * debug.adb, sem_eval.adb (Why_Not_Static): Remove temporary code and 9409 associated flag (d.z), no longer needed. 9410 94112014-06-13 Ed Schonberg <schonberg@adacore.com> 9412 9413 * sem_ch13.adb (Analyze_Aspect_Specifications): For Import and 9414 Export aspects, do not check whether a corresponding Convention 9415 aspect has been specified. Convention is optional in Ada2012, 9416 and defaults to Convention_Ada. 9417 94182014-06-13 Eric Botcazou <ebotcazou@adacore.com> 9419 9420 * checks.adb (Apply_Address_Clause_Check): Only issue the new 9421 warning if the propagation warning is issued. 9422 94232014-06-13 Thomas Quinot <quinot@adacore.com> 9424 9425 * exp_ch4.adb: Minor reformatting. 9426 94272014-06-13 Robert Dewar <dewar@adacore.com> 9428 9429 * exp_attr.adb (Expand_N_Attribute_Reference, case Pred): 9430 Handle float range check case (Expand_N_Attribute_Reference, 9431 case Succ): Handle float range check case. 9432 * sem_attr.adb (Analyze_Attribute, case Pred/Succ): Handle float 9433 range check case. 9434 94352014-06-13 Vincent Celier <celier@adacore.com> 9436 9437 * makeutl.ads (Compute_Builder_Switches): Change name of 9438 parameter Root_Environment to Env. 9439 * prj-conf.adb (Check_Switches): Call Locate_Runtime with the 9440 Env parameter of procedure Get_Or_Create_Configuration_File. 9441 (Locate_Runtime): Call Find_Rts_In_Path with the Project_Path 9442 of new parameter Env. 9443 * prj-conf.ads (Locate_Runtime): New parameter Env of type 9444 Prj.Tree.Environment. 9445 94462014-06-13 Robert Dewar <dewar@adacore.com> 9447 9448 * gnat_rm.texi: Minor comment clarification for Check_Float_Overflow. 9449 94502014-06-13 Robert Dewar <dewar@adacore.com> 9451 9452 * exp_attr.adb, exp_ch9.adb, lib-writ.adb, g-comlin.adb: Minor 9453 reformatting. 9454 * sem_attr.adb: Minor code reformatting and simplification. 9455 * checks.adb: Fix minor typo. 9456 94572014-06-13 Emmanuel Briot <briot@adacore.com> 9458 9459 * g-comlin.adb (Get_Argument): fix expansion 9460 of command line arguments (e.g. "*.adb") when using a custom 9461 parser. The parser was not passed to the recursive call, and 9462 thus we were trying to do the expansion on the default command 9463 line parser. 9464 94652014-06-13 Thomas Quinot <quinot@adacore.com> 9466 9467 * exp_ch9.adb: Minor reformatting. 9468 94692014-06-13 Ed Schonberg <schonberg@adacore.com> 9470 9471 * exp_attr.adb (Expand_N_Attribute_Reference, case 'Old): 9472 To determine whether the attribute should be expanded, examine 9473 whether the enclosing postcondition pragma is to be checked, 9474 rather than using the internal flag Assertions_Enabled. 9475 94762014-06-13 Ben Brosgol <brosgol@adacore.com> 9477 9478 * gnat_rm.texi: Minor fixes. 9479 * gnat_ugn.texi: Added a missing "@itemize". 9480 94812014-06-13 Robert Dewar <dewar@adacore.com> 9482 9483 * debug.adb: Remove -gnatd.1 flag documentation. 9484 * layout.adb (Layout_Type): Remove special handling of size 9485 for anonymous access type. 9486 * sem_ch3.adb (Replace_Type): Remove special handling of size 9487 for anonymous access type. 9488 94892014-06-13 Robert Dewar <dewar@adacore.com> 9490 9491 * debug.adb: Document debug flag -gnatd.1. 9492 * layout.adb (Layout_Type): Size change for anonymous access 9493 types under -gnatd.1. 9494 * sem_ch3.adb (Replace_Type): Size change for anonymous access 9495 types under -gnatd.1. 9496 94972014-06-13 Robert Dewar <dewar@adacore.com> 9498 9499 * layout.adb (Layout_Type): Anonymous access types designating 9500 unconstrained arrays are always thin pointers. 9501 * sem_ch3.adb (Replace_Type): Anonymous access types designating 9502 unconstrained arrays are always thin pointers. 9503 95042014-06-13 Ed Schonberg <schonberg@adacore.com> 9505 9506 * sem_attr.adb (Analyze_Attribute): Use Check_Parameterless_Call 9507 to resolve the prefix of an attribute that is an entity name 9508 and may be a parameterless call. Minor code reorganization. 9509 95102014-06-13 Robert Dewar <dewar@adacore.com> 9511 9512 * lib.ads, lib.adb, lib-writ.adb, lib-load.adb (Is_Compiler_Unit): 9513 Removed. 9514 * opt.ads (Compiler_Unit): New flag. 9515 * par-ch5.adb (Test_Statement_Required): Call Check_Compiler_Unit 9516 for null statement sequence (not allowed in compiler unit). 9517 * par-prag.adb (Prag): Handle Compiler_Unit[_Warning] during 9518 parsing. 9519 * restrict.ads, restrict.adb (Check_Compiler_Unit): New version and new 9520 calling sequence. 9521 * sem_ch11.adb, sem_ch3.adb, sem_ch4.adb: New calling sequence for 9522 Check_Compiler_Unit. 9523 * sem_ch6.adb (Analyze_Extended_Return_Statement): Call 9524 Check_Compiler_Unit (this construct is not allowed in compiler 9525 units). 9526 * sem_prag.adb (Analyze_Pragma, case Compiler_Unit[_Warning]): 9527 Set Opt.Compiler_Unit. 9528 95292014-06-13 Geert Bosch <bosch@adacore.com> 9530 9531 * gnat_rm.texi, s-tasinf-solaris.ads, sem_prag.adb, gnat_ugn.texi, 9532 s-tasinf-mingw.ads, s-tasinf.ads, s-tasinf-linux.ads, 9533 s-tasinf-vxworks.ads: Make Task_Info pragma and package obsolescent. 9534 95352014-06-13 Robert Dewar <dewar@adacore.com> 9536 9537 * s-tasini.adb, s-tarest.adb, s-taprob.adb: Minor reformatting. 9538 95392014-06-13 Hristian Kirtchev <kirtchev@adacore.com> 9540 9541 * freeze.adb (Freeze_Entity): Remove the check concerning volatile 9542 types in SPARK as it is poorly placed and poorly formulated. The 9543 check was flagging ALL volatile entities as illegal in SPARK. 9544 * sem_prag.adb (Process_Atomic_Shared_Volatile): Flag volatile 9545 types as illegal in SPARK. 9546 95472014-06-13 Robert Dewar <dewar@adacore.com> 9548 9549 * sem_cat.adb: Minor reformatting. 9550 95512014-06-13 Yannick Moy <moy@adacore.com> 9552 9553 * sem_prag.adb (Analyze_Pragma/Post_Class): Fix typo. 9554 95552014-06-13 Arnaud Charlet <charlet@adacore.com> 9556 9557 * gnat_rm.texi: Add detail on SPARK_05 restriction. 9558 95592014-06-13 Bob Duff <duff@adacore.com> 9560 9561 * s-solita.adb (Get_Sec_Stack_Addr, Init_Tasking_Soft_Links): 9562 Add assertions requiring the secondary stack to be initialized. 9563 * s-solita.ads (Init_Tasking_Soft_Links): Comment. 9564 * s-taprob.adb, s-tarest.adb, s-tasini.adb (elab code): Make sure the 9565 secondary stack is initialized before calling Init_Tasking_Soft_Links, 9566 by adding pragmas Elaborate_Body. 9567 95682014-06-13 Thomas Quinot <quinot@adacore.com> 9569 9570 * sem_ch13.adb (Analyze_Stream_TSS_Definition): Remove temporary 9571 kludge disabling new legality check. 9572 95732014-06-13 Hristian Kirtchev <kirtchev@adacore.com> 9574 9575 * freeze.adb (Freeze_Record_Type): Remove checks related to SPARK 9576 volatile types. 9577 (Freeze_Type): Volatile types are now illegal in SPARK. 9578 95792014-06-13 Robert Dewar <dewar@adacore.com> 9580 9581 * aspects.ads, aspects.adb: Add aspect Thread_Local_Storage. 9582 * gnat_rm.texi: Document aspect Thread_Local_Storage. 9583 95842014-06-13 Ed Schonberg <schonberg@adacore.com> 9585 9586 * sem_cat.adb (Validate_Static_Object_Name): A constant whose 9587 value is a temporary that renames an aggregate is legal in a 9588 preelaborated unit. Illegalities, if any will be detected in 9589 the aggregate components. 9590 95912014-06-13 Ed Schonberg <schonberg@adacore.com> 9592 9593 * einfo.ads: Minor reformatting an comment expansion. 9594 95952014-06-13 Robert Dewar <dewar@adacore.com> 9596 9597 * back_end.ads, back_end.adb: Make_Id, Make_SC, Set_RND are moved to 9598 Tbuild. 9599 * tbuild.ads, tbuild.adb: Make_Id, Make_SC, Set_RND are moved here from 9600 Back_End. 9601 * gnat1drv.adb: Make_Id, Make_SC, Set_RND are moved to Tbuild 9602 * sem_warn.adb: Minor reformatting. 9603 96042014-06-13 Doug Rupp <rupp@adacore.com> 9605 9606 * adaint.c (__gnat_open_new_temp) [VMS]: Open binary 9607 files with rfm=udf. 9608 96092014-06-13 Yannick Moy <moy@adacore.com> 9610 9611 * sem_warn.adb (Check_Unset_References): Take 9612 case of Refined_Post into account in Within_Postcondition check. 9613 96142014-06-13 Hristian Kirtchev <kirtchev@adacore.com> 9615 9616 * freeze.adb (Freeze_Record_Type): Volatile types are not allowed in 9617 SPARK. 9618 96192014-06-13 Yannick Moy <moy@adacore.com> 9620 9621 * sem_ch13.adb (Analyze_Aspect_Specifications/Aspect_Import, 9622 Aspect_Export): Consider that variables may be set outside the program. 9623 96242014-06-13 Robert Dewar <dewar@adacore.com> 9625 9626 * back_end.adb (Make_Id): New function. 9627 (Make_SC): New function. 9628 (Set_RND): New procedure. 9629 * back_end.ads (Make_Id): New function. 9630 (Make_SC): New function. 9631 (Set_RND): New procedure. 9632 * einfo.ads: Minor comment updates. 9633 * frontend.adb: Move Atree.Initialize call to Gnat1drv. 9634 * gnat1drv.adb (Gnat1drv): New calling sequence for 9635 Get_Target_Parameters. 9636 (Gnat1drv): Move Atree.Initialize here from Frontend. 9637 * targparm.adb (Get_Target_Parameters): New calling 9638 sequence (Get_Target_Parameters): Handle pragma Restriction 9639 (No_Dependence,..) 9640 * targparm.ads (Get_Target_Parameters): New calling sequence. 9641 96422014-06-13 Gary Dismukes <dismukes@adacore.com> 9643 9644 * sem_prag.adb (Process_Import_Or_Interface): Exit the homonym 9645 loop if the pragma does not come from source, so that an implicit 9646 pragma Import only applies to the first declaration, avoiding 9647 possible conflicts with earlier explicit and implicit declarations 9648 due to multiple Provide_Shift_Operators pragmas. 9649 (Set_Imported): Remove previous fix that bypassed pragma duplication 9650 error. 9651 * gnat_rm.texi: Change 'equivalent' to 'similar' in description 9652 of Provide_Shift_Operators. 9653 96542014-06-12 Jan Hubicka <hubicka@ucw.cz> 9655 9656 * gcc-interface/utils.c (process_attributes) <ATTR_LINK_SECTION>: Pass 9657 string pointer directly to set_decl_section_name. 9658 96592014-06-11 Robert Dewar <dewar@adacore.com> 9660 9661 * sem_ch13.adb: Minor reformatting. 9662 96632014-06-11 Hristian Kirtchev <kirtchev@adacore.com> 9664 9665 * sem_prag.adb (Check_Clause_Syntax): Add new 9666 local variable Outputs. Account for the case where multiple 9667 output items appear as an aggregate. 9668 96692014-06-11 Robert Dewar <dewar@adacore.com> 9670 9671 * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning 9672 with ?j? not ??. 9673 96742014-06-11 Ed Schonberg <schonberg@adacore.com> 9675 9676 * einfo.ads: Minor reformatting. 9677 96782014-06-11 Hristian Kirtchev <kirtchev@adacore.com> 9679 9680 * a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add 9681 new variable First_Node. Update the position after all insertions have 9682 taken place to First_Node. 9683 96842014-06-11 Robert Dewar <dewar@adacore.com> 9685 9686 * debug.adb: Remove debug flag -gnatd.1, no longer needed. 9687 * layout.adb (Layout_Type): Remove test of -gnatd.1. 9688 96892014-06-11 Robert Dewar <dewar@adacore.com> 9690 9691 * sem_ch13.adb: Minor reformatting. 9692 96932014-06-11 Hristian Kirtchev <kirtchev@adacore.com> 9694 9695 * sem_prag.adb (Check_Clause_Syntax): Add new 9696 local variable Outputs. Account for the case where multiple 9697 output items appear as an aggregate. 9698 96992014-06-11 Robert Dewar <dewar@adacore.com> 9700 9701 * sem_warn.adb (Output_Obsolescent_Entity_Warnings): Tag warning 9702 with ?j? not ??. 9703 97042014-06-11 Ed Schonberg <schonberg@adacore.com> 9705 9706 * einfo.ads: Minor reformatting. 9707 97082014-06-11 Hristian Kirtchev <kirtchev@adacore.com> 9709 9710 * a-cbdlli.adb, a-cdlili.adb, a-cidlli.adb, a-crdlli.adb (Insert): Add 9711 new variable First_Node. Update the position after all insertions have 9712 taken place to First_Node. 9713 97142014-06-11 Robert Dewar <dewar@adacore.com> 9715 9716 * debug.adb: Remove debug flag -gnatd.1, no longer needed. 9717 * layout.adb (Layout_Type): Remove test of -gnatd.1. 9718 97192014-06-11 Thomas Quinot <quinot@adacore.com> 9720 9721 * freeze.ads: Minor reformatting. 9722 * checks.adb (Determine_Range): Do not attempt to determine 9723 the range of a deferred constant whose full view has not been 9724 seen yet. 9725 * sem_res.adb (Resolve): Remove undesirable guard against 9726 resolving expressions from expression functions. 9727 97282014-06-11 Robert Dewar <dewar@adacore.com> 9729 9730 * debug.adb (Debug_Flag_Dot_1): Set to enable fix for anonymous 9731 access types. 9732 * layout.adb (Layout_Type): Make anonymous access types for 9733 subprogram formal types and return types always thin. For now 9734 only enabled if -gnatd.1 set. 9735 97362014-06-11 Ed Schonberg <schonberg@adacore.com> 9737 9738 * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality 9739 rule for stream attributes of interface types (RM 13.13.2 (38/3)): 9740 subprogram must be a null procedure. 9741 97422014-06-11 Hristian Kirtchev <kirtchev@adacore.com> 9743 9744 * sem_prag.adb (Analyze_Input_Item): Allow formal 9745 parameters to appear as input_items in an initialization_list 9746 of pragma Initializes. Encapsulation now applies to states and 9747 variables only (as it should). Add RM references to key errors. 9748 * sem_prag.adb (Set_Imported): Suppress errors 9749 about preceding Imports when the pragma does not come from source, 9750 which can happen through use of pragma Provide_Shift_Operators. 9751 97522014-06-11 Thomas Quinot <quinot@adacore.com> 9753 9754 * sem_ch3.adb: Minor reformatting. 9755 * einfo.ads (Full_View): Minor comment update. 9756 97572014-06-11 Robert Dewar <dewar@adacore.com> 9758 9759 * einfo.adb (Is_Independent): New flag. 9760 * einfo.ads (Is_Independent): New flag. 9761 (Has_Independent_Components): Clean up and fix comments. 9762 * sem_prag.adb (Fix_Error): Deal with changing argument 9763 [of] to entity [for]. 9764 (Analyze_Pragma, case Independent): Set Is_Independent flag 9765 (Analyze_Pragma, case Independent_Components): Set Is_Independent flag 9766 in all components of specified record. 9767 97682014-06-11 Thomas Quinot <quinot@adacore.com> 9769 9770 * sem_ch12.adb (Analyze_Formal_Decimal_Fixed_Point_Type): 9771 Set proper Etype on bounds of dummy type created for analysis 9772 of the generic. 9773 97742014-06-11 Robert Dewar <dewar@adacore.com> 9775 9776 * debug.adb: Minor comment fix (add missing section of dot 9777 numeric flags). 9778 97792014-06-11 Robert Dewar <dewar@adacore.com> 9780 9781 * gnat_rm.texi, switch-c.adb, sem_prag.adb, a-tgdico.ads, par-prag.adb, 9782 opt.ads, a-finali.ads, snames.ads-tmpl: Remove all traces of 9783 pragma/aspects Pure_05 Pure_12 Preelaborate_05. 9784 * errout.adb (Output_Messages): Avoid duplicate output for 9785 library level instance. 9786 * sem_elab.adb (Is_Call_Of_Generic_Formal): Moved to outer level 9787 (Check_Elab_Call): Add call to Is_Call_Of_Generic_Formal 9788 * exp_ch4.adb (Expand_N_Op_Expon): New interface for Exp_Modular. 9789 * s-expmod.ads, s-expmod.adb (Exp_Modular): Change interface to 9790 accomodate largest modulus value. 9791 * gnat_ugn.texi: Minor updates. 9792 97932014-06-11 Ed Schonberg <schonberg@adacore.com> 9794 9795 * sem_ch12.adb (Instantiate_Package_Body): Do not attempt to 9796 load body of generic package or its parent, if body is optional 9797 and the unit does not require a body. 9798 97992014-06-11 Robert Dewar <dewar@adacore.com> 9800 9801 * gnat_rm.texi: Document System.Unsigned_Types. 9802 * impunit.adb: System.Unsigned_Types (s-unstyp.ads) is user accessible. 9803 * s-unstyp.ads: Update comments (this is now user available unit). 9804 98052014-06-11 Robert Dewar <dewar@adacore.com> 9806 9807 * make.adb, sem_res.adb: Minor reformatting. 9808 98092014-06-11 Thomas Quinot <quinot@adacore.com> 9810 9811 * a-astaco.ads, a-tags.ads, s-excdeb.ads, a-tgdico.ads, a-stmaco.ads, 9812 a-except-2005.ads, s-except.ads, a-taside.ads, a-dynpri.ads, 9813 a-chahan.ads, a-sytaco.ads, s-stalib.ads, a-strmap.ads: Change pragmas 9814 Preelaborate_05 to just Preelaborate in runtime units, and similarly 9815 change Pure_05 to just Pure. 9816 98172014-06-11 Ed Schonberg <schonberg@adacore.com> 9818 9819 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not attempt 9820 analysis if error has been posted on subprogram body. 9821 98222014-06-11 Ed Schonberg <schonberg@adacore.com> 9823 9824 * sem_ch13.adb (Analyze_Stream_TSS_Definition): Apply legality 9825 rule given in RM 13.1 (8/1) for operational attributes to stream 9826 attributes: the attribute must apply to a first subtype. Fixes 9827 missing errors in ACATS test bdd2004. 9828 98292014-06-11 Robert Dewar <dewar@adacore.com> 9830 9831 * exp_ch3.adb (Build_Record_Init_Proc): Don't build for variant 9832 record type if restriction No_Implicit_Conditionals is active. 9833 (Expand_N_Object_Declaration): Don't allow default initialization 9834 for variant record type if restriction No_Implicit_Condition is active. 9835 (Build_Variant_Record_Equality): Don't build for variant 9836 record type if restriction No_Implicit_Conditionals is active. 9837 * exp_ch4.adb (Expand_N_Op_Eq): Error if variant records with 9838 No_Implicit_Conditionals. 9839 * sem_aux.ads, sem_aux.adb (Has_Variant_Part): New function. 9840 98412014-06-11 Ramon Fernandez <fernandez@adacore.com> 9842 9843 * i-cstrin.ads: Update comments. 9844 98452014-06-11 Ed Schonberg <schonberg@adacore.com> 9846 9847 * sem_res.adb (Resolve_Selected_Component): Handle properly a 9848 selected component whose prefix is overloaded, when none of the 9849 interpretations matches the expected type. 9850 98512014-06-11 Bob Duff <duff@adacore.com> 9852 9853 * make.adb (Wait_For_Available_Slot): Give a more 9854 informative error message; if the ALI file is not found, print 9855 the full path of what it's looking for. 9856 98572014-06-11 Sergey Rybin <rybin@adacore.com frybin> 9858 9859 * gnat_ugn.texi, vms_data.ads: add description of gnatstub -W<par> 9860 option to specify the result file encoding. 9861 98622014-06-11 Robert Dewar <dewar@adacore.com> 9863 9864 * errout.ads, sem_ch12.adb: Minor reformatting. 9865 * debug.adb, erroutc.adb: Remove -gnatd.q debug switch. 9866 * lib-xref.adb: Minor reformatting. 9867 * restrict.adb: Minor code reorganization (put routines in 9868 alpha order). 9869 98702014-06-11 Yannick Moy <moy@adacore.com> 9871 9872 * einfo.ads: Minor typo in comment 9873 98742014-06-11 Ed Schonberg <schonberg@adacore.com> 9875 9876 * sinfo.ads, sinfo.adb: New attribute Uninitialized_Variable, for 9877 formal private types and private type extensions, to indicate 9878 variable in a generic unit whose uninitialized use suggest that 9879 actual type should be fully initialized. 9880 Needs_Initialized_Actual: removed, functionaity replaced by 9881 the above. 9882 * lib-xref.adb (Generate_Reference): Generate a reference for 9883 variables of a formal type when the unit is not the main unit, 9884 to enable appropriate warnings in an instance. 9885 * sem_ch12.adb (Check_Ininialized_Type): Improve warning on use 9886 of variable in a generic unit that suggests that actual type 9887 should be full initialized. 9888 * sem_warn.adb; (May_Need_Initialized_Actual): Make into procedure 9889 and do not emot warning, which now only appears in an instance. 9890 98912014-06-11 Eric Botcazou <ebotcazou@adacore.com> 9892 9893 * gnat_ugn.texi: Fix minor typo. 9894 98952014-06-11 Hristian Kirtchev <kirtchev@adacore.com> 9896 9897 * sem_ch3.adb Add with and use clause for Sem_Ch10. 9898 (Analyze_Declarations): Code reformatting. Analyze the contract 9899 of a subprogram body stub at the end of the declarative region. 9900 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Spec_Id is 9901 now a variable. Do not process the body if its contract is not 9902 available. Account for subprogram body stubs when extracting 9903 the corresponding spec. 9904 * sem_ch6.ads (Analyze_Subprogram_Contract): Update the comment 9905 on usage. 9906 * sem_ch10.ads, sem_ch10.adb (Analyze_Subprogram_Body_Stub_Contract): 9907 New routine. 9908 * sem_prag.adb (Analyze_Depends_In_Decl_Part): 9909 Account for subprogram body stubs when extracting the 9910 corresponding spec. 9911 (Analyze_Global_In_Decl_List): 9912 Account for subprogram body stubs when extracting the 9913 corresponding spec. 9914 (Analyze_Refined_Depends_In_Decl_Part): 9915 Use Find_Related_Subprogram_Or_Body to retrieve the declaration 9916 of the related body. Spec_Is now a variable. Account for 9917 subprogram body stubs when extracting the corresponding spec. 9918 (Analyze_Refined_Global_In_Decl_Part): Use 9919 Find_Related_Subprogram_Or_Body to retrieve the declaration 9920 of the related body. Spec_Is now a variable. Account for 9921 subprogram body stubs when extracting the corresponding spec. 9922 (Collect_Subprogram_Inputs_Output): Account for subprogram body 9923 stubs when extracting the corresponding spec. 9924 99252014-06-11 Vincent Celier <celier@adacore.com> 9926 9927 * gnatcmd.adb (Process_Link): Do not invoke gnatlink with 9928 -lgnarl or -lgnat. 9929 99302014-06-11 Robert Dewar <dewar@adacore.com> 9931 9932 * debug.adb: Add debug flag -gnatd.q. 9933 * erroutc.adb (Prescan_Message): Bomb if untagged warning with 9934 -gnatd.q set. 9935 * styleg.adb (Check_Xtra_Parens): Message should be a style 9936 message. 9937 * sem_aggr.adb, sem_ch3.adb, exp_ch9.adb, checks.adb, sem_prag.adb, 9938 par-endh.adb, eval_fat.adb, freeze.adb, sem_util.adb, sem_attr.adb, 9939 sem_elab.adb, sem_ch6.adb, sem_warn.adb, sem_cat.adb, 9940 sem_ch13.adb, lib-xref.adb: Add remaining warning tags. 9941 99422014-06-11 Ben Brosgol <brosgol@adacore.com> 9943 9944 * gnat_rm.texi: Revised chapter on Implementation Defined 9945 Characteristics. 9946 99472014-06-11 Geert Bosch <bosch@adacore.com> 9948 9949 * s-exctab.adb: avoid race conditions in exception registration. 9950 99512014-06-11 Robert Dewar <dewar@adacore.com> 9952 9953 * errout.adb (Warn_Insertion): New function. 9954 (Error_Msg): Use Warn_Insertion and Prescan_Message. 9955 (Error_Msg_Internal): Set Info field of error object. 9956 (Error_Msg_NEL): Use Prescan_Message. 9957 (Set_Msg_Text): Don't store info: at start of message. 9958 (Skip_Msg_Insertion_Warning): New name for Set_Msg_Insertion_Warning. 9959 (Skip_Msg_Insertion_Warning): Now just skips warning insertion. 9960 * errout.ads: Document new ?$? and >$> insertion sequences 9961 Document use of "(style)" and "info: " 9962 * erroutc.adb (dmsg): Print several missing fields 9963 (Get_Warning_Tag): Handle -gnatel case (?$?) (Output_Msg_Text): 9964 Deal with new tagging of info messages 9965 * erroutc.ads: Is_Info_Msg: New global (Error_Msg_Object): 9966 Add field Info (Prescan_Message): New procedure, this procedure 9967 replaces the old Test_Style_Warning_Serious_Unconditional_Msg 9968 * errutil.adb, exp_util.adb, par-ch7.adb, sem_ch13.adb, sem_ch7.adb, 9969 sem_elab.adb: Follow new rules for info message (info belongs 9970 only at the start of a message, and only in the first message, 9971 not in any of the continuations). 9972 * gnat_ugn.texi: Document full set of warning tags. 9973 99742014-06-11 Gary Dismukes <dismukes@adacore.com> 9975 9976 * sem_util.adb: Minor typo fix. 9977 99782014-06-11 Ed Schonberg <schonberg@adacore.com> 9979 9980 * sem_warn.adb (Check_References): Do not emit spurious warnings 9981 on uninitialzed variable of a formal private type if variable 9982 is not read. 9983 99842014-06-09 Jan Hubicka <hubicka@ucw.cz> 9985 9986 * gcc-interface/utils.c (process_attributes) <ATTR_LINK_SECTION>: Use 9987 set_decl_section_name accessor. 9988 99892014-05-22 Thomas Schwinge <thomas@codesourcery.com> 9990 9991 * gcc-interface/utils.c (DEF_FUNCTION_TYPE_0, DEF_FUNCTION_TYPE_6) 9992 (DEF_FUNCTION_TYPE_7, DEF_FUNCTION_TYPE_8) 9993 (DEF_FUNCTION_TYPE_VAR_5): Cosmetic fixes. 9994 99952014-05-21 Robert Dewar <dewar@adacore.com> 9996 9997 * layout.adb: Minor reformatting. 9998 * sem_prag.adb (Analyze_Pragma, case Inspection_Point): Call 9999 dummy procedure ip. 10000 100012014-05-21 Robert Dewar <dewar@adacore.com> 10002 10003 * restrict.ads (Implementation_Restriction): Add entry for 10004 No_Fixed_IO. 10005 * rtsfind.ads: Add entries for Fixed_IO and Decimal_IO in 10006 Ada.[Wide_[Wide_]Text_IO. 10007 * s-rident.ads (Restriction_Id): Add entry for No_Fixed_IO. 10008 * sem_attr.adb (Analyze_Attribute): Disallow fixed point types 10009 for Img, Image, Value, Wide_Image, Wide_Value, Wide_Wide_Image, 10010 Wide_Wide_Value if restriction No_Fixed_IO is set. 10011 * sem_util.adb (Set_Entity_Checks): Check restriction No_Fixed_IO. 10012 100132014-05-21 Robert Dewar <dewar@adacore.com> 10014 10015 * gnatcmd.adb: Minor error msg changes (no upper case letter 10016 at start). 10017 * sem_ch12.adb, sem_ch5.adb, sem_res.adb, sem_util.adb: Minor 10018 reformatting. 10019 100202014-05-21 Robert Dewar <dewar@adacore.com> 10021 10022 * debug.adb: Debug flag -gnatd.G inhibits static elab tracing 10023 via generic formals. 10024 * sem_elab.adb (Is_Call_Of_Generic_Formal): Return False if 10025 -gnatd.G is set. 10026 100272014-05-21 Thomas Quinot <quinot@adacore.com> 10028 10029 * exp_pakd.adb (Revert_Storage_Order): Renamed from Byte_Swap to 10030 more accurately describe that this subprogram needs to come into 10031 play also in cases where no byte swapping is involved, because 10032 it also takes care of some required shifts (left-justification 10033 of values). 10034 100352014-05-21 Thomas Quinot <quinot@adacore.com> 10036 10037 * freeze.adb (Check_Component_Storage_Order): Indicate whether 10038 a Scalar_Storage_Order attribute definition is present for the 10039 component's type. 10040 (Freeze_Record_Type): Suppress junk warnings 10041 about purportedly junk Bit_Order / Scalar_Storage_Order attribute 10042 definitions. 10043 100442014-05-21 Robert Dewar <dewar@adacore.com> 10045 10046 * sem_ch8.adb (Analyze_Subprogram_Renaming): Put back call 10047 to Kill_Elaboration_Checks. 10048 100492014-05-21 Gary Dismukes <dismukes@adacore.com> 10050 10051 * layout.adb (Assoc_Add): Suppress the optimization of the (E 10052 - C1) + C2 case, when the expression type is unsigned and C1 < 10053 C2, to avoid creating a negative literal when folding. 10054 100552014-05-21 Hristian Kirtchev <kirtchev@adacore.com> 10056 10057 * freeze.adb (Freeze_Record_Type): Update the use of 10058 Is_SPARK_Volatile. 10059 * sem_ch3.adb (Analyze_Object_Contract): Update the use of 10060 Is_SPARK_Volatile. 10061 (Process_Discriminants): Update the use of Is_SPARK_Volatile. 10062 * sem_ch5.adb (Analyze_Iterator_Specification): Update the use 10063 of Is_SPARK_Volatile. 10064 (Analyze_Loop_Parameter_Specification): 10065 Update the use of Is_SPARK_Volatile. 10066 * sem_ch6.adb (Process_Formals): Catch an illegal use of an IN 10067 formal parameter when its type is volatile. 10068 * sem_prag.adb (Analyze_Global_Item): Update the use of 10069 Is_SPARK_Volatile. 10070 * sem_res.adb (Resolve_Entity_Name): Correct the guard which 10071 determines whether an entity is a volatile source SPARK object. 10072 * sem_util.adb (Has_Enabled_Property): Accout for external 10073 properties being set on objects other than abstract states 10074 and variables. An example would be a formal parameter. 10075 (Is_SPARK_Volatile): New routine. 10076 (Is_SPARK_Volatile_Object): 10077 Remove the entity-specific tests. Call routine Is_SPARK_Volatile 10078 when checking entities and/or types. 10079 * sem_util.ads (Is_SPARK_Volatile): New routine. 10080 100812014-05-21 Robert Dewar <dewar@adacore.com> 10082 10083 * sem_warn.adb: Minor fix to warning messages (use ?? instead 10084 of ?). 10085 100862014-05-21 Vincent Celier <celier@adacore.com> 10087 10088 * gnatcmd.adb (GNATCmd): For platforms other than VMS, recognize 10089 switch --version and --help. 10090 100912014-05-21 Robert Dewar <dewar@adacore.com> 10092 10093 * sem_elab.adb (Is_Call_Of_Generic_Formal): New function. 10094 100952014-05-21 Ed Schonberg <schonberg@adacore.com> 10096 10097 * sem_ch5.adb (Analyze_Iterator_Specification): Set type of 10098 iterator variable when the domain of iteration is a formal 10099 container and this is an element iterator. 10100 101012014-05-21 Bob Duff <duff@adacore.com> 10102 10103 * sem_ch12.adb: Minor reformatting. 10104 101052014-05-21 Robert Dewar <dewar@adacore.com> 10106 10107 * sinfo.ads, sem_ch12.adb, sem_warn.adb: Minor reformatting. 10108 101092014-05-21 Robert Dewar <dewar@adacore.com> 10110 10111 * sem_elab.adb: Minor reformatting. 10112 * s-taprop.ads: Minor comment fix. 10113 * sem_ch8.adb (Analyze_Subprogram_Renaming): Remove call to 10114 Kill_Elaboration_Checks. 10115 * errout.adb, erroutc.adb: Minor reformatting. 10116 101172014-05-21 Thomas Quinot <quinot@adacore.com> 10118 10119 * exp_pakd.adb (Byte_Swap): Handle the case of a sub-byte 10120 component. No byte swapping occurs, but this procedure also takes 10121 care of appropriately justifying the argument. 10122 101232014-05-21 Hristian Kirtchev <kirtchev@adacore.com> 10124 10125 * sem_ch6.adb: sem_ch6.adb (Analyze_Aspects_On_Body_Or_Stub): 10126 New routine. 10127 (Analyze_Subprogram_Body_Helper): Move the 10128 analysis of aspect specifications and the processing of the 10129 subprogram body contract after inlining has taken place. 10130 (Diagnose_Misplaced_Aspect_Specifications): Removed. 10131 101322014-05-21 Javier Miranda <miranda@adacore.com> 10133 10134 * sem_ch3.adb (Build_Derived_Record_Type): Revert previous change. 10135 101362014-05-21 Robert Dewar <dewar@adacore.com> 10137 10138 * sem_eval.ads, sem_eval.adb (Why_Not_Static): Messages are not 10139 continuations any more. 10140 101412014-05-21 Ed Schonberg <schonberg@adacore.com> 10142 10143 * sinfo.ads, sinfo.adb: New flag Needs_Initialized_Actual, 10144 present in formal_Private_Definitions and on private extension 10145 declarations of a formal derived type. Set when the use of the 10146 formal type in a generic suggests that the actual should be a 10147 fully initialized type. 10148 * sem_warn.adb (May_Need_Initialized_Actual): new subprogram 10149 to indicate that an entity of a generic type has default 10150 initialization, and that the corresponing actual type in any 10151 subsequent instantiation should be fully initialized. 10152 * sem_ch12.adb (Check_Initialized_Type): new subprogram, 10153 to emit a warning if the actual for a generic type on which 10154 Needs_Initialized_Actual is set is not a fully initialized type. 10155 101562014-05-21 Robert Dewar <dewar@adacore.com> 10157 10158 * sem_elab.adb, prj-dect.adb: Minor reformatting. 10159 101602014-05-21 Robert Dewar <dewar@adacore.com> 10161 10162 * erroutc.ads: Minor comment addition. 10163 101642014-05-21 Robert Dewar <dewar@adacore.com> 10165 10166 * errout.ads: Add documentation for use of >*> tag. 10167 * restrict.adb: Make sure we use >*> tag for restriction warnings. 10168 101692014-05-21 Gary Dismukes <dismukes@adacore.com> 10170 10171 * debug.adb: Add case of illegal overriding_indicator for a 10172 protected subprogram body to description of -gnatd.E switch. 10173 * sem_ch6.adb (Verify_Overriding_Indicator): Issue error message 10174 for cases of giving overriding_indicators on protected subprogram 10175 bodies, but change this to a warning if -gnatd.E is enabled. No 10176 longer give a style warning about missing indicators on protected 10177 subprogram bodies. 10178 101792014-05-21 Robert Dewar <dewar@adacore.com> 10180 10181 * prj.ads, sem_ch12.adb, prj.adb, exp_pakd.adb, 10182 sem_elab.ads: Minor reformatting. 10183 * erroutc.adb, erroutc.ads (Warning_Specifically_Suppressed): Make Tag 10184 parameter optional. 10185 101862014-05-21 Pascal Obry <obry@adacore.com> 10187 10188 * prj-dect.adb: Allow package Install in aggregate project. 10189 101902014-05-21 Robert Dewar <dewar@adacore.com> 10191 10192 * sem_ch13.adb (Analyze_Aspect_Specifications): 10193 Insert_Delayed_Pragma is now used for the case of Attach_Handler. 10194 * sem_prag.adb: Minor comment improvements. 10195 101962014-05-21 Ed Schonberg <schonberg@adacore.com> 10197 10198 * sem_ch12.adb (Install_Body): When checking whether freezing of 10199 instantiation must be delayed, verify that the common enclosing 10200 subprogram to generic and instance is in fact an overloadable 10201 entity. 10202 102032014-05-21 Vincent Celier <celier@adacore.com> 10204 10205 * makeutl.adb (Mains.Complete_Mains.Do_Complete): Look for all 10206 mains with the same name and fail if there is more than one. 10207 * prj.ads, prj.adb (Find_All_Sources): New function 10208 102092014-05-21 Robert Dewar <dewar@adacore.com> 10210 10211 * sem_ch13.adb: Minor reformatting. 10212 * lib-xref-spark_specific.adb, sem_util.adb: Minor reformatting. 10213 * sem_prag.adb: Minor error message improvement. 10214 102152014-05-21 Yannick Moy <moy@adacore.com> 10216 10217 * lib-xref-spark_specific.adb, lib-xref.ads, lib-xref.adb 10218 (Enclosing_Subprogram_Or_Package): Only return a library-level 10219 package. 10220 102212014-05-21 Javier Miranda <miranda@adacore.com> 10222 10223 * sem_ch3.adb (Build_Derived_Record_Type): Initialize Parent_Base 10224 to the full view of the parent type when processing a derived type 10225 which is the full view of a private type not defined in a generic 10226 unit which is derived from a private type with discriminants 10227 whose full view is a non-tagged record type. 10228 102292014-05-21 Javier Miranda <miranda@adacore.com> 10230 10231 * exp_ch4.adb (Expand_Allocator_Expression.Apply_Accessibility_Check): 10232 Complete previous patch. 10233 102342014-05-21 Thomas Quinot <quinot@adacore.com> 10235 10236 PR ada/9535 10237 * g-socket.adb (Read and Write for Datagram_Socket_Stream_Type): 10238 Provide a behaviour more consistent with underlying datagram 10239 socket: do not attempt to loop over Send_Socket/Receive_Socket 10240 iterating along the buffer. 10241 102422014-05-21 Hristian Kirtchev <kirtchev@adacore.com> 10243 10244 * freeze.adb (Freeze_Record_Type): Ensure that a discriminated 10245 or a tagged type is not labelled as volatile. Ensure that a 10246 non-volatile type has no volatile components. 10247 * sem_ch3.adb (Analyze_Object_Contract): Add local constant 10248 Obj_Typ. Code reformatting. Ensure that a discriminated or 10249 tagged object is not labelled as volatile. 10250 * sem_prag.adb (Process_Atomic_Shared_Volatile): Ensure that 10251 pragma Volatile applies to a full type declaration or an object 10252 declaration when SPARK mode is on. 10253 102542014-05-21 Sergey Rybin <rybin@adacore.com frybin> 10255 10256 * gnat_ugn.texi: For ASIS tools, reword the paragraph about 10257 providing options needed for compiling the argument source for 10258 the situation when a project file can be used as a tool parameter. 10259 102602014-05-21 Gary Dismukes <dismukes@adacore.com> 10261 10262 * gnat_rm.texi: Minor typo fix. 10263 102642014-05-21 Robert Dewar <dewar@adacore.com> 10265 10266 * stand.adb (Tree_Read): Read missing entities. 10267 (Tree_Write): Write missing entities. 10268 102692014-05-21 Ben Brosgol <brosgol@adacore.com> 10270 10271 * gnat_ugn.texi: Wordsmithing edits to Coupling Metrics Control 10272 section in gnatmetric chapter. 10273 102742014-05-21 Robert Dewar <dewar@adacore.com> 10275 10276 * exp_ch6.adb (Expand_Actuals): Spec moved here, since not used 10277 outside Exp_Ch6 (Expand_Actuals): Deal with proper insertion of 10278 post-call copy write back (see detailed comment in code). 10279 * exp_ch6.ads (Expand_Actuals): Moved to body, not used outside 10280 Exp_Ch6. 10281 * tbuild.ads: Minor reformatting. 10282 102832014-05-21 Robert Dewar <dewar@adacore.com> 10284 10285 * stand.ads: Add warning about adding new entities and 10286 Tree_Read/Tree_Write. 10287 102882014-05-21 Robert Dewar <dewar@adacore.com> 10289 10290 * sem_util.adb (Set_Entity_With_Checks): Don't complain about 10291 references to restricted entities within the units in which they 10292 are declared. 10293 102942014-05-21 Robert Dewar <dewar@adacore.com> 10295 10296 * gnat1drv.adb (Check_Bad_Body): Use Source_File_Is_Body to 10297 simplify the needed test, and also deal with failure to catch 10298 situations with non-standard names. 10299 * sinput-l.ads, sinput-l.adb (Source_File_Is_No_Body): New function 10300 (Source_File_Is_Subunit): Removed, no longer used. 10301 103022014-05-21 Javier Miranda <miranda@adacore.com> 10303 10304 * exp_ch4.adb 10305 (Expand_Allocator_Expression.Apply_Accessibility_Check): for a 10306 renaming of an access to interface object there is no need to 10307 generate extra code to reference the tag. 10308 103092014-05-21 Robert Dewar <dewar@adacore.com> 10310 10311 * errout.adb, erroutc.adb, erroutc.ads: Allow warning tag in pragma 10312 Warnings (Off, string). 10313 103142014-05-21 Robert Dewar <dewar@adacore.com> 10315 10316 * osint.adb: Fix three error messages to say invalid instead 10317 of erroneous. 10318 * par-ch4.adb, exp_aggr.adb, sem_attr.adb, sem_aux.adb, sem_ch3.adb, 10319 sem_ch5.adb, sem_ch6.adb, sem_ch7.adb, sem_dim.adb, sem_res.adb, 10320 sem_util.adb, sem_util.ads: Fix incorrect use of erroneous in comments. 10321 103222014-05-21 Ed Schonberg <schonberg@adacore.com> 10323 10324 * freeze.adb, sem_ch13.adb, sem_ch13.ads, sem_ch9.adb, 10325 sem_ch9.ads: Move discriminant manipulation routines for analysis of 10326 aspect specifications from sem_ch9 to sem_ch13, where they belong. 10327 103282014-05-21 Robert Dewar <dewar@adacore.com> 10329 10330 * gnat_ugn.texi: Clearly document -gnatw.g (GNAT warnings). 10331 Clearly document -gnatyg (GNAT style switches). 10332 * usage.adb: Add line line for -gnatw.g (GNAT warnings) More 10333 detail for line for -gnatyg (GNAT style switches) -gnatw.d/D is 10334 available for VMS after all. 10335 * warnsw.adb: Reorganize to eliminate duplicated code 10336 (Restore_Warnings): Add a couple of missing entries 10337 (Save_Warnings): Add a couple of missing entries. 10338 * warnsw.ads: Add missing entries to Warning_Record (not clear 10339 what the impact is). 10340 103412014-05-21 Robert Dewar <dewar@adacore.com> 10342 10343 * errout.adb (Set_Msg_Insertion_Warning): Handle ?*? (restriction 10344 warning) case. 10345 * errout.ads: Document ?*? (restriction warning) insertion. 10346 * erroutc.adb (Get_Warning_Tag): Deal with ?*? (restriction 10347 warning) case. 10348 * erroutc.ads: Document use of * for restriction warning tag. 10349 * restrict.adb (Restriction_Msg): Tag with ?*? instead of ??. 10350 103512014-05-21 Ed Schonberg <schonberg@adacore.com> 10352 10353 * sem_ch9.adb (Push_Scope_And_Install_Discriminants): Do not 10354 make discriminants immediately visible when analyzing an aspect 10355 of a subtype declaration. 10356 (Uninstall_Discriminants): Do not apply to the entity in a 10357 subtype declaration. 10358 103592014-05-21 Ed Schonberg <schonberg@adacore.com> 10360 10361 * sem_util.adb: Code clean up. 10362 103632014-05-21 Eric Botcazou <ebotcazou@adacore.com> 10364 10365 * gnat_ugn.texi: Document -Werror. 10366 103672014-05-21 Bob Duff <duff@adacore.com> 10368 10369 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): 10370 This was returning False if the Object is a constant view. Fix 10371 it to return True in that case, because it might be a view of 10372 a variable. 10373 (Has_Discriminant_Dependent_Constraint): Fix latent 10374 bug; this function was crashing when passed a discriminant. 10375 103762014-05-21 Robert Dewar <dewar@adacore.com> 10377 10378 * gnat_ugn.texi: Remove misplaced section that is now obsolete. 10379 * s-arit64.adb: Minor code reorganization. 10380 * sem_prag.adb: Minor comment fix (remove erroneous use of the 10381 term erroneous). 10382 103832014-05-21 Robert Dewar <dewar@adacore.com> 10384 10385 * g-table.adb, g-dyntab.adb (Reallocate): Fix possible overflow in 10386 computing new table size. 10387 103882014-05-21 Robert Dewar <dewar@adacore.com> 10389 10390 * einfo.ads: Minor reformatting. 10391 * ceinfo.adb: Deal with slight format change of einfo.ads. 10392 103932014-05-21 Ed Schonberg <schonberg@adacore.com> 10394 10395 * sem_prag.adb (Analyze_Part_Of): Further work on the proper 10396 implementation of the SPARK 2014 rule concerning private child 10397 units (LRM 7.2.6). 10398 103992014-05-21 Vincent Celier <celier@adacore.com> 10400 10401 * makeusg.adb: Add switch -d to usage. 10402 104032014-05-21 Ed Schonberg <schonberg@adacore.com> 10404 10405 * sem_util.adb (Find_Actual): If an actual that is the prefix 10406 of an enclosing prefixed call has been rewritten, use Nkind 10407 and Sloc to identify the corresponding formal, when handling 10408 deferred references. 10409 104102014-05-21 Robert Dewar <dewar@adacore.com> 10411 10412 * debug.adb: Document -gnatd.z switch. 10413 * sem_eval.adb (Why_Non_Static): Test -gnatd.z switch. 10414 104152014-05-21 Robert Dewar <dewar@adacore.com> 10416 10417 * einfo.ads (Can_Never_Be_Null): Minor comment update. 10418 * sem_prag.adb (Check_Arg_Is_Task_Dispatching_Policy): Minor 10419 error message change. 10420 * s-arit64.adb ("abs"): New function. Use expression functions 10421 for the simple conversions and arithmetic. 10422 104232014-05-18 Eric Botcazou <ebotcazou@adacore.com> 10424 10425 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Rework comment and 10426 set function_start_locus. 10427 104282014-05-18 Eric Botcazou <ebotcazou@adacore.com> 10429 10430 * utils.c (gnat_write_global_declarations): Adjust the flags put on 10431 dummy_global. 10432 104332014-05-18 Eric Botcazou <ebotcazou@adacore.com> 10434 10435 * gcc-interface/decl.c (change_qualified_type): New static function. 10436 (gnat_to_gnu_entity): Use it throughout to add qualifiers on types. 10437 <E_Array_Type>: Set TYPE_VOLATILE on the array type directly. 10438 <E_Array_Subtype>: Likewise. 10439 Do not set flags on an UNCONSTRAINED_ARRAY_TYPE directly. 10440 (gnat_to_gnu_component_type): Likewise. 10441 (gnat_to_gnu_param): Likewise. 10442 104432014-05-18 Eric Botcazou <ebotcazou@adacore.com> 10444 10445 * fe.h (Set_Present_Expr): Move around. 10446 (End_Location): New macro. 10447 * gcc-interface/trans.c (Case_Statement_to_gnu): Use End_Location. 10448 104492014-05-18 Eric Botcazou <ebotcazou@adacore.com> 10450 10451 * gcc-interface/decl.c (gnat_to_gnu_entity): Use Underlying_Type in 10452 lieu of more verbose construct. 10453 * gcc-interface/trans.c (Call_to_gnu): Likewise. 10454 (gnat_to_gnu): Likewise. Remove obsolete code. 10455 104562014-05-18 Eric Botcazou <ebotcazou@adacore.com> 10457 10458 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Do not 10459 consider that regular packed arrays can never be superflat. 10460 104612014-05-17 Trevor Saunders <tsaunders@mozilla.com> 10462 10463 * gcc-interface/ada-tree.h: Remove usage of variable_size gty 10464 annotation. 10465 * gcc-interface/decl.c (annotate_value): Adjust. 10466 * gcc-interface/trans.c (Attribute_to_gnu): Likewise. 10467 (push_range_check_info): Likewise. 10468 (Loop_Statement_to_gnu): Likewise. 10469 (Subprogram_Body_to_gnu): Likewise. 10470 (Compilation_Unit_to_gnu): Likewise. 10471 (start_stmt_group): Likewise. 10472 * gcc-interface/utils.c (init_gnat_utils): Likewise. 10473 (gnat_pushlevel): Likewise. 10474 (maybe_pad_type): Likewise. 10475 104762014-05-14 Eric Botcazou <ebotcazou@adacore.com> 10477 10478 * seh_init.c: Fix copyright year. 10479 104802014-05-14 Bernd Edlinger <bernd.edlinger@hotmail.de> 10481 10482 * seh_init.c (__gnat_map_SEH): Compile also when __CYGWIN__ and __SEH__ 10483 are defined. Move include windows.h before system.h. 10484 * s-oscons-tmplt.c (DTR_CONTROL_ENABLE, RTS_CONTROL_ENABLE): Compile 10485 also when __CYGWIN__ is defined. Include windef.h before winbase.h. 10486 104872014-05-14 Richard Sandiford <r.sandiford@uk.ibm.com> 10488 10489 * gcc-interface/decl.c (gnat_to_gnu_entity): Convert integer_one_node 10490 to the appropriate type. 10491 * gcc-interface/trans.c (gnat_to_gnu): Likewise. 10492 (pos_to_constructor): Likewise. 10493 104942014-05-13 Eric Botcazou <ebotcazou@adacore.com> 10495 10496 * gcc-interface/decl.c (annotate_value): Fix thinko in latest change. 10497 104982014-05-06 Kenneth Zadeck <zadeck@naturalbridge.com> 10499 Mike Stump <mikestump@comcast.net> 10500 Richard Sandiford <rdsandiford@googlemail.com> 10501 10502 * gcc-interface/cuintp.c (UI_From_gnu): Use wide-int interfaces. 10503 * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_SIGN. 10504 (annotate_value): Use wide-int interfaces. 10505 * gcc-interface/utils.c (get_nonnull_operand): Use tree_fits_uhwi_p. 10506 105072014-04-28 Richard Henderson <rth@redhat.com> 10508 10509 * gcc-interface/Makefile.in: Support aarch64-linux. 10510 105112014-04-28 Eric Botcazou <ebotcazou@adacore.com> 10512 10513 * exp_dbug.ads (Get_External_Name): Add 'False' default to Has_Suffix, 10514 add 'Suffix' parameter and adjust comment. 10515 (Get_External_Name_With_Suffix): Delete. 10516 * exp_dbug.adb (Get_External_Name_With_Suffix): Merge into... 10517 (Get_External_Name): ...here. Add 'False' default to Has_Suffix, add 10518 'Suffix' parameter. 10519 (Get_Encoded_Name): Remove 2nd argument in call to Get_External_Name. 10520 Call Get_External_Name instead of Get_External_Name_With_Suffix. 10521 (Get_Secondary_DT_External_Name): Likewise. 10522 * exp_cg.adb (Write_Call_Info): Likewise. 10523 * exp_disp.adb (Export_DT): Likewise. 10524 (Import_DT): Likewise. 10525 * comperr.ads (Compiler_Abort): Remove Code parameter and add From_GCC 10526 parameter with False default. 10527 * comperr.adb (Compiler_Abort): Likewise. Adjust accordingly. 10528 * types.h (Fat_Pointer): Rename into... 10529 (String_Pointer): ...this. Add comment on interfacing rules. 10530 * fe.h (Compiler_Abort): Adjust for above renaming. 10531 (Error_Msg_N): Likewise. 10532 (Error_Msg_NE): Likewise. 10533 (Get_External_Name): Likewise. Add third parameter. 10534 (Get_External_Name_With_Suffix): Delete. 10535 * gcc-interface/decl.c (STDCALL_PREFIX): Define. 10536 (create_concat_name): Adjust call to Get_External_Name, remove call to 10537 Get_External_Name_With_Suffix, use STDCALL_PREFIX, adjust for renaming. 10538 * gcc-interface/trans.c (post_error): Likewise. 10539 (post_error_ne): Likewise. 10540 * gcc-interface/misc.c (internal_error_function): Likewise. 10541 105422014-04-28 Richard Biener <rguenther@suse.de> 10543 10544 PR middle-end/60092 10545 * gcc-interface/utils.c: Define flag_isoc11. 10546 105472014-04-26 Eric Botcazou <ebotcazou@adacore.com> 10548 10549 * gnatvsn.ads (Library_Version): Bump to 4.10. 10550 105512014-04-23 Eric Botcazou <ebotcazou@adacore.com> 10552 10553 Revert 10554 2014-04-22 Richard Henderson <rth@redhat.com> 10555 10556 * gcc-interface/Makefile.in: Support aarch64-linux. 10557 10558 2014-04-22 Eric Botcazou <ebotcazou@adacore.com> 10559 10560 * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer. 10561 (Error_Msg_N): Likewise. 10562 (Error_Msg_NE): Likewise. 10563 (Get_External_Name_With_Suffix): Likewise. 10564 * types.h (Fat_Pointer): Delete. 10565 (String_Pointer): New type. 10566 (DECLARE_STRING_POINTER): New macro. 10567 * gcc-interface/decl.c (create_concat_name): Adjust. 10568 * gcc-interface/trans.c (post_error): Likewise. 10569 (post_error_ne): Likewise. 10570 * gcc-interface/misc.c (internal_error_function): Likewise. 10571 105722014-04-22 Richard Henderson <rth@redhat.com> 10573 10574 * gcc-interface/Makefile.in: Support aarch64-linux. 10575 10576 * init.c [__linux__] (HAVE_GNAT_ALTERNATE_STACK): New define. 10577 (__gnat_alternate_stack): Enable for all linux except ia64. 10578 105792014-04-22 Eric Botcazou <ebotcazou@adacore.com> 10580 10581 * fe.h (Compiler_Abort): Replace Fat_Pointer with String_Pointer. 10582 (Error_Msg_N): Likewise. 10583 (Error_Msg_NE): Likewise. 10584 (Get_External_Name_With_Suffix): Likewise. 10585 * types.h (Fat_Pointer): Delete. 10586 (String_Pointer): New type. 10587 (DECLARE_STRING_POINTER): New macro. 10588 * gcc-interface/decl.c (create_concat_name): Adjust. 10589 * gcc-interface/trans.c (post_error): Likewise. 10590 (post_error_ne): Likewise. 10591 * gcc-interface/misc.c (internal_error_function): Likewise. 10592 105932014-04-15 Eric Botcazou <ebotcazou@adacore.com> 10594 Pierre-Marie de Rodat <derodat@adacore.com> 10595 10596 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Create a mere 10597 scalar constant instead of a reference for renaming of scalar literal. 10598 Do not create a new object for constant renaming except for a function 10599 call. Make sure a VAR_DECL is created for the renaming pointer. 10600 * gcc-interface/trans.c (constant_decl_with_initializer_p): New. 10601 (fold_constant_decl_in_expr): New function. 10602 (Identifier_to_gnu): Use constant_decl_with_initializer_p. 10603 For a constant renaming, try to fold a constant DECL in the result. 10604 (lvalue_required_p) <N_Object_Renaming_Declaration>: Always return 1. 10605 (Identifier_to_gnu): Reference the renamed object of constant renaming 10606 pointers directly. 10607 * gcc-interface/utils.c (invalidate_global_renaming_pointers): Do not 10608 invalidate constant renaming pointers. 10609 106102014-04-15 Eric Botcazou <ebotcazou@adacore.com> 10611 10612 * gcc-interface/utils.c (type_for_vector_element_p): New predicate. 10613 (build_vector_type_for_size): New function. 10614 (build_vector_type_for_array): Likewise. 10615 (unchecked_convert): Build an intermediate vector type to convert 10616 from a generic array type to a vector type. 10617 (handle_vector_size_attribute): Reimplement. 10618 (handle_vector_type_attribute): Likewise. 10619 106202014-04-15 Eric Botcazou <ebotcazou@adacore.com> 10621 10622 * gcc-interface/decl.c (prepend_one_attribute_pragma): Call 10623 Is_OK_Static_Expression in lieu of Is_Static_Expression to 10624 detect valid arguments. 10625 106262014-04-15 Eric Botcazou <ebotcazou@adacore.com> 10627 10628 * gcc-interface/trans.c (gnat_gimplify_stmt): Propagate loop hints. 10629 106302014-04-14 Paolo Carlini <paolo.carlini@oracle.com> 10631 10632 * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_IDENTIFIER. 10633 (components_to_record): Likewise. 10634 * gcc-interface/utils.c (make_aligning_type): Likewise. 10635 (maybe_pad_type): Likewise. 10636 (finish_record_type): Likewise. 10637 (rest_of_record_type_compilation): Likewise. 10638 106392014-04-14 Eric Botcazou <ebotcazou@adacore.com> 10640 10641 * snames.ads-tmpl (Name_Ivdep): New pragma-related name. 10642 * sem_prag.adb (Analyze_Pragma) <Pragma_Loop_Optimize>: Add support 10643 for Ivdep hint. 10644 * gnat_rm.texi (Implementation Defined Pragmas): Document new Ivdep 10645 hint for Loop_Optimize. 10646 * gnat_ugn.texi (Vectorization of loops): Mention new Ivdep hint. 10647 * gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal 10648 with new Ivdep hint. 10649 * gcc-interface/ada-tree.h (LOOP_STMT_IVDEP): New macro. 10650 * gcc-interface/trans.c (Pragma_to_gnu) <Pragma_Loop_Optimize>: Deal 10651 with new Ivdep hint. 10652 (gnat_gimplify_stmt) <LOOP_STMT>: Propagate loop hints. 10653 106542014-04-14 Eric Botcazou <ebotcazou@adacore.com> 10655 Robert Dewar <dewar@adacore.com> 10656 10657 * opt.ads (Suppress_Back_Annotation): Remove as unused. 10658 * fe.h (Back_Annotate_Rep_Info): Likewise. 10659 (Global_Discard_Names): Likewise. 10660 (List_Representation_Info): Declare. 10661 * types.h (Uint_Minus_1): Likewise. 10662 * repinfo.ads: Document back-annotation change. 10663 * gcc-interface/gigi.h (init_gnat_decl): Declare. 10664 (destroy_gnat_decl): Likewise. 10665 * gcc-interface/decl.c (annotate_value): Do not create the cache of 10666 annotated values here but... 10667 <CALL_EXPR>: Only inline the call if -gnatR3 is specified or we are 10668 in ASIS mode. 10669 (init_gnat_decl): ...here instead. New function. 10670 (destroy_gnat_decl): Likewise. 10671 * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_decl. 10672 * gcc-interface/utils.c (init_gnat_utils): Minor reformatting. 10673 106742014-04-14 Eric Botcazou <ebotcazou@adacore.com> 10675 10676 * gcc-interface/decl.c (create_field_decl_from): Finalize non-constant 10677 offset for the field, if any. 10678 106792014-04-09 Eric Botcazou <ebotcazou@adacore.com> 10680 Svante Signell <svante.signell@gmail.com> 10681 10682 PR ada/54040 10683 PR ada/59346 10684 * s-osinte-x32.adb: New file. 10685 * s-linux.ads (Time): New section. 10686 * s-linux-alpha.ads (Time): Likewise. 10687 * s-linux-android.ads (Time: Likewise. 10688 * s-linux-hppa.ads (Time): Likewise. 10689 * s-linux-mipsel.ads (Time): Likewise. 10690 * s-linux-sparc.ads (Time): Likewise. 10691 * s-linux-x32.ads (Time): Likewise. 10692 * s-osprim-x32.ads (timespec): Adjust. 10693 (Clock): Likewise. 10694 (To_Timespec): Likewise. 10695 * s-osinte-linux.ads (Time): Define local subtypes for those defined 10696 in System.Linux. 10697 * s-taprop-linux.adb (Monotonic_Clock): Do not define timeval. 10698 * s-osinte-hpux.ads (timespec): Revert POSIX breakage. 10699 * s-osinte-kfreebsd-gnu.ads (timespec): Likewise. 10700 * s-osinte-solaris-posix.ads (timespec): Likewise. 10701 * s-osinte-posix.adb (To_Timespec): Likewise. 10702 * gcc-interface/Makefile.in (x32/Linux): Use s-osinte-x32.adb. 10703 107042014-04-08 Eric Botcazou <ebotcazou@adacore.com> 10705 10706 PR ada/60411 10707 * gcc-interface/Makefile.in (arm% linux-android): Switch to EHABI. 10708 * s-linux-android.ads: New file. 10709 * s-intman-android.adb: Likewise. 10710 * s-osinte-android.ads: Adjust. 10711 * sigtramp-armdroid.c: Likewise. 10712 * sigtramp.h: Add Android support. 10713 107142014-04-07 Eric Botcazou <ebotcazou@adacore.com> 10715 10716 * gcc-interface/Makefile.in (alpha-vms): Add missing line. 10717 107182014-03-30 Eric Botcazou <ebotcazou@adacore.com> 10719 10720 PR ada/60703 10721 * system-linux-alpha.ads: Adjust for Ada 2005. 10722 * system-linux-mips.ads: Likewise. 10723 * system-linux-mips64el.ads: Likewise. 10724 * system-linux-mipsel.ads: Likewise. 10725 * system-linux-s390.ads: Likewise. 10726 * system-linux-s390x.ads: Likewise. 10727 * system-linux-sparc.ads: Likewise. 10728 * system-linux-sparcv9.ads: Likewise. 10729 * system-rtems.ads: Likewise. 10730 * system-vxworks-arm.ads: Likewise. 10731 107322014-03-16 Andreas Schwab <schwab@linux-m68k.org> 10733 10734 PR ada/39172 10735 * gcc-interface/Makefile.in (target_cpu_default): Revert 10736 2013-10-11 change. 10737 107382014-03-13 Eric Botcazou <ebotcazou@adacore.com> 10739 10740 PR ada/51483 10741 * cstand.adb (Register_Float_Type): Add 'precision' parameter and use 10742 it to set the RM size. Use directly 'size' for the Esize. 10743 (Create_Back_End_Float_Types): Adjust call to above. 10744 * get_targ.ads (Register_Type_Proc): Add 'precision' parameter. 10745 * set_targ.ads (FPT_Mode_Entry): Add 'precision' component. 10746 (Write_Target_Dependent_Values): Adjust comment. 10747 * set_targ.adb (Register_Float_Type): Add 'precision' parameter and 10748 deal with it. 10749 (Write_Target_Dependent_Values): Write the precision in lieu of size. 10750 (Initialization): Read the precision in lieu of size and compute the 10751 size from the precision and the alignment. 10752 * gcc-interface/gigi.h (enumerate_modes): Add integer parameter. 10753 * gcc-interface/misc.c (enumerate_modes): Likewise. Do not register 10754 types for vector modes, pass the size in addition to the precision. 10755 107562014-03-10 Eric Botcazou <ebotcazou@adacore.com> 10757 10758 * gcc-interface/Make-lang.in (ADA_DEPFILES): Fix typo. 10759 107602014-03-07 Doug Rupp <rupp@adacore.com> 10761 10762 PR ada/60411 10763 * system-linux-armel.ads (Backend_Overflow_Checks): Set to True. 10764 (Support_64_Bit_Divides): Removed, no longer used. 10765 (ZCX_By_Default): Enabled. 10766 107672014-02-25 Doug Rupp <rupp@adacore.com> 10768 10769 * gcc-interface/Makefile.in (arm-linux): 10770 (EH_MECHANISM): Use ARM unwinder (-arm) 10771 (LIBGNAT_TARGET_PAIRS: Override defaults with a-exexpr-gcc.adb and 10772 s-excmac-arm.ads. 10773 (EXTRA_LIBGNAT_OBJS): Add raise-gcc.o 10774 (EXTRA_GNATRTL_NONTASKING_OBJS): Add g-cppexc.o s-excmac.o. 10775 (arm-wrs-vxworks): Add EH_MECHANISM=-gcc for kernel mode. 10776 (EXTRA_LIBGNAT_OBJS): Add sigtramp-armvxw.o 10777 Add dependencies for sigtramp-armvxw.o. 10778 107792014-02-25 Eric Botcazou <ebotcazou@adacore.com> 10780 10781 * gcc-interface/trans.c (Pragma_to_gnu): Deal with Warning_As_Error. 10782 107832014-02-25 Robert Dewar <dewar@adacore.com> 10784 10785 * rtsfind.adb (Is_RTE): Protect against entity with no scope 10786 field (previously this call blew up on the Standard entity). 10787 * sem_attr.adb (Analyze_Attribute, case Access): Remove 10788 test for No_Abort_Statements, this is now handled in 10789 Set_Entity_With_Checks. 10790 * exp_ch6.adb, sem_ch10.adb, sem_ch4.adb, sem_ch8.adb, sem_res.adb: 10791 Change name Set_Entity_With_Style_Check => Set_Entity_With_Checks. 10792 * sem_util.ads, sem_util.adb: Change name Set_Entity_With_Style_Check => 10793 Set_Entity_With_Checks. 10794 (Set_Entity_With_Checks): Add checks for No_Dynamic_Attachment, 10795 Add checks for No_Abort_Statements. 10796 107972014-02-25 Robert Dewar <dewar@adacore.com> 10798 10799 * exp_ch9.adb (Expand_Entry_Barrier): Add comment that call to 10800 Check_Restriction is OK. 10801 108022014-02-25 Ed Schonberg <schonberg@adacore.com> 10803 10804 * sem_ch3.adb (Process_Full_View): Better error message when 10805 the full view of a private type without discriminants is an 10806 unconstrained type. 10807 * sem_ch7.adb (Uninstall_Declarations): Ditto. 10808 108092014-02-25 Eric Botcazou <ebotcazou@adacore.com> 10810 10811 * sigtramp-armvxw.c: Also restore r0. 10812 108132014-02-25 Robert Dewar <dewar@adacore.com> 10814 10815 * errout.adb (Error_Msg_Internal): Warning_Msg_Char set 10816 unconditionally (Set_Msg_Insertion_Warning): Warning_Msg_Char 10817 set unconditionally. 10818 * erroutc.adb (Get_Warning_Tag): Does not give a leading space 10819 any more (Output_Msg_Text): Rewritten with new convention on 10820 output of warnings that are treated as errors. 10821 * erroutc.ads (Error_Msg_Object): Warn_Chr is always set even 10822 if Warn is False. 10823 * gnat_rm.texi: Updates to documentation on pragma 10824 Warning_As_Error. 10825 * warnsw.adb (Set_Dot_Warning_Switch): -gnatw.e should not 10826 set Warning_Doc_Switch. 10827 * lib-writ.ads: Add documentation note on ALI file generation 10828 for C. 10829 * exp_ch6.adb (Expand_Call): Remove check for No_Abort_Statements 10830 (belongs in Sem). 10831 * sem_attr.adb (Resolve_Attribute, case Access): 10832 Abort_Task'Access violates the No_Abort_Statements restriction. 10833 * sem_res.adb (Resolve_Call): Check restriction 10834 No_Abort_Statements for call to Abort_Task or a renaming of it. 10835 108362014-02-25 Robert Dewar <dewar@adacore.com> 10837 10838 * sem_ch3.adb (Array_Type_Declaration): Check for case of using 10839 type name as index. 10840 * lib.ads: Minor reformatting. 10841 * einfo.ads: Minor reformatting. 10842 108432014-02-25 Doug Rupp <rupp@adacore.com> 10844 10845 * sem_mech.adb (Set_Mechanisms): For convention Fortran on VMS 10846 use Short_Descriptor(S) as the argument passing mechanism. 10847 108482014-02-25 Eric Botcazou <ebotcazou@adacore.com> 10849 10850 * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Also include r0. 10851 108522014-02-25 Robert Dewar <dewar@adacore.com> 10853 10854 * atree.ads (Warnings_Treated_As_Errors): New variable. 10855 * errout.adb (Error_Msg_Internal): Set Warn_Err flag in 10856 error object (Initialize): Initialize Warnings_As_Errors_Count 10857 (Write_Error_Summary): Include count of warnings treated as errors. 10858 * erroutc.adb (Warning_Treated_As_Error): New function. 10859 (Matches): Function moved to outer level of package. 10860 * erroutc.ads (Error_Msg_Object): Add Warn_Err flag. 10861 (Warning_Treated_As_Error): New function. 10862 * gnat_rm.texi: Document pragma Treat_Warning_As_Error. 10863 * opt.adb: Add handling of Warnings_As_Errors_Count[_Config]. 10864 * opt.ads (Config_Switches_Type): Add entry for 10865 Warnings_As_Errors_Count. 10866 (Warnings_As_Errors_Count): New variable. 10867 (Warnings_As_Errors): New array. 10868 * par-prag.adb: Add dummy entry for Warning_As_Error. 10869 * sem_prag.adb (Analyze_Pragma): Implement new pragma 10870 Warning_As_Error. 10871 * snames.ads-tmpl: Add entries for Warning_As_Error pragma. 10872 108732014-02-25 Eric Botcazou <ebotcazou@adacore.com> 10874 10875 * sigtramp.h: Fix minor inaccuracy. 10876 108772014-02-25 Ben Brosgol <brosgol@adacore.com> 10878 10879 * gnat_ugn.texi: Added description of kill command. 10880 108812014-02-25 Robert Dewar <dewar@adacore.com> 10882 10883 * gnat_rm.texi (Address_Clauses): Add a section discussing the 10884 problem of address clauses causing unexpected initialization, 10885 including the effect of Initialize_Scalars. 10886 108872014-02-25 Robert Dewar <dewar@adacore.com> 10888 10889 * errout.adb: Various changes for better msgs for anonmous access 10890 subprogram types. 10891 * erroutc.ads, erroutc.adb (Buffer_Ends_With): Version with character 10892 argument. 10893 (Buffer_Remove): Version with character argument. 10894 * sem_attr.adb (Resolve_Attribute, case Access): Better handling 10895 of mismatching conventions for access-to-subprogram case. 10896 * sem_prag.adb (Set_Convention_From_Pragma): Deal with anonymous 10897 access types in record. 10898 * sem_util.ads, sem_util.adb (Set_Convention): Handle anonymous access 10899 types, including in records. 10900 109012014-02-25 Doug Rupp <rupp@adacore.com> 10902 10903 * sigtramp-ppcvxw.c, sigtramp.h, sigtramp-armvxw.c: Comment 10904 enhancements and corrections. 10905 109062014-02-25 Robert Dewar <dewar@adacore.com> 10907 10908 * gnat_rm.texi: New section "Conventions and Anonymous Access Types" 10909 109102014-02-25 Robert Dewar <dewar@adacore.com> 10911 10912 * gnat_rm.texi: First set of documentation additions for 10913 predefined RM units. 10914 * checks.adb: Minor reformatting. 10915 * sem_elab.adb (Check_Task_Activation): Minor fix to error 10916 message. 10917 * sem_util.adb: Minor reformatting. 10918 109192014-02-25 Arnaud Charlet <charlet@adacore.com> 10920 10921 * usage.adb (Usage): Add help on -gnateC. 10922 * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnateC. 10923 * opt.ads (Generate_CodePeer_Messages): New flag. 10924 * gnat_ugn.texi: Document new switch -gnateC. 10925 109262014-02-25 Ben Brosgol <brosgol@adacore.com> 10927 10928 * gnat_rm.texi: Corrected minor typos in Implementation Defined 10929 Aspects. 10930 * opt.ads: Minor reformatting. 10931 109322014-02-25 Robert Dewar <dewar@adacore.com> 10933 10934 * binde.adb: Change messages to mention -gnatel instead of -gnatwl. 10935 * gnat_ugn.texi: Update documentation of -gnatwl Add documentation 10936 of -gnatel/-gnateL. 10937 * opt.ads (Warn_Info_Messages): New flag. 10938 * sem_elab.adb: Use Elab_Warnings, Elab_Info_Messages to control 10939 messages. 10940 * sem_prag.adb: Use Elab_Warnings, Elab_Info_Messages to control 10941 messages. 10942 * switch-m.ad, switch-c.adb: Recognize new -gnatel/EL switches. 10943 * usage.adb: Add documentation of -gnatel/-gnateL Update 10944 documentation of -gnatwl/-gnatwL. 10945 * warnsw.adb: New handling of Elab_Warnings, Elab_Info_Messages 10946 * warnsw.ads (Elab_Info_Messages): New field in Warning_Record 10947 109482014-02-25 Robert Dewar <dewar@adacore.com> 10949 10950 * einfo.ads, einfo.adb (Has_Shift_Operator): New flag. 10951 * gnat_rm.texi: Document pragma Provide_Shift_Operators. 10952 * interfac.ads: Minor code reorganization (add pragma 10953 Compiler_Unit_Warning). 10954 * par-prag.adb: Add dummy entry for Provide_Shift_Operators. 10955 * sem_ch3.adb (Build_Derived_Numeric_Type): Copy 10956 Has_Shift_Operator flag. 10957 * sem_intr.adb (Check_Intrinsic_Subprogram): Make sure 10958 Check_Shift is always called (Check_Shift): Set Has_Shift_Operator. 10959 * sem_prag.adb: Implement pragma Provide_Shift_Operators. 10960 * snames.ads-tmpl: Add entries for pragma Provide_Shift_Operators 10961 Add entry for Name_Amount. 10962 * checks.adb (Selected_Range_Checks): When checking for a null 10963 range, make sure we use the base type, and not the subtype for 10964 deciding a range is null. 10965 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check 10966 for suspicious loop bound which is outside the range of the 10967 loop subtype. 10968 * gnat_ugn.texi: Add documentation section "Determining the 10969 Chosen Elaboration Order" 10970 * sem_ch13.adb (UC_Entry): Add field Act_Unit 10971 (Validate_Unchecked_Conversion): Store Act_Unit 10972 (Validate_Unchecked_Conversions): Test Warnings_Off in Act_Unit 10973 * treepr.adb: Minor reformatting. 10974 109752014-02-25 Arnaud Charlet <charlet@adacore.com> 10976 10977 * usage.adb: Minor: fix typo. 10978 109792014-02-25 Robert Dewar <dewar@adacore.com> 10980 10981 * lib.ads, s-bitops.adb, s-bitops.ads, s-conca5.adb, gnat_rm.texi, 10982 s-conca5.ads, s-conca7.adb, s-conca7.ads, s-crc32.adb, s-crc32.ads, 10983 s-conca9.adb, s-conca9.ads, g-dyntab.adb, s-crtl.ads, g-dyntab.ads, 10984 s-excdeb.adb, s-addope.adb, s-addope.ads, s-carun8.adb, s-carun8.ads, 10985 g-htable.adb, g-htable.ads, g-hesora.adb, g-hesora.ads, s-conca2.adb, 10986 s-conca2.ads, a-comlin.adb, a-chlat1.ads, a-comlin.ads, errout.ads, 10987 a-except.adb, s-conca4.adb, a-except.ads, s-conca4.ads, s-conca6.adb, 10988 s-conca6.ads, g-spchge.adb, g-spchge.ads, g-u3spch.adb, g-u3spch.ads, 10989 a-strhas.ads, restrict.adb, aspects.adb, aspects.ads, s-conca8.adb, 10990 s-conca8.ads, back_end.adb, par-prag.adb, g-byorma.adb, g-byorma.ads, 10991 a-elchha.adb, a-elchha.ads, g-speche.adb, g-speche.ads, s-casuti.adb, 10992 s-assert.adb, s-casuti.ads, s-assert.ads, a-clrefi.adb, a-clrefi.ads, 10993 s-conca3.adb, s-conca3.ads, a-ioexce.ads: Implement pragma 10994 Compiler_Unit_Warning, change Compiler_Unit everywhere to 10995 Compiler_Unit_Warning. 10996 109972014-02-25 Sergey Rybin <rybin@adacore.com frybin> 10998 10999 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Do not normalize 11000 in ASIS mode aggregates that are used as aspect definitions. 11001 110022014-02-25 Robert Dewar <dewar@adacore.com> 11003 11004 * exp_ch7.adb, sem_util.adb, sem_util.ads, exp_ch6.adb: Minor 11005 reformatting. 11006 110072014-02-25 Ed Schonberg <schonberg@adacore.com> 11008 11009 * freeze.adb (Freeze_Entity): If the return type of a function 11010 is a limited view, and the non-limited view has not been seen yet, 11011 defer freezing to some later point. 11012 110132014-02-25 Robert Dewar <dewar@adacore.com> 11014 11015 * sem_ch3.adb: Minor reformatting. 11016 110172014-02-25 Robert Dewar <dewar@adacore.com> 11018 11019 * s-excdeb.ads, s-except.ads, s-exctab.adb, s-exctab.ads, s-finmas.ads, 11020 s-htable.adb, s-htable.ads, s-imenne.adb, s-imenne.ads, s-imgenu.adb, 11021 s-imgenu.ads, s-mastop.adb, s-mastop.ads, s-memory-vms_64.adb, 11022 s-memory-vms_64.ads, s-memory.adb, s-memory.ads, s-os_lib.adb, 11023 s-os_lib.ads, s-parame.adb, s-parame.ads, s-purexc.ads, s-restri.adb, 11024 s-restri.ads, s-rident.ads, s-secsta.adb, s-secsta.ads, s-soflin.adb, 11025 s-soflin.ads, s-sopco3.adb, s-sopco3.ads, s-sopco4.adb, s-sopco4.ads, 11026 s-sopco5.adb, s-sopco5.ads, s-spsufi.ads, s-stache.adb, s-stache.ads, 11027 s-stalib.adb, s-stalib.ads, s-stoele.adb, s-stoele.ads, s-strcom.adb, 11028 s-strcom.ads, s-strhas.adb, s-string.adb, s-string.ads, s-strops.adb, 11029 s-strops.ads, s-ststop.adb, s-ststop.ads, s-traceb.adb, s-traceb.ads, 11030 s-traent.adb, s-traent.ads, s-unstyp.ads, s-utf_32.adb, s-utf_32.ads, 11031 s-wchcnv.adb, s-wchcnv.ads, s-wchcon.adb, s-wchcon.ads, s-wchjis.adb, 11032 s-wchjis.ads, sem_ch11.adb, sem_ch4.adb, sem_ch5.adb, sem_prag.adb, 11033 snames.ads-tmpl: Change Compiler_Unit everywhere to 11034 Compiler_Unit_Warning. 11035 110362014-02-25 Hristian Kirtchev <kirtchev@adacore.com> 11037 11038 * exp_ch6.adb (Add_Or_Save_Precondition): New routine. 11039 (Collect_Body_Postconditions_In_Decls): New routine. 11040 (Collect_Body_Postconditions_Of_Kind): Factor out code. Handle 11041 postcondition aspects or pragmas that appear on a subprogram 11042 body stub. 11043 (Collect_Spec_Preconditions): Factor out code. Handle 11044 precondition aspects or pragmas that appear on a subprogram 11045 body stub. 11046 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): The analysis of 11047 aspects that apply to a subprogram body stub is no longer delayed, 11048 the aspects are analyzed on the spot. 11049 (SPARK_Aspect_Error): 11050 Aspects that apply to a subprogram declaration cannot appear in 11051 a subunit. 11052 * sem_ch10.adb Remove with and use clause for Sem_Ch13. 11053 (Analyze_Proper_Body): Add local variable Comp_Unit. Unum 11054 is now a local variable. Code cleanup. Analysis related to 11055 the aspects of a subprogram body stub is now carried out by 11056 Analyze_Subprogram_Body_Helper. Do not propagate the aspects 11057 and/or pragmas of a subprogram body stub to the proper body 11058 as this is no longer needed. Do not analyze the aspects of a 11059 subprogram stub when the corresponding source unit is missing. 11060 (Analyze_Protected_Body_Stub): Flag the illegal use of aspects 11061 on a stub. 11062 (Analyze_Task_Body_Stub): Flag the illegal use of 11063 aspects on a stub. 11064 (Optional_Subunit): Add local variable Unum. 11065 * sem_ch13.adb (Insert_Delayed_Pragma): Do not analyze a generated 11066 pragma when it applies to a subprogram body stub. 11067 * sem_prag.adb (Analyze_Pragma): Pragmas Contract_Cases, 11068 Depends and Global can now apply to a subprogram body stub as 11069 long as it acts as its own spec. 11070 (Analyze_Refined_Pragma): 11071 Code reformatting. Refinement pragmas cannot apply to a subunit. 11072 110732014-02-25 Hristian Kirtchev <kirtchev@adacore.com> 11074 11075 * einfo.ads Update the usage of flag 11076 Uses_Sec_Stack. Uses_Sec_Stack now applies to E_Loop entities. 11077 * exp_ch5.adb (Expand_Iterator_Loop): The temporary for a cursor 11078 now starts with the letter 'C'. This makes reading expanded 11079 code easier. 11080 * exp_ch7.adb (Establish_Transient_Scope): Add local variable 11081 Iter_Loop. Signal that an Ada 2012 iterator loop requires 11082 secondary stack management when creating a transient scope for 11083 an element reference. 11084 * exp_util.adb (Process_Statements_For_Controlled_Objects): 11085 When wrapping the statements of a loop, pass the E_Loop entity 11086 to the wrapping machinery. 11087 (Wrap_Statements_In_Block): Add 11088 formal parameter Scop along with comment on usage. Add local 11089 variables Block_Id, Block_Nod and Iter_Loop. Mark the generated 11090 block as requiring secondary stack management when the block is 11091 created inside an Ada 2012 iterator loop. This ensures that any 11092 reference objects are reclaimed on each iteration of the loop. 11093 * sem_ch5.adb (Analyze_Loop_Statement): Mark the generated block 11094 tasked with the handling of container iterators as requiring 11095 secondary stack management. This ensures that iterators are 11096 reclaimed when the loop terminates or is exited in any fashion. 11097 * sem_util.adb (Add_Block_Identifier): New routine. 11098 (Find_Enclosing_Iterator_Loop): New routine. 11099 * sem_util.ads (Add_Block_Identifier): New routine. 11100 (Find_Enclosing_Iterator_Loop): New routine. 11101 111022014-02-25 Robert Dewar <dewar@adacore.com> 11103 11104 * sinfo.ads: Minor reformatting. 11105 111062014-02-25 Tristan Gingold <gingold@adacore.com> 11107 11108 * s-expllu.ads, s-expuns.ads, s-expmod.ads: Minor comment fix. 11109 111102014-02-25 Pascal Obry <obry@adacore.com> 11111 11112 * sinput-l.adb, osint.adb, osint.ads: Add Prep_Suffix to factorize code. 11113 111142014-02-25 Tristan Gingold <gingold@adacore.com> 11115 11116 * sem_ch10.adb: Minor comment fix. 11117 111182014-02-25 Bob Duff <duff@adacore.com> 11119 11120 * s-tasdeb.adb: Misc cleanup of this package, 11121 including printing addresses in hexadecimal. 11122 (Write): Fix minor bug when taking 'Address of an empty string. 11123 111242014-02-25 Ed Schonberg <schonberg@adacore.com> 11125 11126 * sem_prag.adb (Analyze_Part_Of): Reject state refinement in a 11127 public child unit when it does not refer to the abstract state 11128 of a public ancestor. 11129 111302014-02-25 Yannick Moy <moy@adacore.com> 11131 11132 * sem_prag.adb (Analyze_Pragma/Pragma_Validity_Checks): Ignore pragma 11133 Validity_Checks in GNATprove and CodePeer modes. 11134 111352014-02-25 Pascal Obry <obry@adacore.com> 11136 11137 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package Install's 11138 Artifacts attribute. 11139 111402014-02-25 Yannick Moy <moy@adacore.com> 11141 11142 * sem_prag.adb: Minor reformatting to get consistent messages. 11143 111442014-02-25 Robert Dewar <dewar@adacore.com> 11145 11146 * checks.adb: Minor reformatting. 11147 * sinfo.ads (Do_Range_Check): Document that this flag is never 11148 passed to the back end. 11149 111502014-02-25 Yannick Moy <moy@adacore.com> 11151 11152 * sem_ch3.adb, sem_ch5.adb, sem_ch9.adb, sem_prag.adb, sem_attr.adb, 11153 sem_ch6.adb: Remove useless references to SPARK RM in error messages. 11154 111552014-02-25 Hristian Kirtchev <kirtchev@adacore.com> 11156 11157 * sem_res.adb (Appears_In_Check): New routine. 11158 (Resolve_Entity_Name): Remove local variables Prev and 11159 Usage_OK. Par is now a constant. Remove the parent chain traversal 11160 as the placement of a volatile object with enabled property 11161 Async_Writers and/or Effective_Reads must appear immediately 11162 within a legal construct. 11163 111642014-02-25 Hristian Kirtchev <kirtchev@adacore.com> 11165 11166 * checks.adb (Apply_Selected_Range_Checks): 11167 Alphabetize local constants and variables. Add comments. 11168 Always insert a range check that requires runtime evaluation into 11169 the tree. 11170 111712014-02-25 Robert Dewar <dewar@adacore.com> 11172 11173 * sem_attr.adb, sem_ch6.adb, par-ch3.adb: Minor reformatting. 11174 111752014-02-25 Bob Duff <duff@adacore.com> 11176 11177 * s-tassta.adb (Finalize_Global_Tasks): Limit the number of loop 11178 iterations while waiting for independent tasks to terminate; 11179 if an independent task does not terminate, we do not want to 11180 hang here. In that case, the thread will be terminated when the 11181 process exits. 11182 * s-taprop-linux.adb (Abort_Task): Fix Assert to allow for ESRCH. 11183 111842014-02-25 Ed Schonberg <schonberg@adacore.com> 11185 11186 * sem_prag.adb (Check_SPARK_Aspect_For_ASIS): New subprogram, 11187 used to perform pre-analysis of the expression for SPARK 11188 aspects that have a non-standard syntax, such as GLobal and 11189 Initializes. The procedure applies to the original expression 11190 in an aspect specification, prior to the analysis of the 11191 corresponding pragma, in order to provide semantic information 11192 for ASIS navigation purposes. 11193 (Analyze_Global_In_Decl_List, Analyze_Initializes_In_Decl_Part): 11194 Call new subprogram. 11195 111962014-02-25 Yannick Moy <moy@adacore.com> 11197 11198 * sem_prag.adb: Remove obsolete reference to SPARK RM in error message. 11199 112002014-02-25 Doug Rupp <rupp@adacore.com> 11201 11202 * init.c (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Enable for ARM. 11203 (__gnat_adjust_context_for_raise): Bump the PC by 2. 11204 112052014-02-25 Ed Schonberg <schonberg@adacore.com> 11206 11207 * par-ch3.adb (P_Basic_Declarative_Items): In the case of a 11208 misplaced IS, add a statement sequence to improper body only if 11209 one has not been parsed already. 11210 112112014-02-25 Ed Schonberg <schonberg@adacore.com> 11212 11213 * sem_attr.adb (Analyze_Attribute, case 'Update): Check for 11214 mismatch when multidimensional array is updated with a single 11215 index. 11216 112172014-02-25 Yannick Moy <moy@adacore.com> 11218 11219 * sem_ch3.adb, sem_ch5.adb, sem_prag.adb, sem_attr.adb, errout.ads, 11220 sem_ch6.adb: Mark most references to SPARK RM in error messages 11221 for removal. 11222 112232014-02-24 Ed Schonberg <schonberg@adacore.com> 11224 11225 * par-ch3.adb (P_Basic_Declarative_Items): If an improper body 11226 appears in a list of basic declarations, complete the tree with 11227 an empty statement list, to prevent cascaded errors and crashes 11228 if semantic analysis is attempted. 11229 112302014-02-24 Thomas Quinot <quinot@adacore.com> 11231 11232 * g-sercom-mingw.adb (Open): Fix incorrect test for error return 11233 value. 11234 * erroutc.adb: Minor reformatting. 11235 112362014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11237 11238 * sem_prag.adb (Check_Clause_Syntax): Account 11239 for a solitary input item in a dependency list. 11240 112412014-02-24 Yannick Moy <moy@adacore.com> 11242 11243 * gnat1drv.adb (Adjust_Global_Switches): Do not 11244 use validity checks at all in GNATprove_Mode. 11245 112462014-02-24 Robert Dewar <dewar@adacore.com> 11247 11248 * g-sercom-mingw.adb, g-sercom-linux.adb, sem_prag.adb, freeze.adb, 11249 atree.adb, atree.ads: Minor reformatting. 11250 112512014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11252 11253 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Do not enforce 11254 global and dependence refinement when SPARK_Mode is off. 11255 * sem_ch7.adb (Analyze_Package_Body_Contract): Do not enforce 11256 state refinement when SPARK_Mode is off. 11257 * sem_ch13.adb (Analyze_Aspect_Specifications): Add local 11258 variable Decl. Insert the generated pragma for Refined_State 11259 after a potential pragma SPARK_Mode. 11260 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add local 11261 constant Deps. Remove local variable Expr. Check the syntax 11262 of pragma Depends when SPARK_Mode is off. Factor out the 11263 processing for extra parenthesis around individual clauses. 11264 (Analyze_Global_In_Decl_List): Items is now a constant. Check 11265 the syntax of pragma Global when SPARK_Mode is off. 11266 (Analyze_Initializes_In_Decl_Part): Check the syntax of pragma 11267 Initializes when SPARK_Mode is off. 11268 (Analyze_Part_Of): Check 11269 the syntax of the encapsulating state when SPARK_Mode is off. 11270 (Analyze_Pragma): Check the syntax of pragma Abstract_State when 11271 SPARK_Mode is off. Move the declaration order check with respect 11272 to pragma Initializes to the end of the processing. Do not verify 11273 the declaration order for pragma Initial_Condition when SPARK_Mode 11274 is off. Do not complain about a useless package refinement when 11275 SPARK_Mode is off. 11276 (Analyze_Refined_Depends_In_Decl_Part): Refs 11277 is now a constant. Check the syntax of pragma Refined_Depends 11278 when SPARK_Mode is off. 11279 (Analyze_Refined_Global_In_Decl_Part): 11280 Check the syntax of pragma Refined_Global when SPARK_Mode is off. 11281 (Analyze_Refined_State_In_Decl_Part): Check the syntax of pragma 11282 Refined_State when SPARK_Mode is off. 11283 (Check_Dependence_List_Syntax): New routine. 11284 (Check_Global_List_Syntax): New routine. 11285 (Check_Initialization_List_Syntax): New routine. 11286 (Check_Item_Syntax): New routine. 11287 (Check_State_Declaration_Syntax): New routine. 11288 (Check_Refinement_List_Syntax): New routine. 11289 (Has_Extra_Parentheses): Moved to the top level of Sem_Prag. 11290 112912014-02-24 Robert Dewar <dewar@adacore.com> 11292 11293 * a-tags.adb, s-os_lib.adb: Minor reformatting. 11294 112952014-02-24 Thomas Quinot <quinot@adacore.com> 11296 11297 * g-sercom-mingw.adb, g-sercom-linux.adb (Raise_Error): Include 11298 strerror message, not just numeric errno value. 11299 113002014-02-24 Doug Rupp <rupp@adacore.com> 11301 11302 * raise-gcc.c (exception_class_eq): Make endian neutral. 11303 113042014-02-24 Ed Schonberg <schonberg@adacore.com> 11305 11306 * atree.ads, atree,adb (Copy_Separate_Tree): Remove Syntax_Only 11307 flag, and reset Etype and Analyzed attributes unconditionally 11308 when copying a tree that may be partly analyzed. 11309 * freeze.adb: Change calls to Copy_Separate_Tree accordingly. 11310 * sem_ch6.adb (Check_Inline_Pragma): If the Inline pragma appears 11311 within a subprogram body and applies to it, remove it from the 11312 body before making a copy of it, to prevent spurious errors when 11313 analyzing the copied body. 11314 113152014-02-24 Thomas Quinot <quinot@adacore.com> 11316 11317 * s-os_lib.adb (Errno_Message): Do not depend on Integer'Image. 11318 * s-oscons-tmplt.c: On VxWorks, include adaint.h only after 11319 vxWorks.h has been included. Also ensure that file attributes 11320 related definitions are output even in cases where socket support 11321 is not enabled. 11322 * a-tags.adb: Code clean up. 11323 * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Use -iquote 11324 instead of -I to add the main ada source directory to the header 11325 search path, in order to avoid conflict between our own "types.h" 11326 and VxWork's <types.h>. 11327 113282014-02-24 Robert Dewar <dewar@adacore.com> 11329 11330 * atree.ads, atree.adb (Copy_Separate_Tree): Add Syntax_Only parameter. 11331 * debug.adb: Remove documentation of -gnatd.X, no longer used. 11332 * freeze.adb (Wrap_Imported_Subprogram): Fixed and activated. 11333 113342014-02-24 Bob Duff <duff@adacore.com> 11335 11336 * gnat_ugn.texi: Improve documentation of gnatpp. 11337 113382014-02-24 Thomas Quinot <quinot@adacore.com> 11339 11340 * g-stheme.adb, g-socthi-vms.adb, g-socthi-vms.ads, 11341 g-socthi-vxworks.adb, g-socthi-vxworks.ads, g-stseme.adb, 11342 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb, 11343 g-socthi.ads, g-socket.adb (Host_Error_Message): Return a string, not 11344 a chars_ptr, because on Windows this is a renaming of 11345 Socket_Error_Message. 11346 113472014-02-24 Robert Dewar <dewar@adacore.com> 11348 11349 * a-direct.adb, sem_ch5.adb, a-cfdlli.adb, a-cfhase.adb, a-tags.adb, 11350 s-filatt.ads, a-cforma.adb, sem_ch6.adb, g-socthi-mingw.adb, 11351 a-cfhama.adb, a-cforse.adb, a-cofove.adb: Minor reformatting and code 11352 reorganization. 11353 113542014-02-24 Thomas Quinot <quinot@adacore.com> 11355 11356 * Make-generated.in (OSCONS_CPP, OSCONS_EXTRACT): Make sure 11357 that the source directory containing s-oscons-tmplt.c is on the 11358 include path, so that all internal header files are available. 11359 113602014-02-24 Ed Schonberg <schonberg@adacore.com> 11361 11362 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the 11363 domain of iteration is an attribute reference 'Old, this is an 11364 Ada 2012 iterator and the loop must be rewritten as such. 11365 113662014-02-24 Thomas Quinot <quinot@adacore.com> 11367 11368 * s-fileio.adb (Errno_Message): Remove, use shared version from 11369 s-os_lib instead. 11370 * s-crtrun.ads, Makefile.rtl: Remove now unused unit. 11371 * g-stseme (Socket_Error_Message): Reimplement in terms of new 11372 s-os_lib function. 11373 * g-socthi.ads, g-socthi.adb: Change profile of 11374 Socket_Error_Message to return String to allow the above. 11375 * g-socket.adb, g-socthi-mingw.adb, g-socthi-mingw.ads, 11376 * g-socthi-vms.adb, g-socthi-vms.ads, g-socthi-vxworks.adb, 11377 * g-socthi-vxworks.ads: Update to account for the above profile 11378 change. 11379 * a-tags.adb: Use strlen builtin binding provided by s-crtl. 11380 * s-crtl.ads (strncpy): New procedure. 11381 * s-os_lib.adb (Copy_Attributes): Import just once (strncpy): 11382 Use import from s-crtl. 11383 * a-envvar.adb, osint.adb: Use imports of C runtime functions 11384 from s-crtl instead of re-importing locally. 11385 113862014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11387 11388 * sem_prag.adb (Analyze_Global_Item): Emit the 11389 variable related checks concerning volatile objects only when 11390 SPARK_Mode is on. 11391 113922014-02-24 Robert Dewar <dewar@adacore.com> 11393 11394 * sem_ch5.adb (Analyze_Iterator_Specification): use 11395 Error_Msg_Ada_2012_Feature. 11396 113972014-02-24 Jose Ruiz <ruiz@adacore.com> 11398 11399 * s-rident.ads (Profile_Info): For Ravenscar, the restrictions 11400 No_Local_Timing_Events and No_Specific_Termination_Handlers 11401 must be set, according to the Ravenscar profile definition 11402 in D.13(6/3). 11403 114042014-02-24 Ed Schonberg <schonberg@adacore.com> 11405 11406 * sem_ch6.adb (Analyze_Expression_Function): If this is a 11407 completion, freeze return type and its designated type if needed. 11408 114092014-02-24 Thomas Quinot <quinot@adacore.com> 11410 11411 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 11412 'Address): When moving initialization statements to a freeze 11413 entity, keep them under a single node (i.e. do not unwrap 11414 expressions with actions), and set the Initialization_Statements 11415 attribute again so that processing of a later pragma Import can 11416 still remove them. 11417 114182014-02-24 Claire Dross <dross@adacore.com> 11419 11420 * a-cfdlli.adb, a-cfdlli.ads, a-cfhama.adb, a-cfhama.ads, 11421 a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, 11422 a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads: Rename 11423 Left/Right to First_To_Previous/Current_To_Last. 11424 114252014-02-24 Thomas Quinot <quinot@adacore.com> 11426 11427 * adaint.h (struct file_attributes): New component "error" 11428 (__gnat_error_attributes): Accessor for the above. 11429 * adaint.c (__gnat_error_attributes): New subprogram 11430 (__gnat_stat): Fix returned value (expect errno value) 11431 (__gnat_stat_to_attr): Add management of error component (set to 11432 stat errno value, except for missing files where it is set to 0, 11433 and exists is set to 0). 11434 * osint.ads (File_Attributes_Size): Update per change above, 11435 also clarify documentation. 11436 * s-filatt.ads: New file, binding to file attributes related 11437 functions. 11438 * Makefile.rtl (s-filatt): New runtime unit. 11439 * s-crtl.ads (strlen): Expose binding to GCC builtin (falls back 11440 to library function if not available on target). 11441 * s-os_lib.ads, s-os_lib.adb (Errno_Message): New subprogram. 11442 * s-oscons-tmplt.c (SIZEOF_struct_file_attributes, 11443 SIZEOF_struct_dirent_alloc): New constants. 11444 * Make-generated.in (s-oscons.ads): Now requires adaint.h. 11445 * a-direct.adb (Fetch_Next_Entry): Fix incorrect buffer sizes. 11446 Perform appropriate error checking if stat fails (do not just 11447 ignore existing files if stat fails) 11448 * gcc-interface/Make-lang.in (GNAT_ADA_OBJS, GNATBIND_OBJS): Update 11449 dependencies. 11450 114512014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11452 11453 * sem_prag.adb (Analyze_Global_Item): Move the check concerning 11454 the use of volatile objects as global items in a function to 11455 the variable related checks section. 11456 * sem_util.adb (Async_Readers_Enabled): Directly call 11457 Has_Enabled_Property. 11458 (Async_Writers_Enabled): Directly call Has_Enabled_Property. 11459 (Effective_Reads_Enabled): Directly call Has_Enabled_Property. 11460 (Effective_Writes_Enabled): Directly call Has_Enabled_Property. 11461 (Has_Enabled_Property): Rename formal parameter State_Id to Item_Id. 11462 Update the comment on usage. State_Has_Enabled_Property how handles 11463 the original logic of the routine. Add processing for variables. 11464 (State_Has_Enabled_Property): New routine. 11465 (Variable_Has_Enabled_Property): New routine. 11466 114672014-02-24 Robert Dewar <dewar@adacore.com> 11468 11469 * sinfo.ads, sem_ch12.adb, sem_res.adb, sem_ch4.adb, par-ch12.adb: 11470 Minor reformatting. 11471 * atree.ads, atree.adb (Node35): New function. 11472 (Set_Node35): New procedure. 11473 * debug.adb: Define new debug flag -gnatd.X. 11474 * einfo.ads, einfo.adb (Import_Pragma): New field. 11475 * freeze.adb (Wrap_Imported_Procedure): New procedure (not 11476 really active yet, has to be activated with -gnatd.X. 11477 * sem_prag.adb (Set_Imported): Set new Import_Pragma 11478 field (Set_Imported): Don't set Is_Public (see 11479 Freeze.Wrap_Imported_Subprogram) 11480 * par-ch3.adb (P_Component_List): Handle unexpected null component. 11481 114822014-02-24 Yannick Moy <moy@adacore.com> 11483 11484 * sem_ch3.adb: Correct reference to SPARK RM in error messages. 11485 * gnat_rm.texi: Correct documentation of attribute Update. 11486 114872014-02-24 Ed Schonberg <schonberg@adacore.com> 11488 11489 * sem_ch5.adb (Analyze_Iterator_Specification): Reject container 11490 iterator in older versions of Ada. 11491 114922014-02-24 Gary Dismukes <dismukes@adacore.com> 11493 11494 * sem_ch5.adb, sem_aux.ads, sem_ch12.adb, gnat_ugn.texi, par.adb, 11495 par-ch12.adb: Change spelling 'parametrization' to 'parameterization'. 11496 114972014-02-24 Ed Schonberg <schonberg@adacore.com> 11498 11499 * sinfo.ads, sinfo.adb: New attribute Generalized_Indexing, for 11500 indexed_components that are instances of Ada 2012 container 11501 indexing operations. Analysis and resolution of such nodes 11502 is performed on the attribute, and the original source is 11503 preserved for ASIS operations. If expansion is enabled, the 11504 indexed component is replaced by the value of this attribute, 11505 which is in a call to an Indexing aspect, in most case wrapped 11506 in a dereference operation. 11507 * sem_ch4.adb (Analyze_Indexed_Component): Create 11508 Generalized_Indexing attribute when appropriate. 11509 (Analyze_Call): If prefix is not overloadable and has an indexing 11510 aspect, transform into an indexed component so it can be analyzed 11511 as a potential container indexing. 11512 (Analyze_Expression): If node is an indexed component with a 11513 Generalized_ Indexing, do not re-analyze. 11514 * sem_res.adb (Resolve_Generalized_Indexing): Complete resolution 11515 of an indexed_component that has been transformed into a container 11516 indexing operation. 11517 (Resolve_Indexed_Component): Call the above when required. 11518 (Resolve): Do not insert an explicit dereference operation on 11519 an indexed_component whose type has an implicit dereference: 11520 the operation is inserted when resolving the related 11521 Generalized_Indexing. 11522 115232014-02-24 Olivier Ramonat <ramonat@adacore.com> 11524 11525 * gnat_rm.texi, gnat_ugn.texi: Replace Ada Compiler by Ada Development 11526 Environment. 11527 115282014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11529 11530 * sem_prag.adb (Check_Constituent_Usage): Remove leading spaces in 11531 error messages. 11532 (Inconsistent_Mode_Error): Remove leading spaces in error messages. 11533 Merge the expected and available mode errors. 11534 (Report_Unused_Constituents): Remove leading spaces in error messages. 11535 (Report_Unused_States): Remove leading spaces in error messages. 11536 115372014-02-24 Thomas Quinot <quinot@adacore.com> 11538 11539 * par_sco.adb (Traverse_One): Refine categorization of statement 11540 SCOs. 11541 115422014-02-24 Robert Dewar <dewar@adacore.com> 11543 11544 * aspects.ads, aspects.adb: Remove aspects Ada_2005 and Ada_2012, 11545 Pure_05, Pure_12 and Preelaborate_05. 11546 * gnat_rm.texi: Update accordingly. 11547 * sem_prag.adb: Document one argument form of Ada_05/Ada_2005 11548 pragmas Document one argument form of Ada_12/Ada_2012 pragmas 11549 Recognize one argument form of these pragmas only in GNAT mode 11550 (-gnatg). 11551 115522014-02-24 Ed Schonberg <schonberg@adacore.com> 11553 11554 * s-dimmks.ads: Replace symbol for temperature, previously the 11555 Greek letter Theta, by the ASCII @ sign. 11556 * s-diflio.ads: ditto. 11557 115582014-02-24 Robert Dewar <dewar@adacore.com> 11559 11560 * exp_ch4.adb: Minor code reorganization (use OR for boolean 11561 variables). 11562 * sem_ch3.adb, sem_prag.adb, freeze.adb: Minor reformatting. 11563 115642014-02-24 Ben Brosgol <brosgol@adacore.com> 11565 11566 * gnat_ugn.texi, projects.texi: Added the necessary conditionalization 11567 so that references to gnatmem and ASIS tools do not appear in the FSF 11568 edition of the GNAT User's Guide. 11569 115702014-02-24 Yannick Moy <moy@adacore.com> 11571 11572 * freeze.adb (Freeze_Entity): Do not issue warning 11573 for pre/post being ignored on imported subprogram in GNATprove 11574 mode. 11575 115762014-02-24 Robert Dewar <dewar@adacore.com> 11577 11578 * exp_ch5.adb, sem_ch5.adb, sem_type.adb, sem_res.adb, sem_attr.adb, 11579 stand.ads, sem_eval.adb: Minor reformatting. 11580 115812014-02-24 Yannick Moy <moy@adacore.com> 11582 11583 * sem_prag.adb: Minor rewording in error message. 11584 115852014-02-24 Johannes Kanig <kanig@adacore.com> 11586 11587 * exp_util.adb (Expand_Subtype_From_Expr): Do not expand subtypes in 11588 GNATprove_mode, gnat2why doesn't need nor use these types. 11589 115902014-02-24 Gary Dismukes <dismukes@adacore.com> 11591 11592 * exp_ch4.adb (Expand_N_Op_Expon): On the AAMP 11593 target, in the case of signed integer exponentiation that uses a 11594 run-time routine, always select the Exp_* versions, since overflow 11595 checking is automatically done by AAMP arithmetic instructions. 11596 115972014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11598 11599 * sem_ch13.adb (Analyze_Aspect_Specifications): 11600 When the related context is a package instace, insert pragma 11601 Abstract_State after all internally-generated renamings related 11602 to the instance "header". 11603 116042014-02-24 Ed Schonberg <schonberg@adacore.com> 11605 11606 * sem_ch3.adb (Analyze_Declarations): Analyze Contract of abstract 11607 subprograms. 11608 * sem_disp.adb (Check_Dispatching_Context): A non-dispatching 11609 call to an abstract subprogram is legal if it appears in a 11610 pre/postcondition of another abstract operation. 11611 116122014-02-24 Sergey Rybin <rybin@adacore.com frybin> 11613 11614 * gnat_ugn.texi: Misc updates. 11615 116162014-02-24 Hristian Kirtchev <kirtchev@adacore.com> 11617 11618 * exp_prag.adb (Expand_Old): Set the type of the generated temporary. 11619 116202014-02-24 Gary Dismukes <dismukes@adacore.com> 11621 11622 * layout.adb (Layout_Variant_Record): Instantiate 11623 Generic_Check_Choices and call Check_Choices before calling 11624 Build_Discr_Checking_Funcs, since we need Others_Discrete_Choices 11625 set to prevent generating incorrect discriminant-checking 11626 functions for 'others' variants (functions that unconditionally 11627 return True rather than accounting for the values covered by the 11628 'others' choice). 11629 * sem_eval.ads (Subtypes_Statically_Compatible): Add formal 11630 Formal_Derived_Matching. 11631 (Subtypes_Statically_Match): Add formal Formal_Derived_Matching. 11632 * sem_eval.adb (Subtypes_Statically_Compatible): Pass new 11633 Formal_Derived_Matching formal to Subtypes_Statically_Match. 11634 (Subtypes_Statically_Match): Suppress the Object_Size matching 11635 test in the case where Formal_Derived_Matching is True. 11636 * sem_ch12.adb (Validate_Derived_Type_Instance): Pass 11637 True for Formal_Derived_Matching_Formal on the call to 11638 Subtypes_Statically_Compatible. 11639 116402014-02-23 Eric Botcazou <ebotcazou@adacore.com> 11641 11642 * gcc-interface/Make-lang.in (ADA_TOOLS_FLAGS_TO_PASS): Robustify. 11643 116442014-02-23 Eric Botcazou <ebotcazou@adacore.com> 11645 11646 * gcc-interface/utils2.c (build_simple_component_ref): Fix formatting. 11647 Look through a conversion between original and packable version to get 11648 the base object. 11649 (build_component_ref): Rework comment and fix formatting. 11650 116512014-02-20 Sergey Rybin <rybin@adacore.com frybin> 11652 11653 * gnat_ugn.texi, vms_data.ads (gnatelim): Add description of 11654 project-specific options. 11655 116562014-02-20 Ed Schonberg <schonberg@adacore.com> 11657 11658 * a-cbdlli.adb (Insert): When capacity exceeded, raise Capacity_Error, 11659 not Constraint_Error. 11660 * a-cbmutr.adb (Append_Child, Insert_Child, Prepend_Child): Ditto. 11661 * sem_ch5.adb: Code clean up. 11662 116632014-02-20 Hristian Kirtchev <kirtchev@adacore.com> 11664 11665 * sem_prag.adb (Usage_Error): Remove local 11666 constant Typ. Remove the specialized diagnostics for unconstrained 11667 or tagged items as those are not part of the explicit input set 11668 of the related subprogram and should not be flagged. 11669 116702014-02-20 Ed Schonberg <schonberg@adacore.com> 11671 11672 * sem_attr.adb: Add guard to preserve all errors. 11673 116742014-02-20 Vincent Celier <celier@adacore.com> 11675 11676 * switch-m.adb (Normalize_Compiler_Switches): Take into account 11677 switches that are recorded in ALI files: -gnateA, -gnateE, 11678 -gnateF, -gnateinn, -gnateu, -gnateV and -gnateY. 11679 116802014-02-20 Ed Schonberg <schonberg@adacore.com> 11681 11682 * sem_ch5.adb (Analyze_Iterator_Specification): Check legality 11683 of an element iterator form over a formal container with an 11684 Iterable aspect. 11685 * exp_ch5.adb (Build_Formal_Container_Iteration): Utility 11686 to create declaration and loop statements for both forms of 11687 container iterators. 11688 (Expand_Formal_Container_Element_Iterator): New procedure 11689 to handle loops of the form "for E of C" when C is a formal 11690 container. 11691 (Expand_Formal_Container_Iterator): Code cleanup. 11692 116932014-02-20 Hristian Kirtchev <kirtchev@adacore.com> 11694 11695 * sem_prag.adb (Add_Item_To_Name_Buffer): New routine. 11696 (Analyze_Contract_Case): Remove the use of 11697 "may". Replace "aspect Contract_Cases" to avoid categorization 11698 of aspect vs pragma. 11699 (Analyze_External_Property_In_Decl_Part): Remove the use of "formal". 11700 (Analyze_Global_Item): Remove 11701 the use of "formal", specify the subprogram. Split the 11702 error message about a state with visible refinement into 11703 two. Remove the use of "global" from "volatile global item". 11704 (Analyze_Initialization_Item): Ensure that the SPARK RM reference 11705 is on one line. 11706 (Analyze_Input_Output): Update the call to 11707 Check_Mode. Specify the duplicated item. Reword the error 11708 message concerning an input of a null output list. Use "\" 11709 for error message continuation. 11710 (Analyze_Part_Of): Remove 11711 the use of "may". Use "\" for error message continuation. 11712 (Analyze_Refined_Depends_In_Decl_Part): Update the error 11713 message concerning a useless refinement to match the format 11714 of Refined_Global. 11715 (Analyze_Refined_Global_In_Decl_Part): Reword the error message 11716 concerning a useless refinement. 11717 (Analyze_Refinement_Clause): Use "\" for error message continuation. 11718 (Check_Constituent_Usage): Use "\" for error message continuation. 11719 (Check_Dependency_Clause): Use "\" for error message continuation. 11720 (Check_Matching_Constituent): Use "\" for error message continuation. 11721 (Check_Missing_Part_Of): Use "\" for error message continuation. 11722 (Check_Mode): Renamed to 11723 Check_Role. Update the comment on usage. Redo the error reporting 11724 to use Role_Error. 11725 (Check_Mode_Restriction_In_Enclosing_Context): Use "\" for error 11726 message continuation. 11727 (Find_Mode): Renamed to Find_Role. Update the parameter profile along 11728 with comment on usage. Update all occurrences of Is_Input and Is_Output. 11729 (Inconsistent_Mode_Error): Use "\" for error message continuation. 11730 (Input_Match): Use "\" for error message continuation. 11731 (Role_Error): New routine. 11732 (Set_Convention_From_Pragma): Use "\" for error message continuation. 11733 (Usage_Error): Add local variable Error_Msg. Build specialized error 11734 message showcasing the offending item kind. Redo the diagnostics for 11735 unconstrained types. 11736 117372014-02-20 Ed Schonberg <schonberg@adacore.com> 11738 11739 * exp_util.adb (Is_Iterated_Container): Use high-level primitives 11740 to determine whether a type is a container type, rather than 11741 examining only its type declaration, so that subtypes and derived 11742 types are handled properly. 11743 117442014-02-20 Sergey Rybin <rybin@adacore.com frybin> 11745 11746 * gnat_ugn.texi: gnatmetric: add description of project-specific 11747 options. 11748 117492014-02-20 Ed Schonberg <schonberg@adacore.com> 11750 11751 * sem_attr.adb (Analyze_Attribute, case 'Update): Verify that 11752 all choices in an association for a record type have the same 11753 type, as is done for record aggregates. 11754 117552014-02-20 Robert Dewar <dewar@adacore.com> 11756 11757 * a-cborma.adb, a-cbhama.adb, a-cbdlli.adb, a-cbmutr.adb: Use pragma 11758 Unmodified rather than Warnings (Off). Make comments 11759 uniform in the four affected units. 11760 117612014-02-20 Robert Dewar <dewar@adacore.com> 11762 11763 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 11764 Object_Size): For non-scalar types allow any value that is a 11765 multiple of 8. 11766 * gnat_rm.texi: Document Object_Size for composites more clearly. 11767 117682014-02-20 Yannick Moy <moy@adacore.com> 11769 11770 * sem_util.ads, sem_util.adb (Default_Initialization): Remove function. 11771 117722014-02-20 Ed Schonberg <schonberg@adacore.com> 11773 11774 * stand.ads: Raise_Type: new predefined entity, used as the type 11775 of a Raise_Expression prior to resolution. 11776 * cstand.adb: Build entity for Raise_Type. 11777 * sem_ch11.adb (Analyze_Raise_Expression): use Raise_Type as the 11778 initial type of the node. 11779 * sem_type.adb (Covers): Raise_Type is compatible with all 11780 other types. 11781 * sem_res.adb (Resolve): Remove special handling of Any_Type on 11782 Raise_Expression nodes. 11783 (Resolve_Raise_Expression): Signal ambiguity if the type of the 11784 context is still Raise_Type. 11785 117862014-02-20 Robert Dewar <dewar@adacore.com> 11787 11788 * sem_ch12.adb (Validate_Access_Type_Instance): Add message if 11789 mismatching predicates. 11790 * sem_ch6.adb (Check_Conformance): Give better messages on 11791 predicate mismatch. 11792 * sem_eval.adb (Predicates_Match): Move to spec. 11793 * sem_eval.ads (Predicates_Match): Moved here from body. 11794 117952014-02-20 Ed Schonberg <schonberg@adacore.com> 11796 11797 * a-cbmutr.adb: Use default value in Insert_Child. 11798 117992014-02-20 Vincent Celier <celier@adacore.com> 11800 11801 * gnatcmd.adb, make.adb, prj-makr.adb, clean.adb: Call 11802 Stringt.Initialize in all project aware tools. 11803 118042014-02-20 Doug Rupp <rupp@adacore.com> 11805 11806 * gnat_ugn.texi: Document gnatbind -X option. 11807 * vms_data.ads: Minor warnings documentation reformatting. 11808 118092014-02-20 Ed Schonberg <schonberg@adacore.com> 11810 11811 * exp_ch3.adb (Expand_Freeze_Array_Type): Only create invariant 11812 procedure for a base type. 11813 118142014-02-20 Robert Dewar <dewar@adacore.com> 11815 11816 * sem_ch4.adb (Analyze_Case_Expression): Get type from first 11817 expression with type info. 11818 * sem_ch13.adb: Minor reformatting. 11819 * sem_eval.adb (Subtypes_Statically_Match): Make sure we return 11820 False if predicates do not match on the two types. 11821 118222014-02-20 Arnaud Charlet <charlet@adacore.com> 11823 11824 * sem_prag.adb (Analyze_Pragma [pragma Attach_Handler]): 11825 In Relaxed_RM_Semantics mode, allow any static integer value, 11826 for compatibility with other compilers. 11827 118282014-02-20 Vincent Celier <celier@adacore.com> 11829 11830 * errutil.adb (Initialize): Properly initialize entry in table 11831 Warnings when warnings are suppressed. 11832 118332014-02-20 Robert Dewar <dewar@adacore.com> 11834 11835 * s-os_lib.ads: Add warning about non-portability of Rename_File. 11836 * sem_util.ads, sem_util.adb (Is_Junk_Name): New function. 11837 * sem_warn.adb: Use Is_Junk_Name to suppress some warnings. 11838 * gnat_ugn.texi: Document no warnings on junk variable names. 11839 * layout.adb: Minor code reorganization (use Ekind_In). 11840 * stringt.adb: Move initialization of Null_String_Id to Initialize 11841 routine. 11842 118432014-02-20 Ed Schonberg <schonberg@adacore.com> 11844 11845 * sem_ch13.adb: Initialize optional Element_Id. 11846 118472014-02-20 Robert Dewar <dewar@adacore.com> 11848 11849 * s-os_lib.ads (Rename_File): Minor commment addition. 11850 118512014-02-20 Thomas Quinot <quinot@adacore.com> 11852 11853 * einfo.ads: Minor reformatting. 11854 118552014-02-20 Hristian Kirtchev <kirtchev@adacore.com> 11856 11857 * aspects.adb (Exchange_Aspects): New routine. 11858 * aspects.ads (Exchange_Aspects): New routine. 11859 * atree.adb (Rewrite): Do not check whether the save node has 11860 aspects as it never will, instead check the node about to be clobbered. 11861 * einfo.adb (Write_Field25_Name): Abstract_States can appear in 11862 entities of generic packages. 11863 * sem_ch6.adb (Analyze_Expression_Function): Fix the parent 11864 pointer of an aspect specification list after rewriting takes place. 11865 * sem_ch7.adb (Analyze_Package_Body_Helper): Swap the aspect 11866 specifications of the generic template and the copy used for analysis. 11867 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Swap 11868 the aspect specifications of the generic template and the 11869 copy used for analysis. 11870 (Analyze_Package_Instantiation): Propagate the aspect specifications 11871 from the generic template to the instantiation. 11872 (Build_Instance_Compilation_Unit_Nodes): Propagate the aspect 11873 specifications from the generic template to the instantiation. 11874 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle aspects 11875 Abstract_State, Initializes and Initial_Condition when they 11876 apply to a package instantiation. 11877 118782014-02-20 Robert Dewar <dewar@adacore.com> 11879 11880 * stringt.adb: Add call to Initialize in package initialization. 11881 118822014-02-20 Robert Dewar <dewar@adacore.com> 11883 11884 * a-crbtgk.adb, a-cihama.adb, a-coinve.adb, a-ciorse.adb, a-crbtgo.adb, 11885 a-cidlli.adb, a-cimutr.adb, a-cihase.adb, a-cohama.adb, a-coorse.adb, 11886 a-chtgke.adb, a-chtgop.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb, 11887 a-convec.adb, a-cohase.adb, a-chtgbk.adb, a-chtgbo.adb: Minor 11888 reformatting. 11889 118902014-02-20 Bob Duff <duff@adacore.com> 11891 11892 * s-os_lib.ads: Minor: Remove incorrect comment. 11893 118942014-02-20 Robert Dewar <dewar@adacore.com> 11895 11896 * sem_elab.adb (Check_Elab_Assign): Clearer warning message. 11897 118982014-02-20 Ed Schonberg <schonberg@adacore.com> 11899 11900 * a-cborma.adb (Assign): When creating a node without a specified 11901 element, insert an uninitialized element in the map, because 11902 the instance may provide an element type with a default 11903 initialization, e.g a scalar with a Default_Value aspect. 11904 * a-cbhama.adb (Assign_Key): Remove useless Allocate procedure. 11905 (Insert): In the version without explicit element, provide an 11906 uninitialized element, as above. 11907 * a-cbdlli.adb (Append): In the version without explicit element, 11908 provide an uninitalized element, as above. 11909 (Allocate): Remove unused version. 11910 119112014-02-20 Robert Dewar <dewar@adacore.com> 11912 11913 * sem_elab.adb: Minor code reorganization (use Nkind_In). 11914 * stringt.adb: Remove temporary pragma Warnings (Off). 11915 * stringt.ads: Add pragma Elaborate_Body to ensure initialization 11916 of Null_String_Id. 11917 119182014-02-20 Matthew Heaney <heaney@adacore.com> 11919 11920 * a-chtgbk.adb (Replace): Use correct offset when calculating bucket 11921 index. 11922 119232014-02-20 Ed Schonberg <schonberg@adacore.com> 11924 11925 * sem_ch5.adb (Analyze_Iterator_Specification): Initialize 11926 properly the cursor type for subsequent volatile testing in SPARK 11927 mode, when domain is a formal container with an Iterabe aspect. 11928 119292014-02-20 Robert Dewar <dewar@adacore.com> 11930 11931 * errout.adb (Set_Warnings_Mode_Off): Add Reason argument. 11932 (Set_Specific_Warning_Off): Add Reason argument. 11933 * errout.ads (Set_Warnings_Mode_Off): Add Reason argument. 11934 (Set_Specific_Warning_Off): Add Reason argument. 11935 * erroutc.adb (Warnings_Entry): Add Reason field 11936 (Specific_Warning_Entry): Add Reason field. 11937 (Warnings_Suppressed): return String_Id for Reason. 11938 (Warning_Specifically_Suppressed): return String_Id for Reason. 11939 * erroutc.ads (Warnings_Entry): Add Reason field. 11940 (Specific_Warning_Entry): Add Reason field. 11941 (Set_Specific_Warning_Off): Add Reason argument. 11942 (Set_Warnings_Mode_Off): Add Reason argument. 11943 (Warnings_Suppressed): return String_Id for Reason. 11944 (Warning_Specifically_Suppressed): return String_Id for Reason. 11945 * errutil.adb (Warnings_Suppressed): returns String_Id for Reason 11946 (Warning_Specifically_Suppressed): returns String_Id for Reason 11947 * gnat_rm.texi: Document that Warning parameter is string literal 11948 or a concatenation of string literals. 11949 * par-prag.adb: New handling for Reason argument. 11950 * sem_prag.adb (Analyze_Pragma, case Warning): New handling 11951 for Reason argument. 11952 * sem_util.ads, sem_util.adb (Get_Reason_String): New procedure. 11953 * sem_warn.ads (Warnings_Off_Entry): Add reason field. 11954 * stringt.adb: Set Null_String_Id. 11955 * stringt.ads (Null_String_Id): New constant. 11956 119572014-02-20 Robert Dewar <dewar@adacore.com> 11958 11959 * einfo.ads: Minor comment addition: Etype of package is 11960 Standard_Void_Type. 11961 * checks.adb, exp_aggr.adb, exp_atag.adb, exp_attr.adb, exp_ch13.adb, 11962 exp_ch2.adb, exp_ch3.adb, exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, 11963 exp_ch7.adb, exp_ch9.adb, exp_dbug.adb, exp_disp.adb, exp_imgv.adb, 11964 exp_intr.adb, exp_prag.adb, exp_sel.adb, exp_strm.adb, exp_util.adb, 11965 freeze.adb, rtsfind.adb, sem_aggr.adb, sem_attr.adb, sem_ch10.adb, 11966 sem_ch12.adb, sem_ch13.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, 11967 sem_ch6.adb, sem_ch8.adb, sem_dim.adb, sem_prag.adb, sem_res.adb, 11968 sem_util.adb, tbuild.adb, tbuild.ads: Remove New_Reference_To. 11969 Replace all calls with calls to New_Occurrence_Of. 11970 119712014-02-20 Robert Dewar <dewar@adacore.com> 11972 11973 * par-util.adb (Ignore, case of right paren): Make this a 11974 serious error. 11975 119762014-02-19 Robert Dewar <dewar@adacore.com> 11977 11978 * sem_ch5.adb, sem_prag.adb, sem_attr.adb: Minor reformatting. 11979 * debug.adb: Remove -gnatd.X switch, no longer used. 11980 * styleg.adb (Check_Then): Remove check of -gnatd.X, check is 11981 now always made. 11982 119832014-02-19 Bob Duff <duff@adacore.com> 11984 11985 * g-socket.ads: Minor: Correct some comments. 11986 119872014-02-19 Ed Schonberg <schonberg@adacore.com> 11988 11989 * sem_ch5.adb: Inhibit iterator rewriting in ASIS mode. 11990 119912014-02-19 Arnaud Charlet <charlet@adacore.com> 11992 11993 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not generate 11994 an error on out of range priorities if Relaxed_RM_Semantics. 11995 * sem_prag.adb (Analyze_Pragma): Ditto. 11996 119972014-02-19 Bob Duff <duff@adacore.com> 11998 11999 * sem_attr.adb (Resolve_Attribute): Detect the case of F'Access 12000 where F denotes the renaming of an enumeration literal, and 12001 issue a specialized error message. 12002 120032014-02-19 Matthew Heaney <heaney@adacore.com> 12004 12005 * a-chtgop.ads (Checked_Index): New operation. 12006 (Next): Changed mode of hash table. 12007 * a-chtgop.adb (Adjust, Delete_Node_Sans_Free): Detect tampering 12008 (Generic_Read, Reserve_Capacity): Ditto. 12009 (Generic_Equal): Detect tampering. 12010 (Next): Changed mode of hash table, detect tampering. 12011 * a-chtgke.ads (Checked_Index, Checked_Equivalent_Keys): New 12012 operation. 12013 (Find): Changed mode of hash table. 12014 * a-chtgke.adb (Checked_Equivalent_Keys): New operation 12015 (Delete_Key_Sans_Free, Generic_Conditional_Insert): Detect 12016 tampering. 12017 (Find): Changed mode of hash table, check for tampering. 12018 (Generic_Replace_Element): Check for tampering. 12019 * a-chtgbk.ads (Checked_Index, Checked_Equivalent_Keys): New operation. 12020 * a-chtgbk.adb (Checked_Index, Checked_Equivalent_Keys): New 12021 operation (Delete_Key_Sans_Free, Generic_Conditional_Insert): 12022 Detect tampering. 12023 (Find, Generic_Replace_Element): Check for tampering. 12024 * a-chtgbo.ads (Checked_Index): New operation. 12025 * a-chtgbo.adb (Checked_Index): New operation 12026 (Delete_Node_Sans_Free, Generic_Equal): Detect tampering. 12027 (Generic_Read, Next): Ditto. 12028 * a-cohase.adb, a-cihase.adb (Is_In): Changed mode of hash 12029 table (Difference, Intersection): Use variable view of 12030 source, detect tampering (Find, Is_Subset, Overlap): Use 12031 variable view of container (Symmetric_Difference, Union): 12032 Detect tampering (Vet): Use Checked_Index to detect tampering 12033 (Constant_Reference, Element, Find): Use variable view of 12034 container. 12035 (Update_Element_Preserving_Key): Detect tampering. 12036 * a-cbhase.adb (Difference, Find, Is_In): Use variable view 12037 of container. 12038 (Is_Subset): Ditto. 12039 (Equivalent_Sets, Overlap): Use Node's Next component. 12040 (Vet): Use Checked_Index to detect tampering. 12041 (Constant_Reference, Element, Find): Use variable view of container. 12042 (Update_Element_Preserving_Key): Detect tampering. 12043 * a-cohama.adb, a-cihama.adb, a-cbhama.adb (Constant_Reference, 12044 Element, Find): Use variable view of container. 12045 (Reference): Rename hash table component. 12046 (Vet): Use Checked_Index to detect tampering. 12047 120482014-02-19 Arnaud Charlet <charlet@adacore.com> 12049 12050 * adabkend.adb (Scan_Compiler_Arguments): Add missing handling 12051 of -nostdinc. 12052 120532014-02-19 Thomas Quinot <quinot@adacore.com> 12054 12055 * tbuild.adb (New_Occurrence_Of, New_Rerefence_To): Guard 12056 against calls without Def_Id. 12057 120582014-02-19 Claire Dross <dross@adacore.com> 12059 12060 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, 12061 a-cofove.ads: Add global annotations to subprograms. 12062 120632014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12064 12065 * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): Remove 12066 constants Errors, Pack_Id and Pack_Init. Remove variable Vars. 12067 Initial_Condition no longer requires the presence of pragma 12068 Initialized. Do not try to diagnose whether all variables mentioned in 12069 pragma Initializes also appear in Initial_Condition. 12070 (Collect_Variables): Removed. 12071 (Match_Variable): Removed. 12072 (Match_Variables): Removed. 12073 (Report_Unused_Variables): Removed. 12074 120752014-02-19 Thomas Quinot <quinot@adacore.com> 12076 12077 * gnat_rm.texi (pragma Stream_Convert): Minor rewording. 12078 120792014-02-19 Robert Dewar <dewar@adacore.com> 12080 12081 * sem_util.adb, sem_util.ads, prj-conf.adb, s-os_lib.adb: Minor 12082 reformatting. 12083 120842014-02-19 Vincent Celier <celier@adacore.com> 12085 12086 * prj-part.adb (Parse_Single_Project): Use the fully resolved 12087 project path, with all symbolic links resolved, to check if the 12088 same project is imported with a different unresolved path. 12089 * prj-tree.ads (Project_Name_And_Node): Component Canonical_Path 12090 changed to Resolved_Path to reflect that all symbolic links 12091 are resolved. 12092 120932014-02-19 Ed Schonberg <schonberg@adacore.com> 12094 12095 * sem_util.ads, sem_util.adb (Get_Cursor_Type): Moved to sem_util 12096 from sem_ch13, for use elsewhere. 12097 * sem_ch13.adb (Get_Cursor_Type): Moved to sem_util. 12098 * sem_ch5.adb (Analyze_Iterator_Specification): Set properly the 12099 cursor type on the loop variable when the iteration is over o 12100 formal container. 12101 121022014-02-19 Vincent Celier <celier@adacore.com> 12103 12104 * prj-conf.adb (Add_Default_GNAT_Naming_Scheme): Add declaration 12105 for an empty Target (Check_Target): Never fail when an empty 12106 target is declared in the configuration project. 12107 121082014-02-19 Ed Schonberg <schonberg@adacore.com> 12109 12110 * sem_prag.adb (Check_Arg_Is_Local_Name): Argument is local if 12111 the pragma comes fron a predicate aspect and the context is a 12112 record declaration within the scope that declares the type. 12113 121142014-02-19 Robert Dewar <dewar@adacore.com> 12115 12116 * gnat_rm.texi: Minor clarifications. 12117 * expander.adb, sem_aggr.adb: Add comments. 12118 121192014-02-19 Ed Schonberg <schonberg@adacore.com> 12120 12121 * sem_prag.adb (Check_Arg_Is_Local_Name): For an aspect that 12122 applies to a subprogram body, the name is the current scope, 12123 rather than being declared in the current scope. 12124 (Analyze_Pragma, case No_Return): Handle properly a No_Return 12125 aspect applied to a subprogram body. 12126 121272014-02-19 Ed Schonberg <schonberg@adacore.com> 12128 12129 * sem_ch13.adb (Resolve_Iterable_Operation): Improve resolution 12130 of overloaded subprograms, and fix bug in handling of primitive 12131 operation Element. 12132 121332014-02-19 Pascal Obry <obry@adacore.com> 12134 12135 * s-os_lib.adb: Minor reformatting. 12136 121372014-02-19 Yannick Moy <moy@adacore.com> 12138 12139 * expander.adb (Expand): Do nothing inside generics. 12140 * sem_aggr.adb (Aggregate_Constraint_Checks): Do nothing inside 12141 generics. 12142 121432014-02-19 Yannick Moy <moy@adacore.com> 12144 12145 * exp_ch2.adb: Remove useless 'with' of unit Uintp. 12146 121472014-02-19 Robert Dewar <dewar@adacore.com> 12148 12149 * sem_ch3.adb, style.adb, sem_prag.adb, sem_ch13.adb: Minor reformatting 12150 * a-sequio.adb: Remove useless pragma Extensions_Allowed (no 12151 longer needed). 12152 121532014-02-19 Claire Dross <dross@adacore.com> 12154 12155 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, 12156 a-cforse.ads, a-cofove.ads: Add Iterable aspect to formal containers. 12157 121582014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12159 12160 * sem_ch3.adb (Analyze_Declarations): Analyze 12161 a package contract at the end of the private declarations (if 12162 applicable), otherwise analyze it and the end of the visible 12163 declarations. 12164 121652014-02-19 Ed Schonberg <schonberg@adacore.com> 12166 12167 * style.adb (Missing_Overriding): If subprogram is an 12168 instantiation, place warning on the instance node itself, 12169 without mention of the original generic. Do not emit message 12170 if explicit Ada version is older than the introduction of the 12171 overriding indicator. 12172 121732014-02-19 Yannick Moy <moy@adacore.com> 12174 12175 * gnat_rm.texi: Doc clarifications. 12176 121772014-02-19 Yannick Moy <moy@adacore.com> 12178 12179 * exp_util.adb (Remove_Side_Effects): Do not remove side-effects 12180 inside a generic. 12181 121822014-02-19 Ed Schonberg <schonberg@adacore.com> 12183 12184 * sem_ch13.adb (Get_Cursor_Type): Obtain cursor type from 12185 specified First primitive, rather than by name. 12186 (Validate_Iterable_Aspect, Resolve_Iterable_Operation): Use it, 12187 and extend error checking for missing primitives and incorrect 12188 signatures. 12189 121902014-02-19 Ed Schonberg <schonberg@adacore.com> 12191 12192 * sem_ch3.adb (Check_Pragma_Implemented): Detect additional 12193 errors when a Synchronization aspect on an overriding protected 12194 operation does not match the given aspect on the overridden 12195 operation of an ancestor interface. 12196 121972014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12198 12199 * sem_prag.adb (Check_Loop_Pragma_Grouping): New routine. 12200 (Check_Loop_Pragma_Placement): Update 12201 comment on usage. Remove local variables Orig_Stmt and 12202 Within_Same_Sequence. Check that the current Loop_Invariant or 12203 Loop_Variant pragma is grouped together with other such pragmas. 12204 (Is_Loop_Pragma): New routine. 12205 (Prev_In_Loop): Removed. 12206 122072014-02-19 Robert Dewar <dewar@adacore.com> 12208 12209 * par-ch6.adb (P_Return): For extended return, end column lines 12210 up with RETURN. 12211 * par.adb: Minor documentation clarification. 12212 122132014-02-19 Yannick Moy <moy@adacore.com> 12214 12215 * sem_prag.adb (Check_Loop_Pragma_Placement): Add check 12216 that Loop_Invariant and Loop_Variant appear consecutively. 12217 * gnat_rm.texi Update documentation of Loop_Invariant and 12218 Loop_Variant pragmas. 12219 122202014-02-19 Robert Dewar <dewar@adacore.com> 12221 12222 * debug.adb: Document -gnatd.X. 12223 * par-ch5.adb (P_If_Statement): Always check THEN, even if not 12224 first token 12225 (Check_Then_Column): Ditto. 12226 * styleg.adb (Check_Then): Allow THEN on line after IF. 12227 (Check_Then): Check THEN placement under control of -gnatd.X 12228 * styleg.ads (Check_Then): Now called even if THEN is not first 12229 token on line. 12230 * stylesw.ads (Style_Check_If_Then_Layout): Document new 12231 relaxed rules. 12232 * gnat_ugn.texi: For -gnatyi, THEN can now be on line after IF. 12233 122342014-02-19 Robert Dewar <dewar@adacore.com> 12235 12236 * a-cfhama.adb, a-cfhase.adb, a-cforse.adb, a-cofove.adb, a-ngcefu.adb, 12237 a-teioed.adb, a-wtedit.adb, a-ztedit.adb, exp_ch5.adb, inline.adb, 12238 prj-pp.adb, prj-tree.adb, sem_ch12.adb, sem_ch8.adb, 12239 vms_conv.adb: Fix bad layout of IF statements 12240 122412014-02-19 Robert Dewar <dewar@adacore.com> 12242 12243 * exp_util.adb (Side_Effect_Free): Scalar if expressions can be SEF. 12244 122452014-02-19 Robert Dewar <dewar@adacore.com> 12246 12247 * exp_util.adb: Update comments. 12248 122492014-02-19 Doug Rupp <rupp@adacore.com> 12250 12251 * bindgen.adb (Gen_Adainit) [VMS] New global Float_Format. 12252 * init.c (__gl_float_format): [VMS] New global. 12253 (__gnat_set_features): Call FP_CONTROL to set FPSR for the float 12254 representation in effect. 12255 122562014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12257 12258 * exp_ch6.adb Add with and use clause for Exp_Prag. 12259 (Expand_Contract_Cases): Relocated to Exp_Prag. 12260 * exp_ch6.ads (Expand_Contract_Cases): Relocated to Exp_Prag. 12261 * exp_prag.adb Add with and use clauses for Checks and Validsw. 12262 (Expand_Contract_Cases): Relocated from Exp_Ch6. Update the 12263 structure of the expanded code to showcase the evaluation of 12264 attribute 'Old prefixes. Add local variable Old_Evals. Expand 12265 any attribute 'Old references found within a consequence. Add 12266 circuitry to evaluate the prefixes of attribute 'Old that 12267 belong to a selected consequence. 12268 (Expand_Old_In_Consequence): New routine. 12269 * exp_prag.ads (Expand_Contract_Cases): Relocated from Exp_Ch6. 12270 * sem_attr.adb (Check_Use_In_Contract_Cases): Warn that a 12271 potentially unevaluated prefix is always evaluated. 12272 122732014-02-19 Robert Dewar <dewar@adacore.com> 12274 12275 * exp_attr.adb (Expand_Min_Max_Attribute): Use Insert_Declaration 12276 (Expand_Min_Max_Attribute): Use Matching_Standard_Type. 12277 * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove special 12278 handling for the case of Modify_Tree_For_C, this approach did 12279 not work. 12280 * exp_util.adb (Matching_Standard_Type): New function 12281 (Side_Effect_Free): New top level functions (from 12282 Remove_Side_Effects). 12283 * exp_util.ads (Side_Effect_Free): New top level functions 12284 (moved from body). 12285 * sinfo.ads: Minor comment updates. 12286 122872014-02-19 Ed Schonberg <schonberg@adacore.com> 12288 12289 * exp_ch6.adb (Expand_Simple_Function_Return): If return 12290 type is unconstrained and uses the secondary stack, mark the 12291 enclosing function accordingly, to ensure that the value is not 12292 prematurely removed. 12293 122942014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12295 12296 * par.adb Alphabetize the routines in Par.Sync. 12297 (Resync_Past_Malformed_Aspect): New routine. 12298 * par-ch13.adb (Get_Aspect_Specifications): Alphabetize local 12299 variables. Code and comment reformatting. Detect missing 12300 parentheses on aspects [Refined_]Global and [Refined_]Depends 12301 with a non-null definition. 12302 * par-sync.adb: Alphabetize all routines in this separate unit. 12303 (Resync_Past_Malformed_Aspect): New routine. 12304 123052014-02-19 Robert Dewar <dewar@adacore.com> 12306 12307 * sem_eval.ads, sem_eval.adb (Subtypes_Statically_Match): Return False 12308 if Esize values do not match. 12309 123102014-02-19 Yannick Moy <moy@adacore.com> 12311 12312 * sinfo.ads: Minor comment update. 12313 123142014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12315 12316 * atree.ads: Minor reformatting (change Entity_Info to Einfo). 12317 123182014-02-19 Thomas Quinot <quinot@adacore.com> 12319 12320 * exp_ch7.adb (Find_Node_To_Be_Wrapped): An assignment statement 12321 that has the No_Ctrl_Actions flag is a suitable node to be 12322 wrapped if the assigned expression has no finalization actions. 12323 * sem_eval.adb (Eval_Entity_Name): For a compile time known 12324 boolean value, mark the corresponding condition SCO as constant. 12325 123262014-02-19 Robert Dewar <dewar@adacore.com> 12327 12328 * exp_util.adb: Minor reformatting. 12329 * exp_util.ads (Matching_Standard_Type): New function. 12330 * exp_ch7.adb: Minor reformatting. 12331 123322014-02-19 Ed Schonberg <schonberg@adacore.com> 12333 12334 * sem_ch13.adb (Get_Cursor_Type): Use scope of iterable type 12335 to find declaration for Cursor, to handle properly the case of 12336 a discriminated iterable type. 12337 123382014-02-19 Vincent Celier <celier@adacore.com> 12339 12340 * gnatcmd.adb (GNATCmd): Always replace the object dirs of 12341 imported library projects with the library ALI dirs, when setting 12342 the object paths. 12343 * prj-env.ads (Ada_Objects_Path): Correct comments about 12344 argument Including_Libraries. 12345 123462014-02-19 Gary Dismukes <dismukes@adacore.com> 12347 12348 * gnat_rm.texi: Minor spelling fixes. 12349 123502014-02-19 Doug Rupp <rupp@adacore.com> 12351 12352 * init.c: Remove unneeded code. 12353 * fe.h (Float_Format): New macro 12354 * gcc-interface/trans.c (gigi): On VMS, set vms_float_format. 12355 123562014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12357 12358 * sem_prag.adb (Check_Refined_Global_Item): 12359 A state or variable acts as a constituent only it is part of an 12360 encapsulating state and the state has visible refinement. 12361 123622014-02-19 Ed Schonberg <schonberg@adacore.com> 12363 12364 * sem_ch6.adb (Analyze_Subprogram_Contract): Do not warn on a 12365 postcondition for a function when the expression does not mention 12366 'Result but the function has in-out parameters. 12367 123682014-02-19 Robert Dewar <dewar@adacore.com> 12369 12370 * gnat_rm.texi: Add documentation on Value_Size forcing biased 12371 representation. 12372 123732014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12374 12375 * lib-xref.ads Remove the small table of letter and symbol usage as we 12376 already have one. 12377 123782014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12379 12380 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Emit specific error 12381 messages depending on the offending misplaced aspect specifications. 12382 (Diagnose_Misplaced_Aspect_Specifications): New routine. 12383 123842014-02-19 Ed Schonberg <schonberg@adacore.com> 12385 12386 * sem_ch13.adb (Get_Cursor): Utility to retrieve cursor type 12387 for iterable aspect primitives. 12388 (Resolve_Iterable_Operation): Use expected signature of iterable 12389 aspect to resolve primitive when overloading is present. 12390 (Validate_Iterable_Aspect, Analyze_Aspects_At_Freeze_Point): use it. 12391 (Check_Signature): Removed. 12392 123932014-02-19 Yannick Moy <moy@adacore.com> 12394 12395 * sem_ch10.adb (Analyze_Proper_Body): Issue error on missing 12396 subunit in GNATprove_Mode. 12397 * sinfo.ads (GNATprove_Mode): Document error issued in GNATprove_Mode. 12398 123992014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12400 12401 * lib-xref.ads Alphabetize the contents of table 12402 Xref_Entity_Letters. Add an entry in table Xref_Entity_Letters 12403 for E_Abstract_State. List all letters and symbols in use. 12404 * sem_prag.adb (Analyze_Abstract_State): Update all calls 12405 to Create_Abstract_State to reflect the new signature. 12406 (Create_Abstract_State): Change subprogram profile and update 12407 the comment on usage. Use the proper location of the state 12408 declaration when creating a new abstract state entity. Do not 12409 generate an external name, but simply reuse the name coming from 12410 the state declaration. 12411 124122014-02-19 Robert Dewar <dewar@adacore.com> 12413 12414 * exp_ch4.adb (Expand_N_Expression_With_Actions): Make sure 12415 declarations get properly inserted in Modify_Tree_For_C mode. 12416 * sinfo.ads: Minor comment addition. 12417 124182014-02-19 Robert Dewar <dewar@adacore.com> 12419 12420 * par-ch9.adb, exp_ch5.adb, sem_ch5.adb, exp_attr.adb, sem_util.adb, 12421 sem_util.ads, sem_ch13.adb, sem_ch13.ads: Minor reformatting. 12422 124232014-02-19 Ed Schonberg <schonberg@adacore.com> 12424 12425 * style.adb (Missing_Overriding): Warning does not apply in 12426 language versions prior to Ada 2005. 12427 * snames.ads-tmpl: Add Name_Iterable and Attribute_Iterable. 12428 * sem_attr.adb: Add Attribute_Iterable where needed. 12429 * exp_attr.adb: ditto. 12430 * exp_ch5.adb (Expand_Formal_Container_Loop): New procedure to 12431 handle loops and quantified expressions over types that have an 12432 iterable aspect. Called from Expand_Iterator_Loop. 12433 * sem_ch5.adb (Analyze_Iterator_Specification): Recognize types 12434 with Iterable aspect. 12435 * sem_ch13.adb (Validate_Iterable_Aspect): Verify that the 12436 subprograms specified in the Iterable aspect have the proper 12437 signature involving container and cursor. 12438 (Check_Aspect_At_Freeze_Point): Analyze value of iterable aspect. 12439 * sem_ch13.ads (Validate_Iterable_Aspect): New subprogram. 12440 * sem_util.ads, sem_util.adb (Get_Iterable_Type_Primitive): 12441 New procedure to retrieve one of the primitives First, Last, 12442 or Has_Element, from the value of the iterable aspect of a 12443 formal container. 12444 (Is_Container_Element): Predicate to recognize expressions 12445 that denote an element of one of the predefined containers, 12446 for possible optimization. This subprogram is not currently 12447 used, pending ARG discussions on the legality of the proposed 12448 optimization. Worth preserving for eventual use. 12449 (Is_Iterator): Recognize formal container types. 12450 * aspects.ads, aspects.adb: Add Aspect_Iterable where needed. 12451 124522014-02-19 Robert Dewar <dewar@adacore.com> 12453 12454 * exp_attr.adb (Expand_Min_Max_Attribute): New procedure 12455 (Expand_N_Attribute_Reference): Use this procedure for Min and Max. 12456 * exp_ch4.adb (Expand_N_Expression_With_Actions): Remove object 12457 declarations from list of actions. 12458 * output.ads, output.adb (Delete_Last_Char): New procedure. 12459 * sinfo.ads: Document handling of Mod and expression with actions 12460 in Modify_Tree_For_C mode. 12461 124622014-02-19 Ed Schonberg <schonberg@adacore.com> 12463 12464 * par-ch9.adb (P_Task): Add a null statement to produce a 12465 well-formed task body when due to a previous syntax error the 12466 statement list is empty. 12467 124682014-02-19 Hristian Kirtchev <kirtchev@adacore.com> 12469 12470 * sem_prag.adb (Check_Dependency_Clause): Account 12471 for the case where a state with a non-null refinement matches a 12472 null output list. Comment reformatting. 12473 (Inputs_Match): Copy a solitary input to avoid an assertion failure 12474 when trying to match the same input in multiple clauses. 12475 124762014-02-19 Gary Dismukes <dismukes@adacore.com> 12477 12478 * sem_attr.adb: Minor typo fix. 12479 124802014-02-18 Robert Dewar <dewar@adacore.com> 12481 12482 * cstand.adb (Build_Signed_Integer_Type): Minor change of formal 12483 from Int to Nat (Build_Unsigned_Integer_Type): New procedure 12484 (Create_Standard): Create new unsigned types. 12485 * exp_ch4.adb (Expand_N_Op_Mod): Expand mod in Modify_Tree_For_C 12486 mode (Expand_N_Reference): Removed, problematic and not needed 12487 for now. 12488 * exp_ch4.ads (Expand_N_Reference): Removed, problematic and 12489 not needed for now. 12490 * exp_util.ads, exp_util.adb (Power_Of_Two): New function. 12491 * expander.adb: Remove call to Expand_N_Reference (problematic, 12492 and not needed now). 12493 * sem_aux.ads, sem_aux.adb (Corresponding_Unsigned_Type): New function. 12494 * stand.adb: Read and write unsigned type entities. 12495 * stand.ads: Add new unsigned types. 12496 124972014-02-18 Hristian Kirtchev <kirtchev@adacore.com> 12498 12499 * sem_ch4.adb (Analyze_Call): Do not mark a function call 12500 as being inside an assertion expression as the flag is now removed. 12501 (Check_Ghost_Subprogram_Call): Do not query the 12502 In_Assertion_Expression flag as it is now removed, instead use 12503 a predicate function. 12504 * sem_elab.adb (Check_Internal_Call_Continue): Do not query the 12505 In_Assertion_Expression flag as it is now removed, instead use 12506 a predicate function. 12507 * sem_prag.ads: Add new table Assertion_Expression_Pragma. 12508 * sem_util.adb Add with and use clause for Sem_Prag. 12509 (In_Assertion_Expression_Pragma): New routine. 12510 * sem_util.ads (In_Assertion_Expression_Pragma): New routine. 12511 * sinfo.adb (In_Assertion_Expression): Removed. 12512 (Set_In_Assertion_Expression): Removed. 12513 * sinfo.ads Remove flag In_Assertion_Expression along with its 12514 use in nodes. 12515 (In_Assertion_Expression): Removed along with 12516 pragma Inline. (Set_In_Assertion_Expression): Removed along 12517 with pragma Inline. 12518 125192014-02-18 Sergey Rybin <rybin@adacore.com frybin> 12520 12521 * gnat_ugn.texi: gnatpp section: add note that '-j' cannot be 12522 used together with '-r', '-rf' or '-rnb' options. 12523 125242014-02-18 Hristian Kirtchev <kirtchev@adacore.com> 12525 12526 * sem_attr.adb (Analyze_Attribute): Comment 12527 and code reformatting. Use separate routines to check the 12528 legality of attribute 'Old in certain pragmas. Verify 12529 the use of 'Old, 'Result and locally declared entities 12530 within the prefix of 'Old. 12531 (Check_References_In_Prefix): New routine. 12532 (Check_Use_In_Contract_Cases): New routine. 12533 (Check_Use_In_Test_Case): New routine. 12534 125352014-02-18 Vincent Celier <celier@adacore.com> 12536 12537 * sem_aux.adb (Is_By_Reference_Type): For each components of 12538 a record type, check also if the component is volatile as it 12539 may have an aspect that makes it volatile. If it is, then the 12540 record type is a by reference type. 12541 125422014-02-18 Robert Dewar <dewar@adacore.com> 12543 12544 * exp_attr.adb: Minor reformatting. 12545 * exp_ch4.ads, exp_ch4.adb (Expand_N_Reference): New procedure. 12546 * exp_util.adb (Remove_Side_Effects): Add conditional expressions 12547 as another case where we don't generate N_Reference nodes for 12548 primitive types. 12549 * expander.adb (Expand): Add call to Expand_N_Reference. 12550 125512014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12552 12553 * sem_prag.adb (Analyze_Refined_Pragma): Remove 12554 local variable Pack_Spec. Refinement pragmas may now apply to 12555 bodies of both visible and private subprograms. 12556 125572014-02-06 Robert Dewar <dewar@adacore.com> 12558 12559 * exp_attr.adb (Expand_Loop_Entry_Attribute): 12560 Minor change (Attr => N) (Expand_Pred_Succ): New name 12561 Expand_Pred_Succ_Attribute (Expand_N_Attribute_Reference, case 12562 Max): Expand into if expression if Modify_Tree_For_C mode. 12563 (Expand_N_Attribute_Reference, case Min): ditto 12564 * sinfo.ads: Modify_Tree_For_C takes care of expanding Min and 12565 Max attributes. 12566 125672014-02-06 Ed Schonberg <schonberg@adacore.com> 12568 12569 * sem_ch3.adb (Analyze_Object_Declaration): Do not generate 12570 predicate check if this is an internal declaration with 12571 No_Initialization set, as for an expanded aggregate component. 12572 125732014-02-06 Doug Rupp <rupp@adacore.com> 12574 12575 * init.c (__gnat_default_resignal_p) [VMS]: Test for and resignal 12576 conditions with severity of "SUCCESS" or "INFORMATIONAL". 12577 125782014-02-06 Yannick Moy <moy@adacore.com> 12579 12580 * sem_prag.adb (Analyze_Pragma): Analyze pragma 12581 Debug rewritten node before rewriting it as a null statement in 12582 GNATprove mode. 12583 125842014-02-06 Robert Dewar <dewar@adacore.com> 12585 12586 * sem_attr.adb (Min_Max): New procedure. 12587 (Max_Alignment_For_Allocation_Max_Size_In_Storage_Elements): New 12588 procedure. 12589 125902014-02-06 Sergey Rybin <rybin@adacore.com frybin> 12591 12592 * gnat_ugn.texi, vms_data.ads: Add documentation of '-t' option for 12593 gnatmetric/gnatpp. 12594 125952014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12596 12597 * sem_prag.adb (Analyze_Abstract_State): Update 12598 all calls to Create_Abstract_State to pass the proper state 12599 "declaration". 12600 (Create_Abstract_State): Add new formal parameter 12601 State_Decl along with comment on usage. Establish a link between 12602 the abstract state entity and the state declaration. 12603 126042014-02-06 Robert Dewar <dewar@adacore.com> 12605 12606 * sem_attr.adb (Analyze_Attribute, case Max): Check for improper 12607 comparison of unordered enumeration type. 12608 (Analyze_Attribute, case Max): Check for improper comparison of 12609 unordered enumeration type. 12610 * sem_res.adb (Bad_Unordered_Enumeration_Reference): Moved to 12611 sem_util.adb. 12612 * sem_util.ads, sem_util.adb (Bad_Unordered_Enumeration_Reference): 12613 Moved here from Sem_Res. 12614 126152014-02-06 Robert Dewar <dewar@adacore.com> 12616 12617 * sem_ch3.adb, sem_prag.adb, sem_res.adb, lib-xref.adb: Minor 12618 reformatting. 12619 126202014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12621 12622 * sem_ch6.adb (Process_Formals): Error message reformatting. 12623 126242014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12625 12626 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Add local 12627 variable Spec. Do not inherit the null indicator from the 12628 subprogram body when generating the spec. 12629 126302014-02-06 Robert Dewar <dewar@adacore.com> 12631 12632 * casing.adb (Determine_Casing): Consider SPARK_Mode to be 12633 mixed case. 12634 126352014-02-06 Ed Schonberg <schonberg@adacore.com> 12636 12637 * exp_ch6.adb (Is_Build_In_Place_Function): Predicate is false 12638 when the function has a foreign convention, but not if only the 12639 limited return type has such a convention. 12640 126412014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12642 12643 * sem_ch3.adb (Handle_Late_Controlled_Primitive): Remove local 12644 variable Spec. Comment reformatting. Use Copy_Separate_Tree 12645 rather than New_Copy_Tree when building the corresponding 12646 subprogram declaration. 12647 126482014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12649 12650 * sem_prag.adb (Analyze_Global_Item): Remove 12651 the mode-related checks on abstract states with enabled external 12652 properties. 12653 (Property_Error): Removed. 12654 126552014-02-06 Javier Miranda <miranda@adacore.com> 12656 12657 * lib-xref.adb (Generate_Reference): When 12658 generating the reference to the first private entity take care 12659 of handling swapped entities. 12660 126612014-02-06 Sergey Rybin <rybin@adacore.com frybin> 12662 12663 * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for 12664 gnatmetric. 12665 126662014-02-06 Robert Dewar <dewar@adacore.com> 12667 12668 * exp_ch4.adb (Expand_N_Shift_Left): Handle shift counts greater 12669 than the word size when operating in Modify_Tree_For_C mode. 12670 * sinfo.ads: Add documentation section on Modify_Tree_For_C mode. 12671 126722014-02-06 Robert Dewar <dewar@adacore.com> 12673 12674 * erroutc.adb (Warning_Specifically_Suppressed.Matches): 12675 compare is case insensitive. 12676 * gnat_rm.texi: Document that string compare for Warnings Off 12677 is now case insensitive. 12678 126792014-02-06 Eric Botcazou <ebotcazou@adacore.com> 12680 12681 * gnat_rm.texi: Small wording tweak. 12682 126832014-02-06 Pascal Obry <obry@adacore.com> 12684 12685 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Included_Patterns 12686 and Included_Artifact_Patterns attribute definitions. 12687 126882014-02-06 Yannick Moy <moy@adacore.com> 12689 12690 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set 12691 SPARK_Mode pragma component for all subprograms, including stubs. 12692 126932014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12694 12695 * sem_ch10.adb (Analyze_Package_Body_Stub): Maintain 12696 the configuration options of the enclosing context in a 12697 stack-like fasion. 12698 (Analyze_Subprogram_Body_Stub): Maintain the 12699 configuration options of the enclosing context in a stack-like 12700 fashion. 12701 127022014-02-06 Robert Dewar <dewar@adacore.com> 12703 12704 * debug.adb: -gnatd.u sets Modify_Tree_For C 12705 * exp_ch4.adb (Expand_N_Op_Rotate_Left): Expand out 12706 if Modify_Tree_For_C (Expand_N_Op_Rotate_Right): ditto. 12707 (Expand_N_Op_Arithmetic_Right_Shift): ditto. 12708 * exp_intr.adb (Expand_Shift): Call expander so we do 12709 Modify_Tree_For_C expansions. 12710 * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C 12711 if -gnatd.u set. 12712 127132014-02-06 Fedor Rybin <frybin@adacore.com> 12714 12715 * prj-proc.ads (Tree_Loaded_Callback): new type Callback used 12716 after the phase 1 of the processing of each aggregated project 12717 to get access to project trees of aggregated projects. 12718 (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded 12719 If specified, On_New_Tree_Loaded is called after each aggregated 12720 project has been processed succesfully. 12721 (Process): new parameter On_New_Tree_Loaded. 12722 * prj-proc.adb (Process_Aggregated_Projects): On_New_Tree_Loaded 12723 callback added after processing of each aggregated project. 12724 (Recursive_Process): new parameter On_New_Tree_Loaded. 12725 (Process): new parameter On_New_Tree_Loaded. 12726 (Process_Project_Tree_Phase_1): new parameter On_New_Tree_Loaded. 12727 * prj-conf.ads (Parse_Project_And_Apply_Config): new parameter 12728 On_New_Tree_Loaded. 12729 * prj-conf.adb (Parse_Project_And_Apply_Config): new parameter 12730 On_New_Tree_Loaded. 12731 127322014-02-06 Bob Duff <duff@adacore.com> 12733 12734 * gnat_ugn.texi: Implement --insert-blank-lines and 12735 --preserve-blank-lines switches. 12736 127372014-02-06 Sergey Rybin <rybin@adacore.com frybin> 12738 12739 * gnat_ugn.texi, vms_data.ads: Add documentation of -j option for 12740 gnatelim. 12741 127422014-02-06 Eric Botcazou <ebotcazou@adacore.com> 12743 12744 * gnat_rm.texi (Pragma Optimize_Alignment): Document the effect 12745 of the pragma on individual objects. 12746 127472014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12748 12749 * einfo.adb Node29 is now used as BIP_Initialization_Call. 12750 (BIP_Initialization_Call): New routine. 12751 (Set_BIP_Initialization_Call): New routine. 12752 (Write_Field29_Name): Add an entry for constants and variables. 12753 * einfo.ads Add new attribute BIP_Initialization_Call and update 12754 its usage in nodes. 12755 (BIP_Initialization_Call): New routine along with pragma Inline. 12756 (Set_BIP_Initialization_Call): New routine along with pragma Inline. 12757 * exp_ch6.adb (Make_Build_In_Place_Call_In_Object_Declaration): 12758 Add local declaration Res_Decl. Capture the build-in-place 12759 initialization call when the related object declaration has 12760 created a transient block. 12761 * exp_ch7.adb (Process_Transient_Objects): Add local variable 12762 Fin_Insrt. Recognize a scenario where an object declaration acts 12763 as a transient context and is initialized by a build-in-place 12764 function call. 12765 127662014-02-06 Pascal Obry <obry@adacore.com> 12767 12768 * prj-util.adb (For_Interface_Sources): Fix handling of required 12769 bodies for aggregate libs. 12770 127712014-02-06 Robert Dewar <dewar@adacore.com> 12772 12773 * nlists.ads: Minor comment clarifications. 12774 127752014-02-06 Robert Dewar <dewar@adacore.com> 12776 12777 * gnat1drv.adb (Adjust_Global_Switches): Set Modify_Tree_For_C 12778 if gnatd.V set. 12779 * opt.ads (Modify_Tree_For_C): New flag. 12780 * output.ads, output.adb (Last_Char): New function. 12781 127822014-02-06 Pascal Obry <obry@adacore.com> 12783 12784 * projects.texi, prj-env.adb (Initialize_Default_Project_Path): Add 12785 share/gpr for cross-builds. 12786 127872014-02-06 Robert Dewar <dewar@adacore.com> 12788 12789 * exp_util.ads, checks.adb, sem_prag.adb, prj-util.adb, sem_ch13.adb: 12790 Minor reformatting and code clean ups. 12791 127922014-02-06 Pascal Obry <obry@adacore.com> 12793 12794 * prj-util.adb (For_Interface_Sources): Skip non compilable languages. 12795 * prj.ads: Minor typo fix in comment. 12796 127972014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12798 12799 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Add 12800 local variable Expr. Flag clauses with extra parenthesis as this 12801 is not allowed by the syntax of the pragma. Code reformatting. 12802 128032014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12804 12805 * exp_attr.adb (Expand_N_Attribute_Reference): Alphabetize 12806 variables. Rename variabme Tnn to Temp. Do not create a temporary 12807 if assertions are disabled. Find enclosing routine _Postconditions 12808 and insert the temporary that captures the value of the prefix 12809 before the routine. 12810 * exp_ch6.adb (Build_Postconditions_Procedure): 12811 Insert the generated _Postconditions routine 12812 before the first source declaration of the related 12813 subprogram. 12814 (Insert_After_Last_Declaration): Removed. 12815 (Insert_Before_First_Source_Declaration): New routine. 12816 128172014-02-06 Ed Schonberg <schonberg@adacore.com> 12818 12819 * exp_util.adb, exp_util.ads (Within_Internal_Subprogram): 12820 Utility to determine whether current expansion is for the body 12821 of a predefined primitive operation. 12822 (Make_Predicate_Check): Use Within_Internal_Subpgram 12823 * checks.adb (Apply_Predicate_Check): Use 12824 Within_Internal_Subprogram 12825 * sem_ch13.adb (Freeze_Entity_Checks): Ditto. 12826 128272014-02-06 Pascal Obry <obry@adacore.com> 12828 12829 * prj.ads, prj-util.adb: Minor reformatting. 12830 128312014-02-06 Ed Schonberg <schonberg@adacore.com> 12832 12833 * exp_ch6.adb (Expand_Subprogram_Contract, Append_Enabled_Item): 12834 Take into account the Split_PPC flag to ensure that conjuncts 12835 in a composite postcondition aspect are tested in source order. 12836 128372014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12838 12839 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): Flag illegal 12840 use of SPARK_Mode. 12841 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Flag 12842 illegal use of SPARK_Mode. 12843 (Instantiate_Subprogram_Body): Flag illegal use of SPARK_Mode. 12844 * sem_prag.adb (Analyze_Pragma): Code reformatting. 12845 * sem_util.adb Add with and use clause for Aspects. 12846 (Check_SPARK_Mode_In_Generic): New routine. 12847 * sem_util.ads (Check_SPARK_Mode_In_Generic): New routine. 12848 128492014-02-06 Thomas Quinot <quinot@adacore.com> 12850 12851 * a-calend.adb (Formatting_Operations.Split): Ensure that 12852 Time_Error is raised for invalid time values. 12853 128542014-02-06 Arnaud Charlet <charlet@adacore.com> 12855 12856 * sem_prag.adb (Analyze_Pragma): Rewrite as a null statement 12857 in GNATprove_Mode. 12858 128592014-02-06 Robert Dewar <dewar@adacore.com> 12860 12861 * einfo.ads, einfo.adb (Is_Discriminant_Check_Function): New flag. 12862 * exp_ch3.adb (Build_Dcheck_Function): Set 12863 Is_Discriminant_Check_Function. 12864 128652014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12866 12867 * exp_ch7.adb (Is_Subprogram_Call): Inspect 12868 the original tree in certain cases where a construct has been 12869 factored out and replaced by a reference to a temporary. 12870 128712014-02-06 Ed Schonberg <schonberg@adacore.com> 12872 12873 * sem_ch3.adb (Process_Full_View): Fix typo in the order of 12874 parameters when propagating predicate function to full view. 12875 (Find_Type_Of_Object): Freeze base type of object type to catch 12876 premature use of discriminated private type without a full view. 12877 128782014-02-06 Robert Dewar <dewar@adacore.com> 12879 12880 * sprint.adb: Minor reformatting. 12881 128822014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12883 12884 * exp_ch4.adb (Process_Transient_Object): Add local variable 12885 Temp_Ins. When the transient object is initialized by an 12886 aggregate, the hook must capture the object after the last 12887 component assignment takes place. 12888 * exp_ch7.adb (Detect_Subprogram_Call): Expose the subprogram to 12889 routine Is_Subprogram_Call. 12890 (Is_Subprogram_Call): Inspect an 12891 aggregate that has been heavily expanded for subprogram calls. 12892 (Process_Transient_Objects): Add local variables Expr, Ptr_Id 12893 and Temp_Ins. Remove the nested declare block and adjust the 12894 indentation. When the transient object is initialized by an 12895 aggregate, the hook must capture the object after the last 12896 component assignment takes place. 12897 128982014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12899 12900 * sem_prag.adb (Analyze_Global_Item): Detect illegal uses of 12901 external states with enabled properties that do not match the 12902 global mode. 12903 (Property_Error): New routine. 12904 * sem_res.adb (Property_Error): New routine. 12905 (Resolve_Actuals): Detect illegal uses of external variables with 12906 enabled properties in procedure calls that do not match the mode of 12907 the corresponding formal parameter. 12908 129092014-02-06 Hristian Kirtchev <kirtchev@adacore.com> 12910 12911 * sem_util.adb (Has_Enabled_Property): Rename 12912 formal parameter Prop_Nam to Property. Update the comment on usage 12913 and all occurrences in the body. Add local variable Prop_Nam. When 12914 inspecting a property with an expression, the property name 12915 appears as the first choice of the component association. 12916 129172014-02-04 Robert Dewar <dewar@adacore.com> 12918 12919 * exp_ch5.adb, einfo.ads, freeze.adb, sem_ch8.adb: Minor reformatting. 12920 129212014-02-04 Gary Dismukes <dismukes@adacore.com> 12922 12923 * sem_aggr.adb: Change "runtime" to "run time" in warning message, 12924 for consistency with other messages. 12925 129262014-02-04 Ed Schonberg <schonberg@adacore.com> 12927 12928 * exp_ch5.adb (Expand_Iterator_Loop): For a container element 12929 iterator, indicate that the element is a constant if the container 12930 type does not have a variable indexing aspect. 12931 * sem_ch8.adb (Analyze_Object_Renaming): If the entity is already 12932 marked as constant, do not reset its Ekind, to ensure that 12933 container elements in an element loop are not modified if the 12934 container (e.g. a hashed set) only has a constant indexing aspect. 12935 129362014-02-04 Arnaud Charlet <charlet@adacore.com> 12937 12938 * g-souinf.ads: Subprograms in this unit are actually not pure. 12939 * freeze.adb (Freeze_Subprogram): Do not reset Is_Pure for Intrinsics. 12940 * einfo.ads (Is_Pure): Update doc to match implementation. 12941 129422014-02-04 Gary Dismukes <dismukes@adacore.com> 12943 12944 * exp_ch13.adb: Minor spelling fix. 12945 129462014-02-04 Robert Dewar <dewar@adacore.com> 12947 12948 * opt.ads: Minor comment update. 12949 129502014-02-04 Robert Dewar <dewar@adacore.com> 12951 12952 * exp_ch4.adb (Expand_N_Expression_With_Actions): Use Rewrite 12953 instead of Replace. 12954 129552014-02-04 Ed Schonberg <schonberg@adacore.com> 12956 12957 * sem_aggr.adb (Resolve_Array_Aggregate): Suppress warnings 12958 on null expressions if component type is non-null, when the 12959 corresponding association covers an empty range of index values. 12960 129612014-02-04 Robert Dewar <dewar@adacore.com> 12962 12963 * sinfo.ads: Further comments on N_Expression_With_Actions node. 12964 129652014-02-04 Hristian Kirtchev <kirtchev@adacore.com> 12966 12967 * sem_prag.adb (Analyze_Refined_Depends_In_Decl_Part): Remove global 12968 variables Out_Items and Ref_Global. Remove local constant 12969 Body_Id along with dummy variables D1, D2, D3, D4, D5, D6, D7 12970 and D8. Remove the useless collection of global items as this 12971 was a leftover from an earlier version of the routine. Move 12972 several routines out to avoid deep nesting and indentation. 12973 (Inputs_Match): Add formal parameter Dep_Clause. Rename formal 12974 parameter Do_Checks to Post_Errors. Update the comment on usage. 12975 (Is_Matching_Input): Renamed to Input_Match. Add formal parameters 12976 Ref_Inputs and Do_Checks. Rename formal parameter Do_Checks 12977 to Post_Errors. Update the comment on usage. Account for the 12978 case where a self referential state may have a null input_list. 12979 (Is_Self_Referential): New routine. 12980 129812014-02-04 Ed Schonberg <schonberg@adacore.com> 12982 12983 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If the 12984 entity renames an expression, as in the case of an object of 12985 an unconstrained type initialized by a function call, defer the 12986 rewriting of the expression to the expander. 12987 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 12988 'Alignment): If the entity renames an expression, introduce 12989 temporary to capture value, and rewrite original declaration to 12990 use temporary. 12991 129922014-02-04 Gary Dismukes <dismukes@adacore.com> 12993 12994 * g-comlin.adb: Minor typo fix. 12995 129962014-02-04 Ed Schonberg <schonberg@adacore.com> 12997 12998 * freeze.adb (Freeze_All): Types derived from a formal 12999 access_to_classwide type do not have a finalization master. 13000 130012014-02-04 Robert Dewar <dewar@adacore.com> 13002 13003 * sprint.adb: Minor reformatting. 13004 130052014-02-04 Robert Dewar <dewar@adacore.com> 13006 13007 * exp_ch4.adb (Expand_N_Expression_With_Actions): Eliminate 13008 cases where Actions is a null list. 13009 * sinfo.ads (N_Expression_With_Actions): Actions can be 13010 temporarily empty during semantic analysis, but must be non-empty 13011 in the final expanded tree. 13012 130132014-01-31 Robert Dewar <dewar@adacore.com> 13014 13015 * exp_ch9.adb: Minor reformatting. 13016 130172014-01-31 Emmanuel Briot <briot@adacore.com> 13018 13019 * g-comlin.adb (Set_Command_Line): Take the switches 13020 configuration from the Command_Line_Config. 13021 130222014-01-31 Hristian Kirtchev <kirtchev@adacore.com> 13023 13024 * sem_prag.adb (Analyze_Refinement_Clause): Guard against a malformed 13025 refinement clause. 13026 130272014-01-31 Vincent Celier <celier@adacore.com> 13028 13029 * projects.texi: Add more documentation about others used as an 13030 index in indexed attributes. 13031 130322014-01-31 Robert Dewar <dewar@adacore.com> 13033 13034 * gnat_ugn.texi: Minor update. 13035 * gnat_rm.texi: Add example to Restriction_Warnings documentation. 13036 * exp_util.adb: Minor reformatting. 13037 130382014-01-31 Ed Schonberg <schonberg@adacore.com> 13039 13040 * exp_ch9.adb (Expand_Entry_Barrier): Warn if the barrier 13041 depends on data that is not private to the protected object, 13042 and potentially modifiable in unsynchronized fashion. 13043 130442014-01-31 Yannick Moy <moy@adacore.com> 13045 13046 * erroutc.adb (Validate_Specific_Warnings): Remove special case for 13047 GNATprove_Mode. 13048 130492014-01-31 Robert Dewar <dewar@adacore.com> 13050 13051 * prj-attr.ads (First_Attribute_Of): Returns Empty_Attribute 13052 for Unknown_Package. 13053 * sem_ch6.adb, sem_attr.adb: Minor comment addition. 13054 130552014-01-31 Hristian Kirtchev <kirtchev@adacore.com> 13056 13057 * exp_util.adb (Build_Allocate_Deallocate_Proc): Rewrite 13058 the logic that generates a runtime check to determine the 13059 controlled status of the object about to be allocated or 13060 deallocated. Class-wide types now always use a runtime check 13061 even if they appear as generic actuals. 13062 (Find_Object): Detect 13063 a special case that involves interface class-wide types because 13064 the object appears as a complex expression. 13065 130662014-01-31 Ed Schonberg <schonberg@adacore.com> 13067 13068 * sem_ch6.adb (Process_Formals): In Ada2012 mode, place 13069 subprogram with an incomplete untagged formals on the list of 13070 private dependents, to verify that the type is properly completed 13071 in the private part. 13072 * sem_attr.adb: Code clean up. 13073 130742014-01-31 Robert Dewar <dewar@adacore.com> 13075 13076 * exp_ch6.adb: Minor reformatting. 13077 130782014-01-31 Vincent Celier <celier@adacore.com> 13079 13080 * prj-attr.adb (First_Attribute_Of): Return Unknown_Attribute 13081 when Pkg is unknown. 13082 130832014-01-31 Hristian Kirtchev <kirtchev@adacore.com> 13084 13085 * sem_res.adb (Resolve_Entity_Name): Comment 13086 reformatting. Allow volatile objects in various generated checks. 13087 130882014-01-31 Ed Schonberg <schonberg@adacore.com> 13089 13090 * sem_attr.adb (Analyze_Attribute, case 'Update): For a record 13091 component association, set the etype of the identifier, for 13092 SPARK use. 13093 130942014-01-31 Ed Schonberg <schonberg@adacore.com> 13095 13096 * exp_ch6.adb (Has_Visibility_Of_Subprogram): If type is not 13097 declared in a package, not checks can apply to the subprogram. 13098 130992014-01-31 Robert Dewar <dewar@adacore.com> 13100 13101 * erroutc.adb (Validate_Specific_Warnings): Warnings are 13102 controlled -gnatw.W. 13103 * gnat_ugn.texi: Document new warnings controlled by -gnatw.w. 13104 * opt.ads (Warn_On_Warnings_Off): Now controls more cases. 13105 131062014-01-31 Arnaud Charlet <charlet@adacore.com> 13107 13108 * exp_disp.adb: Update comments. 13109 131102014-01-31 Yannick Moy <moy@adacore.com> 13111 13112 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration, 13113 Save_Global_References): Guard access to expression in aspect. 13114 131152014-01-31 Yannick Moy <moy@adacore.com> 13116 13117 * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): 13118 Issue an error when the pragma is applied to a generic unit, 13119 a generic declaration, or inside a generic. 13120 131212014-01-31 Yannick Moy <moy@adacore.com> 13122 13123 * sem_ch8.adb (Analyze_Subprogram_Renaming): Set SPARK_Mode on renaming 13124 entity. 13125 131262014-01-31 Robert Dewar <dewar@adacore.com> 13127 13128 * exp_ch9.adb, s-tassta.adb, s-tposen.adb, s-tposen.ads: Minor 13129 reformatting. 13130 131312014-01-31 Tristan Gingold <gingold@adacore.com> 13132 13133 * exp_disp.adb: Add a historic note. 13134 131352014-01-31 Robert Dewar <dewar@adacore.com> 13136 13137 * sem_warn.adb (Warn_On_Useless_Assignments): Add call to 13138 Process_Deferred_References. 13139 131402014-01-31 Yannick Moy <moy@adacore.com> 13141 13142 * erroutc.adb (Validate_Specific_Warnings): Do not issue a message for 13143 ineffective pragma Warnings(Off) in GNATprove_Mode. 13144 131452014-01-31 Bob Duff <duff@adacore.com> 13146 13147 * s-taskin.ads: Minor comment fix. 13148 * s-tassta.adb (Abort_Dependents): Don't abort all dependents; 13149 just direct dependents. If this is actually an abort, each task 13150 will take care of aborting its dependents, so all dependents will 13151 get aborted, as before. However, when this is called the second 13152 time from Vulnerable_Complete_Master "for convenience" (i.e. to 13153 kill off tasks waiting at terminate alternatives), aborting 13154 indirect dependents is wrong, because it causes some unrelated 13155 tasks to get aborted. 13156 131572014-01-31 Robert Dewar <dewar@adacore.com> 13158 13159 * sem_ch4.adb: Minor reformatting. 13160 131612014-01-31 Robert Dewar <dewar@adacore.com> 13162 13163 * exp_ch2.adb: New calling sequence for Is_LHS. 13164 * frontend.adb: Add call to Process_Deferred_References. 13165 * lib-xref.ads, lib-xref.adb (Process_Deferred_References): New. 13166 (Deferred_References): New table. 13167 * sem_ch8.adb (Find_Direct_Name): Make deferred reference table 13168 entries. 13169 (Find_Expanded_Name): Ditto. 13170 * sem_res.adb: New calling sequence for Is_LHS. 13171 * sem_util.ads, sem_util.adb (Is_LHS): New calling sequence. 13172 * sem_warn.adb: Call Process_Deferred_References before issuing 13173 warnings. 13174 131752014-01-31 Tristan Gingold <gingold@adacore.com> 13176 13177 * exp_util.adb (Corresponding_Runtime_Package): Restrict the 13178 use of System_Tasking_Protected_Objects_Single_Entry. 13179 * exp_ch9.adb (Build_Simple_Entry_Call): Remove Mode parameter 13180 of Protected_Single_Entry_Call. 13181 (Expand_N_Timed_Entry_Call): Remove single_entry case. 13182 * exp_disp.adb (Make_Disp_Asynchronous_Select_Body): Remove 13183 single_entry case. 13184 (Make_Disp_Timed_Select_Body): Likewise. 13185 * rtsfind.ads (RE_Timed_Protected_Single_Entry_Call): Remove. 13186 * s-tposen.adb (Send_Program_Error, PO_Do_Or_Queue): Remove 13187 Self_Id parameter. 13188 (Wakeup_Entry_Caller): Remove Self_ID and New_State parameters. 13189 (Wait_For_Completion_With_Timeout): Remove. 13190 (Protected_Single_Entry_Call): Remove Mode parameter 13191 (always Simple_Call). 13192 (Service_Entry): Remove Self_Id constant (not used anymore). 13193 (Timed_Protected_Single_Entry_Call): Remove. 13194 * s-tposen.ads (Timed_Protected_Single_Entry_Call): Remove. 13195 (Protected_Single_Entry_Call): Remove Mode parameter. 13196 131972014-01-29 Hristian Kirtchev <kirtchev@adacore.com> 13198 13199 * einfo.adb (Get_Pragma): Handle the retrieval of pragma Refined_Post. 13200 * einfo.ads (Get_Pragma): Update the comment on special pragmas 13201 handled by this routine. 13202 * sem_prag.adb (Analyze_Pragma): Add a legal pragma Refined_Post 13203 to the contract of the related subprogram body. 13204 * sem_util.adb (Add_Contract_Item): Handle the insertion of 13205 pragma Refined_Post into the contract of a subprogram body. 13206 * sinfo.ads Update the documentation of node N_Contract. 13207 * sem_res.adb (Resolve_Entity_Name): Add a guard 13208 to detect abstract states and variables only when checking the 13209 SPARK 2014 rules concerning volatile object placement. 13210 132112014-01-29 Ed Schonberg <schonberg@adacore.com> 13212 13213 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): within an instance, 13214 null is compatible with any access type. 13215 132162014-01-29 Hristian Kirtchev <kirtchev@adacore.com> 13217 13218 * sem_util.adb (Find_Placement_In_State_Space): Assume that the default 13219 placement is not in a package. 13220 132212014-01-29 Hristian Kirtchev <kirtchev@adacore.com> 13222 13223 * sem_util.adb (Has_Enabled_Property): Compare the character field of 13224 the sole property. 13225 132262014-01-29 Robert Dewar <dewar@adacore.com> 13227 13228 * sem_intr.adb, a-ztexio.ads, sinfo.ads, sem_res.adb, gnatlink.adb, 13229 vms_conv.adb, a-except.ads, a-except-2005.ads, a-teioed.adb, 13230 sem_warn.ads, treepr.ads, erroutc.ads, a-excach.adb: Minor reformatting. 13231 132322014-01-29 Robert Dewar <dewar@adacore.com> 13233 13234 * sem_util.ads, sem_util.adb (In_Pragma_Expression): New function. 13235 * sem_warn.adb (Check_References): Suppress warnings if inside 13236 Initial_Condition pragma. 13237 132382014-01-29 Hristian Kirtchev <kirtchev@adacore.com> 13239 13240 * sem_prag.adb (Check_Missing_Part_Of): List all values of 13241 State_Space_Kind for readability reasons. Do not emit an error on 13242 a private item when the enclosing package lacks aspect/pragma 13243 Abstract_State. Do not emit an error on a private package 13244 instantiation when the corresponding generic template lacks 13245 visible state. 13246 (Has_Visible_State): New routine. 13247 * sem_util.adb (Find_Placement_In_State_Space): The visible 13248 declarations of any kind of child units in general act as proper 13249 placement location. 13250 132512014-01-29 Robert Dewar <dewar@adacore.com> 13252 13253 * a-except-2005.adb, a-except.adb, a-excpol-abort.adb, a-exstat.adb, 13254 ali.adb, a-numaux.ads, a-numaux-darwin.ads, a-numaux-libc-x86.ads, 13255 a-numaux-vms.ads, a-numaux-vxworks.ads, a-numaux-x86.ads, aspects.ads, 13256 a-taside.adb, a-teioed.adb, a-textio.adb, a-textio.ads, atree.adb, 13257 atree.ads, a-witeio.adb, a-witeio.ads, a-wtedit.adb, a-ztedit.adb, 13258 a-ztexio.adb, bcheck.adb, binde.adb, checks.adb, comperr.adb, 13259 cstand.adb, debug_a.adb, einfo.ads, errout.adb, erroutc.adb, 13260 eval_fat.adb, exp_aggr.adb, exp_attr.adb, exp_ch11.adb, exp_ch3.adb, 13261 exp_ch4.adb, exp_ch5.adb, exp_ch6.adb, exp_ch9.adb, exp_dbug.adb, 13262 exp_disp.adb, exp_fixd.adb, exp_imgv.adb, exp_intr.adb, exp_util.adb, 13263 freeze.adb, frontend.adb, g-comlin.ads, g-mbdira.adb, gnat1drv.adb, 13264 gprep.adb, g-spipat.adb, i-cpp.ads, i-vxwork.ads, i-vxwork-x86.ads, 13265 krunch.ads, layout.adb, lib-load.adb, lib-writ.adb, lib-writ.ads, 13266 live.adb, namet.ads, osint.adb, osint-c.adb, output.ads, par.adb, 13267 par-ch10.adb, par-ch13.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, 13268 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-prag.adb, 13269 par-sync.adb, par-tchk.adb, par-util.adb, prj.adb, repinfo.adb, 13270 rtsfind.adb, s-arit64.adb, s-asthan-vms-alpha.adb, 13271 s-asthan-vms-ia64.adb, s-bignum.adb, scans.adb, scng.adb, s-dimmks.ads, 13272 sem_aggr.adb, sem_attr.adb, sem_aux.adb, sem_cat.adb, sem_ch10.adb, 13273 sem_ch12.adb, sem_ch13.adb, sem_ch13.ads, sem_ch3.adb, sem_ch4.adb, 13274 sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_disp.adb, sem_elab.adb, 13275 sem_elim.adb, sem_eval.adb, sem_intr.adb, sem_prag.adb, sem_res.adb, 13276 sem_type.adb, sem_util.adb, sem_warn.adb, set_targ.adb, s-fatgen.adb, 13277 s-fatgen.ads, s-fileio.adb, s-imgcha.adb, s-imgrea.adb, sinfo.ads, 13278 sinput-c.adb, snames.ads-tmpl, s-os_lib.adb, sprint.adb, 13279 s-regpat.adb, s-secsta.adb, s-stalib.ads, 13280 s-stchop.adb, s-stoele.ads, stand.ads, s-taprop-solaris.adb, 13281 s-tasdeb-vms.adb, s-tasini.adb, s-tassta.adb, s-valdec.adb, 13282 s-valuti.adb, s-wchjis.adb, s-wchwts.adb, system.ads, system-vms_64.ads, 13283 system-vms-ia64.ads, treepr.adb, types.ads, uintp.adb, uname.adb, 13284 urealp.adb, usage.adb, vxaddr2line.adb: Minor reformatting. 13285 132862014-01-29 Robert Dewar <dewar@adacore.com> 13287 13288 * expander.adb: Minor reformatting. 13289 132902014-01-29 Javier Miranda <miranda@adacore.com> 13291 13292 * exp_ch3.adb (Predefined_Primitive_Bodies): Adding documentation to 13293 previous patch. 13294 132952014-01-29 Javier Miranda <miranda@adacore.com> 13296 13297 * exp_ch3.adb (Predefined_Primitive_Bodies): Complete the code 13298 that checks if an interface types defines the predefined "=" 13299 function because the compiler was erroneously not generating the 13300 predefined "=" primitive as soon as the name of some interface 13301 primitive is "=" (formals were not checked). 13302 133032014-01-29 Ed Schonberg <schonberg@adacore.com> 13304 13305 * expander.adb (Expander): In GNATprove mode, do not process 13306 transient scopes: they are in general not created in this mode, 13307 and an attempt to examine them will lead to constraint errors when 13308 processing configuration pragmas that have analyzable expressions. 13309 133102014-01-29 Vincent Celier <celier@adacore.com> 13311 13312 * clean.adb (Gnatclean): Fail if main project is an aggregate 13313 project or if there is an aggregate library project in the 13314 project tree. 13315 * gnatcmd.adb: Fail if the main project is an aggregate project 13316 or if there is an aggegate library project in the project tree. 13317 * make.adb (Initialize): : Fail if main project is an aggregate 13318 project or if there is an aggregate library project in the 13319 project tree. 13320 * makeutl.ads (Aggregate_Libraries_In): New Boolean function. 13321 * prj-makr.adb (Initialize): Fail if the main project is an 13322 aggregate project or an aggregate library project. 13323 133242014-01-29 Vincent Celier <celier@adacore.com> 13325 13326 * prj-part.adb (Check_Import_Aggregate): New procedure 13327 to check if an imported project is an aggregate project. 13328 (Parse_Single_Project): Call Check_Import_Aggregate 13329 * projects.texi: Document that aggregate projects cannot be 13330 extended or imported. 13331 133322014-01-29 Robert Dewar <dewar@adacore.com> 13333 13334 * exp_ch9.adb, sem_ch7.ads, s-regexp.adb, sem_ch13.adb: Minor 13335 reformatting and code clean up. 13336 * gnat_ugn.texi: Add documentation section on Atomic Variables 13337 and Optimization. 13338 133392014-01-29 Hristian Kirtchev <kirtchev@adacore.com> 13340 13341 * einfo.adb Flag264 is now unused. 13342 (Has_Body_References): Removed. 13343 (Set_Has_Body_References): Removed. 13344 (Write_Entity_Flags): Remove the output for flag Has_Body_References. 13345 * einfo.ads Update the comment on usage of attribute 13346 Body_References. Remove attribute Has_Body_References and its 13347 usage in nodes. 13348 (Has_Body_References): Removed along with pragma Inline. 13349 (Set_Has_Body_References): Removed along with pragma Inline. 13350 * sem_prag.adb (Analyze_Global_Item): Move the call to 13351 Record_Possible_Body_Reference in the state related checks 13352 section. Add a comment intended function. 13353 (Analyze_Input_Output): Move the call to Record_Possible_Body_Reference 13354 in the state related checks section. Add a comment intended function. 13355 (Analyze_Refinement_Clause): Cleanup the illegal body reference 13356 reporting. Add a comment on timing of error reporting. 13357 (Record_Possible_Body_Reference): Reimplement the routine. 13358 133592014-01-29 Vincent Celier <celier@adacore.com> 13360 13361 * makeutl.adb (Mains.Find_File_Add_Extension): Only look for specs for 13362 unit-based languages. 13363 (Mains.Complete_Mains.Do_Complete): Use the source file project 13364 tree when calling Find_File_Add_Extension. Use the correct 13365 project name when reporting an error. 13366 133672014-01-29 Hristian Kirtchev <kirtchev@adacore.com> 13368 13369 * aspects.adb Add an entry for aspect Part_Of in table 13370 Canonical_Aspect. 13371 * aspects.ads Add an entry for aspect Part_Of in tables Aspect_Id, 13372 Aspect_Argument, Aspect_Names and Aspect_Delay. 13373 * atree.h Define Elist9. 13374 * atree.adb (Elist9): New routine. 13375 (Set_Elist9): New routine. 13376 * atree.ads (Elist9): New routine. 13377 (Set_Elist9): New routine. 13378 * einfo.adb Add Part_Of_Constituents and Encapsulating_State to 13379 the list of node usage. Remove Refined_State from the list of 13380 node usage. 13381 (Encapsulating_State): New routine. 13382 (Get_Pragma): 13383 Handle pragma Part_Of; (Part_Of_Constituents): New routine. 13384 (Refined_State): Removed. 13385 (Set_Encapsulating_State): New routine. 13386 (Set_Part_Of_Constituents): New routine. 13387 (Set_Refined_State): Removed. 13388 (Write_Field9_Name): Add an entry 13389 for Part_Of_Constituents (Write_Field10_Name): Add an entry for 13390 Encapsulating_State. Remove the entry for Refined_State. 13391 * einfo.ads Add new attributes Encapsulating_State 13392 and Part_Of_Constituents alond with their usage in 13393 entities. Remove attribute Refined_State along with its 13394 usage in entities. 13395 (Encapsulating_State): New routine and 13396 pragma Inline. (Get_Pragma): Update the comment on usage. 13397 (Part_Of_Constituents): New routine and pragma Inline. 13398 (Refined_State): Removed along with pragma Inline. 13399 (Set_Encapsulating_State): New routine and pragma Inline. 13400 (Set_Part_Of_Constituents): New routine and pragma Inline. 13401 (Set_Refined_State): Removed along with pragma Inline. 13402 * par-prag.adb Pragma Part_Of does not need any special processing 13403 by the parser. 13404 * sem_ch3.adb (Analyze_Declarations): Remove local variables 13405 Body_Id and Prag. Call separate routines to analyze the 13406 contract of a package [body]. 13407 (Analyze_Object_Contract): 13408 Update the comment on usage. Remove local variables 13409 Items and Nam. Use Get_Pragma rather than traversing the 13410 classification list. Verify whether the lack of indicator 13411 Part_Of agrees with the placement of the variable in state space. 13412 (Analyze_Object_Declaration): Initialize the encapsulating state 13413 of a variable. (Requires_State_Refinement): Moved to sem_util. 13414 * sem_ch7.adb (Analyze_Package_Body_Contract): New routine. 13415 (Analyze_Package_Contract): New routine. 13416 * sem_ch7.ads (Analyze_Package_Body_Contract): New routine. 13417 (Analyze_Package_Contract): New routine. 13418 * sem_ch10.adb (Decorate_State): Initialize the encapsulating 13419 state and Part_Of constituents. 13420 * sem_ch13.adb (Analyze_Aspect_Specifications): 13421 Add processing for aspect Part_Of. Update all 13422 calls to Decorate_Delayed_Aspect_And_Pragma. 13423 (Check_Aspect_At_Freeze_Point): Aspect Part_Of does 13424 not need any special processing at freeze time. 13425 (Decorate_Delayed_Aspect_And_Pragma): Renamed to 13426 Decorate_Aspect_And_Pragma. Add formal parameter Delayed and 13427 update the associated comment. 13428 * sem_prag.adb Add an entry for pragma Part_Of in table Sig_Flags. 13429 (Analyze_Abstract_State): Add new global variable State_Id. Remove 13430 local constants Errors and Loc. Remove local variables Is_Null 13431 and State_Nam. Create the entity of the abstract state on the 13432 spot, before all remaining checks are performed. Verify that a 13433 missing Part_Of option agrees with the placement of the abstract 13434 state within the state space. 13435 (Analyze_Depends_In_Decl_Part): 13436 Add new global variables Constits_Seen and States_Seen. Check 13437 that a state and a corresponding constituent do not appear 13438 in pragma [Refined_]Depends. 13439 (Analyze_Global_In_Decl_Part): 13440 Add new global variables Constits_Seen and States_Seen. Check 13441 that a state and a corresponding constituent do not appear 13442 in pragma [Refined_]Global. 13443 (Analyze_Global_Item): 13444 Remove the now obsolete code that deals with Part_Of. 13445 Add the entity of the global item to the list of processed 13446 items. (Analyze_Initializes_In_Decl_Part): Add new global 13447 variables Constits_Seen and States_Seen. Check that a state 13448 and a corresponding constituent do not appear in pragma 13449 Initializes. 13450 (Analyze_Initialization_Item): Add the entity 13451 of the initialization item to the list of processed items. 13452 (Analyze_Input_Item): Add the entity of the initialization 13453 item to the list of processed items. 13454 (Analyze_Input_Output): 13455 Remove the now obsolete code that deals with Part_Of. Add the 13456 entity of the input/output to the list of processed items. 13457 (Analyze_Part_Of): New routine. 13458 (Analyze_Part_Of_Option): Remove 13459 local constant Par_State. Add local constant Encaps and local 13460 variables Encaps_Id and Legal. Use Analyze_Part of to analyze 13461 the option. Turn the related state into a Part_Of constituent 13462 if the option is legal. 13463 (Analyze_Pragma): Add processing 13464 for pragma Part_Of. 13465 (Analyze_Refined_State_In_Decl_Part): 13466 Remove global constants Pack_Body and Spec_Id. Remove 13467 global variables Abstr_States and Hidden_States. Add new 13468 global variables Available_States, Body_Id, Body_States and 13469 Spec_Id. Add new local constant Body_Decl. Reimplement the 13470 logic that extracts the states available for refinement from 13471 the related package and the body hidden states of the said 13472 package. 13473 (Analyze_Refinement_Clause): Add local variable Part_Of_Constits. 13474 (Check_Applicable_Policy): Alphabetize body. 13475 (Check_Dependency_Clause): Replace Refined_State 13476 with Encapsulating_State. 13477 (Check_Matching_Constituent): 13478 Reimplement the logic that determines whether an item is a valid 13479 / invalid constituent of the current refined state. Return when 13480 a construct does not denote a valid abstract state. Extract the 13481 list of Part_Of constituents for further analysis. Check that all 13482 Part_Of constituents of a state have been used in its refinement. 13483 (Check_Matching_State): Update the comment on usage. Operate 13484 on the list of available states. 13485 (Check_Missing_Part_Of): New routine. 13486 (Check_Refined_Global_Item): Replace Refined_State 13487 with Encapsulating_State. 13488 (Check_State_And_Constituent_Use): New routine. 13489 (Create_Abstract_State): New routine. 13490 (Is_Matching_Input): Replace Refined_State with Encapsulating_State. 13491 (Is_Part_Of): Removed. 13492 (Collect_Body_States): New routine. 13493 (Collect_Constituent): Replace Refined_State with Encapsulating_State. 13494 (Collect_Hidden_States): Removed. 13495 (Report_Unrefined_States): Change the profile of the procedure along 13496 with the comment on usage. 13497 (Report_Unused_Constituents): New routine. 13498 (Report_Unused_Hidden_States): Removed. 13499 (Report_Unused_States): New routine. 13500 * sem_prag.ads (Check_Missing_Part_Of): New routine. 13501 * sem_util.adb (Add_Contract_Item): Pragma Part_Of can now 13502 appear in the classification pragmas of a package instantiation 13503 or a variable. 13504 (Find_Placement_In_State_Space): New routine. 13505 (Is_Child): Removed. 13506 (Is_Child_Or_Sibling): Remove formal 13507 parameter Private_Child. Remove the private child checks. 13508 (Requires_State_Refinement): Moved from sem_ch3. 13509 * sem_util.ads Add new type State_Space_Kind along with 13510 comment on its usage and values. 13511 (Add_Contract_Item): Update the comment on usage. 13512 (Find_Body_Discriminal): Alphabetize spec. 13513 (Find_Placement_In_State_Space): New routine. 13514 (Is_Child_Or_Sibling): Remove formal parameter Private_Child 13515 and update the comment on usage. 13516 (Requires_State_Refinement): Moved from sem_ch3. 13517 * sinfo.ads: Update the documentation of N_Contract. 13518 * snames.ads-tmpl The predefined name for Part_Of is now used 13519 to denote a pragma. Add Pragma_Id for Part_Of. 13520 135212014-01-29 Emmanuel Briot <briot@adacore.com> 13522 13523 * s-regexp.adb (Create_Secondary_Table): Automatically grow the state 13524 machine as needed. 13525 (Dump): New subprogram. 13526 135272014-01-29 Tristan Gingold <gingold@adacore.com> 13528 13529 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Add 13530 Expand_Entry_Declaration to factorize code. 13531 135322014-01-29 Ed Schonberg <schonberg@adacore.com> 13533 13534 * checks.adb: minor clarification. 13535 * sem_ch7.adb (Declare_Inherited_Private_Subprograms): Limit 13536 search for primitive operations to the entities that immediately 13537 follow the type declaration. 13538 135392014-01-29 Tristan Gingold <gingold@adacore.com> 13540 13541 * exp_ch9.adb (Build_Protected_Entry): Do not call 13542 Complete_Entry_Body anymore. 13543 * rtsfind.ads (RE_Complete_Single_Entry_Body): Remove. 13544 * s-tposen.ads, s-tposen.adb (Complete_Single_Entry_Body): Remove. 13545 135462014-01-29 Pierre-Marie Derodat <derodat@adacore.com> 13547 13548 * s-os_lib.adb, s-os_lib.ads (Normalize_Pathname): Return an empty 13549 string when the Name input bigger than allowed. Adapt the function 13550 specification. 13551 135522014-01-29 Ed Schonberg <schonberg@adacore.com> 13553 13554 * checks.adb (Install_Null_Excluding_Check): Do not emit warning 13555 if expression is within a case_expression of if_expression. 13556 135572014-01-29 Robert Dewar <dewar@adacore.com> 13558 13559 * exp_ch9.adb, inline.ads: Minor reformatting. 13560 135612014-01-29 Tristan Gingold <gingold@adacore.com> 13562 13563 * exp_ch9.adb (Is_Exception_Safe): Return true if no exceptions. 13564 135652014-01-29 Yannick Moy <moy@adacore.com> 13566 13567 * inline.ads (Pending_Body_Info): Add SPARK_Mode and 13568 SPARK_Mode_Pragma components to be able to analyze generic 13569 instance. 13570 * sem_ch12.adb (Analyze_Package_Instantiation, 13571 Inline_Instance_Body, Need_Subprogram_Instance_Body, 13572 Load_Parent_Of_Generic): Pass in SPARK_Mode from instantiation 13573 for future analysis of the instance. 13574 (Instantiate_Package_Body, 13575 Instantiate_Subprogram_Body, Set_Instance_Inv): Set SPARK_Mode 13576 from instantiation to analyze the instance. 13577 135782014-01-29 Robert Dewar <dewar@adacore.com> 13579 13580 * sem_ch7.adb, sem_prag.adb, sem_ch4.adb, sem_ch6.adb: Minor code 13581 reorganization. 13582 135832014-01-29 Yannick Moy <moy@adacore.com> 13584 13585 * gnat_rm.texi: Update description of SPARK_Mode pragma. 13586 135872014-01-29 Tristan Gingold <gingold@adacore.com> 13588 13589 * exp_ch9.adb (Expand_N_Protected_Body): Remove Num_Entries. 13590 135912014-01-29 Thomas Quinot <quinot@adacore.com> 13592 13593 * sem_ch4.adb (Find_Component_In_Instance): Update comment. 13594 135952014-01-29 Ed Schonberg <schonberg@adacore.com> 13596 13597 * exp_util.adb (Build_Task_Image_Prefix): Indicate that the 13598 resulting string is an internal entity. and thus requires no 13599 initialization. This is relevant when Initialize_ Scalars is 13600 enabled, because the resultant spurious initialization may lead to 13601 secondary stack anomalies that produce a mangled name for a task. 13602 136032014-01-29 Yannick Moy <moy@adacore.com> 13604 13605 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode 13606 not inherited from spec anymore. Check consistency 13607 rules after processing of declarations. 13608 * sem_ch7.adb (Analyze_Package_Body_Helper): SPARK_Mode not inherited 13609 from spec anymore. Check consistency rules after processing of 13610 declarations. 13611 (Analyze_Package_Declaration): Set SPARK_Mode only for non-generic 13612 packages. 13613 * sem_prag.adb (Analyze_Pragma/Pragma_SPARK_Mode): Implement new 13614 consistency rules. 13615 136162014-01-27 Robert Dewar <dewar@adacore.com> 13617 13618 * sem_res.adb (Resolve_Comparison_Op): Add type name/location 13619 to unordered msg. 13620 (Resolve_Range): Add type name/location to unordered msg. 13621 136222014-01-27 Claire Dross <dross@adacore.com> 13623 13624 * a-cofove.adb/s (Copy): Add precondition so that Copy (Source, 13625 Capacity) is only called with Capacity >= Length (Source) and 13626 Capacity in Capacity_Range. 13627 * a-cfdlli.adb/s, a-cfhase.adb/s, a-cfhama.adb/s, a-cforse.adb/s, 13628 a-cforma.adb/s (Copy): Add precondition so that Copy (Source, Capacity) 13629 is only called with Capacity >= Source.Capacity. Raise Capacity_Error 13630 in the code is this is not the case. 13631 136322014-01-27 Thomas Quinot <quinot@adacore.com> 13633 13634 * sem_ch4.adb (Analyze_Selected_Component): Fix handling of 13635 selected component in an instance where the component of the 13636 actual is not visibile at instantiation. 13637 136382014-01-27 Ed Schonberg <schonberg@adacore.com> 13639 13640 * sem_ch6.adb: sem_ch6.adb (Set_Actual_Subtypes): If the type 13641 has a dynamic predicate, generate freeze node for Actual_Subtype 13642 at once, because the declaration of the corresponding predicate 13643 function will make reference to it. 13644 136452014-01-27 Tristan Gingold <gingold@adacore.com> 13646 13647 * exp_ch7.adb, exp_ch9.adb: Adjust comments. 13648 136492014-01-27 Robert Dewar <dewar@adacore.com> 13650 13651 * exp_ch4.adb (Expand_N_Op_Expon): Remove unsigned type test 13652 for 2**X optimization. 13653 136542014-01-27 Ed Schonberg <schonberg@adacore.com> 13655 13656 * a-suenst.adb: strings.utf_encoding.strings (Decode): Check 13657 explicitly whether value is in range of Character, because the 13658 library is typically compiled with range checks disabled, and 13659 we cannot rely on the implicit check on the argument of 'Val. 13660 136612014-01-27 Vincent Celier <celier@adacore.com> 13662 13663 * a-ciorma.adb, a-cihama.adb (Assign): Copy the Source to the Target, 13664 not the Target to itself. 13665 136662014-01-27 Robert Dewar <dewar@adacore.com> 13667 13668 * vms_conv.ads, ali.adb, sem_ch6.ads, opt.ads, vms_cmds.ads: Minor 13669 changes to avoid incorrect use of unordered enum types. 13670 136712014-01-27 Thomas Quinot <quinot@adacore.com> 13672 13673 * sem_ch4.adb: Minor reformatting. 13674 136752014-01-27 Robert Dewar <dewar@adacore.com> 13676 13677 * scn.adb (Check_End_Of_Line): Removed. 13678 (Error_Long_Line): Removed. 13679 (Determine_License): Use versions of above routines from Scanner. 13680 * scng.adb (Check_End_Of_Line): Moved to spec. 13681 (Error_Long_Line): Removed, no longer used. 13682 * scng.ads (Check_End_Of_Line): Moved here from body. 13683 136842014-01-27 Tristan Gingold <gingold@adacore.com> 13685 13686 * exp_ch7.adb (Build_Cleanup_Statements): Call 13687 Build_Protected_Subprogram_Call_Cleanup to insert the cleanup 13688 for protected body. 13689 * exp_ch9.adb (Build_Protected_Subprogram_Body): Likewise. 13690 Remove Service_Name variable. 13691 (Build_Protected_SUbprogam_Call_Cleanup): New procedure that 13692 factorize code from the above subprograms. 13693 * exp_ch9.ads (Build_Protected_Subprogram_Call_Cleanup): New procedure. 13694 136952014-01-27 Hristian Kirtchev <kirtchev@adacore.com> 13696 13697 * einfo.adb (Has_Option): Reimplemented. 13698 * sem_prag.adb (Analyze_Refinement_Clause): Add global 13699 variables AR_Constit, AW_Constit, ER_Constit, EW_Constit, 13700 External_Constit_Seen and State. Add local variables Body_Ref, 13701 Body_Ref_Elmt and Extra_State. Reimplement part of the logic to 13702 avoid a cumbersome while pool. Verify the legality of an external 13703 state and relevant properties. 13704 (Check_External_Property): New routine. 13705 (Check_Matching_State): Remove parameter profile 13706 and update comment on usage. 13707 (Collect_Constituent): Store the 13708 relevant external property of a constituent. 13709 * sem_util.adb (Async_Readers_Enabled): Update the call to 13710 Has_Enabled_Property. 13711 (Async_Writers_Enabled): Update the call to Has_Enabled_Property. 13712 (Effective_Reads_Enabled): Update the call to Has_Enabled_Property. 13713 (Effective_Writes_Enabled): Update the call to Has_Enabled_Property. 13714 (Has_Enabled_Property): Rename formal parameter Extern to State_Id. 13715 Update comment on usage. Reimplement the logic to recognize the various 13716 formats of properties. 13717 137182014-01-27 Ed Schonberg <schonberg@adacore.com> 13719 13720 * par-ch5.adb: Minor reformatting. 13721 137222014-01-27 Tristan Gingold <gingold@adacore.com> 13723 13724 * s-tposen.ads: Harmonize style and comments. 13725 137262014-01-27 Vincent Celier <celier@adacore.com> 13727 13728 * projects.texi: Document that shared library projects, by 13729 default, cannot import projects that are not shared library 13730 projects. 13731 137322014-01-27 Robert Dewar <dewar@adacore.com> 13733 13734 * sem_ch8.adb (Find_Selected_Component): Use Replace instead 13735 of Rewrite. 13736 137372014-01-27 Ed Schonberg <schonberg@adacore.com> 13738 13739 * a-suenco.adb, a-suenst.adb (Decode): Raise encoding error if 13740 any other exception is raised. 13741 (Convert): If both Input_Scheme and Output_Scheme are UTF_8 it is 13742 still necessary to perform a conversion in order to remove overlong 13743 encodings. 13744 137452014-01-27 Robert Dewar <dewar@adacore.com> 13746 13747 * exp_smem.adb: Minor reformatting. 13748 137492014-01-27 Thomas Quinot <quinot@adacore.com> 13750 13751 * a-calfor.ads: Fix incorrect reference to operator "-" in comment. 13752 137532014-01-27 Ed Schonberg <schonberg@adacore.com> 13754 13755 * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, relocate 13756 nodes for operands to the original node for the call, to preserve 13757 Original_Node pointers within the resolved operands, given that 13758 they may have been rewritten as well. Previous approach copied 13759 the operands into a new tree and lost those pointers. 13760 137612014-01-27 Claire Dross <dross@adacore.com> 13762 13763 13764 * a-cofove.adb, a-cofove.ads: Add Strict_Equal function to the API. 13765 137662014-01-27 Ed Schonberg <schonberg@adacore.com> 13767 13768 * sem_util.adb (Check_Internal_Protected_Use): A call through 13769 an anonymous access parameter of the current protected function 13770 is not a potential modification of the current object. 13771 137722014-01-27 Ed Schonberg <schonberg@adacore.com> 13773 13774 * a-cobove.adb (Reserve_Capacity): Procedure raises 13775 Capacity_Error, not Constraint_Error, when request cannot be 13776 satisfied. 13777 137782014-01-27 Vincent Celier <celier@adacore.com> 13779 13780 * a-coorma.adb, a-cohama.adb (Assign): Copy the Source to the Target, 13781 not the Target to itself. 13782 137832014-01-27 Ed Schonberg <schonberg@adacore.com> 13784 13785 * exp_ch4.adb (Expand_Concatenate): If the target of the 13786 concatenation is a library-level entity, always use the off-line 13787 version of concatenation, regardless of optimization level. This 13788 is space-efficient, and prevents linking problems when some 13789 units are compiled with different optimization levels. 13790 137912014-01-27 Ed Schonberg <schonberg@adacore.com> 13792 13793 * sem_ch5.adb: Code clean up. 13794 137952014-01-27 Ed Schonberg <schonberg@adacore.com> 13796 13797 * par-ch5.adb (P_Iterator_Specification): Improve error recovery 13798 when an array or container iterator includes a subtype indication, 13799 which is only legal in an element iterator. 13800 138012014-01-27 Thomas Quinot <quinot@adacore.com> 13802 13803 * exp_ch7.adb: Minor reformatting. 13804 138052014-01-27 Robert Dewar <dewar@adacore.com> 13806 13807 * opt.adb (SPARK_Mode): Default for library units is None rather 13808 than Off. 13809 * opt.ads: Remove AUTO from SPARK_Mode_Type SPARK_Mode_Type is 13810 no longer ordered. 13811 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Remove AUTO 13812 possibility. 13813 * snames.ads-tmpl (Name_Auto): Removed, no longer used. 13814 138152014-01-27 Robert Dewar <dewar@adacore.com> 13816 13817 * par-ch5.adb (P_Sequence_Of_Statements): Make entry in 13818 Suspicious_Labels table if we have identifier; followed by loop 13819 or block. 13820 * par-endh.adb (Evaluate_End_Entry): Search Suspicious_Labels table. 13821 * par.adb (Suspicious_Labels): New table. 13822 138232014-01-27 Robert Dewar <dewar@adacore.com> 13824 13825 * exp_aggr.adb (Check_Bounds): Reason is range check, not 13826 length check. 13827 138282014-01-27 Yannick Moy <moy@adacore.com> 13829 13830 * get_spark_xrefs.adb (Get_SPARK_Xrefs): Accept new type 'c' for 13831 reference. 13832 * lib-xref-spark_specific.adb (Is_Global_Constant): Remove useless 13833 function now. 13834 (Add_SPARK_Xrefs): Include references to constants. 13835 * spark_xrefs.ads Document new character 'c' for references to 13836 constants. 13837 138382014-01-27 Thomas Quinot <quinot@adacore.com> 13839 13840 * exp_smem.adb (Add_Write_After): For a function call, insert write as 13841 an after action in a transient scope. 13842 138432014-01-27 Thomas Quinot <quinot@adacore.com> 13844 13845 * exp_smem.adb (Expand_Shared_Passive_Variable): For a reference 13846 to a shared variable as an OUT formal in a call to an init proc, 13847 the 'Read call must be emitted after, not before, the call. 13848 138492014-01-27 Robert Dewar <dewar@adacore.com> 13850 13851 * gnat_rm.texi: Remove mention of AUTO mode for SPARK_Mode pragma. 13852 138532014-01-27 Robert Dewar <dewar@adacore.com> 13854 13855 * a-wichha.adb (Character_Set_Version): Change to output proper 13856 value. 13857 138582014-01-27 Hristian Kirtchev <kirtchev@adacore.com> 13859 13860 * einfo.adb (Is_Input_Only_State): Removed. 13861 (Is_Non_Volatile_State): Removed. 13862 (Is_Output_State): Removed. 13863 * einfo.ads (Is_Input_Only_State): Remove attribute and 13864 subprogram. Update related entity. 13865 (Is_Non_Volatile_State): 13866 Remove attribute and subprogram. Update related entity. 13867 (Is_Output_State): Removed attribute and subprogram. Update 13868 related entity. 13869 * exp_ch6.adb (Expand_Subprogram_Contract): Update comment on 13870 generated code. 13871 * sem_ch3.adb (Analyze_Declarations): Analyze the contract of 13872 an object, not just variables. 13873 (Analyze_Object_Contract): New routine. 13874 (Analyze_Variable_Contract): Removed. 13875 (Process_Discriminants): Detect an illegal use of volatile 13876 discriminant in SPARK mode. 13877 * sem_ch5.adb (Analyze_Iterator_Specification): 13878 Detect an illegal use of volatile loop variable. 13879 (Analyze_Loop_Parameter_Specification): Detect an illegal use 13880 of volatile loop variable. 13881 * sem_ch6.adb (Process_Formals): Update the volatile object 13882 detection. Detect an illegal formal of mode IN OUT or OUT in 13883 SPARK mode. Enhance the error messages with references. 13884 * sem_ch12.adb (Instantiate_Object): Update the volatile object 13885 detection. Enhance the error messages with references. 13886 * sem_prag.adb (Analyze_Abstract_State): Enhance the error 13887 messages with references. 13888 (Analyze_Contract_Case): Enhance the error messages with references. 13889 (Analyze_External_Property): Call Check_Duplicate_Property to process 13890 an external property. 13891 (Analyze_External_Property_In_Decl_Part): New routine. 13892 (Analyze_External_State_In_Decl_Part): Removed. 13893 (Analyze_Global_Item): Detect an illegal 13894 use of a volatile constant. Detect an illegal use 13895 of a variable with enabled Effective_Reads. Enhance 13896 the error messages with references. Remove obsolete 13897 checks concerning Input_Only and Output_Only states. 13898 (Analyze_Initialization_Item): Enhance the error messages 13899 with references. 13900 (Analyze_Initializes_In_Decl_Part): Do not 13901 collect the states and variables when the initialization list 13902 is null. 13903 (Analyze_Input_Item): Enhance the error messages with references. 13904 (Analyze_Input_Output): Enhance the error messages with references. 13905 (Analyze_Pragma): Enhance the error messages with references. 13906 (Analyze_Refinement_Clause): Code reformatting. 13907 (Analyze_Refined_Depends_In_Decl_Part): 13908 Rename global variable Global to Reg_Global and update all 13909 occurrences. Add local variables D7 and D8. Update the error 13910 messages with references. Update the call to Collect_Global_Items. 13911 (Analyze_Refined_Global_In_Decl_Part): Add local variables 13912 Has_Proof_In_State, Proof_In_Constits and Proof_In_Items. Update 13913 the call to Collect_Global_Items. Account for a Proof_In state 13914 in null / useless refinement checks. Verify the coverage of 13915 Proof_In states. 13916 (Check_Dependency_Clause): Remove local variable 13917 Out_Constits. Remove the retrieval and removal of constituents 13918 for an Output_Only state. Remove the reporting of unused 13919 Output_Only state constituents. 13920 (Check_Duplicate_Mode): Enhance 13921 the error message with a reference. 13922 (Check_Duplicate_Property): New routine. 13923 (Check_Duplicate_Option): Enhance the error message with a reference. 13924 (Check_External_Properties): Enhance the error message with a reference. 13925 (Check_Function_Return): Enhance the error message with a reference. 13926 (Check_In_Out_States): Update 13927 comment on usage. Add a specialized error message for Proof_In 13928 constituents. Enhance the error message with a reference. 13929 (Check_Input_States): Update comment on usage. Account for 13930 possible Proof_In constituents. Enhance the error message 13931 with a areference. 13932 (Check_Matching_Constituent): Enhance the error message with a 13933 reference. 13934 (Check_Matching_State): Enchance the error message with a reference. 13935 (Check_Mode): Add local variable From_Global. Update the call to 13936 Find_Mode. Emit more precise error messages concerning extra items 13937 (Check_Mode_Restriction_In_Enclosing_Context): Consider 13938 pragma Refined_Global. Enhance the error message with a 13939 reference. 13940 (Check_Mode_Restriction_In_Function): Enhance the error message with 13941 a reference. 13942 (Check_Output_States): Update comment on usage. Add local variable 13943 Posted. Account for possible Proof_In constituents. Produce a detailed 13944 list of missing constituents. 13945 (Check_Proof_In_States): New routine. 13946 (Check_Refined_Global_Item): Handle Proof_In 13947 constituents. Enchance the error message with a reference. 13948 (Collect_Global_Items): Add formal parameters Proof_In_Items 13949 and Has_Proof_In_State. Update the comment on usage. Account 13950 for Proof_In items. 13951 (Create_Or_Modify_Clause): Enchance 13952 the error message with a reference. 13953 (Find_Mode): Add 13954 formal parameter From_Global. Update the comment on usage. 13955 Detect when the mode is governed by pragma [Refined_]Global. 13956 (Output_Constituents): Removed. 13957 (Report_Extra_Constituents): 13958 Report extra Proof_In constituents. 13959 (Report_Unused_Constituents): Removed. 13960 (Usage_Error): Code reformatting. Enhance the error 13961 messages with reference. 13962 * sem_prag.ads (Analyze_External_Property_In_Decl_Part): New routine. 13963 (Analyze_External_State_In_Decl_Part): Removed. 13964 * sem_res.adb (Resolve_Actuals): Update the volatile object 13965 detection. Enhance the error message with a reference. 13966 (Resolve_Entity_Name): Update the volatile object 13967 detection. Enhance the error message with a reference. 13968 * sem_util.adb (Is_Refined_State): Add a guard to avoid a crash. 13969 (Is_SPARK_Volatile_Object): New routine. 13970 (Has_Volatile_Component): New routine. 13971 * sem_util.ads (Is_Delegate): Alphabetized. 13972 (Is_SPARK_Volatile_Object): New routine. 13973 (Has_Volatile_Component): New routine. 13974 * snames.ads-tmpl: Remove names Name_Input_Only and Name_Output_Only. 13975 139762014-01-27 Ed Schonberg <schonberg@adacore.com> 13977 13978 * sem_attr.adb: Resolve fully prefix of 'Update. 13979 139802014-01-27 Ben Brosgol <brosgol@adacore.com> 13981 13982 * gnat_rm.texi: Minor clarifications. 13983 139842014-01-27 Robert Dewar <dewar@adacore.com> 13985 13986 * sem_elab.adb (Check_Internal_Call_Continue): Avoid complaining 13987 about call that is generated as part of an Initial_Condition 13988 check. 13989 * sem_prag.adb: Minor spelling correction. 13990 139912014-01-27 Robert Dewar <dewar@adacore.com> 13992 13993 * sem_prag.adb (Set_Convention_From_Pragma): Check that 13994 convention Ghost can only apply to functions. 13995 * einfo.ads, einfo.adb (Is_Ghost_Subprogram): Add clarifying comment. 13996 139972014-01-27 Robert Dewar <dewar@adacore.com> 13998 13999 * gnat_ugn.texi: Add Short_Enums to documentation of 14000 -gnatet/-gnateT. 14001 140022014-01-27 Robert Dewar <dewar@adacore.com> 14003 14004 * sem_prag.adb (Analyze_Input_Item): Correct check for input 14005 item in same package. 14006 * sem_util.ads, sem_util.adb (Within_Scope): New function. 14007 140082014-01-26 Arnaud Charlet <charlet@adacore.com> 14009 14010 * a-intnam-lynxos.ads, mlib-tgt-specific-lynxos.adb, 14011 s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos.adb, 14012 s-osinte-lynxos.ads, s-taprop-lynxos.adb, s-tpopsp-lynxos.adb, 14013 system-lynxos-ppc.ads, system-lynxos-x86.ads: Removed, no longer 14014 maintained. 14015 140162014-01-25 Eric Botcazou <ebotcazou@adacore.com> 14017 14018 * gcc-interface/Makefile.in: Fix oversight. 14019 140202014-01-25 Eric Botcazou <ebotcazou@adacore.com> 14021 14022 * gcc-interface/utils.c (convert_to_fat_pointer): Un-obfuscate the 14023 conversion from a thin pointer with a shifted value. 14024 * gcc-interface/utils2.c (gnat_build_constructor): Propagate the 14025 read-only flag from the values onto the result. 14026 (gnat_invariant_expr): Accept read-only CONSTRUCTORs. 14027 140282014-01-25 Tristan Gingold <gingold@adacore.com> 14029 14030 * gcc-interface/decl.c (gnat_to_gnu_entity): Always build a variable 14031 for E_Variable with a pragma Linker_Section. 14032 140332014-01-25 Robert Dewar <dewar@adacore.com> 14034 14035 * gcc-interface/decl.c (gnat_to_gnu_param): Make sure an Out parameter 14036 with Default_Value aspect is passed in by copy. 14037 140382014-01-24 Eric Botcazou <ebotcazou@adacore.com> 14039 14040 * set_targ.adb: Set Short_Enums. 14041 * gcc-interface/lang.opt (fshort-enums): New option. 14042 * gcc-interface/misc.c (gnat_handle_option): Handle it. 14043 (gnat_post_options): Do not modify the global settings. 14044 140452014-01-24 Robert Dewar <dewar@adacore.com> 14046 14047 * g-rannum.ads, g-rannum.adb (Random_Ordinary_Fixed): New generic 14048 function. 14049 (Random_Decimal_Fixed): New generic function. 14050 * s-rannum.ads: Minor comment clarifications. 14051 140522014-01-24 Robert Dewar <dewar@adacore.com> 14053 14054 * back_end.adb: Remove Short_Enums handling (handled in 14055 Ttypes/Get_Targ now) Minor added comments. 14056 * freeze.adb: Change name Short_Enums_On_Target to 14057 Target_Short_Enums. 14058 * get_targ.ads, get_targ.adb (Get_Short_Enums): New function. 14059 * opt.ads: Minor comment updates. 14060 * sem_ch13.adb: Change name Short_Enums_On_Target to 14061 Target_Short_Enums. 14062 * set_targ.adb: Set Short_Enums from gcc back end. 14063 * set_targ.ads (Short_Enums): New variable. 14064 * targparm.ads, targparm.adb: Remove Short_Enums entries (handled in 14065 Ttypes/Get_Targ now). 14066 * ttypes.ads (Target_Short_Enums): New constant boolean switch 14067 140682014-01-24 Pascal Obry <obry@adacore.com> 14069 14070 * g-sercom-mingw.adb: Fix serial port name for port number > 10. 14071 140722014-01-24 Gary Dismukes <dismukes@adacore.com> 14073 14074 * exp_disp.adb (Expand_Dispatching_Call): Call Unqualify on Param when 14075 comparing it with Ctrl_Arg, since Ctrl_Arg may have had qualification 14076 stripped off. 14077 140782014-01-24 Robert Dewar <dewar@adacore.com> 14079 14080 * sinfo.ads, make.adb, prj-env.adb: Minor reformatting. 14081 140822014-01-24 Vincent Celier <celier@adacore.com> 14083 14084 * prj.adb (Add_Aggregated_Project): Do not add a project in 14085 the list if it is already there. 14086 140872014-01-24 Yannick Moy <moy@adacore.com> 14088 14089 * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): 14090 Correct the search for a subrogram declaration to which a pragma is 14091 attached. 14092 140932014-01-24 Bob Duff <duff@adacore.com> 14094 14095 * gnat_ugn.texi: Document --decimal-grouping and 14096 --based-grouping switches in gnatpp. 14097 140982014-01-24 Ed Schonberg <schonberg@adacore.com> 14099 14100 * sinfo.ads: Documentation update. 14101 141022014-01-24 Ed Schonberg <schonberg@adacore.com> 14103 14104 * sem_ch3.adb (Constant_Redeclaration): New declaration is 14105 illegal if previous one has an initial expression that is an 14106 aggregate expanded into assignments. 14107 141082014-01-24 Ed Schonberg <schonberg@adacore.com> 14109 14110 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Small 14111 code reorganization to remove spurious warning on a loop with 14112 an array element iterator that has a null range. 14113 141142014-01-24 Vincent Celier <celier@adacore.com> 14115 14116 * make.adb (Binding_Phase): When setting the Ada paths, use 14117 the library ALI dir, not the object dir in libraries. 14118 141192014-01-24 Yannick Moy <moy@adacore.com> 14120 14121 * sinfo.ads: Add documentation of check flag fields. 14122 141232014-01-24 Ed Schonberg <schonberg@adacore.com> 14124 14125 * sem_res.adb (Resolve_Actuals): If an actual is a view 14126 conversion of a discriminated object, and the formal type is 14127 discriminated and constrained, apply a discriminant check to 14128 the object itself. 14129 141302014-01-24 Robert Dewar <dewar@adacore.com> 14131 14132 * prj.adb, prj-env.adb, back_end.adb: Add comment, minor code clean ups. 14133 141342014-01-24 Ed Schonberg <schonberg@adacore.com> 14135 14136 * sem_ch3.adb (Analyze_Declarations): At the end of an 14137 appropriate declarative part, call Freeze_All from the first 14138 declaration in the scope, not from the first unfrozen one. This 14139 is necessary to apply visibility checks to entities with delayed 14140 aspects. Otherwise, in the presence of instantiations and cleanups 14141 that they may generate, the delayed aspects may be analyzed too 14142 late and produce spurious visibility errors. 14143 * sem_attr.adb: Place etype on range. 14144 * sem_ch6.adb: Documentation expression functions. 14145 141462014-01-24 Robert Dewar <dewar@adacore.com> 14147 14148 * exp_ch7.adb: Minor change of Indices to Indexes (preferred 14149 terminology in compiler). 14150 141512014-01-24 Robert Dewar <dewar@adacore.com> 14152 14153 * scans.ads: Remove Tok_Raise from Sterm, Eterm, After_SM 14154 categories, now that Ada 95 supports raise expressions. 14155 141562014-01-24 Robert Dewar <dewar@adacore.com> 14157 14158 * freeze.adb (Freeze_Enumeration_Type): Use new target parameter 14159 Short_Enums_On_Target. 14160 * sem_ch13.adb (Set_Enum_Esize): Take Short_Enums_On_Target 14161 into account. 14162 * targparm.ads, targparm.adb: Add new target parameter Short_Enums. 14163 141642014-01-24 Ed Schonberg <schonberg@adacore.com> 14165 14166 * sem_ch5.adb (Analyze_Iterator_Specification): If subtype 14167 indication is given explicity, check that it matches the array 14168 component type or the container element type of the domain 14169 of iteration. 14170 141712014-01-24 Tristan Gingold <gingold@adacore.com> 14172 14173 * back_end.adb (Scan_Compiler_Arguments): Set Short_Enums_On_Target. 14174 * gcc-interface/misc.c (flag_short_enums): Declare. 14175 (gnat_post_options): Set it. 14176 141772014-01-24 Vincent Celier <celier@adacore.com> 14178 14179 * prj-env.adb (Ada_Objects_Path): Use Ada_Objects_Path_No_Libs 14180 to cache the result when Including_Libraries is False. 14181 * prj-env.ads (Ada_Objects_Path): Update documentation 14182 * prj.adb (Free (Project_Id)): Also free Ada_Objects_Path_No_Libs 14183 (Get_Object_Directory): Return the Library_Ali_Dir only when 14184 when Including_Libraries is True. 14185 * prj.ads (Get_Object_Directory): Fix and complete documentation 14186 (Project_Data): New component Ada_Objects_Path_No_Libs 14187 141882014-01-24 Robert Dewar <dewar@adacore.com> 14189 14190 * checks.adb (Expr_Known_Valid): Result of fpt operator never 14191 considered valid. 14192 141932014-01-24 Eric Botcazou <ebotcazou@adacore.com> 14194 14195 * back_end.adb: Minor fix in comment. 14196 141972014-01-24 Javier Miranda <miranda@adacore.com> 14198 14199 * sem_ch3.adb (Check_Abstract_Overriding): Code reestructuration 14200 required to report the error in case of task types. 14201 142022014-01-24 Ed Schonberg <schonberg@adacore.com> 14203 14204 * sem_attr.adb: Additional index checking. 14205 142062014-01-24 Ed Schonberg <schonberg@adacore.com> 14207 14208 * sem_attr.adb (Analyze_Attribute, case 'Update): Analyze 14209 expressions in each component association, and for records note 14210 the entity in each association choice, for subsequent resolution. 14211 (Resolve_Attribute, case 'Update): Complete resolution of 14212 expressions in each component association. 14213 142142014-01-24 Robert Dewar <dewar@adacore.com> 14215 14216 * sem.adb (Sem): Avoid premature reference to Current_Sem_Unit 14217 (this was causing Is_Main_Unit_Or_Main_Unit_Spec to be set wrong, 14218 leading to wrong handling of SPARK_Mode for library units). 14219 142202014-01-24 Robert Dewar <dewar@adacore.com> 14221 14222 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set SPARK_Mode 14223 on generic instances (do not consider them to be internally 14224 generated) 14225 142262014-01-24 Doug Rupp <rupp@adacore.com> 14227 14228 * s-osinte-android.ads (pthread_sigmask): Import sigprocmask 14229 vice pthread_sigmask. 14230 142312014-01-24 Vincent Celier <celier@adacore.com> 14232 14233 * prj.adb (Debug_Output (Str, Str2)): Output if verbosity is 14234 not default. 14235 142362014-01-24 Vincent Celier <celier@adacore.com> 14237 14238 * prj-ext.adb (Add): Do not output anything when Silent is True, 14239 whatever the verbosity. When Source is From_External_Attribute, 14240 set the corresponding environment variable if it is not already set. 14241 * prj-ext.ads (Add): New Boolean parameter Silent, defaulted 14242 to False 14243 * prj-proc.adb (Process_Expression_For_Associative_Array): 14244 For attribute External, call Prj.Ext.Add with Silent set to 14245 True for the child environment, to avoid useless output in non 14246 default verbosity. 14247 142482014-01-24 Ed Schonberg <schonberg@adacore.com> 14249 14250 * sem_res.adb (Set_Slice_Subtype): Handle properly a discrete 14251 range given by a subtype indication, and force evaluation of 14252 the bounds, as for a simple range. 14253 * exp_util.adb (Evaluate_Slice_Bounds): Utility to force evaluation 14254 of bounds of slice for various kinds of discrete ranges. 14255 (Evaluate_Name, Evaluate_Subtype_From_Expr): use 14256 Evaluate_Slice_Bounds. 14257 142582014-01-24 Bob Duff <duff@adacore.com> 14259 14260 * s-taskin.ads (Activator): Make this Atomic, because 14261 Activation_Is_Complete reads it, and that can be called 14262 from any task. Previously, this component was only 14263 modified by the activator before activation, and by 14264 Self after activation. 14265 * a-taside.ads, a-taside.adb (Environment_Task, 14266 Activation_Is_Complete): Implement these missing functions. 14267 142682014-01-24 Doug Rupp <rupp@adacore.com> 14269 14270 * init.c: Add a handler section for Android. 14271 142722014-01-24 Arnaud Charlet <charlet@adacore.com> 14273 14274 * i-cexten.ads (Unsigned_33..64, Unsigned_33..64): New types. 14275 142762014-01-24 Ed Schonberg <schonberg@adacore.com> 14277 14278 * sem_ch4.adb (Operator_Check): If one operand is a 14279 Raise_Expression, set its type to that of the other operand. 14280 * sem_res.adb (Resolve_Raise_Expression): new procedure. 14281 (Resolve_Actuals): For an actual that is a Raise_Expression, 14282 set the type to that of the formal. 14283 * sem_type.adb (Find_Unique_Type): If one of the operands is a 14284 Raise_Expression, return type of the other operand. 14285 142862014-01-24 Ed Schonberg <schonberg@adacore.com> 14287 14288 * sem_aggr.adb (Resolve_Record_Aggregate): If a scalar 14289 component of the record has a type with a default aspect, and 14290 the corresponding aggregate component is initiaized with a box, 14291 use the default value in the rewritten aggregate. 14292 142932014-01-24 Tristan Gingold <gingold@adacore.com> 14294 14295 * s-interr.ads, s-interr.adb, s-interr-hwint.adb, s-interr-vms.adb, 14296 s-interr-sigaction.adb, 14297 s-interr-dummy.adb (Install_Restricted_Handlers): Add Prio parameter. 14298 * exp_ch9.adb (Make_Initialize_Protection): Add Prio parameter 14299 to the call to Install_Restricted_Handlers. 14300 143012014-01-24 Emmanuel Briot <briot@adacore.com> 14302 14303 * prj-nmsc.adb (Check_File): Add protection when the source is 14304 not fully initialized. 14305 143062014-01-24 Ed Schonberg <schonberg@adacore.com> 14307 14308 * sem_util.adb (Is_Post_State): In a postcondition, a selected 14309 component that denotes an implicit dereference is a reference 14310 to the post state of the subprogram. 14311 143122014-01-24 Robert Dewar <dewar@adacore.com> 14313 14314 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): SPARK_Mode OFF 14315 for generated subprograms. 14316 (Analyze_Subprogram_Specification): Ditto. 14317 143182014-01-24 Vincent Celier <celier@adacore.com> 14319 14320 * prj-dect.adb (Check_Attribute_Allowed): Detect more forbidden 14321 attributes in package Builder of aggregate and aggregate library 14322 projects. 14323 * prj-nmsc.adb (Process_Naming_Scheme.Check.Check_Aggregate): 14324 Remove procedure (Process_Naming_Scheme.Check.Check_Aggregated): 14325 Remove parameters. Change error message from "... externally 14326 build library ..." to "... externally built project ...". 14327 (Process_Naming_Scheme.Check): Do not do any check in aggregate 14328 project, as attribute Library_Dir and Library_Name have already 14329 been detected as forbidden. 14330 143312014-01-24 Vincent Celier <celier@adacore.com> 14332 14333 * prj-env.adb (Find_Project): If cached project path is not in 14334 project directory, look in current directory first and use cached 14335 project path only if project is not found in project directory. 14336 143372014-01-24 Robert Dewar <dewar@adacore.com> 14338 14339 * sem_util.adb, lib-xref.adb: Correct false positive warnings. 14340 143412014-01-24 Vincent Celier <celier@adacore.com> 14342 14343 * projects.texi: Document that aggregate projects are only 14344 supported by gprbuild, but not by gnatmake. Document that the 14345 only attribute Switches in package Binder of aggregate projects 14346 will be ignored if its index is not others. Document that 14347 attribute Global_Config_File is allowed in package Binder of 14348 aggregate projects. 14349 143502014-01-24 Robert Dewar <dewar@adacore.com> 14351 14352 * sem_prag.adb: Minor code reorganization. 14353 * sem_util.adb: Minor fix of potential latent bug in Is_LHS. 14354 143552014-01-24 Pascal Obry <obry@adacore.com> 14356 14357 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Excluded_Patterns 14358 attribute definition. 14359 143602014-01-24 Vincent Celier <celier@adacore.com> 14361 14362 * makeutl.adb (Queue.Insert_No_Roots): In gprbuild, do not put 14363 in the Queue the same source (same path, same multi-source index) 14364 from the same project file, to avoid compiling several times 14365 the same source. 14366 143672014-01-24 Eric Botcazou <ebotcazou@adacore.com> 14368 14369 * einfo.ads (First_Rep_Item): Remove obsolete stuff. 14370 (Has_Gigi_Rep_Item): Likewise. 14371 * sem_prag.adb (Analyze_Pragma) <Pragma_Linker_Section>: Do not set 14372 Has_Gigi_Rep_Item for objects. 14373 * gcc-interface/decl.c (prepend_one_attribute_to): Rename into... 14374 (prepend_one_attribute): ...this. 14375 (prepend_one_attribute_pragma): New function extracted from... 14376 (prepend_attributes): ...here. Swap the parameters for consistency. 14377 (gnat_to_gnu_entity): Adjust calls to prepend_one_attribute_to and to 14378 prepend_attributes. 14379 <object>: Deal with a pragma Linker_Section on a constant 14380 or variable. <E_Function>: Deal with a pragma Linker_Section 14381 on a subprogram. 14382 (get_minimal_subprog_decl): Adjust calls to prepend_one_attribute_to. 14383 143842014-01-24 Vincent Celier <celier@adacore.com> 14385 14386 * opt.ads: Minor comment update. 14387 143882014-01-24 Robert Dewar <dewar@adacore.com> 14389 14390 * sem_prag.adb (Analyze_Input_Output): Add missing error check 14391 for junk operand. 14392 * sem_util.adb (Is_Refined_State): Add defense against junk 14393 tree from error. 14394 143952014-01-24 Pascal Obry <obry@adacore.com> 14396 14397 * projects.texi: Removes Build_Slaves attribute documentation. 14398 143992014-01-23 Robert Dewar <dewar@adacore.com> 14400 14401 * opt.adb (Register_Opt_Config_Switches): Save SPARK_Mode_Pragma 14402 setting. 14403 144042014-01-23 Ed Schonberg <schonberg@adacore.com> 14405 14406 * sem_util.adb (Is_Potentially_Unevaluated): Predicate only 14407 applies to expressions that come from source. 14408 * sem_attr.adb (Analyze_Attribute, case 'Old): Improve error 14409 message. 14410 (Analyze_Attribute, case 'Loop_Entry): Apply SPARK 2014 legality 14411 rule regarding potentially unevaluated expressions, to prefix 14412 of attribute. 14413 144142014-01-23 Ed Schonberg <schonberg@adacore.com> 14415 14416 * exp_util.adb (Make_Invqriant_Call): If type of expression is 14417 a private extension, get invariant from base type. 14418 144192014-01-23 Robert Dewar <dewar@adacore.com> 14420 14421 * sem_util.adb, sem_attr.adb: Minor reformatting. 14422 144232014-01-23 Robert Dewar <dewar@adacore.com> 14424 14425 * opt.adb (Save_Opt_Config_Switches): Save SPARK_Mode_Pragma 14426 (Restore_Opt_Config_Switches): Restore SPARK_Mode_Pragma. 14427 * sem.adb (Semantics): Remove save/restore of 14428 SPARK_Mode[_Pragma]. Not needed since already done in 14429 Save/Restore_Opt_Config_Switches. 14430 144312014-01-23 Robert Dewar <dewar@adacore.com> 14432 14433 * gnat_rm.texi, einfo.adb, einfo.ads, sem_prag.adb, gnat_ugn.texi, 14434 freeze.adb, repinfo.adb, aspects.adb, aspects.ads, sem_ch13.adb: 14435 Linker_Section enhancements. 14436 144372014-01-23 Tristan Gingold <gingold@adacore.com> 14438 14439 * gnat_rm.texi: Minor editing. 14440 144412014-01-23 Robert Dewar <dewar@adacore.com> 14442 14443 * opt.adb (Set_Opt_Config_Switches): Reset SPARK mode for 14444 with'ed internal units. 14445 * sem.adb (Semantics): Save and restore SPARK_Mode[_Pragma]. 14446 144472014-01-23 Javier Miranda <miranda@adacore.com> 14448 14449 * lib-xref.adb (Generate_Reference): As part of processing the 14450 "end-of-spec" reference generate an extra reference to the first 14451 private entity of the package. 14452 * xr_tabls.adb (Add_Reference): No action needed for the extra 14453 'E' reference associated; similar to the processing of the 14454 'e' reference. 14455 144562014-01-23 Bob Duff <duff@adacore.com> 14457 14458 * gnat_ugn.texi: Change "--&pp off" to "--!pp off". 14459 144602014-01-23 Ed Schonberg <schonberg@adacore.com> 14461 14462 * sem_util.ads, sem_util.adb (Is_Potentially_Unevaluated): new 14463 predicate to implement rule given in 6.1.1 (20/3). 14464 * sem_attr.adb (Analyze_Attribute, case 'Old): Reject prefix of 14465 'Old in a postcondition, if it is potentially unevaluated and 14466 it is not an entity name. 14467 144682014-01-23 Bob Duff <duff@adacore.com> 14469 14470 * gnat_ugn.texi: Document the new "--&pp off" feature of gnatpp. 14471 144722014-01-23 Robert Dewar <dewar@adacore.com> 14473 14474 * gnatlink.adb (Gnatlink): Fix problem of generating bad name 14475 msg on VMS. 14476 144772014-01-23 Bob Duff <duff@adacore.com> 14478 14479 * g-dynhta.ads: Minor comment fix. 14480 144812014-01-23 Yannick Moy <moy@adacore.com> 14482 14483 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Inherit SPARK_Mode 14484 from spec on body only when not already inherited on spec. Set 14485 SPARK_Mode from context on body without previous spec. * 14486 * sem_prag.adb (Analyze_Pragma): Check placement of pragma on 14487 library-level entities. Correct retrieval of entity from 14488 declaration, for cases where the declaration is not a unit. 14489 * sem_ch12.adb (Instantiate_Object): Avoid 14490 calling Is_Volatile_Object on an empty node. 14491 144922014-01-23 Robert Dewar <dewar@adacore.com> 14493 14494 * gnatlink.adb (Gnatlink): Check for suspicious executable file 14495 names on windows. 14496 144972014-01-23 Robert Dewar <dewar@adacore.com> 14498 14499 * a-ngelfu.ads: Remove bad uses of AND which should be AND THEN. 14500 * sem_res.adb (Check_No_Direct_Boolean_Operators): Don't give 14501 style errors in instances. 14502 * g-dynhta.ads (Static_HTable): Comment updates. 14503 145042014-01-23 Vincent Celier <celier@adacore.com> 14505 14506 * prj-conf.adb (Get_Or_Create_Configuration_File): Do not attempt 14507 to find a configuration project file when Config_File_Name is 14508 No_Configuration_File. 14509 * prj-conf.ads (No_Configuration_File): New constant String. 14510 * prj-pars.adb (Parse): Call Get_Or_Create_Configuration_File 14511 with Config_File_Name set to No_Configuration_File, so that 14512 no existing configuration project file will be used, and the 14513 configuration project will be only created in memory when 14514 Add_Default_GNAT_Naming_Scheme is called. 14515 * projects.texi: Minor reformatting. 14516 145172014-01-23 Vincent Celier <celier@adacore.com> 14518 14519 * prj-conf.adb (Get_Or_Create_Configuration_File): Never parse 14520 a config project file if On_Load_Config is not null. 14521 * prj-pars.adb: Minor comment changes. 14522 145232014-01-23 Ed Schonberg <schonberg@adacore.com> 14524 14525 * lib-xref.adb (Output_References): Output progenitors of 14526 synchronized tagged types, for source navigation. 14527 145282014-01-23 Robert Dewar <dewar@adacore.com> 14529 14530 * exp_util.adb, sinfo.adb, sinfo.ads, sem.adb, sem_res.adb, 14531 expander.adb, exp_ch11.adb, exp_ch11.ads, sem_ch11.adb, sem_ch11.ads, 14532 sprint.adb, sprint.ads: Remove unused node N_Subprogram_Info. 14533 145342014-01-23 Emmanuel Briot <briot@adacore.com> 14535 14536 * prj-conf.adb (Get_Or_Create_Configuration_File): call 14537 On_Load_Config later. 14538 145392014-01-23 Hristian Kirtchev <kirtchev@adacore.com> 14540 14541 * sem_ch3.adb (Analyze_Declarations): Do not 14542 generate the spec of the late primitive in ASIS mode. Add two 14543 comments to explain the special cases when the expansion is 14544 not performed. 14545 145462014-01-23 Robert Dewar <dewar@adacore.com> 14547 14548 * sem_util.adb (Note_Possible_Modification): Fix error of 14549 misbehaving for implicit dereference cases in -gnatc mode. 14550 145512014-01-23 Emmanuel Briot <briot@adacore.com> 14552 14553 * prj-pars.adb: Minor reformatting. 14554 145552014-01-22 Ed Schonberg <schonberg@adacore.com> 14556 14557 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): A subprogram 14558 body generated for an expression function within a protected body 14559 needs a set of renaming declarations if the expression function 14560 comes from source. 14561 145622014-01-22 Ed Schonberg <schonberg@adacore.com> 14563 14564 * lib-xref.adb (Get_Type_Reference): In semantics-only mode, 14565 list interface progenitor of a tagged concurrent type, for better 14566 source navigation. 14567 145682014-01-22 Robert Dewar <dewar@adacore.com> 14569 14570 * lib.adb (In_Extended_Main_Code_Unit): Return False for 14571 Standard_Location. 14572 (In_Extended_Main_Source_Unit): Return False for Standard_Location. 14573 * lib.ads (In_Extended_Main_Code_Unit): Add documentation on 14574 treatment of Slocs No_Location and Standard_Location. 14575 * restrict.adb (Check_Restriction_No_Dependence): Explicitly 14576 check for entity with Standard_Location Sloc, rather than relying 14577 on Lib routines to do that. 14578 * sem_res.adb (Resolve_Call): Implement SPARK_05 restriction 14579 that a call cannot occur before a later occuring body within 14580 the same unit. 14581 145822014-01-22 Thomas Quinot <quinot@adacore.com> 14583 14584 * rtsfind.adb: Update comment. 14585 145862014-01-22 Hristian Kirtchev <kirtchev@adacore.com> 14587 14588 * sem_aux.ads, sem_aux.adb (Is_Body): New routine. 14589 * sem_ch3.adb (Analyze_Declarations): Add local variable 14590 Body_Seen. Generate the spec of a late controlled 14591 primitive body that is about to freeze its related type. 14592 (Handle_Late_Controlled_Primitive): New routine. 14593 145942014-01-22 Robert Dewar <dewar@adacore.com> 14595 14596 * a-stream.adb: Minor reformatting. 14597 145982014-01-22 Ed Schonberg <schonberg@adacore.com> 14599 14600 * sem_ch8.adb (From_Actual_Package): Introduce a recursive 14601 sub-procedure Declared_In_Actual to handle properly the visibility 14602 of actuals in actual packages, that are themselves actuals to a 14603 actual package of the current instance. This mimics properly the 14604 visibility of formals of formal packages declared with a box, 14605 within the corresponding generic unit. 14606 146072014-01-22 Robert Dewar <dewar@adacore.com> 14608 14609 * checks.adb: Do not assume that a volatile variable is valid. 14610 146112014-01-22 Thomas Quinot <quinot@adacore.com> 14612 14613 * g-catiio.ads (Image, Value): Clarify that these functions 14614 operate in the local time zone. Minor documentation update. 14615 146162014-01-22 Thomas Quinot <quinot@adacore.com> 14617 14618 * csets.adb, csets.ads, opt.ads: Minor documentation fixes. 14619 146202014-01-22 Robert Dewar <dewar@adacore.com> 14621 14622 * sem_aux.adb, sem_aux.ads, sem_ch3.adb (Has_Unconstrained_Elements): 14623 Moved to sem_aux.adb. 14624 146252014-01-22 Robert Dewar <dewar@adacore.com> 14626 14627 * vms_data.ads: Minor reformatting. 14628 146292014-01-22 Robert Dewar <dewar@adacore.com> 14630 14631 * debug.adb: Document messages affected by -gnatd.E including 14632 the new ones that relate to late definition of equality. 14633 * sem_ch6.adb (Check_Untagged_Equality): In Ada 2012 mode, if 14634 debug flag -gnatd.E is set, then generate warnings rather than 14635 errors. 14636 (Check_Untagged_Equality): In earlier versions of Ada, 14637 generate warnings if Warn_On_Ada_2012_Incompatibility flag is set. 14638 146392014-01-22 Robert Dewar <dewar@adacore.com> 14640 14641 * sem_prag.adb (Usage_Error): Output additional messages for 14642 unconstrained OUT parameters lacking an input dependency. 14643 146442014-01-22 Robert Dewar <dewar@adacore.com> 14645 14646 * sem_ch4.adb: Minor reformatting. 14647 146482014-01-22 Robert Dewar <dewar@adacore.com> 14649 14650 * restrict.ads: Minor reformatting. 14651 * sem_res.adb (Resolve_Call): Check for SPARK_05 restriction that 14652 forbids a call from within a subprogram to the same subprogram. 14653 146542014-01-22 Thomas Quinot <quinot@adacore.com> 14655 14656 * a-stream.ads (Read_SEA, Write_SEA): New subprograms, optimized 14657 stream attributes for Stream_Element_Array. 14658 * a-stream.adb (Read_SEA, Write_SEA): Bodies for the above. 14659 * rtsfind.adb (Check_CRT): Do not reject a reference to an entity 14660 defined in the current scope. 14661 146622014-01-22 Robert Dewar <dewar@adacore.com> 14663 14664 * debug.adb, exp_ch4.adb, erroutc.adb: Minor reformatting. 14665 146662014-01-22 Thomas Quinot <quinot@adacore.com> 14667 14668 * sem_ch7.adb, sem_ch8.adb, exp_ch3.adb: Minor reformatting. 14669 146702014-01-22 Thomas Quinot <quinot@adacore.com> 14671 14672 * sem_ch3.adb (Analyze_Object_Declaration): For a constant 14673 declaration initialized with a function call, whose type 14674 has variable size, need to remove side effects so that the 14675 initialization expression becomes a dereference of a temporary 14676 reference to the function result. 14677 146782014-01-22 Yannick Moy <moy@adacore.com> 14679 14680 * errout.adb (Initialize): Remove trick to add dummy entry 14681 in Warnings table. 14682 * erroutc.adb (Set_Warnings_Mode_Off, 14683 Set_Warnings_Mode_On): Do nothing if warnings are suppressed by 14684 command line switch. 14685 * opt.ads (Warning_Mode): Document behavior 14686 wrt pragma Warnings, in normal mode and in GNATprove_Mode. 14687 146882014-01-22 Robert Dewar <dewar@adacore.com> 14689 14690 * sem_ch3.adb, errout.adb, erroutc.adb: Minor reformatting. 14691 146922014-01-22 Robert Dewar <dewar@adacore.com> 14693 14694 * sem_ch13.adb (Check_Pool_Size_Clash): New procedure 14695 (Analyze_Attribute_Definition_Clause, case Storage_Pool): call 14696 Check_Pool_Size_Clash (Analyze_Attribute_Definition_Clause, 14697 case Storage_Size): call Check_Pool_Size_Clash. 14698 146992014-01-22 Robert Dewar <dewar@adacore.com> 14700 14701 * sem_ch3.adb, exp_util.adb, sem_dim.adb, sem_elab.adb, sem_ch8.adb, 14702 sem_eval.ads: Minor reformatting. 14703 147042014-01-22 Thomas Quinot <quinot@adacore.com> 14705 14706 * sem_eval.adb (Compile_Time_Known_Bounds): Return False for 14707 Any_Composite to prevent cascaded errors. 14708 147092014-01-22 Yannick Moy <moy@adacore.com> 14710 14711 * errout.adb (Initialize): Do not insert special entry in Warnings 14712 table in GNATprove_Mode. 14713 * erroutc.adb (Set_Warnings_Mode_On): Add info in Warnings table in 14714 GNATprove_Mode. 14715 * gnat1drv.adb (Adjust_Global_Switches): Do not suppress frontend 14716 warnings anymore. 14717 147182014-01-22 Robert Dewar <dewar@adacore.com> 14719 14720 * sem_prag.adb (Analyze_Initializes_In_Decl_Part): Handle null 14721 initializes case. 14722 147232014-01-22 Robert Dewar <dewar@adacore.com> 14724 14725 * snames.ads-tmpl: Update header. 14726 147272014-01-22 Thomas Quinot <quinot@adacore.com> 14728 14729 * exp_util.adb (Insert_Actions): When inserting actions on a 14730 short circuit operator that has already been analyzed, do not park 14731 actions in node; instead introduce an N_Expression_With_Actions 14732 and insert actions immediately. 14733 Add guard for unexpected case of climbing up through statement 14734 in Actions list of an N_Expression_With_Actions. 14735 * sem_elab.adb (Insert_Elab_Check): Remove complex 14736 specialized circuitry for the case where the context is already 14737 analyzed, as it is not needed and introduces irregularities in 14738 finalization. Instead rely on the above change to Insert_Actions 14739 to ensure that late insertion on short circuit operators works 14740 as expected. 14741 147422014-01-22 Ed Schonberg <schonberg@adacore.com> 14743 14744 * sem_ch4.adb (Operator_Check): Improve error message when an 14745 operand of concatenation is an access type. 14746 147472014-01-22 Thomas Quinot <quinot@adacore.com> 14748 14749 * sem_dim.adb (Analyze_Dimension_Identifier): Add guard against 14750 cascaded error. 14751 147522014-01-22 Ed Schonberg <schonberg@adacore.com> 14753 14754 * sem_ch8.adb (Find_Selected_Component): Handle properly the case 14755 of an expanded name in a proper body, whose prefix is a package 14756 in the context of the proper body, when there is a homonym of 14757 the package declared in the parent unit. 14758 147592014-01-22 Robert Dewar <dewar@adacore.com> 14760 14761 * sem_warn.adb (Check_Use_Clause): Don't give no entities used 14762 msg if errors found. 14763 (Check_One_Unit): Same change. 14764 147652014-01-22 Robert Dewar <dewar@adacore.com> 14766 14767 * ug_words: Add missing/wrong entries for VMS warning switches. 14768 * sem_prag.adb (Check_Duplicate_Pragma): Avoid flagging parent type. 14769 147702014-01-22 Jerome Guitton <guitton@adacore.com> 14771 14772 * mlib-tgt-specific-vxworks.adb (Get_Target_Suffix): Replace xscale by 14773 arm. 14774 147752014-01-22 Robert Dewar <dewar@adacore.com> 14776 14777 * gnat_rm.texi, gnat_ugn.texi: Document passive task optimization 14778 147792014-01-22 Eric Botcazou <ebotcazou@adacore.com> 14780 14781 * gcc-interface/Makefile.in: Minor fixes. 14782 147832014-01-21 Robert Dewar <dewar@adacore.com> 14784 14785 * par-ch4.adb (P_If_Expression): Rewritten to improve error recovery. 14786 * par-ch5.adb (P_Condition): New version with expression prescanned. 14787 * par.adb (P_Condition): New version with expression prescanned. 14788 147892014-01-21 Robert Dewar <dewar@adacore.com> 14790 14791 * gnat_rm.texi: Document that Allow_Integer_Address is ignored 14792 if Address is not a private type. 14793 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): 14794 Ignore pragma if System.Address is not a private type. 14795 147962014-01-21 Arnaud Charlet <charlet@adacore.com> 14797 14798 * namet.ads (Name_Len): Initialize to 0 to avoid accessing an 14799 uninitialized value. 14800 148012014-01-21 Thomas Quinot <quinot@adacore.com> 14802 14803 * gnat_rm.texi (Scalar_Storage_Order): Update documentation. 14804 148052014-01-21 Ed Schonberg <schonberg@adacore.com> 14806 14807 * sem_ch12.adb (Set_Instance_Env): In Ada 2012 mode, preserve 14808 the value of Assertions_Enabled flag when compiling an instance of 14809 an internal unit. This facilitates the use of pre/postconditions 14810 in generic internal units, such as the new elementary function 14811 libraries. 14812 148132014-01-21 Robert Dewar <dewar@adacore.com> 14814 14815 * exp_aggr.adb: Minor reformatting. 14816 * sem_attr.adb: Minor reformatting. 14817 * sem_res.adb: Minor comment addition. 14818 * einfo.adb: Minor comment updates. 14819 * freeze.adb: Minor reformatting and code reorganization. 14820 148212014-01-21 Ed Schonberg <schonberg@adacore.com> 14822 14823 * par-ch4.adb (P_If_Expression): Handle more gracefully an 14824 elsif clause that does not have an else part. 14825 148262014-01-21 Robert Dewar <dewar@adacore.com> 14827 14828 * checks.adb, sem_util.ads, sem_ch4.adb: Minor reformatting. 14829 * gcc-interface/Makefile.in: clean up target pairs. 14830 148312014-01-21 Pascal Obry <obry@adacore.com> 14832 14833 * projects.texi: Minor typo fix. 14834 148352014-01-21 Thomas Quinot <quinot@adacore.com> 14836 14837 * freeze.adb (Check_Component_Storage_Order): If a record type 14838 has an explicit Scalar_Storage_Order attribute definition clause, 14839 reject any component that itself is of a composite type and does 14840 not have one. 14841 148422014-01-21 Ed Schonberg <schonberg@adacore.com> 14843 14844 * sem_ch10.adb (Generate_Parent_Reference): Make public so it 14845 can be used to generate proper cross-reference information for 14846 the parent units of proper bodies. 14847 148482014-01-21 Thomas Quinot <quinot@adacore.com> 14849 14850 * exp_pakd.adb (Expand_Packed_Element_Set, 14851 Expand_Packed_Element_Reference): No byte swapping required in 14852 the front-end for the case of a reverse storage order array, 14853 as this is now handled uniformly in the back-end. However we 14854 still need to swap back an extracted element if it is itself a 14855 nested composite with reverse storage order. 14856 148572014-01-21 Hristian Kirtchev <kirtchev@adacore.com> 14858 14859 * sem_prag.adb (Analyze_External_Property): Add processing for "others". 14860 (Analyze_Pragma): Update the grammar of pragma Abstract_State to 14861 include "others". 14862 148632014-01-21 Arnaud Charlet <charlet@adacore.com> 14864 14865 * gnat_ugn.texi: Minor updates. 14866 148672014-01-21 Thomas Quinot <quinot@adacore.com> 14868 14869 * exp_pakd.adb: Update comment, minor reformatting. 14870 148712014-01-21 Hristian Kirtchev <kirtchev@adacore.com> 14872 14873 * sem_ch3.adb (Analyze_Variable_Contract): Trigger the volatile 14874 object check when SPARK_Mode is on. 14875 * sem_ch6.adb (Process_Formals): Trigger the volatile object 14876 check when SPARK_Mode is on. 14877 * sem_ch12.adb (Instantiate_Object): Trigger the volatile object 14878 check when SPARK_Mode is on. 14879 * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the 14880 corresponding pragma of aspect SPARK_Mode in the visible 14881 declarations of a package declaration. 14882 * sem_prag.adb (Analyze_Pragma): Trigger the volatile object 14883 check when SPARK_Mode is on. 14884 * sem_res.adb (Resolve_Actuals): Trigger the volatile object 14885 check when SPARK_Mode is on. 14886 (Resolve_Entity_Name): Trigger 14887 the volatile object check when SPARK_Mode is on. 14888 148892014-01-21 Robert Dewar <dewar@adacore.com> 14890 14891 * sem_ch3.adb, sem_prag.adb, sem_prag.ads, sem_ch12.adb, sem_res.adb, 14892 sem_ch6.adb, a-except-2005.adb: Minor reformatting. 14893 148942014-01-21 Ed Schonberg <schonberg@adacore.com> 14895 14896 * exp_ch3.adb (Expand_N_Object_Declaration): When a class-wide 14897 object is declared, it is rewritten as a renaming of an dynamic 14898 expression that wraps the initial value. The renaming declaration 14899 is first given an internal name, to prevent collisions with the 14900 entity already declared, and then the name is modified to reflect 14901 the original one. the modification of the name must preserve 14902 the source location of the original, to prevent spurious errors 14903 when compiling with style checks if the declaration involves 14904 more than one entity. 14905 149062014-01-21 Hristian Kirtchev <kirtchev@adacore.com> 14907 14908 * aspects.adb Add entries for Async_Readers, Async_Writers, 14909 Effective_Reads and Effective_Writes in table Canonical_Aspect. 14910 * aspects.ads Add entries for Async_Readers, Async_Writers, 14911 Effective_Reads and Effective_Writes in tables Aspect_Id, 14912 Aspect_Names, Aspect_Delay and Implementation_Defined_Aspect. 14913 * atree.adb (Ekind_In): New version with 8 parameters. 14914 (Node34): New routine. 14915 (Set_Node34): New routine. 14916 * atree.ads (Ekind_In): New version with 8 parameters. 14917 (Node34): New routine. 14918 (Set_Node34): New routine. 14919 * einfo.adb Contract is now Node34. 14920 (Contract): Update the assertion and node usage. 14921 (Get_Pragma): Include pragmas Async_Readers, Async_Writers, 14922 Effective_Reads and Effective_Writes. 14923 (Set_Contract): Update the assertion and node usage. 14924 (Write_Field24_Name): Remove the output for a contract. 14925 (Write_Field34_Name): Add output for a contract. 14926 * einfo.ads Contract is now Node34. Update the comment on 14927 attribute usage and related node structures. 14928 (Get_Pragma): Update the comment on usage. 14929 * par-prag.adb (Prag): Pragmas Async_Readers, Async_Writers, 14930 Effective_Reads and Effective_Writes do not require special 14931 processing by the parser. 14932 * sem_ch3.adb (Analyze_Variable_Contract): New routine. 14933 (Analyze_Declarations): Analyze the contract of a variable at 14934 the end of the declarative region. 14935 (Analyze_Object_Declaration): Create a contract for a variable. 14936 * sem_ch6.adb (Analyze_Subprogram_Contract): Update the retrieval 14937 of classification pragmas. 14938 (Process_Formals): Detect an illegal 14939 use of a volatile object as a formal in a function. 14940 * sem_ch12.adb (Instantiate_Object): Detect an illegal use of 14941 a volatile object as an actual in generic instantiation. 14942 * sem_prag.adb Add entries for Async_Readers, Async_Writers, 14943 Effective_Reads and Effective_Writes in table Sig_Flags. 14944 (Analyze_External_State_In_Decl_Part): New routine. 14945 (Analyze_Global_Item): Detect an illegal use of a volatile object 14946 as a global item of a function. 14947 (Analyze_Pragma): Reimplement 14948 pragma Abstract_State. Add support for pragmas Async_Readers, 14949 Async_Writers, Effective_Reads and Effective_Writes. 14950 (Check_External_Properties): New routine. 14951 * sem_prag.ads (Analyze_External_State_In_Decl_Part): New routine. 14952 (Check_External_Properties): New routine. 14953 * sem_res.adb (Resolve_Actuals): Detect an illegal use of a 14954 volatile object as an actual in a call. 14955 (Resolve_Entity_Name): 14956 Add local variables Par, Prev and Usage_OK. Detect illegal 14957 contexts of volatile objects. 14958 * sem_util.adb (Add_Contract_Item): Add support for 14959 pragmas associated with the contract of a variable. 14960 (Async_Readers_Enabled): New routine. 14961 (Async_Writers_Enabled): New routine. 14962 (Effective_Reads_Enabled): New routine. 14963 (Effective_Writes_Enabled): New routine. 14964 (Has_Enabled_Property): 14965 New routine. 14966 (Is_Unchecked_Conversion_Instance): New routine. 14967 (Is_Volatile_Object): Add support for entities that may denote 14968 a volatile object. 14969 * sem_util.ads (Add_Contract_Item): Update the 14970 comment on usage. 14971 (Async_Readers_Enabled): New routine. 14972 (Async_Writers_Enabled): New routine. 14973 (Effective_Reads_Enabled): New routine. 14974 (Effective_Writes_Enabled): New routine. 14975 (Is_Unchecked_Conversion_Instance): New routine. 14976 * sinfo.ads Update the comment on the structure of N_Contract. 14977 * snames.ads-tmpl Add predefined names for Async_Readers, 14978 Async_Writers, Effective_Reads and Effective_Writes. Add 14979 pragma ids for Async_Readers, Async_Writers, Effective_Reads 14980 and Effective_Writes. 14981 149822014-01-21 Robert Dewar <dewar@adacore.com> 14983 14984 * exp_ch4.adb (Eval_Op_Expon): Use CRT_Safe_Compile_Time_Known_Value 14985 * sem_eval.adb (Compile_Time_Known_Value): Remove special 14986 handling of CRT mode (CRT_Safe_Compile_Time_Known_Value): New 14987 function (Eval_Op_Expon): Add CRT_Safe in call to Test_Foldable 14988 (Test_Foldable): Add CRT_Safe parameter 14989 * sem_eval.ads (Compile_Time_Known_Value): Remove special 14990 handling of CRT mode. 14991 (CRT_Safe_Compile_Time_Known_Value): New function. 14992 149932014-01-21 Robert Dewar <dewar@adacore.com> 14994 14995 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Fix problem 14996 with pragma or aspect that applies to package spec or subprogram 14997 spec. 14998 149992014-01-21 Robert Dewar <dewar@adacore.com> 15000 15001 * exp_aggr.adb: Minor reformatting. 15002 150032014-01-21 Johannes Kanig <kanig@adacore.com> 15004 15005 * gnat1drv.adb (Gnat1drv) remove obsolete reference to -gnatd.H. 15006 150072014-01-21 Bob Duff <duff@adacore.com> 15008 15009 * gnat_ugn.texi: Document the "checks" attribute in gnat2xml. 15010 150112014-01-21 Steve Baird <baird@adacore.com> 15012 15013 * gnat_rm.texi: Improve description of SPARK_Mode pragma. 15014 150152014-01-21 Vincent Celier <celier@adacore.com> 15016 15017 * prj-part.adb (Parse_Single_Project): Accept to extend a project 15018 if it has only be imported by an project being extended. When a 15019 project that has only been imported by a project being extended 15020 is imported by another project that is not being extended, 15021 reset the previous indication, so that it will be an error if 15022 this project is extended later. 15023 * prj-tree.adb (Create_Project): Include component From_Extended 15024 in table Projects_HT 15025 * prj-tree.ads (Project_Name_And_Node): New Boolean component 15026 From_Extended 15027 150282014-01-21 Robert Dewar <dewar@adacore.com> 15029 15030 * atree.ads, atree.adb: Add Node33 and Set_Node33. 15031 * einfo.ads, einfo.adb (SPARK_Pragma): New field (SPARK_Aux_Pragma): 15032 New field (SPARK_Pragma_Inherited): New flag 15033 (SPARK_Aux_Pragma_Inherited): New flag (SPARK_Mode_Pragmas): 15034 Removed. 15035 * lib.ads, lib.adb: Remove SPARK_Mode_Pragma, no longer used. 15036 * opt.ads (SPARK_Mode_Pragma): New global variable. 15037 * sem.ads: Add Save_SPARK_Mode_Pragma field to Scope_Stack_Entry. 15038 * sem_ch3.adb: Use new SPARK_Mode data structures. 15039 * sem_ch6.adb: Set SPARK_Mode fields in subprogram specs and bodies. 15040 * sem_ch7.adb: Set SPARK_Mode fields in package spec and body entities. 15041 * sem_ch8.adb (Push_Scope): Save SPARK_Mode_Pragma. 15042 (Pop_Scope): Restore SPARK_Mode_Pragma. 15043 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Rewrite for 15044 new data structures. 15045 150462014-01-21 Arnaud Charlet <charlet@adacore.com> 15047 15048 * back_end.adb: Undo previous change, not needed. Minor reformatting. 15049 150502014-01-21 Thomas Quinot <quinot@adacore.com> 15051 15052 * exp_ch5.adb: Fix comment. 15053 * switch-c.adb: Minor comment update. 15054 * exp_ch3.adb: Minor reformatting. 15055 150562014-01-21 Arnaud Charlet <charlet@adacore.com> 15057 15058 * back_end.adb (Scan_Compiler_Arguments): Do not store object 15059 filename in gnatprove mode. 15060 150612014-01-21 Thomas Quinot <quinot@adacore.com> 15062 15063 * sinfo.ads (No_Ctrl_Actions): Clarify documentation (flag also 15064 suppresses usage of primitive _assign for tagged types). 15065 * exp_aggr.adb (Build_Array_Aggr_Code.Gen_Assign): Set 15066 No_Ctrl_Actions for a tagged type that does not require 15067 finalization, as we want to disable usage of _assign (which 15068 may cause undesirable discriminant checks on an uninitialized, 15069 invalid target). 15070 150712014-01-21 Ed Schonberg <schonberg@adacore.com> 15072 15073 * sem_prag.adb: Reject invariant'class on completion. 15074 150752014-01-21 Javier Miranda <miranda@adacore.com> 15076 15077 * exp_ch3.adb (Build_Init_Procedure): For 15078 derivations of interfaces, do not move the the initialization 15079 of the _parent field since such assignment is not generated. 15080 150812014-01-21 Ed Schonberg <schonberg@adacore.com> 15082 15083 * sem_res.adb (Rewrite_Renamed_Operator): Do not replace entity 15084 with the operator it renames if we are within an expression of 15085 a pre/postcondition, because the expression will be reanalyzed 15086 at a later point, and the analysis of the renaming may affect 15087 the visibility of the operator when in an instance. 15088 150892014-01-21 Robert Dewar <dewar@adacore.com> 15090 15091 * sinfo.ads, sinfo.adb: Change Do_Discriminant_Check to use new Flag1. 15092 Add this flag to type conversion nodes and assignment nodes. 15093 * treepr.adb: Deal properly with Flag 1,2,3. 15094 * treeprs.adt: Minor comment update. 15095 150962014-01-21 Robert Dewar <dewar@adacore.com> 15097 15098 * sem_eval.adb (Compile_Time_Known_Value): Add Ignore_CRT 15099 parameter. 15100 * sem_eval.ads (Compile_Time_Known_Value): Add Ignore_CRT 15101 parameter, completely rewrite spec. 15102 151032014-01-21 Ed Schonberg <schonberg@adacore.com> 15104 15105 * sem_ch10.adb (Install_Withed_Unit): If the unit is a subprogram 15106 instance that is inlined, it may have been rewritten as a wrapper 15107 package. In that case the unit that must be made visible is the 15108 related instance of the package. 15109 151102014-01-21 Arnaud Charlet <charlet@adacore.com> 15111 15112 * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Refine 15113 previous change in codepeer mode. 15114 151152014-01-21 Arnaud Charlet <charlet@adacore.com> 15116 15117 * exp_ch9.adb (Expand_N_Selective_Accept.Add_Accept): Always add 15118 call to Abort_Undefer, as expected by the runtime. 15119 * s-tasren.adb (Local_Complete_Rendezvous): Replace 15120 Defer_Abort_Nestable by Defer_Abort, since we do not expect abort to be 15121 deferred at this point. Update comments. 15122 151232014-01-21 Thomas Quinot <quinot@adacore.com> 15124 15125 * exp_ch4.adb, exp_ch5.adb, checks.adb: Minor reformatting. 15126 151272014-01-21 Arnaud Charlet <charlet@adacore.com> 15128 15129 * switch-c.adb, usage.adb, gnat_ugn.texi: Mark -gnates as internal, 15130 remove from doc. 15131 151322014-01-21 Robert Dewar <dewar@adacore.com> 15133 15134 * switch-c.adb, usage.adb, atree.adb, atree.ads: Minor reformatting. 15135 151362014-01-21 Thomas Quinot <quinot@adacore.com> 15137 15138 * atree.adb, atree.ads (Num_Extension_Nodes): Switch to Node_Id, since 15139 this is value is used in Node_Id arithmetic operations. 15140 (Copy_Node, Exchange_Entities): Use loops indexed by Num_Extension_Nodes 15141 instead of hard-coded unrolled code. 15142 151432014-01-21 Yannick Moy <moy@adacore.com> 15144 15145 * gnat1drv.adb: Minor code cleanup, removing useless code. 15146 151472014-01-21 Arnaud Charlet <charlet@adacore.com> 15148 15149 * opt.ads (SPARK_Switches_File_Name): New. 15150 * switch-c.adb (Scan_Front_End_Switches): Add handling of -gnates=xxx * 15151 * usage.adb (Usage): Document -gnates, in gnatprove mode only. 15152 * gnat_ugn.texi: Document -gnates. 15153 151542014-01-21 Yannick Moy <moy@adacore.com> 15155 15156 * errout.adb (Special_Msg_Delete): Update comment. Remove 15157 special case for GNATprove which should not ignore mismatch 15158 in sizes for representation clauses. 15159 * sem_prag.adb (Analyze_Pragma): Remove special case for GNATprove 15160 which should not ignore pragma Pack. 15161 151622014-01-21 Ed Schonberg <schonberg@adacore.com> 15163 15164 * sem_ch4.adb: Code clean up. 15165 151662014-01-21 Steve Baird <baird@adacore.com> 15167 15168 * gnat_rm.texi: Improve GNAT RM description of SPARK_Mode pragma. 15169 151702014-01-21 Robert Dewar <dewar@adacore.com> 15171 15172 * gcc-interface/gigi.h: Get Flags array address. 15173 * gcc-interface/trans.c: Acquire Flags array address. 15174 * atree.adb: Add support for Flags array and Flag0,1,2,3. 15175 * atree.ads: Add support for Flags array and Flag0,1,2,3. 15176 * atree.h: Add support for Flags array and Flag0,1,2,3. 15177 * back_end.adb: Pass Flags array address to gigi. 15178 151792014-01-21 Ed Schonberg <schonberg@adacore.com> 15180 15181 * sem_ch8.adb (Attribute_Renaming): Transfer original attribute 15182 reference to generated body so that legality checks on stream 15183 attributes are properly applied. If type is tagged and already 15184 frozen, insert generated body at the point of the renaming 15185 declaration. 15186 151872014-01-21 Ed Schonberg <schonberg@adacore.com> 15188 15189 * sem_ch12.adb: Code clean up. 15190 * sem_ch8.adb: Minor reformatting 15191 151922014-01-20 Robert Dewar <dewar@adacore.com> 15193 15194 * checks.adb: Check SPARK_Mode instead of GNATProve_Mode for 15195 converting warnings on inevitable exceptions to errors. 15196 * exp_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for 15197 converting warnings on inevitable exceptions to errors. 15198 * opt.adb (SPARK_Mode_Config): Handled like other config flags 15199 * opt.ads (SPARK_Mode_Type): Moved here from types (renamed from 15200 SPARK_Mode_Id) (SPARK_Mode_Type): Add pragma Ordered, remove 15201 SPARK_ from names (SPARK_Mode): New flag (SPARK_Mode_Config): 15202 New flag (Config_Switches_Type): Add SPARK_Mode field 15203 * sem.adb: Minor code reorganization (remove unnecessary with) 15204 * sem.ads (Scope_Stack_Entry): Add Save_SPARK_Mode field 15205 * sem_aggr.adb: Check SPARK_Mode instead of GNATProve_Mode for 15206 converting warnings on inevitable exceptions to errors. 15207 * sem_attr.adb: Check SPARK_Mode instead of GNATProve_Mode for 15208 converting warnings on inevitable exceptions to errors. 15209 * sem_ch3.adb: Check SPARK_Mode instead of GNATProve_Mode for 15210 converting warnings on inevitable exceptions to errors. 15211 * sem_ch4.adb: Check SPARK_Mode instead of GNATProve_Mode for 15212 converting warnings on inevitable exceptions to errors. 15213 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Reset SPARK_Mode 15214 from spec if needed 15215 * sem_ch7.adb (Analyze_Package_Body_Helper): Reset SPARK_Mode 15216 from spec if needed 15217 * sem_ch8.adb (Push_Scope): Save SPARK_Mode (Pop_Scope): 15218 Restore SPARK_Mode 15219 * sem_elab.adb: Check SPARK_Mode instead of GNATProve_Mode for 15220 converting warnings on inevitable exceptions to errors. 15221 * sem_prag.adb (Get_SPARK_Mode_From_Pragma): New function 15222 (Get_SPARK_Mode_Id): Removed (Get_SPARK_Mode_Type): New name 15223 of Get_SPARK_Mode_Id 15224 * sem_prag.ads (Get_SPARK_Mode_From_Pragma): New function 15225 * sem_res.adb: Check SPARK_Mode instead of GNATProve_Mode for 15226 converting warnings on inevitable exceptions to errors. 15227 * sem_util.adb: Check SPARK_Mode instead of GNATProve_Mode for 15228 converting warnings on inevitable exceptions to errors. 15229 * types.ads (SPARK_Mode_Id): Moved to opt.ads and renamed 15230 SPARK_Mode_Type 15231 152322014-01-20 Ed Schonberg <schonberg@adacore.com> 15233 15234 * sem_ch13.adb: Add semantic information to rewritten type 15235 reference. 15236 152372014-01-20 Ed Schonberg <schonberg@adacore.com> 15238 15239 * exp_ch5.adb (Expand_N_Assignment_Statement): If both sides 15240 are of a type with unknown discriminants, convert both to the 15241 underlying view of the type, so that the proper constraint check 15242 can be applied to the right-hand side. 15243 152442014-01-20 Robert Dewar <dewar@adacore.com> 15245 15246 * atree.adb (Copy_Node): Fix failure to copy last component 15247 (Exchange_Entities): Fix failure to exchange last entity 15248 152492014-01-20 Ed Schonberg <schonberg@adacore.com> 15250 15251 * sem_ch12.adb: Code clean up. 15252 152532014-01-20 Robert Dewar <dewar@adacore.com> 15254 15255 * gnat_rm.texi, sem_ch4.adb: Minor reformatting. 15256 152572014-01-20 Ed Schonberg <schonberg@adacore.com> 15258 15259 * sem_ch4.adb (Analyze_Quantified_Expression): If after 15260 pre-analysis the loop parameter specification has been 15261 rewritten as a iterator specification, propagate the change to 15262 the quantified expression, for ASIS navigtion needs. 15263 152642014-01-20 Vincent Celier <celier@adacore.com> 15265 15266 * par-ch10.adb: Minor error message change: escape [ and ]. 15267 152682014-01-20 Robert Dewar <dewar@adacore.com> 15269 15270 * checks.adb: Make warnings on exceptions into errors in GNATprove mode. 15271 * errout.adb: Implement [ and ] insertion characters. 15272 * errout.ads: Document new [ and ] insertion characters. 15273 * sem_ch12.adb, restrict.adb, frontend.adb, exp_ch7.adb: Minor 15274 addition of ??? comment. 15275 * lib-xref.adb, exp_util.adb, gnat1drv.adb: Minor reformatting 15276 * exp_ch4.adb, sem_ch3.adb, sem_ch4.adb, sem_ch6.adb, sem_elab.adb, 15277 sem_eval.adb, sem_res.adb, sem_util.adb, sem_attr.adb, sem_aggr.adb: 15278 Make warnings on exceptions into errors in GNATprove mode. 15279 * sem_dim.adb: Minor reformatting throughout Quote [ and ] 15280 in error messages. 15281 152822014-01-20 Ed Schonberg <schonberg@adacore.com> 15283 15284 * sem_ch13.adb: Code clean up. 15285 152862014-01-20 Robert Dewar <dewar@adacore.com> 15287 15288 * errout.ads, errout.adb: Implement >? >x? >X? sequences in error 15289 messages. 15290 * sem_ch6.adb (Check_Statement_Sequence): Missing return is an 15291 error in GNATprove mode. 15292 152932014-01-20 Ed Schonberg <schonberg@adacore.com> 15294 15295 * par-ch4.adb (Is_Parameterless_Attribute): The Ada2012 attribute 15296 reference 'Old takes no parameters, and thus can appear as a 15297 prefix of a slice. 15298 152992014-01-20 Eric Botcazou <ebotcazou@adacore.com> 15300 15301 * exp_aggr.adb: Fix minor typos. 15302 153032014-01-20 Ed Schonberg <schonberg@adacore.com> 15304 15305 * sem_attr.adb (Analyze_Attribute, case 'Constrained): In an 15306 instance the attribute is legal, and its value is determined 15307 statically if the type has no discriminants. This choice is 15308 more useful than rechecking the legality rule in the instance, 15309 is consistent with older usage, and is also consistent with all 15310 existing tests. 15311 153122014-01-20 Arnaud Charlet <charlet@adacore.com> 15313 15314 * sem_cat.adb (Validate_Static_Object_Name): Change error into 15315 warning in Relaxed_Semantic_Mode. 15316 153172014-01-20 Ed Schonberg <schonberg@adacore.com> 15318 15319 * sem_attr.adb: Code and comments cleanup. 15320 153212014-01-20 Yannick Moy <moy@adacore.com> 15322 15323 * debug.adb Free debug flags -gnatd.D, -gnatd.G and -gnatd.V * 15324 * errout.adb (Compilation_Errors): Remove special handling in 15325 GNATprove mode. 15326 * gnat1drv.adb (Adjust_Global_Switches): Remove handling of the 15327 removed debug flags. 15328 * gnat_rm.texi: Initial documentation for Abstract_State, Depends, 15329 Global, Initial_Condition, Initializes and Refined_State pragmas and 15330 aspects. 15331 * opt.ads (Frame_Condition_Mode, Formal_Extensions, 15332 SPARK_Strict_Mode): Remove global flags. 15333 * sem_ch3.adb (Analyze_Object_Declaration): Check of no hidden state 15334 always performed now, on packages declaring a null state. 15335 (Signed_Integer_Type_Declaration): Remove ill-designed attempt 15336 at providing pedantic mode for bounds of integer types. 15337 * sem_ch4.adb (Analyze_Quantified_Expression): Warning on suspicious 15338 "some" quantified expression now issued under control of -gnatw.t, 15339 like the other warning on unused bound variable. 15340 * sem_prag.adb (Check_Precondition_Postcondition): Remove useless test 15341 on removed flag. 15342 (Analyze_Pragma): Remove tests for SPARK 2014 15343 pragmas, not officially allowed by GNAT. 15344 153452014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15346 15347 * sem_prag.adb (Analyze_Pragma): Ensure that 15348 the sole argument of pragmas Abstract_State, Contract_Cases, 15349 Depends, Global and Initializes in in aggregate form. 15350 (Analyze_Refined_Pragma): Ensure that the sole argument of 15351 pragmas Refined_Depends, Refined_Global and Refined_State is in 15352 aggregate form. 15353 (Ensure_Aggregate_Form): New routine. 15354 153552014-01-20 Doug Rupp <rupp@adacore.com> 15356 15357 * sem_attr.adb (Analyze_Attribute): case 15358 Attribute_Constrained => treat all prefixes as legal for Declib 15359 compatibility. 15360 153612014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15362 15363 * sem_prag.adb (Check_Mode): Reimplement the routine. 15364 (Find_Mode): New routine. 15365 153662014-01-20 Robert Dewar <dewar@adacore.com> 15367 15368 * sem_ch4.adb (Operator_Check): Handle additional 15369 Allow_Integer_Address cases. 15370 153712014-01-20 Robert Dewar <dewar@adacore.com> 15372 15373 * gnat_rm.texi (Allow_Integer_Address): Remove note about not 15374 allowed if address is non-private, no longer true. 15375 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): 15376 Remove check for address being private, causes difficulty when 15377 pragma used in gnat.adc file and is not needed, since we guard 15378 this in Address_Integer_Convert_OK. 15379 * exp_ch7.adb: Minor reformatting. 15380 * sem_ch4.adb: Handle operator operands in Allow_Integer_Address mode. 15381 153822014-01-20 Robert Dewar <dewar@adacore.com> 15383 15384 * checks.adb (Apply_Range_Check): Remove gnatprove special 15385 casing of exponentiation. 15386 * sem_res.adb (Resolve_Op_Expon): Apply range check to right 15387 operand for integer case to check range against Natural. 15388 153892014-01-20 Robert Dewar <dewar@adacore.com> 15390 15391 * s-tataat.adb: Minor reformatting. 15392 153932014-01-20 Robert Dewar <dewar@adacore.com> 15394 15395 * einfo.adb (Is_Descendent_Of_Address): Now applies to all 15396 entities, and also fix documentation to remove mention of visible 15397 integer type, since this is not what the implementation does. 15398 * einfo.ads (Is_Descendent_Of_Address): Now applies to all 15399 entities, and also fix documentation to remove mention of visible 15400 integer type, since this is not what the implementation does. 15401 * gnat_rm.texi: Minor clarification of Allow_Integer_Address 15402 function. 15403 * sem_ch4.adb (Analyze_One_Call): Handle Allow_Integer_Address 15404 case for parameter type check. 15405 * sem_res.adb (Resolve): Use new function 15406 Address_Integer_Convert_OK. 15407 * sem_type.adb: Minor code reorganization (use Ekind_In) Minor 15408 reformatting throughout. 15409 * sem_util.adb (Address_Integer_Convert_OK): New function. 15410 * sem_util.ads: Minor reformatting (put specs in alpha order) 15411 (Address_Integer_Convert_OK): New function. 15412 154132014-01-20 Thomas Quinot <quinot@adacore.com> 15414 15415 * exp_ch7.adb (Wrap_Transient_Expression): 15416 Insertion extra conditional expression only if 15417 Opt.Suppress_Control_Flow_Optimizations is set. 15418 154192014-01-20 Arnaud Charlet <charlet@adacore.com> 15420 15421 * s-tataat.adb (Initialize_Attributes): Abort might already be 15422 deferred in Create_Task. 15423 154242014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15425 15426 * checks.adb (Apply_Scalar_Range_Check): Flag 15427 the exponent as requiring a range check when the expression is 15428 an exponentiation. 15429 154302014-01-20 Fedor Rybin <frybin@adacore.com> 15431 15432 * gnat_ugn.texi: Documenting --passed-tests option for gnattest. 15433 154342014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15435 15436 * sem_util.adb (Default_Initialization): New routine. 15437 * sem_util.ads: Add new type Default_Initialization_Kind. 15438 (Default_Initialization): New routine. 15439 154402014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15441 15442 * sem_prag.adb (Check_Mode): Correct all error 15443 message logic dealing with in/in out parameters that may appear 15444 as inputs or have a self reference. 15445 154462014-01-20 Robert Dewar <dewar@adacore.com> 15447 15448 * exp_ch9.adb, checks.adb, exp_intr.adb: Minor reformatting. 15449 * sem_res.adb (Resolve): Fix error causing infinite loop for 15450 integer used as address. Allow addresses as integers. 15451 154522014-01-20 Arnaud Charlet <charlet@adacore.com> 15453 15454 * s-osinte-linux.ads (struct_sigaction): Fix rep clause. 15455 154562014-01-20 Bob Duff <duff@adacore.com> 15457 15458 * par-ch8.adb (P_Use_Type_Clause): Detect syntax 15459 error when "use all" is not followed by "type". 15460 154612014-01-20 Bob Duff <duff@adacore.com> 15462 15463 * exp_intr.adb (Expand_Unc_Deallocation): Remove warning on abort 15464 followed by free. 15465 154662014-01-20 Ed Schonberg <schonberg@adacore.com> 15467 15468 * checks.adb (Apply_Address_Clause_Check): If there is an 15469 alignment check on the expression in an address clause, and there 15470 is no local exception propagation, add an additional explanatory 15471 message to clarify the cause of previous warning. 15472 154732014-01-20 Robert Dewar <dewar@adacore.com> 15474 15475 * exp_ch7.adb: Minor reformatting. 15476 * opt.ads: Minor comment updates. 15477 * sem.adb: Minor name change Is_Main_Unit => 15478 Is_Main_Unit_Or_Main_Unit_Spec. 15479 * sem_ch6.adb: Minor reformatting and code reorganization. 15480 154812014-01-20 Bob Duff <duff@adacore.com> 15482 15483 * gnat_ugn.texi: Update gnatpp switches. 15484 154852014-01-20 Thomas Quinot <quinot@adacore.com> 15486 15487 * exp_ch9.adb: Minor comment edit. 15488 154892014-01-20 Robert Dewar <dewar@adacore.com> 15490 15491 * gnat_rm.texi: Document that Allow_Integer_Address is permitted 15492 only if System.Address is a private type. 15493 * opt.ads (Allow_Integer_Address): No longer set by -gnates. 15494 * sem_prag.adb (Analyze_Pragma, case Allow_Integer_Address): 15495 Allowed only if type System.Address is private, since otherwise 15496 it makes no sense. 15497 * sem_res.adb: Fix failure to properly Analyze unchecked 15498 conversions that were introduced by Allow_Integer_Address. 15499 * switch-c.adb: Remove -gnates switch. 15500 * usage.adb: Remove -gnates switch. 15501 * gnat_ugn.texi: Remove documentation of -gnates flag. 15502 155032014-01-20 Ed Schonberg <schonberg@adacore.com> 15504 15505 * sem_ch6.adb (Analyze_Expression_Function): Pre-analyze and 15506 resolve expression to perform proper name capture. 15507 155082014-01-20 Ed Schonberg <schonberg@adacore.com> 15509 15510 * sem.adb (Semantics): When saving/restoring configuration 15511 switches, the spec of a pre- defined unit that is the main unit 15512 must be treated as a predefined unit as well. 15513 155142014-01-20 Thomas Quinot <quinot@adacore.com> 15515 15516 * exp_ch7.adb (Wrap_Transient_Expression): For a Boolean 15517 expression, insert an extra conditional expression when saving 15518 the value of the expression, for the benefit of control flow 15519 graph based coverage analysis. 15520 * exp_ch3.adb: Minor reformatting. 15521 155222014-01-20 Robert Dewar <dewar@adacore.com> 15523 15524 * gnat1drv.adb: Set Allow_Integer_Address in relaxed semantics mode. 15525 * gnat_rm.texi: Document pragma Allow_Integer_Address. 15526 * gnat_ugn.texi: Document pragma Allow_Integer_Address, -gnates. 15527 * opt.ads: New flag Allow_Integer_Address. 15528 * par-prag.adb: Dummy entry for pragma Allow_Integer_Address. 15529 * sem_ch5.adb: Minor reformatting. 15530 * sem_prag.adb: Implement pragma Allow_Integer_Address. 15531 * sem_res.adb (Resolve): Allow integer address value if 15532 switch set. 15533 * sem_util.adb: Minor reformatting. 15534 * snames.ads-tmpl: Add entry for pragma Allow_Integer_Address. 15535 * switch-c.adb: Recognize flag -gnates. 15536 * usage.adb: Document flag -gnates. 15537 155382014-01-20 Thomas Quinot <quinot@adacore.com> 15539 15540 * s-tadeca.adb: Fix minor typos in comment. 15541 155422014-01-20 Pascal Obry <obry@adacore.com> 15543 15544 * s-win32.ads (FreeLibrary): New import. 15545 155462014-01-20 Robert Dewar <dewar@adacore.com> 15547 15548 * sem_res.adb, sem_cat.adb: Minor reformatting. 15549 * sem_ch11.adb (Analyze_Raise_Statement): Only give warning about 15550 assigning to OUT parameters for the current subprogram scope. 15551 * exp_ch4.adb: Minor reformatting. 15552 155532014-01-20 Ed Schonberg <schonberg@adacore.com> 15554 15555 * exp_ch4.adb (Process_Transient_Object, 15556 Find_Enclosing_Contexts): If the top-level if-expression that 15557 generated the transient object is an actual in a call, the proper 15558 Hook_Context is a construct enclosing the call. 15559 * einfo.ads: Indicate that Related_Expression is used to link a 15560 loop variable to the container expression over which the loop 15561 takes place. 15562 (Analyze_Iterator_Specification): Set the Related_Expression of 15563 the loop variable in a container element iterator. 15564 (Note_Possible_Modification): If the variable is the loop 15565 variable in a container element iterator, indicate that the 15566 enclosing container is also modified. 15567 155682014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15569 15570 * aspects.adb (Move_Or_Merge_Aspects): Reimplemented. 15571 155722014-01-20 Robert Dewar <dewar@adacore.com> 15573 15574 * s-taasde.ads, gnat_ugn.texi, s-tadeca.adb, sem_res.adb, s-tadeca.ads: 15575 Minor reformatting and code clean up. 15576 155772014-01-20 Arnaud Charlet <charlet@adacore.com> 15578 15579 * sem_cat.adb (Validate_Object_Declaration): Relax semantics 15580 of objects of private type if Relaxed_RM_Semantics. 15581 155822014-01-20 Claire Dross <dross@adacore.com> 15583 15584 * a-cofove.ads (Vector): Capacity discriminant 15585 should be in range of the index. 15586 155872014-01-20 Thomas Quinot <quinot@adacore.com> 15588 15589 * a-caldel.ads(To_Duration), s-taasde.ads(Time_Enqueue): 15590 Clarify specs s-tadeca.adb(Enqueue_Calendar): Compensate for 15591 possible difference between epoch of Ada.Calendar clock and Ada 15592 real-time/tasking clock. 15593 * s-taprop-posix.adb: Minor comment fix. 15594 155952014-01-20 Doug Rupp <rupp@adacore.com> 15596 15597 * sysdep.c [vxworks]: Remove Vxworks version noise for RTP. 15598 155992014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15600 15601 * exp_attr.adb (Expand_N_Attribute_Reference): Generate validity 15602 checks on the prefix of attribute 'Old. 15603 * sem_ch3.adb (Process_Range_Expr_In_Decl): Suppress the 15604 generation of validity checks on a range that belongs to the 15605 iteration scheme of a quantified expression. 15606 * sem_ch5.adb (One_Bound): Suppress the generation of validity 15607 checks on a bound that belongs to the iteration scheme of a 15608 quantified expression, generate the check in all other cases. 15609 156102014-01-20 Bob Duff <duff@adacore.com> 15611 15612 * gnat_ugn.texi: Enable --pp-new by default. Minor reorganization. 15613 156142014-01-20 Ed Schonberg <schonberg@adacore.com> 15615 15616 * sem_res.adb (Resolve): When compiling a predefined unit, ignore 15617 interpretations that do not come from other predefined units, 15618 to prevent spurious ambiguities in the presence of user-defined 15619 operators in the context of (an instance of) a predefined unit. 15620 156212014-01-20 Robert Dewar <dewar@adacore.com> 15622 15623 * gnat_rm.texi: Document that Loop_Variant is included in 15624 Statement_Assertions. 15625 * sem_prag.adb (Check_Kind): Add Loop_Variant to 15626 Statement_Assertions (Check_Applicable_Policy): Add Loop_Variant 15627 to Statement_Assertions. 15628 156292014-01-20 Doug Rupp <rupp@adacore.com> 15630 15631 * sysdep.c (__gnat_is_file_not_found_error) [vxworks6]: Add case 15632 for errno ENOENT from RTP on NFS mounted file system. 15633 156342014-01-20 Ed Schonberg <schonberg@adacore.com> 15635 15636 * sem_util.adb (Check_Function_Writable_Actuals): 1) Do not 15637 examine code that does not come from source. The check does not 15638 apply to code generated for constraint checks, and such code may 15639 generate spurious error messages when compiled with expansion 15640 disabled (as in a generic unit) because side effects may not 15641 have been removed. 15642 2) Make error messages more explicit: indicate the component 15643 of the construct whose value is indeterminate because of a 15644 call to a function with in-out parameter in another component, 15645 when there is no mandated order of execution between the two 15646 components (actuals, aggregate components, alternatives). 15647 156482014-01-20 Robert Dewar <dewar@adacore.com> 15649 15650 * gnat_rm.texi: Minor cleanup. 15651 156522014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15653 15654 * sem_attr.adb (Analyze_Attribute): Attributes 'Old and 'Result 15655 can now apply to a refined postcondition. 15656 * sem_ch6.adb (Analyze_Subprogram_Contract): Remove local 15657 variable Result_Seen. Add variables Case_Prag, Post_Prag, 15658 Seen_In_Case and Seen_In_Post. Update the mechanism that detects 15659 whether postconditions and/or constract-cases mention attribute 15660 'Result and introduce a post-state when applied to functions. 15661 (Check_Result_And_Post_State): Removed. 15662 * sem_prag.adb (Analyze_Pragma): Add local variable 15663 Result_Seen. Verify that the expression of pragma Refined_Post 15664 mentions attribute 'Result and introduces a post-state. 15665 * sem_util.ads, sem_util.adb (Check_Result_And_Post_State): New routine. 15666 156672014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15668 15669 * exp_ch7.adb (Is_Subprogram_Call): New routine. 15670 (Process_Transient_Objects): Make variable Must_Hook global with 15671 respect to all locally declared subprograms. Search the context 15672 for at least one subprogram call. 15673 (Requires_Hooking): Removed. 15674 156752014-01-20 Claire Dross <dross@adacore.com> 15676 15677 * a-cfdlli.ads a-cfhama.ads a-cfhase.ads a-cforma.ads 15678 * a-cforse.ads a-cofove.ads: Add pragma Annotate (GNATprove, 15679 External_Axiomatization); 15680 156812014-01-20 Robert Dewar <dewar@adacore.com> 15682 15683 * sem_attr.adb (Analyze_Attribute, case Loop_Entry): Allow 15684 Loop_Entry in Assert, Assert_And_Cut, and Assume pragmas. 15685 * sem_prag.adb (Analyze_Pragma, case Assert[_And_Cut], Assume): 15686 Allow Loop_Entry to be used in these pragmas if they appear in 15687 an appropriate context. 15688 (Placement_Error): Specialize error 15689 message for pragma Assert[_And_Cut] or pragma Assume containing 15690 Loop_Entry attribute. 15691 * a-exexpr-gcc.adb, sinput.adb: Minor reformatting. 15692 * s-excmac-arm.ads, s-except.ads, s-excmac-gcc.ads: Minor reformatting 15693 and code clean ups. 15694 156952014-01-20 Robert Dewar <dewar@adacore.com> 15696 15697 * gnat1drv.adb: Minor comment update. 15698 156992014-01-20 Tristan Gingold <gingold@adacore.com> 15700 15701 * raise-gcc.c (PERSONALITY_FUNCTION/arm): Remove unused 15702 variables, comment out unused code. 15703 * a-exexpr-gcc.adb: Move declarations to s-excmac-gcc.ads 15704 * s-excmac-gcc.ads: New file, extracted from a-exexpr-gcc.adb 15705 * s-excmac-arm.ads: New file. 15706 157072014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15708 15709 * exp_ch4.adb (Expand_N_Slice): Remove constant D and variables 15710 Drange and Index_Typ. Remove the circuitry which creates a 15711 range check to compare the index type of the array against the 15712 discrete_range. 15713 * sem_res.adb (Resolve_Slice): Add local variable Dexpr. Update 15714 the circuitry which creates a range check to handle a 15715 discrete_range denoted by a subtype indication. 15716 157172014-01-20 Pierre-Marie Derodat <derodat@adacore.com> 15718 15719 * sinput.adb, sinput.ads (Sloc_Range): Traverse the tree of original 15720 nodes to get the original sloc range. 15721 157222014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15723 15724 * sem_prag.adb (Analyze_Pragma): Use Defining_Entity to obtain the 15725 entity of a [library level] package. 15726 157272014-01-20 Tristan Gingold <gingold@adacore.com> 15728 15729 * raise-gcc.c (exception_class_eq): New function. 15730 (is_handled_by): Use it to compare exception classes. 15731 (PERSONALITY_STORAGE): Define. (continue_unwind): New function to 15732 be called to return URC_CONTINUE_UNWIND. 15733 (personality_body): New function, extracted from PERSONALITY_ROUTINE. 15734 (PERSONALITY_ROUTINE): Add an implementation for the ARM unwinder. 15735 157362014-01-20 Robert Dewar <dewar@adacore.com> 15737 15738 * opt.ads: Minor comment update. 15739 157402014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15741 15742 * exp_ch4.adb (Expand_N_Slice): Relocate some variables and 15743 constants to the "Local variables" area. Add new constant D. Add 15744 new variables Drange and Index_Typ. Rename Pfx to Rep and Ptp 15745 to Pref_Typ and update all occurrences. Add circuitry to extract 15746 the discrete_range and the index type and build a range check. 15747 157482014-01-20 Arnaud Charlet <charlet@adacore.com> 15749 15750 * gnat1drv.adb (Adjust_Global_Switches): Enable 15751 Treat_Categorization_Errors_As_Warnings when Relaxed_RM_Semantics 15752 is set. 15753 157542014-01-20 Thomas Quinot <quinot@adacore.com> 15755 15756 * sem_ch5.adb, sem_ch4.adb: Minor reformatting. 15757 157582014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15759 15760 * sem_ch13.adb (Analyze_Aspect_Specifications): 15761 When aspect SPARK_Mode appears on a package body, insert the 15762 generated pragma at the top of the body declarations. 15763 157642014-01-20 Robert Dewar <dewar@adacore.com> 15765 15766 * sem_aggr.adb, exp_prag.adb, sem_aux.adb, sinfo.ads, sem_ch10.adb, 15767 checks.adb, sem_prag.adb, sem_ch12.adb, freeze.adb, g-arrspl.adb, 15768 expander.adb, gnat1drv.adb, exp_ch4.adb, sem_ch6.adb, 15769 sem_ch8.adb, exp_dist.adb: Minor reformatting. 15770 157712014-01-20 Yannick Moy <moy@adacore.com> 15772 15773 * gnat1drv.adb (Gnat1drv): Call Write_ALI with Object=True in GNATprove 15774 mode. 15775 157762014-01-20 Pascal Obry <obry@adacore.com> 15777 15778 * g-arrspl.ads (Slice_Set): New definition (will use a copy on 15779 write scheme). 15780 * g-arrspl.adb: Adapt all routine to this new implementation. 15781 (Set): Copy the Slice_Set definition before reusing it. 15782 157832014-01-20 Arnaud Charlet <charlet@adacore.com> 15784 15785 * sem_prag.adb (Process_Import_Or_Interface): In 15786 Relaxed_RM_Semantics, support old Ada 83 style of pragma Import. 15787 (Analyze_Pragma): Ditto for pragma Export. 15788 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Handle old pragma 15789 Import style. 15790 157912014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15792 15793 * einfo.ads: E_Abstract_State is now part of the entities that 15794 can be overloaded. Update type Overloadable_Kind to reflect the 15795 inclusion of abstract states. 15796 * sem_ch6.adb (New_Overloaded_Entity): A function can now 15797 overload an abstract state. 15798 * sem_prag.adb (Analyze_Constituent): Handle the overloading 15799 of states by functions. Use Entity_Of to obtain the entity of 15800 a constituent. (Analyze_Global_Item): Handle the overloading of 15801 states by functions. 15802 (Analyze_Initialization_Item): Handle the 15803 overloading of states by functions. Use Entity_Of to obtain the 15804 entity of an item. 15805 (Analyze_Input_Item): Handle the overloading 15806 of states by functions. Use Entity_Of to obtain the entity of an item. 15807 (Analyze_Input_Output): Handle the overloading of states by functions. 15808 (Analyze_Refinement_Clause): Handle the overloading 15809 of states by functions. Use Entity_Of to obtain the entity of an item. 15810 (Appears_In): Use Entity_Of to obtain the entity of an element. 15811 (Check_Usage): Use Entity_Of to obtain the entity of 15812 an item. Add a guard to prevent a crash due to a previous error. 15813 (Resolve_State): New routine. 15814 158152014-01-20 Yannick Moy <moy@adacore.com> 15816 15817 * spark_xrefs.ads, debug.adb, gnat1drv.adb, errout.adb, errout.ads, 15818 opt.ads: Minor comments updates. 15819 158202014-01-20 Hristian Kirtchev <kirtchev@adacore.com> 15821 15822 * einfo.adb (Non_Limited_View): Applies to abstract states. 15823 (Set_From_Limited_With): Applies to abstract states. 15824 (Set_Non_Limited_View): Applies to abstract states. 15825 (Write_Field17): Output the non-limited view of an abstract state. 15826 * einfo.ads: Update the comment on usage and occurrences in 15827 nodes for attributes From_Limited_With and Non_Limited_View. 15828 * sem_aux.adb (Available_View): This routine can now handle 15829 abstract states. 15830 * sem_aux.ads (Available_View): This routine can now handle 15831 abstract states. Update the comment on usage. 15832 * sem_ch8.adb (Find_Expanded_Name): Handle abstract views 15833 of states and variables. 15834 (In_Pragmas_Depends_Or_Global): New routine. 15835 * sem_ch10.adb (Build_Limited_Views): Implement 15836 abstract (limited) views of variables and states. 15837 (Build_Shadow_Entity): This routine is now a procedure. Add 15838 formal parameter Shadow. Update the comment on usage. Add 15839 context-specific decoration for states and variables. 15840 (Decorate_State): New routine. (Decorate_Variable): New routine. 15841 (Find_And_Process_States): New routine. 15842 (Process_Declarations): Renamed to Process_Declarations_And_States. 15843 (Process_Declarations_And_States): Add formal parameters 15844 Pack and Create_Abstract_Views. Update the comment on usage. 15845 (Process_States): New routine. 15846 * sem_prag.adb (Check_Dependency_Clause): Handle abstract 15847 views of states and variables. Match the abstract view of a state 15848 against its corresponding non-abstract view. 15849 (Is_Matching_Input): 15850 Handle abstract views of states and variables. Match the abstract 15851 view of a state against its corresponding non-abstract view. 15852 (Process_Global_Item): Handle abstract views of states and 15853 variables. 15854 158552014-01-20 Bob Duff <duff@adacore.com> 15856 15857 * sem_ch10.adb (Expand_With_Clause): Don't 15858 recurse on the prefix if the current with-ed name refers to a 15859 package that renames its own parent, eg "package P.Q renames P;". 15860 158612014-01-20 Yannick Moy <moy@adacore.com> 15862 15863 * exp_spark.adb (Expand_SPARK_Call): Remove procedure. 15864 * opt.adb, opt.ads (Full_Expander_Active): Remove function. 15865 * checks.adb, exp_ch6.adb, exp_ch9.adb, exp_disp.adb, sem_aggr.adb, 15866 * sem_ch10.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, sem_ch9.adb, 15867 * sem_disp.adb, sem_res.adb Replace Full_Expander_Active by 15868 Expander_Active. 15869 158702014-01-20 Yannick Moy <moy@adacore.com> 15871 15872 * sinfo.ads Update documentation of GNATprove mode. 15873 158742014-01-20 Yannick Moy <moy@adacore.com> 15875 15876 * adabkend.adb, ali-util.adb, errout.adb, exp_ch7.adb, 15877 * exp_dbug.adb, freeze.adb, lib-xref.adb, restrict.adb, 15878 * sem_attr.adb, sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_ch8.adb, 15879 * sem_prag.adb, sem_res.adb, sem_util.adb Rename SPARK_Mode into 15880 GNATprove_Mode. 15881 * sem_ch13.adb: Remove blank. 15882 * exp_spark.adb, exp_spark.ads (Expand_SPARK_Call): Only replace 15883 subprograms by alias for renamings, not for inherited primitive 15884 operations. 15885 * exp_util.adb (Expand_Subtype_From_Expr): Apply the expansion 15886 in GNATprove mode. 15887 (Remove_Side_Effects): Apply the removal in 15888 GNATprove mode, for the full analysis of expressions. 15889 * expander.adb (Expand): Call the light SPARK expansion in GNATprove 15890 mode. 15891 (Expander_Mode_Restore, Expander_Mode_Save_And_Set): Ignore 15892 save/restore actions for Expander_Active flag in GNATprove mode, 15893 similar to what is done in ASIS mode. 15894 * frontend.adb (Frontend): Generic bodies are instantiated in 15895 GNATprove mode. 15896 * gnat1drv.adb (Adjust_Global_Switches): Set operating 15897 mode to Check_Semantics in GNATprove mode, although a light 15898 expansion is still performed. 15899 (Gnat1drv): Set Back_End_Mode to 15900 Declarations_Only in GNATprove mode, and later on special case 15901 the GNATprove mode to continue analysis anyway. 15902 * lib-writ.adb (Write_ALI): Always generate ALI files in 15903 GNATprove mode. 15904 * opt.adb, opt.ads (Full_Expander_Active): Make it equivalent to 15905 Expander_Active. 15906 (SPARK_Mode): Renamed as GNATprove_Mode. 15907 * sem_aggr.adb (Aggregate_Constraint_Checks): Add checks in the 15908 tree in GNATprove_Mode. 15909 * sem_ch12.adb (Analyze_Package_Instantiation): Always instantiate 15910 body in GNATprove mode. 15911 (Need_Subprogram_Instance_Body): Always instantiate body in GNATprove 15912 mode. 15913 * sem_ch3.adb (Constrain_Index, Process_Range_Expr_In_Decl): 15914 Make sure side effects are removed in GNATprove mode. 15915 159162014-01-20 Eric Botcazou <ebotcazou@adacore.com> 15917 15918 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Robustify tests 15919 for aliased objects with an unconstrained nominal subtype. 15920 * gcc-interface/trans.c (Call_to_gnu): Likewise. 15921 (gnat_to_gnu) <case N_Op_Not>: Robustify test for private type. 15922 <case N_Op_Minus>: Remove useless code. 15923 (Exception_Handler_to_gnu_zcx): Minor tweaks. 15924 159252014-01-20 Eric Botcazou <ebotcazou@adacore.com> 15926 15927 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Record_Subtype>: 15928 Tidy up. For a subtype with discriminants and variant part, if a 15929 variant is statically selected and the fields all have a constant 15930 position, put them in order of increasing position. Likewise if 15931 no variant part but representation clause is present. 15932 * gcc-interface/utils.c (make_packable_type): Robustify. 15933 (maybe_pad_type): Use local variable and tidy up condition. If no 15934 alignment is specified, use the original one. 15935 (create_type_stub_decl): Minor tweak. 15936 (convert) <case VECTOR_CST>: Fix typo. 15937 <case CONSTRUCTOR>: Deal with padding types around the same type. 15938 Do not punt on missing fields. 15939 (unchecked_convert): Call finish_record_type to lay out the special 15940 record types made for conversions from/to problematic integer types. 15941 Bump the alignment of CONSTRUCTORs before converting them to a more 15942 aligned type. 15943 159442014-01-20 Eric Botcazou <ebotcazou@adacore.com> 15945 15946 * gcc-interface/decl.c (gnat_to_gnu_entity) <case E_Component>: Remove 15947 obsolete code for type_annotate_only mode, simplify code and slightly 15948 improve wording of comments. 15949 159502014-01-12 Eric Botcazou <ebotcazou@adacore.com> 15951 15952 PR ada/59772 15953 * gcc-interface/cuintp.c (build_cst_from_int): Use 32-bit integer type 15954 as intermediate type. 15955 (UI_To_gnu): Likewise. 15956 159572014-01-03 Eric Botcazou <ebotcazou@adacore.com> 15958 15959 * gnatvsn.ads (Current_Year): Bump to 2014. 15960 159612014-01-02 Tobias Burnus <burnus@net-b.de> 15962 15963 * gnat_ugn.texi: Bump @copying's copyright year. 15964 15965Copyright (C) 2014 Free Software Foundation, Inc. 15966 15967Copying and distribution of this file, with or without modification, 15968are permitted in any medium without royalty provided the copyright 15969notice and this notice are preserved. 15970