12005-12-28 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2 3 * s-osinte-linux-hppa.ads: Correct alignment of atomic_lock_t. 4 52005-12-12 Arnaud Charlet <charlet@adacore.com> 6 7 * Makefile.in: Remove dummy setting of GCC_FOR_TARGET, no longer 8 needed. 9 102005-12-12 Arnaud Charlet <charlet@adacore.com> 11 12 * Make-lang.in: Update dependencies 13 142005-12-12 Arnaud Charlet <charlet@adacore.com> 15 16 * Make-lang.in: Add rule for ada/exp_sel.o 17 182005-12-12 Arnaud Charlet <charlet@adacore.com> 19 20 * Makefile.in (mingw section): Remove EH_MECHANISM setting. 21 222005-12-09 Arnaud Charlet <charlet@adacore.com> 23 24 * gnatvsn.ads (Library_Version): Bump to version 4.2 25 (ASIS_Version_Number): Bumped. 26 272005-12-09 Doug Rupp <rupp@adacore.com> 28 29 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb (Is_Interface): Change 30 Ada bind file prefix on VMS from b$ to b__. 31 (Build_Dynamic_Library): Change Init file suffix on VMS from $init to 32 __init. 33 34 * prj-nmsc.adb: Change some Hostparm.OpenVMS checks to 35 Targparm.OpenVMS_On_Target. 36 (Object_Suffix): Initialize with target object suffix. 37 (Get_Unit): Change Ada bind file prefix on VMS from b$ to b__. 38 39 * butil.adb: Change some Hostparm.OpenVMS checks to 40 Targparm.OpenVMS_On_Target. 41 42 * clean.adb: Change some Hostparm.OpenVMS checks to 43 Targparm.OpenVMS_On_Target. 44 (Object_Suffix): Initialize with call to Get_Target_Object_Suffix. 45 ({declaraction},Delete_Binder_Generated_Files,{initialization}): Change 46 Ada bind file prefix on VMS from b$ to b__. 47 48 * gnatlink.adb (Process_Args): Call Add_Src_Search_Dir for -I in 49 --GCC so that Get_Target_Parameters can find system.ads. 50 (Gnatlink): Call Get_Target_Parameters in mainline. 51 Initialize standard packages for Targparm. 52 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. 53 (Process_Args): Also Check for object files with target object 54 extension. 55 (Make_Binder_File_Names): Create with target object extension. 56 (Make_Binder_File_Names): Change Ada bind file prefix on VMS from b$ 57 to b__. 58 59 * mlib-prj.adb: Change some Hostparm.OpenVMS checks to 60 Targparm.OpenVMS_On_Target. 61 ({declaration},Build_Library,Check_Library): Change Ada bind file 62 prefix on VMS from b$ to b__. 63 64 * osint-b.adb: Change some Hostparm.OpenVMS checks to 65 Targparm.OpenVMS_On_Target. 66 (Create_Binder_Output): Change Ada bind file prefix on VMS from b$ to 67 b__. 68 69 * targext.c: New file. 70 71 * Makefile.in: add support for vxworks653 builds 72 (../../vxaddr2line): gnatlink with targext.o. 73 (TOOLS_LIBS): Move targext.o to precede libgnat. 74 (init.o, initialize.o): Minor clean up in dependencies. 75 (GNATLINK_OBJS): Add targparm.o, snames.o 76 Add rules fo building targext.o and linking it explicitly with all 77 tools. 78 Also add targext.o to gnatlib. 79 80 * Make-lang.in: Add rules for building targext.o and linking it in 81 with gnat1 and gnatbind. 82 Add entry for exp_sel.o. 83 84 * osint.adb Change some Hostparm.OpenVMS checks to 85 Targparm.OpenVMS_On_Target. 86 (Object_File_Name): Use target object suffix. 87 88 * osint.ads (Object_Suffix): Remove, no longer used. 89 (Target_Object_Suffix): Initialize with target object suffix. 90 91 * rident.ads: Add special exception to license. 92 93 * targparm.adb (Get_Target_Parameters): Set the value of 94 Multi_Unit_Index_Character after OpenVMS_On_Target gets its definitive 95 value. 96 (Get_Target_Parameters): Set OpenVMS_On_Target if openvms. 97 98 * targparm.ads: Add special exception to license. 99 100 * g-os_lib.ads, g-os_lib.adb (Get_Target_Debuggable_Suffix): New 101 function. 102 (Copy_File): Make sure from file is closed if error on to file 103 (Get_Target_Executable_Suffix, Get_Target_Object_Suffix): New functions. 104 105 * make.adb (Object_Suffix): Intialize with Get_Target_Object_Suffix. 106 (Executable_Suffix): Intialize with Get_Target_Executable_Suffix. 107 108 * osint-c.adb (Set_Output_Object_File_Name): Initialize extension with 109 target object suffix. 110 1112005-12-09 Jose Ruiz <ruiz@adacore.com> 112 Quentin Ochem <ochem@adacore.com> 113 Florian Villoing <villoing@adacore.com> 114 115 * a-taster.ads, a-taster.adb: New files. 116 117 * a-elchha.adb (Last_Chance_Handler): Change the task termination soft 118 link to the version that does nothing. This way the task termination 119 routine is not executed twice for the environment task when finishing 120 because of an unhandled exception. 121 122 * a-exextr.adb (Notify_Unhandled_Exception): Call the task termination 123 handler because of an unhandled exception. 124 125 * a-taside.adb (Abort_Tasks): Call the Abort_Tasks procedure from 126 System.Tasking.Utilities instead of that in System.Tasking.Stages. 127 128 * s-finimp.adb (initialization code): Modify the soft link for the 129 finalization of the global list instead of Adafinal. 130 131 * s-soflin.ads, s-soflin.adb (Task_Termination_NT): Add this 132 non-tasking version of the soft link for task termination. We do 133 nothing since if we are using the non-tasking version it 134 means that the task termination functionality is not used. 135 (Null_Finalize_Global_List): Add this null version for the procedure 136 in charge of finalizing the global list for controlled objects. 137 (Null_Adafinal): Remove this procedure. Adafinal_NT has been created 138 instead for handling run-time termination in a more flexible way. 139 (Adafinal_NT): This new procedure will take care of finalizing the 140 global list for controlled objects if needed, but no tasking 141 finalization. 142 143 * s-tarest.adb (Task_Lock): Do not try to lock again the 144 Global_Task_Lock if we already own it. Otherwise, we get blocked in 145 some run-time operations. 146 (Task_Unlock): Do not try to actually unlock the Global_Task_Lock 147 until all nested locks have been released. 148 (Task_Wrapper): Call the fall-back task termination handler. It 149 applies to all tasks but the environment task. 150 (Finalize_Global_Tasks): Add the call for the task termination 151 procedure for the environment task. 152 (Task_Wrapper): suppress warnings around declaration of 153 Secondary_Stack_Address. 154 155 * s-tasini.adb (Final_Task_Unlock): Global_Task_Lock_Nesting has been 156 moved to the Common_ATCB record. 157 (Task_Lock): Global_Task_Lock_Nesting has been moved to the 158 Common_ATCB record. 159 (Task_Unlock): Global_Task_Lock_Nesting has been moved to the 160 Common_ATCB record. 161 162 * s-taskin.adb (Initialize_ATCB): Initialize Global_Task_Lock_Nesting, 163 Fall_Back_Handler, and Specific_Handler. 164 165 * s-taskin.ads (Cause_Of_Termination): Redefine this type here, already 166 defined in Ada.Task_Termination, to avoid circular dependencies. 167 (Termination_Handler): Redefine this type here, alredy defined in 168 Ada.Task_Termination, for avoiding circular dependencies. 169 (Common_ATCB): Add the Fall_Back_Handler and Specific_Handler required 170 for storing task termination handlers. In addition, 171 Global_Task_Lock_Nesting has been moved from Ada_Task_Control_Block to 172 Common_ATCB because it is used by both the regular and the restricted 173 run times. 174 (Ada_Task_Control_Block): Move Global_Task_Lock_Nesting from here to 175 Common_ATCB because it is used by both the regular and the restricted 176 run times. 177 (Common_ATCB): Added a dynamic task analyzer field. 178 179 * s-tassta.adb (Abort_Tasks): Move the code in charge of checking 180 potentially blocking operations to System.Tasking.Utilities.Abort_Tasks. 181 (Task_Wrapper): Call the task termination handler. It applies to all 182 tasks but the environment task. 183 (Finalize_Global_Tasks): Call the task termination procedure for the 184 environment task. The call to Finalize_Global_List is now performed 185 using the soft links mechanism. 186 (Task_Wrapper): added dynamic stack analysis. 187 188 * s-tasuti.adb (Abort_Tasks): The code in charge of checking 189 potentially blocking operations has been moved from 190 System.Tasking.Stages.Abort_Tasks to this procedure. There can be 191 direct calls to System.Tasking.Utilities.Abort_Tasks that do not pass 192 through System.Tasking.Stages.Abort_Tasks, and we do not want to miss 193 this run-time check. 194 195 * s-solita.adb (Task_Termination_Handler_T): Add this task-safe version 196 of task termination procedure. 197 (Init_Tasking_Soft_Links): Install the task-safe version of the soft 198 link for the task termination procedure. 199 200 * bindusg.adb: (Bindusg): Added documentation for -u option. 201 202 * bindgen.adb (Get_Main_Ada) Added handling of dynamic stack analysis. 203 (Get_Main_C): Add handling of dynamic stack analysis. 204 (Gen_Output_File_C): Add external functions for dynamic stack analysis. 205 206 * Makefile.rtl: Add entry for a-taster (Ada.Task_Termination). 207 (GNATRTL_NONTASKING_OBJS) Added entries for dynamic stack analysis 208 (GNATRTL_NONTASKING_OBJS): Add AltiVec files. 209 210 * opt.ads: Added flags used by dynamic stack measurement. 211 (Max_Line_Length): Remove (not used anymore) 212 213 * s-io.ads, s-io.adb (Standard_Error): new subprogram 214 (Standart_Output): new subprogram 215 (Set_Output): new subprogram 216 (Put): now uses the value of Current_Out to know if the output has to be 217 send to stderr or stdout. 218 219 * s-stausa.ads: Complete implementation. 220 221 * switch-b.adb: Added handling of -u switch for dynamic stack analysis. 222 223 * impunit.adb (Non_Imp_File_Names_05): Add Ada.Task_Termination to the 224 list of Ada 05 files. 225 (GNAT Library Units): Add AltiVec files. 226 227 * g-allein.ads, g-alleve.adb, g-alleve.ads, g-altcon.adb, 228 g-altcon.ads, g-altive.ads, g-alveop.adb, g-alveop.ads 229 g-alvety.ads, g-alvevi.ads: New files providing altivec API. 230 2312005-12-09 Nicolas Setton <setton@adacore.com> 232 233 * adaint.c (__gnat_locate_regular_file): Return immediately if 234 file_name is empty. 235 2362005-12-09 Javier Miranda <miranda@adacore.com> 237 Hristian Kirtchev <kirtchev@adacore.com> 238 239 * a-tags.ads, a-tags.adb (Offset_To_Top): Moved from the package body 240 to the specification because the frontend generates code that uses this 241 subprogram. 242 (Set_Interface_Table): Add missing assertion. 243 Update documentation describing the run-time structure. 244 (Displace): New subprogram that displaces the pointer to the object 245 to reference one of its secondary dispatch tables. 246 (IW_Membership): Modified to use the new table of interfaces. 247 (Inherit_TSD): Modified to use the new table of interfaces. 248 (Register_Interface_Tag): Use the additional formal to fill the 249 contents of the new table of interfaces. 250 (Set_Interface_Table): New subprogram that stores in the TSD the 251 pointer to the table of interfaces. 252 (Set_Offset_To_Top): Use the additional formal to save copy of 253 the offset value in the table of interfaces. 254 Update structure of GNAT Primary and Secondary dispatch table diagram. 255 Add comment section on GNAT dispatch table prologue. 256 (Offset_To_Signature): Update the constant value of the Signature field. 257 (Dispatch_Table): Update comment on hidden fields in the prologue. 258 (Get_Entry_Index, Get_Prim_Op_Kind, Get_Offset_Index, OSD, 259 Set_Entry_Index, Set_Offset_Index, Set_Prim_Op_Kind, SSD, TSD): Change 260 the type of formal parameter T to Tag, introduce additional assertions. 261 (Get_Num_Prim_Ops, Set_Num_Prim_Ops): Remove an unnecessary type 262 conversion. 263 (Get_Tagged_Kind, Set_Tagged_Kind): New bodies. 264 265 * exp_ch6.adb (Register_Interface_DT_Entry): Remove the Thunk_Id actual 266 in all the calls to Expand_Interface_Thunk. Instead of referencing the 267 record component containing the tag of the secondary dispatch table we 268 have to use the Offset_To_Top run-time function to get this information; 269 otherwise if the pointer to the base of the object has been displace 270 we get a wrong value if we use the 'position attribute. 271 272 * exp_disp.adb (Expand_Interface_Thunk): Remove the Thunk_Id actual in 273 all the calls to Expand_Interface_Thunk. 274 (Make_Secondary_DT): Secondary dispatch tables do not have a table of 275 interfaces; hence the call to Set_Interface_Table was clearly wrong. 276 (Collect_All_Interfaces): Modify the internal subprogram Collect to 277 ensure that the interfaces implemented by the ancestors are placed 278 at the header of the generated list. 279 (Expand_Interface_Conversion): Handle the case in which the displacement 280 associated with the interface conversion is not statically known. In 281 this case we generate a call to the new run-time subprogram Displace. 282 (Make_DT): Generate and fill the new table of interfaces. 283 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Add entries for 284 Get_Tagged_Kind and Set_Tagged_Kind. 285 (Tagged_Kind): New function that determines the tagged kind of a type 286 with respect to limitedness and concurrency and returns a reference to 287 RE_Tagged_Kind. 288 (Make_Disp_Asynchronous_Select_Body, Make_Disp_Conditional_Select_Body, 289 Make_Disp_Timed_Select_Body): Correctly retrieve the pointer to the 290 primary dispatch table for a type. 291 (Make_DT, Make_Secondary_DT): Set the tagged kind in the primary and 292 secondary dispatch table respectively of a tagged type. 293 294 * exp_disp.ads (Expand_Interface_Thunk): Remove Thunk_Id formal. 295 (Expand_Interface_Conversion): New subprogram to indicate if the 296 displacement of the type conversion is statically known. 297 (DT_Access_Action): Add values Get_Tagged_Kind and Set_Tagged_Kind. 298 299 * rtsfind.ads (RE_Offset_To_Top): New entity 300 (RTU_Id): Add Ada_Task_Termination to the list so that it is made 301 accessible to users. 302 (Re_Displace): New entity 303 (RE_Interface_Data): New entity 304 (RE_Set_Interface_Data): New_Entity 305 (RE_Id, RE_Unit_Table): Add entry for RE_Get_Tagged_Kind, 306 Set_Tagged_Kind, RE_Tagged_Kind, RE_TK_Abstract_Limited_Tagged, 307 RE_TK_Abstract_Tagged, RE_TK_Limited_Tagged, RE_TK_Protected, 308 RE_TK_Tagged, RE_TK_Task. 309 310 * exp_ch3.adb (Init_Secondary_Tags): Modify the subprogram 311 Init_Secondary_Tags_Internal to allow its use with interface types and 312 also to generate the code for the new additional actual required 313 by Set_Offset_To_Top. 314 (Build_Init_Statements): In case of components associated with abstract 315 interface types there is no need to generate a call to its IP. 316 (Freeze_Record_Type): Generate Select Specific Data tables only for 317 concurrent types. 318 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): Generate 319 the bodies and specifications of the predefined primitive operations 320 dealing with dispatching selects and abort, 'Callable, 'Terminated only 321 for concurrent types. 322 323 * exp_sel.ads, exp_sel.adb: New files. 324 325 * exp_ch9.adb (Build_Protected_Entry, Expand_N_Protected_Body, 326 Expand_N_Protected_Type_Declaration, Make_Initialize_Protection): Handle 327 properly protected objects and attach handler in the case of the 328 restricted profile. 329 Move embeded package Select_Expansion_Utilities into a separate external 330 package. 331 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Select, 332 Expand_N_Timed_Entry_Call): Correct calls external package Exp_Sel. 333 (Build_K, Build_S_Assignment): New subprograms, part of the select 334 expansion utilities. 335 (Expand_N_Asynchronous_Select, Expand_N_Conditional_Entry_Call, 336 Expand_N_Timed_Entry_Call): Optimize expansion of select statements 337 where the trigger is a dispatching procedure of a limited tagged type. 338 3392005-12-09 Olivier Hainque <hainque@adacore.com> 340 341 * decl.c (gnat_to_gnu_entity, renaming object case): Don't early expand 342 pointer initialization values. Make a SAVE_EXPR instead. Add comments 343 about the use and expansion of SAVE_EXPRs in the various possible 344 renaming handling cases. 345 (components_to_record, compare_field_bitpos): Sort by DECL_UID, not by 346 abusing DECL_FCONTEXT. 347 3482005-12-09 Matthew Heaney <heaney@adacore.com> 349 350 * a-convec.adb (Merge): Added assertions to check whether vector params 351 are sorted. 352 353 * a-coinve.adb (Merge): Added assertions to check whether vector params 354 are sorted. 355 356 * a-cohama.ads (Cursor'Write): raises Program_Error per latest AI-302 357 draft. 358 (Cursor'Read): raises PE 359 360 * a-cohama.adb (Insert.New_Node): Uses box-style syntax to init elem 361 to its default value. 362 363 * a-cihama.adb: Manually check whether cursor's key and elem are 364 non-null 365 366 * a-cidlli.ads, a-cidlli.adb (Splice): Changed param name and param mode 367 (Merge): Assert that target and source lists are in order 368 (Swap): Declare non-const temporaries, to pass to Splice 369 370 * a-cdlili.ads: (Splice): Changed param name and param mode 371 372 * a-cdlili.adb: (Splice): Changed param name and param mode 373 (Merge): Assert that target and source lists are in order 374 (Swap): Declare non-const temporaries, to pass to Splice 375 376 * a-ciorma.ads, a-coorma.ads: (Read): declare Stream param as not null 377 (Write): declare Stream param as not null 378 379 * a-ciorma.adb, a-coorma.adb: All explicit raise statements now include 380 an exception message. 381 3822005-12-09 Thomas Quinot <quinot@adacore.com> 383 Robert Dewar <dewar@adacore.com> 384 385 * hostparm.ads (Max_Line_Length): Set to Types.Column_Number'Last - 1, 386 which is the absolute maximum length we can support. 387 388 * frontend.adb: For the processing of configuration pragma files, 389 remove references to Opt.Max_Line_Length, which is not checked anymore. 390 391 * namet.ads (Name_Buffer): Adjust size to reflect increase on max line 392 length. 393 394 * scn.adb, scng.adb: 395 Always check line length against the absolute supported maximum, 396 Hostparm.Max_Line_Length. 397 398 * stylesw.adb (Set_Style_Check_Options, case M): The maximum supported 399 value for the maximum line length is Max_Line_Length (not 400 Column_Number'Last). 401 Minor error msg update 402 (Set_Style_Check_Options): New interface returning error msg 403 Minor code reorganization (processing for 'M' was out of alpha order) 404 405 * switch-c.adb: New interface for Set_Style_Check_Options 406 407 * stylesw.ads (Set_Style_Check_Options): New interface returning error 408 msg. 409 4102005-12-09 Javier Miranda <miranda@adacore.com> 411 412 * exp_aggr.adb (Build_Record_Aggr_Code): Default-initialialized records 413 with IP subprogram were only supported if there were limited types. 414 415 * sem_aggr.adb (Resolve_Record_Aggregate): Default-initialialized 416 records with IP subprogram were only supported if there were limited 417 types. 418 4192005-12-09 Olivier Hainque <hainque@adacore.com> 420 Eric Botcazou <ebotcazou@adacore.com> 421 422 * trans.c (tree_transform, emit_check): Adjust calls to 423 build_call_raise, passing the now expected GNAT_NODE argument. 424 425 * gigi.h (build_call_raise): Add a GNAT_NODE argument to convey better 426 source line information than what the current global locus indicates 427 when appropriate. 428 429 * utils2.c (build_simple_component_ref): Return 0 if the offset of the 430 field has overflowed. 431 (build_call_raise): Add a GNAT_NODE argument to convey better source 432 line information than what the current global locus indicates when 433 appropriate. 434 (build_component_ref): Adjust call to build_call_raise. 435 4362005-12-09 Pascal Obry <obry@adacore.com> 437 438 * g-diopit.adb (Find): Fix test to exit the iterator and make sure that 439 the iterator is quitting iteration on parent directory. 440 4412005-12-09 Javier Miranda <miranda@adacore.com> 442 443 * exp_ch5.adb (Expand_N_Assignment_Statement): In case of tagged types 444 and the assignment to a class-wide object, before the assignment we 445 generate a run-time check to ensure that the tag of the Target is 446 covered by the tag of the source. 447 4482005-12-09 Robert Dewar <dewar@adacore.com> 449 450 * exp_imgv.adb (Expand_Image_Attribute): Generate extra boolean 451 parameter in call to Image_Wide_Character. 452 453 * s-imgwch.ads, s-imgwch.adb (Image_Wide_Character): Add boolean 454 parameter Ada_2005 to deal with annoying FFFE/FFFF inconsistency. 455 (Image_Wide_Character): Add boolean parameter Ada_2005 to deal with 456 annoying FFFE/FFFF inconsistency. 457 4582005-12-09 Robert Dewar <dewar@adacore.com> 459 Javier Miranda <miranda@adacore.com> 460 Ed Schonberg <schonberg@adacore.com> 461 462 * exp_util.ads, exp_util.adb (Is_Ref_To_Bit_Packed_Slice): Handle case 463 of type conversion. 464 (Find_Interface): New subprogram that given a tagged type and one of its 465 component associated with the secondary table of an abstract interface 466 type, return the entity associated with such abstract interface type. 467 (Make_Subtype_From_Expr): If type has unknown discriminants, always use 468 base type to create anonymous subtype, because entity may be a locally 469 declared subtype or generic actual. 470 (Find_Interface): New subprogram that given a tagged type and one of its 471 component associated with the secondary table of an abstract interface 472 type, return the entity associated with such abstract interface type. 473 474 * sem_res.adb (Resolve_Type_Conversion): Handle the case in which the 475 conversion cannot be handled at compile time. In this case we pass this 476 information to the expander to generate the appropriate code. 477 4782005-12-09 Robert Dewar <dewar@adacore.com> 479 Ed Schonberg <schonberg@adacore.com> 480 Gary Dismukes <dismukes@adacore.com> 481 Javier Miranda <miranda@adacore.com> 482 Hristian Kirtchev <kirtchev@adacore.com> 483 484 * einfo.adb (Itype_Printed): New flag 485 (Is_Limited_Type): Derived types do not inherit limitedness from 486 interface progenitors. 487 (Is_Return_By_Reference_Type): Predicate does not apply to limited 488 interfaces. 489 490 * einfo.ads (Itype_Printed): New flag 491 Move Is_Wrapper_Package to proper section 492 Add missing Inline for Is_Volatile 493 494 * output.ads, output.adb (Write_Erase_Char): New procedure 495 (Save/Restore_Output_Buffer): New procedures 496 (Save/Restore_Output_Buffer): New procedures 497 498 * sprint.ads, sprint.adb (Write_Itype): Handle case of record itypes 499 Add missing support for anonymous access type 500 (Write_Id): Insert calls to Write_Itype 501 (Write_Itype): New procedure to output itypes 502 503 * par-ch12.adb (P_Formal_Derived_Type_Definition): In Ada 2005, handle 504 use of "limited" in declaration. 505 506 * sinfo.ads, sinfo.adb: 507 Formal derived types can carry an explicit "limited" indication. 508 509 * sem_ch3.adb: Add with and use of Targparm. 510 (Create_Component): If Frontend_Layout_On_Target is True and the 511 copied component does not have a known static Esize, then reset 512 the size and positional fields of the new component. 513 (Analyze_Component_Declaration): A limited component is 514 legal within a protected type that implements an interface. 515 (Collect_Interfaces): Do not add to the list the interfaces that 516 are implemented by the ancestors. 517 (Derived_Type_Declaration): If the parent of the full-view is an 518 interface perform a transformation of the tree to ensure that it has 519 the same parent than the partial-view. This simplifies the job of the 520 expander in order to generate the correct object layout, and it is 521 needed because the list of interfaces of the full-view can be given in 522 any order. 523 (Process_Full_View): The parent of the full-view does not need to be 524 a descendant of the parent of the partial view if both parents are 525 interfaces. 526 (Analyze_Private_Extension_Declaration): If declaration has an explicit 527 "limited" the parent must be a limited type. 528 (Build_Derived_Record_Type): A derived type that is explicitly limited 529 must have limited ancestor and progenitors. 530 (Build_Derived_Type): Ditto. 531 (Process_Full_View): Verify that explicit uses of "limited" in partial 532 and full declarations are consistent. 533 (Find_Ancestor_Interface): Remove function. 534 (Collect_Implemented_Interfaces): New procedure used to gather all 535 implemented interfaces by a type. 536 (Contain_Interface): New function used to check whether an interface is 537 present in a list. 538 (Find_Hidden_Interface): New function used to determine whether two 539 lists of interfaces constitute a set equality. If not, the first 540 differing interface is returned. 541 (Process_Full_View): Improve the check for the "no hidden interface" 542 rule as defined by AI-396. 543 5442005-12-09 Robert Dewar <dewar@adacore.com> 545 546 * freeze.adb (Freeze_Record_Type): Only test for useless pack on record 547 types, not on record subtypes. 548 (Freeze_Entity): Code cleanup. Add barrier to the loop 549 that generates the references for primitive operations. This allows to 550 remove an unnecessary exception handler. 551 Code reformatting and comment clean ups. 552 5532005-12-09 Vincent Celier <celier@adacore.com> 554 555 * gnatcmd.adb (GNATCmd): GNAT CHECK accepts switch -U 556 If GNAT CHECK is called with a project file, but with no 557 source on the command line, call gnatcheck with all the compilable 558 sources of the project. 559 Take into account the new command Check, for gnatcheck. Treat as for 560 other ASIS tools: take into account project, specific package Check and 561 Compiler switches. 562 For ASIS tools, add the switches in package Compiler for 563 the invocation of the compiler. 564 565 * prj-attr.adb: Add package Check and its attributes 566 567 * vms_conv.ads (Command_Type): New command Check, for gnatcheck 568 569 * vms_conv.adb (Initialize): Change Params of command Check to 570 unlimited files. 571 Change some Hostparm.OpenVMS checks to Targparm.OpenVMS_On_Target. 572 Add data for new command Check 573 574 * vms_data.ads: Add project related qualifiers for GNAT CHECK and GNAT 575 ELIM. 576 Add qualifiers for Check command options 577 (Command_Type): New command Check 578 5792005-12-09 Thomas Quinot <quinot@adacore.com> 580 581 * mlib-utl.adb (Ar): Use Output.Buffer_Max to determine whether a 582 command line switch overruns the output buffer. 583 5842005-12-09 Robert Dewar <dewar@adacore.com> 585 586 * sem_prag.adb: Processing for new pragma Complete_Representation 587 (Analyze_Pragma, case Debug): Implement two argument form. 588 589 * par-prag.adb: Entry for new pragma Complete_Representation 590 (Prag, case Debug): Recognize two argument form of pragma Debug 591 New interface for Set_Style_Check_Options. 592 593 * sem_ch13.adb: Implement new pragma Complete_Representation. 594 595 * snames.adb, snames.ads, snames.h: Entry for new pragma 596 Complete_Representation. 597 5982005-12-09 Gary Dismukes <dismukes@adacore.com> 599 600 * sem_cat.adb (Validate_RCI_Subprogram_Declaration): Revise test for 601 available user-specified stream attributes on limited parameters to 602 also test the type directly rather than only its underlying type (for 603 Ada 95) and, in the case of Ada 2005, to check that the user-specified 604 attributes are visible at the point of the subprogram declaration. 605 For Ada 2005, the error message is modified to indicate that the 606 type's stream attributes must be visible (again, only for -gnat05). 607 6082005-12-09 Ed Schonberg <schonberg@adacore.com> 609 610 * sem_ch12.adb (Subtypes_Match): Handle properly Ada05 arrays of 611 anonymous access types. 612 613 * sem_eval.adb (Subtypes_Statically_Match): Implement new rules for 614 matching of anonymous access types and anonymous access to subprogram 615 types. 'R'M 4.9.1 (2/2). 616 6172005-12-09 Ed Schonberg <schonberg@adacore.com> 618 619 * sem_ch4.adb (Remove_Abstract_Operations): Do not apply preference 620 rule prematurely when operands are universal, remaining ambiguities 621 will be removed during resolution. 622 Code cleanup. 623 624 * sem_type.adb (Disambiguate): In Ada95 mode, discard interpretations 625 that are Ada 2005 functions. 626 (Has_Abstract_Interpretation): Subsidiary to 627 Remove_Conversions, to remove ambiguities caused by abstract operations 628 on numeric types when operands are universal. 629 6302005-12-09 Robert Dewar <dewar@adacore.com> 631 632 * sem_ch6.adb (Analyze_Subprogram_Body): Properly check categorization 633 for case where spec is categorized. 634 6352005-12-09 Javier Miranda <miranda@adacore.com> 636 637 * sem_ch8.adb (Find_Type): In case of tagged types that are concurrent 638 types use the corresponding record type. This was not needed before 639 the implementation of Ada 2005 synchronized types because 640 concurrent types were never tagged types in Ada 95. 641 6422005-12-09 Ed Schonberg <schonberg@adacore.com> 643 644 * sem_ch9.adb (Analyze_Delay_Alternative, Analyze_Delay_Until): Use the 645 first subtype of the type of the expression to verify that it is a 646 legal Time type. 647 6482005-12-09 Robert Dewar <dewar@adacore.com> 649 650 * sem_util.ads, sem_util.adb (Full_Qualified_Name): Now provides 651 decoded names. 652 6532005-12-09 Quentin Ochem <ochem@adacore.com> 654 Robert Dewar <dewar@adacore.com> 655 Ed Falis <falis@adacore.com> 656 Florian Villoing <villoing@adacore.com> 657 Thomas Quinot <quinot@adacore.com> 658 Arnaud Charlet <charlet@adacore.com> 659 660 * gnat_ugn.texi: Created section "Stack Related Tools" 661 Moved "Stack Overflow Checking" subsection from "Switches for gcc" to 662 "Stack Related Tools" 663 Added subsection "Static Stack Usage Analysis" 664 Added subsection "Dynamic Stack Usage Analysis" 665 Include documentation of itypes in sprint listing (-gnatG) 666 Documented gnatbind -D switch (default sec stack size for fixed sec 667 stacks). 668 Added Interrupt_State and Persistent_BSS to list of configuration 669 pragmas. 670 Add missing doc for maximum value of nnn in -gnatyMnnn 671 672 * gnat_rm.texi: Document the AltiVec binding. 673 Add documentation for pragma Complete_Representation 674 Shortened an overly long line (> 79 chars) 675 Clarify documentation of unchecked conversion in implementation 676 defined cases. 677 Document two argument form of pragma Debug 678 679 * types.ads (Column_Number): Update documentation. 680 681 * exp_ch7.ads (Make_Adjust_Call): Document the special processing for 682 library level Finalize_Storage_Only objects (these are not attached to 683 any finalization list). 684 685 * system-mingw.ads: (Underlying_Priorities): Update comment. 686 6872005-12-09 Robert Dewar <dewar@adacore.com> 688 689 * i-c.adb, i-cexten.ads, i-cobol.adb, i-cobol.ads, i-cpoint.ads, 690 i-cpp.adb, i-cpp.ads, i-cstrea.ads, i-cstrin.adb, i-cstrin.ads, 691 inline.adb, interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, 692 i-os2thr.ads, itypes.adb, itypes.adb, itypes.ads, krunch.ads, 693 krunch.adb, lib.adb, lib.ads, lib-list.adb, lib-load.adb, 694 lib-load.ads, lib-sort.adb, live.adb, make.ads, i-cstrea-vms.adb, 695 interfac-vms.ads, makegpr.adb, indepsw-gnu.adb, indepsw.ads, 696 s-wchcon.ads, sdefault.ads, sem_ch10.adb, sem_eval.ads: Minor 697 reformatting. 698 6992005-12-09 Robert Dewar <dewar@adacore.com> 700 701 * s-vaflop-vms-alpha.adb: (Ne_F): New function 702 (Ne_G): New function 703 704 * exp_ch4.adb (Expand_Allocator_Expression): Factor duplicated code 705 for tag assignment. 706 (Rewrite_Comparison): Handle case where operation is not a comparison 707 and ignore, and also handle type conversion case. 708 7092005-12-09 Thomas Quinot <quinot@adacore.com> 710 711 * exp_aggr.ads: Fix typo in comment. 712 ???-mark Convert_Aggr_In_Assignment as needing documentation. 713 7142005-12-09 Gary Dismukes <dismukes@adacore.com> 715 716 * layout.adb: Replace various uses of byte by storage unit throughout. 717 (Get_Max_SU_Size): Name changed from Get_Max_Size. In the case of a 718 static size, convert to storage units before returning, to conform to 719 spec. 720 7212005-12-09 Matthew Gingell <gingell@adacore.com> 722 723 * g-exctra.ads: Fix typo in comment. 724 7252005-12-09 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 726 727 * utils.c: Minor reformatting. 728 7292005-12-09 Robert Dewar <dewar@adacore.com> 730 731 * g-soccon.ads: 732 Further comment fixes to make the status of the default file clear 733 734 * s-bitops.adb: Clarify comment for Bits_Array 735 7362005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 737 738 * Make-lang.in (ada.install-normal): Remove. 739 7402005-12-07 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 741 742 * Make-lang.in: Remove all dependencies on s-gtype. 743 7442005-12-05 Richard Guenther <rguenther@suse.de> 745 746 * utils.c (convert): Use fold_convert where appropriate. 747 7482005-12-05 Paolo Bonzini <bonzini@gnu.org> 749 750 * Makefile.in (gnatlib): Fix regex, using \. instead of . when 751 a period is meant. 752 7532005-12-02 Richard Guenther <rguenther@suse.de> 754 755 * trans.c (gnat_gimplify_expr): Use buildN instead of build. 756 7572005-12-01 Roger Sayle <roger@eyesopen.com> 758 759 * utils.c (max_size): Only test for TREE_OVERFLOW on INTEGER_CST 760 nodes. 761 7622005-11-23 Laurent Guerby <laurent@guerby.net> 763 764 * mlib-prj.adb (Build_Library): Initialize Delete. 765 7662005-11-21 Joel Sherrill <joel.sherrill@oarcorp.com> 767 768 * socket.c: Add extern int h_errno for rtems since networking header 769 files are not available at this point in a tool bootstrap. Newlib 770 only has basic C library header files. 771 7722005-11-19 Richard Guenther <rguenther@suse.de> 773 Roger Sayle <roger@eyesopen.com> 774 775 PR ada/23717 776 * misc.c (internal_error_function): Don't use vsprintf to format 777 the error message text, instead use pp_format_text and the new 778 pretty printer APIs. This allows handling of %qs, %w, etc. 779 7802005-11-18 Laurent Guerby <laurent@guerby.net> 781 782 PR ada/24857 783 * Makefile.in: Use s-auxdec-empty for RTEMS. 784 7852005-11-17 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 786 787 PR ada/22333 788 * trans.c (gnat_gimplify_expr, case ADDR_EXPR): Always make 789 a temporary if taking the address of something that is neither 790 reference, declaration, or constant, since the gimplifier 791 can't handle that case. 792 7932005-11-17 Laurent Guerby <laurent@guerby.net> 794 795 PR ada/24857 796 * s-auxdec-empty.ads, s-auxdec-empty.adb: New files. 797 7982005-11-16 Richard Guenther <rguenther@suse.de> 799 800 * Makefile.in: Add EH_MECHANISM=-gcc to s390(x) linux. 801 8022005-11-16 Joel Sherrill <joel.sherrill@oarcorp.com> 803 804 PR ada/24855 805 * raise-gcc.c: Add missing stdarg.h include. 806 8072005-11-16 Richard Guenther <rguenther@suse.de> 808 809 * Make-lang.in (ada/decl.o): Add $(EXPR_H) dependency. 810 (ada/misc.o): Likewise. 811 8122005-11-14 Thomas Quinot <quinot@adacore.com> 813 814 * g-soccon.ads: Minor reformatting. Update comments. 815 816 * gsocket.h: Include <sys/times.h> in the VxWorks case, in order to 817 gain visibility on the declaration of struct timeval. 818 819 * g-soccon-freebsd.ads, 820 g-soccon-darwin.ads, 821 g-soccon-tru64.ads, 822 g-soccon-aix.ads, 823 g-soccon-irix.ads, 824 g-soccon-hpux.ads, 825 g-soccon-solaris.ads, 826 g-soccon-vms.ads, 827 g-soccon-mingw.ads, 828 g-soccon-vxworks.ads (SIZEOF_tv_sec, SIZEOF_tv_usec): New constants. 829 830 * g-soccon-hpux-ia64.ads, g-soccon-linux-ppc.ads, 831 g-soccon-solaris-64.ads, g-soccon-linux-64.ads, 832 g-soccon-linux-x86.ads: New files. 833 834 * g-socthi-mingw.adb: 835 (Socket_Error_Message): Remove redundant use of GNAT.Sockets.Constants 836 837 * g-socthi-vxworks.ads, g-socthi-vms.ads, g-socthi-mingw.ads 838 (time_t, suseconds_t): New types constructed to match the tv_sec 839 and tv_usec fields of C struct timeval. 840 (Timeval): Construct structure in terms of the new types. 841 (Host_Errno): New function (imported from socket.c), returns last hosts 842 database error. 843 844 * g-socthi-vxworks.adb: Add error handling circuitry. 845 846 * g-socket.ads, g-socket.adb (To_Timeval): Reflect change of type for 847 components of struct timeval. 848 (Get_Host_By_Name, Get_Host_By_Address): Fix error reporting circuitry. 849 (Check_Selector): In error conditions, clear internal socket sets to 850 avoid a memory leak. 851 (Get_Socket_Option, Set_Socket_Option): Support for Multicast_If, 852 Send_Timeout, Receive_Timeout. 853 854 * g-socthi.ads (time_t, suseconds_t): New types constructed to match 855 the tv_sec and tv_usec fields of C struct timeval. 856 (Timeval): Construct structure in terms of the new types. 857 (Host_Errno): New function (imported from socket.c), returns last hosts 858 database error. 859 860 * socket.c (__gnat_get_h_errno): New function to retrieve h_errno, the 861 hosts database last error code. 862 863 * gen-soccon.c: Complete value expansion should not be performed on 864 TARGET, as it has the form of a math expression, and some components 865 may be platform-defined macros. 866 For VxWorks, generate the OK and ERROR values. 867 New constants giving the sizes of the components of C struct timeval. 868 8692005-11-14 Robert Dewar <dewar@adacore.com> 870 Ed Schonberg <schonberg@adacore.com> 871 872 PR ada/18434 873 * types.ads: Include All_Checks in Suppress_Array 874 875 * checks.adb (Check_Needed): Remove kludge for a/=b rewritten as 876 not(a=b), since we no longer do this rewriting, and hence it is not 877 needed. 878 (Elaboration_Checks_Suppressed): Add special casing to 879 deal with different cases of static and dynamic elaboration checks (all 880 checks does not count in the first case, but does in the second). 881 (Expr_Known_Valid): Do not assume that the result of any arbitrary 882 function call is valid, since this is not the case. 883 (Ensure_Valid): Do not apply validity check to a real literal 884 in a universal or fixed context 885 886 * exp_ch4.adb (Expand_N_Op_Ne): Don't expand a/=b to not(a=b) for 887 elementary types using the operator in standard. It is cleaner not to 888 modify the programmers intent, especially in the case of floating-point. 889 (Rewrite_Comparison): Fix handling of /= (this was always wrong, but 890 it did not matter because we always rewrote a/=b to not(a=b). 891 (Expand_Allocator_Expression): For an allocator expression whose nominal 892 subtype is an unconstrained packed type, convert the expression to its 893 actual constrained subtype. 894 Implement warning for <= or >= where < or > not possible 895 Fix to Vax_Float tests (too early in many routines, causing premature 896 Vax_Float expansions. 897 898 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Allow this pragma 899 to be used with packages and generic packages as well as with 900 subprograms. 901 (Suppress): Set All_Checks, but not Elaboration_Check, for case 902 of pragma Suppress (All_Checks) 903 (Analyze_Pragma, case Warnings): Implement first argument allowed to be 904 a string literal for precise control over warnings. 905 Avoid raise of pragma in case of unrecognized pragma and just return 906 instead. 907 908 * sem_prag.ads: Minor reformatting 909 910 * switch-c.adb (Scan_Front_End_Switches): Replace "raise Bad_Switch;" 911 with call to new procedure Bad_Switch. Call Scan_Pos with new parameter 912 Switch. Do not handle any exception. 913 Include -gnatwx as part of -gnatg (warn on redundant parens) 914 Allow optional = after -gnatm 915 (Scan_Front_End_Switches): The -gnatp switch sets All_Checks, but no 916 longer sets Elaboration_Checks. 917 Code to set warning mode moved to Sem_Warn 918 so that it can be shared by pragma processing. 919 920 * s-mastop-tru64.adb (Pop_Frame): Remove redundant parentheses in if 921 statement. 922 923 * s-taprop-solaris.adb: 924 Change some <= to =, to avoid new warning 925 926 * a-exexda.adb, prj-proc.adb: 927 Fix obvious typo (Num_Tracebacks compared <= 0 instead of < 0) 928 Fix obvious typo (Total_Errors_Detected <= 0 should be = 0) 929 9302005-11-14 Robert Dewar <dewar@adacore.com> 931 932 * exp_vfpt.adb: Handle /= case 933 (Expand_Vax_Conversion): Properly recognize Conversion_OK flag 934 so that we do not get duplicate scaling for fixed point conversions. 935 936 * s-vaflop.ads, s-vaflop.adb: (Ne_F): New function 937 9382005-11-14 Matthew Gingell <gingell@adacore.com> 939 940 * system-lynxos-ppc.ads, system-lynxos-x86.ads: 941 Increase default priority on Lynx from 15 to 17, and meet the Ada 942 requirement that Default_Priority be ((Priority'First + 943 Priority'Last) / 2) by increasing the range of Interrupt_Priority. 944 9452005-11-14 Vincent Celier <celier@adacore.com> 946 947 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 948 mlib-tgt-hpux.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 949 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-alpha.adb, 950 mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, 951 mlib-tgt-darwin.adb, mlib-tgt.adb, mlib-tgt.ads, 952 mlib-tgt-lynxos.adb (DLL_Prefix): New function 953 9542005-11-14 Doug Rupp <rupp@adacore.com> 955 956 * system-vms.ads, system-vms_64.ads: ADA$GNAT: New exported object in 957 private part. 958 9592005-11-14 Arnaud Charlet <charlet@adacore.com> 960 961 * s-traces-default.adb, s-trafor-default.ads, 962 s-tratas-default.adb: Fix compilation errors. 963 9642005-11-14 Jose Ruiz <ruiz@adacore.com> 965 966 * s-taprop-posix.adb (Initialize_Lock): Destroy mutex attribute before 967 raising the exception so the memory used is freed. 968 9692005-11-14 Arnaud Charlet <charlet@adacore.com> 970 971 * adaint.h, adaint.c (__gnat_is_cross_compiler): New constant. 972 (Gnat_Install_Locks, __gnatlib_install_locks): Removed, no longer used. 973 (convert_address): Update comments and list of platforms using this. 974 975 * s-tasini.adb (Gnat_Install_Locks, __gnatlib_install_locks): Removed, 976 no longer used. 977 9782005-11-14 Pascal Obry <obry@adacore.com> 979 Vincent Celier <celier@adacore.com> 980 981 * gnatdll.adb (Parse_Command_Line): Remove redundant use of 982 GNAT.Command_Line. 983 984 * memroot.adb: Remove redundant with/use clause on 985 System.Storage_Elements. 986 9872005-11-14 Arnaud Charlet <charlet@adacore.com> 988 989 * a-except.adb (Zero_Cost_Exceptions): Removed, no longer used. 990 (builtin_longjmp, Process_Raise_Exceeption): Move setjmp/longjmp 991 related code to a-exexpr.adb 992 (Save_Occurrence_And_Private): Move GCC EH related code to 993 a-exexpr-gcc.adb 994 (Raise_Current_Excep): Add new variable Id with pragma 995 volatile, to ensure that the variable lives on stack. 996 997 * a-exexpr-gcc.adb, raise-gcc.c: New file. 998 999 * a-exexpr.adb (builtin_longjmp, Propagate_Exception): Moved here code 1000 from a-except.adb. 1001 Move GCC EH related code to a-exexpr-gcc.adb 1002 1003 * Makefile.in: Add or update g-soccon LIBGNAT pairs for Linux/PPC and 1004 64-bit Solaris 1005 Split the Linux version of g-soccon into separate variants for 32 and 64 1006 bit platforms. 1007 (gnatlib): Use $(AR_FOR_TARGET) and $(RANLIB_FOR_TARGET) 1008 vice $(AR) and $(RANLIB). Remove use of host variable $(RANLIB_FLAGS). 1009 install-gnatlib: Use $(RANLIB_FOR_TARGET) vice $(RANLIB). Remove use 1010 of host variable $(RANLIB_FLAGS). 1011 (alpha64-dec-*vms*): Fix translations for 64 bit compiler. 1012 Code clean up: remove unused/obsolete targets. 1013 (EH_MECHANISM): New variable introduced to differenciate between the 1014 two EH mechanisms statically. 1015 (gnatlib-zcx, gnatlib-sjlj): Force EH_MECHANISM manually. 1016 (LIBGNAT_OBJS): Add raise-gcc.o 1017 (LIBGNAT_TARGET_PAIRS for ppc-vxworks): Use an specialized version of 1018 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that 1019 supports VxWorks 6 RTPs. 1020 (EXTRA_GNATRTL_NONTASKING_OBJS for ppc-vxworks): Remove the use of 1021 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. 1022 1023 * raise.c: Move all GCC EH-related routines to raise-gcc.c 1024 10252005-11-14 Jose Ruiz <ruiz@adacore.com> 1026 1027 * s-tassta.adb (Create_Task): Move the code in charge of resetting the 1028 deferral level, when abort is not allowed, to a later stage (the 1029 Task_Wrapper). 1030 (Task_Wrapper): If Abort is not allowed, reset the deferral level since 1031 it will not get changed by the generated code. It was previously done 1032 in Create_Task. 1033 10342005-11-14 Thomas Quinot <quinot@adacore.com> 1035 Olivier Hainque <hainque@adacore.com> 1036 Eric Botcazou <ebotcazou@adacore.com> 1037 1038 * decl.c: 1039 Factor common code to build a storage type for an unconstrained object 1040 from a fat or thin pointer type and a constrained object type. 1041 (annotate_value): Handle BIT_AND_EXPR. 1042 (annotate_rep): Don't restrict the back annotation of inherited 1043 components to the type_annotate_only case. 1044 (gnat_to_gnu_entity) <E_Array_Type>: Do not invoke create_type_decl if 1045 we are not defining the type. 1046 <E_Record_Type>: Likewise. 1047 (gnat_to_gnu_entity) <object, renaming>: Adjust comments and structure 1048 to get advantage of the new maybe_stabilize_reference interface, to 1049 ensure that what we reference is indeed stabilized instead of relying 1050 on assumptions on what the stabilizer does. 1051 (gnat_to_gnu_entity) <E_Incomplete_Type>: If the entity is an incomplete 1052 type imported through a limited_with clause, use its non-limited view. 1053 (Has_Stdcall_Convention): New macro, to centralize the Windows vs others 1054 differentiation. 1055 (gnat_to_gnu_entity): Use Has_Stdcall_Convention instead of a spread mix 1056 of #if sections + explicit comparisons of convention identifiers. 1057 (gnat_to_gnu_entity) <E_Variable>: Decrement force_global if necessary 1058 before early-returning for certain types when code generation is 1059 disabled. 1060 (gnat_to_gnu_entity) <object>: Adjust comment attached to the 1061 nullification of gnu_expr we do for objects with address clause and 1062 that we are not defining. 1063 (elaborate_expression_1): Do not create constants when creating 1064 variables needed by the debug info: the dwarf2 writer considers that 1065 CONST_DECLs is used only to represent enumeration constants, and emits 1066 nothing for them. 1067 (gnat_to_gnu_entity) <object>: When turning a non-definition of an 1068 object with an address clause into an indirect reference, drop the 1069 initializing expression. 1070 Include "expr.h". 1071 (STACK_CHECK_BUILTIN): Delete. 1072 (STACK_CHECK_PROBE_INTERVAL): Likewise. 1073 (STACK_CHECK_MAX_FRAME_SIZE): Likewise. 1074 (STACK_CHECK_MAX_VAR_SIZE): Likewise. 1075 (gnat_to_gnu_entity): If gnat_entity is a renaming, do not mark the tree 1076 corresponding to the renamed object as ignored for debugging purposes. 1077 1078 * trans.c (tree_transform, case N_Attribute_Reference, case Attr_Size & 1079 related): For a prefix that is a dereference of a fat or thin pointer, 1080 if there is an actual subtype provided by the front-end, use that 1081 subtype to build an actual type with bounds template. 1082 (tree_transform, case N_Free_Statement): If an Actual_Designated_Subtype 1083 is provided by the front-end, use that subtype to compute the size of 1084 the deallocated object. 1085 (gnat_to_gnu): When adding a statement into an elaboration procedure, 1086 check for a potential violation of a No_Elaboration_Code restriction. 1087 (maybe_stabilize_reference): New function, like gnat_stabilize_reference 1088 with extra arguments to control whether to recurse through non-values 1089 and to let the caller know if the stabilization has succeeded. 1090 (gnat_stabilize_reference): Now a simple wrapper around 1091 maybe_stabilize, for common uses without restriction on lvalues and 1092 without need to check for the success indication. 1093 (gnat_to_gnu, call_to_gnu): Adjust calls to gnat_stabilize_reference, to 1094 pass false instead of 0 as the FORCE argument which is a bool. 1095 (Identifier_to_gnu): Remove checks ensuring that an renamed object 1096 attached to a renaming pointer has been properly stabilized, as no such 1097 object is attached otherwise. 1098 (call_to_gnu): Invoke create_var_decl to create the temporary when the 1099 function uses the "target pointer" return mechanism. 1100 Reinstate conversion of the actual to the type of the formal 1101 parameter before any other specific treatment based on the passing 1102 mechanism. This turns out to be necessary in order for PLACEHOLDER 1103 substitution to work properly when the latter type is unconstrained. 1104 1105 * gigi.h (build_unc_object_type_from_ptr): New subprogram, factoring a 1106 common pattern. 1107 (maybe_stabilize_reference): New function, like gnat_stabilize_reference 1108 with extra arguments to control whether to recurse through non-values 1109 and to let the caller know if the stabilization has succeeded. 1110 1111 * utils2.c (gnat_build_constructor): Only sort the fields for possible 1112 static output of record constructor if all the components are constant. 1113 (gnat_build_constructor): For a record type, sort the list of field 1114 initializers in increasing bit position order. 1115 Factor common code to build a storage type for an unconstrained object 1116 from a fat or thin pointer type and a constrained object type. 1117 (build_unary_op) <ADDR_EXPR>: Always recurse down conversions between 1118 types variants, and process special cases of VIEW_CONVERT expressions 1119 as their NOP_EXPR counterpart to ensure we get to the 1120 CORRESPONDING_VARs associated with CONST_DECls. 1121 (build_binary_op) <MODIFY_EXPR>: Do not strip VIEW_CONVERT_EXPRs 1122 on the right-hand side. 1123 1124 * utils.c (build_unc_object_type_from_ptr): New subprogram, factoring 1125 a common pattern. 1126 (convert) <VIEW_CONVERT_EXPR>: Return the inner operand directly if we 1127 are converting back to its original type. 1128 (convert) <JM input>: Fallthrough regular conversion code instead of 1129 extracting the object if converting to a type variant. 1130 (create_var_decl): When a variable has an initializer requiring code 1131 generation and we are at the top level, check for a potential violation 1132 of a No_Elaboration_Code restriction. 1133 (create_var_decl): call expand_decl for CONST_DECLs, to set MODE, ALIGN 1134 SIZE and SIZE_UNIT which we need for later back-annotations. 1135 * utils.c: (convert) <STRING_CST>: Remove obsolete code. 1136 <VIEW_CONVERT_EXPR>: Do not lift the conversion if the target type 1137 is an unchecked union. 1138 (pushdecl): Set DECL_NO_STATIC_CHAIN on imported nested functions. 1139 (convert) <VIEW_CONVERT_EXPR>: When the types have the same 1140 main variant, just replace the VIEW_CONVERT_EXPR. 1141 <UNION_TYPE>: Revert 2005-03-02 change. 1142 1143 * repinfo.h, repinfo.ads: Add tcode for BIT_AND_EXPR. 1144 1145 * repinfo.adb (Print_Expr, Rep_Value): Handle Bit_And_Expressions. 1146 11472005-11-14 Matthew Heaney <heaney@adacore.com> 1148 1149 * a-crbtgo.ads, a-crbtgo.adb, a-coorse.ads, a-coorse.adb, a-convec.ads, 1150 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohama.ads, a-cohama.adb, 1151 a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-cidlli.ads, 1152 a-cidlli.adb, a-cdlili.ads, a-cdlili.adb, a-coormu.adb, a-ciormu.adb, 1153 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 1154 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorma.adb, a-coorma.adb: 1155 Compiles against the spec for ordered maps described in sections 1156 A.18.6 of the most recent (August 2005) AI-302 draft. 1157 11582005-11-14 Olivier Hainque <hainque@adacore.com> 1159 1160 * cuintp.c (UI_To_gnu): Use a proper type for intermediate computations 1161 to ensure bias adjustments take place when need be and to prevent 1162 occurrences of intermediate overflows. 1163 11642005-11-14 Matthew Gingell <gingell@adacore.com> 1165 Olivier Hainque <hainque@adacore.com> 1166 1167 * tb-gcc.c (trace_callback): Work around problem with _Unwind_GetIP on 1168 ia64 HP-UX. 1169 1170 * tracebak.c (ia64 configuration): Enable _Unwind_Backtrace driven 1171 tracebacks on ia64 HP-UX and provide explanatory comment. 1172 Enable backtraces on ia64 GNU/Linux. 1173 (x86 configuration): Bump FRAME_LEVEL to 1 to ensure we retrieve a real 1174 base pointer from builtin_frame_address. Adjust BASE_SKIP accordingly. 1175 11762005-11-14 Hristian Kirtchev <kirtchev@adacore.com> 1177 Javier Miranda <miranda@adacore.com> 1178 1179 * rtsfind.ads, exp_util.adb, exp_util.ads, exp_disp.adb, exp_disp.ads, 1180 exp_ch7.adb, sem_ch9.adb, snames.adb, snames.ads, 1181 exp_ch9.adb, exp_ch9.ads, exp_ch6.adb, exp_ch3.adb, exp_ch3.ads, 1182 einfo.ads, einfo.adb: Complete support for Ada 2005 interfaces. 1183 1184 * a-tags.ads, a-tags.adb: Major rewrite and additions to implement 1185 properly new Ada 2005 interfaces (AI-345) and add run-time checks (via 1186 assertions). 1187 1188 * exp_dbug.ads, exp_dbug.adb (Get_Secondary_DT_External_Name): New 1189 subprogram that generates the external name associated with a 1190 secondary dispatch table. 1191 (Get_Secondary_DT_External_Name): New subprogram that generates the 1192 external name associated with a secondary dispatch table. 1193 11942005-11-14 Emmanuel Briot <briot@adacore.com> 1195 1196 * xref_lib.adb (Parse_Identifier_Info): It is possible for an entity 1197 line in the ALI file to include both an instantiation reference, and a 1198 returned value. 1199 12002005-11-14 Vincent Celier <celier@adacore.com> 1201 1202 * clean.adb (Check_Project): Look for Ada code in extending project, 1203 even if Ada is not specified as a language. 1204 Use new function DLL_Prefix for DLL_Name 1205 (Clean_Interface_Copy_Directory): New procedure 1206 (Clean_Library_Directory): New procedure 1207 (Clean_Directory): Remove procedure, no longer used 1208 (Clean_Project): Do not delete any file in an externally built project 1209 1210 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Add the object 1211 directory of an extending project, even when there are no Ada source 1212 present. 1213 (Ada_Objects_Path.Add): Add Library_ALI_Dir, not Library_Dir to the path 1214 (Set_Ada_Paths.Add.Recursive_Add): Ditto 1215 1216 * mlib-prj.adb (Check_Library): For all library projects, get the 1217 library file timestamp. 1218 (Build_Library): Copy ALI files in Library_ALI_Dir, not in Library_Dir 1219 (Build_Library): Use new function DLL_Prefix for the DLL_Name 1220 (Clean): Remove procedure, no longer used 1221 (Ultimate_Extension_Of): New function 1222 (Build_Library): When cleaning the library directory, only remove an 1223 existing library file and any ALI file of a source of the project. 1224 When cleaning the interface copy directory, remove any source that 1225 could be a source of the project. 1226 1227 * prj.ads, prj.adb (Project_Empty): Add values of new components 1228 Library_TS and All_Imported_Projects. 1229 (Project_Empty): Add values for new components of Project_Data: 1230 Library_ALI_Dir and Display_Library_ALI_Dir 1231 1232 * prj-attr.adb: New project level attribute name Library_ALI_Dir 1233 1234 * prj-nmsc.adb (Check_Library_Attributes): Take into account new 1235 attribute Library_ALI_Dir. 1236 (Check_Library_Attributes): The library directory cannot be the same as 1237 any source directory of the project tree. 1238 (Check_Stand_Alone_Library): The interface copy directory cannot be 1239 the same as any source directory of the project tree. 1240 1241 * mlib.adb: Use Prj.Com.Fail, instead of Osint.Fail directly, to delete 1242 all temporary files. 1243 12442005-11-14 Robert Dewar <dewar@adacore.com> 1245 Ed Schonberg <schonberg@adacore.com> 1246 1247 * sem_elab.adb: Change name Is_Package to Is_Package_Or_Generic_Package 1248 (Check_Elab_Call): A call within a protected body is never an 1249 elaboration call, and does not require checking. 1250 (Same_Elaboration_Scope): Take into account protected types for both 1251 entities. 1252 (Activate_Elaborate_All_Desirable): New procedure 1253 1254 * ali.ads, ali.adb: Implement new AD/ED for Elaborate_All/Elaborate 1255 desirable 1256 1257 * binde.adb: Implement new AD/ED for Elaborate_All/Elaborate desirable 1258 (Elab_Error_Msg): Use -da to include internal unit links, not -de. 1259 1260 * lib-writ.ads, lib-writ.adb: 1261 Implement new AD/ED for Elaborate_All/Elaborate desirable 1262 Use new Elaborate_All_Desirable flag in N_With_Clause node 1263 1264 * sinfo.ads, sinfo.adb (Actual_Designated_Subtype): New attribute for 1265 N_Free_Statement nodes. 1266 Define new class N_Subprogram_Instantiation 1267 Add Elaborate_Desirable flag to N_With_Clause node 1268 Add N_Delay_Statement (covering two kinds of delay) 1269 1270 * debug.adb: Introduce d.f flag for compiler 1271 Add -da switch for binder 1272 12732005-11-14 Ed Schonberg <schonberg@adacore.com> 1274 Cyrille Comar <comar@adacore.com> 1275 1276 * exp_aggr.adb (Build_Record_Aggr_Code): Do not create master entity 1277 for task component, in the case of a limited aggregate. The enclosed 1278 object declaration will create it earlier. Otherwise, in the case of a 1279 nested aggregate, the object may appear in the wrong scope. 1280 (Convert_Aggr_In_Object_Decl): Create a transient scope when needed. 1281 (Gen_Assign): If the component being assigned is an array type and the 1282 expression is itself an aggregate, wrap the assignment in a block to 1283 force finalization actions on the temporary created for each row of the 1284 enclosing object. 1285 (Build_Record_Aggr_Code): Significant rewrite insuring that ctrl 1286 structures are initialized after all discriminants are set so that 1287 they can be accessed even when their offset is dynamic. 1288 12892005-11-14 Robert Dewar <dewar@adacore.com> 1290 Hristian Kirtchev <kirtchev@adacore.com> 1291 1292 * sem_attr.adb: Implement Machine_Rounding attribute 1293 (Analyze_Access_Attribute): The access attribute may appear within an 1294 aggregate that has been expanded into a loop. 1295 (Check_Task_Prefix): Add semantic check for attribute 'Callable and 1296 'Terminated whenever the prefix is of a task interface class-wide type. 1297 (Analyze_Attribute): Add semantic check for attribute 'Identity whenever 1298 the prefix is of a task interface class-wide type. 1299 1300 * s-vaflop-vms-alpha.adb: Valid_D, Valid_F, Valid_G: Make Val constant 1301 to avoid warnings. 1302 1303 * s-fatgen.ads, s-fatgen.adb (Machine_Rounding): New function 1304 Remove pragma Inline for [Unaligned_]Valid. 1305 Add comments that Valid routines do not work for Vax_Float 1306 1307 * exp_attr.adb: Implement Machine_Rounding attribute 1308 1309 * snames.h: Add entry for Machine_Rounding attribute 1310 13112005-11-14 Javier Miranda <miranda@adacore.com> 1312 Robert Dewar <dewar@adacore.com> 1313 Hristian Kirtchev <kirtchev@adacore.com> 1314 1315 * exp_attr.adb (Expand_N_Attribute_Reference, cases of Attribute_Size 1316 and related): For a prefix that is an explicit dereference of an 1317 access to unconstrained packed array type, annotate the dereference 1318 with an actual subtype so GIGI can make a correct size computation. 1319 (Expand_N_Attribute_Reference): In case of 'Unchecked_Access and 1320 'Unrestricted_Access, if the designated type is an interface we 1321 add a type conversion to force the displacement of the pointer 1322 to the secondary dispatch table. 1323 Use Universal_Real instead of Long_Long_Float when we need a high 1324 precision float type for the generated code (prevents gratuitous 1325 Vax_Float stuff when pragma Float_Representation (Vax_Float) used) 1326 (Expand_N_Attribute_Reference): Add support for attribute 'Callable and 1327 'Terminated for task interface class-wide objects. Generate a call to 1328 the predefined dispatching routine used to retrieve the _task_id from 1329 a task corresponding record. 1330 (Expand_Fpt_Attribute): Major change to properly handle Vax_Float 1331 1332 * sem_disp.adb: Change name Is_Package to Is_Package_Or_Generic_Package 1333 (Check_Dispatching_Operation): Protect the frontend againts 1334 previously detected errors. 1335 1336 * Makefile.rtl: Add new instantiations of system.fat_gen 1337 1338 * s-fatflt.ads, s-fatlfl.ads, s-fatllf.ads, s-fatsfl.ads: 1339 Change name of instantiated package for better consistency 1340 with newly added system.fat_gen instantiations. 1341 1342 * s-filofl.ads, s-fishfl.ads, s-fvadfl.ads, s-fvaffl.ads, 1343 s-fvagfl.ads: New files. 1344 13452005-11-14 Cyrille Comar <comar@adacore.com> 1346 Thomas Quinot <quinot@adacore.com> 1347 1348 * exp_ch5.adb (Expand_N_Assignment_Statement, Tagged_Case): For an 1349 assignment of a value of a tagged type that has been rewritten to a 1350 block statement, it is known by construction that no checks are 1351 necessary for the statements within the block: analyze it with checks 1352 suppressed. 1353 (Expand_N_If_Statement): When killing a dead then-branch in an 1354 if-statement that has elsif_parts, recompute the Current_Value node 1355 for any entity whose value is known from the condition of the first 1356 elsif_part. 1357 (Expand_N_Return_Statement): When returning a mutable record, convert 1358 the return value into its actual subtype in order to help the backend 1359 to return the actual size instead of the maximum. This is another 1360 aftermath of not returning mutable records on the sec-stack anymore. 1361 1362 * sem_ch5.ads, sem_ch5.adb (Analyze_Iteration_Scheme): Minor change to 1363 handling of error msg for suspicious reverse range iteration. 1364 (Check_Possible_Current_Value_Condition): Move declaration from body to 1365 spec, to allow this subprogram to be called from exp_ch5. 1366 13672005-11-14 Thomas Quinot <quinot@adacore.com> 1368 1369 * exp_dist.adb (Append_Array_Traversal): Modify constrained case to 1370 generate a set of nested array aggregates instead of a single flat 1371 aggregate for multi-dimensional arrays. 1372 13732005-11-14 Pascal Obry <obry@adacore.com> 1374 1375 * expect.c (__gnat_kill) [Win32]: Fix implementation, the pid returned 1376 by spawnve is a process handle, no need to convert. Add a parameter 1377 close to control wether the process handle must be closed. 1378 (__gnat_waitpid): Fix implementation, the pid returned by spawnve is 1379 a process handle, not need to convert. 1380 (__gnat_kill) [*]: Add dummy parameter close to match the Win32 spec. 1381 1382 * g-expect.adb: (Kill): Document the new close parameter. 1383 (Close): Do not release the process handle in the kill there as 1384 waitpid() is using it. 1385 (Send_Signal): Release the process handle. 1386 13872005-11-14 Robert Dewar <dewar@adacore.com> 1388 1389 * exp_fixd.adb: Use Universal_Real instead of Long_Long_Float when we 1390 need a high precision float type for the generated code (prevents 1391 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) 1392 used). 1393 1394 * exp_imgv.adb: Use Universal_Real instead of Long_Long_Float when we 1395 need a high precision float type for the generated code (prevents 1396 gratuitous Vax_Float stuff when pragma Float_Representation (Vax_Float) 1397 used). 1398 (Expand_Width_Attribute): In configurable run-time, the attribute is not 1399 allowed on non-static enumeration subtypes. Force a load error to emit 1400 the correct diagnostic. 1401 14022005-11-14 Thomas Quinot <quinot@adacore.com> 1403 Robert Dewar <dewar@adacore.com> 1404 Ed Schonberg <schonberg@adacore.com> 1405 1406 * exp_intr.adb (Expand_Unc_Deallocation): If GIGI needs an actual 1407 subtype to compute the size of the designated object at run-time, 1408 create such a subtype and store it in the Actual_Designated_Subtype 1409 attribute of the N_Free_Statement. 1410 Generate itype for classwide designated object in both cases of 1411 user-specified storage pool: specific and class-wide, not only in the 1412 specific case. 1413 Raise CE when trying to set a not null access type object to null. 1414 (Expand_Dispatching_Constructor_Call): Retrieve subprogram actual with 1415 an explicit loop, because freeze nodes make its position variable. 1416 1417 * sem_intr.adb (Check_Intrinsic_Call): Given warning for freeing not 1418 null object. 1419 14202005-11-14 Javier Miranda <miranda@adacore.com> 1421 1422 * exp_strm.adb (Build_Stream_Attr_Profile, Build_Stream_Function, 1423 Build_Stream_Procedure): Add the null-excluding attribute to the first 1424 formal. 1425 This has no semantic meaning under Ada95 mode but it is a 1426 requirement under Ada05 mode. 1427 1428 * par-ch3.adb (P_Access_Definition): Addition of warning message if 1429 the null exclusion is used under Ada95 mode 1430 (P_Null_Exclusion): The qualifier has no semantic meaning in Ada 95. 1431 (P_Access_Definition): Remove assertion that forbids the use of 1432 the null-exclusion feature in Ada95. 1433 14342005-11-14 Robert Dewar <dewar@adacore.com> 1435 1436 * impunit.adb: Exclude container helper units not intended for use by 1437 users. 1438 14392005-11-14 Ed Schonberg <schonberg@adacore.com> 1440 1441 * freeze.adb (Freeze_Entity): For an access formal that is an access 1442 to subprogram, freeze the anonymous subprogram type at the same time, 1443 to prevent later freezing in the wrong scope, such as the enclosing 1444 subprogram body. 1445 (Freeze_Entity): Freeze the equivalent_type of an access_to_protected_ 1446 subprogram whenever available. 1447 14482005-11-14 Arnaud Charlet <charlet@adacore.com> 1449 1450 PR ada/23732 1451 * gnatvsn.ads (Library_Version): Bump to 4.1 1452 14532005-11-14 Robert Dewar <dewar@adacore.com> 1454 1455 * g-debpoo.adb (Set_Valid): Use Integer_Address instead of 1456 Storage_Offset to avoid wrap around causing invalid results. 1457 14582005-11-14 Pascal Obry <obry@adacore.com> 1459 1460 * gnatbind.adb (Is_Cross_Compiler): New function returning True for 1461 cross-compiler. 1462 (Scan_Bind_Arg): Fail with an error message if -M option is used 1463 on a native compiler. 1464 14652005-11-14 Robert Dewar <dewar@adacore.com> 1466 Vincent Celier <celier@adacore.com> 1467 1468 * gprep.adb: Implement -C switch to scan comments 1469 1470 * scng.adb: Scan comment symbol separately if Replace_In_Comments set 1471 1472 * scans.ads: Comment updates (including new use of Tok_Comment in 1473 preprocessing) 1474 1475 * opt.ads: Add documentation for flags that are used by gprmake, 1476 currently and in the next version of gprmake. 1477 (Verbosity_Level): New variable 1478 Add Replace_In_Comments switch 1479 1480 * vms_data.ads: Add VMS equivalent for new gnatmake switches -vl, -vm 1481 and -vm. 1482 Add /REPLACE_IN_COMMENTS for gnatprep -C switch 1483 14842005-11-14 Arnaud Charlet <charlet@adacore.com> 1485 1486 * g-regpat.adb (Fail): raise Expression_Error including the diagnostic 1487 message, friendlier. 1488 14892005-11-14 Robert Dewar <dewar@adacore.com> 1490 1491 * g-spitbo.adb: (Hash): Rotate by 3 instead of 1 1492 14932005-11-14 Doug Rupp <rupp@adacore.com> 1494 1495 * init.c [VMS]: Don't install __gnat_error_handler if DBG$TDBG defined. 1496 14972005-11-14 Robert Dewar <dewar@adacore.com> 1498 1499 * interfac.ads: Change declarations of IEEE float types so that we no 1500 longer need a separate version of this package for VMS. 1501 15022005-11-14 Ed Schonberg <schonberg@adacore.com> 1503 1504 * lib-xref.adb (Generate_Definition, Generate_Reference): Treat the 1505 internal entity created for the declaration of a child subprogram body 1506 with no spec as coming from source, to generate proper cross-reference 1507 information. 1508 15092005-11-14 Vincent Celier <celier@adacore.com> 1510 1511 * make.adb (Compile_Sources): Change verbose message to minimum 1512 verbosity level High for "is in an Ada library", "is a read-only 1513 library" and "is an internal library", 1514 (Create_Binder_Mapping_File): Path name of ALI file for library project 1515 must include the library directory, not the object directory. 1516 (Scan_Make_Arg): Make sure that Switch.M.Scan_Make_Switches is called 1517 for new switches -vl, -vm and -vh. 1518 (Verbose_Msg): Add new defaulted parameter Minimum_Verbosity 1519 (Check): Use minimum verbosity Medium for some Verbose_Msg calls 1520 (Compile_Sources): Do not attempt to compile if an ALI file is missing 1521 in a project that is externally built. 1522 (Compute_All_Imported_Projects): New procedure 1523 (Gnatmake): Check if importing libraries should be regenerated because 1524 at least an imported library is more recent. 1525 (Initialize): For each project compute the list of the projects it 1526 imports directly or indirectly. 1527 (Add_Library_Search_Dir): New procedure, used in place of 1528 Add_Lib_Search_Dir in procedure Scan_Make_Arg so that absolute paths are 1529 put in the search paths. 1530 (Add_Source_Search_Dir): New procedure, used in place of 1531 Add_Src_Search_Dir in procedure Scan_Make_Arg so that absolute paths are 1532 put in the search paths. 1533 (Mark_Directory): Resolve the absolute path the directory before marking 1534 it. 1535 1536 * switch-m.adb (Scan_Make_Switches): Replace "raise Bad_Switch;" with 1537 call to new procedure Bad_Switch. Call Scan_Pos with new parameter 1538 Switch. Do not handle any exception. 1539 (Scan_Make_Switches): Increment Ptr for new switches -vl, -vm and -vh 1540 so that the switch is recognized as valid. 1541 (Scan_Make_Switches): Implement new switches -vl, -vm and -vh. 1542 15432005-11-14 GNAT Script <nobody@adacore.com> 1544 1545 * Make-lang.in: Makefile automatically updated 1546 15472005-11-14 Pascal Obry <obry@adacore.com> 1548 1549 * mdll.adb (Build_Reloc_DLL): Fix parameter handling when a map file is 1550 used. 1551 (Ada_Build_Reloc_DLL): Fix parameter handling when a map file is used. 1552 In both cases the last argument was dropped. 1553 15542005-11-14 Eric Botcazou <ebotcazou@adacore.com> 1555 1556 * namet.h: (Column_Numbe): New type. 1557 (Get_Column_Number): Define to sinput__get_column_number. 1558 (Instantiation): Define to sinput__instantiation. 1559 (Get_Column_Number): Declare. 1560 (Instantiation): Likewise. 1561 15622005-11-14 Robert Dewar <dewar@adacore.com> 1563 1564 * par-ch10.adb (P_Compilation_Unit): Add defenses against junk unit 1565 syntax, which could cause compiler hangs. 1566 15672005-11-14 Vincent Celier <celier@adacore.com> 1568 1569 * prj-ext.adb: Take into account new environment variable 1570 GPR_PROJECT_PATH. Warn if both GPR_PROJECT_PATH and ADA_PROJECT_PATH 1571 are defined. 1572 (Prj.Ext elaboration): For each directory in the ADA_PROJECT_PATH, 1573 normalize its path name, making it absolute and resolving symbolic 1574 links, and replace the original if resolved path is different. 1575 15762005-11-14 Vincent Celier <celier@adacore.com> 1577 1578 * prj-part.adb (Create_Virtual_Extending_Project): Put virtual project 1579 into Prj.Tree.Tree_Private_Part.Projects_Htable for GPS. 1580 15812005-11-14 Emmanuel Briot <briot@adacore.com> 1582 1583 * prj-pp.adb (Print): Do not output the with statement if the 1584 associated name is empty, which happens for virtual extending projects. 1585 (Print): Preserve the "extends all" attribute when printing the project. 1586 1587 * prj-tree.ads (String_Value_Of): Add comment about returned value for 1588 a virtual extending project. 1589 15902005-11-14 Ed Schonberg <schonberg@adacore.com> 1591 1592 * sem_aggr.adb (Resolve_Aggregate): An others choice is legal on the 1593 rhs of an assignment even if the type is unconstrained, when the 1594 context is non-expanding. 1595 In an inlined body, if the context type is private, 1596 resolve with its full view, which must be a composite type. 1597 15982005-11-14 Robert Dewar <dewar@adacore.com> 1599 Ed Schonberg <schonberg@adacore.com> 1600 1601 * sem_ch10.adb: Change name Is_Package to Is_Package_Or_Generic_Package 1602 Do not give obsolescent warning on with of subprogram (since we 1603 diagnose calls) 1604 (Analyze_With_Clause): Add test for obsolescent package 1605 (Install_Context_Clauses): If the unit is the body of a child unit, do 1606 not install twice the private declarations of the parents, to prevent 1607 circular lists of Use_Clauses in a parent. 1608 (Implicit_With_On_Parent): Do add duplicate with_clause on parent when 1609 compiling body of child unit. 1610 Use new class N_Subprogram_Instantiation 1611 (Expand_With_Clause): If this is a private with_clause for a child unit, 1612 appearing in the context of a package declaration, then the implicit 1613 with_clauses generated for parent units are private as well. 1614 (License_Check): Do not generate message if with'ed unit is internal 1615 16162005-11-14 Gary Dismukes <dismukes@adacore.com> 1617 Ed Schonberg <schonberg@adacore.com> 1618 Thomas Quinot <quinot@adacore.com> 1619 1620 * sem_ch12.ads, sem_ch12.adb (Map_Entities): Exclude entities whose 1621 names are internal, because they will not have a corresponding partner 1622 in the actual package. 1623 (Analyze_Formal_Package): Move the setting of the formal package spec's 1624 Generic_Parent field so that it occurs prior to analyzing the package, 1625 to allow proper operation of Install_Parent_Private_Declarations. 1626 (Analyze_Package_Instantiation): Set the instantiated package entity's 1627 Package_Instantiation field. 1628 (Get_Package_Instantiation_Node): Move declaration to package spec. 1629 Retrieve the N_Package_Instantiation node when the Package_Instantiation 1630 field is present. 1631 (Check_Generic_Child_Unit): Within an inlined call, the only possible 1632 instantiation is Unchecked_Conversion, for which no parents are needed. 1633 (Inline_Instance_Body): Deinstall and record the use_clauses for all 1634 parent scopes of a scope being removed prior to inlining an instance 1635 body. 1636 (Analyze_Package_Instantiation): Do not perform front-end inlining when 1637 the current context is itself an instance within a non-instance child 1638 unit, to prevent scope stack errors. 1639 (Save_References): If the node is an aggregate that is an actual in a 1640 call, rewrite as a qualified expression to preserve some type 1641 information, to resolve possible ambiguities in the instance. 1642 (Instance_Parent_Unit): New global variable to record the ultimate 1643 parent unit associated with a generic child unit instance (associated 1644 with the existing Parent_Unit_Visible flag). 1645 (type Instance_Env): New component Instance_Parent_Unit for stacking 1646 parents recorded in the global Instance_Parent_Unit. 1647 (Init_Env): Save value of Instance_Parent_Unit in the Instance_Env 1648 stack. 1649 (Install_Spec): Save the parent unit entity in Instance_Parent_Unit when 1650 it's not a top-level unit, and only do this if Instance_Parent_Unit is 1651 not already set. Replace test of Is_Child_Unit with test of parent's 1652 scope against package Standard. Add comments and a ??? comment. 1653 (Remove_Parent): Revise condition for resetting Is_Immediately_Visible 1654 on a child instance parent to test that the parent equals 1655 Instance_Parent rather than simply checking that the unit is not a 1656 child unit. 1657 (Restore_Env): Restore value of Instance_Parent_Unit from Instance_Env. 1658 (Validate_Derived_Interface_Type_Instance): Verify that all ancestors of 1659 a formal interface are ancestors of the corresponding actual. 1660 (Validate_Formal_Interface_Type): Additional legality checks. 1661 (Analyze_Formal_Derived_Interface_Type): New procedure to handle formal 1662 interface types with ancestors. 1663 (Analyze_Formal_Package): If formal is a renaming, use renamed entity 1664 to diagnose attempts to use generic within its own declaration. 1665 16662005-11-14 Ed Schonberg <schonberg@adacore.com> 1667 Javier Miranda <miranda@adacore.com> 1668 1669 * sem_ch3.ads, sem_ch3.adb (Build_Discriminal): Add link to original 1670 discriminant. 1671 (Build_Private_Derived_Type): The entity of the created full view of the 1672 derived type does not come from source. If after installing the private 1673 declarations of the parent scope the parent is still private, use its 1674 full view to construct the full declaration of the derived type. 1675 (Build_Derived_Record_Type): Relax the condition that controls the 1676 execution of the check that verifies that the partial view and 1677 the full view agree in the set of implemented interfaces. In 1678 addition, this test now only takes into account the progenitors. 1679 (Derive_Interface_Subprograms): No need to derive subprograms 1680 of ancestors that are interfaces. 1681 (Derive_Subprograms): Remove formal No_Predefined_Prims and the 1682 associated code. 1683 Change name Is_Package to Is_Package_Or_Generic_Package 1684 (Complete_Subprograms_Derivation): Handle the case in which the full 1685 view is a transitive derivation of the ancestor of the partial view. 1686 (Process_Full_View): Rename local subprogram Find_Interface_In_ 1687 Descendant to Find_Ancestor_Interface to leave the code more clear. 1688 Remove wrong code that avoids the generation of an error message 1689 when the immediate ancestor of the partial view is an interface. 1690 In addition some minor reorganization of the code has been done to 1691 leave it more clear. 1692 (Analyze_Type_Declaration): If type has previous incomplete tagged 1693 partial view, inherit properly its primitive operations. 1694 (Collect_Interfaces): Make public, for analysis of formal 1695 interfaces. 1696 (Analyze_Interface_Declaration): New procedure for use for regular and 1697 formal interface declarations. 1698 (Build_Derived_Record_Type): Add support for private types to the code 1699 that checks if a tagged type implements abstract interfaces. 1700 (Check_Aliased_Component_Type): The test applies in the spec of an 1701 instance as well. 1702 (Access_Type_Declaration): Clean up declaration of malformed type 1703 declared as an access to its own classwide type, to prevent cascaded 1704 crash. 1705 (Collect_Interfaces): For private extensions and for derived task types 1706 and derived protected types, the parent may be an interface that must 1707 be included in the interface list. 1708 (Access_Definition): If the designated type is an interface that may 1709 contain tasks, create Master_Id for it before analyzing the expression 1710 of the declaration, which may be an allocator. 1711 (Record_Type_Declaration): Set properly the interface kind, for use 1712 in allocators, the creation of master id's for task interfaces, etc. 1713 17142005-11-14 Javier Miranda <miranda@adacore.com> 1715 Ed Schonberg <schonberg@adacore.com> 1716 1717 * sem_ch6.adb (Check_Conformance): The null-exclusion feature can be 1718 omitted in case of stream attribute subprograms. 1719 (Check_Inline_Pragma): Handle Inline and Inline_Always pragmas that 1720 appear immediately after a subprogram body, when there is no previous 1721 subprogram declaration. 1722 Change name Is_Package to Is_Package_Or_Generic_Package 1723 (Process_Formals): A non null qualifier on a non null named access 1724 type is not an error, and is a warning only if Redundant_Constructs 1725 are flagged. 1726 17272005-11-14 Gary Dismukes <dismukes@adacore.com> 1728 Ed Schonberg <schonberg@adacore.com> 1729 1730 * sem_ch7.adb (Install_Parent_Private_Declarations): New procedure 1731 nested within Analyze_Package_Specification to install the private 1732 declarations and use clauses within each of the parent units of a 1733 package instance of a generic child package. 1734 (Analyze_Package_Specification): When entering a private part of a 1735 package associated with a generic instance or formal package, the 1736 private declarations of the parent must be installed (by calling new 1737 procedure Install_Parent_Private_Declarations). 1738 Change name Is_Package to Is_Package_Or_Generic_Package 1739 (Preserve_Full_Attributes): For a synchronized type, the corresponding 1740 record is absent in a generic context, which does not indicate a 1741 compiler error. 1742 17432005-11-14 Ed Schonberg <schonberg@adacore.com> 1744 1745 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic context, do 1746 not try to rewrite a renamed stream attribute, because the operations 1747 on the type may not have been generated. 1748 Handle properly a renaming_as_body generated for a stream operation 1749 whose default is abstract because the object type itself is abstract. 1750 (Find_Type): If the type is incomplete and appears as the prefix of a 1751 'Class reference, it is tagged, and its list of primitive operations 1752 must be initialized properly. 1753 (Chain_Use_Clauses): When chaining the use clauses that appear in the 1754 private declaration of a parent unit, prior to compiling the private 1755 part of a child unit, find on the scope stack the proper parent entity 1756 on which to link the use clause. 1757 (Note_Redundant_Use): Emit a warning when a redundant use clause is 1758 detected. 1759 (Analyze_Object_Renaming): An attribute reference is not a legal object 1760 if it is not a function call. 1761 17622005-11-14 Robert Dewar <dewar@adacore.com> 1763 Ed Schonberg <schonberg@adacore.com> 1764 1765 * sem_eval.adb: Implement d.f flag 1766 (Subtype_Statically_Match): A generic actual type has unknown 1767 discriminants when the corresponding actual has a similar partial view. 1768 If the routine is called to validate the signature of an inherited 1769 operation in a child instance, the generic actual matches the full view, 1770 17712005-11-14 Hristian Kirtchev <kirtchev@adacore.com> 1772 Ed Schonberg <schonberg@adacore.com> 1773 Robert Dewar <dewar@adacore.com> 1774 Thomas Quinot <quinot@adacore.com> 1775 1776 * sem_res.adb (Resolve_Call): Provide a better error message whenever 1777 a procedure call is used as a select statement trigger and is not an 1778 entry renaming or a primitive of a limited interface. 1779 (Valid_Conversion): If the operand has a single interpretation do not 1780 remove address operations. 1781 (Check_Infinite_Recursion): Skip freeze nodes when looking for a raise 1782 statement to inhibit warning. 1783 (Resolve_Unary_Op): Do not produce a warning when 1784 processing an expression of the form -(A mod B) 1785 Use Universal_Real instead of Long_Long_Float when we need a high 1786 precision float type for the generated code (prevents gratuitous 1787 Vax_Float stuff when pragma Float_Representation (Vax_Float) used) 1788 (Resolve_Concatenation_Arg): Improve error message when argument is an 1789 ambiguous call to a function that returns an array. 1790 (Make_Call_Into_Operator, Operand_Type_In_Scope): Do not check that 1791 there is an implicit operator in the given scope if we are within an 1792 instance: legality check has been performed on the generic. 1793 (Resolve_Unary_Op): Apply warnings checks on argument of Abs operator 1794 after resolving operand, to avoid false warnings on overloaded calls. 1795 17962005-11-14 Ed Schonberg <schonberg@adacore.com> 1797 Javier Miranda <miranda@adacore.com> 1798 1799 PR ada/15604 1800 * sem_type.adb (Covers): In an inlined body, a composite type matches 1801 a private type whose full view is a composite type. 1802 (Interface_Present_In_Ancestor): Protect the frontend against 1803 previously detected errors to ensure that its compilation 1804 with assertions enabled gives the same output that its 1805 compilation without assertions. 1806 (Interface_Present_In_Ancestor): Add support for private types. 1807 Change name In_Actual to In_Generic_Actual (clean up) 1808 (Disambiguate): New predicate In_Actual, to recognize expressions that 1809 appear in the renaming declaration generated for generic actuals, and 1810 which must be resolved in the outer context. 1811 18122005-11-14 Robert Dewar <dewar@adacore.com> 1813 Thomas Quinot <quinot@adacore.com> 1814 Hristian Kirtchev <kirtchev@adacore.com> 1815 Ed Schonberg <schonberg@adacore.com> 1816 1817 * sem_util.ads, sem_util.adb: Change name Is_Package to 1818 Is_Package_Or_Generic_Package. 1819 (Check_Obsolescent): New procedure. 1820 (Set_Is_Public): Remove obsolete junk test. 1821 (Set_Public_Status): Do not set Is_Public on an object whose declaration 1822 occurs within a handled_sequence_of_statemets. 1823 (Is_Controlling_Limited_Procedure): Factor some of the logic, account 1824 for a parameterless procedure. 1825 (Enter_Name): Recognize renaming declarations created for private 1826 component of a protected type within protected operations, so that 1827 the source name of the component can be used in the debugger. 1828 18292005-11-14 Ed Schonberg <schonberg@adacore.com> 1830 Robert Dewar <dewar@adacore.com> 1831 1832 * sem_warn.ads, sem_warn.adb (Publicly_Referenceable): Generic formals 1833 of a generic subprogram are not visible outside the body. 1834 (Set_Warning_Switch): New procedure (code to set warning mode moved 1835 here from Switch.C so that it can be shared by pragma processing. 1836 (Check_References): Special case warning for non-modified non-imported 1837 volatile objects. 1838 * par-prag.adb: Modify processing of pragma Warnings to accomodate new 1839 form with a string literal argument 1840 18412005-11-14 Javier Miranda <miranda@adacore.com> 1842 1843 * s-finroo.ads, s-finroo.adb (Read): Addition of "not null" to the 1844 anonymous access. 1845 (Write): Addition of "not null" to the anonymous access. 1846 (Read): Addition of "not null" to the anonymous access. 1847 (Write): Addition of "not null" to the anonymous access. 1848 1849 * s-strxdr.adb, s-stratt.ads, s-stratt.adb (I_AD, I_AS, I_B, I_C, I_F, 1850 I_I, I_LF, I_LI, I_LLF, I_LLI, I_LLU, I_LU, I_SF, I_SI, I_SSI, I_SSU, 1851 I_SU, I_U, I_WC): Addition of "not null" to the anonymous access. 1852 (W_AD, W_AS, W_B, W_C, W_F, W_I, W_LF, W_LI, W_LLF, W_LLI, W_LLU, 1853 W_LU, W_SF, W_SI, W_SSI, W_SSU, W_SU, W_U, W_WC): Addition of 1854 "not null" to the anonymous access. 1855 18562005-11-14 Robert Dewar <dewar@adacore.com> 1857 1858 * s-stoele.adb: Fix code for Address mod Storage_Offset for negative 1859 offset values 1860 18612005-11-14 Vincent Celier <celier@adacore.com> 1862 1863 * switch.adb (Bad_Switch): New procedure 1864 (Scan_Nat, Scan_Pos): Directly call Osint.Fail with the appropriate 1865 message when in error. 1866 1867 * switch.ads (Bad_Switch, Bad_Switch_Value, Missing_Switch_Value, 1868 Too_Many_Output_Files): Remove declarations, no longer used. 1869 (Scan_Nat): New parameter Switch 1870 (Scan_Pos): Ditto 1871 (Bad_Switch): New procedure 1872 1873 * switch-b.adb (Scan_Binder_Switches): Replace "raise Bad_Switch;" 1874 with call to new procedure Bad_Switch. Call Scan_Pos and Scan_Natwith 1875 new parameter Switch. Replace "raise Too_Many_Output_Files;" with call 1876 to Osint.Fail. Do not handle any exception. 1877 18782005-11-14 Vincent Celier <celier@adacore.com> 1879 1880 * tempdir.adb (Tempdir): Do not use environment variable TMPDIR if it 1881 designates a non existent directory. 1882 18832005-11-14 Robert Dewar <dewar@adacore.com> 1884 1885 * xgnatugn.adb: Replace invalid membership test by 'Valid 1886 18872005-11-14 Vincent Celier <celier@adacore.com> 1888 1889 * makegpr.adb (Gprmake): Do not attempt to build the global archive if 1890 there is no object directory. 1891 18922005-11-14 Robert Dewar <dewar@adacore.com> 1893 1894 * usage.adb: Minor adjustment to output format, use nn instead of nnn 1895 (so that -gnateInnn does not run into next column) 1896 18972005-11-14 Ed Falis <falis@adacore.com> 1898 1899 * s-bitops.adb (Bits_Array): corrected comment: "unconstrained" => 1900 "constrained" 1901 19022005-11-14 Cyrille Comar <comar@adacore.com> 1903 1904 * s-chepoo.ads: Add comments on Dereference. 1905 Remove unnecessary inherited abstract primitives. 1906 Cosmetic cleanup. 1907 19082005-11-14 Robert Dewar <dewar@adacore.com> 1909 1910 * sem_cat.ads (Validate_Access_Type_Declaration): Remove declaration 1911 node parameter, not needed, since it is available as Declaration_Node. 1912 19132005-11-14 Geert Bosch <bosch@adacore.com> 1914 1915 * s-exnllf.adb (Exn_LLF): Fix comment to be more precise and 1916 grammatically correct. 1917 19182005-11-14 Vincent Celier <celier@adacore.com> 1919 1920 * s-fileio.ads: Correct spelling error in comment 1921 19222005-11-14 Cyrille Comar <comar@adacore.com> 1923 Robert Dewar <dewar@adacore.com> 1924 Vincent Celier <celier@adacore.com> 1925 Ben Brosgol <brosgol@adacore.com> 1926 Jose Ruiz <ruiz@adacore.com> 1927 Pascal Obry <obry@adacore.com> 1928 1929 * gnat_ugn.texi: 1930 Document that -fstack-check is needed for strict compliance with the 1931 Ada 95 Reference Manual. 1932 Correct reference to VAX systems to meet HP guidelines 1933 Add documentation for new gnatmake switches -vl, -vm and -vh 1934 Replace DEC Ada by HP Ada 1935 Replace DIGITAL by HP 1936 Remove empty section on tools in compatibility section 1937 Clarify the Windows convention semantics. 1938 Document the Win32 calling convention. 1939 The Stdcall, Win32 and DLL convention are synonyms. 1940 Add a note in -gnatR description about zero size record components 1941 Note on new >= and <= warnings for -gnatwc 1942 Document that equal sign after -gnatm is optional. 1943 Note that strip is working fine on DLL built with a Library 1944 Project. The restriction apply only to DLL built with gnatdll. 1945 Update section about the way to debug a DLL. 1946 Update information about the DLL convention. 1947 Document -C switch for gnatprep 1948 Document new attribute Library_ALI_Dir 1949 Update elaboration doc to include implicit Elaborate pragmas now 1950 generated for subprogram instantiations. 1951 Document limitation on executable names that include spaces for --GCC, 1952 --GNATBIND, and --GNATLINK switches. 1953 Document that -w causes -gnatws to be added at start of gcc switches 1954 1955 * gnat_rm.texi: Document that -mieee is needed for generating infinite 1956 and NaN values in case of overflow on machines that are not fully 1957 compliant with the IEEE floating-point standard. 1958 Create a section describing the set of compiler options needed for 1959 strict compliance with the Ada 95 Reference Manual. 1960 Add documentation for pragma Obsolescent applied to a package 1961 Clarify potential issues of mixed language programs related to the 1962 I/O buffering enabling in the elaboration of the GNAT runtime. 1963 Add extra documentation for pragma Restrictions (No_Elaboration_Code) 1964 This documentation only patch adds extra documentsion for pragma 1965 Restrictions (No_Elaboration_Code), explaining why it is not possible 1966 to document this restriction in terms of allowed source constructs. 1967 Document string literal form of pragma Warnings 1968 Document new attribute Library_ALI_Dir 1969 Add documentation on stable attributes in project files that was missing 1970 1971 * gnat-style.texi: Indicate that paragraphs within a single comment 1972 should be separated by empty comment lines 1973 1974 * ug_words: Added replacements for -gnat95 and -gnat05 (/95 and 1975 /05 respectively) 1976 1977 * bindusg.adb: Minor cleanup, put -m before -M for consistency 1978 19792005-11-14 Robert Dewar <dewar@adacore.com> 1980 1981 * a-secain.adb, a-slcain.adb, a-shcain.adb, a-chtgke.ads, a-chtgke.adb, 1982 a-stwiha.adb, a-strhas.adb, a-chzla1.ads, a-chzla9.ads, a-stzbou.adb, 1983 a-stzbou.ads, a-stzfix.adb, a-stzhas.adb, a-stzmap.adb, a-stzmap.ads, 1984 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, a-stzunb.adb, 1985 a-stzunb.ads, a-szuzha.adb, a-szuzha.ads, a-szuzti.adb, a-szuzti.ads, 1986 a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, a-ztcstr.adb, a-ztcstr.ads, 1987 a-ztdeau.adb, a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, 1988 a-ztedit.ads, a-ztenau.ads, a-ztenio.adb, a-ztenio.ads, a-ztexio.adb, 1989 a-ztexio.ads, a-ztfiio.adb, a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, 1990 a-ztflio.adb, a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, 1991 a-ztinau.ads, a-ztinio.adb, a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, 1992 a-zttest.adb, g-enblsp-vms-alpha.adb, g-enblsp-vms-alpha.adb, 1993 g-enblsp-vms-ia64.adb, g-enblsp-vms-ia64.adb, system-linux-hppa.ads, 1994 a-chacon.adb, a-chacon.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, 1995 a-zchuni.ads, g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb, 1996 system-hpux-ia64.ads, g-soccon-unixware.ads, g-soliop-unixware.ads, 1997 g-soccon-interix.ads, g-soliop-solaris.ads, g-eacodu-vms.adb, 1998 g-expect-vms.adb, g-socthi-vms.adb, g-soliop-mingw.ads, 1999 a-intnam-unixware.ads, a-intnam-lynxos.ads, a-intnam-tru64.ads, 2000 a-intnam-aix.ads, a-intnam-linux.ads, a-intnam-linux.ads, 2001 a-intnam-dummy.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, 2002 a-intnam-solaris.ads, a-calend-vms.adb, a-calend-vms.ads, 2003 a-intnam-vms.ads, a-calend-mingw.adb, a-intnam-mingw.ads, 2004 a-intnam-vxworks.ads, a-numaux-vxworks.ads, system-unixware.ads, 2005 system-linux-ia64.ads, a-intnam-freebsd.ads, system-freebsd-x86.ads, 2006 system-lynxos-ppc.ads, system-linux-x86_64.ads, a-stunha.adb, 2007 a-cgaaso.ads, a-cgaaso.adb, a-chtgop.adb, a-cgcaso.adb, a-cgarso.adb, 2008 a-cohata.ads, a-crbtgk.adb, a-crbltr.ads, a-coprnu.adb, a-rbtgso.adb, 2009 a-intnam-darwin.ads, system-darwin-ppc.ads, gprmake.adb, makegpr.ads, 2010 system-tru64.ads, system-aix.ads, system-solaris-x86.ads, 2011 system-irix-o32.ads, s-interr-sigaction.adb, system-irix-n32.ads, 2012 s-parame-mingw.adb, system-hpux.ads, s-traceb-hpux.adb, 2013 system-linux-x86.ads, s-inmaop-dummy.adb, system-os2.ads, 2014 system-interix.ads, system-solaris-sparc.ads, 2015 system-solaris-sparcv9.ads, s-inmaop-vms.adb, 2016 s-mastop-vms.adb, expander.adb, expander.ads, s-gloloc-mingw.adb, 2017 system-mingw.ads, system-vms-zcx.ads, s-osinte-fsu.adb, 2018 s-traceb-mastop.adb, a-exextr.adb, a-exstat.adb, a-filico.ads, 2019 a-finali.ads, a-interr.ads, a-intsig.adb, a-intsig.ads, 2020 a-except.ads, a-numaux-x86.ads, a-astaco.adb, a-calend.adb, 2021 a-calend.ads, a-chahan.adb, a-chahan.ads, a-chlat9.ads, 2022 a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, 2023 a-comlin.adb, a-comlin.ads, a-cwila1.ads, a-cwila9.ads, 2024 a-elchha.adb, a-decima.adb, a-decima.ads, a-diocst.ads, 2025 a-direio.adb, a-direio.ads, a-excach.adb, a-excach.adb, 2026 a-exctra.ads, ali-util.adb, a-ngcefu.adb, a-ngcoty.adb, 2027 a-ngcoty.ads, a-nudira.adb, a-nudira.ads, a-nuflra.adb, 2028 a-numaux.ads, a-reatim.ads, a-sequio.adb, a-sequio.ads, 2029 a-siocst.ads, a-ssicst.ads, a-stmaco.ads, a-storio.adb, 2030 a-strbou.adb, a-strbou.ads, a-stream.ads, a-strfix.adb, 2031 a-strmap.adb, a-strmap.ads, a-strsea.adb, a-strsea.ads, 2032 a-strsup.adb, a-strsup.ads, a-strunb.adb, a-strunb.ads, 2033 a-stwibo.adb, a-stwibo.ads, a-stwifi.adb, a-stwima.adb, 2034 a-stwima.ads, a-stwise.adb, a-stwise.ads, a-stwisu.adb, 2035 a-stwisu.ads, a-stwiun.adb, a-stwiun.ads, a-suteio.adb, 2036 a-suteio.ads, a-swmwco.ads, a-swuwti.adb, a-swuwti.ads, 2037 a-sytaco.adb, a-sytaco.ads, a-tasatt.adb, a-taside.adb, 2038 a-taside.ads, a-teioed.adb, a-textio.adb, a-textio.ads, 2039 a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tideau.adb, 2040 a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, 2041 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinau.adb, 2042 a-tiinio.adb, a-timoau.adb, a-timoio.adb, a-timoio.ads, 2043 a-tiocst.ads, a-titest.adb, atree.adb, a-witeio.adb, 2044 a-witeio.ads, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, 2045 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtedit.adb, 2046 a-wtedit.ads, a-wtenau.adb, a-wtenio.adb, a-wtfiio.adb, 2047 a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, 2048 a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, back_end.adb, 2049 bindgen.adb, butil.adb, butil.ads, checks.ads, cio.c, comperr.adb, 2050 csets.ads, cstand.adb, debug.ads, elists.ads, errno.c, errout.adb, 2051 errout.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 2052 errutil.ads, err_vars.ads, eval_fat.adb, exp_ch11.adb, exp_ch11.ads, 2053 exp_ch2.adb, exp_ch7.ads, exp_imgv.ads, exp_pakd.adb, exp_prag.adb, 2054 exp_prag.ads, exp_tss.adb, exp_tss.ads, exp_vfpt.ads, fe.h, fmap.adb, 2055 freeze.ads, frontend.adb, frontend.ads, g-arrspl.adb, g-arrspl.ads, 2056 g-awk.adb, g-awk.ads, g-boumai.ads, g-calend.adb, g-calend.ads, 2057 g-catiio.adb, g-comlin.adb, g-comlin.ads, g-comlin.ads, g-comlin.ads, 2058 g-comver.adb, g-crc32.adb, g-crc32.ads, g-ctrl_c.ads, g-curexc.ads, 2059 g-debpoo.ads, g-debuti.adb, g-diopit.adb, g-diopit.ads, g-dirope.adb, 2060 g-dirope.ads, g-dyntab.adb, g-dyntab.ads, g-excact.adb, g-excact.ads, 2061 g-except.ads, g-exctra.adb, g-exctra.ads, g-expect.ads, g-flocon.ads, 2062 g-hesorg.ads, g-io.adb, g-locfil.ads, g-md5.adb, g-md5.ads, g-md5.ads, 2063 g-moreex.adb, g-signal.ads, g-signal.adb, gnatbind.ads, gnatchop.adb, 2064 gnatcmd.adb, gnatfind.adb, gnatlbr.adb, gnatmake.ads, gnatmem.adb, 2065 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, g-os_lib.adb, 2066 g-os_lib.ads, g-pehage.adb, g-pehage.ads, gprep.ads, g-regexp.adb, 2067 g-regexp.ads, g-regist.adb, g-regist.ads, g-regpat.ads, g-semaph.adb, 2068 g-socthi.adb, g-soliop.ads, g-spipat.adb, g-spipat.ads, g-sptabo.ads, 2069 g-sptain.ads, g-sptavs.ads, g-string.ads, g-tasloc.adb, g-tasloc.ads, 2070 g-trasym.adb, g-trasym.ads, i-fortra.adb, i-fortra.ads, inline.adb, 2071 layout.adb, live.adb, make.ads, makeutl.ads, makeutl.adb, mdll-fil.adb, 2072 mdll-fil.ads, mdll-utl.ads, memroot.ads, memtrack.adb, mlib.ads, 2073 mlib-fil.adb, mlib-fil.ads, mlib-prj.ads, mlib-utl.adb, mlib-utl.ads, 2074 nlists.adb, nlists.ads, osint.adb, osint.ads, osint-c.adb, osint-l.adb, 2075 osint-l.ads, osint-m.ads, output.adb, par.adb, par.adb, par.ads, 2076 par-ch11.adb, par-ch12.adb, par-ch2.adb, par-ch4.adb, par-ch5.adb, 2077 par-ch6.adb, par-ch9.adb, par-endh.adb, par-labl.adb, par-load.adb, 2078 par-tchk.adb, prep.adb, prepcomp.adb, prepcomp.ads, prj-attr.ads, 2079 prj-com.ads, prj-dect.adb, prj-dect.ads, prj-env.ads, prj-err.ads, 2080 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.ads, prj-pars.adb, 2081 prj-pars.ads, prj-part.ads, prj-pp.ads, prj-proc.ads, prj-strt.adb, 2082 prj-strt.ads, prj-tree.adb, prj-util.adb, prj-util.ads, rtsfind.adb, 2083 sem.adb, sem.ads, sem_case.adb, sem_case.ads, sem_ch11.adb, 2084 sem_ch4.adb, sem_ch6.ads, sem_ch7.ads, sem_dist.ads, sem_elab.ads, 2085 sem_elim.ads, sem_eval.ads, sem_intr.ads, sem_maps.adb, sem_maps.ads, 2086 sem_maps.ads, sem_res.ads, sem_type.ads, sfn_scan.adb, sfn_scan.ads, 2087 s-imgwch.ads, s-imgwiu.adb, s-imgwiu.ads, s-inmaop.ads, sinput.adb, 2088 sinput.ads, s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, 2089 s-pack06.adb, s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, 2090 s-pack09.ads, s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, 2091 s-pack12.adb, s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, 2092 s-pack14.ads, s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, 2093 s-pack18.adb, s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, 2094 s-pack20.ads, s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, 2095 s-pack23.adb, s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, 2096 s-pack25.ads, s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, 2097 s-pack28.adb, s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, 2098 s-pack30.ads, s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, 2099 s-pack34.adb, s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, 2100 s-pack36.ads, s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, 2101 s-pack39.adb, s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, 2102 s-pack41.ads, s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, 2103 s-pack44.adb, s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, 2104 s-pack46.ads, s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, 2105 s-pack49.adb, s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, 2106 s-pack51.ads, s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, 2107 s-pack54.adb, s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, 2108 s-pack56.ads, s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, 2109 s-pack59.adb, s-pack59.ads, s-pack60.adb, s-pack60.adb, s-pack60.ads, 2110 s-pack61.adb, s-pack61.ads, s-pack62.adb, s-pack62.ads, s-pack63.adb, 2111 s-pack63.ads, s-parint.adb, s-parint.adb, s-parint.ads, sprint.ads, 2112 s-purexc.ads, s-restri.ads, s-restri.adb, s-scaval.adb, s-scaval.ads, 2113 s-secsta.adb, s-secsta.ads, s-sequio.adb, s-sequio.ads, stand.ads, 2114 s-tasuti.adb, s-traceb.adb, s-traceb.ads, stringt.adb, stringt.ads, 2115 styleg.ads, s-valboo.adb, s-valboo.ads, s-valcha.adb, s-valcha.ads, 2116 s-valdec.adb, s-valdec.ads, s-valint.adb, s-valint.ads, s-valint.ads, 2117 s-vallld.adb, s-vallld.ads, s-vallli.adb, s-vallli.ads, s-valllu.adb, 2118 s-valllu.ads, s-valrea.adb, s-valrea.ads, s-valuns.adb, s-valuns.ads, 2119 s-valuti.adb, s-valuti.ads, s-valwch.ads, s-veboop.adb, s-veboop.ads, 2120 s-vercon.adb, s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchcon.ads, 2121 s-wchjis.adb, s-wchjis.ads, s-wchstw.adb, s-wchstw.adb, s-wchstw.ads, 2122 s-wchwts.adb, s-wchwts.ads, s-widboo.adb, s-widboo.ads, s-widcha.adb, 2123 s-widcha.ads, s-widenu.adb, s-widenu.ads, s-widlli.adb, s-widlli.ads, 2124 s-widllu.adb, s-widllu.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, 2125 s-wwdcha.ads, s-wwdenu.adb, s-wwdenu.ads, symbols.adb, symbols.ads, 2126 table.ads, targparm.adb, targparm.ads, tb-alvms.c, tb-alvxw.c, 2127 tbuild.adb, tree_io.ads, treepr.adb, treeprs.adt, ttypef.ads, 2128 ttypes.ads, types.adb, uintp.adb, uintp.ads, uname.ads, urealp.ads, 2129 usage.ads, validsw.ads, vxaddr2line.adb, widechar.adb, widechar.ads, 2130 xeinfo.adb, xnmake.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, 2131 xsinfo.adb, xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, 2132 a-dirval.ads, a-dirval.adb, a-dirval-mingw.adb, a-direct.ads, 2133 a-direct.adb, indepsw.ads, prj-attr-pm.ads, system-linux-ppc.ads, 2134 a-numaux-darwin.ads, a-numaux-darwin.adb, 2135 a-swuwha.ads, a-stunha.ads: Minor reformatting 2136 21372005-11-14 Robert Dewar <dewar@adacore.com> 2138 2139 PR ada/18434 2140 * osint-m.adb: Add pragma Elaborate_All for Osint 2141 21422005-11-10 Eric Botcazou <ebotcazou@adacore.com> 2143 2144 PR ada/23995 2145 * trans.c (call_to_gnu): Restore statement lost in translation. 2146 21472005-11-08 Eric Botcazou <ebotcazou@adacore.com> 2148 2149 * init.c: Use the Linux-specific section for the IA-64/Linux target. 2150 (__gnat_adjust_context_for_raise): Add conditional code so that the 2151 IA-64 is also supported. 2152 21532005-11-03 James E Wilson <wilson@specifix.com> 2154 2155 PR ada/23427 2156 * trans.c (gnat_to_gnu): Use TYPE_SIZE_UNIT not TYPE_SIZE in 2157 TREE_OVERFLOW check. 2158 21592005-09-21 Olivier Hainque <hainque@adacore.com> 2160 2161 PR ada/22418 2162 * decl.c (maybe_pad_type): Use proper bitsizetype for XVZ objects, 2163 as we create them to store a size in bits. 2164 21652005-10-21 Eric Botcazou <ebotcazou@adacore.com> 2166 2167 PR ada/21937 2168 PR ada/22328 2169 PR ada/22381 2170 PR ada/22383 2171 PR ada/22419 2172 PR ada/22420 2173 * utils2.c (build_return_expr): New helper function. 2174 * gigi.h (build_return_expr): Declare it. 2175 * trans.c (Subprogram_Body_to_gnu): Use build_return_expr instead 2176 of manually building the RETURN_EXPR tree. 2177 (call_to_gnu): Pass MODIFY_EXPR through build_binary_op. 2178 (gnat_to_gnu) <N_Return_Statement>: Pass MODIFY_EXPR through 2179 build_binary_op for the "target pointer" case. Use build_return_expr 2180 instead of manually building the RETURN_EXPR tree. 2181 21822005-09-16 Laurent Guerby <laurent@guerby.net> 2183 2184 PR ada/23788 2185 * s-tpinop.ads: Make this unit Preelaborate. 2186 21872005-09-16 Andreas Jaeger <aj@suse.de> 2188 2189 * socket.c: Add string.h for memcpy. 2190 21912005-09-05 Arnaud Charlet <charlet@adacore.com> 2192 2193 * dec-io.ads, dec-io.adb: Removed, no longer used. 2194 21952005-09-01 Arnaud Charlet <charlet@adacore.com> 2196 2197 * a-calend-mingw.adb: Add call to OS_Primitives.Initialize; 2198 2199 * s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, 2200 s-taprop-os2.adb, s-taprop-irix-athread.adb, s-taprop-linux.adb, 2201 s-taprop-hpux-dce.adb, s-taprop-irix.adb, s-taprop-tru64.adb, 2202 s-taprop-lynxos.adb: Move with clauses outside Warnings Off now that 2203 dependent units are Preelaborate. 2204 (Initialize): Call Interrupt_Managemeent.Initialize and 2205 OS_Primitives.Initialize to ensure proper initialization of this unit. 2206 Remove use of System.Soft_Links 2207 Make this unit Preelaborate. 2208 2209 * s-stache.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, 2210 s-taspri-vms.ads, s-tasinf-solaris.ads, s-taspri-os2.ads, 2211 s-taspri-lynxos.ads, s-taspri-hpux-dce.ads, s-taspri-tru64.ads, 2212 s-tasinf-tru64.ads, s-tasinf-irix.ads, s-tasinf-irix-athread.ads, 2213 s-proinf-irix-athread.adb, s-proinf-irix-athread.ads, 2214 s-tratas.ads, s-tasinf.ads: Minor reformatting. 2215 Add pragma Preelaborate, since these packages are suitable for this 2216 categorization. 2217 Update comments. 2218 2219 * s-traent-vms.ads, s-intman-dummy.adb, 2220 s-taprop-dummy.adb: Make this unit Preelaborate. 2221 2222 * s-osprim-vxworks.adb, s-osprim-vms.adb, s-osprim-vms.ads, 2223 s-osprim-mingw.adb, s-intman-vxworks.ads, s-intman-vxworks.adb, 2224 s-intman-vms.adb, s-intman-mingw.adb, s-intman-vms.ads, 2225 s-osprim-unix.adb, s-osprim-os2.adb, s-osprim-solaris.adb, 2226 s-intman-solaris.adb, s-intman-irix-athread.adb, 2227 s-intman-irix.adb: Mark this unit Preelaborate. 2228 (Initialize): New procedure. 2229 Update comments. 2230 2231 * s-taspri-linux.ads: Removed. 2232 2233 * s-tpopsp-solaris.adb (Initialize): Create the key in this procedure, 2234 as done by other implementations (e.g. posix). 2235 2236 * s-taprop.ads (Timed_Delay): Update spec since the caller now is 2237 responsible for deferring abort. 2238 Mark this unit Preelaborate. 2239 2240 * s-taprob.adb, s-tarest.adb: Call System.Tasking.Initialize to ensure 2241 proper initialization of the tasking run-time. 2242 2243 * s-tasdeb.ads: Mark this unit Preelaborate. 2244 (Known_Tasks): Add explicit default value to avoid elaboration code. 2245 2246 * s-inmaop-vms.adb (Elaboration code): Add call to 2247 Interrupt_Management.Initialize since the elaboration code depends on 2248 proper initialization of this package. 2249 2250 * s-intman.ads, s-inmaop-posix.adb, s-intman-posix.adb, 2251 s-osprim.ads, s-taprop-posix.adb, s-taspri-posix.ads, 2252 s-osprim-posix.adb: Make this unit Preelaborate. 2253 2254 * a-calend.adb: Add call to OS_Primitives.Initialize 2255 2256 * a-elchha.adb: Update use of Except.Id.Full_Name. 2257 Minor reformatting. 2258 Remove use of Ada.Exceptions.Traceback when possible, cleaner. 2259 2260 * a-dynpri.adb, a-sytaco.adb, a-sytaco.ads: 2261 Move with clauses outside Warnings Off now that dependent units are 2262 Preelaborate. 2263 Use raise xxx with "..."; Ada 2005 form. 2264 2265 * a-taside.ads, a-taside.adb: 2266 Remove some dependencies, to make it easier to make this unit truly 2267 Preelaborate. 2268 Rewrite some code to be conformant with Preelaborate rules. 2269 2270 * g-os_lib.adb: Remove non-preelaborate code so that this unit can be 2271 marked Preelaborate in the future. 2272 2273 * s-proinf.ads, g-string.ads, s-auxdec.ads, s-auxdec-vms_64.ads: Make 2274 these units Preelaborate. 2275 2276 * s-exctab.adb: Update use of Except.Id.Full_Name. 2277 2278 * s-soflin.ads, s-soflin.adb: Mark this unit Preelaborate_05. 2279 (Set_Exc_Stack_Addr_Soft, Get_Exc_Stack_Addr_NT, Set_Exc_Stack_Addr_NT, 2280 Set_Exc_Stack_Addr): Removed, no longer used. 2281 Remove reference to *Machine_State_Addr*, no longer needed. 2282 2283 * s-stalib.ads: Mark this unit as Preelaborate[_05]. 2284 (Exception_Data): Full_Name is now a System.Address so that this unit 2285 can be made Preelaborate. 2286 Clean up/simplify code thanks to Full_Name being a System.Address. 2287 Remove obsolete pragma Suppress (All_Checks), no longer needed. 2288 2289 * s-taskin.ads, s-taskin.adb: 2290 Move with clauses outside Warnings Off now that dependent units are 2291 Preelaborate. 2292 Make this unit Preelaborate. 2293 (Initialize): New proceduure, replace elaboration code and makes the 2294 set up of the tasking run-time cleaner. 2295 (Detect_Blocking): Now a function instead of a deferred boolean, to 2296 obey Preelaborate rules. 2297 2298 * s-tassta.adb (Finalize_Global_Tasks): Remove Get/Set_Exc_Stack_Addr 2299 soft links, no longer used. 2300 2301 * s-traces.ads, s-traent.ads: Add pragma Preelaborate, since these 2302 packages are suitable for this categorization. 2303 2304 * s-solita.adb: Replace use of Ada.Exception by raise xxx with "..." 2305 since we compile run-time sources in Ada 2005 mode. 2306 (Timed_Delay_T): Call Abort_Defer/Undefer around Timed_Delay, to 2307 avoid having s-taprop*.adb depend on s-soflin and to avoid code 2308 duplication. 2309 Remove reference to *Machine_State_Addr*, no longer needed. 2310 23112005-09-01 Arnaud Charlet <charlet@adacore.com> 2312 2313 * s-mastop-tru64.adb, s-mastop-irix.adb, s-mastop-vms.adb 2314 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used. 2315 Remove reference to System.Exceptions. 2316 2317 * s-mastop-x86.adb: Removed, no longer used. 2318 2319 * s-traceb-mastop.adb: Adjust calls to Pop_Frame. 2320 2321 * a-excach.adb: Minor reformatting. 2322 2323 * a-except.ads, a-except.adb: Remove global Warnings (Off) pragma, and 2324 instead fix new warnings that were hidden by this change. 2325 (AAA, ZZZ): Removed, replaced by... 2326 (Code_Address_For_AAA, Code_Address_For_ZZZ): ... these functions, who 2327 are used instead of constants, to help make Ada.Exception truly 2328 preelaborate. 2329 (Rcheck_*, Raise_Constraint_Error, Raise_Program_Error, 2330 Raise_Storage_Error): File is now a System.Address, to simplify code. 2331 (Elab code): Removed, no longer used. 2332 (Null_Occurrence): Remove Warnings Off and make this construct 2333 preelaborate. 2334 Remove code related to front-end zero cost exception handling, since 2335 it is no longer used. 2336 Remove -gnatL/-gnatZ switches. 2337 2338 * a-exexda.adb (Append_Info_Exception_Name, Set_Exception_C_Msg): 2339 Update use of Except.Msg. 2340 2341 * gnat1drv.adb, inline.adb, bindgen.adb, debug.adb, exp_ch11.ads, 2342 freeze.adb, frontend.adb, lib.adb, exp_ch11.adb: Remove code related 2343 to front-end zero cost exception handling, since it is no longer used. 2344 Remove -gnatL/-gnatZ switches. 2345 2346 * lib-writ.ads: Minor reformatting 2347 Remove doc of UX 2348 2349 * Makefile.rtl: Remove references to s-except*, s-mastop-x86* 2350 2351 * Make-lang.in: Remove references to s-except.ads 2352 2353 * s-except.ads: Removed, no longer used. 2354 2355 * s-mastop.ads, s-mastop.adb: 2356 (Enter_Handler, Set_Signal_Machine_State): Removed, no longer used. 2357 Remove reference to System.Exceptions. 2358 2359 * raise.h, usage.adb, targparm.adb, targparm.ads, switch-m.adb, 2360 switch-b.adb: Remove code related to front-end zero cost exception 2361 handling, since it is no longer used. 2362 Remove -gnatL/-gnatZ switches. 2363 23642005-09-01 Robert Dewar <dewar@adacore.com> 2365 Gary Dismukes <dismukes@adacore.com> 2366 Javier Miranda <miranda@adacore.com> 2367 2368 * exp_ch4.adb (Expand_N_In): Replace test of expression in its own 2369 type by valid test and generate warning. 2370 (Tagged_Membership): Generate call to the run-time 2371 subprogram IW_Membership in case of "Iface_CW_Typ in Typ'Class" 2372 Change formal name Subtype_Mark to Result_Definition in several calls to 2373 Make_Function_Specification. 2374 (Expand_Allocator_Expression): Add tests for suppression of the AI-344 2375 check for proper accessibility of the operand of a class-wide allocator. 2376 The check can be left out if checks are suppressed or if the expression 2377 has a specific tagged type whose level is known to be safe. 2378 2379 * exp_ch5.adb (Expand_N_Assignment_Statement): Simplify the code that 2380 generates the run-time check associated with null-excluding entities. 2381 (Expand_N_Return_Statement): Add tests to determine if the accessibility 2382 check on the level of the return expression of a class-wide function 2383 can be elided. The check usually isn't needed if the expression has a 2384 specific type (unless it's a conversion or a formal parameter). Also 2385 add a test for whether accessibility checks are suppressed. Augment 2386 the comments to describe the conditions for performing the check. 2387 23882005-09-01 Hristian Kirtchev <kirtchev@adacore.com> 2389 Javier Miranda <miranda@adacore.com> 2390 Gary Dismukes <dismukes@adacore.com> 2391 Ed Schonberg <schonberg@adacore.com> 2392 2393 * a-tags.adb (IW_Membership): Give support to 2394 "Iface_CW_Typ in T'Class". For this purpose the functionality of this 2395 subprogram has been extended to look for the tag in the ancestors tag 2396 table. 2397 Update the structure of the GNAT Dispatch Table to reflect the 2398 additional two tables used in dispatching selects. 2399 Introduce appropriate array types and record components in 2400 Type_Specific_Data to reflect the two tables. 2401 (Get_Entry_Index, Set_Entry_Index): Retrieve and set the entry index in 2402 the TSD of a tag, indexed by position. 2403 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Retrieve and set the primitive 2404 operation kind in the TSD of a tag, indexed by position. 2405 2406 * a-tags.ads: Introduce an enumeration type to capture different 2407 primitive operation kinds. Define a constant reflecting the number of 2408 predefined primitive operations. 2409 (Get_Entry_Index, Set_Entry_Index): Set and retrieve the entry index 2410 of an entry wrapper. 2411 (Get_Prim_Op_Kind, Set_Prim_Op_Kind): Set and retrieve the kind of 2412 callable entity of a primitive operation. 2413 2414 * exp_ch3.adb (Freeze_Record_Type): Generate the declarations of the 2415 primitive operations used in dispatching selects for limited 2416 interfaces, limited tagged, task and protected types what implement a 2417 limited interface. 2418 (Freeze_Type): Generate the bodies of the primitive operations used in 2419 dispatching selects for limited tagged, task and protected types that 2420 implement a limited interface. Generate statements to populate the two 2421 auxiliary tables used for dispatching in select statements. 2422 (Freeze_Record_Type): Add call to initialize the dispatch table entries 2423 associated with predefined interface primitive operations. 2424 (Build_Dcheck_Function): Change Set_Subtype_Mark to 2425 Set_Result_Definition. 2426 (Build_Variant_Record_Equality): Change Subtype_Mark to 2427 Result_Definition. 2428 (Freeze_Enumeration_Type): Change Subtype_Mark to Result_Definition. 2429 (Predef_Spec_Or_Body): Change Subtype_Mark to Result_Definition. 2430 (Build_Assignment): Simplify the code that adds the run-time-check. 2431 (Expand_N_Object_Declaration): Code cleanup. 2432 2433 * exp_ch7.adb (Make_Clean): Select the appropriate type for locking 2434 entries when there is a protected type that implements a limited 2435 interface. 2436 2437 * exp_ch9.adb: Add package Select_Expansion_Utilities that contains 2438 common routines used in expansion of dispatching selects. 2439 (Add_Private_Declarations): Select the appropriate protection type when 2440 there is a protected type that implements a limited interface. 2441 (Build_Parameter_Block): Generate a wrapped parameter block. 2442 (Build_Protected_Subprogram_Body): Select the appropriate type for 2443 locking entries when there is a protected type that implements a 2444 limited interface. 2445 (Build_Wrapper_Spec): Set the flag and wrapped entity for procedures 2446 classified as entry wrappers. 2447 (Expand_N_Asynchronous_Select): Add support for expansion of dispatching 2448 asynchronous selects. 2449 (Expand_N_Conditional_Entry_Call): Add support for expansion of 2450 dispatching conditional selects. 2451 (Expand_N_Protected_Type_Declaration): Select the appropriate type for 2452 protection when there is a protected type that implements limited 2453 interfaces. 2454 (Expand_N_Timed_Entry_Call): Add support for expansion of dispatching 2455 timed selects. 2456 (Extract_Dispatching_Call): Extract the entity of the name of a 2457 dispatching call, the object parameter, actual parameters and 2458 corresponding formals. 2459 (Make_Initialize_Protection): Correct logic of protection initialization 2460 when there is a protected type that implements a limited interface. 2461 (Parameter_Block_Pack): Populate a wrapped parameter block with the 2462 values of actual parameters. 2463 (Parameter_Block_Unpack): Retrieve the values from a wrapped parameter 2464 block and assign them to the original actual parameters. 2465 2466 * exp_ch9.ads (Subprogram_Protection_Mode): New type. 2467 (Build_Protected_Sub_Specification): Change the type and name of the 2468 last formal to account for the increased variety of protection modes. 2469 2470 * einfo.ads, einfo.adb (Was_Hidden): New attribute. Present in all 2471 entities. Used to save the value of the Is_Hidden attribute when the 2472 limited-view is installed. 2473 (Is_Primitive_Wrapper, Set_Is_Primitive_Wrapper): Retrieve and change 2474 the attribute of procedures classified as entry wrappers. 2475 (Wrapped_Entity, Set_Wrapped_Entity): Retrieve and change the wrapped 2476 entity of a primitive wrapper. 2477 (Write_Entity_Flags): Output the name and value of the 2478 Is_Primitive_Wrapper attribute. 2479 (Write_Field27_Name): Output the name and entity of the field Wrapped_ 2480 Entity. 2481 (Underlying_Type): If we have an incomplete entity that comes from 2482 the limited view then we return the Underlying_Type of its non-limited 2483 view if it is already available. 2484 (Abstract_Interface_Alias): Flag applies to all subrogram kinds, 2485 including operators. 2486 (Write_Field26_Name): Add entry for Overridden_Operation 2487 (Overridden_Operation): New attribute of functions and procedures. 2488 2489 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Return a 2490 predefined position in the dispatch table for the primitive operations 2491 used in dispatching selects. 2492 (Init_Predefined_Interface_Primitives): Remove the hardcoded number of 2493 predefined primitive operations and replace it with 2494 Default_Prim_Op_Count. 2495 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, 2496 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Update 2497 the names of the generated primitive operations used in dispatching 2498 selects. 2499 (Init_Predefined_Interface_Primitives): No need to inherit primitives in 2500 case of abstract interface types. They will be inherit by the objects 2501 implementing the interface. 2502 (Make_DT): There is no need to inherit the dispatch table of the 2503 ancestor interface for the elaboration of abstract interface types. 2504 The dispatch table will be inherited by the object implementing the 2505 interface. 2506 (Copy_Secondary_DTs): Add documentation. 2507 (Validate_Position): Improve this static check in case of 2508 aliased subprograms because aliased subprograms must have 2509 the same position. 2510 (Init_Predefined_Interface_Primitives): New subprogram that initializes 2511 the entries associated with predefined primitives of all the secondary 2512 dispatch tables. 2513 (Build_Anonymous_Access_Type): Removed. 2514 (Expand_Interface_Actuals): With the previous cleanup there is no need 2515 to build an anonymous access type. This allows further cleanup in the 2516 code generated by the expander. 2517 (Expand_Interface_Conversion): If the actual is an access type then 2518 build an internal function to handle the displacement. If the actual 2519 is null this function returns null because no displacement is 2520 required; otherwise performs a type conversion that will be 2521 expanded in the code that returns the value of the displaced actual. 2522 (Expand_Interface_Actuals): Avoid the generation of unnecessary type 2523 conversions that have no effect in the generated code because no 2524 displacement is required. Code cleanup; use local variables to 2525 avoid repeated calls to the subprogram directly_designated_type(). 2526 2527 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): 2528 Classify the primitive operations used in dispatching selects as 2529 predefined. 2530 (Implements_Limited_Interface): Determine whether some type either 2531 directly implements a limited interface or extends a type that 2532 implements a limited interface. 2533 (Build_Task_Image_Function): Change Subtype_Mark to Result_Definition. 2534 (Expand_Subtype_From_Expr): Do not build actual subtype if the 2535 expression is limited. 2536 (Find_Interface_Tag): Add code to handle class-wide types and 2537 entities from the limited-view. 2538 2539 * rtsfind.ads: Add entries in RE_Id and RE_Unit_Table for 2540 Get_Entry_Index, Get_Prim_Op_Kind, POK_Function, POK_Procedure, 2541 POK_Protected_Entry, POK_Protected_Function, POK_Protected_Procedure, 2542 POK_Task_Entry, POK_Task_Procedure, Prim_Op_Kind, Set_Entry_Index, 2543 Set_Prim_Op_Kind. 2544 2545 * sem_ch9.adb (Analyze_Triggering_Alternative): Check for legal type 2546 of procedure name or prefix that appears as a trigger in a triggering 2547 alternative. 2548 2549 * uintp.ads: Introduce constants Uint_11 and Uint_13. 2550 25512005-09-01 Arnaud Charlet <charlet@adacore.com> 2552 2553 * s-tataat.adb, a-tasatt.adb: 2554 Replace calls to Defer/Undefer_Abortion by Defer/Undefer_Abort. 2555 2556 * s-tasini.ads, s-tasini.adb (Defer_Abortion, Undefer_Abortion): Moved 2557 these procedures to body, and renamed Abort_Defer, Abort_Undefer. 2558 (Get_Exc_Stack_Addr, Set_Exc_Stack_Addr): Removed, no 2559 longer used. 2560 25612005-09-01 Arnaud Charlet <charlet@adacore.com> 2562 Jose Ruiz <ruiz@adacore.com> 2563 2564 * s-taprop-vxworks.adb: 2565 Move with clauses outside Warnings Off now that dependent units are 2566 Preelaborate. 2567 (Initialize): Call Interrupt_Managemeent.Initialize to ensure proper 2568 initialization of this unit. 2569 (Specific): Add new procedures Initialize and Delete so that this 2570 package can be used for VxWorks 5.x and 6.x 2571 (ATCB_Key, ATCB_Key_Address): Moved to Specific package body to hide 2572 differences between VxWorks 5.x and 6.x 2573 Minor reformatting. 2574 (Timed_Delay): Remove calls to Defer/Undefer_Abort, now performed by 2575 caller. 2576 Use only Preelaborate-compatible constructs. 2577 2578 * s-tpopsp-vxworks.adb (ATBC_Key, ATCB_Key_Addr): Moved from 2579 Primitives.Operations. 2580 (Delete, Initialize): New procedures. 2581 2582 * s-osinte-vxworks.adb: Body used to handle differences between 2583 VxWorks 5.x and 6.x 2584 (kill, Set_Time_Slice, VX_FP_TASK): New functions. 2585 2586 * s-osinte-vxworks.ads: Minor reformatting. 2587 Add VxWworks 6.x specific functions (only called from VxWorks 6 files). 2588 (VX_FP_TASK): Now a function, to handle differences between VxWorks 5 2589 and 6. 2590 (Set_Time_Slice): New function, replacing kerneltimeSlice to share code 2591 between Vxworks 5 and 6. 2592 (taskLock, taskUnlock): Removeed, no longer used. 2593 2594 * adaint.c: The wait.h header is not located in the sys directory on 2595 VxWorks when using RTPs. 2596 (__gnat_set_env_value): Use setenv instead of putenv on VxWorks when 2597 using RTPs. 2598 (__gnat_dup): dup is available on Vxworks when using RTPs. 2599 (__gnat_dup2): dup2 is available on Vxworks when using RTPs. 2600 2601 * cal.c: Use the header time.h for Vxworks 6.0 when using RTPs. 2602 2603 * expect.c: The wait.h header is not located in the sys directory on 2604 VxWorks when using RTPs. 2605 26062005-09-01 Thomas Quinot <quinot@adacore.com> 2607 2608 * g-soccon-vms.adb: Renamed to g-soccon-vms.ads 2609 2610 * g-soccon-vms.ads: Renamed from g-soccon-vms.adb 2611 2612 * g-soccon.ads, g-soccon-tru64.ads, g-soccon-aix.ads, 2613 g-soccon-darwin.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 2614 g-soccon-solaris.ads, g-soccon-mingw.ads, g-soccon-vxworks.ads, 2615 g-soccon-freebsd.ads: Add new constants: 2616 IP_MULTICAST_IF 2617 SO_RCVTIMEO/SO_SNDTIMEO 2618 IOV_MAX 2619 2620 * gen-soccon.c: 2621 Move all target-specific file inclusions and macro definitions to 2622 gsocket.h, in order to ensure that any C code in socket.c will see a 2623 set of constants that is consistent with the contents of g-soccon.ads. 2624 2625 * gsocket.h: Code imported from gen-soccon.c: 2626 Move all target-specific file inclusions and macro definitions to 2627 gsocket.h, in order to ensure that any C code in socket.c will see a set 2628 of constants that is consistent with the contents of g-soccon.ads. 2629 This change also makes gen-soccon self-contained (removing dependencies 2630 upon GCC internal headers). 2631 2632 * g-socket.adb (Send_Vector): Make calls to Writev at most IOV_MAX 2633 iovecs at a time. 2634 (To_Inet_Addr): Now a procedure instead of a function, more efficient. 2635 2636 * socket.c: Minor reformatting. 2637 26382005-09-01 Ed Schonberg <schonberg@adacore.com> 2639 Thomas Quinot <quinot@adacore.com> 2640 2641 * fname-sf.adb, mlib-tgt.ads, 2642 back_end.adb, casing.adb, g-debpoo.adb, g-excact.adb, g-spipat.adb, 2643 g-spipat.ads, g-thread.adb, lib-list.adb, makeutl.adb, mlib.adb, 2644 osint.adb, par-ch10.adb, par-load.adb, prep.adb, prj.adb, prj-attr.ads, 2645 prj-env.ads, prj-err.adb, prj-err.ads, prj-ext.adb, prj-ext.ads, 2646 prj-makr.adb, prj-makr.ads, prj-pars.ads, prj-part.adb, prj-strt.adb, 2647 prj-tree.ads, prj-util.ads, sem_dist.adb, sinput-c.ads, sinput-l.ads, 2648 sinput-p.ads, styleg-c.ads, xr_tabls.adb, prj-attr-pm.ads, 2649 makegpr.adb: Remove redundant use_clauses. 2650 26512005-09-01 Arnaud Charlet <charlet@adacore.com> 2652 2653 * s-stoele.ads, s-stopoo.ads, s-stratt.ads, s-strops.ads, s-unstyp.ads, 2654 s-valboo.ads, s-valcha.ads, s-valdec.ads, s-valenu.ads, s-valint.ads, 2655 s-vallld.ads, s-vallli.ads, s-valllu.ads, s-valrea.ads, s-valuns.ads, 2656 s-valuti.ads, s-valwch.ads, s-veboop.ads, s-vector.ads, s-vercon.ads, 2657 s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-wchstw.ads, s-wchwts.ads, 2658 s-widboo.ads, s-widcha.ads, s-widenu.ads, s-widlli.ads, s-widllu.ads, 2659 s-widwch.ads, s-wwdcha.ads, s-wwdenu.ads, s-wwdwch.ads, system.ads, 2660 table.ads, types.ads, system-vms_64.ads, s-crtl-vms64.ads, 2661 s-addope.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 2662 s-vxwork-x86.ads, system-linux-ppc.ads, i-vxwork-x86.ads, 2663 a-numaux-darwin.ads, a-crbtgo.ads, a-crbtgk.ads, a-crbltr.ads, 2664 a-coprnu.ads, a-convec.ads, a-contai.ads, a-coinve.ads, a-cohata.ads, 2665 a-cohama.ads, a-cihama.ads, a-cidlli.ads, a-cdlili.ads, 2666 a-numaux-libc-x86.ads, a-numaux-vxworks.ads, system-linux-ia64.ads, 2667 system-freebsd-x86.ads, system-unixware.ads, system-lynxos-ppc.ads, 2668 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 2669 s-vxwork-alpha.ads, system-aix.ads, system-vxworks-sparcv9.ads, 2670 system-solaris-x86.ads, system-irix-o32.ads, system-irix-n32.ads, 2671 s-parame-hpux.ads, system-hpux.ads, system-vxworks-m68k.ads, 2672 s-vxwork-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 2673 s-vxwork-mips.ads, system-os2.ads, system-interix.ads, 2674 s-vxwork-ppc.ads, system-solaris-sparc.ads, s-vxwork-sparcv9.ads, 2675 system-solaris-sparcv9.ads, s-parame-vms.ads, system-vms.ads, 2676 s-osinte-mingw.ads, system-mingw.ads, s-parame-vms-restrict.ads, 2677 system-vms-zcx.ads, s-parame-ae653.ads, system-vxworks-ppc.ads, 2678 s-parame-vxworks.ads, system-vxworks-alpha.ads, interfac-vms.ads, 2679 a-numaux-x86.ads, a-astaco.ads, a-chahan.ads, a-charac.ads, 2680 a-chlat1.ads, a-chlat9.ads, a-colire.adb, a-colire.ads, a-comlin.ads, 2681 a-cwila1.ads, a-cwila9.ads, ada.ads, a-decima.ads, a-exextr.adb, 2682 a-filico.ads, a-finali.ads, a-interr.ads, a-ioexce.ads, a-dynpri.ads, 2683 a-ngcefu.ads, a-ngcefu.adb, a-ngcoty.adb, a-ngcoty.ads, a-ngelfu.ads, 2684 a-nudira.adb, a-nudira.ads, a-nuflra.adb, a-numaux.ads, a-numeri.ads, 2685 a-reatim.adb, a-stmaco.ads, a-storio.ads, a-strbou.ads, a-stream.ads, 2686 a-strfix.ads, a-string.ads, a-strmap.ads, a-strsea.ads, a-strsup.ads, 2687 a-strunb.ads, a-stunau.ads, a-stwibo.ads, a-stwifi.ads, a-stwima.ads, 2688 a-stwise.ads, a-stwisu.ads, a-stwiun.ads, a-swmwco.ads, a-textio.ads, 2689 csets.ads, debug.ads, dec.ads, g-curexc.ads, get_targ.ads, 2690 g-except.ads, system-linux-hppa.ads, a-chacon.ads, a-widcha.ads, 2691 a-zchara.ads, system-hpux-ia64.ads, a-ciorma.ads, a-coorma.ads, 2692 a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, a-chzla1.ads, a-chzla9.ads, 2693 a-stzbou.ads, a-stzfix.ads, a-stzmap.ads, a-stzsea.ads, a-stzsup.ads, 2694 a-stzunb.ads, a-swunau.ads, a-szunau.ads, gnat.ads, g-regpat.ads, 2695 g-speche.ads, g-spitbo.ads, g-table.ads, g-tasloc.ads, g-trasym.ads, 2696 i-c.ads, i-cpoint.ads, i-cpp.ads, i-cstrin.ads, i-fortra.ads, 2697 interfac.ads, i-os2err.ads, i-os2lib.ads, i-os2syn.ads, i-os2thr.ads, 2698 i-vxwork.ads, output.ads, s-arit64.ads, s-atacco.ads, s-boarop.ads, 2699 s-casuti.ads, s-crtl.ads, s-exctab.ads, s-exnint.ads, s-exnllf.ads, 2700 s-exnlli.ads, s-expint.ads, s-explli.ads, s-expllu.ads, s-expmod.ads, 2701 s-expuns.ads, s-fatflt.ads, s-fatgen.ads, s-fatlfl.ads, s-fatllf.ads, 2702 s-fatsfl.ads, s-finimp.ads, s-finroo.ads, s-fore.ads, s-geveop.ads, 2703 s-htable.ads, s-imgbiu.ads, s-imgboo.ads, s-imgcha.ads, s-imgdec.ads, 2704 s-imgenu.ads, s-imgint.ads, s-imgllb.ads, s-imglld.ads, s-imglli.ads, 2705 s-imgllu.ads, s-imgllw.ads, s-imgrea.ads, s-imguns.ads, s-imgwch.ads, 2706 s-imgwiu.ads, s-io.ads, s-maccod.ads, s-mantis.ads, s-memcop.ads, 2707 s-pack03.ads, s-pack05.ads, s-pack06.ads, s-pack07.ads, s-pack09.ads, 2708 s-pack10.ads, s-pack11.ads, s-pack12.ads, s-pack13.ads, s-pack14.ads, 2709 s-pack15.ads, s-pack17.ads, s-pack18.ads, s-pack19.ads, s-pack20.ads, 2710 s-pack21.ads, s-pack22.ads, s-pack23.ads, s-pack24.ads, s-pack25.ads, 2711 s-pack26.ads, s-pack27.ads, s-pack28.ads, s-pack29.ads, s-pack30.ads, 2712 s-pack31.ads, s-pack33.ads, s-pack34.ads, s-pack35.ads, s-pack36.ads, 2713 s-pack37.ads, s-pack38.ads, s-pack39.ads, s-pack40.ads, s-pack41.ads, 2714 s-pack42.ads, s-pack43.ads, s-pack44.ads, s-pack45.ads, s-pack46.ads, 2715 s-pack47.ads, s-pack48.ads, s-pack49.ads, s-pack50.ads, s-pack51.ads, 2716 s-pack52.ads, s-pack53.ads, s-pack54.ads, s-pack55.ads, s-pack56.ads, 2717 s-pack57.ads, s-pack58.ads, s-pack59.ads, s-pack60.ads, s-pack61.ads, 2718 s-pack62.ads, s-pack63.ads, s-parame.ads, s-pooglo.ads, s-pooloc.ads, 2719 s-poosiz.ads, s-powtab.ads, s-purexc.ads, s-sopco3.ads, s-sopco4.ads, 2720 s-sopco5.ads: Minor reformatting: reindent pragma Pure/Preelaborate 2721 and always use the no parameter form for consistency. 2722 2723 * gnat-style.texi: Document rules about Preelaborate/Pure pragmas. 2724 27252005-09-01 Robert Dewar <dewar@adacore.com> 2726 2727 * binde.adb: Minor reformatting 2728 (Find_Elab_Order): Output warning if -p used with static elab order 2729 27302005-09-01 Robert Dewar <dewar@adacore.com> 2731 2732 * checks.adb (Check_Needed): New procedure, deals with removing checks 2733 based on analysis of short-circuited forms. Also generates warnings for 2734 improper use of non-short-circuited forms. 2735 Code clean ups. 2736 27372005-09-01 Robert Dewar <dewar@adacore.com> 2738 2739 * a-ztexio.adb, a-textio.adb, a-witeio.adb: Replace bad range checks 2740 with 'Valid tests. 2741 27422005-09-01 Robert Dewar <dewar@adacore.com> 2743 2744 * errout.ads, errout.adb (Fix Error_Msg_F): Fix implementation to meet 2745 spec. 2746 Implement new insertion char < (conditional warning) 2747 * errutil.adb, erroutc.adb: Implement new insertion char < 2748 (conditional warning). 2749 * sem_elab.adb, prj-dect.adb, erroutc.ads, err_vars.ads 2750 (Error_Msg_Warn): New variable for < insertion char. 2751 * prj-nmsc.adb: Implement new errout insertion char < (conditional 2752 warning). 2753 (Check_For_Source): Change value of Source_Id only after the current 2754 source has been dealt with. 2755 27562005-09-01 Robert Dewar <dewar@adacore.com> 2757 Doug Rupp <rupp@adacore.com> 2758 2759 * exp_attr.adb: Handle vax fpt for 'Valid attribute 2760 * exp_vfpt.ads, exp_vfpt.adb: (Expand_Vax_Valid): New procedure 2761 * s-vaflop-vms-alpha.adb, s-vaflop.ads, s-vaflop.adb 2762 (Valid_D, Valid_F, Valid_G): New functions 2763 27642005-09-01 Ed Schonberg <schonberg@adacore.com> 2765 Hristian Kirtchev <kirtchev@adacore.com> 2766 Javier Miranda <miranda@adacore.com> 2767 2768 * exp_ch6.adb (Expand_Call): If an actual is a function call rewritten 2769 from object notation, the original node is unanalyzed and carries no 2770 semantic information, so that accessiblity checks must be performed on 2771 the type of the actual itself. 2772 (Expand_N_Subprogram_Declaration): Change last actual parameter for 2773 compatibility with Build_Protected_Sub_Specification. 2774 (Check_Overriding_Inherited_Interfaces): Add suport to handle 2775 overloaded primitives. 2776 (Register_Interface_DT_Entry): Use the new name of the formal 2777 the the calls to Expand_Interface_Thunk 2778 2779 * exp_dbug.ads: Augment comments on encoding of protected types to 2780 include the generation of dispatching subprograms when the type 2781 implements at least one interface. 2782 2783 * lib.ads: Extend information in Load_Stack to include whether a given 2784 load comes from a Limited_With_Clause. 2785 2786 * lib-load.adb (From_Limited_With_Chain): New predicate to determine 2787 whether a potential circularity is harmless, because it includes units 2788 loaded through a limited_with clause. Extends previous treatment which 2789 did not handle properly arbitrary combinations of limited and 2790 non-limited clauses. 2791 27922005-09-01 Nicolas Setton <setton@adacore.com> 2793 2794 * exp_dbug.adb (Get_Encoded_Name): Fixed bug that caused biaised types 2795 to be encoded as typ___XBLU_lowerbound__upperbound instead of 2796 typ___XB_lowerbound__upperbound. 2797 27982005-09-01 Thomas Quinot <quinot@adacore.com> 2799 2800 * exp_dist.adb (Add_RACW_TypeCode, Add_RAS_TypeCode): Do not generate 2801 dummy access formal for RACW/RAS TypeCode TSS. 2802 (Build_TypeCode_Call): Do not generate dummy null access actual for 2803 calls to the TypeCode TSS. 2804 28052005-09-01 Ed Schonberg <schonberg@adacore.com> 2806 2807 * exp_intr.adb (Expand_Source_Name): For Enclosing_Entity, generate 2808 fully qualified name, to distinguish instances with the same local name. 2809 2810 * g-souinf.ads (Enclosing_Entity): Document that entity name is now 2811 fully qualified. 2812 28132005-09-01 Robert Dewar <dewar@adacore.com> 2814 2815 * exp_pakd.adb (Create_Packed_Array_Type): Properly handle very large 2816 packed arrays. 2817 28182005-09-01 Jerome Lambourg <lambourg@adacore.com> 2819 2820 * g-expect.adb (Non_Blocking_Spawn): Initialize the filters field to 2821 (Free): New deallocation procedure for filter elements 2822 (Close): Deallocate any existing filter for the concerned connection 2823 28242005-09-01 Laurent Pautet <pautet@adacore.com> 2825 2826 * g-pehage.ads, g-pehage.adb (Select_Char_Position): When no character 2827 position set is provided, we compute one in order to reduce the maximum 2828 length of the keys. This computation first selects a character 2829 position between 1 and the minimum length of the keys in order to 2830 avoid reducing one of the keys to an empty string. 2831 (Initialize, Compute): When the ratio V to K is too low, the algorithm 2832 does not converge. The initialization procedure now comes with a 2833 maximum number of iterations such that when exceeded, an exception is 2834 raised in Compute. The user can initialize this ratio to another value 2835 and try again 2836 Reformating and updated headers. 2837 28382005-09-01 Javier Miranda <miranda@adacore.com> 2839 2840 * itypes.ads, itypes.adb (Create_Null_Excluding_Itype): New subprogram 2841 that given an entity T creates and returns an Itype that duplicates the 2842 contents of T. The returned Itype has the null-exclusion 2843 attribute set to True, and its Etype attribute references T 2844 to keep the association between the two entities. 2845 Update copyright notice 2846 2847 * sem_aggr.adb (Check_Can_Never_Be_Null, 2848 Aggregate_Constraint_Checks, Resolve_Aggregate, 2849 Resolve_Array_Aggregate, Resolve_Record_Aggregate): Code cleanup. 2850 2851 * sem_ch5.adb (Analyze_Assignment): Code cleanup. 2852 28532005-09-01 Gary Dismukes <dismukes@adacore.com> 2854 Robert Dewar <dewar@adacore.com> 2855 Hristian Kirtchev <kirtchev@adacore.com> 2856 2857 * layout.adb (SO_Ref_From_Expr): Change Subtype_Mark to 2858 Result_Definition. 2859 2860 * par-ch6.adb (P_Subprogram): Handle parsing of Access_Definitions in 2861 function specs. 2862 Call Set_Result_Definition instead of Set_Subtype_Mark. 2863 (P_Subprogram_Specification): Add parsing of anonymous access result 2864 plus null exclusions. Call Set_Result_Definition instead of 2865 Set_Subtype_Mark. 2866 2867 * par-ch3.adb: Add support for LIMITED NEW for Ada 2005 AI-419 2868 (P_Access_Type_Definition): Add parsing for an anonymous access result 2869 subtype, plus parsing for null exclusions. Call Set_Result_Definition 2870 instead of Set_Subtype_Mark. 2871 2872 * sinfo.adb: Add support for LIMITED NEW for Ada 2005 AI-419 2873 (Null_Exclusion_Present): Allow this flag for N_Function_Specification. 2874 (Result_Definition): New function for N_Function_Specifications. 2875 (Subtype_Mark): No longer allowed for N_Access_Function_Definition and 2876 N_Function_Specification. 2877 (Set_Null_Exclusion_Present): Allow this flag for 2878 N_Function_Specification. 2879 (Set_Result_Definition): New procedure for N_Function_Specifications. 2880 (Set_Subtype_Mark): No longer allowed for N_Access_Function_Definition 2881 and N_Function_Specification. 2882 2883 * sinfo.ads: Update grammar rules for 9.7.2: Entry_Call_Alternative, 2884 Procedure_Or_Entry_Call; 9.7.4: Triggering_Statement. 2885 Add support for LIMITED NEW for Ada 2005 AI-419 2886 Update the syntax of PARAMETER_AND_RESULT_PROFILE to reflect the new 2887 syntax for anonymous access results. 2888 Replace Subtype_Mark field by Result_Definition in 2889 N_Function_Specification and N_Access_Definition specs. 2890 Add Null_Exclusion_Present to spec of N_Function_Specification. 2891 (Result_Definition): New function for N_Function_Specification and 2892 N_Access_Function_Definition. 2893 (Set_Result_Definition): New procedure for N_Function_Specification and 2894 N_Access_Function_Definition. 2895 2896 * sprint.adb (S_Print_Node_Actual): Change Subtype_Mark calls to 2897 Result_Definition for cases of N_Access_Function_Definition and 2898 N_Function_Specification. 2899 Print "not null" if Null_Exclusion_Present on N_Function_Specification. 2900 29012005-09-01 Vincent Celier <celier@adacore.com> 2902 2903 * lib-writ.adb: Update Copyright notice 2904 (Write_With_Lines): On platforms where file names are case-insensitive, 2905 record the file names in lower case. 2906 (Write_ALI): For D lines, on platforms where file names are 2907 case-insensitive, record the file names in lower case. 2908 29092005-09-01 Ed Schonberg <schonberg@adacore.com> 2910 Emmanuel Briot <briot@adacore.com> 2911 2912 * lib-xref.adb (Output_Overridden_Op): Display information on 2913 overridden operation. 2914 2915 * lib-xref.ads: Add documentation on overridden operations. 2916 2917 * ali.ads (Xref_Entity_Record): Add support for storing the overriding 2918 information. 2919 2920 * ali.adb (Get_Typeref): New subprogram. Adds support for parsing the 2921 overriding entity information. 2922 29232005-09-01 Vincent Celier <celier@adacore.com> 2924 2925 * mlib-prj.adb (Copy_Interface_Sources): Copy all interface sources, 2926 including those that are inherited. 2927 29282005-09-01 Robert Dewar <dewar@adacore.com> 2929 2930 * opt.ads, opt.adb: Add new switches Debug_Pragmas_Enabled[_Config] 2931 2932 * par-prag.adb: Implement new pragma Debug_Policy 2933 2934 * sem_prag.adb Implement new pragma Debug_Policy 2935 (Analyze_Pragma, case Pack): do not let pragma Pack override an explicit 2936 Component_Size attribute specification. Give warning for ignored pragma 2937 Pack. 2938 2939 * snames.h, snames.ads, snames.adb: Introduce entries in 2940 Preset_Names for Name_Disp_Asynchronous_Select, 2941 Name_Disp_Conditional_Select, Name_Disp_Get_Prim_Op_Kind, 2942 Name_Disp_Timed_Select. 2943 New pragma Debug_Policy 2944 2945 * switch-c.adb (Scan_Front_End_Switches): Set Ada 2005 mode 2946 explicitly. 2947 Switch -gnata also sets Debug_Pragmas_Enabled 2948 2949 * sem.adb, par.adb (Set_Opt_Config_Switch): Add parameter Main_Unit to 2950 handle an explicit -gnata when compiling predefined files. 2951 29522005-09-01 Vincent Celier <celier@adacore.com> 2953 2954 * prj-env.adb (Set_Ada_Paths.Add.Recursive_Add): Do not add the object 2955 directories of projects that have no Ada sources. 2956 29572005-09-01 Robert Dewar <dewar@adacore.com> 2958 2959 * scng.adb (Check_End_Of_Line): Count characters, rather than bytes 2960 (makes a difference for wide characters) 2961 2962 * widechar.adb, widechar.ads: 2963 Add Wide_Char_Byte_Count feature to count chars vs bytes 2964 29652005-09-01 Thomas Quinot <quinot@adacore.com> 2966 Ed Schonberg <schonberg@adacore.com> 2967 Robert Dewar <dewar@adacore.com> 2968 2969 * sem_attr.adb (Resolve_Attribute, case 'Address): For an illegal 2970 'Address attribute reference with an overloaded prefix, use the 2971 location of the prefix (not the location of the attribute reference) as 2972 the error location. 2973 (Analyze_Attribute, case 'Size): The name of an enumeration literal, or 2974 a function renaming thereof, is a valid prefix for 'Size (where it is 2975 intepreted as a function call). 2976 (Statically_Denotes_Entity): New predicate to determine whether the 2977 prefix of an array attribute can be considered static. 2978 2979 PR ada/9087 2980 (Eval_Attr): Fix failure to evaluate Component_Size for 2981 unconstrained arrays (resulted in wrong value in packed case, since 2982 back end cannot handle this case) 2983 29842005-09-01 Robert Dewar <dewar@adacore.com> 2985 2986 * sem_cat.adb (Check_Categorization_Dependencies): Add more detail to 2987 error msgs for most common cases. 2988 Use new errout insertion char < (conditional warning) 2989 29902005-09-01 Javier Miranda <miranda@adacore.com> 2991 Ed Schonberg <schonberg@adacore.com> 2992 2993 * sem_ch10.adb (In_Chain): Moved from the scope of a subprogram to 2994 become local to the whole package. 2995 (Install_Limited_Withed_Unit): Instead of unchaining real entities if 2996 the package was already analyzed the new algorithm "replaces" the 2997 real entities by the shadow ones. This is required to ensure that 2998 the order of these entities in the homonym chains does not change; 2999 otherwise we can have undefined references at linking time because 3000 in case of conflicts the external name of the entities will have 3001 a suffix that depends on the order of the entities in the chain. 3002 (Remove_Limited_With_Clause): Complementary code that completes the 3003 new algorithm and replaces the shadow entities by the real ones. 3004 (Install_Limited_Withed_Unit): When unchaining entities before the 3005 installation of the shadow entities, only regular entities of the 3006 public part must be taken into account. This is required to 3007 keep this routine in synch with the work done by Remove_Limited_ 3008 With_Clause 3009 (Install_Limited_With_Clause): Introduce implicit limited_with_clause 3010 even if unit is analyzed, because the analysis of the unit is 3011 idempotent in any case, and the limited view of the unit may have to 3012 be installed for proper visibility. 3013 (Expand_Limited_With_Clause): Even if the unit in the implicit 3014 with_clause has been analyzed already, a limited view of the package 3015 must be built for the current context, if it does not exist yet. 3016 30172005-09-01 Ed Schonberg <schonberg@adacore.com> 3018 Javier Miranda <miranda@adacore.com> 3019 Gary Dismukes <dismukes@adacore.com> 3020 3021 * sem_ch12.adb (Instantiate_Subprogram_Body): When creating the 3022 defining entity for the instance body, make a new defining identifier 3023 rather than copying the entity of the spec, to prevent accidental 3024 sharing of the entity list. 3025 (Check_Private_View): When exchanging views of private types, build the 3026 list of exchanged views as a stack, to ensure that on exit the exchanges 3027 are undone in the proper order. 3028 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): 3029 Restore the compilation environment in case of instantiation_error. 3030 (Analyze_Generic_Subprogram_Declaration): Handle creation of type entity 3031 for an anonymous access result. 3032 (Instantiate_Generic_Subprogram): Subtype_Mark => Result_Definition 3033 (Formal_Entity): Handle properly the case of a formal package that 3034 denotes a generic package renaming. 3035 30362005-09-01 Thomas Quinot <quinot@adacore.com> 3037 3038 * sem_ch13.adb (Analyze_Enumeration_Representation_Clause): Reject the 3039 clause if the array aggregate is surrounded by parentheses. 3040 30412005-09-01 Cyrille Comar <comar@adacore.com> 3042 Gary Dismukes <dismukes@adacore.com> 3043 Ed Schonberg <schonberg@adacore.com> 3044 Javier Miranda <miranda@adacore.com> 3045 3046 * sem_ch3.ads, sem_ch3.adb (Analyze_Object_Declaration): Go to the 3047 underlying type 3048 to check if a type is Constrained in cases related to code generation 3049 (rather than semantic checking) since otherwise we do not generate 3050 similar code for mutable private types depending if their 3051 discriminants are visible or not. 3052 (Check_Abstract_Overriding): Do not complain about failure to override 3053 the primitive operations used in dispatching selects since they will 3054 always be overriden at the freeze point of the type. 3055 (Access_Definition): Separate out handling for resetting the scope 3056 of an anonymous access function result type. Retrieve the scope 3057 of the associated function rather than using Current_Scope, which 3058 does not have a consistent value (depends on whether we're in the 3059 middle of analyzing formal parameters). Add ??? comment about 3060 finding a cleaner way to handle the special cases of scope setting. 3061 (Process_Incomplete_Dependents): A protected operation is never a 3062 dispatching operation (only its wrapper may be). 3063 (Build_Derived_Record_Type): In case of tagged private types that 3064 implement interfaces add derivation of predefined primitive 3065 operations. 3066 (Derive_Subprograms): Replace the Is_Interface_Derivation parameter 3067 by two parameters that are used in case of derivation from abstract 3068 interface types: No_Predefined_Prims is used to avoid the derivation 3069 of predefined primitives from the interface, and Predefined 3070 Prims_Only is used to complete the derivation predefined primitives 3071 in case of private tagged types implementing interfaces. 3072 Fix typo in comments 3073 (Find_Interface_In_Descendant): Protect the frontend against 3074 wrong code with large circularity chains. 3075 (Is_Private_Overriding): Add support for entities overriding interface 3076 subprograms. The test failed because Entities associated with overriden 3077 interface subprograms are always marked as hidden (and used to build 3078 the secondary dispatch table); in this case the overriden entity is 3079 available through the field abstract_interface_alias (cf. override_ 3080 dispatching_operation) 3081 (Access_Definition): Set the scope of the type to Current_Scope for the 3082 case of a function with an anonymous access result type. 3083 (Access_Subprogram_Declaration): Handle creation of the type entity for 3084 an access-to-function type with an anonymous access result. 3085 (Check_Anonymous_Access_Types): Change Subtype_Mark to Result_Definition 3086 in handling for N_Access_Function_Definition. 3087 (Analyze_Subtype_Declaration): Modify the text of error message. 3088 (Derived_Type_Declaration): Modify the text of error message. 3089 (Process_Subtype): Modify the text of error message plus cleanup 3090 of one redundant error message. 3091 (Analyze_Component_Declaration): Code cleanup. 3092 (Analyze_Object_Declaration): Code cleanup. 3093 (Analyze_Subtype_Declaration): Propagate the null-exclusion 3094 attribute in case of access types. Code cleanup. 3095 (Array_Type_Declaration): Code cleanup. 3096 (Process_Discriminants): Create the new null-excluding itype 3097 if required. Code cleanup. 3098 (Process_Subtype): Create the new null-excluding itype if 3099 required. Code cleanup. 3100 (Build_Derived_Record_Type): Code cleanup to avoid calling 3101 twice the subprogram derive_subprograms in case of private 3102 types that implement interfaces. In this particular case the 3103 subprogram Complete_Subprograms_Derivation already does the 3104 job associated with the second call. 3105 3106 * exp_strm.adb (Build_Elementary_Input_Call): Add an explicit 3107 conversion to the full view when generating an operation for a 3108 discriminant whose type may currently be private. 3109 31102005-09-01 Ed Schonberg <schonberg@adacore.com> 3111 Javier Miranda <miranda@adacore.com> 3112 3113 * sem_ch4.adb (Transform_Object_Operation): In a context off the form 3114 V (Obj.F), the rewriting does not involve the indexed component, but 3115 only the selected component itself. 3116 Do not apply the transformation if the analyzed node is an actual of a 3117 call to another subprogram. 3118 (Complete_Object_Operation): Retain the entity of the 3119 dispatching operation in the selector of the rewritten node. The 3120 entity will be used in the expansion of dispatching selects. 3121 (Analyze_One_Call): Improve location of the error message associated 3122 with interface. 3123 (Analyze_Selected_Component): No need to resolve prefix when it is a 3124 function call, resolution is done when parent node is resolved, as 3125 usual. 3126 (Analyze_One_Call): Add a flag to suppress analysis of the first actual, 3127 when attempting to resolve a call transformed from its object notation. 3128 (Try_Object_Operation, Transform_Object_Operastion): Avoid makind copies 3129 of the argument list for each interpretation of the operation. 3130 (Try_Object_Operation): The designated type of an access parameter may 3131 be an incomplete type obtained through a limited_with clause, in which 3132 case the primitive operations of the type are retrieved from its full 3133 view. 3134 (Analyze_Call): If this is an indirect call, and the return type of the 3135 access_to_subprogram is incomplete, use its full view if available. 3136 31372005-09-01 Javier Miranda <miranda@adacore.com> 3138 Gary Dismukes <dismukes@adacore.com> 3139 3140 * sem_ch6.ads, sem_ch6.adb (Check_Conformance): In case of anonymous 3141 access types the null-exclusion and access-to-constant attributes must 3142 also match. 3143 (Analyze_Return_Statement): When the result type is an anonymous access 3144 type, apply a conversion of the return expression to the access type 3145 to ensure that appropriate accessibility checks are performed. 3146 (Analyze_Return_Type): For the case of an anonymous access result type, 3147 generate the Itype and set Is_Local_Anonymous_Access on the type. 3148 Add ??? placeholder for check to disallow returning a limited object 3149 in Ada 2005 unless it's an aggregate or a result of a function call. 3150 Change calls from Subtype_Mark to Result_Definition. 3151 (Analyze_Subprogram_Body): Change formal Subtype_Mark to 3152 Result_Definition in call to Make_Function_Specification. 3153 (Build_Body_To_Inline): Change Set_Subtype_Mark to 3154 Set_Result_Definition. 3155 (Make_Inequality_Operator): Change formal Subtype_Mark to 3156 Result_Definition in call to Make_Function_Specification. 3157 (Process_Formals): Create the new null-excluding itype if required. 3158 (New_Overloaded_Entity): For an entity overriding an interface primitive 3159 check if the entity also covers other abstract subprograms in the same 3160 scope. This is required to handle the general case, that is, overriding 3161 other interface primitives and overriding abstract subprograms inherited 3162 from some abstract ancestor type. 3163 (New_Overloaded_Entity): For an overriding entity that comes from 3164 source, note the operation that it overrides. 3165 (Check_Conformance, Type_Conformant): Addition of one new formal 3166 to skip controlling formals in the analysis. This is used to 3167 handle overloading of abstract interfaces. 3168 (Base_Types_Match): Add missing case for types imported from 3169 limited-with clauses 3170 (New_Overloaded_Entity): Add barrier to protect the use of 3171 the "alias" attribute. 3172 31732005-09-01 Ed Schonberg <schonberg@adacore.com> 3174 3175 * sem_ch8.adb (Analyze_Renamed_Entry): For a renaming_as_declaration, 3176 verify that the procedure and the entry are mode conformant. 3177 (Analyze_Subprogram_Renaming): Emit a warning if an operator is renamed 3178 as a different operator, which is often a cut-and-paste error. 3179 31802005-09-01 Javier Miranda <miranda@adacore.com> 3181 Ed Schonberg <schonberg@adacore.com> 3182 3183 * sem_disp.adb (Check_Controlling_Formals): Anonymous access types 3184 used in controlling parameters exclude null because it is necessary to 3185 read the tag to dispatch, and null has no tag. 3186 (Override_Dispatching_Operation): If the previous operation is inherited 3187 from an interface, it becomes hidden and does not participate in later 3188 name resolution. 3189 31902005-09-01 Javier Miranda <miranda@adacore.com> 3191 Ed Schonberg <schonberg@adacore.com> 3192 Gary Dismukes <dismukes@adacore.com> 3193 3194 * sem_res.adb (Resolve_Membership_Op): In case of the membership test 3195 "Iface_CW_Typ in T'Class" we have nothing else to do in the frontend; 3196 the expander will generate the corresponding run-time check to evaluate 3197 the expression. 3198 (Resolve_Call): Check for legal type of procedure name or prefix that 3199 appears as a trigger in a triggering alternative. 3200 (Valid_Conversion): If expression is ambiguous and the context involves 3201 an extension of System, remove System.Address interpretations. 3202 (Resolve_Qualified_Expression): Reject the case of a specific-type 3203 qualification applied to a class-wide argument. Enhance comment 3204 to explain checking of Original_Node. 3205 (Resolve_Type_Conversion): The location of the error message was not 3206 general enough to handle the general case and hence it has been removed. 3207 In addition, this patch improves the text of the message. 3208 (Resolve_Type_Conversion): Add missing support for access to interface 3209 types. 3210 (Resolve_Type_Conversion): If the target is a class-wide interface type, 3211 do not expand if the expression is the actual in a call, because proper 3212 expansion will take place when the call itself is expanded. 3213 (Resolve_Allocator): If the context is an unchecked conversion, the 3214 allocator inherits its storage pool, if any, from the target type of 3215 the conversion. 3216 32172005-09-01 Ed Schonberg <schonberg@adacore.com> 3218 Javier Miranda <miranda@adacore.com> 3219 3220 * sem_type.adb (Add_One_Interp): If a candidate operation is an 3221 inherited interface operation that has an implementation, use the 3222 implementation to avoid spurious ambiguities. 3223 (Interface_Present_In_Ancestor): In case of concurrent types we can't 3224 use the Corresponding_Record_Typ attribute to look for the interface 3225 because it is set by the expander (and hence it is not always 3226 available). For this reason we traverse the list of interfaces 3227 (available in the parent of the concurrent type). 3228 (Interface_Present_In_Ancestor): Handle entities from the limited view 3229 32302005-09-01 Ed Schonberg <schonberg@adacore.com> 3231 3232 * sem_util.ads, sem_util.adb (Gather_Components): Omit interface tags 3233 from the list of required components. 3234 (Is_Controlling_Limited_Procedure): Determine whether an entity is a 3235 primitive procedure of a limited interface with a controlling first 3236 parameter. 3237 (Is_Renamed_Entry): Determine whether an entry is a procedure renaming 3238 of an entry. 3239 (Safe_To_Capture_Value): A value (such as non_null) is not safe to 3240 capture if it is generated in the second operand of a short-circuit 3241 operation. 3242 Do not capture values for variables with address clauses. 3243 (Is_Object_Reference): Treat a function call as an object reference only 3244 if its type is not Standard_Void_Type. 3245 32462005-09-01 Ed Schonberg <schonberg@adacore.com> 3247 3248 * sem_warn.adb (Warn_On_Known_Condition): Refine warning when applied 3249 to a variable that is statically known to be constant. 3250 32512005-09-01 Geert Bosch <bosch@adacore.com> 3252 Robert Dewar <dewar@adacore.com> 3253 3254 * ttypef.ads (VAXDF_Safe_First): Use correct value for constant. 3255 (VAXGF_Safe_First): Idem. 3256 32572005-09-01 Robert Dewar <dewar@adacore.com> 3258 Arnaud Charlet <charlet@adacore.com> 3259 3260 * g-dirope.ads: Minor reformatting 3261 Document that bounds of result of Base_Name match the input index 3262 positions. 3263 Add documentation on environment variable syntax for Expand_Path 3264 3265 * gnat_ugn.texi: Update documentation to include mention of -m switches 3266 Document new treatment of wide characters in max line length 3267 style check. 3268 Remove -gnatL/-gnatZ switches, no longer used. 3269 Add note on pragmas Assertion_Policy and Debug_Policy in discussion 3270 of -gnata switch. 3271 3272 * gnat_rm.texi: Add doc for two argument form of pragma 3273 Float_Representation. 3274 Add documentation for pragma No_Strict_Aliasing 3275 Add note that explicit component clause overrides pragma Pack. 3276 Add documentation of pragma Debug_Policy 3277 32782005-09-01 Matthew Heaney <heaney@adacore.com> 3279 3280 * a-cihase.adb, a-coorse.ads, a-coorse.adb, a-cohama.adb, 3281 a-ciorse.ads, a-ciorse.adb, a-cihama.adb, a-cdlili.adb, 3282 a-cidlli.adb, a-chtgop.adb, a-cihase.adb, a-cihase.ads, 3283 a-cohase.adb, a-cohase.adb, a-cohase.ads: Synchronized with latest 3284 draft (Draft 13, August 2005) of Ada Amendment 1. 3285 32862005-09-01 Arnaud Charlet <charlet@adacore.com> 3287 3288 * Makefile.in: Adjust the libgnat target pairs for Xscale to ARM. 3289 Note that the platform-specific version of g-soccon.ads for VMS is now 3290 named g-soccon-vms.ads (it was previously g-soccon-vms.adb, although it 3291 really is a package spec). 3292 Replace s-taspri-linux.ads by s-taspri-posix.ads 3293 Remove references to s-mastop-x86.adb 3294 3295 * system-vxworks-xscale.ads: Removed, no longer used. 3296 * s-vxwork-xscale.ads: Removed, no longer used. 3297 32982005-09-01 Robert Dewar <dewar@adacore.com> 3299 3300 * a-dirval-mingw.adb, a-direct.adb, a-coinve.adb, 3301 g-dynhta.adb, g-dynhta.ads, cstand.adb, exp_smem.adb, g-debuti.ads, 3302 g-dirope.adb, g-table.adb, lib-sort.adb, sem_maps.adb, 3303 exp_fixd.adb, exp_aggr.adb, a-intnam-mingw.ads, a-intnam-vxworks.ads, 3304 g-arrspl.adb, g-arrspl.ads, g-awk.adb, g-awk.ads, g-boubuf.ads, 3305 g-boubuf.ads, g-boubuf.ads, g-bubsor.ads, g-bubsor.adb, g-busora.adb, 3306 g-busora.ads, g-busorg.adb, g-busorg.ads, g-calend.adb, g-calend.ads, 3307 g-casuti.adb, g-casuti.ads, g-catiio.adb, g-catiio.ads, g-cgi.adb, 3308 g-cgi.ads, g-cgicoo.adb, g-cgicoo.ads, g-cgideb.adb, g-cgideb.ads, 3309 g-comlin.adb, g-comver.ads, g-semaph.ads, g-socthi.ads, 3310 sem_ch7.adb, a-direio.adb, a-caldel.ads, i-cstrea-vms.adb, 3311 a-ztedit.adb, a-ztenau.adb, g-socthi-vms.adb, g-socthi-vms.ads, 3312 g-socthi-mingw.adb, g-socthi-mingw.ads, g-socthi-vxworks.ads, 3313 a-intnam-irix.ads, a-intnam-irix.ads, a-intnam-hpux.ads, 3314 a-intnam-os2.ads, a-intnam-os2.ads, a-caldel-vms.adb, a-calend-vms.adb, 3315 a-calend-vms.ads, g-heasor.adb, g-heasor.ads, g-hesora.adb, 3316 g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, g-htable.ads, 3317 g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, g-locfil.ads, 3318 g-memdum.adb, g-memdum.ads, g-traceb.adb, g-traceb.ads, i-cobol.adb, 3319 i-cobol.ads, i-cstrea.ads, i-cstrin.adb, a-wtedit.adb, a-tifiio.adb, 3320 a-wtenau.adb, a-wtenau.adb, a-teioed.adb: Minor reformatting 3321 33222005-08-29 Arnaud Charlet <charlet@adacore.com> 3323 3324 PR ada/23187 3325 * adaint.c 3326 (GNAT_MAXPATH_LEN): Use default value if MAXPATHLEN is undefined. 3327 33282005-08-29 Arnaud Charlet <charlet@adacore.com> 3329 Doug Rupp <rupp@adacore.com> 3330 3331 * s-stalib.adb: Add missing pragma Warnings (On) to reenable Warnings 3332 when needed. 3333 (Inside_Elab_Final_Code): Moved to init.c to avoid having to keep 3334 this code in the GNAT run-time. 3335 3336 * decl.c, fe.h: Replace GCC_ZCX by Back_End_Exceptions. 3337 3338 PR ada/21053 3339 * init.c (__gnat_error_handler [many]): Mark "msg" as const 3340 (__gnat_error_handler [HPUX]): Mark siginfo parameter as unused 3341 3342 (__gnat_inside_elab_final_code): Moved here from 3343 Standard_Library and only defined for the compiler. 3344 __gnat_error_handler [VMS]: Adjust sigargs to account for PC & PSL. 3345 (__gnat_inum_to_ivec): Do not define this function on VxWorks when 3346 using RTPs because directly vectored Interrupt routines are not 3347 supported on this configuration. 3348 (getpid): Do not redefine this function on VxWorks when using RTPs 3349 because this primitive is well supported by the RTP libraries. 3350 (copy_msg): Correct the code that checks for buffer overflow. 3351 Discovered during code reading. 3352 33532005-08-29 Olivier Hainque <hainque@adacore.com> 3354 3355 * decl.c (gnat_to_gnu_entity) <E_Variable>: When allocating storage for 3356 a library level mutable variable with an initializer, tell 3357 build_allocator to ignore the initializer's size. It may not be large 3358 enough for all the values that might be assigned to the variable later 3359 on. 3360 33612005-08-29 Arnaud Charlet <charlet@adacore.com> 3362 Eric Botcazou <ebotcazou@adacore.com> 3363 3364 * trans.c: Protect < in error msg with quote 3365 Replace GCC_ZCX by Back_End_Exceptions. 3366 (addressable_p) <COMPONENT_REF>: Also return 1 if the field 3367 has been sufficiently aligned in the record. 3368 33692005-08-15 James E. Wilson <wilson@specifix.com> 3370 3371 * system-linux-alpha.ads: Change ia64 to alpha. 3372 33732005-08-01 Kazu Hirata <kazu@codesourcery.com> 3374 3375 * decl.c, utils.c: Fix comment typos. 3376 33772005-07-29 Kazu Hirata <kazu@codesourcery.com> 3378 3379 * decl.c, init.c, initialize.c: Fix comment typos. 3380 33812005-07-20 Giovanni Bajo <giovannibajo@libero.it> 3382 3383 Make CONSTRUCTOR use VEC to store initializers. 3384 * decl.c (gnat_to_gnu_entity): Update to cope with VEC in 3385 CONSTRUCTOR_ELTS. 3386 * trans.c (extract_values): Likewise. 3387 * utils.c (convert, remove_conversions): Likewise. 3388 * utils2.c (contains_save_expr_p, build_binary_op, build_unary_op, 3389 gnat_build_constructor): Likewise. 3390 33912005-07-09 Andrew Pinski <pinskia@physics.uc.edu> 3392 3393 * decl.c (components_to_record): Use DECL_FCONTEXT instead of 3394 DECL_SECTION_NAME. 3395 (compare_field_bitpos): Likewise. 3396 33972005-07-09 Andrew Pinski <pinskia@physics.uc.edu> 3398 3399 * utils.c (create_var_decl): Only set DECL_COMMON on 3400 VAR_DECLs. Only set SET_DECL_ASSEMBLER_NAME on 3401 VAR_OR_FUNCTION_DECL_P. 3402 34032005-07-08 Daniel Berlin <dberlin@dberlin.org> 3404 3405 * utils.c (create_param_decl): DECL_ARG_TYPE_AS_WRITTEN is 3406 removed. 3407 34082005-07-07 Pascal Obry <obry@adacore.com> 3409 3410 * g-socthi-mingw.adb (C_Inet_Addr): New body used to convert the 3411 returned type on Windows. 3412 3413 * g-socthi-mingw.ads (C_Inet_Addr): Remove pragma Import for this 3414 routine. 3415 3416 * g-socket.adb (Inet_Addr): Check for empty Image and raises an 3417 exception in this case. 3418 Simplify the code as "Image (Image'Range)" = "Image". 3419 34202005-07-07 Vincent Celier <celier@adacore.com> 3421 3422 * bindgen.adb (Gen_Output_File_C): When switch -a was specified, put 3423 the destructor/constructor attributes for <lib>final/<lib>init. 3424 3425 * gnatbind.adb (Gnatbind): Allow -a to be used in conjunction with -C 3426 34272005-07-07 Eric Botcazou <ebotcazou@adacore.com> 3428 3429 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not strip the padding 3430 type if the parameter is not passed by copy but reference by default. 3431 34322005-07-07 Javier Miranda <miranda@adacore.com> 3433 3434 * exp_ch3.adb (Build_Record_Init_Proc/Freeze_Record_Type): 3435 Reimplementation of the support for abstract interface types in order 3436 to leave the code more clear and easy to maintain. 3437 3438 * exp_ch6.adb (Freeze_Subprogram): Reimplementation of the support for 3439 abstract interface types in order to leave the code clearer and easier 3440 to maintain. 3441 3442 * exp_disp.ads, exp_disp.adb (Fill_DT_Entry): Part of its functionality 3443 is now implemented by the new subprogram Fill_Secondary_DT_Entry. 3444 (Fill_Secondary_DT_Entry): Generate the code necessary to fill the 3445 appropriate entry of the secondary dispatch table. 3446 (Make_DT): Add code to inherit the secondary dispatch tables of 3447 the ancestors. 3448 3449 * exp_util.adb (Find_Interface_Tag/Find_Interface_ADT): Instead of 3450 implementing both functionalities by means of a common routine, each 3451 routine has its own code. 3452 34532005-07-07 Javier Miranda <miranda@adacore.com> 3454 3455 * freeze.adb (Freeze_Entity): Check wrong uses of tag incomplete types. 3456 3457 * par-ch3.adb (P_Type_Declaration): Give support to tagged incomplete 3458 types: 3459 -- 3460 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; 3461 -- 3462 3463 * sem_attr.adb (Check_Not_Incomplete_Type): Additional checks for wrong 3464 use of tag incomplete types. 3465 3466 * sem_ch3.adb (Analyze_Incomplete_Type): Add mininum decoration to 3467 give support to tagged incomplete types. 3468 3469 * sem_ch5.adb (Analyze_Case_Statement): In generated code, if the 3470 expression is a discriminant reference and its type is private, as can 3471 happen within a stream operation for a mutable record, use the full 3472 view of the type to resolve the case alternatives. 3473 (Analyze_Assignment): Check wrong dereference of incomplete types. 3474 3475 * sem_ch6.adb (Process_Formals): Allow the use of tagged incomplete 3476 types. 3477 3478 * sem_res.adb (Resolve_Explicit_Dereference): Allow the use of tagged 3479 incomplete types. 3480 3481 * sinfo.adb (Taggged_Present/Set_Taggged_Present): Applicable to 3482 N_Incomplete_Type_Declaration nodes. 3483 3484 * sinfo.ads (N_Incomplete_Type_Declaration): Addition of attribute 3485 Tag_Present to give support to tagged incomplete types: 3486 -- 3487 type DEFINING_IDENTIFIER [DISCRIMINANT_PART] [IS TAGGED]; 3488 -- 3489 34902005-07-07 Olivier Hainque <hainque@adacore.com> 3491 3492 PR ada/22301 3493 * raise.c: Only include unwind.h if IN_RTS, and provide dummy type 3494 definitions for the Unwind wrappers in the compiler case. 3495 34962005-07-07 Ed Schonberg <schonberg@adacore.com> 3497 Javier Miranda <miranda@adacore.com> 3498 3499 * par-load.adb (Load): If a child unit is loaded through a limited_with 3500 clause, each parent must be loaded as a limited unit as well. 3501 3502 * sem_ch10.adb (Previous_Withed_Unit): Better name for 3503 Check_Withed_Unit. Return true if there is a previous with_clause for 3504 this unit, whether limited or not. 3505 (Expand_Limited_With_Clause): Do not generate a limited_with_clause on 3506 the current unit. 3507 (Is_Visible_Through_Renamings): New local subprogram of install_limited 3508 _withed_unit that checks if some package installed through normal with 3509 clauses has a renaming declaration of package whose limited-view is 3510 ready to be installed. This enforces the check of the rule 10.1.2 (21/2) 3511 of the current Draft document for Ada 2005. 3512 (Analyze_Context): Complete the list of compilation units that 3513 are allowed to contain limited-with clauses. It also contains 3514 checks that were previously done by Install_Limited_Context_Clauses. 3515 This makes the code more clear and easy to maintain. 3516 (Expand_Limited_With_Clause) It is now a local subprogram of 3517 Install_Limited_Context_Clauses, and contains the code that adds 3518 the implicit limited-with clauses for parents of child units. 3519 This functionality was prevously done by Analyze_Context. 3520 3521 * sem_ch4.adb (Analyze_Selected_Component): Check wrong use of 3522 incomplete type. 3523 3524 * sem_ch7.adb (Analyze_Package_Declaration): Check if the package has 3525 been erroneously named in a limited-with clause of its own context. 3526 In this case the error has been previously notified by Analyze_Context. 3527 35282005-07-07 Ed Schonberg <schonberg@adacore.com> 3529 3530 * sem_ch8.adb (Find_Direct_Name): Handle properly the case of a 3531 generic package that contains local declarations with the same name. 3532 (Analyze_Object_Renaming): Check wrong renaming of incomplete type. 3533 35342005-07-07 Bernard Banner <banner@adacore.com> 3535 3536 * tracebak.c: Refine tracebacks to use Unwind_Backtrace scheme on 3537 ia64 platform only on platforms that you the GCC unwind library 3538 rather than the system unwind library. 3539 35402005-07-07 Thomas Quinot <quinot@adacore.com> 3541 3542 * expect.c: Minor reformatting 3543 35442005-07-07 Sergey Rybin <rybin@adacore.com> 3545 3546 * vms_data.ads: Add VMS qualifiers for new gnatpp switch 3547 --no-separate-is 3548 3549 * gnat_ugn.texi: Add description for new gnatpp option 3550 (--no-separate-is) 3551 35522005-07-04 Thomas Quinot <quinot@adacore.com> 3553 3554 * g-expect-vms.adb, g-expect.ads, g-expect.adb 3555 (Get_Command_Output): New subprogram to launch a process and get its 3556 standard output as a string. 3557 35582005-07-04 Eric Botcazou <ebotcazou@adacore.com> 3559 Olivier Hainque <hainque@adacore.com> 3560 3561 * s-mastop-tru64.adb (Pop_Frame): Use exc_lookup_function_entry to 3562 fetch a code-range descriptor associated with the machine state. On 3563 failure set the machine state's PC to 0; on success, pass the 3564 descriptor to exc_virtual_unwind. 3565 3566 * init.c (Tru64 section): New function __gnat_set_code_loc. 3567 35682005-07-04 Vincent Celier <celier@adacore.com> 3569 3570 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 3571 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, 3572 mlib-tgt-mingw.adb, mlib-tgt-darwin.adb (Build_Dynamic_Library): 3573 Remove all auto-initialization code, as this is now done through the 3574 constructor mechanism. 3575 3576 * adaint.h, adaint.c (__gnat_binder_supports_auto_init, 3577 __gnat_sals_init_using_constructors): New functions. 3578 3579 * bindgen.adb (Gen_Output_File_Ada): Generate pragmas 3580 Linker_Constructor and Linker_Destructor when switch -a is used. 3581 3582 * bindusg.adb: Add line for new switch -a 3583 3584 * gnatbind.adb (Gnatbind_Supports_Auto_Init): New Boolean function 3585 (Gnatbind): When switch -a is used, check if it is allowed 3586 3587 * switch-b.adb (Scan_Binder_Switches): Process new switch -a 3588 35892005-07-04 Joel Brobecker <brobecker@adacore.com> 3590 3591 * a-tags.adb (Type_Specific_Data): Define Tags_Table as a small array. 3592 This prevents us from hitting a limitation during the debug info 3593 generation when using stabs. 3594 (Prims_Ptr): Likewise. 3595 35962005-07-04 Gary Dismukes <dismukes@adacore.com> 3597 Ed Schonberg <schonberg@adacore.com> 3598 Javier Miranda <miranda@adacore.com> 3599 3600 * checks.adb (Null_Exclusion_Static_Checks): In the case of 3601 N_Object_Declaration, only perform the checks if the Object_Definition 3602 is not an Access_Definition. 3603 3604 * sem_ch3.adb (Access_Subprogram_Declaration): Add test for the case 3605 where the parent of an the access definition is an N_Object_Declaration 3606 when determining the Associated_Node_For_Itype and scope of an 3607 anonymous access-to-subprogram type. 3608 3609 * exp_ch6.adb (Expand_N_Subprogram_Declaration): Set the 3610 Corresponding_Spec on the body created for a null procedure. Add ??? 3611 comment. Remove New_Copy_Tree call on body argument to 3612 Set_Body_To_Inline. 3613 3614 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): For an out parameter with 3615 discriminants, use the type of the actual as well, because the 3616 discriminants may be read by the called subprogram. 3617 3618 * sem_ch3.adb (Access_Type_Declaration): If the designated type is an 3619 access type we do not need to handle non-limited views. 3620 (Build_Derived_Record_Type): Additional check to check that in case of 3621 private types, interfaces are only allowed in private extensions. 3622 36232005-07-04 Eric Botcazou <ebotcazou@adacore.com> 3624 3625 * decl.c (prepend_attributes) <Pragma_Linker_Constructor>: New case. 3626 <Pragma_Linker_Destructor>: Likewise. 3627 3628 * einfo.ads (Has_Gigi_Rep_Item): Document Pragma_Linker_Constructor and 3629 Pragma_Linker_Destructor. 3630 3631 * gigi.h (attr_type): Add ATTR_LINK_CONSTRUCTOR and 3632 ATTR_LINK_DESTRUCTOR. 3633 (static_ctors, static_dtors): New variables. 3634 3635 * misc.c (gnat_expand_body): Output current function as constructor 3636 and destructor if requested. 3637 3638 * par-prag.adb: Add processing for pragma Linker_Constructor and 3639 Linker_Destructor. 3640 3641 * sem_prag.adb (Find_Unique_Parameterless_Procedure): New function 3642 extracted from Check_Interrupt_Or_Attach_Handler. 3643 (Check_Interrupt_Or_Attach_Handler): Invoke it. 3644 Implement pragma Linker_Constructor and Linker_Destructor with the 3645 help of Find_Unique_Parameterless_Procedure. 3646 Replace Name_Alias with Name_Target for pragma Linker_Alias. 3647 3648 * snames.h, snames.ads, snames.adb: 3649 Add Name_Linker_Constructor and Name_Linker_Destructor. 3650 Add Pragma_Linker_Constructor and Pragma_Linker_Destructor. 3651 * snames.adb: Remove Name_Alias. 3652 3653 * trans.c: Include cgraph.h. 3654 (build_global_cdtor): New function. 3655 (Compilation_Unit_to_gnu): Build global constructor and destructor if 3656 needed. 3657 (tree_transform) <N_Identifier>: Substitute renaming of view-conversions 3658 of objects too. 3659 (addressable_p) <COMPONENT_REF>: Unconditionally test 3660 DECL_NONADDRESSABLE_P on STRICT_ALIGNMENT platforms. 3661 3662 * utils.c (process_attributes) <ATTR_LINK_ALIAS>: Do not assemble the 3663 variable if it is external. 3664 3665 (static_ctors, static_dtors): New global variables. 3666 (process_attributes) <ATTR_LINK_CONSTRUCTOR>: New case. 3667 <ATTR_LINK_DESTRUCTOR>: Likewise. 3668 (end_subprog_body): Chain function as constructor and destructor 3669 if requested. 3670 3671 * exp_util.adb (Force_Evaluation): Unconditionally invoke 3672 Remove_Side_Effects with Variable_Ref set to true. 3673 (Remove_Side_Effects): Handle scalar types first. Use a renaming 3674 for non-scalar types even if Variable_Ref is true and for class-wide 3675 expressions. 3676 36772005-07-04 Ed Schonberg <schonberg@adacore.com> 3678 3679 * exp_attr.adb (Mod): Evaluate condition expression with checks off, 3680 to prevent spurious warnings. 3681 36822005-07-04 Thomas Quinot <quinot@adacore.com> 3683 3684 * exp_dist.adb (Build_TypeCode_Call): Remove incorrect processing for 3685 Itypes. Itypes are really unexpected there. 3686 (Build_TypeCode_Function): Generalise special processing for Itypes to 3687 handle the case of numeric implicit base types as well as enumerated 3688 ones. 3689 36902005-07-04 Ed Schonberg <schonberg@adacore.com> 3691 3692 * exp_intr.adb (Expand_Unc_Deallocation): If the designated type is 3693 controlled, indicate the expected type of the dereference that is 3694 created for the call to Deep_Finalize, to prevent spurious errors when 3695 the designated type is private and completed with a derivation from 3696 another private type. 3697 36982005-07-04 Vincent Celier <celier@adacore.com> 3699 3700 * make.adb (Change_To_Object_Directory): When unable to change the 3701 current dir to the object directory, output the full path of the 3702 directory. 3703 37042005-07-04 Matthew Gingell <gingell@adacore.com> 3705 3706 * Makefile.in: Replace indepsw-linux.adb by indepsw-gnu.adb 3707 3708 * indepsw-linux.adb: Replace by... 3709 3710 * indepsw-gnu.adb: ...this new file 3711 37122005-07-04 Vincent Celier <celier@adacore.com> 3713 3714 * mlib-prj.adb (Auto_Initialize): New constant String 3715 (SALs_Use_Constructors): New Boolean function 3716 (Build_Library): Call gnatbind with Auto_Initialize switch when 3717 SALs_Use_Constructors returns True. 3718 3719 * mlib-tgt.ads: Minor reformatting 3720 3721 * mlib-utl.ads: Minor reformatting 3722 3723 * opt.ads: (Use_Pragma_Linker_Constructor): New Boolean flag 3724 37252005-07-04 Ed Schonberg <schonberg@adacore.com> 3726 3727 * par-ch9.adb (P_Task, P_Protected): Indicate that single task and 3728 single protected declarations can have an interface list. 3729 (P_Entry_Declaration): Add handler for Error_Resync, which can be raised 3730 with seriously malformed entry declarations, and lead to compilation 3731 abandoned messages. 3732 37332005-07-04 Javier Miranda <miranda@adacore.com> 3734 3735 * par-load.adb: Load the context items in two rounds. 3736 37372005-07-04 Robert Dewar <dewar@adacore.com> 3738 3739 * scng.adb: Do not consider Mod used as an attribute to be a keyword 3740 37412005-07-04 Ed Schonberg <schonberg@adacore.com> 3742 Javier Miranda <miranda@adacore.com> 3743 3744 * sem_ch10.adb (Build_Limited_Views): A type declared with a private 3745 type extension needs a limited view. 3746 Remove previous restriction on private types available through the 3747 limited-view (only tagged private types were previously allowed). 3748 (Install_Withed_Unit): In the code that implements the 3749 legality rule given in AI-377, exclude a child unit with the name 3750 Standard, because it is a homonym of the Standard environment package. 3751 37522005-07-04 Thomas Quinot <quinot@adacore.com> 3753 3754 * sem_ch4.adb (Transform_Object_Operation): For an actual that is an 3755 overloaded function call, carry interpretations from the original tree 3756 to the copy. 3757 37582005-07-04 Ed Schonberg <schonberg@adacore.com> 3759 3760 * sem_ch6.adb (Conforming_Types): If the types are anonymous access 3761 types check whether some designated type is a limited view, and use 3762 the non-limited view if available. 3763 37642005-07-04 Gary Dismukes <dismukes@adacore.com> 3765 3766 * sem_eval.adb (Subtypes_Statically_Match): Use the discriminant 3767 constraint of full view of a private view T1 if present, when T2 is a 3768 discriminated full view. 3769 37702005-07-04 Thomas Quinot <quinot@adacore.com> 3771 3772 * sem_res.adb (Resolve_Actuals): Do not resolve the expression of an 3773 actual that is a view conversion of a bit packed array reference. 3774 37752005-07-04 Ed Schonberg <schonberg@adacore.com> 3776 3777 * sem_type.adb (Covers): Verify that Corresponding_Record_Type is 3778 present before checking whether an interface type covers a synchronized 3779 type. 3780 37812005-07-04 Ed Schonberg <schonberg@adacore.com> 3782 3783 * sem_util.adb (Is_Object_Reference): An indexed or selected component 3784 whose prefix is an implicit dereference is an object reference. Removes 3785 spurious errors when compiling with -gnatc. 3786 37872005-07-04 Robert Dewar <dewar@adacore.com> 3788 3789 PR ada/22039 3790 * s-sopco3.ads, s-sopco4.ads, s-sopco5.ads: Minor documentation fix 3791 37922005-07-04 Matthew Gingell <gingell@adacore.com> 3793 3794 * tracebak.c: Enable tracebacks on ia64 platforms 3795 37962005-07-04 Vincent Celier <celier@adacore.com> 3797 3798 * vms_conv.adb (Initialize): Allow multiple ALI files to be given to 3799 the GNAT BIND command, as gnatbind accepts multiples ALI files with 3800 the -L or -n switches. 3801 38022005-07-04 Vincent Celier <celier@adacore.com> 3803 3804 * makegpr.adb (Build_Global_Archive): Make sure the list of sources is 3805 correctly computed and the main project data is not modified while 3806 doing so. 3807 (Add_C_Plus_Plus_Link_For_Gnatmake): Always link with the C++ compiler 3808 (Choose_C_Plus_Plus_Link_Process): Do not generate shell script 3809 c++linker as this does not work on some platforms. 3810 38112005-07-04 Matthew Heaney <heaney@adacore.com> 3812 3813 * a-convec.ads, a-coinve.ads: Declaration of subtype Extended_Index 3814 was changed. 3815 * a-coinve.adb: Perform constraint checks explicitly. 3816 38172005-07-04 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3818 Thomas Quinot <quinot@adacore.com> 3819 3820 * Make-lang.in: (ada/targtyps.o): Add missing TREE_H dependency. 3821 new target gen-soccon. 3822 38232005-07-04 Robert Dewar <dewar@adacore.com> 3824 3825 * s-mastop-irix.adb, s-mastop-vms.adb: Minor reformatting 3826 38272005-07-04 Thomas Quinot <quinot@adacore.com> 3828 3829 * g-socket.ads (Check_Selector): Minor rewording of comment. 3830 38312005-07-04 Vincent Celier <celier@adacore.com> 3832 3833 * vms_data.ads: Add VMS qualifiers for new gnatpp switch --eol= 3834 38352005-07-04 Thomas Quinot <quinot@adacore.com> 3836 3837 * gen-soccon.c: Add constants SO_SNDTIMEO and SO_RCVTIMEO. 3838 38392005-07-04 Sergey Rybin <rybin@adacore.com> 3840 3841 * gnat_ugn.texi: Add description of --eol gnatpp option 3842 38432005-07-04 Eric Botcazou <ebotcazou@adacore.com> 3844 Thomas Quinot <quinot@adacore.com> 3845 3846 * gnat_rm.texi: Add a note that pragma Unreferenced is not appropriate 3847 if the user wants all calls of a subprogram to be flagged, 3848 independently of whether they are made from within the same unit or 3849 another unit. 3850 Mention restriction for pragma Linker_Alias on some platforms. 3851 Document pragma Linker_Constructor and Linker_Destructor. 3852 Rewrite documentation of Weak_External, Linker_Section and 3853 Linker_Alias pragmas. 3854 38552005-07-04 Arnaud Charlet <charlet@adacore.com> 3856 3857 * s-stausa.ads, s-stausa.adb: New files. 3858 38592005-06-30 Kelley Cook 3860 3861 * all files: Update FSF address in copyright headers. 3862 * gen-soccon.co (main): Output new FSF address in generated files. 3863 38642005-06-28 Paul Brook <paul@codesourcery.com> 3865 3866 * misc.c (gnat_init_gcc_eh): Call default_init_unwind_resume_libfunc. 3867 38682005-06-14 Olivier Hainque <hainque@adacore.com> 3869 Eric Botcazou <ebotcazou@adacore.com> 3870 3871 * s-mastop-irix.adb (Pop_Frame): Revert shorcuts avoiding calls to 3872 exc_unwind, now that we are generating proper .debug_frame output for 3873 that target. 3874 3875 * tracebak.c: Remove the mips-irix section, as we are now using the 3876 s-mastop based unwinder again. 3877 Under SPARC/Solaris, take into account the stack bias to compute the 3878 frame offset. The stack bias is 0 for the V8 ABI and 2047 for the V9 3879 ABI. 3880 38812005-06-14 Doug Rupp <rupp@adacore.com> 3882 3883 * g-trasym-vms.adb: renamed g-trasym-vms-alpha.adb 3884 3885 * g-trasym-vms-alpha.adb, g-trasym-vms-ia64.adb: New files 3886 38872005-06-14 Pascal Obry <obry@adacore.com> 3888 3889 * a-strhas.ads, a-secain.adb, a-secain.ads, a-rbtgso.ads, a-cgaaso.adb, 3890 a-cgaaso.ads, a-cgarso.adb, a-cgcaso.adb, a-cgarso.ads, a-cgcaso.ads, 3891 a-contai.ads, a-coprnu.ads, a-coprnu.adb: Fix header style (spaces in 3892 package name). 3893 3894 * a-intnam-lynxos.ads, a-intnam-unixware.ads, a-intnam-tru64.ads, 3895 a-intnam-aix.ads, a-intnam-irix.ads, a-excpol-interix.adb, 3896 a-intnam-hpux.ads, a-intnam-linux.ads, a-intnam-dummy.ads, 3897 a-intnam-os2.ads, a-numaux-libc-x86.ads, a-intnam-interix.ads, 3898 a-intnam-solaris.ads, a-caldel-vms.adb, a-calend-vms.ads, 3899 a-intnam-vms.ads, a-excpol-abort.adb, a-intnam-mingw.ads, 3900 a-intnam-vxworks.ads, a-numaux-vxworks.ads, s-osinte-unixware.adb, 3901 s-osinte-unixware.ads, s-osinte-lynxos-3.adb, s-osinte-lynxos-3.ads, 3902 s-osinte-hpux.ads, s-osinte-solaris-posix.ads, a-intnam-freebsd.ads, 3903 s-osinte-freebsd.adb, s-osinte-freebsd.ads, s-osinte-lynxos.adb, 3904 s-osinte-lynxos.ads, s-tpopsp-lynxos.adb, s-osinte-tru64.adb, 3905 s-osinte-tru64.ads, s-tpopsp-posix-foreign.adb, s-vxwork-alpha.ads, 3906 s-osinte-aix.adb, s-osinte-aix.ads, s-osinte-aix-fsu.ads, 3907 s-osinte-irix.adb, s-osinte-irix.ads, s-interr-sigaction.adb, 3908 s-osinte-irix-athread.ads, s-osinte-hpux-dce.adb, 3909 s-osinte-hpux-dce.ads, s-osinte-posix.adb, s-osinte-linux.ads, 3910 s-vxwork-m68k.ads, s-osinte-linux-fsu.ads, s-vxwork-mips.ads, 3911 s-osinte-dummy.ads, s-interr-dummy.adb, s-osinte-os2.adb, 3912 s-osinte-os2.ads, s-osprim-os2.adb, s-osinte-interix.ads, 3913 s-osprim-unix.adb, s-vxwork-ppc.ads, s-osinte-solaris.adb, 3914 s-osinte-solaris.ads, s-osprim-solaris.adb, s-tpopsp-solaris.adb, 3915 s-vxwork-sparcv9.ads, s-osinte-solaris-fsu.ads, s-interr-vms.adb, 3916 s-osinte-vms.adb, s-osinte-vms.ads, s-osprim-vms.adb, 3917 s-osprim-vms.ads, s-tpopde-vms.adb, s-tpopde-vms.ads, 3918 s-osprim-mingw.adb, s-vxwork-xscale.ads, s-interr-vxworks.adb, 3919 s-osinte-vxworks.adb, s-osinte-vxworks.ads, s-osprim-vxworks.adb, 3920 s-tfsetr-vxworks.adb, s-tpopsp-vxworks.adb, s-intman-posix.adb, 3921 s-osinte-fsu.adb, s-osprim-posix.adb, s-tfsetr-default.adb, 3922 s-tpopsp-posix.adb, s-traces-default.adb, s-trafor-default.adb, 3923 s-trafor-default.ads, s-tratas-default.adb, a-numaux-x86.adb, 3924 a-numaux-x86.ads, a-astaco.adb, a-astaco.ads, a-caldel.adb, 3925 a-caldel.ads, a-charac.ads, a-chlat1.ads, a-chlat9.ads, a-colien.adb, 3926 a-colien.ads, a-colire.adb, a-colire.ads, a-comlin.adb, a-cwila1.ads, 3927 a-cwila9.ads, ada.ads, a-decima.adb, a-diocst.ads, a-direio.adb, 3928 a-dynpri.adb, a-dynpri.ads, a-excpol.adb, a-flteio.ads, a-fwteio.ads, 3929 a-inteio.ads, a-interr.adb, a-intnam.ads, a-intsig.adb, a-intsig.ads, 3930 a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, a-lfwtio.ads, a-liteio.ads, 3931 a-liwtio.ads, a-llftio.ads, a-llfwti.ads, a-llitio.ads, a-lliwti.ads, 3932 a-ncelfu.ads, a-ngcefu.adb, a-ngcefu.ads, a-ngcoty.adb, a-ngelfu.adb, 3933 a-ngelfu.ads, a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, 3934 a-nllcty.ads, a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, 3935 a-nucoty.ads, a-nudira.adb, a-nuelfu.ads, a-nuflra.adb, a-numaux.ads, 3936 a-numeri.ads, a-reatim.adb, a-retide.adb, a-retide.ads, a-sequio.adb, 3937 a-sequio.ads, a-sfteio.ads, a-sfwtio.ads, a-siocst.ads, a-siteio.ads, 3938 a-siwtio.ads, a-ssicst.ads, a-ssitio.ads, a-ssiwti.ads, a-stmaco.ads, 3939 a-storio.adb, a-strbou.adb, a-strfix.adb, a-string.ads, a-strmap.adb, 3940 a-strsea.adb, a-strsup.adb, a-strunb.ads, a-ststio.adb, a-stunau.adb, 3941 a-stunau.ads, a-stwibo.adb, a-stwifi.adb, a-stwifi.ads, a-stwima.adb, 3942 a-stwise.adb, a-stwisu.adb, a-suteio.adb, a-suteio.ads, a-swuwti.adb, 3943 a-swuwti.ads, a-teioed.adb, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, 3944 a-tideau.adb, a-tideio.adb, a-tienau.adb, a-tienio.adb, a-tifiio.adb, 3945 a-tiflio.adb, a-tigeau.adb, a-tigeau.ads, a-tiinio.adb, a-timoau.adb, 3946 a-timoio.adb, a-timoio.ads, a-tiocst.ads, a-titest.adb, a-titest.ads, 3947 a-witeio.adb, a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, 3948 a-wtcstr.ads, a-wtdeau.adb, a-wtdeio.adb, a-wtenau.adb, a-wtenio.adb, 3949 a-wtfiio.adb, a-wtflio.adb, a-wtgeau.adb, a-wtinau.adb, a-wtinio.adb, 3950 a-wtinio.ads, a-wtmoau.adb, a-wtmoio.adb, a-wttest.adb, calendar.ads, 3951 dec.ads, dec-io.adb, dec-io.ads, directio.ads, errno.c, g-bubsor.adb, 3952 g-bubsor.ads, g-busora.adb, g-busora.ads, g-busorg.adb, g-busorg.ads, 3953 g-casuti.adb, g-casuti.ads, g-debuti.ads, g-heasor.adb, g-heasor.ads, 3954 g-hesora.adb, g-hesora.ads, g-hesorg.adb, g-hesorg.ads, g-htable.adb, 3955 g-htable.ads, g-io.adb, g-io.ads, g-io_aux.adb, g-io_aux.ads, 3956 g-memdum.adb, g-memdum.ads, g-sestin.ads, g-signal.ads, g-signal.adb, 3957 gnat.ads, g-souinf.ads, g-speche.adb, g-speche.ads, g-table.adb, 3958 g-table.ads, g-thread.adb, g-thread.ads, ioexcept.ads, i-vxwoio.adb, 3959 i-vxwoio.ads, math_lib.adb, s-assert.adb, s-assert.ads, s-asthan.ads, 3960 s-bitops.adb, s-bitops.ads, s-boarop.ads, s-carsi8.adb, s-carsi8.ads, 3961 s-carun8.adb, s-carun8.ads, s-casi16.adb, s-casi16.ads, s-casi32.adb, 3962 s-casi32.ads, s-casi64.adb, s-casi64.ads, s-casuti.adb, s-casuti.ads, 3963 s-caun16.adb, s-caun16.ads, s-caun32.adb, s-caun32.ads, s-caun64.adb, 3964 s-caun64.ads, s-direio.adb, s-direio.ads, sequenio.ads, s-errrep.adb, 3965 s-errrep.ads, s-exnint.adb, s-exnint.ads, s-exnllf.adb, s-exnllf.ads, 3966 s-exnlli.adb, s-exnlli.ads, s-expint.adb, s-expint.ads, s-explli.adb, 3967 s-explli.ads, s-expllu.adb, s-expllu.ads, s-expmod.adb, s-expmod.ads, 3968 s-expuns.adb, s-expuns.ads, s-fore.adb, s-fore.ads, s-geveop.adb, 3969 s-geveop.ads, s-htable.adb, s-htable.ads, s-imgbiu.adb, s-imgbiu.ads, 3970 s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 3971 s-imgdec.ads, s-imgenu.adb, s-imgenu.ads, s-imgint.adb, s-imgint.ads, 3972 s-imgllb.adb, s-imgllb.ads, s-imglld.adb, s-imglld.ads, s-imglli.adb, 3973 s-imglli.ads, s-imgllu.adb, s-imgllu.ads, s-imgllw.adb, s-imgllw.ads, 3974 s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwiu.adb, s-imgwiu.ads 3975 s-interr.ads, s-io.adb, s-mantis.adb, s-mantis.ads, s-osprim.ads, 3976 s-pack03.adb, s-pack03.ads, s-pack05.adb, s-pack05.ads, s-pack06.adb, 3977 s-pack06.ads, s-pack07.adb, s-pack07.ads, s-pack09.adb, s-pack09.ads, 3978 s-pack10.adb, s-pack10.ads, s-pack11.adb, s-pack11.ads, s-pack12.adb, 3979 s-pack12.ads, s-pack13.adb, s-pack13.ads, s-pack14.adb, s-pack14.ads, 3980 s-pack15.adb, s-pack15.ads, s-pack17.adb, s-pack17.ads, s-pack18.adb, 3981 s-pack18.ads, s-pack19.adb, s-pack19.ads, s-pack20.adb, s-pack20.ads, 3982 s-pack21.adb, s-pack21.ads, s-pack22.adb, s-pack22.ads, s-pack23.adb, 3983 s-pack23.ads, s-pack24.adb, s-pack24.ads, s-pack25.adb, s-pack25.ads, 3984 s-pack26.adb, s-pack26.ads, s-pack27.adb, s-pack27.ads, s-pack28.adb, 3985 s-pack28.ads, s-pack29.adb, s-pack29.ads, s-pack30.adb, s-pack30.ads, 3986 s-pack31.adb, s-pack31.ads, s-pack33.adb, s-pack33.ads, s-pack34.adb, 3987 s-pack34.ads, s-pack35.adb, s-pack35.ads, s-pack36.adb, s-pack36.ads, 3988 s-pack37.adb, s-pack37.ads, s-pack38.adb, s-pack38.ads, s-pack39.adb, 3989 s-pack39.ads, s-pack40.adb, s-pack40.ads, s-pack41.adb, s-pack41.ads, 3990 s-pack42.adb, s-pack42.ads, s-pack43.adb, s-pack43.ads, s-pack44.adb, 3991 s-pack44.ads, s-pack45.adb, s-pack45.ads, s-pack46.adb, s-pack46.ads, 3992 s-pack47.adb, s-pack47.ads, s-pack48.adb, s-pack48.ads, s-pack49.adb, 3993 s-pack49.ads, s-pack50.adb, s-pack50.ads, s-pack51.adb, s-pack51.ads, 3994 s-pack52.adb, s-pack52.ads, s-pack53.adb, s-pack53.ads, s-pack54.adb, 3995 s-pack54.ads, s-pack55.adb, s-pack55.ads, s-pack56.adb, s-pack56.ads, 3996 s-pack57.adb, s-pack57.ads, s-pack58.adb, s-pack58.ads, s-pack59.adb, 3997 s-pack59.ads, s-pack60.adb, s-pack60.ads, s-pack61.adb, s-pack61.ads, 3998 s-pack62.adb, s-pack62.ads, s-pack63.adb, s-pack63.ads, s-scaval.adb, 3999 s-scaval.ads, s-sequio.adb, s-sequio.ads, s-stache.adb, s-stache.ads, 4000 s-stratt.adb, s-stratt.ads, s-strcom.adb, s-strcom.ads, s-strops.adb, 4001 s-strops.ads, s-taasde.ads, s-tadeca.adb, s-tadeca.ads, s-tadert.adb, 4002 s-tadert.ads, s-taenca.adb, s-taenca.ads, s-taprob.adb, s-taprob.ads, 4003 s-tarest.adb, s-tarest.ads, s-tasdeb.adb, s-tasdeb.ads, s-tasini.adb, 4004 s-tasini.ads, s-taskin.adb, s-taskin.ads, s-tasque.adb, s-tasque.ads, 4005 s-tasren.ads, s-tasres.ads, s-tassta.adb, s-tassta.ads, s-tasuti.adb, 4006 s-tasuti.ads, s-tataat.adb, s-tataat.ads, s-tpinop.adb, s-tpinop.ads, 4007 s-tpoben.adb, s-tpoben.ads, s-tpobop.ads, s-tporft.adb, s-tposen.ads, 4008 s-traces.adb, s-traces.ads, s-tratas.adb, s-tratas.ads, s-valint.ads, 4009 s-unstyp.ads, s-veboop.adb, s-veboop.ads, s-vector.ads, s-vercon.adb, 4010 s-vercon.ads, s-wchcnv.adb, s-wchcnv.ads, s-wchjis.adb, s-wchjis.ads, 4011 s-wchstw.adb, s-wchstw.ads, s-wchwts.adb, s-wchwts.ads, s-widboo.adb, 4012 s-widboo.ads, s-widcha.adb, s-widcha.ads, s-widenu.adb, s-widenu.ads, 4013 s-widlli.adb, s-widlli.ads, s-widllu.adb, s-widllu.ads, s-wwdcha.ads, 4014 s-wwdenu.adb, s-wwdwch.ads, text_io.ads, s-stchop.ads, s-stchop.adb, 4015 s-stchop-vxworks.adb, a-intnam-darwin.ads, s-osinte-darwin.adb, 4016 s-osinte-darwin.ads, s-vxwork-x86.ads, a-numaux-darwin.ads, 4017 a-numaux-darwin.adb, a-chzla1.ads, a-chzla9.ads, a-lfztio.ads, 4018 a-liztio.ads, a-llfzti.ads, a-llizti.ads, a-sfztio.ads, a-siztio.ads, 4019 a-ssizti.ads, a-stzbou.adb, a-stzfix.adb, a-stzfix.ads, a-stzmap.adb, 4020 a-stzsea.adb, a-stzsup.adb, a-swunau.adb, a-swunau.ads, a-szuzti.adb, 4021 a-szuzti.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, 4022 a-ztcoio.adb, a-ztcoio.ads, a-ztcstr.ads, a-ztdeau.adb, a-ztdeio.adb, 4023 a-ztenio.adb, a-ztexio.adb, a-ztfiio.adb, a-ztflio.adb, a-ztgeau.adb, 4024 a-ztinau.adb, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, a-ztmoio.adb, 4025 a-zttest.adb, a-zzunio.ads, g-utf_32.adb: Fix header style. 4026 "GNU Ada" to GNAT, use proper casing for RUN-TIME. 4027 40282005-06-14 Jose Ruiz <ruiz@adacore.com> 4029 Arnaud Charlet <charlet@adacore.com> 4030 4031 * a-sytaco.ads, a-sytaco.adb (Suspension_Object): These objects are no 4032 longer protected objects. They have been replaced by lower-level 4033 suspension objects made up by a mutex and a condition variable (or 4034 their equivalent given a particular OS) plus some internal data to 4035 reflect the state of the suspension object. 4036 (Initialize, Finalize): Add this initialization procedure for 4037 Suspension_Object, which is a controlled type. 4038 (Finalize): Add the finalization procedure for Suspension_Object, 4039 which is a controlled type. 4040 4041 * a-sytaco-vxworks.ads, a-sytaco-vxworks.adb: Remove this version of 4042 Ada.Synchronous_Task_Control because there is no longer a need for a 4043 VxWorks specific version of this package. Target dependencies 4044 has been moved to System.Task_Primitives.Operations. 4045 4046 * s-osinte-mingw.ads (pCRITICAL_SECTION): Remove this type which is no 4047 longer needed. 4048 (InitializeCriticalSection, EnterCriticalSection, 4049 LeaveCriticalSection, DeleteCriticalSection): Replace the type 4050 pCriticalSection by an anonymous access type so that we avoid problems 4051 of accessibility to local objects. 4052 4053 * s-taprop.ads, s-taprop-posix.adb, s-taprop-vxworks.adb, 4054 s-taprop-mingw.adb, s-taprop-vms.adb, s-taprop-solaris.adb, 4055 s-taprop-os2.adb, s-taprop-dummy.adb, s-taprop-hpux-dce.adb, 4056 s-taprop-linux.adb, s-taprop-irix.adb, s-taprop-irix-athread.adb, 4057 s-taprop-tru64.adb, s-taprop-lynxos.adb (Elaboration Code): No longer 4058 set the environment task mask here. 4059 (Current_State): Add this function that returns the state of the 4060 suspension object. 4061 (Set_False): Add this procedure that sets the state of the suspension 4062 object to False. 4063 (Set_True): Add this procedure that sets the state of the suspension 4064 object to True, releasing the task that was suspended, if any. 4065 (Suspend_Until_True): Add this procedure that blocks the calling task 4066 until the state of the object is True. Program_Error is raised if 4067 another task is already waiting on that suspension object. 4068 (Initialize): Add this procedure for initializing the suspension 4069 object. It initializes the mutex and the condition variable which are 4070 used for synchronization and queuing, and it sets the internal state 4071 to False. 4072 (Finalize): Add this procedure for finalizing the suspension object, 4073 destroying the mutex and the condition variable. 4074 4075 * s-taspri-posix.ads, s-taspri-vxworks.ads, s-taspri-mingw.ads, 4076 s-taspri-vms.ads, s-taspri-solaris.ads, s-taspri-os2.ads, 4077 s-taspri-dummy.ads, s-taspri-hpux-dce.ads, s-taspri-linux.ads, 4078 s-taspri-tru64.ads, s-taspri-lynxos.ads (Suspension_Object): New object 4079 which provides a low-level abstraction (using operating system 4080 primitives) for Ada.Synchronous_Task_Control. 4081 This object is made up by a mutex (for ensuring mutual exclusion), a 4082 condition variable (for queuing threads until the condition is 4083 signaled), a Boolean (State) indicating whether the object is open, 4084 and a Boolean (Waiting) reflecting whether there is a task already 4085 suspended on this object. 4086 4087 * s-intman.ads, s-intman-irix.adb, s-intman-irix-athread.adb, 4088 s-intman-dummy.adb, s-intman-solaris.adb, s-intman-vms.adb, 4089 s-intman-vms.ads, s-intman-mingw.adb, 4090 (Initialize_Interrupts): Removed, no longer used. 4091 4092 * s-inmaop-posix.adb, s-inmaop-vms.adb, s-inmaop-dummy.adb, 4093 (Setup_Interrupt_Mask): New procedure. 4094 4095 * s-intman-vxworks.ads, s-intman-vxworks.adb: Update comments. 4096 4097 * s-inmaop.ads (Setup_Interrupt_Mask): New procedure 4098 4099 * s-interr.adb: Add explicit call to Setup_Interrupt_Mask now that 4100 this is no longer done in the body of s-taprop 4101 (Server_Task): Explicitely test for Pending_Action in case 4102 System.Parameters.No_Abort is True. 4103 4104 * s-taasde.adb: Add explicit call to Setup_Interrupt_Mask now that this 4105 is no longer done in the body of s-taprop 4106 41072005-06-14 Robert Dewar <dewar@adacore.com> 4108 4109 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, 4110 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, 4111 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, 4112 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, 4113 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, 4114 system-linux-x86.ads, system-vxworks-mips.ads, system-vxworks-mips.ads, 4115 system-os2.ads, system-interix.ads, system-solaris-sparc.ads, 4116 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, 4117 system-vms-zcx.ads, system-vxworks-ppc.ads, system.ads, 4118 system-darwin-ppc.ads, system-vxworks-x86.ads, system-linux-ppc.ads, 4119 system-linux-hppa.ads, system-vms_64.ads, 4120 system-vxworks-alpha.ads: Minor comment update for 4121 AI-362 (unit is Pure). 4122 4123 * a-chahan.ads, a-chahan.adb: Move Wide_Wide functions to Conversions 4124 Add pragma Pure_05 for AI-362 4125 Make remaining conversion functions obsolescent in Ada 95 4126 4127 * impunit.adb: Change a-swunha to a-swuwha and a-szunha to a-szuzha 4128 Make Ada.Wide_Characters[.Unicode] available in Ada 95 mode 4129 Add entries for a-wichun and a-zchuni 4130 Add a-widcha a-zchara for AI-395 4131 Add a-chacon (Ada.Characters.Conversions) to list of Ada 2005 routines 4132 4133 * Makefile.rtl: Change a-swunha to a-swuwha and a-szunha to a-szuzha 4134 Add entries for a-wichun.o and a-zchuni.o 4135 Entries for a-widcha.o and a-zchara.o 4136 Add entry for a-chacon.o 4137 4138 * a-ztenau.adb: Add with of Ada.Characters.Conversions 4139 4140 * a-chacon.ads, a-chacon.adb: New files. 4141 4142 * a-taside.adb, a-exstat.adb, a-excach.adb: Add warnings off to allow 4143 categorization violations. 4144 4145 * a-strmap.ads: Add pragma Pure_05 for AI-362 4146 * a-strmap.ads: Add note on implicit categorization for AI-362 4147 4148 * a-tgdico.ads, a-taside.ads: Add pragma Preelaborate_05 for AI-362 4149 4150 * par-prag.adb: Dummy entry for pragma Persistent_BSS 4151 Set Ada_Version_Explicit, for implementation of AI-362 4152 Add processing for pragma Pure_05 and Preelaborate_05 4153 Add entry for Assertion_Policy pragma 4154 4155 * sem.adb: Make sure predefined units are compiled with GNAT_Mode true 4156 when needed for proper processing of categorization stuff 4157 4158 * sem_cat.adb: 4159 For several cases, make errors in preealborate units warnings, 4160 instead of errors, if GNAT_Mode is set. For AI-362. 4161 4162 * sem_elab.adb (Check_Elab_Call): Call to non-static subprogram in 4163 preelaborate unit is now warning if in GNAT mode 4164 4165 * s-stoele.ads: Document AI-362 for pragma preelaborate 4166 41672005-06-14 Doug Rupp <rupp@adacore.com> 4168 4169 * s-parame-vms.ads, s-parame-hpux.ads, s-parame-vms-restrict.ads, 4170 s-parame-ae653.ads, s-parame.ads, s-parame-vxworks.ads: 4171 Default_Exception_Msg_Max_Length: new parameter. 4172 4173 * a-except.ads: (Exception_Msg_Max_Length): Set to 4174 System.Parameters.Default_Exception_Msg_Max_Length 4175 Add pragma Preelaborate_05 for AI-362 4176 Add warnings off to allow categorization violations for AI-362 4177 41782005-06-14 Vincent Celier <celier@adacore.com> 4179 4180 * gnatsym.adb: Adapt to modification of package Symbols: procedure 4181 Process is now in package Processing. 4182 4183 * symbols.ads, symbols.adb: 4184 (Processing): New package, containing procedure Process 4185 4186 * symbols-vms-alpha.adb: 4187 Replaced by symbols-vms.adb and symbols-processing-vms-alpha.adb 4188 4189 * symbols-vms.adb, symbols-processing-vms-alpha.adb, 4190 symbols-processing-vms-ia64.adb: New files. 4191 41922005-06-14 Pascal Obry <obry@adacore.com> 4193 4194 * mlib-tgt-mingw.adb (Build_Dynamic_Library): Replace the previous 4195 implementation. This new version generates the proper DllMain routine 4196 to initialize the SAL. The DllMain is generated in Ada and compiled 4197 before being added as option to the library build command. 4198 41992005-06-14 Doug Rupp <rupp@adacore.com> 4200 Pascal Obry <obry@adacore.com> 4201 4202 * adaint.c (__gnat_to_canonical_file_spec): Check for error returns in 4203 call to decc$translate_vms. 4204 (__gnat_locate_regular_file): Check if the path_val contains quotes. We 4205 need to remove those quotes before catenating the filename. 4206 (__gnat_locate_exec_on_path): improvements to the Win32 section: 4207 * avoid allocating the memory twice for better efficiency; 4208 * allocate 32K buffer for environment expansion as suggested by MSDN; 4209 * prepend ".;" to the path so that current directory is searched too. 4210 42112005-06-14 Robert Dewar <dewar@adacore.com> 4212 4213 * a-except.adb (Exception_Identity): return Null_Id for null occurrence 4214 instead of raising CE (AI-241) 4215 Add warnings off to allow categorization violations for AI-362 4216 42172005-06-14 Robert Dewar <dewar@adacore.com> 4218 4219 * ali-util.adb, gnatbind.adb: Remove references to 4220 Force_RM_Elaboration_Order. 4221 4222 * switch-b.adb: Remove recognition of -f switch 4223 42242005-06-14 Pascal Obry <obry@adacore.com> 4225 4226 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb (Realloc_For_Chunk): New 4227 implementation which is slightly more efficient. 4228 42292005-06-14 Gary Dismukes <dismukes@adacore.com> 4230 Javier Miranda <miranda@adacore.com> 4231 Ed Schonberg <schonberg@adacore.com> 4232 Hristian Kirtchev <kirtchev@adacore.com> 4233 4234 * exp_ch4.adb (Expand_Allocator_Expression): When an initialized 4235 allocator's designated type is a class-wide type, and compiling for 4236 Ada 2005, emit a run-time check that the accessibility level of the 4237 type given in the allocator's expression is not deeper than the level 4238 of the allocator's access type. 4239 4240 (Tagged_Membership): Modified to gives support to abstract interface 4241 types. 4242 4243 * a-tags.ads, a-tags.adb (type Type_Specific_Data): Add component 4244 Access_Level. 4245 (Descendant_Tag): New predefined function 4246 (Is_Descendant_At_Same_Level): New predefined function 4247 (Get_Access_Level): New private function 4248 (Set_Access_Level): New private procedure 4249 (IW_Membership): New function. Given the tag of an object and the tag 4250 associated with an interface, evaluate if the object implements the 4251 interface. 4252 (Register_Interface_Tag): New procedure used to initialize the table of 4253 interfaces used by the IW_Membership function. 4254 (Set_Offset_To_Top): Initialize the Offset_To_Top field in the prologue 4255 of the dispatch table. 4256 (Inherit_TSD): Modified to copy the table of ancestor tags plus the 4257 table of interfaces of the parent. 4258 (Expanded_Name): Raise Tag_Error if the passed tag equals No_Tag. 4259 (External_Tag): Raise Tag_Error if the passed tag equals No_Tag. 4260 (Parent_Tag): Return No_Tag in the case of a root-level tagged type, 4261 and raise Tag_Error if the passed tag equalis No_Tag, to conform with 4262 Ada 2005 semantics for the new predefined function. 4263 4264 * exp_attr.adb (Expand_N_Attribute, case Attribute_Input): Generate 4265 call to Descendant_Tag rather than Internal_Tag. 4266 (Expand_N_Attribute, case Attribute_Output): Emit a check to ensure that 4267 the accessibility level of the attribute's Item parameter is not deeper 4268 than the level of the attribute's prefix type. Tag_Error is raised if 4269 the check fails. The check is only emitted for Ada_05. 4270 (Find_Stream_Subprogram): If a TSS exists on the type itself for the 4271 requested stream attribute, use it. 4272 (Expand_N_Attribute_Reference): If the designated type is an interface 4273 then rewrite the referenced object as a conversion to force the 4274 displacement of the pointer to the secondary dispatch table. 4275 (Expand_N_Attribute_Reference, case 'Constrained): Return false if this 4276 is a dereference of an object with a constrained partial view. 4277 4278 * exp_ch5.adb (Expand_N_Return_Statement): When a function's result 4279 type is a class-wide type, emit a run-time check that the accessibility 4280 level of the returned object is not deeper than the level of the 4281 function's master (only when compiling for Ada 2005). 4282 4283 * exp_disp.ads, exp_disp.adb (Ada_Actions, Action_Is_Proc, 4284 Action_Nb_Arg): Add entries for new Get_Access_Level and 4285 Set_Access_Level routines in these tables. 4286 (Make_DT): Generate a call to set the accessibility level of the 4287 tagged type in its TSD. 4288 (Make_DT): Code cleanup. The functionality of generating all the 4289 secondary dispatch tables has been moved to freeze_record_type. 4290 (Make_Abstract_Interface_DT): Minor code cleanup. 4291 (Set_All_DT_Position): Code cleanup. As part of the code cleanup 4292 this subprogram implements a new algorithm that provides the 4293 same functionality and it is more clear in case of primitives 4294 associated with abstract interfaces. 4295 (Set_All_Interfaces_DTC_Entity): Removed. As part of the code 4296 clean up, the functionality of this subprogram is now provided 4297 by Set_All_DT_Position. 4298 (Write_DT): New subprogram: a debugging procedure designed to be called 4299 within gdb to display the dispatch tables associated with a tagged 4300 type. 4301 (Collect_All_Interfaces): New subprogram that collects the whole list 4302 of interfaces that are directly or indirectly implemented by a tagged 4303 type. 4304 (Default_Prim_Op_Position): New subprogram that returns the fixed 4305 position in the dispatch table of the default primitive operations. 4306 (Expand_Interface_Actuals): New subprogram to generate code that 4307 displaces all the actuals corresponding to class-wide interfaces to 4308 reference the interface tag of the actual object. 4309 (Expand_Interface_Conversion): New subprogram. Reference the base of 4310 the object to give access to the interface tag associated with the 4311 secondary dispatch table. 4312 (Expand_Interface_Thunk): New subprogram that generates the code of the 4313 thunk. This is required for compatibility with the C+ ABI. 4314 (Make_Abstract_Interface_DT): New subprogram that generate the 4315 declarations for the secondary dispatch tables associated with an 4316 abstract interface. 4317 (Set_All_Interfaces_DTC_Entity): New subprogram that sets the DTC_Entity 4318 attribute for each primitive operation covering interface subprograms 4319 (Expand_Dispatching_Call, Fill_DT_Entry, Make_DT, Set_All_DT_Position): 4320 These subprograms were upgraded to give support to abstract interfaces 4321 4322 * rtsfind.ads (type RE_Id): Add RE_Descendant_Tag, 4323 RE_Is_Descendant_At_Same_Level, RE_Get_Access_Level, and 4324 RE_Set_Access_Level. 4325 (RE_Unit_Table): Add entries for new Ada.Tags operations. 4326 Add support to call the followig new run-time subprograms: 4327 IW_Membership, Register_Interface_Tag, and Set_Offset_To_Top 4328 4329 * sem_ch3.adb (Constant_Redeclaration): Allow a deferred constant to 4330 match its full declaration when both have an access definition with 4331 statically matching designated subtypes. 4332 (Analyze_Component_Declaration): Delete commented out code that was 4333 incorrectly setting the scope of an anonymous access component's type. 4334 (Process_Discriminants): Set Is_Local_Anonymous_Access for the type of 4335 an access discriminant when the containing type is nonlimited. 4336 (Make_Incomplete_Type_Declaration): Create an incomplete type 4337 declaration for a record type that includes self-referential access 4338 components. 4339 (Check_Anonymous_Access_Types): Before full analysis of a record type 4340 declaration, create anonymous access types for each self-referential 4341 access component. 4342 (Analyze_Component_Declaration, Array_Type_Declaration): Indicate that 4343 an access component in this context is a Local_Anonymous_Access, for 4344 proper accessibility checks. 4345 (Access_Definition): Set properly the scope of the anonymous access type 4346 created for a stand-alone access object. 4347 (Find_Type_Of_Object): An object declaration may be given with an access 4348 definition. 4349 (Complete_Subprograms_Derivation): New subprogram used to complete 4350 type derivation of private tagged types implementing interfaces. 4351 In this case some interface primitives may have been overriden 4352 with the partial-view and, instead of re-calculating them, they 4353 are included in the list of primitive operations of the full-view. 4354 (Build_Derived_Record_Type): Modified to give support to private 4355 types implemening interfaces. 4356 (Access_Definition): Reject ALL on anonymous access types. 4357 (Build_Derived_Record_Type): In the case of Ada 2005, allow a tagged 4358 type derivation to occur at a deeper accessibility level than the 4359 parent type. 4360 For the case of derivation within a generic body however, disallow the 4361 derivation if the derived type has an ancestor that is a formal type 4362 declared in the formal part of an enclosing generic. 4363 (Analyze_Object_Declaration): For protected objects, remove the check 4364 that they cannot contain interrupt handlers if not declared at library 4365 level. 4366 (Add_Interface_Tag_Components): New subprogram to add the tag components 4367 corresponding to all the abstract interface types implemented by a 4368 record type or a derived record type. 4369 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type, 4370 Derived_Type_Declaration, Find_Type_Name, Inherit_Components, 4371 Process_Full_View, Record_Type_Declaration): Modified to give 4372 support to abstract interface types 4373 (Collect_Interfaces): New subprogram that collects the list of 4374 interfaces that are not already implemented by the ancestors 4375 (Process_Full_View): Set flag Has_Partial_Constrained_View appropriately 4376 when partial view has no discriminants and full view has defaults. 4377 (Constrain_Access): Reject a constraint on a general access type 4378 if the discriminants of the designated type have defaults. 4379 (Access_Subprogram_Declaration): Associate the Itype node with the inner 4380 full-type declaration or subprogram spec. This is required to handle 4381 nested anonymous declarations. 4382 (Analyze_Private_Extension_Declaration, Build_Derived_Record_Type, 4383 Derived_Type_Declaration, Find_Type_Name, Inherit_Components, 4384 Process_Full_View, Record_Type_Declaration): Modified to give 4385 support to abstract interface types 4386 (Derive_Subprograms): Addition of a new formal to indicate if 4387 we are in the case of an abstact-interface derivation 4388 (Find_Type_Of_Subtype_Indic): Moved from the body of the package 4389 to the specification because it is requied to analyze all the 4390 identifiers found in a list of interfaces 4391 4392 * debug.adb: Complete documentation of flag "-gnatdZ" 4393 4394 * exp_ch3.adb: Implement config version of persistent_bss pragma 4395 (Check_Stream_Attributes): Use Stream_Attribute_Available instead of 4396 testing for TSS presence to properly enforce visibility rules. 4397 (Freeze_Record_Type): Code cleanup. Modified to call the subprogram 4398 Make_Abstract_Interfaces_DT to generate the secondary tables 4399 associated with abstract interfaces. 4400 (Build_Init_Procedure): Modified to initialize all the tags 4401 corresponding. 4402 (Component_Needs_Simple_Initialization): Similar to other tags, 4403 interface tags do not need initialization. 4404 (Freeze_Record_Type): Modified to give support to abstract interface 4405 types. 4406 (Expand_N_Object_Declaration): Do not generate an initialization for 4407 a scalar temporary marked as internal. 4408 4409 * exp_ch6.adb (Add_Simple_Call_By_Copy_Code): Handle properly an 4410 in-out parameter that is a component in an initialization procedure, 4411 whose constraint might depend on discriminants, and that may be 4412 misaligned because of packing or representation clauses. 4413 (Is_Legal_Copy): New predicate to determine whether a possibly 4414 misaligned in-out actual can actually be passed by copy/return. This 4415 is an error in case the type is by_reference, and a warning if this is 4416 the consequence of a DEC import pragma on the subprogram. 4417 (Expand_Call, Freeze_Subprogram): Modified to give support to abstract 4418 interface types 4419 (Expand_Inlined_Call): Mark temporary generated for the return value as 4420 internal, so that no useless scalar normalization is generated for it. 4421 (Expand_N_Subprogram_Declaration): Save unanalyzed body so calls to 4422 null procedure can always be inlined. 4423 (Expand_N_Subprogram_Declaration): If this is the declaration of a null 4424 procedure, generate an explicit empty body for it. 4425 4426 * exp_util.ads, exp_util.adb (Find_Interface_ADT): New subprogram. 4427 Given a type implementing an interface, returns the corresponding 4428 access_disp_table value. 4429 (Find_Interface_Tag): New subprogram. Given a type implementing an 4430 interface, returns the record component containing the tag of the 4431 interface. 4432 (Find_Interface_Tag): New overloaded subprogram. Subsidiary to the 4433 previous ones that return the corresponding tag and access_disp_table 4434 entities. 4435 (Is_Predefined_Dispatching_Operation): Determines if a subprogram 4436 is a predefined primitive operation. 4437 (Expand_Subtype_From_Expr): If the expression is a selected component 4438 within an initialization procedure, compute its actual subtype, because 4439 the component may depend on the discriminants of the enclosing record. 4440 4441 * i-cpp.ads, i-cpp.adb: 4442 This package has been left available for compatibility with previous 4443 versions of the frontend. As part of the new layout this is now a 4444 dummy package that uses declarations available at a-tags.ads 4445 4446 * par-ch3.adb (P_Identifier_Declarations): Give an error for use of 4447 "constant access" and "aliased [constant] access" when not compiling 4448 with -gnat05. 4449 Suppress Ada 2005 keyword warning if -gnatwY used 4450 (P_Identifier_Declarations): Add support for object declarations with 4451 access definitions. 4452 (Private_Extension_Declaration): Complete the documentation 4453 (P_Derived_Type_Def_Or_Private_Ext_Decl): Fill the inteface_list 4454 attribute in case of private extension declaration 4455 (P_Type_Declaration): Mark as "abstract" the type declarations 4456 corresponding with protected, synchronized and task interfaces 4457 (P_Declarative_Items): "not" and "overriding" are overriding indicators 4458 for a subprogram or instance declaration. 4459 4460 * sem_ch12.adb (Analyze_Subprogram_Instantiation): Verify that an 4461 instantiation that is a dispatching operation has controlling access 4462 parameters that are null excluding. 4463 Save and restore Ada_Version_Explicit, for implementation of AI-362 4464 (Validate_Derived_Type_Instance): Add check for abstract interface 4465 types. 4466 (Analyze_Formal_Package): Establish Instantiation source for the copy of 4467 the generic that is created to represent the formal package. 4468 (Analyze_Package_Instantiation): Instantiate body immediately if the 4469 package is a predefined unit that contains inlined subprograms, and 4470 we are compiling for a Configurable_Run_Time. 4471 (Instantiate_Formal_Subprogram): Indicate that null default subprogram 4472 If the program has a null default, generate an empty body for it. 4473 4474 * sem_ch6.adb, sem_ch9.adb (Analyze_Subprograms_Declaration): Update 4475 error message condition, null procedures are correctly detected now. 4476 (New_Overloaded_Entity): Bypass trivial overriding indicator check 4477 for subprograms in the context of protected types. Instead, the 4478 indicator is examined in Sem_Ch9 while analysing the subprogram 4479 declaration. 4480 (Check_Overriding_Indicator): Check consistency of overriding indicator 4481 on subprogram stubs as well. 4482 (Analyze_Subprogram_Declaration): Diagnose null procedures declared at 4483 the library level. 4484 (Analize_Subprogram_Specification): When analyzing a subprogram in which 4485 the type of the first formal is a concurrent type, replace this type 4486 by the corresponding record type. 4487 (Analyze_Subprogram_Body): Undo the previous work. 4488 (Analyze_Procedure_Call): If the call has the form Object.Op, the 4489 analysis of the prefix ends up analyzing the call itself, after which 4490 we are done. 4491 (Has_Interface_Formals): New subprogram subsidiary to analyze 4492 subprogram_specification that returns true if some non 4493 class-wide interface subprogram is found 4494 (New_Overloaded_Entity): Modified to give support to abstract 4495 interface types 4496 (Conforming_Types): In Ada 2005 mode, conformance checking of anonymous 4497 access to subprograms must be recursive. 4498 (Is_Unchecked_Conversion): Improve the test that recognizes 4499 instantiations of Unchecked_Conversion, and allows them in bodies that 4500 are to be inlined by the front-end. When the body comes from an 4501 instantiation, a reference to Unchecked_Conversion will be an 4502 Expanded_Name, even though the body has not been analyzed yet. 4503 Replace Is_Overriding and Not_Overriding in subprogram_indication with 4504 Must_Override and Must_Not_Override, to better express intent of AI. 4505 (Analyze_Subprogram_Body): If an overriding indicator is given, check 4506 that it is consistent with the overrinding status of the subprogram 4507 at this point. 4508 (Analyze_Subprogram_Declaration): Indicate that a null procedure is 4509 always inlined. 4510 If the subprogram is a null procedure, indicate that it does not need 4511 a completion. 4512 4513 * sem_disp.adb (Check_Controlling_Type): Give support to entities 4514 available through limited-with clauses. 4515 (Check_Dispatching_Operation): A stub acts like a body, and therefore is 4516 allowed as the last primitive of a tagged type if it has no previous 4517 spec. 4518 (Override_Dispatching_Operation, Check_Dispatching_Operation): Modified 4519 to give support to abstract interface types 4520 4521 * sem_res.adb (Valid_Conversion): Perform an accessibility level check 4522 in the case where the target type is an anonymous access type of an 4523 object or component (that is, when Is_Local_Anonymous_Access is true). 4524 Prevent the special checks for conversions of access discriminants in 4525 the case where the discriminant belongs to a nonlimited type, since 4526 such discriminants have their accessibility level defined in the same 4527 way as a normal component of an anonymous access type. 4528 (Resolve_Allocator): When an allocator's designated type is a class-wide 4529 type, check that the accessibility level of type given in the 4530 allocator's expression or subtype indication is not statically deeper 4531 than the level of the allocator's access type. 4532 (Check_Discriminant_Use): Diagnose discriminant given by an expanded 4533 name in a discriminant constraint of a record component. 4534 (Resolve_Explicit_Dereference): Do not check whether the type is 4535 incomplete when the dereference is a use of an access discriminant in 4536 an initialization procedure. 4537 (Resolve_Type_Conversion): Handle conversions to abstract interface 4538 types. 4539 (Valid_Tagged_Conversion): The conversion of a tagged type to an 4540 abstract interface type is always valid. 4541 (Valid_Conversion): Modified to give support to abstract interface types 4542 (Resolve_Actuals): Enable full error reporting on view conversions 4543 between unrelated by_reference array types. 4544 The rule for view conversions of arrays with aliased components is 4545 weakened in Ada 2005. 4546 Call to obsolescent subprogram is now considered to be a violation of 4547 pragma Restrictions (No_Obsolescent_Features). 4548 (Check_Direct_Boolean_Operator): If the boolean operation has been 4549 constant-folded, there is nothing to check. 4550 (Resolve_Comparison_Op, Resolve_Equality_Op, Resolve_Boolean_Op): Defer 4551 check on possible violation of restriction No_Direct_Boolean_Operators 4552 until after expansion of operands, to prevent spurious errors when 4553 operation is constant-folded. 4554 4555 * sem_type.ads, sem_type.adb (Covers, Intersect_Types, Specific_Type, 4556 Has_Compatible_Type): Modified to give support to abstract interface 4557 types. 4558 (Interface_Present_In_Ancestor): New function to theck if some ancestor 4559 of a given type implements a given interface 4560 4561 * sem_ch4.adb (Analyze_Call): Handle properly an indirect call whose 4562 prefix is a parameterless function that returns an access_to_procedure. 4563 (Transform_Object_Operation): Handle properly function calls of the 4564 form Obj.Op (X), which prior to analysis appear as indexed components. 4565 (Analyze_One_Call): Complete the error notification to help new Ada 4566 2005 users. 4567 (Analyze_Allocator): For an allocator without an initial value, where 4568 the designated type has a constrained partial view, a discriminant 4569 constraint is illegal. 4570 45712005-06-14 Robert Dewar <dewar@adacore.com> 4572 4573 * a-textio.adb (Set_Col): Fix two errors noticed recently, having to 4574 do with treatment of Set_Col when positioned at end of line character. 4575 45762005-06-14 Robert Dewar <dewar@adacore.com> 4577 4578 * atree.adb: (Elist*): Protect against uninitialized field 4579 45802005-06-14 Ed Schonberg <schonberg@adacore.com> 4581 4582 * checks.adb (Install_Null_Excluding_Check): Do not generate checks 4583 for an attribute reference that returns an access type. 4584 (Apply_Discriminant_Check): No need for check if (designated) type has 4585 constrained partial view. 4586 4587 (Apply_Float_Conversion_Check): Generate a short-circuit expression for 4588 both bound checks, rather than a conjunction. 4589 (Insert_Valid_Check): If the expression is an actual that is an indexed 4590 component of a bit-packed array, force expansion of the packed element 4591 reference, because it is specifically inhibited elsewhere. 4592 45932005-06-14 Vincent Celier <celier@adacore.com> 4594 4595 * clean.adb (Clean_Project): Correctly delete executable specified as 4596 absolute path names. 4597 4598 * make.adb (Gnatmake): Allow relative executable path names with 4599 directory information even when project files are used. 4600 (Change_To_Object_Directory): Fail gracefully when unable to change 4601 current working directory to object directory of a project. 4602 (Gnatmake): Remove exception handler that could no longer be exercized 4603 (Compile_Sources.Compile): Use deep copies of arguments, as some of them 4604 may be deallocated by Normalize_Arguments. 4605 (Collect_Arguments): Eliminate empty arguments 4606 4607 * gnatcmd.adb (All_Projects): New Boolean flag, initialized to False, 4608 and set to True when -U is used for GNAT PRETTY or GNAT METRIC. 4609 (Check_Project): Return False when Project is No_Project. Return True 4610 when All_Projects is True. 4611 (GNATCmd): Recognize switch -U for GNAT PRETTY and GNAT METRIC and set 4612 All_Projects to True. 4613 Minor reformatting 4614 46152005-06-14 Ed Schonberg <schonberg@adacore.com> 4616 Javier Miranda <miranda@adacore.com> 4617 Thomas Quinot <quinot@adacore.com> 4618 Robert Dewar <dewar@adacore.com> 4619 Hristian Kirtchev <kirtchev@adacore.com> 4620 Gary Dismukes <dismukes@adacore.com> 4621 4622 * einfo.ads, einfo.adb (Is_Local_Anonymous_Access): New flag on 4623 anonymous access types, to indicate that the accessibility level of 4624 the type is determined by that of the enclosing declaration. 4625 (Has_Persistent_BSS): New flag 4626 (Set_Is_Primitive_Wrapper): Upgrade the barrier to allow the usage 4627 of this attribute with functions. 4628 (Is_Primitive_Wrapper): Remove the barrier. 4629 (Has_Specified_Stream_Input, Has_Specified_Stream_Output, 4630 Has_Specified_Stream_Read, Has_Specified_Stream_Write): 4631 New subprograms. 4632 (Set_Has_Specified_Stream_Input, Set_Has_Specified_Stream_Output, 4633 Set_Has_Specified_Stream_Read, Set_Has_Specified_Stream_Write): 4634 New subprograms. 4635 (Is_Pure_Unit_Access_Type): New flag 4636 (Abstract_Interfaces): Complete the assertion to cover all usages. 4637 (Set_Is_Interface): Complete the assertion to cover all usages. 4638 (Is_Primitive_Wrapper): New attribute. 4639 (Is_Obsolescent): Now applies to all entities (though it is only set 4640 for subprograms currently) 4641 New flag: Has_Constrained_Partial_View, to implemente Ada 2005 AI-363, 4642 which solves various problems concerning access subtypes. 4643 (Has_Persistent_BSS): New flag 4644 (Is_Primitive_Wrapper, Set_Primitive_Wrapper): Code cleanup. 4645 Remove these subprograms because this attribute is currently 4646 not used. 4647 New entity flags: 4648 Has_Specified_Stream_Input (Flag190) 4649 Has_Specified_Stream_Output (Flag191) 4650 Has_Specified_Stream_Read (Flag192) 4651 Has_Specified_Stream_Write (Flag193) 4652 Present in all type and subtype entities. Set for a given view if the 4653 corresponding stream-oriented attribute has been defined by an 4654 attribute definition clause. When such a clause occurs, a TSS is set 4655 on the underlying full view; the flags are used to track visibility of 4656 the attribute definition clause for partial or incomplete views. 4657 (Is_Pure_Unit_Access_Type): New flag 4658 Clarify use of Is_Internal. 4659 (Is_Primitive_Wrapper): New attribute present in primitive subprograms 4660 internally generated to wrap the invocation of tasks and protected 4661 types that implement interfaces. 4662 (Implementation_Base_Type): Documentation correction 4663 (Is_Obsolescent): Now applies to all entities (though it is only set 4664 for subprograms currently) 4665 New flag: Has_Constrained_Partial_View, to implement Ada 2005 AI-363, 4666 which solves various problems concerning access subtypes. 4667 4668 * exp_ch9.adb (Type_Conformant_Parameters): Introduce mode conformance 4669 for examined parameters. Identify unequal parameter list lengths as 4670 non-conformant parameters. 4671 (Overriding_Possible): Do not check for "All" qualifier in declaration 4672 of controlling access parameter, following prescription of AI-404. 4673 (Build_Entry_Wrapper_Spec, Build_Entry_Wrapper_Body): New subprograms 4674 that build the procedure body that wraps an entry invocation 4675 (Build_Corresponding_Record, Build_Protected_Sub_Specification, 4676 Expand_N_Protected_Body, Expand_N_Protected_Type_Declaration, 4677 Expand_N_Task_Body, Expand_N_Task_Type_Declaration): Modified to 4678 give support to abstract interface types 4679 4680 * freeze.adb (Freeze_Entity): Issue error message if 4681 Is_Pure_Unit_Access_Type set, unless we are in Ada 2005 mode and the 4682 type has no storage pool (Ada 2005) AI-366. 4683 Also modified to give support to abstract interface types 4684 (Freeze_Subprogram): Issue an error for a dispatching subprogram with an 4685 Inline_Always pragma. 4686 4687 * par-ch9.adb (P_Task_Items): Reserved words "not" or "overriding" may 4688 now begin an entry declaration. 4689 (P_Entry_Or_Subprogram_With_Indicator): New procedure in 4690 P_Protected_Operation_Declaration_Opt. Parse an entry declaration or 4691 a subprogram declaration preceded by an overriding indicator. 4692 (P_Protected_Operation_Declaration_Opt): Add case for parsing entry 4693 declarations or subprogram declarations preceded by reserved words 4694 "not" or "overriding". 4695 (P_Entry_Declaration): Update comment. Parse and check overriding 4696 indicator, set semantic flags of entry declarations. 4697 (P_Task): New error message in case of private applied 4698 to a task type declaration. 4699 (P_Protected): New error message in case of private applied 4700 to a task type declaration. 4701 4702 * sem_ch7.adb (Preserve_Full_Attributes): Modified to handle the case 4703 in which the full view of a type implementing an interface is a 4704 concurrent type. 4705 (Has_Overriding_Pragma): Remove obsolete implementation of AI-218. 4706 Declare_Inherited_Private_Subprograms): If an explicit operation 4707 overrides an operation that is inherited in the private part, mark the 4708 explicit one as overriding, to enable overriding indicator checks. 4709 (Preserve_Full_Attributes): Propagate Is_Unchecked_Union attribute from 4710 full view to partial view, to simplify handling in back-end. 4711 4712 * sprint.adb: Print interface lists where needed: derived types, 4713 protected types, task types. 4714 output "is null" for null procedures. Part of implementation of 4715 4716 * sem_cat.adb (Validate_Access_Type_Declaration): Implement AI-366 4717 relaxation of rules for access types in pure, shared passive partitions. 4718 4719 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Reorganize to 4720 first read discriminants into temporary objects, performing checks on 4721 the read values, then possibly performing discriminant checks on the 4722 actual (if it is constrained), and only finally reading the components 4723 into a constrained temporary object. 4724 (Build_Elementary_Input_Call): Adjust the specific circuitry for the 4725 case of reading discriminants of a mutable record type to recognize 4726 the new form of the code generated by 4727 Build_Mutable_Record_Read_Procedure. 4728 4729 * exp_tss.ads, exp_tss.adb (Make_Init_Proc_Name): Reimplement in terms 4730 of a simple call to Make_TSS_Name. 4731 (Make_TSS_Name_Local): Add the TSS name as the last thing in the name 4732 buffer, in order for Is_TSS to work correctly on local TSS names. 4733 4734 * sem_attr.ads, sem_attr.adb (Resolve_Attribute, case 'Access): Use flag 4735 Is_Local_Anonymous_Access to check legaliy of attributes in the 4736 context of access components and stand-alone access objects. 4737 (Stream_Attribute_Available): In Ada 95 mode, a stream attribute is 4738 treated as available for a limited private type if there is an 4739 attribute_definition_clause that applies to its full view, but not in 4740 other cases where the attribute is available for the full view 4741 (specifically, the sole fact that the full view is non-limited does not 4742 make the attribute available for the partial view). 4743 (Build_Access_Subprogram_Type): Diagnose attempt to apply 'access to a 4744 non-overloaded intrinsic subprogram. 4745 (Check_Stream_Attribute): Reject an attribute reference for an 4746 unavailable stream attribute even if the prefix is not a limited type 4747 (case of a 'Input attribute reference for an abstract, non-classwide 4748 type) 4749 (Stream_Attribute_Available): New function to determine whether a stream 4750 attribute is available at a place. 4751 (Check_Attribute): Use Stream_Attribute_Available instead of just 4752 testing for TSS presence on the implementation base type. 4753 (Analyze_Attribute): Modified to give support to task interfaces. 4754 (Analyze_Access_Attribute): Add error check for use of an Access (or 4755 Unrestricted_Access) attribute with a subprogram marked as 4756 Inline_Always. 4757 (Analyze_Attribute, case Attribute_Address): Add error check for use of 4758 an Address attribute with a subprogram marked as Inline_Always. 4759 Update Eval_Attribute to handle new value of Width from AI-395 4760 4761 * sem_ch13.adb (Analyze_Stream_TSS_Definition): New subprogram. 4762 (Analyze_Attribute_Definition_Clause, cases Input, Output, Read, Write): 4763 Factor common code across the stream-oriented attribute circcuits into 4764 a new subprogram, Analyze_Stream_TSS_Definition. The new uniform 4765 processing is functionally identical to the previous duplicated one, 4766 except that an expression that denotes an abstract subprogram will now 4767 be rejected, as mandated by AI-195 item 5. 4768 4769 * sem_util.ads, sem_util.adb (Type_Access_Level): Use flag 4770 Is_Local_Anonymous_Access to apply accessibility checks to access 4771 components and stand-alone access objects. 4772 (Has_Discriminant_Dependent_Constraint): Moved to spec for use 4773 elsewhere. 4774 (Is_Potentially_Persistent_Type): New function 4775 (Is_Dependent_Component_Of_Mutable_Object): If the enclosing object is 4776 a heap-object whose type has a constrained partial view, the object is 4777 unconstrained and the component may depend on a discriminant, making its 4778 renaming illegal. 4779 4780 * sinfo.ads, sinfo.adb 4781 (Must_Not_Override): Flag applicable to N_Entry_Declaration. 4782 (Must_Override): Flag applicable to N_Entry_Declaration. 4783 Indicate that interface_list can appear in single task and single 4784 protected declarations. 4785 Replace Is_Overriding and Not_Overriding with Must_Override and 4786 Must_Not_Override, to better express intent of AI. 4787 Is_Overriding, Not_Overriding: Ada2005 flags that indicate the presence 4788 of an overriding indicator in a subprogram or instance. 4789 Ada 2005 (AI-248) Null_Present can appear in a procedure specification. 4790 Add the overriding indicator [[not] overriding] construct to the 4791 following grammar productions: 4792 ENTRY_DECLARATION 4793 GENERIC_INSTANTIATION 4794 SUBPROGRAM_SPECIFICATION 4795 4796 * par-ch10.adb (P_Compilation_Unit): Subprogram declaration or body 4797 can start with an overriding indicator. 4798 4799 * par-ch6.adb (P_Subprogram): Recognize overriding indicator, and set 4800 flags accordingly on subrogram specifications or instances. 4801 4802 * sem_ch8.adb: 4803 (Analyze_Subprogram_Renaming): For a renaming_as_body, verify that the 4804 overriding_indicator, if present, is consistent with status of spec. 4805 Improve error message for null-excluding checks on controlling access 4806 parameters. 4807 (Check_In_Previous_With_Clause): Protect the frontend against 4808 previously reported critical errors in the context clauses. 4809 Save and restore Ada_Version_Explicit, for implementation of AI-362 4810 (Analyze_Subprogram_Renaming): If the new entity is a dispatching 4811 operation verify that controlling formals of the renamed entity that 4812 are access parameters are explicitly non-null. 4813 (Find_Expanded_Name): Improve error message when prefix is an illegal 4814 reference to a private child unit. 4815 4816 * exp_imgv.adb, s-imgwch.ads, s-imgwch.adb, s-valwch.adb, 4817 s-valwch.ads, s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdwch.adb: 4818 Rewrite to correspond to new wide character names in AI-395 4819 4820 * par-ch12.adb (P_Formal_Subprogram_Declaration): Recognize null 4821 default procedures. 4822 48232005-06-14 Ed Schonberg <schonberg@adacore.com> 4824 Robert Dewar <dewar@adacore.com> 4825 4826 * errout.ads, errout.adb (Error_Msg_NW): Only emit warning on user 4827 code, not on the bodies of predefined operations, to cut down on 4828 spurious noise. 4829 48302005-06-14 Ed Schonberg <schonberg@adacore.com> 4831 4832 * exp_aggr.adb (Aggr_Size_OK): An array with no components can always 4833 be expanded in place. The size computation does not require a 4834 subtraction, which would raise an exception on a compiler built with 4835 assertions when the upper bound is Integer'first. 4836 (Flatten): For an array of composite components, take into account the 4837 size of the components to determine whether it is safe to expand the 4838 array into a purely positional representation. 4839 48402005-06-14 Thomas Quinot <quinot@adacore.com> 4841 4842 * exp_ch2.adb (Param_Entity): Take the case of an expanded_name 4843 denoting a formal parameter into account. 4844 48452005-06-14 Ed Schonberg <schonberg@adacore.com> 4846 4847 * exp_ch7.adb (Find_Node_To_Be_Wrapped): If the node appears within 4848 the entry_call alternative of a conditional entry call, wrap the 4849 conditional entry call itself. 4850 48512005-06-14 Nicolas Setton <setton@adacore.com> 4852 Ed Schonberg <schonberg@adacore.com> 4853 4854 * exp_dbug.ads, exp_dbug.adb (Get_Variant_Part): Fix the encoding of 4855 the "simple_choice" member in a variant record, in accordance with the 4856 description in the package spec: the information output for a constant 4857 should be "S number", not "SS number". 4858 (Get_Encoded_Name): Return at once if not generating code. Avoids name 4859 overflow problem when compiling with -gnatct, for ASIS/gnatmetrics. 4860 48612005-06-14 Thomas Quinot <quinot@adacore.com> 4862 4863 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): For an 4864 RACW without any primitives, do not generate the if statement for 4865 dispatching by name in the PolyORB/DSA case, as it would be malformed 4866 (it would have an Elsif_Parts list that is not No_List, but with a 4867 length of 0). 4868 48692005-06-14 Robert Dewar <dewar@adacore.com> 4870 4871 * exp_intr.adb, par-ch5.adb: Minor fix to error message text 4872 48732005-06-14 Jose Ruiz <ruiz@adacore.com> 4874 4875 * fe.h: Add entry for Opt.Exception_Locations_Suppressed so that gigi 4876 can determine whether pragma Suppress_Exception_Locations is in effect. 4877 4878 * utils2.c (build_call_raise): Do not pass the file name to the 4879 exception handler if pragma Suppress_Exception_Locations is in effect. 4880 (build_allocator): Add and process arg IGNORE_INIT_TYPE. 4881 48822005-06-14 Emmanuel Briot <briot@adacore.com> 4883 4884 * g-debpoo.adb (Deallocate, Dereference): Improve output. 4885 48862005-06-14 Nicolas Roche <roche@adacore.com> 4887 4888 * g-diopit.adb (Wildcard_Iterator): Return directly if Path is equal 4889 to "" 4890 (Next_Level): Fix minor bug in handling of ../dir case 4891 (Read): Add dir separator to Directory name so that "" is understood as 4892 "/" 4893 48942005-06-14 Pascal Obry <obry@adacore.com> 4895 4896 * g-dynhta.ads, g-dynhta.adb (Reset): Free the table itself after 4897 releasing the items. 4898 48992005-06-14 Vincent Celier <celier@adacore.com> 4900 Cyrille Comar <comar@adacore.com> 4901 4902 * g-os_lib.ads, g-os_lib.adb (Non_Blocking_Spawn): Two new versions 4903 with output file descriptor and with output file name. 4904 (Dup, Dup2): Now global procedures as they are used by two subprograms 4905 (Copy): Allocate the 200K buffer on the heap rather than on the stack. 4906 49072005-06-14 Thomas Quinot <quinot@adacore.com> 4908 4909 PR ada/6717 4910 * g-socket.ads, g-socket.adb (Inet_Addr): Special case the all-ones 4911 broadcast address. 4912 (Create_Selector): Bind listening socket used to create the signalling 4913 socket pair to 127.0.0.1 to limit the scope for 'theft' of connection. 4914 Set listen backlog to 1 to ensure that we detect socket theft by a 4915 failure of our own connect(2) call. 4916 (Check_Selector): Improve documentation of the selector mechanism. 4917 (Broadcast_Inet_Addr): New constant. 4918 49192005-06-14 Gary Dismukes <dismukes@adacore.com> 4920 4921 * layout.adb (Discrimify): Remove resetting of Vtype to the underlying 4922 type which turns out to be an incomplete and incorrect fix. 4923 (Layout_Array_Type): Use Underlying_Type when checking whether the scope 4924 of the type is declared in a record (for determination of insertion 4925 type). 4926 (SO_Ref_From_Expr): Test whether Vtype denotes a partial or full view of 4927 a private type and ensure that the primary entity is used for the type 4928 of the newly created function's V formal by taking the Etype of the 4929 view. 4930 49312005-06-14 Javier Miranda <miranda@adacore.com> 4932 Jose Ruiz <ruiz@adacore.com> 4933 Robert Dewar <dewar@adacore.com> 4934 Ed Schonberg <schonberg@adacore.com> 4935 4936 * lib-load.ads, lib-load.adb (Load_Unit): Addition of a new parameter 4937 that indicates if we are parsing a compilation unit found in a 4938 limited-with clause. 4939 It is use to avoid the circularity check. 4940 4941 * par.ads, par.adb (Par): Addition of a new parameter to indicate if 4942 we are parsing a compilation unit found in a limited-with clause. This 4943 is use to avoid the circularity check. 4944 4945 * par-load.adb (Load): Indicate Lib.Load_Unit if we are loading the 4946 unit as a consequence of parsing a limited-with clause. This is used 4947 to avoid the circularity check. 4948 4949 * sem_ch10.adb: Suppress Ada 2005 unit warning if -gnatwY used 4950 (Analyze_Context): Limited-with clauses are now allowed 4951 in more compilation units. 4952 (Analyze_Subunit_Context, Check_Parent): Protect the frontend 4953 againts previously reported critical errors in context clauses 4954 (Install_Limited_Withed_Unit): Code cleanup plus static detection 4955 of two further errors: renamed subprograms and renamed packages 4956 are not allowed in limited with clauses. 4957 (Install_Siblings): Do not install private_with_clauses on the package 4958 declaration for a non-private child unit. 4959 (Re_Install_Parents): When a parent of the subunit is reinstalled, 4960 reset visibility of child units properly. 4961 (Install_Withed_Unit): When a child unit appears in a with_clause of its 4962 parent, it is immediately visible. 4963 49642005-06-14 Ed Schonberg <schonberg@adacore.com> 4965 Emmanuel Briot <briot@adacore.com> 4966 4967 * lib-xref.ads, lib-xref.adb (Generate_Definition): Treat any entity 4968 declared within an inlined body as referenced, to prevent spurious 4969 warnings. 4970 (Output_One_Ref): If an entity renames an array component, indicate in 4971 the ALI file that this aliases (renames) the array. Capture as well 4972 function renamings that rename predefined operations. 4973 Add information about generic parent for package and subprogram 4974 instances. 4975 (Get_Type_Reference): For a subtype that is the renaming of an actual in 4976 an instantiation, use the first_subtype to ensure that we don't generate 4977 cross-reference information for internal types. 4978 For objects and parameters of a generic private type, retain the '*' 4979 indicator to distinguish such an entity from its type. 4980 4981 * ali.ads (Xref_Entity_Record): New fields Iref_File_Num and Iref_Line, 4982 to store information about instantiated entities. 4983 4984 * ali.adb (Scan_ALI): Add support for parsing the reference to the 4985 generic parent 4986 4987 * xref_lib.adb (Skip_To_Matching_Closing_Bracket): New subprogram 4988 (Parse_Identifier_Info, Parse_Token): Add support for the generic parent 4989 information. 4990 49912005-06-10 Doug Rupp <rupp@adacore.com> 4992 Arnaud Charlet <charlet@adacore.com> 4993 Olivier Hainque <hainque@adacore.com> 4994 Jose Ruiz <ruiz@adacore.com> 4995 4996 * Make-lang.in: Add initialize.o when needed. 4997 Remove obsolete references to RT_FLAGS. 4998 Add missing dependencies for sdefault.o 4999 5000 * initialize.c: New file. 5001 5002 * init.c [VMS] Declare ADA$ externs weak to fix build problem in IVMS. 5003 [VMS] cond_signal_table: Fix problem in declaration. 5004 [VMS] __gnat_error_handler: rewrite. 5005 Move all __gnat_initialize() routines to initialize.c 5006 Specialize the former "hpux" section to "hppa hpux", as this is what the 5007 section really is here for and we now have other hpux ports that need 5008 different contents. 5009 (__gnat_adjust_context_for_raise) i386-linux: First version of this 5010 function for this target. Adjust PC by one in the machine context. This 5011 adjustment was previously done in the MD_FALLBACK_FRAME_STATE_FOR, but 5012 it is more reliable to do that in the signal handler itself. 5013 (__gnat_install_handler) i386-linux: Set SA_SIGINFO in the sigaction 5014 flags, so that the handler is passed the context structure to adjust 5015 prior to the raise. 5016 (__gnat_error_handler) i386-linux: Adjust the signature to match what a 5017 SA_SIGINFO sigaction should look like. Call 5018 __gnat_adjust_context_for_raise before actually raising. Cleanup unused 5019 Machine_State_Operations stuff. 5020 Add conditional code so that the x86_64 is also supported. 5021 50222005-06-14 Pascal Obry <obry@adacore.com> 5023 5024 * mdll.adb (Get_Dll_Name): New routine that returns the DLL name given 5025 the library name. 5026 50272005-06-14 Robert Dewar <dewar@adacore.com> 5028 5029 * opt.ads, opt.adb: New flags for persistent_bss mode 5030 Add Ada_Version_Explicit, for implementation of AI-362 5031 Add Assertions_Enabled_Config and associated handling 5032 Needed since setting can be changed with Assertion_Policy pragma 5033 Add new flag Warn_On_Ada_2005_Compatibility 5034 5035 * switch-c.adb: Recognize -gnatwy/Y 5036 Set Ada_Version_Explicit, for implementation of AI-362 5037 The -gnatg switch now includes -gnatyu 5038 5039 * usage.adb: Add -gnatwy/Y 5040 Remove wrong asterisk on -gnatwX line 5041 Add line for -gnatyu switch 5042 50432005-06-14 Vincent Celier <celier@adacore.com> 5044 5045 * osint.adb (Add_Default_Search_Dirs): Put source and object 5046 directories of project files before directories coming from 5047 ADA_INCLUDE_PATH and ADA_OBJECTS_PATH. 5048 50492005-06-14 Robert Dewar <dewar@adacore.com> 5050 5051 PR ada/15613 5052 * par-ch2.adb (Scan_Pragma_Argument): New procedure 5053 (P_Pragma): Implement RM 2.8(4) check for no pos args after named args 5054 50552005-06-14 Vincent Celier <celier@adacore.com> 5056 5057 * prep.adb (Preprocess): Ignore error when scanning the first token of 5058 a line. 5059 50602005-06-14 Vincent Celier <celier@adacore.com> 5061 5062 * prj-nmsc.adb (Suffix_For): Change default suffix for C++ to ".cpp" 5063 (Check_Stand_Alone_Library): If the specified reference symbol file does 5064 not exist, only issue a warning when the symbol policy is not 5065 Controlled. And, when symbol policy is Compliant, set the symbol 5066 policy to Autonomous. 5067 50682005-06-14 Vincent Celier <celier@adacore.com> 5069 5070 * prj-part.adb (Pre_Parse_Context_Clause): Call Set_Is_Not_Last_In_List 5071 when the project file in a with clause is not the last one, that is the 5072 project file name is followed by a comma. 5073 * prj-pp.adb: (First_With_In_List): New Boolean global variable 5074 (Print): Issue list of project files separated by commas in with clauses 5075 according to the values returned by Is_Not_Last_In_List. 5076 * prj-tree.ads, prj-tree.adb: (Is_Not_Last_In_List): New function 5077 (Set_Is_Not_Last_In_List): New procedure 5078 50792005-06-14 Eric Botcazou <ebotcazou@adacore.com> 5080 5081 * s-atacco.ads: Put a pragma No_Strict_Aliasing on Object_Pointer. 5082 50832005-06-14 Robert Dewar <dewar@adacore.com> 5084 5085 * scng.adb: Add call to new Check_EOF routine 5086 (Accumulate_Checksum): Properly handle wide wide char >= 2 ** 24 5087 Add some comments regarding wide character handling 5088 5089 * style.ads, styleg.ads, styleg.adb: Implement new style switch -gnatyu 5090 5091 * stylesw.ads, stylesw.adb: Implement new style switch -gnatyu 5092 5093 * g-utf_32.ads, g-utf_32.adb (Is_UTF_32_Non_Graphic): Other_Format 5094 characters are now considered graphic characters and hence yield false 5095 in this call. 5096 5097 * nmake.adt: Modify header so that xnmake does not generate output 5098 files with multiple blank lines. 5099 5100 * treeprs.adt: Remove a blank line so that output from xtreeprs does 5101 not have an extra blank line 5102 51032005-06-14 Gary Dismukes <dismukes@adacore.com> 5104 5105 * sem_aggr.adb (Aggregate_Constraint_Checks): Apply a conversion to the 5106 expression when the component type is an anonymous access type to 5107 ensure that appropriate accessibility checks are done. 5108 5109 * sem_ch5.adb (Analyze_Assignment): Apply a implicit conversion to the 5110 expression of an assignment when the target object is of an anonymous 5111 access type. This ensures that required accessibility checks are done. 5112 (One_Bound): Move the check for type Universal_Integer to 5113 Process_Bounds. 5114 (Process_Bounds): Check whether the type of the preanalyzed range is 5115 Universal_Integer, and in that case set Typ to Integer_Type prior 5116 to setting the type of the original range and the calls to One_Bound. 5117 51182005-06-14 Ed Schonberg <schonberg@adacore.com> 5119 5120 * sem_case.adb (Expand_Others_Choice): Improve warning. 5121 51222005-06-14 Ed Schonberg <schonberg@adacore.com> 5123 5124 * sem_eval.adb (Subtypes_Statically_Match): Use discriminant 5125 constraint of full view if present, when other type is discriminated. 5126 (Eval_Relational_Op): Recognize tests of pointer values against Null, 5127 when the pointer is known to be non-null, and emit appropriate warning. 5128 51292005-06-14 Robert Dewar <dewar@adacore.com> 5130 Ed Schonberg <schonberg@adacore.com> 5131 5132 PR ada/10671 5133 * sem_prag.adb: Implement pragma Persistent_BSS 5134 Remove obsolete pragma Persistent_Data, Persistent_Object 5135 Set Ada_Version_Explicit, for implementation of AI-362 5136 Test Ada_Version_Explicit for Preelaborate_05 and Pure_05 5137 Add processing for pragma Pure_05 and Preelaborate_05 5138 Add processing for Assertion_Policy pragma 5139 Add pragma identifiers for Assert 5140 (Analyze_Pragma, case Assert): Check number of arguments 5141 (Process_Inline): Additional guard against an illegal program, where the 5142 argument of the pragma is undefined, and warnings on redundant 5143 constructs are enabled. 5144 (Analyze_Pragma, case Obsolescent): Allow an optional second argument 5145 Ada_05 to this pragma, specifying that the pragma is only active in 5146 Ada_05 mode. 5147 (Check_Arg_Order): New procedure 5148 Add appropriate calls to this procedure throughout 5149 Also throughout, check entity name before doing any other checks 5150 5151 * snames.h snames.ads, snames.adb: Add pragma Persistent_BSS 5152 Remove obsolete pragma Persistent_Data, Persistent_Object 5153 Add entries for pragma Pure_05 and Preelaborate_05 5154 Add entries for Assertion_Policy pragma and associated names 5155 Add some names for pragma argument processing 5156 5157 * tbuild.ads, tbuild.adb: (Make_Linker_Section_Pragma): New function 5158 51592005-06-14 Ed Schonberg <schonberg@adacore.com> 5160 5161 * sem_warn.adb (Warn_On_Known_Condition): If the constant expression 5162 appears within a negation (either from source or as a rewriting of 5163 inequality) adjust text of warning accordingly. 5164 51652005-06-14 Thomas Quinot <quinot@adacore.com> 5166 5167 * s-strxdr.adb: Follow AI95-00132 5168 51692005-06-14 Arnaud Charlet <charlet@adacore.com> 5170 5171 * s-tasren.adb (Exceptional_Complete_Rendezvous): Fix race condition. 5172 51732005-06-14 Arnaud Charlet <charlet@adacore.com> 5174 Jose Ruiz <ruiz@adacore.com> 5175 5176 * s-tposen.adb, s-tpobop.adb 5177 (Exceptional_Complete_Rendezvous): Save the occurrence and not only 5178 the exception id. 5179 (PO_Do_Or_Queue): Before queuing a task on an entry queue we check that 5180 there is no violation of the Max_Entry_Queue_Length restriction (if it 5181 has been set); Program_Error is raised otherwise. 5182 (Requeue_Call): Before requeuing the task on the target entry queue we 5183 check that there is no violation of the Max_Entry_Queue_Length 5184 restriction (if it has been set); Program_Error is raised otherwise. 5185 51862005-06-14 Robert Dewar <dewar@adacore.com> 5187 5188 * styleg.adb: Fix several remaining problems in -gnatyu switch 5189 Blank line count not reset at start 5190 Scanning outside source buffer in some cases 5191 Confusing message for blanks at end of file 5192 Non-empty blank lines not recognized 5193 5194 * nmake.adt: Modify header so that xnmake does not generate output 5195 files with multiple blank lines. 5196 5197 * treeprs.adt: Remove a blank line so that output from xtreeprs does 5198 not have an extra blank line 5199 52002005-06-14 Sergey Rybin <rybin@adacore.com> 5201 5202 * styleg-c.adb (Body_With_No_Spec): Remove ':' from warning message. 5203 52042005-06-14 Doug Rupp <rupp@adacore.com> 5205 Vincent Celier <celier@adacore.com> 5206 5207 * vms_conv.ads, vms_conv.adb: Remove "Library" command. 5208 Update copyright. 5209 5210 * vms_data.ads: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY 5211 Remove "Library" command. 5212 Change keyword for style check -gnatyd from NOCRLF to 5213 DOS_LINE_ENDINGS. 5214 Remove useless second style check keyword NONE 5215 Remove help documentation for inexistent style check keyword 5216 RM_COLUMN_LAYOUT. 5217 Add help documentation for style check keywords DOS_LINE_ENDINGS, 5218 UNNECESSARY_BLANK_LINES and XTRA_PARENS 5219 Add UNNECESSARY_BLANK_LINES for -gnatyu 5220 Add qualifiers /ALL_PROJECTS (-U) for GNAT PRETTY and GNAT METRIC 5221 5222 * ug_words: Add entry for -gnaty/Y [NO]ADA_2005_COMPATIBILITY 5223 52242005-06-14 Vincent Celier <celier@adacore.com> 5225 5226 * makegpr.adb (Compile_Link_With_Gnatmake): Invoke gnatmake with -d if 5227 gprmake was invoked with -d. 5228 (Compile_Sources): If -d was used, output the "completed ..." message 5229 for each compilation. 5230 (Scan_Arg): Recognize new switch -d 5231 When -c and at least one main is specified, set 5232 Unique_Compile to True to guarantee that no other sources will be 5233 compiled. 5234 52352005-06-14 Matthew Heaney <heaney@adacore.com> 5236 5237 * a-swunha.ads, a-swunha.adb: Removed. Replaced by a-swuwha.ad[sb] 5238 * a-swuwha.ads, a-swuwha.adb: New files 5239 5240 * a-szunha.ads, a-szunha.adb: Removed, replaced by a-szuzha.ad[sb] 5241 * a-szuzha.ads, a-szuzha.adb: New files. 5242 5243 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads, 5244 a-crbtgk.adb, a-crbltr.ads, a-coorse.ads, a-coorse.adb, a-convec.ads, 5245 a-convec.adb, a-coinve.ads, a-coinve.adb, a-cohata.ads, a-cohama.ads, 5246 a-cohama.adb, a-ciorse.ads, a-ciorse.adb, a-cihama.ads, a-cihama.adb, 5247 a-cidlli.ads, a-cidlli.adb, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 5248 a-cdlili.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, 5249 a-cohase.ads, a-ciorma.ads, a-coorma.ads, a-ciormu.ads, a-coormu.ads, 5250 a-swunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, a-shcain.ads, 5251 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, a-stwiha.adb, 5252 a-strhas.adb, a-stzhas.adb: synchronized to the latest version of the 5253 Ada 2005 RM. 5254 52552005-06-10 Eric Botcazou <ebotcazou@adacore.com> 5256 Olivier Hainque <hainque@adacore.com> 5257 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5258 Pascal Obry <obry@adacore.com> 5259 5260 * gigi.h: (build_allocator): Add arg IGNORE_INIT_TYPE. 5261 5262 * trans.c (call_to_gnu): Issue a warning for users of Starlet when 5263 making a temporary around a procedure call because of non-addressable 5264 actual parameter. 5265 (process_freeze_entity): If entity is a private type, capture size 5266 information that may have been computed for the full view. 5267 (tree_transform, case N_Allocator): If have initializing expression, 5268 check type for Has_Constrained_Partial_View and pass that to 5269 build_allocator. 5270 (tree_transform, case N_Return_Statement): Pass extra arg to 5271 build_allocator. 5272 5273 * decl.c (annotate_value): Remove early return if -gnatR is not 5274 specified. 5275 (gnat_to_gnu_field): Don't make a packable type for a component clause 5276 if the position is byte aligned, the field is aliased, and the clause 5277 size isn't a multiple of the packable alignment. It serves no useful 5278 purpose packing-wise and would be rejected later on. 5279 (gnat_to_gnu_entity, case object): Pass extra arg to build_allocator. 5280 5281 PR ada/20515 5282 (gnat_to_gnu_entity): Remove use of macro _WIN32 which is wrong in the 5283 context of cross compilers. We use TARGET_DLLIMPORT_DECL_ATTRIBUTES 5284 instead. 5285 (create_concat_name): Idem. 5286 52872005-06-10 Robert Dewar <dewar@adacore.com> 5288 Eric Botcazou <ebotcazou@adacore.com> 5289 Ben Brosgol <brosgol@adacore.com> 5290 Cyrille Comar <comar@adacore.com> 5291 Sergey Rybin <rybin@adacore.com> 5292 Pascal Obry <obry@adacore.com> 5293 5294 * gnat_rm.texi: Add documentation for pragma Persistent_BSS 5295 Document second argument (Ada_05) of pragma Obsolescent 5296 Add note that call to subprogram marked with pragma Obsolescent 5297 is now considered to be a violation of program Restrictions 5298 (No_Obsolescent_Features). 5299 (Implementation Defined Pragmas) <Machine_Attribute>: Make it clear 5300 that only machine-dependent attributes are supported. 5301 5302 * gnat_ugn.texi: 5303 Commented out menu lines and empty section for gnatclean examples 5304 Document -gnatwy/Y 5305 Fix some over long lines 5306 Clarify and enhance documentation of ADA_PROJECT_PATH. 5307 Rework section 2.11.2(3) about linking with a non-GNU compiler. 5308 Mention new switch -fcallgraph-info. 5309 Mention new switch -fstack-usage. 5310 For gnatpp, replace '-notab' with '-N' and add this option to Index 5311 Corrected VMS example. 5312 VMS keyword for style check -gnatyd is DOS_LINE_ENDINGS, no NOCRLF 5313 Minor reformatting 5314 Add documentation for -gnatyu switch (unnecessary blank lines) 5315 Document new switch -U for GNAT PRETTY and GNAT METRIC 5316 Add note about Stdcall being handled as C convention on non Windows OS. 5317 Remove some junk typo in description of gnatbind -S switch 5318 Remove reference to Extensions_Allowed pragma 5319 Document the new order of the directories to be searched (source and 5320 object directories of project files before directories in ADA_*_PATH 5321 environment variables. 5322 5323 * g-trasym.ads: Document that IRIX is supported 5324 53252005-06-10 Arnaud Charlet <charlet@adacore.com> 5326 5327 * Makefile.in: Add initialize.o when needed. 5328 Adapt to new VMS package body Symbols and subunits 5329 No specialized version of a-sytaco is needed for VxWorks. 5330 5331 * a-wichun.ads, a-wichun.adb, a-zchuni.ads, a-zchuni.adb: New files. 5332 * a-zchara.ads, a-widcha.ads: New files. 5333 5334 * system-hpux-ia64.ads: New file. 5335 5336 * i-vxwork-x86.ads, i-vxwork.ads (intContext): Add this function which 5337 is imported from the VxWorks kernel. 5338 53392005-06-14 Robert Dewar <dewar@adacore.com> 5340 5341 * g-soliop-mingw.ads, g-soccon-vms.adb, a-swmwco.ads, exp_smem.adb, 5342 fmap.adb, a-szmzco.ads, s-traent-vms.adb, s-traent-vms.ads, 5343 a-direio.ads, a-exctra.ads, a-exexda.adb, a-exextr.adb, a-stream.ads, 5344 s-restri.ads, s-restri.adb, s-traent.adb, s-traent.ads, a-slcain.adb, 5345 a-stzhas.ads, a-tiinau.adb, comperr.adb, exp_ch11.adb, g-boubuf.adb, 5346 g-calend.adb, g-debpoo.ads, g-moreex.ads, gprep.adb, g-regpat.ads, 5347 i-cexten.ads, i-os2thr.ads, makeutl.ads, memroot.adb, mlib-prj.adb, 5348 namet.adb, namet.ads, prj-makr.adb, prj-proc.adb, sem_dist.adb, 5349 sem_elim.ads, s-valint.adb, s-vallli.adb, s-vallli.adb, s-vallli.ads, 5350 s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, scn.adb, 5351 s-tasinf.adb, targparm.adb, uname.adb, uname.ads, xnmake.adb, 5352 xsinfo.adb, a-direct.ads: Remove extra blank lines. Minor reformatting. 5353 53542005-06-14 Thomas Quinot <quinot@adacore.com> 5355 5356 * xeinfo.adb: Fix typo in comment 5357 53582005-06-14 Javier Miranda <miranda@adacore.com> 5359 5360 * repinfo.ads: Fix typo in comment 5361 53622005-06-14 Gary Dismukes <dismukes@adacore.com> 5363 5364 * s-finimp.adb (Parent_Tag): Delete this imported function (function 5365 Parent_Tag is now in the visible part of Ada.Tags). 5366 (Get_Deep_Controller): Call Ada.Tags.Parent_Tag directly instead of 5367 using imported function. 5368 53692005-06-14 Bernard Banner <banner@adacore.com> 5370 5371 * vxaddr2line.adb: Add support for Windows hosted x86 vxworks. Should 5372 also apply for handling support for VxSim 653. 5373 53742005-06-14 Eric Botcazou <ebotcazou@adacore.com> 5375 5376 * xsnames.adb: Add automatic generation of snames.h. 5377 53782005-06-14 Thomas Quinot <quinot@adacore.com> 5379 5380 * gen-soccon.c: Add IP_MULTICAST_IF constant 5381 Minor reformatting and adjustments to prevent warnings. 5382 53832005-06-14 Pascal Obry <obry@adacore.com> 5384 5385 * seh_init.c: Do not include <sys/stat.h>. This is not needed. 5386 53872005-06-03 Andrew Pinski <pinskia@physics.uc.edu> 5388 5389 * trans.c (gnat_gimplify_expr): Call 5390 recompute_tree_invarant_for_addr_expr when we change 5391 the operand of the ADDR_EXPR. 5392 53932005-05-31 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5394 5395 * misc.c: Don't include errors.h. 5396 53972005-05-29 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 5398 5399 * raise.c (db): Add ATTRIBUTE_PRINTF_2. 5400 54012005-05-29 Kazu Hirata <kazu@cs.umass.edu> 5402 5403 * cal.c, decl.c, init.c, raise.c, trans.c, utils2.c: Fix 5404 comment typos. 5405 * gnat_rm.texi, gnat_ugn.texi: Fix typos. 5406 54072005-05-16 Nathanael Nerode <neroden@gcc.gnu.org> 5408 5409 PR ada/20270 5410 * Makefile.in: Make TGT_LIB behave correctly. 5411 54122005-04-23 DJ Delorie <dj@redhat.com> 5413 5414 * misc.c: Adjust warning() callers. 5415 54162005-04-16 Laurent Guerby <laurent@guerby.net> 5417 5418 PR ada/18847 5419 * a-nudira.adb (Value): Check for valid string. 5420 * a-nuflra.adb (Value): Likewise. 5421 54222005-04-11 Richard Sandiford <rsandifo@redhat.com> 5423 5424 * lang.opt: Refer to the GCC internals documentation instead of c.opt. 5425 54262005-04-10 Kazu Hirata <kazu@cs.umass.edu> 5427 5428 * adaint.c, init.c, tracebak.c: Fix comment typos. 5429 * gnat-style.texi, gnat_rm.texi, gnat_ugn.texi: Fix typos. 5430 54312005-04-07 Laurent Guerby <laurent@guerby.net> 5432 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 5433 5434 * Makefile.in: Add make ifeq define for hppa linux tasking support. 5435 * system-hpux.ads: Define Signed_Zeros to be True. 5436 * system-linux-hppa.ads, s-osinte-linux-hppa.ads: New files. 5437 54382005-04-01 Kazu Hirata <kazu@cs.umass.edu> 5439 5440 * adaint.c, cal.c, decl.c, gigi.h, gmem.c, init.c, link.c, 5441 raise.c, tracebak.c, trans.c, utils2.c, utils.c: Fix comment 5442 typos. 5443 54442005-03-30 Tom Tromey <tromey@redhat.com> 5445 5446 * decl.c (gnat_substitute_in_type): Don't handle FILE_TYPE. 5447 54482005-03-30 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 5449 5450 * adaint.c (_gnat_set_close_on_exec): Mark parameters unused. 5451 54522005-03-29 Robert Dewar <dewar@adacore.com> 5453 5454 * sem_res.adb (Resolve_Real_Literal): Generate warning if static 5455 fixed-point expression has value that is not a multiple of the Small 5456 value. 5457 5458 * opt.ads (Warn_On_Bad_Fixed_Value): New flag 5459 5460 * s-taprop-tru64.adb (RT_Resolution): Return an integer number of 5461 nanoseconds. 5462 5463 * ug_words: Add entry for [NO_]BAD_FIXED_VALUES for -gnatwb/-gnatwB 5464 54652005-03-29 Vincent Celier <celier@adacore.com> 5466 5467 * mlib-tgt-vms-ia64.adb, mlib-tgt-vms-alpha.adb 5468 (Build_Dynamic_Library.Version_String): Return the empty string when 5469 Lib_Version is empty or when the symbol policy is not Autonomous. 5470 5471 * symbols-vms-alpha.adb (Finalize): For symbol policy Compliant, when 5472 a symbol is not in the reference symbol file, increase the Major ID 5473 and set the Minor ID to 0. 5474 Use gsmatch=lequal instead of gsmatch=equal 5475 54762005-03-29 Doug Rupp <rupp@adacore.com> 5477 5478 * adaint.c (__gnat_to_canonical_file_spec [VMS]): Check for logical 5479 name and translate. 5480 54812005-03-29 Javier Miranda <miranda@adacore.com> 5482 5483 * a-tags.ads, a-tags.adb (Get_TSD): Subprogram removed. 5484 (Inherit_DT): The first formal has been redefined as a Tag. 5485 This allows us the removal of the subprogram Get_TSD. 5486 (TSD): Replace the call to Get_TSD by the actual code. 5487 5488 * exp_disp.ads, exp_disp.adb: Remove support to call Get_TSD. 5489 (Make_DT): Upgrade the call to Inherit_TSD according to the 5490 new interface: the first formal is now a Tag. 5491 5492 * i-cpp.ads, i-cpp.adb (CPP_Inherit_DT): The first formal has been 5493 redefined as a Tag. 5494 This change allows us to remove the subprogram Get_TSD. 5495 (CPP_Get_TSD): Subprogram removed. 5496 (TSD): Replace the call to CPP_Get_TSD by the actual code. 5497 5498 * rtsfind.ads: Remove support to call the run-time 5499 subprogram Get_TSD 5500 55012005-03-29 Robert Dewar <dewar@adacore.com> 5502 5503 * errutil.adb, errout.adb: 5504 Minor comment updates on Line_Terminator references 5505 5506 * par-ch10.adb: Add ??? comment about line terminator 5507 5508 * styleg.adb (Check_Line_Terminator): Add check for new switch -gnatyd 5509 (check dos line terminator). 5510 (Check_Line_Max_Length): New procedure, split off from the existing 5511 Check_Line_Terminator routine. Separating this out allows -gnatyf to 5512 be properly recognized. 5513 5514 * styleg.adb: Add ??? comment for line terminator reference 5515 5516 * scng.adb (Check_End_Of_Line): Fix bug of -gnatyf being ignored 5517 (Check_End_Of_Line): Add -gnatyd handling (check dos line terminators) 5518 5519 * styleg.ads (Check_Line_Terminator): Add check for new switch -gnatyd 5520 (check dos line terminator). 5521 (Check_Line_Max_Length): New procedure, split off from the existing 5522 Check_Line_Terminator routine. Separating this out allows -gnatyf to 5523 be properly recognized. 5524 5525 * stylesw.ads, stylesw.adb: 5526 Add handling for new -gnatyd switch (check dos line terminator) 5527 5528 * switch-c.adb: Recognize new -gnatyd switch (check dos line terminator) 5529 Recognize -gnatwb/-gnatwB switches 5530 Include Warn_On_Bad_Fixed_Value for -gnatg 5531 5532 * usage.adb: 5533 Add line for new -gnatyd switch (check dos line terminator) 5534 5535 * usage.adb: Add lines for -gnatwb/-gnatwB 5536 5537 * vms_data.ads: Add entry for NOCRLF (-gnatyd) 5538 5539 * vms_data.ads: [NO_]BAD_FIXED_VALUES synonym for -gnatwb/-gnatwB 5540 5541 * gnat_ugn.texi: Fix overlong lines 5542 Document new -gnatyd switch 5543 Document new -gnatwb/-gnatwB switches 5544 55452005-03-29 Ed Schonberg <schonberg@adacore.com> 5546 5547 * exp_ch4.adb (Has_Unconstrained_UU_Component): Use the base type in 5548 order to retrieve the component list of the type, before examining 5549 individual components. 5550 5551 * sem_type.adb (Covers): Types are compatible if one is the base type 5552 of the other, even though their base types might differ when private 5553 views are involved. 5554 55552005-03-29 Thomas Quinot <quinot@adacore.com> 5556 5557 * exp_dist.adb (Add_RAST_Features, PolyORB version): Set the From_Any, 5558 To_Any and TypeCode TSSs on RAS types directly using Set_TSS, instead 5559 of using Set_Renaming_TSS. This ensures that the TSS bodies are not 5560 analyzed if expansion is disabled (which could otherwise cause spurious 5561 error messages if expansion has been disabled due to previous 5562 (unrelated) errors). 5563 5564 * sem_prag.adb (Analyze_Pragma, case Asynchronous): If RAS expansion 5565 is disabled, the entity denoted by the argument is the access type 5566 itself, not an underlying record type, so there is no need to go back 5567 to the Corresponding_Remote_Type. 5568 55692005-03-29 Gary Dismukes <dismukes@adacore.com> 5570 Robert Dewar <dewar@adacore.com> 5571 5572 * exp_intr.adb (Expand_Dispatching_Constructor_Call): New procedure to 5573 expand a call to an instance of 5574 Ada.Tags.Generic_Dispatching_Constructor into a dispatching call to the 5575 Constructor actual of the instance. A class-wide membership 5576 check is also generated, to ensure that the tag passed to the instance 5577 denotes a type in the class. 5578 (Expand_Intrinsic_Call): Call Expand_Dispatching_Constructor in the case 5579 of Name_Generic_Dispatching_Constructor. 5580 5581 * Makefile.rtl: Add a-tgdico.ads to the list of library units (new Ada 5582 05 unit for AI-260-02). 5583 5584 * a-tgdico.ads: New file. 5585 5586 * impunit.adb (Non_Imp_File_Names_05): Add entry "a-tgdico" for new 5587 predefined Ada 05 generic unit Ada.Tags.Generic_Dispatching_Constructor. 5588 5589 * snames.ads, snames.adb (Preset_Names): Add entry for 5590 Generic_Dispatching_Constructor. 5591 5592 PR ada/20300 5593 * sem_ch8.adb (Find_Direct_Name): Go to root type for check of 5594 character type cases. 5595 (Analyze_Subprogram_Renaming): Add special handling for 5596 the case of renaming of stream attributes when the renaming denotes a 5597 generic formal subprogram association for an abstract formal subprogram. 5598 Check that the attribute is a primitive stream attribute (and not 5599 a class-wide stream attribute) and then rewrite the attribute name 5600 as the name of the appropriate compiler-generated stream primitive. 5601 56022005-03-29 Robert Dewar <dewar@adacore.com> 5603 5604 * exp_util.adb (Remove_Side_Effects): Properly propagate arguments to 5605 recursive calls. 5606 (Is_Possibly_Unaligned_Object): Correct typo that 5607 resulted in inaccurate result for unaligned scalars within records. 5608 56092005-03-29 Ed Schonberg <schonberg@adacore.com> 5610 5611 * freeze.adb (Freeze_Record_Type): If the type of the component is an 5612 itype whose parent is controlled and not yet frozen, do not create a 5613 freeze node for the itype if expansion is disabled. 5614 56152005-03-29 Vincent Celier <celier@adacore.com> 5616 5617 * make.adb (Gnatmake): Don't fail if the main project file is declared 5618 as having no Ada sources. Do not display message "no sources to 5619 compile" in quiet output. 5620 56212005-03-29 Doug Rupp <rupp@adacore.com> 5622 5623 * Makefile.in [VMS] (EXTRA_GNATTOOLS): Add vms_help and gnat.hlp as 5624 extra tools. 5625 56262005-03-29 Robert Dewar <dewar@adacore.com> 5627 5628 * par-ch12.adb (P_Generic): Give better msg for illegal private generic 5629 child. 5630 56312005-03-29 Robert Dewar <dewar@adacore.com> 5632 5633 * par-ch3.adb (P_Type_Declaration): Fix bad error recovery after 5634 missing TYPE Improve the error message generated when compiling a 5635 limited interface in Ada83 or Ada95 mode. 5636 56372005-03-29 Robert Dewar <dewar@adacore.com> 5638 5639 * par-ch4.adb (P_Name): When a bad attribute is returned, return error, 5640 rather than proceed ahead using a junk attribute name. 5641 56422005-03-29 Vincent Celier <celier@adacore.com> 5643 5644 * prj.ads, prj.adb: (Project_Data): Add new component Display_Name 5645 5646 * prj-part.adb (Parse_Single_Project): Set the location of a project 5647 on its defining identifier, rather than on the reserved word "project". 5648 5649 * prj-proc.adb (Expression): Adapt to the fact that default of external 5650 references may be string expressions, not always literal strings. 5651 (Recursive_Process): Set Display_Name equal to Name 5652 when Location is No_Location, that is when there is no actual file. 5653 Get the Display_Name of the project from the source, when it is not a 5654 virtual project. 5655 (Process): Use the Display_Name in error messages 5656 5657 * prj-strt.adb (External_Reference): Allow default to be string 5658 expressions, not only literal strings. 5659 56602005-03-29 Vincent Celier <celier@adacore.com> 5661 5662 * prj-nmsc.adb (Check_Stand_Alone_Library): Do not forbid the symbol 5663 file and the reference symbol file to be the same file. 5664 56652005-03-29 Thomas Quinot <quinot@adacore.com> 5666 5667 * sem_cat.adb (Validate_Remote_Types_Type_Conversion): Perform check to 5668 forbid conversion of a local access-to-subprogram type to a remote one. 5669 5670 * sem_util.adb (Wrong_Type): For a record type that is the expanded 5671 equivalent type for a remote access-to-subprogram type, go back to the 5672 original RAS entity when displaying an error message, so the casing is 5673 the original source casing. 5674 56752005-03-29 Robert Dewar <dewar@adacore.com> 5676 5677 * sem_ch11.adb (Analyze_Raise_Statement): Change message for warning 5678 on param update. 5679 56802005-03-29 Ed Schonberg <schonberg@adacore.com> 5681 5682 * sem_ch4.adb (Analyze_Selected_Component): Do not generate an actual 5683 subtype if code is being pre-analyzed, to prevent un-expanded 5684 references to protected formals, among others. 5685 (Analyze_Explicit_Dereference): If the overloaded prefix includes some 5686 interpretation that can be a call, include the result of the call as a 5687 possible interpretation of the dereference. 5688 5689 * sem_ch5.adb (Process_Bounds): Determine type of range by 5690 pre-analyzing a copy of the original range, and then analyze the range 5691 with the expected type. 5692 5693 * sem_res.adb (Check_Parameterless_Call): For an explicit dereference 5694 with an overloaded prefix where not all interpretations yield an 5695 access to subprogram, do not rewrite node as a call. 5696 (Resolve_Explicit_Dereference): Recognize the previous case and rewrite 5697 the node as a call once the context identifies the interpretation of 5698 the prefix whose call yields the context type. 5699 (Valid_Conversion): For the case of a conversion between 5700 local access-to-subprogram types, check subtype conformance using 5701 Check_Subtype_Conformant instead of Subtype_Conformant, to have a more 5702 detailed error message. 5703 57042005-03-29 Ed Schonberg <schonberg@adacore.com> 5705 5706 * sem_ch6.adb (Set_Formal_Mode): If the subtype has a non_null 5707 indicator, indicate that the formal can never be null. 5708 (Process_Formals): If a formal has a non_null indicator, insert the 5709 resulting subtype immediately before the enclosing subprogram decl, 5710 and not at the beginning of the corresponding declarative part, to 5711 prevent access before elaboration (Ada2005). 5712 57132005-03-29 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 5714 5715 PR ada/19956 5716 * utils.c (finish_record_type): Use variable_size when setting sizes. 5717 57182005-03-29 Robert Dewar <dewar@adacore.com> 5719 5720 * xtreeprs.adb, xnmake.adb: Use Stream_IO instead of Text_IO to 5721 guarantee Unix style line terminators for the output files, even when 5722 running on windows. 5723 57242005-03-29 Robert Dewar <dewar@adacore.com> 5725 5726 * a-direct.ads, a-direct.adb (Start_Search): Free allocated search 5727 buffer if an exception is raised. 5728 57292005-03-29 Ed Falis <falis@adacore.com> 5730 5731 * cio.c: Undefine putchar and getchar for VTHREADS: incompatible with 5732 VxWorks 653 1.4 5733 57342005-03-29 Robert Dewar <dewar@adacore.com> 5735 5736 * sem_util.ads: Minor reformatting 5737 * gnat_rm.texi: Minor editing. 5738 57392005-03-29 Eric Botcazou <ebotcazou@adacore.com> 5740 5741 * decl.c (gnat_to_gnu_entity) <E_Variable>: Rework comment. 5742 * trans.c (tree_transform) <N_Identifier>: Use correct predicates. 5743 57442005-03-24 Aaron W. LaFramboise <aaronavay62@aaronwl.com> 5745 5746 * adaint.c (__gnat_portable_spawn): Adjust cast. 5747 57482005-03-23 Joseph S. Myers <joseph@codesourcery.com> 5749 5750 * misc.c (LANG_HOOKS_TRUTHVALUE_CONVERSION): Remove. 5751 57522005-03-17 Pascal Obry <obry@adacore.com> 5753 5754 * adaint.h, adaint.c (__gnat_waitpid): Moved to expect.c where it is 5755 used. 5756 5757 * expect.c (__gnat_waitpid): Moved here from adaint.c. 5758 Reimplement under Win32 using Win32 API. 5759 5760 (__gnat_kill) [Win32]: Properly close the process handle before leaving 5761 this routine. 5762 57632005-03-17 Eric Botcazou <ebotcazou@adacore.com> 5764 5765 * ada-tree.h: (DECL_RENAMING_GLOBAL_P): New predicate. 5766 (DECL_RENAMED_OBJECT): New accessor macro. 5767 (SET_DECL_RENAMED_OBJECT): New setter macro. 5768 5769 * decl.c (gnat_to_gnu_entity) <E_Variable>: Stabilize the renamed 5770 object in all cases. Attach the renamed object to the VAR_DECL. 5771 (gnat_to_gnu_field): Do not lift the record wrapper if the size of the 5772 field is not prescribed. 5773 5774 * misc.c (gnat_handle_option): Handle -gnatO separately. 5775 (gnat_print_decl) <VAR_DECL>: New case. 5776 Print the DECL_RENAMED_OBJECT node. 5777 5778 * lang.opt: Declare separate -gnatO option. 5779 5780 * trans.c (tree_transform) <N_Identifier>: If the object is a renaming 5781 pointer, replace it with the renamed object. 5782 <N_Validate_Unchecked_Conversion>: Warn for a conversion to a fat 5783 pointer type if the source is not a fat pointer type whose underlying 5784 array has the same non-zero alias set as that of the destination array. 5785 57862005-03-17 Javier Miranda <miranda@adacore.com> 5787 5788 * a-tags.ads, a-tags.adb (Get_Expanded_Name): Removed. 5789 (Get_Inheritance_Depth): Removed. 5790 (Set_Inheritance_Depth): Removed. 5791 5792 * rtsfind.ads, exp_disp.ads, exp_disp.adb: Remove support to call the 5793 subprogram Get_Expanded_Name because it is not referenced by the 5794 frontend. 5795 5796 * i-cpp.ads, i-cpp.adb (CPP_Get_Expanded_Name): Removed. 5797 (CPP_Get_Inheritance_Depth): Removed. 5798 (CPP_Set_Inheritance_Depth): Removed. 5799 5800 * tbuild.ads, tbuild.adb (Make_DT_Component): Removed. 5801 58022005-03-17 Robert Dewar <dewar@adacore.com> 5803 5804 * checks.adb (Apply_Array_Size_Check): Completely remove this for GCC 5805 3, since we now expect GCC 3 to do all the work. 5806 58072005-03-17 Javier Miranda <miranda@adacore.com> 5808 5809 * einfo.adb (First_Private_Entity, Set_First_Private_Entity): Addition 5810 of one barrier to avoid wrong usage of this attribute. 5811 5812 * sem_ch12.adb (Formal_Entity): Fix erroneous usage of the attribute 5813 First_Private_Entity. 5814 5815 * sem_ch7.adb (Install_Visible_Declarations): Add a barrier to protect 5816 the subprogram against wrong usage. 5817 Adapt the code to traverse the entities in the 5818 scope of a record_type because in addition to its usage regarding 5819 packages, this subprogram is also called by Expand_N_Freeze_Entity 5820 to install the visible declarations of the enclosing scope of a 5821 record_type_with_private to establish the proper visibility before 5822 freezing the entity and related subprograms. 5823 58242005-03-17 Ed Schonberg <schonberg@adacore.com> 5825 5826 * exp_ch2.adb (In_Assignment_Context): Recognize slice assignments to 5827 entry formals. 5828 58292005-03-17 Thomas Quinot <quinot@adacore.com> 5830 5831 * exp_ch3.adb (Check_Attr): New subprogram. 5832 (Check_Stream_Attribute): Move the code for 13.13.2(9/1) enforcement 5833 into a new Check_Attr subprogram, in order to provide a more 5834 explanatory error message (including the name of the missing attribute). 5835 (Stream_Operation_OK): Renamed from Stream_Operations_OK. This 5836 subprogram determines whether a default implementation exists for a 5837 given stream attribute. 5838 (Make_Predefined_Primitive_Specs, Predefined_Primitive_Bodies): 5839 Determine whether to generate a default implementation for each stream 5840 attribute separately, as this depends on the specific attribute. 5841 5842 * exp_strm.adb (Make_Field_Attribute): For the case of an illegal 5843 limited extension where a stream attribute is missing for a limited 5844 component (which will have been flagged in Exp_Ch3.Sem_Attr), do not 5845 generate a bogus reference to the missing attribute to prevent 5846 cascaded errors. Instead, generate a null statement. 5847 5848 * sem_attr.adb (Check_Stream_Attribute): A stream attribute is 5849 available for a limited type if it has been specified for an ancestor 5850 of the type. 5851 58522005-03-17 Ed Schonberg <schonberg@adacore.com> 5853 5854 * exp_ch6.adb (Expand_Inlined_Call): handle the case when the renamed 5855 entity is an operator. 5856 58572005-03-17 Thomas Quinot <quinot@adacore.com> 5858 5859 * exp_dist.adb (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist 5860 spec, to make this predicate available to other units. 5861 5862 * rtsfind.adb (Check_RPC): Use Sem_Dist.Get_PCS_Name instead of 5863 reimplementing it. 5864 5865 * sem_ch8.adb: Disable expansion of remote access-to-subprogram types 5866 when no distribution runtime library is available. 5867 5868 * sem_res.adb, sem_dist.adb: Disable expansion of remote 5869 access-to-subprogram types when no distribution runtime library is 5870 available. 5871 (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist spec, to make this 5872 predicate available to other units. 5873 5874 * sem_dist.ads (Get_PCS_Name): Move from Exp_Dist body to Sem_Dist 5875 spec, to make this predicate available to other units. 5876 58772005-03-17 Vincent Celier <celier@adacore.com> 5878 5879 * make.adb (Insert_Project_Sources): Make sure the Q is always 5880 initialized. 5881 5882 * prj-nmsc.adb (Check_Ada_Naming_Scheme_Validity): Check Naming against 5883 the default for the tree, not the global default naming. 5884 5885 * prj-proc.adb (Recursive_Process): No need to put the default naming 5886 in the project data, it's already there. 5887 58882005-03-17 Doug Rupp <rupp@adacore.com> 5889 5890 * Makefile.in: (ia64-hp-*vms*): Use s-crtl-vms64.ads. 5891 5892 * 5xcrtl.ads: Renamed to... 5893 * s-crtl-vms64.ads: ...this new file 5894 58952005-03-17 Robert Dewar <dewar@adacore.com> 5896 5897 PR ada/19519 5898 * namet.adb (Copy_One_Character): Set proper wide character encoding 5899 for upper half character if we have upper half encoding. 5900 59012005-03-17 Robert Dewar <dewar@adacore.com> 5902 5903 * par.adb (Par): Improved msg for attempt to recompile predefined unit 5904 59052005-03-17 Thomas Quinot <quinot@adacore.com> 5906 5907 * sem_ch13.adb (New_Stream_Function, New_Stream_Procedure): For a 5908 tagged limited type, the TSS is a newly built renaming declaration: 5909 insert it using Set_TSS, not Copy_TSS. 5910 59112005-03-17 Javier Miranda <miranda@adacore.com> 5912 5913 * sem_ch4.adb (Try_Primitive_Operation, Class_Wide_Operation and 5914 Try_Object_Operation): Analyze the object that is accessible 5915 through the prefix of the subprogram call before we apply 5916 the transformation of the object-operation notation. 5917 59182005-03-17 Jose Ruiz <ruiz@adacore.com> 5919 5920 * s-taprob.adb (Initialize_Protection): Initialize the protected 5921 object's owner to Null_Task. 5922 (Lock): If pragma Detect_Blocking is in effect and the caller of this 5923 procedure is already the protected object's owner then Program_Error 5924 is raised. In addition the protected object's owner is updated. 5925 (Lock_Read_Only): If pragma Detect_Blocking is in effect and the caller 5926 of this procedure is already the protected object's owner then 5927 Program_Error is raised. 5928 In addition the protected object's owner is updated. 5929 (Unlock): Remove the ownership of the protected object. 5930 5931 * s-taprob.ads (Protection): Add the field Owner, used to store the 5932 protected object's owner. 5933 This component is needed for detecting one type of potentially blocking 5934 operations (external calls on a protected subprogram with the same 5935 target object as that of the protected action). Document the rest of 5936 the components. 5937 5938 * s-tposen.adb, s-tpoben.adb (Initialize_Protection_Entries): 5939 Initialize the protected object's owner to Null_Task. 5940 (Lock_Read_Only_Entries): If pragma Detect_Blocking is in effect and the 5941 caller of this procedure is already the protected object's owner then 5942 Program_Error is raised. 5943 Do not raise Program_Error when this procedure is called from a 5944 protected action. 5945 (Unlock_Entries): Remove the ownership of the protected object. 5946 (Lock_Entries): If pragma Detect_Blocking is in effect and the caller 5947 of this procedure is already the protected object's owner then 5948 Program_Error is raised. 5949 Do not raise Program_Error when this procedure is called from 5950 a protected action. 5951 5952 * s-tposen.ads, s-tpoben.ads (Protection_Entries): Add the field Owner, 5953 used to store the protected object's owner. 5954 5955 * s-tpobop.adb (Protected_Entry_Call): If pragma Detect_Blocking is in 5956 effect and this procedure (a potentially blocking operation) is called 5957 from whithin a protected action, Program_Error is raised. 5958 (Timed_Protected_Entry_Call): If pragma Detect_Blocking is in effect 5959 and this procedure (a potentially blocking operation) is called from 5960 whithin a protected action, Program_Error is raised. 5961 59622005-03-17 Vincent Celier <celier@adacore.com> 5963 Nicolas Setton <setton@adacore.com> 5964 5965 * mlib-tgt-darwin.adb (Build_Dynamic_Library): Remove the "-fini" 5966 switch, not supported by the linker on Darwin. Add '_' before 5967 <library>init, as this character is added unconditionally by the 5968 compiler. 5969 (Is_Archive_Ext): Replace the wrong library extension ".dyld" by the 5970 correct one ".dylib". This fixes detection of the archive files when 5971 building library projects. 5972 59732005-03-17 Vincent Celier <celier@adacore.com> 5974 5975 * switch-m.adb (Normalize_Compiler_Switches): Recognize switches 5976 -gnat83, -gnat95 and -gnat05. 5977 59782005-03-17 Vasiliy Fofanov <fofanov@adacore.com> 5979 5980 * gnat_ugn.texi: Document gnatmem restriction 5981 59822005-03-17 Thomas Quinot <quinot@adacore.com> 5983 5984 * snames.adb: Document new TSS names introduced by exp_dist/exp_tss 5985 cleanup 5986 59872005-03-17 Robert Dewar <dewar@adacore.com> 5988 5989 * s-interr.ads, s-interr.adb, sem_ch3.adb, prj.ads, prj.adb, 5990 a-interr.adb, a-interr.ads, s-interr-sigaction.adb, s-interr-dummy.adb, 5991 s-interr-vms.adb, s-interr-vxworks.adb: Minor reformatting 5992 5993 * casing.adb: Comment improvements 5994 59952005-03-17 Pascal Obry <obry@adacore.com> 5996 5997 * g-expect.adb: Minor reformatting. 5998 59992005-03-15 Zack Weinberg <zack@codesourcery.com> 6000 6001 * Make-lang.in (doc/gnat_ugn_unw.info, doc/gnat_rm.info) 6002 (doc/gnat_ugn_unw.dvi, doc/gnat_rm.dvi): Add gcc-vers.texi 6003 to dependencies. 6004 60052005-03-15 Vincent Celier <celier@adacore.com> 6006 6007 * mlib-tgt-darwin.adb (Library_Exist_For, Library_File_Name_For): 6008 Add new parameter In_Tree to specify the project tree: needed 6009 by the project manager. Adapt to changes in project manager 6010 using new parameter In_Tree. 6011 60122005-03-15 Jakub Jelinek <jakub@redhat.com> 6013 6014 * Make-lang.in (ada/treeprs.ads, ada/einfo.h, ada/sinfo.h, 6015 ada/nmake.adb, ada/nmake.ads): Use unique subdirectories of 6016 ada/bldtools to avoid make -jN failures. 6017 60182005-03-15 Eric Botcazou <ebotcazou@adacore.com> 6019 6020 * trans.c (gnat_to_gnu) <N_Return_Statement>: Set gnu_result 6021 to NULL_TREE on entry. 6022 60232005-03-15 Robert Dewar <dewar@adacore.com> 6024 6025 * system-unixware.ads, system-linux-ia64.ads, system-freebsd-x86.ads, 6026 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-linux-x86_64.ads, 6027 system-tru64.ads, system-aix.ads, system-vxworks-sparcv9.ads, 6028 system-vxworks-xscale.ads, system-solaris-x86.ads, system-irix-o32.ads, 6029 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, 6030 system-linux-x86.ads, system-vxworks-mips.ads, system-os2.ads, 6031 system-interix.ads, system-solaris-sparc.ads, 6032 system-solaris-sparcv9.ads, system-vms.ads, system-mingw.ads, 6033 system-vms-zcx.ads, system-vxworks-ppc.ads, system-vxworks-alpha.ads, 6034 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 6035 system-linux-ppc.ads, system-linux-alpha.ads, system-linux-sparc.ads, 6036 system-linux-s390.ads, system-linux-s390x.ads: Add line defining 6037 Compiler_System_Version to be False. 6038 6039 * opt.ads: Add new flag Opt.Address_Is_Private 6040 6041 * targparm.ads, targparm.adb: Set new flag Opt.Address_Is_Private 6042 Add new parameter Compiler_System_Version to avoid checking for 6043 completeness of parameters when compiler is compiling itself. 6044 Allows old versions of GNAT to be compiled with new compiler. 6045 60462005-03-15 Eric Botcazou <ebotcazou@adacore.com> 6047 6048 * s-osinte-tru64.ads, s-osinte-tru64.adb (Get_Stack_Base): New function 6049 (Hide_Yellow_Zone): New procedure to hide the Yellow Zone of the 6050 calling thread. 6051 (Stack_Base_Available): New flag. 6052 (Get_Page_Size): New overloaded functions imported from C. 6053 (PROT_NONE, PROT_READ, PROT_WRITE, PROT_EXEC, PROT_ALL, 6054 PROT_ON, PROT_OFF): New constants. 6055 (mprotect): New function imported from C. 6056 (pthread_teb_t): New record type. 6057 6058 * s-taprop-tru64.adb: (Enter_Task): Invoke Hide_Yellow_Zone. 6059 (Create_Task): Account for the Yellow Zone and the guard page. 6060 60612005-03-15 Vincent Celier <celier@adacore.com> 6062 6063 * mlib-tgt-tru64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 6064 mlib-tgt-hpux.adb, mlib-tgt-linux.adb, mlib-tgt-solaris.adb, 6065 mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, mlib-tgt-mingw.adb, 6066 mlib-tgt-vxworks.adb, mlib-tgt-lynxos.adb (Library_Exist_For, 6067 Library_File_Name_For): Add new parameter In_Tree 6068 to specify the project tree: needed by the project manager. 6069 Adapt to changes in project manager using new parameter In_Tree. 6070 Remove local imports, use functions in System.CRTL. 6071 6072 * make.adb, clean.adb, gnatcmd.adb (Project_Tree): New constant needed 6073 to use the project manager. 6074 6075 * makeutl.ads, makeutl.adb (Linker_Options_Switches): New parameter 6076 In_Tree to designate the project tree. Adapt to changes in the project 6077 manager, using In_Tree. 6078 6079 * mlib-prj.ads, mlib-prj.adb (Build_Library, Check_Library, 6080 Copy_Interface_Sources): Add new parameter In_Tree to specify the 6081 project tree: needed by the project manager. 6082 (Build_Library): Check that Arg'Length >= 6 before checking if it 6083 contains "--RTS=...". 6084 6085 * mlib-tgt.ads, mlib-tgt.adb (Library_Exist_For, 6086 Library_File_Name_For): Add new parameter In_Tree to specify the 6087 project tree: needed by the project manager. 6088 6089 * prj.ads, prj.adb: Major modifications to allow several project trees 6090 in memory at the same time. 6091 Change tables to dynamic tables and hash tables to dynamic hash 6092 tables. Move tables and hash tables from Prj.Com (in the visible part) 6093 and Prj.Env (in the private part). Move some constants from the visible 6094 part to the private part. Make other constants deferred. 6095 (Project_Empty): Make it a variable, not a function 6096 (Empty_Project): Add parameter Tree. Returns the data with the default 6097 naming data of the project tree Tree. 6098 (Initialize): After updating Std_Naming_Data, copy its value to the 6099 component Naming of Project Empty. 6100 (Register_Default_Naming_Scheme): Use and update the default naming 6101 component of the project tree, instead of the global variable 6102 Std_Naming_Data. 6103 (Standard_Naming_Data): Add defaulted parameter Tree. If project tree 6104 Tree is not defaulted, return the default naming data of the Tree. 6105 (Initial_Buffer_Size): Constant moved from private part 6106 (Default_Ada_Spec_Suffix_Id, Default_Ada_Body_Suffix_Id, Slash_Id); new 6107 variables initialized in procedure Initialize. 6108 (Add_To_Buffer): Add two in out parameters to replace global variables 6109 Buffer and Buffer_Last. 6110 (Default_Ada_Spec_Suffix, Default_Body_Spec_Suffix, Slash): New 6111 functions. 6112 Adapt to changes to use new type Project_Tree_Ref and dynamic tables and 6113 hash tables. 6114 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter 6115 for the project tree. 6116 (Project_Tree_Data, Project_Tree_Ref, No_Project): Declare types and 6117 constant at the beginning of the package spec, so that they cane be used 6118 in subprograms before their full declarations. 6119 (Standard_Naming_Data): Add defaulted parameter of type Project_Node_Ref 6120 (Empty_Project): Add parameter of type Project_Node_Ref 6121 (Private_Project_Tree_Data): Add component Default_Naming of type 6122 Naming_Data. 6123 (Buffer, Buffer_Last): remove global variables 6124 (Add_To_Buffer): Add two in out parameters to replace global variables 6125 Buffer and Buffer_Last. 6126 (Current_Packages_To_Check): Remove global variable 6127 (Empty_Name): Move to private part 6128 (No-Symbols): Make it a constant 6129 (Private_Project_Tree_Data): New type for the private part of the 6130 project tree data. 6131 (Project_Tree_Data): New type for the data of a project tree 6132 (Project_Tree_Ref): New type to designate a project tree 6133 (Initialize, Reset, register-Default_Namng-Scheme): Add a new parameter 6134 for the project tree. 6135 6136 * prj-attr.ads: Add with Table; needed, as package Prj no longer 6137 imports package Table. 6138 6139 * prj-com.adb: Remove empty, no longer needed body 6140 6141 * prj-com.ads: Move most of the content of this package to package Prj. 6142 6143 * prj-dect.ads, prj-dect.adb (Parse): New parameters In_Tree to 6144 designate the project node tree and Packages_To_Check to replace 6145 global variable Current_Packages_To_Check. 6146 Add new parameters In_Tree and Packages_To_Check to local subprograms, 6147 when needed. Adapt to changes in project manager with project node tree 6148 In_Tree. 6149 6150 * prj-env.ads, prj-env.adb: Add new parameter In_Tree to designate the 6151 project tree to most subprograms. Move tables and hash tables to 6152 private part of package Prj. 6153 Adapt to changes in project manager using project tree In_Tree. 6154 6155 * prj-makr.adb (Tree): New constant to designate the project node tree 6156 Adapt to change in project manager using project node tree Tree 6157 6158 * prj-nmsc.ads, prj-nmsc.adb (Check_Stand_Alone_Library): Correctly 6159 display the Library_Src_Dir and the Library_Dir. 6160 Add new parameter In_Tree to designate the project node tree to most 6161 subprograms. Adapt to changes in the project manager, using project tree 6162 In_Tree. 6163 (Check_Naming_Scheme): Do not alter the casing on platforms where 6164 the casing of file names is not significant. 6165 (Check): Add new parameter In_Tree to designate the 6166 6167 * prj-pars.ads, prj-pars.adb (Parse): Add new parameter In_Tree to 6168 designate the project tree. 6169 Declare a project node tree to call Prj.Part.Parse and Prj.Proc.Process 6170 6171 * prj-part.ads, prj-part.adb (Buffer, Buffer_Last): Global variables, 6172 to replace those that were in the private part of package Prj. 6173 Add new parameter In__Tree to designate the project node tree to most 6174 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. 6175 (Post_Parse_Context_Clause): When specifying the project node of a with 6176 clause, indicate that it is a limited with only if there is "limited" 6177 in the with clause, not necessarily when In_Limited is True. 6178 (Parse): Add new parameter In_Tree to designate the project node tree 6179 6180 * prj-pp.ads, prj-pp.adb (Pretty_Print): Add new parameter In_Tree to 6181 designate the project node tree. Adapt to change in Prj.Tree with 6182 project node tree In_Tree. 6183 6184 * prj-proc.ads, prj-proc.adb (Recursive_Process): Specify the project 6185 tree In_Tree in the call to function Empty_Process to give its initial 6186 value to the project data Processed_Data. 6187 Add new parameters In_Tree to designate the project tree and 6188 From_Project_Node_Tree to designate the project node tree to several 6189 subprograms. Adapt to change in project manager with project tree 6190 In_Tree and project node tree From_Project_Node_Tree. 6191 6192 * prj-strt.ads, prj-strt.adb (Buffer, Buffer_Last): Global variables, 6193 to replace those that were in the private part of package Prj. 6194 Add new parameter In_Tree to designate the project node tree to most 6195 subprograms. Adapt to change in Prj.Tree with project node tree In_Tree. 6196 6197 * prj-tree.ads, prj-tree.adb: Add new parameter of type 6198 Project_Node_Tree_Ref to most subprograms. 6199 Use this new parameter to store project nodes in the designated project 6200 node tree. 6201 (Project_Node_Tree_Ref): New type to designate a project node tree 6202 (Tree_Private_Part): Change table to dynamic table and hash tables to 6203 dynamic hash tables. 6204 6205 * prj-util.ads, prj-util.adb: Add new parameter In_Tree to designate 6206 the project tree to most subprograms. Adapt to changes in project 6207 manager using project tree In_Tree. 6208 6209 * makegpr.adb (Project_Tree): New constant needed to use project 6210 manager. 6211 62122005-03-15 Olivier Hainque <hainque@adacore.com> 6213 6214 * s-intman-posix.adb (Notify_Exception): Adjust signature, as handler 6215 for sigactions with SA_SIGINFO set. Call 6216 __gnat_adjust_context_for_raise before raising, to perform the 6217 potentially required adjustments to the machine context for the GCC 6218 unwinder. 6219 6220 * raise.h (__gnat_adjust_context_for_raise): New prototype. 6221 6222 * init.c (__gnat_adjust_context_for_raise) HPUX: Initial revision. 6223 Adjust PC by one in the provided machine context. 6224 (__gnat_install_handler) HPUX: Set SA_SIGINFO in the sigaction flags, 6225 so that the handler is passed the context structure to adjust prior to 6226 the raise. 6227 (__gnat_error_handler) HPUX: Adjust the signature to match what an 6228 SA_SIGINFO sigaction should look like. Call 6229 __gnat_adjust_context_for_raise before actually raising. 6230 (__gnat_adjust_context_for_raise): Default noop to help PC 6231 adjustments before raise from signal handlers. 6232 (__gnat_error_handler): Indirectly call a predicate function to 6233 determine if a condition should be resignaled or not. 6234 (__gnat_set_resignal_predicate): User interface to modify the predicate. 6235 (__gnat_default_resignal_p): Default GNAT predicate. 6236 62372005-03-15 Doug Rupp <rupp@adacore.com> 6238 6239 * adaint.c: Prefix #include of VMS system header files with vms/ 6240 [VMS] (HOST_EXECUTABLE_SUFFIX, HOST_OBJECT_SUFFIX): Define for VMS. 6241 Do not define a dummy function "convert_addresses" under Darwin, 6242 not needed. 6243 6244 * tb-alvms.c, expect.c: Prefix #include of VMS system header files 6245 with vms/ 6246 62472005-03-15 Nicolas Setton <setton@adacore.com> 6248 6249 * tracebak.c: Under Darwin, use the same unwinding mechanisms as under 6250 PPC/AIX. 6251 62522005-03-15 Robert Dewar <dewar@adacore.com> 6253 6254 * a-reatim.ads, a-reatim.adb: Add functions Minutes and Seconds for 6255 AI-386. 6256 6257 * a-retide.ads: Minor comment changes 6258 62592005-03-15 Robert Dewar <dewar@adacore.com> 6260 6261 * a-stzunb.adb, a-stzunb.adb a-stzunb.ads, a-stzunb.ads, 6262 a-stwiun.ads, a-stwiun.adb, a-strunb.ads, a-strunb.adb: Move 6263 Realloc_For_Chunk to private part of package. 6264 New subprograms for AI-301 6265 6266 * a-szuzti.adb, a-suteio.adb, a-swuwti.adb: Improve efficiency of 6267 Get_Line procedure. 6268 Avoid unnecessary use of Get/Set_Wide_String 6269 62702005-03-15 Robert Dewar <dewar@adacore.com> 6271 6272 PR ada/13470 6273 * a-stunau.ads, a-stunau.adb: 6274 Change interface to allow efficient (and correct) implementation 6275 The previous changes to allow extra space in unbounded strings had 6276 left this interface a bit broken. 6277 6278 * a-suteio.adb: Avoid unnecessary use of Get/Set_String 6279 6280 * g-spipat.ads, g-spipat.adb: New interface for Get_String 6281 Minor reformatting (function specs) 6282 6283 * g-spitbo.adb: New interface for Get_String 6284 6285 * g-spitbo.ads: Minor reformatting 6286 6287 * a-swunau.ads, a-swunau.adb: New interface for Get_Wide_String 6288 6289 * a-szunau.ads, a-szunau.adb: New interface for Get_Wide_Wide_String 6290 62912005-03-15 Javier Miranda <miranda@adacore.com> 6292 Robert Dewar <dewar@adacore.com> 6293 Thomas Quinot <quinot@adacore.com> 6294 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6295 6296 * atree.ads, atree.adb: Add support for Elist24 field 6297 6298 * atree.h: Fix wrong definition of Field27 6299 Add support for Elist16 field 6300 Add support for Elist24 field 6301 6302 * einfo.ads, einfo.adb (Abstract_Interfaces, 6303 Set_Abstract_Interfaces): New subprograms. 6304 (Abstract_Interface_Alias, Set_Abstract_Interface_Alias): New 6305 subprograms. 6306 (Access_Disp_Table, Set_Access_Disp_Table): Modified to handle a list of 6307 entities rather than a single node. 6308 (Is_Interface, Set_Is_Interface): New subprogram 6309 (First_Tag_Component): New syntesized attribute 6310 (Next_Tag_Component): New synthesized attribute 6311 (Write_Entity_Flags): Upgraded to write Is_Interface 6312 (Write_Field24_Name): Upgraded to write Abstract_Interfaces 6313 (Write_Field25_Name): Upgraded to write Abstract_Interface_Alias 6314 (Task_Body_Procedure): New subprogram to read this attribute. 6315 (Set_Task_Body_Procedure): New subprogram to set this attribute. 6316 (Has_Controlled_Component): Now applies to all entities. 6317 This is only a documentation change, since it always worked to apply 6318 this to other than composite types (yielding false), but now this is 6319 official. 6320 Update documentation on Must_Be_Byte_Aligned for new spec 6321 6322 * tbuild.adb, exp_dist.adb, exp_disp.adb, exp_ch3.ads, exp_ch3.adb, 6323 exp_attr.adb, exp_aggr.adb, exp_ch4.adb, exp_ch5.adb: Upgrade all the 6324 uses of the Access_Disp_Table attribute to reference the first dispatch 6325 table associated with a tagged type. As 6326 part of the implementation of abstract interface types, 6327 Access_Disp_Table has been redefined to contain a list of dispatch 6328 tables (rather than a single dispatch table). 6329 Similarly, upgrade all the references to Tag_Component by the 6330 new attribute First_Tag_Component. 6331 (Find_Inherited_TSS): Moved to exp_tss. 6332 Clean up test in Expand_N_Object_Declaration for cases 6333 where we need to do a separate assignment of the initial value. 6334 (Expand_N_Object_Declaration): If the expression in the 6335 declaration of a tagged type is an aggregate, no need to generate an 6336 additional tag assignment. 6337 (Freeze_Type): Now a function that returns True if the N_Freeze_Entity 6338 is to be deleted. 6339 Bit packed array ops are only called if operands are known to be 6340 aligned. 6341 (Component_Equality): When returning an N_Raise_Program_Error statement, 6342 ensure that its Etype is set to Empty to avoid confusing GIGI (which 6343 expects that only expressions have a bona fide type). 6344 (Make_Tag_Ctrl_Assignment): Use Build_Actual_Subtype to correctly 6345 determine the amount of data to be copied. 6346 6347 * par.adb (P_Interface_Type_Definition): New subprogram that parses the 6348 new syntax rule of Ada 2005 interfaces (for AI-251 and AI-345): 6349 INTERFACE_TYPE_DEFINITION ::= 6350 [limited | task | protected | synchronized] interface 6351 [AND interface_list] 6352 6353 * par-ch3.adb (P_Type_Declaration): Modified to give support to 6354 interfaces. 6355 (P_Derived_Type_Def_Or_Private_Ext_Decl): Modified to give support to 6356 interfaces. 6357 (P_Interface_Type_Definition): New subprogram that parses the new 6358 syntax rule of Ada 2005 interfaces 6359 (P_Identifier_Declarations): fix two occurrences of 'RENAMES' in error 6360 messages by the correct RENAMES (quotes removed). 6361 6362 * sem_prag.adb: Upgrade all the references to Tag_Component by the new 6363 attribute First_Tag_Component. 6364 6365 * sinfo.ads, sinfo.adb: Remove OK_For_Stream flag, not used, not needed 6366 (Interface_List, Set_Interface_List): New subprograms. 6367 (Interface_Present, Set_Interface_Present): New subprograms. 6368 (Limited_Present, Set_Limited_Present): Available also in derived 6369 type definition nodes. 6370 (Protected_Present, Set_Protected_Present): Available also in 6371 record type definition and 6372 derived type definition nodes. 6373 (Synchronized_Present, Set_Synchronized_Present): New subprograms. 6374 (Task_Present, Set_Task_Present): New subprogram. 6375 (Task_Body_Procedure): Removed. 6376 (Set_Task_Body_Procedure): Removed. 6377 These subprogram have been removed because the attribute 6378 Task_Body_Procedure has been moved to the corresponding task type 6379 or task subtype entity to leave a field free to store the list 6380 of interfaces implemented by a task (for AI-345) 6381 Add Expression field to N_Raise_Statement node for Ada 2005 AI-361 6382 (Null_Exclusion_Present): Change to Flag11, to avoid conflict with 6383 expression flag Do_Range_Check 6384 (Exception_Junk): Change to Flag7 to accomodate above change 6385 (Box_Present, Default_Name, Specification, Set_Box_Present, 6386 Set_Default_Name, Set_Specification): Expand the expression 6387 "X in N_Formal_Subprogram_Declaration" into the corresponding 6388 two comparisons. Required to use the csinfo tool. 6389 6390 * exp_ch11.adb (Expand_N_Raise_Statement): Deal with case where 6391 "with string" given. 6392 6393 * sem_ch11.adb (Analyze_Raise_Statement): Handle case where string 6394 expression given. 6395 6396 * par-ch11.adb (P_Raise_Statement): Recognize with string expression 6397 in 2005 mode 6398 6399 * exp_ch9.adb (Build_Task_Proc_Specification): Modified to use entity 6400 attribute Task_Body_Procedure rather than the old semantic field that 6401 was available in the task_type_declaration node. 6402 6403 * par-ch12.adb (P_Formal_Type_Definition): Modified to handle formal 6404 interface type definitions. 6405 (P_Formal_Derived_Type_Definition): Modified to handle the list of 6406 interfaces. 6407 6408 * par-ch9.adb (P_Task): Modified to handle the list of interfaces in a 6409 task type declaration. 6410 (P_Protected): Modified to handle the list of interfaces in a 6411 protected type declaration. 6412 64132005-03-15 Doug Rupp <rupp@adacore.com> 6414 Vincent Celier <celier@adacore.com> 6415 6416 * bindgen.adb (Gen_Main_C): Change WBI __posix_exit to decc$posix_exit 6417 (Gen_Output_File_C): Likewise. 6418 (Gen_Main_C): Issue #include <stdlib.h> to avoid warning 6419 64202005-03-15 Thomas Quinot <quinot@adacore.com> 6421 6422 * checks.adb (Get_E_First_Or_Last): When the expression being retrieved 6423 is an N_Raise_Constraint_Error node, create a new copy of it without 6424 going through a call to Duplicate_Subexpr. 6425 64262005-03-15 Eric Botcazou <ebotcazou@adacore.com> 6427 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6428 Nicolas Setton <setton@adacore.com> 6429 Ed Schonberg <schonberg@adacore.com> 6430 6431 PR ada/19900 6432 PR ada/19408 6433 PR ada/19140 6434 PR ada/20255 6435 * decl.c (gnat_to_gnu_field): Reject aliased components with a 6436 representation clause that prescribes a size not equal to the rounded 6437 size of their types. 6438 (gnat_to_gnu_entity, case E_Component): Always look at 6439 Original_Record_Component if Present and not the entity. 6440 (gnat_to_gnu_entity, case E_Record_Subtype): Rework handling of subtypes 6441 of tagged extension types by not making field for components that are 6442 inside the parent. 6443 (gnat_to_gnu_entity) <E_Record_Type>: Fix typo in the alignment formula 6444 (gnat_to_gnu_entity) <E_Variable>: Do not convert again the 6445 expression to the type of the object when the object is constant. 6446 Reverse defer_debug_incomplete_list before traversing it, so that trees 6447 are processed in the order at which they were added to the list. This 6448 order is important when using the stabs debug format. 6449 If we are deferring the output of debug information, also defer this 6450 output for a function return type. 6451 When adding fields to a record, prevent emitting debug information 6452 for incomplete records, emit the information only when the record is 6453 complete. 6454 (components_to_record): New parameter defer_debug. 6455 (gnat_to_gnu_entity, case E_Array_Subtype): Call copy_alias_set. 6456 (gnat_to_gnu_field_decl): New function. 6457 (substitution_list, annotate_rep): Call it. 6458 (gnat_to_gnu_entity, case E_Record_Subtype): Likewise. 6459 (gnat_to_gnu_entity, case E_Record_Type): Likewise. 6460 No longer update discriminants to not be a COMPONENT_REF. 6461 (copy_alias_set): Strip padding from input type; also handle 6462 unconstrained arrays properly. 6463 6464 * gigi.h (write_record_type_debug_info): New function. 6465 Convert to use ANSI-style prototypes. Remove unused 6466 declarations for emit_stack_check, elab_all_gnat and 6467 set_second_error_entity. 6468 (gnat_to_gnu_field_decl): New decl. 6469 6470 * utils.c (write_record_type_debug_info): New function. 6471 (finish_record_type): Delegate generation of debug information to 6472 write_record_type_debug_info. 6473 (update_pointer_to): Remove unneeded calls to rest_of_decl_compilation. 6474 (update_pointer_to): Fix pasto. 6475 (convert) <UNION_TYPE>: Accept slight type variations when 6476 converting to an unchecked union type. 6477 6478 * exp_ch13.adb (Expand_N_Freeze_Entity): If Freeze_Type returns True, 6479 replace the N_Freeze_Entity with a null statement. 6480 6481 * freeze.adb (Freeze_Expression): If the freeze nodes are generated 6482 within a constrained subcomponent of an enclosing record, place the 6483 freeze nodes in the scope stack entry for the enclosing record. 6484 (Undelay_Type): New Subprogram. 6485 (Set_Small_Size): Pass T, the type to modify; all callers changed. 6486 (Freeze_Entity, Freeze_Record_Type): Change the way we handle types 6487 within records; allow them to have freeze nodes if their base types 6488 aren't frozen yet. 6489 6490 * exp_util.adb (Remove_Side_Effects): Properly test for 6491 Expansion_Delayed and handle case when it's inside an 6492 N_Qualified_Expression. 6493 6494 * sem_ch3.adb (Derived_Type_Declaration): New predicate 6495 Comes_From_Generic, to recognize accurately that the parent type in a 6496 derived type declaration can be traced back to a formal type, because 6497 it is one or is derived from one, or because its completion is derived 6498 from one. 6499 (Constrain_Component_Type): If component comes from source and has no 6500 explicit constraint, no need to constrain in in a subtype of the 6501 enclosing record. 6502 (Constrain_Access, Constrain_Array): Allow itypes to be delayed. 6503 Minor change to propagate Is_Ada_2005 flag 6504 6505 * trans.c (gnat_to_gnu, case N_Aggregate): Verify that 6506 Expansion_Delayed is False. 6507 (assoc_to_constructor): Ignore fields that have a 6508 Corresponding_Discriminant. 6509 (gnat_to_gnu) <N_Return_Statement>: Restructure. If the 6510 function returns "by target", dereference the target pointer using the 6511 type of the actual return value. 6512 <all>: Be prepared for a null gnu_result. 6513 (processed_inline_subprograms): Check flag_really_no_inline 6514 instead of flag_no_inline. 6515 (set_second_error_entity): Remove unused function. 6516 (gnat_to_gnu, case N_Selected_Component): Call 6517 gnat_to_gnu_field_decl. 6518 (assoc_to_constructor): Likewise. 6519 65202005-03-15 Robert Dewar <dewar@adacore.com> 6521 Ed Schonberg <schonberg@adacore.com> 6522 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6523 6524 * exp_pakd.adb (Create_Packed_Array_Type): Do not set 6525 Must_Be_Byte_Aligned for cases where we do not need to use a 6526 System.Pack_nn unit. 6527 6528 * exp_ch6.adb (Expand_Call): Call Expand_Actuals for functions as well 6529 as procedures. 6530 Needed now that we do some processing for IN parameters as well. This 6531 may well fix some unrelated errors. 6532 (Expand_Call): Handle case of unaligned objects (in particular those 6533 that come from packed arrays). 6534 (Expand_Inlined_Call): If the subprogram is a renaming as body, and the 6535 renamed entity is an inherited operation, re-expand the call using the 6536 original operation, which is the one to call. 6537 Detect attempt to inline parameterless recursive subprogram. 6538 (Represented_As_Scalar): Fix to work properly with private types 6539 (Is_Possibly_Unaligned_Object): Major rewrite to get a much more 6540 accurate estimate. Yields True in far fewer cases than before, 6541 improving the quality of code that depends on this test. 6542 6543 * exp_util.adb (Kill_Dead_Code): For a package declaration, iterate 6544 over both visible and private declarations to remove them from tree, 6545 and mark subprograms declared in package as eliminated, to prevent 6546 spurious use in subsequent compilation of generic units in the context. 6547 6548 * exp_util.ads: Minor cleanup in variable names 6549 6550 * sem_eval.ads, sem_eval.adb: Minor reformatting 6551 (Compile_Time_Known_Bounds): New function 6552 65532005-03-15 Ed Schonberg <schonberg@adacore.com> 6554 6555 * exp_ch7.adb (Convert_View): Use base types of underlying types when 6556 determining whether an unchecked conversion is needed for the argument 6557 of an initialization call. 6558 65592005-03-15 Ed Schonberg <schonberg@adacore.com> 6560 6561 * exp_intr.adb (Expand_Unc_Conversion): As a target type, use the type 6562 that appears in the instantiation rather than the internal subtype 6563 generated in the wrapper package, to avoid anomalies in gigi when the 6564 target is derived from a private type whose full view is an access type. 6565 65662005-03-15 Robert Dewar <dewar@adacore.com> 6567 6568 * exp_smem.adb, sem_attr.adb: Remove OK_For_Stream flag, not used, 6569 not needed. 6570 Add documentation to replace the use of this flag 6571 Fix kludge for Maximum_Alignment on x86 so that it does not apply to 6572 the x86_64. 6573 65742005-03-15 Thomas Quinot <quinot@adacore.com> 6575 6576 * exp_tss.ads, exp_tss.adb (Find_Inherited_TSS): New subprogram, moved 6577 here from exp_attr so it can be shared between exp_attr and exp_dist. 6578 (TSS_Names): Renamed from OK_TSS_Names. This array contains the list of 6579 all TSS names, not a subset thereof, and the previous name introduced 6580 an unnecessarily confusion that a distinction might exist between 6581 "OK" TSS names and some "not OK" TSS names. 6582 65832005-03-15 Doug Rupp <rupp@adacore.com> 6584 6585 * gnatchop.adb (Locate_Executable): Normalize the possibly VMS style 6586 Command_Name. 6587 65882005-03-15 Pascal Obry <obry@adacore.com> 6589 Eric Botcazou <ebotcazou@adacore.com> 6590 6591 PR ada/20226 6592 PR ada/20344 6593 * init.c (__gnat_initialize): Do not call __gnat_install_SEH_handler() 6594 when IN_RTS. This is to work around a bootstrap path problem. 6595 6596 * misc.c (gnat_parse_file): Create a SEH (Structured Exception Handler) 6597 table and pass it to __gnat_install_SEH_handler(). 6598 (gnat_handle_option): Accept OPT_fRTS_, not OPT_fRTS. 6599 6600 * lang.opt: Fix specification of -fRTS=. 6601 66022005-03-15 Doug Rupp <rupp@adacore.com> 6603 Bernard Banner <banner@adacore.com> 6604 Vincent Celier <celier@adacore.com> 6605 Arnaud Charlet <charlet@adacore.com> 6606 6607 PR ada/6852 6608 This change works fine when gnatlib is built from the gcc directory, 6609 but does not work when using the libada Makefile, since GCC_FOR_TARGET 6610 is not passed to ada/Makefile.in, so more work is needed by a 6611 Makefile/configure expert. 6612 6613 * Makefile.in(gnatlib): Use $(GCC_FOR_TARGET) for compiling library. 6614 set GMEM_LIB on ia64 linux to add optional support for gnatmem. 6615 Setup gnatlink switch -M for x86_64 linux, as it is already setup 6616 for Linux x86. 6617 (gnatlib-shared-default): Use GNATLIBCFLAGS as well. 6618 Run ranlib on libgccprefix.a 6619 Define PREFIX_OBJS for Darwin, to build libgccprefix. 6620 (ADA_INCLUDE_SRCS): Split Ada packages. 6621 66222005-03-15 Robert Dewar <dewar@adacore.com> 6623 6624 * Make-lang.in: Add g-utf_32 unit for gnat and gnatbind 6625 6626 * impunit.adb: Add GNAT.UTF_32 6627 6628 * scng.adb: Use gnat.utf_32 instead of widechar for utf_32 stuff 6629 6630 * widechar.ads, widechar.adb: Remove redundant UTF-32 tables (scng 6631 now uses GNAT.UTF_32). 6632 6633 * g-utf_32.ads, g-utf_32.adb: This is a new unit with full 6634 capabilities for categorizing characters using Unicode categories 6635 66362005-03-15 Ed Schonberg <schonberg@adacore.com> 6637 6638 * sem_ch10.adb (Build_Ancestor_Name): If the ancestor is an 6639 instantiation that has been rewritten as a package body, retrieve spec 6640 to generate proper name for implicit_with_clause. 6641 (Install_Parents): Recognize a parent that is an instantiation but has 6642 been rewritten as a package declaration during analysis. 6643 66442005-03-15 Javier Miranda <miranda@adacore.com> 6645 Ed Schonberg <schonberg@adacore.com> 6646 6647 * sem_ch12.adb (Instantiate_Object): If the analysis of the actual 6648 parameter reported some error we immediately return. This improves the 6649 behaviour of the frontend in case of errors. 6650 (Install_Parent, Remove_Parent): Introduce new flag 6651 Parent_Unit_Visible, to preserve the proper visibility of the ultimate 6652 ancestor of a generic child unit, when the child is being instantiated. 6653 (Inline_Instance_Body): If we are compiling the private 6654 part or the body of a child unit, restore the proper visibility of the 6655 parents after compiling the instance body. 6656 66572005-03-15 Ed Schonberg <schonberg@adacore.com> 6658 Javier Miranda <miranda@adacore.com> 6659 6660 PR ada/15608 6661 * sem_util.adb (Get_Task_Body_Procedure): Type may be the completion 6662 of a private type, in which case it is underlying_type that denotes 6663 the proper task. Also modified to use the new entity attribute 6664 that is directly available in the task type and task subtype entities 6665 (Build_Actual_Subtype_Of_Component): Handle properly multidimensional 6666 arrays when other dimensions than the first are constrained by 6667 discriminants of an enclosing record. 6668 (Insert_Explicit_Dereference): If the prefix is an indexed component or 6669 a combination of indexed and selected components, find ultimate entity 6670 and generate the appropriate reference for it, to suppress spurious 6671 warnings. 6672 (Note_Possible_Modification): If an entity name has no entity, return. 6673 (Is_Variable): A function call never denotes a variable. 6674 (Requires_Transient_Scope): For record types, recurse only on 6675 components, not on internal subtypes that may have been generated for 6676 constrained components. 6677 66782005-03-15 Ed Schonberg <schonberg@adacore.com> 6679 6680 * sem_ch4.adb (Analyze_Concatenation): Do not consider operators marked 6681 Eliminated as candidates for resolution. Both efficient, and avoids 6682 anomalies with operators declared in deleted code. 6683 (Process_Implicit_Dereference_Prefix): Use this procedure whenever 6684 expansion is disabled (as when compiling a generic) to prevent spurious 6685 warnings on prefixes of selected components. 6686 66872005-03-15 Ed Schonberg <schonberg@adacore.com> 6688 6689 * sem_ch6.adb (Is_Private_Declaration): Verify that the declaration is 6690 attached to a list before checking whether it appears in the private 6691 declarations of the current package. 6692 (Make_Inequality_Operator): Insert declaration in proper declarative 6693 list rather than just setting the Parent field, so that 6694 Is_Private_Declaration can handle it properly. 6695 66962005-03-15 Ed Schonberg <schonberg@adacore.com> 6697 6698 * sem_ch8.adb (Analyze_Subprogram_Renaming): In a generic, if this is 6699 a renaming a body, check that the renamed subprogram in not intrinsic. 6700 (Find_Direct_Name): If several use_visible entities hide 6701 each other, and the context is a predefined file compiled through 6702 rtsfind, keep only the entity that comes from a predefined file. 6703 67042005-03-15 Geert Bosch <bosch@adacore.com> 6705 6706 * s-fatgen.adb (Valid): Extend special exceptions to account for long 6707 long float padding to also cover AMD64 and IA64. 6708 67092005-03-15 Gary Dismukes <dismukes@adacore.com> 6710 6711 * s-imgwch.adb: Add with and use of Interfaces. 6712 (Img_Wide_Character): Change type of Val to Unsigned_16. 6713 (Img_Wide_Wide_Character): Change type of Val to Unsigned_32. 6714 67152005-03-15 Matthew Gingell <gingell@adacore.com> 6716 6717 * sysdep.c: Implement __gnat_localtime_r as call to localtime_r on AIX. 6718 67192005-03-15 Robert Dewar <dewar@adacore.com> 6720 6721 * usage.adb: Add missing lines for -gnat95 and -gnat05 switches 6722 6723 * sem_ch7.adb: Minor change to propagate Is_Ada_2005 flag 6724 6725 * i-c.adb: Clarify that AI-258 behavior is also intended in Ada 95 6726 67272005-03-15 Robert Dewar <dewar@adacore.com> 6728 6729 * s-bitops.adb, s-bitops.ads, 6730 s-taprop-os2.adb, s-intman-vms.ads, s-intman-vxworks.ads, 6731 s-taprop-vxworks.adb, a-caldel.ads, a-calend.adb, a-tasatt.adb, 6732 tbuild.ads, s-finimp.adb, s-imgwch.adb, s-intman.ads, s-intman.ads, 6733 s-memory.adb, s-soflin.ads, s-taasde.ads, s-taprob.adb, s-taprop.ads, 6734 s-taprop.ads, s-tasini.adb, s-tasini.ads, s-tasini.ads, s-tasini.ads, 6735 s-taskin.ads, s-tasren.adb, s-tassta.adb, s-tassta.ads, s-tassta.ads, 6736 s-tasuti.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, s-tataat.ads, 6737 s-tpoben.adb, s-tpoben.adb, s-tpobop.ads: Update comments. Minor 6738 reformatting. 6739 67402005-03-15 Eric Botcazou <ebotcazou@adacore.com> 6741 6742 * utils2.c (build_binary_op): Fix typo. 6743 67442005-03-15 Doug Rupp <rupp@adacore.com> 6745 6746 * s-crtl.ads (popen,pclose): New imports. 6747 67482005-03-15 Cyrille Comar <comar@adacore.com> 6749 6750 * comperr.adb (Compiler_Abort): remove references to obsolete 6751 procedures in the bug boxes for various GNAT builds. 6752 67532005-03-15 Vincent Celier <celier@adacore.com> 6754 6755 * snames.ads, snames.adb: Save as Unix text file, not as DOS text file 6756 67572005-03-15 Geert Bosch <bosch@adacore.com> 6758 Arnaud Charlet <charlet@adacore.com> 6759 Robert Dewar <dewar@adacore.com> 6760 Cyrille Comar <comar@adacore.com> 6761 Sergey Rybin <rybin@adacore.com> 6762 6763 * gnat_ugn.texi: Remove extended inline assembly example, as it was far 6764 too specific and long-winded to be appropriate for the GNAT User's 6765 Guide. 6766 Warn about use of GCC switches not documented in the GNAT User's Guide, 6767 as these may cause generated code to not conform to Ada semantics. 6768 Remove mention of -gdwarf-2 for sparc64, since this is now the default. 6769 Add documentation for -gnat95 and -gnat05 switches 6770 Remove paragraph documenting obsolete way to refer to third party 6771 libraries. 6772 Add a few references to Ada_05 that were missing. 6773 Update documentation on -gnatZ/-gnatL. 6774 Document limitation when using -m64 under Solaris. 6775 Change the "Name Casing" subsection of the pretty-printer section 6776 according to the changes in the dictionary processing. 6777 6778 * gnat_rm.texi: Document the Ada_05 pragma. 6779 Section on record representation clauses describes the new more 6780 relaxed rules about placement of large packed bit array components. 6781 Add documentation of GNAT.UTF_32 6782 67832005-03-12 Daniel Berlin <dberlin@dberlin.org> 6784 6785 * misc.c (gnat_post_options): Turn off structural 6786 aliasing for now. 6787 67882005-03-08 Laurent Guerby <laurent@guerby.net> 6789 6790 * system-linux-sparc.ads: Fix typo in previous commit. 6791 67922005-03-07 James A. Morrison <phython@gcc.gnu.org> 6793 Laurent Guerby <laurent@guerby.net> 6794 6795 PR ada/20035 6796 * system-linux-sparc.ads: New. 6797 * Makefile.in: Add sparc linux entry. 6798 67992005-02-27 Danny Smith <dannysmith@users.sourceforge.net> 6800 6801 * seh_init.c (__gnat_SEH_error_handler): Mark third and fourth 6802 parameters as unused. 6803 68042005-02-26 Nathanael Nerode <neroden@gcc.gnu.org> 6805 Partial merge from libada-gnattools-branch: 6806 6807 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org> 6808 * Makefile.in: Move gnattools{1,1re,2,3,4} and corresponding flags 6809 into code in gnattools/Makefile.in. Remove direct dependencies on 6810 stamp-tools by tools clauses. 6811 2004-12-02 Nathanael Nerode <neroden@gcc.gnu.org> 6812 * config-lang.in: Add gnattools to $lang_dirs. 6813 68142005-02-13 Andrew Pinski <pinskia@physics.uc.edu> 6815 6816 PR ada/19942 6817 * utils.c (gnat_type_for_mode): Return null instead of ICE because 6818 we asked for an unknown mode. 6819 68202005-02-12 Richard Henderson <rth@redhat.com> 6821 6822 * utils.c (gnat_type_for_mode): Return NULL for COMPLEX modes; 6823 validate SCALAR_INT_MODE_P before calling gnat_type_for_size. 6824 68252005-02-10 Andreas Jaeger <aj@suse.de> 6826 6827 * init.c (__gnat_initialize): Mark parameter as unused. 6828 68292005-02-09 Doug Rupp <rupp@adacore.com> 6830 6831 * g-expect-vms.adb (Non_Blocking_Spawn): Separate out. 6832 * g-enblsp-vms-alpha.adb g-enblsp-vms-ia64.adb: New subunits. 6833 68342005-02-09 Doug Rupp <rupp@adacore.com> 6835 6836 * gnatchop.adb (dup, dup2), 6837 g-dirope.adb (closedir, opendir, rmdir): Reference via System.CRTL. 6838 6839 * gnatlbr.adb (mkdir), 6840 mlib-tgt-vms-ia64.adb (popen, plose): Import with decc$ prefix. 6841 6842 * s-crtl.ads (closdir, dup, dup2, opendir, rmdir): Import. 6843 68442005-02-09 Doug Rupp <rupp@adacore.com> 6845 6846 * s-tpopde-vms.adb: Add pragma Warnings (Off) for Task_Id conversions. 6847 68482005-02-09 Robert Dewar <dewar@adacore.com> 6849 Thomas Quinot <quinot@adacore.com> 6850 Javier Miranda <miranda@adacore.com> 6851 Pascal Obry <obry@adacore.com> 6852 Ed Schonberg <schonberg@adacore.com> 6853 Doug Rupp <rupp@adacore.com> 6854 Gary Dismukes <dismukes@adacore.com> 6855 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 6856 6857 * g-zstspl.ads: New file. 6858 6859 * a-chahan.ads, a-chahan.adb: Add declarations from AI-285 6860 6861 * a-string.ads: Add pragma Ada_05 for wide_wide_space to get warning in 6862 Ada 95 mode 6863 Add definition of Wide_Wide_Space for AI-285 6864 6865 * impunit.ads, impunit.adb, sem_ch10.adb: Complete rewrite and new 6866 interface (to support Ada 95 and Ada 2005 units). 6867 Add Unbounded_IO files 6868 Add entries for Wide_Wide packages for AI-285 6869 Add list of containers packages to Ada 2005 unit list 6870 6871 * a-swuwti.ads, a-swuwti.adb, a-suteio.ads, a-suteio.adb: Updates to 6872 support new Unbounded_IO package cleanly. 6873 6874 * g-utf_32.ads, g-utf_32.adb: New files. 6875 6876 * Makefile.rtl: Add entry for g-utf_32 6877 Add new files for Unbounded_IO 6878 Adjust make file for new AI-285 wide wide packages 6879 Add AI-302 containers to the run time. 6880 6881 * a-stwibo.adb, a-stwibo.ads, a-stwisu.adb, a-stwisu.ads, 6882 a-strbou.ads, a-strbou.adb, a-strsup.ads, a-strsup.adb: New 6883 subprograms for AI-301. 6884 6885 * a-stwiun.adb, a-stwiun.ads: Minor reformatting. 6886 6887 * a-stunau.ads: Minor comment correction 6888 6889 * rtsfind.ads, rtsfind.adb: Add definitions for Wide_Wide attributes 6890 etc. 6891 Also extend Text_IO_Kludge to support Wide_Wide_Text_IO 6892 (Check_RPC): Update to match changes in expanded code. 6893 Clean up unused entity. 6894 6895 * exp_ch3.ads, exp_ch3.adb: Fix various places where Wide_Wide_String 6896 was not taken into account. 6897 This includes proper initialization with Normalize_Scalars. 6898 (Get_Simple_Init_Val): Major rewrite for initialize scalars and 6899 normalize scalars cases (particularly the latter) to do a better job 6900 of finding invalid representations. 6901 6902 * s-scaval.ads, s-scaval.adb: Add values for zero invalid values 6903 6904 * s-strops.ads, s-strops.adb: Remove string normalize routines, never 6905 used 6906 6907 * exp_dist.adb: Add support for wide wide character type 6908 (Expand_Receiving_Stubs_Bodies): For a package declaration that has a 6909 private part, generate stub bodies at the end of the private part, 6910 not the visible part. 6911 (Add_RACW_Primitive_Operations_And_Bodies): Add last missing code for 6912 PolyORB support. 6913 (Add_Obj_RPC_Receiver_Completion): Add PCS-specific subprograms and 6914 generic wrapper to execute final processing after completing the 6915 expansion of the RPC receiver for an RACW. 6916 6917 * snames.h, snames.ads, snames.adb: Add definitions for wide_wide 6918 packages and attributes. 6919 (Preset_Names): Addition of the new reserved words of Ada 2005, 6920 that is interface, overriding and synchronized. 6921 (Get_Pragma_Id): Give support to the use of the new reserved word 6922 "interface" as a pragma name. 6923 (Is_Pragma_Name): Give support to the use of the new reserved word 6924 "interface" as a pragma name. 6925 (Preset_Names): Add stream_size string for the Stream_Size Ada2005 6926 attribute implementation. 6927 6928 * exp_attr.adb (Expand_Attribute_Reference): Do not apply validity 6929 checks to entities that are output parameters of Asm operations. 6930 Handle the Stream_Size attribute. 6931 Add implementation of Wide_Wide_Value, Wide_Wide_Image, Wide_Wide_Width 6932 6933 * exp_imgv.ads, exp_imgv.adb: Add support for wide wide character type 6934 6935 * sem_attr.adb (Eval_Attribute): Raise compile-time constraint error 6936 for second parameter being 0.0. 6937 Add support for wide wide character type. 6938 (Analyze_Attribute, Eval_Attribute): Handle the Stream_Size attribute. 6939 6940 * s-valwch.adb, s-valwch.ads, s-imgwch.ads, s-imgwch.adb, 6941 s-wchstw.ads, s-wchstw.adb, s-wchwts.adb, s-wchwts.ads, 6942 s-widwch.adb, s-widwch.ads, s-wwdcha.adb, s-wwdcha.ads, 6943 s-wwdenu.adb, s-wwdenu.ads, s-wwdwch.adb, s-wwdwch.ads: Add support 6944 for wide wide character cases. 6945 6946 * cstand.adb: Create entities for Wide_Wide_Character and 6947 Wide_Wide_String. 6948 6949 * i-c.ads, i-c.adb: Fix not raising CE for null wide strings in 6950 accordance with AI-258. 6951 Add new declarations for 16/32 bit C character types (Part of AI285) 6952 6953 * einfo.ads, einfo.adb (Is_Obsolescent, Is_Ada_2005): New flag 6954 (Obsolescent_Warning): New field 6955 (Rep_Clause): New local subprogram used to share code. Returns the rep 6956 clause for which the name is given in parameter. 6957 (Has_Stream_Size_Clause): New routine. 6958 (Stream_Size_Clause): Idem. Implementation is based on Rep_Clause. 6959 (Address_Clause): Implementation is now using Rep_Clause. 6960 (Alignment_Clause): Idem. 6961 (Size_Clause): Idem. 6962 6963 * lib-xref.adb (Generate_Reference): Test for reference to Ada 2005 6964 entity in non-Ada 2005 mode and generate warning. 6965 6966 * par-prag.adb: Add handling of one argument form for pragma Ada_05. 6967 (Prag): Code cleanup. Remove old gnat pragma "overriding" 6968 6969 * sem_prag.adb: Add handling of one argument form for pragma Ada_05 6970 (Analyze_Pragma, case Elaborate, Elaborate_All): Do not disable warnings 6971 on the named unit if the pragma is not in the current compilation unit, 6972 so that elaboration calls in the current unit can set up an elaboration 6973 dependency on the named unit, as needed. 6974 (Analyze_Pragma, case Obsolescent): Allow pragma to be used for library 6975 subprogram as well as for subprograms declared within a package. 6976 (Analyze_Pragma, Sig_Flags): Code cleanup. Remove support for the GNAT 6977 pragma overriding. 6978 6979 * krunch.ads, krunch.adb: Add special handling of Wide_Wide (krunched 6980 to z) to avoid some instances of duplication for Wide_Wide packages. 6981 6982 * namet.ads, namet.adb: Implement encoding (WWhhhhhhhh) for wide wide 6983 characters. 6984 6985 * scn.adb: Char_Literal_Value field is now a Uint 6986 6987 * scng.adb: Significant rewrite to handle new Ada 2005 features 6988 allowing wide and wide wide characters in program text, e.g. for 6989 identifiers, as described in AI-285. 6990 (Set_Reserved): New procedure, makes setting up keywords cleaner. 6991 (Initialize_Scanner): Register the new reserved words of Ada 2005. 6992 (Scan): Give support to the new reserved words. 6993 6994 * par-ch2.adb (P_Identifier): Compiling in Ada95 mode, generate a 6995 warning notifying that interface, overriding, and synchronized are 6996 new reserved words. 6997 (P_Pragma): Allow the use of the new reserved word "interface" as 6998 a pragma name. 6999 7000 * gnatls.adb, gnatbind.adb, 7001 ali-util.adb, binde.adb, ali.ads, ali.adb: Code cleanup. Rename 7002 identifiers named "interface" to "SAL_Interface". 7003 7004 * bindgen.adb (Gen_Main_Ada): Add support for the new SEH 7005 (Structured Exception handling). 7006 (Gen_Main_C): Idem. 7007 7008 * bindgen.adb: 7009 (Gen_Main_Ada): Set the default exit code if specified. 7010 (Gen_Main_C): Likewise. 7011 Part of *DC20-006. 7012 (Gen_Output_File_C): Remove redundant output of gnat_exit_status. 7013 Code cleanup. Rename identifiers named "interface" to "SAL_Interface" 7014 7015 * switch-b.adb, bindusg.adb, opt.ads, vms_data.ads: Add handling of 7016 new -Xnnn switch. 7017 7018 * mlib-prj.adb, mlib.adb: Code cleanup. Rename one identifier that 7019 has a collision with the new Ada 2005 "interface" reserved word. 7020 7021 * par-ch3.adb (P_Defining_Identifier): Compiling in Ada95 mode, 7022 generate a warning notifying that interface, overriding, and 7023 synchronized are new reserved words. 7024 7025 * scans.ads (Token_Type): Addition of the tokens corresponding to the 7026 new reserved words of Ada 2005: Tok_Interface, Tok_Overriding 7027 and Tok_Synchronized. 7028 7029 * sem_res.adb (Resolve_Actuals): Change error messages to refer to 7030 "dispatching" rather than "primitive" operations, since dispatching 7031 calls are now allowed to abstract formal subprograms (which are not 7032 primitive). 7033 Char_Literal_Value field is now a Uint 7034 (Resolve_Slice): If the prefix is an access to an unconstrained array, 7035 compute the actual subtype of the designated object to impose the proper 7036 index constraints. 7037 (Resolve_Selected_Component): Do not insert an access check if the 7038 prefix is an access type: such a node is expanded into an explicit 7039 dereference, on which the access check is performed anyway. Removes 7040 expensive duplicate checks. 7041 (Resolve_Call): Use new flag Is_Obsolescent and field 7042 Obsolescent_Warning so that pragma Obsolescent works on library 7043 subprograms. 7044 Add support for wide wide character type 7045 (Resolve_Allocator): Replace the error message on wrong null-exclusion 7046 value by a warning message. 7047 (Resolve_Type_Conversion): If the mixed-mode expression is interpreted 7048 as fixed-point, and one of the operands is non-static and universal, it 7049 can only be an illegal exponentiation operation, in which case there is 7050 no real value to retrieve. 7051 7052 * exp_strm.adb: Add support for wide wide character type 7053 (Build_Elementary_Input_Call): Compute the size of the stream element by 7054 querying the rep chain to find the Stream_Attribute attribute value. 7055 (Build_Elementary_Write_Call): Ditto. 7056 7057 * sem_aggr.adb: Char_Literal_Value field is now a Uint 7058 Add support for wide wide character type 7059 Replace the error messages on wrong null-exclusion value by warnings 7060 as described in Ada 2005. 7061 (Resolve_Extension_Aggregate): Document the fact that the error 7062 message on class-wide expressions in extensions aggregates. 7063 7064 * sem_case.adb: Add support for wide wide character type 7065 7066 * sem_ch13.adb: Add support for wide wide character type 7067 (Analyze_Attribute_Definition_Clause): Handle the Stream_Size attribute. 7068 7069 * sem_ch3.adb: Add support for wide wide character type 7070 (Process_Subtype): If constraint is illegal for the type, set Ekind of 7071 now-useless Itype, to prevent cascaded errors on a compiler built 7072 without -gnatp. 7073 7074 * sem_ch8.adb: Add with and use of Sem_Disp. 7075 (Analyze_Subprogram_Renaming): Replace unclean uses of 7076 Corresponding_Spec with Corresponding_Formal_Spec (and delete setting 7077 of Corresponding_Spec to Empty). 7078 (Attribute_Renaming): Replace use of Corresponding_Spec with 7079 Corresponding_ Formal_Spec and simplify condition. 7080 (Use_One_Package): Check that scope of homonym of identifier is defined, 7081 before checking whether it is a wrapper package. 7082 Add support for wide wide character type 7083 7084 * sem_eval.adb: Add support for wide wide character type. 7085 (Eval_Arithmetic_Op): Check for compile time known signed integer 7086 overflow in the non-static case. 7087 (Subtypes_Statically_Match): A formal scalar type and its base type do 7088 not statically match. 7089 7090 * sem_util.adb (Collect_Primitive_Operations): Minor change of "/=" to 7091 "not in" for test of N_Formal_Subprogram_Declaration (which is now a 7092 subtype). 7093 (Unit_Declaration_Node): Ditto. 7094 (Is_Variable_Prefix): For the case of an indexed component whose prefix 7095 has a packed array type, the prefix has been rewritten into a type 7096 conversion. Determine variable-ness from the converted expression. 7097 Handle wide wide character cases. 7098 7099 * stand.ads: Add types Wide_Wide_Character and Wide_Wide_String 7100 7101 * stringt.ads, stringt.adb: Handle full UTF-32 range. 7102 Remove ["0A"] from comment, since it can look like a line terminator. 7103 Currently we don't permit this, but this is under discussion by the 7104 ARG, and it is easy enough to use a different example. 7105 7106 * s-wchcon.ads, s-wchcnv.ads, s-wchcnv.adb: Add new subprograms for 7107 handling UTF-32 encoding for wide wide character. 7108 Implement new brackets coding ["hhhhhhhh"] 7109 Add UTF-8 encodings for full UTF-32 range 7110 7111 * ttypes.ads: Add definition of Standard_Wide_Wide_Character_Size 7112 7113 * types.h, types.ads, types.adb: Wide_Wide_Character now has full 31 7114 bit range Add full UTF-32 support. 7115 (RT_Exception_Code): Addition of CE_Null_Not_Allowed; used to 7116 notify that constraint error will be raised at run-time 7117 because a null value is assigned to a null-excluding object. 7118 Remove some obsolete declarations and make Char_Code 7119 unsigned. 7120 7121 * a-except.adb (Rcheck_30): New subprogram. Addition of the message 7122 corresponding to CE_Null_Not_Allowed, and adjust the output of all the 7123 Rcheck subprograms. 7124 7125 * checks.adb (Check_Null_Not_Allowed): Replace the error message on 7126 wrong null-exclusion value by a warning message. 7127 (Enable_Range_Check): Do range check if the prefix is an 7128 explicit dereference whose designated object is an unconstrained array. 7129 Current algorithm for removing duplicate checks is over-eager in this 7130 case. 7131 7132 * sem_ch5.adb (Analyze_Assignment): Replace the error messages on wrong 7133 null-exclusion value by a warning message 7134 7135 * atree.h, atree.ads, atree.adb: Remove Char_Code field support 7136 completely. Add support for Uint2 field 7137 7138 sem_ch2.adb, exp_ch11.adb, exp_dbug.adb, 7139 exp_prag.adb: Char_Literal_Value field is now a Uint. 7140 7141 * exp_util.adb (Insert_Actions): Replace 7142 N_Formal_Subprogram_Declaration by 7143 N_Formal_{Abstract|Concrete}_Subprogram_Declaration. 7144 Char_Literal_Value field is now a Uint. 7145 7146 * sinfo.ads, sinfo.adb (Corresponding_Formal_Spec): New function 7147 defined for subprogram renaming declarations. When set, the field 7148 indicates the defining entity of a corresponding formal subprogram 7149 when the renaming corresponds to a formal subprogram association in an 7150 instantiation. 7151 (Set_Corresponding_Formal_Spec): New procedure to return 7152 Corresponding_Formal_Spec field. 7153 Minor changes of "=" to "in" in tests of N_Formal_Subprogram_Declaration 7154 (which is now a subtype). 7155 Char_Literal_Value field is now a Uint 7156 7157 * exp_disp.ads, exp_disp.adb (Make_DT): Generate code that moves the 7158 pointer to the base of the dispatch table. 7159 Minor changes to comments. 7160 (Controlling_Type): New function for determining the tagged type 7161 associated with a tagged primitive subprogram. 7162 (Expand_Dispatching_Call): Add support for a controlling actual that is 7163 directly a value of type Ada.Tag rather than a tagged object. 7164 7165 * i-cpp.ads, i-cpp.adb, a-tags.ads, a-tags.adb: Update documentation 7166 describing the new layout. 7167 (Dispatch_Table): The expander computes the actual array size, allocates 7168 the Dispatch_Table record accordingly, and generates code that displaces 7169 the base of the record after the Typeinfo_Ptr component. The access to 7170 these components is done by means of local functions. 7171 (Offset_To_Top): New function. 7172 (Typeinfo_Ptr): New function. 7173 (Get_TSD): Modified to access the new position of the TSD. 7174 (Set_TSD): Modified to save the TSD in its new position. 7175 7176 * par-ch12.adb (P_Formal_Subprogram_Declaration): Add parsing for the 7177 case of formal abstract subprograms. Add check and message for -gnat05. 7178 Update comments. 7179 7180 * sem_ch12.adb: Add with and use for Sem_Disp. 7181 (Analyze_Associations): Minor change from "=" to "in" for use of 7182 N_Formal_Subtype_Declaration (which is now a subtype). 7183 (Set_Analyzed_Formal): Minor changes from "=" to "in" for uses of 7184 N_Formal_Subtype_Declaration (which is now a subtype). 7185 (Analyze_Formal_Subprogram): Add handling for 7186 N_Formal_Abstract_Subprogram, marking the formal as abstract and 7187 dispatching, setting the controlling status of the formal parameters 7188 and result, and issuing an error if there is no controlling type for 7189 the formal subprogram. 7190 (Instantiate_Formal_Subprogram): Rather than setting Corresponding_Spec, 7191 which is an unclean use of that field, we set the new field 7192 Corresponding_Formal_Spec to make the formal subprogram available to 7193 processing in Analyze_Subprogram_Declaration. 7194 (Analyze_Formal_{Discrete, Decimal_Fixed_Point, Fixed_Point, 7195 Floating_Point, Modular_Integer, Signed_Integer}_Type: Make formal type 7196 Constrained, so that it is is does not statically match its anonymous 7197 base type. 7198 7199 * sem_ch6.adb (Analyze_Subprogram_Specification): Include test for 7200 abstract formal subprograms in error check for functions returning 7201 abstract types. Set scope of new designator for 7202 a parameterless subprogram, so that it is available when checking the 7203 body for nested subprograms, before full analysis of said body. 7204 (Analyze_Subprogram_Body): Warn on inlining bodies with nested 7205 subprogram only if inner one comes from source. 7206 (Analyze_Function_Call): If the call is given in object notation, the 7207 analysis of the name rewrites the node and analyzes it with the proper 7208 argument list. After analyzing the name, if the call has been rewritten 7209 and the result type is set, no further analysis is needed. 7210 (Analyze_Return_Type): Subsidiary to Process_Formals: analyze subtype 7211 mark in function specification, in a context where the formals are 7212 visible and hide outer homographs. 7213 7214 * sem_disp.adb (Check_Controlling_Type): Relax the check for same scope 7215 as the tagged type for the cases of abstract formal subprograms and 7216 renamings of those. Clean up spec comments. 7217 (Check_Dispatching_Context): Add error message to indicate "abstract 7218 procedure", covering the case of a call to a formal abstract procedure 7219 that has statically tagged operands. 7220 (Check_Dispatching_Call): Check for the case of an actual given by 7221 a tag-indeterminate function call whose type is an ancestor of the 7222 containing call's associated tagged type. This situation can occur 7223 for inherited primitives with function defaults. In this case we 7224 use the tagged type's tag directly as the controlling argument for 7225 the calls. 7226 (Expand_Call): Name change on call to Expand_Dispatch_Call. 7227 7228 * sprint.adb (Sprint_Node_Actual): Split 7229 N_Formal_Subprogram_Declaration into two alternatives for the new 7230 cases N_Formal_Abstract_Subprogram_Declaration and 7231 N_Formal_Concrete_Subprogram_Declaration. 7232 Char_Literal_Value field is now a Uint. 7233 7234 * trans.c: Get rid of junk Uint2 reference. 7235 Char_Literal_Value field is now a Uint. 7236 (gnat_to_gnu, case N_Aggregate): Check TYPE_UNCHECKED_UNION_P. 7237 (gigi): Correct third arg to gimplify_body. 7238 7239 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): New flag. 7240 (TYPE_LANG_FLAG_0): Check for record or union. 7241 7242 * treepr.adb: Char_Literal_Value field is now a Uint 7243 7244 * uintp.h, uintp.ads, uintp.adb: Add new routines UI_To_CC and 7245 UI_From_CC. 7246 7247 * widechar.ads, widechar.adb (Is_UTF_32_Non_Graphic): New function 7248 Add full UTF-32 support 7249 Char_Code is now 32 bits 7250 7251 * sinput.ads, sinput.adb (Skip_Line_Terminators): Extend to deal with 7252 wide character UTF_32 line terminators. 7253 Initialize Main_Source_File to avoid error when no main 7254 source is loaded. 7255 7256 * errout.adb (Finalize): Do not check Num_SRef_Pragmas 7257 (Main_Source_File) when no main source has been loaded, to avoid 7258 potential crash. 7259 72602005-02-09 Robert Dewar <dewar@adacore.com> 7261 7262 * a-strunb.ads, a-strunb.adb: Add missing pragma Ada_05 statements 7263 Fix name of Set routine 7264 7265 * a-strfix.ads, a-strfix.adb: Add new index functions from AI-301 to 7266 fixed packages. 7267 7268 * a-stwise.ads, a-stwise.adb, a-stwifi.ads, a-stwifi.adb, 7269 a-strsea.ads, a-strsea.adb: Add new index functions from AI-301 to 7270 fixed packages 7271 7272 * a-witeio.ads, a-witeio.adb, a-textio.ads, a-textio.adb: New function 7273 forms of Get_Line subprograms for AI-301. 7274 7275 * a-wtcoau.adb, a-wtcoau.ads, a-wtcoio.adb, a-wtcoio.ads, 7276 a-wtedit.adb, a-wtedit.adb, a-wtedit.ads, a-wttest.adb, 7277 a-wttest.ads, a-strmap.ads, a-strmap.adb, a-stwima.adb, 7278 a-stwima.ads: Minor reformatting. 7279 72802005-02-09 Doug Rupp <rupp@adacore.com> 7281 Thomas Quinot <quinot@adacore.com> 7282 7283 * adaint.c, adaint.h 7284 [VMS] (to_ptr32): New function. 7285 (MAYBE_TO_PTR32): New macro. 7286 (__gnat_portable_spawn,__gnat_portable_no_block_spawn): Adjust argv 7287 for pointer size. 7288 [VMS] (descriptor_s, ile_s): Use __char_ptr32 for adr field. 7289 [VMS] (#define fork()): Remove since unneccessary. 7290 (__gnat_set_close_on_exec): New routine to support 7291 GNAT.OS_Lib.Set_Close_On_Exec. 7292 7293 * g-expect.adb (Set_Up_Communications): Mark the pipe descriptors for 7294 the parent side as close-on-exec so that they are not inherited by the 7295 child. 7296 7297 * g-os_lib.ads, g-os_lib.adb (Set_Close_On_Exec): New subprogram to 7298 set or clear the FD_CLOEXEC flag on a file descriptor. 7299 73002005-02-09 Eric Botcazou <ebotcazou@adacore.com> 7301 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 7302 7303 PR ada/19386 7304 * decl.c: 7305 (gnat_to_gnu_field): Do not necessarily invoke make_packable_type 7306 on the field if Pragma Component_Alignment (Storage_Unit). 7307 (gnat_to_gnu_entity, case object): Do not treat a renaming that has 7308 side-effects as if it were a constant; also make SAVE_EXPR to protect 7309 side-effects. 7310 (gnat_to_gnu_entity, case E_Record_Subtype): If have _Parent, make a 7311 UNION_TYPE. 7312 (make_dummy_type): Set TYPE_UNCHECKED_UNION_P. 7313 (components_to_record): Test it. 7314 Fix improper usage of REFERENCE_CLASS_P. 7315 7316 * utils2.c (build_binary_op, case MODIFY_EXPRP): Treat UNION_TYPE as 7317 RECORD_TYPE. 7318 7319 * utils2.c: Minor reformatting. 7320 7321 * utils.c (convert, case UNION_TYPE): Check TYPE_UNCHECKED_UNION; 7322 handle other cases like RECORD_TYPE. 7323 7324 * utils.c (gnat_pushdecl): Set TREE_NO_WARNING. 7325 73262005-02-09 Ed Schonberg <schonberg@adacore.com> 7327 7328 * exp_aggr.adb (Gen_Assign): If the expression is an aggregate for a 7329 component of an array of arrays in an assignment context, and the 7330 aggregate has component associations that require sliding on 7331 assignment, force reanalysis of the aggregate to generate a temporary 7332 before the assignment. 7333 (Must_Slide): Make global to the package, for use in Gen_Assign. 7334 73352005-02-09 Ed Schonberg <schonberg@adacore.com> 7336 7337 * exp_ch4.adb (Expand_Composite_Equality): If a component is an 7338 unchecked union with no inferable discriminants, return a 7339 Raise_Program_Error node, rather than inserting it at the point the 7340 type is frozen. 7341 (Expand_Record_Equality, Component_Equality): Handle properly the case 7342 where some subcomponent is an unchecked union whose generated equality 7343 code raises program error. 7344 73452005-02-09 Doug Rupp <rupp@adacore.com> 7346 7347 * gnatbl.c: [VMS] (_POSIX_EXIT): Define. 7348 [VMS] (#define exit hack): Remove. 7349 73502005-02-09 Pascal Obry <obry@adacore.com> 7351 Arnaud Charlet <charlet@adacore.com> 7352 7353 * init.c (__gnat_initialize): Add a new parameter eh which contains the 7354 address of the exception registration. The Win32 version of this 7355 routine calls __gnat_install_SEH_handler() to initialize the SEH 7356 (Structured Exception Handling) handler. 7357 (__gnat_error_handler) [Win32]: Removed. Not needed as we use 7358 SEH (Structured Exception Handling) now. 7359 (__gnat_install_handler) [Win32]: Nothing to do now as we use SEH. 7360 (__gnat_initialize for ppc-vxworks): Adjust comments and the 7361 preprocessor condition protecting the call to the extra eh setup 7362 subprogram, which is only available for the ppc target. 7363 (__gnat_clear_exception_count): replaced reference to 7364 variable taskIdCurrent by call to taskIdSelf(), cleaner. 7365 7366 * seh_init.c: New file. 7367 7368 * Make-lang.in: (GNAT_ADA_OBJS): Add seh_init.o. 7369 (GNATBIND_OBJS): Idem. 7370 7371 * misc.c (gnat_parse_file): Update call to __gnat_initialize. This 7372 routine takes a new parameter (a pointer to the exception registration 7373 for the SEH (Structured Exception Handling) support. 7374 7375 * raise.h: (__gnat_install_SEH_handler): New prototype. 7376 Update copyright notice. 7377 7378 * s-tassta.adb (Task_Wrapper): Declare the exception registration 7379 record and initialize it by calling __gnat_install_SEH_handler. 7380 73812005-02-09 Vincent Celier <celier@adacore.com> 7382 7383 * make.adb (Gnatmake): Do not fail when the main project has no object 7384 directory. 7385 73862005-02-09 Doug Rupp <rupp@adacore.com> 7387 7388 * Makefile.in [VMS] (LN,LN_S): Define as cp -p 7389 Rename s-asthan-vms.adb to s-asthan-vms-alpha.adb. 7390 [VMS]: Add translations for g-enblsp.adb. 7391 7392 * s-asthan-vms.adb: Removed. 7393 * s-asthan-vms-alpha.adb: Added. 7394 73952005-02-09 Pascal Obry <obry@adacore.com> 7396 7397 * Makefile.in (LIBGNAT_SRCS): Add seh_init.c. 7398 (LIBGNAT_OBJS): Add seh_init.o. 7399 74002005-02-09 Arnaud Charlet <charlet@adacore.com> 7401 7402 PR ada/16592 7403 * Makefile.in: Link all gnat tools with -static-libgcc, since 7404 -shared-libgcc is now used by default on some systems (e.g. linux with 7405 recent binutils). 7406 Remove references to Makefile.prolog/generic, no longer used. 7407 74082005-02-09 Vincent Celier <celier@adacore.com> 7409 7410 * prj-makr.adb (Process_Directory): Put file name in canonical case 7411 before matching against the patterns. 7412 If gnatname has been invoked as <prefix>-gnatname 7413 then invoke the compiler as <prefix>-gcc, not just "gcc". 7414 74152005-02-09 Ed Schonberg <schonberg@adacore.com> 7416 7417 * sem_ch4.adb (Analyze_Selected_Component): Create Actual_Subtype even 7418 with expansion disabled. The actual subtype is needed among other 7419 places when the selected component appears in the context of a loop 7420 bound, and denotes a packed array. 7421 (Operator_Check): Always use the first subtype in the 7422 error message, to avoid the appearance of internal base types. 7423 (Transform_Object_Operation): Copy each actual in full 7424 to the parameter associations of the constructed call, rather than 7425 using the shallow copy mechanism of New_Copy_List. This ensures that 7426 the chaining of named associations is done properly. 7427 (Complete_Object_Operation): Rewrite node, rather than 7428 replacing it, so that we can trace back to the original selected 7429 component. 7430 7431 * sem_elab.adb (Set_Elaboration_Constraint): For initialization calls, 7432 and calls that use object notation, if the called function is not 7433 declared in a withed unit, place the elaboration constraint on the 7434 unit in the context that makes the function accessible. 7435 (Check_Elab_Subtype_Declaration): Check whether a subtype declaration 7436 imposes an elaboration constraint between two packages. 7437 74382005-02-09 Ed Schonberg <schonberg@adacore.com> 7439 7440 * sem_ch7.adb (Uninstall_Declarations): Exchange full and private 7441 views of a private type after handling its private dependents, to 7442 maintain proper stack discipline between entry and exit from the 7443 package. 7444 74452005-02-09 Cyrille Comar <comar@adacore.com> 7446 7447 * s-finimp.adb: (Finalize_List): Optimize in the no-abort case. 7448 Minor reformatting. 7449 74502005-02-09 Arnaud Charlet <charlet@adacore.com> 7451 7452 * s-tporft.adb (Register_Foreign_Thread): Initialize Task_Image[_Len] 7453 fields for foreign threads. 7454 74552005-02-09 Doug Rupp <rupp@adacore.com> 7456 7457 * s-vaflop.adb: Add pragma Warnings (Off) to eliminate infinite 7458 recursion warnings when compiled with -gnatdm. 7459 74602005-02-09 Robert Dewar <dewar@adacore.com> 7461 7462 * usage.adb: Add line for switch -gnat05 (allow Ada 2005 extensions) 7463 Slight fix to documentation of -gnaty with no parameters 7464 7465 * xr_tabls.ads: Add ??? comment for missing overall comment 7466 7467 * xsinfo.adb: Make default file name be sinfo.h, since this is what 7468 we now use by default. 7469 7470 * xsnames.adb: Adjust end of file test to look for five space followed 7471 by '#' instead of six spaces. The format of xsnames.adb was modified 7472 in the last update. 7473 7474 * a-numeri.ads: Add reference to AI-388 for greek letter pi 7475 identifier. 7476 7477 * clean.adb: Minor reformatting. 7478 7479 * gnat1drv.adb, gnatfind.adb, gnatlink.adb, gnatmem.adb, 7480 gnatname.adb: Minor reformatting 7481 Add 2005 to copyright output when utility is run 7482 7483 * csets.adb: Eliminate obsolete comment 7484 7485 * debug.adb, g-socket.ads, i-cobol.adb: Minor reformatting throughout 7486 Update comments. 7487 7488 * sem_eval.ads (Eval_Integer_Literal): Do not inline this, not useful. 7489 74902005-02-09 Sergey Rybin <rybin@adacore.com> 7491 7492 * gnat_ugn.texi: Add to the gnatpp section the paragraph describing 7493 the difference between compact and incompact layout and add the record 7494 representation clause to the example illustrating different layouts. 7495 Add the description of '-A5' gnatpp option ("align 'AT' keywords in 7496 component clauses"). 7497 74982005-02-09 Florian Villoing <villoing@adacore.com> 7499 7500 * gnat_ugn.texi: Fix typos. 7501 Use @command to display 'gcc', 'gnatbind', etc. insted of @code or 7502 @file. 7503 Make proper use of @ref, @xref and @pxref to avoid duplication of "see" 7504 in the generated documentation. 7505 75062005-02-09 Arnaud Charlet <charlet@adacore.com> 7507 7508 * gnat_ugn.texi: Remove all mentions of FSU threads, which are no 7509 longer supported. 7510 Update linker wrapper when linking with non GNU C++. 7511 75122005-02-09 Pascal Obry <obry@adacore.com> 7513 7514 * gnat_ugn.texi: 7515 Document the procedure to debug the DllMain routine on Windows. 7516 Add note about -funwind-tables and mixed Ada and C/C++ programming in 7517 ZCX mode. 7518 Document new BIND qualifer /RETURN_CODES=VMS. 7519 75202005-02-09 Ben Brosgol <brosgol@adacore.com> 7521 7522 * gnat_ugn.texi: Wordsmithing of "GNAT and Libraries" chapter 7523 Edited gnatmetric chapter 7524 75252005-02-09 Robert Dewar <dewar@adacore.com> 7526 7527 * gnat_rm.texi: 7528 Changes to document new wide wide character support 7529 For AI-285 7530 Update documentation on Normalize_Scalars and Initialize_Scalars 7531 75322005-02-09 Pascal Obry <obry@adacore.com> 7533 7534 * s-taprop-mingw.adb, s-soflin.ads: Minor reformatting. 7535 75362005-02-09 Jose Ruiz <ruiz@adacore.com> 7537 7538 * s-osinte-vxworks.ads (taskPriorityGet): Add this function (imported 7539 from the VxWorks kernel) that is needed for getting the active 7540 priority of the different tasks. 7541 7542 * s-atacco.ads, s-atacco.adb (Nothing): Remove this dummy procedure. 7543 Use a pragma Elaborate_Body in the spec file instead. 7544 Noticed by code reading. 7545 75462005-02-09 Thomas Quinot <quinot@adacore.com> 7547 7548 * exp_util.ads: Minor correction in comment. 7549 75502005-02-09 Arnaud Charlet <charlet@adacore.com> 7551 7552 * s-taprop.ads (Initialize): Update comments. Remove pragma Inline, 7553 since this procedure is now too complex to be worth inlining. 7554 75552005-02-09 Richard Henderson <rth@redhat.com> 7556 7557 * utils.c (gnat_define_builtin): Remove. 7558 (gnat_install_builtins): Use build_common_builtin_nodes. 7559 75602005-02-09 Arnaud Charlet <charlet@adacore.com> 7561 7562 * a-rbtgso.adb, a-crbtgo.ads, a-crbtgo.adb, a-crbtgk.ads, 7563 a-crbtgk.adb, a-crbltr.ads, a-coprnu.ads, a-coprnu.adb, 7564 a-coorse.ads, a-coorse.adb, a-convec.ads, a-convec.adb, 7565 a-contai.ads, a-coinve.ads, a-coinve.adb, a-cohata.ads, 7566 a-cohama.ads, a-cohama.adb, a-ciorse.ads, a-ciorse.adb, 7567 a-cihama.ads, a-cihama.adb, a-cidlli.ads, a-cidlli.adb, 7568 a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, a-cgcaso.adb, 7569 a-cgarso.ads, a-cgarso.adb, a-cdlili.ads, a-cdlili.adb, 7570 a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, a-cihase.adb, 7571 a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 7572 a-coorma.ads, a-swunha.ads, a-stunha.ads, a-ciormu.ads, 7573 a-coormu.ads, a-rbtgso.ads, a-swunha.adb, a-stunha.adb, 7574 a-cgaaso.ads, a-ciorma.adb, a-coorma.adb, a-secain.adb, 7575 a-secain.ads, a-slcain.ads, a-slcain.adb, a-shcain.ads, 7576 a-shcain.adb, a-chtgke.ads, a-chtgke.adb, a-stwiha.ads, 7577 a-stwiha.adb, a-strhas.ads, a-strhas.adb, a-chzla1.ads, 7578 a-chzla9.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads, 7579 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, 7580 a-stzbou.adb, a-stzbou.ads, a-stzfix.adb, a-stzfix.ads, 7581 a-stzhas.adb, a-stzhas.ads, a-stzmap.adb, a-stzmap.ads, 7582 a-stzsea.adb, a-stzsea.ads, a-stzsup.adb, a-stzsup.ads, 7583 a-stzunb.adb, a-stzunb.ads, a-swunau.adb, a-swunau.ads, 7584 a-szmzco.ads, a-szunau.adb, a-szunau.ads, a-szunha.adb, 7585 a-szunha.ads, a-szuzti.adb, a-szuzti.ads, a-tiunio.ads, 7586 a-wwunio.ads, a-ztcoau.adb, a-ztcoau.ads, a-ztcoio.adb, 7587 a-ztcoio.ads, a-ztcstr.adb, a-ztcstr.ads, a-ztdeau.adb, 7588 a-ztdeau.ads, a-ztdeio.adb, a-ztdeio.ads, a-ztedit.adb, 7589 a-ztedit.ads, a-ztenau.adb, a-ztenau.ads, a-ztenio.adb, 7590 a-ztenio.ads, a-ztexio.adb, a-ztexio.ads, a-ztfiio.adb, 7591 a-ztfiio.ads, a-ztflau.adb, a-ztflau.ads, a-ztflio.adb, 7592 a-ztflio.ads, a-ztgeau.adb, a-ztgeau.ads, a-ztinau.adb, 7593 a-ztinau.ads, a-ztinio.adb, a-ztinio.ads, a-ztmoau.adb, 7594 a-ztmoau.ads, a-ztmoio.adb, a-ztmoio.ads, a-zttest.adb, 7595 a-zttest.ads, a-zzunio.ads: New files. Part of new Ada 2005 7596 library. 7597 75982005-01-27 Laurent Guerby <laurent@guerby.net> 7599 7600 * Makefile.in: Fix a-intnam.ads from previous commit, 7601 add 2005 to copyright. 7602 * a-intman-rtems.ads: Renamed to... 7603 * a-intnam-rtems.ads: 7604 76052005-01-27 Laurent Guerby <laurent@guerby.net> 7606 7607 * Makefile.in: Rename GNAT RTEMS specific files. 7608 * 5rtpopsp.adb, 4rintnam.ads, 5rosinte.adb, 7609 5rosinte.ads, 5rparame.adb: Replaced by files below. 7610 * s-tpopsp-rtems.adb, a-intman-rtems.ads, s-osinte-rtems.adb, 7611 s-osinte-rtems.ads, s-parame-rtems.adb: Replace files above. 7612 76132005-01-27 Joel Sherrill <joel.sherrill@oarcorp.com> 7614 Laurent Guerby <laurent@guerby.net> 7615 7616 PR ada/19488 7617 * 5rosinte.ads: Add No_Key constant. 7618 * 5rtpopsp.adb: Initialize ATCB_Key with No_Key and fix style. 7619 * gsocket.h: Do not include <sys/socket.h> with RTEMS either. 7620 76212005-01-26 Laurent Guerby <laurent@guerby.net> 7622 7623 PR ada/19414 7624 * i-cobol.adb (Valid_Numeric): Handle zero length case. 7625 76262005-01-20 Richard Henderson <rth@redhat.com> 7627 7628 * Makefile.in (alpha-linux, LIBGNAT_TARGET_PAIRS): Use 7629 a-intnam-linux.ads and system-linux-alpha.ads. 7630 * a-intnam-linux-alpha.ads: Remove file. 7631 * s-osinte-linux-alpha.ads (SIGUNUSED, SIGSTKFLT, SIGLOST): New. 7632 * system-linux-alpha.ads: New file. 7633 76342005-01-18 Jakub Jelinek <jakub@redhat.com> 7635 7636 PR ada/13470 7637 * a-stunau.adb (Get_String): Don't return U.Reference, but Ret that is 7638 set to the new string. 7639 76402005-01-18 Toon Moene <toon@moene.indiv.nluug.nl> 7641 7642 * system-linux-ppc.ads: Set ZCX_By_Default and GCC_ZCX_Support 7643 to True. 7644 76452005-01-18 Richard Henderson <rth@redhat.com> 7646 7647 * Makefile.in (LIBGNAT_TARGET_PAIRS, TOOLS_TARGET_PAIRS, MISCLIB, 7648 THREADSLIB, GNATLIB_SHARED, PREFIX_OBJS, LIBRARY_VERSION): Specialize 7649 for alpha-linux. 7650 * s-osinte-linux-alpha.ads, a-intnam-linux-alpha.ads: New files. 7651 76522005-01-14 Andrew Pinski <pinskia@physics.uc.edu> 7653 7654 * system-darwin-ppc.ads (ZCX_By_Default): Change to True. 7655 (GCC_ZCX_Support): Likewise. 7656 76572005-01-11 Bastian Blank <waldi@debian.org> 7658 7659 * system-linux-s390.ads: Define Preallocated_Stacks. 7660 * system-linux-s390x.ads: Likewise. 7661 76622005-01-04 Arnaud Charlet <charlet@adacore.com> 7663 7664 * gnat_ugn.texi: Fix texi errors with null variables. 7665 76662005-01-03 Thomas Quinot <quinot@adacore.com> 7667 7668 * gen-soccon.c: New utility program to generate g-soccon.ads 7669 automatically. 7670 7671 * socket.c, gsocket.h: Split inclusion of system header files into a 7672 gsocket.h file separated from socket.c, to allow reuse in gen-soccon.c. 7673 7674 * g-soccon.ads, g-soccon-unixware.ads, g-soccon-tru64.ads, 7675 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 7676 g-soccon-interix.ads, g-soccon-solaris.ads, g-soccon-mingw.ads, 7677 g-soccon-vxworks.ads, g-soccon-freebsd.ads: Note that these files 7678 should not be edited by hand anymore, but should be regenerated using 7679 gen-soccon. 7680 76812005-01-03 Robert Dewar <dewar@adacore.com> 7682 Ed Schonberg <schonberg@adacore.com> 7683 Vincent Celier <celier@adacore.com> 7684 7685 * s-atacco.ads, a-direio.adb: Protect use of 'Constrained by warnings 7686 on/off, since this is an obsolescent feature, for which we now generate 7687 a warning. 7688 7689 * sem_attr.adb (Analyze_Attribute, case Constrained): Issue warning if 7690 warning mode is set and obsolescent usage of this attribute occurs. 7691 (Resolve_Access, case 'Access): Note that GNAT uses the context type to 7692 disambiguate overloaded prefixes, in accordance with AI-235. GNAT code 7693 predates, and partly motivates, the adoption of the AI. 7694 Implement new Ada 2005 attribute Mod 7695 7696 * exp_attr.adb (Expand_N_Attribute_Reference): Implement Ada 2005 7697 attribute Mod. 7698 7699 * par-ch4.adb (P_Name): In Ada 2005 mode, recognize new attribute Mod 7700 7701 * snames.h, snames.ads, snames.adb: Add entry for No_Dependence for 7702 pragma restrictions. 7703 New entry for Ada 2005 attribute Mod. 7704 7705 * par-prag.adb: 7706 Add recognition of new pragma Restrictions No_Dependence 7707 Recognize restriction No_Obsolescent_Features at parse time 7708 7709 * bcheck.adb: Add circuitry for checking for consistency of 7710 No_Dependence restrictions. 7711 7712 * lib-writ.ads, lib-writ.adb: Output new R lines for No_Dependence 7713 restrictions. 7714 7715 * restrict.ads, restrict.adb: Add subprograms to deal with 7716 No_Dependence restrictions. 7717 7718 * rtsfind.adb: Check that implicit with's do not violate No_Dependence 7719 restrictions. 7720 7721 * sem_ch3.adb, sem_ch11.adb, sem_ch13.adb, lib-xref.adb, 7722 sem_attr.adb: Add check for new restriction No_Obsolescent_Features 7723 7724 * scn.ads, prj-err.ads, prj-err.adb, ali-util.adb, gprep.adb: Add new 7725 dummy parameter to scng instantiation. 7726 Needed for new restriction No_Obsolescent_Features 7727 7728 * scn.adb: (Obsolescent_Check): New procedure 7729 Needed for new restriction No_Obsolescent_Features 7730 7731 * scng.ads, scng.adb: Always allow wide characters in Ada 2005 mode, as 7732 specified by AI-285, needed for implementation of AI-388 (adding greek 7733 pi to Ada.Numerics). 7734 Add new generic formal to scng, needed for new restriction 7735 No_Obsolescent_Features. 7736 7737 * s-rident.ads: Add new restriction No_Obsolescent_Features. 7738 7739 * ali.ads, ali.adb: Adjustments for reading new No_Dependence 7740 restrictions lines. 7741 (Scan_ALI): When finding an unexpected character on an R line, raise 7742 exception Bad_R_Line, instead of calling Fatal_Error, so that, when 7743 Ignore_Errors is True, default restrictions are set and scanning of the 7744 ALI file continues with the next line. Also, when Bad_R_Line is raised 7745 and Ignore_Errors is True, skip to the end of le line. 7746 7747 * sem_ch10.adb: Check that explicit with's do not violate 7748 No_Dependence restrictions. 7749 (Install_Withed_Unit): Add code to implement AI-377 and diagnose 7750 illegal context clauses containing child units of instance. 7751 7752 * sem_prag.adb: Processing and checking for new No_Dependence 7753 restrictions. 7754 (Analyze_Pragma, case Psect_Object): Call Check_Arg_Is_External_Name to 7755 analyze and check the External argument. 7756 7757 * a-numeri.ads: Add greek letter pi as alternative spelling of Pi 7758 77592005-01-03 Robert Dewar <dewar@adacore.com> 7760 7761 * atree.adb: Add a fifth component to entities 7762 This allows us to add 32 flags and four new fields 7763 7764 * atree.ads: Add a fifth component to entities 7765 This allows us to add 32 flags and four new fields 7766 7767 * einfo.ads, einfo.adb: Document new fields and new flags now available 7768 Add routines for printing new fields 7769 7770 * treepr.adb: Call routines to print out additional fields if present 7771 77722005-01-03 Arnaud Charlet <charlet@adacore.com> 7773 7774 * bld.ads, bld.adb, bld-io.ads, bld-io.adb, gprcmd.adb, 7775 gpr2make.ads, gpr2make.adb: Remove gpr2make, replaced by gprmake. 7776 7777 * Makefile.in: Add support to build shared Ada libraries on solaris x86 7778 Remove gpr2make, replaced by gprmake. 7779 Remove references to gnatmem and libaddr2line. 7780 Add indepsw.adb<indepsw-linux.adb to TOOLS_TARGET_PAIRS for IA64 linux. 7781 (gnatlib-shared-darwin): Add "-fno-common" to GNATLIBCFLAGS. 7782 Add support for specialized version of Ada.Numerics.Aux for Darwin: use 7783 a-numaux-darwin.ads and a-numaux-darwin.adb 7784 Enable mlib-tgt-lynxos.adb on lynxos. 7785 7786 * Make-lang.in: Remove rules for gpr2make. 7787 When generating sdefault.adb, do not call Relocate_Path 7788 on S3 for function Target_Name, as it is not a path. 7789 Remove references to gnatmem and libaddr2line. 7790 7791 * a-numaux-darwin.ads, a-numaux-darwin.adb, g-soccon-darwin.ads: New 7792 files. 7793 77942005-01-03 Samuel Tardieu <tardieu@adacore.com> 7795 7796 * checks.adb (Apply_Alignment_Check): Generate a warning if an object 7797 address is incompatible with its base type alignment constraints when 7798 this can be decided statically. 7799 78002005-01-03 Olivier Hainque <hainque@adacore.com> 7801 7802 * decl.c (compatible_signatures_p): New function. The intended purpose 7803 is to check if two function signatures for a call-site and a callee are 7804 compatible enough for the call to be valid. The underlying purpose is 7805 to check if a call to a mapped builtin is using the right interface. 7806 The current code actually does not check antyhing - this a placeholder 7807 for future refinements. 7808 (gnat_to_gnu_entity) <E_Subprogram_Call>: Add preliminary bits to handle 7809 builtin calls for convention Intrinsic. 7810 7811 * gigi.h (builtin_decl_for): Declare (new function). 7812 7813 * utils.c (gnat_install_builtins): Install the target specific builtins. 7814 (builtin_decl_for): New function, provide a dummy body for now. 7815 78162005-01-03 Geert Bosch <bosch@adacore.com> 7817 7818 * eval_fat.adb: (Eps_Model,Eps_Denorm): Remove, no longer used. 7819 (Succ): Re-implement using Scaling, Exponent and Ceiling attributes. 7820 (Pred): Implement in terms of Succ. 7821 7822 * trans.c (convert_with_check): Reimplement conversion of float to 7823 integer. 7824 78252005-01-03 Ed Schonberg <schonberg@adacore.com> 7826 Vincent Celier <celier@adacore.com> 7827 7828 * exp_aggr.adb (Packed_Array_Aggregate_Handled): The values of the 7829 bounds can be negative, and must be declared Int, not Nat. 7830 7831 * sem_elim.adb (Line_Num_Match): Correct wrong code when index in an 7832 array is checked after using the index in the array. 7833 7834 * makegpr.adb (Add_Switches): Check if there is a package for the 7835 processor. If there is no package, do not look for switches. 7836 78372005-01-03 Ed Schonberg <schonberg@adacore.com> 7838 7839 * exp_ch3.adb (Stream_Operations_OK): Predicate to determine when the 7840 generation of predefined stream operations (specs and bodies) should 7841 proceed. Under various restrictions these subprograms must not be 7842 generated. 7843 78442005-01-03 Thomas Quinot <quinot@adacore.com> 7845 7846 * exp_dist.adb: 7847 Declare subprogram index in Build_RPC_Receiver_Body, to reduce the 7848 amount of PCS-specific code in RACW stubs generation. 7849 (Copy_Specification): Set Etype on copied formal parameter entities, as 7850 this information is needed for PolyORB stubs generation. 7851 (PolyORB_Support.Build_Subprogram_Receiving_Stubs): Remove unused 7852 variable Dynamic_Async. 7853 (Build_Subprogram_Receiving_Stubs): Make PCS-specific 7854 (Build_RPC_Receiver_Specification): Make generic again, as recent 7855 changes have allowed RPC receivers to have the same profile for both 7856 variants of the PCS. 7857 Reorganise RPC receiver generation to reduce differences between the 7858 structure of GARLIC and PolyORB RPC receivers. 7859 (Add_Receiving_Stubs_To_Declarations): Make this subprogram 7860 PCS-specific. 7861 Simplify elaboration code for RCI packages. 7862 7863 * s-parint.ads, s-parint.adb, rtsfind.ads: Reorganise RPC receiver 7864 generation to reduce differences between the structure of GARLIC and 7865 PolyORB RPC receivers. 7866 7867 * s-stratt.adb: Fix typo in comment. 7868 78692005-01-03 Thomas Quinot <quinot@adacore.com> 7870 7871 * exp_ch7.ads (Make_Final_Call): Rewrite comment (was incorrectly 7872 copied from Make_Init_Call). 7873 7874 * exp_strm.adb (Build_Mutable_Record_Read_Procedure): Do component 7875 reads and assignments on a temporary variable declared with appropriate 7876 discriminants. 7877 78782005-01-03 Robert Dewar <dewar@adacore.com> 7879 7880 * i-c.adb (To_C): Raise CE if string is null and Append_Null 7881 78822005-01-03 Robert Dewar <dewar@adacore.com> 7883 7884 * i-cstrin.adb (Update): Do not append a null in form called with a 7885 String. This avoids unintended behavior. 7886 78872005-01-03 Arnaud Charlet <charlet@adacore.com> 7888 7889 PR ada/17527 7890 * init.c: Fix warnings on Free BSD section. 7891 78922005-01-03 Arnaud Charlet <charlet@adacore.com> 7893 7894 PR ada/16949 7895 * sinfo.ads: Fix obsolete reference to xsinfo.spt (replaced by 7896 xsinfo.adb). 7897 78982005-01-03 Vincent Celier <celier@adacore.com> 7899 7900 * make.adb (Collect_Arguments_And_Compile): Do not attempt to build 7901 libraries when Unique_Compile is True (-u switch). 7902 (Gnatmake): ditto. 7903 79042005-01-03 Robert Dewar <dewar@adacore.com> 7905 7906 * namet.adb (Get_Decoded_Name_With_Brackets): Fix case of not allowing 7907 upper case letter or underscore after W, as allowed by spec. 7908 79092005-01-03 Arnaud Charlet <charlet@adacore.com> 7910 7911 * s-osinte-darwin.ads, s-osinte-darwin.adb: Clean up 7912 darwin port by using proper type definitions from header files. 7913 Use SIGTERM instead of SIGABRT for SIGADAABORT. 7914 79152005-01-03 Robert Dewar <dewar@adacore.com> 7916 7917 * par.adb: Enhance error message handling for configuration file 7918 pragmas. 7919 79202005-01-03 Robert Dewar <dewar@adacore.com> 7921 7922 * s-arit64.adb (Double_Divide): Put back changes that got accidentally 7923 removed during the previous update (test properly for case of dividing 7924 largest negative number by -1, which generates overflow). 7925 79262005-01-03 Ed Schonberg <schonberg@adacore.com> 7927 Sergey Rybin <rybin@adacore.com> 7928 7929 * sem_ch12.adb (Analyze_Package_Instantiation): Create a separate node 7930 to use as the defining identifier for a formal package. 7931 (Remove_Parent): If the instance takes place within (an instance of) 7932 a sibling, preserve private declarations of common parent. 7933 79342005-01-03 Ed Schonberg <schonberg@adacore.com> 7935 7936 * sem_ch4.adb (Has_Fixed_Op): New predicate in Check_Arithmetic_Pair, 7937 to determine whether one of the operands is a fixed-point type for 7938 which a user-defined multiplication or division operation might be 7939 defined. 7940 7941 * sem_res.adb (Valid_Conversion): The legality rules for conversions 7942 of access types are symmetric in Ada 2005: either designated type can 7943 be unconstrained. 7944 79452005-01-03 Vincent Celier <celier@adacore.com> 7946 7947 * s-fileio.adb (Temp_File_Record): Change length of string component 7948 Name from L_tmpnam + 1 to max_path_len + 1. 7949 79502005-01-03 Arnaud Charlet <charlet@adacore.com> 7951 7952 * s-tasini.ads, s-tasini.adb (Undefer_Abortion): Handle case of 7953 Self_Id.Deferral_Level = 0. 7954 (Do_Pending_Action): Move this function to the spec. 7955 7956 * s-tasren.adb (Selective_Wait [Terminate_Selected]): Call 7957 Do_Pending_Action explicitely when needed, in case we're using 7958 No_Abort restrictions. 7959 7960 * s-tassta.adb (Create_Task): If Abort is not allowed, reset the 7961 deferral level since it will not get changed by the generated code. 7962 Keeping a default value of 1 would prevent some operations (e.g. 7963 select or delay) to proceed successfully. 7964 79652005-01-03 Ben Brosgol <brosgol@adacore.com> 7966 Robert Dewar <dewar@adacore.com> 7967 Cyrille Comar <comar@adacore.com> 7968 7969 * ug_words, gnat_ugn.texi: Added alpha-ivms transitioning section to 7970 porting guide chapter (vms version). 7971 Revised doc title (removed "for native platforms") and subtitle. 7972 Add discussion on warning flag for obsolescent features. First we 7973 note that it applies to obsolete GNAT features, which was previously 7974 omitted. Second we contrast the behavior with that of the new 7975 Ada 2005 AI-368 restriction No_Obsolescent_Features. 7976 Preliminary rewriting of GNAT & libraries chapter in order to take 7977 into account default project locations & new project manager 7978 capabilities. 7979 79802005-01-03 Robert Dewar <dewar@adacore.com> 7981 7982 * cstand.adb (Create_Operators): Clean up format and documentation of 7983 unary and binary operator result tables. No change in code, just 7984 reformatting and addition of comments. 7985 7986 * errout.ads, gnatfind.adb, s-maccod.ads, sem.adb, 7987 sem_ch2.adb: Minor reformatting 7988 7989 * atree.ads, elists.ads, lib.ads, namet.ads, nlists.ads, repinfo.ads, 7990 sinput.ads, stringt.ads, uintp.ads, urealp.ads: Minor clarification to 7991 comments for Tree_Read and Tree_Write. 7992 79932005-01-03 Pascal Obry <obry@adacore.com> 7994 7995 * exp_attr.ads: Minor reformatting. 7996 79972005-01-03 Romain Berrendonner <berrendo@adacore.com> 7998 7999 * comperr.adb (Compiler_Abort): Add specialized message for GAP 8000 versions. 8001 80022005-01-03 Ed Schonberg <schonberg@adacore.com> 8003 8004 * exp_pakd.adb (Create_Packed_Array_Type): Add a guard to check 8005 whether the ancestor type is private, as may be the case with nested 8006 instantiations. 8007 8008 8009 8010Copyright (C) 2005 Free Software Foundation, Inc. 8011 8012Copying and distribution of this file, with or without modification, 8013are permitted in any medium without royalty provided the copyright 8014notice and this notice are preserved. 8015