12013-12-20 Trevor saunders <tsaunders@mozilla.com> 2 3 * gcc-interface/decl.c (components_to_record): Replace stack_vec with 4 auto_vec. 5 62013-12-12 Eric Botcazou <ebotcazou@adacore.com> 7 8 * gcc-interface/Makefile.in (ARM linux, GNU eabi): Tweak regexp. 9 102013-12-12 Eric Botcazou <ebotcazou@adacore.com> 11 Iain Sandoe <iain@codesourcery.com> 12 13 PR ada/55946 14 * gcc-interface/Make-lang.in (ada/doctools/xgnatugn): Use gnatmake. 15 * gcc-interface/Makefile.in (GCC_LINK): Add LDFLAGS. 16 (../../gnatmake): Remove LDFLAGS. 17 (../../gnatlink): Likewise. 18 192013-12-04 Eric Botcazou <ebotcazou@adacore.com> 20 21 PR ada/59382 22 * indepsw-darwin.adb: New file. 23 242013-12-04 Eric Botcazou <ebotcazou@adacore.com> 25 26 * gcc-interface/decl.c (components_to_record): Add specific handling 27 for fields with zero size and no representation clause. 28 292013-12-04 Eric Botcazou <ebotcazou@adacore.com> 30 31 * gcc-interface/trans.c (Case_Statement_to_gnu): Do not push a binding 32 level for each branch if this is a case expression in Ada 2012. 33 (gnat_to_gnu) <case N_Expression_With_Actions>: Adjust comment. 34 352013-11-29 Eric Botcazou <ebotcazou@adacore.com> 36 37 PR ada/54040 38 PR ada/59346 39 * s-osinte-hpux.ads (timespec): Change type of tv_nsec field to time_t. 40 * s-osinte-kfreebsd-gnu.ads (timespec): Likewise. 41 * s-osinte-solaris-posix.ads (timespec): Likewise. 42 432013-11-23 Eric Botcazou <ebotcazou@adacore.com> 44 45 * gcc-interface/trans.c (Loop_Statement_to_gnu): Set TREE_SIDE_EFFECTS 46 on the conditional expression directly. 47 482013-11-22 Andrew MacLeod <amacleod@redhat.com> 49 50 * gcc-interface/trans.c: Add required include files from gimple.h. 51 522013-11-22 David Malcolm <dmalcolm@redhat.com> 53 54 * gcc-interface/utils2.c (build_call_raise): Remove use of 55 input_line macro. 56 (build_call_raise_range): Likewise. 57 (build_call_raise_column): Likewise. 58 592013-11-20 Kenneth Zadeck <zadeck@naturalbridge.com> 60 Mike Stump <mikestump@comcast.net> 61 Richard Sandiford <rdsandiford@googlemail.com> 62 63 * gcc-interface/cuintp.c (UI_From_gnu): Use tree_to_shwi. 64 * gcc-interface/decl.c (gnat_to_gnu_entity): Use tree_to_uhwi. 65 * gcc-interface/utils.c (make_packable_type): Likewise. 66 672013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 68 69 * gcc-interface/cuintp.c (UI_From_gnu): Use tree_to_shwi rather than 70 tree_low_cst. 71 722013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 73 74 * gcc-interface/decl.c, gcc-interface/utils.c, gcc-interface/utils2.c: 75 Replace tree_low_cst (..., 1) with tree_to_uhwi throughout. 76 772013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 78 79 * gcc-interface/cuintp.c: Update comments to refer to 80 tree_fits_shwi_p rather than host_integerp. 81 * gcc-interface/decl.c (gnat_to_gnu_entity): Use tree_fits_uhwi_p 82 rather than host_integerp. 83 * gcc-interface/utils.c (rest_of_record_type_compilation): Likewise. 84 852013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 86 87 * gcc-interface/decl.c, gcc-interface/misc.c, gcc-interface/utils.c: 88 Replace host_integerp (..., 1) with tree_fits_uhwi_p throughout. 89 902013-11-18 Richard Sandiford <rdsandiford@googlemail.com> 91 92 * gcc-interface/cuintp.c: Replace host_integerp (..., 0) with 93 tree_fits_shwi_p throughout. 94 952013-11-18 Eric Botcazou <ebotcazou@adacore.com> 96 97 * gcc-interface/trans.c (TARGET_ABI_OPEN_VMS): Delete as redundant. 98 992013-11-18 Eric Botcazou <ebotcazou@adacore.com> 100 101 * gcc-interface/trans.c (Call_to_gnu): For an Out parameter passed by 102 copy and that don't need to be copied in, only evaluate its address. 103 1042013-11-18 Eric Botcazou <ebotcazou@adacore.com> 105 106 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Deal with an 107 error mark as renamed object in type annotating mode. 108 1092013-11-15 H.J. Lu <hongjiu.lu@intel.com> 110 111 PR ada/54040 112 * s-linux-x32.ads: New file. 113 * s-osprim-x32.adb: Likewise. 114 * s-linux.ads (time_t): New type. 115 * s-linux-alpha.ads (time_t): Likewise. 116 * s-linux-hppa.ads (time_t): Likewise. 117 * s-linux-mipsel.ads (time_t): Likewise. 118 * s-linux-sparc.ads (time_t): Likewise. 119 * s-osinte-linux.ads (time_t): Mark it private. Replace long 120 with System.Linux.time_t. 121 (timespec): Replace long with time_t. 122 * s-osinte-posix.adb (To_Timespec): Likewise. 123 * s-taprop-linux.adb (timeval): Replace C.long with 124 System.OS_Interface.time_t. 125 * gcc-interface/Makefile.in (LIBGNAT_TARGET_PAIRS): Replace 126 s-linux.ads with s-linux-x32.ads, s-osprim-posix.adb with 127 s-osprim-x32.adb for x32. 128 1292013-11-14 H.J. Lu <hongjiu.lu@intel.com> 130 131 * gcc-interface/trans.c: Include gimple.h and pointer-set.h. 132 1332013-11-14 Diego Novillo <dnovillo@google.com> 134 135 * gcc-interface/decl.c: Include stringpool.h 136 Include stor-layout.h 137 * gcc-interface/misc.c: Include stor-layout.h 138 Include print-tree.h 139 * gcc-interface/trans.c: Include stringpool.h 140 Include stor-layout.h 141 Include stmt.h 142 Include varasm.h 143 * gcc-interface/utils.c: Include stringpool.h 144 Include stor-layout.h 145 Include attribs.h 146 Include varasm.h 147 * gcc-interface/utils2.c: Include stringpool.h 148 Include stor-layout.h 149 Include attribs.h 150 Include varasm.h 151 1522013-11-12 Andrew MacLeod <amacleod@redhat.com> 153 154 * gcc-interface/trans.c: Include gimplify.h. 155 1562013-11-11 Tristan Gingold <gingold@adacore.com> 157 Eric Botcazou <ebotcazou@adacore.com> 158 159 * gcc-interface/utils2.c (gnat_build_constructor): Also set the flag 160 CONSTRUCTOR_NO_CLEARING on the constructor. 161 1622013-10-30 Sharad Singhai <singhai@google.com> 163 164 * gnat_ugn.texi: Remove option description for PR middle-end/58134. 165 1662013-10-29 David Malcolm <dmalcolm@redhat.com> 167 168 * gcc-interface/trans.c (finalize_nrv): Update for conversion of 169 symtab types to a true class hierarchy. 170 * gcc-interface/utils.c (gnat_write_global_declarations): Likewise. 171 1722013-10-28 Trevor Saunders <tsaunders@mozilla.com> 173 174 * gcc-interface/decl.c (components_to_record): Adjust stack vector. 175 1762013-10-24 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 177 178 * gcc-interface/Make-lang.in (ADA_DEPS): Fix quoting. 179 1802013-10-19 Thomas Quinot <quinot@adacore.com> 181 182 * gcc-interface/Makefile.in: Use canonical absolute path to refer to 183 the top source directory and to the libgcc subidrectories. 184 1852013-10-19 Eric Botcazou <ebotcazou@adacore.com> 186 187 * gcc-interface/utils.c (scale_by_factor_of): New function. 188 (rest_of_record_type_compilation): Use scale_by_factor_of in order to 189 scale the original offset for both rounding cases; in the second case, 190 take into accout the addend to compute the alignment. Tidy up. 191 1922013-10-19 Eric Botcazou <ebotcazou@adacore.com> 193 194 * gcc-interface/cuintp.c: Remove useless include directives. 195 (build_cst_from_int): Use standard predicate. 196 (UI_To_gnu): Simplify. 197 (UI_From_gnu): Fix formatting. 198 * gcc-interface/trans.c (post_error): Likewise. 199 (post_error_ne): Likewise. 200 2012013-10-19 Eric Botcazou <ebotcazou@adacore.com> 202 203 * gcc-interface/utils.c (gnat_set_type_context): New function. 204 (gnat_pushdecl): Use it to set the context of the type. 205 2062013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 207 208 * sem_prag.adb (Check_Dependency_Clause): 209 Recognize the scenario where successful clause matching has 210 depleted the available refinement items and the clause to match 211 technically refines to null => null. 212 2132013-10-17 Tristan Gingold <gingold@adacore.com> 214 215 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Specify 216 External_Name instead of Link_Name for the RTTI declaration. 217 2182013-10-17 Robert Dewar <dewar@adacore.com> 219 220 * sem_prag.adb (Record_Possible_Body_Reference): Fix test for 221 being in body. 222 (Add_Constituent): Merged into Check_Refined_Global_Item. 223 (Check_Matching_Constituent): A constituent that has the proper Part_Of 224 option and comes from a private child or a sibling is now collected. 225 (Check_Matching_Modes): Merged into Check_Refined_Global_Item. 226 (Check_Refined_Global_Item): Code cleanup. 227 (Collect_Constituent): New routine. 228 (Inconsistent_Mode_Error): Moved out from Check_Matching_Modes. 229 2302013-10-17 Ed Schonberg <schonberg@adacore.com> 231 232 * freeze.adb (Check_Current_Instance, Process): Add RM reference 233 and mention immutably limited types, when the current instance 234 is illegal in Ada 2012. 235 2362013-10-17 Ed Schonberg <schonberg@adacore.com> 237 238 * sem_warn.adb (Check_Unused_Withs): If the main unit is a 239 subunit, apply the check to the units mentioned in its context 240 only. This provides additional warnings on with_clauses that 241 are superfluous. 242 2432013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 244 245 * sem_ch3.adb (Analyze_Declarations): Emit an 246 error message concerning state refinement when the spec defines at 247 least one non-null abstract state and the body's SPARK mode is On. 248 (Requires_State_Refinement): New routine. 249 2502013-10-17 Robert Dewar <dewar@adacore.com> 251 252 * sem_ch7.ads: Comment fixes. 253 2542013-10-17 Robert Dewar <dewar@adacore.com> 255 256 * sem_ch7.adb (Analyze_Package_Specification): Remove circuit 257 for ensuring that a package spec requires a body for some other 258 reason than that it contains the declaration of an abstract state. 259 2602013-10-17 Tristan Gingold <gingold@adacore.com> 261 262 * exp_ch11.adb (Expand_N_Raise_Expression): Fix call of 263 Possible_Local_Raise. 264 2652013-10-17 Thomas Quinot <quinot@adacore.com> 266 267 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Unchecked 268 conversion of Or_Rhs to Etype of New_Rhs is required only when 269 the latter is the result of a byte swap operation. 270 2712013-10-17 Thomas Quinot <quinot@adacore.com> 272 273 * exp_dist.adb (Build_To_Any_Function): For a type with opaque 274 representation that is not transmitted as an unconstrained value, 275 use 'Write, not 'Output, to generate the opaque representation. 276 2772013-10-17 Yannick Moy <moy@adacore.com> 278 279 * sem_res.adb (Resolve_Short_Circuit): Only 280 generate expression-with-action when full expansion is set. 281 2822013-10-17 Yannick Moy <moy@adacore.com> 283 284 * debug.adb Remove obsolete comment. 285 2862013-10-17 Thomas Quinot <quinot@adacore.com> 287 288 * exp_ch4.adb (Process_Transient_Object.Find_Enclosing_Contexts): 289 Avoid late insertion when expanding an expression with action 290 nested within a transient block; Do not inconditionally generate 291 a finalization call if the generated object is from a specific 292 branch of a conditional expression. 293 2942013-10-17 Pascal Obry <obry@adacore.com> 295 296 * g-arrspl.adb: Ensure Finalize call is idempotent. 297 * g-arrspl.adb (Finalize): Makes the call idempotent. 298 2992013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 300 301 * sem_prag.adb (Is_Matching_Input): Account 302 for the case where a state with a null refinement appears as 303 the last input of a refinement clause. 304 3052013-10-17 Robert Dewar <dewar@adacore.com> 306 307 * sem_aux.ads, sem_aux.adb: Minor reformatting. 308 3092013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 310 311 * aspects.adb, aspects.ads, sem_prag.ads: Remove all entries 312 for Refined_Pre from the various tables. 313 * par-prag.adb: Remove the entry for Refined_Pre from the list 314 of pragmas not needing special processing by the parser. 315 * sem_ch13.adb (Analyze_Aspect_Specifications): 316 Remove the processing for aspect Refined_Pre. 317 (Check_Aspect_At_Freeze_Point): Remove the entry for aspect 318 Refined_Pre. 319 * sem_prag.adb (Analyze_Pragma): Refined_Pre is no longer a 320 valid assertion kind. Remove the analysis of pragma Refined_Pre. 321 (Analyze_Refined_Pragma): Update the comment on usage. 322 (Find_Related_Subprogram_Or_Body): Update the comment on 323 usage. Pragma Refined_Pre is no longer processed by this routine. 324 (Is_Valid_Assertion_Kind): Refined_Pre is no longer a valid 325 assertion kind. 326 * snames.ads-tmpl: Remove predefined name Refined_Pre. Remove 327 the pragma id for Refined_Pre. 328 3292013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 330 331 * exp_util.adb, exp_util.ads (Entity_Of): Moved to Sem_Util. 332 * sem_prag.adb (Analyze_Global_In_Decl_List): Mark a null 333 item list as being analyzed. 334 (Analyze_Global_List): Mark a 335 null global list and multiple global items as being analyzed. 336 (Analyze_Input_Item): Check the unit that defines the input 337 variable or state, not the reference to it. 338 * sem_util.ads, sem_util.adb (Entity_Of): Moved from Exp_Util. Ensure 339 that the input has an entity. 340 3412013-10-17 Thomas Quinot <quinot@adacore.com> 342 343 * exp_util.adb (Get_Current_Value_Condition, 344 Set_Current_Value_Condition): Handle the case of expressions 345 with actions * exp_util.adb (Insert_Actions): Handle the case 346 of an expression with actions whose Actions list is empty. 347 * exp_util.adb (Remove_Side_Effects.Side_Effect_Free): An 348 expression with actions that has no Actions and whose Expression 349 is side effect free is itself side effect free. 350 * exp_util.adb (Remove_Side_Effects): Do not set an incorrect etype on 351 temporary 'R' (Def_Id), which is in general an access to Exp_Type, not 352 an Exp_Type. 353 * sem_res.adb (Resolve): For an expression with 354 actions, resolve the expression early. * sem_res.adb 355 (Resolve_Expression_With_Actions): Rewrite an expression with 356 actions whose value is compile time known and which has no 357 actions into just its expression, so that its constant value is 358 available downstream. 359 * sem_res.adb (Resolve_Short_Circuit): 360 Wrap the left operand in an expression with actions to contain 361 any required finalization actions. 362 * exp_ch4.adb (Expand_Expression_With_Actions): For an 363 expression with actions returning a Boolean expression, ensure 364 any finalization action is kept within the Actions list. 365 * sem_warn.adb (Check_References, Check_Unset_Reference): add 366 missing circuitry to handle expressions with actions. 367 * checks.adb (Ensure_Valid): For an expression with actions, 368 insert the validity check on the Expression. 369 * sem_ch13.adb (Build_Static_Predicate.Get_RList): An expression 370 with actions that has a non-empty Actions list is not static. An 371 expression with actions that has an empty Actions list has the 372 static ranges of its Expression. 373 * sem_util.adb (Has_No_Obvious_Side_Effects): An expression with 374 actions with an empty Actions list has no obvious side effects 375 if its Expression itsekf has no obvious side effects. 376 3772013-10-17 Ed Schonberg <schonberg@adacore.com> 378 379 * sem_aux.ads, sem_aux.adb (Is_Immutably_Limited_Type): Make 380 predicate compatible with Ada 2012 definition 381 (Is_Limited_View): New name for previous version of 382 Is_Immutably_Limited_Type. Predicate is true for an untagged 383 record type with a limited component. 384 * exp_ch7.adb, exp_ch6.adb, exp_ch4.adb, exp_ch3.adb, exp_aggr.adb, 385 sem_util.adb, sem_res.adb, sem_prag.adb, sem_attr.adb, sem_ch8.adb, 386 sem_ch6.adb, sem_ch3.adb, exp_util.adb: Use Is_Limited_View 387 * freeze.adb Use Is_Immutably_Limited_Type to check the legality 388 of references to the current instance, Is_Limited_View otherwise. 389 3902013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 391 392 * sem_ch13.adb (Analyze_Aspect_Specifications): Flag aspect 393 Refined_Pre as not supported. 394 * sem_prag.adb (Analyze_Pragma): Ignore pragma Refined_Pre. 395 3962013-10-17 Ed Schonberg <schonberg@adacore.com> 397 398 * sem_ch12.adb (Validated_Access_Subprogram_Instance): According 399 to AI05-288, actuals for access_to_subprograms must be subtype 400 conformant with the generic formal. Previous to AI05-288 401 only mode conformance was required, but the AI is a binding 402 interpretation that applies to previous versions of the language, 403 4042013-10-17 Robert Dewar <dewar@adacore.com> 405 406 * gnat_ugn.texi: Minor text correction. 407 * ug_words: Add entry for -gnateu /IGNORE_UNRECOGNIZED. 408 * vms_data.ads: Add /IGNORE_UNRECOGNIZED for -gnateu. 409 4102013-10-17 Tristan Gingold <gingold@adacore.com> 411 412 * impunit.adb (Non_Imp_File_Names_95): Add g-cppexc. 413 4142013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 415 416 * sem_prag.adb (Analyze_Constituent): Move the check 417 concerning option Part_Of to routine Check_Matching_Constituent. 418 (Check_Matching_Constituent): Verify that an abstract state 419 that acts as a constituent has the proper Part_Of option in 420 its aspect/pragma Abstract_State. Account for the case when a 421 constituent comes from a private child or private sibling. 422 * sem_util.ads, sem_util.adb (Is_Child_Or_Sibling): New routine. 423 4242013-10-17 Tristan Gingold <gingold@adacore.com> 425 426 * g-cppexc.adb, g-cppexc.ads: New files. 427 * gcc-interface/Makefile.in: Add g-cppexc when building zcx runtimes. 428 4292013-10-17 Thomas Quinot <quinot@adacore.com> 430 431 * exp_ch7.adb: Minor reformatting. 432 4332013-10-17 Ed Schonberg <schonberg@adacore.com> 434 435 * sem_dim.adb (Process_Minus, Process_Divide): Label dimension 436 expression with standard operator and type, for pretty-printing 437 use. 438 4392013-10-17 Bob Duff <duff@adacore.com> 440 441 * gnat_ugn.texi: Document --pp-new and --pp-old switches. 442 4432013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 444 445 * einfo.adb: Flag 159 is now known as From_Limited_With. Replace 446 all references to attribute From_With_Type with From_Limited_With. 447 (From_With_Type): Renamed to From_Limited_With. 448 (Set_From_With_Type): Renamd to Set_From_Limited_With. 449 * einfo.ads: Remove attribute From_With_Type and occurrences in 450 nodes. Add attribute From_Limited_With along with occurrences 451 in nodes. 452 (From_With_Type): Renamed to From_Limited_With along with pragma Inline. 453 (Set_From_With_Type): Renamed to 454 Set_From_Limited_With along with pragma Inline. 455 * sem_ch7.adb, sem_ch8.adb, sem_ch12.adb, sem_ch13.adb, sem_disp.adb, 456 sem_res.adb, sem_type.adb, sem_util.adb, sem_warn.adb, 457 exp_attr.adb, exp_disp.adb, freeze.adb, itypes.adb, layout.adb, 458 lib-writ.adb, rtsfind.adb, sem_attr.adb, sem_aux.adb, sem_ch3.adb, 459 sem_ch4.adb: Replace all references to attribute From_With_Type 460 with From_Limited_With. 461 * sem_ch6.adb: Replace all references to attribute From_With_Type 462 with From_Limited_With. 463 (Designates_From_With_Type): Renamed to Designates_From_Limited_With. 464 (Process_Formals): Update the call to Designates_From_With_Type. 465 * sem_ch10.adb: Replace all references to attribute From_With_Type 466 with From_Limited_With. 467 (Build_Limited_Views): Reimplemented. 468 * gcc-interface/decl.c Replace all references to attribute 469 From_With_Type with From_Limited_With. 470 (finalize_from_with_types): Renamed to finalize_from_limited_with. 471 * gcc-interface/gigi.h (finalize_from_with_types): Renamed to 472 finalize_from_limited_with. 473 * gcc-interface/trans.c: Replace all references to attribute 474 From_With_Type with From_Limited_With. 475 (Compilation_Unit_to_gnu): Update the call to finalize_from_with_types. 476 4772013-10-17 Pascal Obry <obry@adacore.com> 478 479 * projects.texi: Update VCS_Kind documentation. 480 4812013-10-17 Matthew Heaney <heaney@adacore.com> 482 483 * a-convec.adb, a-coinve.adb, a-cobove.adb (Insert, Insert_Space): 484 Inspect value range before converting type. 485 4862013-10-17 Hristian Kirtchev <kirtchev@adacore.com> 487 488 * sem_prag.adb (Analyze_Pragma): Flag the use of pragma Refined_Pre as 489 illegal. 490 4912013-10-17 Vincent Celier <celier@adacore.com> 492 493 * gnat_ugn.texi: Remove VMS conversion of -gnatet and -gnateT, 494 now that they are both in ug_words. 495 * ug_words: Update qualifier for -gnatet Add qualifier for -gnateT 496 * vms_data.ads: Update qualifier for -gnatet Add qualifier 497 for -gnateT 498 * projects.texi: Continue to update the project documentation 499 for VMS. 500 5012013-10-17 Robert Dewar <dewar@adacore.com> 502 503 * einfo.ads, einfo.adb (Has_Body_References): New flag. 504 (Body_References): New field. 505 * sem_prag.adb (Record_Possible_Body_Reference): New procedure 506 (Analyze_Input_Output): Call Record_Possible_Body_Reference 507 (Analyze_Global_Item): Call Record_Possible_Body_Reference 508 (Analyze_Refinement_Clause): Output messages if illegal global refs. 509 5102013-10-17 Thomas Quinot <quinot@adacore.com> 511 512 * freeze.adb (Check_Component_Storage_Order): Reject a record or 513 array type that does not have an explicit Scalar_Storage_Order 514 attribute definition if a component of the record, or the 515 elements of the array, have one. 516 * gnat_rm.texi (attribute Scalar_Storage_Order): Document the above 517 rule. 518 5192013-10-17 Vincent Celier <celier@adacore.com> 520 521 * gnat_ugn.texi: Add examples of switches -gnateD, including 522 one where the value is a string. 523 * projects.texi: Do not convert switches in project files to 524 VMS qualifiers. 525 5262013-10-17 Robert Dewar <dewar@adacore.com> 527 528 * sem_prag.adb (Report_Extra_Clauses): Don't complain about 529 refinements with null input since null should be considered to 530 always match. 531 5322013-10-17 Robert Dewar <dewar@adacore.com> 533 534 * gnat_ugn.texi: Document -gnatw.y/-gnatw.Y. 535 * opt.ads (List_Body_Required_Info): New flag. 536 * prep.adb: Minor reformatting. 537 * sem_ch7.adb (Unit_Requires_Body_Info): New 538 procedure (Analyze_Package_Specification): Add call to 539 Unit_Requires_Body_Info. 540 * ug_words: Add entries for -gnatw.y and -gnatw.Y. 541 * usage.adb: Add line for new warning switch -gnatw.y/.Y. 542 * vms_data.ads: Add entry for [NO_]WHY_SPEC_NEEDS_BODY warning 543 qualifier. 544 * warnsw.ads, warnsw.adb: Implement new warning switch -gnatw.y/.Y. 545 5462013-10-17 Yannick Moy <moy@adacore.com> 547 548 * sem_ch8.adb (Find_Direct_Name): Keep track of assignments for 549 renamings in SPARK mode. 550 5512013-10-17 Yannick Moy <moy@adacore.com> 552 553 * exp_spark.adb (Expand_SPARK): Remove special case for NOT IN 554 operation. 555 * sinfo.ads: Add special comment section to describe SPARK mode 556 effect on tree. 557 * exp_spark.ads: Remove comments, moved to sinfo.ads. 558 5592013-10-17 Yannick Moy <moy@adacore.com> 560 561 * exp_ch3.adb (Expand_Freeze_Class_Wide_Type, 562 Expand_Freeze_Class_Wide_Type, Expand_Freeze_Class_Wide_Type): 563 Remove useless special cases. 564 * exp_ch4.adb (Expand_Allocator_Expression, Expand_N_Allocator, 565 Expand_N_Op_Expon): Remove useless special cases. 566 * exp_ch6.adb (Is_Build_In_Place_Function_Call): Disable build-in-place 567 in SPARK mode by testing Full_Expander_Active instead of 568 Expander_Active. 569 (Make_Build_In_Place_Call_In_Allocator): Remove useless special case. 570 * exp_util.adb (Build_Allocate_Deallocate_Proc): Remove 571 useless special case. 572 * sem_eval.adb (Compile_Time_Known_Value): Remove special handling of 573 deferred constant. 574 5752013-10-17 Yannick Moy <moy@adacore.com> 576 577 * gnat_ugn.texi: Document -gnateT and target file format. 578 5792013-10-17 Vincent Celier <celier@adacore.com> 580 581 * prep.adb (Check_Command_Line_Symbol_Definition): Is_A_String is 582 always False, even when the value starts and ends with double quotes. 583 5842013-10-17 Tristan Gingold <gingold@adacore.com> 585 586 * a-exexpr-gcc.adb: Synchronize declarations of other/all others. 587 5882013-10-17 Thomas Quinot <quinot@adacore.com> 589 590 * exp_pakd.adb: Add missing guard protecting Reverse_Storage_Order 591 call. 592 * sem_res.adb: Minor code cleanup: use named parameter association 593 (not positional) for Boolean parameter Sec_Stack in calls to 594 Establish_Transient_Scope. 595 5962013-10-15 Thomas Quinot <quinot@adacore.com> 597 598 * exp_pakd.adb (Expand_Packed_Element_Set, 599 Expand_Packed_Element_Reference): Adjust for the case of packed 600 arrays of reverse-storage-order types. 601 6022013-10-15 Robert Dewar <dewar@adacore.com> 603 604 * sem_prag.adb: Minor reformatting. 605 6062013-10-15 Ed Schonberg <schonberg@adacore.com> 607 608 * sem_attr.adb (Analyze_Attribute_Specification, case 609 To_Address): If the expression is an identifier, do not modify 610 its type; it will be converted when necessary, and the type of 611 the expression must remain consistent with that of the entity 612 for back-end consistency. 613 6142013-10-15 Robert Dewar <dewar@adacore.com> 615 616 * sem_ch7.adb (Unit_Requires_Body): Add flag 617 Ignore_Abstract_State (Analyze_Package_Specification): Enforce 618 rule requiring Elaborate_Body if a non-null abstract state is 619 specified for a library-level package. 620 * sem_ch7.ads (Unit_Requires_Body): Add flag Ignore_Abstract_State. 621 6222013-10-15 Hristian Kirtchev <kirtchev@adacore.com> 623 624 * sem_prag.adb (Analyze_Constituent): When 625 a state acts as a constituent of another state, ensure that 626 the said state has a Part_Of dependency in its corresponding 627 aspect/pragma Abstract_State. 628 6292013-10-15 Robert Dewar <dewar@adacore.com> 630 631 * par-ch4.adb (P_If_expression): Handle redundant ELSE cleanly. 632 6332013-10-15 Thomas Quinot <quinot@adacore.com> 634 635 * atree.ads (New_Copy, Relocate_Node): Improve documentation 636 (note that these subprograms reset Is_Overloaded). 637 6382013-10-15 Thomas Quinot <quinot@adacore.com> 639 640 * checks.adb (Check_Needed): Handle the case where the test in 641 the left operand of the short circuit is wrapped in a qualified 642 expression, type conversion, or expression with actions. 643 6442013-10-15 Thomas Quinot <quinot@adacore.com> 645 646 * sem_type.adb, sem_type.ads (Save_Interps): Also propagate 647 Is_Overloaded to New_N, for consistency. 648 6492013-10-15 Ed Schonberg <schonberg@adacore.com> 650 651 * a-tienau.adb (Put): Use file parameter to query values of 652 current column and line length. 653 6542013-10-15 Robert Dewar <dewar@adacore.com> 655 656 * sem_prag.adb, exp_ch11.adb, a-except-2005.adb, a-except-2005.ads: 657 Minor reformatting. 658 6592013-10-15 Eric Botcazou <ebotcazou@adacore.com> 660 661 * targparm.ads: Fix minor typo in comment. 662 6632013-10-15 Ed Schonberg <schonberg@adacore.com> 664 665 * lib-xref.adb: handle full views that are derived from private 666 types. 667 * sem_util.adb (Build_Elaboration_Entity): Do nothing in ASIS 668 mode: the elaboration entity is not in the source, and plays no 669 role in semantic analysis. Minor reformatting. 670 6712013-10-15 Tristan Gingold <gingold@adacore.com> 672 673 * adaint.c (__gnat_get_executable_load_address): Remove AIX 674 specific code. 675 6762013-10-15 Ed Schonberg <schonberg@adacore.com> 677 678 * exp_aggr.adb (Aggr_Size_OK): Refine criteria to better handle 679 large static aggregates with static record components, to avoid 680 generating a large number of asignments. Conversely, improve 681 handling of aggregates initialized by a single association, 682 which are most efficiently implemented with a loop. 683 6842013-10-15 Hristian Kirtchev <kirtchev@adacore.com> 685 686 * sem_prag.adb (Analyze_Input_Item): Emit an 687 error when the input item comes from the related package. 688 6892013-10-15 Arnaud Charlet <charlet@adacore.com> 690 691 * exp_ch11.adb (Expand_Exception_Handlers): Restrict previous 692 change. 693 6942013-10-14 Tristan Gingold <gingold@adacore.com> 695 696 * gcc-interface/gigi.h (standard_datatypes): Add 697 ADT_set_exception_parameter_decl 698 (set_exception_parameter_decl): New macro. 699 * gcc-interface/trans.c (gigi): Initialize set_exception_parameter_decl. 700 (Exception_Handler_to_gnu_zcx): Initialize the choice parameter. 701 * gcc-interface/trans.c: Synchronize declarations of other/all others 702 between gigi and the runtime. 703 7042013-10-14 Robert Dewar <dewar@adacore.com> 705 706 * exp_attr.adb (Find_Stream_Subprogram): Optimize 707 Storage_Array stream handling. 708 (Find_Stream_Subprogram): Optimize Stream_Element_Array stream handling 709 * rtsfind.ads: Add entry for Stream_Element_Array Add 710 entries for RE_Storage_Array subprograms Add entries for 711 RE_Stream_Element_Array subprograms 712 * s-ststop.ads, s-ststop.adb: Add processing for System.Storage_Array. 713 Add processing for Ada.Stream_Element_Array. 714 7152013-10-14 Tristan Gingold <gingold@adacore.com> 716 717 * a-except-2005.ads, a-except-2005.adb: 718 (Get_Exception_Machine_Occurrence): New function. 719 * raise-gcc.c (__gnat_unwind_exception_size): New constant. 720 7212013-10-14 Robert Dewar <dewar@adacore.com> 722 723 * sem_res.adb: Minor fix to error message text. 724 * errout.ads, erroutc.ads: Minor reformatting. 725 * s-ststop.ads, s-stratt.ads: Clean up documentation of block IO 726 mode for streams. 727 * s-stratt-xdr.adb: Minor comment update. 728 7292013-10-14 Robert Dewar <dewar@adacore.com> 730 731 * sem_aux.adb, sem_aux.ads, sem_prag.adb: Minor reformatting. 732 7332013-10-14 Ed Schonberg <schonberg@adacore.com> 734 735 * sem_res.adb (Resolve_Actuals): Add error message for a 736 subprogram with an in-out parameter when used in a predicate, 737 to clarify subsequent error at the point of call. 738 7392013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 740 741 * sem_prag.adb (Is_Matching_Input): Consume a matching null input. 742 7432013-10-14 Robert Dewar <dewar@adacore.com> 744 745 * freeze.adb (Freeze_Record): Don't give warning about packed 746 and foreign convention. 747 7482013-10-14 Ed Schonberg <schonberg@adacore.com> 749 750 * sem_aux.adb, sem_aux.ads (Package_Specification): New function, to 751 replace the less efficient idiom Specification. 752 (Unit_Declaration_Node (Pack_Id)), which handles library units and 753 child units. 754 * sem_ch3.adb, sem_ch10.adb, sem_prag.adb, sem_ch12.adb, sem_ch6.adb, 755 exp_disp.adb, sem_cat.adb, exp_dist.adb: Use Package_Specification. 756 7572013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 758 759 * exp_attr.adb (Expand_Update_Attribute): Update the call to 760 Process_Range_Update. 761 (Process_Range_Update): Add new formal parameter Typ and associated 762 comment on usage. Add local constant Index_Typ. Add a type conversion 763 as part of the indexed component to ensure that the loop variable 764 corresponds to the index type. 765 7662013-10-14 Tristan Gingold <gingold@adacore.com> 767 768 * a-exexpr-gcc.adb: Adjust comment. 769 (Others_Value, All_Others_Value, 770 Unhandled_Others_Value): Declare as Character to slightly reduce 771 memory footprint. 772 7732013-10-14 Robert Dewar <dewar@adacore.com> 774 775 * freeze.adb (Size_Known): Size is not known for packed record 776 with aliased components 777 7782013-10-14 Robert Dewar <dewar@adacore.com> 779 780 * sem_ch3.adb: Minor fix to error message. 781 * a-exexpr-gcc.adb, sem_util.adb, sem_case.adb, exp_ch11.adb: Minor 782 reformatting. 783 7842013-10-14 Arnaud Charlet <charlet@adacore.com> 785 786 * exp_ch11.adb: Fix typo. 787 7882013-10-14 Thomas Quinot <quinot@adacore.com> 789 790 * exp_util.ads: Minor reformatting. 791 7922013-10-14 Ed Schonberg <schonberg@adacore.com> 793 794 * sem_ch3.adb (Build_Derived_Record_Type): Reject full views 795 with no explicit discriminant constraints, when the parents of 796 the partial view and the full view are constrained subtypes with 797 different constraints. 798 7992013-10-14 Robert Dewar <dewar@adacore.com> 800 801 * freeze.adb (Freeze_Array_Type): New procedure, abstracts out 802 this code from Freeze. 803 (Freeze_Array_Type): Detect pragma Pack overriding foreign convention 804 (Freeze_Record_Type): Ditto. 805 8062013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 807 808 * sem_prag.adb (Analyze_Dependency_Clause): Add new local variable 809 Non_Null_Output_Seen. Update the call to Analyze_Input_Output. 810 (Analyze_Input_Item): Streamline the detection mechanism of null and 811 non-null items. 812 (Analyze_Input_List): Add new local variable 813 Non_Null_Input_Seen. Update all calls to Analyze_Input_Output. 814 (Analyze_Input_Output): Add new formal parameter Non_Null_Seen 815 and update the related comment on usage. Update the 816 recursive call to itself. Attribute 'Result is now treated 817 as a non-null item. Detect mixes of null and non-null items. 818 (Analyze_Initialization_Item): Streamline the detection mechanism 819 of null and non-null items. 820 8212013-10-14 Vincent Celier <celier@adacore.com> 822 823 * projects.texi: Add documentation for the new project level 824 attribute Library_Rpath_Options. 825 8262013-10-14 Tristan Gingold <gingold@adacore.com> 827 828 * a-exexpr-gcc.adb (Set_Exception_Parameter): New procedure. 829 (Set_Foreign_Occurrence): New procedure, extracted from 830 Setup_Current_Excep. 831 * exp_ch11.adb (Expand_Exception_Handlers): Do not expand choice 832 parameter in case of zcx. 833 * sem_ch11.adb (Analyze_Exception_Handlers): Need debug info 834 for the choice parameter. 835 * raise-gcc.c: Add comments. 836 8372013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 838 839 * aspects.adb: Add an entry in table Canonical_Aspect for 840 Initial_Condition. 841 * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, 842 Aspect_Names and Aspect_Delay for Initial_Condition. 843 * einfo.adb (Get_Pragma): Include pragma Initial_Condition to 844 categorization pragmas. 845 * einfo.ads (Get_Pragma): Update comment on usage. 846 * exp_ch7.adb (Expand_N_Package_Body): Add a runtime check to 847 verify the assertion introduced by pragma Initial_Condition. 848 (Expand_N_Package_Declaration): Add a runtime check to 849 verify the assertion introduced by pragma Initial_Condition. 850 (Expand_Pragma_Initial_Condition): New routine. 851 * par-prag: Include pragma Initial_Condition to the list of 852 pragmas that do not require special processing by the parser. 853 * sem_ch3.adb (Analyze_Declarations): Analyze pragma 854 Initial_Condition at the end of the visible declarations. 855 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 856 for aspect Initial_Condition. 857 (Check_Aspect_At_Freeze_Point): 858 Aspect Initial_Condition does not need inspection at freezing. 859 * sem_prag.adb (Analyze_Initial_Condition_In_Decl_Part): 860 New routine. 861 (Analyze_Pragma): Update all calls 862 to Check_Declaration_Order. Add processing for pragma 863 Initial_Condition. Initial_Condition is now a valid assertion 864 kind. Add an entry in table Sig_Flags for Initial_Condition. 865 (Check_Declaration_Order): Reimplemented to handle arbitrary 866 pragmas. 867 (Is_Valid_Assertion_Kind): Add an entry for 868 Initial_Condition. 869 * sem_pag.ads (Analyze_Initial_Condition_In_Decl_Part): 870 New routine. 871 * sem_util.adb (Add_Contract_Item): Pragma Initial_Condition 872 can now be associated with a package spec. 873 * sem_util.ads (Add_Contract_Item): Update comment on usage. 874 * sinfo.ads: Update the documentation of node N_Contract 875 * snames.ads-tmpl: Add new predefined name Initial_Condition. Add 876 new pragma id for Initial_Condition. 877 8782013-10-14 Thomas Quinot <quinot@adacore.com> 879 880 * exp_pakd.adb: Minor reformatting. 881 8822013-10-14 Robert Dewar <dewar@adacore.com> 883 884 * exp_prag.adb: Minor reformatting. 885 8862013-10-14 Ed Schonberg <schonberg@adacore.com> 887 888 * sem_case.adb (Check_Against_Predicate): Handle properly an 889 others clause in various cases. 890 8912013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 892 893 * sem_prag.adb (Check_Matching_Constituent): Do 894 not inspect the hidden states if there are no hidden states. This 895 case arises when the constituents are states coming from a 896 private child. 897 8982013-10-14 Doug Rupp <rupp@adacore.com> 899 900 * init.c [ARMEL and VxWorks] (__gnat_map_signal): Re-arm guard 901 page by clearing VALID bit vice setting page protection. 902 9032013-10-14 Arnaud Charlet <charlet@adacore.com> 904 905 * gnat_rm.texi, adaint.c: Fix typo. 906 9072013-10-14 Ed Schonberg <schonberg@adacore.com> 908 909 * sem_util.adb (Is_Variable, In_Protected_Function): In the 910 body of a protected function, the protected object itself is a 911 constant (not just its components). 912 9132013-10-14 Vincent Celier <celier@adacore.com> 914 915 * snames.ads-tmpl: Add new standard name Library_Rpath_Options. 916 9172013-10-14 Tristan Gingold <gingold@adacore.com> 918 919 * sem_prag.adb (Process_Import_Or_Interface): Allow importing 920 of exception using convention Cpp. 921 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Expand cpp 922 imported exceptions. 923 * raise-gcc.c (is_handled_by): Filter C++ exception occurrences. 924 * gnat_rm.texi: Document how to import C++ exceptions. 925 9262013-10-14 Jose Ruiz <ruiz@adacore.com> 927 928 * sem_ch13.adb (Sem_Ch13.Analyze_Aspect_Specification): For 929 Priority and CPU aspects, when checking, issue a warning only 930 if it is obviously not a main program. 931 9322013-10-14 Tristan Gingold <gingold@adacore.com> 933 934 * adaint.c: Fix condition for AIX. Minor reformatting. 935 9362013-10-14 Robert Dewar <dewar@adacore.com> 937 938 * sem_ch3.adb, sem_prag.adb, prj.ads: Minor reformatting. 939 9402013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 941 942 * sem_prag.adb (Analyze_Depends_In_Decl_Part): 943 Rename Outputs_Seen to All_Outputs_Seen and update all occurrences 944 of the variable. 945 (Analyze_Input_Output): Add an item to 946 All_Inputs_Seen when it is an input or a self-referential output. 947 (Check_Mode): Comment reformatting. 948 (Analyze_Abstract_State): Remove the restriction that an Export state 949 must also have mode Input_Only or Output_Only. 950 9512013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 952 953 * einfo.adb: Flag 263 is now known as Has_Visible_Refinement. 954 (Has_Non_Null_Refinement): New routine. 955 (Has_Null_Refinement): The routine is now synthesized. 956 (Has_Visible_Refinement): New routine. 957 (Set_Has_Visible_Refinement): New routine. 958 (Write_Entity_Flags): Remove the output for 959 Has_Null_Refinement. Add output for Has_Visible_Refinement. 960 * einfo.ads: Update the occurrences of Has_Non_Null_Refinement, 961 Has_Null_Refinement and Has_Visible_Refinement in entities. 962 (Has_Non_Null_Refinement): New synthesized attribute. 963 (Has_Null_Refinement): This attribute is now synthesized. 964 (Has_Visible_Refinement): New routine with corresponding 965 pragma Inline. 966 (Set_Has_Visible_Refinement): New routine with corresponding pragma 967 Inline. 968 * sem_ch3.adb (Analyze_Declarations): Add new local 969 variable In_Package_Body. Remove state refinements from 970 visibility at the end of the package body declarations. 971 (Remove_Visible_Refinements): New routine. 972 * sem_prag.adb (Analyze_Constituent): Collect a null 973 constituent and mark the state as having visible refinement. 974 (Analyze_Global_Item): Use attribute Has_Visible_Refinement to 975 detect a state with visible refinement. 976 (Analyze_Input_Output): Use attribute Has_Visible_Refinement to detect 977 a state with visible refinement. 978 (Check_Dependency_Clause): Use attribute Has_Non_Null_Refinement rather 979 than checking the contents of list Refinement_Constituents. 980 (Check_In_Out_States): Use attribute Has_Non_Null_Refinement rather 981 than checking the contents of list Refinement_Constituents. 982 (Check_Input_States): Use attribute Has_Non_Null_Refinement rather 983 than checking the contents of list Refinement_Constituents. 984 (Check_Matching_Constituent): Mark a state as having visible refinement. 985 (Check_Output_States): Use attribute Has_Non_Null_Refinement rather than 986 checking the contents of list Refinement_Constituents. 987 (Check_Refined_Global_Item): Use attribute Has_Visible_Refinement 988 to detect a state with visible refinement. 989 (Is_Matching_Input): Use attribute Has_Non_Null_Refinement rather than 990 checking the contents of list Refinement_Constituents. 991 * sem_util.adb (Is_Refined_State): Use attribute 992 Has_Visible_Refinement to detect a state with visible refinement. 993 9942013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 995 996 * sem_prag.adb (Check_Mode): Do not emit an 997 error when inspecting a self referencial output item of an 998 unconstrained type. 999 10002013-10-14 Tristan Gingold <gingold@adacore.com> 1001 1002 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Fix 1003 target type for code of VMS imported exception. 1004 * init.c: Replace Exception_Code by void *. 1005 * s-vmexta.adb (Hash, Base_Code_In): Adjust code after changing 1006 the type of Exception_Code. 1007 10082013-10-14 Vincent Celier <celier@adacore.com> 1009 1010 * prj.ads: Minor comment updates. 1011 * prj-attr.adb: New attribute Library_Rpath_Options. 1012 10132013-10-14 Robert Dewar <dewar@adacore.com> 1014 1015 * gnat_rm.texi: Library_Level attribute now applies to an 1016 entity name. 1017 * sem_attr.adb (Analyze_Attribute, case Library_Level): Prefix 1018 is now an entity name. 1019 10202013-10-14 Jose Ruiz <ruiz@adacore.com> 1021 1022 * sem_ch13.adb (Analyze_Aspect_Specification): For 1023 Priority and CPU aspects in subprograms, the expression in the 1024 aspect is analyzed and exported. 1025 10262013-10-14 Robert Dewar <dewar@adacore.com> 1027 1028 * s-valuti.adb, prep.adb, scng.adb, errout.adb: Minor reformatting. 1029 10302013-10-14 Eric Botcazou <ebotcazou@adacore.com> 1031 1032 * adaint.c: Further disable __gnat_get_executable_load_address 1033 for Linux. 1034 10352013-10-14 Vincent Celier <celier@adacore.com> 1036 1037 * gnat_ugn.texi: Add documentation for comparing symbols to 1038 integers in preprocessing expressions. 1039 10402013-10-14 Jose Ruiz <ruiz@adacore.com> 1041 1042 * sem_prag.adb (Analyze_Aspect_Specification): For 1043 Priority and CPU aspects in subprograms, the expression in the 1044 aspect is analyzed and exported. 1045 (Analyze_Pragma): When having a Priority pragma in the 1046 main subprogram, load a unit that will force the initialization 1047 of the tasking run time, which is needed for setting the required 1048 priority. 1049 10502013-10-14 Vincent Celier <celier@adacore.com> 1051 1052 * prj-nmsc.adb (Check_Interfaces): Put in Other_Interfaces all 1053 non Ada interface files. 1054 * prj.ads (Project_Data): New component Other_Interfaces. 1055 10562013-10-14 Arnaud Charlet <charlet@adacore.com> 1057 1058 * gcc-interface/Makefile.in: Target pairs clean ups. 1059 10602013-10-14 Vincent Celier <celier@adacore.com> 1061 1062 * errout.adb (Write_Error_Summary): Do not output the number 1063 of lines when Main_Source_File is unknown. 1064 (Output_Messages): Do not write the header when Main_Source_File is 1065 unknown. 1066 10672013-10-14 Vincent Celier <celier@adacore.com> 1068 1069 * prep.adb (Expression): Accept terms of the form 'symbol <relop> 1070 integer", where relop is =, <, <=, > or >=. 1071 (Parse_Def_File): Accept literal integer values. 1072 * gcc-interface/Make-lang.in: Add s-valint.o, s-valuns.o and 1073 s-valuti.o to the compiler object files. 1074 10752013-10-14 Robert Dewar <dewar@adacore.com> 1076 1077 * exp_prag.adb, exp_ch11.adb, s-exctab.adb: Minor reformatting. 1078 * usage.adb: Add line for -gnateu switch. 1079 10802013-10-14 Vincent Celier <celier@adacore.com> 1081 1082 * lib-writ.ads: Add comments to indicate that a path name in 1083 D lines may be quoted if the path name includes directories 1084 with spaces. 1085 10862013-10-14 Robert Dewar <dewar@adacore.com> 1087 1088 * debug.adb: Document -gnatd.E. 1089 * gnat1drv.adb (Adjust_Global_Switches): Set Error_To_Warning 1090 if -gnatd.E set. 1091 * opt.ads (Error_To_Warning): New switch. 1092 * osint.adb: Minor reformatting. 1093 * sem_warn.adb (Warn_On_Overlapping_Actuals): Overlap is error 1094 in some cases in Ada 2012 mode (unless Error_To_Warning) is set. 1095 * sem_warn.ads (Warn_On_Overlapping_Actuals): Document error 1096 in Ada 2012 mode. 1097 10982013-10-14 Tristan Gingold <gingold@adacore.com> 1099 1100 * cstand.adb: Add a comment for Standard_Exception_Type. 1101 11022013-10-14 Ed Schonberg <schonberg@adacore.com> 1103 1104 * exp_ch4.adb (Process_Transient_Object): If a transient scope 1105 has already been created, use the corresponding Node_To_Be_Wrapped 1106 as the insertion point for the controlled actions. 1107 11082013-10-14 Tristan Gingold <gingold@adacore.com> 1109 1110 * cstand.adb (Create_Standard): Change Import_Code component 1111 of Standard_Exception_Type to Foreign_Data. Its type is now 1112 Standard_A_Char (access to character). 1113 * exp_prag.adb (Expand_Pragma_Import_Export_Exception): Adjust 1114 definition of Code to match the type of Foreign_Data. 1115 * s-stalib.ads (Exception_Data): Replace Import_Code by Foreign_Data 1116 Change the definition of standard predefined exceptions. 1117 (Exception_Code): Remove. 1118 * raise.h (Exception_Code): Remove (Exception_Data): Replace 1119 Import_Code field by Foreign_Data. 1120 * rtsfind.ads (RE_Exception_Code): Remove 1121 (RE_Import_Address): Add. 1122 * a-exexpr-gcc.adb (Import_Code_For): Replaced by Foreign_Data_For. 1123 * exp_ch11.adb (Expand_N_Exception_Declaration): Associate null 1124 to Foreign_Data component. 1125 * raise-gcc.c (Import_Code_For): Replaced by Foreign_Data_For. 1126 (is_handled_by): Add comments. Use replaced function. Change 1127 condition so that an Ada occurrence is never handled by 1128 Foreign_Exception. 1129 * s-exctab.adb (Internal_Exception): Associate Null_Address to 1130 Foreign_Data component. 1131 * s-vmexta.adb, s-vmexta.ads (Exception_Code): Declare Replace 1132 SSL.Exception_Code by Exception_Code. 1133 11342013-10-14 Robert Dewar <dewar@adacore.com> 1135 1136 * gnat_ugn.texi: Document -gnateu switch. 1137 * opt.ads (Ignore_Unrecognized_VWY_Switches): New switch. 1138 * stylesw.adb: Ignore unrecognized switch if 1139 Ignore_Unrecognized_VWY_Switches set. 1140 * switch-c.adb: Implement -gnateu (sets 1141 Ignore_Unrecognized_VWY_Switches). 1142 * validsw.adb: Ignore unrecognized switch if 1143 Ignore_Unrecognized_VWY_Switches set. 1144 * warnsw.adb: Ignore unrecognized switch if 1145 Ignore_Unrecognized_VWY_Switches set. 1146 11472013-10-14 Robert Dewar <dewar@adacore.com> 1148 1149 * exp_prag.adb, sem_prag.adb, a-exexda.adb, s-vmexta.ads: Minor 1150 reformatting. 1151 11522013-10-14 Vincent Celier <celier@adacore.com> 1153 1154 * ali.adb (Get_File_Name): New Boolean parameter May_Be_Quoted, 1155 defaulted to False. Calls Get_Name with May_Be_Quoted. 1156 (Get_Name): New Boolean parameter May_Be_Quoted, defaulted to 1157 False. If May_Be_Quoted is True and first non blank charater is 1158 '"', unquote the name. 1159 (Scan_ALI): For the file/path name on the D line, call Get_File_Name 1160 with May_Be_Quoted = True, as it may have been quoted. 1161 * lib-util.adb, lib-util.ads (Write_Info_Name_May_Be_Quoted): New 1162 procedure to write file/path names that may contain spaces and if they 1163 do are quoted. 1164 * lib-writ.adb (Write_ALI): Use new procedure 1165 Write_Info_Name_May_Be_Quoted to write file/path names on D lines. 1166 11672013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 1168 1169 * sem_prag.adb (Analyze_Depends_In_Decl_Part, 1170 Analyze_Global_In_Decl_Part, 1171 Analyze_Pre_Post_Condition_In_Decl_Part): Install the subprogram 1172 and its formals only when it is not already installed. 1173 * sem_util.adb (Is_Refined_State): A state is refined when it 1174 has a non-empty list of constituents. 1175 11762013-10-14 Tristan Gingold <gingold@adacore.com> 1177 1178 * adaint.c: Disable __gnat_get_executable_load_address for linux. 1179 * exp_prag.adb: Add comment in Expand_Pragma_Import_Export_Exception. 1180 11812013-10-14 Tristan Gingold <gingold@adacore.com> 1182 1183 * s-vmexta.ads: Add comments. 1184 11852013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 1186 1187 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing 1188 for pragma Refined_State. 1189 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 1190 for aspect Refined_Depends. 1191 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): 1192 Use Find_Related_Subprogram_Or_Body to find the related 1193 context. Use the current scope when determining whether to 1194 ensure proper visibility. 1195 (Analyze_Depends_In_Decl_Part): 1196 Add local variable Spec_Id. Update the comment on usage of 1197 Subp_Id. Use Find_Related_Subprogram_Or_Body to find the 1198 related context. Extract the corresponding spec of the body 1199 (if any). Use the current scope when determining when to 1200 ensure proper visibility. 1201 (Analyze_Global_In_Decl_Part): 1202 Add local variable Spec_Id. Update the comment on usage of 1203 Subp_Id. Use Find_Related_Subprogram_Or_Body to find the 1204 related context. Extract the corresponding spec of the body 1205 (if any). Use the current scope when determining when to 1206 ensure proper visibility. 1207 (Analyze_Global_Item): Use the 1208 entity of the subprogram spec when performing formal parameter 1209 checks. Perform state-related checks. 1210 (Analyze_Input_Output): 1211 Use Is_Attribute_Result to detect 'Result. Query the 1212 entity of a subprogram spec when verifying the prefix of 1213 'Result. Perform state-related checks. (Analyze_Pragma): 1214 Merge the analysis of Refined_Depends and Refined_Global. 1215 (Analyze_Refined_Depends_In_Decl_Part): Provide implemenation. 1216 (Analyze_Refined_Global_In_Decl_Part): Move state-related checks 1217 to the body of Analyze_Global_In_Decl_Part. Rename local constant 1218 List to Items. (Analyze_Refined_Pragma): Remove circuitry to 1219 find the proper context, use Find_Related_Subprogram_Or_Body 1220 instead. 1221 (Check_Function_Return): Query the entity of 1222 the subprogram spec when verifying the use of 'Result. 1223 (Check_In_Out_States, Check_Input_States, Check_Output_States): 1224 Avoid using Has_Null_Refinement to detect a state with 1225 a non-null refinement, use the Refinement_Constituents 1226 list instead. 1227 (Check_Matching_Constituent): Remove initialization code. 1228 (Check_Mode_Restriction_In_Function): Use the entity of the subprogram 1229 spec when verifying mode usage in functions. 1230 (Collect_Global_Items): New routine. 1231 (Collect_Subprogram_Inputs_Outputs): Add local 1232 variable Spec_Id. Add circuitry for bodies-as-specs. Use 1233 pragma Refined_Global when collecting for a body. 1234 (Create_Or_Modify_Clause): Use the location of the 1235 clause. Rename local variable Clause to New_Clause to avoid 1236 confusion and update all occurrences. Use Is_Attribute_Result 1237 to detect 'Result. 1238 (Find_Related_Subprogram): Removed. 1239 (Find_Related_Subprogram_Or_Body): New routine. 1240 (Is_Part_Of): Move routine to top level. 1241 (Normalize_Clause): Update the 1242 comment on usage. The routine can now normalize a clause with 1243 multiple outputs by splitting it. 1244 (Collect_Global_Items): 1245 Rename local constant List to Items. Remove the check for 1246 a null list. 1247 (Requires_Profile_Installation): Removed. 1248 (Split_Multiple_Outputs): New routine. 1249 * sem_prag.ads: Update the comments on usage of various 1250 pragma-related analysis routines. 1251 * sem_util.adb (Contains_Refined_State): The routine can now 1252 process pragma [Refined_]Depends. 1253 (Has_Refined_State): Removed. 1254 (Has_State_In_Dependency): New routine. 1255 (Has_State_In_Global): New routine. 1256 (Is_Attribute_Result): New routine. 1257 * sem_util.ads (Is_Attribute_Result): New routine. 1258 12592013-10-14 Emmanuel Briot <briot@adacore.com> 1260 1261 * s-regpat.adb (Compile): Fix finalization of the automaton 1262 when its size was automatically computed to be exactly 1000 bytes. 1263 12642013-10-14 Ed Schonberg <schonberg@adacore.com> 1265 1266 * sem_ch3.adb (Complete_Private_Subtype): If the full view of 1267 the base type is constrained, the full view of the subtype is 1268 known to be constrained as well. 1269 12702013-10-14 Vincent Celier <celier@adacore.com> 1271 1272 * projects.texi: Add documentation for new attributes of package 1273 Clean: Artifacts_In_Object_Dir and Artifacts_In_Exec_Dir. 1274 12752013-10-14 Tristan Gingold <gingold@adacore.com> 1276 1277 * adaint.c, adaint.h (__gnat_get_executable_load_address): 1278 New function. 1279 * a-exexda.adb (Append_Info_Basic_Exception_Traceback): Add 1280 executable load address (Basic_Exception_Tback_Maxlength): Adjust. 1281 12822013-10-14 Vincent Celier <celier@adacore.com> 1283 1284 * prj-attr.adb: New attributes in package Clean: 1285 Artifacts_In_Exec_Dir, Artifacts_In_Object_Dir. 1286 * prj-nmsc.adb (Process_Clean (Attributes)): New 1287 procedure to process attributes Artifacts_In_Exec_Dir and 1288 Artifacts_In_Object_Dir in package Clean. 1289 * prj.ads (Project_Configuration): New components 1290 Artifacts_In_Exec_Dir and Artifacts_In_Object_Dir. 1291 * snames.ads-tmpl: New standard names Artifacts_In_Exec_Dir and 1292 Artifacts_In_Object_Dir used only by gprclean. 1293 12942013-10-14 Robert Dewar <dewar@adacore.com> 1295 1296 * exp_attr.adb (Expand_N_Attribute_Reference): Add error 1297 entry for Library_Level attribute (which should not survive 1298 to expansion) 1299 * gnat_rm.texi: Document attribute Library_Level 1300 * sem_attr.adb (Analyze_Attribute, case Library_Level): Implement 1301 this new attribute (Set_Boolean_Result): Replaces Set_Result 1302 (Check_Standard_Prefix): Document that Check_E0 is called 1303 (Check_System_Prefix): New procedure 1304 * snames.ads-tmpl: Add entry for Library_Level attribute 1305 13062013-10-14 Robert Dewar <dewar@adacore.com> 1307 1308 * exp_ch6.adb, sinfo.ads: Minor reformatting. 1309 * checks.adb (Overlap_Check): Use identifier casing in messages. 1310 13112013-10-14 Robert Dewar <dewar@adacore.com> 1312 1313 * einfo.ads, einfo.adb (Default_Aspect_Component_Value): Is on base type 1314 only. 1315 * exp_aggr.adb (Expand_Array_Aggregate): Handle proper 1316 initialization of <> component. 1317 * exp_ch3.adb, exp_tss.adb: Minor reformatting 1318 * sem_ch13.adb (Default_Aspect_Component_Value, Default_Aspect_Value): 1319 Is on base type only. 1320 * sinfo.ads: Minor comment revision. 1321 13222013-10-14 Robert Dewar <dewar@adacore.com> 1323 1324 * g-decstr.adb (Decode_Wide_Wide_Character): Fix failure 1325 to detect invalid sequences where longer than necessary 1326 sequences are used for encoding. 1327 (Validate_Wide_Character): 1328 Call Decode_Wide_Character to get the above validations. 1329 (Validate_Wide_Wide_Character): Same fix 1330 * g-decstr.ads: Add documentation making it clear that the UTF-8 1331 implementation here recognizes all valid UTF-8 sequences, rather 1332 than the well-formed subset corresponding to characters defined 1333 in Unicode. 1334 (Next_Wide_Character): Remove comment about this 1335 being more efficient than Decode_Wide_Character (because this 1336 no longer the case). 1337 (Prev_Wide_Character): Add note that valid encoding is assumed. 1338 13392013-10-14 Robert Dewar <dewar@adacore.com> 1340 1341 * a-wichha.adb (Character_Set_Version): New function. 1342 * a-wichha.ads: Remove comments for pragma Pure (final RM has 1343 this). 1344 (Character_Set_Version): New function. 1345 * gnat_rm.texi: Update doc. 1346 13472013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 1348 1349 * einfo.adb: Flag263 is now known as Has_Null_Refinement. 1350 (Has_Null_Refinement): New routine. 1351 (Set_Has_Null_Refinement): New routine. 1352 (Write_Entity_Flags): Output the status of flag 1353 Has_Null_Refinement. 1354 * einfo.ads: Add new flag Has_Null_Refinement along with 1355 comment on usage and update all nodes subject to the flag. 1356 (Has_Null_Refinement): New routine along with pragma Inline. 1357 (Set_Has_Null_Refinement): New rouitine along with pragma Inline. 1358 * sem_prag.adb (Analyze_Constituent): Mark a state as having 1359 a null refinement when the sole constituent is "null". 1360 (Analyze_Global_List): Handle null input/output items. 1361 (Analyze_Refined_Global_In_Decl_Part): Add local variable 1362 Has_Null_State. Add logic to handle combinations of states 1363 with null refinements and null global lists and/or items. 1364 (Check_In_Out_States, Check_Input_States, Check_Output_States): 1365 Use attribute Has_Null_Refinement to detect states with 1366 constituents. 1367 (Check_Refined_Global_List): Handle null input/output items. 1368 (Process_Global_Item): Handle states with null refinements. 1369 (Process_Global_List): Handle null input/output items. 1370 13712013-10-14 Robert Dewar <dewar@adacore.com> 1372 1373 * freeze.adb (Freeze_Entity): Reset Is_True_Constant for 1374 aliased object 1375 * gnat_ugn.texi: Update doc on aliased variables and constants. 1376 13772013-10-14 Ed Schonberg <schonberg@adacore.com> 1378 1379 * exp_pakd.adb (Expand_Packed_Element_Reference): If the 1380 reference is an actual in a call, the prefix has not been fully 1381 expanded, to account for the additional expansion for parameter 1382 passing. the prefix itself is a packed reference as well, 1383 recurse to complete the transformation of the prefix. 1384 13852013-10-14 Eric Botcazou <ebotcazou@adacore.com> 1386 1387 * exp_dbug.adb (Debug_Renaming_Declaration): Do not 1388 materialize the entity when the renamed object contains an 1389 N_Explicit_Dereference. 1390 * sem_ch8.adb (Analyze_Object_Renaming): 1391 If the renaming comes from source and the renamed object is a 1392 dereference, mark the prefix as needing debug information. 1393 13942013-10-14 Doug Rupp <rupp@adacore.com> 1395 1396 * system-vxworks-arm.ads (Stack_Check_Probes, Stack_Check_Limits): 1397 Enable Stack Probes, Disable Stack Limit Checking. 1398 * init.c [VxWorks] (__gnat_inum_to_ivec): Caste return value. 1399 (__gnat_map_signal): Fix signature. 1400 (__gnat_error_handler): Make 1401 static, fix signature, remove prototype, fix prototype warning. 1402 [ARMEL and VxWorks6] (__gnat_map_signal): Check and re-arm guard 1403 page for storage_error. 1404 * exp_pakd.adb: Minor reformatting. 1405 14062013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 1407 1408 * sem_prag.adb (Analyze_Global_In_Decl_Part): Remove local 1409 variable Contract_Seen. Add local variable Proof_Seen. 1410 (Analyze_Global_List): Remove the processing for mode 1411 Contract_In. Add support for mode Proof_In. 1412 (Analyze_Pragma): Update the grammar of pragmas Global and 1413 Refined_Global. 1414 * snames.ads-tmpl: Remove predefined name Contract_In. Add 1415 predefined name Proof_In. 1416 14172013-10-14 Robert Dewar <dewar@adacore.com> 1418 1419 * exp_prag.adb (Expand_Pragma_Check): Generate proper string 1420 for invariant 1421 * gnat_rm.texi: Add documentation for pragmas 1422 Type_Invariant[_Class] 1423 * par-prag.adb: Add entries for pragmas Type_Invariant[_Class] 1424 * sem_ch13.adb: Minor reformatting 1425 * sem_prag.adb: Implement pragmas Type_Invariant[_Class] 1426 * snames.ads-tmpl: Add entries for pragmas Type_Invariant[_Class] 1427 14282013-10-14 Johannes Kanig <kanig@adacore.com> 1429 1430 * debug.adb: Release now unused debug switches that were only 1431 relevant for gnat2why backend, not the frontend 1432 * frontend.adb (Frontend) Do not stop when -gnatd.H is present, 1433 was unused 1434 14352013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 1436 1437 * sem_prag.adb (Analyze_Global_Item): Allow 1438 references to enclosing formal parameters. 1439 14402013-10-14 Thomas Quinot <quinot@adacore.com> 1441 1442 * einfo.adb (Equivalent_Type): Add missing case 1443 E_Access_Subprogram_Type in guard (for remote access to 1444 subprograms) * sem_ch8.adb (Find_Direct_Name, Find_Expanded_Name): 1445 Add missing guards to account for the presence of RAS types 1446 that have already been replaced with the corresponding fat 1447 pointer type. 1448 14492013-10-14 Hristian Kirtchev <kirtchev@adacore.com> 1450 1451 * aspects.adb: Add an entry in table Canonical_Aspect for 1452 Initializes. 1453 * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, 1454 Aspect_Names and Aspect_Delay for Initializes. 1455 * atree.ads, atree.adb (Ekind_In): New seven argument versions of the 1456 routines. 1457 * einfo.adb: Remove Refined_State_Pragma from the list of node 1458 usage. Finalizer is now at position 28. 1459 (Contract): Package 1460 and package bodies now have a contract. 1461 (Finalizer): Update 1462 the assertion and node usage. 1463 (Get_Pragma): Update the Is_CDG 1464 flag to include Abstract_State, Initializes and Refined_State. 1465 (Refined_State_Pragma): Removed. 1466 (Set_Contract): Package and 1467 package bodies now have a contract. 1468 (Set_Finalizer): Update the 1469 assertion and node usage. 1470 (Set_Refined_State_Pragma): Removed. 1471 (Write_Field8_Name): Remove the output for Refined_State_Pragma. 1472 (Write_Field24_Name): Remove the output for Finalizer. Package 1473 and package bodies now have a contract. 1474 (Write_Field28_Name): 1475 Add output for Finalizer. 1476 * einfo.ads: Update the documentation and usage in entities 1477 of attribute Contract. Update the node position and usage in 1478 entities of attribute Finalizer. Remove the documentation 1479 and usage in entities for attribute Refined_State_Pragma. 1480 (Refined_State_Pragma): Removed along with pragma Inline. 1481 (Set_Refined_State_Pragma): Removed along with pragma Inline. 1482 * par-prag.adb: Add Initializes to the pragmas that do not 1483 require special processing by the parser. 1484 * sem_ch3.adb (Analyze_Declarations): Add local variable 1485 Prag. Update the retrieval of pragma Refined_State. Analyze 1486 aspect/pragma Initializes at the end of the visible declarations 1487 of the related package. 1488 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): 1489 Add local variables Ref_Depends and Ref_Global. Analyze 1490 pragmas Refined_Global and Refined_Depends in that order. 1491 (Analyze_Subprogram_Contract): Add local variables Depends and 1492 Global. Analyze pragmas Global and Depends in that order. 1493 * sem_ch7.adb (Analyze_Package_Body_Helper): Package 1494 bodies now have a contract. Move the analysis of the aspect 1495 specifications after the defining entity has been decorated. 1496 (Analyze_Package_Declaration): Packages now have a contract. Move 1497 the analysis of the aspect specifications after the defining 1498 entity has been decorated. 1499 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Packages 1500 now have contracts. 1501 * sem_ch13.adb (Analyze_Pragma): Code cleanup for aspect 1502 Abstract_State. Add processing for aspect Initializes. 1503 (Check_Aspect_At_Freeze_Point): Add an entry for Initializes. 1504 * sem_prag.adb: Use Get_Pragma_Arg to extract the expression 1505 of a pragma argument. Add an entry in table Sig_Flags for 1506 Initializes. 1507 (Analyze_Initializes_In_Decl_Part): New routine. 1508 (Analyze_Pragma): Check the declaration order of pragmas 1509 Abstract_State and Initializes. Abstract_State is now part of 1510 the package contract. Analyze pragma Initializes. Check for 1511 duplicate Refined_State pragma. Refined_State is now part of 1512 the package contract. 1513 (Check_Declaration_Order): New routine. 1514 (Check_Test_Case): Alphabetized. 1515 * sem_prag.ads (Analyze_Initializes_In_Decl_Part): New routine. 1516 * sem_util.adb (Add_Contract_Item): Rename formal Subp_Id 1517 to Id. This routine can now support contracts on packages and 1518 package bodies. 1519 * sem_util.ads (Add_Contract_Item): Rename formal Subp_Id to 1520 Id. Update comment on usage. 1521 * sinfo.ads: Update the usage of N_Contract nodes. 1522 * snames.ads-tmpl: Add predefined name Initializes. Add new 1523 pragma id for Initializes. 1524 15252013-10-13 Nicolas Roche <roche@adacore.com> 1526 Eric Botcazou <ebotcazou@adacore.com> 1527 1528 * gcc-interface/Make-lang.in (ada/%.o): Replace individual rules with 1529 generic rule and add $(POSTCOMPILE). 1530 (ADA_DEPS): New. 1531 (.adb.o): Add @$(ADA_DEPS). 1532 (.ads.o): Likewise. 1533 (ada/a-except.o): Likewise. 1534 (ada/s-excdeb.): Likewise. 1535 (ada/s-assert.o): Likewise. 1536 (ada/a-tags.o): Likewise. 1537 (ada_generated_files): New variable. 1538 Use them as dependency order for GNAT1_ADA_OBJS and GNATBIND_OBJS. 1539 (ADA_DEPFILES): New variable. 1540 Include them. 1541 (ada_OBJS): Define. 1542 15432013-10-13 Eric Botcazou <ebotcazou@adacore.com> 1544 1545 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Force all local 1546 variables with aggregate types in memory if not optimizing. 1547 15482013-10-13 Hristian Kirtchev <kirtchev@adacore.com> 1549 1550 * sem_prag.adb (Check_Mode): Do 1551 not emit an error when we are looking at inputs and 1552 the item is an unconstrained or tagged out parameter. 1553 (Check_Mode_Restriction_In_Enclosing_Context): Use Get_Pragma 1554 to find whether the context is subject to aspect/pragma Global. 1555 (Collect_Subprogram_Inputs_Outputs): Unconstrained or tagged 1556 out parameters are now considered inputs. Use Get_Pragma to 1557 find wheher the subprogram is subject to aspect/pragma Global. 1558 (Is_Unconstrained_Or_Tagged_Item): New routine. 1559 15602013-10-13 Thomas Quinot <quinot@adacore.com> 1561 1562 * einfo.ads: Minor reformatting. 1563 * gcc-interface/Make-lang.in: Update dependencies. 1564 15652013-10-13 Robert Dewar <dewar@adacore.com> 1566 1567 * gnat_rm.texi: Add documentation for pragmas Pre[_Class] 1568 Post[_Class]. 1569 * par-ch2.adb (Skip_Pragma_Semicolon): Handle extra semicolon nicely. 1570 * par-prag.adb: Add entries for pragmas Pre[_Class] and 1571 Post[_Class]. 1572 * sem_prag.adb: Add handling of pragmas Pre[_Class] and 1573 Post[_Class]. 1574 * sem_util.adb (Original_Aspect_Name): Moved here from 1575 Sem_Prag.Original_Name, and modified to handle pragmas 1576 Pre/Post/Pre_Class/Post_Class. 1577 * sem_util.ads (Original_Aspect_Name): Moved here from 1578 Sem_Prag.Original_Name. 1579 * snames.ads-tmpl: Add entries for pragmas Pre[_Class] and 1580 Post[_Class]. 1581 15822013-10-13 Robert Dewar <dewar@adacore.com> 1583 1584 * einfo.adb, sem_ch6.adb: Minor reformatting. 1585 15862013-10-13 Hristian Kirtchev <kirtchev@adacore.com> 1587 1588 * einfo.adb: Add node/list usage for Refined_State 1589 and Refinement_Constituents. 1590 (Get_Pragma): Update the 1591 initialization of Is_CDG to include Refined_Global and 1592 Refined_Depends. Rename constant Delayed to In_Contract and update 1593 all of its occurrences. 1594 (Is_Non_Volatile_State): New routine. 1595 (Is_Volatile_State): Removed. 1596 (Refined_State): New routine. 1597 (Refinement_Constituents): New routine. 1598 (Set_Refined_State): New routine. 1599 (Set_Refinement_Constituents): New routine. 1600 (Write_Field8_Name): Add output for Refinement_Constituents. 1601 (Write_Field10_Name): Add output for Refined_State. 1602 * einfo.ads: Add new synthesized attribute Is_Non_Volatile_State. 1603 Remove synthesized attribute Is_Volatile_State. Add new 1604 attributes Refined_State and Refinement_Constituents along with 1605 usage in nodes. 1606 (Get_Pragma): Update the comment on usage. 1607 (Is_Non_Volatile_State): New routine. 1608 (Is_Volatile_State): Removed. 1609 (Refined_State): New routine and pragma Inline. 1610 (Refinement_Constituents): New routine and pragma Inline. 1611 (Set_Refined_State): New routine and pragma Inline. 1612 (Set_Refinement_Constituents): New routine and pragma Inline. 1613 * elists.ads, elists.adb (Clone): Removed. 1614 (New_Copy_Elist): New routine. 1615 (Remove): New routine. 1616 * sem_ch3.adb (Analyze_Declarations): Use Defining_Entity 1617 to get the entity of the subprogram [body]. 1618 (Analyze_Object_Declaration): Add initialization for 1619 Refined_State. 1620 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Add processing 1621 for Refined_Global and Refined_Depends. Emit an error when 1622 the body requires Refined_Global, but the aspect/pragma is 1623 not present. 1624 * sem_ch6.ads (Analyze_Subprogram_Body_Contract): Change 1625 procedure signature and add comment on usage. 1626 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 1627 for aspect Refined_Global. 1628 * sem_prag.adb (Analyze_Abstract_State): Add initialization 1629 of attributes Refined_State and Refinement_Constituents. 1630 (Analyze_Depends_In_Decl_Part, Analyze_Global_In_Decl_Part, 1631 Analyze_Contract_Cases_In_Decl_Part): Remove local 1632 constant Arg1. 1633 (Analyze_Pragma): Add processing for pragma 1634 Refined_Global. The analysis of Refined_Post and Refined_Pre 1635 has been merged. Update an error message in the processing of 1636 pragma Refined_State. 1637 (Analyze_Refined_Global_In_Decl_Part): Provide implementation. 1638 (Analyze_Refined_Pragma): New routine. 1639 (Analyze_Refined_Pre_Post_Condition): Removed. 1640 (Analyze_Refined_State_In_Decl_Part): Update the call to Clone. 1641 (Analyze_Refinement_Clause): Make State_Id visible to all 1642 nested subprogram. 1643 (Check_Matching_Constituent): Establish 1644 a relation between a refined state and its constituent. 1645 (Collect_Hidden_States_In_Decls): Remove ??? comment. Look at 1646 the entity of the object declaration to establish its kind. 1647 * sem_util.adb: Alphabetize with and use clauses. 1648 (Contains_Refined_State): New routine. 1649 * sem_util.ads (Contains_Refined_State): New routine. 1650 16512013-10-13 Thomas Quinot <quinot@adacore.com> 1652 1653 * scos.ads: Minor documentation clarification. 1654 16552013-10-13 Thomas Quinot <quinot@adacore.com> 1656 1657 * s-oscons-tmplt.c (CLOCK_RT_Ada): Set to CLOCK_MONOTONIC when 1658 building on AIX 5.3 or later, and to CLOCK_REALTIME on older 1659 versions of AIX. 1660 * init.c (pthread_condattr_setclock): Remove now useless weak symbol. 1661 * thread.c(__gnat_pthread_condattr_setup): Remove bogus AIX 5.2 1662 compatibility shim. 1663 * s-osinte-aix.ads(clock_id_t): Fix C mapping (this is a 64-bit 1664 type). 1665 (clock_gettime): Import from C runtime library. 1666 * s-osinte-aix.adb (clock_gettime): Remove bogus emulation body, 1667 this routine is provided by the system in current supported 1668 versions of AIX. 1669 16702013-10-13 Robert Dewar <dewar@adacore.com> 1671 1672 * sem_ch3.adb: Minor reformatting. 1673 16742013-10-13 Ed Schonberg <schonberg@adacore.com> 1675 1676 * freeze.adb (Freeze_Entity): For a function whose return type 1677 is incomplete, do not replace the type with the full view if the 1678 type is a limited view. In that case the full view appears in a 1679 different unit, and the back-end will retrieve it at the proper 1680 elaboration point. 1681 16822013-10-13 Yannick Moy <moy@adacore.com> 1683 1684 * exp_spark.adb (Expand_SPARK_Call): Do not introduce temporaries for 1685 actuals. 1686 16872013-10-13 Ed Schonberg <schonberg@adacore.com> 1688 1689 * sem_ch3.adb: in Ada 2012 access_to_function types can have 1690 in-out parameters. 1691 (Derived_Type_Declaration): SPARK restriction 1692 must be flagged on the original node, since it may have been 1693 written as a subtype declaration. 1694 (Analyze_Subtype_Declaration): Do not enter name of 1695 entity in declaration if it is the current entity, because it may 1696 have been inserted in a previous analysis and it appears in the 1697 else_part of an if-statement that is rewritten during expansion. 1698 16992013-10-13 Yannick Moy <moy@adacore.com> 1700 1701 * exp_spark.adb (Expand_SPARK_N_Attribute_Reference): Remove procedure. 1702 (Expand_SPARK): Remove call to Expand_SPARK_N_Attribute_Reference and 1703 Expand_SPARK_N_Simple_Return_Statement. 1704 (Expand_SPARK_N_Simple_Return_Statement, 1705 Expand_SPARK_Simple_Function_Return): Remove procedures. 1706 17072013-10-13 Vincent Celier <celier@adacore.com> 1708 1709 * gnat_ugn.texi: Minor editing. 1710 17112013-10-13 Ed Schonberg <schonberg@adacore.com> 1712 1713 * sem_ch3.adb (Check_Abstract_Overriding): If a synchronized 1714 operation implements an interface primitive, mark the operation 1715 as referenced, to prevent usually spurious messages about unused 1716 entities: such operations are called in dispatching select 1717 statements that are not visible to the compiler. 1718 17192013-10-13 Eric Botcazou <ebotcazou@adacore.com> 1720 1721 * gcc-interface/decl.c (gnat_to_gnu_param): Remove obsolete comment. 1722 17232013-10-11 Jakub Jelinek <jakub@redhat.com> 1724 1725 * gcc-interface/utils.c (DEF_FUNCTION_TYPE_8): Define. 1726 17272013-10-10 Robert Dewar <dewar@adacore.com> 1728 1729 * par-ch6.adb (Check_Junk_Semicolon_Before_Return): Remove 1730 junk code. 1731 17322013-10-10 Javier Miranda <miranda@adacore.com> 1733 1734 * sem_ch13.adb (Freeze_Entity_Checks): Avoid 1735 loosing errors on CPP entities in -gnatc mode. 1736 17372013-10-10 Robert Dewar <dewar@adacore.com> 1738 1739 * sem_ch5.adb (Analyze_If_Statement): Only diagnose redundant 1740 if from source. 1741 17422013-10-10 Robert Dewar <dewar@adacore.com> 1743 1744 * restrict.adb (Check_SPARK_Restriction): Refine test (don't 1745 automatically go to the original node). 1746 * sem_ch11.adb (Analyze_Raise_Statement): Only raise 1747 statements that come from source violate SPARK restrictions. 1748 (Analyze_Raise_xxx_Error): Same fix. 1749 * sem_ch3.adb (Analyze_Object_Declaration): Check OK SPARK 1750 initialization on original node, not on possibly rewritten 1751 expression. 1752 * sem_ch4.adb (Analyze_If_Expression): Only if expressions that 1753 come from source violate SPARK mode restrictions. 1754 17552013-10-10 Robert Dewar <dewar@adacore.com> 1756 1757 * gnat_ugn.texi: Fix confusing documentation for -gnatyM. 1758 17592013-10-10 Yannick Moy <moy@adacore.com> 1760 1761 * errout.adb (Compilation_Errors): In formal verification mode, 1762 always return False. 1763 17642013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 1765 1766 * sem_prag.adb (Collect_Hidden_States_In_Decls): Only consider source 1767 non-constant objects. 1768 17692013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 1770 1771 * aspects.adb: Add an entry in table Canonical_Aspect for 1772 Refined_State. 1773 * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, 1774 Aspect_Names and Aspect_Delay for Refined_State. 1775 * einfo.adb: Add with and use clauses for Elists. 1776 Remove Refined_State from the list of node usage. 1777 Add Refined_State_Pragma to the list of node usage. 1778 (Has_Null_Abstract_State): New routine. 1779 (Refined_State): Removed. 1780 (Refined_State_Pragma): New routine. 1781 (Set_Refined_State): Removed. 1782 (Set_Refined_State_Pragma): New routine. 1783 (Write_Field8_Name): Add output for Refined_State_Pragma. 1784 (Write_Field9_Name): Remove the output for Refined_State. 1785 * einfo.ads: Add new synthesized attribute Has_Null_Abstract_State 1786 along with usage in nodes. Remove attribute Refined_State along 1787 with usage in nodes. Add new attribute Refined_State_Pragma along 1788 with usage in nodes. 1789 (Has_Null_Abstract_State): New routine. 1790 (Refined_State): Removed. 1791 (Refined_State_Pragma): New routine. 1792 (Set_Refined_State): Removed. 1793 (Set_Refined_State_Pragma): New routine. 1794 * elists.adb (Clone): New routine. 1795 * elists.ads (Clone): New routine. 1796 * par-prag.adb: Add Refined_State to the pragmas that do not 1797 require special processing by the parser. 1798 * sem_ch3.adb: Add with and use clause for Sem_Prag. 1799 (Analyze_Declarations): Add local variables Body_Id, Context and 1800 Spec_Id. Add processing for delayed aspect/pragma Refined_State. 1801 * sem_ch13.adb (Analyze_Aspect_Specifications): Update the 1802 handling of aspect Abstract_State. Add processing for aspect 1803 Refined_State. Remove the bizzare insertion policy for aspect 1804 Abstract_State. 1805 (Check_Aspect_At_Freeze_Point): Add an entry for Refined_State. 1806 * sem_prag.adb: Add an entry to table Sig_Flags 1807 for pragma Refined_State. 1808 (Add_Item): Update the 1809 comment on usage. The inserted items need not be unique. 1810 (Analyze_Contract_Cases_In_Decl_Part): Rename variable Restore to 1811 Restore_Scope and update all its occurrences. 1812 (Analyze_Pragma): 1813 Update the handling of pragma Abstract_State. Add processing for 1814 pragma Refined_State. 1815 (Analyze_Pre_Post_Condition_In_Decl_Part): 1816 Rename variable Restore to Restore_Scope and update all its 1817 occurrences. 1818 (Analyze_Refined_State_In_Decl_Part): New routine. 1819 * sem_prag.ads (Analyze_Refined_State_In_Decl_Part): New routine. 1820 * snames.ads-tmpl: Add new predefined name for Refined_State. Add 1821 new Pragma_Id for Refined_State. 1822 18232013-10-10 Ed Schonberg <schonberg@adacore.com> 1824 1825 * sem_ch10.adb (Install_Limited_Withed_Unit): handle properly the 1826 case of a record declaration in a limited view, when the record 1827 contains a self-referential component of an anonymous access type. 1828 18292013-10-10 Thomas Quinot <quinot@adacore.com> 1830 1831 * exp_ch4.adb (Process_Transient_Object): For any context other 1832 than a simple return statement, insert the finalization action 1833 after the context, not as an action on the context (which will 1834 get evaluated before it). 1835 18362013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 1837 1838 * einfo.adb (Write_Field19_Name): Correct the 1839 string name of attribute Default_Aspect_Value. 1840 18412013-10-10 Ed Schonberg <schonberg@adacore.com> 1842 1843 * sem_type.adb (Interface_Present_In_Ancestor): The progenitor 1844 in a type declaration may be an interface subtype. 1845 18462013-10-10 Robert Dewar <dewar@adacore.com> 1847 1848 * sinfo.ads (Do_Range_Check): Add special note on handling of 1849 range checks for Succ and Pred. 1850 18512013-10-10 Robert Dewar <dewar@adacore.com> 1852 1853 * erroutc.adb (Output_Msg_Text): Remove VMS special handling. 1854 18552013-10-10 Robert Dewar <dewar@adacore.com> 1856 1857 * a-chahan.ads, a-chahan.adb (Is_Line_Terminator): New function 1858 (Is_Mark): New function. 1859 (Is_Other_Format): New function. 1860 (Is_Punctuation_Connector): New function. 1861 (Is_Space): New function. 1862 18632013-10-10 Robert Dewar <dewar@adacore.com> 1864 1865 * sem_aggr.adb (Resolve_Array_Aggregate): Redo duplicate/missing 1866 choice circuit. Was not quite right in some cases, which showed 1867 up in ACATS test B43201C. 1868 * sem_attr.adb (Address_Checks): Make sure name is set right 1869 for some messages issued. 1870 * mlib-prj.adb: Minor code reorganization. 1871 * gnat_ugn.texi: Remove special VMS doc for tagging of warning msgs. 1872 * exp_ch9.adb: Minor reformatting. 1873 18742013-10-10 Tristan Gingold <gingold@adacore.com> 1875 1876 * lib-writ.adb (Write_Unit_Information): Adjust previous patch. 1877 18782013-10-10 Robert Dewar <dewar@adacore.com> 1879 1880 * sem_ch5.adb (Analyze_If_Statement): Warn on redundant if 1881 statement. 1882 * sem_util.ads, sem_util.adb (Has_No_Obvious_Side_Effects): New 1883 function. 1884 18852013-10-10 Ed Schonberg <schonberg@adacore.com> 1886 1887 * exp_ch9.adb (Expand_N_Timed_Entry_Call): Simplify expansion 1888 for the case of a dispatching trigger: there is no need to 1889 duplicate the code or create a subprogram to encapsulate the 1890 triggering statements. This allows exit statements in the 1891 triggering statements, that refer to enclosing loops. 1892 18932013-10-10 Robert Dewar <dewar@adacore.com> 1894 1895 * freeze.adb: Minor reformatting. 1896 * sem_ch13.adb (Freeze_Entity_Checks): New procedure 1897 (Analyze_Freeze_Entity): Call Freeze_Entity_Checks 1898 (Analyze_Freeze_Generic_Entity): Call Freeze_Entity_Checks. 1899 * sinfo.ads: Add syntax for sprint for Freeze_Generic_Entity. 1900 * sprint.ads: Add syntax for freeze generic entity node. 1901 19022013-10-10 Robert Dewar <dewar@adacore.com> 1903 1904 * einfo.adb, einfo.ads: Minor comment updates. 1905 19062013-10-10 Robert Dewar <dewar@adacore.com> 1907 1908 * lib-writ.adb (Write_Unit_Information): Fatal error if linker 1909 options are detected in a predefined generic unit. 1910 19112013-10-10 Thomas Quinot <quinot@adacore.com> 1912 1913 * s-oscons-tmplt.c (CLOCK_REALTIME): Always define, possibly using 1914 a dummy placeholder value. 1915 (NEED_PTHREAD_CONDATTR_SETCLOCK): Remove, not needed anymore. 1916 * thread.c: Adjust #if test accordingly. 1917 19182013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 1919 1920 * exp_ch6.adb (Consequence_Error): Generate an 1921 implicit if statement. 1922 (Expand_Contract_Cases): Generate an implicit if statement. 1923 (Process_Contract_Cases): Do not expand Contract_Cases when no code 1924 is being generated. 1925 19262013-10-10 Robert Dewar <dewar@adacore.com> 1927 1928 * sem_attr.adb (Address_Checks): New procedure. 1929 19302013-10-10 Ed Schonberg <schonberg@adacore.com> 1931 1932 * sinfo.ads, sinfo.adb: New Node Freeze_Generic_Entity, to trigger 1933 semantic actions at the proper point for entities that previously 1934 had no explicit freeze point. 1935 * freeze.adb (Freeze_Generic_Entities): generate new nodes to 1936 indicate the point at which semantic checks can be performed on 1937 entities declared in generic packages. 1938 * sem_ch13.ads, sem_ch13.adb: New procedure 1939 Analyze_Freeze_Generic_Entity. 1940 * exp_util.adb (Insert_Actions): Treat new node like Freeze_Entity. 1941 * sem.adb (Analyze): Call Analyze_Freeze_Generic_Entity. 1942 * sprint.adb (Sprint_Node): display Analyze_Freeze_Generic_Entity. 1943 * gcc-interface/trans.c: Ignore Analyze_Freeze_Generic_Entity. 1944 * gcc-interface/Make-lang.in: Update dependencies. 1945 19462013-10-10 Robert Dewar <dewar@adacore.com> 1947 1948 * sem_aggr.adb (Resolve_Array_Aggregate): Identify duplicated 1949 cases. 1950 19512013-10-10 Robert Dewar <dewar@adacore.com> 1952 1953 * sem_ch9.adb (Analyze_Task_Body): Aspects are illegal 1954 (Analyze_Protected_Body): Aspects are illegal. 1955 19562013-10-10 Robert Dewar <dewar@adacore.com> 1957 1958 * sem_ch6.adb, sem_ch13.adb: Minor reformatting. 1959 * sem_case.adb (Check_Choices): Fix bad listing of missing 1960 values from predicated subtype case (Check_Choices): List 1961 duplicated values. 1962 * errout.adb (Set_Msg_Text): Process warning tags in VMS mode 1963 * erroutc.adb (Output_Msg_Text): Handle VMS warning tags 1964 * gnat_ugn.texi: Document /WARNINGS=TAG_WARNINGS for VMS 1965 * ug_words: Add entries for -gnatw.d and -gnatw.D 1966 * vms_data.ads: Add [NO]TAG_WARNINGS for -gnatw.D/-gnatw.d 1967 * lib-writ.ads: Documentation fixes 1968 19692013-10-10 Robert Dewar <dewar@adacore.com> 1970 1971 * a-wichha.adb, a-wichha.ads, a-zchhan.adb, a-zchhan.ads 1972 (Is_Other_Format): New name for Is_Other. 1973 (Is_Punctuation_Connector): New name for Is_Punctuation 1974 19752013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 1976 1977 * aspects.adb: Add entries in table Canonical_Aspects for aspects 1978 Refined_Depends and Refined_Global. 1979 * aspects.ads: Add entries in tables Aspect_Id, Aspect_Argument, 1980 Aspect_Names, Aspect_Declay, Aspect_On_Body_Or_Stub_OK for 1981 aspects Refined_Depends and Refined_Global. 1982 * einfo.adb (Contract): Subprogram bodies are now valid owners 1983 of contracts. 1984 (Set_Contract): Subprogram bodies are now valid 1985 owners of contracts. 1986 (Write_Field24_Name): Output the contract 1987 attribute for subprogram bodies. 1988 * exp_ch6.adb (Expand_Subprogram_Contract): New routine. 1989 * exp_ch6.ads (Expand_Subprogram_Contract): New routine. 1990 * par-prag.adb: Pragmas Refined_Depends and Refined_Global do 1991 not require any special processing by the parser. 1992 * sem_ch3.adb (Adjust_D): Renamed to Adjust_Decl. 1993 (Analyze_Declarations): Code reformatting. Analyze the contract 1994 of a subprogram body at the end of the declarative region. 1995 * sem_ch6.adb (Analyze_Generic_Subprogram_Body): 1996 Subprogram bodies can now have contracts. Use 1997 Expand_Subprogram_Contract to handle the various contract 1998 assertions. 1999 (Analyze_Subprogram_Body_Contract): New null routine. 2000 (Analyze_Subprogram_Body_Helper): Subprogram bodies can now have 2001 contracts. Use Expand_Subprogram_Contract to handle the various 2002 contract assertions. 2003 (Analyze_Subprogram_Contract): Add local 2004 variable Nam. Update the call to Analyze_PPC_In_Decl_Part. Capture 2005 the pragma name in Nam. 2006 (Process_PPCs): Removed. 2007 * sem_ch6.ads (Analyze_Subprogram_Body_Contract): New routine. 2008 (Analyze_Subprogram_Contract): Update the comment on usage. 2009 * sem_ch13.adb (Analyze_Aspect_Specifications): Add null 2010 implementations for aspects Refined_Depends and Refined_Global. 2011 (Check_Aspect_At_Freeze_Point): Aspects Refined_Depends and 2012 Refined_Global do not need to be checked at the freeze point. 2013 * sem_prag.adb: Add entries in table Sig_Flags 2014 for pragmas Refined_Depends and Refined_Global. 2015 (Analyze_Contract_Cases_In_Decl_Part): Add local 2016 variable Restore. Use Restore to pop the scope. 2017 (Analyze_Depends_In_Decl_Part): Add local variable Restore. Use 2018 Restore to pop the scope. 2019 (Analyze_Global_In_Decl_List): Add local variable Restore. Use Restore 2020 to pop the scope. 2021 (Analyze_PPC_In_Decl_Part): Renamed to 2022 Analyze_Pre_Post_Condition_In_Decl_Part. 2023 (Analyze_Pragma): 2024 Add null implementations for pragmas Refined_Depends and 2025 Refined_Global. Refined_Pre and Refined_Post are now 2026 handled by routine Analyze_Refined_Pre_Post_Condition 2027 exclusively. 2028 (Analyze_Refined_Depends_In_Decl_Part): New 2029 null routine. 2030 (Analyze_Refined_Global_In_Decl_Part): 2031 New null routine. 2032 (Analyze_Refined_Pre_Post): 2033 Renamed to Analyze_Refined_Pre_Post_Condition. 2034 (Analyze_Refined_Pre_Post_Condition): Analyze the boolean 2035 expression. 2036 (Check_Precondition_Postcondition): Update the call 2037 to Analyze_PPC_In_Decl_Part. 2038 * sem_prag.ads: Add entries in table 2039 Pragma_On_Body_Or_Stub_OK for pragmas Refined_Depends 2040 and Refined_Global. 2041 (Analyze_PPC_In_Decl_Part): Renamed 2042 to Analyze_Pre_Post_Condition_In_Decl_Part. Update the 2043 comment on usage. 2044 (Analyze_Refined_Depends_In_Decl_Part): New routine. 2045 (Analyze_Refined_Global_In_Decl_Part): New routine. 2046 (Analyze_Test_Case_In_Decl_Part): Update the comment on usage. 2047 * sem_util.adb (Add_Contract_Item): Rename formal Item to Prag 2048 and update all occurrences. Subprogram body contracts can now 2049 contain pragmas Refined_Depends and Refined_Global. 2050 * sem_util.ads (Add_Contract_Item): Rename formal Item to 2051 Prag. Update the comment on usage. 2052 * sinfo.ads: Update the comment on structure and usage of 2053 N_Contract. 2054 * snames.ads-tmpl: Add new predefined names for Refined_Depends 2055 and Refined_Global. Add entries in table Pragma_Id for 2056 Refined_Depends and Refined_Global. 2057 20582013-10-10 Robert Dewar <dewar@adacore.com> 2059 2060 * types.ads: Minor reformatting. 2061 20622013-10-10 Thomas Quinot <quinot@adacore.com> 2063 2064 * s-taprop-posix.adb: Add missing comment. 2065 20662013-10-10 Robert Dewar <dewar@adacore.com> 2067 2068 * freeze.adb (Freeze_Record_Type): Move choice checking to 2069 Analyze_Freeze_Entity (Freeze_Record_Type): Make sure all choices 2070 are properly frozen 2071 * sem_case.adb (Check_Choices): Remove misguided attempt to 2072 freeze choices (this is now done in Freeze_Record_Type where 2073 it belongs). 2074 (Check_Choices): Remove some analyze/resolve calls 2075 that are redundant since they are done in Analyze_Choices. 2076 * sem_ch13.adb (Analyze_Freeze_Entity): Do the error 2077 checking for choices in variant records here (moved here from 2078 Freeze.Freeze_Record_Type) 2079 20802013-10-10 Thomas Quinot <quinot@adacore.com> 2081 2082 * s-oscons-tmplt.c, s-taprop-posix.adb (CLOCK_REALTIME): Always define, 2083 possibly using a dummy placeholder value. 2084 (Compute_Deadline): For the case of an 2085 Absolute_Calendar deadline, if the target uses another clock 2086 than CLOCK_REALTIME as CLOCK_RT_Ada, compensate for possible 2087 different epoch. 2088 20892013-10-10 Ed Schonberg <schonberg@adacore.com> 2090 2091 * sem_ch8.adb (Find_Expanded_Name): Handle properly a fully 2092 qualified reference to a generic child unit within itself, 2093 in an instantiation. 2094 20952013-10-10 Pascal Obry <obry@adacore.com> 2096 2097 * prj-conf.adb: Minor typo fixes in comment. 2098 20992013-10-10 Thomas Quinot <quinot@adacore.com> 2100 2101 * s-taprop-posix.adb (Compute_Deadline): New local subprogram, 2102 factors common code between Timed_Sleep and Timed_Delay. 2103 21042013-10-10 Robert Dewar <dewar@adacore.com> 2105 2106 * freeze.adb (Freeze_Record_Type): Don't replace others if 2107 expander inactive. This avoids clobbering the ASIS tree in 2108 -gnatct mode. 2109 21102013-10-10 Robert Dewar <dewar@adacore.com> 2111 2112 * sem_res.adb (Resolve_Op_Expon): Avoid crash testing for 2113 fixed-point case in preanalysis mode (error will be caught during 2114 full analysis). 2115 21162013-10-10 Robert Dewar <dewar@adacore.com> 2117 2118 * gnat_rm.texi: Refined_Pre and Refined_Post are now allowed as 2119 assertion identifiers for pragma Assertion_Policy. 2120 * sem_prag.adb (Is_Valid_Assertion_Kind): Add Refined_Pre/Refined_Post 2121 * sem_ch13.adb: Minor reformatting. 2122 21232013-10-10 Pascal Obry <obry@adacore.com> 2124 2125 * prj-conf.adb: Code refactoring. 2126 21272013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2128 2129 * einfo.adb: Remove Integrity_Level from the node usage list. 2130 (Has_Option): Update the implementation to match 2131 the new terminology. 2132 (Has_Property): Renamed to Has_Option. 2133 (Integrity_Level): Removed. 2134 (Is_External_State): New routine. 2135 (Is_Input_Only_State): Use Has_Option to determine whether a state 2136 is Input_Only. (Is_Input_State): Renamed to Is_Input_Only_State. 2137 (Is_Output_Only_State): Use Has_Option to determine whether 2138 a state is Output_Only. 2139 (Is_Output_State): Renamed to 2140 Is_Output_Only_State. 2141 (Is_Volatile_State): Use Has_Option to determine whether a state is 2142 volatile. 2143 (Set_Integrity_Level): Removed. 2144 (Write_Field8): Remove the entry for Integrity_Level. 2145 * einfo.ads: Remove Integrity_Level along with its documentation 2146 and usage in nodes. Rename Is_Input_State to Is_Input_Only_State. 2147 Rename Is_Output_State to Is_Output_Only_State. Update the 2148 documentation of Is_Volatile_State. Update the node structure of 2149 E_Abstract_Entity. 2150 (Integrity_Level): Removed along with pragma Inline. 2151 (Is_External_State): New routine. 2152 (Is_Input_State): Renamed to Is_Input_Only_State. 2153 (Is_Output_State): Renamed to Is_Output_Only_State. 2154 (Set_Integrity_Level): Removed along with pragma Inline. 2155 * sem_prag.adb (Analyze_Pragma): Update the checks regarding 2156 global items and abstract state modes. Update the implementation 2157 of pragma Abstract_State to reflect the new rules and terminology. 2158 * snames.ads-tmpl: Remove the predefined name for Integrity 2159 level. Add new predefined names for Input_Only, Non_Volatile, 2160 Output_Only and Part_Of. 2161 21622013-10-10 Ed Schonberg <schonberg@adacore.com> 2163 2164 * lib-xref.adb (Generate_Reference): Do not generate a reference 2165 within a _postcondition procedure: a proper source reference has 2166 already been generated when pre- analyzing the original aspect 2167 specification, and the use of a formal in a pre/postcondition 2168 should not count as a proper use in a subprogram body. 2169 21702013-10-10 Robert Dewar <dewar@adacore.com> 2171 2172 * sem_eval.adb (Why_Non_Static): Fix bomb for deferred constant 2173 case 2174 21752013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2176 2177 * aspects.adb: Add an entry for Aspect_Refined_Post in table 2178 Canonical_Aspect. 2179 * aspects.ads: Add an entry for Aspect_Refined_Post in tables 2180 Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay, 2181 Aspect_On_Body_Or_Stub_OK. Update the comment on the use of 2182 table Aspect_On_Body_Or_Stub_OK. 2183 * par-prag.adb: Add pragma Refined_Post to the list of pragmas 2184 that do not require special processing by the parser. 2185 * sem_attr.adb (Analyze_Attribute): Add special analysis for 2186 attributes 'Old and 'Result when code generation is disabled and 2187 they appear in aspect/pragma Refined_Post. 2188 (In_Refined_Post): New routine. 2189 * sem_ch6.adb (Analyze_Expression_Function): Move various 2190 aspects and/or pragmas that apply to an expression function to the 2191 corresponding spec or body. 2192 (Collect_Body_Postconditions): New routine. 2193 (Process_PPCs): Use routine Collect_Body_Postconditions 2194 to gather all postcondition pragmas. 2195 * sem_ch10.adb (Analyze_Proper_Body): Use routine 2196 Relocate_Pragmas_To_Body to move all source pragmas that follow 2197 a body stub to the proper body. 2198 (Move_Stub_Pragmas_To_Body): Removed. 2199 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 2200 for aspect Refined_Post. 2201 (Check_Aspect_At_Freeze_Point): Aspect 2202 Refined_Post does not need delayed processing at the freeze point. 2203 * sem_prag.adb: Add an entry for pragma Refined_Post in 2204 table Sig_Flags. 2205 (Analyze_Pragma): Add processing for pragma 2206 Refined_Post. Update the processing of pragma Refined_Pre 2207 to use common routine Analyze_Refined_Pre_Post. 2208 (Analyze_Refined_Pre_Post): New routine. 2209 (Relocate_Pragmas_To_Body): New routine. 2210 * sem_prag.ads: Table Pragma_On_Stub_OK is now known as 2211 Pragma_On_Body_Or_Stub_OK. Update the comment on usage of 2212 table Pragma_On_Body_Or_Stub_OK. 2213 (Relocate_Pragmas_To_Body): New routine. 2214 * snames.ads-tmpl: Add new predefined name for Refined_Post. Add 2215 new Pragma_Id for Refined_Post. 2216 22172013-10-10 Robert Dewar <dewar@adacore.com> 2218 2219 * exp_ch3.adb (Expand_N_Variant_Part): Now null, expansion of 2220 last choice to others is moved to Freeze_Record_Type. 2221 * freeze.adb (Freeze_Record_Type): Expand last variant to others 2222 if necessary (moved here from Expand_N_Variant_Part 2223 22242013-10-10 Robert Dewar <dewar@adacore.com> 2225 2226 * lib-xref-spark_specific.adb, par-ch13.adb, sem_prag.adb, sem_prag.ads, 2227 sem_ch12.adb, sem_attr.adb, sem_ch6.adb, sem_ch13.adb, a-sequio.adb, 2228 s-atocou-builtin.adb: Minor reformatting. 2229 22302013-10-10 Thomas Quinot <quinot@adacore.com> 2231 2232 * s-oscons-tmplt.c (NEED_PTHREAD_CONDATTR_SETCLOCK): This 2233 constant needs to be output to s-oscons.h, as it is tested 2234 by init.c. 2235 22362013-10-10 Robert Dewar <dewar@adacore.com> 2237 2238 * exp_ch3.adb (Expand_N_Variant_Part): Don't expand choices, too early 2239 * exp_ch5.adb (Expand_N_Case_Statement): Use new Has_SP_Choice 2240 flag to avoid expanding choices when not necessary. 2241 * exp_util.adb: Minor reformatting 2242 * freeze.adb (Freeze_Record_Type): Redo expansion of variants 2243 * sem_aggr.adb: Minor reformatting 2244 * sem_case.ads, sem_case.adb: Major rewrite, separating Analysis and 2245 Checking of choices. 2246 * sem_ch3.adb (Analyze_Variant_Part): Rewrite to call new 2247 Analyze_Choices. 2248 * sem_ch4.adb (Analyze_Case_Expression): Call Analyze_Choices 2249 and Check_Choices 2250 * sem_ch5.adb (Analyze_Case_Statement): Call Analyze_Choices 2251 and Check_Choices 2252 * sem_util.adb: Minor reformatting 2253 * sinfo.ads, sinfo.adb (Has_SP_Choice): New flag. 2254 22552013-10-10 Vincent Celier <celier@adacore.com> 2256 2257 * mlib-prj.adb (Build_Library): Do not issue link dynamic 2258 libraries with an Rpath, if switch -R was used. 2259 22602013-10-10 Tristan Gingold <gingold@adacore.com> 2261 2262 * s-stalib.ads (Image_Index_Table_8, Image_Index_Table_16, 2263 Image_Index_Table_32): Remove as not used. 2264 * s-imgint.adb (Image_Integer): Call Set_Image_Integer and 2265 remove duplicated code. 2266 22672013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2268 2269 * sem_prag.adb (Analyze_Pragma): Provide a 2270 more precise error message when pragma Refined_Pre applies to 2271 an expression function that is not a completion. 2272 22732013-10-10 Thomas Quinot <quinot@adacore.com> 2274 2275 * sem_attr.adb (Analyse_Attribute, case 2276 Attribute_Scalar_Storage_Order): a 'Scalar_Storage_Order attribute 2277 reference for a generic type is permitted in GNAT runtime mode. 2278 * a-sequio.adb (Read, Write): Use the endianness of the actual 2279 type to encode length information written to the file. 2280 22812013-10-10 Ed Schonberg <schonberg@adacore.com> 2282 2283 * par-ch13.adb (Aspect_Specifications_Present)): In earlier than 2284 Ada2012 mode, assume that a legal aspect name following "with" 2285 keyword is an older gnat switch and not a misplaced with_clause. 2286 22872013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2288 2289 * aspects.adb: Add an entry for Aspect_Refined_Pre in 2290 table Canonical_Aspect. 2291 (Aspects_On_Body_OK): Renamed to 2292 Aspects_On_Body_Or_Stub_OK. 2293 (Aspects_On_Body_Or_Stub_OK): 2294 Update the query in table Aspect_On_Body_OK. 2295 * aspects.ads: Add an entry for Aspect_Refined_Pre in tables 2296 Aspect_Id, Aspect_Argument, Aspect_Names, Aspect_Delay, 2297 Aspect_On_Body_Or_Stub_OK. Table Aspect_On_Body_OK is now known as 2298 Aspect_On_Body_Or_Stub_OK. Add a section of aspect specifications 2299 that apply to body stubs. 2300 (Aspects_On_Body_OK): Renamed to Aspects_On_Body_Or_Stub_OK. 2301 (Aspects_On_Body_Or_Stub_OK): Update the comment on usage. 2302 * par-prag.adb: Add pragma Refined_Pre to the list of pragmas 2303 that do not require special processing by the parser. 2304 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Delay the 2305 analysis of aspect specifications that apply to a body stub 2306 until the proper body is analyzed. 2307 * sem_ch10.adb: Add with and use clause for Sem_Ch13. 2308 (Analyze_Package_Body_Stub): Set the corresponding spec of the stub. 2309 (Analyze_Proper_Body): Relocate all pragmas that apply 2310 to a subprogram body stub to the declarations of the proper 2311 body. Analyze the aspect specifications of the stub when the 2312 proper body is not present. 2313 (Analyze_Protected_Body_Stub): Set the corresponding spec of the stub. 2314 (Analyze_Task_Body_Stub): Set the corresponding spec of the stub. 2315 (Move_Stub_Pragmas_To_Body): New routine. 2316 * sem_ch13.adb (Analyze_Aspect_Specifications): Add processing 2317 for aspect Refined_Pre. 2318 (Check_Aspect_At_Freeze_Point): Aspect 2319 Refined_Pre does not need delayed processing at the freeze point. 2320 * sem_prag.adb: Remove with and use clause for Snames. Add 2321 an entry for Pragma_Refined_Pre in table Sig_Flags. 2322 (Analyze_Pragma): Add processing for pragma Refined_Pre. 2323 * sem_prag.ads: Add with and use clause for Snames. Add table 2324 Pragma_On_Stub_OK. 2325 * sinfo.adb (Corresponding_Spec_Of_Stub): New routine. 2326 (Set_Corresponding_Spec_Of_Stub): New routine. 2327 * sinfo.ads: Add new attribute Corresponding_Spec_Of_Stub 2328 along with comment on usage and occurrences in nodes. 2329 (Corresponding_Spec_Of_Stub): New routine along with pragma 2330 Inline. 2331 (Set_Corresponding_Spec_Of_Stub): New routine along 2332 with pragma Inline. 2333 * snames.ads-tmpl: Add new predefined name for Refined_Pre. Add 2334 new Pragma_Id for Refined_Pre. 2335 23362013-10-10 Ed Schonberg <schonberg@adacore.com> 2337 2338 * sem_ch12.adb (Analyze_Package_Instantiation, 2339 Analyze_Subprogram_Instantiation): Improve error message when 2340 name in instantiation does not designate a generic unit of the 2341 right kind. 2342 23432013-10-10 Robert Dewar <dewar@adacore.com> 2344 2345 * exp_ch3.adb (Expand_N_Variant_Part): Expand statically 2346 predicated subtype which appears in Discrete_Choices list. 2347 * exp_ch5.adb (Expand_N_Case_Statement): Expand statically 2348 predicated subtype which appears in Discrete_Choices list of 2349 case statement alternative. 2350 * exp_util.ads, exp_util.adb (Expand_Static_Predicates_In_Choices): New 2351 procedure. 2352 * sem_case.adb: Minor reformatting (Analyze_Choices): Don't 2353 expand out Discrete_Choices that are names of subtypes with 2354 static predicates. This is now done in the analyzer so that the 2355 -gnatct tree is properly formed for ASIS. 2356 * sem_case.ads (Generic_Choices_Processing): Does not apply 2357 to aggregates any more, so change doc accordingly, and remove 2358 unneeded Get_Choices argument. 2359 * sem_ch3.adb (Analyze_Variant_Part): Remove no 2360 longer used Get_Choices argument in instantiation of 2361 Generic_Choices_Processing. 2362 * sem_ch4.adb (Analyze_Case_Expression): Remove no 2363 longer used Get_Choices argument in instantiation of 2364 Generic_Choices_Processing. 2365 * sem_ch5.adb (Analyze_Case_Statement): Remove no 2366 longer used Get_Choices argument in instantiation of 2367 Generic_Choices_Processing. 2368 * sinfo.ads: For N_Variant_Part, and N_Case_Statement_Alternative, 2369 document that choices that are names of statically predicated 2370 subtypes are expanded in the code generation tree passed to the 2371 back end, but not in the ASIS tree generated for -gnatct. 2372 23732013-10-10 Ed Schonberg <schonberg@adacore.com> 2374 2375 * sem_ch7.adb: Revert previous change. 2376 23772013-10-10 Gary Dismukes <dismukes@adacore.com> 2378 2379 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): In the case where 2380 the Storage_Pool aspect is specified by an aspect clause and a 2381 renaming is used to capture the evaluation of the pool name, 2382 insert the renaming in front of the aspect's associated entity 2383 declaration rather than in front of the corresponding attribute 2384 definition (which hasn't been appended to the declaration 2385 list yet). 2386 23872013-10-10 Ed Schonberg <schonberg@adacore.com> 2388 2389 * sem_ch6.adb (Is_Interface_Conformant): The controlling type 2390 of the interface operation is obtained from the ultimate alias 2391 of the interface primitive parameter, because that may be in 2392 fact an implicit inherited operation whose signature involves 2393 the type extension and not the desired interface. 2394 23952013-10-10 Ed Schonberg <schonberg@adacore.com> 2396 2397 * par-ch13.adb (Aspect_Specifications_Present): In Ada 2012, 2398 recognize an aspect specification with a misspelled name if it 2399 is followed by a a comma or semicolon. 2400 24012013-10-10 Vadim Godunko <godunko@adacore.com> 2402 2403 * s-atocou.adb, s-atocou.ads, s-atocou-x86.adb, s-atocou-builtin.adb: 2404 Fix copyright notice. 2405 24062013-10-10 Yannick Moy <moy@adacore.com> 2407 2408 * lib-xref-spark_specific.adb (Enclosing_Subprogram_Or_Package): Get 2409 enclosing subprogram for precondition/postcondition/contract cases. 2410 24112013-10-10 Robert Dewar <dewar@adacore.com> 2412 2413 * gnat_rm.texi: Minor fix. 2414 24152013-10-10 Robert Dewar <dewar@adacore.com> 2416 2417 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case 2418 Address): Remove the Comes_From_Source test for the overlap 2419 warning. 2420 24212013-10-10 Robert Dewar <dewar@adacore.com> 2422 2423 * sem_util.adb: Minor code reorganization (use Nkind_In). 2424 * sem_warn.adb: Minor code reorganization (optimization in 2425 Check_Unset_Reference). 2426 * exp_ch9.adb, exp_ch4.adb, sinfo.ads: Minor reformatting. 2427 24282013-10-10 Ed Schonberg <schonberg@adacore.com> 2429 2430 * sem_ch7.adb (Install_Parent_Private_Declarations): When 2431 instantiating a child unit, do not install private declaration of 2432 a non-generic ancestor of the generic that is also an ancestor 2433 of the current unit: its private part will be installed when 2434 private part of ancestor itself is analyzed. 2435 24362013-10-10 Thomas Quinot <quinot@adacore.com> 2437 2438 * freeze.adb (Check_Component_Storage_Order): Retrieve component 2439 aliased status from type entities directly instead of going back 2440 to original component definition. 2441 * sem_ch7.adb: Minor reformatting. 2442 24432013-10-10 Robert Dewar <dewar@adacore.com> 2444 2445 * sem_ch13.adb (Analyze_Aspect_Specifications): For Address 2446 attribute, consider it to be set in source, because of aliasing 2447 considerations. 2448 (Analyze_Attribute_Definition_Clause): For the 2449 purpose of warning on overlays, take into account the aspect case. 2450 24512013-10-10 Robert Dewar <dewar@adacore.com> 2452 2453 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, a-cforse.ads, 2454 a-cofove.ads: Minor reformatting. 2455 24562013-10-10 Arnaud Charlet <charlet@adacore.com> 2457 2458 * gnat_ugn.texi: Remove obsolete mention to -laddr2line. 2459 24602013-10-10 Ed Schonberg <schonberg@adacore.com> 2461 2462 * exp_ch4.adb (Expand_N_Case_Expression): Indicate that the 2463 generated variable used as a target of the expression needs 2464 no initialization. 2465 24662013-10-10 Jose Ruiz <ruiz@adacore.com> 2467 2468 * exp_util.adb (Corresponding_Runtime_Package): Remove the condition 2469 related to No_Dynamic_Attachment which was wrong. Protected types 2470 with interrupt handlers (when not using a restricted profile) 2471 are always treated as protected types with entries, regardless 2472 of the No_Dynamic_Attachment restriction. 2473 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): Simplify the code 2474 using the result of Corresponding_Runtime_Package. 2475 (Install_Private_Data_Declarations): When having 2476 static handlers and a non restricted profile, we use the 2477 type Static_Interrupt_Protection always, so we removed an 2478 extra wrong condition looking at the No_Dynamic_Attachment 2479 restriction. Simplify the code using the result of 2480 Corresponding_Runtime_Package. 2481 (Make_Initialize_Protection): Simplify the code using 2482 the result of Corresponding_Runtime_Package. 2483 (Install_Private_Data_Declaration): The No_Dynamic_Attachment 2484 restriction has nothing to do with static handlers. Remove the extra 2485 erroneous condition that was creating the wrong data type. 2486 24872013-10-10 Hristian Kirtchev <kirtchev@adacore.com> 2488 2489 * sem_util.adb (Is_Object_Reference): Attribute 2490 'Old produces an object reference. 2491 * gnat_rm.texi: Define accessibility level of 2492 X'Update(...) result. 2493 24942013-10-10 Yannick Moy <moy@adacore.com> 2495 2496 * gnat_rm.texi, a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, 2497 a-cforse.ads, a-cofove.ads: Update comment and doc of formal containers 2498 24992013-10-10 Ed Schonberg <schonberg@adacore.com> 2500 2501 * sem_ch13.adb (Analyze_Aspect_Specifications): For Pre/Post 2502 conditions that apply to a subprogram body, preserve the placement 2503 and order of the generated pragmas, which must appear before 2504 other declarations in the body. 2505 25062013-10-10 Bob Duff <duff@adacore.com> 2507 2508 * gnat_ugn.texi: Add gnat2xml doc. 2509 25102013-10-10 Doug Rupp <rupp@adacore.com> 2511 2512 * s-vxwork-arm.ads: Fix interface to FP_CONTEXT. 2513 25142013-10-10 Ed Schonberg <schonberg@adacore.com> 2515 2516 * sem_ch13.adb (Analyze_Aspect_Specification): An aspect Import 2517 on a variable need not have a convention specified, as long as 2518 the implicit convention of the object, obtained from its type, 2519 is Ada or Ada-related. 2520 25212013-10-10 Robert Dewar <dewar@adacore.com> 2522 2523 * cstand.adb (Standard_Unsigned_64): New internal type. 2524 * gnat_rm.texi: Update documentation on To_Address. 2525 * sem_attr.adb (Analyze_Attribute, case To_Address): Fix 2526 problem with out of range static values given as literals or 2527 named numbers. 2528 * stand.ads (Standard_Unsigned_64): New internal type. 2529 * stand.adb: Minor reformatting. 2530 25312013-10-10 Ed Schonberg <schonberg@adacore.com> 2532 2533 * sem_ch4.adb (Analyze_Selected_Component, 2534 Has_Mode_Conformant_Spec): If selected component may be an 2535 indexing of a parameterless call to a protected function, and 2536 expansion is disabled, this is a valid candidate interpretation. 2537 25382013-10-10 Arnaud Charlet <charlet@adacore.com> 2539 2540 * gnat_ugn.texi: Minor editing. 2541 25422013-10-10 Robert Dewar <dewar@adacore.com> 2543 2544 * gnatlink.adb: Minor reformatting. 2545 25462013-10-10 Yannick Moy <moy@adacore.com> 2547 2548 * debug.adb: Free flag d.E and change doc for flag d.K. 2549 25502013-10-10 Ed Schonberg <schonberg@adacore.com> 2551 2552 * sem_prag.adb (Check_Precondition_Postcondition): If the 2553 pragma comes from an aspect spec, and the subprogram is a 2554 library unit, treat as a ppc in a declarative part in ASIS mode, 2555 so that expression in aspect is properly analyzed. In this case 2556 there is no later point at which the aspect specification would 2557 be examined. 2558 25592013-10-10 Bob Duff <duff@adacore.com> 2560 2561 * opt.ads: Minor comment fix. 2562 25632013-10-10 Vadim Godunko <godunko@adacore.com> 2564 2565 * a-coinho-shared.ads, a-coinho-shared.adb: New file. 2566 * s-atocou.ads: Add procedure to initialize counter. 2567 * s-atocou.adb: Likewise. 2568 * s-atocou-builtin.adb: Likewise. 2569 * s-atocou-x86.adb: Likewise. 2570 * gcc-interface/Makefile.in: Select special version of 2571 Indefinite_Holders package on platforms where atomic built-ins 2572 are supported. Update tools target pairs for PikeOS. 2573 25742013-10-10 Robert Dewar <dewar@adacore.com> 2575 2576 * sem_ch3.adb: Minor reformatting. 2577 25782013-10-10 Robert Dewar <dewar@adacore.com> 2579 2580 * sinput-c.adb (Load_File): Ensure Source_Align alignment. 2581 * sinput-d.adb (Create_Debug_Source): Ensure Source_Align alignment. 2582 * sinput-l.adb (Create_Instantiation_Source): Ensure Source_Align 2583 alignment. 2584 (Load_File): Ditto. 2585 * sinput.ads, sinput.adb (Get_Source_File_Index): New optimized (single 2586 line) version. 2587 * types.ads (Source_Align): New definition. 2588 (Source_Buffer): Document new alignment requirement. 2589 25902013-10-10 Robert Dewar <dewar@adacore.com> 2591 2592 * sem_prag.adb (Analyze_Pragma, case Linker_Section): Allow 2593 this for types. 2594 25952013-10-10 Robert Dewar <dewar@adacore.com> 2596 2597 * gnat_rm.texi: Minor adjustment to doc for To_Address attribute. 2598 25992013-10-10 Vadim Godunko <godunko@adacore.com> 2600 2601 * s-stopoo.ads (Root_Storage_Pool): Add pragma 2602 Preelaborable_Initialization. 2603 26042013-09-25 Tom Tromey <tromey@redhat.com> 2605 2606 * gcc-interface/Makefile.in (OUTPUT_OPTION): Define as "-o $@". 2607 26082013-09-18 Eric Botcazou <ebotcazou@adacore.com> 2609 2610 PR ada/58264 2611 * gcc-interface/trans.c (Attribute_to_gnu): Define GNAT_PREFIX local 2612 variable and use it throughout. 2613 <Attr_Length>: Note whether the prefix is the dereference of a pointer 2614 to unconstrained array and, in this case, capture the result for both 2615 Attr_First and Attr_Last. 2616 26172013-09-18 Eric Botcazou <ebotcazou@adacore.com> 2618 2619 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Abstract_State>: New. 2620 26212013-09-18 Eric Botcazou <ebotcazou@adacore.com> 2622 2623 * gcc-interface/trans.c (gigi): Remove dead code. 2624 26252013-09-18 Eric Botcazou <ebotcazou@adacore.com> 2626 2627 * gcc-interface/trans.c (Subprogram_Body_to_gnu): Pop the stack of 2628 return variables for subprograms using the CICO mechanism. 2629 26302013-09-13 Dominique Dhumieres <dominiq@lps.ens.fr> 2631 2632 * gcc-interface/Makefile.in: Fix darwin Filter to match on $target_os, 2633 not $target_cpu. 2634 26352013-09-11 Thomas Schwinge <thomas@codesourcery.com> 2636 Olivier Hainque <hainque@adacore.com> 2637 2638 * gcc-interface/Makefile.in: Import target_cpu, target_vendor, 2639 target_os and their host_ counterparts. Remove host_canonical and 2640 target_cpu_default, unused. Remove local ad-hoc computations of 2641 "host", "targ", "arch", "osys" and "manu". Replace uses of these by 2642 uses of the now imported family, hence back to filters against 2643 canonical values. Remove filters on e500 for target_cpu, expected to 2644 be canonicalized into powerpc. Invert the logic filtering on 64bit 2645 sparc for VxWorks. Simplify the filtering logic for bareboard tools 2646 target pairs, now using straight elf/eabi filters on the target_os 2647 part only. 2648 26492013-09-10 Ed Schonberg <schonberg@adacore.com> 2650 2651 * sem_ch3.adb (Replace_Anonymoous_Access_To_Protected_Subprogram): If 2652 the return type is itself an access to function, recurse to emit 2653 another anonymous type. 2654 * gcc-interface/Make-lang.in: Update dependencies. 2655 26562013-09-10 Robert Dewar <dewar@adacore.com> 2657 2658 * err_vars.ads (Warning_Doc_Switch): Ignored in VMS mode. 2659 * errout.adb (Warning_Doc_Switch): Ignored in VMS mode. 2660 * errout.ads (Warning_Doc_Switch): Ignored in VMS mode. 2661 * inline.ads (Warnings): New component in Pending_Body_Info. 2662 * sem_ch12.adb (Pending_Body_Info): Save and restore warnings 2663 at instantiation point. 2664 * warnsw.adb (Save_Warnings): New function (Restore_Warnings): 2665 New procedure Remove special handling of Warning_Doc_Switch, 2666 cleaner to handle the VMS case in errout, than to introduce 2667 undocumented oddities here. 2668 * warnsw.ads (Warning_Record) : New type. 2669 (Save_Warnings): New function. 2670 (Restore_Warnings): New procedure. 2671 26722013-09-10 Robert Dewar <dewar@adacore.com> 2673 2674 * sinput.adb (Check_For_BOM): Avoid reading past end of file. 2675 26762013-09-10 Robert Dewar <dewar@adacore.com> 2677 2678 * errout.adb (Error_Msg_Ada_2012_Feature): New procedure. 2679 * errout.ads (Error_Msg_Ada_2012_Feature): New procedure. 2680 * inline.ads: Save/Restore Ada_Version_Pragma. 2681 * opt.adb: Save/Restore Ada_Version_Pragma. 2682 * opt.ads (Ada_Version_Pragma): New variable. 2683 * par-ch11.adb, par-ch12.adb, par-ch13.adb, par-ch4.adb, par-ch5.adb, 2684 par-ch6.adb, par-ch8.adb, par-prag.adb: Use Error_Msg_Ada_2012_Feature. 2685 * prj.adb: Initialize Ada_Version_Pragma. 2686 * sem_attr.adb: Use Error_Msg_Ada_2012_Feature. 2687 * sem_ch12.adb, sem_ch8.adb: Save/restore Ada_Version_Pragma. 2688 * sem_prag.adb (Analyze_Pragma, cases Ada_xx): Set Ada_Version_Pragma. 2689 * switch-c.adb: Initialize Ada_Version_Pragma. 2690 * sem_ch12.adb: Minor reformatting. 2691 26922013-09-10 Ed Schonberg <schonberg@adacore.com> 2693 2694 * sem_ch3.adb (Process_Subtype): Discard constraint on access 2695 to class-wide type. Such constraints are not supported and are 2696 considered a language pathology. 2697 26982013-09-10 Robert Dewar <dewar@adacore.com> 2699 2700 * gnatbind.adb: Correct starting date in --version string. 2701 * gnatdll.adb: Use Check_Version_And_Help_G to implement --help 2702 and --version. 2703 * gnatkr.adb: Use Check_Version_And_Help_G to implement --help 2704 and --version. 2705 * gnatlink.adb: Correct starting date in --version string. 2706 * gnatls.adb: Correct starting date in --version string. 2707 * make.adb: Correct starting date in --version string. 2708 27092013-09-10 Robert Dewar <dewar@adacore.com> 2710 2711 * switch-c.adb: Minor reformatting. 2712 * atree.ads (Original_Nodes): Add documentation on ASIS usage. 2713 * sinfo.ads: Add section on ASIS mode (documentation only). 2714 27152013-09-10 Robert Dewar <dewar@adacore.com> 2716 2717 * sem_prag.adb (Analyze_Pragma, case Warnings): Don't allow 2718 REASON parameter in compiler units (bootstrap issues). 2719 27202013-09-10 Robert Dewar <dewar@adacore.com> 2721 2722 * gnat1drv.adb (Adjust_Global_Switches): Output warning if 2723 -gnateE specified for a target that does not support it. 2724 27252013-09-10 Ed Schonberg <schonberg@adacore.com> 2726 2727 * sem_prag.adb (Analyze_Pragma, case SPARK_Mode): Handle properly 2728 a subprogram body without previous spec. 2729 27302013-09-10 Gary Dismukes <dismukes@adacore.com> 2731 2732 * sem_ch4.adb: Minor typo fixes. 2733 27342013-09-10 Hristian Kirtchev <kirtchev@adacore.com> 2735 2736 * aspects.adb (Aspects_On_Body_OK): New routine. 2737 * aspects.ads: Modify type Aspect_Expression to include 2738 the Optional_XXX variants. Update the contents of 2739 table Aspect_Argument. Add table Aspect_On_Body_OK. 2740 (Aspects_On_Body_OK): New routine. 2741 * par-ch13.adb (Get_Aspect_Specifications): Account for optional 2742 names and expressions when parsing an aspect. 2743 * sem_ch6.adb: Add with and use clause for Aspects. 2744 (Analyze_Subprogram_Body_Helper): Do not emit an error when 2745 analyzing a body with aspects that can be applied simultaneously 2746 to both spec and body. 2747 * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the 2748 corresponding pragma of an aspect that applies to a subprogram 2749 body in the declarative part. 2750 (Make_Aitem_Pragma): Do not generate a pragma with an empty argument 2751 list. 2752 27532013-09-10 Robert Dewar <dewar@adacore.com> 2754 2755 * switch-c.adb: Diagnose -gnatc given after -gnatRm. 2756 * gnat_ugn.texi: Add documentation for -gnatRm. 2757 * usage.adb: Minor reorganization (put style entries in proper 2758 order) Document -gnatRm switch. 2759 * sinfo.ads: Minor comment fix. 2760 27612013-09-10 Sergey Rybin <rybin@adacore.com frybin> 2762 2763 * tree_io.ads: Update ASIS_Version_Number. 2764 27652013-09-10 Ed Schonberg <schonberg@adacore.com> 2766 2767 * sem_ch3.adb (Access_Subprogram_Declaration): Check whether the 2768 designated type can appear in a parameterless call. 2769 * sem_ch4.adb (Analyze_Call): Do not insert an explicit dereference 2770 in the case of an indirect call through an access function that 2771 returns an array type. 2772 (Analyze_One_Call): Handle properly legal parameterless calls 2773 whose result is indexed, in constructs of the for F.all (I) 2774 * sem_ch6.ads (May_Need_Actuals): Make public, for use on access 2775 to subprogram types. 2776 * sem_res.adb (Resolve_Call): If the call is indirect, there is 2777 no entity to set on the name in the call. 2778 27792013-09-10 Hristian Kirtchev <kirtchev@adacore.com> 2780 2781 * aspects.adb: Add entries in the Has_Aspect_Specifications_Flag 2782 table for package body and body stubs. 2783 (Move_Or_Merge_Aspects): New routine. 2784 (Remove_Aspects): New routine. 2785 * aspects.ads (Move_Aspects): Update comment on usage. 2786 (Move_Or_Merge_Aspects): New routine. 2787 (Remove_Aspects): New routine. 2788 * par-ch3.adb: Update the grammar of private_type_declaration, 2789 private_extension_declaration, object_renaming_declaration, 2790 and exception_renaming_declaration. 2791 (P_Subprogram): Parse the 2792 aspect specifications that apply to a body stub. 2793 * par-ch6.adb: Update the grammar of subprogram_body_stub and 2794 generic_instantiation. 2795 * par-ch7.adb: Update the grammar of package_declaration, 2796 package_specification, package_body, package_renaming_declaration, 2797 package_body_stub. 2798 (P_Package): Parse the aspect specifications 2799 that apply to a body, a body stub and package renaming. 2800 * par-ch9.adb: Update the grammar of entry_declaration, 2801 protected_body, protected_body_stub, task_body, 2802 and task_body_stub. 2803 (P_Protected): Add local variable 2804 Aspect_Sloc. Add local constant Dummy_Node. Parse the aspect 2805 specifications that apply to a protected body and a protected 2806 body stub. 2807 (P_Task): Add local variable Aspect_Sloc. Add local 2808 constant Dummy_Node. Parse the aspect specifications that apply 2809 to a task body and a task body stub. 2810 * par-ch12.adb: Update the grammar of 2811 generic_renaming_declaration. 2812 (P_Generic): Parse the aspect 2813 specifications that apply to a generic renaming. 2814 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not emit 2815 an error when analyzing aspects that apply to a body stub. Such 2816 aspects are relocated to the proper body. 2817 * sem_ch7.adb (Analyze_Package_Body_Helper): Analyze the aspect 2818 specifications that apply to a body. 2819 * sem_ch9.adb (Analyze_Protected_Body): Warn about user-defined 2820 aspects not being supported on protected bodies. Remove the 2821 aspect specifications. (Analyze_Single_Protected_Declaration): 2822 Analyze the aspects that apply to a single protected declaration. 2823 (Analyze_Task_Body): Warn about user-defined aspects not being 2824 supported on task bodies. Remove the aspect specifications. 2825 * sem_ch10.adb: Add with and use clause for Aspects. 2826 (Analyze_Package_Body_Stub): Propagate the aspect specifications 2827 from the stub to the proper body. 2828 * sem_ch13.adb (Analyze_Aspect_Specifications): Insert the 2829 corresponding pragma of an aspect that applies to a body in the 2830 declarations of the body. 2831 * sinfo.ads: Update the gramma of expression_function, 2832 private_type_declaration, private_extension_declaration, 2833 object_renaming_declaration, exception_renaming_declaration, 2834 package_renaming_declaration, subprogram_renaming_declaration, 2835 generic_renaming_declaration, entry_declaration, 2836 subprogram_body_stub, package_body_stub, task_body_stub, 2837 generic_subprogram_declaration. 2838 28392013-09-10 Hristian Kirtchev <kirtchev@adacore.com> 2840 2841 * sem_prag.adb (Analyze_Pragma): Add processing 2842 for aspect/pragma SPARK_Mode when it applies to a [library-level] 2843 subprogram or package [body]. 2844 28452013-09-10 Robert Dewar <dewar@adacore.com> 2846 2847 * gnat_ugn.texi: Document that -gnatc and -gnatR cannot be 2848 given together. 2849 * switch-c.adb (Scan_Front_End_Switches): Give error if both 2850 -gnatR and -gnatc given. 2851 28522013-09-10 Robert Dewar <dewar@adacore.com> 2853 2854 * g-table.ads, g-table.adb (For_Each): New generic procedure 2855 (Sort_Table): New generic procedure. 2856 28572013-09-10 Thomas Quinot <quinot@adacore.com> 2858 2859 * adaint.c (__gnat_is_executable_file_attr): Should be true 2860 for an executable regular file only only (not for a directory 2861 that has the executable permission). 2862 28632013-09-10 Ed Schonberg <schonberg@adacore.com> 2864 2865 * sem_res.adb: Further work on operator calls in ASIS. 2866 28672013-09-10 Yannick Moy <moy@adacore.com> 2868 2869 * sinfo.ads, sem_prag.ads, sem_ch13.adb: Minor correction and comment 2870 update. 2871 28722013-09-10 Thomas Quinot <quinot@adacore.com> 2873 2874 * aspects.ads, sem_ch13.adb: Minor reformatting. 2875 * adaint.c (__gnat_set_close_on_exec): Add comment documenting 2876 that this routine is shared between OS_Lib and Sockets. 2877 28782013-09-10 Robert Dewar <dewar@adacore.com> 2879 2880 * exp_prag.adb (Expand_Pragma_Check): Ignore pragma if Is_Ignored set. 2881 * sem_ch13.adb (Make_Aitem_Pragma): Set Is_Checked if needed. 2882 * sem_prag.adb (Check_Kind): Moved from spec (Analyze_Pragma): 2883 Make sure Is_Ignored/Is_Checked are set right (Analyze_Pragma, 2884 case Check): Ditto (Check_Applicable_Policy): Handle 2885 Statement_Assertion case Throughout, set and check the Is_Checked 2886 flag as appropriate. 2887 * sem_prag.ads (Check_Kind): Moved to body. 2888 * sinfo.ads, sinfo.adb (Is_Checked): New flag. 2889 28902013-09-10 Robert Dewar <dewar@adacore.com> 2891 2892 * aspects.ads (Delay_Type): New type (Aspect_Delay): New table. 2893 * einfo.adb (Has_Delayed_Rep_Aspects): New flag 2894 (May_Inherit_Delayed_Rep_Aspects): New flag (Rep_Clause): Removed 2895 (use Get_Attribute_Representation_Clause). 2896 * einfo.ads (Has_Delayed_Rep_Aspects): New flag 2897 (May_Inherit_Delayed_Rep_Aspects): New flag 2898 * freeze.adb: Minor reformatting 2899 * sem_ch13.adb (Analyze_Aspect_Speficifications): Redo 2900 handling of delayed evaluation, including optimizing some cases 2901 and avoiding delays. 2902 (Analyze_Aspects_At_Freeze_Point): Now 2903 handled inheriting delayed rep aspects for type derivation case. 2904 (Inherit_Delayed_Rep_Aspects): New procedure 2905 * sem_ch13.ads (Analyze_Aspects_At_Freeze_Point): Now handled 2906 inheriting delayed rep aspects for type derivation case. 2907 * sem_ch3.adb (Build_Derived_Type): Set 2908 May_Inherit_Derived_Rep_Aspects if parent type flag 2909 Has_Delayed_Rep_Aspects is set 2910 29112013-09-10 Robert Dewar <dewar@adacore.com> 2912 2913 * errout.adb (Finalize): Don't delete real errors with specific 2914 warning control. 2915 29162013-09-10 Ed Schonberg <schonberg@adacore.com> 2917 2918 * exp_ch9.adb (Expand_N_Timed_Entry_Call, 2919 Expand_N_Conditional_Entry_Call, Expand_N_Asynchronous_Select): 2920 Handle properly a trigger that is a call to a primitive operation 2921 of a type that implements a limited interface, if the type itself 2922 is not limited. 2923 29242013-09-10 Robert Dewar <dewar@adacore.com> 2925 2926 * sem_ch3.adb, sinfo.ads, exp_ch9.adb, sem_prag.adb, sem_ch12.adb, 2927 exp_ch4.adb, sprint.adb: Minor reformatting. 2928 29292013-09-10 Yannick Moy <moy@adacore.com> 2930 2931 * sinfo.ads: Document splitting of pre/post in N_Contract description. 2932 29332013-09-10 Ed Schonberg <schonberg@adacore.com> 2934 2935 * exp_ch4.adb (Expand_N_Op_Multiply): If the operation is of the 2936 form X * 2 ** N and it has been marked Is_Power_Of_2_For_Shift, 2937 add a mod operation if the result type is a binary modular type. 2938 29392013-09-10 Hristian Kirtchev <kirtchev@adacore.com> 2940 2941 * sem_prag.adb (Check_Mode_Restriction_In_Enclosing_Context): Add local 2942 variable Context. Remove local variable Subp_Id. Start the 2943 context traversal from the current subprogram rather than the 2944 current scope. Update the scope traversal and error reporting. 2945 29462013-09-10 Ed Schonberg <schonberg@adacore.com> 2947 2948 * exp_ch9.adb (Expand_N_Timed_Entry_Call): New procedure 2949 Rewrite_Triggering_Statements, to encapsulate the statements that 2950 follow the trigger of the entry call. This procedure is needed 2951 when the trigger is a dispatching call, because the expansion 2952 requires several copies of those statements. The procedure is 2953 more efficient, and preserves non-local references when the 2954 construct is within an instance. 2955 29562013-09-10 Ed Schonberg <schonberg@adacore.com> 2957 2958 * sem_ch12.adb (Analyze_Package_Instantiation): If the 2959 instantiation is a compilation unit, analyze aspects before 2960 analyzing the package declaration for the instance. 2961 * sem_ch13.adb (Analyze_Aspect_Specifications): If the 2962 corresponding node is a package instantiation, insert generated 2963 pragmas at the head of visible declarations. 2964 * sem_prag.adb (Analyze_Pragma, case Preelaborate): In an instance 2965 do not ignore the pragma if it comes from an aspect specification 2966 in the instance, and not from the generic unit. 2967 * sprint.adb (Sprint_Node_Actual): For a package declaration that 2968 is an instantiation, print aspects after declaration. 2969 29702013-09-10 Robert Dewar <dewar@adacore.com> 2971 2972 * einfo.adb, sem_prag.adb, rtsfind.ads: Minor reformatting. 2973 29742013-09-10 Hristian Kirtchev <kirtchev@adacore.com> 2975 2976 * sem_prag.adb (Get_SPARK_Mode_Id): Handle the 2977 case where the pragma may appear without an argument. 2978 (Analyze_Global_List): Add expanded_name to the list of constructs 2979 that denote a single item. 2980 (Collect_Global_List): Add expanded_name to the list of constructs 2981 that denote a single item. 2982 29832013-09-10 Hristian Kirtchev <kirtchev@adacore.com> 2984 2985 * exp_ch4.adb (Apply_Accessibility_Check): Add local constant 2986 Pool_Id and local variables Fin_Call and Free_Stmt. Finalize 2987 and deallocate a heap-allocated class-wide object after it 2988 has been determined that it violates the accessibility rules. 2989 * rtsfind.ads: Add new RTU_Id for System.Memory. Add new RE_Id 2990 and entry in RE_Unit_Table for RE_Free. 2991 29922013-09-01 Eric Botcazou <ebotcazou@adacore.com> 2993 Iain Sandoe <iain@codesourcery.com> 2994 2995 PR ada/58239 2996 * gcc-interface/Makefile.in (GCC_LINK_FLAGS): Add -static-libstdc++. 2997 (GCC_LINK): Use CXX instead of CC. 2998 * gcc-interface/Make-lang.in (CXX_LFLAGS): New. 2999 (ADA_TOOLS_FLAGS_TO_PASS): Pass CXX, and CXX_LFLAGS for native. 3000 30012013-08-13 Eric Botcazou <ebotcazou@adacore.com> 3002 3003 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not bother about alias 3004 sets of derived types in ASIS mode. 3005 30062013-08-13 Eric Botcazou <ebotcazou@adacore.com> 3007 3008 * gcc-interface/decl.c (gnat_to_gnu_entity): Replace True with true. 3009 (is_cplusplus_method): Likewise, and False with false. 3010 (components_need_strict_alignment): Likewise. 3011 * gcc-interface/misc.c (gnat_init_gcc_fp): Likewise. 3012 * gcc-interface/trans.c (Loop_Statement_to_gnu): Likewise. 3013 (Handled_Sequence_Of_Statements_to_gnu): Likewise. 3014 (add_cleanup): Likewise. 3015 (Sloc_to_locus1): Likewise. 3016 (Sloc_to_locus): Likewise. 3017 (set_expr_location_from_node): Likewise. 3018 * gcc-interface/utils.c (potential_alignment_gap): Likewise. 3019 30202013-08-13 Thomas Quinot <quinot@adacore.com> 3021 3022 * gcc-interface/trans.c (set_end_locus_from_node): Clear column info 3023 for the end_locus of a block if it does not come from an End_Label. 3024 30252013-08-13 Thomas Quinot <quinot@adacore.com> 3026 3027 * gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If 3028 there is no End_Label, attach cleanup actions to the sloc of the HSS 3029 node instead. 3030 (Exception_Handler_to_gnu_zcx): Associate cleanup actions with the sloc 3031 of the handler itself. 3032 (add_cleanup): Clear column information in sloc of cleanup actions. 3033 (Sloc_to_locus1): New static function. 3034 (Sloc_to_locus): Call it. 3035 (set_expr_location_from_node1): New static function. 3036 (set_expr_location_from_node): Call it. 3037 30382013-08-13 Eric Botcazou <ebotcazou@adacore.com> 3039 3040 * gcc-interface/trans.c (Call_to_gnu): Deal with specific conditional 3041 expressions for misaligned actual parameters. 3042 30432013-08-13 Eric Botcazou <ebotcazou@adacore.com> 3044 3045 * gcc-interface/trans.c (can_equal_min_or_max_val_p): Be prepared for 3046 values outside of the range of the type. 3047 30482013-08-13 Eric Botcazou <ebotcazou@adacore.com> 3049 3050 * gcc-interface/utils2.c (build_atomic_load): Do a mere view-conversion 3051 to the original type before converting to the result type. 3052 (build_atomic_store): First do a conversion to the original type before 3053 view-converting to the effective type, but deal with a padded type 3054 specially. 3055 30562013-08-08 Eric Botcazou <ebotcazou@adacore.com> 3057 3058 * gcc-interface/Makefile.in (TOOLS_LIBS): Pick C object files from the 3059 compiler build and use standard library variables. 3060 (../../vxaddr2line$(exeext): Do not depend on targext.o and adjust. 3061 (gnatmake-re): Do not depend on targext.o. 3062 (gnatlink-re): Do not depend on link.o and targext.o. 3063 (../../gnatmake$(exeext): Likewise. 3064 (../../gnatlink$(exeext): Likewise. 3065 30662013-07-21 OndÅej BÃlka <neleai@seznam.cz> 3067 3068 * gcc-interface/gigi.h: Fix typos. 3069 * gcc-interface/trans.c: Likewise. 3070 * gcc-interface/utils2.c: Likewise. 3071 * gnat_rm.texi: Likewise. 3072 * gnat_ugn.texi: Likewise. 3073 * raise-gcc.c: Likewise. 3074 * sigtramp-ppcvxw.c: Likewise. 3075 * sysdep.c: Likewise. 3076 * terminals.c: Likewise. 3077 30782013-07-20 Eric Botcazou <ebotcazou@adacore.com> 3079 3080 PR ada/57934 3081 * gcc-interface/ada.h (CAT): Fix typo. 3082 30832013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3084 3085 * einfo.adb (Get_Pragma): Handle the retrieval of delayed 3086 pragmas stored in N_Contract nodes. 3087 * einfo.ads (Get_Pragma): Update the comment on usage. 3088 * sem_prag.adb (Check_Precondition_Postcondition): Retain a copy 3089 of the pragma when it applies to a body that acts as a spec. The 3090 copy is preanalyzed and chained on the contract of the body. 3091 30922013-07-08 Robert Dewar <dewar@adacore.com> 3093 3094 * rtsfind.adb: Minor comment fix. 3095 30962013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3097 3098 * sem_ch4.adb (Check_Ghost_Subprogram_Call): Do not check the placement 3099 of a Ghost function call when the enclosing context is being 3100 preanalyzed. 3101 31022013-07-08 Ed Schonberg <schonberg@adacore.com> 3103 3104 * exp_ch6.adb (Expand_Inlined_Call, Process_Formals): If the 3105 expression in a return statement is a numeric literal, qualify 3106 it with the return type for proper resolution. 3107 31082013-07-08 Robert Dewar <dewar@adacore.com> 3109 3110 * sem.ads: Minor comment updates. 3111 * s-restri.ads, exp_ch6.adb, lib-load.ads, exp_ch3.adb, sem_ch10.adb: 3112 Minor reformatting. 3113 31142013-07-08 Robert Dewar <dewar@adacore.com> 3115 3116 * exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry 3117 for Restriction_Set. 3118 * gnat_rm.texi: Add missing menu entry for Attribute Ref Add 3119 documentation for attribute Restriction_Set. 3120 * lib-writ.adb (Write_With_Lines): Generate special W lines 3121 for Restriction_Set. 3122 * lib-writ.ads: Document special use of W lines for 3123 Restriction_Set. 3124 * lib.ads (Restriction_Set_Dependences): New table. 3125 * par-ch4.adb (Is_Parameterless_Attribute): Add Loop_Entry to 3126 list (Scan_Name_Extension_Apostrophe): Remove kludge test for 3127 Loop_Entry (Scan_Name_Extension_Apostrophe): Handle No_Dependence 3128 for Restricton_Set. 3129 * restrict.adb (Check_SPARK_Restriction): Put in Alfa order 3130 (OK_No_Dependence_Unit_Name): New function. 3131 * restrict.ads (OK_No_Dependence_Unit_Name): New function. 3132 * rtsfind.adb: Minor reformatting Minor code reorganization. 3133 * sem_attr.adb (Analyze_Attribute): Add processing for 3134 Restriction_Set. 3135 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): 3136 Remove Check_Unit_Name and use new function 3137 OK_No_Dependence_Unit_Name instead. 3138 * sinfo.ads: Minor comment updates. 3139 * snames.ads-tmpl: Add entry for Restriction_Set attribute. 3140 31412013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3142 3143 * exp_ch4.adb (Apply_Accessibility_Check): Remove local constant 3144 Pool_Id and local variable Free_Stmt. Do not deallocate the faulty 3145 object as "free" is not available on all targets/profiles. 3146 31472013-07-08 Robert Dewar <dewar@adacore.com> 3148 3149 * sem_ch13.adb (Analyze_Aspect_Specifications): Handle 3150 Storage_Size aspect for task type in case discriminant is 3151 referenced. 3152 (Analyze_Attribute_Definition_Clause): Do not flag Storage_Size 3153 attribute definition clause as obsolescent if from aspect. 3154 31552013-07-08 Robert Dewar <dewar@adacore.com> 3156 3157 * gnat_rm.texi: Add documentation for Img returning a function. 3158 * par-prag.adb: Minor reformatting. 3159 * restrict.adb: Minor reformatting and code reorganization. 3160 31612013-07-08 Ed Schonberg <schonberg@adacore.com> 3162 3163 * sem_res.adb: add guard to ASIS transform. 3164 31652013-07-08 Ed Schonberg <schonberg@adacore.com> 3166 3167 * exp_ch9.adb (Expand_N_Asynchronous_Select): If the trigger 3168 of the asynchronous select is a dispatching call, transform the 3169 abortable part into a procedure, to avoid duplication of local 3170 loop variables that may appear within. 3171 31722013-07-08 Vincent Celier <celier@adacore.com> 3173 3174 * projects.texi: Update the documentation of suffixes in package 3175 Naming. 3176 31772013-07-08 Ed Schonberg <schonberg@adacore.com> 3178 3179 * sem_ch6.adb (Conforming_Types): Anonymous_access_to_subprograsm 3180 types are type conformant if the designated type of one is 3181 protected and the other is not. Convention only matters when 3182 checking subtype conformance. 3183 31842013-07-08 Ed Schonberg <schonberg@adacore.com> 3185 3186 * sem_res.adb (Make_Call_Into_Operator): In ASIS mode, propagate 3187 back the fully resolved operands to the original function call 3188 so that all semantic information remains available to ASIS. 3189 31902013-07-08 Ed Schonberg <schonberg@adacore.com> 3191 3192 * sem_ch4.adb: minor reformatting (remove obsolete comment). 3193 * sem_ch9.adb: improve error message on illegal trigger. 3194 31952013-07-08 Robert Dewar <dewar@adacore.com> 3196 3197 * sem_prag.adb: Minor reformatting. 3198 31992013-07-08 Robert Dewar <dewar@adacore.com> 3200 3201 * gnatcmd.adb: Minor reformatting. 3202 32032013-07-08 Robert Dewar <dewar@adacore.com> 3204 3205 * targparm.adb (Get_Target_Parameters): Recognize pragma 3206 Partition_Elaboration_Policy. 3207 32082013-07-08 Robert Dewar <dewar@adacore.com> 3209 3210 * gnat_ugn.texi: Minor update to mention partition elaboration policy. 3211 32122013-07-08 Ed Schonberg <schonberg@adacore.com> 3213 3214 * sem_ch4.adb (Comple_Object_Operation): Revert previous change. 3215 (Analyze_Indexed_Component_Form): In ASIS mode, if node has been 3216 transformed but not rewritten as a function call (as is the case 3217 in a generic), analyze it as such. 3218 32192013-07-08 Thomas Quinot <quinot@adacore.com> 3220 3221 * gnat_rm.texi: Minor rewording: add missing word "operators" 3222 in documentation for restriction No_Direct_Boolean_Operator. 3223 32242013-07-08 Robert Dewar <dewar@adacore.com> 3225 3226 * errout.adb (Set_Msg_Txt): No longer sets Is_Style_Msg, 3227 Is_Warning_Msg, or Is_Unconditional_Msg (all are set elsewhere 3228 now). 3229 * errout.ads: Insertions ! and !! no longer have to be at the 3230 end of the message, they can be anywhere in the message. 3231 * erroutc.adb (Test_Style_Warning_Serious_Unconditional_Msg): 3232 Replaces Test_Style_Warning_Serious_Msg 3233 * erroutc.ads (Has_Double_Exclam): New flag New comments for 3234 existing flags (Test_Style_Warning_Serious_Unconditional_Msg): 3235 Replaces Test_Style_Warning_Serious_Msg 3236 * errutil.adb (Test_Style_Warning_Serious_Unconditional_Msg): 3237 Replaces Test_Style_Warning_Serious_Msg 3238 32392013-07-08 Robert Dewar <dewar@adacore.com> 3240 3241 * par-prag.adb (Process_Restrictions_Or_Restriction_Warnings): 3242 Recognize SPARK_05 as synonym for SPARK in restrictions pragma. 3243 * restrict.ads, restrict.adb (SPARK_Hides): Table moved to body, only 3244 referenced there. 3245 * scng.adb, sem_ch3.adb, sem_ch4.adb, sem_ch5.adb, sem_ch8.adb, 3246 sem_res.adb, sem_util.adb: Use restriction SPARK_05 instead of SPARK. 3247 * snames.ads-tmpl (Name_No_Obsolescent_Features): New entry. 3248 32492013-07-08 Vincent Celier <celier@adacore.com> 3250 3251 * gnatcmd.adb (Check_Files): Use a response file for gnatls 3252 when possible. 3253 32542013-07-08 Gary Dismukes <dismukes@adacore.com> 3255 3256 * freeze.adb: Minor typo fixes. 3257 32582013-07-08 Robert Dewar <dewar@adacore.com> 3259 3260 * gnat_rm.texi: Document SPARK_05 (replaces SPARK) Document 3261 obsolete recognition of SPARK Document all other obsolete synonyms 3262 for old restrictions. 3263 * restrict.adb (Check_SPARK_Restriction): SPARK_05 replaces 3264 SPARK (Process_Restriction_Synonyms): Handle SPARK as synonym 3265 for SPARK_05. 3266 * restrict.ads: Restriction SPARK_05 replaces SPARK. 3267 * s-rident.ads: Replace restriction SPARK by SPARK_05 Add SPARK 3268 as synonym for SPARK_05. 3269 * sem_prag.adb: Minor reformatting. 3270 * snames.ads-tmpl: Add entries for Name_SPARK and Name_SPARK_05. 3271 32722013-07-08 Robert Dewar <dewar@adacore.com> 3273 3274 * sem_dim.adb: Minor error message change. 3275 * freeze.adb (Freeze_Entity, array type case): Extend handling 3276 of Implicit_Packing to handle multi-dimensional array case. 3277 * gnat_rm.texi: Update doc on Implicit_Packing. 3278 32792013-07-08 Robert Dewar <dewar@adacore.com> 3280 3281 * exp_ch4.adb: Minor reformatting. 3282 32832013-07-08 Ed Schonberg <schonberg@adacore.com> 3284 3285 * sem_ch4.adb (Complete_Object_Operation): In ASIS mode, if 3286 the parent node is a selected component and the analysis as a 3287 call is successful, set the type of the selector in the parent 3288 node for subsequent checks, because the rewriting of the node 3289 does not take place during pre-analysis. 3290 32912013-07-08 Robert Dewar <dewar@adacore.com> 3292 3293 * sem_ch8.adb, exp_ch3.adb: Minor reformatting. 3294 32952013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3296 3297 * exp_ch4.adb (Expand_N_Op_Eq): When comparing two 3298 Bounded_Strings, use the predefined equality function of the 3299 root Super_String type. 3300 33012013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3302 3303 * exp_ch4.adb (Create_Alternative): Removed. 3304 (Expand_N_If_Expression): Remove constant 3305 In_Case_Or_If_Expression. Add local variable 3306 Ptr_Typ. Inspect the "then" and "else" action lists 3307 for transient controlled objects and generate code to 3308 finalize them. (Is_Controlled_Function_Call): Removed. 3309 (Process_Action): Update the comment on usage. Update the call 3310 to Process_Transient_Object. There is no need to continue the 3311 traversal of the object itself. 3312 (Process_Actions): New routine. 3313 (Process_Transient_Object): Moved to the top level of Exp_Ch4. Add 3314 a new formal and update the related comment on usage. 3315 * exp_util.adb (Within_Case_Or_If_Expression): Start the search 3316 from the parent of the node. 3317 33182013-07-08 Robert Dewar <dewar@adacore.com> 3319 3320 * a-cusyqu.ads, a-cbprqu.ads, s-interr.ads, a-cuprqu.ads, 3321 a-cbsyqu.ads: Minor reformatting (proper formatting of overriding). 3322 33232013-07-08 Ed Schonberg <schonberg@adacore.com> 3324 3325 * sem_ch8.adb (Attribute_Renaming): Treat 'Img as an attribute 3326 that can be renamed as a function. 3327 33282013-07-08 Thomas Quinot <quinot@adacore.com> 3329 3330 * g-socket.ads: Document target dependency: FIONBIO may or may not 3331 be inherited from listening socket by accepted socket. 3332 33332013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3334 3335 * exp_ch4.adb (Apply_Accessibility_Check): Do not deallocate the object 3336 on targets that can't deallocate. 3337 33382013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3339 3340 * exp_ch3.adb (Freeze_Type): Generate a 3341 subpools-related accessibility check only on profiles that 3342 include the corresponding library unit. 3343 33442013-07-08 Gary Dismukes <dismukes@adacore.com> 3345 3346 * sem_ch8.adb: Minor typo fixes. 3347 33482013-07-08 Javier Miranda <miranda@adacore.com> 3349 3350 * sem_ch8.adb (Save_Scope_Stack): Adding documentation. 3351 (Restore_Scope_Stack): Remove the elements of the list when the 3352 visibility of each entity is restored. 3353 33542013-07-08 Robert Dewar <dewar@adacore.com> 3355 3356 * exp_ch9.adb, sem.ads, sem_util.adb: Minor reformatting. 3357 33582013-07-08 Robert Dewar <dewar@adacore.com> 3359 3360 * sem_ch8.adb, sem_ch8.ads: Minor reformatting. 3361 33622013-07-08 Gary Dismukes <dismukes@adacore.com> 3363 3364 * gnat_rm.texi: Minor reformatting and rewording for consistency. 3365 33662013-07-08 Bob Duff <duff@adacore.com> 3367 3368 * exp_ch3.adb (Build_Master): If Desig_Type is an incomplete 3369 view coming from a limited-with'ed package, use the nonlimited 3370 view in case it has tasks. 3371 33722013-07-08 Javier Miranda <miranda@adacore.com> 3373 3374 * sem_ch8.ad[sb] (Save_Scope_Stack): Modified to return the list 3375 of entities which have been temporarily removed from immediate 3376 visibility. 3377 (Restore_Scope_Stack): Modified to receive an 3378 additional parameter with the list of entities whose immediate 3379 visibility must be restored. 3380 * sem.adb (Do_Analyze): Use new version of 3381 Save_Scope_Stack/Restore_Scope_Stack 3382 * sem_ch12.adb (Inline_Instance_Body): Use new version of 3383 Save_Scope_Stack and Restore_Scope_Stack 3384 33852013-07-08 Hristian Kirtchev <kirtchev@adacore.com> 3386 3387 * sem_prag.adb (Analyze_Pragma): Remove 3388 variable Unit_Prag. Remove the check on duplicate mode for the 3389 configuration form of the pragma. 3390 (Redefinition_Error): Removed. 3391 33922013-07-08 Robert Dewar <dewar@adacore.com> 3393 3394 * lib.ads, gnat_rm.texi, einfo.ads, sem_ch13.adb: Minor reformatting 3395 and editing. 3396 33972013-07-08 Ed Schonberg <schonberg@adacore.com> 3398 3399 * sem_prag.adb (Analyze_PPC_In_Decl_Part): In ASIS mode, 3400 pre-analyze only the original expression attached to the source 3401 aspect, not the relocated expression of the pragma, to prevent 3402 malformed trees in ASIS mode. 3403 * sem_ch13.adb (Analyze_Aspect_Specifications): Revert previous 3404 patch: the expression in the aspect for pre/post must be relocated 3405 to the pragma for proper analysis. 3406 34072013-07-05 Hristian Kirtchev <kirtchev@adacore.com> 3408 3409 * aspects.adb: Add an entry for SPARK_Mode in table Canonical_Aspect. 3410 * aspects.ads: Add an entry for SPARK_Mode in tables Aspect_Id, 3411 Aspect_Argument, Aspect_Names. 3412 * atree.adb (Node32): New routine. 3413 (Set_Node32): New routine. 3414 * atree.ads (Node32): New routine. 3415 (Set_Node32): New routine. 3416 * einfo.adb: Node32 is now used as SPARK_Mode_Pragmas. 3417 (Set_SPARK_Mode_Pragmas): New routine. 3418 (SPARK_Mode_Pragmas): New routine. 3419 (Write_Field32_Name): Add and entry for SPARK_Modes. 3420 * einfo.ads: Add attribute SPARK_Mode_Pragmas along with usage 3421 in various entities. 3422 (Set_SPARK_Mode_Pragmas): New routine and 3423 pragma Inline. 3424 (SPARK_Mode_Pragmas): New routine and pragma Inline. 3425 * gnat_rm.texi: Add sections explaining the syntax and semantics 3426 of aspect/pragma SPARK_Mode. 3427 * gnat_ugn.texi: Add pragma SPARK_Mode to the list of 3428 configuration pragmas. 3429 * lib.adb (Set_SPARK_Mode_Pragma): New routine. 3430 (SPARK_Mode_Pragma): New routine. 3431 * lib.ads: Alphabetize the comments on fields of record 3432 Unit_Record. Add new field SPARK_Mode_Pragma along with 3433 comment on its usage. Update the layout of record Unit_Record. 3434 (Set_SPARK_Mode_Pragma): New routine and pragma Inline. 3435 (SPARK_Mode_Pragma): New routine and pragma Inline. 3436 * lib-load.adb (Create_Dummy_Package_Unit): Initialize 3437 field SPARK_Mode_Pragma. 3438 (Load_Main_Source): Initialize field SPARK_Mode_Pragma. 3439 (Load_Unit): Initialize field SPARK_Mode_Pragma. 3440 * lib-writ.adb (Add_Preprocessing_Dependency): Initialize field 3441 SPARK_Mode_Pragma. 3442 (Ensure_System_Dependency): Initialize field SPARK_Mode_Pragma. 3443 * opt.ads: Alphabetize verification flags. Store the 3444 compilation-wide SPARK mode in variable Global_SPARK_Mode. 3445 * par-prag.adb: Pragma SPARK_Mode does not need special processing 3446 by the parser. 3447 * sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect 3448 SPARK_Mode into a pragma. 3449 (Check_Aspect_At_Freeze_Point): Aspect SPARK_Mode does not need 3450 delayed processing. 3451 * sem_prag.adb: Add an entry for SPARK_Mode in table Sig_Flags. 3452 (Analyze_Pragma): Add processing for pragma SPARK_Mode. 3453 (Get_SPARK_Mode_Id): New routine. 3454 (Is_Elaboration_SPARK_Mode): New routine. 3455 (Is_Private_SPARK_Mode): New routine. 3456 * sem_prag.ads (Get_SPARK_Mode_Id): New routine. 3457 (Is_Elaboration_SPARK_Mode): New routine. 3458 (Is_Private_SPARK_Mode): New routine. 3459 * sinfo.ads: Update the comment on the usage of field Next_Pragma. 3460 * snames.ads-tmpl: Add new predefined name for SPARK_Mode and 3461 Auto. Add new pragma Id for SPARK_Mode. 3462 * types.ads: Add new type SPARK_Mode_Id. 3463 34642013-07-05 Ed Schonberg <schonberg@adacore.com> 3465 3466 * sem_ch13.adb (Analyze_Aspect_Specifications): For 3467 pre/postconditions copy the expression to the generated pragma, 3468 to avoid sharing between the original aspect and the pragma node, 3469 because in ASIS_Mode both will be independently analyzed. 3470 34712013-07-05 Ed Schonberg <schonberg@adacore.com> 3472 3473 * exp_ch3.adb (Build_Variant_Record_Equality): Add pairs of 3474 formals for each discriminant of an unchecked union. 3475 (Make_Eq_Case): Suprogram accepts a list of discriminants. Nested 3476 variants are supported. New helper function Corresponding_Formal. 3477 * exp_ch4.adb (Build_Equality_Call): For unchecked unions, 3478 loop through discriminants to create list of inferred values, 3479 and modify call to equality routine accordingly. 3480 34812013-07-05 Claire Dross <dross@adacore.com> 3482 3483 * a-cfdlli.ads, a-cfhama.ads, a-cfhase.ads, a-cforma.ads, 3484 a-cforse.ads, a-cofove.ads: Add preconditions when needed + 3485 container types are not tagged any more. 3486 34872013-07-05 Thomas Quinot <quinot@adacore.com> 3488 3489 * freeze.adb (Freeze_Entity): For an object with captured 3490 initialization statements, do not remove Init_Stmts from the 3491 enclosing list, as Freeze_All might rely on it to know where to 3492 stop freezing. 3493 34942013-07-05 Robert Dewar <dewar@adacore.com> 3495 3496 * exp_ch4.adb, a-cfdlli.ads, a-ngelfu.ads, s-bignum.adb: Minor 3497 reformatting. 3498 34992013-07-05 Hristian Kirtchev <kirtchev@adacore.com> 3500 3501 * exp_ch4.adb (Expand_Composite_Equality): Use the full view 3502 when the base type is private. 3503 35042013-07-05 Claire Dross <dross@adacore.com> 3505 3506 * a-cfdlli.ads: Add preconditions when needed. 3507 35082013-07-05 Robert Dewar <dewar@adacore.com> 3509 3510 * sem_ch8.adb: Minor reformatting. 3511 35122013-07-05 Ed Schonberg <schonberg@adacore.com> 3513 3514 * sem_ch3.adb (Access_Subprogram_Declaration): Use 3515 Generate_Reference_To_Formals. 3516 * lib-xref.adb (Generate_Reference_To_Formals): In the case of 3517 access to subprograms, the formals are found in the designated 3518 subprogram type. 3519 35202013-07-05 Robert Dewar <dewar@adacore.com> 3521 3522 * gnat_ugn.texi: Document that comments can be lined up with 3523 previous non-blank line. 3524 * styleg.adb (Check_Comment): Allow indentation to match previous 3525 non-blank line (Same_Column_As_Previous_Line): New function 3526 35272013-07-05 Robert Dewar <dewar@adacore.com> 3528 3529 * gnat_rm.texi: Update doc on missing pragmas. 3530 * sem_ch12.adb: Minor comment additions. 3531 35322013-07-05 Hristian Kirtchev <kirtchev@adacore.com> 3533 3534 * sem_prag.adb (Analyze_Pragma): Ensure that 3535 Contract_Cases, Depends and Global are analyzed when they apply 3536 to a subprogram compilation unit. The pragmas are all added 3537 unconditionally to the construct's contract. This ensures that 3538 proof tools can locate the pragmas. 3539 35402013-07-05 Ed Schonberg <schonberg@adacore.com> 3541 3542 * sem_ch8.adb (Freeze_Actual_Profile): An instance within 3543 a generic unit does not freeze a generic private type of the 3544 enclosing generic. This rule must also apply to a type derived 3545 from a generic private type. 3546 35472013-07-05 Arnaud Charlet <charlet@adacore.com> 3548 3549 * gnat_rm.texi: Add missing documentation for pragmas. 3550 35512013-07-05 Yannick Moy <moy@adacore.com> 3552 3553 * sem_ch12.adb: Minor comment. 3554 35552013-07-05 Robert Dewar <dewar@adacore.com> 3556 3557 * gnat_rm.texi: Document that -gnatR and -gnatD cannot be used 3558 together. 3559 * switch-c.adb: Do not allow -gnatD and -gnatR to both be 3560 specified. 3561 35622013-07-05 Robert Dewar <dewar@adacore.com> 3563 3564 * gnat_rm.texi: Add missing documentation for pragmas. 3565 * sem_ch8.adb: Minor reformatting. 3566 * gnat_ugn.texi: Document that -gnatR and -gnatD cannot be used 3567 together. 3568 35692013-07-05 Yannick Moy <moy@adacore.com> 3570 3571 * sem_ch12.ads, sem_ch12.adb (Need_Subprogram_Instance_Body): Force 3572 instance of subprogram body in SPARK mode, by testing Expander_Active 3573 (set in SPARK mode) instead of Full_Expander_Active (not set in 3574 SPARK mode). 3575 * sem_ch8.adb: Minor reformatting. 3576 35772013-07-05 Robert Dewar <dewar@adacore.com> 3578 3579 * freeze.adb (Freeze_Entity): Remove test of obsolete flag 3580 Propagate_Exceptions, and associated useless code that did 3581 nothing. 3582 * gnat_rm.texi: Add documentation for obsolete pragma 3583 Propagate_Exceptions. 3584 * opt.ads (Propagate_Exceptions): Obsolete flag removed. 3585 * sem_prag.adb (Analyze_Pragma, case Propagate_Exceptions): 3586 Remove useless and obsolete setting of Propagate_Exceptions flag. 3587 35882013-07-05 Robert Dewar <dewar@adacore.com> 3589 3590 * gnat_rm.texi, sem_prag.adb: Minor comment/text fixes. 3591 35922013-07-05 Robert Dewar <dewar@adacore.com> 3593 3594 * gnat_rm.texi: Add missing doc for various pragmas. 3595 35962013-07-05 Robert Dewar <dewar@adacore.com> 3597 3598 * par_sco.adb, sem_ch12.adb, par-ch5.adb: Minor reformatting. 3599 * gnat_rm.texi: Document pragma Profile_Warnings. 3600 * restrict.ads, sem_prag.adb: Minor reformatting. 3601 36022013-07-05 Ed Schonberg <schonberg@adacore.com> 3603 3604 * sem_ch12.adb (Check_Formal_Package_Instance): Handle properly 3605 a formal subprogram that was defaulted in the formal package. 3606 36072013-07-05 Thomas Quinot <quinot@adacore.com> 3608 3609 * par_sco.adb (Traverse_Declarations_Or_Statements): Ignore 3610 N_Implicit_Label_Declaration nodes. 3611 36122013-07-05 Robert Dewar <dewar@adacore.com> 3613 3614 * a-cfhase.adb, sem_prag.adb, a-cfhama.adb: Minor reformatting. 3615 36162013-07-05 Ed Schonberg <schonberg@adacore.com> 3617 3618 * sem_ch12.adb (Copy_Generic_Node): Check that name in function 3619 call is a valid entity name before preserving entity in generic 3620 copy. 3621 36222013-07-05 Thomas Quinot <quinot@adacore.com> 3623 3624 * par-ch5.adb: Minor reformatting. 3625 36262013-07-05 Thomas Quinot <quinot@adacore.com> 3627 3628 * sinfo.ads: Minor clarification to documentation for 3629 N_Implicit_Label_Declaration. 3630 36312013-07-05 Hristian Kirtchev <kirtchev@adacore.com> 3632 3633 * a-except-2005.adb, a-except.adb: Add constant Rmsg_17. Correct the 3634 values of all remaining constants. 3635 (Rcheck_35): New routine along with pragmas Export and No_Return. 3636 (Rcheck_PE_Aliased_Parameters): New routine along with pragmas 3637 Export and No_Return. 3638 (Rcheck_PE_All_Guards_Closed, 3639 Rcheck_PE_Bad_Predicated_Generic_Type, 3640 Rcheck_PE_Current_Task_In_Entry_Body, 3641 Rcheck_PE_Duplicated_Entry_Address, Rcheck_PE_Explicit_Raise, 3642 Rcheck_PE_Implicit_Return, Rcheck_PE_Misaligned_Address_Value, 3643 Rcheck_PE_Missing_Return, Rcheck_PE_Overlaid_Controlled_Object, 3644 Rcheck_PE_Potentially_Blocking_Operation 3645 Rcheck_PE_Stubbed_Subprogram_Called, 3646 Rcheck_PE_Unchecked_Union_Restriction, 3647 Rcheck_PE_Non_Transportable_Actual, Rcheck_SE_Empty_Storage_Pool, 3648 Rcheck_SE_Explicit_Raise, Rcheck_SE_Infinite_Recursion, 3649 Rcheck_SE_Object_Too_Large, Rcheck_PE_Finalize_Raised_Exception): 3650 Update the use of Rmsg_XX. 3651 (Rcheck_17, Rcheck_18, Rcheck_19, 3652 Rcheck_20, Rcheck_21, Rcheck_22, Rcheck_23, Rcheck_24, Rcheck_25, 3653 Rcheck_26, Rcheck_27, Rcheck_28, Rcheck_29, Rcheck_30, Rcheck_31, 3654 Rcheck_32, Rcheck_33, Rcheck_34, Rcheck_35): Update corresponding 3655 renamed subprograms. 3656 * checks.adb: Add with and use clause for Stringt. 3657 (Apply_Parameter_Aliasing_Checks): Make constant Loc visible in 3658 all subprograms of Apply_Parameter_Aliasing_Checks. Remove local 3659 variable Cond. Initialize Check at the start of the routine. Use 3660 routine Overlap_Check to construct a simple or a detailed run-time 3661 check. Update the creation of the simple check. 3662 (Overlap_Check): New routine. 3663 * exp_ch11.adb (Get_RT_Exception_Name): Add a value for 3664 PE_Aliased_Parameters. 3665 * types.ads: Add new enumeration literal 3666 PE_Aliased_Parameters. Update the corresponding integer values 3667 of all RT_Exception_Code literals. 3668 * types.h: Add new constant PE_Aliased_Parameters. Correct the 3669 values of all remaining constants. 3670 36712013-07-05 Yannick Moy <moy@adacore.com> 3672 3673 * gnat_rm.texi: Minor renaming of SPARK into SPARK 2005 in 3674 documentation. 3675 36762013-07-05 Ed Schonberg <schonberg@adacore.com> 3677 3678 * sem_prag.adb (Analyze_PPC_In_Decl_Part): For a class-wide 3679 condition, when replacing the name of a formal by a conversion 3680 to the class-wide type, exempt selector names that appear in 3681 parameter associations. 3682 36832013-06-13 Eric Botcazou <ebotcazou@adacore.com> 3684 3685 * gcc-interface/ada-tree.h (DECL_BY_DOUBLE_REF_P): Delete. 3686 * gcc-interface/gigi.h (annotate_object): Adjust prototype. 3687 (convert_vms_descriptor): Likewise. 3688 * gcc-interface/decl.c (gnat_to_gnu_param): Do not pass fat pointer 3689 types by double dereference. 3690 (annotate_object): Remove BY_DOUBLE_REF parameter and adjust. 3691 (gnat_to_gnu_entity): Adjust calls to annotate_object. 3692 * gcc-interface/trans.c (Identifier_to_gnu): Do not deal with double 3693 dereference. 3694 (Call_to_gnu): Likewise. 3695 (build_function_stub): Adjust call to convert_vms_descriptor. 3696 (Subprogram_Body_to_gnu): Adjust call to annotate_object. 3697 * gcc-interface/utils.c (convert_vms_descriptor): Remove BY_REF 3698 parameter and adjust. 3699 37002013-05-30 Eric Botcazou <ebotcazou@adacore.com> 3701 3702 * gcc-interface/Makefile.in (arm% androideabi): Robustify. 3703 37042013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3705 3706 * gcc-interface/decl.c: (gnat_to_gnu_entity): In ASIS mode, do not 3707 check that access types have a set size. 3708 37092013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3710 3711 * gcc-interface/decl.c (vinfo_t): New type and associated vector. 3712 (components_to_record): Change return type to bool. 3713 Lay out the variants in two passes. Do not force a specific layout for 3714 the variant part if the variants do not have a representation clause. 3715 Take the alignment of the variant part into account when laying out 3716 variants without rep clause in a record type with a partial rep clause. 3717 (create_rep_part): Do not set the position of the field. 3718 37192013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3720 3721 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Last_Bit>: Add kludge 3722 to avoid generating an overflow for -1. 3723 37242013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3725 3726 * gcc-interface/gigi.h (create_type_decl): Adjust prototype. 3727 (create_label_decl): Complete prototype. 3728 (process_attributes): Declare. 3729 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust multiple calls to 3730 create_type_decl throughout. 3731 <E_Enumeration_Type>: Do the layout of the type manually and call 3732 process_attributes on it. Reindent. 3733 <E_Enumeration_Subtype>: Minor tweak. 3734 <E_Floating_Point_Subtype>: Reindent. 3735 <E_Array_Subtype>: Call process_attributes on the array type built 3736 for a packed array type. 3737 <E_Record_Type>: Call process_attributes on the type. 3738 <E_Record_Subtype>: Likewise. 3739 <E_Access_Type>: Likewise. 3740 <E_Subprogram_Type>: Likewise. 3741 Likewise for all types at the end of the processing. 3742 * gcc-interface/utils.c (make_aligning_type): Adjust call to 3743 create_type_decl. 3744 (maybe_pad_type): Likewise. 3745 (create_index_type): Likewise. 3746 (create_type_decl): Remove attr_list parameter and associated code. 3747 (create_var_decl_1): Call process_attributes on the variable. 3748 (process_attributes): Take a pointer to the object and add in_place 3749 and gnat_node parameters and adjust throughout. 3750 <ATTR_MACHINE_ATTRIBUTE>: Pass ATTR_FLAG_TYPE_IN_PLACE only on demand 3751 and set the input location. 3752 Zap the attribute list at the end. 3753 (create_subprog_decl): Call process_attributes on the subprogram. 3754 (build_unc_object_type): Adjust call to create_type_decl. 3755 (handle_vector_type_attribute): Remove dead code. 3756 37572013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3758 3759 * gcc-interface/gigi.h (make_aligning_type): Adjust prototype. 3760 * gcc-interface/utils.c (make_aligning_type): Take GNAT_NODE parameter 3761 for the position of the associated TYPE_DECL. 3762 * gcc-interface/decl.c (gnat_to_gnu_entity): Adjust call to above. 3763 * gcc-interface/utils2.c (maybe_wrap_malloc): Likewise. 3764 37652013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3766 3767 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not prematurely 3768 elaborate the full view of a type with a freeze node. 3769 * gcc-interface/trans.c (process_type): Add explicit predicate. 3770 37712013-05-26 Eric Botcazou <ebotcazou@adacore.com> 3772 3773 * gcc-interface/decl.c (gnat_to_gnu_entity) <object>: Always build the 3774 UNC variable for aliased objects with unconstrained nominal subtype. 3775 37762013-05-24 Eric Botcazou <ebotcazou@adacore.com> 3777 3778 * gcc-interface/gigi.h (gnat_init_gcc_fp): Declare. 3779 * gcc-interface/trans.c (gigi): Call it. 3780 * gcc-interface/misc.c (gnat_init_gcc_fp): New function. 3781 37822013-05-24 Eric Botcazou <ebotcazou@adacore.com> 3783 3784 * gcc-interface/gigi.h (enum inline_status_t): New type. 3785 (create_subprog_decl): Adjust prototype. 3786 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Procedure>: Adjust 3787 calls to create_subprog_decl. 3788 (get_minimal_subprog_decl): Likewise. 3789 * gcc-interface/trans.c (gigi): Likewise. 3790 (build_raise_check): Likewise. 3791 (establish_gnat_vms_condition_handler): Likewise. 3792 (Compilation_Unit_to_gnu): Likewise. 3793 (gnat_to_gnu): Likewise. 3794 * gcc-interface/utils.c (create_subprog_decl): Change inline_flag 3795 parameter to inline_status and implement for suppressed inlining. 3796 37972013-05-24 Eric Botcazou <ebotcazou@adacore.com> 3798 3799 * gcc-interface/ada-tree.h (LOOP_STMT_NO_UNROLL): New define. 3800 (LOOP_STMT_UNROLL): Likewise. 3801 (LOOP_STMT_NO_VECTOR): Likewise. 3802 (LOOP_STMT_VECTOR): Likewise. 3803 * gcc-interface/trans.c (struct loop_info_d): Replace label field 3804 with stmt field. 3805 (Pragma_to_gnu) <Pragma_Loop_Optimize>: New case. 3806 (Loop_Statement_to_gnu): Save the loop statement onto the stack 3807 instead of the label. 3808 (gnat_to_gnu) <N_Exit_Statement>: Retrieve the loop label. 3809 38102013-05-24 Eric Botcazou <ebotcazou@adacore.com> 3811 3812 * gcc-interface/trans.c: Include diagnostic.h and opts.h. 3813 (Pragma_to_gnu) <Pragma_Warnings>: New case. 3814 38152013-05-24 Eric Botcazou <ebotcazou@adacore.com> 3816 3817 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Constify 3818 a handful of local variables. 3819 For a derived untagged type that renames discriminants, change the type 3820 of the stored discriminants to a subtype with the bounds of the type 3821 of the visible discriminants. 3822 (build_subst_list): Rename local variable. 3823 38242013-05-16 Jason Merrill <jason@redhat.com> 3825 3826 * gcc-interface/Make-lang.in (gnat1$(exeext)): Use link mutex. 3827 38282013-05-13 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 3829 3830 PR ada/57188 3831 * gcc-interface/Makefile.in: Allow for amd64 solaris2. 3832 38332013-05-07 Eric Botcazou <ebotcazou@adacore.com> 3834 3835 PR ada/56474 3836 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Subtype>: Use 3837 int_const_binop to shift bounds by 1 when they are integer constants. 3838 38392013-04-25 Arnaud Charlet <charlet@adacore.com> 3840 3841 * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Exclude s-init.ad{s,b} 3842 38432013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 3844 3845 * checks.adb (Apply_Predicate_Check): Update the comment associated 3846 with the call to Check_Expression_Against_Static_Predicate. 3847 * sem_ch3.adb (Analyze_Object_Declaration): Update the comment 3848 associated with the call to Check_Expression_Against_Static_Predicate. 3849 * sem_util.adb (Check_Expression_Against_Static_Predicate): 3850 Broaden the check from a static expression to an expression with 3851 a known value at compile time. 3852 * sem_util.ads (Check_Expression_Against_Static_Predicate): Update 3853 comment on usage. 3854 38552013-04-25 Thomas Quinot <quinot@adacore.com> 3856 3857 * exp_attr.adb (Expand_N_Attribute_Reference, cases Position, 3858 First_Bit, and Last_Bit): Fix incorrect test in implementation of 3859 RM 2005 13.5.2(3/2). 3860 38612013-04-25 Claire Dross <dross@adacore.com> 3862 3863 * a-cfhase.adb, a-cfhase.ads, a-cforma.adb, a-cforma.ads, a-cfhama.adb, 3864 a-cfhama.ads, a-cforse.adb, a-cforse.ads, a-cofove.adb, a-cofove.ads 3865 (Query_Element): Removed. 3866 (Update_Element): Removed. 3867 (Insert): The version with no New_Item specified is removed. 3868 (Iterate): Removed. 3869 (Write): Removed. 3870 (Read): Removed. 3871 Every check of fields Busy and Lock has been removed. 3872 38732013-04-25 Robert Dewar <dewar@adacore.com> 3874 3875 * sem_prag.adb (Analyze_Pragma, case Contract_Cases): Remove 3876 call to S14_Pragma (Find_Related_Subprogram): Require proper 3877 placement in subprogram body (Find_Related_Subprogram): Detect 3878 duplicates for all cases (Find_Related_Subprogram): Handle case 3879 of spec nested inside body. 3880 38812013-04-25 Arnaud Charlet <charlet@adacore.com> 3882 3883 * par-prag.adb: Fix typo. 3884 38852013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 3886 3887 * checks.adb (Apply_Predicate_Check): If the type has a static 3888 predicate and the expression is also static, check whether the 3889 expression satisfies the predicate. 3890 * sem_ch3.adb (Analyze_Object_Declaration): If the type has a 3891 static predicate and the expression is also static, see if the 3892 expression satisfies the predicate. 3893 * sem_util.adb: Alphabetize several routines. 3894 (Check_Expression_Against_Static_Predicate): New routine. 3895 * sem_util.ads (Check_Expression_Against_Static_Predicate): New routine. 3896 38972013-04-25 Robert Dewar <dewar@adacore.com> 3898 3899 * gnat_rm.texi: Document Reason argument for pragma Warnings. 3900 * par-prag.adb: Handle Reason parameter for pragma Warnings. 3901 * sem_prag.adb (Analyze_Pragma, case Warnings): Allow Reason argument. 3902 * snames.ads-tmpl (Name_Reason): New name entry. 3903 39042013-04-25 Yannick Moy <moy@adacore.com> 3905 3906 * exp_spark.adb (Expand_SPARK_N_In): Remove procedure. 3907 (Expand_SPARK): Remove special expansion for membership tests. 3908 39092013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 3910 3911 * exp_ch3.adb (Expand_N_Object_Declaration): Update all places 3912 that should use constant Base_Typ. When building an invariant 3913 check, account for invariants coming from the base type. Prevent 3914 the creation of a junk invariant check when the related object 3915 is of an array type and it is initialized with an aggregate. 3916 * exp_util.adb (Make_Invariant_Call): Typ is now a variable. Use 3917 the base type to create an invariant call when the type of the 3918 expression is a composite subtype. 3919 39202013-04-25 Vasiliy Fofanov <fofanov@adacore.com> 3921 3922 * a-cborse.adb: Fix minor typo. 3923 39242013-04-25 Ed Schonberg <schonberg@adacore.com> 3925 3926 * sem_ch6.adb (Different_Generic_Profile): A spec and body 3927 match in an instance if a subtype declaration that renames a 3928 generic actual with the same name appears between spec and body. 3929 39302013-04-25 Robert Dewar <dewar@adacore.com> 3931 3932 * sem_util.adb: Minor reformatting. 3933 39342013-04-25 Ed Schonberg <schonberg@adacore.com> 3935 3936 * exp_aggr.adb (Expand_N_Aggregate): Use special circuitry to 3937 fold strings with a single others choice only if there are no 3938 expressions in the aggregate. 3939 39402013-04-25 Arnaud Charlet <charlet@adacore.com> 3941 3942 * gnat_ugn.texi: Update doc on Ada 2012 default mode. 3943 39442013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 3945 3946 * exp_ch6.adb: Add with and use clause for Stringt. 3947 (Expand_Contract_Cases): Moved from sem_ch6. Add formal parameters 3948 Decls and Stmts along with comments on their usage. 3949 * exp_ch6.ads (Expand_Contract_Cases): Moved from sem_ch6. 3950 * sem_ch6.adb (Expand_Contract_Cases): Moved to exp_ch6. 3951 (Process_Contract_Cases): Update the call to Expand_Contract_Cases. 3952 39532013-04-25 Ed Schonberg <schonberg@adacore.com> 3954 3955 * gnat_rm.texi: Minor editing, to clarify use of dimension aspects. 3956 * sem_util.adb (Is_OK_Variable_For_Out_Formal): Reject an 3957 aggregate for a packed type, which may be converted into an 3958 unchecked conversion of an object. 3959 39602013-04-25 Robert Dewar <dewar@adacore.com> 3961 3962 * sem_prag.adb: Minor code reorganization (correct misspelling 3963 Restiction). 3964 * sem_util.adb, aspects.ads, sem_ch6.adb: Minor reformatting. 3965 * gnat_rm.texi: Document impl-defined aspects. 3966 * sem_dim.adb, sem_dim.ads, gnat_ugn.texi, s-dimmks.ads: Minor 3967 reformatting. 3968 39692013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 3970 3971 * einfo.adb (Set_Abstract_States): The attribute now applies 3972 to generic packages. 3973 * sem_ch4.adb (Referenced): Moved to sem_util. 3974 * sem_ch7.adb (Unit_Requires_Body): A [generic] package with 3975 a non-null abstract state needs a body. 3976 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Update the calls 3977 to Collect_Subprogram_Inputs_Outputs. 3978 (Analyze_Global_Item): Verify the proper usage of an item with mode 3979 In_Out or Output relative to the enclosing context. 3980 (Analyze_Pragma): Abstract_State can now be applied to a generic 3981 package. Do not reset the Analyzed flag for pragmas Depends and Global 3982 as this is not needed. 3983 (Appears_In): Moved to library level. 3984 (Check_Mode_Restiction_In_Enclosing_Context): New routine. 3985 (Collect_Subprogram_Inputs_Outputs): Moved to library level. Add 3986 formal parameters Subp_Id, Subp_Inputs, Subp_Outputs and Global 3987 seen along with comments on usage. 3988 * sem_util.ads, sem_util.adb (Referenced): New routine. 3989 39902013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 3991 3992 * sem_ch6.adb (Expand_Contract_Cases): Generate 3993 detailed error messages only when switch -gnateE is in effect. 3994 39952013-04-25 Yannick Moy <moy@adacore.com> 3996 3997 * sem_attr.adb (Analyze_Attribute): Do not issue 3998 an error for a possibly misplaced 'Result or 'Old attribute when 3999 analyzing the aspect. 4000 40012013-04-25 Robert Dewar <dewar@adacore.com> 4002 4003 * sem_ch12.adb, sem_util.adb, sem_ch4.adb: Minor reformatting. 4004 40052013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4006 4007 * sem_ch4.adb (Analyze_Quantified_Expression): 4008 Add local variable Loop_Id. Verify that the loop variable 4009 is used within the condition of the quantified expression. 4010 (Referenced): New routine. 4011 40122013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4013 4014 * sem_case.adb (Analyze_Choices): Enhance the error message 4015 given on a bad use of subtype predicate. 4016 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Enhance 4017 the error message given on a bad use of subtype predicate. 4018 * sem_util.adb (Bad_Predicated_Subtype_Use): Add formal parameter 4019 Suggest_Static. Emit an extra error message advising how to 4020 remedy the bad use of the predicate if the context warrants it. 4021 * sem_util.ads (Bad_Predicated_Subtype_Use): Add formal parameter 4022 Suggest_Static along with a comment explaining its usage. 4023 40242013-04-25 Ed Schonberg <schonberg@adacore.com> 4025 4026 * sem_disp.adb (Check_Dispatching_Operation): Further refinement 4027 to checks for AI05-0125: the check for a hidden primitive that 4028 may be overridden by the new declaration only applies if the 4029 hidden operation is never declared. This is not the case if the 4030 operation is declared in a parent unit. 4031 40322013-04-25 Robert Dewar <dewar@adacore.com> 4033 4034 * debug.adb: Remove d.X and d.Y entries and documentation. 4035 * exp_ch4.adb (Expand_N_If_Expression): Remove special code used 4036 if expression with actions not available (now always available). 4037 (Expand_Short_Circuit_Operator): Same change. 4038 * gnat1drv.adb (Adjust_Global_Switches) Remove setting 4039 Use_Expression_With_Actions flag, since this is now obsolete. 4040 * opt.ads (Use_Expression_Actions): Removed (always True now). 4041 * sinfo.ads: Minor comment updates. 4042 40432013-04-25 Ed Schonberg <schonberg@adacore.com> 4044 4045 * sem_ch12.adb (Check_Generic_Actuals): If an actual is an array 4046 subtype whose base type is currently private, install full view 4047 when compiling instance body. 4048 40492013-04-25 Ed Schonberg <schonberg@adacore.com> 4050 4051 * sem_disp.adb (Check_Dispatching_Operation): Refine checks for 4052 AI05-0125: the check for a hidden primitive that may be overridden 4053 by the new declaration is only performed if the declaration comes 4054 from source, and it must carry an explicit overriding indicator. 4055 40562013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4057 4058 * einfo.adb (Abstract_States): The attribute now applies to 4059 generic packages. 4060 * sem_ch3.adb (Analyze_Object_Declaration): Check whether an 4061 object declaration introduces an illegal hidden state. 4062 * sem_prag.adb (Analyze_Abstract_State): Check whether a state 4063 declaration introduces an illegal hidden state. 4064 * sem_util.ads, sem_util.adb (Check_No_Hidden_State): New routine. 4065 40662013-04-25 Ed Schonberg <schonberg@adacore.com> 4067 4068 * exp_ch6.adb (Is_Build_In_Place_Function_Call): The call may 4069 be to a protected function, in which case the name in the call 4070 is a selected component. 4071 40722013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4073 4074 * sem_ch4.adb (Analyze_Quantified_Expression): 4075 Warn on a suspicious use of quantifier "some" when "all" was meant. 4076 (No_Else_Or_Trivial_True): New routine. 4077 40782013-04-25 Robert Dewar <dewar@adacore.com> 4079 4080 * einfo.ads, einfo.adb: Put back with/use for Namet. 4081 (Get_Pragma): New name (wi new spec) for Find_Pragma. 4082 * sem_ch6.adb: Change name Find_Pragma to Get_Pragma with 4083 different interface. 4084 40852013-04-25 Ed Schonberg <schonberg@adacore.com> 4086 4087 * sem_ch3.adb (Is_Visible_Component): In an instance all 4088 components are visible. 4089 40902013-04-25 Matthew Heaney <heaney@adacore.com> 4091 4092 * a-rbtgbo.adb, a-crbtgo.adb (Generic_Equal): do not test for 4093 tampering when container empty. 4094 * a-crbtgk.adb (Ceiling, Find, Floor): ditto. 4095 (Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint): 4096 ditto. 4097 40982013-04-25 Ed Schonberg <schonberg@adacore.com> 4099 4100 * par-ch12.adb: Move aspects from package specification to 4101 generic package declaration. 4102 * sem_ch12.adb: Analyze aspect specifications before building 4103 and analyzing the generic copy, so that the generated pragmas 4104 are properly taken into account. 4105 * sem_ch13.adb: For compilation unit aspects that apply to a 4106 generic package declaration, insert corresponding pragmas ahead 4107 of visible declarations. 4108 * sprint.adb: Display properly the aspects of a generic type 4109 declaration. 4110 41112013-04-25 Robert Dewar <dewar@adacore.com> 4112 4113 * frontend.adb: Minor reformatting. 4114 41152013-04-25 Ed Schonberg <schonberg@adacore.com> 4116 4117 * einfo.ads: Extend documentation on use of Is_Private_Ancestor 4118 for untagged types. 4119 * sem_ch3.adb (Is_Visible_Component): Refine predicate for the 4120 case of untagged types derived from private types, to reject 4121 illegal selected components. 4122 41232013-04-25 Gary Dismukes <dismukes@adacore.com> 4124 4125 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): Test 4126 for case of selecting from an unexpanded implicit dereference 4127 and do not make a recursive call on such a prefix. 4128 41292013-04-25 Doug Rupp <rupp@adacore.com> 4130 4131 * targparm.adb (VXF{_Str}): New tag for vaxfloat. 4132 (Get_Target_Parameters): Handle VXF tag. 4133 * targparm.ads (VAX_Float_On_Target): New boolean. 4134 * system-vms-ia64.ads (VAX_Float): New boolean. 4135 * frontend.adb (Frontend): Handle VAX float boolean. 4136 41372013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4138 4139 * einfo.ads, einfo.adb: Remove with and use clauses for Namet. 4140 (Find_Pragma): New routine. 4141 * sem_util.ads, sem_util.adb (Find_Pragma): Moved to einfo. 4142 41432013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4144 4145 * sem_ch13.adb (Add_Call): Do not capture the nature of the inherited 4146 predicate. 4147 (Add_Predicates): Save the static predicate for diagnostics and error 4148 reporting purposes. 4149 (Process_PPCs): Remove local variables Dynamic_Predicate_Present and 4150 Static_Predicate_Present. Add local variable Static_Pred. Ensure that 4151 the expression of a static predicate is static. 4152 41532013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4154 4155 * einfo.adb (Is_Ghost_Subprogram): Remove useless code. 4156 41572013-04-25 Robert Dewar <dewar@adacore.com> 4158 4159 * gnat_rm.texi: Minor addition of index entry. 4160 41612013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4162 4163 * sem_ch6.adb (Check_Access_Invariants): Test whether an 4164 invariant procedure is empty before generating a call to it. 4165 (Has_Enabled_Predicate): New routine. 4166 (Has_Null_Body): New routine. 4167 (Process_PPCs): Test whether an invariant procedure is 4168 empty before generating a call to it. Test whether predicates are 4169 enabled for a particular type before generating a predicate call. 4170 * sem_util.ads, sem_util.adb (Find_Pragma): New routine. 4171 41722013-04-25 Robert Dewar <dewar@adacore.com> 4173 4174 * sem_ch7.adb, einfo.adb, repinfo.adb, snames.adb-tmpl, 4175 snames.ads-tmpl: Minor reformatting. 4176 41772013-04-25 Thomas Quinot <quinot@adacore.com> 4178 4179 * sem_ch7.adb: Minor reformatting. 4180 41812013-04-25 Robert Dewar <dewar@adacore.com> 4182 4183 * gnat_rm.texi: Minor fix to Loop_Variant doc (Loop_Entry allowed). 4184 * s-tarest.adb: Minor reformatting. 4185 41862013-04-25 Hristian Kirtchev <kirtchev@adacore.com> 4187 4188 * aspects.ads, aspects.adb: Remove aspect Ghost from all relevant 4189 tables. 4190 * einfo.adb: Remove with and use clause for Aspects. 4191 (Is_Ghost_Function): Removed. 4192 (Is_Ghost_Entity): New routine. 4193 (Is_Ghost_Subprogram): New routine. 4194 * einfo.ads: Remove synthesized attribute Is_Ghost_Function 4195 along with its uses in entities. Add synthesized attributes 4196 Is_Ghost_Entity and Is_Ghost_Subprogram along with uses in related 4197 entities. 4198 (Is_Ghost_Function): Removed. 4199 (Is_Ghost_Entity): New routine. 4200 (Is_Ghost_Subprogram): New routine. 4201 * par-prag.adb: Remove pragma Ghost from the processing machinery. 4202 * repinfo.adb (List_Mechanisms): Add a value for convention Ghost. 4203 * sem_attr.adb (Analyze_Access_Attribute): Update the check 4204 for ghost subprograms. 4205 * sem_ch4.adb (Analyze_Call): Update the check for calls 4206 to ghost subprograms. 4207 (Check_Ghost_Function_Call): Removed. 4208 (Check_Ghost_Subprogram_Call): New routine. 4209 * sem_ch6.adb (Check_Convention): Rewritten. 4210 (Check_Overriding_Indicator): Remove the check for overriding 4211 ghost functions. 4212 (Convention_Of): New routine. 4213 * sem_ch12.adb (Preanalyze_Actuals): Update the check for ghost 4214 generic actual subprograms. 4215 * sem_mech.adb (Set_Mechanisms): Add an entry for convention Ghost. 4216 * sem_prag.adb: Remove the value for pragma Ghost from 4217 table Sig_Flags. 4218 (Analyze_Pragma): Remove the processing for pragma Ghost. 4219 (Process_Convention): Emit an error when a ghost 4220 subprogram attempts to override. 4221 (Set_Convention_From_Pragma): Emit an error when a ghost subprogram 4222 attempts to override. 4223 * sinfo.ads: Clarify the usage of field Label_Construct. 4224 * snames.adb-tmpl (Get_Convention_Id): Add an entry for 4225 predefined name Ghost. 4226 (Get_Convention_Name): Add an entry for convention Ghost. 4227 * snames.ads-tmpl: Move predefined name Ghost to the sublist 4228 denoting conventions. Add convention id Ghost. Remove pragma 4229 id Ghost. 4230 42312013-04-25 Ed Schonberg <schonberg@adacore.com> 4232 4233 * sem_ch7.adb (Swap_Private_Dependents): Do no recurse on child 4234 units if within a generic hierarchy. 4235 42362013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4237 4238 * exp_ch6.adb (Expand_Actuals): Add a predicate check on an 4239 actual the related type has a predicate function. 4240 * sem_ch3.adb (Constant_Redeclaration): Ensure that the related 4241 type has an invariant procedure before building a call to it. 4242 * sem_ch6.adb (Append_Enabled_Item): New routine. 4243 (Check_Access_Invariants): Use routine 4244 Append_Enabled_Item to chain onto the list of postconditions. 4245 (Contains_Enabled_Pragmas): Removed. 4246 (Expand_Contract_Cases): Use routine Append_Enabled_Item to chain onto 4247 the list of postconditions. 4248 (Invariants_Or_Predicates_Present): Removed. 4249 (Process_PPCs): Partially reimplemented. 4250 42512013-04-24 Sergey Rybin <rybin@adacore.com frybin> 4252 4253 * tree_io.ads: Update ASIS_Version_Number because of changes 4254 in the way how entities are chained in a scope by means of 4255 Next_Entity link. 4256 42572013-04-24 Ed Schonberg <schonberg@adacore.com> 4258 4259 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 4260 Storage_Size): If the clause is not from an aspect, insert 4261 assignment to size variable of task type at the point of the 4262 clause, not after the task definition, to prevent access before 4263 elaboration in the back-end. 4264 42652013-04-24 Yannick Moy <moy@adacore.com> 4266 4267 * sem_prag.adb (Sig_Flags): Set correct value for Pragma_Assume. 4268 42692013-04-24 Yannick Moy <moy@adacore.com> 4270 4271 * gnat_rm.texi: Document 'Loop_Entry. 4272 42732013-04-24 Jose Ruiz <ruiz@adacore.com> 4274 4275 * s-tassta.adb, s-tarest.adb (Task_Wrapper): Start looking for 4276 fall-back termination handlers from the parents, because they apply 4277 only to dependent tasks. 4278 * s-solita.adb (Task_Termination_Handler_T): Do not look for fall-back 4279 termination handlers because the environment task has no parent, 4280 and if it defines one of these handlers it does not apply to 4281 itself because they apply only to dependent tasks. 4282 42832013-04-24 Robert Dewar <dewar@adacore.com> 4284 4285 * sem_type.adb, exp_attr.adb, exp_ch4.adb: Minor reformatting. 4286 42872013-04-24 Robert Dewar <dewar@adacore.com> 4288 4289 * gnat_rm.texi: Document 'Update attribute. 4290 * sem_attr.adb (Analyze_Attribute, case Update): Remove call 4291 to S14_Attribute (S14_Attribute): removed. 4292 42932013-04-24 Robert Dewar <dewar@adacore.com> 4294 4295 * interfac.ads: Add size clauses for IEEE_Float_32/64 4296 42972013-04-24 Claire Dross <dross@adacore.com> 4298 4299 * gnat1drv.adb (Adjust_Global_Switches): Remove 4300 special assignment of Use_Expression_With_Actions for SPARK_Mode. 4301 43022013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4303 4304 * checks.adb (Apply_Predicate_Check): Check for the presence 4305 of the dynamic predicate aspect when trying to determine if the 4306 predicate of a type is non-static. 4307 * sem_ch5.adb (Analyze_Loop_Parameter_Specification): Check 4308 for the presence of the dynamic predicate aspect when trying to 4309 determine if the predicate of a type is non- static. 4310 * sem_ch13.adb (Add_Call): Capture the nature of the 4311 inherited ancestor predicate. 4312 (Build_Predicate_Functions): Update comments. Rewrite the checks on 4313 static predicate application. Complain about the form of a non-static 4314 expression only when the type is static. 4315 43162013-04-24 Ed Schonberg <schonberg@adacore.com> 4317 4318 * sem_prag.adb: Add guard to tree traversal. 4319 43202013-04-24 Vincent Celier <celier@adacore.com> 4321 4322 * clean.adb (Clean): Remove local variable Root_Environment, 4323 use Makeutl.Root_Environment instead. 4324 * gnatcmd.adb: Remove local variable Root_Environment, use 4325 Makeutl.Root_Environment instead. 4326 * make.adb (Gnatmake): Remove local variable Root_Environment, 4327 use Makeutl.Root_Environment instead. 4328 * prj-makr.adb: Remove local variable Root_Environment, use 4329 Makeutl.Root_Environment instead. 4330 43312013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4332 4333 * exp_attr.adb (Expand_Loop_Entry_Attribute): Clarify the 4334 extraction of the declarative part of the conditional block. Move 4335 the processing of simple infinite loops to the start of the 4336 expansion logic. Correct the check which determines whether the 4337 proper scope is installed in visibility. 4338 * sem_attr.adb (Analyze_Attribute): Add local variable Attr 4339 to keep track of the attribute in case the enclosing indexed 4340 component has to be rewritten. When searching for the enclosing 4341 loop, start from the proper attribute reference in case of a 4342 rewriting. Do not allow for 'Loop_Entry to appear in pragma 4343 Assert. Replace loop variable J with Index. Set the type of the 4344 proper attribute. 4345 * sem_ch5.adb (Check_Unreachable_Code): Detect a specialized 4346 block that services a loop statement subject to at least one 4347 'Loop_Entry attribute. 4348 43492013-04-24 Ed Schonberg <schonberg@adacore.com> 4350 4351 * sem_type.adb (Disambiguate): In Ada 2012 mode, when trying to 4352 resolve a fixed point operation, use first subtype to determine 4353 whether type and operator are declared in the same list of 4354 declarations. 4355 43562013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4357 4358 * par-ch6.adb (P_Subprogram): Detect an illegal 4359 placement of the aspect specification list in the context of 4360 expression functions. 4361 43622013-04-24 Ed Schonberg <schonberg@adacore.com> 4363 4364 * exp_ch4.adb (Expand_N_Allocator): If the designated object 4365 has tasks, and the pointer type is an itype that has no master 4366 id, create a master renaming in the current context, which can 4367 only be an init_proc. 4368 43692013-04-24 Robert Dewar <dewar@adacore.com> 4370 4371 * sem_ch3.adb, sem_ch7.adb: Minor reformatting. 4372 * gnat_rm.texi: Document pragma Loop_Invariant. 4373 * sem_attr.adb (Analyze_Attribute, case Loop_Entry): This is 4374 no longer an S14_Attribute. 4375 * sem_prag.adb (Analyze_Pragma, case Loop_Invariant): Combine 4376 processing with Assert, allow message parameter, remove call 4377 to S14_Pragma. 4378 43792013-04-24 Thomas Quinot <quinot@adacore.com> 4380 4381 * exp_ch4.adb: Minor reformatting. 4382 43832013-04-24 Ed Schonberg <schonberg@adacore.com> 4384 4385 * sem_ch7.adb (Swap_Private_Dependents): New internal routine 4386 to Install_Private_Declarations, to make the installation of 4387 private dependents recursive in the presence of child units. 4388 * sem_ch3.adb (Build_Discriminated_Subtype): Initialize properly 4389 the Private_Dependents of a private subtype. 4390 43912013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4392 4393 * exp_attr.adb (Expand_Loop_Entry_Attribute): Update the 4394 retrieval of the block declarations. 4395 * par-ch4.adb (P_Name): Let the name parsing machinery create 4396 a sequence of nested indexed components for attribute Loop_Entry. 4397 * sem_attr.adb (Analyze_Attribute): Add local constant 4398 Context. Reimplement part of the analysis of attribute Loop_Entry. 4399 (Convert_To_Indexed_Component): Removed. 4400 * sem_ch4.adb (Analyze_Indexed_Component_Form): Do not analyze 4401 an indexed component after it has been rewritten into attribute 4402 Loop_Entry. 4403 44042013-04-24 Yannick Moy <moy@adacore.com> 4405 4406 * snames.ads-tmpl: Minor change to list 4407 Loop_(In)variant not in configuration pragma. 4408 * sem_ch3.adb (Analyze_Declarations): Do not look at the original node 4409 for analyzing the expressions in pre/postconditions. 4410 44112013-04-24 Robert Dewar <dewar@adacore.com> 4412 4413 * gnatcmd.adb, xref_lib.adb, gnatls.adb, sem_ch13.adb: Minor 4414 reformatting. 4415 44162013-04-24 Yannick Moy <moy@adacore.com> 4417 4418 * sem_ch6.adb (Analyze_Generic_Subprogram_Body, 4419 Analyze_Subprogram_Body_Helper): Reset contract node to Empty 4420 before setting entity to E_Subprogram_Body. 4421 * sem_ch8.adb (Analyze_Subprogram_Renaming): Reset contract node to 4422 Empty before setting entity to E_Subprogram_Body. 4423 44242013-04-24 Vincent Celier <celier@adacore.com> 4425 4426 * gnat_ugn.texi: Document new gnatls switch -aPdir. 4427 * gnatcmd.adb: Pass switch -aP<dir> to gnatls. 4428 * gnatls.adb (Scan_Ls_Arg): Process new switch -aP<dir>. Issue 4429 a warning for unknown switches. 4430 (Usage): Add line for new switch -aPdir. 4431 44322013-04-24 Ed Schonberg <schonberg@adacore.com> 4433 4434 * sem_util.adb, sem_util.ads (Is_Limited_Class_Wide_Type): Return true 4435 if the type comes from a limited view, so that task attributes can be 4436 constructed. 4437 44382013-04-24 Yannick Moy <moy@adacore.com> 4439 4440 * checks.adb (Apply_Float_Conversion_Check): Do not apply checks if 4441 full expansion is not enabled. 4442 44432013-04-24 Ed Schonberg <schonberg@adacore.com> 4444 4445 * sem_ch6.adb (Create_Extra_Formals): In Ada 2012, create extra 4446 formals if the type does not yet have a completion, and thus 4447 has no underlying view. 4448 44492013-04-24 Ed Schonberg <schonberg@adacore.com> 4450 4451 * sem_ch13.adb (Analyze_Aspect_Specifications): Treat an aspect 4452 specification for Address as a reference, to suppress warnings 4453 on entities that may be read by an external device. 4454 44552013-04-24 Sergey Rybin <rybin@adacore.com frybin> 4456 4457 * gnat_ugn.texi: Add description of '--help' and '--version' 4458 options for ASIS tools: gnatelim, gnatmetric, gnatstub, gnatpp. 4459 44602013-04-24 Arnaud Charlet <charlet@adacore.com> 4461 4462 * gnat_rm.texi: Minor syntax fix. 4463 44642013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4465 4466 * exp_attr.adb (Expand_Loop_Entry_Attribute): Add extra comments on 4467 what and why is being analyzed. Remove the decoration of renamings as 4468 this simply falls out of the general analysis mechanism. 4469 44702013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4471 4472 * sem_res.adb (Explain_Redundancy): New routine. 4473 (Resolve_Equality_Op): Place the error concerning a redundant 4474 comparison to True at the "=". Try to explain the nature of the 4475 redundant True. 4476 44772013-04-24 Javier Miranda <miranda@adacore.com> 4478 4479 4480 * checks.adb, exp_ch6.adb (Install_Null_Excluding_Check): No 4481 check in interface thunks since it is performed at the caller 4482 side. 4483 (Expand_Simple_Function_Return): No accessibility check 4484 needed in thunks since the check is done by the target routine. 4485 44862013-04-24 Vincent Celier <celier@adacore.com> 4487 4488 * xref_lib.adb (Add_Entity): Use the canonical file names 4489 so that source file names with capital letters are found on 4490 platforms where file names are case insensitive. 4491 44922013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4493 4494 * par-ch4.adb (P_Name): Continue to parse the name extension when the 4495 construct is attribute Loop_Entry. Do not convert the attribute 4496 reference into an indexed component when there is at least one 4497 expression / range following 'Loop_Entry. 4498 44992013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4500 4501 * sem_ch6.adb (Contains_Enabled_Pragmas): New routine. 4502 (Process_PPCs): Generate procedure _Postconditions 4503 only when the context has invariants or predicates or enabled 4504 aspects/pragmas. 4505 45062013-04-24 Thomas Quinot <quinot@adacore.com> 4507 4508 * g-socket.adb (Host_Entry): Introduce intermediate copy of 4509 memory location pointed to by Hostent_H_Addr, as it might not 4510 have sufficient alignment. 4511 45122013-04-24 Yannick Moy <moy@adacore.com> 4513 4514 * repinfo.adb (List_Rep_Info): Set the value of Unit_Casing before 4515 calling subprograms which may read it. 4516 45172013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4518 4519 * einfo.adb: Remove Loop_Entry_Attributes from the usage of 4520 nodes. Flag 260 is now used. 4521 (Has_Loop_Entry_Attributes): New routine. 4522 (Loop_Entry_Attributes): Removed. 4523 (Set_Has_Loop_Entry_Attributes): New routine. 4524 (Set_Loop_Entry_Attributes): Removed. 4525 (Write_Entity_Flags): Write out Flag 260. 4526 (Write_Field10_Name): Remove the output for Loop_Entry_Attributes. 4527 * einfo.ads: Remove attribute Loop_Entry_Attributes, 4528 its related comment and uses in nodes. Add new attribute 4529 Has_Loop_Entry_Attributes, related comment and uses in loop nodes. 4530 (Has_Loop_Entry_Attributes): New routine and pragma Inline. 4531 (Loop_Entry_Attributes): Removed along with pragma Inline. 4532 (Set_Has_Loop_Entry_Attributes): New routine and pragma Inline. 4533 (Set_Loop_Entry_Attributes): Removed along with pragma Inline. 4534 * exp_attr.adb (Expand_Loop_Entry_Attribute): New routine. 4535 (Expand_N_Attribute_Reference): Expand attribute 'Loop_Entry. 4536 * exp_ch5.adb: Remove with and use clause for Elists. 4537 (Expand_Loop_Entry_Attributes): Removed. 4538 (Expand_N_Loop_Statement): Add local variable Stmt. Rename local 4539 constant Isc to Scheme. When a loop is subject to attribute 4540 'Loop_Entry, retrieve the nested loop from the conditional 4541 block. Move the processing of controlled object at the end of 4542 loop expansion. 4543 * sem_attr.adb (Analyze_Attribute): Do not chain attribute 4544 'Loop_Entry to its related loop. 4545 * sem_ch5.adb (Analyze_Loop_Statement): Add local variable 4546 Stmt. When the iteration scheme mentions attribute 'Loop_Entry, 4547 the entire loop is rewritten into a block. Retrieve the nested 4548 loop in such cases to complete the analysis. 4549 * sem_util.ads, sem_util.adb (Find_Loop_In_Conditional_Block): New 4550 routine. 4551 (Subject_To_Loop_Entry_Attributes): New routine. 4552 45532013-04-24 Robert Dewar <dewar@adacore.com> 4554 4555 * exp_prag.adb (Expand_Loop_Variant): Generate pragma Check 4556 (Loop_Variant, xxx) rather than Assert (xxx). 4557 * gnat_rm.texi: Document pragma Loop_Variant. 4558 * sem_prag.adb (Analyze_Pragma, case Loop_Variant): Remove call 4559 to S14_Pragma. 4560 45612013-04-24 Yannick Moy <moy@adacore.com> 4562 4563 * adabkend.adb, ali-util.adb, ali.adb, debug.adb, 4564 errout.adb, errout.ads, erroutc.adb, exp_ch3.adb, exp_ch4.adb, 4565 exp_ch6.adb, exp_ch7.adb, exp_dbug.adb, exp_util.adb, 4566 expander.adb, freeze.adb, gnat1drv.adb, lib-writ.adb, 4567 lib-writ.ads, lib-xref.adb, lib-xref.ads, opt.adb, opt.ads, 4568 restrict.adb, sem_aggr.adb, sem_attr.adb, sem_ch3.adb, 4569 sem_ch4.adb, sem_ch5.adb, sem_ch6.adb, sem_eval.adb, sem_prag.adb, 4570 sem_res.adb, sem_util.adb: Everything with name 4571 'Alfa' renamed in 'SPARK'. Update comments. 4572 Renaming of units with name 'Alfa', renamed with 'SPARK' instead. 4573 * exp_alfa.adb: renamed exp_spark.adb. 4574 * exp_alfa.ads: renamed exp_spark.ads. 4575 * get_alfa.adb: renamed get_spark_xrefs.adb. 4576 * get_alfa.ads: renamed get_spark_xrefs.ads. 4577 * lib-xref-alfa.adb: renamed lib-xref-spark_specific.adb. 4578 * put_alfa.adb: renamed put_spark_xrefs.adb. 4579 * put_alfa.ads: renamed put_spark_xrefs.ads. 4580 * alfa.adb: renamed spark_xrefs.adb. 4581 * alfa.ads: renamed spark_xrefs.ads. 4582 * alfa_test.adb: renamed spark_xrefs_test.adb. 4583 * gcc-interface/Make-lang.in: Update dependencies. 4584 45852013-04-24 Robert Dewar <dewar@adacore.com> 4586 4587 * gnat_rm.texi: Document pragma Assume. 4588 * sem_prag.adb (Analyze_Pragma, case Assume): Now processed as 4589 part of Assert, and no longer requires -gnatd.F 4590 45912013-04-24 Robert Dewar <dewar@adacore.com> 4592 4593 * gnat_rm.texi: Document pragma Assert_And_Cut. 4594 * sem_prag.adb (Analyze_Pragma, case Assert_And_Cut): Remove 4595 S14_Pragma call. 4596 45972013-04-24 Ed Schonberg <schonberg@adacore.com> 4598 4599 * sem_aux.adb: Add guard in Available_View. 4600 46012013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4602 4603 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Use 4604 Find_Related_Subprogram to find the associated subprogram. 4605 (Analyze_Global_In_Decl_List): Use Find_Related_Subprogram 4606 to find the associated subprogram. 4607 (Analyze_Pragma): Use Find_Related_Subprogram to find the associated 4608 subprogram. 4609 46102013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4611 4612 * exp_ch6.adb: Remove with and use clause for Sem_Prag. 4613 (Freeze_Subprogram): Call Analyze_Subprogram_Contract to analyze 4614 the contract of a subprogram. 4615 * sem_ch3.adb: Remove with and use clause for Sem_Prag. 4616 (Analyze_Declarations): Call Analyze_Subprogram_Contract to 4617 analyze the contract of a subprogram. 4618 * sem_ch6.adb (Analyze_Subprogram_Contract): New routine. 4619 (Check_Subprogram_Contract): Removed. 4620 * sem_ch6.ads (Analyze_Subprogram_Contract): New routine. 4621 (Check_Subprogram_Contract): Removed. 4622 (Expand_Contract_Cases): Add a guard against malformed contract cases. 4623 * sem_ch13.adb (Analyze_Aspect_Specifications): Call 4624 Decorate_Delayed_Aspect_And_Pragma to decorate aspects 4625 Contract_Cases, Depends and Global. Reimplement the analysis of 4626 aspect Contract_Cases. 4627 (Decorate_Delayed_Aspect_And_Pragma): New routine. 4628 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): New routine. 4629 (Analyze_CTC_In_Decl_Part): Removed. 4630 (Analyze_Pragma): Reimplement the analysis of pragma Contract_Cases. 4631 (Analyze_Test_Case_In_Decl_Part): New routine. 4632 (Find_Related_Subprogram): New routine. 4633 (Requires_Profile_Installation): Add new formal Prag. Update 4634 the logic to take into account the origin of the pragma. 4635 * sem_prag.ads (Analyze_Contract_Cases_In_Decl_Part): New routine. 4636 (Analyze_CTC_In_Decl_Part): Removed. 4637 (Analyze_Test_Case_In_Decl_Part): New routine. 4638 46392013-04-24 Robert Dewar <dewar@adacore.com> 4640 4641 * sem_prag.adb (Process_Convention): Move Stdcall tests to 4642 Set_Convention_From_Pragma so that they are applied to each 4643 entry of a homonym set. 4644 (Process_Convention): Don't try to set convention if already set. 4645 46462013-04-24 Robert Dewar <dewar@adacore.com> 4647 4648 * gnatbind.adb: Minor reformatting. 4649 46502013-04-24 Vincent Celier <celier@adacore.com> 4651 4652 * clean.adb (Gnatclean): Add the default project search 4653 directories in the project search path after scanning the 4654 switches on the command line. 4655 (Initialize): Do not put the default project search directories in the 4656 project search path. 4657 * gnatcmd.adb (GNATcmd): Add the default project search 4658 directories in the project search path after scanning the switches 4659 on the command line. 4660 * make.adb (Initialize): Add the default project search 4661 directories in the project search path after scanning the switches 4662 on the command line. 4663 46642013-04-24 Yannick Moy <moy@adacore.com> 4665 4666 * restrict.ads (Restriction_Warnings): Initialize with all False value. 4667 46682013-04-24 Robert Dewar <dewar@adacore.com> 4669 4670 * checks.ads, checks.adb (Predicate_Checks_Suppressed): New function. 4671 * exp_util.ads, exp_util.adb (Make_Predicate_Check): Check setting of 4672 Predicate_Check. 4673 * snames.ads-tmpl (Name_Predicate_Check): New check name. 4674 * types.ads (Predicate_Check): New definition. 4675 * gnat_rm.texi: Add documentation for Predicate_Check. 4676 46772013-04-24 Ed Schonberg <schonberg@adacore.com> 4678 4679 * exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): If this 4680 is a renaming of predefined equality for an untagged record, 4681 add generated body to the freeze actions for the subprogram, to 4682 prevent freezing issues when the record has incomplete components. 4683 * exp_ch4.adb (Expand_Composite_Equality): If the type is a type 4684 without completion, return a predefined comparison instead of 4685 just False. This may happen when building the expression for 4686 record equality, when some component has a type whose completion 4687 has not been seen yet. The operation will be analyzed an expanded 4688 after the type has been frozen, at which point all component 4689 types will have been completed, or an error reported. 4690 46912013-04-24 Ed Schonberg <schonberg@adacore.com> 4692 4693 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not delay 4694 analysis of a Convention aspect. 4695 46962013-04-24 Eric Botcazou <ebotcazou@adacore.com> 4697 4698 * fe.h (Machine_Overflows_On_Target): New macro and declaration. 4699 (Signed_Zeros_On_Target): Likewise. 4700 47012013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4702 4703 * exp_ch6.adb: Add with and use clause for Sem_Prag. 4704 (Freeze_Subprogram): Analyze all delayed aspects for a null 4705 procedure so that they are available when analyzing the 4706 internally-generated _Postconditions routine. 4707 * exp_ch13.adb: Remove with and use clause for Sem_Prag. 4708 (Expand_N_Freeze_Entity): Move the code that analyzes delayed 4709 aspects of null procedures to exp_ch6.Freeze_Subprogram. 4710 * sem_prag.adb (Analyze_Abstract_State): Update the check on 4711 volatile requirements. 4712 47132013-04-24 Bob Duff <duff@adacore.com> 4714 4715 * ali-util.ads (Source_Record): New component Stamp_File 4716 to record from whence the Stamp came. 4717 * ali-util.adb (Set_Source_Table): Set Stamp_File component. 4718 * bcheck.adb (Check_Consistency): Print additional information in 4719 Verbose_Mode. 4720 * gnatbind.adb (Gnatbind): Print additional information in 4721 Verbose_Mode. 4722 47232013-04-24 Robert Dewar <dewar@adacore.com> 4724 4725 * exp_ch13.adb, sem_prag.adb: Update comments. 4726 * sem_ch3.adb, exp_ch9.adb, g-socket.adb, sem_ch13.adb: Minor 4727 reformatting. 4728 47292013-04-24 Doug Rupp <rupp@adacore.com> 4730 4731 * vms_data.ads (/{NO}INHIBIT-EXEC): Document new default behavior. 4732 47332013-04-24 Yannick Moy <moy@adacore.com> 4734 4735 * sinfo.ads: Minor correction of typo. 4736 47372013-04-24 Ed Schonberg <schonberg@adacore.com> 4738 4739 * sem_ch3.adb: Create packed array only when expander is 4740 active. 4741 47422013-04-24 Hristian Kirtchev <kirtchev@adacore.com> 4743 4744 * sem_prag.adb (Analyze_Depends_In_Decl_Part): Install the formals only 4745 when the context warrants it. 4746 (Analyze_Global_In_Decl_List): Install the formals only when 4747 the context warrants it. 4748 (Requires_Profile_Installation): New routine. 4749 47502013-04-24 Ed Schonberg <schonberg@adacore.com> 4751 4752 * exp_ch6.adb (Expand_N_Simple_Return_Statement): When the return 4753 type is a discriminated private type that does not require use 4754 of the secondary stack, a constrained subtype of the underlying 4755 type is created to convey the proper object size to the backend. 4756 If the return type is originally a private type, the return 4757 expression is wrapped in an unchecked_conversion. If the return 4758 expression is used subsequently in a call to the postcondition 4759 function, this conversion must be undone to prevent a spurious 4760 error on the analysis of that call. 4761 47622013-04-23 Kai Tietz <ktietz@redhat.com> 4763 4764 PR target/55445 4765 * raise-gcc.c (__SEH__): Additional check that SjLj isn't active. 4766 47672013-04-23 Eric Botcazou <ebotcazou@adacore.com> 4768 Pascal Obry <obry@adacore.com> 4769 4770 * gcc-interface/Makefile.in (targ): Fix target name check. 4771 (../../gnatmake$(exeext)): Add '+' for LTO. 4772 (../../gnatlink$(exeext)): Likewise. 4773 47742013-04-23 Hristian Kirtchev <kirtchev@adacore.com> 4775 4776 * exp_ch9.adb (Build_PPC_Wrapper): Correct the traversal of 4777 pre- and post-conditions. 4778 (Expand_N_Task_Type_Declaration): 4779 Use the correct attribute to check for pre- and post-conditions. 4780 * exp_ch13.adb (Expand_N_Freeze_Entity): Correct the traversal of 4781 pre- and post-conditions. Analyze delayed classification items. 4782 * freeze.adb (Freeze_Entity): Use the correct attribute to 4783 check for pre- and post- conditions. 4784 * sem_ch3.adb (Analyze_Declarations): Correct the traversal 4785 of pre- and post-conditions as well as contract- and 4786 test-cases. Analyze delayed pragmas Depends and Global. 4787 * sem_ch6.adb (Check_Subprogram_Contract): Use the correct 4788 attribute to check for pre- and post-conditions, as well as 4789 contract-cases and test-cases. (List_Inherited_Pre_Post_Aspects): 4790 Correct the traversal of pre- and post- conditions. 4791 (Process_Contract_Cases): Update the comment on usage. Correct 4792 the traversal of contract-cases. 4793 (Process_Post_Conditions): Update the comment on usage. Correct the 4794 traversal of pre- and post-conditions. 4795 (Process_PPCs): Correct the traversal of pre- and post-conditions. 4796 (Spec_Postconditions): Use the correct 4797 attribute to check for pre- and post- conditions, as well as 4798 contract-cases and test-cases. 4799 * sem_ch13.adb (Analyze_Aspect_Specifications): Reimplement the 4800 actions related to aspects Depends and Global. Code refactoring 4801 for pre- and post-conditions. 4802 (Insert_Delayed_Pragma): New routine. 4803 * sem_prag.adb (Add_Item): New routine. 4804 (Analyze_Depends_In_Decl_Part): New routine. 4805 (Analyze_Global_In_Decl_Part): New routine. 4806 (Analyze_Pragma): Reimplement the actions related to aspects Depends and 4807 Global. Verify that a body acts as a spec for pragma Contract_Cases. 4808 (Chain_PPC): Use Add_Contract_Item to chain a pragma. 4809 (Chain_CTC): Correct the traversal of contract- 4810 and test-cases. Use Add_Contract_Item to chain a pragma. 4811 (Chain_Contract_Cases): Correct the traversal of contract- 4812 and test-cases. Use Add_Contract_Item to chain a pragma. 4813 (Check_Precondition_Postcondition): Update the comment on usage. 4814 (Check_Test_Case): Update the comment on usage. 4815 * sem_prag.ads (Analyze_Depends_In_Decl_Part): New routine. 4816 (Analyze_Global_In_Decl_Part): New routine. 4817 * sem_util.ads, sem_util.adb (Add_Contract_Item): New routine. 4818 * sinfo.adb (Classifications): New routine. 4819 (Contract_Test_Cases): New routine. 4820 (Pre_Post_Conditions): New routine. 4821 (Set_Classifications): New routine. 4822 (Set_Contract_Test_Cases): New routine. 4823 (Set_Pre_Post_Conditions): New routine. 4824 (Set_Spec_CTC_List): Removed. 4825 (Set_Spec_PPC_List): Removed. 4826 (Spec_CTC_List): Removed. 4827 (Spec_PPC_List): Removed. 4828 * sinfo.ads: Update the structure of N_Contruct along with all 4829 related comments. 4830 (Classifications): New routine and pragma Inline. 4831 (Contract_Test_Cases): New routine and pragma Inline. 4832 (Pre_Post_Conditions): New routine and pragma Inline. 4833 (Set_Classifications): New routine and pragma Inline. 4834 (Set_Contract_Test_Cases): New routine and pragma Inline. 4835 (Set_Pre_Post_Conditions): New routine and pragma Inline. 4836 (Set_Spec_CTC_List): Removed. 4837 (Set_Spec_PPC_List): Removed. 4838 (Spec_CTC_List): Removed. 4839 (Spec_PPC_List): Removed. 4840 48412013-04-23 Doug Rupp <rupp@adacore.com> 4842 4843 * init.c (GNAT$STOP) [VMS]: Bump sigargs[0] count by 2 4844 to account for LIB$STOP not having the chance to add the PC and 4845 PSL fields. 4846 48472013-04-23 Robert Dewar <dewar@adacore.com> 4848 4849 * sem_ch13.adb: Minor code reorganization (remove some redundant 4850 assignments). 4851 * sem_ch3.adb, sem_prag.adb: Minor reformatting. 4852 48532013-04-23 Yannick Moy <moy@adacore.com> 4854 4855 * einfo.ads: Minor typo fix. 4856 * sem_ch13.adb (Build_Predicate_Functions): Reject cases where 4857 Static_Predicate is applied to a non-scalar or non-static type. 4858 * sem_prag.adb: Minor typo fix. 4859 48602013-04-23 Doug Rupp <rupp@adacore.com> 4861 4862 * init.c (GNAT$STOP) [VMS]: New function. 4863 48642013-04-23 Ed Schonberg <schonberg@adacore.com> 4865 4866 * sem_ch3.adb: Add exp_pakd to context. 4867 (Constrain_Component_Type): If the component of the parent is 4868 packed, and the record subtype being built is already frozen, 4869 as is the case for an itype, the component type itself will not 4870 be frozen, and the packed array type for it must be constructed 4871 explicitly. 4872 48732013-04-23 Thomas Quinot <quinot@adacore.com> 4874 4875 * g-socket.adb, g-socket.ads (Set_Close_On_Exec): New subprogram. 4876 48772013-04-23 Yannick Moy <moy@adacore.com> 4878 4879 * err_vars.ads (Error_Msg_Qual_Level): Set variable to zero 4880 at declaration. 4881 * opt.ads (Multiple_Unit_Index): Set variable to zero at declaration. 4882 * sem_util.adb (NCT_Table_Entries): Set variable to zero at declaration. 4883 * set_targ.ads (Num_FPT_Modes): Set variable to zero at declaration. 4884 * stylesw.adb (Save_Style_Check_Options): Protect testing the 4885 value of Style_Check_Comments_Spacing by a previous test that 4886 Style_Check_Comments is True. 4887 48882013-04-23 Thomas Quinot <quinot@adacore.com> 4889 4890 * sem_prag.adb, sem_prag.ads (Effective_Name): Rename to 4891 Original_Name, and move declaration to package body as this 4892 subprogram is not used from outside. Also clarify documentation. 4893 48942013-04-23 Ed Schonberg <schonberg@adacore.com> 4895 4896 * exp_ch6.adb (Expand_N_Subprogram_Body): When compiling with 4897 initialize_scalars, disable predicate checks on the generated 4898 assignment to an out scalar parameter. 4899 49002013-04-23 Gary Dismukes <dismukes@adacore.com> 4901 4902 * sem_ch4.adb (Analyze_Allocator): Remove error 4903 check for "constrained in partial view" constraints entirely. 4904 49052013-04-23 Robert Dewar <dewar@adacore.com> 4906 4907 * einfo.ads, sem_prag.ads: Minor reformatting. 4908 * errout.ads: Comment update. 4909 49102013-04-23 Yannick Moy <moy@adacore.com> 4911 4912 * exp_ch5.adb: Minor typo. 4913 49142013-04-23 Thomas Quinot <quinot@adacore.com> 4915 4916 * gnat_ugn.texi: Fix typo. 4917 49182013-04-23 Ed Schonberg <schonberg@adacore.com> 4919 4920 * einfo.ads: Minor documentation clarification. 4921 49222013-04-23 Bob Duff <duff@adacore.com> 4923 4924 * types.ads: Fix incorrect comment. 4925 49262013-04-23 Ed Schonberg <schonberg@adacore.com> 4927 4928 * sem_aux.adb sem_aux.ads (Effectively_has_Constrained_Partial_View): 4929 Rename subprogram as Object_Type_Has_Constrained_Partial_View, better 4930 description of purpose. 4931 * checks.adb (Apply_Discriminant_Check): Use above renaming. 4932 * sem_ch4.adb (Analyze_Allocator): Check Has_Constrained_Partial_View 4933 of the base type, rather than using the Object_Type predicate. 4934 * sem_attr.adb (Analyze_Attribute, case 'Access): Use above renaming. 4935 * sem_util.adb (Is_Dependent_Component_Of_Mutable_Object): ditto. 4936 * exp_attr.adb (Expand_N_Attribute_Reference, case 'Constrained): Ditto. 4937 * exp_ch4.adb (Expand_N_Allocator): Ditto. 4938 49392013-04-23 Robert Dewar <dewar@adacore.com> 4940 4941 * exp_prag.adb (Expand_Pragma_Check): Check for Assert rather 4942 than Assertion. 4943 * sem_prag.adb (Is_Valid_Assertion_Kind): Moved to spec 4944 (Effective_Name): New function (Analyze_Pragma, case Check): 4945 Disallow [Statement_]Assertions (Check_Kind): Implement 4946 Statement_Assertions (Check_Applicable_Policy): Use Effective_Name 4947 (Is_Valid_Assertion_Kind): Allow Statement_Assertions. 4948 * sem_prag.ads (Is_Valid_Assertion_Kind): Moved here from body 4949 (Effective_Name): New function. 4950 * sem_res.adb: Minor reformatting. 4951 * snames.ads-tmpl (Name_Statement_Assertions): New entry. 4952 * gnat_rm.texi: Add documentation of new assertion kind 4953 Statement_Assertions. 4954 49552013-04-23 Robert Dewar <dewar@adacore.com> 4956 4957 * sinfo.ads, einfo.adb, sem_res.adb, exp_ch6.adb, aspects.adb: Minor 4958 reformatting and code clean up. 4959 49602013-04-23 Vincent Celier <celier@adacore.com> 4961 4962 * prj-part.ads, prj-conf.ads: Minor comment updates. 4963 49642013-04-23 Ed Schonberg <schonberg@adacore.com> 4965 4966 * einfo.adb (Predicate_Function): For a private type, retrieve 4967 predicate function from full view. 4968 * aspects.adb (Find_Aspect): Ditto. 4969 * exp_ch6.adb (Expand_Actuals): If the formal is class-wide and 4970 the actual is a definite type, apply predicate check after call. 4971 * sem_res.adb: Do not apply a predicate check before the call to 4972 a generated Init_Proc. 4973 49742013-04-23 Robert Dewar <dewar@adacore.com> 4975 4976 * sem_ch13.adb (Analyze_Aspect_Specifications): Significant 4977 rewrite to make sure Is_Ignore is properly captured when aspect 4978 is declared. 4979 * sem_ch6.adb: Minor reformatting. 4980 * sem_prag.adb (Analyze_Pragma): Do not test policy at time of 4981 pragma for the case of a pragma coming from an aspect (already 4982 tested when we analyzed the aspect). 4983 49842013-04-23 Vincent Celier <celier@adacore.com> 4985 4986 * prj-conf.adb (Parse_Project_And_Apply_Config): New 4987 Boolean parameter Implicit_Project, defaulted to False. Call 4988 Prj.Part.Parse with Implicit_Project. 4989 * prj-conf.ads (Parse_Project_And_Apply_Config): New Boolean 4990 parameter Implicit_Project, defaulted to False. 4991 * prj-part.adb (Parse_Single_Project): New Boolean parameter 4992 Implicit_Project, defaulted to False. When Implicit_Project is 4993 True, change the Directory of the project node to the Current_Dir. 4994 * prj-part.ads (Parse): New Boolean parameter, defaulted to False 4995 49962013-04-23 Robert Dewar <dewar@adacore.com> 4997 4998 * exp_util.adb: Minor reformatting. 4999 50002013-04-23 Robert Dewar <dewar@adacore.com> 5001 5002 * xoscons.adb: Minor reformatting. 5003 50042013-04-23 Hristian Kirtchev <kirtchev@adacore.com> 5005 5006 * sem_prag.adb (Check_Mode): Ensure that a 5007 self-referential output appears in both input and output lists of 5008 the subprogram as categorized by aspect Global. 5009 (Check_Usage): Rename formal parameters to better illustrate their 5010 function. Update all uses of the said formals. 5011 50122013-04-23 Thomas Quinot <quinot@adacore.com> 5013 5014 * exp_util.adb, exp_util.ads (Fully_Qualified_Name_String): New 5015 parameter Append_NUL to make NUL-termination optional. 5016 * exp_dist.adb: Consistently use the above throughout instead of 5017 Get_Library_Unit_Name_String. 5018 50192013-04-23 Robert Dewar <dewar@adacore.com> 5020 5021 * sem_util.adb, sem_res.adb, prj-tree.adb, prj-tree.ads: Minor 5022 reformatting. 5023 50242013-04-23 Pascal Obry <obry@adacore.com> 5025 5026 * xoscons.adb: Remove unused use clause, minor code clean-up. 5027 50282013-04-23 Ed Schonberg <schonberg@adacore.com> 5029 5030 * sem_util.ads, sem_util.adb: Code cleanup for Is_Expression_Function 5031 (can apply to any scope entity). 5032 * sem_res.adb (Resolve_Call): If the call is within another 5033 expression function it does not constitute a freeze point. 5034 50352013-04-23 Yannick Moy <moy@adacore.com> 5036 5037 * exp_ch6.adb (Expand_Actuals): Test that Subp 5038 is overloadable before testing if it's an inherited operation. 5039 50402013-04-23 Robert Dewar <dewar@adacore.com> 5041 5042 * a-envvar.adb, a-envvar.ads, exp_util.adb, sem_ch12.adb: Minor 5043 reformatting. 5044 50452013-04-23 Ed Schonberg <schonberg@adacore.com> 5046 5047 * sem_ch3.adb (Analyze_Object_Declarations): Undo previous patch. 5048 * exp_util.adb (Expand_Subtype_From_Expr): If the expression 5049 is a source entity and the declaration is for an aliased 5050 unconstrained array, create a new subtype so that the flag 5051 Is_Constr_Subt_For_UN_Aliased does not pollute other entities. 5052 50532013-04-23 Hristian Kirtchev <kirtchev@adacore.com> 5054 5055 * aspects.adb: Move tables Base_Aspect and Inherited_Aspect 5056 from the spec to the body. 5057 (Find_Aspect): Update the call to Get_Aspect_Id. 5058 (Get_Aspect_Id): New version that takes an aspect specification. 5059 * aspects.ads: Reorganize all aspect related tables. 5060 (Get_Aspect_Id): New version that takes an aspect specification. 5061 * par_sco.adb (Traverse_Aspects): Update the call to Get_Aspect_Id. 5062 * sem_ch12.adb (Analyze_Generic_Subprogram_Declaration): Update 5063 the call to Get_Aspect_Id. 5064 * sem_ch13.adb (Analyze_Aspect_At_Freeze_Point): Update the 5065 call to Get_Aspect_Id. (Analyze_Aspect_Specifications): Update 5066 the call to Get_Aspect_Id. Update the call to Impl_Defined_Aspect. 5067 50682013-04-23 Robert Dewar <dewar@adacore.com> 5069 5070 * sem_prag.adb (Fix_Error): Rewrite to do more accurate job 5071 of getting proper name in the case where pragma comes from 5072 aspect. 5073 * sem_ch3.adb, sinfo.ads, par-ch6.adb, exp_ch6.adb: Minor reformatting. 5074 50752013-04-23 Yannick Moy <moy@adacore.com> 5076 5077 * sem_ch6.adb (Process_PPCs): Do not filter postconditions based on 5078 applicable policy. 5079 50802013-04-23 Thomas Quinot <quinot@adacore.com> 5081 5082 * par_sco.adb (Traverse_Aux_Decls): Minor code reorganization. 5083 50842013-04-23 Doug Rupp <rupp@adacore.com> 5085 5086 * init.c: Move facility macros outside IN_RTS. 5087 50882013-04-23 Thomas Quinot <quinot@adacore.com> 5089 5090 * freeze.adb (Freeze_Entity): For the case of a bit-packed 5091 array time that is known at compile time to have more that 5092 Integer'Last+1 elements, issue an error, since such arrays are 5093 not supported. 5094 50952013-04-23 Hristian Kirtchev <kirtchev@adacore.com> 5096 5097 * sem_prag.adb (Analyze_Dependency_Clause): Update all calls to 5098 Analyze_Input_Output. 5099 (Analyze_Input_List): Update all calls to Analyze_Input_Output. 5100 (Analyze_Input_Output): Add formal parameter Self_Ref along with 5101 comment on its usage. Update all calls to Analyze_Input_Output. 5102 (Analyze_Pragma): Add new local variable Self_Ref to capture 5103 the presence of a self-referential dependency clause. Update 5104 all calls to Analyze_Input_Output. 5105 (Check_Mode): Add formal parameter Self_Ref along with comment on its 5106 usage. Verify the legality of a self-referential output. 5107 51082013-04-23 Ed Schonberg <schonberg@adacore.com> 5109 5110 * exp_ch6.adb: Add predicate checks on by-copy parameter. 5111 51122013-04-23 Vincent Celier <celier@adacore.com> 5113 5114 * a-envvar.adb, a-envvar.ads (Value): New. 5115 51162013-04-22 Yannick Moy <moy@adacore.com> 5117 5118 * exp_prag.adb (Expand_Pragma_Loop_Variant): Rewrite pragma as 5119 null statement if ignored. 5120 * sem_ch6.adb (Expand_Contract_Cases): Do nothing if pragma is ignored. 5121 * sem_prag.adb (Analyze_Pragma): Keep analyzing ignored pragmas. 5122 51232013-04-22 Hristian Kirtchev <kirtchev@adacore.com> 5124 5125 * sem_prag.adb (Analyze_Contract_Case): New routine. 5126 (Analyze_Pragma): Aspect/pragma Contract_Cases can 5127 now be associated with a library level subprogram. 5128 Add circuitry to detect illegal uses of aspect/pragma Contract_Cases 5129 in a subprogram body. 5130 (Chain_Contract_Cases): Rename formal parameter Subp_Decl to 5131 Subp_Id. Remove local constant Subp. The entity of the subprogram 5132 is now obtained via the formal paramter. 5133 51342013-04-22 Ed Schonberg <schonberg@adacore.com> 5135 5136 * sem_ch3.adb (Analyze_Object_Declaration): Do not set 5137 Is_Constr_Subt_For_Unc_Aliased on the subtype of the expression, 5138 if the expression is a source entity. 5139 51402013-04-22 Yannick Moy <moy@adacore.com> 5141 5142 * exp_prag.adb, sinfo.ads, sem_prag.ads: Minor correction of typos in 5143 comments. 5144 * sem_ch6.adb (Expand_Contract_Cases): Add location to message. 5145 51462013-04-22 Thomas Quinot <quinot@adacore.com> 5147 5148 * sem_prag.adb (Fix_Error): For a pragma rewritten from another 5149 pragma, fix up error message to include original pragma name. 5150 * par_sco.adb: Minor reformatting. 5151 51522013-04-22 Robert Dewar <dewar@adacore.com> 5153 5154 * sem_prag.adb, sem_util.adb, sem_util.ads, sem_res.adb, exp_ch6.adb, 5155 sem_ch6.adb, opt.ads: Minor reformatting. 5156 51572013-04-22 Pascal Obry <obry@adacore.com> 5158 5159 * gnat_ugn.texi, prj-nmsc.adb, projects.texi: Add check for 5160 Library_Standalone and Library_Kind. 5161 51622013-04-22 Ed Schonberg <schonberg@adacore.com> 5163 5164 * exp_ch6.adb (Expand_Actuals): If the call is to an 5165 inherited operation and the actual is a by-reference type with 5166 predicates, add predicate call to post-call actions. 5167 * sem_util.adb (Is_Inherited_Operation_For_Type): Fix coding 5168 error: a type declaration has a defining identifier, not an Etype. 5169 * sem_res.adb: Restore code removed because of above error. 5170 51712013-04-22 Doug Rupp <rupp@adacore.com> 5172 5173 * init.c (__gnat_handle_vms_condition): Also match C$_SIGINT. 5174 51752013-04-22 Yannick Moy <moy@adacore.com> 5176 5177 * gnat_rm.texi, exp_util.adb, sem_prag.adb, sem_prag.ads, par-ch2.adb, 5178 opt.ads, sem_ch13.adb: Minor correction of typos in comments/doc. 5179 51802013-04-22 Vincent Celier <celier@adacore.com> 5181 5182 * prj-nmsc.adb (Check_Library_Attributes): Set Library_Dir to 5183 No_Path_Information only when Directories_Must_Exist_In_Projects 5184 is False. 5185 (Get_Directories): Set Object_Directory 5186 or Exec_Directory to No_Path_Information only when 5187 Directories_Must_Exist_In_Projects is False. 5188 51892013-04-22 Yannick Moy <moy@adacore.com> 5190 5191 * par-prag.adb, sem_attr.adb, sem_ch6.adb, sem_prag.adb, sem_warn.adb, 5192 snames.ads-tmpl, sinfo.ads, sem_util.ads: Remove all references to 5193 Pragma_Contract_Case and Name_Contract_Case. 5194 51952013-04-22 Yannick Moy <moy@adacore.com> 5196 5197 * aspects.ads, aspects.adb, sem_ch13.adb: Removal of references to 5198 Contract_Case. 5199 * gnat_ugn.texi, gnat_rm.texi Description of Contract_Case replaced by 5200 description of Contract_Cases. 5201 52022013-04-12 Robert Dewar <dewar@adacore.com> 5203 5204 * makeutl.adb, prj-nmsc.adb: Minor reformatting. 5205 52062013-04-12 Robert Dewar <dewar@adacore.com> 5207 5208 * exp_util.adb (Make_Invariant_Call): Use Check_Kind instead 5209 of Check_Enabled. 5210 * gnat_rm.texi (Check_Policy): Update documentation for new 5211 Check_Policy syntax. 5212 * sem_prag.adb (Check_Kind): Replaces Check_Enabled 5213 (Analyze_Pragma, case Check_Policy): Rework to accomodate new 5214 syntax (like Assertion_Policy). 5215 * sem_prag.ads (Check_Kind): Replaces Check_Enabled. 5216 52172013-04-12 Doug Rupp <rupp@adacore.com> 5218 5219 * init.c (SS$_CONTROLC, SS$_CONTINUE) [VMS]: New macros. 5220 (__gnat_handle_vms_condition) [VMS]: Dispatch on the Crtl/C user 5221 handler if installed. 5222 * ctrl_c.c (__gnat_install_int_handler) 5223 [VMS]: Install a dummy sigaction handler to trigger the real 5224 user handler dispatch in init.c/__gnat_handle_vms_condition. 5225 (__gnat_uninstall_int_handler) [VMS]: Likewise. 5226 52272013-04-12 Vincent Celier <celier@adacore.com> 5228 5229 * clean.adb (Parse_Cmd_Line): Set Directories_Must_Exist_In_Projects 5230 to False if switch is specified. 5231 * makeutl.adb (Initialize_Source_Record): Do not look for the 5232 object file if there is no object directory. 5233 * opt.ads (Directories_Must_Exist_In_Projects): New Boolean 5234 variable, defaulted to True. 5235 * prj-nmsc.adb (Check_Library_Attributes): Do not fail if library 5236 directory does not exist when Directories_Must_Exist_In_Projects is 5237 False. 5238 (Get_Directories): Do not fail when the object or the exec directory 5239 do not exist when Directories_Must_Exist_In_Projects is False. 5240 52412013-04-12 Robert Dewar <dewar@adacore.com> 5242 5243 * namet.adb, namet.ads: Minor addition (7 arg version of Nam_In). 5244 * exp_prag.adb, sem_ch3.adb, sem_intr.adb, sem_type.adb, exp_util.adb, 5245 sem_aux.adb, exp_ch9.adb, sem_ch7.adb, sem_ch10.adb, sem_prag.adb, 5246 par-ch2.adb, tbuild.adb, rtsfind.adb, freeze.adb, sem_util.adb, 5247 sem_res.adb, sem_attr.adb, exp_ch2.adb, prj-makr.adb, sem_elab.adb, 5248 exp_ch4.adb, sem_ch4.adb, sem_mech.adb, sem_ch6.adb, par-prag.adb, 5249 prj-nmsc.adb, exp_disp.adb, sem_ch8.adb, sem_warn.adb, par-util.adb, 5250 sem_eval.adb, exp_intr.adb, sem_ch13.adb, exp_cg.adb, lib-xref.adb, 5251 sem_disp.adb, exp_ch3.adb: Minor code reorganization (use Nam_In). 5252 52532013-04-12 Doug Rupp <rupp@adacore.com> 5254 5255 * init.c: Don't clobber condition code on VMS. 5256 52572013-04-12 Robert Dewar <dewar@adacore.com> 5258 5259 * exp_aggr.adb: Minor reformatting. 5260 * namet.ads, namet.adb (Nam_In): New functions. 5261 52622013-04-12 Robert Dewar <dewar@adacore.com> 5263 5264 * einfo.adb (Has_Dynamic_Predicate_Aspect): New flag. 5265 (Has_Static_Predicate_Aspect): New flag. 5266 * einfo.ads (Has_Dynamic_Predicate_Aspect): New flag. 5267 (Has_Static_Predicate_Aspect): New flag. 5268 * exp_ch9.adb: Minor reformatting. 5269 * exp_util.adb (Make_Invariant_Call): Check_Enabled now handles 5270 synonyms. 5271 * gnat1drv.adb: Remove setting of Debug_Pragmas_Enabled, 5272 since this switch is gone and control of Debug is done with 5273 Assertions_Enabled. 5274 * gnat_rm.texi: Update documentation for Assertion_Policy and 5275 Check_Policy pragmas. 5276 * opt.adb (Debug_Pragmas_Disabled[_Config]): Removed 5277 (Debug_Pragmas_Enabled[_Config]): Removed Since debug now 5278 controlled by Assertion_Enabled. 5279 * opt.ads (Debug_Pragmas_Disabled[_Config]): Removed 5280 (Debug_Pragmas_Enabled[_Config]): Removed Since debug now 5281 controlled by Assertion_Enabled. 5282 * par-ch2.adb (Scan_Pragma_Argument_Association): Allow new 5283 'Class forms. 5284 * sem_attr.adb: Minor reformatting. 5285 * sem_ch13.adb (Analyze_Aspect_Specification): Disable aspect 5286 if DISABLE policy applies. 5287 * sem_ch6.adb (Grab_PPC): Check original name of aspect for 5288 aspect from pragma (Process_PPCs): Properly check assertion policy. 5289 * sem_prag.adb (Check_Enabled): Rewritten for new Assertion_Policy 5290 (Check_Appicable_Policy): New procedure. 5291 (Is_Valid_Assertion_Kind): New function. 5292 (Rewrite_Assertion_Kind): New procedure. 5293 (Analyze_Pragma): Handle case of disabled assertion pragma. 5294 (Analyze_Pragma, case Assertion_Policy): Rewritten for Ada 2012. 5295 (Analyze_Pragma, case Check): Deal with 'Class possibilities. 5296 (Analyze_Pragma, case Check_Policy): Deal with 'Class possibilities. 5297 (Analyze_Pragma, case Contract_Class): New handling of ignored pragma. 5298 (Analyze_Pragma, case Debug): New control with Assertion_Policy. 5299 (Analyze_Pragma, case Debug_Policy): Now consistent with 5300 Assertion_Policy. 5301 (Analyze_Pragma, case Loop_Invariant): New handling of ignored 5302 pragma. 5303 (Analyze_Pragma, case Loop_Variant): New handling of ignored pragma. 5304 (Analyze_Pragma, case Precondition): Use proper name for Check pragma. 5305 (Analyze_Pragma, case Check_Enabled): Rewritten for new policy stuff. 5306 * sem_prag.ads (Check_Enabled): Rewritten for new 5307 Assertion_Policy stuff. 5308 (Check_Appicable_Policy): New procedure. 5309 * sinfo.adb (Is_Disabled): New flag. 5310 (Is_Ignored): New flag. 5311 * sinfo.ads (Is_Disabled): New flag. 5312 (Is_Ignored): New flag. 5313 (N_Pragma_Argument_Association): New 'Class forms. 5314 * snames.ads-tmpl: New names Name_uPre, Name_uPost, 5315 Name_uType_Invariant, Name_uInvariant. 5316 * switch-c.adb: Remove setting of Debug_Pragmas_Enabled for -gnata. 5317 * tree_io.ads (ASIS_Version_Number): Updated (remove 5318 read write of obsolete flags Debug_Pragmas_Disabled and 5319 Debug_Pragmas_Enabled. 5320 53212013-04-12 Ed Schonberg <schonberg@adacore.com> 5322 5323 * exp_aggr.adb (Get_Explicit_Discriminant_Value): Subsidiary 5324 of Build_Record_Aggr_Code, used to retrieve explicit values 5325 for inherited discriminants in an extension aggregate, when the 5326 ancestor type is unconstrained. 5327 53282013-04-12 Ed Schonberg <schonberg@adacore.com> 5329 5330 * sem_attr.adb (Check_Stream_Attribute): If restriction 5331 No_Default_Stream_Attributes is active, it is illegal to use a 5332 predefined elementary type stream attribute either by itself, 5333 or more importantly as part of the attribute subprogram for a 5334 composite type. However, if the broader restriction No_Streams 5335 is active, then stream operations are not generated, and there 5336 is no error. 5337 53382013-04-12 Robert Dewar <dewar@adacore.com> 5339 5340 * gnatbind.adb: Minor reformatting. 5341 53422013-04-12 Bob Duff <duff@adacore.com> 5343 5344 * sem_attr.adb (Analyze_Access_Attribute): Treat P'Access like a 5345 call only in the static elaboration model. 5346 53472013-04-12 Hristian Kirtchev <kirtchev@adacore.com> 5348 5349 * sem_prag.adb (Analyze_Input_List): Detect an illegal dependency 5350 clause where both input and output lists are null. 5351 (Analyze_Pragma): Update the grammar of pragma Depends. 5352 53532013-04-12 Vincent Celier <celier@adacore.com> 5354 5355 * gnatbind.adb (No_Restriction_List): Exclude restrictions that 5356 take a parameter value, not a count. 5357 * prj.ads, prj.adb (Remove_All_Restricted_Languages): New procedure. 5358 * projects.texi: Complete documentation of attribute Roots. 5359 53602013-04-12 Thomas Quinot <quinot@adacore.com> 5361 5362 * exp_ch3.adb, exp_util.ads, checks.adb, freeze.adb, sem_attr.adb, 5363 sem_ch3.adb: Minor reformatting. 5364 * exp_ch4.adb (Size_In_Storage_Elements): Minor documentation 5365 improvement: note that the computation is pessimistic for bit 5366 packed arrays. 5367 * gnat_rm.texi (Range_Length): Fix minor error in description 5368 of attribute. 5369 53702013-04-12 Hristian Kirtchev <kirtchev@adacore.com> 5371 5372 * aspects.adb (Find_Aspect): New routine. 5373 (Find_Value_Of_Aspect): New routine. 5374 (Has_Aspect): Reimplemented. 5375 * aspects.ads (Find_Aspect): New routine. 5376 (Find_Value_Of_Aspect): New routine, previously known as Find_Aspect. 5377 * exp_ch5.adb (Expand_Iterator_Loop): Update the call to Find_Aspect. 5378 * exp_util.adb (Is_Iterated_Container): Update the call to Find_Aspect. 5379 * sem_ch4.adb (Try_Container_Indexing): Update calls to Find_Aspect. 5380 * sem_ch5.adb (Analyze_Iterator_Specification): Update 5381 the call to Find_Aspect. Use function Has_Aspect for better 5382 readability. 5383 (Preanalyze_Range): Use function Has_Aspect for better readability. 5384 * sem_ch13.adb (Check_One_Function): Update the call to Find_Aspect. 5385 * sem_prag.adb (Analyze_Pragma): There is no longer need to 5386 look at the parent to extract the corresponding pragma for 5387 aspect Global. 5388 53892013-04-12 Robert Dewar <dewar@adacore.com> 5390 5391 * checks.adb, sem_elab.adb, repinfo.adb, sem_ch4.adb, restrict.adb, 5392 restrict.ads: Minor reformatting. 5393 53942013-04-12 Ed Schonberg <schonberg@adacore.com> 5395 5396 * lib-xref.adb: Retrieve original name of classwide type if any. 5397 53982013-04-12 Thomas Quinot <quinot@adacore.com> 5399 5400 * exp_ch11.ads: Minor reformatting. 5401 54022013-04-12 Hristian Kirtchev <kirtchev@adacore.com> 5403 5404 * aspects.adb: Alphabetize subprogram bodies in this unit. Add 5405 an entry for Aspect_Ghost in the table of canonical aspects. 5406 (Has_Aspect): New routine. 5407 * aspects.ads: Add Aspect_Ghost to all relevant 5408 tables. Alphabetize subprograms in this unit. 5409 (Has_Aspect): New routine. 5410 * einfo.adb: Add with and use clauses for Aspects. 5411 (Is_Ghost_Function): New routine. 5412 * einfo.ads: Add new synthesized attribute Is_Ghost_Function and 5413 update the structure of the related nodes. 5414 (Is_Ghost_Function): New routine. 5415 * exp_ch4.adb (Find_Enclosing_Context): Use routine 5416 Is_Body_Or_Package_Declaration to terminate a search. 5417 (Is_Body_Or_Unit): Removed. 5418 * exp_util.adb (Within_Case_Or_If_Expression): Use routine 5419 Is_Body_Or_Package_Declaration to terminate a search. 5420 * par-prag.adb: Add pragma Ghost to the list of pragmas that do 5421 not need special processing by the parser. 5422 * sem_attr.adb (Analyze_Access_Attribute): Detect an 5423 illegal use of 'Access where the prefix is a ghost function. 5424 (Analyze_Attribute): Use routine Is_Body_Or_Package_Declaration 5425 to terminate a search. (Check_References_In_Prefix): Use routine 5426 Is_Body_Or_Package_Declaration to terminate a search. 5427 * sem_ch4.adb (Analyze_Call): Mark a function when it appears 5428 inside an assertion expression. Verify the legality of a call 5429 to a ghost function. 5430 (Check_Ghost_Function_Call): New routine. 5431 * sem_ch6.adb (Analyze_Function_Call): Code reformatting. Move 5432 the setting of attribute In_Assertion_Expression to Analyze_Call. 5433 (Check_Overriding_Indicator): Detect an illegal attempt to 5434 override a function with a ghost function. 5435 * sem_ch12.adb (Preanalyze_Actuals): Detect an illegal use of 5436 a ghost function as a generic actual. 5437 * sem_elab.adb (Check_Internal_Call_Continue): Update the call 5438 to In_Assertion. 5439 * sem_prag.adb: Add an entry for pragma Ghost in the table 5440 of significant arguments. 5441 (Analyze_Pragma): Do not analyze 5442 an "others" case guard. Add processing for pragma Ghost. Use 5443 Preanalyze_Assert_Expression when analyzing the expression of 5444 pragmas Loop_Invariant and Loop_Variant. 5445 * sem_util.adb (Get_Subprogram_Entity): Reimplemented. 5446 (Is_Body_Or_Package_Declaration): New routine. 5447 * sem_util.ads: Alphabetize subprotrams in this unit. 5448 (Is_Body_Or_Package_Declaration): New routine. 5449 * sinfo.adb (In_Assertion): Rename to In_Assertion_Expression. 5450 (Set_In_Assertion): Rename to Set_In_Assertion_Expression. 5451 * sinfo.ads: Rename flag In_Assertion to In_Assertion_Expression 5452 to better reflect its use. Update all places that mention the flag. 5453 (In_Assertion): Rename to In_Assertion_Expression. Update 5454 related pragma Inline. (Set_In_Assertion): Rename to 5455 Set_In_Assertion_Expression. Update related pragma Inline. 5456 * snames.ads-tmpl: Add new predefined name Ghost. Add new pragma 5457 id Pragma_Ghost. 5458 54592013-04-12 Arnaud Charlet <charlet@adacore.com> 5460 5461 * sem_prag.adb (Set_Imported): Do not generate error for multiple 5462 Import in CodePeer mode. 5463 * s-rident.ads: Fix minor typo. 5464 54652013-04-12 Ed Schonberg <schonberg@adacore.com> 5466 5467 * checks.adb (Insert_Valid_Check): Do not insert validity check 5468 in the body of the generated predicate function, to prevent 5469 infinite recursion. 5470 54712013-04-12 Ed Schonberg <schonberg@adacore.com> 5472 5473 * s-rident.ads: Add various missing Ada 2012 restrictions: 5474 No_Access_Parameter_Allocators, No_Coextensions, 5475 No_Use_Of_Attribute, No_Use_Of_Pragma. 5476 * snames.ads-tmpl: Add corresponding names. 5477 * restrict.ads restrict.adb: Subprograms and data structures to 5478 handle aspects No_Use_Of_Attribute and No_Use_Of_Pragma. 5479 * sem_ch4.adb: Correct name of restrictions is 5480 No_Standard_Allocators_After_Elaboration. 5481 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Check 5482 violation of restriction No_Use_Of_Attribute. 5483 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): 5484 Set restrictions No_Use_Of_Pragma and No_Use_Of_Attribute. 5485 (Analyze_Pragma): Check violation of restriction No_Use_Of_Pragma. 5486 * sem_res.adb: Check restrictions No_Access_Parameter_Allocators 5487 and No_Coextensions. 5488 * bcheck.adb: Correct name of restrictions is 5489 No_Standard_Allocators_After_Elaboration. 5490 * gnatbind.adb: Correct name of restrictions is 5491 No_Standard_Allocators_After_Elaboration. 5492 54932013-04-12 Hristian Kirtchev <kirtchev@adacore.com> 5494 5495 * sem_prag.adb (Analyze_Pragma, (Check_Mode_Restriction_In_Function): 5496 Correct error message format. 5497 54982013-04-12 Robert Dewar <dewar@adacore.com> 5499 5500 * sem_attr.adb: Minor reformatting. 5501 55022013-04-12 Ed Schonberg <schonberg@adacore.com> 5503 5504 * sem_elab.adb (Within_Elaborate_All): Do not examine a context 5505 item that has not been analyzed, because the unit may have errors, 5506 or the context item may come from a proper unit inserted at the 5507 point of a stub and not analyzed yet. 5508 55092013-04-12 Thomas Quinot <quinot@adacore.com> 5510 5511 * gnat1drv.adb, repinfo.adb, repinfo.ads (Repinfo.List_Array_Info, 5512 List_Record_Info): Also include scalar storage order information in 5513 output. 5514 55152013-04-12 Yannick Moy <moy@adacore.com> 5516 5517 * sem_ch6.adb (Process_Contract_Cases): Update code to apply to 5518 Contract_Cases instead of Contract_Case pragma. 5519 55202013-04-12 Robert Dewar <dewar@adacore.com> 5521 5522 * a-cfdlli.ads, g-socket.adb, s-fileio.adb: Minor reformatting. 5523 55242013-04-12 Yannick Moy <moy@adacore.com> 5525 5526 * sem_attr.adb (Analyze_Attribute): Update analyse of 5527 Attribute_Old and Attribute_Result so they are allowed in the 5528 right-hand-side of an association in a Contract_Cases pragma. 5529 * sem_prag.adb (Analyze_CTC_In_Decl_Part): Add pre-analysis of 5530 the expressions in a Contract_Cases pragma. 5531 55322013-04-12 Robert Dewar <dewar@adacore.com> 5533 5534 * sem.ads, opt.ads: Minor comment edits. 5535 * sem_warn.adb, sem_ch6.adb: Minor reformatting. 5536 55372013-04-12 Claire Dross <dross@adacore.com> 5538 5539 * a-cfdlli.adb a-cfdlli.ads (List, Not_No_Element, Iterate, 5540 Reverse_Iterate, Query_Element, Update_Element, Read, Write): Removed, 5541 not suitable for formal analysis. 5542 55432013-04-12 Ed Schonberg <schonberg@adacore.com> 5544 5545 * sem_prag.adb (Analyze_Abstract_State): Use Defining entity 5546 to locate package entity, which may be a child unit. 5547 55482013-04-12 Thomas Quinot <quinot@adacore.com> 5549 5550 * g-socket.adb, g-socket.ads (Connect_Socket, version with timeout): If 5551 the specified timeout is 0, do not attempt to determine whether the 5552 connection succeeded. 5553 55542013-04-12 Doug Rupp <rupp@adacore.com> 5555 5556 * s-fileio.adb (Form_RMS Context_Key): Fix some thinkos. 5557 55582013-04-12 Doug Rupp <rupp@adacore.com> 5559 5560 * s-fileio.adb: Minor reformatting. 5561 55622013-04-12 Ed Schonberg <schonberg@adacore.com> 5563 5564 * sem_warn.adb (Check_Infinite_Loop_Warning): Do not warn if 5565 the last statement in the analyzed loop is an unconditional 5566 exit statement. 5567 55682013-04-12 Robert Dewar <dewar@adacore.com> 5569 5570 * opt.ads (Style_Check_Main): New switch. 5571 * sem.adb (Semantics): Set Style_Check flag properly for new 5572 unit to be analyzed. 5573 * sem_ch10.adb (Analyze_With_Clause): Don't reset Style_Check, 5574 the proper setting of this flag is now part of the Semantics 5575 procedure. 5576 * switch-c.adb (Scan_Front_End_Switches): Set Style_Check_Main 5577 for -gnatg and -gnaty 5578 55792013-04-12 Doug Rupp <rupp@adacore.com> 5580 5581 * s-crtl.ads (fopen, freopen): Add vms_form parameter 5582 * i-cstrea.ads (fopen, freopen): Likewise. 5583 * adaint.h (__gnat_fopen, __gnat_freopen): Likewise. 5584 * adaint.c (__gnat_fopen, __gnat_freopen): Likewise. 5585 [VMS]: Split out RMS keys and call CRTL function appropriately. 5586 * s-fileio.adb (Form_VMS_RMS_Keys, Form_RMS_Context_Key): New 5587 subprograms. 5588 (Open, Reset): Call Form_VMS_RMS_Keys. Call fopen,freopen with 5589 vms_form 5590 * gnat_rm.texi: Document implemented RMS keys. 5591 55922013-04-12 Hristian Kirtchev <kirtchev@adacore.com> 5593 5594 * sem_ch13.adb (Analyze_Aspect_Specifications): 5595 Insert the corresponding pragma for aspect Abstract_State at 5596 the top of the visible declarations of the related package. 5597 Previously this was only done when the package is a compilation 5598 unit. 5599 56002013-04-12 Arnaud Charlet <charlet@adacore.com> 5601 5602 * gnat_ugn.texi: Further menu clean ups. 5603 * sem_prag.adb, opt.ads: Minor reformatting. 5604 * sem_util.ads: Minor comment fix. 5605 56062013-04-12 Hristian Kirtchev <kirtchev@adacore.com> 5607 5608 * sem_ch13.adb (Analyze_Aspect_Specifications): Aspect 5609 Depends is now a delayed aspect. The delay is required 5610 due to the interplay between aspects Depends and Global. 5611 (Check_Aspect_At_Freeze_Point): Add an entry for aspect Depends. 5612 * sem_prag.adb: Reformat various error messages. 5613 (Add_Item): New subsidiary routine. 5614 (Analyze_Pragma): Add new variables 5615 Global_Seen, Result_Seen, Subp_Inputs and Subp_Outputs. The 5616 analysis of pragma Depends now has the capability to check 5617 the proper mode and usage of subprogram inputs and outputs. 5618 (Appears_In): New routine. 5619 (Check_Function_Return): New routine. 5620 (Check_Mode): New routine. 5621 (Check_Usage): New routine. 5622 (Collect_Subprogram_Inputs_Outputs): New routine. 5623 56242013-04-12 Bob Duff <duff@adacore.com> 5625 5626 * par-ch7.adb (P_Package): Initialize Sloc in the newly-pushed scope 5627 stack entry. 5628 56292013-04-12 Robert Dewar <dewar@adacore.com> 5630 5631 * switch-c.adb: Minor fix to wording of error message for 5632 -gnatet/eT. 5633 56342013-04-12 Robert Dewar <dewar@adacore.com> 5635 5636 * impunit.adb: Add s-multip and s-mudido to list of impl defined 5637 system units. 5638 * gnat_rm.texi: Add documentation for 5639 System.Multiprocessors[.Dispatching_Domains]. 5640 56412013-04-12 Ben Brosgol <brosgol@adacore.com> 5642 5643 * gnat_ugn.texi: Completion of menu cleanups. 5644 56452013-04-12 Arnaud Charlet <charlet@adacore.com> 5646 5647 * sem_prag.adb (Diagnose_Multiple_Pragmas): Relax the rules 5648 in Relaxed_RM_Semantics. 5649 56502013-04-12 Arnaud Charlet <charlet@adacore.com> 5651 5652 * set_targ.adb (elab code): Add support for non gcc back-ends 5653 where save_argv is null. 5654 56552013-04-12 Robert Dewar <dewar@adacore.com> 5656 5657 * gnat1drv.adb (Gnat1drv): Test Target_Dependent_Info_Write_Name. 5658 * opt.ads (Target_Dependent_Info_Read): Add _Name, now an access 5659 type (Target_Dependent_Info_Write): Add _Name, now an access type. 5660 * set_targ.adb (Write_Target_Dependent_Values): Use name 5661 from -gnatet switch stored in Target_Dependent_Info_Write_Name 5662 (Read_Target_Dependent_Values): Use name from -gnateT switch 5663 stored in Target_Dependent_Info_Read_Name. 5664 * switch-c.adb: New form of -gnatet and -gnateT switches. 5665 * usage.adb: New form of -gnatet and -gnateT switches with 5666 file name. 5667 56682013-04-11 Eric Botcazou <ebotcazou@adacore.com> 5669 5670 * gcc-interface/decl.c (elaborate_expression_1): Skip only constant 5671 arithmetics when looking for a read-only variable in the expression. 5672 56732013-04-11 Javier Miranda <miranda@adacore.com> 5674 5675 * check.ads, exp_ch6.adb (Install_Null_Excluding_Check): No check in 5676 interface thunks since it is performed at the caller side. 5677 (Expand_Simple_Function_Return): No accessibility check needed in thunks 5678 since the check is done by the target routine. 5679 56802013-04-11 Ed Schonberg <schonberg@adacore.com> 5681 5682 * sem_prag.adb (Analyze_Pragma, case Priority): pre-analyze 5683 expression with type Any_Priority. 5684 * exp_ch9.adb (Initialize_Protection): Check that the value 5685 of the priority expression is within the bounds of the proper 5686 priority type. 5687 56882013-04-11 Robert Dewar <dewar@adacore.com> 5689 5690 * sem_prag.adb, prj-env.adb: Minor reformatting. 5691 56922013-04-11 Ben Brosgol <brosgol@adacore.com> 5693 5694 * gnat_ugn.texi: Clean ups. 5695 56962013-04-11 Yannick Moy <moy@adacore.com> 5697 5698 * set_targ.adb: Minor comment update. 5699 57002013-04-11 Pascal Obry <obry@adacore.com> 5701 5702 * gnat_ugn.texi: Remove obsolete comment about DLL calling 5703 convention. 5704 57052013-04-11 Javier Miranda <miranda@adacore.com> 5706 5707 * exp_ch6.adb (Expand_Call): For the call to the target primitive 5708 of an interface thunks do not compute the extra actuals; just 5709 propagate the extra actuals received by the thunk. 5710 * exp_disp.adb (Expand_Interface_Thunk): Decorate new attribute 5711 Thunk_Entity. 5712 * sem_ch6.adb (Create_Extra_Formals): Do not generate extra 5713 formals in interface thunks whose target primitive has no extra 5714 formals. 5715 57162013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 5717 5718 * sem_prag.adb (Analyze_Pragma): Detect 5719 a renaming by looking at the Renamed_Object attribute. 5720 (Is_Renaming): Removed. 5721 57222013-04-11 Vincent Celier <celier@adacore.com> 5723 5724 * prj-env.adb (Initialize_Default_Project_Path): Take 5725 into account a project path file, specified by environment 5726 variable GPR_PROJECT_PATH_FILE, before taking into account 5727 GPR_PROJECT_PATH. 5728 * projects.texi: Add documentation for GPR_PROJECT_PATH_FILE 5729 57302013-04-11 Ed Schonberg <schonberg@adacore.com> 5731 5732 * a-cdlili.adb, a-cdlili.ads, a-cihama.adb, a-cihama.ads, a-coinve.adb, 5733 a-coinve.ads, a-ciorse.adb, a-ciorse.ads, a-coorma.adb, a-coorma.ads, 5734 a-cfdlli.adb, a-cfdlli.ads, a-cborma.adb, a-cborma.ads, a-cidlli.adb, 5735 a-cidlli.ads, a-ciormu.adb, a-ciormu.ads, a-cihase.adb, a-cihase.ads, 5736 a-cohama.adb, a-cohama.ads, a-coorse.adb, a-coorse.ads, a-cbhama.adb, 5737 a-cbhama.ads, a-cborse.adb, a-cborse.ads, a-ciorma.adb, a-cobove.adb, 5738 a-ciorma.ads, a-cobove.ads, a-coormu.adb, a-coormu.ads, a-cohase.adb, 5739 a-cohase.ads, a-cbdlli.adb, a-cbdlli.ads, a-cbhase.adb, a-cbhase.ads: 5740 Move Iterator operations from body to private part of spec. 5741 57422013-04-11 Eric Botcazou <ebotcazou@adacore.com> 5743 5744 * ttypes.ads, get_targ.ads: More minor rewording of comments. 5745 57462013-04-11 Johannes Kanig <kanig@adacore.com> 5747 5748 * debug.adb: Document use of switch -gnatd.Z. 5749 57502013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 5751 5752 * sem_prag.adb (Analyze_Pragma): Both pragma Depends and Global can now 5753 support renamings of entire objects. Legal renamings are replaced by 5754 the object they rename. 5755 (Is_Renaming): New routine. 5756 57572013-04-11 Yannick Moy <moy@adacore.com> 5758 5759 * set_targ.adb, opt.ads: Minor changes in comments. 5760 57612013-04-11 Ben Brosgol <brosgol@adacore.com> 5762 5763 * gnat_ugn.texi: Minor clean ups. 5764 57652013-04-11 Robert Dewar <dewar@adacore.com> 5766 5767 * nlists.ads, nlists.adb, treepr.adb, treepr.ads: Move debugging 5768 function p from Nlists to Treepr. 5769 57702013-04-11 Ed Schonberg <schonberg@adacore.com> 5771 5772 * sem_disp.adb (Check_Dispatching_Context): If the context is 5773 a contract for a null procedure defer error reporting until 5774 postcondition body is created. 5775 * exp_ch13.adb (Expand_N_Freeze_Entity): If the entity is a 5776 null procedure, complete the analysis of its contracts so that 5777 calls within classwide conditions are properly rewritten as 5778 dispatching calls. 5779 57802013-04-11 Thomas Quinot <quinot@adacore.com> 5781 5782 * sem_ch10.adb, sem_ch12.adb: Minor reformatting. 5783 57842013-04-11 Robert Dewar <dewar@adacore.com> 5785 5786 * exp_attr.adb, sem_res.adb, sem_attr.adb: Minor reformatting. 5787 57882013-04-11 Robert Dewar <dewar@adacore.com> 5789 5790 * atree.adb, atree.ads (Node31): New function. 5791 (Set_Node31): New procedure. 5792 57932013-04-11 Robert Dewar <dewar@adacore.com> 5794 5795 * errout.ads: Minor typo correction. 5796 57972013-04-11 Javier Miranda <miranda@adacore.com> 5798 5799 * einfo.ad[sb] (Thunk_Entity/Set_Thunk_Entity): New attribute. 5800 58012013-04-11 Robert Dewar <dewar@adacore.com> 5802 5803 * back_end.adb (Register_Back_End_Types): Moved to Get_Targ 5804 * back_end.ads (C_String): Moved to Get_Targ 5805 (Register_Type_Proc): Moved to Get_Targ (Register_Back_End_Types): 5806 Moved to Get_Targ. 5807 * cstand.adb (Register_Float_Type): New interface 5808 (Create_Back_End_Float_Types): Use entries in FPT_Mode_Table. 5809 * get_targ.adb (Register_Back_End_Types): Moved here from 5810 Back_End. 5811 * get_targ.ads (C_String): Moved here from Back_End 5812 (Register_Type_Proc): Moved here from Back_End 5813 (Register_Back_End_Types): here from Back_End. 5814 * gnat1drv.adb (GGnat11drv): Add call to 5815 Write_Target_Dependent_Values; 5816 * lib-writ.ads, lib-writ.adb (Write_ALI): Remove section writing 5817 obsolete target dependent info. 5818 * opt.ads (Generate_Target_Dependent_Info): 5819 Removed (Target_Dependent_Info_Read): New flag 5820 (Target_Dependent_Info_Write): New flag 5821 * output.adb: Minor comment change 5822 * s-os_lib.ads: Minor reformatting 5823 * set_targ.ads, set_targ.adb: Minor reformatting. 5824 * switch-c.adb (Scan_Switches.First_Ptr): New variable 5825 (Scan_Front_End_Switches): Check -gnatd.b, -gnateT come first 5826 (Scan_Front_End_Switches): Handle -gnatet, -gnateT 5827 * ttypes.ads: Remove documentation section on target dependent 5828 info in ali file Remove four letter codes, no longer used Instead 5829 of using Get_Targ.Get_xxx, we use Set_Targ.xxx 5830 * usage.adb: Add usage lines for -gnatet/-gnateT 5831 * gcc-interface/Make-lang.in: Update dependencies. 5832 58332013-04-11 Thomas Quinot <quinot@adacore.com> 5834 5835 * sem_ch4.adb: Update documentation. 5836 * sinfo.ads (N_Expression_With_Actions): Ditto. 5837 58382013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 5839 5840 * sem_ch13.adb (Analyze_Aspect_Specifications): 5841 Add a guard to prevent the double insertion of the same aspect 5842 into a rep item list. This previously led to a circularity. 5843 58442013-04-11 Ed Schonberg <schonberg@adacore.com> 5845 5846 * sem_attr.adb (Eval_Attribute, case 'Access): Reject attribute 5847 reference if the prefix is the dereference of an anonymous access 5848 to subprogram type. 5849 * exp_attr.adb (Expand_N_Attribute_Reference, Access_Cases): Handle 5850 properly a reference to the current instance of a protected type 5851 from within a protected subprogram. 5852 * sem_res.adb (Find_Unique_Access_Type): Treat 5853 Attribute_Access_Type like Allocator_Type when resolving an 5854 equality operator. 5855 58562013-04-11 Arnaud Charlet <charlet@adacore.com> 5857 5858 * xgnatugn.adb: Remove obsolete comments. 5859 58602013-04-11 Robert Dewar <dewar@adacore.com> 5861 5862 * back_end.ads, back_end.adb: Minor reformatting. 5863 * set_targ.ads, set_targ.adb: New files. 5864 58652013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 5866 5867 * sem_case.adb (Check_Against_Predicate): New routine. 5868 (Check_Choices): When the type covered by the list of choices 5869 is a static subtype with a static predicate, check all choices 5870 agains the predicate. 5871 (Issue_Msg): All versions removed. 5872 (Missing_Choice): New routines. 5873 * sem_ch4.adb: Code and comment reformatting. 5874 (Analyze_Case_Expression): Do not check the choices when the case 5875 expression is being preanalyzed and the type of the expression 5876 is a subtype with a static predicate. 5877 (Has_Static_Predicate): New routine. 5878 * sem_ch13.adb: Code and comment reformatting. (Build_Range): 5879 Always build a range even if the low and hi bounds denote the 5880 same value. This is needed by the machinery in Check_Choices. 5881 (Build_Static_Predicate): Always build a range even if the low and 5882 hi bounds denote the same value. This is needed by the machinery 5883 in Check_Choices. 5884 58852013-04-11 Robert Dewar <dewar@adacore.com> 5886 5887 * einfo.ads, sem_util.adb, exp_ch6.adb, xgnatugn.adb: Minor 5888 reformatting. 5889 58902013-04-11 Doug Rupp <rupp@adacore.com> 5891 5892 * gnatlink.adb: Fold program basename to lower case on VMS for 5893 consistency. 5894 58952013-04-11 Matthew Heaney <heaney@adacore.com> 5896 5897 * a-rbtgbo.adb (Generic_Equal): Initialize Result variable before 5898 entering loop. 5899 59002013-04-11 Arnaud Charlet <charlet@adacore.com> 5901 5902 * xgnatugn.adb: Remove dead code (handling of @ifset/@ifclear). 5903 59042013-04-11 Arnaud Charlet <charlet@adacore.com> 5905 5906 * gnat_ugn.texi: Remove some use of ifset in menus. Not strictly 5907 needed, and seems to confuse some versions of makeinfo. 5908 59092013-04-11 Javier Miranda <miranda@adacore.com> 5910 5911 * einfo.adb (Is_Thunk): Remove assertion. 5912 (Set_Is_Thunk): Add assertion. 5913 * einfo.ads (Is_Thunk): Complete documentation. 5914 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Code cleanup. 5915 * exp_ch3.ad[sb] (Is_Variable_Size_Array): Moved to sem_util 5916 (Is_Variable_Size_Record): Moved to sem_util 5917 * exp_ch6.adb (Expand_Call): Code cleanup. 5918 (Expand_N_Extended_Return_Statement): Code cleanup. 5919 (Expand_Simple_Function_Return): Code cleanup. 5920 * exp_disp.adb Remove dependency on exp_ch3 5921 (Expand_Interface_Thunk): Add minimum decoration needed to set 5922 attribute Is_Thunk. 5923 * sem_ch3.ad[sb] (Is_Constant_Bound): moved to sem_util 5924 * sem_util.ad[sb] (Is_Constant_Bound): Moved from 5925 sem_ch3 (Is_Variable_Size_Array): Moved from exp_ch3 5926 (Is_Variable_Size_Record): Moved from exp_ch3 5927 59282013-04-11 Javier Miranda <miranda@adacore.com> 5929 5930 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Do 5931 not add cleanup actions in thunks associated with interface types. 5932 * exp_ch3.ad[sb] (Is_Variable_Size_Record): Move declaration to 5933 the package spec. 5934 * exp_ch4.adb (Tagged_Conversion): Update call to 5935 Expand_Interface_Conversion since the parameter Is_Static is no 5936 longer needed. 5937 * exp_ch6.adb (Expand_N_Extended_Return_Statement): Adding 5938 assertion to ensure that interface thunks are never handled by 5939 this routine. 5940 (Expand_N_Simple_Function_Return): Do not rewrite this statement 5941 as an extended return statement in interface thunks, and do not 5942 perform copy in the secondary stack if the return statement is 5943 located in a thunk. 5944 * exp_disp.adb (Expand_Dispatching_Call): No longer displace 5945 the pointer to the returned object in functions returning interface 5946 types. 5947 (Expand_Interface_Thunk): For functions returning interface types 5948 displace the pointer to the returned object. 5949 (Expand_Interface_Conversion): Remove formal 5950 Is_Static since this subprogram can now evaluate it locally. 5951 * sem_ch3.adb (Add_Internal_Interface_Entities): For functions 5952 propagate the type returned by the covered interface primitive to 5953 the internal interface entity. Needed by the thunk to generate 5954 the code which displaces "this" to reference the corresponding 5955 secondary dispatch table. 5956 * sem_disp.adb (Propagate_Tag): Update call to 5957 Expand_Interface_Conversion since the parameter Is_Static is no 5958 longer needed. 5959 * sem_res.adb (Resolve_Type_Conversion): Update calls to 5960 Expand_Interface_Conversion since the parameter Is_Static is no 5961 longer needed plus code cleanup. 5962 59632013-04-11 Eric Botcazou <ebotcazou@adacore.com> 5964 5965 * init.c (RETURN_ADDR_OFFSET): Delete as unused. 5966 59672013-04-11 Robert Dewar <dewar@adacore.com> 5968 5969 * a-crbtgk.adb, a-ciorse.adb, a-crbtgo.adb, a-coorse.adb, a-rbtgbo.adb, 5970 a-cborse.adb, a-rbtgso.adb, exp_ch3.adb: Minor reformatting. 5971 59722013-04-11 Yannick Moy <moy@adacore.com> 5973 5974 * exp_ch4.adb (Expand_N_Selected_Component): Do not expand 5975 discriminant check for Unchecked_Union. 5976 * sem_res.adb (Resolve_Selected_Component): Set flag 5977 Do_Discriminant_Check even when expansion is not performed. 5978 * sinfo.ads (Do_Discriminant_Check): Update documentation for the case 5979 of Unchecked_Union. 5980 59812013-04-11 Thomas Quinot <quinot@adacore.com> 5982 5983 * sem_ch13.adb (Same_Representation): Two types with different scalar 5984 storage order never have the same representation. 5985 59862013-04-11 Arnaud Charlet <charlet@adacore.com> 5987 5988 * xgnatugn.adb (Push_Conditional): Simplify handling, 5989 no longer need to keep track of "excluding" sections. 5990 (Currently_Excluding): Removed. 5991 (Process_Source_File): 5992 Set unw/vms flag so that texinfo can do the whole handling of 5993 @ifset/@ifclear sections. Fix handling of nested @ifset/@ifclear 5994 sections. 5995 * gnat_ugn.texi: Add a section on performing unassisted install 5996 on Windows. 5997 59982013-04-11 Johannes Kanig <kanig@adacore.com> 5999 6000 * debug.adb: Document usage of -gnatd.Q switch. 6001 60022013-04-11 Matthew Heaney <heaney@adacore.com> 6003 6004 * a-crbtgk.adb (Ceiling, Find, Floor): Adjust locks 6005 before element comparisons. 6006 (Generic_Conditional_Insert, Generic_Conditional_Insert_With_Hint): 6007 Ditto. 6008 * a-crbtgo.adb, a-rbtgbo.adb (Generic_Equal): Adjust locks before 6009 element comparisons. 6010 * a-rbtgso.adb (Difference, Intersection): Adjust locks 6011 before element comparisons. 6012 (Is_Subset, Overlap): Ditto 6013 (Symmetric_Difference, Union): Ditto 6014 * a-btgbso.adb (Set_Difference, Set_Intersection): Adjust locks 6015 before element comparisons. 6016 (Set_Subset, Set_Overlap): Ditto 6017 (Set_Symmetric_Difference, Set_Union): Ditto 6018 * a-coorse.adb, a-ciorse.adb, a-cborse.adb 6019 (Update_Element_Preserving_Key): Adjust locks before element 6020 comparisons (Replace_Element): Ditto 6021 60222013-04-11 Pascal Obry <obry@adacore.com> 6023 6024 * prj-attr.adb, projects.texi, snames.ads-tmpl: Remove Build_Slaves 6025 attribute. 6026 60272013-04-11 Ed Schonberg <schonberg@adacore.com> 6028 6029 * exp_ch3.adb (Build_Equivalent_Aggregate): Subsidiary of 6030 Expand_N_Object_Declaration, used to construct an aggregate 6031 with static components whenever possible, so that objects of a 6032 discriminated type can be initialized without calling the init. 6033 proc for the type. 6034 60352013-04-11 Vincent Celier <celier@adacore.com> 6036 6037 * prj-makr.adb (Process_Directory): On VMS, always delete, 6038 then recreate the temporary file with Create_Output_Text_File, 6039 otherwise the output redirection does not work properly. 6040 60412013-04-11 Eric Botcazou <ebotcazou@adacore.com> 6042 6043 * urealp.ads: Fix minor typo. 6044 60452013-04-11 Fabien Chouteau <chouteau@adacore.com> 6046 6047 * cio.c (mktemp): Don't use tmpnam function from the 6048 system on VxWorks in kernel mode. 6049 60502013-04-11 Vincent Celier <celier@adacore.com> 6051 6052 * make.adb (Compile): Clarify the error message reported 6053 when gnatmake refuses to compile a runtime source. 6054 (Start_Compile_If_Possible): Ditto. 6055 60562013-04-11 Vincent Celier <celier@adacore.com> 6057 6058 * gnat_ugn.texi: Add documentation about -gnatc and gnatmake. 6059 60602013-04-11 Vincent Celier <celier@adacore.com> 6061 6062 * switch-c.adb: Document internal switches. 6063 * usage.adb: Remove lines for internal switches: -gnatea, -gnateO, 6064 -gnatez and -gnateO. 6065 60662013-04-11 Ed Schonberg <schonberg@adacore.com> 6067 6068 * par-ch6.adb (P_Subprogram): Attach aspects to subprogram stub. 6069 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Allow aspects on 6070 subprogram stubs. 6071 * sem_ch13.adb (Analyze_Aspect_Specifications): Analyze generated 6072 pre/post pragmas at once before analyzing the proper body. 6073 * sem_prag.adb (Chain_PPC): Handle pragma that comes from an 6074 aspect on a subprogram stub. 6075 * aspects.adb: Aspect specifications can appear on a 6076 subprogram_Body_Stub. 6077 60782013-04-11 Vincent Celier <celier@adacore.com> 6079 6080 * gnatname.adb: Minor comment fix. 6081 60822013-04-11 Vincent Celier <celier@adacore.com> 6083 6084 * prj-makr.adb (Process_Directory): Create a new temporary 6085 file for each invocation of the compiler, in directory pointed 6086 by environment variable TMPDIR if it exists. 6087 60882013-04-11 Arnaud Charlet <charlet@adacore.com> 6089 6090 * gnat_ugn.texi: Minor editing/clean ups. 6091 60922013-04-11 Ed Schonberg <schonberg@adacore.com> 6093 6094 * sem_ch6.adb (Analyze_Null_Procedure): New subprogram, mostly 6095 extracted from Analyze_Subprogram_Declaration, to handle null 6096 procedure declarations that in ada 2012 can be completions of 6097 previous declarations. 6098 60992013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 6100 6101 * sem_prag.adb (Entity_Of): Moved to Exp_Util. 6102 * exp_util.ads, exp_util.adb (Entity_Of): New routine. 6103 61042013-04-11 Robert Dewar <dewar@adacore.com> 6105 6106 * g-spipat.ads: Minor comment fix. 6107 61082013-04-11 Robert Dewar <dewar@adacore.com> 6109 6110 * sem_prag.adb, sem_util.adb, sem_res.adb, exp_ch4.adb: Minor 6111 reformatting. 6112 61132013-04-11 Thomas Quinot <quinot@adacore.com> 6114 6115 * exp_util.ads (Fully_Qualified_Name_String): Document that the 6116 constructed literal is the entity name in all upper case. 6117 61182013-04-11 Thomas Quinot <quinot@adacore.com> 6119 6120 * sem_util.adb (Set_Entity_With_Style_Check): Fix logic of 6121 check for implementation defined identifiers. 6122 61232013-04-11 Yannick Moy <moy@adacore.com> 6124 6125 * checks.adb (Apply_Type_Conversion_Checks): Add an explanation 6126 of why range check and length are put on different nodes. 6127 * exp_ch4.adb (Apply_Type_Conversion_Checks): Remove check marks 6128 when doing their expansion. 6129 61302013-04-11 Ed Schonberg <schonberg@adacore.com> 6131 6132 * sem_util.ads, sem_util.adb (Get_Incomplete_View_Of_Ancestor): 6133 New function to implement the notion introduced in RM 7.3.1 6134 (5.2/3): in a child unit, a derived type is within the derivation 6135 class of an ancestor declared in a parent unit, even if there 6136 is an intermediate derivation that does not see the full view 6137 of that ancestor. 6138 * sem_res.adb (Valid_Conversion): if all else fails, examine if an 6139 incomplete view of an ancestor makes a numeric conversion legal. 6140 61412013-04-11 Ed Schonberg <schonberg@adacore.com> 6142 6143 * sem_ch6.adb: in Ada2012 operators can only have in 6144 parameters. 6145 61462013-04-11 Vincent Celier <celier@adacore.com> 6147 6148 * makeutl.adb (Create_Binder_Mapping_File): Do not put into 6149 the mapping file ALI files of sources that have been replaced. 6150 61512013-04-11 Vincent Celier <celier@adacore.com> 6152 6153 * projects.texi: Add subsection Duplicate Sources in Projects. 6154 61552013-04-11 Vincent Celier <celier@adacore.com> 6156 6157 * gnat_ugn.texi: Add documentation for gnatmake switch -droot_dir/** 6158 61592013-04-11 Arnaud Charlet <charlet@adacore.com> 6160 6161 * init.c (__gnat_install_handler): Only set up an alternate 6162 stack when installing a signal handler for SIGSEGV. 6163 61642013-04-11 Thomas Quinot <quinot@adacore.com> 6165 6166 * g-socket.adb (Connect_Socket, timeout version): Call 6167 underlying connect operation directly, not through the 2-argument 6168 Connect_Socket thick binding, in order to avoid raising a junk 6169 exception for the EINPROGRESS return. 6170 61712013-04-11 Robert Dewar <dewar@adacore.com> 6172 6173 * a-cdlili.adb: Minor addition of pragma Warnings (Off). 6174 61752013-04-11 Robert Dewar <dewar@adacore.com> 6176 6177 * hostparm.ads: Minor reformatting. 6178 61792013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 6180 6181 * aspects.ads, aspects.adb: Add Aspect_Depends to all the relevant 6182 tables. 6183 * elists.ads, elists.adb (Contains): New routine. 6184 * par-prag.adb: Pragma Depends does not need any special treatment 6185 by the parser. 6186 * sem_ch13.adb (Analyze_Aspect_Specifications): 6187 Transform aspect Depends into a corresponding pragma. 6188 (Check_Aspect_At_Freeze_Point): Aspect Depends does not need 6189 inspection at its freeze point. 6190 * sem_prag.adb (Analyze_Pragma): Perform analysis and 6191 normalization of pragma Depends. Remove the use of function 6192 Is_Duplicate_Item. Use End_Scope to uninstalle the formal 6193 parameters of a subprogram. Add a value for pragma Depends in 6194 table Sig_Flags. 6195 (Is_Duplicate_Item): Removed. 6196 * snames.ads-tmpl: Add predefined name for Depends as well as 6197 a pragma identifier. 6198 61992013-04-11 Arnaud Charlet <charlet@adacore.com> 6200 6201 * gnat1drv.adb: Minor code clean up. 6202 62032013-04-11 Arnaud Charlet <charlet@adacore.com> 6204 6205 * debug.adb, sem_ch13.adb (Analyze_Enumeration_Representation_Clause): 6206 Ignore enumeration rep clauses by default in CodePeer mode, unless 6207 -gnatd.I is specified. 6208 62092013-04-11 Ed Schonberg <schonberg@adacore.com> 6210 6211 * sem_util.adb (Safe_To_Capture_Value): If the node belongs to 6212 an expression that has been attached to the else_actions of an 6213 if-expression, the capture is not safe. 6214 62152013-04-11 Yannick Moy <moy@adacore.com> 6216 6217 * checks.adb (Apply_Type_Conversion_Checks): Put check mark on type 6218 conversion for arrays. 6219 62202013-04-11 Robert Dewar <dewar@adacore.com> 6221 6222 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb: Minor reformatting. 6223 62242013-04-11 Johannes Kanig <kanig@adacore.com> 6225 6226 * adabkend.adb: Minor comment addition. 6227 62282013-04-11 Matthew Heaney <heaney@adacore.com> 6229 6230 * a-cdlili.adb, a-cidlli.adb, a-cbdlli.adb ("="): Increment 6231 lock counts before entering loop. 6232 (Find): Ditto. 6233 (Is_Sorted, Merge, Sort): Ditto. 6234 (Reverse_Find): Ditto. 6235 (Splice_Internal): Internal operation to refactor splicing logic. 6236 (Splice): Some logic moved into Splice_Internal. 6237 62382013-04-11 Johannes Kanig <kanig@adacore.com> 6239 6240 * adabkend.adb (Scan_Compiler_Arguments): Do not call 6241 Set_Output_Object_File_Name in Alfa_Mode 6242 * gnat1drv.adb (Adjust_Global_Switches): Take Alfa_Mode into account. 6243 * opt.ads: Fix documentation. 6244 62452013-04-11 Robert Dewar <dewar@adacore.com> 6246 6247 * sem_res.adb: Minor code reorganization and comment fixes. 6248 * sem_type.adb: Minor reformatting. 6249 62502013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 6251 6252 * exp_ch4.adb (Process_Transient_Object): Add new 6253 local variable Fin_Call. Remove and explain ??? comment. Use the 6254 Actions of logical operators "and then" and "or else" to insert 6255 the generated finalization call. 6256 62572013-04-11 Eric Botcazou <ebotcazou@adacore.com> 6258 6259 * gnat_rm.texi: Fix typo. 6260 62612013-04-11 Ed Schonberg <schonberg@adacore.com> 6262 6263 * sem_res.adb: Minor reformatting. 6264 62652013-04-11 Robert Dewar <dewar@adacore.com> 6266 6267 * atree.h: Add declarations for Flag255-Flag289 Fix declaration 6268 of Field30 (was wrong, but no effect, since not yet referenced by 6269 back end) Add declarations for Field31-Field35 Add declarations 6270 for Node31-Node35. 6271 * einfo.ads, einfo.adb (Has_Invariants): No longer applies to 6272 procedures. 6273 (Has_Predicates): No longer applies to functions. 6274 (Is_Predicate_Function): New flag. 6275 (Is_Predicate_Function_M): New flag. 6276 (Is_Invariant_Procedure): New flag. 6277 (Predicate_Function_M): New function. 6278 (Set_Predicate_Function_M): New procedure. 6279 * exp_ch11.adb (Expand_N_Raise_Expression): Take care of special 6280 case of appearing in predicate used for membership test. 6281 * exp_ch3.adb (Insert_Component_Invariant_Checks): Set 6282 Is_Invariant_Procedure flag. 6283 * exp_ch4.adb (Expand_Op_In): Call special predicate function 6284 that takes care of raise_expression nodes in the predicate. 6285 * exp_util.ads, exp_util.adb (Make_Predicate_Call): Add argument Mem for 6286 membership case. 6287 * sem_ch13.adb (Build_Predicate_Functions): New name for 6288 Build_Predicate_Function. Major rewrite to take care of raise 6289 expression in predicate for membership tests. 6290 * sem_res.adb (Resolve_Actuals): Include both predicate functions 6291 in defense against infinite predicate function loops. 6292 * sinfo.ads, sinfo.adb (Convert_To_Return_False): New flag. 6293 62942013-04-11 Robert Dewar <dewar@adacore.com> 6295 6296 * sem_prag.adb: Minor reformatting. 6297 62982013-04-11 Ed Schonberg <schonberg@adacore.com> 6299 6300 * lib-xref.adb: Generate reference for component of anonymous 6301 access type. 6302 63032013-04-11 Robert Dewar <dewar@adacore.com> 6304 6305 * stand.ads: Minor reformatting. 6306 63072013-04-11 Matthew Heaney <heaney@adacore.com> 6308 6309 * a-convec.adb, a-coinve.adb, a-cobove.adb ("="): Increment lock 6310 counts before entering loop. 6311 (Find, Find_Index): Ditto. 6312 (Is_Sorted, Merge, Sort): Ditto. 6313 (Reverse_Find, Reverse_Find_Index): Ditto. 6314 63152013-04-11 Robert Dewar <dewar@adacore.com> 6316 6317 * exp_ch11.ads, exp_ch11.adb (Expand_N_Raise_Expression): New procedure. 6318 * exp_util.adb (Insert_Actions): Add entry for N_Raise_Expression. 6319 * expander.adb: Add call to Expand_N_Raise_Expression. 6320 * par-ch11.adb (P_Raise_Expression): New procedure. 6321 * par-ch4.adb (P_Relation): Handle Raise_Expression. 6322 * par.adb (P_Raise_Expression): New procedure. 6323 * sem.adb: Add handling for N_Raise_Expression. 6324 * sem_ch11.ads, sem_ch11.adb (Analyze_Raise_Expression): New procedure. 6325 * sem_res.adb (Resolve): Add handling for N_Raise_Expression. 6326 * sinfo.ads, sinfo.adb (N_Raise_Expression): New node. 6327 * sprint.adb (Sprint_Node_Actual): Add handling for N_Raise_Expression. 6328 * stand.ads (Any_Type): Document use with N_Raise_Expression. 6329 63302013-04-11 Vincent Celier <celier@adacore.com> 6331 6332 * gnat_ugn.texi: Remove section "The Development Environments" 6333 now that all predefined attributes are documented, including 6334 those in package IDE. 6335 63362013-04-11 Ed Schonberg <schonberg@adacore.com> 6337 6338 * sem_ch6.adb: Preserve parent link in copy of expression. 6339 63402013-04-11 Vincent Celier <celier@adacore.com> 6341 6342 * projects.texi: Complete rewrite of the subsection Attributes 6343 in section "Project file Reference". 6344 63452013-04-11 Robert Dewar <dewar@adacore.com> 6346 6347 * exp_ch4.adb: Minor reformatting. 6348 63492013-04-11 Robert Dewar <dewar@adacore.com> 6350 6351 * exp_ch4.adb (Expand_Concatenate): Remove wrapping in 6352 expression-with-actions node. No longer needed given fix to 6353 sem_prag and caused loss of some useful warnings. 6354 * sem.ads: Minor reformatting. 6355 * sem_prag.adb (Check_Disabled): Removed, to be replaced by not 6356 Check_Enabled. These two routines were curiously incompatible 6357 causing confusion. 6358 (Analyze_Pragma, case Check): Make sure we do 6359 not expand the string argument if the check is disabled. Avoid 6360 use of Check_Disabled, which resulted in missing analysis in 6361 some cases. 6362 * sem_prag.ads (Check_Disabled): Removed, to be replaced by not 6363 Check_Enabled. These two routines were curiously incompatible 6364 causing confusion. 6365 63662013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 6367 6368 * exp_ch4.adb (Process_Transient_Object): Use 6369 an unchecked conversion when associating a transient controlled 6370 object with its "hook". 6371 63722013-04-11 Ed Schonberg <schonberg@adacore.com> 6373 6374 * sem_prag.adb (Analyze_Pragma, case 6375 Preelaborable_Initialization): The pragma is legal if it comes 6376 from an aspect on the private view of the type, even though its 6377 analysis point takes place later at the freeze point. 6378 63792013-04-11 Robert Dewar <dewar@adacore.com> 6380 6381 * sem_ch6.adb: Minor reformatting. 6382 63832013-04-11 Yannick Moy <moy@adacore.com> 6384 6385 * ali-util.adb (Read_Withed_ALIs): Do not consider it an error to 6386 read ALI files with No_Object=True in Alfa mode. 6387 * gnat1drv.adb: Set appropriately Back_End_Mode in Alfa mode, whether 6388 this is during frame condition generation of translation to Why. 6389 63902013-04-11 Robert Dewar <dewar@adacore.com> 6391 6392 * exp_ch4.adb: Minor code reorganization 6393 * types.ads: Minor reformatting. 6394 63952013-04-11 Johannes Kanig <kanig@adacore.com> 6396 6397 * opt.ads New global boolean Frame_Condition_Mode to avoid 6398 referring to command line switch. 6399 * gnat1drv.adb (Gnat1drv) set frame condition mode when -gnatd.G 6400 is present, and disable Code generation in that case. Disable 6401 ALI file generation when switch is *not* present. 6402 64032013-04-11 Ed Schonberg <schonberg@adacore.com> 6404 6405 * sem_ch6.adb (Analyze_Expression_Function): Perform the 6406 pre-analysis on a copy of the expression, to prevent downstream 6407 visbility issues involving operators and instantiations. 6408 64092013-04-11 Johannes Kanig <kanig@adacore.com> 6410 6411 * debug.adb: Reservation and documentation for -gnatd.G switch. 6412 * gnat1drv.adb (Adjust_Global_Switches) Take into account -gnatd.G 6413 switch, and set ALI file generation accordingly. 6414 64152013-04-11 Robert Dewar <dewar@adacore.com> 6416 6417 * exp_ch4.adb, exp_dist.adb: Minor reformatting. 6418 * gnat_rm.texi, gnat_ugn.texi: -020 Add documentation clarifying that 6419 check names introduced with pragma Check_Name are suppressed by -gnatp. 6420 64212013-04-11 Vincent Celier <celier@adacore.com> 6422 6423 * gnat_ugn.texi, projects.texi: Move chapter "Tools Supporting Project 6424 Files" from projects.texi to gnat_ugn.texi. 6425 64262013-04-11 Arnaud Charlet <charlet@adacore.com> 6427 6428 * gcc-interface/Make-lang.in: Update dependencies. 6429 64302013-04-11 Yannick Moy <moy@adacore.com> 6431 6432 * gnat1drv.adb (Adjust_Global_Switches): Allow missing body in Alfa 6433 mode. 6434 64352013-04-11 Hristian Kirtchev <kirtchev@adacore.com> 6436 6437 * exp_ch4.adb (Expand_N_Allocator): Detect the 6438 allocation of an anonymous controlled object where the type of 6439 the context is named. Use the pool and finalization master of 6440 the named access type to allocate the object. 6441 64422013-04-11 Vincent Celier <celier@adacore.com> 6443 6444 * gnat_ugn.texi: Remove most mentions of gprbuild. 6445 * projects.texi: Remove all mentions of asociative array 6446 attributes. 6447 64482013-04-11 Robert Dewar <dewar@adacore.com> 6449 6450 * sem_prag.adb, sem_attr.adb, gnat1drv.adb, prj-makr.adb, 6451 opt.ads, sem_ch13.adb: Minor reformatting. 6452 * debug.adb: Minor comment fix (remove junk .I doc). 6453 64542013-04-11 Thomas Quinot <quinot@adacore.com> 6455 6456 * rtsfind.ads, exp_dist.adb, exp_dist.ads (Rtsfind.PCS_Version, case 6457 PolyORB): Bump to 6. 6458 (Exp_Dist.PolyORB_Support): Replace TC_Build with 6459 Build_Complex_TC. 6460 64612013-04-11 Arnaud Charlet <charlet@adacore.com> 6462 6463 * debug.adb, sem_prag.adb, par-ch2.adb, sem_attr.adb, gnat1drv.adb, 6464 exp_disp.adb, opt.ads, sem_ch13.adb (Relaxed_RM_Semantics): New flag. 6465 Enable this flag in CodePeer mode, and also via -gnatd.M. 6466 Replace some uses of CodePeer_Mode by Relaxed_RM_Semantics. 6467 64682013-04-11 Ed Schonberg <schonberg@adacore.com> 6469 6470 * sem_ch8.adb (Check_Constrained_Object): If a subtype is created 6471 from the renamed object in an object renaming declaration with 6472 an unconstrained nominal subtype, freeze the created subtype at 6473 once, to prevent order of elaboration issues in the backend. 6474 64752013-04-11 Arnaud Charlet <charlet@adacore.com> 6476 6477 * exp_aggr.adb (Aggr_Size_OK): Refine setting of Max_Aggr_Size 6478 in particular in CodePeer mode. 6479 64802013-04-11 Vincent Celier <celier@adacore.com> 6481 6482 * gnat_ugn.texi: Add documentation for backup copies of project 6483 files for gnatname. 6484 64852013-04-11 Tristan Gingold <gingold@adacore.com> 6486 6487 * gnat_rm.texi: Add Detect_BLocking in the ravenscar profile 6488 pragma list. 6489 64902013-04-11 Vincent Celier <celier@adacore.com> 6491 6492 * gnatname.adb (Scan_Args): Recognize new switch --no-backup 6493 (Usage): Add line for --no-backup. 6494 * opt.ads (No_Backup): New Boolean variable, initialized to False. 6495 (Ada_Version_Default): Switch to Ada 2012 by default. 6496 * prj-makr.adb (Initialize): Create a backup for an existing 6497 project file if gnatname is not invoked with --no-backup. 6498 64992013-04-11 Thomas Quinot <quinot@adacore.com> 6500 6501 * exp_ch4.adb: Minor code improvement: replace various calls to 6502 Make_If_Statement in expansion with Make_Implicit_If_Statement. 6503 65042013-04-11 Eric Botcazou <ebotcazou@adacore.com> 6505 6506 * ali.adb: Fix minor typo. 6507 65082013-04-11 Thomas Quinot <quinot@adacore.com> 6509 6510 * exp_ch4.adb (Find_Enclosing_Context): Add missing case of 6511 N_Procedure_Call_Statement. 6512 65132013-04-11 Robert Dewar <dewar@adacore.com> 6514 6515 * debug.adb: Minor comment fix. 6516 65172013-04-11 Johannes Kanig <kanig@adacore.com> 6518 6519 * debug.adb: Remove comment for -gnatd.G. 6520 65212013-04-11 Thomas Quinot <quinot@adacore.com> 6522 6523 * exp_ch4.adb (Expand_Record_Equality.Suitable_Element): 6524 Remove recursive routine, replace with... 6525 (Expand_Record_Equality.Element_To_Compare): New subroutine, 6526 implement iterative search for next element to compare. 6527 Add explanatory comment in the tagged case. 6528 65292013-04-11 Ed Schonberg <schonberg@adacore.com> 6530 6531 * sem_ch5.adb: remove spurious warning from non-empty loop. 6532 * sem_ch8.adb (Enclosing_Instance): Make public to other routines 6533 in the package, in order to suppress redundant semantic checks 6534 on subprogram renamings in nested instantiations. 6535 65362013-04-11 Robert Dewar <dewar@adacore.com> 6537 6538 * errout.ads: Minor reformatting. 6539 * sem_eval.adb (Why_Not_Static): Now issues continuation messages 6540 (Why_Not_Static): Test for aggregates behind string literals. 6541 * sem_eval.ads (Why_Not_Static): Now issues continuation messages. 6542 65432013-04-11 Robert Dewar <dewar@adacore.com> 6544 6545 * exp_ch4.adb (Expand_Concatenation): Wrap expansion in 6546 Expressions_With_Actions. 6547 65482013-04-11 Ed Schonberg <schonberg@adacore.com> 6549 6550 * sem_ch6.adb (Base_Types_Match): For an actual type in an 6551 instance, the base type may itself be a subtype, so find true 6552 base type to determine compatibility. 6553 65542013-04-11 Robert Dewar <dewar@adacore.com> 6555 6556 * s-osprim-mingw.adb, sem_ch3.adb, sem_prag.adb, sem_util.adb. 6557 makeutl.adb, sem_ch8.adb: Minor reformatting. 6558 65592013-04-11 Vincent Celier <celier@adacore.com> 6560 6561 * gnat_ugn.texi: Minor fixes for VMS. 6562 * ug_words: Minor addition: -gnato? => /OVERFLOW_CHECKS=?. 6563 65642013-04-11 Robert Dewar <dewar@adacore.com> 6565 6566 * usage.adb (Usage): Minor edit to -gnatW message 6567 65682013-04-11 Robert Dewar <dewar@adacore.com> 6569 6570 * exp_aggr.adb (Expand_N_Aggregate): Add circuit for handling 6571 others for string literal case. Also add big ??? comment about 6572 this new code, which should be redundant, but is not. 6573 * sem_eval.adb (Eval_Concatenation): Handle non-static case 6574 properly (Eval_String_Literal): Handle non-static literal properly 6575 65762013-03-20 Tobias Burnus <burnus@net-b.de> 6577 6578 * i-fortra.ads: Update comment, add Ada 2012's optional 6579 Star and Kind data types for enhanced interoperability. 6580 65812013-03-16 Eric Botcazou <ebotcazou@adacore.com> 6582 6583 * gnatvsn.ads (Library_Version): Bump to 4.9. 6584 65852013-03-08 Cesar Strauss <cestrauss@gmail.com> 6586 6587 PR ada/52123 6588 * seh_init.c (Raise_From_Signal_Handler): Declare as no-return. 6589 (__gnat_SEH_error_handler): Likewise. Remove final return. 6590 65912013-03-06 Eric Botcazou <ebotcazou@adacore.com> 6592 6593 * gcc-interface/trans.c (Attribute_to_gnu): Abort instead of erroring 6594 out for an unimplemented attribute. 6595 65962013-03-06 Eric Botcazou <ebotcazou@adacore.com> 6597 6598 * gcc-interface/decl.c (gnat_to_gnu_field): Remove the wrapper around 6599 a misaligned integral type if a size is specified for the field. 6600 66012013-03-06 Eric Botcazou <ebotcazou@adacore.com> 6602 6603 * gcc-interface/trans.c (Raise_Error_to_gnu) <CE_Index_Check_Failed>: 6604 Record the unpadded type of the index type on the RCI stack. 6605 66062013-03-06 Eric Botcazou <ebotcazou@adacore.com> 6607 6608 * gcc-interface/trans.c (emit_range_check): Assert that the range type 6609 is a numerical type and remove useless local variables. 6610 66112013-02-25 Eric Botcazou <ebotcazou@adacore.com> 6612 6613 * gcc-interface/ada-tree.h: Back out change accidentally committed. 6614 66152013-02-21 Jakub Jelinek <jakub@redhat.com> 6616 6617 PR bootstrap/56258 6618 * gnat-style.texi (@title): Remove @hfill. 6619 * projects.texi: Avoid line wrapping inside of @pxref or @xref. 6620 66212013-02-14 Rainer Emrich <rainer@emrich-ebersheim.de> 6622 6623 PR target/52123 6624 * tracebak.c: Cast from pointer via FARPROC. 6625 66262013-02-07 Simon Wright <simon@pushface.org> 6627 6628 PR target/50678 6629 * init.c (__darwin_major_version): New function for x86-64/Darwin. 6630 (__gnat_adjust_context_for_raise) [Darwin]: Disable the workaround 6631 on Darwin 12 and above. 6632 66332013-02-06 Rainer Emrich <rainer@emrich-ebersheim.de> 6634 6635 PR target/52123 6636 * adaint.c (__gnat_check_OWNER_ACL): Cast from pointer via 6637 SECURITY_DESCRIPTOR * 6638 (__gnat_set_OWNER_ACL): Cast from DWORD to ACCESS_MODE 6639 (__gnat_portable_spawn): Fix cast to char* const* 6640 (add_handle): Cast from pointer via void ** 6641 (add_handle): Cast from pointer via int * 6642 (__gnat_locate_exec_on_path): Cast from pointer via TCHAR * 6643 (__gnat_locate_exec_on_path): Cast from pointer via char * 6644 * initialize.c (append_arg): Cast from pointer via LPWSTR 6645 (__gnat_initialize): Cast from pointer via LPWSTR 6646 * seh_init.c (__gnat_map_SEH): Cast from pointer via FARPROC 6647 66482013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6649 6650 * gcc-interface/Make-lang.in: Enable System.Stack_Checking.Operations 6651 target pairs on VxWorks 5 only. 6652 66532013-02-06 Arnaud Charlet <charlet@adacore.com> 6654 6655 * gcc-interface/Make-lang.in: Update dependencies. 6656 66572013-02-06 Vincent Celier <celier@adacore.com> 6658 6659 * prj-proc.adb (Process_Aggregated_Projects): Use a new project 6660 node tree for each project tree rooted at an aggregated project. 6661 66622013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6663 6664 * sem_util.adb (Is_Interface_Conversion): New routine. 6665 (Object_Access_Level): Detect an interface conversion 6666 that has been rewritten into a different construct. Use the 6667 original form of the conversion to find the access level of 6668 the operand. 6669 66702013-02-06 Eric Botcazou <ebotcazou@adacore.com> 6671 6672 * einfo.ads (Has_Pragma_No_Inline): New flag using Flag201. 6673 (Has_Pragma_No_Inline): Declare and mark as inline. 6674 (Set_Has_Pragma_No_Inline): Likewise. 6675 * einfo.adb (Has_Pragma_No_Inline): New function. 6676 (Set_Has_Pragma_No_Inline): New procedure. 6677 (Write_Entity_Flags): Handle Has_Pragma_No_Inline. 6678 * snames.ads-tmpl (Name_No_Inline): New pragma-related name. 6679 (Pragma_Id): Add Pragma_No_Inline value. 6680 * par-prag.adb (Prag): Handle Pragma_Inline. 6681 * sem_prag.adb (Inline_Status): New enumeration type. 6682 (Process_Inline): Change Active parameter 6683 to Inline_Status and add support for suppressed inlining. 6684 (Analyze_Pragma) <Pragma_Inline>: Adjust to above change. 6685 <Pragma_Inline_Always>: Likewise. 6686 <Pragma_No_Inline>: Implement new pragma No_Inline. 6687 (Sig_Flags): Add Pragma_No_Inline. 6688 * gnat_rm.texi (Implementation Defined Pragmas): Add No_Inline. 6689 * gnat_ugn.texi (Switches for gcc): Mention Pragma No_Inline. 6690 66912013-02-06 Pascal Obry <obry@adacore.com> 6692 6693 * s-osprim-mingw.adb (Clock): Make sure we copy all data locally 6694 to avoid interleaved modifications that could happen from another 6695 task calling Get_Base_Data. 6696 (Get_Base_Data): Make it a critical section. Avoid updating if another 6697 task has already done it. 6698 66992013-02-06 Eric Botcazou <ebotcazou@adacore.com> 6700 6701 * sem_prag.adb: Minor reformatting. 6702 67032013-02-06 Pascal Obry <obry@adacore.com> 6704 6705 * s-tasloc.ads: Set System.Task_Lock to preelaborate. 6706 67072013-02-06 Eric Botcazou <ebotcazou@adacore.com> 6708 6709 * snames.ads-tmpl (Name_Loop_Optimize, Name_No_Unroll, 6710 Name_Unroll, Name_No_Vector, Name_Vector): New pragma-related 6711 names. 6712 (Pragma_Id): Add Pragma_Loop_Optimize value. 6713 * par-prag.adb (Prag): Handle Pragma_Loop_Optimize. 6714 * sem_prag.adb (Check_Loop_Invariant_Variant_Placement): Rename to... 6715 (Check_Loop_Pragma_Placement): ...this. 6716 (Analyze_Pragma) 6717 <Pragma_Loop_Invariant>: Adjust to above renaming. 6718 <Loop_Variant>: Likewise. 6719 <Pragma_Loop_Optimize>: Implement new pragma Loop_Optimize. 6720 (Sig_Flags): Add Pragma_Loop_Optimize. 6721 * gnat_rm.texi (Implementation Defined Pragmas): Add Loop_Optimize. 6722 * gnat_ugn.texi (Vectorization of loops): Mention Loop_Optimize. 6723 67242013-02-06 Robert Dewar <dewar@adacore.com> 6725 6726 * osint.ads: Minor fix of typo. 6727 67282013-02-06 Sergey Rybin <rybin@adacore.com frybin> 6729 6730 * gnat_ugn.texi: gnatmetric: update the documentation of 6731 complexity metrics for Ada 2012. 6732 67332013-02-06 Javier Miranda <miranda@adacore.com> 6734 6735 * exp_disp.adb (Make_Secondary_DT): Code cleanup: 6736 remove useless initialization. 6737 67382013-02-06 Ed Schonberg <schonberg@adacore.com> 6739 6740 * sem_ch3.adb (Build_Discriminant_Constraints): Do not 6741 generate overflow checks on a discriminant expression if the 6742 discriminant constraint is applied to a private type that has 6743 a full view, because the check will be applied when the full 6744 view is elaborated. Removing the redundant check is not just 6745 an optimization, but it prevents spurious assembler errors, 6746 because of the way the backend generates names for expressions 6747 that require overflow checking. 6748 67492013-02-06 Pascal Obry <obry@adacore.com> 6750 6751 * s-osprim-mingw.adb: Removes workaround for an old GNU/Linker 6752 limitation on Windows. 6753 (DA): Removed. 6754 (LIA): Removed. 6755 (LLIA): Removed. 6756 (TFA): Removed. 6757 (BTA): Removed. 6758 (BMTA): Removed. 6759 (BCA): Removed. 6760 (BMCA): Removed. 6761 (BTiA): Removed. 6762 (Clock): Use variable corresponding to access. 6763 (Get_Base_Time): Likewise. 6764 (Monotonic_Clock): Likewise. 6765 67662013-02-06 Vincent Celier <celier@adacore.com> 6767 6768 * make.adb (Gnatmake): When gnatmake is called with a project 6769 file, do not invoke gnatbind with -I-. 6770 * makeutl.adb (Create_Binder_Mapping_File): Rewrite function. Get 6771 the infos from all the sources. 6772 67732013-02-06 Ed Schonberg <schonberg@adacore.com> 6774 6775 * snames.ads-tmpl: Add Name_Overriding_Renamings and pragma 6776 Overriding_Renamings. 6777 * par-prag.adb: Recognize pragma Overriding_Renamings. 6778 * opt.ads (Overriding_Renamings): flag to control compatibility 6779 mode with Rational compiler, replaces Rational_Profile flag. 6780 * sem_ch8.adb (Analyze_Subprogram_Renaming): When 6781 Overriding_Renamings is enabled, accept renaming declarations 6782 where the new subprogram renames and overrides a locally inherited 6783 operation. Improve error message for some illegal renamings. 6784 * sem_prag.adb (Analyze_Pragma): Add case for Overriding_Renamings. 6785 (Set_Rational_Profile): The Rational_Profile enables 6786 Overriding_Renamings, Implicit_Packing, and Use_Vads_Size. 6787 67882013-02-06 Ed Schonberg <schonberg@adacore.com> 6789 6790 * sem_util.adb: Set parent of copied aggregate component, to 6791 prevent infinite loop. 6792 67932013-02-06 Robert Dewar <dewar@adacore.com> 6794 6795 * sem_ch3.adb, sem_ch10.adb: Minor reformatting. 6796 * exp_disp.adb: Minor comment update. 6797 * comperr.ads, osint.ads, rtsfind.adb, sem_prag.adb: Minor addition of 6798 No_Return pragmas. 6799 68002013-02-06 Thomas Quinot <quinot@adacore.com> 6801 6802 * targparm.ads, sem_ch13.adb (Support_Nondefault_SSO): New target 6803 parameter, defaulted to False for now, indicates targets where 6804 non-default scalar storage order may be specified. 6805 68062013-02-06 Thomas Quinot <quinot@adacore.com> 6807 6808 * sprint.adb (Write_Itype): Treat E_Record_Subtype_With_Private 6809 same as E_Record_Subtype. Display E_Class_Wide_Subtype as 6810 subtype, not type. 6811 68122013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6813 6814 * sem_ch3.adb (Complete_Private_Subtype): Inherit the 6815 Has_Unknown_Discriminants from the full view of the base type. 6816 68172013-02-06 Tristan Gingold <gingold@adacore.com> 6818 6819 * raise-gcc.c: Remove useless includes (sys/stat.h, adaint.h) 6820 Enclosing debugging functions within #ifndef inhibit_libc to 6821 support builds without full C headers. 6822 68232013-02-06 Thomas Quinot <quinot@adacore.com> 6824 6825 * gnat_rm.texi: Add a minimal example of Scalar_Storage_Order. 6826 68272013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6828 6829 * sem_ch10.adb (Install_Limited_Withed_Unit): Add a missing 6830 check to detect a parent-child relationship between two units in 6831 order to correctly bypass the installation of a limited view. In 6832 other words, the comment on the intended usage of the check was 6833 correct, but the code itself did not reflect the behavior. 6834 68352013-02-06 Javier Miranda <miranda@adacore.com> 6836 6837 * exp_ch5.adb (Expand_N_Assignment_Statement): Do not generate the 6838 runtime check on assignment to tagged types if compiling with checks 6839 suppressed. 6840 68412013-02-06 Robert Dewar <dewar@adacore.com> 6842 6843 * exp_util.adb, checks.adb, sem_ch12.adb, sem_res.adb, prj-conf.adb, 6844 s-os_lib.adb: Minor reformatting 6845 68462013-02-06 Vincent Celier <celier@adacore.com> 6847 6848 * ug_words: Add -gnateY = /IGNORE_STYLE_CHECKS_PRAGMAS. 6849 68502013-02-06 Ed Schonberg <schonberg@adacore.com> 6851 6852 * snames.ads-tmpl: Add Name_Rational and pragma Rational. 6853 * par-prag.adb: Recognize pragma Rational. 6854 * opt.ads (Rational_Profile): flag to control compatibility mode 6855 with Rational compiler. 6856 * sem_ch8.adb (Analyze_Subprogram_Renaming): When Rational profile 6857 is enable, accept renaming declarations where the new subprogram 6858 and the renamed entity have the same name. 6859 * sem_prag.adb (analyze_pragma): Add pragma Rational, and recognize 6860 Rational as a profile. 6861 68622013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6863 6864 * exp_ch5.adb (Expand_Loop_Entry_Attributes): When 6865 dealing with a for loop that iterates over a subtype indication 6866 with a range, use the low and high bounds of the subtype. 6867 68682013-02-06 Nicolas Roche <roche@adacore.com> 6869 6870 * s-os_lib.adb (Normalize_Arguments): Arguments containing tabs should 6871 be quoted 6872 68732013-02-06 Vincent Celier <celier@adacore.com> 6874 6875 * prj-conf.adb (Process_Project_And_Apply_Config): New variable 6876 Conf_Project. New recursive procedure Check_Project to find a non 6877 aggregate project and put its Project_Id in Conf_Project. Fails if 6878 no such project can be found. 6879 (Get_Or_Create_Configuration_File): New parameter Conf_Project. 6880 (Do_Autoconf): Use project directory of project Conf_Project to store 6881 the generated configuration project file. 6882 * prj-conf.ads (Get_Or_Create_Configuration_File): New parameter 6883 Conf_Project. 6884 68852013-02-06 Javier Miranda <miranda@adacore.com> 6886 6887 * sem_res.adb (Resolve_Actuals): Generate a read 6888 reference for out-mode parameters in the cases specified by 6889 RM 6.4.1(12). 6890 68912013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6892 6893 * sem_attr.adb (Resolve_Attribute): Do not resolve the prefix of 6894 Loop_Entry, instead wait until the attribute has been expanded. The 6895 delay ensures that any generated checks or temporaries are inserted 6896 before the relocated prefix. 6897 68982013-02-06 Ed Schonberg <schonberg@adacore.com> 6899 6900 * sem_ch12.adb: Code clean up. 6901 69022013-02-06 Ed Schonberg <schonberg@adacore.com> 6903 6904 * checks.adb (Apply_Discriminant_Check): Look for discriminant 6905 constraint in full view of private type when needed. 6906 * sem_ch12.adb (Validate_Array_Type_Instance): Specialize 6907 previous patch to components types that are private and without 6908 discriminants. 6909 69102013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6911 6912 * exp_ch4.adb (Find_Enclosing_Context): Recognize 6913 a simple return statement as one of the cases that require special 6914 processing with respect to temporary controlled function results. 6915 (Process_Transient_Object): Do attempt to finalize a temporary 6916 controlled function result when the associated context is 6917 a simple return statement. Instead, leave this task to the 6918 general finalization mechanism. 6919 69202013-02-06 Thomas Quinot <quinot@adacore.com> 6921 6922 * einfo.ads: Minor reformatting. 6923 (Status_Flag_Or_Transient_Decl): Add ??? comment. 6924 69252013-02-06 Hristian Kirtchev <kirtchev@adacore.com> 6926 6927 * exp_ch4.adb (Expand_N_Expression_With_Actions): Rewritten. This 6928 routine should be able to properly detect controlled transient 6929 objects in its actions and generate the appropriate finalization 6930 actions. 6931 * exp_ch6.adb (Enclosing_Context): Removed. 6932 (Expand_Ctrl_Function_Call): Remove local subprogram and 6933 constant. Use routine Within_Case_Or_If_Expression to determine 6934 whether the lifetime of the function result must be extended to 6935 match that of the context. 6936 * exp_util.ads, exp_util.adb (Within_Case_Or_If_Expression): New 6937 routine. 6938 69392013-02-06 Ed Schonberg <schonberg@adacore.com> 6940 6941 * sem_ch12.adb (Validate_Array_Type_Instance): Extend check 6942 for subtype matching of component type of formal array type, 6943 to avoid spurious error when component type is a separate actual 6944 in the instance, and there may be a discrepancy between private 6945 and full view of component type. 6946 69472013-02-06 Robert Dewar <dewar@adacore.com> 6948 6949 * s-dim.ads, clean.adb: Minor reformatting. 6950 69512013-02-06 Javier Miranda <miranda@adacore.com> 6952 6953 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Undo previous patch. 6954 (Can_Split_Unconstrained_Function): Only split the inlined function if 6955 the compiler generates the code of its body. 6956 69572013-02-06 Robert Dewar <dewar@adacore.com> 6958 6959 * exp_prag.adb, sem_ch3.adb, exp_attr.adb, sem_prag.adb, sem_ch6.adb, 6960 exp_intr.adb, exp_dist.adb, sem_ch13.adb: Internal clean up for 6961 N_Pragma nodes. 6962 69632013-02-06 Robert Dewar <dewar@adacore.com> 6964 6965 * gnat_rm.texi: Minor text updates for pragma Warning. 6966 69672013-02-06 Geert Bosch <bosch@adacore.com> 6968 6969 * s-multip.adb (Number_Of_CPUs): Short-circuit in case of 6970 CPU'Last = 1. 6971 69722013-02-06 Vincent Celier <celier@adacore.com> 6973 6974 * clean.adb (Delete): On VMS use host notation to delete all files. 6975 69762013-02-06 Robert Dewar <dewar@adacore.com> 6977 6978 * sem_prag.adb, sem_ch6.adb, prj-conf.adb, erroutc.adb: Minor 6979 reformatting. 6980 69812013-02-06 Gary Dismukes <dismukes@adacore.com> 6982 6983 * sem_ch6.adb (Check_For_Primitive_Subprogram): Test for 6984 the special case of a user-defined equality that overrides 6985 the predefined equality of a nonderived type declared in a 6986 declarative part. 6987 * sem_util.adb (Collect_Primitive_Operations): Add test for 6988 Is_Primitive when looping over the subprograms following a type, 6989 to catch the case of primitives such as a user-defined equality, 6990 which otherwise won't be found when the type is not a derived 6991 type and is declared in a declarative part. 6992 69932013-02-06 Vincent Celier <celier@adacore.com> 6994 6995 * prj-conf.adb (Check_Target): Always return True when Target 6996 is empty (Get_Or_Create_Configuration_File.Get_Project_Target): 6997 New procedure to get the value of attribute Target in the main 6998 project. 6999 (Get_Or_Create_Configuration_File.Do_Autoconf): No 7000 need to get the value of attribute Target in the main project. 7001 (Get_Or_Create_Configuration_File): Call Get_Project_Target and 7002 use the target fom this call. 7003 70042013-02-06 Eric Botcazou <ebotcazou@adacore.com> 7005 7006 * erroutc.adb (Validate_Specific_Warning): Do not issue the 7007 warning about an ineffective Pragma Warnings for -Wxxx warnings. 7008 * sem_prag.adb (Analyze_Pragma) <Warnings>: Accept -Wxxx warnings. 7009 * gnat_rm.texi (Pragma Warnings): Document coordination with 7010 warnings of the GCC back-end. 7011 70122013-02-06 Javier Miranda <miranda@adacore.com> 7013 7014 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Do not build the body 7015 of an inlined function if we do not generate code for the function. 7016 70172013-02-06 Pascal Obry <obry@adacore.com> 7018 7019 * s-os_lib.adb (Locate_Exec_On_Path): Call Normalize_Pathname 7020 with Resolve_Links set to False. 7021 70222013-02-03 Eric Botcazou <ebotcazou@adacore.com> 7023 7024 * gcc-interface/decl.c: Include diagnostic-core.h. 7025 (gnat_to_gnu_entity) <E_Array_Type>: Sorry if Reverse_Storage_Order 7026 is set on the entity. 7027 <E_Record_Type>: Likewise. 7028 * gcc-interface/Make-lang.in (ada/decl.o): Add $(DIAGNOSTIC_CORE_H). 7029 70302013-01-29 Ben Brosgol <brosgol@adacore.com> 7031 7032 * gnat_rm.texi: Fixed typos. Minor edits. 7033 70342013-01-29 Bob Duff <duff@adacore.com> 7035 7036 * a-convec.adb: Minor reformatting. 7037 70382013-01-29 Pascal Obry <obry@adacore.com> 7039 7040 * tempdir.adb, tempdir.ads (Use_Temp_Dir): Set wether to use the temp 7041 directory. 7042 70432013-01-29 Ed Schonberg <schonberg@adacore.com> 7044 7045 * exp_ch5.adb (Expand_Iterator_Loop_Over_Array): Preserve loop 7046 identifier only if it comes from source. 7047 (Expand_N_Loop_Statement): If the domain of iteration is an 7048 enumeration type with a representation clause, remove from 7049 visibility the loop identifier before rewriting the loop as a 7050 block with a declaration for said identifier. 7051 * sem_util.adb (Remove_Homonym): Handle properly the default case. 7052 70532013-01-29 Vincent Celier <celier@adacore.com> 7054 7055 * prj-proc.adb: Minor comment spelling fix. 7056 70572013-01-29 Pascal Obry <obry@adacore.com> 7058 7059 * prj-proc.adb (Process_Expression_Variable_Decl): Prepend 7060 Project_Path to current environment. 7061 70622013-01-29 Thomas Quinot <quinot@adacore.com> 7063 7064 * sprint.adb (Sprint_Node_Actual): Output freeze nodes for 7065 itypes even if Dump_Freeze_Null is not set. 7066 70672013-01-29 Robert Dewar <dewar@adacore.com> 7068 7069 * sem_util.adb: Minor reformatting. 7070 * s-rident.ads: Minor comment fixes. 7071 70722013-01-29 Pascal Obry <obry@adacore.com> 7073 7074 * prj-env.ads, prj-env.adb (Add_Directories): Add parameter to 7075 control if the path is prepended or appended. 7076 70772013-01-29 Ed Schonberg <schonberg@adacore.com> 7078 7079 * sem_ch6.adb (Analyze_Expression_Function): An expression 7080 function declaration is not a subprogram declaration, and thus 7081 cannot appear in a protected definition. 7082 70832013-01-29 Hristian Kirtchev <kirtchev@adacore.com> 7084 7085 * exp_util.adb (Insert_Actions): When new 7086 actions come from the expression of the expression with actions, 7087 then they must be added to the list of existing actions. 7088 70892013-01-29 Eric Botcazou <ebotcazou@adacore.com> 7090 7091 * sem_ch3.adb (Analyze_Subtype_Declaration) <Private_Kind>: For 7092 the subtype of a constrained private type with discriminants 7093 that has got a full view, show that the completion is a clone 7094 of the full view. 7095 70962013-01-29 Javier Miranda <miranda@adacore.com> 7097 7098 * errout.ads, errout.adb (Get_Ignore_Errors): New subprogram. 7099 * opt.ads (Warn_On_Overlap): Update documentation. 7100 * sem_aggr.adb (Resolve_Aggregate, Resolve_Extension_Aggregate): 7101 Check function writable actuals. 7102 * sem_ch3.adb (Build_Derived_Record_Type, 7103 Record_Type_Declaration): Check function writable actuals. 7104 * sem_ch4.adb (Analyze_Range): Check function writable actuals. 7105 * sem_ch5.adb (Analyze_Assignment): Remove code of the initial 7106 implementation of AI05-0144. 7107 * sem_ch6.adb (Analyze_Function_Return, 7108 (Analyze_Procedure_Call.Analyze_Call_And_Resolve): Remove code 7109 of the initial implementation of AI05-0144. 7110 * sem_res.adb (Resolve): Remove code of the initial implementation. 7111 (Resolve_Actuals): Call Check_Function_Writable_Actuals and remove call 7112 of the initial implementation. 7113 (Resolve_Arithmetic_Op, Resolve_Logical_Op, 7114 Resolve_Membership_Op): Check function writable actuals. 7115 * sem_util.ad[sb] (Actuals_In_Call): Removed 7116 (Check_Order_Dependence): Removed (Save_Actual): Removed 7117 (Check_Function_Writable_Actuals): New subprogram. 7118 * usage.adb (Usage): Update documentation. 7119 * warnsw.adb (Set_Warning_Switch): Enable warn_on_overlap when 7120 setting all warnings. 7121 71222013-01-29 Robert Dewar <dewar@adacore.com> 7123 7124 * a-calend-vms.adb: Minor comment fix. 7125 71262013-01-29 Robert Dewar <dewar@adacore.com> 7127 7128 * mlib-utl.adb, gnatlink.adb: Avoid reference to ASCII.Back_Slash 7129 because of casing issues. 7130 * sem_util.ads: Minor comment fix. 7131 * style.adb (Check_Identifier): Set proper casing for entities 7132 in ASCII. 7133 * styleg.adb: Minor comment improvement. 7134 * stylesw.ads (Style_Check_Standard): Fix bad comments. 7135 71362013-01-29 Hristian Kirtchev <kirtchev@adacore.com> 7137 7138 * sem_prag.adb: Add the grammar for pragmas Abstract_State and Global. 7139 (Analyze_Pragma): Push the scope of the related subprogram and install 7140 its formals once before starting the analysis of the [moded] global 7141 list. 7142 71432013-01-29 Pascal Obry <obry@adacore.com> 7144 7145 * prj-proc.adb (Process_Expression_Variable_Decl): Always handle 7146 relative paths in Project_Path as relative to the aggregate 7147 project location. Note that this was what was documented. 7148 71492013-01-29 Vincent Celier <celier@adacore.com> 7150 7151 * gnatcmd.adb: For "gnat stub -P ...", do not check the naming 7152 scheme for Ada, when Ada is not a language for the project. 7153 71542013-01-29 Ed Schonberg <schonberg@adacore.com> 7155 7156 * sem_ch3.adb (Analyze_Subtype_Declaration): Inherit 7157 Is_Generic_Actual_Type flag in a nested instance. 7158 * sem_ch12.adb (Restore_Private_Views): Preserve 7159 Is_Generic_Actual_Type flag if actual is a Generic_Actual_Type 7160 of an enclosing instance. 7161 * sem_util.adb (Corresponding_Generic_Type): Handle generic actual 7162 which is an actual of an enclosing instance. 7163 * sem_type.adb (Real_Actual): If a generic_actual_type is the 7164 formal of an enclosing generic and thus renames the corresponding 7165 actual, use the actual of the enclosing instance to resolve 7166 spurious ambiguities in instantiations when two formals are 7167 instantiated with the same actual. 7168 71692013-01-29 Robert Dewar <dewar@adacore.com> 7170 7171 * gnat_rm.texi: Document all Ada 2005 and Ada 2012 pragmas as 7172 being available as implementation-defined pragmas in earlier 7173 versions of Ada. 7174 71752013-01-29 Vincent Celier <celier@adacore.com> 7176 7177 * clean.adb (Delete): On VMS, delete all versions of the file. 7178 71792013-01-29 Robert Dewar <dewar@adacore.com> 7180 7181 * par-ch6.adb (No_Constraint_Maybe_Expr_Func): New procedure. 7182 * par-util.adb (No_Constraint): Undo special handling, moved 7183 to par-ch6.adb. 7184 71852013-01-29 Robert Dewar <dewar@adacore.com> 7186 7187 * aspects.ads: Aspect Warnings is implementation defined Add 7188 some other missing entries to impl-defined list Mark Warnings 7189 as GNAT pragma in main list. 7190 * sem_ch8.adb: Process aspects for all cases of renaming 7191 declarations. 7192 71932013-01-29 Robert Dewar <dewar@adacore.com> 7194 7195 * sem_ch6.adb (Analyze_Function_Call): Set In_Assertion flag. 7196 * sem_elab.adb (Check_Internal_Call_Continue): Do not issue 7197 warnings about possible elaboration error if call is within 7198 an assertion. 7199 * sinfo.ads, sinfo.adb (In_Assertion): New flag in N_Function_Call node. 7200 72012013-01-29 Robert Dewar <dewar@adacore.com> 7202 7203 * a-calend-vms.adb, g-eacodu-vms.adb, g-trasym-vms-alpha.adb, 7204 * s-auxdec-vms-ia64.adb, s-mastop-vms.adb, s-osprim-vms.adb, 7205 s-tasdeb-vms.adb: Replace pragma Interface by pragma Import. 7206 72072013-01-29 Robert Dewar <dewar@adacore.com> 7208 7209 * opt.ads (Ignore_Style_Checks_Pragmas): New flag. 7210 * par-prag.adb (Par, case Style_Checks): Recognize 7211 Ignore_Style_Checks_Pragmas. 7212 * sem_prag.adb (Analyze_Pragma, case Style_Checks): Recognize 7213 Ignore_Style_Checks_Pragmas. 7214 * switch-c.adb: Recognize -gnateY switch. 7215 * usage.adb: Add documentation for "-gnateY". 7216 * vms_data.ads: Add IGNORE_STYLE_CHECKS_PRAGMAS (-gnateY). 7217 72182013-01-29 Vincent Celier <celier@adacore.com> 7219 7220 * clean.adb (Clean_Executables): Add Sid component when calling 7221 Queue.Insert. 7222 * make.adb: When inserting in the Queue, add the Source_Id 7223 (Sid) when it is known (Start_Compile_If_Possible): When the 7224 Source_Id is known (Sid), get the path name of the ALI file 7225 (Full_Lib_File) from it, to avoid finding old ALI files in other 7226 object directories. 7227 * makeutl.ads (Source_Info): New Source_Id component Sid in 7228 Format_Gnatmake variant. 7229 72302013-01-29 Robert Dewar <dewar@adacore.com> 7231 7232 * gnat_ugn.texi: Document -gnateY. 7233 72342013-01-29 Doug Rupp <rupp@adacore.com> 7235 7236 * s-osinte-vms.ads, s-taprop-vms.adb, system-vms_64.ads, 7237 system-vms-ia64.ads: Replace pragma Interface by pragma Import. 7238 72392013-01-29 Robert Dewar <dewar@adacore.com> 7240 7241 * atree.ads, atree.adb (Node30): New function. 7242 (Set_Node30): New procedure. 7243 (Num_Extension_Nodes): Change to 5 (activate new fields/flags). 7244 * atree.h: Add macros for Field30 and Node30. 7245 * einfo.ads, einfo.adb: Move some fields to avoid duplexing. 7246 * treepr.adb (Print_Entity_Information): Print fields 30-35. 7247 72482013-01-29 Robert Dewar <dewar@adacore.com> 7249 7250 * sem_prag.adb (Analyze_Pragma, case Interface): Consider to 7251 be a violation of No_Obsolescent_Features even in Ada 95. Also 7252 generates a warning in -gnatwj mode. 7253 (Analyze_Pragma, case Interface_Name): Generates a warning in -gnatwj 7254 mode. 7255 * gnat_ugn.texi: Additional documentation on -gnatwj and pragma 7256 Interface[_Name]. 7257 72582013-01-29 Vincent Celier <celier@adacore.com> 7259 7260 * snames.ads-tmpl: Add new standard name Trailing_Switches. 7261 72622013-01-29 Ed Schonberg <schonberg@adacore.com> 7263 7264 * sem_disp.adb (Check_Controlling_Type): If a designated type T 7265 of an anonymous access type is a limited view of a tagged type, 7266 it can be a controlling type only if the subprogram is in the 7267 same scope as T. 7268 72692013-01-29 Vincent Celier <celier@adacore.com> 7270 7271 * gnatcmd.adb: Use the project where the config pragmas file is 7272 declared to get its path. 7273 72742013-01-29 Vincent Celier <celier@adacore.com> 7275 7276 * prj-attr.adb: New attribute Linker'Trailing_Switches. 7277 72782013-01-22 Eric Botcazou <ebotcazou@adacore.com> 7279 7280 * gcc-interface/trans.c (gnat_to_gnu) <N_Expression_With_Actions>: Do 7281 not translate the Etype of the node before translating the Actions. 7282 72832013-01-22 Eric Botcazou <ebotcazou@adacore.com> 7284 7285 * gcc-interface/trans.c (Pragma_to_gnu) <Name_Space>: Use optimize_size 7286 instead of optimize and adjust warning message. 7287 (Compilation_Unit_to_gnu): Process pragmas preceding the unit. 7288 72892013-01-22 Tristan Gingold <gingold@adacore.com> 7290 7291 * gcc-interface/gigi.h (ADT_unhandled_except_decl, 7292 ADT_unhandled_others_decl): New. 7293 (unhandled_others_decl, unhandled_except_decl): Define. 7294 * gcc-interface/trans.c: Include common/common-target.h. 7295 (gigi): Initialize them. 7296 (Subprogram_Body_to_gnu): On SEH targets, wrap the body of the main 7297 function in a try/catch clause. 7298 72992013-01-11 Eric Botcazou <ebotcazou@adacore.com> 7300 7301 * gcc-interface/Make-lang.in (COMMON_ADAFLAGS): Remove -gnata. 7302 (CHECKING_ADAFLAGS): New. 7303 (ALL_ADAFLAGS): Include CHECKING_ADAFLAGS. 7304 73052013-01-10 Eric Botcazou <ebotcazou@adacore.com> 7306 7307 * gcc-interface/config-lang.in (boot_language_boot_flags): Delete. 7308 * gcc-interface/Make-lang.in (BOOT_ADAFLAGS): Likewise. 7309 73102013-01-07 Eric Botcazou <ebotcazou@adacore.com> 7311 7312 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Record_Type>: Adjust 7313 comment about type extension with discriminants. 7314 <E_Record_Subtype>: Remove useless test and reorder conditions. 7315 (elaborate_entity) <E_Record_Subtype>: Likewise. 7316 73172013-01-07 Richard Biener <rguenther@suse.de> 7318 7319 PR ada/864 7320 * gcc-interface/Make-lang.in (ada.install-common): Always apply 7321 program_transform_name. 7322 73232013-01-06 Eric Botcazou <ebotcazou@adacore.com> 7324 7325 * gnatvsn.ads (Current_Year): Bump to 2013. 7326 73272013-01-06 Olivier Hainque <hainque@adacore.com> 7328 7329 * gcc-interface/decl.c (gnat_to_gnu_field): Emit a specialized 7330 diagnostic for component size mismatch wrt volatile requirements. 7331 Add a gcc_unreachable() at the end of the checks for size. Split 7332 the check on volatile for positions into one check on atomic and 7333 a subsequent one on volatile. 7334 73352013-01-06 Eric Botcazou <ebotcazou@adacore.com> 7336 7337 * gcc-interface/decl.c (elaborate_entity) <E_Record_Type>: Delete. 7338 73392013-01-06 Eric Botcazou <ebotcazou@adacore.com> 7340 7341 * gcc-interface/decl.c (gnat_to_gnu_entity) <discrete_type>: Do not 7342 pack the field of the record type made for a misaligned type. 7343 73442013-01-06 Eric Botcazou <ebotcazou@adacore.com> 7345 7346 * gcc-interface/decl.c (annotate_value) <COMPONENT_REF>: Be prepared 7347 for discriminants inherited from parent record types. 7348 73492013-01-04 Robert Dewar <dewar@adacore.com> 7350 7351 * warnsw.adb: Minor fixes to -gnatw.d handling. 7352 73532013-01-04 Robert Dewar <dewar@adacore.com> 7354 7355 * einfo.adb, atree.adb: Enlarge entities to make 63 more flags, 6 more 7356 fields. 7357 73582013-01-04 Joel Brobecker <brobecker@adacore.com> 7359 7360 * gnat_ugn.texi: Fix typo. 7361 73622013-01-04 Robert Dewar <dewar@adacore.com> 7363 7364 * gnat_rm.texi: Document alignment choice for subtypes. 7365 73662013-01-04 Robert Dewar <dewar@adacore.com> 7367 7368 * validsw.ads: Minor fix to comment. 7369 73702013-01-04 Doug Rupp <rupp@adacore.com> 7371 7372 * Makefile.rtl (GNATRTL_NONTASKING_OBJS, 7373 GNATRTL_ALTIVEC_OBJS): Factor g-al* objects. 7374 * gcc-interface/Makefile.in (ADA_EXCLUDE_SRCS): Add g-al* sources. 7375 (GNATRTL_ALTIVEC_OBJS): Override to null for VMS. 7376 Rename leon vxworks toolchain as leon-wrs-vxworks. 7377 * gcc-interface/Make-lang.in: Update dependencies 7378 73792013-01-04 Pascal Obry <obry@adacore.com> 7380 7381 * prj.ads (For_Each_Source): Add Locally_Removed parameter. 7382 (Source_Iterator): Add Locally_Removed field. 7383 * prj.adb (For_Each_Source): Ignore Locally_Removed files if needed. 7384 (Next): Likewise. 7385 73862013-01-04 Robert Dewar <dewar@adacore.com> 7387 7388 * exp_attr.adb: Minor reformatting. 7389 73902013-01-04 Robert Dewar <dewar@adacore.com> 7391 7392 * checks.adb (Insert_Valid_Check): Fix handling of renamed 7393 packed array element. 7394 * exp_ch4.adb (Expand_Concatenate): Fix some missing parent 7395 fields in generated code. 7396 * exp_util.adb (Side_Effect_Free): Improve detection of cases 7397 needing renaming. 7398 73992013-01-04 Robert Dewar <dewar@adacore.com> 7400 7401 * sinfo.ads: Clean up order of N_xxx subtypes 7402 74032013-01-04 Vincent Celier <celier@adacore.com> 7404 7405 * prj-conf.adb (Check_Target): Allow --autoconf= with no target. 7406 74072013-01-04 Robert Dewar <dewar@adacore.com> 7408 7409 * types.ads, prj-conf.adb, par-tchk.adb: Minor reformatting. 7410 74112013-01-04 Robert Dewar <dewar@adacore.com> 7412 7413 * par-ch6.adb (P_Subprogram): Better handling of missing IS 7414 after expression function. 7415 * par-util.adb (No_Constraint): Improve handling to avoid bad warnings. 7416 74172013-01-04 Robert Dewar <dewar@adacore.com> 7418 7419 * exp_util.ads, exp_util.adb (Insert_Actions): In expression with 7420 actions case, new actions are appended to the sequence rather than 7421 prepended. 7422 74232013-01-04 Robert Dewar <dewar@adacore.com> 7424 7425 * gnat_ugn.texi: Document -gnatw.d/w.D (does no apply in VMS mode). 7426 * usage.adb: Add lines for -gnatw.d/w.D switches. 7427 * warnsw.adb: Minor fixes (some missing cases of setting 7428 Warning_Doc_Switch). Reject -gnatw.d and -gnatw.D in VMS mode. 7429 74302013-01-04 Robert Dewar <dewar@adacore.com> 7431 7432 * exp_util.adb (Remove_Side_Effects): Make sure scope suppress 7433 is restored on exit. 7434 74352013-01-04 Robert Dewar <dewar@adacore.com> 7436 7437 * usage.adb: Document -gnateF (check overflow for predefined Float). 7438 74392013-01-04 Robert Dewar <dewar@adacore.com> 7440 7441 * sem_res.adb (Resolve_Type_Conversion): Remove incorrect 7442 prevention of call to Apply_Type_Conversion_Checks, which resulted 7443 in missing check flags in formal mode. 7444 74452013-01-04 Vincent Celier <celier@adacore.com> 7446 7447 * makeutl.ads (Db_Switch_Args): New table used by gprbuild. 7448 * prj-conf.adb (Check_Builder_Switches): Check for switches 7449 --config= (Get_Db_Switches): New procedure to get the --db 7450 switches so that they are used when invoking gprconfig in 7451 auto-configuration. 7452 (Do_Autoconf): When invoking gprconfig, use the --db switches, if any. 7453 74542013-01-04 Pascal Obry <obry@adacore.com> 7455 7456 * prj-nmsc.adb: Minor reformatting. 7457 74582013-01-04 Vincent Celier <celier@adacore.com> 7459 7460 * makeutl.ads (Root_Environment): New variable, moved rom 7461 gprbuild (Load_Standard_Base): New Boolean variable, moved 7462 from gprbuild. 7463 * prj-conf.adb (Check_Builder_Switches): New procedure to check 7464 for switch --RTS in package Builder. If a runtime specified 7465 by --RTS is a relative path name, but not a base name, then 7466 find the path on the Project Search Path. 7467 (Do_Autoconf): Call Check_Builder_Switches. 7468 (Locate_Runtime): New procedure, moved from gprbuild, to get the 7469 absolute paths of runtimes when they are not specified as a base name. 7470 * prj-conf.ads (Locate_Runtime): New procedure, moved from gprbuild. 7471 74722013-01-04 Ed Schonberg <schonberg@adacore.com> 7473 7474 * sem_ch3.adb (Build_Private_Derived_Type): Set 7475 Has_Private_Ancestor on type derived from an untagged private 7476 type whose full view has discriminants 7477 * sem_aggr.adb (Resolve_Record_Aggregate): Reject non-extension 7478 aggregate for untagged record type with private ancestor. 7479 74802013-01-04 Thomas Quinot <quinot@adacore.com> 7481 7482 * sem_elab.adb, sem_ch3.adb: Minor reformatting. 7483 74842013-01-04 Robert Dewar <dewar@adacore.com> 7485 7486 * table.adb: Minor reformatting. 7487 74882013-01-04 Ed Schonberg <schonberg@adacore.com> 7489 7490 * sem_ch10.adb (Check_Redundant_Withs): A with_clause that does 7491 not come from source does not generate a warning for redundant 7492 with_clauses. 7493 74942013-01-04 Hristian Kirtchev <kirtchev@adacore.com> 7495 7496 * aspects.adb, aspects.ads: Add Aspect_Global to all relevant tables. 7497 * par-prag.adb: Add pragma Global to the list of pragmas that 7498 do not need special processing by the parser. 7499 * sem_ch13.adb (Analyze_Aspect_Specifications): Convert aspect 7500 Global into a pragma without any form of legality checks. The 7501 work is done by Analyze_Pragma. The aspect and pragma are both 7502 marked as needing delayed processing. Insert the corresponding 7503 pragma of aspect Abstract_State in the visible declarations of the 7504 related package. 7505 (Check_Aspect_At_Freeze_Point): Aspect Global 7506 does not need processing even though it is marked as delayed. 7507 Alphabetize the list on aspect names. 7508 * sem_prag.adb: Add a value for pragma Global in table Sig_Flags. 7509 (Analyze_Pragma): Add ??? comment about the grammar of pragma 7510 Abstract_State. Move the error location from the pragma to the 7511 state to improve the quality of error placement. Add legality 7512 checks for pragma Global. 7513 * snames.ads-tmpl Add the following specially recognized names 7514 75152013-01-04 Eric Botcazou <ebotcazou@adacore.com> 7516 7517 * sem_ch3.adb: Fix minor typo. 7518 75192013-01-04 Ed Schonberg <schonberg@adacore.com> 7520 7521 * par-ch13.adb (Aspect_Specifications_Present): In Strict mode, 7522 accept an aspect name followed by a comma, indicating a defaulted 7523 boolean aspect. 7524 75252013-01-04 Joel Brobecker <brobecker@adacore.com> 7526 7527 * gnat_ugn.texi: Document procedure to codesign GDB on Darwin. 7528 Update doc on gnattest --separates switch. 7529 75302013-01-04 Thomas Quinot <quinot@adacore.com> 7531 7532 * s-chepoo.ads: Minor reformatting. 7533 75342013-01-04 Arnaud Charlet <charlet@adacore.com> 7535 7536 * usage.adb: Remove mention of -gnatN in usage. 7537 75382013-01-04 Robert Dewar <dewar@adacore.com> 7539 7540 * exp_prag.adb, gnatcmd.adb, exp_util.adb, table.adb, sem_prag.adb, 7541 freeze.adb, sem_ch4.adb, sem_warn.adb, opt.ads, exp_aggr.adb, 7542 prj-conf.adb, sem_ch13.adb: Minor reformatting. 7543 75442013-01-04 Thomas Quinot <quinot@adacore.com> 7545 7546 * sinfo.ads: Minor documentation update. 7547 75482013-01-04 Thomas Quinot <quinot@adacore.com> 7549 7550 * sem_ch3.adb, einfo.adb (Analyze_Object_Declaration): Do not set Ekind 7551 before resolving initialization expression. 7552 75532013-01-04 Hristian Kirtchev <kirtchev@adacore.com> 7554 7555 * checks.adb (Generate_Index_Checks): Delay the generation of 7556 the check for an indexed component where the prefix mentions 7557 Loop_Entry until the attribute has been properly expanded. 7558 * exp_ch5.adb (Expand_Loop_Entry_Attributes): Perform minor 7559 decoration of the constant that captures the value of Loop_Entry's 7560 prefix at the entry point into a loop. Generate index checks 7561 for an attribute reference that has been transformed into an 7562 indexed component. 7563 75642013-01-04 Thomas Quinot <quinot@adacore.com> 7565 7566 * exp_prag.adb, exp_util.adb, exp_util.ads, freeze.adb, exp_aggr.adb, 7567 sem_ch13.adb (Exp_Aggr.Collect_Initialization_Statements): Nothing to 7568 do if Obj is already frozen. 7569 (Exp_Util.Find_Init_Call): Rename to... 7570 (Exp_Util.Remove_Init_Call): New subprogram, renamed from 7571 Find_Init_Call. Remove the initialization call from the enclosing 7572 list if found, and if it is from an Initialization_Statements 7573 attribute, reset it. 7574 (Exp_Util.Append_Freeze_Action): Minor code reorganization. 7575 (Exp_Util.Append_Freeze_Actions): Ensure a freeze node has been 7576 allocated (as is already done in Append_Freeze_Action). 7577 (Freeze.Freeze_Entity): For an object with captured 7578 Initialization_Statements and non-delayed freezeing, unwrap the 7579 initialization statements and insert and them directly in the 7580 enclosing list. 7581 (Sem_Ch13.Check_Address_Clause): For an object 7582 with Initialization_Statements and an address clause, unwrap the 7583 initialization statements when moving them to the freeze actions. 7584 75852013-01-03 Pascal Obry <obry@adacore.com> 7586 7587 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package remote and 7588 corresponding attibutes. 7589 75902013-01-03 Thomas Quinot <quinot@adacore.com> 7591 7592 * exp_aggr.adb: Minor comment improvement. 7593 75942013-01-03 Hristian Kirtchev <kirtchev@adacore.com> 7595 7596 * aspects.adb, aspects.ads: Add Aspect_Abstract_State to all the 7597 relevant tables. 7598 * einfo.ads, einfo.adb: Add Integrity_Level and Refined_State to 7599 the description of fields (Abstract_States): New routine. 7600 (Integrity_Level): New routine. 7601 (Has_Property): New routine. 7602 (Is_Input_State): New routine. 7603 (Is_Null_State): New routine. 7604 (Is_Output_State): New routine. 7605 (Is_Volatile_State): New routine. 7606 (Refined_State): New routine. 7607 (Set_Abstract_States): New routine. 7608 (Set_Integrity_Level): New routine. 7609 (Set_Refined_State): New routine. 7610 (Write_Field8_Name): Add proper output for E_Abstract_State. 7611 (Write_Field9_Name): Add proper output for E_Abstract_State. 7612 (Write_Field25_Name): Add proper output for E_Package. 7613 * lib-xref.ads: Add new letter for an abstract state. 7614 * par-prag.adb: Add pragma Abstract_State to the list of pragma 7615 that do not need special processing by the parser. 7616 * sem_ch13.adb (Analyze_Aspect_Specifications): Convert 7617 aspect Abstract_State into a pragma without any form 7618 of legality checks. The work is done by Analyze_Pragma. 7619 (Check_Aspect_At_Freeze_Point): Aspect Abstract_State does not 7620 require delayed analysis. 7621 * sem_prag.adb: Add a value for pragma Abstract_State in table 7622 Sig_Flags. 7623 (Analyze_Pragma): Add legality checks for pragma 7624 Abstract_State. Analysis of individual states introduces a state 7625 abstraction entity into the visibility chain. 7626 * snames.ads-tmpl: Add new names for abstract state and 7627 integrity. Add new pragma id for abstract state. 7628 76292013-01-03 Bob Duff <duff@adacore.com> 7630 7631 * table.adb (Reallocate): Calculate new Length in 7632 Long_Integer to avoid overflow. 7633 76342013-01-03 Thomas Quinot <quinot@adacore.com> 7635 7636 * sem_ch3.adb, sinfo.ads, freeze.adb, sem_ch4.adb, exp_aggr.adb 7637 (Sem_Ch3.Analyze_Object_Declaration): Set Ekind early so that 7638 it is set properly when expanding the initialization expression. 7639 (Freeze.Check_Address_Clause): Transfer initialization expression 7640 to an assignment in the freeze actions, so that the object is 7641 initialized only after being elaborated by GIGI. 7642 (Sinfo (comments), Sem_Ch4.Analyze_Expression_With_Actions): Allow 7643 a Null_Statement as the expression in an Expression_With_Actions. 7644 (Exp_Aggr.Collect_Initialization_Statements): New subprogram 7645 shared by expansion of record and array aggregates, used to 7646 capture statements for an aggregate used to initalize an object 7647 into an Expression_With_Actions (which acts as a container for 7648 a list of actions). 7649 (Exp_Aggr.Convert_Aggr_In_Obj_Decl): Use the above to 7650 capture initialization statements, instead of the previously 7651 existing loop which left freeze nodes out of the capturing 7652 construct (causing out of order elaboration crashes in GIGI). 7653 (Exp_Aggr.Expand_Array_Aggregate): Use the above to capture 7654 initialization statements (this was previously not done for 7655 arrays). Also do not unconditionally prevent in place expansion 7656 for an object with address clause. 7657 76582013-01-03 Thomas Quinot <quinot@adacore.com> 7659 7660 * gnat_rm.texi, freeze.adb (Check_Component_Storage_Order): Check that 7661 a record extension has the same scalar storage order as the parent type. 7662 76632013-01-03 Thomas Quinot <quinot@adacore.com> 7664 7665 * exp_ch4.adb: Add comment. 7666 76672013-01-03 Vincent Celier <celier@adacore.com> 7668 7669 * prj.adb: Minor spelling error correction in comment. 7670 76712013-01-03 Vincent Celier <celier@adacore.com> 7672 7673 * gnatcmd.adb (GNATCmd): If a single main has been specified 7674 as an absolute path, use its simple file name to find specific 7675 switches, instead of the absolute path. 7676 76772013-01-03 Javier Miranda <miranda@adacore.com> 7678 7679 * sem_warn.adb (Warn_On_Overlapping_Actuals): For overlapping 7680 parameters that are record types or array types generate warnings 7681 only compiling under -gnatw.i 7682 * opt.ads (Extensions_Allowed): Restore previous documentation. 7683 76842013-01-03 Vincent Celier <celier@adacore.com> 7685 7686 * prj-conf.adb (Do_Autoconf): If Target is specified in the 7687 main project, but not on the command line, use the Target in 7688 the project to invoke gprconfig in auto-configuration. 7689 * makeutl.ads (Default_Config_Name): New constant String. 7690 76912013-01-03 Arnaud Charlet <charlet@adacore.com> 7692 7693 * usage.adb: Minor: fix typo in usage. 7694 76952013-01-03 Thomas Quinot <quinot@adacore.com> 7696 7697 * sem_ch13.adb (Analyze_Record_Representation_Clause): Reject 7698 an illegal component clause for an inherited component in a 7699 record extension. 7700 77012013-01-03 Emmanuel Briot <briot@adacore.com> 7702 7703 * xref_lib.adb (Parse_Identifier_Info): Fix handling of arrays, which 7704 have information in the ALI file for both the index and the component 7705 types. 7706 77072013-01-03 Emmanuel Briot <briot@adacore.com> 7708 7709 * projects.texi: Fix error in documenting the project path 7710 computed for an aggregate project. 7711 77122013-01-03 Javier Miranda <miranda@adacore.com> 7713 7714 * sem_warn.adb (Warn_On_Overlapping_Actuals): Adding documentation 7715 plus restricting the functionality of this routine to cover the 7716 cases described in the Ada 2012 reference manual. The previous 7717 extended support is now available under -gnatX. 7718 * s-tassta.adb (Finalize_Global_Tasks): Addition of a dummy 7719 variable to call Timed_Sleep. Required to avoid warning on 7720 overlapping out-mode actuals. 7721 * opt.ads (Extensions_Allowed): Update documentation. 7722 77232013-01-03 Tristan Gingold <gingold@adacore.com> 7724 7725 * s-arit64.ads: Use Multiply_With_Ovflo_Check as __gnat_mulv64. 7726 * arit64.c: Removed 7727 * gcc-interface/Makefile.in: Remove reference to arit64.c. 7728 77292013-01-03 Thomas Quinot <quinot@adacore.com> 7730 7731 * checks.adb, checks.ads (Apply_Address_Clause_Check): The check must 7732 be generated at the start of the freeze actions for the entity, not 7733 before (or after) the freeze node. 7734 77352013-01-03 Thomas Quinot <quinot@adacore.com> 7736 7737 * exp_aggr.adb (Exp_Aggr.Convert_Aggregate_In_Obj_Decl): 7738 Reorganize code to capture initialization statements in a block, 7739 so that freeze nodes are excluded from the captured block. 7740 77412013-01-03 Thomas Quinot <quinot@adacore.com> 7742 7743 * exp_ch11.adb: Minor reformatting. 7744 77452013-01-03 Thomas Quinot <quinot@adacore.com> 7746 7747 * exp_util.adb, einfo.adb, einfo.ads, freeze.adb, exp_aggr.adb, 7748 sem_ch13.adb (Einfo.Initialization_Statements, 7749 Einfo.Set_Initialization_Statements): New entity attribute 7750 for objects. 7751 (Exp_Util.Find_Init_Call): Handle case of an object initialized 7752 by an aggregate converted to a block of assignment statements. 7753 (Freeze.Check_Address_Clause): Do not clear Has_Delayed_Freeze 7754 even for objects that require a constant address, because the 7755 address expression might involve entities that have yet to be 7756 elaborated at the point of the object declaration. 7757 (Exp_Aggr.Convert_Aggregate_In_Obj_Decl): For a type that does 7758 not require a transient scope, capture the assignment statements 7759 in a block so that they can be moved down after elaboration of 7760 an address clause if needed. 7761 (Sem_Ch13.Check_Constant_Address_Clause.Check_Expr_Constants, 7762 case N_Unchecked_Conversion): Do not replace operand subtype with 7763 its base type as this violates a GIGI invariant if the operand 7764 is an identifier (in which case the etype of the identifier 7765 is expected to be equal to that of the denoted entity). 7766 77672013-01-03 Javier Miranda <miranda@adacore.com> 7768 7769 * sem_util.ads, sem_util.adb (Denotes_Same_Object): Extend the 7770 functionality of this routine to cover cases described in the Ada 2012 7771 reference manual. 7772 77732013-01-03 Ed Schonberg <schonberg@adacore.com> 7774 7775 * sem_elab.adb (Set_Elaboration_Constraint): Handle properly 7776 a 'Access attribute reference when the subprogram is called 7777 Initialize. 7778 77792013-01-03 Arnaud Charlet <charlet@adacore.com> 7780 7781 * s-tpobop.adb (PO_Do_Or_Queue): Refine assertion, since a 7782 select statement may be called from a controlled (e.g. Initialize) 7783 operation and have abort always deferred. 7784 77852013-01-03 Robert Dewar <dewar@adacore.com> 7786 7787 * sem_ch8.adb, einfo.ads, einfo.adb: Minor code reorganization. 7788 77892013-01-03 Javier Miranda <miranda@adacore.com> 7790 7791 * exp_ch3.adb (Make_Controlling_Function_Wrappers): Exclude 7792 internal entities associated with interfaces and add minimum 7793 decoration to the defining entity of the generated wrapper to 7794 allow overriding interface primitives. 7795 * sem_disp.ads (Override_Dispatching_Operation): Addition of a 7796 new formal (Is_Wrapper). 7797 * sem_disp.adb (Override_Dispatching_Operation): When overriding 7798 interface primitives the new formal helps identifying that the 7799 new operation is not fully decorated. 7800 78012013-01-03 Thomas Quinot <quinot@adacore.com> 7802 7803 * sem_ch7.adb, sem_ch10.adb, einfo.adb, einfo.ads, sem_ch12.adb, 7804 rtsfind.adb, sem_elab.adb, sem_ch4.adb, sem_ch8.adb 7805 (Einfo.Is_Visible_Child_Unit, Einfo.Set_Is_Visible_Child_Unit): 7806 Rename to Is_Visible_Lib_Unit, Set_Is_Visible_Lib_Unit, and 7807 update spec accordingly (now also applies to root library units). 7808 (Sem_Ch10.Analyze_Subunit.Analyze_Subunit_Context): Toggle above flag 7809 on root library units, not only child units. 7810 (Sem_Ch10.Install[_Limited]_Withed_Unit): Same. 7811 (Sem_Ch10.Remove_Unit_From_Visibility): Reset Is_Visible_Lib_Unit 7812 even for root library units. 7813 (Sem_Ch8.Find_Expanded_Name): A selected component form whose prefix is 7814 Standard is an expanded name for a root library unit. 7815 78162013-01-03 Thomas Quinot <quinot@adacore.com> 7817 7818 * exp_ch3.adb: Minor reformatting. 7819 78202013-01-03 Olivier Hainque <hainque@adacore.com> 7821 7822 * tracebak.c: Reinstate changes to support ppc-lynx178. 7823 78242013-01-03 Ed Schonberg <schonberg@adacore.com> 7825 7826 * atree.ads: Minor reformatting and documentation enhancement. 7827 78282013-01-03 Ed Schonberg <schonberg@adacore.com> 7829 7830 * exp_ch3.adb (Expand_N_Object_Declaration): If the object has 7831 a class-wide type and a renaming declaration is created for it, 7832 preserve entity chain, which already contains generated internal 7833 types. This ensures that freezing actions are properly generated 7834 for all objects declared subsequently in the same scope, and 7835 that debugging information is generated for them. 7836 * sem_util.adb, sem_util.ads (we): New debugging routine, to 7837 display entity chain of a given scope. 7838 78392013-01-03 Robert Dewar <dewar@adacore.com> 7840 7841 * exp_intr.adb: Minor reformatting. 7842 78432013-01-03 Robert Dewar <dewar@adacore.com> 7844 7845 * einfo.adb: Minor reformatting. 7846 78472013-01-03 Pascal Obry <obry@adacore.com> 7848 7849 * adaint.c, adaint.h (__gnat_get_module_name): Removed. 7850 (__gnat_is_module_name_supported): Removed. 7851 * s-win32.ads: Add some needed definitions. 7852 * g-trasym.ads: Update comments. 7853 78542013-01-03 Robert Dewar <dewar@adacore.com> 7855 7856 * layout.adb (Set_Composite_Alignment): Fix problems of 7857 interactions with Optimize_Alignment set to Space. 7858 78592013-01-03 Thomas Quinot <quinot@adacore.com> 7860 7861 * exp_disp.adb: Minor reformatting. 7862 78632013-01-02 Richard Biener <rguenther@suse.de> 7864 7865 PR bootstrap/55784 7866 * gcc-interface/Makefile.in: Add $(GMPINC) to includes. 7867 78682013-01-02 Thomas Quinot <quinot@adacore.com> 7869 7870 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Remove 7871 side effects from Tag_Arg early, doing it too late may cause a 7872 crash due to inconsistent Parent link. 7873 * sem_ch8.adb, einfo.ads: Minor reformatting. 7874 78752013-01-02 Robert Dewar <dewar@adacore.com> 7876 7877 * einfo.ads, einfo.adb (Has_Independent_Components): New flag. 7878 * freeze.adb (Size_Known): We do not know the size of a packed 7879 record if it has atomic components, by reference type components, 7880 or independent components. 7881 * sem_prag.adb (Analyze_Pragma, case Independent_Components): Set new 7882 flag Has_Independent_Components. 7883 78842013-01-02 Yannick Moy <moy@adacore.com> 7885 7886 * opt.ads (Warn_On_Suspicious_Contract): Set to True by default. 7887 * usage.adb (Usage): Update usage message. 7888 78892013-01-02 Pascal Obry <obry@adacore.com> 7890 7891 * adaint.c (__gnat_is_module_name_supported): New constant. 7892 78932013-01-02 Ed Schonberg <schonberg@adacore.com> 7894 7895 * sem_attr.adb (Check_Array_Type): Reject an attribute reference on an 7896 array whose component type does not have a completion. 7897 78982013-01-02 Geert Bosch <bosch@adacore.com> 7899 7900 * a-nllcef.ads, a-nlcefu.ads, a-nscefu.ads: Make Pure. 7901 79022013-01-02 Robert Dewar <dewar@adacore.com> 7903 7904 * par_sco.adb: Minor reformatting. 7905 79062013-01-02 Javier Miranda <miranda@adacore.com> 7907 7908 * sem_aggr.adb (Resolve_Array_Aggregate): Remove dead code. 7909 79102013-01-02 Olivier Hainque <hainque@adacore.com> 7911 7912 * a-exctra.ads (Get_PC): New function. 7913 79142013-01-02 Thomas Quinot <quinot@adacore.com> 7915 7916 * sem_ch8.adb: Minor reformatting. 7917 79182013-01-02 Thomas Quinot <quinot@adacore.com> 7919 7920 * sem_ch7.adb: Minor reformatting. 7921 79222013-01-02 Thomas Quinot <quinot@adacore.com> 7923 7924 * freeze.adb (Check_Component_Storage_Order): Do not crash on 7925 _Tag component. 7926 79272013-01-02 Robert Dewar <dewar@adacore.com> 7928 7929 * gnat1drv.adb, targparm.adb, targparm.ads: Minor name change: add 7930 On_Target to Atomic_Sync_Default. 7931 79322013-01-02 Robert Dewar <dewar@adacore.com> 7933 7934 * sem_warn.adb (Warn_On_Known_Condition): Suppress warning for 7935 comparison of attribute result with constant 7936 * a-ststio.adb, s-direio.adb, s-rannum.adb: Remove unnecessary pragma 7937 Warnings (Off, ".."); 7938 79392013-01-02 Yannick Moy <moy@adacore.com> 7940 7941 * sem_prag.ads: Minor correction of comment. 7942 79432013-01-02 Thomas Quinot <quinot@adacore.com> 7944 7945 * par_sco.adb (Traverse_Package_Declaration): The first 7946 declaration in a nested package is dominated by the preceding 7947 declaration in the enclosing scope. 7948 79492013-01-02 Pascal Obry <obry@adacore.com> 7950 7951 * adaint.c, adaint.h (__gnat_get_module_name): Return the actual 7952 module containing a given address. 7953 79542013-01-02 Thomas Quinot <quinot@adacore.com> 7955 7956 * sem_ch3.adb: Minor reformatting. 7957 79582013-01-02 Pascal Obry <obry@adacore.com> 7959 7960 * cstreams.c (__gnat_ftell64): New routine. Use _ftelli64 on 7961 Win64 and default to ftell on other platforms. 7962 (__gnat_fsek64): Likewise. 7963 * i-cstrea.ads: Add fssek64 and ftell64 specs. 7964 * s-crtl.ads: Likewise. 7965 * a-ststio.adb, s-direio.adb (Size): Use 64 bits version when required. 7966 (Set_Position): Likewise. 7967 79682013-01-02 Thomas Quinot <quinot@adacore.com> 7969 7970 * par_sco.adb: Generate X SCOs for default expressions in 7971 subprogram body stubs. Do not generate any SCO for package, 7972 task, or protected body stubs. 7973 79742013-01-02 Ed Schonberg <schonberg@adacore.com> 7975 7976 * sem_ch3.adb: Further improvement to ASIS mode for anonymous 7977 access to protected subprograms. 7978 79792013-01-02 Robert Dewar <dewar@adacore.com> 7980 7981 * par_sco.adb, vms_data.ads: Minor reformatting. 7982 79832013-01-02 Thomas Quinot <quinot@adacore.com> 7984 7985 * par_sco.adb (Traverse_Declarations_Or_Statement): Function 7986 form, returning value of Current_Dominant upon exit, for chaining 7987 purposes. 7988 (Traverse_Declarations_Or_Statement.Traverse_One, case 7989 N_Block_Statement): First statement is dominated by last declaration. 7990 (Traverse_Subprogram_Or_Task_Body): Ditto. 7991 (Traverse_Package_Declaration): First private 7992 declaration is dominated by last visible declaration. 7993 (Traverse_Sync_Definition): Ditto. 7994 79952013-01-02 Thomas Quinot <quinot@adacore.com> 7996 7997 * gnat_rm.texi: Restrict the requirement for Scalar_Storage_Order 7998 matching Bit_Order to record types only, since array types do not 7999 have a Bit_Order. 8000 80012013-01-02 Vincent Celier <celier@adacore.com> 8002 8003 * gnat_ugn.texi: Remove documentation of -gnateO, which is an 8004 internal switch. 8005 * usage.adb: Indicate that -gnateO is an internal switch. 8006 80072013-01-02 Thomas Quinot <quinot@adacore.com> 8008 8009 * par_sco.adb: Add SCO generation for task types and single 8010 task declarations. 8011 * get_scos.adb: When adding an instance table entry for a 8012 non-nested instantiation, make sure the Enclosing_Instance is 8013 correctly set to 0. 8014 80152013-01-02 Hristian Kirtchev <kirtchev@adacore.com> 8016 8017 * sem_attr.adb (Analyze_Attribute): Skip the special _Parent 8018 scope generated for subprogram inlining purposes while trying 8019 to locate the enclosing function. 8020 * sem_prag.adb (Analyze_Pragma): Preanalyze the boolean 8021 expression of pragma Postcondition when the pragma comes from 8022 source and appears inside a subprogram body. 8023 80242013-01-02 Thomas Quinot <quinot@adacore.com> 8025 8026 * switch-c.adb, fe.h, back_end.adb: Enable generation of instantiation 8027 information in debug info unconditionally when using -fdump-scos, 8028 instead of relying on a separate command line switch -fdebug-instances. 8029 * gcc-interface/Make-lang.in: Update dependencies. 8030 80312013-01-02 Ed Schonberg <schonberg@adacore.com> 8032 8033 * sem_ch12.adb: Additional refinement of predicate. 8034 80352013-01-02 Vincent Celier <celier@adacore.com> 8036 8037 * vms_data.ads: Remove incorrect spaces at end of descriptions 8038 of qualifiers for single switch. 8039 80402013-01-02 Ben Brosgol <brosgol@adacore.com> 8041 8042 * gnat_rm.texi: Minor edits / wordsmithing in section on pragma 8043 Check_Float_Overflow. 8044 80452013-01-02 Thomas Quinot <quinot@adacore.com> 8046 8047 * sprint.adb (Sprint_Node_Actual): Do not add extra parens for 8048 a conditional expression (CASE or IF expression) that already 8049 has parens. Also omit ELSE keyword for an IF expression without 8050 an ELSE part. 8051 80522013-01-02 Thomas Quinot <quinot@adacore.com> 8053 8054 * gnat1drv.adb (Adjust_Global_Switches): Adjust back-end 8055 flag_debug_instances here, after front-end switches have been 8056 processed. 8057 80582013-01-02 Vincent Celier <celier@adacore.com> 8059 8060 * usage.adb: Minor reformatting. 8061 80622013-01-02 Arnaud Charlet <charlet@adacore.com> 8063 8064 * opt.ads: Fix typo. 8065 80662013-01-02 Thomas Quinot <quinot@adacore.com> 8067 8068 * par_sco.adb: Generate P decision SCOs for SPARK pragmas 8069 Assume and Loop_Invariant. 8070 80712013-01-02 Robert Dewar <dewar@adacore.com> 8072 8073 * vms_data.ads: Add entry for Float_Check_Valid (-gnateF). 8074 * ug_words: Add entry for Float_Check_Overflow. 8075 * usage.adb: Minor reformatting. 8076 * gnat_ugn.texi: Add documentation for -gnateF (Check_Float_Overflow). 8077 80782013-01-02 Vincent Celier <celier@adacore.com> 8079 8080 * gnat_ugn.texi: Add documentation for switches -gnateA, -gnated, 8081 -gnateO=, -gnatet and -gnateV. 8082 * ug_words: Add qualifiers equivalent to -gnateA, -gnated, 8083 -gnatet and -gnateV. 8084 * usage.adb: Add lines for -gnatea, -gnateO and -gnatez. 8085 * vms_data.ads: Add new compiler qualifiers /ALIASING_CHECK 8086 (-gnateA), /DISABLE_ATOMIC_SYNCHRONIZATION (-gnated), 8087 /PARAMETER_VALIDITY_CHECK (-gnateV) and /TARGET_DEPENDENT_INFO 8088 (-gnatet). 8089 80902013-01-02 Robert Dewar <dewar@adacore.com> 8091 8092 * checks.adb (Apply_Scalar_Range_Check): Implement Check_Float_Overflow. 8093 * opt.ads, opt.adb: Handle flags Check_Float_Overflow[_Config]. 8094 * par-prag.adb: Add dummy entry for pragma Check_Float_Overflow. 8095 * sem_prag.adb: Implement pragma Check_Float_Overflow. 8096 * snames.ads-tmpl: Add entries for pragma Check_Float_Overflow. 8097 * switch-c.adb: Recognize -gnateF switch. 8098 * tree_io.ads: Update ASIS version number. 8099 * gnat_rm.texi: Add documentation of pragma Check_Float_Overflow. 8100 81012013-01-02 Robert Dewar <dewar@adacore.com> 8102 8103 * checks.adb, exp_ch4.adb, exp_ch6.adb, exp_ch7.adb, exp_ch9.adb, 8104 exp_disp.adb, exp_dist.adb, exp_intr.adb, exp_prag.adb, exp_util.adb, 8105 freeze.adb, gnat1drv.adb, inline.adb, layout.adb, lib-xref.adb, 8106 par-ch10.adb, par-labl.adb, par-load.adb, par-util.adb, restrict.adb, 8107 sem_ch13.adb, sem_ch4.adb, sem_ch6.adb, sem_dim.adb, sem_elab.adb, 8108 sem_res.adb, sem_warn.adb, sinput-l.adb: Add tags to warning messages. 8109 * sem_ch6.ads, warnsw.ads, opt.ads: Minor comment updates. 8110 81112013-01-02 Robert Dewar <dewar@adacore.com> 8112 8113 * err_vars.ads: Minor comment fix. 8114 81152013-01-02 Ed Schonberg <schonberg@adacore.com> 8116 8117 * sem_ch12.adb: Refine predicate. 8118 81192013-01-02 Robert Dewar <dewar@adacore.com> 8120 8121 * errout.ads: Minor comment fixes. 8122 * opt.ads: Minor comment additions. 8123 * exp_aggr.adb: Add tags to warning messages 8124 * exp_ch11.adb, exp_ch3.adb, exp_ch4.adb, exp_util.adb, sem_aggr.adb, 8125 sem_attr.adb, sem_case.adb, sem_cat.adb, sem_ch3.adb, sem_ch4.adb, 8126 sem_ch5.adb, sem_disp.adb, sem_dist.adb, sem_elab.adb, sem_eval.adb, 8127 sem_intr.adb, sem_mech.adb, sem_prag.adb, sem_res.adb, sem_util.adb, 8128 sem_warn.adb: Add tags to warning messages 8129 81302013-01-02 Doug Rupp <rupp@adacore.com> 8131 8132 * init.c [VMS] Remove subtest on reason mask for ACCVIO that is a C_E. 8133 81342013-01-02 Ed Schonberg <schonberg@adacore.com> 8135 8136 * sem_ch12.adb: Recover source name for renamed packagea. 8137 81382013-01-02 Robert Dewar <dewar@adacore.com> 8139 8140 * errout.adb (Set_Msg_Insertion_Warning): Correct typo causing 8141 tests to fail if insertion sequence is at end of message string. 8142 * opt.ads: Minor comment fixes and additions. 8143 * sem_ch7.adb, sem_ch8.adb, sem_ch9.adb, sem_ch10.adb, sem_ch11.adb, 8144 sem_ch12.adb, sem_ch13.adb: Add tags to warning messages. 8145 * sem_ch6.ads, sem_ch6.adb (Cannot_Inline): Deal with warning message 8146 tags. Add tags to warning messages. 8147 81482013-01-02 Robert Dewar <dewar@adacore.com> 8149 8150 * err_vars.ads (Warning_Doc_Switch): New flag. 8151 * errout.adb (Error_Msg_Internal): Implement new warning flag 8152 doc tag stuff (Set_Msg_Insertion_Warning): New procedure. 8153 * errout.ads: Document new insertion sequences ?? ?x? ?.x? 8154 * erroutc.adb (Output_Msg_Text): Handle ?? and ?x? warning doc 8155 tag stuff. 8156 * erroutc.ads (Warning_Msg_Char): New variable. 8157 (Warn_Chr): New field in error message object. 8158 * errutil.adb (Error_Msg): Set Warn_Chr in error message object. 8159 * sem_ch13.adb: Minor reformatting. 8160 * warnsw.adb: Add handling for -gnatw.d and -gnatw.D 8161 (Warning_Doc_Switch). 8162 * warnsw.ads: Add handling of -gnatw.d/.D switches (warning 8163 doc tag). 8164 81652013-01-02 Robert Dewar <dewar@adacore.com> 8166 8167 * opt.ads: Minor reformatting. 8168 81692013-01-02 Doug Rupp <rupp@adacore.com> 8170 8171 * init.c: Reorganize VMS section. 8172 (scan_condtions): New function for scanning condition tables. 8173 (__gnat_handle_vms_condtion): Use actual exception name for imported 8174 exceptions vice IMPORTED_EXCEPTION. 8175 Move condition table scanning into separate function. Move formerly 8176 special handled conditions to system condition table. Use SYS$PUTMSG 8177 output to fill exception message field for formally special handled 8178 condtions, in particular HPARITH to provide more clues about cause and 8179 location then raised from the translated image. 8180 81812013-01-02 Thomas Quinot <quinot@adacore.com> 8182 8183 * sem_ch13.adb (Analyze_Aspect_Specifications): For a Pre/Post 8184 aspect that applies to a library subprogram, prepend corresponding 8185 pragma to the Pragmas_After list, in order for split AND THEN 8186 sections to be processed in the expected order. 8187 81882013-01-02 Thomas Quinot <quinot@adacore.com> 8189 8190 * exp_prag.adb (Expand_Pragma_Check): The statements generated 8191 for the pragma must have the sloc of the pragma, not the 8192 sloc of the condition, otherwise this creates anomalies in the 8193 generated debug information that confuse coverage analysis tools. 8194 81952013-01-02 Thomas Quinot <quinot@adacore.com> 8196 8197 * sem_ch13.adb: Minor reformatting. 8198 81992013-01-02 Arnaud Charlet <charlet@adacore.com> 8200 8201 * g-excact.ads (Core_Dump): Clarify that this subprogram does 8202 not dump cores under Windows. 8203 82042013-01-02 Ed Schonberg <schonberg@adacore.com> 8205 8206 * sem_ch8.adb (Analyze_Primitive_Renamed_Operation): The prefixed 8207 view of a subprogram has convention Intrnnsic, and a renaming 8208 of a prefixed view cannot be the prefix of an Access attribute. 8209 82102013-01-02 Robert Dewar <dewar@adacore.com> 8211 8212 * restrict.adb: Minor reformatting. 8213 82142013-01-02 Thomas Quinot <quinot@adacore.com> 8215 8216 * exp_prag.adb: Minor reformatting. 8217 82182013-01-02 Ed Schonberg <schonberg@adacore.com> 8219 8220 * sem_ch12.adb (Get_Associated_Node): If the node is an 8221 identifier that denotes an unconstrained array in an object 8222 declaration, it is rewritten as the name of an anonymous 8223 subtype whose bounds are given by the initial expression in the 8224 declaration. When checking whether that identifier is global 8225 reference, use the original node, not the local generated subtype. 8226 82272013-01-02 Olivier Hainque <hainque@adacore.com> 8228 8229 * tracebak.c: Revert previous change, incomplete. 8230 82312013-01-02 Ed Schonberg <schonberg@adacore.com> 8232 8233 * sem_ch13.adb (Analyze_Aspect_Specifications): If the aspect 8234 appears on a subprogram body that acts as a spec, place the 8235 corresponding pragma in the declarations of the body, so that 8236 e.g. pre/postcondition checks can be generated appropriately. 8237 82382013-01-02 Robert Dewar <dewar@adacore.com> 8239 8240 * sem_ch3.adb: Minor reformatting and code reorganization. 8241 82422013-01-02 Vincent Celier <celier@adacore.com> 8243 8244 * switch-m.adb (Normalize_Compiler_Switches): Record the 8245 complete switch -fstack-check=specific instead of its shorter 8246 alias -fstack-check. 8247 82482013-01-02 Ed Schonberg <schonberg@adacore.com> 8249 8250 * sem_ch3.adb (Derive_Subprogram): Enforce RM 6.3.1 (8): 8251 if the derived type is a tagged generic formal type with 8252 unknown discriminants, the inherited operation has convention 8253 Intrinsic. As such, the 'Access attribute cannot be applied to it. 8254 82552013-01-02 Thomas Quinot <quinot@adacore.com> 8256 8257 * sem_attr.adb: Minor reformatting. 8258 82592013-01-02 Thomas Quinot <quinot@adacore.com> 8260 8261 * par_sco.adb: Add SCO generation for S of protected types and 8262 single protected object declarations. 8263 82642013-01-02 Robert Dewar <dewar@adacore.com> 8265 8266 * sem_eval.adb, osint.ads: Minor reformatting. 8267 82682013-01-02 Hristian Kirtchev <kirtchev@adacore.com> 8269 8270 * sem_prag.adb (Analyze_Pragma): Check the legality of pragma Assume. 8271 82722013-01-02 Thomas Quinot <quinot@adacore.com> 8273 8274 * sem_eval.adb (Compile_Time_Compare): For static operands, we 8275 can perform a compile time comparison even if in preanalysis mode. 8276 82772013-01-02 Thomas Quinot <quinot@adacore.com> 8278 8279 * par_sco.adb (SCO_Record): Always use 8280 Traverse_Declarations_Or_Statements to process the library level 8281 declaration, so that SCOs are properly generated for its aspects. 8282 82832013-01-02 Thomas Quinot <quinot@adacore.com> 8284 8285 * scos.ads (In_Decision): Add missing entry for 'a'. 8286 * sem_prag.adb (Analyze_Pragma, case pragma Check): Omit 8287 call to Set_SCO_Pragma_Enabled for Invariant and Predicate. 8288 * sem_ch13.adb: Minor comment update. 8289 8290Copyright (C) 2013 Free Software Foundation, Inc. 8291 8292Copying and distribution of this file, with or without modification, 8293are permitted in any medium without royalty provided the copyright 8294notice and this notice are preserved. 8295