12016-06-03 Release Manager 2 3 * GCC 5.4.0 released. 4 52016-05-31 Eric Botcazou <ebotcazou@adacore.com> 6 7 * s-osinte-kfreebsd-gnu.ads (clock_getres): Define. 8 92016-05-31 Jan Sommer <soja-lists@aries.uberspace.de> 10 11 PR ada/71317 12 * s-osinte-rtems.ads (clock_getres): Define. 13 142016-05-06 Eric Botcazou <ebotcazou@adacore.com> 15 16 PR ada/70969 17 * system-darwin-ppc64.ads: Add pragma No_Elaboration_Code_All. 18 * system-linux-armeb.ads: Likewise. 19 * system-linux-mips64el.ads: Likewise. 20 * system-linux-mips.ads: Likewise. 21 * system-linux-mipsel.ads: Likewise. 22 * system-linux-ppc64.ads: Likewise. 23 * system-linux-sparcv9.ads: Likewise. 24 * system-rtems.ads: Likewise. 25 262016-05-02 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> 27 28 * gcc-interface/Makefile.in (install-gcc-specs): Use foreach. 29 Honor DESTDIR. 30 312016-04-28 Eric Botcazou <ebotcazou@adacore.com> 32 33 PR ada/70786 34 * a-textio.adb (Get_Immediate): Add missing 'not' in expression. 35 362016-04-02 Eric Botcazou <ebotcazou@adacore.com> 37 38 * gcc-interface/decl.c (components_to_record): Restrict the previous 39 change to fields with variable size. 40 412016-03-27 Eric Botcazou <ebotcazou@adacore.com> 42 43 * gcc-interface/decl.c (components_to_record): Add special case for 44 single field with representation clause at offset 0. 45 462016-02-17 Eric Botcazou <ebotcazou@adacore.com> 47 48 * exp_ch4.adb (Expand_N_Indexed_Component): Activate synchronization if 49 the prefix denotes an entity which Has_Atomic_Components. 50 512016-02-16 Eric Botcazou <ebotcazou@adacore.com> 52 53 * gcc-interface/misc.c (gnat_enum_underlying_base_type): New function. 54 (LANG_HOOKS_ENUM_UNDERLYING_BASE_TYPE): Define to above. 55 562016-01-18 Eric Botcazou <ebotcazou@adacore.com> 57 58 PR ada/69219 59 * gcc-interface/trans.c (check_inlining_for_nested_subprog): Consider 60 the parent function instead of the current function in order to issue 61 the warning or the error. Add guard for ignored functions. 62 632015-12-06 Piotr Trojanek <piotr.trojanek@gmail.com> 64 65 PR ada/60164 66 * doc/gnat_ugn/gnat_and_program_execution.rst (gnatmem): Fix typo. 67 682015-12-06 Eric Botcazou <ebotcazou@adacore.com> 69 70 PR ada/56274 71 * s-osinte-kfreebsd-gnu.ads (pthread_rwlock_t): New subtype. 72 (pthread_rwlockattr_t): Likewise. 73 742015-12-06 Ludovic Brenta <ludovic@ludovic-brenta.org> 75 76 PR ada/49944 77 * s-osinte-freebsd.ads: Minor reformatting. 78 (Stack_Base_Available): Correct comments. 79 * s-osinte-kfreebsd-gnu.ads (Time_Slice_Supported, nanosleep, 80 clock_id_t, clock_gettime, Stack_Base_Available, Get_Page_Size, 81 mprotect, pthread_mutexattr_setprotocol,pthread_mutexattr_getprotocol 82 pthread_mutexattr_setprioceiling, pthread_mutexattr_getprioceiling, 83 pthread_attr_setscope, pthread_attr_getscope, 84 pthread_attr_setinheritsched, pthread_attr_getinheritsched, 85 Time_Slice_Supported): Copy from s-osinte-freebsd.ads. 86 * gcc-interface/Makefile.in (x86/kfreebsd): Use the POSIX version of 87 the System.Task_Primitives.Operations package. 88 892015-12-06 Ludovic Brenta <ludovic@ludovic-brenta.org> 90 91 PR ada/49940 92 * s-osinte-kfreebsd-gnu.ads (lwp_self): New imported function. 93 942015-12-04 Jan Sommer <soja-lists@aries.uberspace.de> 95 96 PR ada/68169 97 * s-oscons-tmplt.c: Generate pthread constants for RTEMS 98 * s-osinte-rtems.ads: Declare pthread structs as opaque types in Ada 99 1002015-12-04 Release Manager 101 102 * GCC 5.3.0 released. 103 1042015-11-29 Matthias Klose <doko@ubuntu.com> 105 106 PR ada/68564 107 * gcc-interface/Makefile.in: Fix powerpc/powerpc64* and 108 mipsel/mips64el bitness detection. 109 Merge the mipsel/mips64el definitions into one. 110 1112015-11-28 Matthias Klose <doko@ubuntu.com> 112 113 PR ada/68564 114 * gcc-interface/Makefile.in: Fix sparc/sparc64 bitness detection. 115 1162015-11-24 Eric Botcazou <ebotcazou@adacore.com> 117 118 * gcc-interface/decl.c (is_cplusplus_method): Check that the type of 119 the first parameter (indirectly) has C++ convention too. 120 1212015-11-18 Eric Botcazou <ebotcazou@adacore.com> 122 123 * gcc-interface/trans.c (fold_constant_decl_in_expr) <ARRAY_REF>: If 124 the index is not itself constant then bail out. 125 1262015-10-09 Eric Botcazou <ebotcazou@adacore.com> 127 128 * gcc-interface/Make-lang.in: Make sure that GNAT1_OBJS and not just 129 GNAT1_ADA_OBJS are compiled only after generated files are created. 130 1312015-07-16 Release Manager 132 133 * GCC 5.2.0 released. 134 1352015-06-11 Pierre-Marie de Rodat <derodat@adacore.com> 136 137 * gcc-interface/utils.c (get_global_context): Register the main 138 translation unit through the new debug hook. 139 1402015-06-04 Pierre-Marie de Rodat <derodat@adacore.com> 141 142 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: If 143 processing a definition, create definitions for padding types 144 around return types. 145 1462015-06-01 Eric Botcazou <ebotcazou@adacore.com> 147 148 * gcc-interface/Makefile.in: Fix ARM/Darwin configuration. 149 1502015-04-22 Release Manager 151 152 * GCC 5.1.0 released. 153 1542015-04-09 Iain Sandoe <iain@codesourcery.com> 155 156 * gcc-interface/Makefile.in (darwin, powerpc): Enable atomics. 157 1582015-04-08 Eric Botcazou <ebotcazou@adacore.com> 159 160 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Function>: Do not make 161 a function returning an unconstrained type 'const' for the middle-end. 162 163 * gcc-interface/trans.c (Pragma_to_gnu) <case Pragma_Warning>: Use 164 exact condition to detect Reason => "..." pattern. 165 1662015-03-31 Tom de Vries <tom@codesourcery.com> 167 168 PR ada/65490 169 * terminals.c (child_setup_tty): Fix warning 'argument to sizeof in 170 bzero call is the same expression as the destination'. 171 1722015-03-26 Eric Botcazou <ebotcazou@adacore.com> 173 174 * gcc-interface/trans.c (Attribute_to_gnu) <Attr_Deref>: New case. 175 1762015-03-24 Gary Dismukes <dismukes@adacore.com> 177 178 * sem_ch3.adb: Minor typo fix (missing paren). 179 1802015-03-24 Robert Dewar <dewar@adacore.com> 181 182 * sinfo.ads: Update comment. 183 1842015-03-24 Robert Dewar <dewar@adacore.com> 185 186 * exp_attr.adb: Add entry for typ'Deref. 187 * sem_attr.adb (Deref): New GNAT attribute. 188 * sem_attr.ads: Add entry for new GNAT attribute Deref. 189 * snames.ads-tmpl: Add entries for new attribute Deref. 190 1912015-03-24 Ed Schonberg <schonberg@adacore.com> 192 193 * sem_ch13.adb (Rep_Item_Too_Early): allow pragma Convention 194 on generic type. 195 1962015-03-24 Gary Dismukes <dismukes@adacore.com> 197 198 * inline.adb: Minor typo fix. 199 2002015-03-24 Arnaud Charlet <charlet@adacore.com> 201 202 * doc/gnat_ugn/building_executable_programs_with_gnat.rst, 203 doc/gnat_ugn/gnat_utility_programs.rst 204 doc/gnat_rm/implementation_defined_attributes.rst 205 doc/gnat_rm/implementation_defined_pragmas.rst 206 doc/gnat_rm/representation_clauses_and_pragmas.rst 207 doc/gnat_rm/about_this_guide.rst 208 doc/gnat_rm/implementation_of_ada_2012_features.rst: Doc improvements. 209 * gnat_rm.texi, gnat_ugn.texi: Regenerate. 210 2112015-03-23 Jakub Jelinek <jakub@redhat.com> 212 213 PR bootstrap/65522 214 * adadecode.c (ada_demangle): Guard with IN_RTS instead of IN_GCC. 215 2162015-03-20 Eric Botcazou <ebotcazou@adacore.com> 217 218 PR ada/65451 219 * gcc-interface/utils.c (gnat_pushdecl): Tidy up and improve comment. 220 Make sure to chain only main variants through TYPE_NEXT_PTR_TO. 221 222 * gcc-interface/trans.c (Attribute_to_gnu): Revert latest change. 223 2242015-03-16 Eric Botcazou <ebotcazou@adacore.com> 225 226 * gcc-interface/utils2.c (gnat_invariant_expr): Return null if the type 227 of the expression ends up being composite. 228 2292015-03-16 Eric Botcazou <ebotcazou@adacore.com> 230 231 * gcc-interface/decl.c (is_from_limited_with_of_main): New predicate. 232 (gnat_to_gnu_entity) <E_Subprogram_Type>: Invoke it on return and 233 parameter types to detect circularities in ASIS mode. 234 * gcc-interface/trans.c (Attribute_to_gnu): Mention AI05-0151. 235 2362015-03-16 Eric Botcazou <ebotcazou@adacore.com> 237 238 * gcc-interface/decl.c (gnat_to_gnu_entity) <E_Abstract_State>: Do not 239 short-circuit the regular handling. 240 2412015-03-13 Robert Dewar <dewar@adacore.com> 242 243 * exp_unst.adb (Note_Uplevel_Reference): Eliminate duplicate 244 references. 245 (Actual_Ref): New function. 246 (AREC_String): Minor reformatting. 247 (Unnest_Subprogram): Use Actual_Ref. 248 * frontend.adb (Frontend): Turn off Unnest_Subprogram_Mode 249 before call to Instantiate_Bodies. 250 2512015-03-13 Ed Schonberg <schonberg@adacore.com> 252 253 * freeze.adb (Freeze_Profile): If the return type of a function 254 being frozen is an untagged limited view and the function is 255 abstract, mark the type as frozen because there is no later 256 point at which the profile of the subprogram will be elaborated. 257 2582015-03-13 Robert Dewar <dewar@adacore.com> 259 260 * einfo.adb, einfo.ads, atree.adb, atree.ads, atree.h: Add seventh 261 component to entities. Add new fields Field36-41 and Node36-41. 262 2632015-03-13 Claire Dross <dross@adacore.com> 264 265 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Rewrite after review. 266 2672015-03-13 Robert Dewar <dewar@adacore.com> 268 269 * exp_util.adb (Is_Volatile_Reference): Compile time known 270 value is never considered to be a volatile reference. 271 2722015-03-13 Robert Dewar <dewar@adacore.com> 273 274 * sem_ch3.adb (Analyze_Object_Contract): Suppress "constant 275 cannot be volatile" for internally generated object (such as 276 FIRST and LAST constants). 277 2782015-03-13 Ed Schonberg <schonberg@adacore.com> 279 280 * sem_ch12.adb (Validate_Access_Subprogram_Instance): If a 281 convention is specified for the formal parameter, verify that 282 the actual has the same convention. 283 * sem_prag.adb (Set_Convention_From_Pragma): Allow convention 284 pragma to be set on a generic formal type. 285 * sem_util.adb (Set_Convention): Ignore within an instance, 286 as it has already been verified in the generic unit. 287 2882015-03-13 Claire Dross <dross@adacore.com> 289 290 * inline.adb (Can_Be_Inlined_In_GNATprove_Mode): Do not inline 291 subprograms with unconstrained record parameters containing 292 Itype declarations. 293 * sinfo.ads Document GNATprove assumption that type should match 294 in the AST. 295 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): 296 Do not check for Refined_Depends and Refined_Globals contracts 297 as they are optional. 298 2992015-03-13 Ed Schonberg <schonberg@adacore.com> 300 301 * sem_ch12.adb (Instantiate_Type): For a floating-point type, 302 capture dimension info if any, because the generated subtype 303 declaration does not come from source and will not process dimensions. 304 * sem_dim,adb (Analyze_Dimension_Extension_Or_Record_Aggregate): 305 Do not analyze expressions with an initialization procedure 306 because aggregates will have been checked at the point of record 307 declaration. 308 3092015-03-13 Robert Dewar <dewar@adacore.com> 310 311 * aspects.ads, aspects.adb: Add entries for aspect Unimplemented. 312 * einfo.ads, einfo.adb (Is_Unimplemented): New flag. 313 * sem_ch13.adb: Add dummy entry for aspect Unimplemented. 314 * snames.ads-tmpl: Add entry for Name_Unimplemented. 315 3162015-03-13 Gary Dismukes <dismukes@adacore.com> 317 318 * style.adb (Missing_Overriding): Apply the 319 Comes_From_Source test to the Original_Node of the subprogram 320 node, to handle the case of a null procedure declaration that 321 has been rewritten as an empty procedure body. 322 3232015-03-13 Robert Dewar <dewar@adacore.com> 324 325 * exp_util.ads: Minor fix to comment. 326 * sem_ch3.adb (Constrain_Index): Correct pasto from previous 327 change. 328 3292015-03-13 Robert Dewar <dewar@adacore.com> 330 331 * exp_util.ads, exp_util.adb (Force_Evaluation): Add Related_Id and 332 Is_Low/High_Bound params. 333 * sem_ch3.adb (Constrain_Index): Use new Force_Evaluation calling 334 sequence to simplify generation of FIRST/LAST temps for bounds. 335 3362015-03-12 Olivier Hainque <hainque@adacore.com> 337 338 * gcc-interface/trans.c (Attribute_to_gnu) <Code_Address case>: 339 On targets where a function symbol designates a function descriptor, 340 fetch the function code address from the descriptor. 341 (USE_RUNTIME_DESCRIPTORS): Provide a default definition. 342 3432015-03-04 Robert Dewar <dewar@adacore.com> 344 345 * sem_warn.adb: Minor reformatting. 346 * init.c: Minor tweaks. 347 3482015-03-04 Dmitriy Anisimko <anisimko@adacore.com> 349 350 * a-coinho-shared.adb: Fix clear of already empty holder. 351 3522015-03-04 Robert Dewar <dewar@adacore.com> 353 354 * exp_unst.adb (Check_Dynamic_Type): Ignore library level types. 355 (Check_Uplevel_Reference_To_Type): Ignore call inside generic. 356 (Note_Uplevel_Reference): Ignore call inside generic. 357 (Note_Uplevel_Reference): Fix check for no entity field. 358 (Unnest_Subprogram): Ignore call inside generic. 359 (Find_Current_Subprogram): Use Defining_Entity, not Defining_Unit_Name. 360 (Visit_Node): Ignore calls to Imported subprograms. 361 (Visit_Node): Fix problem in finding subprogram body in some cases. 362 (Add_Form_To_Spec): Use Defining_Entity, not Defining_Unit_Name. 363 3642015-03-04 Robert Dewar <dewar@adacore.com> 365 366 * einfo.adb (Is_ARECnF_Entity): Removed. 367 (Last_Formal): Remove special handling of Is_ARECnF_Entity. 368 (Next_Formal): Remove special handling of Is_ARECnF_Entity. 369 (Next_Formal_With_Extras): Remove special handling of Is_ARECnF_Entity. 370 (Number_Entries): Minor reformatting. 371 * einfo.ads (Is_ARECnF_Entity): Removed. 372 * exp_unst.adb (Unnest_Subprogram): Remove setting of 373 Is_ARECnF_Entity. 374 (Add_Extra_Formal): Use normal Extra_Formal circuit. 375 * sprint.adb (Write_Param_Specs): Properly handle case where 376 there are no source formals, but we have at least one Extra_Formal 377 present. 378 3792015-03-04 Ed Schonberg <schonberg@adacore.com> 380 381 * sem_aggr.adb (Resolve_Record_Aggregate, 382 Add_Discriminant_Values): If the value is a reference to the 383 current instance of an enclosing type, use its base type to check 384 against prefix of attribute reference, because the target type 385 may be otherwise constrained. 386 3872015-03-04 Robert Dewar <dewar@adacore.com> 388 389 * atree.h: Add entries for Flag287-Flag309. 390 * einfo.adb: Add (unused) flags Flag287-Flag309. 391 3922015-03-04 Ed Schonberg <schonberg@adacore.com> 393 394 * sem_util.adb (Collect_Interfaces, Collect): When gathering 395 interfaces of ancestors, handle properly a subtype of a private 396 extension. 397 3982015-03-04 Robert Dewar <dewar@adacore.com> 399 400 * einfo.adb (Is_ARECnF_Entity): New flag (ARECnF is an extra formal). 401 (Next_Formal): Don't return ARECnF formal. 402 (Last_Formal): Don't consider ARECnF formal. 403 (Next_Formal_With_Extras): Do consider ARECnF formal. 404 * einfo.ads (Is_ARECnF_Entity): New flag (ARECnF is an extra formal). 405 * exp_unst.adb (Create_Entities): Set Is_ARECnF_Entity flag. 406 4072015-03-04 Javier Miranda <miranda@adacore.com> 408 409 * exp_ch6.adb (Expand_Simple_Function_Return): When the returned 410 object is a class-wide interface object and we generate the 411 accessibility described in RM 6.5(8/3) then displace the pointer 412 to the object to reference the base of the object (to get access 413 to the TSD of the object). 414 4152015-03-04 Hristian Kirtchev <kirtchev@adacore.com> 416 417 * sem_prag.adb (Analyze_Abstract_State): Use routine 418 Malformed_State_Error to issue general errors. 419 (Analyze_Pragma): Diagnose a syntax error related to a state 420 declaration with a simple option. 421 (Malformed_State_Error): New routine. 422 4232015-03-04 Robert Dewar <dewar@adacore.com> 424 425 * a-strsup.adb (Super_Slice): Deal with super flat case. 426 * einfo.ads: Minor reformatting. 427 * s-imgdec.adb (Set_Decimal_Digits): Add comment about possibly 428 redundant code. 429 4302015-03-04 Claire Dross <dross@adacore.com> 431 432 * a-cfdlli.ads, a-cfhase.ads, a-cforma.ads, a-cfhama.ads, 433 a-cforse.ads, a-cofove.ads: Use Default_Initial_Condition on formal 434 containers. 435 4362015-03-04 Ed Schonberg <schonberg@adacore.com> 437 438 * sem_warn.adb (Check_References): When checking for an unused 439 in-out parameter of a class- wide type, use its type to determine 440 whether it is private, in order to avoid a spurious warning when 441 subprogram spec and body are in different units. 442 4432015-03-04 Yannick Moy <moy@adacore.com> 444 445 * sem_attr.adb: Improve warning messages. 446 4472015-03-04 Robert Dewar <dewar@adacore.com> 448 449 * exp_ch6.adb (Expand_N_Subprogram_Body): Avoid trying to unnest 450 generic subprograms. 451 * exp_unst.adb (Check_Dynamic_Type): Handle record types properly 452 (Note_Uplevel_Reference): Ignore uplevel references to non-types 453 (Get_Level): Consider only subprograms, not blocks. 454 (Visit_Node): Set proper condition for generating ARECnF entity. 455 Ignore indirect calls. Ignore calls to subprograms 456 outside our nest. 457 (Unnest_Subprogram): Minor changes in dealing with ARECnF entity. 458 (Add_Form_To_Spec): Properly set Last_Entity field. 459 (Unnest_Subprogram): Set current subprogram scope for analyze calls. 460 Handle case of no uplevel refs in outer subprogram 461 Don't mark uplevel entities as aliased. 462 Don't deal with calls with no ARECnF requirement. 463 4642015-03-04 Robert Dewar <dewar@adacore.com> 465 466 * s-valrea.adb (Scan_Real): Remove redundant tests from scaling loops. 467 * s-imgdec.adb (Set_Decimal_Digits): Remove redundant Max 468 operation in computing LZ. 469 * sem_attr.adb: Minor typo fix 470 4712015-03-04 Robert Dewar <dewar@adacore.com> 472 473 * exp_ch7.adb: Minor reformatting. 474 * exp_unst.adb (Build_Tables): Fix minor glitch for no separate 475 spec case. 476 * erroutc.adb (Delete_Msg): add missing decrement of info msg counter. 477 4782015-03-04 Hristian Kirtchev <kirtchev@adacore.com> 479 480 * exp_ch6.adb (Build_Pragma_Check_Equivalent): Suppress 481 references to formal parameters subject to pragma Unreferenced. 482 (Suppress_Reference): New routine. 483 * sem_attr.adb (Analyze_Attribute): Reimplement the analysis 484 of attribute 'Old. Attributes 'Old and 'Result now share 485 common processing. 486 (Analyze_Old_Result_Attribute): New routine. 487 (Check_Placement_In_Check): Removed. 488 (Check_Placement_In_Contract_Cases): Removed. 489 (Check_Placement_In_Test_Case): Removed. 490 (Check_Use_In_Contract_Cases): Removed. 491 (Check_Use_In_Test_Case): Removed. 492 (In_Refined_Post): Removed. 493 (Is_Within): Removed. 494 * sem_warn.adb (Check_Low_Bound_Tested): Code cleanup. 495 (Check_Low_Bound_Tested_For): New routine. 496 4972015-03-04 Hristian Kirtchev <kirtchev@adacore.com> 498 499 * exp_ch3.adb (Expand_N_Object_Declaration): 500 Generate a runtime check to test the expression of pragma 501 Default_Initial_Condition when the object is default initialized. 502 5032015-03-02 Robert Dewar <dewar@adacore.com> 504 505 * scng.adb (Scan): Ignore illegal character in relaxed 506 semantics mode. 507 5082015-03-02 Ed Schonberg <schonberg@adacore.com> 509 510 * sem_ch4.adb (Analyze_Set_Membership); Retain Overloaded flag 511 on left operand, so it can be properly resolved with type of 512 alternatives of right operand. 513 * sem_res.adb (Resolve_Set_Membership): Handle properly an 514 overloaded left-hand side when the alternatives on the right 515 hand side are literals of some universal type. Use first 516 non-overloaded alternative to find expected type. 517 5182015-03-02 Ed Schonberg <schonberg@adacore.com> 519 520 * exp_ch7.adb (Make_Set_Finalize_Address_Call): Use underlying 521 type to retrieve designated type, because the purported access 522 type may be a partial (private) view, when it is declared in 523 the private part of a nested package, and finalization actions 524 are generated when completing compilation of enclosing unit. 525 5262015-03-02 Robert Dewar <dewar@adacore.com> 527 528 * back_end.adb (Call_Back_End): Remove previous patch, 529 the back end now gets to see the result of -gnatd.1 530 (Unnest_Subprogram_Mode) processing. 531 * elists.ads, elists.adb (List_Length): New function. 532 * exp_unst.ads, exp_unst.adb: Major changes, first complete version. 533 * sem_util.adb (Check_Nested_Access): Handle formals in 534 Unnest_Subprogram_Mode. 535 (Adjust_Named_Associations): Minor reformatting. 536 * sprint.adb (Sprint_Node_Actual): Fix failure to print aliased 537 for parameters. 538 5392015-03-02 Robert Dewar <dewar@adacore.com> 540 541 * atree.ads, atree.adb (Uint24): New function 542 (Set_Uint24): New procedure. 543 * atree.h (Uint24): New macro for field access. 544 * back_end.adb (Call_Back_End): For now, don't call back end 545 if unnesting subprogs. 546 * einfo.adb (Activation_Record_Component): New field 547 (Subps_Index): New field. 548 * einfo.ads (Activation_Record_Component): New field 549 (Subps_Index): New field Minor reordering of comments into alpha order. 550 * exp_unst.ads, exp_unst.adb: Continued development. 551 5522015-03-02 Gary Dismukes <dismukes@adacore.com> 553 554 * exp_disp.ads: Minor reformatting. 555 5562015-03-02 Ed Schonberg <schonberg@adacore.com> 557 558 * sem_ch8.adb (Chain_Use_Clause): Do not chain use clause from 559 ancestor to list of use clauses active in descendant unit if we 560 are within the private part of an intervening parent, to prevent 561 circularities in use clause list. 562 5632015-03-02 Javier Miranda <miranda@adacore.com> 564 565 * exp_ch9.adb (Build_Corresponding_Record): Propagate type 566 invariants to the corresponding record type. 567 * exp_disp.ad[sb] (Set_DT_Position_Value): New subprogram 568 which sets the value of the DTC_Entity associated with a given 569 primitive of a tagged type and propagates the value to the 570 wrapped subprogram. 571 (Set_DTC_Entity_Value): Propagate the DTC 572 value to the wrapped entity. 573 * sem_ch13.adb (Build_Invariant_Procedure): Append the code 574 associated with invariants of progenitors. 575 * sem_ch3.adb (Build_Derived_Record_Type): Inherit type invariants 576 of parents and progenitors. 577 (Process_Full_View): Check hidden inheritance of class-wide type 578 invariants. 579 * sem_ch7.adb (Analyze_Package_Specification): Do not generate 580 the invariant procedure for interface types; build the invariant 581 procedure for tagged types inheriting invariants from their 582 progenitors. 583 * sem_prag.adb (Pragma_Invariant) Allow invariants in interface 584 types but do not build their invariant procedure since their 585 invariants will be propagated to the invariant procedure of 586 types covering the interface. 587 * exp_ch6.adb, exp_disp.adb, sem_ch3.adb, sem_ch7.adb, 588 sem_ch8.adb, sem_disp.adb: Replace all calls to Set_DT_Position 589 by calls to Set_DT_Position_Value. 590 5912015-03-02 Hristian Kirtchev <kirtchev@adacore.com> 592 593 * sem_attr.adb (Analyze_Attribute): Factor out heavily indented 594 code in Denote_Same_Function. Do not analyze attribute 'Result 595 when it is inside procedure _Postconditions. Remove a misplaced 596 warning diagnostic. Code cleanup. 597 (Denote_Same_Function): New routine. 598 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Code 599 cleanup. Warn on pre/postconditions on an inlined subprogram. 600 (Analyze_Pragma, Refined_Post case): Warn on pre/postconditions on 601 an inlined subprogram. 602 (Analyze_Pre_Post_Condition_In_Decl_Part): Code cleanup. Warn on 603 pre/post condition on an inlined subprogram. 604 (Analyze_Test_Case_In_Decl_Part): Code cleanup. Warn on 605 pre/postconditions on an inlined subprogram. 606 (Check_Postcondition_Use_In_Inlined_Subprogram): New routine. 607 6082015-03-02 Hristian Kirtchev <kirtchev@adacore.com> 609 610 * sem_prag.adb (Ensure_Aggregate_Form): 611 Ensure that the name denoted by the Chars of a pragma argument 612 association has the proper Sloc when converted into an aggregate. 613 6142015-03-02 Bob Duff <duff@adacore.com> 615 616 * sem_ch6.adb (Check_Private_Overriding): Capture 617 Incomplete_Or_Partial_View in a constant. This is cleaner and 618 more efficient. 619 6202015-03-02 Gary Dismukes <dismukes@adacore.com> 621 622 * einfo.ads, exp_unst.ads: Minor reformatting. 623 6242015-03-02 Ed Schonberg <schonberg@adacore.com> 625 626 * a-strsea.adb (Find_Token): Ensure that the range of iteration 627 does not perform any improper character access. This prevents 628 erroneous access in the unusual case of an empty string target 629 and a From parameter less than Source'First. 630 6312015-03-02 Robert Dewar <dewar@adacore.com> 632 633 * elists.adb (List_Length): Fix incorrect result. 634 6352015-03-02 Bob Duff <duff@adacore.com> 636 637 * sem_ch6.adb (Check_Private_Overriding): Refine the legality 638 checks here. It used to check that the function is merely 639 overriding SOMEthing. Now it checks that the function is 640 overriding a corresponding public operation. This is a correction 641 to the implementation of the rule in RM-3.9.3(10). 642 6432015-03-02 Robert Dewar <dewar@adacore.com> 644 645 * debug.adb: Document new debug flag -gnatd.1. 646 * einfo.ads, einfo.adb (Has_Nested_Subprogram): New flag. 647 (Has_Uplevel_Reference): New flag (Is_Static_Type): New flag. 648 (Uplevel_Reference_Noted):New flag (Uplevel_References): New field. 649 * elists.ads elists.adb (List_Length): New function. 650 * exp_ch6.adb (Expand_N_Subprogram_Body): Call Unnest_Subprogram 651 when appropriate (Process_Preconditions): Minor code 652 reorganization and reformatting 653 * exp_unst.ads, exp_unst.adb: New files. 654 * gnat1drv.adb (Adjust_Global_Switches): Set 655 Unnest_Subprogram_Mode if -gnatd.1 656 * namet.ads, namet.adb (Name_Find_Str): New version of Name_Find with 657 string argument. 658 * opt.ads (Unnest_Subprogram_Mode): New flag. 659 * par-ch3.adb (P_Identifier_Declarations): Fixes to -gnatd.2 handling. 660 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Set 661 Has_Nested_Subprogram flag. 662 * sem_ch8.adb (Find_Direct_Name): New calling sequence for 663 Check_Nested_Access. 664 (Find_Selected_Component): Minor comment addition. 665 * sem_util.adb (Check_Nested_Access): New version for use with Exp_Unst. 666 (Note_Possible_Modification): New calling sequence for 667 Check_Nested_Access. 668 * sem_util.ads (Check_Nested_Access): New version for use with Exp_Unst. 669 * gcc-interface/Make-lang.in (GNAT1_OBJS): Add exp_unst.o 670 6712015-03-02 Pierre-Marie de Rodat <derodat@adacore.com> 672 673 * gcc-interface/utils.c (gnat_pushdecl): For non-artificial pointer 674 types, preserve the original type and create copies just like the C 675 front-end does. For artificial ones, do not define a name for 676 the original type. 677 (create_type_decl): When gnat_pushdecl made the input type the 678 original type for the new declaration, do not define a stub 679 declaration for it. 680 * gcc-interface/utils2.c (build_binary_op): Accept two different 681 pointer types when they point to the same type. 682 6832015-03-02 Hristian Kirtchev <kirtchev@adacore.com> 684 685 * exp_util.adb (Possible_Bit_Aligned_Component): Do not process 686 an unanalyzed node. 687 * sem_util.adb (Kill_Current_Values): Do not invalidate and 688 de-null a constant. 689 6902015-03-02 Robert Dewar <dewar@adacore.com> 691 692 * sem_ch3.adb, exp_attr.adb, checks.adb, exp_aggr.adb: Minor 693 reformatting. 694 6952015-03-02 Ed Schonberg <schonberg@adacore.com> 696 697 * sem_ch8.adb: extend use of Available_Subtype. 698 6992015-03-02 Hristian Kirtchev <kirtchev@adacore.com> 700 701 * sem_prag.adb (Duplication_Error): Remove the special handling 702 of 'Class or _Class in the context of pre/postconditions. 703 (Process_Class_Wide_Condition): Remove the special handling of 704 'Class or _Class in the context of pre/postconditions. 705 * sem_util.adb (Original_Aspect_Pragma_Name): Names Pre_Class 706 and Post_Class no longer need to be converted to _Pre and _Post. 707 * sem_util.ads (Original_Aspect_Pragma_Name): Update the comment 708 on usage. 709 7102015-03-02 Hristian Kirtchev <kirtchev@adacore.com> 711 712 * exp_ch6.adb (Process_Preconditions): Modify the 713 mechanism that find the first source declaration to correct exit 714 the loop once it has been found. 715 7162015-03-02 Gary Dismukes <dismukes@adacore.com> 717 718 * a-strsea.adb: Minor typo fix. 719 7202015-03-02 Bob Duff <duff@adacore.com> 721 722 * einfo.ads: Minor comment fixes. 723 7242015-03-02 Gary Dismukes <dismukes@adacore.com> 725 726 * einfo.adb, checks.adb: Minor reformatting and typo fixes. 727 7282015-03-02 Ed Schonberg <schonberg@adacore.com> 729 730 * exp_aggr.adb (Get_Assoc_Expr): If the Default_Component_Value 731 is defined for the array type, use it instead of a Default_Value 732 specified for the component type itself. 733 7342015-03-02 Thomas Quinot <quinot@adacore.com> 735 736 * exp_attr.adb (Expand_N_Attribute_Reference, case Input): When 737 expanding a 'Input attribute reference for a class-wide type, 738 do not generate a separate object declaration for the controlling 739 tag dummy object; instead, generate the expression inline in the 740 dispatching call. Otherwise, the declaration (which involves a 741 call to String'Input, returning a dynamically sized value on the 742 secondary stack) will be expanded outside of proper secondary 743 stack mark/release operations, and will thus cause a secondary 744 stack leak. 745 7462015-03-02 Hristian Kirtchev <kirtchev@adacore.com> 747 748 * checks.adb (Add_Validity_Check): Change the names of all 749 formal parameters to better illustrate their purpose. Update 750 the subprogram documentation. Update all occurrences of the 751 formal parameters. Generate a pre/postcondition pragma by 752 calling Build_Pre_Post_Condition. 753 (Build_PPC_Pragma): Removed. 754 (Build_Pre_Post_Condition): New routine. 755 * einfo.adb Node8 is no longer used as Postcondition_Proc. Node14 756 is now used as Postconditions_Proc. Flag240 is now renamed to 757 Has_Expanded_Contract. (First_Formal): The routine can now 758 operate on generic subprograms. 759 (First_Formal_With_Extras): The routine can now operate on generic 760 subprograms. 761 (Has_Expanded_Contract): New routine. 762 (Has_Postconditions): Removed. 763 (Postcondition_Proc): Removed. 764 (Postconditions_Proc): New routine. 765 (Set_Has_Expanded_Contract): New routine. 766 (Set_Has_Postconditions): Removed. 767 (Set_Postcondition_Proc): Removed. 768 (Set_Postconditions_Proc): New routine. 769 (Write_Entity_Flags): Remove the output of Has_Postconditions. Add 770 the output of Has_Expanded_Contract. 771 (Write_Field8_Name): Remove the output of Postcondition_Proc. 772 (Write_Field14_Name): Add the output of Postconditions_Proc. 773 * einfo.ads New attributes Has_Expanded_Contract and 774 Postconditions_Proc along with occurrences in entities. 775 Remove attributes Has_Postconditions and Postcondition_Proc 776 along with occurrences in entities. 777 (Has_Expanded_Contract): New routine along with pragma Inline. 778 (Has_Postconditions): Removed along with pragma Inline. 779 (Postcondition_Proc): Removed along with pragma Inline. 780 (Postconditions_Proc): New routine along with pragma Inline. 781 (Set_Has_Expanded_Contract): New routine along with pragma Inline. 782 (Set_Has_Postconditions): Removed along with pragma Inline. 783 (Set_Postcondition_Proc): Removed along with pragma Inline. 784 (Set_Postconditions_Proc): New routine along with pragma Inline. 785 * exp_ch6.adb (Add_Return): Code cleanup. Update the 786 generation of the call to the _Postconditions routine of 787 the procedure. (Expand_Non_Function_Return): Reformat the 788 comment on usage. Code cleanup. Update the generation of 789 the call to the _Postconditions routine of the procedure or 790 entry [family]. 791 (Expand_Simple_Function_Return): Update the 792 generation of the _Postconditions routine of the function. 793 (Expand_Subprogram_Contract): Reimplemented. 794 * exp_ch6.ads (Expand_Subprogram_Contract): Update the parameter 795 profile along the comment on usage. 796 * exp_ch9.adb (Build_PPC_Wrapper): Code cleanup. 797 (Expand_N_Task_Type_Declaration): Generate pre/postconditions 798 wrapper when the entry [family] has a contract with 799 pre/postconditions. 800 * exp_prag.adb (Expand_Attributes_In_Consequence): New routine. 801 (Expand_Contract_Cases): This routine and its subsidiaries now 802 analyze all generated code. 803 (Expand_Old_In_Consequence): Removed. 804 * sem_attr.adb Add with and use clause for Sem_Prag. 805 (Analyze_Attribute): Reimplment the analysis of attribute 'Result. 806 (Check_Use_In_Test_Case): Use routine Test_Case_Arg to obtain 807 "Ensures". 808 * sem_ch3.adb (Analyze_Declarations): Analyze the contract of 809 a generic subprogram. 810 (Analyze_Object_Declaration): Do not create a contract node. 811 (Derive_Subprogram): Do not create a contract node. 812 * sem_ch6.adb (Analyze_Abstract_Subprogram_Declaration): Do 813 not create a contract node. 814 (Analyze_Completion_Contract): New routine. 815 (Analyze_Function_Return): Alphabetize. 816 (Analyze_Generic_Subprogram_Body): Alphabetize. Do not create a 817 contract node. Do not copy pre/postconditions to the original 818 generic template. 819 (Analyze_Null_Procedure): Do not create a contract node. 820 (Analyze_Subprogram_Body_Contract): Reimplemented. 821 (Analyze_Subprogram_Body_Helper): Do not mark the enclosing scope 822 as having postconditions. Do not create a contract node. Analyze 823 the subprogram body contract of a body that acts as a compilation 824 unit. Expand the subprogram contract after the declarations have 825 been analyzed. 826 (Analyze_Subprogram_Contract): Reimplemented. 827 (Analyze_Subprogram_Specification): Do not create a contract node. 828 (List_Inherited_Pre_Post_Aspects): Code cleanup. 829 * sem_ch6.adb (Analyze_Subprogram_Body_Contract): Update the 830 comment on usage. 831 (Analyze_Subprogram_Contract): Update the 832 parameter profile and the comment on usage. 833 * sem_ch7.adb (Analyze_Package_Body_Helper): Do not create a 834 contract node. 835 (Analyze_Package_Declaration): Do not create a 836 contract node. 837 (Is_Subp_Or_Const_Ref): Ensure that the prefix has an entity. 838 * sem_ch8.adb (Analyze_Subprogram_Renaming): Do not create a 839 contract node. 840 * sem_ch9.adb (Analyze_Entry_Declaration): Do not create a 841 contract node. 842 * sem_ch10.adb (Analyze_Compilation_Unit): Move local variables to 843 their proper section and alphabetize them. Analyze the contract of 844 a [generic] subprogram after all Pragmas_After have been analyzed. 845 (Analyze_Subprogram_Body_Stub_Contract): Alphabetize. 846 * sem_ch12.adb (Analyze_Generic_Package_Declaration): Do not 847 create a contract node. 848 (Analyze_Generic_Subprogram_Declaration): 849 Alphabetize local variables. Do not create a contract 850 node. Do not generate aspects out of pragmas for ASIS. 851 (Analyze_Subprogram_Instantiation): Instantiate 852 the contract of the subprogram. Do not create a 853 contract node. (Instantiate_Contract): New routine. 854 (Instantiate_Subprogram_Body): Alphabetize local variables. 855 (Save_Global_References_In_Aspects): New routine. 856 (Save_References): Do not save the global references found within 857 the aspects of a generic subprogram. 858 * sem_ch12.ads (Save_Global_References_In_Aspects): New routine. 859 * sem_ch13.adb (Analyze_Aspect_Specifications): Do not use 860 Original_Node for establishing linkages. 861 (Insert_Pragma): Insertion in a subprogram body takes precedence over 862 the case where the subprogram body is also a compilation unit. 863 * sem_prag.adb (Analyze_Contract_Cases_In_Decl_Part): Use 864 Get_Argument to obtain the proper expression. Install the generic 865 formals when the related context is a generic subprogram. 866 (Analyze_Depends_In_Decl_Part): Use Get_Argument to obtain 867 the proper expression. Use Corresponding_Spec_Of to obtain 868 the spec. Install the generic formal when the related context 869 is a generic subprogram. 870 (Analyze_Global_In_Decl_Part): Use Get_Argument to obtain the proper 871 expression. Use Corresponding_Spec_Of to obtain the spec. Install the 872 generic formal when the related context is a generic subprogram. 873 (Analyze_Initial_Condition_In_Decl_Part): Use Get_Argument 874 to obtain the proper expression. Remove the call to 875 Check_SPARK_Aspect_For_ASIS as the analysis is now done 876 automatically. 877 (Analyze_Pragma): Update all occurrences 878 to Original_Aspect_Name. Pragmas Contract_Cases, Depends, 879 Extensions_Visible, Global, Postcondition, Precondition and 880 Test_Case now carry generic templates when the related context 881 is a generic subprogram. The same pragmas are no longer 882 forcefully fully analyzed when the context is a subprogram 883 that acts as a compilation unit. Pragmas Abstract_State, 884 Initial_Condition, Initializes and Refined_State have been clean 885 up. Pragmas Post, Post_Class, Postcondition, Pre, Pre_Class 886 and Precondition now use the same routine for analysis. Pragma 887 Refined_Post does not need to check the use of 'Result or 888 the lack of a post-state in its expression. Reimplement the 889 analysis of pragma Test_Case. 890 (Analyze_Pre_Post_Condition): New routine. 891 (Analyze_Pre_Post_Condition_In_Decl_Part): 892 Reimplemented. 893 (Analyze_Refined_Depends_In_Decl_Part): Use Get_Argument to obtain the 894 proper expression. 895 (Analyze_Refined_Global_In_Decl_Part): Use Get_Argument to obtain 896 the proper expression. 897 (Analyze_Test_Case_In_Decl_Part): Reimplemented. 898 (Check_Pre_Post): Removed. 899 (Check_Precondition_Postcondition): Removed. 900 (Check_SPARK_Aspect_For_ASIS): Removed. 901 (Check_Test_Case): Removed. 902 (Collect_Subprogram_Inputs_Outputs): Use Get_Argument 903 to obtain the proper expression. Use Corresponding_Spec_Of to 904 find the proper spec. 905 (Create_Generic_Template): New routine. 906 (Duplication_Error): New routine. 907 (Expression_Function_Error): New routine. 908 (Find_Related_Subprogram_Or_Body): Moved to the spec 909 of Sem_Prag. Emit precise error messages. Account for cases of 910 rewritten expression functions, generic instantiations, handled 911 sequence of statements and pragmas from aspects. 912 (Get_Argument): New routine. 913 (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed. 914 (Preanalyze_CTC_Args): Removed. 915 (Process_Class_Wide_Condition): New routine. 916 * sem_prag.ads (Analyze_Test_Case_In_Decl_Part): Update 917 the parameter profile along with the comment on usage. 918 (Find_Related_Subprogram_Or_Body): Moved from the body of Sem_Prag. 919 (Make_Aspect_For_PPC_In_Gen_Sub_Decl): Removed. 920 (Test_Case_Arg): New routine. 921 * sem_util.adb Add with and use clauses for Sem_Ch6. 922 (Add_Contract_Item): This routine now creates a contract 923 node the first time an item is added. Remove the duplicate 924 aspect/pragma checks. 925 (Check_Result_And_Post_State): Reimplemented. 926 (Corresponding_Spec_Of): New routine. 927 (Get_Ensures_From_CTC_Pragma): Removed. 928 (Get_Requires_From_CTC_Pragma): Removed. 929 (Has_Significant_Contract): New routine. 930 (Inherit_Subprogram_Contract): Inherit only if the source 931 has a contract. 932 (Install_Generic_Formals): New routine. 933 (Original_Aspect_Name): Removed. 934 (Original_Aspect_Pragma_Name): New routine. 935 * sem_util.ads (Check_Result_And_Post_State): Reimplemented. 936 (Corresponding_Spec_Of): New routine. 937 (Get_Ensures_From_CTC_Pragma): Removed. 938 (Get_Requires_From_CTC_Pragma): Removed. 939 (Has_Significant_Contract): New routine. 940 (Install_Generic_Formals): New routine. 941 (Original_Aspect_Name): Removed. 942 (Original_Aspect_Pragma_Name): New routine. 943 * sem_warn.adb Add with and use clauses for Sem_Prag. 944 (Within_Postcondition): Use Test_Case_Arg to extract "Ensures". 945 9462015-03-02 Ed Schonberg <schonberg@adacore.com> 947 948 * sem_ch8.adb (Available_Subtype): Optimization in 949 Find_Selected_Component: when safe, use existing subtype of 950 array component, possibly discriminant-dependent, rather than 951 creating new subtype declaration for it. In this fashion different 952 occurrences of the component have the same subtype, rather than 953 just equivalent ones. Simplifies value tracing in GNATProve. 954 9552015-03-01 Arnaud Charlet <charlet@adacore.com> 956 957 PR ada/65259 958 959 * doc/gnat_ugn/gnat_project_manager.rst, 960 doc/gnat_ugn/platform_specific_information.rst: Remove reference to 961 image, too troublesome with texi format. 962 * gnat_ugn.texi: Regenerate. 963 9642015-02-24 Thomas Schwinge <thomas@codesourcery.com> 965 966 PR libgomp/64625 967 * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8): Remove. 968 (DEF_FUNCTION_TYPE_VAR_12): Likewise. 969 (DEF_FUNCTION_TYPE_VAR_7, DEF_FUNCTION_TYPE_VAR_11): New macros. 970 9712015-02-23 Thomas Schwinge <thomas@codesourcery.com> 972 973 * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8): Fix number of 974 arguments parameter. 975 (DEF_FUNCTION_TYPE_VAR_12): Likewise. 976 9772015-02-22 Arnaud Charlet <charlet@adacore.com> 978 979 * doc/Makefile: postprocess texinfo files to update @dircategory 980 and update texi files under gcc/ada. 981 * gnat_ugn.texi, gnat_rm.texi: Regenerated. 982 9832015-02-22 Arnaud Charlet <charlet@adacore.com> 984 985 * doc/gnat_ugn/project-manager-figure.png, 986 doc/gnat_ugn/rtlibrary-structure.png: New. 987 9882015-02-22 Tom de Vries <tom@codesourcery.com> 989 990 PR ada/65100 991 * gnat-style.texi (@subsection Loop Statements): Replace @noindent by 992 @item, and fix warning '@itemize has text but no @item'. 993 9942015-02-20 Ed Schonberg <schonberg@adacore.com> 995 996 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Pragma 997 legally applies to an abstract subprogram declaration. 998 * freeze.adb: Minor comment addition. 999 10002015-02-20 Robert Dewar <dewar@adacore.com> 1001 1002 * errout.ads: Document replacement of Name_uPre/Post/Type_Invariant. 1003 * erroutc.adb (Set_Msg_Str): Replace _xxx. 1004 (Pre/Post/Type_Invariant) by xxx'Class. 1005 * erroutc.ads (Set_Msg_Str): Replace _xxx. 1006 (Pre/Post/Type_Invariant) by xxx'Class. 1007 * sem_prag.adb (Fix_Error): Remove special casing of 1008 Name_uType_Invariant. 1009 (Analyze_Pre_Post_Condition_In_Decl_Part): Remove special casing of 1010 Name_uPre and Name_uPost in aspect case (done in Errout now). 1011 10122015-02-20 Robert Dewar <dewar@adacore.com> 1013 1014 * g-alveop.adb: Minor style fixes. 1015 10162015-02-20 Robert Dewar <dewar@adacore.com> 1017 1018 * freeze.adb (Warn_Overlay): Guard against blow up with address 1019 clause. 1020 10212015-02-20 Bob Duff <duff@adacore.com> 1022 1023 * exp_attr.adb (May_Be_External_Call): Remove this. There is no need 1024 for the compiler to guess whether the call is internal or external -- 1025 it is always external. 1026 (Expand_Access_To_Protected_Op): For P'Access, where P 1027 is a protected subprogram, always create a pointer to the 1028 External_Subprogram. 1029 10302015-02-20 Robert Dewar <dewar@adacore.com> 1031 1032 * a-dispat.adb, a-stcoed.ads: Minor reformatting. 1033 10342015-02-20 Robert Dewar <dewar@adacore.com> 1035 1036 * sem_ch13.adb (Build_Discrete_Static_Predicate): Allow static 1037 predicate for non-static subtype. 1038 (Build_Predicate_Functions): Do not assume subtype associated with a 1039 static predicate must be static. 1040 10412015-02-20 Robert Dewar <dewar@adacore.com> 1042 1043 * errout.adb (Set_Msg_Node): Better handling of internal names 1044 (Set_Msg_Node): Kill message when we cannot eliminate internal name. 1045 * errout.ads: Document additional case of message deletion. 1046 * namet.adb (Is_Internal_Name): Refined to consider wide 1047 strings in brackets notation and character literals not to be 1048 internal names. 1049 * sem_ch8.adb (Find_Selected_Component): Give additional error 1050 when selector name is a subprogram whose first parameter has 1051 the same type as the prefix, but that type is untagged. 1052 10532015-02-20 Robert Dewar <dewar@adacore.com> 1054 1055 * g-allein.ads, g-alveop.adb, g-alveop.ads, opt.ads: Minor reformatting 1056 10572015-02-20 Tristan Gingold <gingold@adacore.com> 1058 1059 * opt.ads (GNAT_Mode_Config): New variable. 1060 * opt.adb (Set_Opt_Config_Switches): Consider GNAT_Mode_Config 1061 to set Assertions_Enabled. 1062 * switch-c.adb (Scan_Front_End_Switches): Set GNAT_Mode_Config 1063 for -gnatg. 1064 10652015-02-20 Robert Dewar <dewar@adacore.com> 1066 1067 * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add an additional 1068 comment regarding the handling of unterminated fixed-point 1069 constants. 1070 * s-valuns.ads (Scan_Raw_Unsigned): Add comments 1071 corresponding to those previously added for 1072 System.Val_LLU.Scan_Raw_Long_Long_Unsigned. 1073 10742015-02-20 Olivier Hainque <hainque@adacore.com> 1075 1076 * g-allein.ads, g-alveop.ads, g-alveop.adb: Code clean ups. 1077 10782015-02-20 Robert Dewar <dewar@adacore.com> 1079 1080 * sem_prag.adb: Minor comment clarification. 1081 10822015-02-20 Olivier Hainque <hainque@adacore.com> 1083 1084 * g-allein.ads (vec_ctf, vec_vcsfx, vec_vcfux): Remove. 1085 * g-alleve.ads, g-alleva.adb (vcfux): Likewise. 1086 * g-alveop.ads (vec_vcfsx, vec_vcfux): Just rename the ll versions. 1087 (vec_ctf): Now renamings as well. 1088 10892015-02-20 Robert Dewar <dewar@adacore.com> 1090 1091 * switch-c.adb, bindgen.adb: Minor reformatting. 1092 10932015-02-20 Ed Schonberg <schonberg@adacore.com> 1094 1095 * sem_prag.adb (Analyze_Pragma, case Type_Invariant): 1096 Invariant'class is allowed on an abstract type. 1097 10982015-02-20 Ed Schonberg <schonberg@adacore.com> 1099 1100 * sem_ch3.adb (Access_Definition): If the access definition is 1101 for a protected component and defines an access to protected 1102 subprogram, do not create an itype reference for it because a 1103 full type declaration will be built in order to generate the 1104 proper equivalent type. 1105 (Analyze_Subtype_Declaration): Add information of incomplete 1106 subtypes, for Ada 2012 extended uses of incomplete types. 1107 11082015-02-20 Gary Dismukes <dismukes@adacore.com> 1109 1110 * sem_res.adb: Minor reformatting. 1111 11122015-02-20 Vincent Celier <celier@adacore.com> 1113 1114 * switch-c.adb (Scan_Front_End_Switches): When comparing runtime 1115 path name for several switches --RTS, use the normalized path 1116 names. 1117 11182015-02-20 Vincent Celier <celier@adacore.com> 1119 1120 * bindgen.adb: Minor reformatting and code reorganization. 1121 11222015-02-20 Jose Ruiz <ruiz@adacore.com> 1123 1124 * a-stcoed.ads: Add spec for this package (Unimplemented_Unit). 1125 * impunit.adb (Non_Imp_File_Names_12): Mark unit a-stcoed.ads as 1126 defined by Ada 2012. 1127 11282015-02-20 Arnaud Charlet <charlet@adacore.com> 1129 1130 * sysdep.c, expect.c, s-oscons-tmplt.c, gsocket.h, adaint.c: Remove 1131 obsolete references to RTX, nucleus, VMS. 1132 11332015-02-20 Ed Schonberg <schonberg@adacore.com> 1134 1135 * sem_prag.adb (Fix_Error): For an illegal Type_Invariant'Class 1136 aspect, use name that mentions Class explicitly, rather than 1137 compiler-internal name. 1138 11392015-02-20 Robert Dewar <dewar@adacore.com> 1140 1141 * debug.adb: Add documentation for -gnatd.2 (allow statements 1142 in decl sequences). 1143 * par-ch3.adb (P_Identifier_Declarations): Handle 1144 statement appearing where declaration expected more cleanly. 1145 (Statement_When_Declaration_Expected): Implement debug flag 1146 -gnatd.2. 1147 11482015-02-20 Jose Ruiz <ruiz@adacore.com> 1149 1150 * a-dinopr.ads: Add spec for this package (Unimplemented_Unit). 1151 * a-dispat.ads (Yield): Include procedure added in Ada 2012. 1152 * a-dispat.adb (Yield): Implement procedure added in Ada 2012. 1153 * impunit.adb (Non_Imp_File_Names_05): Mark unit a-dinopr.ads as 1154 defined by Ada 2005. 1155 * snames.ads-tmpl (Name_Non_Preemptive_FIFO_Within_Priorities): 1156 This is the correct name for the dispatching policy (FIFO was 1157 missing). 1158 11592015-02-20 Javier Miranda <miranda@adacore.com> 1160 1161 * sem_res.adb (Resolve_Type_Conversion): If the type of the 1162 operand is the limited-view of a class-wide type then recover 1163 the class-wide type of the non-limited view. 1164 11652015-02-20 Arnaud Charlet <charlet@adacore.com> 1166 1167 * gcc-interface/Makefile.in: Remove references to nucleus. 1168 * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Procedure): Set 1169 extern_flag to true for Inline_Always subprograms with 1170 Intrinsic convention. 1171 11722015-02-20 Yannick Moy <moy@adacore.com> 1173 1174 * sem_prag.ads: Minor typo in comment. 1175 11762015-02-20 Pascal Obry <obry@adacore.com> 1177 1178 * s-osprim-mingw.adb: Fix Get_Base_Time parameter mode. 1179 11802015-02-20 Vincent Celier <celier@adacore.com> 1181 1182 * makeutl.adb (Get_Directories.Add_Dir): Add a directory only 1183 if it exists. 1184 11852015-02-20 Robert Dewar <dewar@adacore.com> 1186 1187 * sem_eval.ads: Minor reformatting. 1188 11892015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1190 1191 * freeze.adb (Size_Known): Do not set the packed size for 1192 independent type or component. 1193 (Freeze_Array_Type): Check for Independent[_Components] with packing 1194 or explicit component size clause. 1195 * gnat1drv.adb (Post_Compilation_Validation_Checks): Do the validation 1196 of independence pragmas only for non-GCC back-ends. 1197 * sem_ch13.adb (Initialize): Likewise for the initialization. 1198 * sem_prag.adb (Record_Independence_Check): New procedure to record an 1199 independence check in the table. 1200 (Analyze_Pragma): Use it throughout instead of doing it manually. 1201 * gcc-interface/decl.c (gnat_to_gnu_field): Add support for 1202 independent type or component. 1203 12042015-02-20 Thomas Quinot <quinot@adacore.com> 1205 1206 * adaint.c (__gnat_readdir): For Solaris, use 64 bit variants of 1207 struct direct and readdir. This is required for NFS filesystems 1208 mounted from servers that use 64-bit cookies. 1209 12102015-02-20 Ed Schonberg <schonberg@adacore.com> 1211 1212 * sem_ch12.adb (Analyze_Subprogram_Instantiaion): New subprogram 1213 Build_Subprogram_Renaming, to create renaming of subprogram 1214 instance in the the declaration of the wrapper package rather 1215 than in its body, so that it is available for analysis of aspects 1216 propagated from generic to instantiation. 1217 (Check_Mismatch): An actual for a formal package that is an 1218 incomplete type matches a formal type that is incomplete. 1219 (Instantiate_Package_Body): Move code that builds subprogram 1220 renaming to Analyze_Subprogram_Instantiation. 1221 (Instantiate_Type): The generated subtype is a limited view if 1222 the actual is a limited view. 1223 (Load_Parent_Of_Generic): Retrieve instance declaration from 1224 its new position within wrapper package. 1225 12262015-02-20 Arnaud Charlet <charlet@adacore.com> 1227 1228 * s-parame-vxworks.adb, s-os_lib.ads: Update comments. 1229 12302015-02-20 Robert Dewar <dewar@adacore.com> 1231 1232 * s-osinte-vxworks.ads (To_Timespec): Add comment about the 1233 issue of negative arguments. 1234 12352015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1236 1237 * gnat1drv.adb: Minor consistency fix. 1238 12392015-02-20 Pascal Obry <obry@adacore.com> 1240 1241 * s-osprim-mingw.adb (Get_Base_Time): Properly release lock in all 1242 paths. 1243 12442015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1245 1246 * inline.adb (Expand_Inlined_Call): Skip again calls to subprogram 1247 renamings. 1248 * exp_ch6.adb (Expand_Call): Use back-end inlining 1249 instead of expansion for simple subprogram renamings. 1250 12512015-02-20 Robert Dewar <dewar@adacore.com> 1252 1253 * exp_util.adb: Minor reformatting. 1254 12552015-02-20 Vincent Celier <celier@adacore.com> 1256 1257 * switch-c.adb (Scan_Front_End_Switches): Do not fail when --RTS= 1258 is specified several times with different values that indicates 1259 the same runtime directory. 1260 12612015-02-20 Ed Schonberg <schonberg@adacore.com> 1262 1263 * sem_attr.adb (Check_Not_Incomplete_Type): Clean up code to 1264 handle properly illegal uses of attributes on prefixes on an 1265 incomplete type, both when the type of the prefix is locally 1266 incomplete, and when it is a limited view of a type whose 1267 non-limited view is not available. 1268 (Analyze_Attribute): Add calls to Check_Not_Incomplete_Type for 1269 'Address and others. 1270 12712015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1272 1273 * exp_ch6.adb: Fix minor typo in comment. 1274 12752015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1276 1277 * sinfo.ads: Add comment. 1278 12792015-02-20 Olivier Hainque <hainque@adacore.com> 1280 1281 * opt.ads: Replace Opt.Suppress_All_Inlining by two separate 1282 flags controlling the actual FE inlining out of pragma Inline 1283 and pragma Inline_Always. 1284 * adabkend.adb (Scan_Compiler_Arguments): Set both flags to True 1285 on -fno-inline, which disables all inlining in compilers with 1286 an Ada back-end and without back-end inlining support. 1287 * back_end.adb (Scan_Back_End_Switches): Set the Inline related 1288 flag to True on -fno-inline and leave Inline_Always alone for 1289 gcc back-ends. 1290 * back_end.ads (Scan_Compiler_Arguments): Adjust spec wrt the 1291 names of the Opt flags it sets. 1292 * gnat1drv.adb (Adjust_Global_Switches): Remove test on 1293 Opt.Suppress_All_Inlining in the Back_End_Inlining computation. 1294 * sem_prag.adb (Make_Inline): Remove early return conditioned 1295 on Opt.Suppress_All_Inlining. 1296 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): Use the flags to 1297 disable the calls to Build_Body_To_Inline otherwise triggered 1298 by pragma Inline or Inline_Always. This will prevent actual 1299 front-end inlining of the subprogram on calls. 1300 13012015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1302 1303 * exp_ch3.adb (Default_Initialize_Object): Call Add_Inlined_Body on the 1304 Abort_Undefer_Direct function. 1305 * exp_ch5.adb (Expand_N_Assignment_Statement): Likewise. 1306 * exp_intr.adb (Expand_Unc_Deallocation): Likewise. 1307 * exp_prag.adb (Expand_Pragma_Abort_Defer): Likewise. 1308 * exp_ch4.adb (Expand_N_Selected_Component): Adjust call to 1309 Add_Inlined_Body. 1310 * exp_ch6.adb (Expand_Call): Adjust calls to Add_Inlined_Body. 1311 Remove call to Register_Backend_Call and move code resetting 1312 Needs_Debug_Info on inlined subprograms to... 1313 * inline.ads (Add_Inlined_Body): Add N parameter. 1314 (Register_Backend_Call): Delete. 1315 * inline.adb (Add_Inlined_Body): ...here and simplify. 1316 Register the call with Backend_Calls directly. 1317 (Register_Backend_Call): Delete. 1318 * s-stalib.ads (Abort_Undefer_Direct): Restore pragma Inline. 1319 13202015-02-20 Eric Botcazou <ebotcazou@adacore.com> 1321 1322 * s-stalib.ads: Fix typo. 1323 13242015-02-20 Ed Schonberg <schonberg@adacore.com> 1325 1326 * exp_ch3.adb (Default_Initialize_Object): If the object has a 1327 delayed freeze, the actions associated with default initialization 1328 must be part of the freeze actions, rather that being inserted 1329 directly after the object declaration. 1330 13312015-02-20 Robert Dewar <dewar@adacore.com> 1332 1333 * lib-load.adb: Minor comment update. 1334 13352015-02-20 Vincent Celier <celier@adacore.com> 1336 1337 * prj-proc.adb (Process_Case_Construction): When there are 1338 incomplete withed projects and the case variable is unknown, 1339 skip the case construction. 1340 13412015-02-20 Ed Schonberg <schonberg@adacore.com> 1342 1343 * exp_ch6.adb (Expand_Actuals): Add caller-side invariant checks 1344 when an actual is a view conversion, either because the call is 1345 to an inherited operation, or because the actual is an explicit 1346 type conversion to an ancestor type. Fixes ACATS 4.0D: C732001 1347 13482015-02-20 Robert Dewar <dewar@adacore.com> 1349 1350 * einfo.ads: Minor comment updates Fix missing pragma Inline 1351 for Set_Partial_View_Has_Unknown_Discr. 1352 * einfo.adb (Write_Entity_Flags): Add missing entry for 1353 Partial_View_Has_Unknown_Discr. 1354 * sem_ch3.adb: Minor reformatting. 1355 13562015-02-20 Vincent Celier <celier@adacore.com> 1357 1358 * opt.ads: Minor cleanup: remove mention of gprmake. 1359 * s-stalib.ads (Abort_Undefer_Direct): Do not inline. 1360 * s-tataat.adb: Do not call System.Tasking.Self but directly 1361 System.Task_Primitives.Operations.Self. 1362 13632015-02-20 Arnaud Charlet <charlet@adacore.com> 1364 1365 * gnat_rm.texi, gnat_ugn.texi: Now automatically generated from 1366 sphinx in the doc directory. 1367 * doc: New directory containing sphinx versions of gnat_rm and gnat_ugn 1368 13692015-02-20 Robert Dewar <dewar@adacore.com> 1370 1371 * sem_res.adb: Minor reformatting. 1372 * exp_ch9.adb (Build_Protected_Spec): Copy Aliased setting when 1373 building spec. 1374 * sem_ch13.adb (Analyze_Aspect_Specifications): Exclude Boolean 1375 aspects from circuitry setting delay required to false if the 1376 argument is an integer literal. 1377 13782015-02-20 Ed Schonberg <schonberg@adacore.com> 1379 1380 * einfo.ads. einfo.adb (Partial_View_Has_Unknown_Discr): New flag 1381 on type entities, to enforce AI12-0133: default initialization 1382 of types whose partial view has unknown discriminants does not 1383 get an invariant check, because clients of the unit can never 1384 declare objects of such types. 1385 * sem_ch3.adb (Find_Type_Name); Set new flag 1386 Partial_View_Has_Unknown_Discr when needed. 1387 * exp_ch3.adb (Expand_N_Object_Declaration): Use flag to suppress 1388 generation of invariant call on default-initialized object. 1389 13902015-02-08 Eric Botcazou <ebotcazou@adacore.com> 1391 1392 * gcc-interface/decl.c (gnat_to_gnu_param): Do not strip the padding 1393 if the parameter either is passed by reference or if the alignment 1394 would be lowered. 1395 13962015-02-08 Eric Botcazou <ebotcazou@adacore.com> 1397 1398 * gcc-interface/decl.c (is_cplusplus_method): Use Is_Primitive flag to 1399 detect primitive operations of tagged and untagged types. 1400 14012015-02-08 Eric Botcazou <ebotcazou@adacore.com> 1402 1403 * gcc-interface/decl.c (gnat_to_gnu_entity): Do not bother about alias 1404 sets in presence of derivation for subprogram types. 1405 14062015-02-08 Eric Botcazou <ebotcazou@adacore.com> 1407 1408 * gcc-interface/utils.c (begin_subprog_body): Assert that the body is 1409 present in the same context as the declaration. 1410 14112015-02-07 Jakub Jelinek <jakub@redhat.com> 1412 1413 PR middle-end/64340 1414 * gcc-interface/trans.c (gigi): Recreate optimization_default_node 1415 and optimization_current_node after tweaking global_options. 1416 14172015-02-05 Robert Dewar <dewar@adacore.com> 1418 1419 * prj-proc.adb, sem_aux.adb, exp_ch9.adb, errout.adb, prj-dect.adb, 1420 prj-nmsc.adb: Minor reformatting. 1421 14222015-02-05 Ed Schonberg <schonberg@adacore.com> 1423 1424 * sem_type.adb (Covers): In ASIS_Mode the Corresponding_Record 1425 of a protected type may not be available, so to check conformance 1426 with an interface type, examine the interface list in the type 1427 declaration directly. 1428 (Write_Overloads): Improve information for indirect calls, 1429 for debugger use. 1430 14312015-02-05 Ed Schonberg <schonberg@adacore.com> 1432 1433 * exp_ch3.adb (Make_Tag_Assignment): Do not perform this 1434 expansion activity in ASIS mode. 1435 14362015-02-05 Javier Miranda <miranda@adacore.com> 1437 1438 * errout.adb (Error_Msg_PT): Add missing error. 1439 * sem_ch6.adb (Check_Synchronized_Overriding): Check the missing 1440 RM rule. Code cleanup. 1441 * exp_ch9.adb (Build_Wrapper_Spec): Propagate "constant" in 1442 anonymous access types. Found working on the tests. Code cleanup. 1443 14442015-02-05 Vincent Celier <celier@adacore.com> 1445 1446 * prj-dect.adb (Parse_Attribute_Declaration): Continue scanning 1447 when there are incomplete withs. 1448 * prj-nmsc.adb (Process_Naming): Do not try to get the value 1449 of an element when it is nil. 1450 (Check_Naming): Do not check a nil suffix for illegality 1451 * prj-proc.adb (Expression): Do not process an empty term. 1452 * prj-strt.adb (Attribute_Reference): If attribute cannot be 1453 found, parse a possible index to avoid cascading errors. 1454 14552015-02-05 Ed Schonberg <schonberg@adacore.com> 1456 1457 * sem_aux.adb (Is_Derived_Type): A subprogram_type generated 1458 for an access_to_subprogram declaration is not a derived type. 1459 14602015-02-05 Robert Dewar <dewar@adacore.com> 1461 1462 * errout.adb (Error_Msg_Internal): For non-serious error set 1463 Fatal_Error to Ignored. 1464 * lib-load.adb (Load_Unit): Minor comment updates. 1465 * sem_ch10.adb (Analyze_With_Clause): Propagate Fatal_Error 1466 setting from with'ed unit to with'ing unit. 1467 * sem_prag.adb (Analyze_Pragma, case Warnings): Document handling 1468 of ambiguity. 1469 14702015-02-05 Yannick Moy <moy@adacore.com> 1471 1472 * sem_prag.adb, par-prag.adb: Minor code clean up. 1473 14742015-02-05 Yannick Moy <moy@adacore.com> 1475 1476 * par-prag.adb (Pragma_Warnings): Update for extended form 1477 of pragma Warnings. The "one" argument case may now have 2 or 1478 3 arguments. 1479 * sem_prag.adb (Analyze_Pragma/Pragma_Warnings): Update for 1480 extended form of pragma Warnings. Pragma with tool name is either 1481 rewritten as null or as an equivalent form without tool name, 1482 before reanalysis. 1483 * snames.ads-tmpl (Name_Gnatprove): New name. 1484 14852015-02-05 Robert Dewar <dewar@adacore.com> 1486 1487 * sem_ch13.adb (Add_Invariants): Don't assume invariant is 1488 standard Boolean. 1489 * sem_prag.adb (Analyze_Pragma, case Check): Don't assume 1490 condition is standard Boolean, it can be non-standard derived 1491 Boolean. 1492 14932015-02-05 Robert Dewar <dewar@adacore.com> 1494 1495 * checks.adb (Enable_Range_Check): Disconnect attempted 1496 optimization for the case of range check for subscript of 1497 unconstrained array. 1498 14992015-02-05 Robert Dewar <dewar@adacore.com> 1500 1501 * par-ch13.adb (With_Present): New function 1502 (Aspect_Specifications_Present): Handle WHEN in place of WITH 1503 (Get_Aspect_Specifications): Comment update. 1504 * par.adb: Comment updates. 1505 15062015-02-05 Robert Dewar <dewar@adacore.com> 1507 1508 * errout.adb (Handle_Serious_Error): New setting of Fatal_Error. 1509 * frontend.adb (Frontend): New setting of Fatal_Error. 1510 * lib-load.adb (Create_Dummy_Package_Unit): New setting of 1511 Fatal_Error. 1512 (Load_Main_Source): New setting of Fatal_Error 1513 (Load_Unit): New setting of Fatal_Error. 1514 * lib-writ.adb (Add_Preprocessing_Dependency): New setting of 1515 Fatal_Error. 1516 (Ensure_System_Dependency): New setting of Fatal_Error. 1517 * lib.adb (Fatal_Error): New setting of Fatal_Error 1518 (Set_Fatal_Error): New setting of Fatal_Error. 1519 * lib.ads: New definition of Fatal_Error and associated routines. 1520 * par-ch10.adb (P_Compilation_Unit): New setting of Fatal_Error. 1521 * par-load.adb (Load): New setting of Fatal_Error. 1522 * rtsfind.adb (Load_RTU): New setting of Fatal_Error. 1523 * sem_ch10.adb (Analyze_Compilation_Unit): New setting of 1524 Fatal_Error. 1525 (Optional_Subunit): New setting of Fatal_Error. 1526 (Analyze_Proper_Body): New setting of Fatal_Error. 1527 (Load_Needed_Body): New setting of Fatal_Error. 1528 15292015-02-05 Ed Schonberg <schonberg@adacore.com> 1530 1531 * sem_res.adb (Resolve_Call): If the function being called has 1532 out parameters do not check for language version if the function 1533 comes from a predefined unit, as those are always compiled in 1534 Ada 2012 mode. 1535 15362015-02-05 Ed Schonberg <schonberg@adacore.com> 1537 1538 * sem_ch3.adb (Process_Full_View): Verify that the full view 1539 of a type extension must carry an explicit limited keyword if 1540 the partial view does (RM 7.3 (10.1)). 1541 15422015-02-05 Robert Dewar <dewar@adacore.com> 1543 1544 * g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads, 1545 sem_warn.ads: Minor reformatting. 1546 * exp_ch13.adb (Expand_N_Freeze_Entity): Add guard for aspect 1547 deleted by -gnatI. 1548 * sem_prag.adb (Analyze_Pragma, case Type_Invariant): Give 1549 error for abstract type. 1550 15512015-02-05 Yannick Moy <moy@adacore.com> 1552 1553 * opt.ads (Warn_On_Suspicious_Contract): Update comment 1554 describing use. 1555 * sem_attr.adb (Analyze_Attribute/Attribute_Update): Warn on 1556 suspicious uses of 'Update. 1557 * sem_warn.adb, sem_warn.ads (Warn_On_Suspicious_Update): New 1558 function issues warning on suspicious uses of 'Update. 1559 * g-rannum.adb, g-rannum.ads, s-rannum.adb, s-rannum.ads: Mark 1560 package spec and body as SPARK_Mode Off. 1561 15622015-02-05 Robert Dewar <dewar@adacore.com> 1563 1564 * sem_prag.adb (Set_Elab_Unit_Name): New name for Set_Unit_Name 1565 (Analyze_Pragma): Change Set_Unit_Name to Set_Elab_Unit_Name 1566 (Set_Elab_Unit_Name): Generate reference for Elaborate[_All] 1567 * sem_warn.adb (Warn_On_Unreferenced_Entity): Suppress warning 1568 for exported entity. 1569 15702015-02-05 Hristian Kirtchev <kirtchev@adacore.com> 1571 1572 * sem_prag.adb (Check_Pragma_Conformance): Add 1573 local variable Arg. Ensure that all errors are associated with 1574 the pragma if it appears without an argument. Add comments on 1575 various cases. 1576 15772015-02-05 Robert Dewar <dewar@adacore.com> 1578 1579 * lib-xref.adb: Minor reformatting. 1580 15812015-02-05 Tristan Gingold <gingold@adacore.com> 1582 1583 PR ada/64349da/64349 1584 * env.c: Fix thinko: handle Darwin case before default one. 1585 15862015-01-30 Robert Dewar <dewar@adacore.com> 1587 1588 * a-assert.adb: Minor reformatting. 1589 * sem_ch13.adb: Minor comment clarification. 1590 * types.ads: Minor comment update. 1591 * sem_eval.adb (Real_Or_String_Static_Predicate_Matches): Avoid blow up 1592 when we have a predicate that is nothing but an inherited dynamic 1593 predicate. 1594 15952015-01-30 Jerome Guitton <guitton@adacore.com> 1596 1597 * gcc-interface/Makefile.in (x86-vxworks): Update GCC_SPEC_FILES to 1598 include cert link spec. 1599 16002015-01-30 Robert Dewar <dewar@adacore.com> 1601 1602 * einfo.ads: Minor comment fix. 1603 * freeze.adb (Freeze_Profile): Add test for suspicious import 1604 in pure unit. 1605 * sem_prag.adb (Process_Import_Or_Interface): Test for suspicious 1606 use in Pure unit is now moved to Freeze (to properly catch 1607 Pure_Function exemption). 1608 16092015-01-30 Bob Duff <duff@adacore.com> 1610 1611 * sem_res.ads: Minor comment fix. 1612 * sem_type.adb: sem_type.adb (Remove_Conversions): Need to 1613 check both operands of an operator. 1614 16152015-01-30 Yannick Moy <moy@adacore.com> 1616 1617 * a-assert.ads, a-assert.adb: Mark package spec in SPARK. Set assertion 1618 policy for Pre to Ignore. 1619 (Assert): Add precondition. 1620 16212015-01-30 Robert Dewar <dewar@adacore.com> 1622 1623 * sem_prag.adb (Process_Import_Or_Interface): Warn if used in 1624 Pure unit. 1625 * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Clarify 1626 documentation for some special cases of invalid attempts at 1627 based integers. 1628 16292015-01-30 Gary Dismukes <dismukes@adacore.com> 1630 1631 * errout.ads: Minor reformatting. 1632 16332015-01-30 Yannick Moy <moy@adacore.com> 1634 1635 * inline.adb (Process_Formals): Use the sloc of 1636 the inlined node instead of the sloc of the actual parameter, 1637 when replacing formal parameters by the actual one. 1638 16392015-01-30 Arnaud Charlet <charlet@adacore.com> 1640 1641 * g-expect.adb (Get_Command_Output): Use infinite timeout when 1642 calling Expect. 1643 16442015-01-30 Ed Schonberg <schonberg@adacore.com> 1645 1646 * sem_ch12.adb (Analyze_Associations): If an in-parameter is 1647 defaulted in an instantiation, add an entry in the list of actuals 1648 to indicate the default value of the formal (as is already done 1649 for defaulted subprograms). 1650 16512015-01-30 Javier Miranda <miranda@adacore.com> 1652 1653 * errout.adb (Error_Msg_PT): Minor error phrasing update. 1654 16552015-01-30 Robert Dewar <dewar@adacore.com> 1656 1657 * sem_warn.adb (Warn_On_Known_Condition): Improve error message 1658 for object case. 1659 16602015-01-30 Pierre-Marie de Rodat <derodat@adacore.com> 1661 1662 * exp_dbug.adb (Get_Encoded_Name): When 1663 -fgnat-encodings=minimal, do not generate names for biased types. 1664 16652015-01-30 Tristan Gingold <gingold@adacore.com> 1666 1667 PR ada/64349 1668 * env.c: Move vxworks and darwin includes out of #ifdef IN_RTS. 1669 16702015-01-30 Gary Dismukes <dismukes@adacore.com> 1671 1672 * freeze.adb: Minor reformatting. 1673 16742015-01-30 Javier Miranda <miranda@adacore.com> 1675 1676 * errout.ads (Error_Msg_PT): Replace Node_Id by Entity_Id and 1677 improve its documentation. 1678 * errout.adb (Error_Msg_PT): Improve the error message. 1679 * sem_ch6.adb (Check_Conformance): Update call to Error_Msg_PT. 1680 (Check_Synchronized_Overriding): Update call to Error_Msg_PT. 1681 * sem_ch3.adb (Check_Abstract_Overriding): Code cleanup. 1682 16832015-01-30 Robert Dewar <dewar@adacore.com> 1684 1685 * sem_warn.adb (Warn_On_Known_Condition): Do special casing of 1686 message for False case. 1687 16882015-01-30 Doug Rupp <rupp@adacore.com> 1689 1690 * s-vxwext-kernel.ads (Task_Cont): Remove imported subprogram body. 1691 * s-vxwext-kernel.adb (Task_Cont): New subpprogram body specialized for 1692 kernel. 1693 16942015-01-30 Gary Dismukes <dismukes@adacore.com> 1695 1696 * sem_attr.adb (Declared_Within_Generic_Unit): 1697 New function to test whether an entity is declared within the 1698 declarative region of a given generic unit. 1699 (Resolve_Attribute): For checking legality of subprogram'Access within 1700 a generic unit, call new Boolean function Declared_Within_Generic_Unit 1701 instead of simply comparing the results of Enclosing_Generic_Unit on 1702 the prefix and access type. Correct minor comment typos. 1703 17042015-01-30 Robert Dewar <dewar@adacore.com> 1705 1706 * freeze.adb, exp_util.ads: Update comment. 1707 * exp_util.adb, exp_ch3.adb: Minor code reorganization and reformatting. 1708 * sem_util.adb: Minor: fix typo. 1709 17102015-01-30 Hristian Kirtchev <kirtchev@adacore.com> 1711 1712 * sem_attr.adb (Analyze_Attribute): Ensure that 1713 the check concerning Refined_Post takes precedence over the 1714 other cases. 1715 17162015-01-30 Gary Dismukes <dismukes@adacore.com> 1717 1718 * sem_prag.adb: Minor typo fixes and reformatting. 1719 17202015-01-30 Yannick Moy <moy@adacore.com> 1721 1722 * sem_attr.adb: Code clean up. 1723 17242015-01-30 Robert Dewar <dewar@adacore.com> 1725 1726 * ali.adb (Scan_ALI): Set Serious_Errors flag in Unit record. 1727 * ali.ads (Unit_Record): Add new field Serious_Errors. 1728 * lib-writ.adb (Write_Unit_Information): Set SE (serious errors) 1729 attribute in U line. 1730 * lib-writ.ads: New attribute SE (serious erors) in unit line. 1731 17322015-01-30 Hristian Kirtchev <kirtchev@adacore.com> 1733 1734 * einfo.adb Update the usage of attributes Entry_Bodies_Array, 1735 Lit_Indexes, Scale_Value, Storage_Size_Variable, 1736 String_Literal_Low_Bound along associated routines and 1737 Write_FieldX_Name. 1738 (Pending_Access_Types): New routine. 1739 (Set_Pending_Access_Types): New routine. 1740 (Write_Field15_Name): Add an entry for Pending_Access_Types. 1741 * einfo.ads Add new attribute Pending_Access_Types along 1742 with usage in nodes. Update the usage of attributes 1743 Entry_Bodies_Array, Lit_Indexes, Scale_Value, 1744 Storage_Size_Variable, String_Literal_Low_Bound. 1745 (Pending_Access_Types): New routine along with pragma Inline. 1746 (Set_Pending_Access_Types): New routine along with pragma Inline. 1747 * exp_ch3.adb (Expand_Freeze_Array_Type): Add new local variable 1748 Ins_Node. Determine the insertion node for anonynous access type 1749 that acts as a component type of an array. Update the call to 1750 Build_Finalization_Master. 1751 (Expand_Freeze_Record_Type): Update 1752 the calls to Build_Finalization_Master. 1753 (Freeze_Type): Remove 1754 local variable RACW_Seen. Factor out the code that deals with 1755 remote access-to-class-wide types. Create a finalization master 1756 when the designated type contains a private component. Fully 1757 initialize all pending access types. 1758 (Process_RACW_Types): New routine. 1759 (Process_Pending_Access_Types): New routine. 1760 * exp_ch4.adb (Expand_Allocator_Expression): Allocation no longer 1761 needs to set primitive Finalize_Address. 1762 (Expand_N_Allocator): Allocation no longer sets primitive 1763 Finalize_Address. 1764 * exp_ch6.adb (Add_Finalization_Master_Actual_To_Build_In_Place_Call): 1765 Update the call to Build_Finalization_Master. 1766 (Make_Build_In_Place_Call_In_Allocator): Allocation no longer 1767 needs to set primitive Finalize_Address. 1768 * exp_ch7.adb (Add_Pending_Access_Type): New routine. 1769 (Build_Finalization_Master): New parameter profile. Associate 1770 primitive Finalize_Address with the finalization master if the 1771 designated type has been frozen, otherwise treat the access 1772 type as pending. Simplify the insertion of the master and 1773 related initialization code. 1774 (Make_Finalize_Address_Body): Allow Finalize_Address for class-wide 1775 abstract types. 1776 (Make_Set_Finalize_Address_Call): Remove forlam parameter Typ. 1777 Simplify the implementation. 1778 * exp_ch7.ads (Build_Finalization_Master): New parameter profile 1779 along with comment on usage. 1780 (Make_Set_Finalize_Address_Call): Remove formal parameter Typ. Update 1781 the comment on usage. 1782 * exp_util.adb (Build_Allocate_Deallocate_Proc): Use routine 1783 Finalize_Address to retrieve the primitive. 1784 (Finalize_Address): New routine. 1785 (Find_Finalize_Address): Removed. 1786 * exp_util.ads (Finalize_Address): New routine. 1787 * freeze.adb (Freeze_All): Remove the generation of finalization 1788 masters. 1789 * sem_ch3.adb (Analyze_Full_Type_Declaration): Propagate any 1790 pending access types from the partial to the full view. 1791 17922015-01-30 Robert Dewar <dewar@adacore.com> 1793 1794 * sem_disp.adb: Minor reformatting. 1795 * sem_disp.ads: Documentation update. 1796 17972015-01-30 Ed Schonberg <schonberg@adacore.com> 1798 1799 * sem_disp.adb (Is_Dynamically_Tagged): when applied to an entity 1800 or a function call, return True if type is class-wide. 1801 * sem_res.adb (Resolve_Case_Expression, Resolve_If_Expression); 1802 Apply RM 4.5.7 (17/3): all or none of the dependent expression 1803 of a conditional expression must be dynamically tagged. 1804 18052015-01-30 Ed Schonberg <schonberg@adacore.com> 1806 1807 * sem_ch6.adb (Analyze_Function_Return): In an extended return 1808 statement, apply accessibility check to result object when there 1809 is no initializing expression (Ada 2012 RM 6.5 (5.4/3)) 1810 18112015-01-30 Robert Dewar <dewar@adacore.com> 1812 1813 * sem_ch4.adb (Analyze_If_Expression): Allow for non-standard 1814 Boolean for case where ELSE is omitted. 1815 * sem_res.adb: Minor reformatting. 1816 18172015-01-27 Bernd Edlinger <bernd.edlinger@hotmail.de> 1818 1819 Fix build under cygwin/64. 1820 * adaint.h: Add check for __CYGWIN__. 1821 * mingw32.h: Prevent windows.h from including x86intrin.h in GCC. 1822 18232015-01-19 Bernd Edlinger <bernd.edlinger@hotmail.de> 1824 1825 PR ada/64640 1826 * adaint.c: Handle __CYGWIN__ like __MINGW32__ here. 1827 * mingw32.h: Don't include <tchar.h> under cygwin. 1828 (_O_U8TEXT, _O_U16TEXT, _O_WTEXT): Set to _O_TEXT if not yet defined. 1829 18302015-01-15 Thomas Schwinge <thomas@codesourcery.com> 1831 1832 * gcc-interface/utils.c (DEF_FUNCTION_TYPE_VAR_8) 1833 (DEF_FUNCTION_TYPE_VAR_12): New macros. 1834 18352015-01-09 Michael Collison <michael.collison@linaro.org> 1836 1837 * gcc-interface/cuintp.c: Include hash-set.h, machmode.h, 1838 vec.h, double-int.h, input.h, alias.h, symtab.h, 1839 fold-const.h, wide-int.h, and inchash.h due to 1840 flattening of tree.h. 1841 * gcc-interface/decl.c: Ditto. 1842 * gcc-interface/misc.c: Ditto. 1843 * gcc-interface/targtyps.c: Include hash-set.h, machmode.h, 1844 vec.h, double-int.h, input.h, alias.h, symtab.h, options.h, 1845 fold-const.h, wide-int.h, and inchash.h due to 1846 flattening of tree.h. 1847 * gcc-interface/trans.c: Include hash-set.h, machmode.h, 1848 vec.h, double-int.h, input.h, alias.h, symtab.h, real.h, 1849 fold-const.h, wide-int.h, inchash.h due to 1850 flattening of tree.h. 1851 * gcc-interface/utils.c: Include hash-set.h, machmode.h, 1852 vec.h, double-int.h, input.h, alias.h, symtab.h, 1853 fold-const.h, wide-int.h, and inchash.h due to 1854 flattening of tree.h. 1855 * gcc-interface/utils2.c: Ditto. 1856 18572015-01-07 Robert Dewar <dewar@adacore.com> 1858 1859 * sem_warn.adb (Check_One_Unit): Don't give unused entities 1860 warning for a package which is used as a generic parameter. 1861 18622015-01-07 Bob Duff <duff@adacore.com> 1863 1864 * usage.adb (Usage): Correct documentation of 1865 -gnatw.f switches. 1866 18672015-01-07 Robert Dewar <dewar@adacore.com> 1868 1869 * s-fileio.adb: Minor reformatting. 1870 18712015-01-07 Ed Schonberg <schonberg@adacore.com> 1872 1873 * sem_ch12.adb (Instantiate_Object): If formal is an anonymous 1874 access to subprogram, replace its formals with new entities when 1875 building the object declaration, both if actual is present and 1876 when it is defaulted. 1877 18782015-01-07 Ed Schonberg <schonberg@adacore.com> 1879 1880 * sem_ch5.adb (Analyze_Assignment): If left-hand side is a view 1881 conversion and type of expression has invariant, apply invariant 1882 check on expression. 1883 18842015-01-07 Ed Schonberg <schonberg@adacore.com> 1885 1886 * sem_ch3.adb (Create_Constrained_Components): A call to 1887 Gather_Components may detect an error if an inherited discriminant 1888 that controls a variant is non-static. 1889 * sem_aggr.adb (Resolve_Record_Aggregate, Step 5): The call to 1890 Gather_Components may report an error if an inherited discriminant 1891 in a variant in non-static. 1892 * sem_util.adb (Gather_Components): If a non-static discriminant 1893 is inherited do not report error here, but let caller handle it. 1894 (Find_Actual): Small optimization. 1895 18962015-01-07 Bob Duff <duff@adacore.com> 1897 1898 * usage.adb (Usage): Document -gnatw.f switch. 1899 19002015-01-07 Ed Schonberg <schonberg@adacore.com> 1901 1902 * sem_ch12.adb: Code clean up and minor reformatting. 1903 19042015-01-07 Robert Dewar <dewar@adacore.com> 1905 1906 * exp_ch4.adb (Expand_N_Type_Conversion): Add guard for 1907 Raise_Accessibility_Error call. 1908 * s-valllu.ads (Scan_Raw_Long_Long_Unsigned): Add documentation 1909 on handling of invalid digits in based constants. 1910 * s-fatgen.ads: Minor reformatting. 1911 * sem_attr.adb (Analyze_Attribute, case Unrestricted_Access): 1912 Avoid noting bogus modification for Valid test. 1913 * snames.ads-tmpl (Name_Attr_Long_Float): New Name. 1914 * einfo.ads: Minor reformatting. 1915 * sem_warn.adb: Minor comment clarification. 1916 * sem_ch12.adb: Minor reformatting. 1917 19182015-01-07 Ed Schonberg <schonberg@adacore.com> 1919 1920 * exp_ch5.adb (Expand_Predicated_Loop): Handle properly loops 1921 over static predicates when the loop parameter specification 1922 carries a Reverse indicator. 1923 19242015-01-07 Ed Schonberg <schonberg@adacore.com> 1925 1926 * sem_ch12.adb (Instantiate_Object): If formal has a default, 1927 actual is missing and formal has an anonymous access type, copy 1928 access definition in full so that tree for instance is properly 1929 formatted for ASIS use. 1930 19312015-01-07 Bob Duff <duff@adacore.com> 1932 1933 * sem_elab.adb (Check_Internal_Call_Continue): Give a warning 1934 for P'Access, where P is a subprogram in the same package as 1935 the P'Access, and the P'Access is evaluated at elaboration 1936 time, and occurs before the body of P. For example, "X : T := 1937 P'Access;" would allow a subsequent call to X.all to be an 1938 access-before-elaboration error; hence the warning. This warning 1939 is enabled by the -gnatw.f switch. 1940 * opt.ads (Warn_On_Elab_Access): New flag for warning switch. 1941 * warnsw.adb (Set_Dot_Warning_Switch): Set Warn_On_Elab_Access. 1942 * gnat_ugn.texi: Document the new warning. 1943 19442015-01-07 Johannes Kanig <kanig@adacore.com> 1945 1946 * lib-xref-spark_specific.adb (Collect_SPARK_Xrefs): Skip unneeded 1947 cross ref files. 1948 19492015-01-07 Robert Dewar <dewar@adacore.com> 1950 1951 * s-taprop-linux.adb, clean.adb: Minor reformatting. 1952 19532015-01-07 Arnaud Charlet <charlet@adacore.com> 1954 1955 * s-tassta.adb: Relax some overzealous assertions. 1956 19572015-01-07 Ed Schonberg <schonberg@adacore.com> 1958 1959 * sem_ch6.adb (Analyze_Return_Type): An call that returns a limited 1960 view of a type is legal when context is a thunk generated for 1961 operation inherited from an interface. 1962 * exp_ch6.adb (Expand_Simple_Function_Return): If context is 1963 a thunk and return type is an incomplete type do not continue 1964 expansion; thunk will be fully elaborated when generating code. 1965 19662015-01-07 Doug Rupp <rupp@adacore.com> 1967 1968 * s-osinte-mingw.ads (LARGE_INTEGR): New subtype. 1969 (QueryPerformanceFrequency): New imported procedure. 1970 * s-taprop-mingw.adb (RT_Resolution): Call above and return 1971 resolution vice a hardcoded value. 1972 * s-taprop-solaris.adb (RT_Resolution): Call clock_getres and return 1973 resolution vice a hardcoded value. 1974 * s-linux-android.ads (clockid_t): New subtype. 1975 * s-osinte-aix.ads (clock_getres): New imported subprogram. 1976 * s-osinte-android.ads (clock_getres): Likewise. 1977 * s-osinte-freebsd.ads (clock_getres): Likewise. 1978 * s-osinte-solaris-posix.ads (clock_getres): Likewise. 1979 * s-osinte-darwin.ads (clock_getres): New subprogram. 1980 * s-osinte-darwin.adb (clock_getres): New subprogram. 1981 * thread.c (__gnat_clock_get_res) [__APPLE__]: New function. 1982 * s-taprop-posix.adb (RT_Resolution): Call clock_getres to 1983 calculate resolution vice hard coded value. 1984 19852015-01-07 Ed Schonberg <schonberg@adacore.com> 1986 1987 * exp_util.adb (Make_CW_Equivalent_Type): If root type is a 1988 limited view, use non-limited view when available to create 1989 equivalent record type. 1990 19912015-01-07 Vincent Celier <celier@adacore.com> 1992 1993 * gnatcmd.adb: Remove command Sync and any data and processing 1994 related to this command. Remove project processing for gnatstack. 1995 * prj-attr.adb: Remove package Synchonize and its attributes. 1996 19972015-01-07 Vincent Celier <celier@adacore.com> 1998 1999 * clean.adb: Minor error message change. 2000 20012015-01-07 Tristan Gingold <gingold@adacore.com> 2002 2003 PR ada/64349 2004 * env.c (__gnat_environ): Adjust for darwin9/darwin10. 2005 20062015-01-07 Javier Miranda <miranda@adacore.com> 2007 2008 * sem_ch10.adb (Analyze_With_Clause): Compiling under -gnatq 2009 protect the frontend against never ending recursion caused by 2010 circularities in the sources. 2011 20122015-01-07 Robert Dewar <dewar@adacore.com> 2013 2014 * a-reatim.adb, make.adb, exp_pakd.adb, i-cpoint.adb, sem_ch8.adb, 2015 exp_ch3.adb: Minor reformatting. 2016 20172015-01-07 Doug Rupp <rupp@adacore.com> 2018 2019 * s-linux.ads (clockid_t): New subtype. 2020 * s-osinte-linux.ads (pragma Linker Options): Add -lrt. 2021 (clockid_t): New subtype. 2022 (clock_getres): Import system call. 2023 * s-taprop-linux.adb (System.OS_Constants): With and rename. 2024 (RT_Resolution): Remove 2025 hardcoded value and call clock_getres. 2026 * s-linux-sparc.ads, s-linux-mipsel.ads, s-linux-hppa.ads, 2027 s-linux-alpha.ads, s-linux-x32.ads (clockid_t): Add new subtype. 2028 20292015-01-07 Robert Dewar <dewar@adacore.com> 2030 2031 * sem_warn.adb (Check_One_Unit): Guard against context item 2032 with no Entity field. 2033 20342015-01-07 Vincent Celier <celier@adacore.com> 2035 2036 * clean.adb (Gnatclean): Warn that 'gnatclean -P' is obsolete. 2037 * make.adb (Initialize): Warn that 'gnatmake -P' is obsolete. 2038 20392015-01-07 Vincent Celier <celier@adacore.com> 2040 2041 * prj-conf.adb (Parse_Project_And_Apply_Config): Always finalize 2042 errors/warnings in the first parsing of the project files, 2043 to display the warnings when there is no errors. 2044 20452015-01-07 Tristan Gingold <gingold@adacore.com> 2046 2047 * i-cpoint.adb (Copy_Terminated_Array): Nicely handle null target. 2048 20492015-01-07 Doug Rupp <rupp@adacore.com> 2050 2051 * s-taprop-vxworks.adb (Stop_All_Tasks): Pass return 2052 value from Int_Lock as parameter to Int_Unlock. 2053 * s-osinte-vxworks.ads (Int_Unlock): Add parameter. 2054 * s-vxwext.ads (Int_Unlock): Likewise. 2055 * s-vxwext-kernel.adb (intUnlock, Int_Unlock): Likewise. 2056 * s-vxwext-kernel.ads (Int_Unlock): Likewise. 2057 * s-vxwext-rtp.adb (Int_Unlock): Likewise. 2058 * s-vxwext-rtp.ads (Int_Unlock): Likewise. 2059 20602015-01-07 Pierre-Marie de Rodat <derodat@adacore.com> 2061 2062 * exp_pakd.adb: Add a comment in exp_pakd.adb to explain why we 2063 keep ___XP suffixes 2064 20652015-01-07 Tristan Gingold <gingold@adacore.com> 2066 2067 * i-cpoint.adb (Copy_Terminated_Array): Use Copy_Array to 2068 handle overlap. 2069 20702015-01-07 Eric Botcazou <ebotcazou@adacore.com> 2071 2072 * sem_ch3.adb (Analyze_Full_Type_Declaration): Do not 2073 automatically set No_Strict_Aliasing on access types. 2074 * fe.h (No_Strict_Aliasing_CP): Declare. 2075 * gcc-interface/trans.c (gigi): Force flag_strict_aliasing to 0 if 2076 No_Strict_Aliasing_CP is set. 2077 20782015-01-07 Johannes Kanig <kanig@adacore.com> 2079 2080 * sem_ch8.adb (Analyze_Subprogram_Renaming) do 2081 not build function wrapper in gnatprove mode when the package 2082 is externally axiomatized. 2083 20842015-01-07 Jose Ruiz <ruiz@adacore.com> 2085 2086 * a-reatim.adb (Time_Of): Reduce the number of spurious overflows in 2087 intermediate computations when the parameters have different signs. 2088 20892015-01-07 Javier Miranda <miranda@adacore.com> 2090 2091 * exp_ch3.adb (Build_Init_Procedure): For derived types, 2092 improve the code which takes care of identifying and moving to 2093 the beginning of the init-proc the call to the init-proc of the 2094 parent type. 2095 20962015-01-07 Olivier Hainque <hainque@adacore.com> 2097 2098 * gcc-interface/trans.c (gnat_to_gnu, <N_Expression_With_Action>): 2099 Elaborate the expression as part of the same stmt group as the actions. 2100 21012015-01-07 Robert Dewar <dewar@adacore.com> 2102 2103 * sem_ch3.adb: Minor error message change. 2104 21052015-01-07 Ed Schonberg <schonberg@adacore.com> 2106 2107 * sem_prag.adb (Analyze_Pragma, case Preelaborable_Initialization): 2108 Following AI05-028, the pragam applies legally to any composite type. 2109 21102015-01-07 Arnaud Charlet <charlet@adacore.com> 2111 2112 * s-osinte-vxworks.adb, s-osinte-vxworks.ads 2113 (sigwait, sigwaitinfo): Removed, not needed after all on any 2114 VxWorks configurations. 2115 21162015-01-07 Robert Dewar <dewar@adacore.com> 2117 2118 * sem_ch3.adb, freeze.adb, exp_disp.adb: Minor reformatting. 2119 21202015-01-07 Javier Miranda <miranda@adacore.com> 2121 2122 * exp_disp.adb (Expand_Interface_Conversion): Adding missing 2123 generation of accessibility check. 2124 21252015-01-07 Ed Schonberg <schonberg@adacore.com> 2126 2127 * sem_ch3.adb (Derived_Type_Declaration): In the case of an 2128 illegal completion from a class- wide type, set etype of the 2129 derived type properly to prevent cascaded errors. 2130 21312015-01-07 Robert Dewar <dewar@adacore.com> 2132 2133 * prj.ads, i-cpoint.adb, freeze.adb, ghost.adb, prj-err.adb: Minor 2134 reformatting. 2135 21362015-01-07 Robert Dewar <dewar@adacore.com> 2137 2138 * restrict.adb (Check_Restriction_No_Use_Of_Attribute): 2139 New procedure. 2140 (OK_No_Use_Of_Entity_Name): New function. 2141 (Set_Restriction_No_Use_Of_Entity): New procedure. 2142 * restrict.ads (Check_Restriction_No_Use_Of_Attribute): 2143 New procedure. 2144 (OK_No_Use_Of_Entity_Name): New function. 2145 (Set_Restriction_No_Use_Of_Entity): New procedure. 2146 * sem_ch8.adb (Find_Direct_Name): Add check for violation of 2147 No_Use_Of_Entity. 2148 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): 2149 Add processing for new restriction No_Use_Of_Entity. 2150 21512015-01-07 Eric Botcazou <ebotcazou@adacore.com> 2152 2153 * freeze.adb (Freeze_Array_Type): Apply same handling to Is_Atomic 2154 component type as to Has_Atomic_Components type. Remove useless 2155 test on Is_Aliased component type. 2156 21572015-01-07 Hristian Kirtchev <kirtchev@adacore.com> 2158 2159 * alloc.ads Alphabetize several declarations. Add constants 2160 Ignored_Ghost_Units_Initial and Ignored_Ghost_Units_Increment. 2161 * atree.adb Add with and use clauses for Opt. 2162 (Allocate_Initialize_Node): Mark a node as ignored Ghost 2163 if it is created in an ignored Ghost region. 2164 (Ekind_In): New variant. 2165 (Is_Ignored_Ghost_Node): New routine. 2166 (Set_Is_Ignored_Ghost_Node): New routine. 2167 * atree.adb Aplhabetize several subprograms declarations. Flag 2168 Spare0 is now known as Is_Ignored_Ghost_Node. 2169 (Ekind_In): New variant. 2170 (Is_Ignored_Ghost_Node): New routine. 2171 (Set_Is_Ignored_Ghost_Node): New routine. 2172 * einfo.adb: Flag 279 is now known as Contains_Ignored_Ghost_Code. 2173 (Contains_Ignored_Ghost_Code): New routine. 2174 (Set_Contains_Ignored_Ghost_Code): New routine. 2175 (Set_Is_Checked_Ghost_Entity, Set_Is_Ignored_Ghost_Entity): 2176 It is now possible to set this property on an unanalyzed entity. 2177 (Write_Entity_Flags): Output the status of flag 2178 Contains_Ignored_Ghost_Code. 2179 * einfo.ads New attribute Contains_Ignored_Ghost_Code along with 2180 usage in nodes. 2181 (Contains_Ignored_Ghost_Code): New routine 2182 along with pragma Inline. 2183 (Set_Contains_Ignored_Ghost_Code): New routine along with pragma Inline. 2184 * exp_ch3.adb Add with and use clauses for Ghost. 2185 (Freeze_Type): Capture/restore the value of Ghost_Mode on entry/exit. 2186 Set the Ghost_Mode in effect. 2187 (Restore_Globals): New routine. 2188 * exp_ch7.adb (Process_Declarations): Do not process a context 2189 that invoves an ignored Ghost entity. 2190 * exp_dbug.adb (Qualify_All_Entity_Names): Skip an ignored Ghost 2191 construct that has been rewritten as a null statement. 2192 * exp_disp.adb Add with and use clauses for Ghost. 2193 (Make_DT): Capture/restore the value of Ghost_Mode on entry/exit. Set 2194 the Ghost_Mode in effect. 2195 (Restore_Globals): New routine. 2196 * exp_util.adb (Requires_Cleanup_Actions): An ignored Ghost entity 2197 does not require any clean up. Add two missing cases that deal 2198 with block statements. 2199 * freeze.adb Add with and use clauses for Ghost. 2200 (Freeze_Entity): Capture/restore the value of Ghost_Mode on entry/exit. 2201 Set the Ghost_Mode in effect. 2202 (Restore_Globals): New routine. 2203 * frontend.adb Add with and use clauses for Ghost. Remove any 2204 ignored Ghost code from all units that qualify. 2205 * ghost.adb New unit. 2206 * ghost.ads New unit. 2207 * gnat1drv.adb Add with clause for Ghost. Initialize and lock 2208 the table in package Ghost. 2209 * lib.ads: Alphabetize several subprogram declarations. 2210 * lib-xref.adb (Output_References): Do not generate reference 2211 information for ignored Ghost entities. 2212 * opt.ads Add new type Ghost_Mode_Type and new global variable 2213 Ghost_Mode. 2214 * rtsfind.adb (Load_RTU): Provide a clean environment when 2215 loading a runtime unit. 2216 * sem.adb (Analyze): Capture/restore the value of Ghost_Mode on 2217 entry/exit as the node may set a different mode. 2218 (Do_Analyze): 2219 Capture/restore the value of Ghost_Mode on entry/exit as the 2220 unit may be withed from a unit with a different Ghost mode. 2221 * sem_ch3.adb Add with and use clauses for Ghost. 2222 (Analyze_Full_Type_Declaration, Analyze_Incomplete_Type_Decl, 2223 Analyze_Number_Declaration, Analyze_Private_Extension_Declaration, 2224 Analyze_Subtype_Declaration): Set the Ghost_Mode in effect. Mark 2225 the entity as Ghost when there is a Ghost_Mode in effect. 2226 (Array_Type_Declaration): The implicit base type inherits the 2227 "ghostness" from the array type. 2228 (Derive_Subprogram): The 2229 alias inherits the "ghostness" from the parent subprogram. 2230 (Make_Implicit_Base): The implicit base type inherits the 2231 "ghostness" from the parent type. 2232 * sem_ch5.adb Add with and use clauses for Ghost. 2233 (Analyze_Assignment): Set the Ghost_Mode in effect. 2234 * sem_ch6.adb Add with and use clauses for Ghost. 2235 (Analyze_Abstract_Subprogram_Declaration, Analyze_Procedure_Call, 2236 Analyze_Subprogram_Body_Helper, Analyze_Subprogram_Declaration): 2237 Set the Ghost_Mode in effect. Mark the entity as Ghost when 2238 there is a Ghost_Mode in effect. 2239 * sem_ch7.adb Add with and use clauses for Ghost. 2240 (Analyze_Package_Body_Helper, Analyze_Package_Declaration, 2241 Analyze_Private_Type_Declaration): Set the Ghost_Mode in 2242 effect. Mark the entity as Ghost when there is a Ghost_Mode 2243 in effect. 2244 * sem_ch8.adb Add with and use clauses for Ghost. 2245 (Analyze_Exception_Renaming, Analyze_Generic_Renaming, 2246 Analyze_Object_Renaming, Analyze_Package_Renaming, 2247 Analyze_Subprogram_Renaming): Set the Ghost_Mode in effect. Mark 2248 the entity as Ghost when there is a Ghost_Mode in effect. 2249 (Find_Type): Check the Ghost context of a type. 2250 * sem_ch11.adb Add with and use clauses for Ghost. 2251 (Analyze_Exception_Declaration): Set the Ghost_Mode in 2252 effect. Mark the entity as Ghost when there is a Ghost_Mode 2253 in effect. 2254 * sem_ch12.adb Add with and use clauses for Ghost. 2255 (Analyze_Generic_Package_Declaration, 2256 Analyze_Generic_Subprogram_Declaration): Set the Ghost_Mode in effect. 2257 Mark the entity as Ghost when there is a Ghost_Mode in effect. 2258 * sem_prag.adb Add with and use clauses for Ghost. 2259 (Analyze_Pragma): Ghost-related checks are triggered when there 2260 is a Ghost mode in effect. 2261 (Create_Abstract_State): Mark the 2262 entity as Ghost when there is a Ghost_Mode in effect. 2263 * sem_res.adb Add with and use clauses for Ghost. 2264 (Check_Ghost_Context): Removed. 2265 * sem_util.adb (Check_Ghost_Completion): Removed. 2266 (Check_Ghost_Derivation): Removed. 2267 (Incomplete_Or_Partial_View): 2268 Add a guard in case the entity has not been analyzed yet 2269 and does carry a scope. 2270 (Is_Declaration): New routine. 2271 (Is_Ghost_Entity): Removed. 2272 (Is_Ghost_Statement_Or_Pragma): 2273 Removed. 2274 (Is_Subject_To_Ghost): Removed. 2275 (Set_Is_Ghost_Entity): 2276 Removed. 2277 (Within_Ghost_Scope): Removed. 2278 * sem_util.adb (Check_Ghost_Completion): Removed. 2279 (Check_Ghost_Derivation): Removed. 2280 (Is_Declaration): New routine. 2281 (Is_Ghost_Entity): Removed. 2282 (Is_Ghost_Statement_Or_Pragma): Removed. 2283 (Is_Subject_To_Ghost): Removed. 2284 (Set_Is_Ghost_Entity): Removed. 2285 (Within_Ghost_Scope): Removed. 2286 * sinfo.ads Add a section on Ghost mode. 2287 * treepr.adb (Print_Header_Flag): New routine. 2288 (Print_Node_Header): Factor out code. Output flag 2289 Is_Ignored_Ghost_Node. 2290 * gcc-interface/Make-lang.in: Add dependency for unit Ghost. 2291 22922015-01-06 Eric Botcazou <ebotcazou@adacore.com> 2293 2294 * freeze.adb (Freeze_Array_Type) <Complain_CS>: Remove always 2295 true test and unreachable 'else' arm. 2296 22972015-01-06 Vincent Celier <celier@adacore.com> 2298 2299 * prj-conf.adb (Check_Target): Improve error message when 2300 there are mismatched targets between the on in the configuration 2301 project file and the specified one, either in the main project 2302 file or in the --target= switch. 2303 23042015-01-06 Pascal Obry <obry@adacore.com> 2305 2306 * prj-attr.adb, projects.texi, snames.ads-tmpl: Add Mode and 2307 Install_Name attribute definitions. 2308 23092015-01-06 Ed Schonberg <schonberg@adacore.com> 2310 2311 * freeze.adb (Wrap_Imported_Subprogram): Indicate that the 2312 generated Import pragma for the internal imported procedure does 2313 not come from an aspect, so that Is_Imported can be properly 2314 set for it. 2315 23162015-01-06 Gary Dismukes <dismukes@adacore.com> 2317 2318 * sem_ch12.adb (Might_Inline_Subp): Record whether 2319 any subprograms in the generic package are marked with 2320 pragma Inline_Always (setting flag Has_Inline_Always). 2321 (Analyze_Package_Instantiation): Add test of Has_Inline_Always 2322 alongside existing test of Front_End_Inlining as alternative 2323 conditions for setting Inline_Now. Also add test of 2324 Has_Inline_Always along with Front_End_Inlining test as an 2325 alternative condition for setting Needs_Body to False. 2326 23272015-01-06 Tristan Gingold <gingold@adacore.com> 2328 2329 * i-cpoint.adb (Copy_Array): Handle overlap. 2330 23312015-01-06 Pascal Obry <obry@adacore.com> 2332 2333 * bindgen.adb: Minor style fix. 2334 23352015-01-06 Robert Dewar <dewar@adacore.com> 2336 2337 * sem_util.ads, sem_util.adb: Minor reformatting. 2338 23392015-01-06 Vincent Celier <celier@adacore.com> 2340 2341 * prj-conf.adb (Parse_Project_And_Apply_Config): Reset incomplete 2342 with flags before parsing the projects. 2343 * prj-err.adb (Error_Msg): Do nothing if there are incomplete withs. 2344 * prj-part.adb (Post_Parse_Context_Clause): Set Incomplete_Withs 2345 to True in the flags, when Ignore_Missing_With is True and an 2346 imported project cannot be found. 2347 * prj-proc.adb (Expression): When there are incomplete withs and 2348 a variable or attribute is not found, set the variable/attribute 2349 to unknown. 2350 * prj.ads (Processing_Flags): New flag Incomplete_Withs, 2351 defaulted to False. 2352 23532015-01-06 Vasiliy Fofanov <fofanov@adacore.com> 2354 2355 * prj-proc.adb, prj-part.adb, prj.adb, prj.ads, prj-conf.adb, 2356 prj-err.adb: Add new switch --no-command-line. 2357 23582015-01-06 Ed Schonberg <schonberg@adacore.com> 2359 2360 * sem_ch12.adb: Sloc of wrapper is that of instantiation. 2361 23622015-01-06 Robert Dewar <dewar@adacore.com> 2363 2364 * sem_ch11.adb: Minor reformatting. 2365 23662015-01-06 Ed Schonberg <schonberg@adacore.com> 2367 2368 * exp_aggr.adb (Get_Assoc_Expr): New routine internal to 2369 Build_Array_Aggr_Code, used to initialized components covered 2370 by a box association. If the component type is scalar and has 2371 a default aspect, use it to initialize such components. 2372 23732015-01-06 Pascal Obry <obry@adacore.com> 2374 2375 * rtinit.c (__gnat_runtime_initialize): Add a parameter to 2376 control the setup of the exception handler. 2377 * initialize.c: Remove unused declaration. 2378 * bindgen.adb: Always call __gnat_runtime_initialize and pass 2379 whether the exeception handler must be set or not. 2380 23812015-01-06 Thomas Quinot <quinot@adacore.com> 2382 2383 * freeze.adb (Set_SSO_From_Defaults): When setting scalar storage 2384 order to native from default, make sure to also adjust bit order. 2385 * exp_aggr.adb: Minor reformatting. 2386 23872015-01-06 Robert Dewar <dewar@adacore.com> 2388 2389 * s-valllu.adb, s-valllu.ads, s-valuti.ads, s-valuns.adb, s-valuns.ads, 2390 s-valrea.adb, s-valrea.ads: Add some additional guards for 2391 Str'Last = Positive'Last. 2392 23932015-01-06 Ed Schonberg <schonberg@adacore.com> 2394 2395 * sem_ch12.adb, sem_ch8.adb: Ongoing work for wrappers for actual 2396 subprograms. 2397 23982015-01-06 Javier Miranda <miranda@adacore.com> 2399 2400 * exp_disp.adb (Expand_Interface_Conversion): Reapply patch. 2401 24022015-01-06 Thomas Quinot <quinot@adacore.com> 2403 2404 * sem_util.ads: Minor reformatting. 2405 * sem_cat.adb (In_RCI_Visible_Declarations): Change back to... 2406 (In_RCI_Declaration) Return to old name, as proper checking of 2407 entity being in the visible part depends on entity kind and must 2408 be done by the caller. 2409 24102015-01-06 Ed Schonberg <schonberg@adacore.com> 2411 2412 * sem_ch12.adb, sem_ch12.ads, sem_ch8.adb: Ongoing work for wrappers 2413 for operators in SPARK. 2414 24152015-01-06 Ed Schonberg <schonberg@adacore.com> 2416 2417 * sem_aggr.adb (Get_Value): In ASIS mode, preanalyze the 2418 expression in an others association before making copies for 2419 separate resolution and accessibility checks. This ensures that 2420 the type of the expression is available to ASIS in all cases, 2421 in particular if the expression is itself an aggregate. 2422 24232015-01-06 Eric Botcazou <ebotcazou@adacore.com> 2424 2425 * einfo.ads (Has_Independent_Components): Document extended 2426 usage. 2427 * einfo.adb (Has_Independent_Components): Remove obsolete assertion. 2428 (Set_Has_Independent_Components): Adjust assertion. 2429 * sem_prag.adb (Analyze_Pragma): Also set Has_Independent_Components 2430 for pragma Atomic_Components. Set Has_Independent_Components 2431 on the object instead of the type for an object declaration with 2432 pragma Independent_Components. 2433 24342015-01-06 Olivier Hainque <hainque@adacore.com> 2435 2436 * set_targ.adb (Read_Target_Dependent_Values): Set 2437 Long_Double_Index when "long double" is read. 2438 (elaboration code): Register_Back_End_Types only when not reading from 2439 config files. Doing otherwise is pointless and error prone. 2440 24412015-01-06 Robert Dewar <dewar@adacore.com> 2442 2443 * s-valrea.adb (Value_Real): Check for Str'Last = Positive'Last 2444 24452015-01-06 Robert Dewar <dewar@adacore.com> 2446 2447 * a-wtgeau.adb, a-ztgeau.adb, a-tigeau.adb (String_Skip): Raise PE if 2448 Str'Last = Positive'Last. 2449 24502015-01-06 Ed Schonberg <schonberg@adacore.com> 2451 2452 * sem_ch6.adb (Matches_Limited_View): Handle properly the case 2453 where the non-limited type is a generic actual and appears as 2454 a subtype of the non-limited view of the other. 2455 * freeze.adb (Build_Renamed_Body): If the return type of the 2456 declaration that is being completed is a limited view and the 2457 non-limited view is available, use it in the specification of 2458 the generated body. 2459 24602015-01-06 Ed Schonberg <schonberg@adacore.com> 2461 2462 * sem_ch3.adb (Find_Type_Name): If there is a previous tagged 2463 incomplete view, the type of the classwide type common to both 2464 views is the type being declared. 2465 24662015-01-06 Eric Botcazou <ebotcazou@adacore.com> 2467 2468 * einfo.ads (Is_Independent): Further document extended usage. 2469 24702015-01-06 Eric Botcazou <ebotcazou@adacore.com> 2471 2472 * einfo.ads (Is_Independent): Document extended usage. 2473 * einfo.adb (Is_Independent): Remove obsolete assertion. 2474 (Set_Is_Independent): Likewise. 2475 * sem_prag.adb (Process_Atomic_Shared_Volatile): Rename into... 2476 (Process_Atomic_Independent_Shared_Volatile): ...this. 2477 Deal with pragma Independent here. 2478 (Analyze_Pragma): Adjust 2479 to above renaming and also invoke it for pragma Independent. 2480 Adjust comment for Independent_Components. 2481 24822015-01-06 Robert Dewar <dewar@adacore.com> 2483 2484 * snames.ads-tmpl: Remove entries for attribute Enum_Image. 2485 * exp_attr.adb: Remove reference to Attribute_Enum_Image. 2486 24872015-01-06 Robert Dewar <dewar@adacore.com> 2488 2489 * s-vallli.adb (Value_Long_Long_Integer): Handle case of Str'Last 2490 = Positive'Last. 2491 * s-valllu.adb (Value_Long_Long_Unsigned): Handle case of 2492 Str'Last = Positive'Last. 2493 24942015-01-06 Robert Dewar <dewar@adacore.com> 2495 2496 * sem_prag.adb (Process_Inline): Remove redundant construct 2497 warning (-gnatw.r) for an ineffective pragma Inline. 2498 24992015-01-06 Robert Dewar <dewar@adacore.com> 2500 2501 * s-valint.adb: Fix typo in last checkin. 2502 * s-valuns.adb (Value_Unsigned): More efficient fix for 2503 Positive'Last case. 2504 * sem_attr.adb (Analyze_Attribute): Minor reformatting 2505 (Eval_Attribute): Static ervaluation of 'Img for enumeration types. 2506 25072015-01-06 Robert Dewar <dewar@adacore.com> 2508 2509 * s-valint.adb, s-valuns.adb (Value_Integer): Deal with case where 2510 Str'Last = Positive'Last 2511 25122015-01-06 Thomas Quinot <quinot@adacore.com> 2513 2514 * xoscons.adb: Display exception information and return non-zero 2515 exit status in top level exception handler. 2516 25172015-01-06 Ed Schonberg <schonberg@adacore.com> 2518 2519 * sem_ch8.adb: Code clean up. 2520 25212015-01-06 Tristan Gingold <gingold@adacore.com> 2522 2523 * targparm.ads: Remove obsolete comment. 2524 25252015-01-06 Olivier Hainque <hainque@adacore.com> 2526 2527 * gcc-interface/decl.c (gnat_to_gnu_entity, case E_Variable): When 2528 constructing a ref to variable, update inner_const_flag from the 2529 variable TREE_READONLY attribute. 2530 * gcc-interface/targtyps.c (WIDEST_HARDWARE_FP_SIZE): Remove default 2531 definition. 2532 (get_target_float_size): Remove. 2533 (get_target_double_size): Remove. 2534 (get_target_long_double_size): Remove. 2535 25362015-01-06 Pascal Obry <obry@adacore.com> 2537 2538 * adaint.c (ProcListEvt): Set to NULL. 2539 * rtinit.c: New file. 2540 (__gnat_rt_init_count): New reference counter set to 0. 2541 (__gnat_runtime_initialize): Move code here from __gnat_initialize when 2542 this code is actually needed for the runtime initialization. This 2543 routine returns immediately if the initialization has already been done. 2544 * final.c: Revert previous change. 2545 * rtfinal.c: New file. 2546 (__gnat_runtime_finalize)[Win32]: Add finalization of the critical 2547 section and event. The default version of this routine is empty (except 2548 for the reference counting code). This routine returns immediately if 2549 some others libraries are referencing the runtime. 2550 * bindgen.adb (Gen_Adainit): Generate call to Runtime_Initialize 2551 remove circuitry to initialize the signal handler as this is 2552 now done by the runtime initialization routine. 2553 (Gen_Adafinal): Generate call to Runtime_Finalize. 2554 * gnat_ugn.texi: Update documentation about concurrency and 2555 initialization/finalization of the run-time. 2556 * gcc-interface/Makefile.in, gcc-interface/Make-lang.in: Add 2557 references to rtfinal.o and rtinit.o 2558 25592015-01-06 Robert Dewar <dewar@adacore.com> 2560 2561 * exp_attr.adb (Expand_N_Attribute_Reference): Add dummy entry 2562 for Enum_Image. 2563 * sem_attr.adb: Implement Enum_Image attribute. 2564 * snames.ads-tmpl: Add entries for Enum_Image attribute. 2565 25662015-01-06 Robert Dewar <dewar@adacore.com> 2567 2568 * namet.ads: Document use of Boolean2 for No_Use_Of_Entity. 2569 * restrict.ads (No_Use_Of_Entity): New table. 2570 * sem_prag.adb (Process_Restrictions_Or_Restriction_Warnings): 2571 Ignore No_Use_Of_Entity (will be processed in parser). 2572 * snames.ads-tmpl: Add entry for Name_No_Use_Of_Entity. 2573 25742015-01-06 Vincent Celier <celier@adacore.com> 2575 2576 * prj-tree.adb (Imported_Or_Extended_Project_Of): Do not try 2577 to check for an extended project, if a project does not have 2578 yet a project declaration. 2579 25802015-01-06 Pierre-Marie Derodat <derodat@adacore.com> 2581 2582 * scos.ads: Update documentation about the SCO table build 2583 process and about table records format. 2584 * par_sco.ads (SCO_Record): Rename to SCO_Record_Raw. 2585 (SCO_Record_Filtered): New procedure. 2586 (Set_SCO_Logical_Operator): New procedure. 2587 (dsco): Update documentation. 2588 * par_sco.adb: Update library-level comments. 2589 (SCO_Generation_State_Type): New type. 2590 (SCO_Generation_State): New variable. 2591 (SCO_Raw_Table): New package instanciation. 2592 (Condition_Pragma_Hash_Table): Rename to SCO_Raw_Hash_Table. 2593 ("<"): New. 2594 (Tristate): New type. 2595 (Is_Logical_Operator): Return Tristate and update documentation. 2596 (Has_Decision): Update call to Is_Logical_Operator and complete 2597 documentation. 2598 (Set_Table_Entry): Rename to Set_Raw_Table_Entry, update 2599 comment, add an assertion for state checking and change 2600 references to SCO_Table into SCO_Raw_Table. 2601 (dsco): Refactor to dump the raw and the filtered tables. 2602 (Process_Decisions.Output_Decision_Operand): Handle putative 2603 short-circuit operators. 2604 (Process_Decisions.Output_Element): Update references 2605 to Set_Table_Entry and to Condition_Pragma_Hash_Table. 2606 (Process_Decisions.Process_Decision_Operand): Update call 2607 to Is_Logical_Operator. 2608 (Process_Decisions.Process_Node): Handle putative short-circuit 2609 operators and change references to 2610 SCO_Table into SCO_Raw_Table. 2611 (SCO_Output): Add an assertion 2612 for state checking and remove code that used to stamp out SCO entries. 2613 (SCO_Pragma_Disabled): Change reference to SCO_Table 2614 into SCO_Raw_Table. 2615 (SCO_Record): Rename to SCO_Record_Raw, 2616 add an assertion for state checking and change references 2617 to SCO_Table into SCO_Raw_Table. 2618 (Set_SCO_Condition): Add an assertion for state checking, update 2619 references to Condition_Pragma_Hash_Table and change references to 2620 SCO_Table into SCO_Raw_Table. 2621 (Set_SCO_Pragma_Enabled): Add an assertion for state checking and 2622 change references to SCO_Table into SCO_Raw_Table. 2623 (Set_SCO_Logical_Operator): New procedure. 2624 (Traverse_Declarations_Or_Statements.Set_Statement_Entry): Update 2625 references to Set_Table_Entry and to Condition_Pragma_Hash_Table. 2626 (SCO_Record_Fildered): New procedure. 2627 * gnat1drv.adb (Gnat1drv): Invoke the SCO filtering pass. 2628 * lib-writ.adb (Write_ALI): Invoke the SCO filtering pass and 2629 output SCOs. 2630 * par-load.adb (Load): Update reference to SCO_Record. 2631 * par.adb (Par): Update reference to SCO_Record. 2632 * put_scos.adb (Put_SCOs): Add an assertion to check that no 2633 putative SCO condition reaches this end. 2634 * sem_ch10.adb (Analyze_Proper_Body): Update reference to SCO_Record. 2635 * sem_res.adb (Resolve_Logical_Op): Validate putative SCOs 2636 when corresponding to an "and"/"or" operator affected by the 2637 Short_Circuit_And_Or pragma. 2638 26392015-01-06 Robert Dewar <dewar@adacore.com> 2640 2641 * sem_ch8.adb (Analyze_Use_Package): Give more specific error 2642 msg for attempted USE of generic subprogram or subprogram. 2643 26442015-01-06 Robert Dewar <dewar@adacore.com> 2645 2646 * s-valllu.adb, a-tiinau.adb, a-timoau.adb, a-ztinau.adb, a-ztmoau.adb, 2647 s-valuns.adb, s-valrea.adb, a-wtflau.adb, a-tiflau.adb, a-ztflau.adb, 2648 a-wtinau.adb, a-wtmoau.adb: Document recognition of : in place of #. 2649 26502015-01-06 Ed Schonberg <schonberg@adacore.com> 2651 2652 * sem_ch13.adb (Analyze_Aspect_Specifications): For aspects 2653 that specify stream subprograms, if the prefix is a class-wide 2654 type then the generated attribute definition clause must apply 2655 to the same class-wide type. 2656 (Default_Iterator): An iterator defined by an aspect of some 2657 container type T must have a first parameter of type T, T'class, 2658 or an access to such (from code reading RM 5.5.1 (2/3)). 2659 26602015-01-06 Arnaud Charlet <charlet@adacore.com> 2661 2662 * gnat1drv.adb: Minor: complete previous change. 2663 26642015-01-06 Olivier Hainque <hainque@adacore.com> 2665 2666 * set_targ.ads (C_Type_For): New function. Return the name of 2667 a C type supported by the back-end and suitable as a basis to 2668 construct the standard Ada floating point type identified by 2669 the T parameter. This is used as a common ground to feed both 2670 ttypes values and the GNAT tree nodes for the standard floating 2671 point types. 2672 * set_targ.adb (Long_Double_Index): The index at which "long 2673 double" gets registered in the FPT_Mode_Table. This is useful to 2674 know whether we have a "long double" available at all and get at 2675 it's characteristics without having to search the FPT_Mode_Table 2676 when we need to decide which C type should be used as the 2677 basis for Long_Long_Float in Ada. 2678 (Register_Float_Type): Fill Long_Double_Index. 2679 (FPT_Mode_Index_For): New function. Return the index in 2680 FPT_Mode_Table that designates the entry corresponding to the 2681 provided C type name. 2682 (FPT_Mode_Index_For): New function. Return the index in 2683 FPT_Mode_Table that designates the entry for a back-end type 2684 suitable as a basis to construct the standard Ada floating point 2685 type identified by the input T parameter. 2686 (elaboration code): Register_Back_End_Types unconditionally, 2687 so C_Type_For can operate regardless of -gnateT. Do it 2688 early so we can query it for the floating point sizes, via 2689 FPT_Mode_Index_For. Initialize Float_Size, Double_Size and 2690 Long_Double_Size from the FPT_Mode_Table, as cstand will do. 2691 * cstand.adb (Create_Float_Types): Use C_Type_For to determine 2692 which C type should be used as the basis for the construction 2693 of the Standard Ada floating point types. 2694 * get_targ.ads (Get_Float_Size, Get_Double_Size, 2695 Get_Long_Double_Size): Remove. 2696 * get_targ.adb: Likewise. 2697 26982015-01-06 Thomas Quinot <quinot@adacore.com> 2699 2700 * sem_cat.adb (In_RCI_Declaration): Remove unnecessary 2701 parameter and rename to... 2702 (In_RCI_Visible_Declarations): Fix handling of private part of nested 2703 package. 2704 (Validate_RCI_Subprogram_Declaration): Reject illegal function 2705 returning anonymous access in RCI unit. 2706 27072015-01-06 Ed Schonberg <schonberg@adacore.com> 2708 2709 * sem_ch6.adb (New_Overloaded_Entity): In GNATprove mode, a 2710 function wrapper may be a homonym of another local declaration. 2711 * sem_ch8.adb (Analyze_Subprogram_Renaming): In GNATprove mode, 2712 build function and operator wrappers after the actual subprogram 2713 has been resolved, and replace the standard renaming declaration 2714 with the declaration of wrapper. 2715 * sem_ch12.ads (Build_Function_Wrapper, Build_Operator_Wraooer): 2716 make public for use elsewhere. 2717 * sem_ch12.adb (Build_Function_Wrapper, Build_Operator_Wraooer): 2718 rewrite, now that actual is fully resolved when wrapper is 2719 constructed. 2720 27212015-01-06 Javier Miranda <miranda@adacore.com> 2722 2723 * exp_disp.adb: Revert previous change. 2724 27252015-01-06 Robert Dewar <dewar@adacore.com> 2726 2727 * exp_util.adb: Change name Name_Table_Boolean to 2728 Name_Table_Boolean1. 2729 * namet.adb: Change name Name_Table_Boolean to Name_Table_Boolean1 2730 Introduce Name_Table_Boolean2/3. 2731 * namet.ads: Change name Name_Table_Boolean to Name_Table_Boolean1 2732 Introduce Name_Table_Boolean2/3. 2733 * par-ch13.adb: Change name Name_Table_Boolean to 2734 Name_Table_Boolean1. 2735 27362015-01-06 Bob Duff <duff@adacore.com> 2737 2738 * gnat_rm.texi: Improve documentation regarding No_Task_Termination. 2739 27402015-01-06 Ed Schonberg <schonberg@adacore.com> 2741 2742 * sem_aggr.adb (Resolve_Record_Aggregte, Get_Value): For an 2743 others choice that covers multiple components, analyze each 2744 copy with the type of the component even in compile-only mode, 2745 to detect potential accessibility errors. 2746 27472015-01-06 Hristian Kirtchev <kirtchev@adacore.com> 2748 2749 * sem_res.adb (Is_Assignment_Or_Object_Expression): New routine. 2750 (Resolve_Actuals): An effectively volatile out 2751 parameter cannot act as an in or in out actual in a call. 2752 (Resolve_Entity_Name): An effectively volatile out parameter 2753 cannot be read. 2754 27552015-01-06 Ed Schonberg <schonberg@adacore.com> 2756 2757 * sem_ch6.adb (Analyze_Subprogram_Body_Helper): If the body is 2758 the expansion of an expression function it may be pre-analyzed 2759 if a 'access attribute is applied to the function, in which case 2760 last_entity may have been assigned already. 2761 27622015-01-06 Ed Schonberg <schonberg@adacore.com> 2763 2764 * sem_ch4.adb (Analyze_One_Call): If formal has an incomplete 2765 type and actual has the corresponding full view, there is no 2766 error, but a case of use of incomplete type in a predicate or 2767 invariant expression. 2768 27692015-01-06 Vincent Celier <celier@adacore.com> 2770 2771 * makeutl.adb (Insert_No_Roots): Make sure that the same source 2772 in two different project tree is checked in both trees, if they 2773 are sources of two different projects, extended or not. 2774 27752015-01-06 Arnaud Charlet <charlet@adacore.com> 2776 2777 * gnat1drv.adb: Minor code clean up. 2778 (Adjust_Global_Switches): Ignore gnatprove_mode in codepeer_mode. 2779 27802015-01-06 Bob Duff <duff@adacore.com> 2781 2782 * osint.adb (Read_Source_File): Don't print out 2783 file name unless T = Source. 2784 27852015-01-06 Ed Schonberg <schonberg@adacore.com> 2786 2787 * sem_util.adb (Is_Variable, Is_OK_Variable_For_Out_Formal): 2788 recognize improper uses of constant_reference types as actuals 2789 for in-out parameters. 2790 (Check_Function_Call): Do not collect identifiers if function 2791 name is missing because of previous error. 2792 27932015-01-06 Robert Dewar <dewar@adacore.com> 2794 2795 * ali-util.adb, sem_prag.adb, rtsfind.adb, sem_util.adb, sem_res.adb, 2796 ali.adb, binde.adb, namet.adb, namet.ads, gnatls.adb, bcheck.adb: 2797 Minor change of name Name_Table_Info => Name_Table_Int. 2798 27992015-01-06 Robert Dewar <dewar@adacore.com> 2800 2801 * exp_strm.adb (Build_Elementary_Input_Call): Clarify comments 2802 in previous checkin. 2803 * freeze.adb (Freeze_Fixed_Point_Type): Add warning for shaving 2804 of bounds. 2805 * sem_prag.adb, sem_ch10.adb, sem_ch6.adb: Minor reformatting. 2806 28072015-01-06 Vincent Celier <celier@adacore.com> 2808 2809 * a-strsup.adb (Times (Natural;String;Positive)): Raise 2810 Length_Error, not Index_Error, when the result is too long. 2811 28122015-01-06 Thomas Quinot <quinot@adacore.com> 2813 2814 * a-direct.adb (Create_Path): Minor error handling and 2815 performance improvement. 2816 28172015-01-06 Robert Dewar <dewar@adacore.com> 2818 2819 * checks.ads, sem_ch12.adb: Minor reformatting. 2820 * exp_ch4.adb (Expand_N_Op_Divide): Generate explicit divide by 2821 zero check for fixed-point case if Backend_Divide_Checks_On_Target 2822 is False. 2823 28242015-01-06 Robert Dewar <dewar@adacore.com> 2825 2826 * sem_prag.adb (Analyze_Pragma, case No_Elaboration_Code_All): 2827 Do not set restriction No_Elaboration_Code unless the pragma 2828 appears in the main unit). 2829 28302015-01-06 Ed Schonberg <schonberg@adacore.com> 2831 2832 * sem_ch10.adb (Is_Regular_With_Clause): Add guard to verify 2833 that with clause has already been analyzed before checking kind 2834 of with_clause. 2835 28362015-01-06 Robert Dewar <dewar@adacore.com> 2837 2838 * exp_strm.adb (Build_Elementary_Input_Call): Return base type 2839 (as required by RM). 2840 28412015-01-06 Arnaud Charlet <charlet@adacore.com> 2842 2843 * a-reatim.adb ("/"): Add explicit pragma Unsuppress (Division_Check). 2844 28452015-01-06 Robert Dewar <dewar@adacore.com> 2846 2847 * sem_prag.adb (Process_Suppress_Unsuppress): Add extra warning 2848 for ignoring pragma Suppress (Elaboration_Check) in SPARK mode. 2849 28502015-01-06 Javier Miranda <miranda@adacore.com> 2851 2852 * exp_disp.adb (Expand_Interface_Conversion): No displacement 2853 of the pointer to the object needed when the type of the operand 2854 is not an interface type and the interface is one of its parent 2855 types (since they share the primary dispatch table). 2856 28572015-01-06 Vincent Celier <celier@adacore.com> 2858 2859 * prj-env.adb: Minor comment update. 2860 28612015-01-06 Javier Miranda <miranda@adacore.com> 2862 2863 * sem_res.adb (Valid_Conversion): Restrict the checks on anonymous 2864 access types whose target type is an interface type to operands 2865 that are access types; required to report an error when the 2866 operand is not an access type. 2867 28682015-01-06 Bob Duff <duff@adacore.com> 2869 2870 * a-cfinve.adb (Copy): Set the discriminant to the Length when 2871 Capacity = 0. 2872 * a-cofove.ads (Capacity): Add a postcondition. 2873 * a-cfinve.ads (Capacity): Add a postcondition. 2874 (Reserve_Capacity): Correct the postcondition in the case where 2875 Capacity = 0; that means "Capacity => Length (Container)". 2876 * a-cofove.adb (Elems[c]): Add a comment 2877 explaining the dangers and how to avoid them. 2878 28792015-01-06 Ed Schonberg <schonberg@adacore.com> 2880 2881 * sem_ch12.adb: Code clean up. 2882 28832015-01-06 Arnaud Charlet <charlet@adacore.com> 2884 2885 * gnatvsn.ads: Bump copyright year. 2886 28872015-01-06 Robert Dewar <dewar@adacore.com> 2888 2889 * s-taskin.ads, s-traces.ads: Minor reformatting. 2890 * exp_util.adb: Minor typo fix. 2891 28922015-01-06 Vincent Celier <celier@adacore.com> 2893 2894 * gnatls.adb (Search_RTS): Invoke Initialize_Default_Project_Path 2895 with the runtime name. 2896 * prj-env.adb (Initialize_Default_Project_Path): When both 2897 Target_Name and Runtime_Name are not empty string, add to the 2898 project path the two directories .../lib/gnat and .../share/gpr 2899 related to the runtime. 2900 * prj-env.ads (Initialize_Default_Project_Path): New String 2901 parameter Runtime_Name, defaulted to the empty string. 2902 29032015-01-06 Hristian Kirtchev <kirtchev@adacore.com> 2904 2905 * frontend.adb: Guard against the case where a configuration 2906 pragma may be split into multiple pragmas and the original 2907 rewritten as a null statement. 2908 * sem_prag.adb (Analyze_Pragma): Insert a brand new Check_Policy 2909 pragma using Insert_Before rather than Insert_Action. This 2910 takes care of the configuration pragma case where Insert_Action 2911 would fail. 2912 29132015-01-06 Bob Duff <duff@adacore.com> 2914 2915 * a-coboho.ads (Element_Access): Add "pragma 2916 No_Strict_Aliasing (Element_Access);". This is needed because 2917 we are unchecked-converting from Address to Element_Access. 2918 * a-cofove.ads, a-cofove.adb (Elems,Elemsc): Fix bounds of the 2919 result to be 1. 2920 29212015-01-06 Hristian Kirtchev <kirtchev@adacore.com> 2922 2923 * sem_res.adb (Resolve_Actuals): Remove the 2924 restriction which prohibits volatile actual parameters with 2925 enabled external propery Async_Writers to act appear in procedure 2926 calls where the corresponding formal is of mode OUT. 2927 29282015-01-05 Jakub Jelinek <jakub@redhat.com> 2929 2930 * gnat_ugn.texi: Bump @copying's copyright year. 2931 29322015-01-05 Eric Botcazou <ebotcazou@adacore.com> 2933 2934 PR ada/64492 2935 * gcc-interface/Makefile.in (../stamp-tools): Reinstate dropped code. 2936 29372015-01-04 Uros Bizjak <ubizjak@gmail.com> 2938 2939 * gcc-interface/misc.c (internal_error_function): Use xasprintf instead 2940 of unchecked asprintf. 2941 2942 2943Copyright (C) 2015 Free Software Foundation, Inc. 2944 2945Copying and distribution of this file, with or without modification, 2946are permitted in any medium without royalty provided the copyright 2947notice and this notice are preserved. 2948