12012-12-21 Ed Schonberg <schonberg@adacore.com> 2 3 PR ada/53737 4 * sem_ch12.adb (Analyze_Associations): Do not check the legality of 5 actuals for RACW types if this is an internal instantiation for a formal 6 package with defaulted parameters. 7 82012-12-21 Eric Botcazou <ebotcazou@adacore.com> 9 10 * adaint.c: Move directive around. 11 * argv.c: Likewise. 12 * cio.c: Likewise. 13 * cstreams.c: Likewise. 14 * env.c: Likewise. 15 * exit.c: Likewise. 16 * init.c: Likewise. 17 * initialize.c: Likewise. 18 * raise.c: Likewise. 19 * seh_init.c: Likewise. 20 * targext.c: Likewise. 21 222012-12-15 Eric Botcazou <ebotcazou@adacore.com> 23 Martin Ettl <ettl.martin@gmx.de> 24 25 PR ada/53996 26 * gcc-interface/utils.c (gnat_type_for_size): Use %u in lieu of %d. 27 282012-12-11 Eric Botcazou <ebotcazou@adacore.com> 29 30 * gcc-interface/Make-lang.in (RTS_DIR): Define only if Ada is enabled. 31 322012-12-08 Eric Botcazou <ebotcazou@adacore.com> 33 34 * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Assert 35 that the type of the prefix is ultimately an array. 36 372012-12-08 Eric Botcazou <ebotcazou@adacore.com> 38 39 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Be prepared for a 40 by-ref VAR_DECL in the case of an Out parameter passed by copy. 41 422012-12-05 Robert Dewar <dewar@adacore.com> 43 44 * par_sco.adb, sem_prag.adb, put_scos.adb, get_scos.adb: Minor 45 reformatting. 46 472012-12-05 Ed Schonberg <schonberg@adacore.com> 48 49 * sem_ch3.adb: Code clean up. 50 512012-12-05 Arnaud Charlet <charlet@adacore.com> 52 53 * gcc-interface/Make-lang.in: Update dependencies. 54 * gcc-interface/lang.opt: New language AdaSCIL. 55 * gcc-interface/lang-specs.h: Add specs for adascil language. 56 572012-12-05 Thomas Quinot <quinot@adacore.com> 58 59 * par_sco.adb (Traverse_Aspects): Ensure we always have 60 an entry in the sloc -> SCO map for invariants, since 61 Set_SCO_Pragma_Enabled is called with that sloc when checks 62 are enabled. 63 642012-12-05 Thomas Quinot <quinot@adacore.com> 65 66 * exp_ch4.adb: Minor reformatting. 67 682012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 69 70 * par-prag.adb: Checks and processing of pragma Assume are 71 carried out by Sem_Prag. 72 * sem_prag.adb (Analyze_Pragma): Check the legality of pragma 73 Assume. 74 * snames.ads-tmpl: Add new name Assume. Add a pragma identifier 75 for Assume. 76 772012-12-05 Ed Schonberg <schonberg@adacore.com> 78 79 * aspects.ads, aspects.adb: Add aspect Relative_Deadline. 80 * sem_ch13.adb (Analyze_Aspect_Specifications): Process aspect 81 Relative_Deadline, and introduce the corresponding pragma within 82 the task definition of the task type to which it applies. 83 (Check_Aspect_At_Freeze_Point): Expression in a Relative_Deadline 84 aspect is of type Time_Span. 85 862012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 87 88 * sem_prag.adb (Check_Loop_Invariant_Variant_Placement): When pragma 89 Loop_[In]variant does not appear immediately within the statements 90 of a loop, it must appear in a chain of nested blocks. 91 922012-12-05 Thomas Quinot <quinot@adacore.com> 93 94 * sem_ch13.adb: Minor reformatting. 95 Remove redundant assertion. 96 972012-12-05 Thomas Quinot <quinot@adacore.com> 98 99 * par_sco.adb, scos.ads, put_scos.adb, put_scos.ads, 100 get_scos.adb: Generation of SCOs for aspects. 101 1022012-12-05 Thomas Quinot <quinot@adacore.com> 103 104 * sem_prag.adb (Check_Precondition_Postcondition): Remove 105 redundant call to Set_SCO_Pragma_Enabled (the pragma will be 106 rewritten into a pragma Check later on, and the call will be 107 made when processing the rewritten pragma). 108 (Analyze_Pragma, case Pragma_Check): Omit call to 109 Set_SCO_Pragma_Enabled if Split_PPC is set. 110 1112012-12-05 Olivier Hainque <hainque@adacore.com> 112 113 * tracebak.c: Add partial support for Lynx178. 114 1152012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 116 117 * sem_attr.adb (Analyze_Attribute): Improve 118 the error message related to loop assertions. 119 1202012-12-05 Gary Dismukes <dismukes@adacore.com> 121 122 * atree.ads: Minor reformatting. 123 1242012-12-05 Robert Dewar <dewar@adacore.com> 125 126 * atree.ads, par-ch4.adb, sem_attr.adb, sem_ch13.adb: Minor 127 reformatting. 128 1292012-12-05 Eric Botcazou <ebotcazou@adacore.com> 130 131 * gnat_ugn.texi (Switches for gcc): Document -flto and reorder. 132 1332012-12-05 Ed Schonberg <schonberg@adacore.com> 134 135 * par-ch5.adb (P_Condition): Handle properly Ada 2012 136 expressions that must be parenthesized before checking for 137 redundant parentheses when that check is enabled. 138 1392012-12-05 Ed Schonberg <schonberg@adacore.com> 140 141 * par-ch4.adb (P_Allocator): In Ada 2012 (AI05-0104) an 142 uninitialized allocator cannot carry an explicit not null 143 indicator. 144 * sem_ch4.adb (Analyze_Allocator): Remove code that implements 145 the check for AI05-0104, the check is syntactic and performed 146 in the parser. 147 1482012-12-05 Geert Bosch <bosch@adacore.com> 149 150 * sem_attr.adb (Analyze_Attribute): Use base type for floating 151 point attributes. 152 1532012-12-05 Ed Schonberg <schonberg@adacore.com> 154 155 * sem_ch13.adb (Analyze_Aspect_Specifications, 156 Ahalyze_Aspect_Default_Value): For a scalar type attach default 157 value to base type as well, because it is a type-specific aspect 158 even though it can be specified on a first subtype. 159 1602012-12-05 Yannick Moy <moy@adacore.com> 161 162 * urealp.ads: Minor rewording. 163 1642012-12-05 Yannick Moy <moy@adacore.com> 165 166 * aspects.ads (No_Duplicates_Allowed): Forbid use of duplicate 167 Contract_Cases aspects. 168 * sem_prag.adb (Analyze_Pragma/Pragma_Contract_Case): Rename 169 POST_CASE into CONTRACT_CASE in both grammar and code, to be 170 consistent with current language definition. Issue a more precise 171 error message when the pragma duplicates another pragma or aspect. 172 1732012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 174 175 * exp_attr.adb (Expand_N_Attribute_Reference): Add processing 176 for attribute Update. 177 (Expand_Update_Attribute): New routine. 178 * par-ch4.adb (P_Name): The sole expression of attribute Update 179 is an aggregate, parse it accordingly. 180 * sem_attr.adb (Analyze_Attribute): Verify the legality of 181 attribute Update. 182 (Eval_Attribute): Attribute Update does not 183 need evaluation because it is never static. 184 * snames.ads-tmpl: Add Name_Update to the list of special names 185 recognized by the compiler. Add an Attribute_Id for Update. 186 1872012-12-05 Ed Schonberg <schonberg@adacore.com> 188 189 * exp_util.adb (Remove_Side_Effects): For purposes of removing 190 side effects, qualified expressions do not receive a special 191 treatment, even though in Ada 2012 they are defined as object 192 references. 193 1942012-12-05 Thomas Quinot <quinot@adacore.com> 195 196 * par-ch3.adb: Minor reformatting. 197 1982012-12-05 Thomas Quinot <quinot@adacore.com> 199 200 * exp_dist.adb (Build_From_Any_Call, Build_To_Any_Call, 201 Build_TypeCode_Call): For a used-defined subtype, always go to 202 the first subtype of the base type. 203 2042012-12-05 Thomas Quinot <quinot@adacore.com> 205 206 * exp_dist.adb: Minor reformatting. 207 2082012-12-05 Tristan Gingold <gingold@adacore.com> 209 210 * Make-generated.in: Remove the VMS host specific part, as VMS 211 compilers aren't built anymore on VMS. 212 2132012-12-05 Thomas Quinot <quinot@adacore.com> 214 215 * sem.adb, errout.ads, atree.adb, atree.ads (Check_Error_Detected): 216 Only return quietly if a serious error of configurable run time 217 violation has been found. 218 2192012-12-05 Yannick Moy <moy@adacore.com> 220 221 * sem_res.adb (Resolve_Type_Conversion): In Alfa_Mode, do not apply 222 conversion checks. 223 2242012-12-05 Ed Schonberg <schonberg@adacore.com> 225 226 * exp_ch5.adb (Expand_N_Assignment_Statement): Handle properly 227 the generation of discriminant checks when the left-hand side 228 has a type with hidden discriminants. 229 * sem_ch3.ads (Is_Visible_Component): Add defaulted parameter to 230 specify the node on which component visibility is being checked. 231 * sem_ch3.adb (Is_Visible_Component): Use new parameter to 232 determine whether the reference comes from a type conversion to 233 a full view of a private type with unknown discriminants. 234 * sem_ch4.adb (Analyze_Selected_Component): Call 235 Is_Visible_Component with added parameter. 236 2372012-12-05 Arnaud Charlet <charlet@adacore.com> 238 239 * make.adb: Minor comment update. 240 2412012-12-05 Arnaud Charlet <charlet@adacore.com> 242 243 * gnatlink.adb: Also use -x adascil in CodePeer mode when 244 calling gcc. 245 * exp_ch5.adb: Minor reformatting. 246 2472012-12-05 Bob Duff <duff@adacore.com> 248 249 * exp_ch4.adb: Minor comment. 250 2512012-12-05 Bob Duff <duff@adacore.com> 252 253 * par-ch4.adb: Set Paren_Count correctly for a parenthesized expression 254 containing a conditional expression or quantified expression. 255 * sprint.adb: Update comment. 256 2572012-12-05 Bob Duff <duff@adacore.com> 258 259 * style.adb, scans.ads, styleg.adb: Update comments. 260 2612012-12-05 Ed Schonberg <schonberg@adacore.com> 262 263 * sem_ch8.adb (Find_Selected_Component): Handle properly an 264 expanded name whose prefix is the expanded name of an enclosing 265 entry, that is to say a construct such as T.E.X, where T is an 266 enclosing concurrent type and E is an enclosing entry. 267 2682012-12-05 Robert Dewar <dewar@adacore.com> 269 270 * lib-writ.adb (Write_ALI): Output T lines. 271 * lib-writ.ads: Minor reformatting. Add documentation of T lines. 272 * opt.ads (Generate_Target_Dependent_Info): New flag. 273 * switch-c.adb (Scan_Switches): Recognize -gnatet switch 274 (target dependent info). 275 * ttypes.ads: Add four letter codes to declarations (for target 276 dependent info). 277 * usage.adb: Add line for -gnatet switch. 278 2792012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 280 281 * exp_prag.adb (Expand_N_Pragma): Add a call to expand 282 pragma Loop_Variant. 283 (Expand_Pragma_Loop_Assertion): Removed. 284 (Expand_Pragma_Loop_Variant): New routine. 285 * par-prag.adb: Remove Pragma_Loop_Assertion and add two new 286 Pragma_Loop_Invariant and Pragma_Loop_Variant entries. 287 * sem_attr.adb (Analyze_Attribute): Update the code which 288 locates the enclosing pragma. 289 * sem_prag.adb (Analyze_Pragma): Remove the code which analyzes 290 pragma Loop_Assertion as the pragma is now obsolete. Add the 291 machinery to checks the semantics of pragmas Loop_Invariant 292 and Loop_Variant. 293 (Check_Loop_Invariant_Variant_Placement): New routine. 294 * snames.ads-tmpl: Remove name Loop_Assertion. Add new names 295 Loop_Invariant and Loop_Variant. Rename Name_Decreasing 296 to Name_Decreases and Name_Increasing to Name_Increases. 297 Remove the pragma Id for Loop_Assertion and add two new Ids for 298 Loop_Invariant and Loop_Variant. 299 3002012-12-05 Robert Dewar <dewar@adacore.com> 301 302 * gnatchop.adb, sem_attr.ads, sem_ch4.adb, sem_ch6.adb, exp_disp.adb, 303 atree.adb, sem_eval.adb: Minor reformatting. 304 3052012-12-05 Yannick Moy <moy@adacore.com> 306 307 * uintp.adb (UI_Div_Rem): Correct algorithm D to remove potential 308 overflow. 309 3102012-12-05 Robert Dewar <dewar@adacore.com> 311 312 * exp_ch4.adb (Expand_N_Op_Mod): Minor comment additions. 313 (Expand_N_Op_Rem): Ditto. 314 3152012-12-05 Robert Dewar <dewar@adacore.com> 316 317 * sem_attr.adb: Minor reformatting. 318 3192012-12-05 Robert Dewar <dewar@adacore.com> 320 321 * usage.adb: Update lines for -gnato? switch. 322 3232012-12-05 Ed Schonberg <schonberg@adacore.com> 324 325 * par-ch6.adb (P_Return_Object_Declaration): Do not check for 326 legality of Aliased keyword. 327 * sem_ch6.adb (Analyze_Function_Return): The keyword aliased is 328 legal in an extended return statement only if the return type 329 is immutably limited. 330 3312012-12-05 Javier Miranda <miranda@adacore.com> 332 333 * exp_disp.adb (Expand_Interface_Thunk): Simplify 334 management of controlling formals. Required to avoid problems 335 with primitives of internally generated base types associated 336 with constrained tagged types. 337 3382012-12-05 Ed Schonberg <schonberg@adacore.com> 339 340 * sem_eval.adb: Remove spurious warnings. 341 3422012-12-05 Ed Schonberg <schonberg@adacore.com> 343 344 * sem_util.adb (Build_Explicit_Dereference): Set properly 345 the type of the prefix prior to rewriting, because subsequent 346 legality checks examine the original node. 347 3482012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 349 350 * aspects.adb: Add Contract_Cases to the canonical aspects map. 351 * aspects.ads: Add aspect Contract_Cases in the various aspect 352 tables. 353 * par-prag.adb: The parser does not need to perform special 354 actions for pragma Contract_Cases. 355 * sem_ch6.adb (Expand_Contract_Cases): New routine. 356 (Process_Contract_Cases): Convert pragma Contract_Cases into pre- 357 and post- condition checks that verify the runtime state of all 358 case guards and their corresponding consequences. 359 * sem_ch13.adb (Analyze_Aspect_Specifications): Perform 360 various legality checks on aspect Contract_Cases. The aspect is 361 transformed into a pragma. 362 * sem_prag.adb: Add an entry in table Sig_Flags for pragma 363 Contract_Cases. 364 (Analyze_Pragma): Perform various legality 365 checks on pragma Contract_Cases. The pragma is associated with 366 the contract of the related subprogram. 367 (Chain_CTC): Omit pragma 368 Contract_Cases because it does not introduce a unique case name 369 and does not follow the syntax of Contract_Case and Test_Case. 370 * snames.ads-tmpl: Add new name Name_Contract_Cases. Add a 371 Pragma_Id for Contract_Cases. 372 3732012-12-05 Thomas Quinot <quinot@adacore.com> 374 375 * sem_ch5.adb: Minor reformatting. 376 3772012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 378 379 * sem_attr.ads: Add an entry for attribute Loop_Entry in the 380 Attribute_Impl_Def table. 381 3822012-12-05 Bob Duff <duff@adacore.com> 383 384 * gnatchop.adb (Read_File): Avoid storage leak, and in most cases avoid 385 an extra copy of the string. 386 3872012-12-05 Ed Schonberg <schonberg@adacore.com> 388 389 * sem_ch5.adb (Preanalyze_Range): If the expression, which 390 denotes some domain of iteration, has a type with implicit 391 dereference, and does not have any iterable aspects, insert 392 dereference to obtain proper container type. 393 3942012-12-05 Bob Duff <duff@adacore.com> 395 396 * par-ch8.adb (P_Use_Type_Clause): Fix the Sloc for "use all type ..." 397 to point to "use". 398 3992012-12-05 Arnaud Charlet <charlet@adacore.com> 400 401 * make.adb (Compile): Always pass -x adascil in CodePeer mode. 402 4032012-12-05 Ed Schonberg <schonberg@adacore.com> 404 405 * s-rident.ads, restrict.ads: Remove discrepancies between the 406 documentation on implementation-defined restrictions, and 407 the internal data structure used for warnings and errors on 408 implementation-defined restriction violations. 409 4102012-12-05 Ed Schonberg <schonberg@adacore.com> 411 412 * sem_prag.adb (Chain_PPC): Pre- and postcondition aspects 413 are legal on a subprogram body that acts as a spec. 414 4152012-12-05 Ed Schonberg <schonberg@adacore.com> 416 417 * sem_ch8.adb (Find_Selected_Component): If the selector name is 418 an overloadable entity but the name is not overloaded, generate 419 reference to it rather than delaying this until resolution. 420 4212012-12-05 Robert Dewar <dewar@adacore.com> 422 423 * checks.ads, checks.adb (Activate_Overflow_Check): No effect for 424 MOD/REM/unary + 425 * exp_ch4.adb (Expand_N_Op_Mod): Remove call to set Do_Overflow_Check. 426 4272012-12-05 Ed Schonberg <schonberg@adacore.com> 428 429 * sem_ch4.adb (Find_Non_Universal_Interpretation): Use the 430 types of the right operand if the left operand is null. 431 4322012-12-05 Sergey Rybin <rybin@adacore.com frybin> 433 434 * gnat_ugn.texi, vms_data.ads: document gnatpp -nn option. 435 4362012-12-05 Jose Ruiz <ruiz@adacore.com> 437 438 * init.c (__gnat_install_handler): For the LEON VxWorks kernel 439 run-time library we need to install a trap handler directly in the 440 trap table (no support by the OS) for the software trap 0. 441 4422012-12-05 Eric Botcazou <ebotcazou@adacore.com> 443 444 * gnat_rm.texi (Interfacing to C++): Document new restrictions. 445 4462012-12-05 Ben Brosgol <brosgol@adacore.com> 447 448 * gnat_ugn.texi: Fix typo. 449 4502012-12-05 Robert Dewar <dewar@adacore.com> 451 452 * gnatbind.adb: Minor reformatting. 453 4542012-12-05 Arnaud Charlet <charlet@adacore.com> 455 456 * gnat_ugn.texi: Fix typo. 457 4582012-12-05 Tristan Gingold <gingold@adacore.com> 459 460 * gnatbind.adb: Minor comment update. 461 4622012-12-05 Yannick Moy <moy@adacore.com> 463 464 * gnat1drv.adb (Adjust_Global_Switches): Set flags to indicate that 465 CodePeer backend deals with divide and overflow checks. 466 4672012-12-05 Robert Dewar <dewar@adacore.com> 468 469 * gnat_rm.texi: Update overflow description. Pragma Overflow_Checks 470 changed to Overflow_Mode. 471 4722012-12-05 Robert Dewar <dewar@adacore.com> 473 474 * checks.ads, exp_ch4.adb, gnat1drv.adb, par-prag.adb, sem_prag.adb, 475 snames.ads-tmpl, switch-c.adb, types.ads, checks.adb: Change pragma 476 Overflow_Checks to Overflow_Mode. 477 Separate overflow checking from overflow mode. 478 Several name changes to reflect this separation. 479 CHECKED mode is renamed STRICT mode. 480 4812012-12-05 Yannick Moy <moy@adacore.com> 482 483 * gnat1drv.adb (Adjust_Global_Switches): Move setting of flags for 484 Alfa mode before general treatment of flags, so that overflow checks 485 settings are set appropriately in Alfa mode. Also set the mode to 486 STRICT in Alfa mode if not already set by the user. 487 4882012-12-05 Robert Dewar <dewar@adacore.com> 489 490 * sem_ch3.adb: Minor reformatting. 491 4922012-12-05 Steve Baird <baird@adacore.com> 493 494 * sinfo.ads: Improve comments about SCIL-related node kinds and selector 495 functions. 496 4972012-12-05 Ed Schonberg <schonberg@adacore.com> 498 499 * sem_ch10.adb (Build_Limited_Views): Even though the unit is 500 not analyzed, place its entity on the name in the with clause, 501 so that warnings on unused with-clause are properly supported 502 for limited withs. 503 5042012-12-05 Robert Dewar <dewar@adacore.com> 505 506 * gnat_ugn.texi: Update overflow description. Pragma 507 Overflow_Checks changed to Overflow_Mode. 508 5092012-12-05 Ed Schonberg <schonberg@adacore.com> 510 511 * sem_ch3.adb (Build_Derived_Private_Type): Handle properly a 512 completion in a grand-child unit when the parent type is itself 513 a private type in a child unit whose full view is itself a 514 derivation from a private type. 515 5162012-12-05 Gary Dismukes <dismukes@adacore.com> 517 518 * exp_attr.adb (Expand_N_Attribute_Reference, case 519 Attribute_Valid): Remove code for issuing warning on Valid within 520 a predicate. Moved to Sem_Attr. Remove with and use of Errout. 521 * sem_attr.adb (Analyze_Attribute, case Attribute_Valid): 522 Test for prefix's subtype having a predicate and issue warning 523 about infinite recursion if Valid occurs within the subtype's 524 predicate. Warning moved here from Exp_Attr. 525 5262012-12-05 Yannick Moy <moy@adacore.com> 527 528 * debug.adb: Minor comment addition. 529 5302012-12-05 Yannick Moy <moy@adacore.com> 531 532 * gnat1drv.adb (Adjust_Global_Switches): In CodePeer mode, check 533 overflows by default, even when the user suppresses overflow checks. 534 5352012-12-05 Thomas Quinot <quinot@adacore.com> 536 537 * err_vars.ads: Fix minor typo in comment. 538 5392012-12-05 Hristian Kirtchev <kirtchev@adacore.com> 540 541 * sem_attr.adb (Analyze_Attribute): Do not analyze the attribute 542 arguments when processing Loop_Entry. Rewrite the analysis of 543 attribute Loop_Entry to handle an optional loop name. 544 (Convert_To_Indexed_Component): New routine. 545 (Eval_Attribute): Remove ??? comment and explain 546 why Loop_Entry does not need to be evaluated. 547 5482012-12-01 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 549 550 PR ada/52110 551 * s-osinte-hpux-dce.ads: Declare pthread_rwlockattr_t and 552 pthread_rwlock_t subtypes. Delete duplicate declaration of clockid_t. 553 * s-taspri-hpux-dce.ads: Change "pragma Atomic (Thread)" to comment. 554 5552012-11-28 Eric Botcazou <ebotcazou@adacore.com> 556 557 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Use 558 valid_constant_size_p to detect too large objects. 559 <E_Subprogram_Type>: Likewise for too large return types. 560 (allocatable_size_p): Call valid_constant_size_p in the fixed case. 561 (annotate_value) <INTEGER_CST>: Simplify. 562 <BIT_AND_EXPR>: Deal with negative values here. 563 * gcc-interface/trans.c (gnat_to_gnu) <N_Assignment_Statement>: Use 564 valid_constant_size_p to detect too large objects on the LHS. 565 * gcc-interface/misc.c (default_pass_by_ref): Likewise for large types. 566 And use TYPE_SIZE_UNIT throughout. 567 (must_pass_by_ref): Likewise. 568 * gcc-interface/utils.c (max_size) <tcc_unary>: Split from common case. 569 <tcc_binary>: Likewise. Call size_binop instead of fold_build2. 570 <tcc_expression>: Simplify. 571 * gcc-interface/utils2.c (build_allocator): Use valid_constant_size_p 572 to detect too large allocations. 573 5742012-11-23 Eric Botcazou <ebotcazou@adacore.com> 575 576 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Length>: Look through 577 a view conversion from constrained to unconstrained form. 578 5792012-11-23 Eric Botcazou <ebotcazou@adacore.com> 580 581 * gcc-interface/decl.c (components_need_strict_alignment): New. 582 (components_to_record): Do not pack the variants if one of the fields 583 needs strict alignment. Likewise for the variant part as a whole. 584 Specify the position of the variants even if the size isn't specified, 585 but do not specify the size of the variant part in this case. 586 5872012-11-20 Diego Novillo <dnovillo@google.com> 588 Jakub Jelinek <jakub@redhat.com> 589 590 * gcc-interface/decl.c: Replace all vec<T,A>() initializers with vNULL. 591 5922012-11-18 Eric Botcazou <ebotcazou@adacore.com> 593 594 * gcc-interface/decl.c: Remove trailing spaces. 595 * gcc-interface/trans.c: Remove trailing spaces. 596 5972012-11-16 Diego Novillo <dnovillo@google.com> 598 599 Adjust for new vec API (http://gcc.gnu.org/wiki/cxx-conversion/cxx-vec) 600 601 * gcc-interface/decl.c: Use new vec API in vec.h. 602 * gcc-interface/gigi.h: Likewise. 603 * gcc-interface/trans.c: Likewise. 604 * gcc-interface/utils.c: Likewise. 605 * gcc-interface/utils2.c: Likewise. 606 6072012-11-09 Eric Botcazou <ebotcazou@adacore.com> 608 609 PR other/52438 610 * s-taspri-lynxos.ads: Delete. 611 * s-osinte-kfreebsd-gnu.ads: Change license to GPL V3+. 612 * s-tpopsp-rtems.adb: Likewise. 613 * s-osinte-rtems.adb: Likewise. 614 6152012-11-09 Eric Botcazou <ebotcazou@adacore.com> 616 617 * gcc-interface/trans.c (gnat_to_gnu) <N_Subprogram_Body_Stub>: Deal 618 with a missing library unit instead of calling gnat_to_gnu on Emtpy. 619 Remove last bits of support for SCIL nodes. Add cases for nodes that 620 should only be present when annotating types. Add default abort. 621 6222012-11-06 Eric Botcazou <ebotcazou@adacore.com> 623 624 * gcc-interface/Makefile.in: Revert most changes. 625 * gcc-interface/Make-lang.in (gnatlib): Remove ada/s-oscons.ads. 626 6272012-11-06 Arnaud Charlet <charlet@adacore.com> 628 629 * gcc-interface/Makefile.in (copy-s-oscons): New target. 630 6312012-11-06 Robert Dewar <dewar@adacore.com> 632 633 * err_vars.ads, atree.ads: Minor reformatting. 634 6352012-11-06 Arnaud Charlet <charlet@adacore.com> 636 637 * gcc-interface/Make-lang.in: Update dependencies. 638 * gcc-interface/Makefile.in: Add runtime pairs for Android. 639 Rework handling of s-oscons.ads. 640 * s-osinte-android.ads, s-osinte-android.adb: New files. 641 6422012-11-06 Tristan Gingold <gingold@adacore.com> 643 644 * gcc-interface/trans.c (gnat_to_gnu): For N_Real_Literal, create the 645 binary representation of vax floats. 646 6472012-11-06 Tristan Gingold <gingold@adacore.com> 648 649 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Fix thinko 650 in previous commit. 651 6522012-11-06 Jose Ruiz <ruiz@adacore.com> 653 654 * ali.adb (Scan_ALI): Fix parsing mechanism for -fstack-check. 655 6562012-11-06 Thomas Quinot <quinot@adacore.com> 657 658 * atree.adb, atree.ads, einfo.adb, errout.adb, errout.ads, erroutc.adb, 659 erroutc.ads, errutil.adb, errutil.ads, err_vars.ads, expander.adb, 660 exp_ch13.adb, exp_ch2.adb, exp_ch6.adb, exp_dist.adb, fe.h, 661 fmap.adb, fmap.ads, gprep.adb, makeutl.adb, osint.adb, osint.ads, 662 par_sco.adb, prepcomp.adb, prj-part.adb, prj-proc.adb, scng.adb, 663 sdefault.ads, sem_ch10.adb, sem_ch13.adb, sem_ch2.adb, sem_ch3.adb, 664 sem_ch4.adb, sem_ch5.adb, sem_dim.adb, sem_elab.adb, sem_eval.adb, 665 sem_intr.adb, sem_prag.adb, sem_type.adb, sem_warn.adb, stylesw.adb, 666 stylesw.ads, targparm.adb, targparm.ads (Cascaded_Error): Rename to 667 more descriptive name 'Check_Error_Detected'. Add calls to 668 Check_Error_Detected at places where semantic analysis is abandoned 669 assuming a previously detected error. 670 6712012-11-06 Robert Dewar <dewar@adacore.com> 672 673 * exp_ch4.adb: Minor comment change. 674 6752012-11-06 Robert Dewar <dewar@adacore.com> 676 677 * gnat_ugn.texi: Extensive revision of documentation of overflow 678 checking. 679 * vms_data.ads: Overflow check numbers must be in range 1-3, 680 not 0-3. 681 6822012-11-06 Tristan Gingold <gingold@adacore.com> 683 684 * sem_ch9.adb (Analyze_Protected_Type_Declaration): Emit a 685 warning if pragma Priority is used in presence of an interrupt 686 handler. 687 6882012-11-06 Robert Dewar <dewar@adacore.com> 689 690 * checks.ads, checks.adb, exp_ch4.adb: Minor changes throughout for 691 new overflow checking. 692 * exp_util.adb (Insert_Actions): Remove special casing of 693 Overflow_Check. 694 * gnat1drv.adb (Adjust_Global_Switches): Fixes for new handling 695 of overflow checks. 696 * sem.adb (Analyze): Remove special casing of Overflow_Check 697 (Analyze_List): ditto. 698 * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Remove 699 SUPPRESSED and change CHECKED to STRICT. 700 * sem_res.adb (Analyze_And_Resolve): No longer treat 701 Overflow_Check specially. 702 (Preanalyze_And_Resolve): ditto. 703 (Resolve): ditto. 704 * snames.ads-tmpl: Replace Name_Checked by Name_Strict. 705 * switch-c.adb (Get_Overflow_Mode): Eliminate 0 setting, 706 CHECKED => STRICT. 707 * types.ads (Overflow_Check_Type): Remove Suppressed, change 708 Checked to Strict (Suppress_Record): Overflow check controlled 709 by Suppress array. 710 7112012-11-06 Ed Schonberg <schonberg@adacore.com> 712 713 * sem_res.adb (Preanalyze_And_Resolve): In Alfa mode do not 714 disable checks, so that flags can be properly set on expressions 715 that are not further expanded. 716 7172012-11-06 Robert Dewar <dewar@adacore.com> 718 719 * exp_attr.adb, sem_attr.adb: Minor reformatting. 720 7212012-11-06 Gary Dismukes <dismukes@adacore.com> 722 723 * exp_attr.adb (Expand_N_Attribute_Reference): Apply a predicate 724 check when evaluating the attribute Valid, and issue a warning 725 about infinite recursion when the check occurs within the 726 predicate function of the prefix's subtype. 727 * exp_ch4.adb (Expand_N_In): Remove test for Is_Discrete_Type 728 when we're checking that there's no predicate check function as a 729 condition for substituting a Valid check for a scalar membership 730 test (substitution should be suppressed for any kind of scalar 731 subtype with a predicate check). Also, don't emit a predicate 732 check when the right operand is a range. 733 7342012-11-06 Robert Dewar <dewar@adacore.com> 735 736 * par_sco.adb, bindgen.adb, exp_vfpt.adb, exp_vfpt.ads, exp_ch2.adb, 737 errout.adb, sem_ch8.adb: Minor reformatting. 738 7392012-11-06 Hristian Kirtchev <kirtchev@adacore.com> 740 741 * einfo.adb: Include Loop_Entry_Attributes to the list of 742 Node/List/Elist10 usage. 743 (Loop_Entry_Attributes): New routine. 744 (Set_Loop_Entry_Attributes): New routine. 745 (Write_Field10_Name): Add an output string for Loop_Entry_Attributes. 746 * einfo.ads: Define new attribute Loop_Entry_Attributes along 747 with its usage in nodes. 748 (Loop_Entry_Attributes): New routine and dedicated pragma Inline. 749 (Set_Loop_Entry_Attributes): New routine and dedicated pragma Inline. 750 * exp_attr.adb (Expand_N_Attribute_Reference): Do not expand 751 Attribute_Loop_Entry here. 752 * exp_ch5.adb: Add with and use clause for Elists; 753 (Expand_Loop_Entry_Attributes): New routine. 754 (Expand_N_Loop_Statement): Add a call to Expand_Loop_Entry_Attributes. 755 * exp_prag.adb (Expand_Pragma_Loop_Assertion): Specialize the 756 search to include multiple nested loops produced by the expansion 757 of Ada 2012 array iterator. 758 * sem_attr.adb: Add with and use clause for Elists. 759 (Analyze_Attribute): Check the legality of attribute Loop_Entry. 760 (Resolve_Attribute): Nothing to do for Loop_Entry. 761 (S14_Attribute): New routine. 762 * snames.ads-tmpl: Add a comment on entries marked with 763 HiLite. Add new name Name_Loop_Entry. Add new attribute 764 Attribute_Loop_Entry. 765 7662012-11-06 Geert Bosch <bosch@adacore.com> 767 768 * eval_fat.adb (Machine, Succ): Fix front end to support static 769 evaluation of attributes on targets with both VAX and IEEE float. 770 * sem_util.ads, sem_util.adb (Has_Denormals, Has_Signed_Zeros): 771 New type-specific functions. Previously we used Denorm_On_Target 772 and Signed_Zeros_On_Target directly, but that doesn't work well 773 for OpenVMS where a single target supports both floating point 774 with and without signed zeros. 775 * sem_attr.adb (Attribute_Denorm, Attribute_Signed_Zeros): Use 776 new Has_Denormals and Has_Signed_Zeros functions to support both 777 IEEE and VAX floating point on a single target. 778 7792012-11-06 Tristan Gingold <gingold@adacore.com> 780 781 * bindgen.adb (System_Interrupts_Used): New variable. 782 (Gen_Adainit): Declare and call 783 Install_Restricted_Handlers_Sequential if System.Interrupts is 784 used when elaboration policy is sequential. 785 7862012-11-06 Ed Schonberg <schonberg@adacore.com> 787 788 * sem_ch8.adb: Complete previous change. 789 7902012-11-06 Tristan Gingold <gingold@adacore.com> 791 792 * fe.h (Get_Vax_Real_Literal_As_Signed): Declare. 793 * eval_fat.adb, eval_fat.ads (Decompose_Int): Move spec in package spec. 794 * exp_vfpt.adb, exp_vfpt.ads (Vax_Real_Literal_As_Signed): New function. 795 (Expand_Vax_Real_Literal): Remove. 796 * exp_ch2.adb (Expand_N_Real_Literal): Do nothing. 797 * sem_eval.adb (Expr_Value_R): Remove special Vax float case, 798 as this is not anymore a special case. 799 8002012-11-06 Yannick Moy <moy@adacore.com> 801 802 * uintp.ads: Minor correction of typo in comment. 803 8042012-11-06 Ed Schonberg <schonberg@adacore.com> 805 806 * sem_prag.adb (Analyze_Pragnma, case Unchecked_Union): remove 807 requirement that discriminants of an unchecked_union must have 808 defaults. 809 8102012-11-06 Vasiliy Fofanov <fofanov@adacore.com> 811 812 * projects.texi: Minor wordsmithing. 813 8142012-11-06 Robert Dewar <dewar@adacore.com> 815 816 * sem_ch9.adb, exp_vfpt.adb, xoscons.adb: Minor reformatting. 817 8182012-11-06 Tristan Gingold <gingold@adacore.com> 819 820 * exp_vfpt.adb: Document VAX float point layout. 821 8222012-11-06 Geert Bosch <bosch@adacore.com> 823 824 * eval_fat.adb (Machine): Don't return -0.0 on targets without 825 signed zeros. 826 8272012-11-06 Ed Schonberg <schonberg@adacore.com> 828 829 * sem_ch9.adb (Analyze_Entry_Call_Alternative, 830 Check_Triggering_Statement): Reject properly an indirect call. 831 8322012-11-06 Pascal Obry <obry@adacore.com> 833 834 * xoscons.adb, xutil.adb, xutil.ads: Add support for post-processing. 835 8362012-11-06 Yannick Moy <moy@adacore.com> 837 838 * s-bignum.adb (Div_Rem): Fix another bug in step D3. 839 8402012-11-06 Tristan Gingold <gingold@adacore.com> 841 842 * s-tarest.adb (Create_Restricted_Task): Call 843 Create_Restricted_Task_Sequential in sequential case. 844 8452012-11-06 Hristian Kirtchev <kirtchev@adacore.com> 846 847 * exp_prag.adb (Expand_Pragma_Loop_Assertion): Do not rewrite the 848 pragma into a null statement as its presence is desirable in -gnatG 849 output. 850 8512012-11-06 Ed Schonberg <schonberg@adacore.com> 852 853 * sem_ch8.adb (Check_Constrained_Object): Do nothing if the 854 renamed object is a limited record. 855 8562012-11-06 Bernard Banner <banner@adacore.com> 857 858 * sysdep.c (_getpagesize): New. Minor reformatting. 859 8602012-11-06 Robert Dewar <dewar@adacore.com> 861 862 * sem_prag.adb: Minor reformatting. 863 8642012-11-06 Robert Dewar <dewar@adacore.com> 865 866 * s-bignum.adb (Div_Rem): Fix bug in step D3. 867 * uintp.adb (UI_Div_Rem): Add comment on bug in step D3. 868 8692012-11-06 Hristian Kirtchev <kirtchev@adacore.com> 870 871 * exp_prag.adb (Expand_Pragma_Loop_Assertion): Update the comment 872 on intended expansion. Reimplement the logic which expands the 873 termination variants. 874 (Process_Increase_Decrease): Update the parameter profile and the 875 comment related to it. Accommodate the new aggregate-like appearance of 876 the termination variants. 877 * sem_prag.adb (Analyze_Pragma): Update the syntax of pragma 878 Loop_Assertion. Reimplement the semantic analysis of the pragma 879 to accommodate the new aggregate-like variant. 880 (Check_Variant): New routine. 881 * snames.ads-tmpl: Change names Name_Decreases and Name_Increases 882 to Name_Decreasing and Name_Increasing respectively. Add name 883 Variant. 884 8852012-11-06 Ed Schonberg <schonberg@adacore.com> 886 887 * sem_eval.adb: Static evaluation of case expressions. 888 8892012-11-06 Robert Dewar <dewar@adacore.com> 890 891 * exp_prag.adb, impunit.adb, exp_ch9.adb, par-ch4.adb, 892 s-tarest.adb: Minor reformatting. 893 8942012-11-06 Tristan Gingold <gingold@adacore.com> 895 896 * s-tposen.ads: Minor comment update. 897 8982012-11-06 Arnaud Charlet <charlet@adacore.com> 899 900 * sysdep.c: Rename sig* wrappers to use unique names. 901 9022012-11-06 Yannick Moy <moy@adacore.com> 903 904 * exp_dbug.adb (Qualify_Entity_Name): Mark entity as having a qualified 905 name after being treated, in formal verification mode. 906 9072012-11-06 Fedor Rybin <frybin@adacore.com> 908 909 * gnat_ugn.texi: Updating gnattest section to reflect changes 910 in default behaviour of the tool. 911 9122012-11-06 Thomas Quinot <quinot@adacore.com> 913 914 * s-oscons-tmplt.c: Interfaces.C now needs to be WITH'd even 915 on platforms that do not support sockets (for the benefit of 916 subtype IOCTL_Req_T). 917 9182012-11-06 Ed Schonberg <schonberg@adacore.com> 919 920 * par-ch4.adb (P_Primary): if-expressions, case-expressions, 921 and quantified expressions are legal if surrounded by parentheses 922 from an enclosing context, such as a call or an instantiation. 923 9242012-11-06 Yannick Moy <moy@adacore.com> 925 926 * impunit.adb (Get_Kind_Of_Unit): Return appropriate kind for 927 predefined implementation files, instead of returning 928 Not_Predefined_Unit on all .adb files. 929 9302012-11-06 Tristan Gingold <gingold@adacore.com> 931 932 * exp_ch9.adb (Build_Activation_Chain_Entity): Return immediately if 933 partition elaboration policy is sequential. 934 (Build_Task_Activation_Call): Likewise. Use 935 Activate_Restricted_Tasks on restricted profile. 936 (Make_Task_Create_Call): Do not use the _Chain 937 parameter if elaboration policy is sequential. Call 938 Create_Restricted_Task_Sequential in that case. 939 * exp_ch3.adb (Build_Initialization_Call): Change condition to 940 support concurrent elaboration policy. 941 (Build_Record_Init_Proc): Likewise. 942 (Init_Formals): Likewise. 943 * bindgen.adb (Gen_Adainit): Declare Partition_Elaboration_Policy 944 and set it in generated code if the elaboration policy is 945 sequential. The procedure called to activate all tasks is now 946 named __gnat_activate_all_tasks. 947 * rtsfind.adb (RE_Activate_Restricted_Task, 948 RE_Create_Restricted_Task_Sequential): New RE_Id literals. 949 * s-tarest.adb (Create_Restricted_Task): Added to create a task without 950 adding it on an activation chain. 951 (Activate_Tasks): Has now a Chain parameter. 952 (Activate_All_Tasks_Sequential): Added. Called by the binder to 953 activate all tasks. 954 (Activate_Restricted_Tasks): Added. Called during elaboration to 955 activate tasks of the units. 956 * s-tarest.ads: Remove pragma Partition_Elaboration_Policy. 957 (Partition_Elaboration_Policy): New variable (set by the binder). 958 (Create_Restricted_Task): Revert removal of the chain parameter. 959 (Create_Restricted_Task_Sequential): New procedure. 960 (Activate_Restricted_Tasks): Revert removal. 961 (Activate_All_Tasks_Sequential): New procedure. 962 9632012-11-06 Bernard Banner <banner@adacore.com> 964 965 * adaint.c Add file macro definitions missing on Android. 966 * adaint.h Avoid definitions related to task affinity and CPU 967 sets since this functionality is missing on the Android 968 * errno.c (__set_errno): Android already contains such a named 969 procedure so do include again. 970 * gsocket.h: Sockets not supported on Android. 971 * init.c: Avoid linux related code not supported on Android. 972 * sysdep.c (sigismember, sigaddset, sigdelset, sigemptyset, 973 sigfillset): wrapper functions since sig routines are defined 974 as inline macros on Android. 975 * terminals.c: Add stubs for terminal related functions not 976 supported on Android. 977 9782012-11-06 Hristian Kirtchev <kirtchev@adacore.com> 979 980 * sem_prag.adb (Analyze_Pragma): Do not 981 output the characters of an illegal argument as it may not have 982 characters to begin with. 983 9842012-11-06 Hristian Kirtchev <kirtchev@adacore.com> 985 986 * exp_prag.adb (Expand_Pragma_Loop_Assertion): 987 Change the order of argument processing to avoid disappearing 988 increase / decrease expressions. 989 9902012-11-06 Hristian Kirtchev <kirtchev@adacore.com> 991 992 * exp_prag.adb: Add with and use clause for Sem_Ch8. 993 (Expand_N_Pragma): Add a new variant to expand pragma Loop_Assertion. 994 (Expand_Pragma_Loop_Assertion): New routine. 995 * par-prag.adb (Prag): The semantic analysis of pragma 996 Loop_Assertion is carried out by Analyze_Pragma. No need for 997 checks in the parser. 998 * sem_prag.adb: Add a reference position value for pragma 999 Loop_Assertion in Sig_Flags. 1000 (Analyze_Pragma): Add semantic analysis for pragma Loop_Assertion. 1001 * snames.ads-tmpl: Add the following new names: 1002 Name_Decreases Name_Increases Name_Loop_Assertion. 1003 Add new pragma id Pragma_Loop_Assertion. 1004 10052012-11-06 Ed Schonberg <schonberg@adacore.com> 1006 1007 * exp_ch5.adb: Identifier in iterator must have debug 1008 information. 1009 10102012-11-06 Arnaud Charlet <charlet@adacore.com> 1011 1012 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Remove 1013 duplicate rules handled by Make-generated.in. 1014 10152012-10-31 Lawrence Crowl <crowl@google.com> 1016 1017 * gcc-interface/utils.c (gnat_write_global_declarations): 1018 Rename varpool_node to varpool_node_for_decl. 1019 10202012-10-30 Eric Botcazou <ebotcazou@adacore.com> 1021 1022 * gcc-interface/Make-lang.in: Fix and clean up rules for C files. 1023 10242012-10-29 Arnaud Charlet <charlet@adacore.com> 1025 1026 * gcc-interface/Makefile.in (s-oscons.ads): Adjust call to xoscons. 1027 10282012-10-29 Pascal Obry <obry@adacore.com> 1029 1030 * xoscons.adb, Make-generated.in; The template used by xoscons is now 1031 given as parameter. 1032 * gcc-interface/Make-lang.in: Update dependencies. 1033 10342012-10-29 Yannick Moy <moy@adacore.com> 1035 1036 * exp_dbug.adb (Qualify_Entity_Name): Only do renaming in formal 1037 verification mode when there is a homonym. 1038 10392012-10-29 Thomas Quinot <quinot@adacore.com> 1040 1041 * xoscons.adb: Minor reformatting. 1042 10432012-10-29 Yannick Moy <moy@adacore.com> 1044 1045 * exp_alfa.adb (Expand_Alfa): Backtrack change that removed 1046 qualification of names in formal verification mode. Instead, 1047 the qualification should be modified. 1048 * exp_dbug.adb (Qualify_Entity_Name): Modify qualification in formal 1049 verification mode, so that only a suffix is added to distinguish 1050 homonyms from the same scope. 1051 10522012-10-29 Robert Dewar <dewar@adacore.com> 1053 1054 * gnat_rm.texi: Document that pragma Optimize_Alignment (Space) is 1055 ignored with a warning for packed variable length records. 1056 10572012-10-29 Thomas Quinot <quinot@adacore.com> 1058 1059 * socket.c, g-socthi-dummy.adb, g-socthi-dummy.ads, g-socthi-vms.adb, 1060 g-socthi-vms.ads, g-socthi-vxworks.adb, g-socthi-vxworks.ads, 1061 s-oscons-tmplt.c, g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi.adb, 1062 g-socthi.ads, xoscons.adb, g-socket.adb, g-sothco.ads: Introduce an 1063 appropriate subtype for IOCTL requests, since these may be signed or 1064 unsigned. 1065 10662012-10-29 Gary Dismukes <dismukes@adacore.com> 1067 1068 * exp_alfa.adb: Minor reformatting. 1069 10702012-10-29 Robert Dewar <dewar@adacore.com> 1071 1072 * gnat_rm.texi, gnat_ugn.texi: Clarify documentation on maximum 1073 line length style switch. 1074 10752012-10-29 Robert Dewar <dewar@adacore.com> 1076 1077 * layout.adb (Set_Composite_Alignment): Ignore pragma 1078 Optimize_Alignment (Space) for packed variable length records. 1079 10802012-10-29 Robert Dewar <dewar@adacore.com> 1081 1082 * s-bignum.adb: Minor comment change. 1083 10842012-10-29 Thomas Quinot <quinot@adacore.com> 1085 1086 * s-oscons-tmplt.c: Fix signedness of ioctl request identifiers 1087 for x86_64-freebsd. 1088 10892012-10-29 Yannick Moy <moy@adacore.com> 1090 1091 * exp_alfa.adb (Expand_Alfa): Remove qualification of names. 1092 10932012-10-29 Robert Dewar <dewar@adacore.com> 1094 1095 * sem_prag.adb: Minor reformatting. 1096 10972012-10-29 Robert Dewar <dewar@adacore.com> 1098 1099 * gnat_rm.texi: Minor rewording. 1100 11012012-10-29 Javier Miranda <miranda@adacore.com> 1102 1103 * exp_disp.ads (Is_Expanded_Dispatching_Call): New subprogram. 1104 * exp_disp.adb (Expand_Dispatching_Call): No action needed if the 1105 call has been already expanded. 1106 (Is_Expanded_Dispatching_Call): New subprogram. 1107 * sem_disp.adb (Propagate_Tag): No action needed if the call 1108 has been already expanded. 1109 11102012-10-29 Hristian Kirtchev <kirtchev@adacore.com> 1111 1112 * exp_ch9.adb (Create_Index_And_Data): Remove local 1113 variable Index_Typ and its uses. The type of the index is now 1114 System.Tasking.Entry_Index. Update all related comments. 1115 * rtsfind.ads: Add RE_Entry_Index in tables RE_Id and RE_Unit_Table. 1116 * s-taskin.adb (Number_Of_Entries): The return type is now Entry_Index. 1117 * s-taskin.ads: The index type of Task_Entry_Names_Array is now 1118 Entry_Index. 1119 (Number_Of_Entries): The return type is now Entry_Index. 1120 * s-tpoben.adb (Number_Of_Entries): The return type is now Entry_Index. 1121 * s-tpoben.ads: The index type of Protected_Entry_Names_Array 1122 is now Entry_Index. 1123 (Number_Of_Entries): The return type is now Entry_Index. 1124 11252012-10-29 Pascal Obry <obry@adacore.com> 1126 1127 * gnat_ugn.texi: Add note about SEH setup on x86-windows. 1128 11292012-10-29 Eric Botcazou <ebotcazou@adacore.com> 1130 1131 * s-bignum.adb (Allocate_Bignum): Use the exact layout of 1132 Bignum_Data for the overlay. 1133 11342012-10-29 Thomas Quinot <quinot@adacore.com> 1135 1136 * gnat_rm.texi, sem_prag.adb, sem_util.adb, sem_util.ads, 1137 par-prag.adb, par-util.adb, snames.ads-tmpl (Sem_Prag.Analyze_Pragma): 1138 Handle new pragma Attribute_Definition. 1139 (Sem_Util.Bad_Attribute): New routine, moved here 1140 from par-util, so that it can be used by the above. 1141 (Par_Util.Signal_Bad_Attribute): Processing moved to 1142 Sem_Util.Bad_Attribute. 1143 11442012-10-29 Robert Dewar <dewar@adacore.com> 1145 1146 * s-tpoben.ads, s-taskin.ads, exp_ch3.adb: Minor reformatting. 1147 11482012-10-29 Yannick Moy <moy@adacore.com> 1149 1150 * sem_prag.adb, gnat1drv.adb, opt.ads: Rename S14_Extensions 1151 into Formal_Extensions. 1152 11532012-10-29 Thomas Quinot <quinot@adacore.com> 1154 1155 * sem_attr.adb: Minor reformatting. 1156 11572012-10-29 Tristan Gingold <gingold@adacore.com> 1158 1159 * gnat_rm.texi: Document implementation advice for Pragma 1160 Partition_Elaboration_Policy. 1161 11622012-10-29 Yannick Moy <moy@adacore.com> 1163 1164 * s-bignum.adb (Div_Rem): Reference that Algorithm_D is from 1165 the second edition of TAOCP from Knuth, since the algo changed 1166 in the third edition. Also correct the definition of 'd' which 1167 could overflow. 1168 11692012-10-29 Hristian Kirtchev <kirtchev@adacore.com> 1170 1171 * exp_ch3.adb (Build_Initialization_Call): Create static strings 1172 which denote entry [family] names and associate them with the 1173 object's Protection_Entries or ATCB. 1174 (Build_Init_Statements): 1175 Remove local variable Names. Do not generate the entry [family] 1176 names inside the init proc because they are now static. 1177 * exp_ch9.adb (Build_Entry_Names): Reimplemented. The strings 1178 which denote entry [family] names are now generated statically 1179 and associated with the concurrent object's Protection_Entries 1180 or ATCB during initialization. 1181 * exp_ch9.ads (Build_Entry_Names): Change subprogram profile 1182 and associated comment on usage. 1183 * rtsfind.ads: Add the following entries to tables RE_Id and 1184 RE_Unit_Table: 1185 1186 RE_Protected_Entry_Names_Array RE_Task_Entry_Names_Array 1187 RO_PE_Number_Of_Entries RO_PE_Set_Entry_Names 1188 RO_ST_Number_Of_Entries RO_ST_Set_Entry_Names 1189 1190 Remove the following entries from tables RE_Id and RE_Unit_Table: 1191 1192 RO_PE_Set_Entry_Name RO_TS_Set_Entry_Name 1193 1194 * s-taskin.adb: Remove with clause for Ada.Unchecked_Deallocation. 1195 (Free_Entry_Names_Array): Removed. 1196 (Number_Of_Entries): New routine. 1197 (Set_Entry_Names): New routine. 1198 * s-taskin.ads: Rename type Entry_Names_Array to 1199 Task_Entry_Names_Array. Rename type Entry_Names_Array_Access 1200 to Task_Entry_Names_Access. Update the type of ACTB field 1201 Entry_Names and add a comment on its protection status. 1202 (Free_Entry_Names_Array): Removed. 1203 (Number_Of_Entries): New routine. 1204 (Set_Entry_Names): New routine. 1205 * s-tassta.adb (Create_Task): Remove formal parameter 1206 Build_Entry_Names. Do not allocate an array to hold the 1207 string names of entries and families. 1208 (Free_Entry_Names): Removed. 1209 (Free_Task): Remove the call to Free_Entry_Names. 1210 (Set_Entry_Name): Removed. 1211 (Vulnerable_Free_Task): Remove the call to Free_Entry_Names. 1212 * s-tassta.ads (Create_Task): Remove formal parameter 1213 Build_Entry_Names along with associated comment. 1214 (Set_Entry_Name): Removed. 1215 * s-tpoben.adb: Remove with clause for Ada.Unchecked_Deallocation. 1216 (Finalize): Remove the call to Free_Entry_Names. 1217 (Free_Entry_Names): Removed. 1218 (Initialize_Protection_Entries): 1219 Remove formal parameter Build_Entry_Names. Do not allocate 1220 an array to hold the string names of entries and families. 1221 (Number_Of_Entries): New routine. 1222 (Set_Entry_Name): Removed. 1223 (Set_Entry_Names): New routine. 1224 * s-tpoben.ads: Add types Protected_Entry_Names_Array and 1225 Protected_Entry_Names_Access. Update the type of Protection_Enties 1226 field Entry_Names. 1227 (Initialize_Protection_Entries): Remove 1228 formal parameter Build_Entry_Names along with associated comment. 1229 (Number_Of_Entries): New routine. 1230 (Set_Entry_Name): Removed. 1231 (Set_Entry_Names): New routine. 1232 12332012-10-29 Arnaud Charlet <charlet@adacore.com> 1234 1235 * gnat_ugn.texi: Minor typo fix. 12362012-10-29 Yannick Moy <moy@adacore.com> 1237 1238 * debug.adb Associate debug switch -gnatd.V to extensions for 1239 formal verification. 1240 * gnat1drv.adb (Adjust_Global_Switches): Set flag S14_Extensions 1241 when -gnatd.V is set. 1242 * gnat_rm.texi: Remove doc for Assert_And_Cut. 1243 * opt.ads Declare new flag S14_Extensions, to be set when new 1244 aspects/pragmas/attributes for formal verification should be 1245 accepted. 1246 * sem_prag.adb (Analyze_Pragma): Check that S14_Extensions is 1247 set when treating pragma Assert_And_Cut. 1248 12492012-10-29 Tristan Gingold <gingold@adacore.com> 1250 1251 * s-tarest.ads, s-tassta.adb: Add a pragma Partition_Elaboration_Policy. 1252 12532012-10-29 Robert Dewar <dewar@adacore.com> 1254 1255 * freeze.adb: Minor reformatting. 1256 12572012-10-29 Robert Dewar <dewar@adacore.com> 1258 1259 * xr_tabls.adb, xr_tabls.ads, exp_ch9.adb, snames.adb-tmpl, 1260 snames.ads-tmpl, exp_ch3.adb: Minor reformatting. 1261 12622012-10-29 Ed Schonberg <schonberg@adacore.com> 1263 1264 * sem_ch6.adb: Call Build_Subprogrm_Instance_Renamings only when 1265 generating code. 1266 12672012-10-29 Robert Dewar <dewar@adacore.com> 1268 1269 * gnat_ugn.texi: Add documentation for -gnatw.k/-gnatw.K. 1270 * ug_words: Add entries for -gnatw.k/.K for [NO]STANDARD_REDEFINITION. 1271 * vms_data.ads: Add entries for [NO]STANDARD_REDEFINITION. 1272 12732012-10-29 Tristan Gingold <gingold@adacore.com> 1274 1275 * exp_ch9.adb, s-tarest.ads, exp_ch3.adb: Update comments. 1276 12772012-10-29 Yannick Moy <moy@adacore.com> 1278 1279 * gnat_rm.texi: Minor documentation addition. 1280 12812012-10-29 Emmanuel Briot <briot@adacore.com> 1282 1283 * xr_tabls.adb, xr_tabls.ads (Add_Declaration, Add_Reference): No 1284 longer assume that a parameter declaration is seen after the subprogram 1285 that uses it. 1286 12872012-10-29 Tristan Gingold <gingold@adacore.com> 1288 1289 * lib-writ.adb (Write_ALI): Emit partition elaboration policy 1290 in P line. 1291 * lib-writ.ads: Document partition elaboration policy indication. 1292 * sem_prag.adb (Check_Arg_Is_Partition_Elaboration_Policy): New 1293 procedure. 1294 (Analyze_Pragma): Handle Partition_Elaboration_Policy. 1295 (Sig_Flags): Add flag for Pragma_Partition_Elaboration_Policy 1296 * ali.adb (Initialize_ALI): Init Partition_Elaboration_Policy_Specified. 1297 (Scan_ALI): Read Ex indications. 1298 * ali.ads: ALIs_Record: Add Partition_Elaboration_Policy. 1299 * par-prag.adb (Prag): Add Partition_Elaboration_Policy. 1300 * snames.adb-tmpl (Is_Partition_Elaboration_Policy_Name): New function. 1301 * opt.ads (Partition_Elaboration_Policy): Declare. 1302 (Partition_Elaboration_Policy_Sloc): Declare. 1303 * bcheck.adb (Check_Consistent_Partition_Elaboration_Policy): 1304 New procedure. (Check_Configuration_Consistency): Check partition 1305 elaboration policy consistency. 1306 * snames.ads-tmpl (Name_Partition_Elaboration_Policy): New name. 1307 (First_Partition_Elaboration_Policy_Name, Name_Concurrent, 1308 Name_Sequential, Last_Partition_Elaboration_Policy_Name): Likewise. 1309 (Pragma_Partition_Elaboration_Policy): New literal. 1310 (Is_Partition_Elaboration_Policy_Name): New function. 1311 13122012-10-29 Ed Schonberg <schonberg@adacore.com> 1313 1314 * sem_ch6.adb (Is_Public_Subprogram_For): Handle properly 1315 expression functions, which are rewritten as subprogram 1316 declarations, when generating invariants for its return value 1317 and in-out parameters. 1318 13192012-10-29 Arnaud Charlet <charlet@adacore.com> 1320 1321 * warnsw.adb (Set_GNAT_Mode_Warnings): Unset 1322 Warn_On_Standard_Redefinition. 1323 13242012-10-29 Javier Miranda <miranda@adacore.com> 1325 1326 * sem_ch3.adb (Derive_Progenitor_Subprograms): Complete documentation. 1327 13282012-10-29 Robert Dewar <dewar@adacore.com> 1329 1330 * par-ch11.adb (Warn_If_Standard_Redefinition): Add calls. 1331 * par-ch3.adb (P_Defining_Identifier): Call 1332 Warn_If_Standard_Redefinition if not inside record definition. 1333 * par-ch6.adb (Warn_If_Standard_Redefinition): Add calls. 1334 * par-util.adb (Warn_If_Standard_Redefinition): New procedure. 1335 * par.adb (Inside_Record_Definition): New flag. 1336 (Warn_If_Standard_Redefinition): New procedure. 1337 * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier): Remove 1338 handling of warning for redefining standard name (moved to Par*). 1339 13402012-10-29 Javier Miranda <miranda@adacore.com> 1341 1342 * sem_ch3.adb (Derive_Progenitor_Subprograms): Disable small 1343 optimization in generic formal types. 1344 13452012-10-29 Robert Dewar <dewar@adacore.com> 1346 1347 * exp_ch9.adb, exp_ch3.adb: Add comments. 1348 * sem_prag.adb: Minor reformatting. 1349 13502012-10-29 Tristan Gingold <gingold@adacore.com> 1351 1352 * bindgen.adb (Gen_Output_File_Ada): Do not emit declaration for 1353 Is_Elaborated if not referenced. 1354 13552012-10-29 Tristan Gingold <gingold@adacore.com> 1356 1357 * exp_ch9.adb (Build_Activation_Chain_Entity): Punt in restricted 1358 profile. 1359 * exp_ch3.adb (Build_Initialization_Call): Do no append _Chain 1360 parameter in restricted profile. 1361 (Build_Init_Call_Thru): Likewise. 1362 (Init_Formals): Likewise. 1363 * exp_ch3.adb: Minor reformatting. 1364 13652012-10-29 Arnaud Charlet <charlet@adacore.com> 1366 1367 * usage.adb: Update usage line for -gnatw.k. 1368 13692012-10-29 Yannick Moy <moy@adacore.com> 1370 1371 * sem_prag.adb: Code clean up. 1372 13732012-10-29 Vincent Celier <celier@adacore.com> 1374 1375 * projects.texi: Clarify documentation of attribute 1376 Ignore_Source_Sub_Dirs. 1377 13782012-10-29 Robert Dewar <dewar@adacore.com> 1379 1380 * g-sechas.adb, g-sechas.ads, exp_ch9.adb, bindgen.adb, exp_dbug.adb, 1381 exp_dbug.ads: Minor reformatting. 1382 13832012-10-29 Pascal Obry <obry@adacore.com> 1384 1385 * g-sechas.adb, g-sechas.ads: (Binary_Message_Digest): New subtype. 1386 (Digest): New versions returning a Binary_Message_Digest. 1387 (Wide_Digest): Likewise. 1388 13892012-10-29 Robert Dewar <dewar@adacore.com> 1390 1391 * warnsw.adb: Complete previous change. 1392 13932012-10-29 Tristan Gingold <gingold@adacore.com> 1394 1395 * bindgen.adb (Check_File_In_Partition, Check_System_Restrictions_Used): 1396 Removed. 1397 (Check_Dispatching_Domains_Used): Removed. 1398 (Gen_Adafinal): Remove call to above procedures. 1399 (Resolve_Binder_Options): Handle system restrictions and dispatching 1400 domains. 1401 14022012-10-29 Tristan Gingold <gingold@adacore.com> 1403 1404 * s-tarest.ads, s-tarest.adb (Create_Restricted_Task): Remove 1405 Chain parameter. 1406 * exp_ch9.adb (Make_Task_Create_Call): Do not add Chain parameter 1407 on restricted runtime. 1408 14092012-10-29 Pascal Obry <obry@adacore.com> 1410 1411 * g-sechas.adb, g-sechas.ads: Minor code clean-up. 1412 14132012-10-29 Ed Schonberg <schonberg@adacore.com> 1414 1415 * sem_aux.adb (Get_Rep_Item): Treat Priority and Interrupt_Priority 1416 as equivalent, because only one of them can be specified for a 1417 task, protected definition, or subprogram body. 1418 * aspects.adb ((Same_Aspect): The canonical aspect of 1419 Interrupt_Priority is Priority. 1420 14212012-10-29 Robert Dewar <dewar@adacore.com> 1422 1423 * sem_ch13.adb: Minor reformatting. 1424 14252012-10-29 Robert Dewar <dewar@adacore.com> 1426 1427 * i-cstrea.ads: Avoid redefinition of standard symbol string. 1428 * prj-makr.adb: Add comment for OK redefinition of Stadard. 1429 * prj.ads: Add comment for OK redefinition of Stadard. 1430 * s-crtl.ads: Avoid redefinition of standard symbol string. 1431 * sinfo-cn.adb (Change_Identifier_To_Defining_Identifier): 1432 Generate warning for standard redefinition if 1433 Warn_On_Standard_Definition set. 1434 * usage.adb: Add lines for -gnatw.k and -gnatw.K 1435 * warnsw.adb: Set/reset Warn_On_Standard_Redefinition 1436 appropriately. 1437 * warnsw.ads (Warn_On_Standard_Redefinition): New flag. 1438 * s-stratt-xdr.adb: Avoid new warning. 1439 14402012-10-29 Ed Schonberg <schonberg@adacore.com> 1441 1442 * exp_dbug.ads, exp_dbug.adb (Build_Subprogram_Instance_Renamings): 1443 in the body of a subpogram instance, introduce local renamings 1444 for actuals of an elementary type, so that GDB can recover the 1445 values of these actuals more directly. 1446 14472012-10-29 Robert Dewar <dewar@adacore.com> 1448 1449 * sem_ch5.adb (Analyze_Loop_Statement): Add warning for identical 1450 inner/outer ranges. 1451 14522012-10-29 Robert Dewar <dewar@adacore.com> 1453 1454 * einfo.ads: Change terminology "present" to "defined" in talking 1455 about whether a given field is defined for a given entity kind. 1456 14572012-10-29 Bob Duff <duff@adacore.com> 1458 1459 * atree.ads: Minor comment fix. 1460 14612012-10-29 Bob Duff <duff@adacore.com> 1462 1463 * sem_ch13.adb (Replace_Type_Reference): Set_Comes_From_Source. 1464 Otherwise, the node is ignored by ASIS. 1465 * sem_ch5.adb: Minor reformatting. 1466 14672012-10-29 Thomas Quinot <quinot@adacore.com> 1468 1469 * exp_attr.adb, exp_dist.adb, exp_dist.ads (Build_To_Any_Call): Pass 1470 an explicit Loc parameter to set the source location of generated 1471 nodes. 1472 14732012-10-29 Tristan Gingold <gingold@adacore.com> 1474 1475 * exp_ch9.adb (Build_Task_Activation_Call): Do nothing on 1476 restricted profile. 1477 * bindgen.adb (System_Tasking_Restricted_Stages_Used): New variable. 1478 (Gen_Adainit): Declare and call Activate_Tasks when the above variable 1479 is set. 1480 (Resolve_Binder_Options): Set the variable. 1481 * rtsfind.ads (RE_Activate_Restricted_Tasks): Removed (now unused). 1482 * s-tarest.adb (Tasks_Activation_Chain): New variable. 1483 (Activate_Restricted_Tasks): Removed, and replaced by ... 1484 (Activate_Tasks): New procedure, to activate all tasks at 1485 the end of elaboration. 1486 (Create_Restricted_Tasks): Chain parameter is now unreferenced. Put 1487 the created task on the Tasks_Activation_Chain list. 1488 * s-tarest.ads (Activate_Restricted_Tasks): Removed. 1489 (Activate_Tasks): Added. 1490 14912012-10-29 Gary Dismukes <dismukes@adacore.com> 1492 1493 * sem_res.adb (Resolve_If_Expression): Compare subtype of the 'then' 1494 expression against the subtype of the expression rather than comparing 1495 base types, same as is already done for the 'else' expression. 1496 14972012-10-29 Steve Baird <baird@adacore.com> 1498 1499 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): If CodePeer_Mode 1500 = True and we detect that an Address specification is used to overlay 1501 another object, do not set that object's Treat_As_Volatile flag. 1502 15032012-10-29 Ed Schonberg <schonberg@adacore.com> 1504 1505 * sem_ch3.adb (Constant_Redeclaration): If the type of a 1506 deferred constant has invariants, generate invariant call on 1507 the initial value. 1508 15092012-10-29 Bob Duff <duff@adacore.com> 1510 1511 * sem_ch13.adb (Replace_Type_Reference): Use correct sloc for 1512 the new node. 1513 15142012-10-29 Thomas Quinot <quinot@adacore.com> 1515 1516 * sem_elab.adb: Minor reformatting and code reorganization. 1517 15182012-10-29 Robert Dewar <dewar@adacore.com> 1519 1520 * par-ch4.adb (P_Primary): Warn on bad use of unary minus. 1521 15222012-10-29 Robert Dewar <dewar@adacore.com> 1523 1524 * s-valuti.ads, s-valuti.adb (Bad_Value): New procedure. 1525 * s-valllu.adb, s-valwch.adb, s-valcha.adb, s-valint.adb, 1526 s-valuns.adb, s-valrea.adb, s-valboo.adb, s-valenu.adb, 1527 s-vallli.adb: Use Bad_Value everywhere. 1528 15292012-10-29 Yannick Moy <moy@adacore.com> 1530 1531 * gnat1drv.adb (Adjust_Global_Switches): Do not suppress checks 1532 in Alfa mode. 1533 15342012-10-29 Yannick Moy <moy@adacore.com> 1535 1536 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): 1537 Add special case for case expression alternative. 1538 (Is_Signed_Integer_Arithmetic_Op): Remove special case for case 1539 expression alternative. 1540 * exp_ch4.adb Minor reformatting. 1541 15422012-10-29 Thomas Quinot <quinot@adacore.com> 1543 1544 * sem_elab.adb: Minor reformatting. 1545 15462012-10-29 Bob Duff <duff@adacore.com> 1547 1548 * sem_res.adb: Minor: Remove redundant test. 1549 15502012-10-29 Arnaud Charlet <charlet@adacore.com> 1551 1552 * pprint.ads, pprint.adb, adabkend.ads, adabkend.adb, 1553 aa_util.ads, aa_util.adb: New. 1554 15552012-10-23 Eric Botcazou <ebotcazou@adacore.com> 1556 1557 * system-linux-mipsel.ads (Stack_Check_Probes): Set to True. 1558 * system-linux-mips.ads (Stack_Check_Probes): Likewise. 1559 * system-linux-mips64el.ads (Stack_Check_Probes): Likewise. 1560 15612012-10-22 Eric Botcazou <ebotcazou@adacore.com> 1562 1563 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Force 1564 BLKmode on the type if it is passed by reference. 1565 <E_Array_Subtype>: Likewise. 1566 <E_Record_Type>: Guard the call to Is_By_Reference_Type predicate. 1567 <E_Record_Subtype>: Likewise. 1568 1569 * gcc-interface/Makefile.in: Remove outdated comment and reference to 1570 non-existing file. 1571 15722012-10-22 Eric Botcazou <ebotcazou@adacore.com> 1573 1574 * gcc-interface/utils.c (rest_of_record_type_compilation): Simplify and 1575 robustify pattern machine code for masking operations. 1576 15772012-10-22 Eric Botcazou <ebotcazou@adacore.com> 1578 1579 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Subprogram_Type>: In 1580 type annotation mode, break circularities introduced by AI05-0151. 1581 15822012-10-22 Eric Botcazou <ebotcazou@adacore.com> 1583 1584 * gcc-interface/trans.c (Loop_Statement_to_gnu): Use gnat_type_for_size 1585 directly to obtain an unsigned version of the base type. 1586 15872012-10-22 Eric Botcazou <ebotcazou@adacore.com> 1588 1589 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Out_Parameter>: Do not 1590 generate the special PARM_DECL for an Out parameter in LTO mode. 1591 15922012-10-22 Eric Botcazou <ebotcazou@adacore.com> 1593 1594 PR bootstrap/54820 1595 * gcc-interface/Make-lang.in (GCC_LINK): Remove hardcoded options. 1596 15972012-10-15 Matthias Klose <doko@ubuntu.com> 1598 1599 * gcc-interface/Makefile.in: Match arm*-*-linux-*eabi* for 1600 ARM Linux/GNU. 1601 16022012-10-05 Robert Dewar <dewar@adacore.com> 1603 1604 * sem_ch7.adb: Minor reformatting. 1605 16062012-10-05 Ed Schonberg <schonberg@adacore.com> 1607 1608 * sem_prag.adb (Analyze_Pragma, case Persistent_BSS): check for 1609 a duplicate pragma before Rep_Item_Too_Late to prevent spurious 1610 messages about duplicate pragmas. 1611 16122012-10-05 Ed Schonberg <schonberg@adacore.com> 1613 1614 * exp_util.adb (Find_Init_Call): If the successor of the 1615 object declaration is a block, check whether it contains the 1616 initialization call, because it may have been created by actuals 1617 that use the secondary stack. 1618 16192012-10-05 Thomas Quinot <quinot@adacore.com> 1620 1621 * sem_dim.adb, errout.adb, errout.ads (Analyze_Dimension_Call): Add 1622 guard against abnormal tree resulting from a previously diagnosed 1623 illegality. 1624 16252012-10-05 Hristian Kirtchev <kirtchev@adacore.com> 1626 1627 * freeze.adb (Freeze_Expression): Rename local variable Cspc to Spec 1628 and update all refs to it. Do not freeze an entity outside a subprogram 1629 body when the original context is an expression function. 1630 16312012-10-05 Robert Dewar <dewar@adacore.com> 1632 1633 * gnat1drv.adb (Adjust_Global_Switches): Default for overflow checking 1634 is suppressed, even if backend overflow/divide checks are enabled. 1635 16362012-10-05 Ed Schonberg <schonberg@adacore.com> 1637 1638 * einfo.adb (Set_Invariant_Procedure, Set_Predicate_Function): 1639 chain properly subprograms on Subprograms_For_Type list. 1640 * sem_ch13.ads; (Build_Invariant_Procedure_Declaration): new 1641 procedure, to create declaration for invariant procedure 1642 independently of the construction of the body, so that it can 1643 be called within expression functions. 1644 * sem_ch13.adb (Build_Invariant_Procedure): code cleanup. The 1645 declaration may already have been generated at the point an 1646 explicit invariant aspect is encountered. 1647 * sem_prag.adb; (Analyze_Pragma, case Invariant): create declaration 1648 for invariant procedure. 1649 * sem_ch7.adb (Analyze_Package_Specification): clean up call to 1650 build invariant procedure. 1651 (Preserve_Full_Attributes): propagate information about invariants 1652 if they appear on a completion, 1653 16542012-10-05 Pascal Obry <obry@adacore.com> 1655 1656 * gnat_ugn.texi: Update documentation to lift Microsoft C 1657 restriction. 1658 16592012-10-05 Robert Dewar <dewar@adacore.com> 1660 1661 * sem_util.adb (Has_One_Matching_Field): Handle case of lone 1662 discriminant. 1663 16642012-10-05 Yannick Moy <moy@adacore.com> 1665 1666 * checks.adb (Minimize_Eliminate_Overflow_Checks): Correct code 1667 for the division operation and exponent operation. Adjust bound 1668 for the mod and rem operations. 1669 16702012-10-05 Robert Dewar <dewar@adacore.com> 1671 1672 * checks.adb, checks.ads, s-tassta.adb, s-stposu.adb, s-spsufi.adb, 1673 s-spsufi.ads, exp_ch4.adb: Minor reformatting. 1674 16752012-10-05 Yannick Moy <moy@adacore.com> 1676 1677 * switch-c.adb, checks.adb, checks.ads, sem_prag.adb, exp_ch4.adb, 1678 osint.adb: Minor correction of typos, and special case for Alfa mode. 1679 16802012-10-05 Hristian Kirtchev <kirtchev@adacore.com> 1681 1682 * s-spsufi.adb: Add with clause for Ada.Unchecked_Deallocation. 1683 Add with and use clauses for System.Finalization_Masters. 1684 (Finalize_And_Deallocate): Add an instance of 1685 Ada.Unchecked_Deallocation. Merge the code from the now obsolete 1686 Finalize_Subpool into this routine. 1687 * s-spsufi.ads: Add pragma Preelaborate. 1688 * s-stposu.adb: Remove with clause for 1689 Ada.Unchecked_Deallocation; Add with and use clauses for 1690 System.Storage_Pools.Subpools.Finalization; (Finalize_Pool): 1691 Update the comment on all actions takes with respect to a subpool 1692 finalization. Finalize and deallocate each individual subpool. 1693 (Finalize_Subpool): Removed. 1694 (Free): Removed; 1695 (Detach): Move from package body to spec. 1696 * s-stposu.ads (Detach): Move from package body to spec. 1697 (Finalize_Subpool): Removed. 1698 16992012-10-05 Arnaud Charlet <charlet@adacore.com> 1700 1701 * s-tassta.adb: Update comments. 1702 (Vulnerable_Complete_Master): If Free_On_Termination is set, do 1703 nothing, and let the task free itself if not already done. 1704 17052012-10-04 Robert Dewar <dewar@adacore.com> 1706 1707 * sem_res.adb (Resolve_Set_Membership): Warn on duplicates. 1708 17092012-10-04 Emmanuel Briot <briot@adacore.com> 1710 1711 * g-comlin.adb (Getopt): Fix value of Full_Switch returned in case of 1712 invalid switch. 1713 17142012-10-04 Arnaud Charlet <charlet@adacore.com> 1715 1716 * gcc-interface/Make-lang.in: Update dependencies. 1717 17182012-10-04 Robert Dewar <dewar@adacore.com> 1719 1720 * sem_eval.adb (Fold_Str, Fold_Uint, Fold_Ureal): Reset static 1721 expression state after Resolve call. 1722 17232012-10-04 Robert Dewar <dewar@adacore.com> 1724 1725 * sem_prag.adb (Analyze_Pragma. case Warnngs): Don't make entry 1726 in the table for Warnings Off pragmas if within an instance. 1727 17282012-10-04 Ed Schonberg <schonberg@adacore.com> 1729 1730 * sem_ch9.adb (Analyze_Entry_Body): Transfer 1731 Has_Pragma_Unreferenced flag from entry formal to corresponding 1732 entity in body, to prevent spurious warnings when pragma is 1733 present. 1734 17352012-10-04 Robert Dewar <dewar@adacore.com> 1736 1737 * s-bignum.adb (Big_Exp): Raise Storage_Error for ludicrously 1738 large results. 1739 17402012-10-04 Ed Schonberg <schonberg@adacore.com> 1741 1742 * sem_ch3.adb (Check_Duplicate_Aspects): Diagnose properly 1743 aspects that appear in the partial and the full view of a type. 1744 17452012-10-04 Robert Dewar <dewar@adacore.com> 1746 1747 * sinfo.ads (N_Return_Statement): Removed. 1748 17492012-10-04 Tristan Gingold <gingold@adacore.com> 1750 1751 * init.c (__gl_zero_cost_exceptions): Comment it as not used 1752 anymore. 1753 * bindgen.adb (Gen_Adainit): Do not emit Zero_Cost_Exceptions 1754 anymore. 1755 17562012-10-04 Thomas Quinot <quinot@adacore.com> 1757 1758 * prep.adb, prepcomp.adb, gprep.adb, opt.ads: New preprocessor switch 1759 -a (all source text preserved). 1760 17612012-10-04 Vincent Celier <celier@adacore.com> 1762 1763 * prj-proc.adb (Recursive_Process): Use project directory 1764 display path name as the value of 'Project_Dir. 1765 17662012-10-04 Robert Dewar <dewar@adacore.com> 1767 1768 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): 1769 Deal with case where we get a bignum operand and cannot do a 1770 range analysis. 1771 * sem_eval.adb (Why_Not_Static): Deal with bignum operands 1772 17732012-10-04 Ed Schonberg <schonberg@adacore.com> 1774 1775 * sem_ch4.adb (Find_Unary_Types): Within an instance, an 1776 interpretation that involves a predefied arithmetic operator is 1777 not a candidate if the corresponding generic formal type is not 1778 a numeric type. 1779 * sem_util.ads, sem_util.adb (Corresonding_Generic_Type): If a 1780 type is a generic actual type within an instance, return the 1781 corresponding formal in the generic unit, otherwise return 1782 Any_Type. 1783 17842012-10-04 Robert Dewar <dewar@adacore.com> 1785 1786 * checks.adb (Minimize_Eliminate_Overflow_Checks): Dont reanalyze 1787 if/case expression if nothing has changed (just reexpand). Stops 1788 case expression from generating incorrect temporary. 1789 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): 1790 Fix cut and paste typo for range analysis in NE (not equal) case. 1791 * sem_eval.adb (Compile_Time_Compare): Small optimization to 1792 catch some more cases. 1793 * types.ads (Suppressed_Or_Checked): New subtype of 1794 Overflow_Check_Type. 1795 17962012-10-04 Javier Miranda <miranda@adacore.com> 1797 1798 * exp_disp.adb (Set_CPP_Constructors_Old): Removed. 1799 (Set_CPP_Constructors): Code cleanup. 1800 18012012-10-04 Ed Schonberg <schonberg@adacore.com> 1802 1803 * sem_ch10.adb (Is_Ancestor_Unit): Make global, for use elsewhere. 1804 (Install_Private_with_Clauses): if clause is private and limited, 1805 do not install the limited view if the library unit is an ancestor 1806 of the unit being compiled. This unusual configuration occurs 1807 when compiling a unit DDP, when an ancestor P of DDP has a 1808 private limited with clause on a descendant of P that is itself 1809 an ancestor of DDP. 1810 18112012-10-04 Vincent Celier <celier@adacore.com> 1812 1813 * prj-proc.adb (Process_Package_Declaration): Use project 1814 directory display path name as the value of 'Project_Dir. 1815 18162012-10-04 Gary Dismukes <dismukes@adacore.com> 1817 1818 * exp_util.adb (Build_Allocate_Deallocate_Proc): The subpool can be 1819 given by an arbitrary name, so copy the tree to make the call's actual. 1820 18212012-10-04 Robert Dewar <dewar@adacore.com> 1822 1823 * s-exnllf.adb, s-exnllf.ads: Minor reformatting. 1824 18252012-10-04 Thomas Quinot <quinot@adacore.com> 1826 1827 * exp_ch6.adb: Minor reformatting. 1828 18292012-10-04 Pascal Obry <obry@adacore.com> 1830 1831 * projects.texi: Use consistently @command{} when referencing 1832 commands. Fix typos. 1833 18342012-10-03 Ed Schonberg <schonberg@adacore.com> 1835 1836 * sem_ch6.adb (New_Overloaded_Entity): call 1837 Append_Inherited_Subprogram when appropriate. 1838 * sem_dim.adb (Analyze_Dimension_Call): Do not perform dimensional 1839 analysis if call has previous semantic error. 1840 * sem_util.ads, sem_util.adb (Append_Inherited_Subprogram): 1841 new subprogram to handle properly the visibility of inherited 1842 operations that are primitives of a type extension, when the 1843 parent type and operations are declared in the same visible part. 1844 18452012-10-03 Robert Dewar <dewar@adacore.com> 1846 1847 * checks.adb (Minimize_Eliminate_Overflow_Checks): Properly 1848 handle case of top level expression within type conversion 1849 * gnat1drv.adb (Adjust_Global_Switches): Set SUPPRESSED as 1850 default for overflow checking for -gnatg mode (includes run-time). 1851 * sem_res.adb (Resolve_Type_Conversion): Avoid bogus warnings 1852 about redundant conversions from MINIMIZED/EXTENDED mode checking 1853 18542012-10-03 Javier Miranda <miranda@adacore.com> 1855 1856 * exp_ch4.adb (Expand_N_Allocator_Expression): Minor code 1857 reorganization and cleanup. Done to ensure proper management of 1858 the C++ constructor covering tagged and untagged types and also 1859 non-default constructors. 1860 * exp_ch6.ads, exp_ch6.adb (Make_CPP_Constructor_Call_In_Allocator): 1861 New subprogram. 1862 18632012-10-03 Gary Dismukes <dismukes@adacore.com> 1864 1865 * sem_ch6.adb: Minor typo fix. 1866 18672012-10-03 Robert Dewar <dewar@adacore.com> 1868 1869 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): 1870 Set Top_Level properly (to False) for operand of range of 1871 membership test. 1872 * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow): 1873 Fix crash with -gnato3 and membership operations. 1874 (Expand_Membership_Minimize_Eliminate_Overflow): Fix error message 1875 and wrong results for -gnato3 large expression and predicated 1876 subtype. 1877 (Expand_Membership_Minimize_Eliminate_Overflow): Use 1878 expression action node to avoid using insert actions (bombs in 1879 some cases). 1880 (Expand_Compare_Minimize_Eliminate_Overflow): Use expression action 1881 node to avoid using insert actions (bombs in some cases). 1882 18832012-10-03 Javier Miranda <miranda@adacore.com> 1884 1885 * exp_disp.adb (Set_CPP_Constructors_Old): Handle constructor of 1886 untagged type that has all its parameters with defaults and hence it 1887 covers the default constructor. 1888 18892012-10-03 Yannick Moy <moy@adacore.com> 1890 1891 * checks.adb, sem_prag.adb, s-bignum.ads: Minor typo fixes. 1892 18932012-10-03 Thomas Quinot <quinot@adacore.com> 1894 1895 * g-socket.adb (Connect_Socket, version with timeout): When the 1896 newly-connected socket is reported as available for writing, check 1897 whether it has a pending asynchronous error prior to returning. 1898 18992012-10-03 Ed Schonberg <schonberg@adacore.com> 1900 1901 * sem_ch6.adb (Check_Conformance): Additional info when subtype 1902 conformance fails, due to a missing null exclusion indicatar in 1903 a formal that must match a controlling access formal. 1904 19052012-10-02 Ben Brosgol <brosgol@adacore.com> 1906 1907 * gnat_rm.texi: Minor editing. 1908 19092012-10-02 Ed Schonberg <schonberg@adacore.com> 1910 1911 * sem_ch6.adb (Analyze_Function_Return): Reject a return 1912 expression whose type is a local access to subprogram type. 1913 19142012-10-02 Robert Dewar <dewar@adacore.com> 1915 1916 * sem_eval.adb: Minor improvement to Compile_Time_Compare. 1917 19182012-10-02 Robert Dewar <dewar@adacore.com> 1919 1920 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): 1921 Fix base type problem that resulted in improper conversion. 1922 (Minimize_Eliminate_Overflow_Checks): Properly handle top 1923 level case to avoid unnecessary conversion to bignum or LLI. 1924 (Minimize_Eliminate_Overflow_Checks): Implement uniform two phase 1925 approach for arithmetic operators and for if/case expressions. 1926 * checks.ads: Minor comment fix. 1927 * exp_ch4.adb (Minimized_Eliminated_Overflow_Check): New function, 1928 implements a uniform way of treating minimized/eliminated checks in 1929 two phases. 1930 (Expand_Compare_Minimize_Eliminate_Overflow): Fix cut and 1931 paste error resulting in wrong results for less than in some 1932 cases. (Expand_Membership_Minimize_Eliminate_Overflow): 1933 Fix error caused by incorrect capture of operand types. 1934 (Expand_Membership_Minimize_Eliminate_Overflow): Fix error in 1935 handling of bignum case. 1936 (Expand_N_Case_Expression): Implement 1937 proper two phase handling (Expand_N_If_Expression): Implement 1938 proper two phase handling (Expand_N_Op_Abs): Implement proper 1939 two phase handling ditto for all other arithmetic operators 1940 * sem_res.adb (Resolve_If_Expression): Avoid introducing 1941 unneeded conversions. 1942 19432012-10-02 Robert Dewar <dewar@adacore.com> 1944 1945 * s-bignum.adb (Big_Exp): 0**0 should be 1, not 0. 1946 (Big_Exp): Fix possible error for (-1)**0. 1947 (Big_Exp): Fix error in computing 2**K for small K. 1948 (Big_Mod): Fix wrong sign for negative operands. 1949 (Div_Rem): Fix bad results for operands close to 2**63. 1950 * s-bignum.ads: Add documentation and an assertion to require 1951 LLI size to be 64 bits. 1952 * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Do not 1953 allow ELIMINATED if LLI'Size is other than 64 bits. 1954 * switch-c.adb (Scan_Switches): Do not allow -gnato3 if LLI'Size 1955 is not 64 bits. 1956 * switch.ads (Bad_Switch): Add missing pragma No_Return. 1957 * gnat_ugn.texi: Added appendix on Overflow Check Handling in GNAT. 1958 19592012-10-02 Robert Dewar <dewar@adacore.com> 1960 1961 * sem_type.adb: Minor reformatting. 1962 19632012-10-02 Robert Dewar <dewar@adacore.com> 1964 1965 * sem_ch8.adb: Minor reformatting. 1966 19672012-10-02 Javier Miranda <miranda@adacore.com> 1968 1969 * exp_disp.adb (Set_CPP_Constructors): Handle constructor with default 1970 parameters that covers the default constructor. 1971 19722012-10-02 Yannick Moy <moy@adacore.com> 1973 1974 * s-bignum.adb: Minor stylistic and comment corrections. 1975 19762012-10-02 Pascal Obry <obry@adacore.com> 1977 1978 * prj-util.adb (For_Interface_Sources): Iterate over all sources in 1979 aggregate library projects. 1980 19812012-10-02 Ed Schonberg <schonberg@adacore.com> 1982 1983 * sem_ch8.adb (Find_Direct_Name): The left-hand side of an 1984 assignment may designate a generalized reference. 1985 19862012-10-02 Eric Botcazou <ebotcazou@adacore.com> 1987 1988 * types.h (N_Return_Statement): Delete. 1989 * gcc-interface/trans.c (gnat_to_gnu): Replace N_Return_Statement with 1990 N_Simple_Return_Statement. 1991 19922012-10-02 Ed Schonberg <schonberg@adacore.com> 1993 1994 * freeze.adb (Freeze_Entity): in a generic context, aspects must 1995 be analyzed because they may be queried subsequently within the 1996 generic unit, even if no other freezing actions are generated 1997 for an entity. 1998 * sem_ch13.adb (Analyze_Aspects_At_Freeze_Point): iterator 1999 aspects must be analyzed because they are delayed aspects and 2000 the corresponding attribute definition clause may not have been 2001 analyzed yet. 2002 20032012-10-02 Yannick Moy <moy@adacore.com> 2004 2005 * gnat_rm.texi: Minor editing. 2006 20072012-10-02 Robert Dewar <dewar@adacore.com> 2008 2009 * sinfo.adb, sinfo.ads, sem_util.adb, sem_util.ads, types.h, 2010 exp_ch4.adb, exp_ch6.adb: Get rid of internal use of N_Return_Statement. 2011 20122012-10-02 Eric Botcazou <ebotcazou@adacore.com> 2013 2014 * types.h: Minor cosmetic fix. 2015 20162012-10-02 Eric Botcazou <ebotcazou@adacore.com> 2017 2018 * gcc-interfaces/decl.c (elaborate_expression_1): Use the variable for 2019 bounds of loop iteraration scheme only for locally defined subtypes. 2020 2021 * gcc-interface/trans.c (gigi): Fix formatting. 2022 (build_return_expr): Apply the NRV optimization only for BLKmode. 2023 20242012-10-02 Robert Dewar <dewar@adacore.com> 2025 2026 * sinfo.ads: Remove refs of N_Conditional_Expression and 2027 N_Parameterized_Expression. 2028 20292012-10-02 Thomas Quinot <quinot@adacore.com> 2030 2031 * exp_aggr.adb (Get_Component_Val): Rewrite code that computes 2032 justification of bits in enclosing word in an attempt to make 2033 it clearer. 2034 20352012-10-02 Robert Dewar <dewar@adacore.com> 2036 2037 * par_sco.adb, sem_ch3.adb, layout.adb, exp_ch7.adb, exp_imgv.adb, 2038 exp_util.adb, exp_util.ads, exp_attr.adb, sinfo.adb, sinfo.ads, 2039 exp_ch9.adb, style.ads, scos.ads, debug.adb, einfo.ads, scng.adb, 2040 checks.adb, checks.ads, sem.adb, par-ch4.adb, sem_util.adb, types.h, 2041 sem_res.adb, expander.adb, scans.ads, par.adb, exp_ch2.adb, 2042 gnat1drv.adb, stylesw.ads, sem_elab.adb, exp_ch4.adb, exp_ch4.ads, 2043 exp_ch6.adb, sem_ch4.adb, sem_ch4.ads, sem_ch6.adb, 2044 opt.ads, sem_eval.adb, sem_eval.ads, exp_intr.adb, sprint.adb, 2045 sprint.ads, styleg.ads: Change name Conditional_Expression to 2046 If_Expression. 2047 * gcc-interface/trans.c (gnat_to_gnu): Replace 2048 N_Conditional_Expression by N_If_Expression. 2049 * gcc-interface/Make-lang.in: Update dependencies. 2050 20512012-10-02 Robert Dewar <dewar@adacore.com> 2052 2053 * exp_ch4.adb (Expand_N_Op_Expon): Use expression with actions 2054 for x ** 4. 2055 20562012-10-02 Ed Schonberg <schonberg@adacore.com> 2057 2058 * sem_ch5.adb: (Analyze_Iterator_Specification): If container 2059 has a variable indexing aspect, the element is a variable and 2060 is modifiable in the loop. This check is also performed when the 2061 loop is expanded, but it must be done in semantic analysis when 2062 expansion is disabled, for example for ASIS usage. 2063 20642012-10-02 Ed Schonberg <schonberg@adacore.com> 2065 2066 * lib-xref.adb (Generate_Reference): If a child subprogram 2067 has no previous spec, treat a reference to its formals (such 2068 as a parameter association) as coming from source in order to 2069 generate the proper references and enable gps navigation between 2070 reference and declaration. 2071 20722012-10-02 Robert Dewar <dewar@adacore.com> 2073 2074 * checks.adb (Apply_Arithmetic_Overflow_Checked_Suppressed): 2075 New name for Apply_Arithmetic_Overflow_Normal 2076 (Apply_Arithmetic_Overflow_Minimized_Eliminated): 2077 Add handling for conditional expressions 2078 (Is_Signed_Integer_Arithmetic_Op): Now includes conditional 2079 expressions (Minimize_Eliminate_Overflow_Checks): Handle 2080 conditional expressions. 2081 * checks.ads: Minor comment fixes. 2082 * exp_ch4.adb (Expand_N_Case_Expression): Call 2083 Apply_Arithmetic_Overflow_Check (Expand_N_Conditional_Expression): 2084 Call Apply_Arithmetic_Overflow_Check 2085 * s-bignum.adb (Normalize): Remove incorrect precondition. 2086 * sem_res.adb (Resolve_Case_Expression): Set Do_Overflow_Check 2087 flag (Resolve_Conditional_Expression): Set Do_Overflow_Check flag. 2088 * sinfo.adb: Add Do_Overflow_Check for conditional expressions. 2089 * sinfo.ads: Minor documentation updates. 2090 20912012-10-02 Ed Schonberg <schonberg@adacore.com> 2092 2093 * exp_ch4.adb (Expand_N_Case_Expression): Do not introduce 2094 indirections when the type of the alternatives is an access type: 2095 more efficient, and removes anomalies when an alternative is 2096 statically null. 2097 20982012-10-02 Robert Dewar <dewar@adacore.com> 2099 2100 * aspects.ads: Minor comment addition (Invariant is a GNAT aspect). 2101 21022012-10-02 Robert Dewar <dewar@adacore.com> 2103 2104 * exp_ch7.adb, sem_dim.adb, sem_dim.ads, prj-part.adb, checks.adb, 2105 freeze.adb, sem_ch4.adb, sem_ch13.adb: Minor reformatting. 2106 21072012-10-02 Robert Dewar <dewar@adacore.com> 2108 2109 * sem_prag.adb (Analyze_Pragma, case Overflow_Checks): Fix 2110 typo preventing proper processing of Overflow_Checks pragmas 2111 for general case. 2112 21132012-10-02 Robert Dewar <dewar@adacore.com> 2114 2115 * exp_ch4.adb (Expand_N_Op_Mod): Fix crash in ELIMINATED overflow 2116 checks mode when bignum mode is used. 2117 21182012-10-02 Robert Dewar <dewar@adacore.com> 2119 2120 * stylesw.ads, gnat_ugn.texi: Document new style rule for NOT IN. 2121 * par-ch4.adb (P_Relational_Operator): Add style check for NOT IN. 2122 * style.ads, styleg.adb, styleg.ads (Check_Not_In): New procedure. 2123 21242012-10-02 Vincent Pucci <pucci@adacore.com> 2125 2126 * sem_attr.adb (Analyze_Attribute): Check dimension for attribute 2127 Old before it gets expanded. 2128 * sem_dim.adb (Analyze_Dimension_Has_Etype): Correctly propagate 2129 dimensions for identifier. 2130 21312012-10-02 Ed Schonberg <schonberg@adacore.com> 2132 2133 * exp_ch5.adb (Expand_Iterator_Loop): Handle properly the case 2134 where the iterator type is derived locally from an instantiation 2135 of Ada.Iterators_Interface. 2136 * exp_ch7.adb (Establish_Transient_Scope): Do not create a 2137 transient scope if within the expansion of an iterator loop, 2138 because a transient block already exists. 2139 21402012-10-02 Vincent Celier <celier@adacore.com> 2141 2142 * gnatcmd.adb: Use absolute path for configuration pragmas files 2143 * make.adb (Configuration_Pragmas_Switch.Absolute_Path): Moved 2144 to Makeutl. 2145 * makeutl.ads, makeutl.adb (Absolute_Path): New function, moved from 2146 make.adb. 2147 21482012-10-02 Vincent Celier <celier@adacore.com> 2149 2150 * prj-part.adb (Post_Parse_Context_Clause): Resurrect Boolean 2151 parameter In_Limited. Check for circularity also if In_Limited 2152 is True. 2153 (Parse_Single_Project): Call Post_Parse_Context_Clause with 2154 In_Limited parameter. 2155 21562012-10-02 Bob Duff <duff@adacore.com> 2157 2158 * checks.adb (Apply_Predicate_Check): Disable check in -gnatc mode. 2159 21602012-10-02 Vincent Pucci <pucci@adacore.com> 2161 2162 * sem_ch6.adb (Analyze_Function_Call): Dimension propagation 2163 for function calls moved to Analyze_Dimension_Call. 2164 * sem_dim.adb (Analyze_Dimension_Call): Properly propagate the 2165 dimensions from the returned type for function calls. 2166 21672012-10-02 Vincent Celier <celier@adacore.com> 2168 2169 * gnatcmd.adb: Take into account any configuration pragma file 2170 in the project files for gnat pretty/stub/metric. 2171 21722012-10-02 Ed Schonberg <schonberg@adacore.com> 2173 2174 * sem_ch13.adb (Check_Indexing_Functions): Refine several tests 2175 on the legality of indexing aspects: Constant_Indexing functions 2176 do not have to return a reference type, and given an indexing 2177 aspect Func, not all overloadings of Func in the current scope 2178 need to be indexing functions. 2179 21802012-10-02 Vasiliy Fofanov <fofanov@adacore.com> 2181 2182 * gnat_ugn.texi: Adjust docs for overflow checks to be VMS-friendly. 2183 21842012-10-02 Vincent Celier <celier@adacore.com> 2185 2186 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches 2187 -gnatox and -gnatoxx when x=0/1/2/3. 2188 21892012-10-02 Vincent Pucci <pucci@adacore.com> 2190 2191 * sem_ch4.adb (Analyze_Indexed_Component_Form): Dimension 2192 analysis for indexed components added. 2193 * sem_ch6.adb (Analyze_Function_Call): Dimension propagation 2194 for function calls added. 2195 * sem_dim.adb (Analyze_Dimension): Call to 2196 Analyze_Dimension_Has_Etype when N is a function call. 2197 (Analyze_Dimension_Call): Don't propagate anymore the dimensions 2198 for function calls since this is now treated separately in 2199 Analyze_Dimension_Has_Etype. 2200 (Analyze_Dimension_Has_Etype): For 2201 attribute references, propagate the dimensions from the prefix. 2202 * sem_dim.ads (Copy_Dimensions): Fix comment. 2203 22042012-10-02 Hristian Kirtchev <kirtchev@adacore.com> 2205 2206 * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine. 2207 (Apply_Parameter_Aliasing_And_Validity_Checks): This routine 2208 has been split into two. 2209 (Apply_Parameter_Validity_Checks): New routine. 2210 * exp_ch6.adb (Expand_Call): Add checks to verify that actuals 2211 do not overlap. The checks are made on the caller side to overcome 2212 issues of parameter passing mechanisms. 2213 * freeze.adb (Freeze_Entity): Update call to 2214 Apply_Parameter_Aliasing_And_Validity_Checks. 2215 22162012-10-02 Ed Schonberg <schonberg@adacore.com> 2217 2218 * sem_ch4.adb (Is_Empty_Range): Use bounds of index type 2219 to determine whether an array is empty when optimizing 2220 a quantified expression over a null range. Use of RM_Size 2221 was incorrect. Analyze condition before constant-folding the 2222 expression to catch potential errors. Modify the error message 2223 to avoid mathematical terminology. 2224 22252012-10-02 Robert Dewar <dewar@adacore.com> 2226 2227 * usage.adb, gnat_rm.texi, vms_data.ads: Add entry for 2228 /OVERFLOW_CHECKS=?? generating -gnato?? for control 2229 of extended overflow checking. 2230 * ug_words: Add entry for -gnato?? for /OVERFLOW_CHECKS=?? 2231 * gnat_ugn.texi: Add documentation for -gnato?? for control of overflow 2232 checking mode. 2233 22342012-10-02 Ed Schonberg <schonberg@adacore.com> 2235 2236 * sem_ch4.adb (Analyze_Quantified_Expression): If the iterator in 2237 a quantified expression is statically known to be null (e.g. a 2238 array with an empty index type) emit a warning. 2239 22402012-10-02 Robert Dewar <dewar@adacore.com> 2241 2242 * sem_dim.adb: Minor code reorganization. 2243 * sem_dim.ads: Add comment. 2244 22452012-10-02 Robert Dewar <dewar@adacore.com> 2246 2247 * checks.ads, exp_ch4.adb, checks.adb 2248 (Minimize_Eliminate_Overflow_Checks): Add Top_Level parameter to avoid 2249 unnecessary conversions to Bignum. 2250 Minor reformatting. 2251 22522012-10-02 Ed Schonberg <schonberg@adacore.com> 2253 2254 * sem_ch6.adb (Process_PPCs): Generate invariant checks for a 2255 return value whose type is an access type and whose designated 2256 type has invariants. Ditto for in-out parameters and in-parameters 2257 of an access type. 2258 * exp_ch3.adb (Build_Component_Invariant_Call): Add invariant check 2259 for an access component whose designated type has invariants. 2260 22612012-10-01 Vincent Pucci <pucci@adacore.com> 2262 2263 * sem_aggr.adb (New_Copy_Tree_And_Copy_Dimensions): New routine. 2264 (Resolve_Record_Aggregate): New_Copy_Tree calls replaced by 2265 New_Copy_Tree_And_Copy_Dimensions calls. Move_Dimensions call 2266 replaced by Copy_Dimensions call. 2267 * sem_dim.adb (Analyze_Dimension_Component_Declaration): Don't 2268 remove the dimensions of expression in component declaration anymore. 2269 (Copy_Dimensions): New routine. 2270 (Move_Dimensions): Add call to Copy_Dimensions. 2271 * sem_dim.ads (Copy_Dimensions): New routine. 2272 (Move_Dimensions): Spec moved to body of Sem_Dim. 2273 22742012-10-01 Ed Schonberg <schonberg@adacore.com> 2275 2276 * checks.adb (Apply_Predicate_Check): If the predicate is a 2277 static one and the operand is static, evaluate the predicate at 2278 compile time. 2279 * sem_eval.ads, sem_eval.adb (Eval_Static_Predicate_Check): new 2280 procedure, to evaluate a static predicate check whenever possible. 2281 * sem_res.adb (Resolve_Type_Conversion): Apply predicate check 2282 on the conversion if the target type has predicates. 2283 22842012-10-01 Vincent Pucci <pucci@adacore.com> 2285 2286 * sem_dim.adb (Has_Symbols): Complain if parameter Symbol has been 2287 provided by the user in the dimension output call. 2288 22892012-10-01 Robert Dewar <dewar@adacore.com> 2290 2291 * checks.adb (Apply_Divide_Checks): New name for 2292 Apply_Divide_Check (Minimize_Eliminate_Overflow_Checks): 2293 Add code to handle division (and rem and mod) properly. 2294 (Apply_Division_Check): New procedure (Apply_Divide_Checks): 2295 Use Apply_Division_Check (Apply_Divide_Checks): Use 2296 Apply_Arithmetic_Overflow_Minimized_Eliminated. 2297 * checks.ads (Apply_Divide_Checks): New name for 2298 Apply_Divide_Check, also add clearer documentation for this 2299 routine and put in alfa order. 2300 * exp_ch4.adb (Apply_Divide_Checks): New name for 2301 Apply_Divide_Check. 2302 * s-bignum.adb (To_Bignum): Handle largest negative integer 2303 properly. 2304 * sem.adb (Analyze): Handle overflow suppression correctly 2305 (Analyze_List): Handle overflow suppression correctly 2306 * sem_res.adb (Analyze_And_Resolve): Handle overflow suppression 2307 correctly. 2308 23092012-10-01 Vasiliy Fofanov <fofanov@adacore.com> 2310 2311 * s-oscons-tmplt.c, g-socket.ads: Revert previous change, breaks VMS. 2312 23132012-10-01 Robert Dewar <dewar@adacore.com> 2314 2315 * checks.adb (Minimize_Eliminate_Overflow_Checks): Changes 2316 for exponentiation. 2317 * exp_ch4.adb (Expand_N_Op_Expon): Changes for Minimize/Eliminate 2318 overflow checks. 2319 * s-bignum.adb (Compare): Fix bad precondition. 2320 23212012-10-01 Ed Schonberg <schonberg@adacore.com> 2322 2323 * sem_ch3.adb (Build_Derived_Record_Type): If the derived 2324 type has new discriminantss that constrain inherited ones, use 2325 the discriminant type in the original declaration to check for 2326 conformance, because in the presence of array components with a 2327 smaller range that are constrained by the origina discriminant, 2328 the compiler will have created a narrower subtype for that 2329 discriminant. 2330 23312012-10-01 Robert Dewar <dewar@adacore.com> 2332 2333 * checks.adb (Apply_Arithmetic_Overflow_Minimized_Eliminated): 2334 Handle case of appearing in range in membership test. 2335 * exp_ch4.adb (Expand_Membership_Minimize_Eliminate_Overflow): 2336 New procedure (Expand_N_In): Use 2337 Expand_Membership_Minimize_Eliminate_Overflow. 2338 * rtsfind.ads: Add RE_Bignum_In_LLI_Range. 2339 * s-bignum.ads, s-bignum.adb (Bignum_In_LLI_Range): New function. 2340 * sinfo.ads, sinfo.adb (No_Minimize_Eliminate): New flag. 2341 23422012-10-01 Robert Dewar <dewar@adacore.com> 2343 2344 * uintp.ads: Minor reformatting. 2345 23462012-10-01 Ed Schonberg <schonberg@adacore.com> 2347 2348 * checks.adb: Improve warning message. 2349 23502012-10-01 Robert Dewar <dewar@adacore.com> 2351 2352 * checks.adb: Minor reformatting. 2353 23542012-10-01 Javier Miranda <miranda@adacore.com> 2355 2356 * exp_ch3.adb (Expand_N_Object_Declaration): Suppress tag 2357 assignment for initializations that are aggregates. 2358 23592012-10-01 Robert Dewar <dewar@adacore.com> 2360 2361 * exp_ch4.adb (Expand_Compare_Minimize_Eliminate_Overflow): 2362 New procedure. 2363 23642012-10-01 Robert Dewar <dewar@adacore.com> 2365 2366 * checks.adb (Minimize_Eliminate_Checks): Changes from testing. 2367 (Apply_Arithmetic_Overflow_Minimized_Eliminated): Changes 2368 from testing. 2369 * sinfo.ads: Remove note on not setting Entity field in overflow 2370 case since this is no longer true. 2371 * Makefile.rtl: Add s-bignum.o 2372 23732012-10-01 Thomas Quinot <quinot@adacore.com> 2374 2375 * Make-generated.in: Correction to previous change for s-oscons 2376 target. 2377 23782012-10-01 Thomas Quinot <quinot@adacore.com> 2379 2380 * s-bignum.adb (Allocate_Bignum): Reorganize to kill strict 2381 aliasing warning. 2382 23832012-10-01 Robert Dewar <dewar@adacore.com> 2384 2385 * checks.adb (Overflow_Check_Mode): New function 2386 (Apply_Overflow_Check): New procedure (Is_Check_Suppressed): 2387 Moved here from Sem, Overflow_Check case now specially treated. 2388 * checks.ads (Overflow_Check_Mode): New function 2389 (Is_Check_Suppressed): Moved here from Sem (more logical) 2390 * exp_ch4.adb (Substitute_Valid_Check): Suppress warning about 2391 optimization if we are in MINIMIZED or ELIMINATED overflow 2392 checking mode and within an assertiom expression. 2393 * rtsfind.ads: Add entries for Bignum stuff. 2394 * s-bignum.ads, s-bignum.adb: New files. 2395 * sem.ads, sem.adb (Is_Check_Suppressed): Moved to Checks, more logical. 2396 * sem_prag.adb (Process_Suppress_Unsuppress): New behavior for 2397 Unsuppress of Overflow_Check (sets Checked instead of Minimized) 2398 * sem_res.adb: Update comments. 2399 * sinfo.ads (N_Op): Add documentation on overflow handling. 2400 * tbuild.ads, tbuild.adb (Convert_To_And_Rewrite): New procedure. 2401 * types.ads (Minimized_Or_Eliminated): New subtype. 2402 24032012-10-01 Eric Botcazou <ebotcazou@adacore.com> 2404 2405 * layout.adb (Layout_Type): Do not set twice the address size 2406 on an access-to-unconstrained array if Debug_Flag_6 is set. 2407 24082012-10-01 Hristian Kirtchev <kirtchev@adacore.com> 2409 2410 * sem_ch3.adb (Analyze_Declarations): Remove the specialized 2411 code which prevents freezing when the declarative list contains 2412 a _postconditions body. This is no longer needed because the 2413 body is now inserted at the end of the declarations. 2414 * sem_ch6.adb (Insert_After_Last_Declaration): New routine. 2415 (Insert_Before_First_Source_Declaration): Removed. 2416 (Process_PPCs): Insert the _postconditions body at the end of 2417 the declarative list to prevent premature freezing of types that 2418 appear in the declarations. 2419 24202012-10-01 Robert Dewar <dewar@adacore.com> 2421 2422 * sem_aggr.adb, sem_dim.adb: Minor reformatting. 2423 24242012-10-01 Ed Schonberg <schonberg@adacore.com> 2425 2426 * sem_prag.adb (Process_Convention, Process_Import_Or_Interface): 2427 Adjust test so that when the pragma comes from an aspect 2428 specification it only applies to the entity in the original 2429 declaration. 2430 24312012-10-01 Thomas Quinot <quinot@adacore.com> 2432 2433 * gnat_ugn.texi: Document new command line switch -fada-spec-parent. 2434 24352012-10-01 Thomas Quinot <quinot@adacore.com> 2436 2437 * s-oscons-tmplt.c, g-socket.ads: Minor code improvement: use gcc 2438 builtin __alignof__ to get the alignment of struct fd_set. 2439 24402012-10-01 Vincent Pucci <pucci@adacore.com> 2441 2442 * exp_ch6.adb (Expand_Call): Remove call to 2443 Remove_Dimension_In_Call. 2444 * sem_aggr.adb (Resolve_Array_Aggregate): Analyze dimension of 2445 components in array aggregate. 2446 (Resolve_Aggr_Expr): Propagate dimensions from the original expression 2447 Expr to the new created expression New_Expr when resolving the 2448 expression of a component in record aggregates. 2449 (Resolve_Record_Aggregate): Analyze 2450 dimension of components in record (or extension) aggregate. 2451 * sem_ch6.adb (Analyze_Subprogram_Specification): Analyze 2452 dimension of formals with default expressions in subprogram 2453 specification. 2454 * sem_ch8.adb (Analyze_Expanded_Name): Analyze dimension of 2455 expanded names. 2456 (Find_Selected_Component): Analyze dimension of selected component. 2457 * sem_dim.adb: Several dimension error messages reformatting. 2458 (Dimensions_Msg_Of): New flag Description_Needed in order to 2459 differentiate two different sort of dimension error messages. 2460 (Dim_Warning_For_Numeric_Literal): New routine. 2461 (Exists): New routine. 2462 (Move_Dimensions): Routine spec moved to spec file. 2463 * sem_dim.ads (String_From_Numeric_Literal): New routine. 2464 (Analyze_Dimension): Analyze dimension only when the 2465 node comes from source. Dimension analysis for expanded names added. 2466 (Analyze_Dimension_Array_Aggregate): New routine. 2467 (Analyze_Dimension_Call): New routine. 2468 (Analyze_Dimension_Component_Declaration): Warning if default 2469 expression is a numeric literal. 2470 (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine. 2471 (Analyze_Dimension_Formals): New routine. 2472 (Analyze_Dimension_Object_Declaration): Warning if default 2473 expression is a numeric literal. 2474 (Symbol_Of): Return either the dimension subtype symbol or the 2475 dimension symbol built by From_Dim_To_Str_Of_Unit_Symbols. 2476 * sem_dim.ads (Analyze_Dimension_Array_Aggregate): New routine. 2477 (Analyze_Dimension_Call): New routine. 2478 (Analyze_Dimension_Extension_Or_Record_Aggregate): New routine. 2479 (Analyze_Dimension_Formals): New routine. 2480 (Move_Dimensions): Moved from sem_dim.adb. 2481 * s-dimmks.ads: Turn off the warnings for dimensioned object 2482 declaration. Dimensioned subtypes sorted in alphabetical 2483 order. New subtypes Area, Speed, Volume. 2484 * s-dmotpr.ads: Turn off the warnings for dimensioned object 2485 declaration. 2486 * sem_res.adb (Resolve_Call): Analyze dimension for calls. 2487 24882012-10-01 Thomas Quinot <quinot@adacore.com> 2489 2490 * Make-generated.in: Minor cleanup of all targets: use 2491 MOVE_IF_CHANGE to put generated files in place, to avoid useless 2492 recompilations. 2493 24942012-10-01 Javier Miranda <miranda@adacore.com> 2495 2496 * exp_disp.adb (Expand_Dispatching_Call): For functions returning 2497 interface types add an implicit conversion to the returned object 2498 to force the displacement of the pointer to the returned object 2499 to reference the corresponding secondary dispatch table. This 2500 is needed to handle well combined calls involving secondary 2501 dispatch tables (for example Obj.Prim1.Prim2). 2502 * exp_ch4.adb (Expand_Allocator_Expression): Declare internal 2503 access type as access to constant or access to variable depending 2504 on the context. Found working in this ticket. 2505 25062012-10-01 Ed Schonberg <schonberg@adacore.com> 2507 2508 * checks.adb (Apply_Predicate_Check): Do not apply check to 2509 actual of predicate checking procedure, to prevent infinite 2510 recursion. 2511 25122012-10-01 Arnaud Charlet <charlet@adacore.com> 2513 2514 * gcc-interface/Make-lang.in: Update dependencies. 2515 (GCC_LINK): Add -static-libstdc++. 2516 25172012-10-01 Arnaud Charlet <charlet@adacore.com> 2518 2519 * a-catizo.adb, a-stwiun.adb, a-cdlili.adb, a-cihama.adb, a-direct.adb, 2520 a-coinve.adb, a-calend.adb, a-ciorse.adb, a-coorma.adb, a-cfdlli.adb, 2521 a-stzunb-shared.adb, a-cfhase.adb, bindgen.adb, ceinfo.adb, a-tags.adb, 2522 einfo.adb, checks.adb, eval_fat.adb, a-cborma.adb, a-stwifi.adb, 2523 a-tifiio.adb, a-textio.adb, a-cidlli.adb, a-strunb-shared.adb, 2524 a-cimutr.adb, a-calcon.adb, a-exexpr-gcc.adb, a-ciormu.adb, 2525 a-stzunb.adb, a-stzsea.adb, a-ngelfu.adb, a-stzfix.adb, 2526 a-cihase.adb, a-cohama.adb, a-exetim-posix.adb, a-dirval-vms.adb, 2527 a-caldel-vms.adb, a-coorse.adb, errout.adb, 2528 a-except.adb, butil.adb, a-dirval-mingw.adb, a-cforma.adb, 2529 a-except-2005.adb, a-wtedit.adb, cstand.adb, a-stwiun-shared.adb, 2530 a-cbhama.adb, a-direio.adb, clean.adb, a-cborse.adb, back_end.adb, 2531 binde.adb, a-exexda.adb, a-comutr.adb, a-ciorma.adb, a-cobove.adb, 2532 a-coormu.adb, a-teioed.adb, a-convec.adb, a-wtenau.adb, exp_aggr.adb, 2533 a-ztedit.adb, a-cohase.adb, a-exetim-mingw.adb, bcheck.adb, 2534 a-dynpri.adb, a-cfhama.adb, a-calfor.adb, a-cbdlli.adb, 2535 a-crdlli.adb, a-cbmutr.adb, a-sequio.adb, a-ngcoar.adb, a-cforse.adb, 2536 a-strunb.adb, a-calend-vms.adb, a-clrefi.adb, a-cofove.adb, 2537 a-ztenau.adb, a-strfix.adb, a-cbhase.adb, a-stzsup.adb: Minor 2538 reformatting. 2539 25402012-10-01 Vincent Pucci <pucci@adacore.com> 2541 2542 PR ada/54614 2543 * s-gearop.adb (Vector_Matrix_Product): Fix dimension check and index 2544 of Left in S evaluation. 2545 25462012-10-01 Javier Miranda <miranda@adacore.com> 2547 2548 * sem_ch3.adb (Analyze_Declarations): Avoid 2549 premature freezing caused by the internally generated subprogram 2550 _postconditions. 2551 * checks.adb (Expr_Known_Valid): Float literals are assumed to be valid 2552 in VM targets. 2553 25542012-10-01 Thomas Quinot <quinot@adacore.com> 2555 2556 * sinput.ads, sinput.adb, sinput-l.adb sinput-c.adb (Sinput): New 2557 Instances table, tracking all generic instantiations. Source file 2558 attribute Instance replaces previous Instantiation attribute with an 2559 index into the Instances table. 2560 (Iterate_On_Instances): New generic procedure. 2561 (Create_Instantiation_Source): Record instantiations in Instances. 2562 (Tree_Read, Tree_Write): Read/write the instance table. 2563 * scils.ads, scos.adb (SCO_Instance_Table): New table, contains 2564 information copied from Sinput.Instance_Table, but self-contained 2565 within the SCO data structures. 2566 * par_sco.ads, par_sco.adb (To_Source_Location): Move to library level. 2567 (Record_Instance): New subprogram, used by... 2568 (Populate_SCO_Instance_Table): New subprogram to fill 2569 the SCO instance table from the Sinput one (called by SCO_Output). 2570 * opt.ads (Generate_SCO_Instance_Table): New option. 2571 * put_scos.adb (Write_Instance_Table): New subprogram, used by... 2572 (Put_SCOs): Dump the instance table at the end of SCO information 2573 if requested. 2574 * get_scos.adb (Get_SCOs): Read SCO_Instance_Table. 2575 * types.h: Add declaration for Instance_Id. 2576 * back_end.adb (Call_Back_End): Pass instance ids in source file 2577 information table. 2578 (Scan_Back_End_Switches): -fdebug-instances sets 2579 Opt.Generate_SCO_Instance_Table. 2580 * gcc-interface/gigi.h: File_Info_Type includes instance id. 2581 * gcc-interface/trans.c: Under -fdebug-instances, set instance 2582 id in line map from same in file info. 2583 25842012-10-01 Thomas Quinot <quinot@adacore.com> 2585 2586 * sem_elab.adb: Minor reformatting 2587 (Check_Elab_Call): Minor fix to debugging code 2588 (add special circuit for the valid case where a 'Access attribute 2589 reference is passed to Check_Elab_Call). 2590 25912012-10-01 Thomas Quinot <quinot@adacore.com> 2592 2593 * exp_ch3.adb: Minor reformatting. 2594 25952012-10-01 Ed Schonberg <schonberg@adacore.com> 2596 2597 * exp_ch3.ads (Build_Array_Invariant_Proc): moved to body. 2598 * exp_ch3.adb (Build_Array_Invariant_Proc, 2599 Build_Record_Invariant_Proc): transform into functions. 2600 (Insert_Component_Invariant_Checks): for composite types that have 2601 components with specified invariants, build a checking procedure, 2602 and make into the invariant procedure of the composite type, 2603 or incorporate it into the user- defined invariant procedure if 2604 one has been created. 2605 * sem_ch3.adb (Array_Type_Declaration): Checking for invariants 2606 on the component type is defered to the expander. 2607 26082012-10-01 Thomas Quinot <quinot@adacore.com> 2609 2610 * xsnamest.adb, namet.h, sem_ch10.adb, s-oscons-tmplt.c, 2611 xoscons.adb: Minor reformatting. 2612 26132012-10-01 Hristian Kirtchev <kirtchev@adacore.com> 2614 2615 * checks.adb (Apply_Parameter_Aliasing_And_Validity_Checks): 2616 Do not process subprogram renaminds because a) those cannot 2617 have PPC pragmas b) the renamed entity already has the PPCs. 2618 (Build_PPC_Pragma): Prepend a PPC pragma for consistency with 2619 Process_PPCs. 2620 * sem_ch6.adb (Last_Implicit_Declaration): Removed. 2621 (Process_PPCs): Insert a post condition body at the start of the 2622 declarative region of the related subprogram. This way the body 2623 will not freeze anything it shouldn't. 2624 26252012-10-01 Robert Dewar <dewar@adacore.com> 2626 2627 * freeze.adb, sem_ch6.adb, opt.ads, sem_ch13.adb, 2628 exp_ch3.adb: Minor reformatting. 2629 26302012-10-01 Hristian Kirtchev <kirtchev@adacore.com> 2631 2632 * checks.adb (Build_PPC_Pragma): A PPC pragma can now be properly 2633 associated with a subprogram body. 2634 26352012-10-01 Ed Schonberg <schonberg@adacore.com> 2636 2637 * aspects.ads: Type_Invariant'class is a valid aspect. 2638 * sem_ch6.adb (Is_Public_Subprogram_For): with the exception of 2639 initialization procedures, subprograms that do not come from 2640 source are not public for the purpose of invariant checking. 2641 * sem_ch13.adb (Build_Invariant_Procedure): Handle properly the 2642 case of a non-private type in a package without a private part, 2643 when the type inherits invariants from its ancestor. 2644 26452012-10-01 Ed Schonberg <schonberg@adacore.com> 2646 2647 * exp_ch3.adb (Build_Record_Invariant_Proc): new procedure to 2648 generate a checking procedure for record types that may have 2649 components whose types have type invariants declared. 2650 26512012-10-01 Vincent Pucci <pucci@adacore.com> 2652 2653 * system-solaris-sparcv9.ads, system-mingw.ads, system-vms_64.ads: Flag 2654 Support_Atomic_Primitives set to True. 2655 26562012-10-01 Robert Dewar <dewar@adacore.com> 2657 2658 * impunit.adb: Ada.Locales is a language defined unit. 2659 26602012-10-01 Hristian Kirtchev <kirtchev@adacore.com> 2661 2662 * checks.adb (Apply_Parameter_Aliasing_Checks): Removed. 2663 (Apply_Parameter_Aliasing_And_Validity_Checks): New routine. 2664 (Apply_Parameter_Validity_Checks): Removed. 2665 * checks.ads (Apply_Parameter_Aliasing_Checks): Removed. 2666 (Apply_Parameter_Aliasing_And_Validity_Checks): New routine. 2667 (Apply_Parameter_Validity_Checks): Removed. 2668 * exp_ch6.adb (Expand_Call): Remove the generation of parameter 2669 aliasing checks. 2670 * freeze.adb: Remove with and use clauses for Validsw. 2671 (Freeze_Entity): Update the guard and generation of aliasing 2672 and scalar initialization checks for subprogram parameters. 2673 * opt.ads: Add new flags Check_Aliasing_Of_Parameters and 2674 Check_Validity_Of_Parameters along with comments on usage. 2675 * sem_attr.adb (Analyze_Attribute): Pragma Overlaps_Storage is 2676 no longer an Ada 2012 feature. 2677 * sem_ch4.adb: Remove with and use clauses for Checks and Validsw. 2678 (Analyze_Call): Remove the generation of aliasing checks for 2679 subprogram parameters. 2680 * sem_ch13.adb: Remove with and use clauses for Validsw. 2681 (Analyze_Aspect_Specifications): Remove the generation of scalar 2682 initialization checks. 2683 * switch-c.adb (Scan_Front_End_Switches): Add processing for 2684 -gnateA and -gnateV. 2685 * usage.adb (Usage): Add information on switches -gnateA and 2686 -gnateV. Remove information on validity switches 'l', 'L', 2687 'v' and 'V'. 2688 * validsw.adb (Reset_Validity_Check_Options): Remove the 2689 reset of flags Validity_Check_Non_Overlapping_Params 2690 and Validity_Check_Valid_Scalars_On_Params. 2691 (Save_Validity_Check_Options): Remove the processing 2692 for flags Validity_Check_Non_Overlapping_Params 2693 and Validity_Check_Valid_Scalars_On_Params. 2694 (Set_Validity_Check_Options): Remove the processing 2695 for flags Validity_Check_Non_Overlapping_Params and 2696 Validity_Check_Valid_Scalars_On_Params. 2697 * validsw.ads: Remove flags Validity_Check_Non_Overlapping_Params 2698 and Validity_Check_Valid_Scalars_On_Params along with their 2699 comments on usage. 2700 27012012-10-01 Yannick Moy <moy@adacore.com> 2702 2703 * sem_ch13.adb (Add_Invariants): Analyze the invariant expression 2704 as an assertion expression. 2705 * sem_ch3.adb / sem_ch3.ads (Preanalyze_Assert_Expression): 2706 New procedure that wraps a call to Preanalyze_Spec_Expression 2707 for assertion expressions, so that In_Assertion_Expr can be 2708 properly adjusted. 2709 * sem_prag.adb (Analyze_PPC_In_Decl_Part 2710 Check_Precondition_Postcondition Preanalyze_CTC_Args): Call the 2711 new Preanalyze_Assert_Expression. 2712 27132012-10-01 Robert Dewar <dewar@adacore.com> 2714 2715 * checks.ads: Minor reformatting. 2716 27172012-10-01 Yannick Moy <moy@adacore.com> 2718 2719 * types.ads, sem_prag.adb, sem.ads: Correct minor typos in comments. 2720 27212012-10-01 Vincent Celier <celier@adacore.com> 2722 2723 * make.adb (Scan_Make_Arg): Only test for "vP" of the option 2724 includes at least 3 characters. 2725 * gnatcmd.adb (GNATCmd): Ditto. 2726 27272012-10-01 Eric Botcazou <ebotcazou@adacore.com> 2728 2729 * exp_ch7.adb, sinfo.ads: Add comments. 2730 27312012-10-01 Robert Dewar <dewar@adacore.com> 2732 2733 * checks.adb: Remove reference to Enable_Overflow_Checks Use 2734 Suppress_Options rather than Scope_Suppress. 2735 * gnat1drv.adb (Adjust_Global_Switches): Handle new overflow 2736 settings (Adjust_Global_Switches): Initialize Scope_Suppress 2737 from Suppress_Options. 2738 * opt.adb: Remove Enable_Overflow_Checks (use Suppress_Options 2739 instead). 2740 * opt.ads: Remove Overflow_Checks_Unsuppressed (not used) 2741 Remove Enable_Overflow_Checks (use Suppress_Options instead) 2742 Suppress_Options is now current setting (replaces Scope_Suppress). 2743 * osint.adb (Initialize): Deal with initializing overflow 2744 checking. 2745 * par-prag.adb: Add dummy entry for pragma Overflow_Checks. 2746 * sem.adb (Semantics): Save and restore In_Assertion_Expr Use 2747 Suppress_Options instead of Scope_Suppress. 2748 * sem.ads (In_Assertion_Expr): New flag (Scope_Suppress): 2749 Removed, use Suppress_Options instead. 2750 * sem_eval.adb (Compile_Time_Compare): Return Unknown in 2751 preanalysis mode. 2752 * sem_prag.adb (Process_Suppress_Unsuppress): Setting of 2753 Overflow_Checks_Unsuppressed removed (not used anywhere!) 2754 (Analyze_Pragma, case Check): Set In_Assertion_Expression 2755 (Analyze_Pragma, case Overflow_Checks): Implement new pragma 2756 * snames.ads-tmpl: Add names needed for handling pragma 2757 Overflow_Checks 2758 * switch-c.adb (Scan_Front_End_Switches) Handle -gnato? and 2759 -gnato?? where ? is 0-3 2760 * types.ads: Updates and fixes to comment on Suppress_Record. 2761 27622012-10-01 Vincent Celier <celier@adacore.com> 2763 2764 * prj-part.adb (Parse): Remove incorrect comment about checking 2765 imported non extending projects from and "extending all" 2766 one. Minor correction. 2767 27682012-10-01 Robert Dewar <dewar@adacore.com> 2769 2770 * make.adb, exp_ch3.adb: Minor reformatting. 2771 27722012-10-01 Hristian Kirtchev <kirtchev@adacore.com> 2773 2774 * validsw.adb (Save_Validity_Check_Options): Do not set 2775 Validity_Check_Non_Overlapping_Params and 2776 Validity_Check_Valid_Scalars_On_Params when -gnatVa is present 2777 because the related checks are deemed too aggressive. 2778 27792012-10-01 Ed Schonberg <schonberg@adacore.com> 2780 2781 * sem_util.ads sem_util.adb (Check_Internal_Protected_Use): 2782 reject use of protected procedure or entry within the body of 2783 a protected function of the same protected type, when usage is 2784 a call, an actual in an instantiation, a or prefix of 'Access. 2785 * sem_ch8.adb (Analyze_Subprogram_Renaming): Verify that target 2786 object in renaming of protected procedure is a variable, and 2787 apply Check_Internal_Protected_Use. 2788 * sem_res.adb (Analyze_Call, Analyze_Entry_Call): apply 2789 Check_Internal_Protected_Use rather than on-line code. 2790 * sem_attr.adb (Analyze_Access_Attribute): Verify that target 2791 object in accsss to protected procedure is a variable, and apply 2792 Check_Internal_Protected_Use. 2793 27942012-10-01 Gary Dismukes <dismukes@adacore.com> 2795 2796 * sem_ch4.adb (Find_Equality_Types.Try_One_Interp): Exclude the 2797 predefined interpretation from consideration if it's for a "/=" 2798 operator of a tagged type. This will allow Analyze_Equality_Op to 2799 rewrite the "/=" as a logical negation of a call to the appropriate 2800 dispatching equality function. This needs to be done during 2801 analysis rather than expansion for the benefit of ASIS, which 2802 otherwise gets the unresolved N_Op_Ne operator from Standard. 2803 28042012-10-01 Thomas Quinot <quinot@adacore.com> 2805 2806 * gnatcmd.adb, make.adb (Scan_Make_Arg, Inspect_Switches): Recognize 2807 and reject an invalid parameter passed to -vP. 2808 28092012-10-01 Yannick Moy <moy@adacore.com> 2810 2811 * sem_warn.adb (Check_Infinite_Loop_Warning/Test_Ref): Improve 2812 the detection of modifications to the loop variable by noting 2813 that, if the type of variable is elementary and the condition 2814 does not contain a function call, then the condition cannot be 2815 modified by side-effects from a procedure call. 2816 28172012-10-01 Robert Dewar <dewar@adacore.com> 2818 2819 * checks.adb: Add comments. 2820 28212012-10-01 Javier Miranda <miranda@adacore.com> 2822 2823 * exp_ch3.adb (Expand_N_Object_Declaration): Improve condition catching 2824 never-ending recursion. The previous condition erroneously disabled 2825 silently the expansion of the class-wide interface object 2826 initialization in cases not involving the recursion. 2827 28282012-10-01 Thomas Quinot <quinot@adacore.com> 2829 2830 * make.adb: Minor documentation fix: error messages are sent to 2831 stderr, not stdout. 2832 28332012-10-01 Hristian Kirtchev <kirtchev@adacore.com> 2834 2835 * checks.ads, checks.adb (Apply_Parameter_Aliasing_Checks): New routine. 2836 (Apply_Parameter_Validity_Checks): New routines. 2837 * exp_ch6.adb (Expand_Call): Add aliasing checks to detect 2838 overlapping objects. 2839 * freeze.adb: Add with and use clauses for Checks and Validsw. 2840 (Freeze_Entity): Add checks to detect proper initialization 2841 of scalars. 2842 * sem_ch4.adb: Add with and use clauses for Checks and Validsw. 2843 (Analyze_Call): Add aliasing checks to detect overlapping objects. 2844 * sem_ch13.adb: Add with and use clauses for Validsw. 2845 (Analyze_Aspect_Specifications): Add checks to detect proper 2846 initialization of scalars. 2847 * sem_prag.adb (Chain_PPC): Correct the extraction of the 2848 subprogram name. 2849 * sem_util.adb (Is_Object_Reference): Attribute 'Result now 2850 produces an object. 2851 * usage.adb (Usage): Add usage lines for validity switches 'l', 2852 'L', 'v' and 'V'. 2853 * validsw.adb (Reset_Validity_Check_Options): Include 2854 processing for flags Validity_Check_Non_Overlapping_Params and 2855 Validity_Check_Valid_Scalars_On_Params. Code reformatting. 2856 (Save_Validity_Check_Options): Include processing 2857 for flags Validity_Check_Non_Overlapping_Params 2858 and Validity_Check_Valid_Scalars_On_Params. 2859 (Set_Validity_Check_Options): Add processing for validity switches 2860 'a', 'l', 'L', 'n', 'v' and 'V'. Code reformatting. 2861 * validsw.ads: Add new flags Validity_Check_Non_Overlapping_Params 2862 and Validity_Check_Valid_Scalars_On_Params along with comments 2863 on usage. 2864 28652012-10-01 Thomas Quinot <quinot@adacore.com> 2866 2867 * namet.ads, xsnamest.adb, prj-env.adb, sem_warn.adb, 2868 errout.ads: Minor reformatting. 2869 * prj-part.adb: Add comment. 2870 28712012-10-01 Robert Dewar <dewar@adacore.com> 2872 2873 * sinfo.ads, exp_aggr.adb, sem_ch13.adb: Minor reformatting. 2874 28752012-10-01 Ed Schonberg <schonberg@adacore.com> 2876 2877 * sem_aggr.adb (Resolve_Array_Aggregate): Handle properly 2878 component associations given by subtypes that have static 2879 predicates. Improve error message for overlapping ranges in 2880 array aggregates. 2881 28822012-10-01 Pascal Obry <obry@adacore.com> 2883 2884 * snames.ads-tmpl (Name_Link_Lib_Subdir): New constant. 2885 28862012-10-01 Ed Schonberg <schonberg@adacore.com> 2887 2888 * sem_ch9.adb (Analyze_Requeue): The target of a requeue 2889 statement on a protected entry must be a variable. This is part 2890 of AI05-0225. 2891 28922012-09-26 Ian Lance Taylor <iant@google.com> 2893 2894 * gcc-interface/Makefile.in (LIBBACKTRACE): New variable. 2895 (LIBS): Add $(LIBBACKTRACE). 2896 (LIBDEPS): Add $(LIBBACKTRACE). 2897 (TOOLS_LIBS): Add ../../../libbacktrace/.libs/libbacktrace.a. 2898 28992012-09-10 Diego Novillo <dnovillo@google.com> 2900 2901 * gcc-interface/decl.c (build_subst_list): Adjust call to VEC_safe_push. 2902 (build_variant_list): Likewise. 2903 * gcc-interface/utils.c (convert): Adjust calls to VEC_quick_push. 2904 29052012-09-07 Eric Botcazou <ebotcazou@adacore.com> 2906 2907 * gcc-interface/trans.c (Loop_Statement_to_gnu): Revert to using 2908 size_type_node instead of sizetype. 2909 29102012-08-19 Eric Botcazou <ebotcazou@adacore.com> 2911 2912 * layout.adb (Set_Elem_Alignment): Cap the alignment of access types 2913 to that of a regular access type for non-strict-alignment platforms. 2914 * gcc-interface/utils.c (finish_fat_pointer_type): Do not set the 2915 alignment for non-strict-alignment platforms. 2916 29172012-08-19 Eric Botcazou <ebotcazou@adacore.com> 2918 2919 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Use proper 2920 dummy type for the temporary COMPONENT_REF built for a derived tagged 2921 type with discriminant. 2922 29232012-08-14 Diego Novillo <dnovillo@google.com> 2924 2925 Merge from cxx-conversion branch. Re-implement VEC in C++. 2926 2927 * gcc-interface/trans.c (finalize_nrv_unc_r): Adjust VEC_index usage. 2928 * gcc-interface/utils.c (convert): Likewise. 2929 (remove_conversions): Likewise. 2930 * gcc-interface/utils2.c (compare_fat_pointers): Likewise. 2931 (build_unary_op): Likewise. 2932 (gnat_stabilize_reference): Likewise. 2933 29342012-08-06 Jose Ruiz <ruiz@adacore.com> 2935 2936 * gcc-interface/Makefile.in: Add support for 32-bit VxWorks for SPARC 2937 in kernel mode. 2938 29392012-08-06 Arnaud Charlet <charlet@adacore.com> 2940 2941 * prj-attr.adb (Register_New_Package): Add missing blank. 2942 29432012-08-06 Ed Schonberg <schonberg@adacore.com> 2944 2945 * exp_aggr.adb (Is_Two_Dim_Packed_Array): New predicate, 2946 used when computing maximum size allowable to construct static 2947 aggregate. 2948 29492012-08-06 Vincent Pucci <pucci@adacore.com> 2950 2951 * freeze.adb (Freeze_Entity): Inherit_Aspects_At_Freeze_Point 2952 calls added for derived types and subtypes. 2953 * sem_aux.adb, sem_aux.ads (Get_Rep_Item, Get_Rep_Pragma, 2954 Has_Rep_Pragma): New routines. 2955 * sem_ch13.ads (Inherit_Aspects_At_Freeze_Point): New routine. 2956 * sem_ch13.adb (Analyze_Aspect_Specifications): Error message 2957 for aspect Lock_Free fixed. 2958 (Inherits_Aspects_At_Freeze_Point): New routine. 2959 * sem_ch3.adb: Several flag settings removed since inheritance 2960 of aspects must be performed at freeze point. 2961 29622012-08-06 Thomas Quinot <quinot@adacore.com> 2963 2964 * s-oscons-tmplt.c: Fix s-oscons.ads formatting on VxWorks. 2965 29662012-08-06 Vincent Pucci <pucci@adacore.com> 2967 2968 * sem_dim.adb (Analyze_Dimension_Binary_Op): Issue an error message 2969 for unknown exponent at compile-time. 2970 29712012-08-06 Gary Dismukes <dismukes@adacore.com> 2972 2973 * sem_eval.ads (Compile_Time_Known_Value_Or_Aggr): Enhance 2974 comment to make it clear that the aggregate's evaluation might 2975 still involve run-time checks even though the aggregate is 2976 considered known at compile time. 2977 * sinfo.ads (Compile_Time_Known_Aggregate): Correct comment to 2978 refer to Exp_Aggr instead of Sem_Aggr. 2979 29802012-08-06 Robert Dewar <dewar@adacore.com> 2981 2982 * xoscons.adb: Minor code reorganization (remove unused variable 2983 E at line 331). 2984 * g-sercom.ads, exp_attr.adb: Minor reformatting. 2985 * sinfo.adb, sinfo.ads: Minor cleanup, remove unused flag 2986 Static_Processing_OK. 2987 29882012-08-06 Ed Schonberg <schonberg@adacore.com> 2989 2990 * sem_ch3.adb (Build_Derived_Concurrent_Type): Copy discriminant 2991 constraint when building a constrained subtype, to prevent 2992 undesirable tree sharing betweeb geberated subtype and derived 2993 type definition. 2994 29952012-08-06 Thomas Quinot <quinot@adacore.com> 2996 2997 * g-sercom-mingw.adb, s-oscons-tmplt.c: Add missing constants 2998 on Windows. 2999 30002012-08-06 Sergey Rybin <rybin@adacore.com frybin> 3001 3002 * tree_io.ads: Update ASIS_Version_Number because of the tree fix 3003 for discriminant constraints for concurrent types. 3004 30052012-08-06 Thomas Quinot <quinot@adacore.com> 3006 3007 * sem_ch4.adb: Minor reformatting. 3008 30092012-08-06 Thomas Quinot <quinot@adacore.com> 3010 3011 * s-oscons-tmplt.c, xoscons.adb: Per the Single UNIX Specification, 3012 types cc_t, speed_t, and tcflag_t defined in <termios.h> all are 3013 unsigned types. Add required special handling to have their correct 3014 unsigned values in s-oscons.ads. 3015 30162012-08-06 Thomas Quinot <quinot@adacore.com> 3017 3018 * par-ch13.adb: Minor reformatting. 3019 30202012-08-06 Thomas Quinot <quinot@adacore.com> 3021 3022 * g-sercom.adb, g-sercom.ads, g-sercom-mingw.adb, g-sercom-linux.adb 3023 (Set): Add Local and Flow_Control settings. 3024 30252012-08-06 Ed Schonberg <schonberg@adacore.com> 3026 3027 * exp_attr.adb: Suppress saving of 'Old if assertions are not 3028 enabled. 3029 30302012-08-06 Yannick Moy <moy@adacore.com> 3031 3032 * sem_ch4.adb (Analyze_Selected_Component): Issue an error in 3033 Alfa mode for component not present. 3034 30352012-08-06 Thomas Quinot <quinot@adacore.com> 3036 3037 * exp_ch7.adb (Insert_Actions_In_Scope_Around): Do not 3038 use a renaming of Scope_Stack.Table (Scope_Stack.Last), as 3039 Process_Transient_Object may introduce new scopes and cause 3040 Scope_Stack.Table to be reallocated. 3041 30422012-08-06 Robert Dewar <dewar@adacore.com> 3043 3044 * exp_util.adb, switch-c.adb, inline.ads, sem_ch10.adb, types.ads, 3045 checks.adb, sem_prag.adb, sem.adb, sem.ads, sem_res.adb, sem_attr.adb, 3046 gnat1drv.adb, exp_ch4.adb, exp_ch6.adb, opt.ads, osint.adb: Implement 3047 extended overflow checks (step 1). 3048 (Overflow_Check_Type, Suppress_Record, Suppress_All): New types. 3049 (Suppress_Array): Extended to include switches to control extended 3050 overflow checking (and renamed to Suppress_Record). 3051 Update all uses of Suppress_Array. 3052 30532012-08-06 Thomas Quinot <quinot@adacore.com> 3054 3055 * makeutl.ads: Minor documentation fix. 3056 30572012-08-06 Thomas Quinot <quinot@adacore.com> 3058 3059 * exp_ch7.adb: Minor reformatting. 3060 30612012-08-06 Geert Bosch <bosch@adacore.com> 3062 3063 * a-ngelfu.adb: Change obsolete comment that this is a non-strict 3064 implementation. 3065 30662012-08-06 Steve Baird <baird@adacore.com> 3067 3068 * exp_ch7.adb (Build_Finalizer.Process_Object_Declaration): If 3069 CodePeer_Mode = True then omit exception handlers for finalization calls 3070 30712012-08-06 Robert Dewar <dewar@adacore.com> 3072 3073 * exp_aggr.adb: Minor reformatting. 3074 30752012-08-06 Robert Dewar <dewar@adacore.com> 3076 3077 * sem_ch6.adb: Remove useless flag Body_Deleted. 3078 30792012-08-06 Thomas Quinot <quinot@adacore.com> 3080 3081 * sinfo.ads (End_Span): Change default from No_Uint to Uint_0, 3082 as this is what all usage occurrences of this attribute are 3083 expecting. 3084 * uintp.adb (UI_To_Int): Add assertion to guard against calling 3085 with No_Uint. 3086 30872012-08-06 Vincent Pucci <pucci@adacore.com> 3088 3089 PR ada/54125 3090 * exp_attr.adb (Expand_N_Attribute_Reference): Expand new 3091 Atomic_Always_Lock_Free attribute. 3092 * sem_attr.adb (Analyze_Attribute): Analyze new 3093 Atomic_Always_Lock_Free attribute. 3094 (Eval_Attribute): Nothing to do with new Atomic_Always_Lock_Free 3095 attribute. 3096 * sem_ch9.adb (Allows_Lock_Free_Implementation): 3097 Support_Atomic_Primitives check replaces previous erroneous 3098 size check. 3099 * sem_util.adb, sem_util.ads (Support_Atomic_Primitives): 3100 New routine. 3101 * snames.ads-tmpl: New name Name_Atomic_Always_Lock_Free and 3102 new attribute Attribute_Atomic_Always_Lock_Free defined. 3103 * s-atopri.adb: Support_Atomic_Primitives checks replaced by 3104 Atomic_Always_Lock_Free queries. 3105 * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads, 3106 system-hpux.ads, system-linux-alpha.ads, system-linux-hppa.ads, 3107 system-linux-ppc.ads, system-linux-s390.ads, 3108 system-linux-s390x.ads, system-linux-sh4.ads, 3109 system-linux-sparc.ads, system-lynxos178-ppc.ads, 3110 system-lynxos-ppc.ads, system-mingw.ads, 3111 system-vxworks-arm.ads, system-solaris-sparc.ads, 3112 system-solaris-sparcv9.ads, system-vms_64.ads, 3113 system-vxworks-m68k.ads, system-vxworks-mips.ads, 3114 system-vxworks-ppc.ads, system-vxworks-sparcv9.ads: Flag 3115 Support_Atomic_Primitives removed. 3116 31172012-08-06 Hristian Kirtchev <kirtchev@adacore.com> 3118 3119 * sem_mech.adb (Set_Mechanisms): OUT and IN OUT parameters are 3120 now unconditionally passed by reference. IN parameters subject 3121 to convention C_Pass_By_Copy are passed by copy, otherwise they 3122 are passed by reference. 3123 31242012-08-06 Ed Schonberg <schonberg@adacore.com> 3125 3126 * sem_ch3.adb (Analyze_Object_Declaration): According to 3127 AI95-0303, protected objects with interrupt handlers can be 3128 declared in nested scopes. This is a binding interpretation, 3129 and thus applies to all versions of the compiler. 3130 31312012-08-06 Robert Dewar <dewar@adacore.com> 3132 3133 * frontend.adb, exp_aggr.adb: Minor reformatting. 3134 31352012-08-06 Thomas Quinot <quinot@adacore.com> 3136 3137 * par-endh.adb: Minor reformatting. 3138 31392012-08-06 Hristian Kirtchev <kirtchev@adacore.com> 3140 3141 * exp_ch7.adb (Process_Transient_Objects): Remove obsolete loop 3142 processing related to array initialization. The expansion of 3143 loops already contains a mechanism to detect controlled objects 3144 generated by expansion and introduce a block around the loop 3145 statements for finalization purposes. 3146 31472012-08-06 Vincent Pucci <pucci@adacore.com> 3148 3149 * sem_ch13.adb: Current scope must be within 3150 or same as the scope of the entity while analysing aspect 3151 specifications at freeze point. 3152 31532012-08-06 Thomas Quinot <quinot@adacore.com> 3154 3155 * par_sco.adb: Add note about dubious SCO for TERMINATE 3156 alternative. 3157 * sem_ch8.adb, exp_ch11.adb: Minor reformatting. 3158 31592012-08-06 Ed Schonberg <schonberg@adacore.com> 3160 3161 * exp_aggr.adb (Two_Dim_Packed_Array_Handled): New procedure to 3162 transform an aggregate for a packed two-dimensional array into 3163 a one-dimensional array of constant values, in order to avoid 3164 the generation of component-by-component assignments. 3165 31662012-08-06 Thomas Quinot <quinot@adacore.com> 3167 3168 * frontend.adb: Do not attempt to process deferred configuration 3169 pragmas if the main unit failed to load, to avoid cascaded 3170 inconsistencies that can lead to a compiler crash. 3171 31722012-08-06 Vincent Pucci <pucci@adacore.com> 3173 3174 * s-atopri.adb: Minor reformatting. 3175 31762012-08-06 Arnaud Charlet <charlet@adacore.com> 3177 3178 * gnat-style.texi: Clarify that all subprograms should be 3179 documented. Minor rewording. 3180 31812012-08-06 Robert Dewar <dewar@adacore.com> 3182 3183 * aspects.ads: Define Aspect_Id_Exclude_No_Aspect. 3184 * par-ch13.adb, restrict.adb: Use Aspect_Id_Exclude_No_Aspect to 3185 simplify code. 3186 31872012-08-06 Yannick Moy <moy@adacore.com> 3188 3189 * gnat-style.texi: Update style guide for declarations. 3190 31912012-08-06 Yannick Moy <moy@adacore.com> 3192 3193 * sem_attr.adb (Analyze_Attribute): In the case for 'Old, 3194 skip a special expansion which is not needed in Alfa mode. 3195 31962012-08-06 Yannick Moy <moy@adacore.com> 3197 3198 * sem_ch5.adb (Analyze_Iterator_Specification): Do not perform 3199 an expansion of the iterator in Alfa mode. 3200 32012012-08-06 Robert Dewar <dewar@adacore.com> 3202 3203 * s-oscons-tmplt.c, sem_ch9.adb, osint.adb: Minor reformatting. 3204 32052012-08-06 Hristian Kirtchev <kirtchev@adacore.com> 3206 3207 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Remove obsolete 3208 Alfa-specific guard. The code is a leftover from an early 3209 implementation of iterators which is no longer in use. 3210 32112012-08-06 Vincent Celier <celier@adacore.com> 3212 3213 * par-ch13.adb (Get_Aspect_Specifications): Do not consider 3214 No_Aspect when checking for a mispelled aspect. 3215 32162012-08-06 Robert Dewar <dewar@adacore.com> 3217 3218 * s-htable.adb: Minor reformatting. 3219 32202012-08-06 Thomas Quinot <quinot@adacore.com> 3221 3222 * s-oscons-tmplt.c, g-socket.adb (System.OS_Constants.Target_OS): 3223 Suppress warnings so that we don't have to do it at each usage. 3224 32252012-08-06 Vincent Pucci <pucci@adacore.com> 3226 3227 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): 3228 Use of Known_Static_Esize instead of Known_Esize and 3229 Known_Static_RM_Size instead of Known_RM_Size in order to 3230 properly call UI_To_Int. Don't check the size of the component 3231 type in case of generic. 3232 * sem_ch9.adb (Allows_Lock_Free_Implementation): 3233 Use of Known_Static_Esize instead of Known_Esize and 3234 Known_Static_RM_Size instead of Known_RM_Size in order to properly 3235 call UI_To_Int. Don't check the size of the component type in 3236 case of generic. 3237 32382012-08-06 Hristian Kirtchev <kirtchev@adacore.com> 3239 3240 * checks.adb (Discrete_Range_Cond): Do not try to optimize on 3241 the assumption that the type of an expression can always fit in 3242 the target type of a conversion. 3243 32442012-07-30 Robert Dewar <dewar@adacore.com> 3245 3246 * bindusg.adb: Clarify file in -A lines. 3247 32482012-07-30 Robert Dewar <dewar@adacore.com> 3249 3250 * freeze.adb: Minor reformatting. 3251 32522012-07-30 Robert Dewar <dewar@adacore.com> 3253 3254 * gnatcmd.adb, makeutl.adb, makeutl.ads: Minor code reorganization. 3255 32562012-07-30 Vincent Pucci <pucci@adacore.com> 3257 3258 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): Minor 3259 reformatting. 3260 * sem_ch9.adb (Allows_Lock_Free_Implementation): Minor reformatting. 3261 Capture the correct error message in case of a quantified expression. 3262 32632012-07-30 Thomas Quinot <quinot@adacore.com> 3264 3265 * g-socket.adb (Get_Socket_Option, Set_Socket_Option): On Windows, the 3266 value is a milliseconds count in a DWORD, not a struct timeval. 3267 32682012-07-30 Hristian Kirtchev <kirtchev@adacore.com> 3269 3270 * sem_ch12.adb (Earlier): Add local variables T1 and T2. Minor code 3271 refactoring. 3272 32732012-07-30 Thomas Quinot <quinot@adacore.com> 3274 3275 * gnatcmd.adb, make.adb, makeutl.adb, makeutl.ads 3276 (Test_If_Relative_Path): Rename to Ensure_Absolute_Path to better 3277 reflect what this subprogram does. Rename argument Including_L_Switch 3278 to For_Gnatbind, and also exempt -A from rewriting. 3279 * bindusg.adb: Document optional =file argument to gnatbind -A. 3280 32812012-07-30 Ed Schonberg <schonberg@adacore.com> 3282 3283 * freeze.adb (Freeze_Entity): Do no apply restriction check on 3284 storage pools to access to subprogram types. 3285 32862012-07-30 Robert Dewar <dewar@adacore.com> 3287 3288 * par_sco.adb, a-cihama.adb, a-coinve.adb, exp_ch7.adb, a-ciorse.adb, 3289 exp_ch9.adb, sem_dim.adb, par-ch13.adb, sem_ch9.adb, a-cidlli.adb, 3290 a-cimutr.adb, freeze.adb, a-ciormu.adb, sem_res.adb, sem_attr.adb, 3291 a-cihase.adb, exp_ch4.adb, sem_ch4.adb, a-ciorma.adb, 3292 s-tasinf-linux.ads, sem_ch13.adb, a-coinho.adb: Minor reformatting. 3293 Add comments. 3294 32952012-07-30 Vincent Pucci <pucci@adacore.com> 3296 3297 * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict implicit 3298 dereferences of access values. 3299 33002012-07-27 Iain Sandoe <iain@codesourcery.com> 3301 3302 * system-darwin-ppc64.ads: Add Support_Atomic_Primitives, set to True. 3303 33042012-07-25 Eric Botcazou <ebotcazou@adacore.com> 3305 3306 * gcc-interface/utils2.c (gnat_stabilize_reference) <BIT_FIELD_REF>: Do 3307 not stabilize operand #1 and #2. 3308 33092012-07-23 Tristan Gingold <gingold@adacore.com> 3310 3311 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): Use 3312 End_Label sloc when possible for sloc of the TRY_CATCH_EXPR node. 3313 33142012-07-23 Olivier Hainque <hainque@adacore.com> 3315 3316 * gcc-interface/Makefile.in: Adjust processing of Linker_Options for 3317 VxWorks. 3318 * gcc-interface/Make-lang.in: Update dependencies. 3319 33202012-07-23 Arnaud Charlet <charlet@adacore.com> 3321 3322 * s-tasinf-linux.ads: Fix typo. 3323 33242012-07-23 Thomas Quinot <quinot@adacore.com> 3325 3326 * exp_ch7.adb, switch-m.adb, exp_ch3.adb, freeze.adb: Minor reformatting 3327 33282012-07-23 Ed Schonberg <schonberg@adacore.com> 3329 3330 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): If original 3331 loop carries an identifier, preserve it when rewriting it as a 3332 standard loop to validate exit statements that may reference 3333 that name in the body of the loop. 3334 33352012-07-23 Thomas Quinot <quinot@adacore.com> 3336 3337 * exp_ch9.adb: Minor code cleanup. 3338 33392012-07-23 Ed Schonberg <schonberg@adacore.com> 3340 3341 * sem_ch4.adb (Analyze_Selected_Component): When checking for 3342 potential ambiguities with class-wide operations on synchronized 3343 types, attach the copied node properly to the tree, to prevent 3344 errors during expansion. 3345 33462012-07-23 Yannick Moy <moy@adacore.com> 3347 3348 * sem_ch5.adb (Analyze_Loop_Statement): Make sure the loop body 3349 is analyzed in Alfa mode. 3350 33512012-07-23 Ed Schonberg <schonberg@adacore.com> 3352 3353 * sem_res.adb: Adjust previous change. 3354 33552012-07-23 Vincent Pucci <pucci@adacore.com> 3356 3357 * sem_ch9.adb (Allows_Lock_Free_Implementation): Flag 3358 Lock_Free_Given renames previous flag Complain. Description 3359 updated. Henceforth, catch every error messages issued by this 3360 routine when Lock_Free_Given is True. Declaration restriction 3361 updated: No non-elementary parameter instead (even in parameter) 3362 New subprogram body restrictions implemented: No allocator, 3363 no address, import or export rep items, no delay statement, 3364 no goto statement, no quantified expression and no dereference 3365 of access value. 3366 33672012-07-23 Hristian Kirtchev <kirtchev@adacore.com> 3368 3369 * checks.adb (Determine_Range): Add local variable Btyp. Handle 3370 the case where the base type of an enumeration subtype is 3371 private. Replace all occurrences of Base_Type with Btyp. 3372 * exp_attr.adb (Attribute_Valid): Handle the case where the 3373 base type of an enumeration subtype is private. Replace all 3374 occurrences of Base_Type with Btyp. 3375 * sem_util.adb (Get_Enum_Lit_From_Pos): Add local variable 3376 Btyp. Handle the case where the base type of an enumeration 3377 subtype is private. Replace all occurrences of Base_Type with 3378 Btyp. 3379 33802012-07-23 Ed Schonberg <schonberg@adacore.com> 3381 3382 * par-ch6.adb (P_Mode): in Ada 2005, a mode indicator can apply 3383 to a formal object of an anonymous access type. 3384 33852012-07-23 Ed Schonberg <schonberg@adacore.com> 3386 3387 * sem_ch4.adb (Try_Container_Indexing): A user-defined indexing 3388 aspect can have more than one index, e.g. to describe indexing 3389 of a multidimensional object. 3390 33912012-07-23 Hristian Kirtchev <kirtchev@adacore.com> 3392 3393 * exp_ch4.adb (Apply_Accessibility_Check): Reimplemented. The check is 3394 now more complex and contains optional finalization part and mandatory 3395 deallocation part. 3396 33972012-07-23 Gary Dismukes <dismukes@adacore.com> 3398 3399 * a-cihama.adb, a-cihase.adb, a-cimutr.adb, a-ciorma.adb, a-ciormu.adb, 3400 a-ciorse.adb, a-coinho.adb, a-coinve.adb, a-cidlli.adb: Unsuppress 3401 Accessibility_Check for Element_Type allocators. 3402 34032012-07-23 Vasiliy Fofanov <fofanov@adacore.com> 3404 3405 * projects.texi: Fix typo. 3406 34072012-07-23 Ed Schonberg <schonberg@adacore.com> 3408 3409 * sem_res.adb (Resolve_Explicit_Derenference): If prefix is 3410 overloaded, remove those interpretations whose designated type 3411 does not match the context, to avoid spurious ambiguities that 3412 may be caused by the Ada 2012 conversion rule for anonymous 3413 access types. 3414 34152012-07-23 Vincent Celier <celier@adacore.com> 3416 3417 * g-spitbo.adb (Substr (String)): Return full string and do not 3418 raise exception when Start is 1 and Len is exactly the length 3419 of the string parameter. 3420 * g-spitbo.ads: Fix spelling error in the name of exception 3421 Index_Error. 3422 34232012-07-23 Ed Schonberg <schonberg@adacore.com> 3424 3425 * par.adb: new subprogram Get_Aspect_Specifications. 3426 * par-ch6.adb (P_Subprogram): handle subprogram bodies with aspect 3427 specifications. 3428 * par-ch13.adb (Get_Aspect_Specifications): extracted from 3429 P_Aspect_Specifications. Collect aspect specifications in some 3430 legal context, but do not attach them to any declaration. Used 3431 when parsing subprogram declarations or bodies that include 3432 aspect specifications. 3433 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If aspects are 3434 present, analyze them, or reject them if the subprogram as a 3435 previous spec. 3436 34372012-07-23 Vasiliy Fofanov <fofanov@adacore.com> 3438 3439 * gnat_ugn.texi: Omit section on other platforms/runtimes support 3440 in gnattest for vms version. 3441 34422012-07-23 Ed Schonberg <schonberg@adacore.com> 3443 3444 * sem_ch13.adb (Analyze_Aspect_Specifications): 3445 Handle properly aspects that can be specified on a subprogram 3446 body: CPU, Priority, and Interrupt_Priority. 3447 34482012-07-23 Claire Dross <dross@adacore.com> 3449 3450 * a-cfdlli.ads: Switch definition of Constant_Reference_Type 3451 and Empty_List. 3452 34532012-07-23 Thomas Quinot <quinot@adacore.com> 3454 3455 * par_sco.adb (Process_Decisions.Output_Header): For the guard 3456 on an alternative in a SELECT statement, use the First_Sloc 3457 of the guard expression (not its topmost sloc) as the decision 3458 location, because this is what is referenced by dominance markers. 3459 34602012-07-23 Hristian Kirtchev <kirtchev@adacore.com> 3461 3462 * exp_ch7.adb (Requires_Hooking): Examine the original expression 3463 of an object declaration node because a function call that 3464 returns on the secondary stack may have been rewritten into 3465 something else. 3466 34672012-07-23 Vincent Pucci <pucci@adacore.com> 3468 3469 * sem_dim.adb (Analyze_Dimension_Has_Etype): For identifier, propagate 3470 dimension when entity is a non-dimensionless constant. 3471 (Analyze_Dimension_Object_Declaration): Propagate 3472 dimension from the expression to the entity when type is a 3473 dimensioned type and object is a constant. 3474 34752012-07-23 Ed Schonberg <schonberg@adacore.com> 3476 3477 * sem_attr.adb (Analyze_Attribute, case 'Old): if the prefix 3478 is not an entity name, expand at once so that code generated by 3479 the expansion of the prefix is not generated before the constant 3480 that captures the old value is properly inserted and analyzed. 3481 34822012-07-23 Thomas Quinot <quinot@adacore.com> 3483 3484 * exp_ch9.adb (Ensure_Statement_Present): Mark generated NULL 3485 statement as Comes_From_Source so that GIGI does not eliminate it. 3486 34872012-07-23 Hristian Kirtchev <kirtchev@adacore.com> 3488 3489 * sem_ch12.adb (Insert_Freeze_Node_For_Instance): Inst is now 3490 a local variable. Retrieve the related instance when processing 3491 a subprogram instantiation. Such instances appear as wrapper 3492 packages. 3493 34942012-07-23 Vincent Pucci <pucci@adacore.com> 3495 3496 * system-aix64.ads, system-aix.ads, system-darwin-ppc.ads, 3497 system-hpux.ads, system-linux-alpha.ads, 3498 system-linux-hppa.ads, system-linux-ppc.ads, 3499 system-linux-s390.ads, system-linux-s390x.ads, 3500 system-linux-sh4.ads, system-linux-sparc.ads, 3501 system-lynxos-ppc.ads, system-mingw.ads, 3502 system-solaris-sparc.ads, system-solaris-sparcv9.ads, 3503 system-vms_64.ads, * system-vxworks-arm.ads, system-vxworks-m68k.ads, 3504 system-vxworks-mips.ads, system-vxworks-ppc.ads, 3505 system-vxworks-sparcv9.ads: Support_Atomic_Primitives set to False. 3506 * system-darwin-x86.ads, system-darwin-x86_64.ads, 3507 system-freebsd-x86.ads, system-freebsd-x86_64.ads, 3508 system-hpux-ia64.ads, system-linux-ia64.ads, system-linux-x86.ads, 3509 system-linux-x86_64.ads, system-lynxos-x86.ads, 3510 system-mingw-x86_64.ads, system-solaris-x86.ads, 3511 system-solaris-x86_64.ads, system-vms-ia64.ads, 3512 system-vxworks-x86.ads: Support_Atomic_Primitives set to True. 3513 * s-atopri.adb (Lock_Free_Read_X): New body. 3514 (Lock_Free_Try_Write_X): Support_Atomic_Primitives check added. 3515 (Lock_Free_Try_Write_64): New body. 3516 * s-atopri.ads: New type uint. 3517 (Sync_Compare_And_Swap_64): __sync_val_compare_and_swap_8 intrinsic 3518 import. 3519 (Lock_Free_Read_X): Body moved to s-atopri.adb. 3520 (Lock_Free_Try_Write_64): Similar to other Lock_Free_Try_Write_X 3521 routines. 3522 * targparm.adb: New enumeration literal SAP 3523 (Support_Atomic_Primitives) for type Targparm_Tags. New constant 3524 SAP_Str. New component SAP_Str'Access for array Targparm_Str. 3525 (Get_Target_Parameters): Parse Support_Atomic_Primitives_On_Target 3526 flag. 3527 * targparm.ads: New back-end code generation flag 3528 Support_Atomic_Primitives_On_Target 3529 35302012-07-23 Vincent Pucci <pucci@adacore.com> 3531 3532 * gnat_ugn.texi: Dimensionality checking documentation updated. 3533 35342012-07-23 Ed Schonberg <schonberg@adacore.com> 3535 3536 * sem_prag.adb (Make_Inline): If the pragma applies to a 3537 subprogram renaming, set inline flags on both the renamed entity 3538 and on the renaming, so that some ASIS queries can be handled 3539 consistently in the absence of expansion. 3540 35412012-07-23 Fedor Rybin <frybin@adacore.com> 3542 3543 * gnat_ugn.texi: Removing obsolete limitation of gnattest 3544 to support only ada05. Updating gnattest support for other 3545 platforms/run-times section to reflect the usage of taget 3546 prefix in gnattest calls. Fixing missed obsolete --stub-default 3547 option name. 3548 35492012-07-23 Robert Dewar <dewar@adacore.com> 3550 3551 * uintp.adb: Minor reformatting. 3552 35532012-07-23 Olivier Hainque <hainque@adacore.com> 3554 3555 * system-vxworks-ppc.ads: Replace the default 3556 Linker_Options requesting crtbe by a commented out request for 3557 -nostartfiles. 3558 35592012-07-23 Vincent Celier <celier@adacore.com> 3560 3561 * prj-nmsc.adb (Check_Naming): Do not get the exceptions names 3562 in a virtual project. 3563 35642012-07-23 Robert Dewar <dewar@adacore.com> 3565 3566 * layout.adb, sem_prag.adb, sem.ads, freeze.adb, 3567 switch-m.adb, exp_disp.adb, system-vxworks-ppc.ads, exp_ch6.adb: Minor 3568 reformatting. 3569 35702012-07-23 Tristan Gingold <gingold@adacore.com> 3571 3572 * gcc-interface/trans.c: (Handled_Sequence_Of_Statements_to_gnu): Set 3573 location on TRY_CATCH_EXPR. 3574 35752012-07-19 Eric Botcazou <ebotcazou@adacore.com> 3576 3577 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Try to ensure 3578 that an object of CW type initialized to a value is sufficiently 3579 aligned for this value. 3580 35812012-07-19 Eric Botcazou <ebotcazou@adacore.com> 3582 3583 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Do not 3584 look up the REP part of the base type in advance. Deal with that of 3585 the variant types. 3586 (get_rep_part): Be prepared for record types with fields. 3587 35882012-07-18 Eric Botcazou <ebotcazou@adacore.com> 3589 3590 * gcc-interface/trans.c (stmt_group_may_fallthru): New function. 3591 (gnat_to_gnu) <N_Block_Statement>: Use it to find out whether the 3592 block needs to be translated. 3593 35942012-07-17 Tristan Gingold <gingold@adacore.com> 3595 3596 * gnat_rm.texi: Adjust previous change. 3597 35982012-07-17 Ed Schonberg <schonberg@adacore.com> 3599 3600 * sem_prag.adb (Process_Import_Or_Interface): If the pragma 3601 comes from an aspect, it applies to the corresponding entity 3602 without further check. 3603 36042012-07-17 Olivier Hainque <hainque@adacore.com> 3605 3606 * initialize.c (__gnat_initialize for VxWorks): Remove section with 3607 call to __gnat_vxw_setup_for_eh. 3608 * system-vxworks-ppc.ads: Add -auto-register to -crtbe, relying 3609 on the VxWorks constructor mechanism for network loaded modules 3610 by default. 3611 36122012-07-17 Tristan Gingold <gingold@adacore.com> 3613 3614 * adaint.c: Minor reformatting. 3615 36162012-07-17 Pascal Obry <obry@adacore.com> 3617 3618 * s-regexp.adb (Adjust): Fix access violation in Adjust. 3619 36202012-07-17 Ed Schonberg <schonberg@adacore.com> 3621 3622 * freeze.adb (Freeze_Entity): Warn if an imported subprogram 3623 has pre/post conditions, because these will not be enforced. 3624 36252012-07-17 Eric Botcazou <ebotcazou@adacore.com> 3626 3627 * exp_ch7.adb (Process_Transient_Objects): Put all the 3628 finalization blocks and the final raise statement into a wrapper 3629 block. 3630 36312012-07-17 Vincent Pucci <pucci@adacore.com> 3632 3633 * s-atopri.adb (Lock_Free_Try_Write_X): Atomic_Compare_Exchange_X 3634 replaced by Sync_Compare_And_Swap_X. 3635 (Lock_Free_Try_Write_64): Removed. 3636 * s-atopri.ads (Sync_Compare_And_Swap_X): Replaces previous 3637 routine Atomic_Compare_Exchange_X. 3638 (Lock_Free_Read_64): Renaming of Atomic_Load_64. 3639 (Lock_Free_Try_Write_64): Renaming of Sync_Compare_And_Swap_64. 3640 36412012-07-17 Vincent Celier <celier@adacore.com> 3642 3643 * switch-m.adb (Normalize_Compiler_Switches): Recognize new 3644 switches -gnatn1 and -gnatn2. 3645 36462012-07-17 Vincent Pucci <pucci@adacore.com> 3647 3648 * gnat_ugn.texi: GNAT dimensionality checking 3649 documentation updated with System.Dim.Mks modifications. 3650 36512012-07-17 Ed Schonberg <schonberg@adacore.com> 3652 3653 * exp_ch3.adb: sloc of array init_proc is sloc of type declaration. 3654 36552012-07-17 Tristan Gingold <gingold@adacore.com> 3656 3657 * raise-gcc.c (get_call_site_action_for): Remove useless init 3658 expression for p. 3659 (get_action_description_for): Do not overwrite action->kind. 3660 36612012-07-17 Hristian Kirtchev <kirtchev@adacore.com> 3662 3663 * exp_attr.adb (Expand_N_Attribute_Reference): Add local variables Attr 3664 and Conversion_Added. Add local constant Typ. 3665 Retrieve the original attribute after the arithmetic check 3666 machinery has modified the node. Add a conversion to the target 3667 type when the prefix of attribute Max_Size_In_Storage_Elements 3668 is a controlled type. 3669 36702012-07-17 Gary Dismukes <dismukes@adacore.com> 3671 3672 * exp_ch6.adb (Expand_Inlined_Call): For each actual parameter 3673 of mode 'out' or 'in out' that denotes an entity, reset 3674 Last_Assignment on the entity so that any assignments to the 3675 corresponding formal in the inlining will not trigger spurious 3676 warnings about overwriting assignments. 3677 36782012-07-17 Robert Dewar <dewar@adacore.com> 3679 3680 * s-assert.ads: Fix comments to make it clear that this is used 3681 for all assertions, not just pragma Assert. 3682 36832012-07-17 Jerome Guitton <guitton@adacore.com> 3684 3685 * par_sco.ads: Minor typo fix. 3686 36872012-07-17 Gary Dismukes <dismukes@adacore.com> 3688 3689 * layout.adb (Layout_Type): In the case where the target is 3690 AAMP, use 32 bits (a single pointer) rather than 64 bits for an 3691 anonymous access-to-subprogram type if the type is library-level 3692 and Is_Local_Anonymous_Access is True. 3693 36942012-07-17 Jose Ruiz <ruiz@adacore.com> 3695 3696 * s-tassta.adb, s-tarest.adb (Create_Task, Create_Restricted_Task, 3697 Initialize): Add comments explaining that the CPU affinity value that 3698 is passed to the run-time library can be either Unspecified_CPU, to 3699 indicate that the task inherits the affinity of its activating task, 3700 or a value in the range of CPU_Range but no greater than Number_Of_CPUs. 3701 37022012-07-17 Javier Miranda <miranda@adacore.com> 3703 3704 * exp_disp.adb (Make_DT): Remove decoration of Ada.Tags entities. 3705 (Make_Tags): Add decoration of Ada.Tags entities. 3706 37072012-07-17 Ed Schonberg <schonberg@adacore.com> 3708 3709 * sem_ch6.adb (Check_Statement_Sequence): When locating the 3710 last significant statement in a sequence, ignore iserted nodes 3711 that typically come from expansion of controlled operations. 3712 37132012-07-17 Tristan Gingold <gingold@adacore.com> 3714 3715 * gnat_rm.texi: Document foreign exceptions. 3716 37172012-07-17 Robert Dewar <dewar@adacore.com> 3718 3719 * sem_prag.adb, treepr.ads: Minor reformatting. 3720 37212012-07-17 Robert Dewar <dewar@adacore.com> 3722 3723 * exp_ch9.adb: Minor code reorganization. 3724 * exp_ch3.adb: Minor code improvement. 3725 37262012-07-17 Tristan Gingold <gingold@adacore.com> 3727 3728 * seh_init.c (__gnat_SEH_error_handler): Not compiled anymore 3729 on Windows 64 (+ SEH), as it is unused. 3730 37312012-07-17 Javier Miranda <miranda@adacore.com> 3732 3733 * sem_prag.adb (CPP_Class): Transform obsolescent pragma CPP_Class into 3734 CPP convention automatically. 3735 37362012-07-16 Tristan Gingold <gingold@adacore.com> 3737 3738 * gcc-interface/decl.c (intrin_return_compatible_p): Map Address to 3739 void *. 3740 37412012-07-16 Thomas Quinot <quinot@adacore.com> 3742 3743 * exp_ch9.adb (Ensure_Statement_Present): New subprogram. 3744 (Expand_N_Asynchronous_Select, 3745 Expand_N_Selective_Accept.Process_Accept_Alternative, 3746 Expand_N_Selective_Accept.Process_Delay_Alternative, 3747 Expand_N_Timed_Entry_Call): For an alternative with no trailing 3748 statements, introduce a null statement to carry the sloc of 3749 the initial special statement (accept, delay, or entry call) 3750 in the alternative, for coverage analysis purposes. 3751 37522012-07-16 Thomas Quinot <quinot@adacore.com> 3753 3754 * sem_eval.adb (In_Subrange_Of): Fix typo in test for scalar 3755 arguments. 3756 37572012-07-16 Robert Dewar <dewar@adacore.com> 3758 3759 * a-exexpr.adb, freeze.adb, a-exexpr-gcc.adb, a-except-2005.adb, 3760 sem_eval.adb, s-fileio.adb: Minor reformatting. 3761 37622012-07-16 Javier Miranda <miranda@adacore.com> 3763 3764 * sem_prag.adb (Analyze_Pragma): Remove support for obsolescent 3765 pragma CPP_Class. 3766 * sem_ch13.adb (Analyze_Freeze_Entity): Add missing error on Ada 3767 derivations of CPP types. Found updating the tests affected by 3768 the removal of pragma CPP_Class. 3769 37702012-07-16 Thomas Quinot <quinot@adacore.com> 3771 3772 * back_end.adb: Minor reformatting. 3773 37742012-07-16 Thomas Quinot <quinot@adacore.com> 3775 3776 * exp_ch9.adb (Expand_N_Selective_Accept.Process_Accept_Alternative): 3777 Remove junk test that was always true. For the case of no statements 3778 following the ACCEPT, jump directly to End_Lab instead of 3779 introducing an intermediate jump. 3780 (Expand_N_Selective_Accept.Process_Delay_Alternative): Fix 3781 predicate testing for presence of statements following the DELAY. 3782 that was always true. For the case of no statements following 3783 the ACCEPT, jump directly to End_Lab instead of introducing an 3784 intermediate jump. 3785 (Expand_N_Selective_Accept): Fix incorrect insertion point for 3786 end label. 3787 37882012-07-16 Thomas Quinot <quinot@adacore.com> 3789 3790 * gnat_rm.texi: Minor documentation improvements. 3791 37922012-07-16 Yannick Moy <moy@adacore.com> 3793 3794 * sem_ch13.adb (Analyze_Aspect_Specifications): Allow Pre 3795 and Pre'Class aspects on the same declaration. 3796 * sem_prag.adb (Chain_PPC): Allow Pre and Pre'Class aspects on the 3797 same hierarchy of primitive operations. 3798 37992012-07-16 Thomas Quinot <quinot@adacore.com> 3800 3801 * freeze.adb (Check_Component_Storage_Order): Do not reject a 3802 nested composite with different scalar storage order if it is 3803 byte aligned. 3804 38052012-07-16 Thomas Quinot <quinot@adacore.com> 3806 3807 * gnat_rm.texi: Update documentation for Scalar_Storage_Order. 3808 38092012-07-16 Tristan Gingold <gingold@adacore.com> 3810 3811 * a-exexpr.adb (Propagate_Exception): Adjust call to 3812 Exception_Traces procedures. 3813 * a-exexpr-gcc.adb (Setup_Current_Excep): Now a 3814 function that returns an access to the Ada occurrence. 3815 (Propagate_GCC_Exception): Adjust calls. 3816 * raise.h (struct Exception_Occurrence): Declare. 3817 * a-exextr.adb: Remove useless pragma. (Notify_Handled_Exception, 3818 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): 3819 Add Excep parameter. 3820 * a-except.adb (Notify_Handled_Exception, 3821 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): 3822 Add Excep parameter. 3823 (Process_Raise_Exception): Adjust calls. 3824 * a-except-2005.adb (Notify_Handled_Exception, 3825 Notify_Unhandled_Exception) (Unhandled_Exception_Terminate): Add 3826 Excep parameter. 3827 (Raise_Exception): Calls Raise_Exception_Always. 3828 * raise-gcc.c (__gnat_setup_current_excep, 3829 __gnat_notify_handled_exception) 3830 (__gnat_notify_unhandled_exception): Adjust declarations. 3831 (PERSONALITY_FUNCTION): Adjust calls. 3832 (__gnat_personality_seh0): Remove warning. 3833 38342012-07-16 Javier Miranda <miranda@adacore.com> 3835 3836 * sem_eval.adb (Test_Expression_Is_Foldable): Adding documentation. 3837 (Eval_Relational_Op): Adding documentation. 3838 38392012-07-16 Robert Dewar <dewar@adacore.com> 3840 3841 * freeze.adb, g-debpoo.adb, exp_ch3.adb: Minor reformatting. 3842 38432012-07-16 Thomas Quinot <quinot@adacore.com> 3844 3845 * s-oscons-tmplt.c: Add definitions of E2BIG and EILSEQ. 3846 38472012-07-16 Tristan Gingold <gingold@adacore.com> 3848 3849 * a-exexpr.adb (Propagate_Continue): New function replacing 3850 Raise_Current_Excep. 3851 (Allocate_Occurrence): New function. 3852 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain. 3853 * a-exexpr-gcc.adb (GNAT_GCC_Exception): Occurrence component 3854 is now aliased. 3855 (To_GCC_Exception): Convert from Address. 3856 (Allocate_Occurrence): Allocate an Unwind exception occurrence. 3857 (Setup_Current_Excep): Fill the machine occurrence in case of 3858 foreign exception. 3859 (Propagate_Exception): Add Excep parameter, remove call to Call_Chain. 3860 * a-except.adb (Set_Exception_C_Msg, Set_Exception_Msg): add 3861 Excep parameter. 3862 (Raise_Exception, Raise_Exception_Always, 3863 Raise_Exception_No_Defer): Adjust calls to the above procedures. 3864 (Raise_From_Signal_Handler, Raise_With_Location_And_Msg) 3865 (Rcheck_PE_Finalize_Raised_Exception): Likewise. 3866 * a-except-2005.adb (Set_Exception_C_Msg, Set_Exception_Msg): 3867 add Excep parameter. 3868 (Propagate_Exception): Likewise. 3869 (Allocate_Occurrence): New function. 3870 (Raise_Current_Excep): Removed. 3871 (Complete_Occurrence): New function to save the call chain. 3872 (Complete_And_Propagate_Occurrence): New procedure. 3873 (Create_Occurrence_From_Signal_Handler): New function to build an 3874 occurrence without propagating it. 3875 (Create_Machine_Occurrence_From_Signal_Handler): Likewise, but 3876 return the machine occurrence. 3877 (Raise_From_Signal_Handler): Use Create_Occurrence_From_Signal_Handler. 3878 (Raise_Exception, Raise_Exception_Always, Raise_Exception_No_Defer): 3879 Adjust calls to the above procedures. Allocate the occurrence at 3880 the beginning. 3881 (Raise_With_Location_And_Msg, Raise_With_Msg) 3882 (Rcheck_PE_Finalize_Raised_Exceptionm Reraise): Likewise. 3883 (Reraise_Occurrence): Use Reraise_Occurrence_Always. 3884 (Reraise_Occurrence_Always): Use Reraise_Occurrence_No_Defer. 3885 (Reraise_Occurrence_No_Defer): Preserve machine occurrence. 3886 (Save_Occurrence): Do not save machine occurrence. 3887 * a-except-2005.ads (Exception_Occurrence): Add Machine_Occurrence 3888 component. 3889 (Null_Occurrence): Consider it. 3890 * a-exexda.adb (Set_Exception_C_Msg, Set_Exception_Msg): add 3891 Excep parameter. 3892 38932012-07-16 Tristan Gingold <gingold@adacore.com> 3894 3895 * seh_init.c (__gnat_map_SEH): New function extracted from 3896 __gnat_SEH_error_handler. 3897 * raise-gcc.c: __gnat_personality_seh0: Directly transforms 3898 Windows system exception into GCC one when possible, in order 3899 to save stack room (particularly useful when Storage_Error will 3900 be propagated). 3901 39022012-07-16 Robert Dewar <dewar@adacore.com> 3903 3904 * a-direct.adb, g-dirope.adb: Minor reformatting. 3905 39062012-07-16 Tristan Gingold <gingold@adacore.com> 3907 3908 * a-except.ads, a-except-2005.ads: Remove outdated comment. 3909 39102012-07-16 Robert Dewar <dewar@adacore.com> 3911 3912 * sem_ch6.adb (Subprogram_Name_Greater): Fix algorithm to 3913 conform to documentation. 3914 39152012-07-16 Ed Schonberg <schonberg@adacore.com> 3916 3917 * gnat1drv.adb (Check_Library_Items): Removed, no longer used. 3918 39192012-07-16 Ed Schonberg <schonberg@adacore.com> 3920 3921 * sem_ch3.adb (Array_Type_Declaration): if component type has 3922 invariants, the array type itself requires an invariant procedure. 3923 * exp_ch3.ads, exp_ch3.adb (Build_Array_Invariant_Proc): new 3924 procedure, to build a checking procedure that applies the 3925 invariant check on some type T to each component of an array 3926 of T's. Code is similar to the construction of the init_proc 3927 for an array, and handles multidimensional arrays by recursing 3928 over successive dimensions. 3929 39302012-07-16 Hristian Kirtchev <kirtchev@adacore.com> 3931 3932 * g-debpoo.adb: Revert previous change. 3933 39342012-07-16 Hristian Kirtchev <kirtchev@adacore.com> 3935 3936 * freeze.adb (Freeze_Entity): Insert the itype reference to a 3937 library-level class-wide subtype after the freeze node of the 3938 equivalent record type. 3939 39402012-07-16 Pascal Obry <obry@adacore.com> 3941 3942 * s-crtl.ads (mkdir): New routine, support encoding. 3943 * adaint.h (__gnat_mkdir): Update spec to pass encoding. 3944 * mkdir.c (__gnat_mkdir): Add encoding parameter. 3945 * a-direct.adb (Create_Directory): Use CRTL.mkdir, parse encoding 3946 in form parameter. 3947 * g-dirope.adb (Make_Dir): Update to pass encoding parameter. 3948 39492012-07-16 Pascal Obry <obry@adacore.com> 3950 3951 * adaint.c: Minor reformatting. 3952 39532012-07-16 Steven Bosscher <steven@gcc.gnu.org> 3954 3955 * gcc-interface/utils.c: Include timevar.h. 3956 * Make-lang.in: Fix dependencies. 3957 39582012-07-16 Vasiliy Fofanov <fofanov@adacore.com> 3959 3960 * ug_words, vms_data.ads: Document VMS qualifiers for -gnatn1/2 3961 switches. 3962 39632012-07-16 Bob Duff <duff@adacore.com> 3964 3965 * sinfo.ads: Minor comment fix. 3966 39672012-07-16 Bob Duff <duff@adacore.com> 3968 3969 * sem_elab.adb (Within_Elaborate_All): Walk the with clauses to 3970 find pragmas Elaborate_All that may be found in the transitive 3971 closure of the dependences. 3972 39732012-07-16 Robert Dewar <dewar@adacore.com> 3974 3975 * exp_pakd.adb, freeze.adb, sem_util.adb, vms_data.ads: Minor 3976 reformatting. 3977 39782012-07-12 Vasiliy Fofanov <fofanov@adacore.com> 3979 3980 * vms_data.ads: Add VMS qualifiers for -gnatn1/2 switches. 3981 39822012-07-12 Thomas Quinot <quinot@adacore.com> 3983 3984 * exp_ch5.adb, exp_pakd.adb, rtsfind.ads, freeze.adb, sem_util.adb, 3985 sem_util.ads, exp_aggr.adb 3986 (Exp_Aggr.Packed_Array_Aggregate_Handled): Simplify processing 3987 for reverse storage order aggregate. 3988 (Exp_Pakd.Byte_Swap): New utility routine used by... 3989 (Exp_Pakd.Expand_Bit_Packed_Element_Set, 3990 Expand_Packed_Element_Reference): For the case of a free-standing 3991 packed array with reverse storage order, perform byte swapping. 3992 (Rtsfind): Make new entities RE_Bswap_{16,32,64} available. 3993 (Freeze.Check_Component_Storage_Order): New utility routine 3994 to enforce legality rules for nested composite types whose 3995 enclosing composite has an explicitly defined Scalar_Storage_Order 3996 attribute. 3997 (Sem_Util.In_Reverse_Storage_Order_Object): Renamed from 3998 Sem_Util.In_Reverse_Storage_Order_Record, as SSO now applies to 3999 array types as well. 4000 (Exp_Ch5.Expand_Assign_Array): Remove now unnecessary kludge 4001 for change of scalar storage order in assignments. The Lhs and 4002 Rhs now always have the same scalar storage order. 4003 40042012-07-12 Hristian Kirtchev <kirtchev@adacore.com> 4005 4006 * g-debpoo.adb (Allocate): Add local constant 4007 No_Element. Initialize the allocated memory chunk to No_Element. 4008 40092012-07-12 Ed Schonberg <schonberg@adacore.com> 4010 4011 * sem_ch12.adb (Validate_Derived_Type_Instance): Handle properly 4012 the case of an instance of a child unit where a formal derived 4013 type DT is an extension of a type T declared in a parent unit, 4014 and the actual in the instance of the child is the type T declared 4015 in the parent instance, and that actual is not a derived type. 4016 40172012-07-12 Eric Botcazou <ebotcazou@adacore.com> 4018 Tristan Gingold <gingold@adacore.com> 4019 4020 * system-hpux-ia64.ads: Enable ZCX by default. 4021 * gcc-interface/Makefile.in: Use alternate stack on ia64-hpux. 4022 Change soext to .so. 4023 40242012-07-12 Robert Dewar <dewar@adacore.com> 4025 4026 * s-atopri.adb, s-atopri.ads: Minor reformatting. 4027 40282012-07-12 Robert Dewar <dewar@adacore.com> 4029 4030 * ali.adb: Add circuitry to read new named form of restrictions lines. 4031 * debug.adb: Add doc for new -gnatd.R switch (used positional 4032 notation for output of restrictions data in ali file). 4033 * lib-writ.adb: Implement new named format for restrictions lines. 4034 * lib-writ.ads: Add documentation for new named format for 4035 restrictions in ali files. 4036 * restrict.adb, restrict.ads, sem_prag.adb: Update comments. 4037 * rident.ads: Go back to withing System.Rident 4038 * s-rident.ads: Add extensive comment on dealing with consistency 4039 checking. 4040 40412012-07-12 Thomas Quinot <quinot@adacore.com> 4042 4043 * par_sco.adb, scos.ads: Emit detailed SCOs for SELECT statements. 4044 40452012-07-12 Robert Dewar <dewar@adacore.com> 4046 4047 * sem_disp.adb: Minor reformatting 4048 * s-bytswa.ads: Minor comment update. 4049 40502012-07-12 Vincent Pucci <pucci@adacore.com> 4051 4052 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): 4053 Atomic_Load_N replaced by Lock_Free_Read_N. Atomic_Compare_Exchange_N 4054 replaced by Lock_Free_Try_Write_N. 4055 Renaming of several local variables. For 4056 procedure, Expected_Comp declaration moved to the declaration 4057 list of the procedure. 4058 * rtsfind.ads: RE_Atomic_Compare_Exchange_8, 4059 RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32, 4060 RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8, 4061 RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, 4062 RE_Atomic_Synchronize, RE_Relaxed removed. RE_Lock_Free_Read_8, 4063 RE_Lock_Free_Read_16, RE_Lock_Free_Read_32, RE_Lock_Free_Read_64, 4064 RE_Lock_Free_Try_Write_8, RE_Lock_Free_Try_Write_16, 4065 RE_Lock_Free_Try_Write_32, RE_Lock_Free_Try_Write_64 added. 4066 * s-atopri.adb: New file. 4067 * s-atopri.ads (Atomic_Compare_Exchange_8): Renaming of 4068 parameters. Import primitive __sync_val_compare_and_swap_1. 4069 (Atomic_Compare_Exchange_16): Renaming of parameters. 4070 Import primitive __sync_val_compare_and_swap_2. 4071 (Atomic_Compare_Exchange_32): Renaming of parameters. 4072 Import primitive __sync_val_compare_and_swap_4. 4073 (Atomic_Compare_Exchange_64): Renaming of parameters. Import 4074 primitive __sync_val_compare_and_swap_8. 4075 (Atomic_Load_8): Ptr renames parameter X. 4076 (Atomic_Load_16): Ptr renames parameter X. 4077 (Atomic_Load_32): Ptr renames parameter X. 4078 (Atomic_Load_64): Ptr renames parameter X. 4079 (Lock_Free_Read_8): New routine. 4080 (Lock_Free_Read_16): New routine. 4081 (Lock_Free_Read_32): New routine. 4082 (Lock_Free_Read_64): New routine. 4083 (Lock_Free_Try_Write_8): New routine. 4084 (Lock_Free_Try_Write_16): New routine. 4085 (Lock_Free_Try_Write_32): New routine. 4086 (Lock_Free_Try_Write_64): New routine. 4087 40882012-07-12 Robert Dewar <dewar@adacore.com> 4089 4090 * exp_attr.adb, exp_ch9.adb, sem_ch9.adb, exp_aggr.adb: Minor 4091 reformatting. 4092 40932012-07-12 Vincent Pucci <pucci@adacore.com> 4094 4095 * sem_dim.adb (Analyze_Dimension_Function_Call): Reformatting of error 4096 msgs for elementary functions. 4097 40982012-07-12 Vincent Pucci <pucci@adacore.com> 4099 4100 * sem_attr.adb (Eval_Attribute): Minor reformatting. 4101 41022012-07-12 Pascal Obry <obry@adacore.com> 4103 4104 * prj-nmsc.adb (Check_Library_Attributes): Allow the same library 4105 project in different project tree (different aggregated projects). 4106 41072012-07-12 Thomas Quinot <quinot@adacore.com> 4108 4109 * s-bytswa.adb, g-bytswa.adb, g-bytswa.ads, s-bytswa.ads: Further 4110 reorganization of byte swapping routines. 4111 41122012-07-12 Ed Schonberg <schonberg@adacore.com> 4113 4114 * sem_disp.adb (Check_Dispatching_Context): Refine legality 4115 checks on tagg indeterminate calls to abstract operations, 4116 that appear in the context of other calls. 4117 41182012-07-12 Thomas Quinot <quinot@adacore.com> 4119 4120 * s-bytswa.adb (Swapped2.Bswap16): Remove local function, 4121 no longer needed. 4122 41232012-07-12 Javier Miranda <miranda@adacore.com> 4124 4125 * exp_attr.adb (Expand_N_Attribute_Reference): For 4126 attributes 'access, 'unchecked_access and 'unrestricted_access, 4127 iff the current instance reference is located in a protected 4128 subprogram or entry then rewrite the access attribute to be the 4129 name of the "_object" parameter. 4130 41312012-07-12 Tristan Gingold <gingold@adacore.com> 4132 4133 * raise.h: Revert previous patch: structure is used in init.c 4134 by vms. 4135 41362012-07-12 Vincent Celier <celier@adacore.com> 4137 4138 * make.adb (Binding_Phase): If --subdirs was used, but not 4139 -P, change the working directory to the specified subdirectory 4140 before invoking gnatbind. 4141 (Linking_Phase): If --subdirs was used, but not -P, change the working 4142 directory to the specified subdirectory before invoking gnatlink. 4143 41442012-07-12 Vincent Pucci <pucci@adacore.com> 4145 4146 * exp_ch9.adb (Build_Lock_Free_Unprotected_Subprogram_Body): 4147 For a procedure, instead of replacing each Comp reference by a 4148 reference to Current_Comp, make a renaming Comp of Current_Comp 4149 that rewrites the original renaming generated by the compiler 4150 during the analysis. Move the declarations of the procedure 4151 inside the generated block. 4152 (Process_Stmts): Moved in the body 4153 of Build_Lock_Free_Unprotected_Subprogram_Body. 4154 (Process_Node): 4155 Moved in the body of Build_Lock_Free_Unprotected_Subprogram_Body. 4156 * sem_ch9.adb (Allows_Lock_Free_Implementation): Restrict any 4157 non-elementary out parameters in protected procedures. 4158 41592012-07-12 Thomas Quinot <quinot@adacore.com> 4160 4161 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 4162 Scalar_Storage_Order): Attribute applies to base type only. 4163 41642012-07-12 Ed Schonberg <schonberg@adacore.com> 4165 4166 * exp_aggr.adb (Convert_To_Positional): Increase acceptable size 4167 of static aggregate when Static_Elaboration_Desired is requested. 4168 Add a warning if the request cannot be satisfied either because 4169 some components or some array bounds are non-static. 4170 41712012-07-12 Thomas Quinot <quinot@adacore.com> 4172 4173 * exp_pakd.adb: Minor reformatting. 4174 41752012-07-12 Tristan Gingold <gingold@adacore.com> 4176 4177 * tracebak.c: Fix warnings. 4178 * raise-gcc.c (__gnat_adjust_context): New function 4179 (__gnat_personality_seh0): Call __gnat_adjust_context to adjust 4180 PC in machine frame for exceptions that occur in the current 4181 function. 4182 41832012-07-12 Thomas Quinot <quinot@adacore.com> 4184 4185 * g-bytswa.adb, g-bytswa.ads, s-bytswa.adb, s-bytswa.ads, Makefile.rtl: 4186 Move GNAT.Byte_Swapping to System (with a renaming under GNAT) 4187 so that it is usable in expanded code. 4188 41892012-07-12 Tristan Gingold <gingold@adacore.com> 4190 4191 * s-osinte-hpux.ads: Increase alternate stack size on hpux. 4192 41932012-07-12 Javier Miranda <miranda@adacore.com> 4194 4195 * exp_ch3.adb (Make_Neq_Body): Fix typo in comment. 4196 41972012-07-12 Eric Botcazou <ebotcazou@adacore.com> 4198 4199 * tb-gcc.c (trace_callback): On IA-64/HP-UX, use workaround only 4200 if USE_LIBUNWIND_EXCEPTIONS is defined. 4201 * init.c: Further tweaks for IA-64/HP-UX. 4202 42032012-07-12 Tristan Gingold <gingold@adacore.com> 4204 4205 * raise-gcc.c: Do not include unwind-dw2-fde.h. Adjust comments. 4206 (db_region_for): Second argument is ip. Do not recompute ip. 4207 (action_kind): Remove typedef, add unhandler enum const. 4208 (action_descriptor): Adjust type of kind field. 4209 (db_action_for): Second argument is ip, do not recompute it. 4210 (get_call_site_action_for): First argument is call_site, do not 4211 recompute it. Remove useless return. 4212 (is_handled_by): Now return enum action_kind. 4213 Handle GNAT_ALL_OTHERS first. 4214 Return unhandler for GNAT_UNHANDLED_OTHERS. 4215 (get_action_description_for): First argument is now ip, do not 4216 recompute it. Adjust code for call to is_handled_by. 4217 (__gnat_notify_unhandled_exception): Add prototype. 4218 (PERSONALITY_FUNCTION): Call get_ip_from_context. Adjust calls. 4219 Handle unhandler case. 4220 (__gnat_cleanupunwind_handler): Add comments, add 4221 ATTRIBUTE_UNUSED on arguments. 4222 (__gnat_Unwind_RaiseException, __gnat_Unwind_ForcedUnwind): Define 4223 only once. 4224 * raise.h: Makes struct Exception_Data opaque. 4225 42262012-07-12 Robert Dewar <dewar@adacore.com> 4227 4228 * make.adb, sem_ch9.adb, prj.adb, s-rident.ads, snames.ads-tmpl: Minor 4229 reformatting. 4230 42312012-07-12 Javier Miranda <miranda@adacore.com> 4232 4233 * exp_ch3.adb (Is_User_Defined_Equality): New subprogram. 4234 (Make_Neq_Body): New subprogram. 4235 (Make_Predefined_Primitive_Specs): Adding local variable 4236 Has_Predef_Eq_ Renaming to ensure that we enable the machinery 4237 which handles renamings of predefined primitive operators. 4238 42392012-07-09 Pascal Obry <obry@adacore.com> 4240 4241 * prj.adb (For_Every_Project_Imported_Context): Make sure we 4242 callback with the project having sources. 4243 Minor reformatting. 4244 42452012-07-09 Eric Botcazou <ebotcazou@adacore.com> 4246 4247 * make.adb: Fix typo. 4248 42492012-07-09 Vincent Pucci <pucci@adacore.com> 4250 4251 * sem_ch9.adb (Check_Node): Allow attributes 4252 that denote static function for lock-free implementation. 4253 (Is_Static_Function): New routine. 4254 42552012-07-09 Tristan Gingold <gingold@adacore.com> 4256 4257 * tracebak.c: Adjust skip_frames on Win64. 4258 42592012-07-09 Tristan Gingold <gingold@adacore.com> 4260 4261 * init.c: Add __gnat_adjust_context_for_raise for ia64/hpux. 4262 * raise-gcc.c: __gnat_cleanupunwind_handler: Do not call 4263 _Unwind_GetGR on hpux when using libgcc unwinder. Part of 4264 42652012-07-09 Vincent Pucci <pucci@adacore.com> 4266 4267 * exp_attr.adb, sem_attr.adb: Minor reformatting. 4268 * par-ch13.adb, par-ch4.adb, par-util.adb: Reformatting 4269 considering that internal attribute names are not defined anymore 4270 in the main attribute names list. 4271 * snames.adb-tmpl (Get_Attribute_Id): Special processinf 4272 for names CPU, Dispatching_Domain and Interrupt_Priority. 4273 (Is_Internal_Attribute_Name): Minor reformatting. 4274 * snames.ads-tmpl: New list of internal attribute names. Internal 4275 attributes moved at the end of the attribute Id list. 4276 42772012-07-09 Robert Dewar <dewar@adacore.com> 4278 4279 * freeze.adb: Minor code reorganization (use Ekind_In). 4280 * exp_attr.adb, sem_ch9.adb par-ch4.adb, s-taprop-mingw.adb, 4281 sem_attr.adb, exp_ch8.adb, snames.adb-tmpl, par-util.adb, 4282 sem_ch13.adb, snames.ads-tmpl: Minor reformatting. 4283 42842012-07-09 Tristan Gingold <gingold@adacore.com> 4285 4286 * raise-gcc.c: Adjust previous patch. 4287 42882012-07-09 Vincent Celier <celier@adacore.com> 4289 4290 * make.adb (Compilation_Phase): Do not build libraries in 4291 Codepeer mode (do not call Library_Phase). 4292 42932012-07-09 Ed Schonberg <schonberg@adacore.com> 4294 4295 * sem_ch13.adb: Extend previous change to elementary types. 4296 42972012-07-09 Javier Miranda <miranda@adacore.com> 4298 4299 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Reverse 4300 previous patch since unconditionally handling as renaming_as_body 4301 renamings of predefined dispatching equality and unequality operator 4302 cause visibility problems with private overridings of the equality 4303 operator (see ACATS C854001). 4304 43052012-07-09 Vincent Pucci <pucci@adacore.com> 4306 4307 * exp_attr.adb (Signal_Bad_Attribute): Raise Program_Error in 4308 case of internal attribute names (already rejected by the parser). 4309 * par-ch13.adb (P_Representation_Clause): Complain if an internal 4310 attribute name that comes from source occurs. 4311 * par-ch4.adb (P_Name): Complain if an internal attribute name 4312 occurs in the context of an attribute reference. 4313 * par-util.adb (Signal_Bad_Attribute): Don't complain about 4314 mispelling attribute with internal attributes. 4315 * sem_attr.adb (Analyze_Attribute): Raise Program_Error in case 4316 of internal attribute names (already rejected by the parser). 4317 * snames.adb-tmpl (Is_Internal_Attribute_Name): New routine. 4318 * snames.ads-tmpl: Attributes CPU, Dispatching_Domain and 4319 Interrupt_Priority are marked as INT attributes since they 4320 don't denote real attribute and are only used internally in 4321 the compiler. 4322 (Is_Internal_Attribute_Name): New routine. 4323 43242012-07-09 Thomas Quinot <quinot@adacore.com> 4325 4326 * einfo.adb (Set_Reverse_Storage_Order): Update assertion, 4327 flag is now valid for array types as well. 4328 43292012-07-09 Tristan Gingold <gingold@adacore.com> 4330 4331 * tracebak.c: Implement __gnat_backtrace for Win64 SEH. 4332 43332012-07-09 Robert Dewar <dewar@adacore.com> 4334 4335 * einfo.ads: Minor reformatting. 4336 43372012-07-09 Javier Miranda <miranda@adacore.com> 4338 4339 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): Handle as 4340 renaming_as_body renamings of predefined dispatching equality 4341 and unequality operators. 4342 43432012-07-09 Robert Dewar <dewar@adacore.com> 4344 4345 * rident.ads: Do not instantiate r-ident.ads, this is now an 4346 independent unit. 4347 43482012-07-09 Javier Miranda <miranda@adacore.com> 4349 4350 * exp_disp.adb (Write_DT): Avoid runtime crash of this debugging 4351 routine. 4352 * sem_disp.adb (Find_Dispatching_Time): Protect this routine 4353 against partially decorated entities. 4354 43552012-07-09 Ed Schonberg <schonberg@adacore.com> 4356 4357 * sem_ch13.adb (Check_Size): Reject a size clause that specifies 4358 a value greater than Int'Last for a scalar type. 4359 43602012-07-09 Vincent Pucci <pucci@adacore.com> 4361 4362 * sem_ch9.adb (Allows_Lock_Free_Implementation): type must support 4363 atomic operation moved to the protected body case. No non-elementary 4364 out parameter moved to the protected declaration case. Functions have 4365 only one lock-free restriction. 4366 (Analyze_Protected_Type_Declaration): Issue a warning when 4367 Priority given with Lock_Free. 4368 43692012-07-09 Vincent Pucci <pucci@adacore.com> 4370 4371 * sem_dim.adb: Grammar of aspect Dimension fixed. 4372 43732012-07-09 Vincent Pucci <pucci@adacore.com> 4374 4375 * freeze.adb (Freeze_Record_Type): Code reorg in order to avoid 4376 pushing and popping the scope stack whenever a delayed aspect occurs. 4377 43782012-07-09 Gary Dismukes <dismukes@adacore.com> 4379 4380 * s-os_lib.ads: Remove pragma Elaborate_Body, as 4381 this is now unnecessary due to recently added pragma Preelaborate. 4382 43832012-07-09 Jose Ruiz <ruiz@adacore.com> 4384 4385 * s-taprop-mingw.adb (Set_Priority): Remove the code that was 4386 previously in place to reorder the ready queue when a task drops 4387 its priority due to the loss of inherited priority. 4388 43892012-07-09 Robert Dewar <dewar@adacore.com> 4390 4391 * layout.adb, i-cstrea.ads, a-ststio.ads, prj-util.ads, sem_cat.adb, 4392 s-commun.ads, s-ficobl.ads, s-os_lib.ads, s-fileio.ads: Minor 4393 reformatting. 4394 43952012-07-09 Eric Botcazou <ebotcazou@adacore.com> 4396 4397 * raise-gcc.c: Update comments. Fix typo. 4398 43992012-07-09 Thomas Quinot <quinot@adacore.com> 4400 4401 * einfo.adb, einfo.ads, sem_attr.adb, sem_ch13.adb: Attribute 4402 Scalar_Storage_Order can be defined or queried for array types as well 4403 as record types. 4404 44052012-07-09 Tristan Gingold <gingold@adacore.com> 4406 4407 * a-exexpr-gcc.adb (CleanupUnwind_Handler): Now imported from 4408 raise-gcc.c 4409 * raise-gcc.c (__gnat_cleanupunwind_handler): Defined. 4410 Strictly follow the ABI convention on ia64. 4411 44122012-07-09 Gary Dismukes <dismukes@adacore.com> 4413 4414 * a-ststio.ads: Add pragma Preelaborate, per AI05-0283. 4415 * i-cstrea.ads (max_path_len): Change from variable to deferred 4416 constant to allow it to be used as a bound in string component 4417 in type System.File_IO.Temp_File_Record. 4418 * s-os_lib.ads, s-commun.ads, s-ficobl.ads, s-fileio.ads: Add pragma 4419 Preelaborate. 4420 * s-fileio.adb (Get_Case_Sensitive): Move function inside 4421 procedure Open. 4422 (File_Names_Case_Sensitive): Move variable inside 4423 procedure Open, to avoid violation of Preelaborate restriction 4424 (due to call to Get_Case_Sensitive). 4425 44262012-07-09 Ed Schonberg <schonberg@adacore.com> 4427 4428 * layout.adb (Set_Elem_Alignment): Protect against meaningless 4429 size clause, to prevent overflow in internal computation of 4430 alignment. 4431 44322012-07-09 Robert Dewar <dewar@adacore.com> 4433 4434 * freeze.adb, prj-util.adb, prj-util.ads, sem_ch13.adb: Minor 4435 reformatting. 4436 44372012-07-09 Gary Dismukes <dismukes@adacore.com> 4438 4439 * sem_cat.adb (Check_Categorization_Dependencies): 4440 Allow dependence of both Remote_Types and Remote_Call_Interface 4441 declarations (not just Remote_Types units) on preelaborated 4442 units, but require that the dependence be made via a private 4443 with_clause. Issue a specialized error message. 4444 44452012-07-09 Pascal Obry <obry@adacore.com> 4446 4447 * prj-util.adb, prj-util.ads (For_Interface_Sources): New routine. 4448 44492012-07-09 Tristan Gingold <gingold@adacore.com> 4450 4451 * seh_init.c (__gnat_SEH_error_handler): On Win64 and SEH, 4452 return for unknown exceptions. 4453 * raise-gcc.c (__gnat_personality_seh0): Call __gnat_SEH_error_handler. 4454 44552012-07-09 Joel Brobecker <brobecker@adacore.com> 4456 4457 * exp_dbug.ads (No_Dollar_In_Label): Delete. 4458 44592012-07-09 Vincent Pucci <pucci@adacore.com> 4460 4461 * sem_ch13.adb (Check_Overloaded_Name): New routine. 4462 44632012-07-09 Vincent Pucci <pucci@adacore.com> 4464 4465 * freeze.adb (Freeze_Record_Type): Analyze the delayed aspects of the 4466 components in a record type. 4467 44682012-07-09 Pascal Obry <obry@adacore.com> 4469 4470 * prj-util.ads: Minor reformatting. 4471 44722012-07-09 Tristan Gingold <gingold@adacore.com> 4473 4474 * raise-gcc.c (db_indent): Simplify style, improve comments. 4475 Remove !IN_RTS part (dead). 4476 44772012-07-09 Robert Dewar <dewar@adacore.com> 4478 4479 * usage.adb: Minor change to format of -gnatn line. 4480 44812012-07-09 Tristan Gingold <gingold@adacore.com> 4482 4483 * a-exexpr-gcc.adb: Reorder routine. 4484 44852012-07-09 Vincent Celier <celier@adacore.com> 4486 4487 * lib-writ.ads: Add documentation for the Z lines (implicitly 4488 withed units) and Y lines (limited withed units). 4489 44902012-07-09 Robert Dewar <dewar@adacore.com> 4491 4492 * lib.ads, exp_attr.adb, exp_ch9.adb, sem_dim.adb, sem_ch9.adb, 4493 sem_prag.adb, sem_ch12.adb, mlib-utl.adb, freeze.adb, sem_res.adb, 4494 sem_attr.adb, sem_case.adb, gnatlink.adb, exp_ch4.adb, sem_ch6.adb, 4495 sem_elim.adb, s-dimmks.ads, sem_ch13.adb: Minor code clean ups. 4496 44972012-07-09 Eric Botcazou <ebotcazou@adacore.com> 4498 4499 * gnat_ugn.texi (Switches for gcc): Document -gnatn[12] only 4500 lightly in the summary and more thoroughly in inlining section. 4501 (Performance Considerations): Document -gnatn[12] in inlining 4502 section. 4503 45042012-07-09 Tristan Gingold <gingold@adacore.com> 4505 4506 * a-exexpr-gcc.adb (Unhandled_Except_Handler): New procedure. 4507 (Unhandled_Others_Value): New const. 4508 * raise-gcc.c (GNAT_UNHANDLED_OTHERS): Define. 4509 (action_descriptor): Remove ttype_entry. 4510 (get_action_description_for): Do not assign ttype_entry. 4511 (is_handled_by): Consider GNAT_UNHANDLED_OTHERS. 4512 45132012-07-03 Eric Botcazou <ebotcazou@adacore.com> 4514 4515 * gcc-interface/trans.c (Call_to_gnu): Robustify test for function case 4516 if the CICO mechanism is used. 4517 45182012-07-03 Eric Botcazou <ebotcazou@adacore.com> 4519 4520 * gcc-interface/utils2.c (build_simple_component_ref): Do not look 4521 through an extension if the type contains a placeholder. 4522 45232012-07-03 Eric Botcazou <ebotcazou@adacore.com> 4524 4525 * exp_disp.adb (Expand_Dispatching_Call): Propagate the convention on 4526 the designated subprogram type and also set Is_Dispatch_Table_Entity. 4527 (Expand_Interface_Thunk): Propagate the convention on the thunk. 4528 (Set_CPP_Constructors_Old): Set Is_Constructor and Convention_CPP on 4529 the internal view of the constructors. 4530 (Set_CPP_Constructors): Likewise. 4531 * sem_prag.adb (Analyze_Pragma) <Pragma_CPP_Constructor>: Set the 4532 convention on the function. 4533 * gcc-interface/gigi.h (is_cplusplus_method): Declare. 4534 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. 4535 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the `thiscall' 4536 calling convention 4537 (get_minimal_subprog_decl): Likewise. 4538 (is_cplusplus_method): New predicate. 4539 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Access>: Issue an 4540 error on access to C++ constructor or member function. 4541 45422012-07-03 Eric Botcazou <ebotcazou@adacore.com> 4543 4544 * gcc-interface/utils.c (gnat_pushdecl): Set TYPE_CONTEXT for types 4545 attached to a TYPE_DECL. 4546 45472012-06-26 Vincent Pucci <pucci@adacore.com> 4548 4549 * exp_ch3.adb (Build_Init_Statements): Don't check the parents 4550 in the Rep Item Chain of the task for aspects Interrupt_Priority, 4551 Priority, CPU and Dispatching_Domain. 4552 * exp_ch9.adb (Expand_N_Task_Type_Declaration): fields _Priority, 4553 _CPU and _Domain are present in the corresponding record type 4554 only if the task entity has a pragma, attribute definition 4555 clause or aspect specification. 4556 (Make_Initialize_Protection): Don't check the parents in the Rep Item 4557 Chain of the task for aspects Interrupt_Priority, Priority, CPU and 4558 Dispatching_Domain. 4559 * freeze.adb (Freeze_Entity): Use of Evaluate_Aspects_At_Freeze_Point 4560 call replaced by Analyze_Aspects_At_Freeze_Point. 4561 * sem_ch13.adb, sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): 4562 Renaming of Evaluate_Aspects_At_Freeze_Point. 4563 45642012-06-26 Yannick Moy <moy@adacore.com> 4565 4566 * sem_attr.adb (Analyze_Attribute): Detect if 'Old is used outside a 4567 postcondition, and issue an error in such a case. 4568 45692012-06-26 Yannick Moy <moy@adacore.com> 4570 4571 * gnat_rm.texi: Minor editing. 4572 45732012-06-26 Tristan Gingold <gingold@adacore.com> 4574 4575 * raise-gcc.c: Minor cleanup: remove unused prototype. 4576 * seh_init.c: Do not create an image wide unwind info to catch 4577 SEH when SEH unwind info are emitted by the compiler. 4578 45792012-06-19 Steven Bosscher <steven@gcc.gnu.org> 4580 4581 * gcc-interface/trans.c: Include target.h. 4582 (gigi): Try to put out .ident with targetm.asm_out.output_ident. 4583 Remove uses of ASM_OUTPUT_IDENT. 4584 * gcc-interface/Make-lang.in: Fix dependencies. 4585 45862012-06-15 Eric Botcazou <ebotcazou@adacore.com> 4587 4588 PR ada/53592 4589 * gcc-interface/gigi.h (maybe_vector_array): Make static inline. 4590 * gcc-interface/utils.c (maybe_vector_array): Delete. 4591 * gcc-interface/trans.c (gnat_to_gnu) <N_Indexed_Component>: Mark the 4592 array object as addressable if it has vector type and is on the LHS. 4593 45942012-06-15 Eric Botcazou <ebotcazou@adacore.com> 4595 4596 PR middle-end/53590 4597 * gcc-interface/misc.c (gnat_init_options_struct): Set 4598 opts->x_flag_delete_dead_exceptions to 1. 4599 46002012-06-14 Jose Ruiz <ruiz@adacore.com> 4601 4602 * gcc-interface/Make-lang.in (ada.install-common, ada.uninstall): 4603 Use the prefix specified with the --program-prefix configure option 4604 to determine the install name of the Ada tools. 4605 (ada.all.cross): Use a for loop to iterate over the set of Ada tools 4606 instead of duplicate the same processing. 4607 Update dependencies. 4608 46092012-06-14 Vincent Pucci <pucci@adacore.com> 4610 4611 * exp_ch6.adb (Expand_Call): Expand_Put_Call_With_Dimension_Symbol 4612 call replaced by Expand_Put_Call_With_Symbol call. 4613 * sem_dim.adb: New fields Unit_Names, Unit_Symbols 4614 and Dim_Symbols for record type System_Type. 4615 (From_Dimension_To_String_Of_Symbols): Removed. 4616 (From_Dim_To_Str_Of_Dim_Symbols): Renames previous 4617 routine From_Dimension_To_String_Of_Symbols. 4618 (From_Dim_To_Str_Of_Unit_Symbols): New routine. 4619 (Analyze_Aspect_Dimension): argument Symbol in aspect 4620 Dimension aggregate is optional. Named association implemented. 4621 (Has_Compile_Time_Known_Expressions): Removed. 4622 (Analyze_Aspect_Dimension_System): New 4623 component Dim_Symbol in each Dimension aggregate in 4624 aspect Dimension_System. Named associations implemented. 4625 (Add_Dimension_Vector_To_Buffer): Removed. 4626 (Add_Whole_To_Buffer): Removed. 4627 (Expand_Put_Call_With_Dimension_Symbol.): Removed. 4628 (Expand_Put_Call_With_Symbol): Renames previous routine 4629 Expand_Put_Call_With_Dimension_Symbol. 4630 (Has_Dimension_Symbols): Removed. 4631 (Has_Symbols): Renames previous routine 4632 Has_Dimension_Symbols. (Store_String_Oexpon): New routine. 4633 * sem_dim.ads (Expand_Put_Call_With_Dimension_Symbol.): Removed. 4634 (Expand_Put_Call_With_Symbol): Renames previous routine 4635 Expand_Put_Call_With_Dimension_Symbol. 4636 * s-diflio.adb, s-diinio.adb (Put): Symbol renames Symbols. 4637 (Put_Dim_Of): New routines. 4638 * s-diflio.ads, s-diinio.ads: documentation updated. 4639 (Put): Symbol renames Symbols. 4640 (Put_Dim_Of): New routines. 4641 * s-dim.ads: documentation updated. 4642 * s-dimmks.ads: dimensioned type and subtypes updated. 4643 * snames.ads-tmpl: Name_Dim_Symbol, Name_Put_Dim_Of, Name_Symbol, 4644 and Name_Unit_Symbol added. Name_Symbols removed. 4645 46462012-06-14 Vincent Pucci <pucci@adacore.com> 4647 4648 * freeze.adb (In_Exp_Body): Expression function case added. 4649 (Freeze_Expression): Insert the Freeze_Nodes 4650 list before the correct current scope in case of a quantified 4651 expression. 4652 46532012-06-14 Pascal Obry <obry@adacore.com> 4654 4655 * projects.texi: Document the Install package for gprinstall. 46562012-06-14 Ed Schonberg <schonberg@adacore.com> 4657 4658 * sem_elim.adb (Check_For_Eliminated_Subprogram): Do not check within 4659 a default expression. 4660 * sem_res.adb (Resolve_Call): simplify code. 4661 46622012-06-14 Ed Schonberg <schonberg@adacore.com> 4663 4664 * sem_case.adb (Check, Issue_Msg): within an instance, non-other 4665 values in a variant part or a case expression do not have to 4666 belong to the actual subtype. 4667 46682012-06-14 Ed Schonberg <schonberg@adacore.com> 4669 4670 * sem_ch12.adb (Validate_Derived_Type_Instance): If parent is 4671 an interface type, check whether it is itself a previous formal 4672 already instantiated in the current list of actuals. 4673 46742012-06-14 Ed Schonberg <schonberg@adacore.com> 4675 4676 * sem_ch13.adb (Check_Aspect_At_End_Of_Declarations): The 4677 expression for a stream attribute is a name that may be overloaded 4678 with other declarations. To determine whether it matches the 4679 aspect at the freeze point, it is necessary to verify that one 4680 of its interpretations matches. 4681 46822012-06-14 Robert Dewar <dewar@adacore.com> 4683 4684 * exp_ch7.adb, exp_util.adb, sem_aux.ads, exp_ch9.adb, 4685 sem_ch10.adb, freeze.adb, sem_util.adb, exp_ch4.adb, 4686 s-taprop-dummy.adb: Minor reformatting. 4687 46882012-06-14 Vincent Pucci <pucci@adacore.com> 4689 4690 * exp_attr.adb (Expand_N_Attribute_Reference): Lock_Free 4691 attribute case added. 4692 * par-prag.adb (Prag): Lock_Free pragma case added. 4693 * sem_attr.adb (Analyze_Attribute_Reference): Lock_Free attribute 4694 case added. 4695 * sem_ch13.adb (Analyze_Aspect_Specifications): Record_Rep_Item 4696 call added for Aspect_Lock_Free. 4697 * sem_ch9.adb (Allows_Lock_Free_Implementation): New Lock_Free 4698 error messages for subprogram bodies. 4699 (Lock_Free_Disabled): New routine. 4700 (Analyze_Protected_Body): Call to Lock_Free_Disabled added. 4701 * sem_prag.adb (Analyze_Pragma): Lock_Free pragma case added. 4702 * snames.adb-tmpl (Get_Pragma_Id): Name_Lock_Free case added. 4703 (Is_Pragma_Name): Name_Lock_Free case added. 4704 * snames.ads-tmpl: Attribute_Lock_Free and Pragma_Lock_Free added. 4705 47062012-06-14 Ed Schonberg <schonberg@adacore.com> 4707 4708 * a-coorma.adb, a-cborma.adb, a-cbhama.adb, a-ciorma.adb: Add missing 4709 aliased keyword. 4710 47112012-06-14 Bob Duff <duff@adacore.com> 4712 4713 * lib.ads, lib.adb, sem.adb (Write_Unit_Info): Move this 4714 procedure from Sem body to Lib spec, so it can be used for 4715 debugging elsewhere. 4716 47172012-06-14 Ed Schonberg <schonberg@adacore.com> 4718 4719 * sem_ch6.adb (Check_Conformance): Add Ada 2012 check on mode 4720 conformance: "aliased" must apply to both or neither formal 4721 parameters. 4722 47232012-06-14 Gary Dismukes <dismukes@adacore.com> 4724 4725 * exp_ch9.adb: Minor reformatting. 4726 47272012-06-14 Thomas Quinot <quinot@adacore.com> 4728 4729 * freeze.adb (Freeze_Record_Type): Warn about useless bit order 4730 specification [when there's no component clause] regardless 4731 of whether the specified bit order is reversed or not. 4732 47332012-06-14 Tristan Gingold <gingold@adacore.com> 4734 4735 * raise-gcc.c (__gnat_personality_seh0): New function. 4736 47372012-06-14 Tristan Gingold <gingold@adacore.com> 4738 4739 * gnatname.adb (Gnatname): Make sure that dynamic table 4740 argument_data is initialized. 4741 47422012-06-14 Robert Dewar <dewar@adacore.com> 4743 4744 * sem_aux.adb: Minor code reorganization. 4745 47462012-06-14 Vincent Pucci <pucci@adacore.com> 4747 4748 * einfo.adb einfo.ads (Get_Rep_Item): Removed. 4749 (Get_Rep_Item_For_Entity): Removed. 4750 (Get_Rep_Pragma): Removed. 4751 (Get_Rep_Pragma_For_Entity): Removed. 4752 (Has_Rep_Item): Removed. 4753 (Has_Rep_Pragma): Removed. 4754 (Has_Rep_Pragma_For_Entity): Removed. 4755 * exp_ch9.adb (Expand_N_Task_Type_Declaration): 4756 Has_Rep_Pragma_For_Entity replaced by Has_Rep_Pragma 4757 and Get_Rep_Pragma_For_Entity replaced by Get_Rep_Pragma. 4758 (Make_Task_Create_Call): Has_Rep_Pragma_For_Entity replaced 4759 by Has_Rep_Pragma and Get_Rep_Pragma_For_Entity replaced by 4760 Get_Rep_Pragma. 4761 * exp_intr.adb: Dependency to Sem_Aux added for call to Get_Rep_Pragma. 4762 * sem_aux.adb (Get_Rep_Item): New routine. 4763 (Get_Rep_Pragma): New routine. 4764 (Has_Rep_Item): New routine. 4765 (Has_Rep_Pragma): New routine. 4766 (Nearest_Ancestor): Minor reformatting. 4767 * sem_aux.ads (Get_Rep_Item): New routine. 4768 (Get_Rep_Pragma): New routine. 4769 (Has_Rep_Item): New routine. 4770 (Has_Rep_Pragma): New routine. 4771 * sem_ch13.adb (Duplicate_Clause): Restore original error messages. 4772 * sem_eval.adb (Subtypes_Statically_Match): Get_Rep_Item_For_Entity 4773 replaced by Get_Rep_Item. 4774 * sem_prag.adb (Analyze_Pragma): Restore original error messages. 4775 (Check_Duplicate_Pragma): Restore original error messages. 4776 47772012-06-14 Ed Schonberg <schonberg@adacore.com> 4778 4779 * sem_util.adb (Is_Object_Reference): in Ada 2012, qualified 4780 expressions are valid names. 4781 47822012-06-14 Ed Schonberg <schonberg@adacore.com> 4783 4784 * sem_ch10.adb (Analyze_Compilation_Unit): If the unit is an 4785 instantiation do not emit warnings for obsolescent units. The 4786 warnings belong on the corresponding generic. 4787 47882012-06-14 Hristian Kirtchev <kirtchev@adacore.com> 4789 4790 * einfo.adb: Update the usage of Node15. 4791 (Return_Flag_Or_Transient_Decl): Removed. 4792 (Set_Return_Flag_Or_Transient_Decl): Removed. 4793 (Set_Status_Flag_Or_Transient_Decl): New routine. 4794 (Status_Flag_Or_Transient_Decl): New routine. 4795 (Write_Field15_Name): Update the output for variables and constants. 4796 * einfo.ads: Remove attribute 4797 Return_Flag_Or_Transient_Decl along with occurrences in nodes. 4798 (Return_Flag_Or_Transient_Decl): Removed along with pragma Inline. 4799 (Set_Return_Flag_Or_Transient_Decl): Removed along with pragma Inline. 4800 (Set_Status_Flag_Or_Transient_Decl): New routine along with pragma 4801 Inline. 4802 (Status_Flag_Or_Transient_Decl): New routine along with pragma Inline. 4803 * exp_ch4.adb (Create_Alternative): New routine. 4804 (Expand_N_Conditional_Expression): Handle the case 4805 where at least one of the conditional expression 4806 alternatives prodices a controlled temporary by means of a function 4807 call. 4808 (Is_Controlled_Function_Call): New routine. 4809 (Process_Transient_Object): Update the call to 4810 Set_Return_Flag_Or_Transient_Decl. 4811 * exp_ch6.adb (Enclosing_Context): New routine. 4812 (Expand_N_Extended_Return_Statement): Update all calls to 4813 Set_Return_Flag_Or_Transient_Decl. 4814 (Expand_Ctrl_Function_Call): Prohibit the finalization of a controlled 4815 function result when the context is a conditional expression. 4816 * exp_ch7.adb (Process_Declarations): Update all calls to 4817 Return_Flag_Or_Transient_Decl. Add processing for intermediate 4818 results of conditional expressions where one of the alternatives 4819 uses a controlled function call. 4820 (Process_Object_Declaration): Update all calls to 4821 Return_Flag_Or_Transient_Decl and rearrange the logic to process 4822 "hook" objects first. 4823 (Process_Transient_Objects): Update the call to 4824 Set_Return_Flag_Or_Transient_Decl. 4825 * exp_util.adb (Requires_Cleanup_Actions (List_Id, Boolean, 4826 Boolean)): Update all calls to Return_Flag_Or_Transient_Decl. Add 4827 detection for intermediate results of conditional expressions 4828 where one of the alternatives uses a controlled function call. 4829 48302012-06-13 Eric Botcazou <ebotcazou@adacore.com> 4831 4832 Revert 4833 2012-05-19 Eric Botcazou <ebotcazou@adacore.com> 4834 4835 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. 4836 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall 4837 calling convention 4838 (get_minimal_subprog_decl): Likewise. 4839 (gnat_first_param_is_class): New predicate. 4840 48412012-06-12 Robert Dewar <dewar@adacore.com> 4842 4843 * gcc-interface/Make-lang.in: Update dependencies. 4844 * sem_ch9.ads, einfo.adb, einfo.ads, sem_prag.adb, freeze.adb, 4845 sem_util.adb, sem_ch13.adb, sem_ch13.ads, exp_ch3.adb: Add comments. 4846 Minor reformatting. 4847 48482012-06-12 Ed Schonberg <schonberg@adacore.com> 4849 4850 * sem_ch12.adb (Instantiate_Formal_Subprogram): Remove code that 4851 implements AI05-0296, because the actual may be overloaded. 4852 * sem_ch8.adb (Analyze_Subprogram_Renaming): and move it here, 4853 to be applied once the actual subprogram is properly resolved. 4854 48552012-06-12 Robert Dewar <dewar@adacore.com> 4856 4857 * switch-c.adb, a-exexpr-gcc.adb: Minor reformatting. 4858 48592012-06-12 Vincent Pucci <pucci@adacore.com> 4860 4861 * checks.adb (Tag_Checks_Suppressed): Remove Kill_Tag_Checks check. 4862 * einfo.adb (Universal_Aliasing): Apply to the implementation 4863 base type instead of the base type. 4864 (Get_Rep_Item_For_Entity): 4865 Return a pragma if the pragma node is not present in the Rep 4866 Item chain of the parent. 4867 (Kill_Tag_Checks): Removed (unused flag). 4868 (Set_Kill_Tag_Checks): Removed. 4869 (Get_First_Rep_Item): New routine. 4870 (Get_Rep_Pragma_For_Entity): New routine. 4871 (Has_Rep_Item): New routine. 4872 (Has_Rep_Pragma_For_Entity): New routine. 4873 (Present_In_Rep_Item): New routine. 4874 * einfo.ads (Kill_Tag_Checks): Removed. 4875 (Set_Kill_Tag_Checks): Removed. 4876 (Get_First_Rep_Item): New routine. 4877 (Get_Rep_Pragma_For_Entity): New routine. 4878 (Has_Rep_Item): New routine. 4879 (Has_Rep_Pragma_For_Entity): New routine. 4880 (Present_In_Rep_Item): New routine. 4881 * exp_attr.adb, sem_attr.adb: Attribute_CPU, 4882 Attribute_Dispatching_Domain and Attribute_Interrupt_Priority 4883 case added. 4884 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause): For 4885 attribute Storage_Size, insert the new assignement statement 4886 after the Size variable declaration. 4887 * exp_ch3.adb (Build_Init_Statements): Fill the CPU, 4888 Dispatching_Domain, Priority and Size components with the Rep 4889 Item expression (if any). 4890 * exp_ch9.adb (Expand_N_Task_Type_Declaration): _CPU, 4891 _Priority, _Domain fields are always present in the 4892 corresponding record type. 4893 (Find_Task_Or_Protected_Pragma): Removed. 4894 (Get_Relative_Deadline_Pragma): New routine. 4895 (Make_Initialize_Protection): Find_Task_Or_Protected_Pragma removed. 4896 (Make_Task_Create_Call): Check CPU, Size or 4897 Dispatching_Domain Rep Item is present using new routine Has_Rep_Item. 4898 * freeze.adb (Freeze_All): Push_Scope_And_Install_Discriminants 4899 and Uninstall_Discriminants_And_Pop_Scope calls added. 4900 (Freeze_Entity): Evaluate_Aspects_At_Freeze_Point call added. 4901 * sem_aux.adb (Nearest_Ancestor): Retrieve the nearest ancestor 4902 for private derived types. 4903 * sem_ch13.adb (Analyze_Aspect_Specifications): Clean-up 4904 and reordering. Delay analysis for all aspects (except some 4905 peculiar cases). 4906 (Analyze_Attribute_Definition_Clause): 4907 Attribute_CPU, Attribute_Dispatching_Domain, 4908 Interrupt_Priority and Attribute_Priority cases added. 4909 (Analyze_Freeze_Entity): Push_Scope_And_Install_Discriminants 4910 and Uninstall_Discriminants_And_Pop_Scope calls added. 4911 (Check_Aspect_At_Freeze_Point): Reordering and clean-up. 4912 (Duplicate_Clause): Issue an explicit error msg when the current 4913 clause duplicates an aspect specification, an attribute definition 4914 clause or a pragma. 4915 (Evaluate_Aspects_At_Freeze_Point): New routine. 4916 * sem_ch13.ads (Evaluate_Aspects_At_Freeze_Point): New routine. 4917 * sem_ch9.adb, sem_ch9.ads (Install_Discriminants): New routine. 4918 (Push_Scope_And_Install_Discriminants): New routine. 4919 (Uninstall_Discriminants): New routine. 4920 (Uninstall_Discriminants_And_Pop_Scope): New routine. 4921 * sem_prag.adb (Check_Duplicate_Pragma): Issue an explicit error 4922 msg when the current pragma duplicates an aspect specification, 4923 an attribute definition clause or a pragma. 4924 (Analyze_Pragma): Remove use of flags Has_Pragma_CPU, 4925 Has_Pragma_Priority and Has_Pragma_Dispatching_Domain. 4926 * sem_util.adb (Compile_Time_Constraint_Error): Don't complain 4927 about the type if the corresponding concurrent type doesn't come 4928 from source. 4929 * sinfo.adb, sinfo.ads (Has_Pragma_CPU): Removed. 4930 (Has_Pragma_Dispatching_Domain): Removed. 4931 (Has_Pragma_Priority): Removed. 4932 (Has_Task_Info_Pragma): Removed. 4933 (Has_Task_Name_Pragma): Removed. 4934 (Set_Has_Pragma_CPU): Removed. 4935 (Set_Has_Pragma_Dispatching_Domain): Removed. 4936 (Set_Has_Pragma_Priority): Removed. 4937 (Set_Has_Task_Info_Pragma): Removed. 4938 (Set_Has_Task_Name_Pragma): Removed. 4939 * snames.adb-tmpl (Get_Pragma_Id): Pragma_CPU, 4940 Pragma_Dispatching_Domain and Pragma_Interrupt_Priority added. 4941 (Is_Pragma_Name): Name_CPU, Name_Dispatching_Domain and 4942 Name_Interrupt_Priority added. 4943 * snames.ads-tmpl: Name_Dispatching_Domain, Name_CPU 4944 and Name_Interrupt_Priority moved to the list of 4945 Attribute_Name. Attribute_CPU, Attribute_Dispatching_Domain and 4946 Attribute_Interrupt_Priority added. Pragma_Dispatching_Domain, 4947 Pragma_CPU and Pragma_Interrupt_Priority moved to the end of 4948 the Pragma_Name list. 4949 49502012-06-12 Arnaud Charlet <charlet@adacore.com> 4951 4952 * xref_lib.adb (Get_Full_Type): Add support for 'G'. 4953 49542012-06-12 Tristan Gingold <gingold@adacore.com> 4955 4956 * a-exexpr-gcc.adb (Unwind_Exception): Add 4 more private fields. 4957 49582012-06-12 Fedor Rybin <frybin@adacore.com> 4959 4960 * gnat_ugn.texi: Update doc on gnattest. 4961 49622012-06-12 Robert Dewar <dewar@adacore.com> 4963 4964 * sem_ch12.adb: Add comments. 4965 49662012-06-12 Robert Dewar <dewar@adacore.com> 4967 4968 * switch-c.adb, inline.adb, usage.adb, opt.ads: Minor reformatting. 4969 49702012-06-12 Robert Dewar <dewar@adacore.com> 4971 4972 * sem_ch12.adb: Minor reformatting. 4973 49742012-06-12 Eric Botcazou <ebotcazou@adacore.com> 4975 4976 * opt.ads (Inline_Level): New variable. 4977 * gnat1drv.adb (Adjust_Global_Switches): Set it based on optimization 4978 level if it has not been set by the user. 4979 * switch-c.adb (Scan_Front_End_Switches): Accept -gnatn1 and -gnatn2 4980 and set Inline_Level accordingly. 4981 * inline.adb (Add_Inlined_Body): Declate new Inline_Level_Type type. 4982 (Must_Inline): Return Inline_Level_T instead of Boolean to indicate 4983 whether the package of the inlined subprogram must be compiled. 4984 If Inline_Level is set to 1, only compile packages of subprograms 4985 directly called from the main unit. 4986 * usage.adb (Usage): Adjust line for -gnatn switch. 4987 * gnat_ugn.texi (Switches for gcc): Document -gnatn1 and -gnatn2. 4988 49892012-06-12 Ed Schonberg <schonberg@adacore.com> 4990 4991 * sem_ch12.adb (Instantiate_Formal_Subprogram): Do not apply 4992 AI05-296 if the actual is overloaded. In this case The rule must 4993 be applied after resolution, in Analyze_Subprogram_Renaming. 4994 49952012-06-12 Robert Dewar <dewar@adacore.com> 4996 4997 * stringt.adb: Minor reformatting. 4998 49992012-06-12 Robert Dewar <dewar@adacore.com> 5000 5001 * ali-util.adb, stringt.ads: Minor reformatting. 5002 50032012-06-12 Hristian Kirtchev <kirtchev@adacore.com> 5004 5005 * exp_ch7.adb (Process_Declarations): Handle the case where 5006 the original context has been wrapped in a block to avoid 5007 interference between exception handlers and At_End handlers. 5008 (Wrap_HSS_In_Block): Mark the block which contains the original 5009 statements of the context as being a finalization wrapper. 5010 * sinfo.adb (Is_Finalization_Wrapper): New routine. 5011 (Set_Is_Finalization_Wrapper): New routine. 5012 5013 * sinfo.ads: Add new attribute Is_Finalization_Wrapper applicable 5014 to block statemnts. 5015 (Is_Finalization_Wrapper): New routine with corresponding pragma Inline. 5016 (Set_Is_Finalization_Wrapper): New routine with corresponding pragma 5017 Inline. 5018 50192012-06-12 Steve Baird <baird@adacore.com> 5020 5021 * gnat1drv.adb (Adjust_Global_Switches): No longer need to set 5022 Exception_Extra_Info in CodePeer_Mode. 5023 50242012-06-12 Robert Dewar <dewar@adacore.com> 5025 5026 * sem_dist.adb, exp_ch7.adb, sem_type.adb, exp_attr.adb, 5027 sinfo.ads, sem_ch7.adb, exp_alfa.adb, sem_scil.adb, sem_ch12.adb, 5028 sem_util.adb, sem_res.adb, sem_attr.adb, sem_elab.adb, exp_ch6.adb, 5029 sem_ch4.adb, sem_warn.adb, scil_ll.adb, exp_cg.adb: Minor code 5030 reorganization. 5031 50322012-06-12 Eric Botcazou <ebotcazou@adacore.com> 5033 5034 * s-tasini.ads: Minor fix in comment. 5035 50362012-06-12 Thomas Quinot <quinot@adacore.com> 5037 5038 * freeze.adb (Freeze_Record_Type): Warn on record with 5039 Scalar_Storage_Order if there is no placed component. 5040 50412012-06-12 Thomas Quinot <quinot@adacore.com> 5042 5043 * sem_ch3.adb: Minor comment fix. 5044 50452012-06-12 Vincent Celier <celier@adacore.com> 5046 5047 * ali-util.adb (Time_Stamp_Mismatch): In minimal recompilation 5048 mode, use Stringt Mark and Release to avoid growing the Stringt 5049 internal tables uselessly. 5050 * stringt.adb (Strings_Last): New global variable 5051 (String_Chars_Last): New global variable. 5052 (Mark, Release): New procedures. 5053 * stringt.ads (Mark, Release) New procedures. 5054 50552012-06-12 Hristian Kirtchev <kirtchev@adacore.com> 5056 5057 * exp_ch7.adb (Process_Transient_Objects): Renamed constant 5058 Requires_Hooking to Must_Hook and replace all occurrences of the name. 5059 (Requires_Hooking): New routine. Detect all contexts that require 5060 transient variable export to the outer finalizer due to a potential 5061 exception. 5062 50632012-06-12 Ed Schonberg <schonberg@adacore.com> 5064 5065 * sem_ch12.adb: Small adjustment. 5066 50672012-06-12 Vincent Celier <celier@adacore.com> 5068 5069 * vms_cmds.ads (Command_Type): New enumeration value Test 5070 * vms_conv.adb (Initialize): Add component at index Test in 5071 Command_List 5072 * vms_data.ads (Test_Switches): New global variable for the 5073 switches of gnattest, currently empty. 5074 50752012-06-12 Ed Schonberg <schonberg@adacore.com> 5076 5077 * sem_ch3.adb (Analyze_Subtype_Declaration): if an incomplete 5078 type is tagged, so is a subtype of it. 5079 * sem_ch12.adb (Validate_Actual_Subprogram): implement AI05-0296, 5080 concerning freeze rules in the presence of formal incomplete 5081 types: a formal abstract subprogram cannot have an incomplete 5082 controlling type, and the profile of the actual subprogram does 5083 not freeze if it includes an incomplete untagged type. 5084 50852012-06-12 Robert Dewar <dewar@adacore.com> 5086 5087 * a-direct.adb: Minor reformatting. 5088 50892012-06-12 Robert Dewar <dewar@adacore.com> 5090 5091 * gnat_ugn.texi: Add missing documentation for -gnatw.v and 5092 -gnatw.V. 5093 50942012-06-12 Thomas Quinot <quinot@adacore.com> 5095 5096 * sem_ch7.adb, sem_prag.adb, sem_ch12.adb, sem_ch4.adb, 5097 sem_ch13.adb: Minor rewording of error messages for unchecked unions. 5098 50992012-06-12 Robert Dewar <dewar@adacore.com> 5100 5101 * lib-xref.ads: Minor reformatting. 5102 51032012-06-12 Pascal Obry <obry@adacore.com> 5104 5105 * a-direct.adb (Delete_File): Delete symbolic links silently 5106 instead of raising the Name_Error exception when the symbolic 5107 link is pointing to a non existent file. 5108 51092012-06-12 Robert Dewar <dewar@adacore.com> 5110 5111 * xref_lib.adb, sem_ch13.adb, lib-xref.adb: Minor reformatting. 5112 51132012-06-12 Javier Miranda <miranda@adacore.com> 5114 5115 * lib-xref.ads Adding missing documentation. 5116 51172012-06-12 Hristian Kirtchev <kirtchev@adacore.com> 5118 5119 * exp_ch7.adb (Create_Finalizer): Add the 5120 exception reraise mechanism at the very end of the finalizer 5121 statements. This placement ensures that all objects are finalized, 5122 the secondary stack mark released and aborts undeferred before 5123 propagating an exception. 5124 51252012-06-12 Ed Schonberg <schonberg@adacore.com> 5126 5127 * sem_ch10.adb (Remove_Unit_From_Visibility): if the unit is a 5128 wrapper package. remove from visibility the original subprogram 5129 instance. 5130 51312012-06-12 Javier Miranda <miranda@adacore.com> 5132 5133 * sem_prag.adb (Process_Convention): Generate reference to entity 5134 exported to foreign language. Needed for GPS navigation. 5135 * xref_lib.adb (Parse_Identifier_Info): Parse exported entities. 5136 * lib-xref (Output_References): Output exported entities. 5137 51382012-06-12 Pascal Obry <obry@adacore.com> 5139 5140 * prj-attr.adb: Add install package and corresponding attributes. 5141 * snames.ads-tmpl (Name_Active): New constant. 5142 (Name_Exec_Subdir): Likewise. 5143 (Name_Install): Likewise. 5144 (Name_Lib_Subdir): Likewise. 5145 (Name_Project_Subdir): Likewise. 5146 (Name_Sources_Subdir): Likewise. 5147 51482012-06-12 Bob Duff <duff@adacore.com> 5149 5150 * sem_res.adb (Check_Infinite_Recursion): 5151 Suppress spurious warning on recursion after "raise with ...". 5152 51532012-06-12 Thomas Quinot <quinot@adacore.com> 5154 5155 * sem_prag.adb (Analyze_Pragma, case Unchecked_Union): Do 5156 not crash on illegal unchecked union that is a null record. 5157 51582012-06-12 Thomas Quinot <quinot@adacore.com> 5159 5160 * exp_ch4.adb (Has_Inferable_Discriminants): Reorganize code to 5161 treat implicit dereferences with a constrained unchecked union 5162 nominal subtype as having inferable discriminants. 5163 51642012-06-12 Robert Dewar <dewar@adacore.com> 5165 5166 * sem_ch6.adb: Minor reformatting. 5167 51682012-06-12 Eric Botcazou <ebotcazou@adacore.com> 5169 5170 * gnat_ugn.texi: Couple of minor corrections. 5171 51722012-06-12 Thomas Quinot <quinot@adacore.com> 5173 5174 * sem_prag.adb (Check_Variant): An empty component list is not 5175 illegal in an unchecked union variant. 5176 51772012-06-12 Gary Dismukes <dismukes@adacore.com> 5178 5179 * projects.texi: Remove comments. 5180 51812012-06-12 Thomas Quinot <quinot@adacore.com> 5182 5183 * back_end.adb (Scan_Back_End_Switches): Treat -fdump-scos as 5184 synonym of -gnateS. 5185 (gnat_post_options): Disable gimple-based SCO generator. 5186 * gnat_ugn.texi: Document that -gnateS is an obsolete synonym 5187 of -fdump-scos. 5188 51892012-06-12 Ed Schonberg <schonberg@adacore.com> 5190 5191 * sem_ch6.adb (Different_Generic_Profile): new predicate for 5192 Find_Corresponding_Spec, to handle a rare case of accidental 5193 overloading in an instance, when the profile of a subprogram body 5194 that depends on a formal type becomes compatible with that of 5195 a homonym whose profile in the generic mentions the actual type. 5196 51972012-06-12 Thomas Quinot <quinot@adacore.com> 5198 5199 * gnat1drv.adb: Minor reformatting. 5200 52012012-06-12 Ed Schonberg <schonberg@adacore.com> 5202 5203 * sem_util.adb (Build_Explicit_Dereference): If the expression 5204 is an entity, ensure that the type of the expression is the same 5205 as that of the entity. 5206 52072012-06-12 Pat Rogers <rogers@adacore.com> 5208 5209 * projects.texi: Corrected instances of the word "build" that 5210 should be "built" instead. Other similar changes and minor 5211 punctuation changes. 5212 52132012-06-12 Eric Botcazou <ebotcazou@adacore.com> 5214 5215 * sem_util.adb (Is_Atomic_Object): Return true for an atomic 5216 component as well as a prefix which is an atomic component. 5217 52182012-06-12 Ed Schonberg <schonberg@adacore.com> 5219 5220 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): revert previous 5221 patch. The processing of interfacing aspects now generates a 5222 proper Ada 2005 pragma. 5223 * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and 5224 Pragma_Import): revert previous patch. The processing of 5225 interfacing aspects now generates a proper Ada 2005 pragma. 5226 * sem_ch13.adb (Analyze_Aspect_Specifications): generate proper 5227 pragam for aspects Convention, Import and Export. Scan list 5228 of aspects to collect link name and external name if present, 5229 and verify that a complete pragma can be generated. 5230 52312012-06-11 Olivier Hainque <hainque@adacore.com> 5232 5233 * gcc-interface/Makefile.in (GNATLIBCFLAGS_FOR_C): Remove 5234 $(PIC_FLAG_FOR_TARGET). 5235 (gnatlib-shared-default): Add $(PIC_FLAG_FOR_TARGET) to 5236 GNATLIBCFLAGS_FOR_C passed to gnatlib. 5237 (gnatlib-shared-win32): Likewise. 5238 (gnatlib-shared-darwin): Likewise. 5239 (gnatlib-shared-dual-win32): Pass PIC_FLAG_FOR_TARGET to 5240 gnatlib-shared-win32. 5241 52422012-06-11 Eric Botcazou <ebotcazou@adacore.com> 5243 5244 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Convert GNU_SIZE 5245 to units before invoking allocatable_size_p on it. 5246 Remove orphaned comment. Do not use ssize_int. 5247 <E_Record_Subtype>: Traverse list in original order. Minor tweak. 5248 (allocatable_size_p): Adjust and simplify. 5249 (build_subst_list): Use consistent terminology throughout. 5250 (build_variant_list): Likewise. Traverse list in original order. 5251 (create_field_decl_from): Likewise. 5252 (copy_and_substitute_in_size): Likewise. 5253 (create_variant_part_from): Add comment about field list order. 5254 * gcc-interface/utils.c (build_vms_descriptor): Do not use ssize_int. 5255 * gcc-interface/utils2.c (build_allocator): Likewise. 5256 52572012-06-11 Eric Botcazou <ebotcazou@adacore.com> 5258 5259 * gcc-interface/trans.c (Identifier_to_gnu): Test Is_Elementary_Type 5260 instead of Is_Scalar_Type for a constant with an address clause. 5261 Do not return the underlying constant for a constant used by reference 5262 if it holds the address of a constant and an lvalue is required. 5263 52642012-06-11 Eric Botcazou <ebotcazou@adacore.com> 5265 5266 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not specifically deal 5267 with external constants wrt force_global here... 5268 <E_Constant>: ...but here instead. 5269 * gcc-interface/utils.c (gnat_pushdecl): Do not put external DECLs onto 5270 the list of global DECLs. 5271 52722012-06-11 Eric Botcazou <ebotcazou@adacore.com> 5273 5274 * gcc-interface/decl.c (gnat_to_gnu_entity): Translate the Esize on 5275 entry only for elementary types and abort if it is too large. 5276 <E_Record_Type>: Make sure the Esize is known before using it. 5277 52782012-06-04 Steven Bosscher <steven@gcc.gnu.org> 5279 5280 * gcc-interface/utils2.c: Do not include output.h. 5281 * gcc-interface/Make-lang.in: Fix dependencies. 5282 52832012-05-29 Michael Matz <matz@suse.de> 5284 5285 * gcc-interface/utils.c (create_var_decl_1): Don't call expand_decl. 5286 52872012-05-26 Eric Botcazou <ebotcazou@adacore.com> 5288 5289 * gcc-interface/decl.c (variant_desc): Rename 'record' to 'new_type'. 5290 (build_variant_list): Adjust to above renaming. 5291 (gnat_to_gnu_entity) <E_Record_Subtype>: Likewise. Give a unique name 5292 to the type of the variant containers. 5293 (create_variant_part_from): Likewise. Give a unique name to the type 5294 of the variant part. 5295 52962012-05-25 Eric Botcazou <ebotcazou@adacore.com> 5297 5298 PR ada/52362 5299 * link.c (__gnat_object_file_option): Set to "-Wl,@" for GNU linker. 5300 (__gnat_using_gnu_linker): Delete. 5301 * gnatlink.adb (Gnatlink): Declare Object_File_Option_Ptr here... 5302 Declare Object_File_Option string constant and Using_GNU_response_file 5303 boolean constant. 5304 (Process_Binder_File): ...instead of here. Delete Using_GNU_Linker, 5305 Opening and Closing local variables. Do not handle the GNU linker 5306 specially. 5307 (Write_RF): New procedure to write into the response file. Escape some 5308 characters if a GNU response file is used. Keep track of error status. 5309 Invoke Write_RF to write into the response file. Delete the file only 5310 if the link was successful. 5311 * mlib-utl.adb: Do not `with' package System. 5312 (Gcc): Likewise. Declare Object_File_Option string constant and 5313 Using_GNU_response_file boolean constant. 5314 (Write_RF): Take a string instead of address and length. Escape some 5315 characters if a GNU response file is used. 5316 Invoke Write_RF to write into the response file. Delete the file only 5317 if the link was successful. Do not warn if it cannot be deleted. 5318 53192012-05-20 Eric Botcazou <ebotcazou@adacore.com> 5320 5321 * gcc-interface/utils.c (gnat_write_global_declarations): Put a name 5322 on the dummy global variable. 5323 53242012-05-19 Eric Botcazou <ebotcazou@adacore.com> 5325 5326 * gcc-interface/decl.c (Has_Thiscall_Convention): New macro. 5327 (gnat_to_gnu_entity) <E_Subprogram_Type>: Test it to set the thiscall 5328 calling convention 5329 (get_minimal_subprog_decl): Likewise. 5330 (gnat_first_param_is_class): New predicate. 5331 5332 * gcc-interface/misc.c (gnat_handle_option): Fix formatting. 5333 * gcc-interface/Makefile.in: Likewise. 5334 53352012-05-18 Eric Botcazou <ebotcazou@adacore.com> 5336 5337 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an object at 5338 global level with unconstrained nominal subtype and a non-fixed size, 5339 make a variable for the size. 5340 53412012-05-15 Andris Pavenis <andris.pavenis@iki.fi> 5342 5343 PR ada/52494 5344 * s-taprop-dummy.adb (Specific): New package. 5345 53462012-05-15 Olivier Hainque <hainque@adacore.com> 5347 5348 * gcc-interface/Make-lang.in (COMMON_FLAGS_TO_PASS): Use WARN_CFLAGS 5349 instead of trying to mimic it. 5350 53512012-05-15 Robert Dewar <dewar@adacore.com> 5352 5353 * sem_ch5.adb, sem_util.adb, s-stposu.adb, exp_ch4.adb: Minor 5354 reformatting. 5355 53562012-05-15 Geert Bosch <bosch@adacore.com> 5357 5358 * uintp.adb (UI_Rem): Remove optimizations, as they are complex and are 5359 not needed. 5360 (Sum_Digits): Remove, no longer used. 5361 (Sum_Double_Digits): Likewise. 5362 53632012-05-15 Yannick Moy <moy@adacore.com> 5364 5365 * aspects.ads: Minor typo. 5366 53672012-05-15 Thomas Quinot <quinot@adacore.com> 5368 5369 * gnat_rm.texi (Scalar_Storage_Order): Fix RM reference. 5370 * sem_ch13.adb: Minor comment fix: incorrect RM reference. 5371 53722012-05-15 Eric Botcazou <ebotcazou@adacore.com> 5373 5374 * sem_prag.adb (Process_Atomic_Shared_Volatile): Propagate 5375 atomicity from an object to its underlying type only if it 5376 is composite. 5377 53782012-05-15 Ed Schonberg <schonberg@adacore.com> 5379 5380 * sem_ch5.adb (Analyze_Iterator_Specification): Set kind of 5381 loop variable after pre-analysis of iterator name, to prevent 5382 premature usage of loop variable. 5383 53842012-05-15 Ed Schonberg <schonberg@adacore.com> 5385 5386 * sem_util.adb (Is_Variable): In Ada 2012, an explicit 5387 dereference that is a rewriting of an expression whose type has 5388 a declared Implicit_Derenference aspect is a variable. 5389 53902012-05-15 Hristian Kirtchev <kirtchev@adacore.com> 5391 5392 * exp_ch4.adb (Insert_Dereference_Action): Reimplemented. The 5393 routine performs address and size adjustments for dereferences 5394 of heap-allocated controlled objects. This manipulation is needed 5395 in order to restore the original state of the memory at the time 5396 it was allocated by the finalization machinery. 5397 * rtsfind.ads: Add RE_Adjust_Controlled_Dereference to tables 5398 RE_Id and RE_Unit_Table. 5399 * sinfo.adb (Has_Dereference_Action): New routine. 5400 (Set_Has_Dereference_Action): New routine. 5401 * sinfo.ads: Add new semantic flag Has_Dereference_Action along 5402 its association in nodes. 5403 (Has_Dereference_Action): New routine and pragma Inline. 5404 (Set_Has_Dereference_Action): New routine and pragma Inline. 5405 * s-stposu.ads, s-stposu.adb (Adjust_Controlled_Dereference): New 5406 routine. 5407 54082012-05-15 Thomas Quinot <quinot@adacore.com> 5409 5410 * uintp.adb (Image_Uint): Use UI_Div_Rem to get quotient and 5411 remainder of U / Base in a single operation. 5412 54132012-05-15 Robert Dewar <dewar@adacore.com> 5414 5415 * exp_ch5.adb, inline.adb, sem_ch10.adb, prj.ads, sem_util.adb, 5416 a-ngelfu.ads, exp_ch4.adb, exp_ch6.adb, aspects.ads, sem_ch6.adb, 5417 vms_data.ads, exp_ch3.adb, prj-env.adb: Minor reformatting. 5418 54192012-05-15 Thomas Quinot <quinot@adacore.com> 5420 5421 * exp_ch4.adb (Has_Inferable_Discriminants): For a qualified 5422 expression, use correct node for test on the subtype denoted by 5423 the subtype mark. 5424 54252012-05-15 Eric Botcazou <ebotcazou@adacore.com> 5426 5427 * inline.adb (Scope_In_Main_Unit): Rename into... 5428 (In_Main_Unit_Or_Subunit): ...this. Also return 5429 true if the subprogram is within a subunit of the 5430 main unit. 5431 (Add_Inlined_Body): Adjust for above renaming. 5432 (Add_Inlined_Subprogram): Likewise. Pass the subprogram directly. 5433 (Analyze_Inlined_Bodies): Really set aside inlined subprograms 5434 not handled by Add_Inlined_Body. 5435 54362012-05-15 Ed Schonberg <schonberg@adacore.com> 5437 5438 * sem_ch10.adb (Expand_With_Clause): In the context of a generic 5439 package declaration, a private with-clause on a child unit implies 5440 that the implicit with clauses on its parents are private as well. 5441 54422012-05-15 Javier Miranda <miranda@adacore.com> 5443 5444 * sem_ch6.adb (Is_Interface_Conformant): Add missing call to 5445 Base_Type to handle subtypes. 5446 * exp_ch6.adb (Expand_Call): For calls located in thunks handle 5447 unchecked conversions of access types found in actuals. 5448 * exp_disp.adb (Expand_Interface_Thunk): Add missing unchecked 5449 conversion to actuals whose type is an access type. Done to 5450 avoid reporting spurious errors. 5451 54522012-05-15 Vincent Celier <celier@adacore.com> 5453 5454 * prj-env.adb (Create_Mapping): Ignore sources that are 5455 suppressed (Create_Mapping_File.Process): Ditto 5456 * prj-nmsc.adb (Add_Source): Update to take into 5457 account suppressed files that may hide inherited sources. 5458 (Mark_Excluded_Sources): Mark excluded sources of the current 5459 project as suppressed. 5460 * prj.ads (Source_Data): New Boolean component Suppressed, 5461 defaulted to False 5462 54632012-05-15 Thomas Quinot <quinot@adacore.com> 5464 5465 * exp_intr.adb: Minor reformatting. 5466 54672012-05-15 Thomas Quinot <quinot@adacore.com> 5468 5469 * gnat_rm.texi: Document attribute Scalar_Storage_Order. 5470 54712012-05-15 Javier Miranda <miranda@adacore.com> 5472 5473 * exp_ch3.adb (Build_Offset_To_Top): Modify the 5474 expansion of the offset_to_top functions to ensure that their 5475 profile is conformant with the profile specified in Ada.Tags. No 5476 change in functionality. 5477 54782012-05-15 Eric Botcazou <ebotcazou@adacore.com> 5479 5480 * inline.adb (Subp_Info): Remove Count and Next_Nopred 5481 components, add Processed component and move around Next component. 5482 (Add_Call): Reverse meaning of Successors table to the natural one. 5483 (Add_Inlined_Body): Do not inline a package if it is in the main unit. 5484 (Add_Inlined_Subprogram): Do not add the subprogram to the list if the 5485 package is in the main unit. Do not recurse on the successors. 5486 (Add_Subp): Adjust to new contents of Subp_Info. 5487 (Analyze_Inlined_Bodies): Do not attempt 5488 to compute a topological order on the list of inlined subprograms, 5489 but compute the transitive closure from the main unit instead. 5490 (Get_Code_Unit_Entity): Always return the spec for a package. 5491 54922012-05-15 Yannick Moy <moy@adacore.com> 5493 5494 * aspects.ads: Minor addition of comments to provide info on 5495 how to add new aspects. 5496 54972012-05-15 Thomas Quinot <quinot@adacore.com> 5498 5499 * osint.ads: Minor reformatting. 5500 55012012-05-15 Thomas Quinot <quinot@adacore.com> 5502 5503 * exp_ch5.adb, exp_pakd.adb, sem_util.adb, sem_util.ads 5504 (Expand_Assign_Array): Handle the case of a packed bit array within a 5505 record with reverse storage order (assign element by element in that 5506 case). 5507 (In_Reverse_Storage_Order_Record): New subprogram, 5508 code extracted from Exp_Pakd. 5509 55102012-05-15 Yannick Moy <moy@adacore.com> 5511 5512 * a-ngelfu.ads: Add postconditions using Ada 2012 5513 aspect syntax, reflecting some of the RM requirements for these 5514 functions, from Annex A.5.1 or G.2.4. 5515 55162012-05-15 Thomas Quinot <quinot@adacore.com> 5517 5518 * adaint.c: Minor fix: move misplaced comment. 5519 55202012-05-15 Doug Rupp <rupp@adacore.com> 5521 5522 * vms_data.ads: Enhance help for /IMMEDIATE_ERRORS to discourage 5523 use by customers. 5524 55252012-05-15 Tristan Gingold <gingold@adacore.com> 5526 5527 * a-exextr.adb: Add comment. 5528 55292012-05-15 Ed Schonberg <schonberg@adacore.com> 5530 5531 * sem_ch3.adb: Minor reformatting (remove long dead code). 5532 55332012-05-15 Ed Schonberg <schonberg@adacore.com> 5534 5535 * aspects.adb, aspects.ads: Add aspects for Convention, Export, 5536 External_Name, Import, and Link_Name. 5537 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): if the 5538 pragma comes from an aspect specification, the entity is the 5539 first argument. 5540 * sem_prag.adb (Analyze_Pragma, cases Pragma_Export and 5541 Pragma_Import): if the pragma comes from an aspect specification, 5542 the entity is the first argument, and the second has the value 5543 True by default. 5544 * sem_ch13.adb (Analyze_Aspect_Specifications): generate pragam 5545 for aspect Convention. Add placeholders for Link_Name and 5546 External_Name. 5547 55482012-05-15 Hristian Kirtchev <kirtchev@adacore.com> 5549 5550 * exp_ch9.adb (Expand_N_Asynchronous_Select): Extract the statements 5551 of the abortable part and triggering alternative after being processed 5552 for controlled objects. 5553 (Expand_N_Timed_Entry_Call): Code and comment reformatting. 5554 55552012-05-15 Robert Dewar <dewar@adacore.com> 5556 5557 * sem_util.adb: Minor code reorganization. 5558 55592012-05-15 Robert Dewar <dewar@adacore.com> 5560 5561 * exp_ch7.adb, exp_ch11.adb, exp_ch11.ads: Minor reformatting. 5562 55632012-05-15 Thomas Quinot <quinot@adacore.com> 5564 5565 * sem_res.adb (Resolve): Enforce E.2.2(11/2) and E.2.2(12) for 5566 'Unrestricted_Access and 'Unchecked_Access (not just 'Access): 5567 even in those cases, a remote access type may only designate a 5568 remote subprogram. 5569 55702012-05-15 Thomas Quinot <quinot@adacore.com> 5571 5572 * sem_util.adb, sem_util.ads, sem_cat.adb: Minor refactoring. 5573 (Enclosing_Lib_Unit_Node): Rename to Enclosing_Comp_Unit_Node. 5574 55752012-05-15 Ed Schonberg <schonberg@adacore.com> 5576 5577 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Remove obsolete 5578 checks on nested inlined subprograms. 5579 55802012-05-15 Tristan Gingold <gingold@adacore.com> 5581 5582 * fe.h (Get_RT_Exception_Name): Declare. 5583 55842012-05-15 Tristan Gingold <gingold@adacore.com> 5585 5586 * raise-gcc.c (db_region_for): Use %p + cast to avoid warnings. 5587 (get_region_description_for): Likewise. 5588 (db_action_for): Likewise. 5589 (get_call_site_action_for): Likewise. 5590 (get_ttype_entry_for): Remove useless 'const'. 5591 (PERSONALITY_FUNCTION): Add ATTRIBUTE_UNUSED on uw_exception_class. 5592 55932012-05-15 Tristan Gingold <gingold@adacore.com> 5594 5595 * a-exextr.adb (Unhandled_Exception_Terminate): Save occurrence 5596 on the stack to avoid a dynamic memory allocation. 5597 55982012-05-15 Bob Duff <duff@adacore.com> 5599 5600 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Move initialization of 5601 E_Stats and D_Stats after Process_Statements_For_Controlled_Objects, 5602 because those calls can destroy the Statements list. 5603 56042012-05-15 Tristan Gingold <gingold@adacore.com> 5605 5606 * fe.h (Get_RT_Exception_Name): Define. 5607 * types.ads (RT_Exception_Code): Update comment. 5608 * exp_ch11.adb, exp_ch11.ads (Get_RT_Exception_Name): New 5609 procedure to get the name of the rcheck subprograms. 5610 * a-except-2005.adb (Rcheck_xx): Rename. 5611 * a-except.adb Likewise, but also keep the old Rcheck_nn routines 5612 for bootstrap. 5613 * arith64.c (__gnat_mulv64): Use __gnat_rcheck_CE_Overflow_Check 5614 instead of __gnat_rcheck_10. 5615 * gcc-interface/trans.c (build_raise_check): Use Get_RT_Exception_Name 5616 to create the __gnat_rcheck routines name. 5617 * gcc-interface/Make-lang.in: Update dependencies. 5618 56192012-05-15 Tristan Gingold <gingold@adacore.com> 5620 5621 * exp_ch7.adb (Build_Exception_Handler): Save current 5622 occurrence only if -gnateE. 5623 (Build_Object_Declaration): Declare E_Id only if -gnateE. 5624 (Build_Raise_Statement): Call Raise_From_Controlled_Operation only if 5625 -gnateE (else raise PE). 5626 * s-soflin.adb (Save_Library_Occurrence): Handle null occurrence 5627 access. 5628 * a-except-2005.adb (Reraise_Library_Exception_If_Any): Call 5629 Raise_From_Controlled_Operation only if the saved occurrence is 5630 not null, otherwise raise PE. 5631 56322012-05-15 Yannick Moy <moy@adacore.com> 5633 5634 * exp_alfa.ads: Add comments describing the Alfa mode. 5635 56362012-05-15 Tristan Gingold <gingold@adacore.com> 5637 5638 * s-soflin.ads, s-soflin.adb (Save_Library_Occurrence): Parameter 5639 E is now of type Exception_Occurrence_Access. 5640 * exp_ch7.ads, exp_ch7.adb (Build_Exception_Handler): Adjust generated 5641 call to Save_Library_Occurrence. 5642 56432012-05-15 Thomas Quinot <quinot@adacore.com> 5644 5645 * exp_ch4.adb (Rewrite_Coextension): Use Insert_Action to 5646 insert temporary variable decl at the proper place in the tree. 5647 56482012-05-15 Hristian Kirtchev <kirtchev@adacore.com> 5649 5650 * g-calend.adb (Split_At_Locale): New routine. 5651 (Time_Of_At_Locale): New routine. 5652 * g-calend.ads (Split_At_Locale): New routine. 5653 (Time_Of_At_Locale): New routine. 5654 56552012-05-15 Gary Dismukes <dismukes@adacore.com> 5656 5657 * a-except.ads: Minor reformatting. 5658 56592012-05-15 Ed Schonberg <schonberg@adacore.com> 5660 5661 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): If the loop 5662 parameter specification is part of a quantified expression, and it 5663 already carries a type, do not repeat the analysis to preserve 5664 type information: a range attribute reference may have been 5665 rewritten as a range with static bounds, and its re-analysis may 5666 type it as Integer by default, instead of the original index type. 5667 56682012-05-15 Robert Dewar <dewar@adacore.com> 5669 5670 * s-osprim-mingw.adb: Minor reformatting. 5671 56722012-05-15 Arnaud Charlet <charlet@adacore.com> 5673 5674 * a-except.adb, a-except.ads (Reraise_Library_Exception_If_Any): New. 5675 Mark this unit preelaborate. 5676 * s-soflin.ads: Make package Preelaborate. 5677 56782012-05-15 Robert Dewar <dewar@adacore.com> 5679 5680 * s-osprim-mingw.adb, sem_eval.adb, a-calend-vms.ads: Minor reformatting 5681 56822012-05-15 Ed Schonberg <schonberg@adacore.com> 5683 5684 * sem_eval.adb (Subtypes_Statically_Match): In Ada 2012, static 5685 matching requires matching of static subtype predicates as well. 5686 56872012-05-15 Ed Schonberg <schonberg@adacore.com> 5688 5689 * sem_case.adb (Analyze_Choices): If the subtype of the 5690 expression has a non-static predicate, the case alternatives 5691 must cover the base type. 5692 56932012-05-15 Tristan Gingold <gingold@adacore.com> 5694 5695 * a-calend-vms.ads: Add pragma export to Split and Time_Of. 5696 Merge comments from a-calend.ads to minimize differences. 5697 56982012-05-15 Sergey Rybin <rybin@adacore.com frybin> 5699 5700 * gnat_ugn.texi: gnatmetric: add a small example that demonstrates 5701 the difference between control coupling and unit coupling. 5702 57032012-05-15 Tristan Gingold <gingold@adacore.com> 5704 5705 * bindgen.adb (Gen_Header): Remove code to emit LE_Set. 5706 (Gen_Finalize_Library): Replace test with 5707 a call to __gnat_reraise_library_exception_if_any. 5708 * s-soflin.ads (Library_Exception): Do not export. 5709 (Library_Exception_Set): Likewise. 5710 * a-except-2005.ads, a-except-2005.adb 5711 (Reraise_Library_Exception_If_Any): New procedure. 5712 57132012-05-15 Geert Bosch <bosch@adacore.com> 5714 5715 * sem_ch9.adb (Allows_Lock_Free_Implementation): out or in out 5716 parameters can be access types as well, not just scalar types, 5717 so relax the test to Is_Elementary_Type. 5718 57192012-05-15 Bob Duff <duff@adacore.com> 5720 5721 * s-atacco.ads s-atacco.adb: Replace pragma Elaborate_Body 5722 with pragma No_Body. 5723 (Xyz): Remove Xyz, which is apparently unnecessary. 5724 57252012-05-15 Tristan Gingold <gingold@adacore.com> 5726 5727 * a-calend-vms.adb: Complete previous change. 5728 57292012-05-15 Bob Duff <duff@adacore.com> 5730 5731 * s-win32.ads: Minor comment fix. 5732 * s-osprim-mingw.adb: Minor editing. 5733 57342012-05-15 Robert Dewar <dewar@adacore.com> 5735 5736 * exp_ch9.adb, sem_ch9.adb, sem_ch13.adb: Minor reformatting. 5737 57382012-05-15 Robert Dewar <dewar@adacore.com> 5739 5740 * g-comlin.adb, g-comlin.ads: Minor reformatting. 5741 57422012-05-15 Vincent Pucci <pucci@adacore.com> 5743 5744 * aspects.adb, aspects.adb: Reordering of the Aspect_Idi list. New 5745 aspect Aspect_Lock_Free. 5746 * einfo.adb, einfo.ads: New flag Uses_Lock_Free (flag 188). 5747 (Set_Uses_Lock_Free): New routine. 5748 (Uses_Lock_Free): New routine. 5749 * exp_ch7.adb (Is_Simple_Protected_Type): Return False for 5750 lock-free implementation. 5751 * exp_ch9.adb (Allows_Lock_Free_Implementation): Moved to Sem_Ch9. 5752 (Build_Lock_Free_Unprotected_Subprogram_Body): Protected 5753 procedure uses __sync_synchronise. Check both Object_Size 5754 and Value_Size. 5755 (Expand_N_Protected_Body): Lock_Free_Active 5756 renames Lock_Free_On. 5757 (Expand_N_Protected_Type_Declaration): 5758 _Object field removed for lock-free implementation. 5759 (Install_Private_Data_Declarations): Protection object removed 5760 for lock-free implementation. 5761 (Make_Initialize_Protection): 5762 Protection object initialization removed for lock-free implementation. 5763 * rtsfind.ads: RE_Atomic_Synchronize and RE_Relaxed added. 5764 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect_Lock_Free 5765 analysis added. 5766 * sem_ch9.adb (Allows_Lock_Free_Implementation): New routine. 5767 (Analyze_Protected_Body): Allows_Lock_Free_Implementation call added. 5768 (Analyze_Protected_Type_Declaration): 5769 Allows_Lock_Free_Implementation call added. 5770 (Analyze_Single_Protected_Declaration): Second analysis of 5771 aspects removed. 5772 * s-atopri.ads: Header added. 5773 (Atomic_Synchronize): New routine. 5774 57752012-05-15 Robert Dewar <dewar@adacore.com> 5776 5777 * exp_ch7.ads: Add comment. 5778 57792012-05-15 Hristian Kirtchev <kirtchev@adacore.com> 5780 5781 * a-calend.adb (Day_Of_Week): The routine once again treats 5782 all dates as historic. (Formatting_Operations.Split): All 5783 calls to UTC_Time_Offset are now controlled through formal 5784 parameter Is_Historic. (Formatting_Operations.Time_Of): 5785 All calls to UTC_Time_Offset are now handled through 5786 formal parameter Is_Historic. 5787 (Split): Update the call to Formatting_Operations.Split. 5788 (Time_Of): Update the call to Formatting_Operations.Time_Of. 5789 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of. 5790 (To_Strict_Tm): Update the call to Formatting_Operations.Split. 5791 * a-calend.ads (Split): Add new formal Is_Historic along with 5792 comment on usage. This routine is now exported for the purposes 5793 of GNAT.Calendar.Locale. 5794 (Time_Of): Remove defaults. Add new 5795 formal Is_Historic along with comment on usage. This routine is 5796 now exported for the purposes of GNAT.Calendar.Locale. 5797 * a-calend-vms.adb (Split): Update the call to 5798 Formatting_Operations.Split. 5799 (Time_Of): Update the call to Formatting_Operations.Time_Of. 5800 * a-calend-vms.ads (Split): Add new formal Is_Historic along 5801 with comment on usage. (Time_Of): Remove defaults. Add new 5802 formal Is_Historic along with comment on usage. 5803 * a-calfor.adb (Split): Update the call to 5804 Formatting_Operations.Split. 5805 (Time_Of): Update the call to Formatting_Operations.Time_Of. 5806 58072012-05-15 Vincent Celier <celier@adacore.com> 5808 5809 * prj-nmsc.adb (Add_Source): Always add the source if it is 5810 excluded, to avoid incorrect duplicate checks. 5811 58122012-05-15 Yannick Moy <moy@adacore.com> 5813 5814 * sem_aux.ads: Correct typo. 5815 * sem_eval.adb (Compile_Time_Known_Value): Return False in Alfa 5816 mode for a deferred constant when outside of the scope of its 5817 full view. 5818 58192012-05-15 Emmanuel Briot <briot@adacore.com> 5820 5821 * g-comlin.adb, g-comlin.ads (Define_Switch): Allow specifying the name 5822 of the argument, for the automatic help message. 5823 (Getopt): do not systematically initialize switches with string values 5824 to the empty string, when the user has already specified a default. 5825 58262012-05-14 Bernd Schmidt <bernds@codesourcery.com> 5827 5828 * gcc-interface/utils.c (DEF_ATTR_STRING): New. 5829 58302012-05-14 Manuel López-Ibáñez <manu@gcc.gnu.org> 5831 5832 PR 53063 5833 * gcc-interface/misc.c: Include opts.h and options.h before tm.h. 5834 (gnat_handle_option): Call lang-specific generated function. 5835 58362012-05-13 Manuel López-Ibáñez <manu@gcc.gnu.org> 5837 5838 * gcc-interface/lang.opt (I): Comment out help text with no effect. 5839 (nostdinc): Comment out help text with no effect. 5840 58412012-05-12 Eric Botcazou <ebotcazou@adacore.com> 5842 5843 * gcc-interface/Makefile.in (TOOLS_LIBS): Add ../../ggc-none.o. 5844 58452012-05-11 Manuel López-Ibáñez <manu@gcc.gnu.org> 5846 5847 PR 53063 5848 * gcc-interface/misc.c (gnat_parse_file): Move before ... 5849 (gnat_handle_option): ... this. Use handle_generated_option. 5850 58512012-05-10 Richard Guenther <rguenther@suse.de> 5852 5853 * gcc-interface/cuintp.c (UI_From_gnu): Remove TYPE_IS_SIZETYPE use. 5854 58552012-05-06 Tristan Gingold <gingold@adacore.com> 5856 5857 * gcc-interface/trans.c (gigi): Decorate reraise_zcx_decl. 5858 58592012-05-06 Eric Botcazou <ebotcazou@adacore.com> 5860 5861 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the renaming 5862 case, use the padded type if the renamed object has an unconstrained 5863 type with default discriminant. 5864 58652012-05-06 Eric Botcazou <ebotcazou@adacore.com> 5866 5867 * gcc-interface/trans.c (Loop_Statement_to_gnu): Also handle invariant 5868 conditions with only one bound. 5869 (Raise_Error_to_gnu): Likewise. New function extracted from... 5870 (gnat_to_gnu) <N_Raise_Constraint_Error>: ...here. Call above function 5871 in regular mode only. 5872 58732012-05-06 Eric Botcazou <ebotcazou@adacore.com> 5874 5875 * gcc-interface/misc.c (gnat_post_options): Disable caret by default. 5876 58772012-05-06 Eric Botcazou <ebotcazou@adacore.com> 5878 5879 * gcc-interface/gigi.h (make_packable_type): Declare. 5880 (make_type_from_size): Likewise. 5881 (relate_alias_sets): Likewise. 5882 (maybe_pad_type): Adjust. 5883 (init_gnat_to_gnu): Delete. 5884 (destroy_gnat_to_gnu): Likewise. 5885 (init_dummy_type): Likewise. 5886 (destroy_dummy_type): Likewise. 5887 (init_gnat_utils): Declare. 5888 (destroy_gnat_utils): Likewise. 5889 (ceil_pow2): New inline function. 5890 * gcc-interface/decl.c (gnat_to_gnu_entity): Use ceil_pow2. 5891 <object>: Pass True for the final processing of alignment and size. 5892 <E_Subprogram_Type>: Only create the TYPE_DECL for a padded return 5893 type if necessary. 5894 (round_up_to_align): Delete. 5895 (ceil_alignment): Likewise. 5896 (relate_alias_sets): Move to... 5897 (make_aligning_type): Likewise. 5898 (make_packable_type): Likewise. 5899 (maybe_pad_type): Likewise. 5900 (make_type_from_size): Likewise. 5901 * gcc-interface/utils.c (MAX_BITS_PER_WORD): Delete. 5902 (struct pad_type_hash): New type. 5903 (pad_type_hash_table): New static variable. 5904 (init_gnat_to_gnu): Merge into... 5905 (init_dummy_type): Likewise. 5906 (init_gnat_utils): ...this. New function. 5907 (destroy_gnat_to_gnu): Merge into... 5908 (destroy_dummy_type): Likewise. 5909 (destroy_gnat_utils): ...this. New function. 5910 (pad_type_hash_marked_p): New function. 5911 (pad_type_hash_hash): Likewise. 5912 (pad_type_hash_eq): Likewise. 5913 (relate_alias_sets): ...here. 5914 (make_aligning_type): Likewise. 5915 (make_packable_type): Likewise. 5916 (maybe_pad_type): Likewise. Change same_rm_size parameter into 5917 set_rm_size; do not set TYPE_ADA_SIZE if it is false. Do not set 5918 null as Ada size. Do not set TYPE_VOLATILE on the padded type. If it 5919 is complete and has constant size, canonicalize it. Bail out earlier 5920 if a warning need not be issued. 5921 (make_type_from_size): Likewise. 5922 <INTEGER_TYPE>: Bail out if size is too large 5923 (gnat_types_compatible_p): Do not deal with padded types. 5924 (convert): Compare main variants for padded types. 5925 * gcc-interface/trans.c (gigi): Call {init|destroy}_gnat_utils. 5926 (gnat_to_gnu): Do not convert at the end for a call to a function that 5927 returns an unconstrained type with default discriminant. 5928 (Attribute_to_gnu) <Attr_Size>: Simplify handling of padded objects. 5929 * gcc-interface/utils2.c (build_binary_op) <MODIFY_EXPR>: Likewise. 5930 Do not use the padded type if it is BLKmode and the inner type is 5931 non-BLKmode. 5932 59332012-05-02 Pascal Obry <obry@adacore.com> 5934 5935 Revert 5936 2012-02-24 Dave Korn <dave.korn.cygwin@gmail.com> 5937 5938 * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New 5939 Windows-specific make variable. 5940 (WIN_SO_INSTALL_DIR [windows targets]): Likewise. 5941 (install-gnatlib): Respect the above during installation when set, 5942 and also install any windows import library that has been built. 5943 (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also 5944 build a corresponding import library. 5945 59462012-04-30 Jan Hubicka <jh@suse.cz> 5947 5948 * gcc-interface/utils.c (rest_of_subprog_body_compilation): Update 5949 comment. 5950 (gnat_write_global_declarations): Use finalize_compilation_unit. 5951 59522012-04-30 Eric Botcazou <ebotcazou@adacore.com> 5953 5954 * gcc-interface/decl.c (gnat_to_gnu_entity): In type annotation mode, 5955 do not adjust the size of a tagged type if there is a representation 5956 clause on it. Otherwise, round the adjustment up to the alignment 5957 of the first field and use the appropriate helper routine. 5958 (maybe_pad_type): Do not warn in type annotation mode on a tagged type. 5959 (gnat_to_gnu_field): Do not error out under the same circumstances. 5960 (annotate_rep): In type annotation mode, do not adjust the offset of 5961 components of a tagged type with representation clause. Otherwise, 5962 round the adjustment up to the alignment of the first field. 5963 59642012-04-30 Eric Botcazou <ebotcazou@adacore.com> 5965 5966 * gcc-interface/utils.c (finish_record_type): Force the traditional GCC 5967 layout for bitfields on the type if it is packed or has a representation 5968 clause and an alternate layout is available. 5969 59702012-04-30 Eric Botcazou <ebotcazou@adacore.com> 5971 5972 * gcc-interface/gigi.h (mark_out_of_scope): Delete. 5973 (destroy_gnat_to_gnu): Declare. 5974 (destroy_dummy_type): Likewise. 5975 * gcc-interface/decl.c (mark_out_of_scope): Delete. 5976 * gcc-interface/utils.c (destroy_gnat_to_gnu): New function. 5977 (destroy_dummy_type): Likewise. 5978 * gcc-interface/trans.c (gnat_validate_uc_list): New variable. 5979 (gigi): Call validate_unchecked_conversion on gnat_validate_uc_list 5980 after the translation is completed. Call destroy_gnat_to_gnu and 5981 destroy_dummy_type at the end. 5982 (Subprogram_Body_to_gnu): Do not call mark_out_of_scope. 5983 (gnat_to_gnu) <N_Block_Statement>: Likewise. 5984 <N_Validate_Unchecked_Conversion>: Do not process the node, only push 5985 it onto gnat_validate_uc_list. 5986 (validate_unchecked_conversion): New function. 5987 59882012-04-26 Tristan Gingold <gingold@adacore.com> 5989 5990 * gcc-interface/Make-lang.in: Update dependencies. 5991 Remove s-traceb and tracebak objects from gnat1 and gnatbind (not used). 5992 Remove s-tasdeb and s-vaflop rules (not used). 5993 59942012-04-26 Olivier Hainque <hainque@adacore.com> 5995 5996 * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Default to 5997 DOUBLE_TYPE_SIZE instead of LONG_DOUBLE_TYPE_SIZE. 5998 59992012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6000 6001 * a-calend.adb (Day_Of_Week): Keep the internal 6002 usage of UTC_Time_Offset consistent with Time_Of and Split. 6003 60042012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6005 6006 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Do not freeze 6007 the loop variable while preanalyzing a quantified expression. 6008 60092012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6010 6011 * a-calend.adb (Split, Time_Of): Rename parameter Is_Ada_05 6012 to Use_TZ to better illustrate its function. Update all 6013 references to the parameter. 6014 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of. 6015 * a-calend.ads (Split, Time_Of): Rename parameter Is_Ada_05 6016 to Use_TZ to better illustrate its function. Update the related 6017 comment on usage. 6018 * a-calend-vms.adb (Split, Time_Of): Rename parameter 6019 Is_Ada_05 to Use_TZ to better illustrate its function. Update 6020 all references to the parameter. 6021 (To_Ada_Time): Update the call to Formatting_Operations.Time_Of. 6022 * a-calend-vms.ads (Split, Time_Of): Rename parameter Is_Ada_05 6023 to Use_TZ to better illustrate its function. Update the related 6024 comment on usage. 6025 * a-calfor.adb (Split, Time_Of): Update the call to 6026 Formatting_Operations.Time_Of. 6027 * sysdep.c (__gnat_localtime_tzoff): Dereference pointer 6028 "is_historic" and rewrite the check as a comparison. Add a 6029 comment on flag values. 6030 60312012-04-26 Robert Dewar <dewar@adacore.com> 6032 6033 * exp_ch2.adb, sem_ch8.adb: Minor reformatting. 6034 60352012-04-26 Vasiliy Fofanov <fofanov@adacore.com> 6036 6037 * a-stzunb-shared.adb, gnat_ugn.texi, a-strunb-shared.adb, 6038 a-strunb-shared.ads, uintp.adb, a-stwiun-shared.adb, 6039 a-stwiun-shared.ads, a-cbhama.ads, vms_data.ads, a-cobove.adb, 6040 a-convec.adb, sem_ch13.adb, a-cbhase.ads: Fix common misuses of the 6041 word "then" where "than" should be used in English. 6042 60432012-04-26 Robert Dewar <dewar@adacore.com> 6044 6045 * sem_ch5.adb (Check_Unreachable_Code): Skip past pragmas. 6046 60472012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6048 6049 * s-finroo.ads: Remove with clause for 6050 Ada.Streams. Type Root_Controlled is now abstract tagged null 6051 record. Remove internal package Stream_Attributes. Root_Controlled 6052 doesn't need stream attribute redeclaration and avoids the 6053 dependency on streams. 6054 60552012-04-26 Tristan Gingold <gingold@adacore.com> 6056 6057 * adaint.c (to_host_path_spec): Removed (unused). 6058 Minor reformatting. 6059 60602012-04-26 Steve Baird <baird@adacore.com> 6061 6062 * gnat_rm.texi Improve description of Valid_Scalars attribute. 6063 60642012-04-26 Ed Schonberg <schonberg@adacore.com> 6065 6066 * sem_ch6.adb (Can_Override_Operator): If the formal is a 6067 generic type the operator cannot be overriding. 6068 60692012-04-26 Ed Schonberg <schonberg@adacore.com> 6070 6071 * sem_ch8.adb (Spec_Reloaded_For_Body): Check whether the type 6072 is declared in a package specification, and current unit is the 6073 corresponding package body. The use clauses themselves may be 6074 within a nested package. 6075 60762012-04-26 Bob Duff <duff@adacore.com> 6077 6078 * exp_ch2.adb (Param_Entity): Take into account the case where 6079 the type of the entry parameter has a representation clause. 6080 60812012-04-26 Ed Schonberg <schonberg@adacore.com> 6082 6083 * gnat_ugn.texi: Tweak dimensionality doc. 6084 60852012-04-26 Robert Dewar <dewar@adacore.com> 6086 6087 * sem_eval.adb: Minor reformatting. 6088 60892012-04-26 Robert Dewar <dewar@adacore.com> 6090 6091 * einfo.adb, einfo.ads, sem_res.adb, sem_ch4.adb, 6092 sem_eval.adb: Minor reformatting. 6093 60942012-04-26 Thomas Quinot <quinot@adacore.com> 6095 6096 * freeze.adb: Minor change in error wording. 6097 60982012-04-26 Ed Schonberg <schonberg@adacore.com> 6099 6100 * gnat_ugn.texi: Documentation on dimensional analysis. 6101 61022012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6103 6104 * einfo.adb, einfo.ads: Remove synthesized attribute 6105 Proper_First_Index along with its associations in various nodes. 6106 (Proper_First_Index): Removed. 6107 * sem_ch4.adb (Analyze_Slice): Alphabetize constants. Add new 6108 local variable Index_Type. The index type of a string literal 6109 subtype is that of the stored low bound. 6110 * sem_eval (Get_Static_Length): Remove the use of Proper_First_Index. 6111 * sem_res.adb (Resolve_Slice): Alphabetize constants. Add 6112 new local variable Index_Type. The index type of a 6113 string literal subtype is that of the stored low bound. 6114 (Set_String_Literal_Subtype): Code reformatting. 6115 61162012-04-26 Robert Dewar <dewar@adacore.com> 6117 6118 * exp_aggr.adb: Minor reformatting. 6119 61202012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6121 6122 * exp_ch7.adb (Expand_Cleanup_Actions): Update the call to 6123 Requires_Cleanup_Actions. 6124 * exp_util.adb (Requires_Cleanup_Actions (List_Id; Boolean; 6125 Boolean)): Rename formal parameter For_Package to Lib_Level to 6126 better reflect its purpose. Update the related comment and all 6127 occurrences of For_Package in the body. 6128 (Requires_Cleanup_Actions 6129 (Node_Id; Boolean)): Add new formal parameter Lib_Level. Add 6130 local constant At_Lib_Level to keep monitor whether the path 6131 taken from the top-most context to the current construct involves 6132 package constructs. Update all calls to Requires_Cleanup_Actions. 6133 * exp_util.ads (Requires_Cleanup_Actions): Add new formal 6134 parameter Lib_Level and associated comment. 6135 61362012-04-26 Ed Schonberg <schonberg@adacore.com> 6137 6138 * sem_ch6.adb (Process_Formals): If the type of the formal is 6139 a non null access type, mark the generated subtype as having a 6140 delayed freeze only if the designated type is not frozen yet. 6141 61422012-04-26 Vincent Celier <celier@adacore.com> 6143 6144 * prj-attr.adb: New package Clean with attributes 6145 Object_Artifact_Extensions and Source_Artifact_Extensions. 6146 * prj-nmsc.adb (Process_Clean): Process new package Clean 6147 * prj.ads (Language_Config): New components 6148 Clean_Object_Artifacts and Clean_Source_Artifacts. 6149 * snames.ads-tmpl: New standard names Clean, 6150 Object_Artifact_Extensions and Source_Artifact_Extensions. 6151 61522012-04-26 Hristian Kirtchev <kirtchev@adacore.com> 6153 6154 * einfo.adb (Proper_First_Index): Moved from Sem_Util. 6155 * einfo.ads: Add new synthesized attribute Proper_First_Index 6156 along with usage in nodes. 6157 (Proper_First_Index): Moved from Sem_Util. 6158 * sem_util.ads, sem_util.adb (Proper_First_Index): Moved to Einfo. 6159 61602012-04-26 Gary Dismukes <dismukes@adacore.com> 6161 6162 * layout.adb (Layout_Component_List): Test for the case of a 6163 single variant and the size of its component list was computed 6164 as an integer literal, and use that size (which is in bits) 6165 as is rather than converting to storage units. 6166 61672012-04-26 Robert Dewar <dewar@adacore.com> 6168 6169 * exp_aggr.adb: Minor reformatting. 6170 61712012-04-26 Robert Dewar <dewar@adacore.com> 6172 6173 * sem_util.adb: Minor reformatting. 6174 61752012-04-26 Thomas Quinot <quinot@adacore.com> 6176 6177 * exp_aggr.adb, exp_pakd.adb (Setup_Inline_Packed_Array_Reference, 6178 Packed_Array_Aggregate_Handled.Get_Component_Val): 6179 Reverse bit numbering within PAT when Reverse_Storage_Order 6180 applies to the enclosing record. 6181 61822012-04-26 Thomas Quinot <quinot@adacore.com> 6183 6184 * freeze.adb (Freeze_Record_Type): Improve error message for 6185 Scalar_Storage_Order inconsistent with Bit_Order. 6186 61872012-04-25 Gary Dismukes <dismukes@adacore.com> 6188 6189 * exp_ch9.adb: Add comments on the usage of the 6190 lock-free data structures. 6191 61922012-04-25 Vincent Pucci <pucci@adacore.com> 6193 6194 * exp_intr.adb (Expand_Shift): Convert the left 6195 operand and the operator when the type of the call differs from 6196 the type of the operator. 6197 61982012-04-25 Geert Bosch <bosch@adacore.com> 6199 6200 * stand.ads: Minor comment fix. 6201 62022012-04-25 Hristian Kirtchev <kirtchev@adacore.com> 6203 6204 * sem_ch4.adb (Analyze_Slice): Handle the case where the prefix 6205 is a string literal. Retrieve the first index from the base type 6206 when slicing a string literal. 6207 * sem_ch12.adb (Check_Private_View): Move the initialization 6208 of the type inside the loop to reflect the changing index. 6209 * sem_eval.adb (Eval_Relational_Op): Retrieve the first index 6210 from the base type when dealing with a string literal. 6211 * sem_res.adb (Resolve_Slice): Retrieve the first index from 6212 the base type when slicing a string literal. 6213 * sem_util.adb (Is_Internally_Generated_Renaming): New routine. 6214 (Is_Object_Reference): String literals may act 6215 as object references only when they are renamed internally. 6216 (Proper_First_Index): New routine. 6217 * sem_util.ads (Proper_First_Index): New routine. 6218 62192012-04-25 Robert Dewar <dewar@adacore.com> 6220 6221 * sem_ch3.adb, csinfo.adb, lib-writ.adb, sem_ch12.adb, 6222 lib-xref.adb: Minor reformatting. 6223 62242012-04-25 Hristian Kirtchev <kirtchev@adacore.com> 6225 6226 * exp_ch9.adb: Rename Lock_Free_Sub_Type 6227 to Lock_Free_Subprogram. Remove type Subprogram_Id. 6228 Rename LF_Sub_Table to Lock_Free_Subprogram_Table. 6229 (Allow_Lock_Free_Implementation): Renamed to 6230 Allows_Lock_Free_Implementation. Update the comment on 6231 lock-free restrictions. Code clean up and restructuring. 6232 (Build_Lock_Free_Protected_Subprogram_Body): Update the 6233 profile and related comments. Code clean up and restructuring. 6234 (Build_Lock_Free_Unprotected_Subprogram_Body): Update the 6235 profile and related comments. Code clean up and restructuring. 6236 (Comp_Of): Removed. 6237 62382012-04-25 Vincent Celier <celier@adacore.com> 6239 6240 * sem_ch12.adb (Inherit_Context): Compare library units, not 6241 names of units, when checking if a unit is already in the context. 6242 62432012-04-25 Thomas Quinot <quinot@adacore.com> 6244 6245 * sem_ch3.adb: Reverse_Storage_Order must be propagated to 6246 untagged derived record types. 6247 62482012-04-25 Ed Schonberg <schonberg@adacore.com> 6249 6250 * lib-xref.adb: Adjust position of end label. 6251 62522012-04-22 Jan Hubicka <jh@suse.cz> 6253 6254 * gcc-interface/utils.c (gnat_write_global_declarations): Do not mark 6255 needed node. 6256 62572012-04-20 Jan Hubicka <jh@suse.cz> 6258 6259 * gcc-interface/utils.c (gnat_write_global_declarations): Update for new 6260 force_output placement. 6261 62622012-04-14 Jan Hubicka <jh@suse.cz> 6263 6264 * gcc-interface/trans.c (finalize_nrv): Update field referenced for new 6265 cgraph/varpool layout. 6266 62672012-04-09 Mike Stump <mikestump@comcast.net> 6268 6269 * a-assert.ads: Remove execute permission. 6270 * a-chacon.ads: Likewise. 6271 * a-coteio.ads: Likewise. 6272 * a-envvar.ads: Likewise. 6273 * a-exetim-mingw.ads: Likewise. 6274 * a-fzteio.ads: Likewise. 6275 * a-izteio.ads: Likewise. 6276 * a-lcteio.ads: Likewise. 6277 * a-llctio.ads: Likewise. 6278 * a-scteio.ads: Likewise. 6279 * a-suenco.ads: Likewise. 6280 * a-suenst.ads: Likewise. 6281 * a-suewst.ads: Likewise. 6282 * a-suezst.ads: Likewise. 6283 * a-tirsfi.ads: Likewise. 6284 * a-wichha.ads: Likewise. 6285 * a-zchara.ads: Likewise. 6286 * a-zchhan.ads: Likewise. 6287 * a-zchuni.ads: Likewise. 6288 * a-zrstfi.ads: Likewise. 6289 * aspects.ads: Likewise. 6290 * g-byorma.ads: Likewise. 6291 * g-decstr.ads: Likewise. 6292 * g-encstr.ads: Likewise. 6293 * g-spchge.ads: Likewise. 6294 * g-u3spch.ads: Likewise. 6295 * g-wispch.ads: Likewise. 6296 * g-zspche.ads: Likewise. 6297 * namet-sp.ads: Likewise. 6298 * s-os_lib.ads: Likewise. 6299 * s-regexp.ads: Likewise. 6300 * s-regpat.ads: Likewise. 6301 * s-string.ads: Likewise. 6302 * s-tasloc.ads: Likewise. 6303 * s-utf_32.ads: Likewise. 6304 * sem_aux.ads: Likewise. 6305 * a-assert.adb: Likewise. 6306 * a-chacon.adb: Likewise. 6307 * a-envvar.adb: Likewise. 6308 * a-exetim-mingw.adb: Likewise. 6309 * a-suenco.adb: Likewise. 6310 * a-suenst.adb: Likewise. 6311 * a-suewst.adb: Likewise. 6312 * a-suezst.adb: Likewise. 6313 * a-tirsfi.adb: Likewise. 6314 * a-wichha.adb: Likewise. 6315 * a-zchhan.adb: Likewise. 6316 * a-zchuni.adb: Likewise. 6317 * a-zrstfi.adb: Likewise. 6318 * aspects.adb: Likewise. 6319 * g-byorma.adb: Likewise. 6320 * g-decstr.adb: Likewise. 6321 * g-encstr.adb: Likewise. 6322 * g-spchge.adb: Likewise. 6323 * g-u3spch.adb: Likewise. 6324 * g-wispch.adb: Likewise. 6325 * g-zspche.adb: Likewise. 6326 * namet-sp.adb: Likewise. 6327 * s-except.adb: Likewise. 6328 * s-inmaop-vxworks.adb: Likewise. 6329 * s-os_lib.adb: Likewise. 6330 * s-regexp.adb: Likewise. 6331 * s-regpat.adb: Likewise. 6332 * s-string.adb: Likewise. 6333 * s-tasloc.adb: Likewise. 6334 * s-utf_32.adb: Likewise. 6335 * s-wchcon.adb: Likewise. 6336 * sem_aux.adb: Likewise. 6337 63382012-04-02 Robert Dewar <dewar@adacore.com> 6339 6340 * s-atopri.ads: Minor reformatting. 6341 63422012-04-02 Thomas Quinot <quinot@adacore.com> 6343 6344 * sem_util.adb: Minor reformatting, minor code cleanup. 6345 63462012-04-02 Ed Schonberg <schonberg@adacore.com> 6347 6348 * lib-xref.adb (Generate_Reference): For a reference to an 6349 operator symbol, set the sloc to point to the first character 6350 of the operator name, and not to the initial quaote. 6351 (Output_References): Ditto for the definition of an operator 6352 symbol. 6353 63542012-04-02 Vincent Celier <celier@adacore.com> 6355 6356 * ali.adb (Scan_Ali): Recognize Z lines. Set 6357 Implicit_With_From_Instantiation to True in the With_Record for 6358 Z lines. 6359 * ali.ads (With_Record): New Boolean component 6360 Implicit_With_From_Instantiation, defaulted to False. 6361 * csinfo.adb: Indicate that Implicit_With_From_Instantiation 6362 is special 6363 * lib-writ.adb (Write_ALI): New array Implicit_With. 6364 (Collect_Withs): Set Implicit_With for the unit is it is not Yes. 6365 (Write_With_Lines): Write a Z line instead of a W line if 6366 Implicit_With is Yes for the unit. 6367 * sem_ch12.adb (Inherit_Context): Only add a unit in the context 6368 if it is not there yet. 6369 * sinfo.ads: New flag Implicit_With_From_Instantiation (Flag12) 6370 added. 6371 63722012-04-02 Yannick Moy <moy@adacore.com> 6373 6374 * osint.adb, osint.ads (Add_Default_Search_Dirs): Add library 6375 search dirs in file specified with option -gnateO. 6376 63772012-04-02 Robert Dewar <dewar@adacore.com> 6378 6379 * sem_ch5.adb, exp_util.adb, sem_util.adb, exp_ch4.adb: Minor 6380 reformatting. 6381 63822012-04-02 Olivier Hainque <hainque@adacore.com> 6383 6384 * g-sse.ads: Add x86-solaris and x86_64-darwin to the set of 6385 platforms where the use of this spec is supported. Add current 6386 year to the copyright notice. 6387 * gcc-interfaces/Makefile.in: Add g-sse.o and g-ssvety.o to 6388 EXTRA_GNATRTL_NONTASKING_OBJS on x86 32/64 targets that support 6389 it and where they were missing (x86-solaris, x86-freebsd, 6390 x86_64-freebsd, and x86-darwin). 6391 63922012-04-02 Gary Dismukes <dismukes@adacore.com> 6393 6394 * bindgen.adb (Gen_Ada_Init): When compiling for the AAMP small 6395 library, where we no longer suppress the Standard_Library, 6396 generate an empty body rather than the usual generation of 6397 assignments to imported globals, since those aren't present in 6398 the small library. 6399 64002012-04-02 Ed Schonberg <schonberg@adacore.com> 6401 6402 * sinfo.ads: Minor documentation fix. 6403 64042012-04-02 Hristian Kirtchev <kirtchev@adacore.com> 6405 6406 * sem_res.adb (Resolve_Conditional_Expression): Add local variables 6407 Else_Typ and Then_Typ. Add missing type conversions to the "then" and 6408 "else" expressions when their respective types are scalar. 6409 64102012-04-02 Vincent Pucci <pucci@adacore.com> 6411 6412 * exp_ch9.adb: Reordering of the local subprograms. New Table 6413 for the lock free implementation that maps each protected 6414 subprograms with the protected component it references. 6415 (Allow_Lock_Free_Implementation): New routine. Check if 6416 the protected body enables the lock free implementation. 6417 (Build_Lock_Free_Protected_Subprogram_Body): New routine. 6418 (Build_Lock_Free_Unprotected_Subprogram_Body): New routine. 6419 (Comp_Of): New routine. 6420 * Makefile.rtl: Add s-atopri.o 6421 * debug.adb: New compiler debug flag -gnatd9 for lock free 6422 implementation. 6423 * rtsfind.ads: RE_Atomic_Compare_Exchange_8, 6424 RE_Atomic_Compare_Exchange_16, RE_Atomic_Compare_Exchange_32, 6425 RE_Atomic_Compare_Exchange_64, RE_Atomic_Load_8, 6426 RE_Atomic_Load_16, RE_Atomic_Load_32, RE_Atomic_Load_64, RE_Uint8, 6427 RE_Uint16, RE_Uint32, RE_Uint64 added. 6428 * s-atropi.ads: New file. Defines atomic primitives used 6429 by the lock free implementation. 6430 64312012-04-02 Emmanuel Briot <briot@adacore.com> 6432 6433 * g-expect.adb (Expect_Internal): Fix leak of the input file descriptor. 6434 64352012-04-02 Hristian Kirtchev <kirtchev@adacore.com> 6436 6437 * exp_ch4.adb (Expand_N_Quantified_Expression): Reimplemented. 6438 The expansion no longer uses the copy of the original QE created 6439 during analysis. 6440 * sem.adb (Analyze): Add processing for loop parameter specifications. 6441 * sem_ch4.adb (Analyze_Quantified_Expression): Reimplemented. The 6442 routine no longer creates a copy of the original QE. All 6443 constituents of a QE are now preanalyzed and resolved. 6444 * sem_ch5.adb (Analyze_Iteration_Scheme): Remove the guard which 6445 bypasses all processing when the iteration scheme is related to a 6446 QE. Relovate the code which analyzes loop parameter specifications 6447 to a separate routine. (Analyze_Iterator_Specification): 6448 Preanalyze the iterator name. This action was originally 6449 done in Analyze_Iteration_Scheme. Update the check which 6450 detects an iterator specification in the context of a QE. 6451 (Analyze_Loop_Parameter_Specification): New routine. This 6452 procedure allows for a stand-alone analysis of a loop parameter 6453 specification without the need of a parent iteration scheme. Add 6454 code to update the type of the loop variable when the range 6455 generates an itype and the context is a QE. 6456 (Pre_Analyze_Range): Renamed to Preanalyze_Range. Update all references 6457 to the routine. 6458 * sem_ch5.ads: Code reformatting. 6459 (Analyze_Loop_Parameter_Specification): New routine. 6460 * sem_ch6.adb (Fully_Conformant_Expressions): Detect a case 6461 when establishing conformance between two QEs utilizing different 6462 specifications. 6463 * sem_res.adb (Proper_Current_Scope): New routine. 6464 (Resolve): Do not resolve a QE as there is nothing to be done now. 6465 Ignore any loop scopes generated for QEs when detecting an expression 6466 function as the scopes are cosmetic and do not appear in the tree. 6467 (Resolve_Quantified_Expression): Removed. All resolution of 6468 QE constituents is now performed during analysis. This ensures 6469 that loop variables appearing in array aggregates are properly 6470 resolved. 6471 64722012-04-02 Ed Schonberg <schonberg@adacore.com> 6473 6474 * sem_util.adb (Build_Default_Subtype): If the base type is 6475 private and its full view is available, use the full view in 6476 the subtype declaration. 6477 64782012-04-02 Jose Ruiz <ruiz@adacore.com> 6479 6480 * gnat_ugn.texi: Add some minimal documentation about how to 6481 use GNATtest for cross platforms. 6482 64832012-04-02 Vincent Celier <celier@adacore.com> 6484 6485 * opt.ads (Object_Path_File_Name): New variable. 6486 * prj-attr.adb: New Compiler attribute Object_Path_Switches. 6487 * prj-nmsc.adb (Process_Compiler): Recognize new attribute 6488 Object_Path_Switches. 6489 * snames.ads-tmpl: New standard name Object_Path_Switches. 6490 * switch-c.adb (Scan_Front_End_Switches): Recognize new switch 6491 -gnateO= and put its value in Opt.Object_Path_File_Name. 6492 64932012-04-02 Hristian Kirtchev <kirtchev@adacore.com> 6494 6495 * exp_ch7.adb (Process_Declarations): Detect a case where 6496 a source object was initialized by another source object, 6497 but the expression was rewritten as a class-wide conversion 6498 of Ada.Tags.Displace. 6499 * exp_util.adb (Initialized_By_Ctrl_Function): Removed. 6500 (Is_Controlled_Function_Call): New routine. 6501 (Is_Displacement_Of_Ctrl_Function_Result): Removed. 6502 (Is_Displacement_Of_Object_Or_Function_Result): New routine. 6503 (Is_Source_Object): New routine. 6504 (Requires_Cleanup_Actions): Detect a case where a source object was 6505 initialized by another source object, but the expression was rewritten 6506 as a class-wide conversion of Ada.Tags.Displace. 6507 * exp_util.ads (Is_Displacement_Of_Ctrl_Function_Result): Removed. 6508 (Is_Displacement_Of_Object_Or_Function_Result): New routine. 6509 65102012-04-02 Ed Schonberg <schonberg@adacore.com> 6511 6512 * sem_res.adb (Resolve_Call): A call to an expression function 6513 does not freeze if it appears in a different scope from the 6514 expression function itself. Such calls appear in the generated 6515 bodies of other expression functions, or in pre/postconditions 6516 of subsequent subprograms. 6517 65182012-04-02 Yannick Moy <moy@adacore.com> 6519 6520 * lib-xref-alfa.adb: Code clean up. 6521 65222012-04-02 Ed Schonberg <schonberg@adacore.com> 6523 6524 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Do not suppress 6525 style checks, because the subprogram instance itself may contain 6526 violations of syle rules. 6527 * style.adb (Missing_Overriding): Check for missing overriding 6528 indicator on a subprogram instance. 6529 65302012-04-02 Hristian Kirtchev <kirtchev@adacore.com> 6531 6532 * sem_ch6.adb (Last_Implicit_Declaration): New routine. 6533 (Process_PPCs): Insert the body of _postconditions after the 6534 last internally generated declaration. This ensures that actual 6535 subtypes created for formal parameters are visible and properly 6536 frozen as _postconditions may reference them. 6537 65382012-04-02 Robert Dewar <dewar@adacore.com> 6539 6540 * einfo.adb (First_Component_Or_Discriminant) Now applies to 6541 all types with discriminants, not just records. 6542 * exp_attr.adb (Expand_N_Attribute): Add Scalar_Values handling 6543 for arrays, scalars and non-variant records. 6544 * sem_attr.adb (Analyze_Attribute): Handle Valid_Scalars 6545 * sem_attr.ads (Valid_Scalars): Update description 6546 * sem_util.ads, sem_util.adb (No_Scalar_Parts): New function. 6547 65482012-03-31 Eric Botcazou <ebotcazou@adacore.com> 6549 6550 Revert 6551 2012-03-25 Eric Botcazou <ebotcazou@adacore.com> 6552 6553 * gcc-interface/decl.c (SS_MARK_NAME): New define. 6554 (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities 6555 whose name is SS_MARK_NAME. 6556 65572012-03-30 Robert Dewar <dewar@adacore.com> 6558 6559 * exp_ch5.adb, sem_util.adb, exp_ch4.adb: Minor comment updates. 6560 65612012-03-30 Yannick Moy <moy@adacore.com> 6562 6563 * lib-xref-alfa.adb (Add_Alfa_File): Treat possibly 2 units at the same 6564 time, putting all scopes in the same Alfa file. 6565 (Add_Alfa_Xrefs): Correct errors in comparison function. Correct value 6566 of Def component. 6567 (Collect_Alfa): Possibly pass 2 units to Add_Alfa_File. 6568 65692012-03-30 Hristian Kirtchev <kirtchev@adacore.com> 6570 6571 * exp_util.adb (Is_Secondary_Stack_BIP_Func_Call): Handle a case where 6572 a build-in-place call appears as Prefix'Reference'Reference. 6573 65742012-03-30 Yannick Moy <moy@adacore.com> 6575 6576 * lib-xref-alfa.adb: Minor refactoring to remove internal package. 6577 65782012-03-30 Hristian Kirtchev <kirtchev@adacore.com> 6579 6580 * sem_ch5.adb (Analyze_Iteration_Scheme): Preanalyze the subtype 6581 definition of a loop when the context is a quantified expression. 6582 65832012-03-30 Vincent Celier <celier@adacore.com> 6584 6585 * prj.ads: Minor comment update. 6586 65872012-03-30 Yannick Moy <moy@adacore.com> 6588 6589 * lib-xref-alfa.adb, alloc.ads, lib-xref.ads: Minor addition of 6590 comments and refactoring. 6591 65922012-03-30 Robert Dewar <dewar@adacore.com> 6593 6594 * lib-xref.adb, lib-xref-alfa.adb: Minor reformatting & code 6595 reorganization. 6596 65972012-03-30 Yannick Moy <moy@adacore.com> 6598 6599 * lib-xref-alfa.adb (Generate_Dereference): Use Get_Code_Unit 6600 instead of Get_Source_Unit to get file for reference. 6601 (Traverse_Compilation_Unit): Do not add scopes for generic units. 6602 * lib-xref.adb (Generate_Reference): Use Get_Code_Unit instead 6603 of Get_Source_Unit to get file for reference. 6604 * sem_ch12.adb (Analyze_Package_Instantiation): Enable 6605 instantiation in Alfa mode. 6606 66072012-03-30 Hristian Kirtchev <kirtchev@adacore.com> 6608 6609 * exp_ch7.adb (Process_Declarations): Replace 6610 the call to Is_Null_Access_BIP_Func_Call with 6611 Is_Secondary_Stack_BIP_Func_Call. Update the related comment. 6612 * exp_util.adb (Is_Null_Access_BIP_Func_Call): Removed. 6613 (Is_Secondary_Stack_BIP_Func_Call): New routine. 6614 (Requires_Cleanup_Actions): Replace 6615 the call to Is_Null_Access_BIP_Func_Call with 6616 Is_Secondary_Stack_BIP_Func_Call. Update the related comment. 6617 * exp_util.ads (Is_Null_Access_BIP_Func_Call): Removed. 6618 (Is_Secondary_Stack_BIP_Func_Call): New routine. 6619 66202012-03-30 Yannick Moy <moy@adacore.com> 6621 6622 * lib-xref-alfa.adb, lib-xref.adb: Code clean ups. 6623 66242012-03-30 Gary Dismukes <dismukes@adacore.com> 6625 6626 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): For the case of a 6627 loop entity which is rewritten as a renaming 6628 of the indexed array, explicitly mark the entity as needing 6629 debug info so that Materialize entity will be set later by 6630 Debug_Renaming_Declaration when the renaming is expanded. 6631 66322012-03-30 Robert Dewar <dewar@adacore.com> 6633 6634 * sem_attr.ads: Update comment. 6635 66362012-03-30 Vincent Celier <celier@adacore.com> 6637 6638 * prj.ads: New Dependency_Kind: ALI_Closure. 6639 66402012-03-30 Thomas Quinot <quinot@adacore.com> 6641 6642 * exp_pakd.adb: Minor reformatting. 6643 66442012-03-30 Yannick Moy <moy@adacore.com> 6645 6646 * lib-xref-alfa.adb (Add_Alfa_File): Take into account possible absence 6647 of compilation unit for unit in Sdep_Table. 6648 66492012-03-30 Thomas Quinot <quinot@adacore.com> 6650 6651 * freeze.adb (Freeze_Record_Type): For a type with reversed bit 6652 order and reversed storage order, disable front-end relayout. 6653 66542012-03-25 Eric Botcazou <ebotcazou@adacore.com> 6655 6656 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: Copy 6657 the TYPE_PACKED flag from the base type. 6658 66592012-03-25 Eric Botcazou <ebotcazou@adacore.com> 6660 6661 * gcc-interface/decl.c (SS_MARK_NAME): New define. 6662 (gnat_to_gnu_entity) <E_Function>: Prepend leaf attribute on entities 6663 whose name is SS_MARK_NAME. 6664 66652012-03-25 Eric Botcazou <ebotcazou@adacore.com> 6666 6667 * gcc-interface/utils.c (add_parallel_type): Take a TYPE instead of a 6668 DECL and adjust. Move around. 6669 (has_parallel_type): New predicate. 6670 (rest_of_record_type_compilation): Return early if the type already 6671 has a parallel type. 6672 * gcc-interface/gigi.h (add_parallel_type): Adjust. 6673 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust for above changes. 6674 66752012-03-25 Eric Botcazou <ebotcazou@adacore.com> 6676 6677 * gcc-interface/utils.c (finish_record_type): Return early for padded 6678 types and tidy up. 6679 66802012-03-20 Arnaud Charlet <charlet@adacore.com> 6681 6682 * hlo.ads, hlo.adb: Removed, no longer used. 6683 * gcc-interface/Make-lang.in: Remove hlo.o. Update dependencies. 6684 * gcc-interface/Makefile.in: Remove EXTRA_LIBGNAT_SRCS (temporarly) 6685 and compute it from EXTRA_LIBGNAT_OBJS. 6686 Clean up comments, reorder LIBGNAT_SRCS and LIBGNAT_OBJS. 6687 66882012-03-20 Yannick Moy <moy@adacore.com> 6689 6690 * gnat_rm.texi, sem_attr.ads: Update documentation. 6691 66922012-03-19 Yannick Moy <moy@adacore.com> 6693 6694 * sem_ch6.adb: Minor code clean up. 6695 66962012-03-19 Vincent Celier <celier@adacore.com> 6697 6698 * make.adb (Scan_Make_Arg): Make sure all significant -m switches 6699 on the command line are counted. 6700 67012012-03-19 Robert Dewar <dewar@adacore.com> 6702 6703 * sem_elab.adb (Generate_Elab_Warnings): Fix spec, fix attribute 6704 reference case 6705 67062012-03-19 Robert Dewar <dewar@adacore.com> 6707 6708 * par-ch4.adb (Check_Bad_Exp): New procedure 6709 67102012-03-19 Robert Dewar <dewar@adacore.com> 6711 6712 * exp_attr.adb, sem_attr.adb, sem_attr.ads, snames.ads-tmpl: Add 6713 initial framework for Valid_Scalars attribute. 6714 67152012-03-19 Robert Dewar <dewar@adacore.com> 6716 6717 * scng.adb (Scan): Recognize incorrect preprocessor directive 6718 67192012-03-19 Robert Dewar <dewar@adacore.com> 6720 6721 * atree.adb (Allocate_Initialize_Node): Use Num_Extension_Nodes 6722 * atree.ads (Num_Extension_Nodes): New variable 6723 * debug.adb: New debug flag -gnatd.N 6724 * gnat1drv.adb (Adjust_Global_Switches): Adjust 6725 Num_Extension_Nodes if -gnatd.N set 6726 67272012-03-19 Eric Botcazou <ebotcazou@adacore.com> 6728 6729 * einfo.ads: Minor update to First_Rep_Item and Has_Gigi_Rep_Item 6730 descriptions. 6731 67322012-03-19 Robert Dewar <dewar@adacore.com> 6733 6734 * opt.ads: Remove HLO_Active flag. 6735 * sem.adb: Remove call of high level optimizer. 6736 * sem.ads (New_Nodes_OK): Removed. 6737 * sem_ch10.adb: Remove references to New_Nodes_OK. 6738 * switch-c.adb: Remove handling of -gnatH switch. 6739 67402012-03-19 Yannick Moy <moy@adacore.com> 6741 6742 * sem_ch6.adb (Check_Subprogram_Contract): Do not emit warnings 6743 on trivially True or False postconditions and Ensures components 6744 of contract-cases. 6745 67462012-03-19 Robert Dewar <dewar@adacore.com> 6747 6748 * gnat_ugn.texi: Fix index entry for -gnatei (now we have 6749 ug_words entry). 6750 67512012-03-19 Hristian Kirtchev <kirtchev@adacore.com> 6752 6753 * sem_ch3.adb (Get_Discriminant_Value): Instead of looking 6754 at the immediate correcponsing discriminant, traverse a 6755 potential chain of discriminants produced by type derivations. 6756 (Root_Corresponding_Discriminant): Traverse a chain of inherited 6757 discriminants and return the topmost discriminant. 6758 67592012-03-19 Bob Duff <duff@adacore.com> 6760 6761 * debug.adb: Minor comment change. 6762 * gnat_ugn.texi: Update documentation for elaboration regarding 6763 indirect calls. 6764 67652012-03-19 Gary Dismukes <dismukes@adacore.com> 6766 6767 * exp_ch3.adb (Expand_N_Object_Declaration): In 6768 the case of an object of a class-wide interface type, where the 6769 declaration is rewritten as a renaming, call Set_Debug_Info_Needed 6770 on the renaming entity so that Materialize_Entity will be 6771 set. Also, change existing call (for other than interface cases) 6772 to call Set_Debug_Info_Needed rather than Set_Needs_Debug_Info 6773 (as specified for that flag). 6774 67752012-03-19 Hristian Kirtchev <kirtchev@adacore.com> 6776 6777 * sem_ch4.adb (Analyze_Allocator): Detect an allocator generated 6778 by the build-in-place machinery where the designated type is 6779 indefinite, but the underlying type is not. Do not emit errors 6780 related to missing initialization in this case. 6781 67822012-03-19 Robert Dewar <dewar@adacore.com> 6783 6784 * gnat_ugn.texi: Add documentation for -gnateinnn switch. 6785 * sem_elab.adb, put_alfa.adb, lib-xref-alfa.adb: Minor reformatting. 6786 * sem_prag.adb: Minor comment update. 6787 67882012-03-15 Robert Dewar <dewar@adacore.com> 6789 6790 * errout.ads: Add entry for translating -gnateinn to 6791 /MAX_INSTANTIATIONS for VMS. 6792 * hostparm.ads (Max_Instantiations): Moved to Opt. 6793 * opt.ads (Maximum_Instantiations): Moved from Hostparm, and renamed. 6794 * sem_ch12.adb (Maximum_Instantiations): New name of 6795 Max_Instantiations (Analyze_Package_Instantiation): Change error 6796 msg for too many instantiations (mention -gnateinn switch). 6797 * switch-c.adb (Scan_Front_End_Switches): Implement -gnateinn switch. 6798 * switch.ads: Minor comment update. 6799 * usage.adb (Usage): Output line for -maxeinn switch. 6800 * vms_data.ads: Add entry for MAX_INSTANTIATIONS (-gnateinn). 6801 68022012-03-15 Yannick Moy <moy@adacore.com> 6803 6804 * alfa.ads Update the decription of ALI sections. 6805 (Alfa_File_Record): Add a component Unit_File_Name to store the 6806 unit file name for subunits. 6807 * get_alfa.adb, put_alfa.adb Adapt to the possible presence of 6808 a unit file name. 6809 * lib-xref-alfa.adb (Add_Alfa_File): For subunits, retrieve the 6810 file name of the unit. 6811 68122012-03-15 Yannick Moy <moy@adacore.com> 6813 6814 * sem_ch6.adb (Check_Subprogram_Contract): Do 6815 not issue warning on missing 'Result in postcondition if all 6816 postconditions and contract-cases already get a warning for only 6817 referring to pre-state. 6818 68192012-03-15 Bob Duff <duff@adacore.com> 6820 6821 * debug.adb: Add new debug switch -gnatd.U, which disables the 6822 support added below, in case someone trips over a cycle, and needs 6823 to disable this. 6824 * sem_attr.adb (Analyze_Access_Attribute): 6825 Treat Subp'Access as a call for elaboration purposes. 6826 * sem_elab.ads, sem_elab.adb (Check_Elab_Call): Add support 6827 for Subp'Access. 6828 68292012-03-15 Vincent Pucci <pucci@adacore.com> 6830 6831 * sem.ads, sem.adb (Preanalyze): New routine. 6832 * sem_ch4.adb (Analyze_Quantified_Expression): Call to the 6833 Preanalyze routine in Sem added. Renaming of Needs_Expansion 6834 into Need_Preanalysis. 6835 * sem_ch6.adb (Preanalyze): Removed. 6836 68372012-03-15 Robert Dewar <dewar@adacore.com> 6838 6839 * sem_ch4.adb (Analyze_Quantified_Expression): Add comment. 6840 * sem_prag.adb: Minor comment additions. 6841 * sem_attr.adb (Check_First_Last_Valid): Make sure prefix type 6842 is frozen. 6843 68442012-03-15 Vincent Pucci <pucci@adacore.com> 6845 6846 * sem_ch4.adb (Analyze_Quantified_Expression): 6847 Preanalyze the condition when the quantified expression will be 6848 further expanded. 6849 68502012-03-15 Yannick Moy <moy@adacore.com> 6851 6852 * sem_prag.adb, sem_util.adb, sem_util.ads, sem_attr.adb, sem_ch6.adb, 6853 sem_warn.adb: Minor refactoring, renaming Case_Pragma in CTC_Pragma, 6854 to refer to both Test_Case pragma and Contract_Case pragma (same 6855 acronym as in Spec_CTC_List). 6856 68572012-03-15 Robert Dewar <dewar@adacore.com> 6858 6859 * sem_prag.adb, sem_prag.ads, sem_util.ads, sem_attr.adb, sem_ch6.adb, 6860 sem_warn.adb: Minor reformatting. 6861 68622012-03-15 Hristian Kirtchev <kirtchev@adacore.com> 6863 6864 * exp_util.adb (Initialized_By_Ctrl_Function): Do not loop over 6865 selector names as the function call always appears at the top selected 6866 component. 6867 68682012-03-15 Ed Schonberg <schonberg@adacore.com> 6869 6870 * sem_ch12.adb (Validate_Access_Subprogram_Instance): keep 6871 Mode_Conformance check for older versions of the language. 6872 68732012-03-15 Yannick Moy <moy@adacore.com> 6874 6875 * gnat_ugn.texi Document the extension of option -gnatw.t. 6876 * sem_ch3.adb (Analyze_Declaration): Check for suspicious 6877 contracts only after contract cases have been semantically 6878 analyzed. 6879 * sem_ch6.adb (Check_Subprogram_Contract): Consider also Ensures 6880 components of contract cases for detecting suspicious contracts. 6881 68822012-03-15 Yannick Moy <moy@adacore.com> 6883 6884 * aspects.adb, aspects.ads (Aspect_Id): New GNAT aspect 6885 Aspect_Contract_Case. 6886 * gnat_rm.texi Document the new pragma/aspect 6887 Contract_Case. Correct the documentation of the existing 6888 pragma/aspect Test_Case with the new semantics. 6889 * sem_attr.adb (Analyze_Attribute): Allow use of 'Result in the 6890 Ensures component of a Contract_Case pragma. 6891 * sem_ch13.adb (Analyze_Aspect_Specifications): Check new aspect 6892 and translate it into a pragma. 6893 (Check_Aspect_At_Freeze_Point): Take into account the new aspect. 6894 * sem_ch3.adb, sinfo.adb, sinfo.ads Renaming of TC (for test case) 6895 into CTC (for contract and test case). 6896 * sem_ch6.adb (Process_PPCs): Generate Check pragmas from 6897 Contract_Case pragmas, similarly to what is done already for 6898 postconditions. 6899 * sem_prag.adb, sem_prag.ads (Check_Contract_Or_Test_Case): 6900 Renaming of Check_Test_Case. 6901 (Analyze_Pragma, Sig_Flags): Take into account the new pragma. 6902 * sem_util.adb, sem_util.ads Renaming to take into account the 6903 new pragma, so that functions which applied only to Test_Case 6904 now apply to both Test_Case and Contract_Case. 6905 * par-prag.adb, sem_warn.adb, snames.ads-tmpl Take into account 6906 the new pragma. 6907 69082012-03-15 Robert Dewar <dewar@adacore.com> 6909 6910 * sem_ch6.ads: Minor comment updates. 6911 * sem_ch12.adb: Minor comment clarification. 6912 69132012-03-15 Robert Dewar <dewar@adacore.com> 6914 6915 * sem_ch5.adb: Minor reformatting. 6916 69172012-03-15 Ed Schonberg <schonberg@adacore.com> 6918 6919 * exp_ch3.adb (Expand_N_Object_Declaration): When rewriting the 6920 declaration of a class-wide object, retain the Ekind to prevent 6921 subsequent misuse of constants. 6922 69232012-03-15 Yannick Moy <moy@adacore.com> 6924 6925 * gnat_rm.texi, gnat_ugn.texi: Minor correction of invariant 6926 terminology. 6927 69282012-03-15 Hristian Kirtchev <kirtchev@adacore.com> 6929 6930 * exp_util.adb (Initialized_By_Ctrl_Function): Add code to 6931 process the case when a function call appears in object.operation 6932 format. 6933 69342012-03-15 Ed Schonberg <schonberg@adacore.com> 6935 6936 * sem_ch6.ads, sem_ch6.adb (Check_Subtype_Conformant): add 6937 Get_Inst formal, so that conformance within an instantiation 6938 follows renamings of formals. This is similar to what is already 6939 done in Check_Mode_conformant. 6940 * sem_ch12.adb (Vailidate_Access_Subprogram_Instance): check that 6941 formal and actual are subtype conformant. Previously only mode 6942 conformance was required. 6943 69442012-03-15 Robert Dewar <dewar@adacore.com> 6945 6946 * par-ch6.adb, einfo.ads, sem_eval.adb, sem_eval.ads, 6947 sem_case.adb: Minor reformatting. 6948 69492012-03-15 Robert Dewar <dewar@adacore.com> 6950 6951 * exp_attr.adb (Expand_N_Attribute_Reference): Add handling 6952 of First_Valid/Last_Valid. 6953 * sem_attr.adb (Check_First_Last_Valid): New procedure 6954 (Analyze_Attribute): Add handling of First_Valid and Last_Valid 6955 (Eval_Attribute): ditto. 6956 * snames.ads-tmpl: Add entries for First_Valid and Last_Valid. 6957 69582012-03-15 Ed Schonberg <schonberg@adacore.com> 6959 6960 * exp_ch5.adb (Expand_Predicated_Loop): Suppress warnings on 6961 loop variable, for the unusual case where the range has a single 6962 element and the loop variable has no visible assignment to it. 6963 69642012-03-15 Vincent Pucci <pucci@adacore.com> 6965 6966 * exp_ch4.adb (Expand_N_Quantified_Expression): Expand the 6967 original quantified expression node. 6968 * sem_ch4.adb (Analyze_Quantified_Expression): Properly analyze 6969 the quantified expression and preserve the original non-analyzed 6970 quantified expression when an expansion is needed. 6971 * sem_ch5.adb (Analyze_Iteration_Scheme): Special treatment 6972 for quantified expressions. 6973 (Analyze_Iterator_Specification): Special treatment for quantified 6974 expressions. 6975 69762012-03-15 Ed Falis <falis@adacore.com> 6977 6978 * s-vxwork-ppc.ads: Update FP_CONTEXT so name of former pad 6979 field matches VxWorks headers. 6980 69812012-03-14 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 6982 6983 * gcc-interface/Makefile.in (mips-sgi-irix6*): Remove. 6984 6985 * a-intnam-irix.ads, mlib-tgt-specific-irix.adb, 6986 s-intman-irix.adb, s-mastop-irix.adb, s-osinte-irix.adb, 6987 s-osinte-irix.ads, s-proinf-irix-athread.adb, 6988 s-proinf-irix-athread.ads, s-taprop-irix.adb, s-tasinf-irix.ads, 6989 system-irix-n32.ads, system-irix-n64.ads, system-irix-o32.ads: 6990 Remove. 6991 6992 * adaint.c [__mips && __sgi]: Remove. 6993 (__gnat_number_of_cpus) [__mips && __sgi]: Remove. 6994 [IS_CROSS && !(__mips && __sgi)]: Remove. 6995 * adaint.h [sgi && _LFAPI]: Remove. 6996 * cstreams.c (__gnat_full_name) [sgi]: Remove. 6997 * env.c (__gnat_unsetenv) [__mips && __sgi]: Remove. 6998 (__gnat_clearenv) [__mips && __sgi]: Remove. 6999 * errno.c (_SGI_MP_SOURCE): Remove. 7000 * gsocket.h [sgi]: Remove. 7001 * init.c: Remove IRIX reference. 7002 [sgi]: Remove. 7003 * link.c [sgi]: Remove. 7004 * s-oscons-tmplt.c [__mips && __sgi] (IOV_MAX): Don't define. 7005 (main) [__mips && __sgi] (MAX_tv_sec): Don't define. 7006 (CLOCK_SGI_FAST, CLOCK_SGI_CYCLE): Remove. 7007 * sysdep.c [sgi]: Remove. 7008 (getc_immediate_common) [sgi]: Remove. 7009 (__gnat_localtime_tzoff) [sgi]: Remove. 7010 * terminals.c [__mips && __sgi] (IRIX): Don't define. 7011 [IRIX] (USE_GETPTY): Don't define. 7012 (allocate_pty_desc) [USE_GETPTY]: Remove. 7013 7014 * g-traceb.ads: Remove IRIX reference. 7015 * g-trasym.ads: Likewise. 7016 * memtrack.adb: Likewise. 7017 * s-interr-sigaction.adb: Likewise. 7018 7019 * gnat_rm.texi (Implementation Advice): Remove SGI info. 7020 (Implementation Defined Characteristics): Likewise. 7021 * gnat_ugn.texi (Summary of Run-Time Configurations, mips-irix): 7022 Remove. 7023 (Irix-Specific Considerations): Remove. 7024 70252012-03-13 Tristan Gingold <gingold@adacore.com> 7026 7027 * gcc-interface/gigi.h (flag_vms_malloc64): Refine condition. 7028 70292012-03-13 Tristan Gingold <gingold@adacore.com> 7030 7031 * sysdep.c: Adjust condition after removal of __osf__. 7032 70332012-03-12 Eric Botcazou <ebotcazou@adacore.com> 7034 7035 * gcc-interface/gigi.h (shift_unc_components_for_thin_pointers): Kill. 7036 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Remove call 7037 to above function. 7038 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Adjust 7039 handling of thin pointers. 7040 <Attr_Descriptor_Size>: Likewise. 7041 (gnat_to_gnu) <N_Free_Statement>: Likewise. 7042 * gcc-interface/utils.c (shift_unc_components_for_thin_pointers): Kill. 7043 (convert_to_fat_pointer): Adjust handling of thin pointers. 7044 (convert) <POINTER_TYPE>: Likewise. 7045 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Likewise. 7046 70472012-03-12 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 7048 7049 * gcc-interface/Makefile.in (alpha*-dec-osf*): Remove. 7050 * a-intnam-tru64.ads, mlib-tgt-specific-tru64.adb, 7051 s-mastop-tru64.adb, s-osinte-tru64.adb, s-osinte-tru64.ads, 7052 s-taprop-tru64.adb, s-tasinf-tru64.ads, s-taspri-tru64.ads, 7053 system-tru64.ads: Remove. 7054 7055 * adaint.c (__gnat_number_of_cpus) [__alpha__ && __osf__]: 7056 Remove. 7057 [IS_CROSS] [!(__alpha__ && __osf__)]: Remove. 7058 * env.c [__alpha__ && __osf__]: Remove. 7059 * gsocket.h (_OSF_SOURCE): Remove. 7060 (HAVE_THREAD_SAFE_GETxxxBYyyy) [__osf__]: Remove. 7061 * init.c [__alpha__ && __osf__]: Remove. 7062 * link.c [__osf__]: Remove. 7063 * s-oscons-tmplt.c [__alpha__ && __osf__]: Remove. 7064 [__osf__ && !_SS_MAXSIZE]: Remove. 7065 * sysdep.c [__osf__]: Remove. 7066 * terminals.c [__alpha__ && __osf__]: Remove. 7067 [OSF1]: Remove. 7068 7069 * g-traceb.ads: Remove Tru64 reference. 7070 * g-trasym.ads: Likewise. 7071 * gnat_ugn.texi (Linking a Mixed C++ & Ada Program): Likewise. 7072 (Summary of Run-Time Configurations): Likewise. 7073 * memtrack.adb: Likewise. 7074 70752012-03-12 Tristan Gingold <gingold@adacore.com> 7076 7077 * gcc-interface/decl.c (gnat_to_gnu_param): Use flag_vms_malloc64 7078 instead of TARGET_MALLOC64. 7079 * gcc-interface/gigi.h (flag_vms_malloc64): Define instead 7080 of TARGET_MALLOC64. 7081 70822012-03-09 Robert Dewar <dewar@adacore.com> 7083 7084 * a-direct.adb, comperr.adb, freeze.adb: Minor reformatting. 7085 70862012-03-09 Arnaud Charlet <charlet@adacore.com> 7087 7088 * s-taskin.adb (Initialize_ATCB): Set Task_Image_Len to 7089 0 so that we never access this field uninitialized (e.g. in 7090 Task_Primitives.Operations.Enter_Task for the environment task). 7091 70922012-03-09 Vincent Pucci <pucci@adacore.com> 7093 7094 * exp_ch5.adb (Expand_Iterator_Loop): 7095 Call to Expand_Iterator_Loop_Over_Array added. 7096 (Expand_Iterator_Loop_Over_Array): New routine. Expansion of 7097 "of" iterator loop over arrays. Multidimensional array case added. 7098 70992012-03-09 Eric Botcazou <ebotcazou@adacore.com> 7100 7101 * uintp.ads: Fix minor pasto in comment. 7102 71032012-03-09 Vasiliy Fofanov <fofanov@adacore.com> 7104 7105 * a-direct.adb: Do not strip the trailing directory separator 7106 from path, as this is already done inside Normalize_Pathname; 7107 doing it again produces the wrong result on Windows for the 7108 drive's root dir (i.e. "X:\" becomes "X:"). 7109 71102012-03-09 Thomas Quinot <quinot@adacore.com> 7111 7112 * exp_attr.adb, freeze.adb, sem_attr.adb, aspects.adb, aspects.ads, 7113 sem_ch13.adb, snames.ads-tmpl (Exp_Attr.Expand_N_Attribute_Reference): 7114 Add Attribute_Scalar_Storage_Order. 7115 (Sem_Attr.Analyze_Attribute, Eval_Attribute): Ditto. 7116 (Aspects): Add Aspect_Scalar_Storage_Order (Snames): Add 7117 Name_Scalar_Storage_Order and Attribute_Scalar_Storage_Order. 7118 (Sem_Ch13.Analyze_Attribute_Definition_Clause): Add processing 7119 for Scalar_Storage_Order. 7120 (Freeze): If Scalar_Storage_Order is specified, check that it 7121 is compatible with Bit_Order. 7122 71232012-03-09 Robert Dewar <dewar@adacore.com> 7124 7125 * s-osinte-linux.ads, sem_util.adb, s-taprop-linux.adb, exp_ch4.adb, 7126 a-strsup.ads, sem_ch6.adb, a-stwisu.ads, exp_ch3.adb, 7127 a-stzsup.ads: Minor reformatting. 7128 71292012-03-09 Thomas Quinot <quinot@adacore.com> 7130 7131 * s-ransee-vms.adb: Minor reformatting. 7132 71332012-03-09 Arnaud Charlet <charlet@adacore.com> 7134 7135 * comperr.adb (Delete_SCIL_Files): Fix handling of 7136 N_Package_Renaming_Declaration and N_Generic_Package_Declaration. 7137 71382012-03-09 Javier Miranda <miranda@adacore.com> 7139 7140 * sem_ch6.adb (Check_Body_To_Inline): In AAMP and VM targets 7141 use frontend inlining at all optimization levels. 7142 * sem_util.adb (Must_Inline): In AAMP and VM targets, given that 7143 there is no inlining support in the backend, use also frontend 7144 inlining when compiling with optimizations enabled. 7145 * exp_ch6.adb (Expand_Call): Minor code reorganization. 7146 71472012-03-09 Eric Botcazou <ebotcazou@adacore.com> 7148 7149 * gcc-interface/ada-tree.h (TYPE_VAX_FLOATING_POINT_P): Move around. 7150 (TYPE_UNCONSTRAINED_ARRAY): Adjust comment. 7151 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Pool_Address>: Tidy 7152 up. Add comment and use canonical predicate for thin pointers. 7153 (gnat_to_gnu) <N_Free_Statement>: Tidy up and reorder. Add comment 7154 and use canonical predicate for thin pointers. 7155 * gcc-interface/utils.c (convert_to_fat_pointer): Remove superfluous 7156 'else' and use standard name. 7157 (convert_to_thin_pointer): Delete. 7158 (convert) <POINTER_TYPE>: Do the difference in sizetype directly and 7159 change obsolete idioms. Do not call above function. 7160 (unchecked_convert): Fix formatting. 7161 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: In the thin 7162 pointer case, use byte_position to get the field position. 7163 71642012-03-07 Eric Botcazou <ebotcazou@adacore.com> 7165 7166 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not set flags on the 7167 DECL node built for a type which has a non-trivial equivalent type. 7168 71692012-03-07 Eric Botcazou <ebotcazou@adacore.com> 7170 7171 * gcc-interface/gigi.h (rest_of_type_decl_compilation): Delete. 7172 * gcc-interface/decl.c (defer_finalize_level): Likewise. 7173 (defer_finalize_list): Likewise. 7174 (gnat_to_gnu_entity): Delete references to above variables and do not 7175 call rest_of_type_decl_compilation. 7176 (rest_of_type_decl_compilation): Delete. 7177 (rest_of_type_decl_compilation_no_defer): Likewise. 7178 * gcc-interface/utils.c (rest_of_record_type_compilation): Do not call 7179 rest_of_type_decl_compilation. 7180 (create_type_decl): Likewise. 7181 (update_pointer_to): Likewise. 7182 71832012-03-07 Eric Botcazou <ebotcazou@adacore.com> 7184 7185 * gcc-interface/trans.c (Identifier_to_gnu): Don't unshare initializer. 7186 (add_decl_expr): Mark external DECLs as used. 7187 * gcc-interface/utils.c (convert) <CONSTRUCTOR>: Copy the vector. 7188 71892012-03-07 Tristan Gingold <gingold@adacore.com> 7190 7191 * s-ransee-vms.adb: New file. 7192 * gcc-interface/Makefile.in: Use s-ransee-vms.adb on VMS. 7193 * gcc-interface/Make-lang.in: Update dependencies. 7194 71952012-03-07 Bob Duff <duff@adacore.com> 7196 7197 * rtsfind.ads: Add support for finding Super_String types. 7198 * sem_util.ads, sem_util.adb (Is_Bounded_String): New function 7199 to determine whether a given type is a bounded string type. 7200 (Is_Fully_Initialized_Type): Return True for bounded 7201 string types, to suppress bogus warnings. 7202 * exp_ch4.adb (Expand_Composite_Equality): Special case for bounded 7203 strings: equality composes. This allows us to remove default values in 7204 super strings. 7205 * a-strsup.ads, a-stwisu.ads, a-stzsup.ads: Update comments. 7206 * exp_ch3.adb (Expand_Freeze_Record_Type): Comment. 7207 72082012-03-07 Robert Dewar <dewar@adacore.com> 7209 7210 * sem_util.adb, exp_ch4.adb, exp_ch6.adb, sem_ch6.adb: Minor 7211 reformatting. 7212 72132012-03-07 Sergey Rybin <rybin@adacore.com frybin> 7214 7215 * gnat_ugn.texi: gnatpp: fix paragraph about sources with 7216 preprocessor directives. 7217 72182012-03-07 Arnaud Charlet <charlet@adacore.com> 7219 7220 * s-osinte-linux.ads, s-taprop-linux.adb (prctl): New function. 7221 (Enter_Task): Call prctl when relevant. 7222 72232012-03-07 Tristan Gingold <gingold@adacore.com> 7224 7225 * s-osinte-vms.ads: pthread_mutex_setname_np: new function. 7226 72272012-03-07 Ed Schonberg <schonberg@adacore.com> 7228 7229 * sem_ch6.adb (Process_Formals): a generic subprogram with 7230 a formal incomplete type does not require a freeze node. 7231 72322012-03-07 Bob Duff <duff@adacore.com> 7233 7234 * sem_util.ads: Minor reformatting. 7235 72362012-03-07 Geert Bosch <bosch@adacore.com> 7237 7238 * targparm.ads: New target parameter Atomic_Sync_Default, 7239 defaulting to True. 7240 * targparm.adb (Get_Target_Parameters): Add processing for 7241 Atomic_Sync_Default. 7242 * gnat1drv.adb (Adjust_Global_Switches): Adjust Supress_Options 7243 based on ASD. 7244 72452012-03-07 Javier Miranda <miranda@adacore.com> 7246 7247 * sem_ch3.adb (Analyze_Object_Declaration): If the object 7248 declaration has an init expression then stop the analysis of the 7249 object declaration if the expression which initializes the object 7250 is a call to an inlined function which returns an unconstrained 7251 and has been expanded into a procedure call. 7252 * sem_ch5.adb (Has_Call_Using_Secondary_Stack): Add missing 7253 support to handle selected components. 7254 * sem_ch6.ads (Cannot_Inline): Adding parameter Is_Serious plus 7255 documentation. 7256 * sem_ch6.adb (Check_And_Build_Body_To_Inline): New 7257 subprogram which implements the checks required by the 7258 new rules for frontend inlining and builds the body to inline. 7259 (Analyze_Subprogram_Body_Helper): Move code that 7260 checks inlining of subprogram that has nested subprogram 7261 to Check_And_Build_Body_To_Inline. Replace call to 7262 Build_Body_To_Inline by call to the new subprogram 7263 Check_And_Build_Body_To_Inline. 7264 (Cannot_Inline): New implementation. 7265 * sem_ch12.adb (Analyze_Package_Instantiation.Must_Inline_Subp): 7266 New subprogram. 7267 * sem_util.ad[sb] (Must_Inline): New subprogram. 7268 (Returns_Unconstrained_Type): New subprogram. 7269 * sem_res.adb (Resolve_Call): Do not create a transient scope 7270 for inlined calls. 7271 * inline.ads (Analyzing_Inlined_Bodies): Remove unreferenced variable. 7272 * inline.adb (Analyze_Inlined_Bodies, Initialize): Remove setting 7273 to false the variable Analyzing_Inlined_Bodies. Fix comments. 7274 * exp_ch4.adb (Expand_N_Allocator): Fix handling of finalization master. 7275 * exp_ch6.ads (List_Inlining_Info): New subprogram. 7276 * exp_ch6.adb (Expand_Call.Do_Inline): New subprogram. 7277 (Expand_Call.Do_Inline_Always): New subprogram. 7278 (In_Unfrozen_Instance): Move the declaration of this subprogram. 7279 (Expand_Inlined_Call.Reset_Dispatching_Calls): New subprogram. 7280 (Expand_Inlined_Call): Adding new support for inlining functions 7281 that return unconstrained types. 7282 (List_Inlining_Info): New subprogram. 7283 * debug.adb Document flags -gnatd.j and -gnatd.k 7284 * gnat1drv.adb Add call to generate the new listing of inlined 7285 calls and calls passed to the backend. 7286 72872012-03-07 Robert Dewar <dewar@adacore.com> 7288 7289 * sem_ch5.adb, s-vaflop.adb, s-taprop-vms.adb, exp_ch6.adb, 7290 s-gearop.adb, sem_ch6.adb, g-trasym.adb: Minor reformatting. 7291 72922012-03-07 Javier Miranda <miranda@adacore.com> 7293 7294 * a-ngrear.ads: Add documentation. 7295 72962012-03-07 Tristan Gingold <gingold@adacore.com> 7297 7298 * s-taprop-vms.adb (Create_Task): set thread name. 7299 * s-osinte-vms.ads (pthread_attr_setname_np): Declare. 7300 73012012-03-07 Arnaud Charlet <charlet@adacore.com> 7302 7303 * g-trasym.adb: Minor reformatting. 7304 73052012-03-07 Robert Dewar <dewar@adacore.com> 7306 7307 * a-ngrear.ads: Minor addition of ??? comment. 7308 73092012-03-07 Gary Dismukes <dismukes@adacore.com> 7310 7311 * exp_ch4.adb (Apply_Accessibility_Check): Call 7312 Remove_Side_Effects in the build-in-place case, to ensure that 7313 we capture the call and don't end up with two calls. 7314 73152012-03-07 Javier Miranda <miranda@adacore.com> 7316 7317 * exp_ch6.adb (Expand_Inlined_Call): Skip inlining of functions 7318 that return unconstrained types using an extended return statement 7319 since the support for inlining these functions has not been yet 7320 added to the frontend. 7321 * s-vaflop.adb, s-vaflop-vms-alpha.adb: Code reorganization. 7322 * a-ngrear.ads: Replace all the Inline_Always pragmas by pragma 7323 Inline. 7324 * a-ngrear.adb (Eigenvalues, Transpose): Restructured to use 7325 extended return statement. 7326 * a-strsup.adb, a-stzsup.adb, a-stwisu.adb (Concat, Super_Slice, 7327 Super_To_String): Restructured to use extended return statement. 7328 * a-chahan.adb (To_Basic, To_Lower, To_Upper): Restructured to 7329 use extended return statement. 7330 * s-gearop.adb (Diagonal, Matrix_Elementwise_Operation, 7331 Vector_Elementwise_Operation, Matrix_Elementwise_Operation, 7332 Matrix_Matrix_Scalar_Elementwise_Operation, 7333 Vector_Vector_Elementwise_Operation, 7334 Vector_Vector_Scalar_Elementwise_Operation, 7335 Matrix_Scalar_Elementwise_Operation, 7336 Vector_Scalar_Elementwise_Operation, 7337 Scalar_Matrix_Elementwise_Operation, 7338 Scalar_Vector_Elementwise_Operation, Matrix_Matrix_Product, 7339 Matrix_Vector_Product, Outer_Product, Unit_Matrix, Unit_Vector, 7340 Vector_Matrix_Product): Restructured to use extended return 7341 statement. 7342 73432012-03-07 Vincent Pucci <pucci@adacore.com> 7344 7345 * sem_ch5.adb (One_Bound): Minor reformatting. 7346 73472012-03-07 Tristan Gingold <gingold@adacore.com> 7348 7349 * s-osinte-vms-ia64.adb, s-osinte-vms-ia64.ads, s-osinte-vms.adb, 7350 s-osinte-vms.ads, gcc-interface/Makefile.in: Merge s-osinte-vms and 7351 s-osinte-vms-ia64. 7352 73532012-03-07 Ed Schonberg <schonberg@adacore.com> 7354 7355 * checks.adb (Apply_Predicate_Check): Do not generate a predicate 7356 check is the context is an internally generated type-specific 7357 function. 7358 * sem_ch6.adb (Process_PPCs); the formals of internally generated 7359 type-specific functions do not get assertion checks. 7360 73612012-03-07 Yannick Moy <moy@adacore.com> 7362 7363 * gnat_rm.texi: Minor renaming of title. 7364 * gnat_ugn.texi: Minor correction. 7365 73662012-03-07 Vincent Pucci <pucci@adacore.com> 7367 7368 * exp_ch4.adb (Expand_N_Quantified_Expression): Minor 7369 reformating. 7370 * sem_ch4.adb (Analyze_Quantified_Expression): Creation and 7371 analysis of the iteration scheme added in all cases. 7372 * sem_ch5.adb (Analyze_Iteration_Scheme): Minor reformating. 7373 (Analyze_Iterator_Specification): Minor reformating. 7374 * sem_res.adb (Resolve_Quantified_Expression): Resolution of 7375 the condition added in all cases. 7376 73772012-03-07 Thomas Quinot <quinot@adacore.com> 7378 7379 * einfo.adb, einfo.ads: Add flag Reverse_Storage_Order. 7380 73812012-03-07 Yannick Moy <moy@adacore.com> 7382 7383 * gnat_rm.texi, gnat_ugn.texi: Rewording of GNAT UG and GNAT RM to 7384 account for Ada 2012 assertions, and their pragma counterparts in GNAT. 7385 73862012-03-07 Thomas Quinot <quinot@adacore.com> 7387 7388 * exp_attr.adb, sem_attr.adb: Minor reformatting. 7389 73902012-03-07 Bob Duff <duff@adacore.com> 7391 7392 * hostparm.ads (Max_Instantiations): Increase parameter. 7393 73942012-03-07 Bob Duff <duff@adacore.com> 7395 7396 * par-prag.adb: Minor code rearrangement. 7397 73982012-03-07 Bob Duff <duff@adacore.com> 7399 7400 * a-strsup.ads, a-stwisu.ads, a-stzsup.ads (Super_String): 7401 Remove default initial value for Data. It is no longer needed 7402 because "=" now composes properly for untagged records. This 7403 default has caused efficiency problems. 7404 74052012-03-07 Ed Schonberg <schonberg@adacore.com> 7406 7407 * sem_res.adb (Resolve_Actuals): If the actual is a selected 7408 component of an anonymous access type, whose prefix is a variable, 7409 treat the variable as if it may be modified by the call, to 7410 suppress spurious warnings that a variable might be declared as 7411 a constant. 7412 74132012-03-07 Thomas Quinot <quinot@adacore.com> 7414 7415 * einfo.adb, einfo.ads: Remove unused entity flags. 7416 74172012-03-07 Eric Botcazou <ebotcazou@adacore.com> 7418 7419 * gnat_ugn.texi (Inline Assembler): Fix swapping of Input and 7420 Output operands throughout. 7421 74222012-03-07 Hristian Kirtchev <kirtchev@adacore.com> 7423 7424 * sem_ch12.adb (Earlier): When two nodes come from the same 7425 generic instantiation, compare their locations. Otherwise always 7426 use the top level locations of the nodes. 7427 74282012-03-07 Thomas Quinot <quinot@adacore.com> 7429 7430 * einfo.ads, sem_prag.adb: Minor reformatting. 7431 74322012-03-05 Jason Merrill <jason@redhat.com> 7433 7434 * gcc-interface/Make-lang.in (doc/gnat_ugn.texi): Build xgnatugn 7435 before using it. 7436 74372012-03-04 Eric Botcazou <ebotcazou@adacore.com> 7438 7439 * gnatvsn.ads (Library_Version): Bump to 4.8. 7440 74412012-03-03 H.J. Lu <hongjiu.lu@intel.com> 7442 7443 * init.c (__gnat_adjust_context_for_raise): Also check 7444 "orq $0x0,(%esp)" for x32. 7445 7446 * link.c (__gnat_default_libgcc_subdir): Set to libx32 for x32. 7447 7448 * gcc-interface/Makefile.in (arch): Set to x32 if MULTISUBDIR 7449 is /x32 and add support for x32. 7450 74512012-02-29 Eric Botcazou <ebotcazou@adacore.com> 7452 7453 * gcc-interface/decl.c (components_to_record): Add ARTIFICIAL parameter 7454 and set TYPE_ARTIFICIAL according to it. Adjust recursive call. 7455 (gnat_to_gnu_entity) <E_Record_Type>: Adjust call to above function. 7456 * gcc-interface/utils.c (rest_of_record_type_compilation): Do not 7457 invoke rest_of_type_decl_compilation on the parallel type, if any. 7458 74592012-02-29 Eric Botcazou <ebotcazou@adacore.com> 7460 7461 * gcc-interface/utils.c (gnat_write_global_declarations): Make sure the 7462 dummy global built for global types is preserved. 7463 74642012-02-27 Tristan Gingold <gingold@adacore.com> 7465 7466 * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type, 7467 E_Array_Type]: Reuse dummy fat type for gnu_ptr_template and 7468 gnu_template_type. 7469 74702012-02-27 Eric Botcazou <ebotcazou@adacore.com> 7471 7472 * gcc-interface/ada-tree.h (TYPE_PACKED_ARRAY_TYPE_P): Add checking. 7473 (TYPE_BY_REFERENCE_P): New flag. 7474 (TYPE_IS_BY_REFERENCE_P): New macro. 7475 (TYPE_DUMMY_P): Add checking and remove VOID_TYPE. 7476 (TYPE_IS_DUMMY_P): Adjust for above change. 7477 * gcc-interface/decl.c (gnat_to_gnu_entity): Use TYPE_BY_REFERENCE_P 7478 and TYPE_IS_BY_REFERENCE_P instead of TREE_ADDRESSABLE. 7479 (gnat_to_gnu_param): Likewise. 7480 (maybe_pad_type): Likewise. 7481 (make_type_from_size): Use TYPE_IS_PACKED_ARRAY_TYPE_P. 7482 * gcc-interface/misc.c (must_pass_by_ref): Use TYPE_IS_BY_REFERENCE_P 7483 instead of TREE_ADDRESSABLE. 7484 * gcc-interface/trans.c (finalize_nrv): Likewise. 7485 (call_to_gnu): Likewise. Do not create a temporary for return values 7486 with by-reference type here. 7487 (gnat_to_gnu): Test TYPE_IS_DUMMY_P instead of TYPE_DUMMY_P. 7488 (gnat_gimplify_expr) <ADDR_EXPR>: Don't do anything for non-constant 7489 CONSTRUCTORs and calls. 7490 * gcc-interface/utils.c (make_dummy_type): Get the equivalent type of 7491 the underlying type and use it throughout. Use TYPE_IS_BY_REFERENCE_P 7492 instead of TREE_ADDRESSABLE. 7493 * gcc-interface/utils2.c (build_cond_expr): Deal with by-reference 7494 types explicitly. 7495 74962012-02-27 Eric Botcazou <ebotcazou@adacore.com> 7497 7498 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Revert previous 7499 change that creates a special VAR_DECL for debugging purposes. For an 7500 aliased object with an unconstrained nominal subtype, make its type a 7501 thin reference to the underlying object. 7502 * gcc-interface/utils2.c (build_unary_op) <INDIRECT_REF>: Deal with 7503 expressions built for the initialization of above objects. 7504 75052012-02-24 Dave Korn <dave.korn.cygwin@gmail.com> 7506 7507 * gcc-interface/Makefile.in (WIN_SO_PREFIX [windows targets]): New 7508 Windows-specific make variable. 7509 (WIN_SO_INSTALL_DIR [windows targets]): Likewise. 7510 (install-gnatlib): Respect the above during installation when set, 7511 and also install any windows import library that has been built. 7512 (gnatlib-shared-win32): Use WIN_SO_PREFIX to name output DLL and also 7513 build a corresponding import library. 7514 75152012-02-22 Robert Dewar <dewar@adacore.com> 7516 7517 * exp_util.adb, make.adb, sem_dim.adb, sem_ch4.adb, exp_disp.adb: Minor 7518 reformatting. 7519 75202012-02-22 Geert Bosch <bosch@adacore.com> 7521 7522 * g-bytswa-x86.adb, g-bytswa.adb, gcc-interface/Makefile.in: Remove 7523 x86-specific version of byteswap and use GCC builtins instead. 7524 75252012-02-22 Tristan Gingold <gingold@adacore.com> 7526 7527 * gcc-interface/decl.c (gnat_to_gnu_entity) [E_String_Type, 7528 E_Array_Type]: Translate component ealier. 7529 75302012-02-22 Robert Dewar <dewar@adacore.com> 7531 7532 * par-ch3.adb (P_Signed_Integer_Type_Definition): Specialize 7533 error message for 'Range. 7534 75352012-02-22 Pascal Obry <obry@adacore.com> 7536 7537 * s-taprop-mingw.adb (Finalize_TCB): Do not wait on thread handle as 7538 this is our own thread. 7539 75402012-02-22 Sergey Rybin <rybin@adacore.com frybin> 7541 7542 * tree_io.ads: Update ASIS_Version_Number because of the changes 7543 in Snames. 7544 75452012-02-22 Hristian Kirtchev <kirtchev@adacore.com> 7546 7547 * exp_ch7.adb (Create_Finalizer): Suppress elaboration checks on 7548 stack-related finalizers. 7549 75502012-02-22 Ed Schonberg <schonberg@adacore.com> 7551 7552 * sem_ch6.adb (Analyze_Expression_Function): If the construct 7553 is a completion, indicate that its formals are the formals of 7554 a completion, and as such do not get a cross- reference entry. 7555 (Analyze_Subprogram_Specification): Do not generate a definition 7556 for the entity of an expression function, because it may be a 7557 completion. Definition will be generated if needed when analyzing 7558 the generated subprogram declaration. 7559 75602012-02-22 Vincent Celier <celier@adacore.com> 7561 7562 * make.adb (Check): When checking if an object file is in the 7563 correct object directory, get the unit name from a previous call 7564 to Check_Source_Info_In_ALI. 7565 * makeutl.adb (Check_Source_Info_In_ALI): Return the name of 7566 the unit when everything is OK, otherwise return No_Name. 7567 * makeutl.ads (Check_Source_Info_In_ALI): Return Name_Id instead 7568 of Boolean 7569 75702012-02-22 Ed Schonberg <schonberg@adacore.com> 7571 7572 * sem_ch4.adb (Find_Equality_Types, Try_One_Interp): In an 7573 instance, the operator is visible if an operand is of some 7574 numeric type which is not in use or directly visible, and the 7575 other operand is a numeric literal. 7576 75772012-02-22 Tristan Gingold <gingold@adacore.com> 7578 7579 * init.c: Minor code clean up. 7580 * gcc-interface/Make-lang.in: Update dependencies. 7581 75822012-02-22 Arnaud Charlet <charlet@adacore.com> 7583 7584 * gnatlink.adb (Gnatlink): Use -gnatcC in CodePeer_Node, 7585 otherwise GCC will generate an object file. 7586 75872012-02-22 Vincent Celier <celier@adacore.com> 7588 7589 * projects.texi: Correct typo related to "**" in Source_Dirs. 7590 75912012-02-22 Steve Baird <baird@adacore.com> 7592 7593 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Clean up generation of 7594 error message text. 7595 75962012-02-22 Vincent Pucci <pucci@adacore.com> 7597 7598 * rtsfind.adb (Get_Unit_Name): Ada_Numerics_Child and 7599 System_Dim_Child cases added. 7600 * rtsfind.ads: Ada_Numerics, 7601 Ada_Numerics_Generic_Elementary_Functions, System_Dim, 7602 System_Dim_Float_IO and System_Dim_Integer_IO added to the list 7603 of RTU_Id. Ada_Numerics_Child and System_Dim_Child added as 7604 new RTU_Id subtypes. 7605 * sem_dim.adb (Is_Dim_IO_Package_Entity): Use of 7606 Rtsfind to verify the package entity is located either 7607 in System.Dim.Integer_IO or in System.Dim.Float_IO. 7608 (Is_Dim_IO_Package_Instantiation): Minor 7609 changes. (Is_Elementary_Function_Call): Removed. 7610 (Is_Elementary_Function_Entity): New routine. 7611 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity call added. 7612 * snames.ads-tmpl: Name_Dim and Name_Generic_Elementary_Functions 7613 removed. 7614 76152012-02-22 Vincent Pucci <pucci@adacore.com> 7616 7617 * sem_prag.adb: Minor reformatting. 7618 76192012-02-22 Ed Schonberg <schonberg@adacore.com> 7620 7621 * sem_ch3.adb (Find_Type_Name): When analyzing a private type 7622 declaration that is the completion of a tagged incomplete type, do 7623 not associate the class-wide type already created with the private 7624 type to prevent order-of-elaboration issues in the back-end. 7625 * exp_disp.adb (Find_Specific_Type): Find specific type of 7626 a class-wide type, and handle the case of an incomplete type 7627 coming either from a limited_with clause or from an incomplete 7628 type declaration. Used when expanding a dispatchin call and 7629 generating tag checks (minor refactoring). 7630 76312012-02-22 Robert Dewar <dewar@adacore.com> 7632 7633 * exp_ch5.adb: Add comment. 7634 * sem_ch12.adb, exp_ch6.adb: minor reformatting 7635 76362012-02-22 Ed Schonberg <schonberg@adacore.com> 7637 7638 * freeze.adb (Freeze_Entity): Do not perform type layout within 7639 a generic unit. 7640 76412012-02-22 Eric Botcazou <ebotcazou@adacore.com> 7642 7643 * init.c (__gnat_error_handler) [Linux]: Map SIGBUS to 7644 Storage_Error. 7645 76462012-02-22 Ed Schonberg <schonberg@adacore.com> 7647 7648 * exp_ch5.adb (Expand_N_Assignment_Statement): Reject an 7649 assignment to a classwide type whose type is limited, as 7650 can happen in an instantiation in programs that run afoul or 7651 AI05-0087. 7652 76532012-02-17 Ed Schonberg <schonberg@adacore.com> 7654 7655 * exp_ch6.adb (Legal_Copy): If layout is not 7656 determined in the front-end, do not emit error message when 7657 by-reference actual is potentially unaligned. 7658 * gcc-interface/decl.c (gnat_to_gnu_field): Better error message for 7659 illegal representation clause on tagged or aliased component, or on 7660 by-reference type with forced alignment. 7661 76622012-02-17 Nicolas Roche <roche@adacore.com> 7663 7664 * gcc-interface/Makefile.in: Ensure FORCE_DEBUG_ADAFLAGS variables is 7665 propagated by gnatlib-sjlj and gnatlib-zcx targets. 7666 * gcc-interface/Make-lang.in: Update dependencies. 7667 76682012-02-17 Thomas Quinot <quinot@adacore.com> 7669 7670 * sem_ch12.adb (Analyze_Package_Instantiation): For an 7671 instantiation in an RCI library unit, omit the instance body 7672 if the RCI library unit is the instance itself (E.2.3(18)), 7673 but include the body if the instantiation is within the RCI 7674 declaration (12.3(12)). 7675 76762012-02-17 Steve Baird <baird@adacore.com> 7677 7678 * sem_prag.adb (Analyze_PPC_In_Decl_Part): Pre'Class and 7679 Post'Class aspects can only be specified for a primitive operation 7680 of a tagged type. 7681 76822012-02-17 Yannick Moy <moy@adacore.com> 7683 7684 * gnat_rm.texi: Minor shuffling. 7685 76862012-02-17 Ed Schonberg <schonberg@adacore.com> 7687 7688 * aspects.adb: Expression functions can carry pre/postconditions. 7689 * par-ch6.adb (P_Subprogram): look for optional pre/postconditions 7690 in an expression function. 7691 * sem_prag (Check_Precondition_Postcondition): legal on expression 7692 functions. 7693 76942012-02-17 Vincent Pucci <pucci@adacore.com> 7695 7696 * a-cdlili.adb, a-cidlli.adb, a-cihama.adb, a-cimutr.adb, 7697 * a-ciorma.adb, a-cohama.adb, a-coinve.adb, a-comutr.adb, 7698 * a-convec.adb, a-coorma.adb (Adjust): New routine. 7699 (Constant_Reference): Increment Busy and Lock counters. 7700 (Reference): Increase Busy and Lock counters. 7701 (Finalize): New routine. 7702 * a-cihase.adb, a-ciorse.adb, a-cohase.adb, a-coorse.adb: 7703 (Adjust): New routine. (Constant_Reference): Increment Busy 7704 and Lock counters. 7705 (Finalize): New routine. 7706 * a-cdlili.ads, a-cidlli.ads, a-cihama.ads, a-cihase.ads, 7707 * a-cimutr.ads, a-ciorma.ads, a-ciorse.ads, a-cohama.ads, 7708 * a-cohase.ads, a-coinve.ads, a-comutr.ads, a-convec.ads, 7709 * a-coorma.ads, a-coorse: Controlled component added to the 7710 reference types. 7711 77122012-02-17 Robert Dewar <dewar@adacore.com> 7713 7714 * restrict.adb (Check_Restriction): Add special handling for 7715 No_Obsolescent_Features. 7716 77172012-02-17 Hristian Kirtchev <kirtchev@adacore.com> 7718 7719 * exp_util.adb (Find_Finalize_Address): When dealing with an 7720 internally built full view for a type with unknown discriminants, 7721 use the original record type. 7722 77232012-02-17 Robert Dewar <dewar@adacore.com> 7724 7725 * sem_dim.adb: Minor reformatting. 7726 77272012-02-17 Yannick Moy <moy@adacore.com> 7728 7729 * gnat_rm.texi: Minor rewording. 7730 77312012-02-17 Thomas Quinot <quinot@adacore.com> 7732 7733 * sem_aggr.adb: Minor reformatting. 7734 77352012-02-17 Robert Dewar <dewar@adacore.com> 7736 7737 * gnat_ugn.texi: Update doc for -gnatw.m to include 2*x case. 7738 77392012-02-17 Vincent Pucci <pucci@adacore.com> 7740 7741 * sem_dim.adb (Is_Dim_IO_Package_Entity): New routine. 7742 (Is_Dim_IO_Package_Instantiation): Is_Dim_IO_Package_Entity 7743 call added. 7744 (Is_Procedure_Put_Call): Is_Dim_IO_Package_Entity 7745 call added. 7746 * s-dim.ads: Make package Pure. 7747 77482012-02-17 Gary Dismukes <dismukes@adacore.com> 7749 7750 * prj-nmsc.adb: Minor reformatting. 7751 77522012-02-17 Yannick Moy <moy@adacore.com> 7753 7754 * gnat_rm.texi: Update GNAT RM with a separate chapter on restrictions. 7755 77562012-02-17 Yannick Moy <moy@adacore.com> 7757 7758 * gnat_ugn.texi: Fix typos. 7759 77602012-02-17 Pascal Obry <obry@adacore.com> 7761 7762 * prj-nmsc.adb: prj-nmsc.adb (Check_Aggregated): Check that an 7763 aggregate is not Externally_Built. 7764 77652012-02-17 Ed Schonberg <schonberg@adacore.com> 7766 7767 * sem_aggr.adb (Resolve_Record_Aggregate): If a composite 7768 component has a box association, copy the default value using 7769 the current scope as the scope of internal types, to prevent 7770 scoping anomalies in gigi. 7771 77722012-02-17 Robert Dewar <dewar@adacore.com> 7773 7774 * sem_dim.adb, sem_dim.ads, s-tasren.adb, prj.adb, prj.ads, freeze.adb, 7775 sem_res.adb, exp_ch4.adb, sinput.adb, sinput.ads, exp_aggr.adb, 7776 exp_intr.adb, s-os_lib.adb: Minor reformatting. 7777 77782012-02-17 Ed Schonberg <schonberg@adacore.com> 7779 7780 * sem_ch6.adb (Is_Non_Overriding_Operation): Add warning if the 7781 old operation is abstract, the relevant type is not abstract, 7782 and the new subprogram fails to override. 7783 77842012-02-15 Eric Botcazou <ebotcazou@adacore.com> 7785 7786 * gcc-interface/trans.c (Identifier_to_gnu): Move block retrieving the 7787 type of the result to the end and execute it for a deferred constant of 7788 a discriminated type whose full view can be elaborated statically. 7789 77902012-02-15 Eric Botcazou <ebotcazou@adacore.com> 7791 7792 * gcc-interface/trans.c (gnat_to_gnu) <N_Qualified_Expression>: If the 7793 type is tagged, mark it as used for debugging purposes. 7794 <N_Allocator>: Likewise for a qualified expression. 7795 77962012-02-15 Eric Botcazou <ebotcazou@adacore.com> 7797 7798 * gcc-interface/trans.c (call_to_gnu): Create the temporary for the 7799 return value in the by-reference return type case if this isn't the 7800 expression of an object declaration. Tidy up. 7801 78022012-02-09 Tristan Gingold <gingold@adacore.com> 7803 7804 * gcc-interface/Makefile.in: Remove .sym rule (not used). 7805 Remove adamsg.o object (requires native message compiler). 7806 * init.c (CMA$_EXIT_THREAD, MTH$_FLOOVEMAT, SS$_INTDIV): Define as a 7807 macro instead of as extern int. 7808 (ADA$_ALREADY_OPEN, ADA$_CONSTRAINT_ERRO, ADA$_DATA_ERROR) 7809 (ADA$_DEVICE_ERROR, ADA$_END_ERROR, ADA$_FAC_MODE_MISMAT) 7810 (ADA$_IOSYSFAILED, ADA$_KEYSIZERR, ADA$_KEY_MISMATCH) 7811 (ADA$_LAYOUT_ERROR, ADA$_LINEXCMRS, ADA$_MAXLINEXC) 7812 (ADA$_MODE_ERROR, ADA$_MRN_MISMATCH, ADA$_MRS_MISMATCH) 7813 (ADA$_NAME_ERROR, ADA$_NOT_OPEN, ADA$_ORG_MISMATCH) 7814 (ADA$_PROGRAM_ERROR, ADA$_RAT_MISMATCH, ADA$_RFM_MISMATCH) 7815 (ADA$_STAOVF, ADA$_STATUS_ERROR, ADA$_STORAGE_ERROR) 7816 (ADA$_UNSUPPORTED, ADA$_USE_ERROR): Likewise. 7817 (struct cond_except): Field cond is now an unsigned int. 7818 (dec_ada_cond_except_table): Adjust. 7819 (cond_except_table): Likewise. 7820 (cond_resignal_table): Likewise. 7821 (__gnat_default_resignal_p): Fix style. 7822 78232012-02-08 Vincent Celier <celier@adacore.com> 7824 7825 * gcc-interface/Make-lang.in: Add g-byorma.o to gnatbind objects 7826 (g-buorma is now imported by sinput). 7827 Update dependencies. 7828 * scn.adb (Initialize_Scanner): Call Check_For_BOM 7829 * sinput-p.adb (Source_File_Is_Subunit): Call Check_For_BOM 7830 * sinput.adb: New procedure Check_For_BOM 7831 * sinput.ads: New procedure Check_For_BOM 7832 78332012-02-08 Vincent Pucci <pucci@adacore.com> 7834 7835 * impunit.adb: Dimension package names updated 7836 * Makefile.rtl: s-dim added 7837 * sem_dim.adb (Is_Procedure_Put_Call): minor changes 7838 (Is_Dim_IO_Package_Instantiation): minor changes 7839 * sem_dim.ads: minor changes in comments 7840 * snames.ads-tmpl: Name_Dim added Name_Dim_Float_IO and 7841 Name_Dim_Integer_IO removed 7842 * s-dim.ads: New package. Define the dimension terminology. 7843 * s-diflio.adb, s-diinio.adb, s-dimkio.ads, s-dimmks.ads, 7844 * s-dmotpr.ads: Package names updated. 7845 * s-diflio.ads, s-diinio.ads: Documentation added and package 7846 names updated. 7847 78482012-02-08 Gary Dismukes <dismukes@adacore.com> 7849 7850 * gcc-interface/utils2.c (build_call_alloc_dealloc_proc): Revise test 7851 for storage pools to test for an underlying record type rather than 7852 testing Is_Tagged_Type, so that simple storage pools will be handled 7853 the same as normal Ada storage pools. 7854 78552012-02-08 Yannick Moy <moy@adacore.com> 7856 7857 * gnat_rm.texi: Minor reshuffling to place restriction at 7858 appropriate place. 7859 78602012-02-08 Bob Duff <duff@adacore.com> 7861 7862 * warnsw.adb (Set_Warning_Switch): Set Warn_On_Suspicious_Modulus_Value 7863 False for '-gnatwA', to suppress these warnings. 7864 78652012-02-08 Vincent Celier <celier@adacore.com> 7866 7867 * sinput-p.adb (Source_File_Is_Subunit): Check for BOM before 7868 starting to scan, so that UTF8 encoding is taken into account. 7869 78702012-02-08 Arnaud Charlet <charlet@adacore.com> 7871 7872 * s-tasren.adb, s-tasren.ads (Internal_Complete_Rendezvous): New 7873 function. 7874 (Complete_Rendezvous): Now call Internal_Complete_Rendezvous. 7875 (Exceptional_Complete_Rendezvous): Mark No_Return. 7876 78772012-02-08 Eric Botcazou <ebotcazou@adacore.com> 7878 7879 * exp_aggr.adb (Compile_Time_Known_Composite_Value): 7880 New predicate to compute whether a composite value can be 7881 evaluated at compile time. 7882 (Component_Not_OK_For_Backend): Use Compile_Time_Known_Value for all 7883 expressions of elementary type and Compile_Time_Known_Composite_Value 7884 for all other expressions. 7885 (Expand_Record_Aggregate): Convert to assignments in the case 7886 of a type with mutable components if the aggregate cannot be 7887 built statically. 7888 78892012-02-08 Gary Dismukes <dismukes@adacore.com> 7890 7891 * aspects.ads (type Aspect_Id): Add Simple_Storage_Pool_Type. 7892 (Impl_Defined_Aspects): Add association for 7893 Aspect_Simple_Storage_Pool_Type. 7894 (Aspect_Names): Add 7895 association for Aspect_Simple_Storage_Pool_Type. 7896 * aspects.adb: 7897 (Canonical_Aspect): Add association for Simple_Storage_Pool_Type. 7898 * exp_attr.adb (Expand_N_Attribute_Reference): 7899 Change name to Name_Simple_Storage_Pool_Type. 7900 * exp_ch4.adb (Expand_N_Allocator): Change 7901 name to Name_Simple_Storage_Pool_Type. 7902 * exp_intr.adb (Expand_Unc_Deallocation): Change name to 7903 Name_Simple_Storage_Pool_Type. * freeze.adb (Freeze_Entity): 7904 Change names to Name_Simple_Storage_Pool_Type. * par-prag.adb: 7905 Change names to Name_Simple_Storage_Pool_Type. * sem_attr.adb: 7906 (Analyze_Attribute): Change name to Name_Simple_Storage_Pool_Type. 7907 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): 7908 Change name to Name_Simple_Storage_Pool_Type. 7909 * sem_prag.adb: 7910 (Analyze_Pragma): Change name to Name_Simple_Storage_Pool_Type. 7911 (Sig_Flags): Change name to Name_Simple_Storage_Pool_Type. 7912 * sem_res.adb (Resolve_Allocator): Change name to 7913 Name_Simple_Storage_Pool_Type. * snames.ads-tmpl: 7914 (Name_Simple_Storage_Pool_Type): New name constant. 7915 (type Pragma_Id): Change name to Name_Simple_Storage_Pool_Type and 7916 move to main pragma section because it no longer matches the 7917 attribute name. 7918 * snames.adb-tmpl (Get_Pragma_Id): Remove test for 7919 Name_Simple_Storage_Pool. 7920 (Is_Pragma_Name): Remove test for Name_Simple_Storage_Pool. 7921 79222012-02-08 Robert Dewar <dewar@adacore.com> 7923 7924 * gnat_ugn.texi: Add some clarification to -gnatwA and -gnatws. 7925 79262012-02-08 Pascal Obry <obry@adacore.com> 7927 7928 * prj.adb (Compute_All_Imported_Projects): Use new 7929 For_Project_And_Aggregated_Context to ensure proper context is 7930 used for encapsulated aggregate libraries. 7931 * prj-proc.adb (Recursive_Process): Call 7932 Process_Aggregated_Projects earlier to ensure that all dependent 7933 projects are set with the proper encapsulated status. 7934 79352012-02-08 Pascal Obry <obry@adacore.com> 7936 7937 * s-os_lib.adb (Normalize_Arguments): Properly escape last \ in null 7938 terminated string. 7939 79402012-02-08 Pascal Obry <obry@adacore.com> 7941 7942 * prj.ads, prj.adb (For_Project_And_Aggregated_Context): New 7943 generic routine with a context parameter. 7944 79452012-02-08 Robert Dewar <dewar@adacore.com> 7946 7947 * a-coinve.adb, sem_util.adb, sem_ch8.adb, a-cobove.adb, 7948 a-convec.adb: Minor reformatting and code reorganization. 7949 79502012-02-08 Steve Baird <baird@adacore.com> 7951 7952 * sem_cat.adb (In_Preelaborated_Unit): A child 7953 unit instantiation does not inherit preelaboration requirements 7954 from its parent. 7955 79562012-02-08 Gary Dismukes <dismukes@adacore.com> 7957 7958 * aspects.ads (type Aspect_Id): Add Aspect_Simple_Storage_Pool. 7959 (Impl_Defined_Aspects): Add entry for Aspect_Simple_Storage_Pool. 7960 (Aspect_Argument): Add Name entry for Aspect_Simple_Storage_Pool. 7961 (Aspect_Names): Add entry for Aspect_Simple_Storage_Pool. 7962 * aspects.adb (Canonical_Aspect): Add entry for 7963 Aspect_Simple_Storage_Pool. 7964 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of 7965 Attribute_Simple_Storage_Pool in the same way as Storage_Pool 7966 (add conversion, analyze/resolve). For the Storage_Size attribute, 7967 for the simple pool case, locate and use the simple pool type's 7968 Storage_Size function (if any), otherwise evaluate to zero. 7969 * exp_ch4.adb (Expand_N_Allocator): In the case of an allocator 7970 for an access type with an associated simple storage pool, 7971 locate and use the pool type's Allocate. 7972 * exp_intr.adb (Expand_Unc_Deallocation): In the case where the 7973 access type has a simple storage pool, locate the pool type's 7974 Deallocate procedure (if present) and use it as the procedure 7975 to call on the Free operation. 7976 * freeze.adb (Freeze_Entity): In the case of a full type for 7977 a private type defined with pragma Simple_Storage_Pool, check 7978 that the full type is also appropriate for the pragma. For 7979 a simple storage pool type, validate that the operations 7980 Allocate, Deallocate (if present), and Storage_Size 7981 (if present) are defined with appropriate expected profiles. 7982 (Validate_Simple_Pool_Op_Formal): New procedure 7983 (Validate_Simple_Pool_Operation): New procedure Add with and 7984 use of Rtsfind. 7985 * par-prag.adb: Add Pragma_Simple_Storage_Pool to case statement 7986 (no action required). 7987 * sem_attr.adb (Analyze_Attribute): For the case of the 7988 Storage_Pool attribute, give a warning if the prefix type has an 7989 associated simple storage pool, and rewrite the attribute as a 7990 raise of Program_Error. In the case of the Simple_Storage_Pool 7991 attribute, check that the prefix type has an associated simple 7992 storage pool, and set the attribute type to the pool's type. 7993 * sem_ch13.adb (Analyze_Aspect_Specifications): Add 7994 Aspect_Simple_Storage_Pool case choice. 7995 (Analyze_Attribute_Definition_Clause): Add 7996 Aspect_Simple_Storage_Pool to case for Ignore_Rep_Clauses 7997 (no action). Add handling for Simple_Storage_Pool attribute 7998 definition, requiring the name to denote a simple storage pool 7999 object. 8000 (Check_Aspect_At_Freeze_Point): For a simple storage pool 8001 aspect, set the type to that of the name specified for the aspect. 8002 * sem_prag.adb (Analyze_Pragma): Add handling for pragma 8003 Simple_Storage_Pool, requiring that it applies to a library-level 8004 type declared in a package declaration that is a limited private 8005 or limited record type. 8006 * sem_res.adb (Resolve_Allocator): Flag an attempt to call a 8007 build-in-place function in an allocator for an access type with 8008 a simple storage pool as unsupported. 8009 * snames.ads-tmpl: Add Name_Simple_Storage_Pool. 8010 (type Attribute_Id): Add Attribute_Simple_Storage_Pool. 8011 (type Pragma_Id): Add Pragma_Simple_Storage_Pool. 8012 * snames.adb-tmpl (Get_Pragma_Id): Handle case of 8013 Name_Simple_Storage_Pool. 8014 (Is_Pragma_Name): Return True for Name_Simple_Storage_Pool. 8015 80162012-02-08 Cyrille Comar <comar@adacore.com> 8017 8018 * projects.texi: Clarify doc for interfaces. 8019 80202012-02-07 Eric Botcazou <ebotcazou@adacore.com> 8021 8022 * gcc-interface/Make-lang.in (GCC_LINKERFLAGS): New variable. 8023 (GCC_LINK): Use it. 8024 80252012-02-01 Tristan Gingold <gingold@adacore.com> 8026 8027 * gcc-interface/trans.c (Loop_Statement_to_gnu): Use sizetype 8028 instead of size_type_node. 8029 80302012-01-30 Nicolas Roche <roche@adacore.com> 8031 8032 * gcc-interface/Make-lang.in: Update dependencies. 8033 * gcc-interface/Makefile.in: Use system-vxworks-system-ppc-mils.ads 8034 when needed. 8035 Remove Linker_Options -crtbe when building sjlj run-time. 8036 80372012-01-30 Robert Dewar <dewar@adacore.com> 8038 8039 * sem.adb (Analyze): Call Analyze_Mod for N_Op_Mod mode. 8040 * sem_ch3.adb (Modular_Type_Declaration): Warn on mod value of 8041 form 2 * small-literal. 8042 * sem_ch4.adb (Analyze_Mod): New procedure (warn on suspicious 8043 mod value). 8044 * sem_ch4.ads (Analyze_Mod): New procedure. 8045 80462012-01-30 Ed Schonberg <schonberg@adacore.com> 8047 8048 * sem_ch6.adb: sem_ch6.adb (Analyze_Expression_Function): Copy 8049 types and return expression when building spec for implicit 8050 body, to preserve global references that may be present in an 8051 instantiation. 8052 80532012-01-30 Matthew Heaney <heaney@adacore.com> 8054 8055 * a-convec.adb, a-coinve.adb, a-cobove.adb (Sort, 8056 Reverse_Elements): Check for cursor tampering. 8057 80582012-01-30 Ed Schonberg <schonberg@adacore.com> 8059 8060 * sem_util.adb (Is_Fully_Initialized_Type): In Ada 2012, a 8061 type with aspect Default_Value or Default_Component_Value is 8062 fully initialized, and use of variables of such types do not 8063 generate warnings. 8064 80652012-01-30 Javier Miranda <miranda@adacore.com> 8066 8067PR ada/15846 8068 * sem_ch8.adb (Analyze_Subprogram_Renaming): 8069 Handle self-renaming when the renamed entity is referenced using 8070 its expanded name. 8071 80722012-01-30 Vincent Celier <celier@adacore.com> 8073 8074 * projects.texi: Add documentation for attribute Interfaces. 8075 80762012-01-30 Hristian Kirtchev <kirtchev@adacore.com> 8077 8078 * exp_ch7.adb (Build_Finalizer_Call): Set loc again. 8079 * exp_ch11.adb (Expand_At_End_Handler): Do not provide a source 8080 location for the wrapped call to the original AT_END routine 8081 and the subsequent return statement. 8082 80832012-01-30 Pascal Obry <obry@adacore.com> 8084 8085 * s-rannum.adb: Minor reformatting. 8086 80872012-01-30 Hristian Kirtchev <kirtchev@adacore.com> 8088 8089 * a-calend-vms.adb, a-calend.adb: Increment the number of leap seconds 8090 to 25 and add the hard time value for 2012-06-30. 8091 80922012-01-30 Robert Dewar <dewar@adacore.com> 8093 8094 * a-strhas.ads, einfo.adb, einfo.ads, exp_ch7.adb, exp_ch9.adb, 8095 freeze.adb, prj.adb, prj.ads, prj-nmsc.adb, prj-proc.adb, s-llflex.ads, 8096 s-ransee.adb, s-ransee.ads, sem_ch13.adb, sem_dim.adb, sem_prag.adb: 8097 Minor reformatting/code reorganization. 8098 80992012-01-30 Thomas Quinot <quinot@adacore.com> 8100 8101 * s-rannum.adb, s-ransee.adb, s-ransee.ads (Get_Seed): Return 8102 Unsigned_64 rather than Duration. 8103 (System.Random_Numbers.Reset): Use full value of seed 8104 (do not truncate sub-second bits). 8105 81062012-01-30 Thomas Quinot <quinot@adacore.com> 8107 8108 * sem_cat.adb, sem_ch12.adb: Minor reformatting. 8109 81102012-01-30 Yannick Moy <moy@adacore.com> 8111 8112 * gnat_ugn.texi: Minor correction of GNAT UG, to take into 8113 account changes to -gnatwa and more recent warnings. 8114 81152012-01-30 Hristian Kirtchev <kirtchev@adacore.com> 8116 8117 * exp_ch7.adb (Build_Finalizer_Call): Do not provide a source 8118 location when creating a call to a finalizer. 8119 * exp_ch11.adb (Expand_Exception_Handlers): Do not provide 8120 a source location for the first actual of Save_Occurrence for 8121 consistency sake. 8122 81232012-01-30 Ed Schonberg <schonberg@adacore.com> 8124 8125 * einfo.ads, einfo,adb: New attribute on scalar types: 8126 Default_Aspect_Value New attribute on array types: 8127 Default_Aspect_Component_Value Move attribute Related_Array_Object 8128 to a different position to accomodate new aspect attributes. 8129 * freeze.adb (Freeze_Entity): Use new attributes to retrieve value 8130 of defaults set with an aspect specification, rather than using 8131 the list of aspects attached to the type, to prevent issues with 8132 partial views. 8133 * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects 8134 Default_Value and Default_Component _Value, store corresponding 8135 expression in type entity. 8136 (Check_Aspect_At_End_Of_Declaration): If the default aspects 8137 are declared on the full view, use the full view to resolve the 8138 correseponding expression. 8139 * exp_ch3.adb (Init_Component): Use attribute 8140 Default_Aspect_Component_Value to perform default initialization, 8141 rather than relying on the rep item list for the type. 8142 (Get_Simple_Init_Val): Ditto. 8143 81442012-01-30 Thomas Quinot <quinot@adacore.com> 8145 8146 * a-strhas.ads: Document risk of collision attack. 8147 81482012-01-30 Yannick Moy <moy@adacore.com> 8149 8150 * gnat_ugn.texi: Minor update wrt warning switches. 8151 81522012-01-30 Vincent Celier <celier@adacore.com> 8153 8154 * prj-nmsc.adb (Check_Interfaces): Report an error when a 8155 unit from Library_Interface is not a unit of the project. 8156 81572012-01-30 Vincent Pucci <pucci@adacore.com> 8158 8159 * sem_prag.adb (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Parent 8160 links fixed inside PPC pragmas. 8161 * sem_ch12.adb: Move call to Make_Aspect_For_PPC_In_Gen_Sub_Decl. 8162 81632012-01-30 Thomas Quinot <quinot@adacore.com> 8164 8165 * s-ransee.ads: Minor reformatting. 8166 81672012-01-30 Pascal Obry <obry@adacore.com> 8168 8169 * prj.ads, prj.adb (For_Each_Source): Add support for skipping 8170 sources coming from an encapsulated library. 8171 81722012-01-30 Ed Schonberg <schonberg@adacore.com> 8173 8174 * sem_ch3.adb (Process-Full_View): fix typo. 8175 * sem_ch13.adb (Aalyze_Aspect_Specifications): if predicates 8176 appear on a private type and the full view is available, ensure 8177 existence of freeze node for full view. 8178 (Build_Predicate_Function): Attach predicate function to both 8179 views of a private type. 8180 81812012-01-30 Vincent Celier <celier@adacore.com> 8182 8183 * prj-nmsc.adb (Check_Interfaces): Compute the Lib_Interface_ALIs 8184 for the project if either attribute Library_Interface or 8185 Interfaces is declared. 8186 (Check_Stand_Alone_Library): Use Lib_Interface_ALIs computed in 8187 Check_Interfaces. 8188 81892012-01-30 Pascal Obry <obry@adacore.com> 8190 8191 * prj-proc.adb (Recursive_Process): Set From_Encapsulated_Lib 8192 boolean value to true in the process list created by this routine. 8193 * prj.ads (Project_List_Element): New field From_Encapsulated_Lib. 8194 Continued work for KA06-021. 8195 * prj.adb (Compute_All_Imported_Projects): Set 8196 From_Encapsulated_Lib boolean flag. 8197 81982012-01-30 Vincent Pucci <pucci@adacore.com> 8199 8200 * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Minor 8201 code clean up. 8202 * s-diflio.ads: Minor change. 8203 82042012-01-30 Javier Miranda <miranda@adacore.com> 8205 8206 * exp_ch9.adb (Build_Dispatching_Requeue): Add missing call 8207 to Get_Entry_Index. Required to generate code which provides 8208 the correct value of Entry_Index in the target entry. 8209 82102012-01-30 Nicolas Roche <roche@adacore.com> 8211 8212 * system-vxworks-ppc.ads: Add pragma Linker_Options -crtbe to 8213 fix issue with zcx on VxWorks5. 8214 82152012-01-30 Pascal Obry <obry@adacore.com> 8216 8217 * prj.ads, prj.adb (For_Every_Project_Imported): Remove 8218 In_Aggregate_Lib. 8219 (For_Every_Project_Imported_Context): New generic routine with 8220 a context parameter. 8221 * prj-nmsc.adb: Revert to use For_Every_Project_Imported Avoid 8222 distributed complexity. 8223 * prj-env.adb, prj-conf.adb, makeutl.adb, gnatcmd.adb: Ditto. 8224 82252012-01-30 Thomas Quinot <quinot@adacore.com> 8226 8227 * exp_aggr.adb (Expand_Record_Aggregate): After creating the 8228 _parent aggregate for an extension aggregate, check whether it 8229 requires delayed (top-down) expansion. 8230 82312012-01-30 Vincent Pucci <pucci@adacore.com> 8232 8233 * sem_dim.adb (Expand_Put_Call_With_Dimension_Symbol): Rewritten. 8234 * snames.ads-tmpl: Name_Item and Name_Symbols added. 8235 * s-diflio.adb, s-diflio.ads, s-diinio.adb, s-diinio.ads: Rename 8236 and change the position of parameter Symbols in every Put routine. 8237 * s-dimmks.ads: Convert long float type Mks_Type into long 8238 long float. 8239 * s-llflex.ads: Modifications in comments. 8240 82412012-01-30 Hristian Kirtchev <kirtchev@adacore.com> 8242 8243 * sem_ch12.adb (Earlier): Do not use the 8244 top level source locations of the two input nodes. 8245 82462012-01-30 Robert Dewar <dewar@adacore.com> 8247 8248 * einfo.ads, sem_prag.adb, sem_attr.adb, aspects.ads, 8249 sem_cat.adb, sem_aggr.adb, exp_aggr.adb: Minor reformatting. 8250 82512012-01-30 Robert Dewar <dewar@adacore.com> 8252 8253 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting. 8254 82552012-01-30 Olivier Hainque <hainque@adacore.com> 8256 8257 * sigtramp-ppcvxw.c (CFI_COMMON_REGS): Add rule for r1 back + 8258 comments. 8259 82602012-01-30 Thomas Quinot <quinot@adacore.com> 8261 8262 * gnat_rm.texi, sem_dist.adb, sem_dist.ads, einfo.ads, sem_prag.adb, 8263 sem_ch12.adb, sem_attr.adb, aspects.adb, aspects.ads, par-prag.adb, 8264 sem_cat.adb, snames.ads-tmpl (Sem_Dist.Is_Valid_Remote_Object_Type): 8265 New subprogram (extracted from 8266 Sem_Cat.Validate_Remote_Access_Object_Type_Declaration). 8267 (Einfo.Is_Remote_Types): Now applies to generic types. Update 8268 documentation accordingly. 8269 (Sem_Ch12.Analyze_Associations): A RACW type is acceptable as 8270 actual for a formal type to which a pragma Remote_Access_Type 8271 applies. 8272 (Aspects, Par.Prag, Sem_Prag): Support for new pramga/aspect 8273 Remote_Access_Type. 8274 (Sem_Attr.Analyze_Attribute, case Stub_Type): Attribute can 8275 be applied to a generic type if pragma Remote_Access_Type 8276 applies, in which case the type of the attribute is 8277 System.Partition_Interface.RACW_Stub_Type. 8278 82792012-01-27 Eric Botcazou <ebotcazou@adacore.com> 8280 8281 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set 8282 an alignment on fields of the RETURN type built for the CICO mechanism. 8283 82842012-01-27 Eric Botcazou <ebotcazou@adacore.com> 8285 8286 * gcc-interface/trans.c (gnat_to_gnu): Avoid making a SAVE_EXPR for 8287 a call to a function that returns an unconstrained type with default 8288 discriminant. Similarly, avoid doing the conversion to the nominal 8289 result type in this case. 8290 82912012-01-27 Eric Botcazou <ebotcazou@adacore.com> 8292 8293 * gcc-interface/ada-tree.h (DECL_ALIASED_P): New flag. 8294 * gcc-interface/decl.c (is_variable_size): Rename to... 8295 (type_has_variable_size): ...this. 8296 (adjust_packed): Adjust to above renaming. 8297 (gnat_to_gnu_field): Set DECL_ALIASED_P on the field. 8298 (field_is_artificial): New predicate. 8299 (field_is_aliased): Likewise. 8300 (field_has_self_size): Likewise. 8301 (field_has_variable_size): Likewise. 8302 (components_to_record): Record information for the final layout during 8303 the first pass on fields. 8304 If there is an aliased field placed after a field whose length depends 8305 on discriminants, put all the fields of the latter sort, last. 8306 83072012-01-27 Eric Botcazou <ebotcazou@adacore.com> 8308 8309 * gcc-interface/gigi.h (get_minimal_subprog_decl): Declare. 8310 * gcc-interface/decl.c (get_minimal_subprog_decl): New function. 8311 * gcc-interface/trans.c (Attribute_to_gnu): Use it for the prefix of an 8312 Access-like attribute in a dispatch table if the subprogram is public. 8313 83142012-01-27 Eric Botcazou <ebotcazou@adacore.com> 8315 8316 * gcc-interface/gigi.h (create_label_decl): Adjust. 8317 * gcc-interface/utils.c (create_label_decl): Add GNAT_NODE parameter 8318 and invoke gnat_pushdecl on it. Remove obsolete settings. 8319 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Label>: Adjust call to 8320 create_label_decl. 8321 * gcc-interface/trans.c (gnat_to_gnu) <N_Null): Likewise. Ignore the 8322 label for debugging purposes. 8323 83242012-01-27 Eric Botcazou <ebotcazou@adacore.com> 8325 8326 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: For an aliased 8327 object with an unconstrained nominal subtype and if optimization isn't 8328 enabled, create a special VAR_DECL for debugging purposes. 8329 83302012-01-23 Robert Dewar <dewar@adacore.com> 8331 8332 * sem_prag.ads, sem_prag.adb: Minor reformatting. 8333 83342012-01-23 Robert Dewar <dewar@adacore.com> 8335 8336 * sem_ch13.adb (Analyze_Aspect_Specifications): Check for 8337 language defined aspect applied to renaming or formal type 8338 declaration (not permitted) 8339 83402012-01-23 Matthew Heaney <heaney@adacore.com> 8341 8342 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb (Vet): Replaced 8343 comment with pragma Assert. 8344 83452012-01-23 Vincent Pucci <pucci@adacore.com> 8346 8347 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Call 8348 to Make_Aspect_For_PPC_In_Gen_Sub_Decl added in ASIS mode. 8349 * sem_prag.adb, sem_prag.ads (Make_Aspect_For_PPC_In_Gen_Sub_Decl): New 8350 routine. In ASIS mode, convert any PPC pragmas into aspects in generic 8351 subprogram declaration in order to enable the analysis of PPC boolean 8352 expressions. 8353 83542012-01-23 Robert Dewar <dewar@adacore.com> 8355 8356 * sem_ch3.adb (Analyze_Object_Declaration): Properly 8357 handle Current_Value for volatile variables (also propagate 8358 Treat_As_Volatile from type to object). 8359 83602012-01-23 Hristian Kirtchev <kirtchev@adacore.com> 8361 8362 * sem_ch12.adb (Install_Body): Detect the case 8363 where the enclosing context is a package with a stub body that 8364 has already been replaced by the actual body. In such cases, 8365 the freeze node for the enclosing context must be inserted after 8366 the real body. 8367 83682012-01-23 Ed Schonberg <schonberg@adacore.com> 8369 8370 * sem_prag.adb (Analyze_Pragma, case Debug): Freeze the called 8371 subprogram before expanding the pragma into an if-statement with 8372 a block, to ensure that when the subprogram is null its body is 8373 properly generated before expansion. 8374 83752012-01-23 Hristian Kirtchev <kirtchev@adacore.com> 8376 8377 * sem_ch12.adb (Analyze_Associations): Alphabetize local variables and 8378 constants. Rename Actual_Types to Actuals_To_Freeze. Rename Next_Formal 8379 to Saved_Formal. 8380 Freeze all eligible subprograms which appear as actuals in 8381 the instantiation. 8382 (Has_Fully_Defined_Profile): New routine. 8383 (Renames_Standard_Subprogram): New routine. 8384 (Earlier): Add local variable N. Comment update. Do not use source 8385 locations when trying to determine whether one node precedes another. 8386 83872012-01-23 Gary Dismukes <dismukes@adacore.com> 8388 8389 * exp_ch4.adb (Expand_Concatenate): In the case 8390 where the result of a concatentation can be null, set the to 8391 result have both the low and high bounds of the right operand (not 8392 just the high bound, as was the case prior to this fix). Also, 8393 fix the saved high bound setting (Last_Opnd_High_Bound) in the 8394 empty string literal case (should have been low bound minus one, 8395 rather than plus one). 8396 83972012-01-23 Thomas Quinot <quinot@adacore.com> 8398 8399 * scos.ads, put_scos.adb, get_scos.adb (Get_SCOs, Put_SCOs): Do not 8400 omit statement SCOs for disabled pragmas. 8401 84022012-01-23 Matthew Heaney <heaney@adacore.com> 8403 8404 * a-cohase.ads, a-cihase.ads, a-cbhase.ads, a-coorse.ads, 8405 a-ciorse.ads, a-cborse.ads, a-cohama.ads, a-cihama.ads, a-cbhama.ads, 8406 a-coorma.ads, a-ciorma.ads, a-cborma.ads, a-cdlili.ads, a-cidlli.ads, 8407 a-cbdlli.ads, a-convec.ads, a-coinve.ads, a-cobove.ads (Cursor'Read, 8408 Cursor'Write): Declare in private part. 8409 (Reference_Type'Read, Reference_Type'Write): Ditto. 8410 (Constant_Reference_Type'Read, Constant_Reference_Type'Write): Ditto. 8411 84122012-01-23 Robert Dewar <dewar@adacore.com> 8413 8414 * a-catizo.ads, a-calend.adb, a-calend.ads, par-ch13.adb: Minor 8415 reformatting. 8416 84172012-01-23 Ed Schonberg <schonberg@adacore.com> 8418 8419 * sem_ch6.adb (Analyze_Subprogram_Declaration): Do not set the 8420 Corresponding_Body on a defaulted null formal subprogram. 8421 * sem_ch12.adb (Check_Formal_Package_Instance): No check needed 8422 on a defaulted formal subprogram that is a null procedure. 8423 84242012-01-23 Hristian Kirtchev <kirtchev@adacore.com> 8425 8426 * exp_ch9.adb: Update the comments involving pragma Implemented. 8427 * sem_ch3.adb (Check_Pragma_Implemented (Entity_Id)): Add local 8428 constant Subp_Alias and local variable Impl_Subp. Properly 8429 handle aliases of synchronized wrappers. Code cleanup. 8430 (Check_Pragma_Implemented (Entity_Id; Entity_Id)): Add 8431 Name_Optional as part of the condition. 8432 * sem_prag.adb (Analyze_Pragma): Add "Optional" as one of the 8433 valid choices of implementation kind. 8434 (Check_Arg_Is_One_Of): New routine. 8435 * snames.ads-tmlp: Add Name_Optional. 8436 84372012-01-23 Ed Schonberg <schonberg@adacore.com> 8438 8439 * par-ch13.adb: Better error recovery in illegal aspect 8440 specification. 8441 84422012-01-23 Hristian Kirtchev <kirtchev@adacore.com> 8443 8444 * a-calend.adb: Add with clause for Interfaces.C. Add constant 8445 Unix_Max. 8446 (Day_Of_Week): Call the internal UTC_Time_Offset. 8447 (Split): Call the internal UTC_Time_Offset. 8448 (Time_Of): Call the internal UTC_Time_Offset. 8449 (Time_Zone_Operations.UTC_Time_Offset): Call internal UTC_Time_Offset. 8450 (UTC_Time_Offset): New library-level routine. 8451 * a-calend.ads (UTC_Time_Offset): Remove parameter 8452 Is_Historic. Update related comment on usage. 8453 * a-catizo.adb (UTC_Time_Offset): Removed. 8454 (UTC_Time_Offset (Time)): Call Time_Zone_Operations.UTC_Time_Offset. 8455 * a-caltizo.ads (UTC_Time_Offset): Removed. 8456 (UTC_Time_Offset (Time)): Add back the default expression of parameter 8457 Date. 8458 84592012-01-23 Robert Dewar <dewar@adacore.com> 8460 8461 * sprint.ads, sprint.adb (Sprint_Node_List): Add New_Lines parameter 8462 (pg,po,ps): Make sure each entry starts on new line. 8463 84642012-01-23 Hristian Kirtchev <kirtchev@adacore.com> 8465 8466 * a-calend.ads, a-calend.adb: Define types int and int_Pointer. Update 8467 the parameter profile of procedure localtime_tzoff and its associated 8468 comment. 8469 (Day_Of_Week): Do not treat the input date as historical 8470 with respect to time zones. 8471 (Split): Do not treat the input 8472 date as historical with respect to time zones. (Time_Of): Do 8473 not treat the input constituents as forming a historical date 8474 with respect to time zones. 8475 (UTC_Time_Offset): Add new formal 8476 parameter Is_Historic. Add local variable Flag. Update the call 8477 to localtime_tzoff. 8478 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): New routine. 8479 (UTC_Time_Offset (Time)): Update the call to 8480 Time_Zone_Operations.UTC_Time_Offset. 8481 * sysdep.c (__gnat_localtime_tzoff): Update parameter 8482 profile. Split the processing of offsets on Windows into two - one 8483 part of historic time stamps and the other for the current time. 8484 84852012-01-23 Robert Dewar <dewar@adacore.com> 8486 8487 * a-calend.adb: Minor reformatting. 8488 84892012-01-23 Ed Schonberg <schonberg@adacore.com> 8490 8491 * exp_ch9.adb, sem_ch9.adb: Handle array of access to synchronized 8492 interface in requeue statement. 8493 84942012-01-23 Cyrille Comar <comar@adacore.com> 8495 8496 * projects.texi: Remove references to main units and replace 8497 with references to main programs to be coherent with the 8498 documentation. 8499 85002012-01-23 Robert Dewar <dewar@adacore.com> 8501 8502 * s-utf_32.adb: Minor reformatting. 8503 85042012-01-23 Vincent Celier <celier@adacore.com> 8505 8506 * snames.ads-tmpl: Minor comment addition Indicate that 8507 Name_Library_Encapsulated_Options is only used in gprbuild. 8508 85092012-01-23 Robert Dewar <dewar@adacore.com> 8510 8511 * sem_ch10.adb (Analyze_Subunit): Properly save/restore cunit 8512 restrictions. 8513 85142012-01-23 Ed Schonberg <schonberg@adacore.com> 8515 8516 * snames.ads-tmpl: Add Name_Synchronization. 8517 * aspects.ads, aspects.adb: Add Aspect_Synchronization to 8518 enumeration type and related maps. 8519 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle Aspect 8520 Synchronization, build corresponding pragma Implemented. 8521 * sem_util.adb (Implementation_Kind): Handle both explicit and 8522 implicit pragma_argument association to retrieve the given 8523 synchronization mode. 8524 85252012-01-23 Robert Dewar <dewar@adacore.com> 8526 8527 * sem_ch10.adb, errout.adb: Minor reformatting. 8528 85292012-01-23 Ed Schonberg <schonberg@adacore.com> 8530 8531 * sem_res.adb (Resolve_Actuals): An actual in a call to an 8532 Ada 2012 Reference function does not lead to a dangerous order 8533 dependence. 8534 85352012-01-23 Gary Dismukes <dismukes@adacore.com> 8536 8537 * exp_util.adb (Is_Iterated_Container): Test 8538 Is_Entity_Name when searching for calls to the default iterator, 8539 to avoid blowing up on indirect calls which have an explicit 8540 dereference as the call name. 8541 85422012-01-23 Thomas Quinot <quinot@adacore.com> 8543 8544 * errout.adb (Set_Msg_Node): For an N_Expanded_Name, output 8545 the complete expanded name, rather than just its Selector_Name. 8546 85472012-01-23 Thomas Quinot <quinot@adacore.com> 8548 8549 * a-textio.adb (Put): Rewrite one-parameter Character version to 8550 just call the two-parameter one with Current_Out. 8551 85522012-01-23 Hristian Kirtchev <kirtchev@adacore.com> 8553 8554 * freeze.adb (Check_Current_Instance): Issue an 8555 error when the prefix of 'Unchecked_Access or 'Access does not 8556 denote a legal aliased view of a type. 8557 (Freeze_Record_Type): Do not halt the processing of record components 8558 once the Has_Controlled_Component is set as this bypasses the remaining 8559 checks. 8560 (Is_Aliased_View_Of_Type): New routine. 8561 85622012-01-23 Thomas Quinot <quinot@adacore.com> 8563 8564 * errout.ads, freeze.adb: Minor reformatting. 8565 85662012-01-23 Thomas Quinot <quinot@adacore.com> 8567 8568 * sem_ch10.adb, sem_prag.adb: Remove redundant apostrophes in error 8569 messages. 8570 85712012-01-23 Olivier Hainque <hainque@adacore.com> 8572 8573 * adadecode.c (__gnat_decode): Deal with empty input early, 8574 preventing potential erroneous memory access later on. 8575 85762012-01-21 Eric Botcazou <ebotcazou@adacore.com> 8577 8578 PR ada/46192 8579 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: In the case of a 8580 renaming, preserve the volatileness through the indirection, if any. 8581 85822012-01-14 Andreas Schwab <schwab@linux-m68k.org> 8583 8584 * gcc-interface/Makefile.in (OSCONS_EXTRACT): Add 8585 $(GNATLIBCFLAGS). 8586 85872012-01-10 Pascal Obry <obry@adacore.com> 8588 8589 * prj-nmsc.adb (Check_Library_Attributes): 8590 Kill check for object/source directories for aggregate libraries. 8591 85922012-01-10 Matthew Heaney <heaney@adacore.com> 8593 8594 * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb, 8595 a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads, 8596 a-cborma.adb, a-cborma.ads, a-cidlli.adb, a-cidlli.ads, a-cimutr.adb, 8597 a-cimutr.ads, a-cihase.adb, a-cihase.ads, a-cohama.adb, a-cohama.ads, 8598 a-coorse.adb, a-coorse.ads, a-cbhama.adb, a-cbhama.ads, a-cborse.adb, 8599 a-cborse.ads, a-comutr.adb, a-comutr.ads, a-ciorma.adb, a-cobove.adb, 8600 a-ciorma.ads, a-cobove.ads, a-convec.adb, a-convec.ads, a-cohase.adb, 8601 a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbmutr.adb, a-cbmutr.ads, 8602 a-cbhase.adb, a-cbhase.ads (Reference, Constant_Reference): Declare 8603 container parameter as aliased in/in out. 8604 Code clean ups. 8605 86062012-01-10 Bob Duff <duff@adacore.com> 8607 8608 * s-os_lib.ads: Improve comment. 8609 86102012-01-10 Geert Bosch <bosch@adacore.com> 8611 8612 * s-gearop.adb (Forward_Eliminate): Avoid improper aliasing 8613 for complex Scalar. 8614 86152012-01-10 Bob Duff <duff@adacore.com> 8616 8617 * sem_intr.adb (Check_Shift): Use RM_Size instead of Esize, when 8618 checking that the 'Size is correct. If the type is "mod 2**12", 8619 for example, it's illegal, but Esize is the 'Object_Size, which 8620 will be something like 16 or 32, so the error ('Size = 12) was 8621 not detected. 8622 * gnat_rm.texi: Improve documentation of shift 8623 and rotate intrinsics. 8624 86252012-01-10 Pascal Obry <obry@adacore.com> 8626 8627 * prj.adb (For_Every_Project_Imported): Fix 8628 implementation to make sure we return each project only once 8629 for aggragte libraries. It is fine to return a project twice for 8630 aggregate projects, this was the case as a Project_Id is different 8631 in each project tree. The new implementation use a table based on 8632 the project name to ensure proper detection of duplicate project 8633 in aggregate library. A new context is then created to continue 8634 retrurning duplicate project for aggregate libraries. 8635 86362012-01-09 Eric Botcazou <ebotcazou@adacore.com> 8637 8638 * gcc-interface/trans.c (call_to_gnu): Create the temporary for the 8639 return value in the variable-sized return type case if the target is 8640 an array with fixed size. However, do not create it if this is the 8641 expression of an object declaration. 8642 86432012-01-09 Eric Botcazou <ebotcazou@adacore.com> 8644 8645 * gcc-interface/trans.c (addressable_p) <COMPONENT_REF>: Fix thinko. 8646 86472012-01-06 Robert Dewar <dewar@adacore.com> 8648 8649 * a-wichha.ads, a-wichun.ads, a-zchhan.ads, a-zchuni.ads, 8650 s-utf_32.ads: Add pragma Pure 8651 * s-utf_32.adb: Suppress warnings on non-static constants (now 8652 that this is Pure). 8653 86542012-01-06 Bob Duff <duff@adacore.com> 8655 8656 * s-rpc.ads (Read, Write): Add overriding indicators. 8657 86582012-01-06 Robert Dewar <dewar@adacore.com> 8659 8660 * gnat_rm.texi: Add documentation for conventions 8661 Ada_Pass_By_Copy and Ada_Pass_By_Reference. 8662 86632012-01-06 Gary Dismukes <dismukes@adacore.com> 8664 8665 * a-tienio.adb (Put): Add exception message on 8666 raise statements. Remove unneeded blocks and object declarations. 8667 86682012-01-06 Robert Dewar <dewar@adacore.com> 8669 8670 * sem_prag.adb: Minor reformatting. 8671 86722012-01-06 Ed Schonberg <schonberg@adacore.com> 8673 8674 * sinfo.ads, sinfo.adb (Has_Prefixed_Call): New flag to indicate 8675 that a selected component within a generic unit has been resolved 8676 as a prefixed call with local references. 8677 * sem_ch3.adb (Is_Visible_Component): In an instance body a selected 8678 component is always visible. 8679 * sem_ch4.adb (Analyze_Selected_Component): If the node is a 8680 prefixed call in an instance, do not look for visible components 8681 of the type. 8682 * sem_ch12.adb (Reset_Entity): If a selected component has resolved 8683 to a prefixed call, mark the node accordingly when prefix and 8684 selector are local references. 8685 86862012-01-02 Eric Botcazou <ebotcazou@adacore.com> 8687 8688 * gnatvsn.ads (Current_Year): Bump to 2012. 8689 8690Copyright (C) 2012 Free Software Foundation, Inc. 8691 8692Copying and distribution of this file, with or without modification, 8693are permitted in any medium without royalty provided the copyright 8694notice and this notice are preserved. 8695