12007-12-27 Samuel Tardieu <sam@rfc1149.net> 2 3 PR ada/34553 4 * adaint.c (__gnat_open_new_temp, __gnat_tmp_name): Use mkstemp() 5 instead of mktemp() or tmpnam() on NetBSD. 6 72007-12-23 Eric Botcazou <ebotcazou@adacore.com> 8 9 * trans.c (call_to_gnu): Make the temporary for non-addressable 10 In parameters passed by reference. 11 (addressable_p): Return true for STRING_CST and CALL_EXPR. 12 132007-12-19 Robert Dewar <dewar@adacore.com> 14 15 * g-expect-vms.adb, g-expect.adb, s-poosiz.adb: 16 Add pragma Warnings (Off) for unassigned IN OUT arguments 17 18 * sem_warn.adb (Output_Reference): Suppress messages for internal names 19 (Check_References): Extensive changes to tune up warnings 20 (Output_Non_Modifed_In_Out_Warnings): Changes to tune up warnings 21 (Has_Pragma_Unmodifed_Check_Spec): New function 22 (Check_References): Implement pragma Unmodified 23 (Warn_On_Unassigned_Out_Parameter): Implement pragma Unmodified 24 25 * par-prag.adb: Dummy entry for pragma Unmodified 26 27 * sem_prag.adb: Implement pragma Unmodified 28 29 * einfo.ads, einfo.adb: (Has_Pragma_Unmodified): New flag 30 (Proc_Next_Component_Or_Discriminant): Fix typo. 31 Update comments. 32 33 * sem_util.adb (Note_Possible_Modification): Add processinng for pragma 34 Unmodified. 35 (Reset_Analyzed_Flags): Use Traverse_Proc instead of Traverse_Func, 36 because the former already takes care of discarding the result. 37 (Mark_Coextensions): Remove ununused initial value from Is_Dynamic. 38 Add comment. 39 40 * snames.h, snames.ads, snames.adb: Add entry for pragma Unmodified 41 422007-12-19 Eric Botcazou <ebotcazou@adacore.com> 43 44 * targparm.adb, targparm.ads, system.ads, system-darwin-ppc.ads, 45 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, 46 system-hpux-ia64.ads, system-vxworks-arm.ads, system-darwin-x86.ads, 47 system-vms_64.ads, system-vms-ia64.ads, system-linux-ia64.ads, 48 system-freebsd-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 49 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 50 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 51 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 52 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 53 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads 54 (Dynamic_Trampolines_Used): Delete. 55 56 * system-lynxos-x86.ads, system-lynxos-ppc.ads: Ditto. 57 Turn on stack probing mechanism on LynxOS. 58 592007-12-19 Bob Duff <duff@adacore.com> 60 61 * atree.ads, atree.adb (Traverse_Func): Walk Field2 last, and eliminate 62 the resulting tail recursion by hand. This prevents running out of 63 memory on deeply nested concatenations, since Field2 is where the left 64 operand of concatenations is stored. 65 Fix bug (was returning OK_Orig in some cases). Fix return subtype to 66 clarify that it can only return OK or Abandon. 67 68 * sem_res.adb (Resolve_Op_Concat): Replace the recursion on the left 69 operand by iteration, in order to avoid running out of memory on 70 deeply-nested concatenations. Use the Parent pointer to get back up the 71 tree. 72 (Resolve_Op_Concat_Arg, Resolve_Op_Concat_First, 73 Resolve_Op_Concat_Rest): New procedures split out of 74 Resolve_Op_Concat, so the iterative algorithm in Resolve_Op_Concat is 75 clearer. 76 77 * checks.adb (Remove_Checks): Use Traverse_Proc instead of 78 Traverse_Func, because the former already takes care of discarding the 79 result. 80 81 * errout.adb (First_Node): Use Traverse_Proc instead of Traverse_Func, 82 because the former already takes care of discarding the result. 83 (Remove_Warning_Messages): Use appropriate subtype for Status and 84 Discard 85 862007-12-19 Ed Schonberg <schonberg@adacore.com> 87 88 * exp_aggr.adb (Not_OK_For_Backend): A component of a private type with 89 discriminants forces expansion of the aggregate into assignments. 90 (Init_Record_Controller): If the type of the aggregate is untagged and 91 is not inherently limited, the record controller is not limited either. 92 932007-12-19 Robert Dewar <dewar@adacore.com> 94 95 * exp_attr.adb (Expand_N_Attribute_Reference, case Size): Fix error in 96 handling compile time known size of record or array (case of front end 97 layout active, e.g. in GNAAMP). 98 992007-12-19 Javier Miranda <miranda@adacore.com> 100 101 * exp_ch3.adb (Expand_N_Object_Declaration): Complete the circuitry 102 that forces the construction of static dispatch tables in case of 103 record subtypes. 104 1052007-12-19 Robert Dewar <dewar@adacore.com> 106 107 * exp_ch9.adb (Null_Statements): Moved to library level 108 (Trivial_Accept_OK): New function 109 (Expand_Accept_Declaration): Use Trivial_Accept_OK 110 (Expand_N_Accept_Statement): Use Trivial_Accept_OK 111 1122007-12-19 Robert Dewar <dewar@adacore.com> 113 114 * exp_pakd.adb (Expand_Bit_Packed_Element_Set): Fix packed array type 115 in complex case where array is Volatile. 116 1172007-12-19 Ed Schonberg <schonberg@adacore.com> 118 119 * freeze.adb (Freeze_Record_Type, Check_Current_Instance): Implement 120 properly the Ada2005 rules concerning when the current instance of a 121 record type is aliased. 122 1232007-12-19 Ed Schonberg <schonberg@adacore.com> 124 125 * par-ch3.adb (P_Record_Declaration): Guard against cascaded errors in 126 mangled declaration 127 (P_Type_Declaration): Diagnose misuse of "abstract" in untagged record 128 declarations. 129 (P_Variant_Part): Cleaner patch for parenthesized discriminant 130 1312007-12-19 Vincent Celier <celier@adacore.com> 132 133 * prj-attr.adb (Package_Node_Id_Of): Returns Unknown_Package when 134 package is not known 135 136 * prj-attr.ads (Unknown_Package): New constant 137 Do not crash when an unknown package is in several projects 138 139 * prj-dect.adb (Parse_Package_Declaration): Mark an unknown package as 140 ignored 141 142 * prj-nmsc.adb (Check): Remove obsolete code related to no longer 143 existing package Language_Processing. 144 1452007-12-19 Ed Schonberg <schonberg@adacore.com> 146 Gary Dismukes <dismukes@adacore.com> 147 Samuel Tardieu <sam@rfc1149.net> 148 149 PR ada/15803, ada/15805 150 * sem_ch6.adb, sem_ch3.adb (Constrain_Access): In Ada2005, diagnose 151 illegal access subtypes when there is a constrained partial view. 152 (Check_For_Premature_Usage): New procedure inside 153 Access_Subprogram_Declaration for checking that an access-to-subprogram 154 type doesn't reference its own name within any formal parameters or 155 result type (including within nested anonymous access types). 156 (Access_Subprogram_Declaration): Add call to Check_For_Premature_Usage. 157 (Sem_Ch3.Analyze_Object_Declaration, Sem_ch6.Process_Formals): if the 158 context is an access_to_variable, the expression cannot be an 159 access_to_constant. 160 1612007-12-19 Bob Duff <duff@adacore.com> 162 163 * sem_ch4.adb (Analyze_Concatenation_Rest): New procedure. 164 (Analyze_Concatenation): Use iteration instead of recursion in order 165 to avoid running out of stack space for deeply nested concatenations. 166 1672007-12-19 Ed Schonberg <schonberg@adacore.com> 168 Gary Dismukes <dismukes@adacore.com> 169 170 * sem_ch8.adb (Analyze_Subprogram_Renaming): Diagnose illegal renamings 171 whose renamed entity is a subprogram that requires overriding. 172 (Premature_Usage): Test for the case of N_Full_Type_Declaration when 173 issuing an error for premature usage and issue a message that says 174 'type' rather than 'object'. 175 1762007-12-19 Gary Dismukes <dismukes@adacore.com> 177 178 PR ada/34149 179 * sem_disp.adb (Check_Dispatching_Call): Augment existing test for 180 presence of a statically tagged operand (Present (Static_Tag)) with 181 test for Indeterm_Ancestor_Call when determining whether to propagate 182 the static tag to tag-indeterminate operands (which forces dispatching 183 on such calls). 184 (Check_Controlling_Formals): Ada2005, access parameters can have 185 defaults. 186 (Add_Dispatching_Operation, Check_Operation_From_Private_View): do 187 not insert subprogram in list of primitive operations if already there. 188 1892007-12-19 Tristan Gingold <gingold@adacore.com> 190 191 * utils.c (create_var_decl_1): call rest_of_decl_compilation only for 192 global variable. 193 1942007-12-19 Thomas Quinot <quinot@adacore.com> 195 196 Part of PR ada/33688 197 * gen-soccon.c: Add constant IP_PKTINFO to allow getting ancillary 198 datagram info on Linux. 199 2002007-12-19 Vincent Celier <celier@adacore.com> 201 202 * makegpr.adb (Check_Compilation_Needed): Normalize C_Source_Path so 203 that the source path name is always found in the dependencies. 204 2052007-12-19 Robert Dewar <dewar@adacore.com> 206 207 * gnat_rm.texi, gnat_ugn.texi: Update documentation of -gnatw.o 208 Fix name of Wide_Wide_Latin_1/9 file names 209 Add documentation for Ada.Exceptions.Last_Chance_Handler (a-elchha.ads) 210 Add missing documentation for Ada.Wide_[Wide_]Characters.Unicode 211 Add missing documentation for Ada.Command_Line.Response_File 212 Update list of warning letters for Warnings pragma 213 Add documentation for pragma Unmodified 214 2152007-12-19 Samuel Tardieu <sam@rfc1149.net> 216 217 * Makefile.in: Add s-tasinf.ad[bs] substitutions for sh4-linux target. 218 2192007-12-17 Arnaud Charlet <charlet@adacore.com> 220 221 * s-vxwork-alpha.ads: Removed, no longer used. 222 2232007-12-15 Jakub Jelinek <jakub@redhat.com> 224 225 * Make-lang.in (gnat1, gnatbind): Pass ALL_CFLAGS on the link line. 226 2272007-12-13 Samuel Tardieu <sam@rfc1149.net> 228 229 PR ada/34360 230 * Makefile.in: Change two occurrences of mlib-tgt.adb by correct name 231 mlib-tgt-specific.adb. 232 2332007-12-13 Bob Duff <duff@adacore.com> 234 235 * trans.c (Attribute_to_gnu): Check for violations of the 236 No_Implicit_Dynamic_Code restriction. This checking used to be done in 237 the front end, but is moved here so we can make it more accurate. 238 2392007-12-13 Pascal Obry <obry@adacore.com> 240 241 * adaint.c (__gnat_pthread_setaffinity_np): New routine. A dummy 242 version is provided for older GNU/Linux distribution not 243 supporting thread affinity sets. 244 245 * s-osinte-linux.ads (SC_NPROCESSORS_ONLN): New constant for sysconf 246 call. 247 (bit_field): New packed boolean type used by cpu_set_t. 248 (cpu_set_t): New type corresponding to the C type with 249 the same name. Note that on the Ada side we use a bit 250 field array for the affinity mask. There is not need 251 for the C macro for setting individual bit. 252 (pthread_setaffinity_np): New imported routine. 253 254 * s-taprop-linux.adb (Enter_Task): Check that the CPU affinity mask is 255 no null. 256 (Create_Task): Set the processor affinity mask if information 257 is present. 258 259 * s-tasinf-linux.ads, s-tasinf-linux.adb: New files. 260 2612007-12-13 Robert Dewar <dewar@adacore.com> 262 263 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 264 s-osinte-freebsd.ads, s-osinte-lynxos.ads, s-osinte-tru64.ads, 265 s-osinte-mingw.ads, s-osinte-aix.ads, s-osinte-hpux-dce.ads, 266 s-osinte-irix.ads, s-osinte-solaris.ads, s-intman-vms.adb, 267 s-osinte-vms.ads, s-osinte-vxworks6.ads, s-osinte-vxworks.ads, 268 s-auxdec.ads, s-auxdec-vms_64.ads, s-osinte-darwin.ads, 269 s-taprop-vms.adb, s-interr-sigaction.adb, s-osinte-linux-hppa.ads, 270 i-vxwork-x86.ads, s-tpopde-vms.ads: Add missing pragma Convention C 271 for subprogram pointers. 272 273 * g-ctrl_c.adb: New file. 274 275 * g-ctrl_c.ads (Install_Handler): New body. 276 277 * freeze.adb (Freeze_Subprogram): Use new flag Has_Pragma_Inline_Always 278 instead of obsolete function Is_Always_Inlined. 279 (Freeze_Entity): check for tagged type in imported C subprogram 280 (Freeze_Entity): check for 8-bit boolean in imported C subprogram 281 (Freeze_Entity): check for convention Ada subprogram pointer in 282 imported C subprogram. 283 (Freeze_Fixed_Point_Type): In the case of a base type where the low 284 bound would be chopped off and go from negative to zero, force 285 Loval_Excl_EP to be the same as Loval_Incl_EP (the included lower 286 bound) so that the size computation for the base type will take 287 negative values into account. 288 2892007-12-13 Eric Botcazou <ebotcazou@adacore.com> 290 Bob Duff <duff@adacore.com> 291 Tristan Gingold <gingold@adacore.com> 292 293 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 294 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 295 system-aix.ads, system-vxworks-sparcv9.ads, system-solaris-x86.ads, 296 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 297 system-vxworks-m68k.ads, system-linux-x86.ads, system-vxworks-mips.ads, 298 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 299 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 300 system-vxworks-arm.ads, system-darwin-x86.ads, system.ads, 301 system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 302 system-linux-ppc.ads, system-linux-hppa.ads, system-hpux-ia64.ads, 303 system-vms-ia64.ads (Stack_Check_Limits): New target parameter. 304 (Always_Compatible_Rep): New flag to control trampolines globally. 305 (Dynamic_Trampolines_Used): New flag for implementing the 306 No_Implicit_Dynamic_Code restriction more correctly (not yet used, 307 and not yet set correctly for some targets). 308 309 * s-taprop-vxworks.adb: Use stack limit method of stack checking. 310 Simply indirectly call s-stchop when a task is created. 311 312 * ali.ads: 313 New flag added: Stack_Check_Switch_Set which is set when '-fstack-check' 314 appears as an argument (entries A) in an ALI file. 315 316 * fe.h (Stack_Check_Limits): Declare new target parameter. 317 (Check_Implicit_Dynamic_Code_Allowed): New procedure. 318 319 * init.c: Declare __gnat_set_stack_limit_hook for VxWorks kernel RTS. 320 This variable is declared in C to be sure not subject to elaboration 321 code. 322 (__gnat_map_signal, VxWorks): In kernel mode, map SIGILL to 323 Storage_Error. 324 325 * targparm.ads, targparm.adb (Stack_Check_Limits): New parameter. 326 (Always_Compatible_Rep, Dynamic_Trampolines_Used): New parameters. 327 328 * s-stchop.ads: Add comments. 329 330 * s-stchop-vxworks.adb: Package almost fully rewritten to use stack 331 limit method of stack checking. 332 333 * s-stchop-limit.ads: New file. 334 3352007-12-13 Robert Dewar <dewar@adacore.com> 336 337 * sem_ch5.adb, s-taskin.adb, a-ciorma.adb, a-coorma.adb, a-cohama.adb, 338 a-cihama.adb, g-awk.adb, 339 s-inmaop-posix.adb: Update handling of assigned value/unreferenced 340 warnings 341 342 * exp_smem.adb: Update handling of assigned value/unreferenced warnings 343 344 * sem.adb: Update handling of assigned value/unreferenced warnings 345 346 * a-exexpr-gcc.adb: Add a pragma warnings off for boolean return 347 348 * lib-xref.ads: Improve documentation for k xref type 349 350 * lib-xref.adb: 351 Update handling of assigned value/unreferenced warnings 352 (Generate_Reference): Warning for reference to entity for which a 353 pragma Unreferenced has been given should be unconditional. 354 If the entity is a discriminal, mark the original 355 discriminant as referenced. 356 357 * sem_warn.ads, sem_warn.adb 358 (Check_One_Unit): Test Renamed_In_Spec to control giving warning for 359 no entities referenced in package 360 (Check_One_Unit): Don't give message about no entities referenced in 361 a package if a pragma Unreferenced has appeared. 362 Handle new warning flag -gnatw.a/-gnatw.A 363 Update handling of assigned value/unreferenced warnings 364 365 * atree.h: Add flags up to Flag247 366 (Flag231): New macro. 367 3682007-12-13 Jose Ruiz <ruiz@adacore.com> 369 370 * adaint.h: (__gnat_plist_init): Not defined for RTX. 371 372 * initialize.c (__gnat_initialize): Do not call __gnat_plist_init for 373 RTX systems. 374 375 * Makefile.in: Add new files s-tasinf-linux.ads and s-tasinf-linux.adb. 376 (LIBGNAT_TARGET_PAIRS, MISCLIB, THREADSLIB, 377 EXTRA_GNATRTL_NONTASKING_OBJS, EXTRA_GNATRTL_TASKING_OBJS, 378 GNATLIB_SHARED for RTX run time): Use the versions required by RTX. 379 380 * mingw32.h: 381 Do not define GNAT_UNICODE_SUPPORT for RTX since it is not supported. 382 383 * sysdep.c (winflush_function for RTX): Procedure that does nothing 384 since we only have problems with Windows 95/98, which are not 385 supported by RTX. 386 (__gnat_ttyname): Return the empty string on Nucleus, just as 387 done on vxworks. 388 3892007-12-13 Robert Dewar <dewar@adacore.com> 390 391 * a-textio.adb, a-textio.ads: 392 Extensive changes to private part for wide character encoding 393 394 * a-witeio.adb, a-witeio.ads, a-ztexio.ads, a-ztexio.adb 395 (Look_Ahead): Fix mishandling of encoded sequences 396 Move declaration of Wch_Con to private part (should not be visible) 397 398 * ali.adb (Scan_ALI): Set default encoding method to brackets instead of 399 UTF-8. Probably this is never used, but if it is, brackets is 400 clearly correct. 401 402 * bindgen.adb (Get_WC_Encoding): New procedure to properly handle 403 setting wide character encoding for no main program case and when 404 encoding is specified using -W? 405 Initialize stack limit of environment task if stack limit method of 406 stack checking is enabled. 407 (Gen_Adainit_Ada): Use Get_WC_Encoding to output encoding method 408 (Gen_Adainit_C): Use Get_WC_Encoding to output encoding method 409 (Get_Main_Unit_Name): New function. 410 (Gen_Adainit_Ada): Add call to main program for .NET when needed. 411 (Gen_Output_File): Set Bind_Main_Program to True for .NET 412 413 * bindusg.adb: Add line for -Wx switch 414 415 * s-wchcon.adb, s-wchcon.ads: (Is_Start_Of_Encoding): New function 416 Add comments 417 Add new useful constant WC_Longest_Sequences 418 419 * switch-b.adb: Clean up handling of -Wx switch 420 For -gnatWx, set Wide_Character_Encoding_Method_Specified 421 422 * switch-c.adb: -gnatg activates warning on assertion errors 423 For -gnatWx, set Wide_Character_Encoding_Method_Specified 424 425 * s-wchcon.adb: (Is_Start_Of_Encoding): New function 426 4272007-12-13 Robert Dewar <dewar@adacore.com> 428 Ed Schonberg <schonberg@adacore.com> 429 430 * a-ngcoty.adb: New pragma Fast_Math 431 432 * opt.adb: New pragma Fast_Math 433 434 * par-prag.adb: 435 Add Implemented_By_Entry to the list of pragmas which do not require any 436 special processing. 437 (Favor_Top_Level): New pragma. 438 New pragma Fast_Math 439 440 * exp_attr.adb: Move Wide_[Wide_]Image routines to Exp_Imgv 441 (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, 442 Expand_Allocator_Expression): Take into account VM_Target 443 (Expand_Attribute, case 'Identity): Handle properly the case where 444 the prefix is a task interface. 445 New pragma Fast_Math 446 447 * par.adb (Next_Token_Is): New function 448 (P_Pragma): Add Skipping parameter 449 (U_Left_Paren): New procedure 450 (U_Right_Paren): New procedure 451 New pragma Fast_Math 452 453 * par-ch10.adb (P_Subunit): Unconditional msg for missing ) after 454 subunit 455 New pragma Fast_Math 456 457 * sem_prag.adb: Add significance value to table Sig_Flag for pragma 458 Implemented_By_Entry. 459 (Analyze_Pragma): Add case for Ada 2005 pragma Implemented_By_Entry. 460 (Set_Inline_Flags): Do not try to link pragma Inline onto chain of rep 461 items, since it can apply to more than one overloadable entity. Set 462 new flag Has_Pragma_Inline_Always for Inline_Always case. 463 (Analyze_Pragma, case Complex_Representation): Improve error message. 464 (Analyze_Pragma, case Assert): When assertions are disabled build the 465 rewritten code with Sloc of expression rather than pragma, so new 466 warning about failing is not deleted. 467 (Analyze_Pragma): Allow pragma Preelaborable_Initialization to apply to 468 protected types and update error message to reflect that. Test whether 469 the protected type is allowed for the pragma (an error is issued if the 470 type has any entries, or components that do not have preelaborable 471 initialization). 472 New pragma Fast_Math 473 (Analyze_Pragma, case No_Return): Handle generic instance 474 475 * snames.h, snames.ads, snames.adb: 476 Add new predefined name for interface primitive _Disp_Requeue. 477 New pragma Fast_Math 478 479 * a-tags.ads, a-tags.adb: New calling sequence for 480 String_To_Wide_[Wide_]String 481 (Secondary_Tag): New subprogram. 482 483 * exp_imgv.ads, exp_imgv.adb: Move Wide_[Wide_]Image routines here 484 from Exp_Attr 485 New calling sequence for String_To_Wide_[Wide_]String 486 (Expand_Image_Attribute): Major rewrite. New calling sequence avoids 487 the use of the secondary stack for image routines. 488 489 * a-except-2005.adb, s-wchstw.ads, s-wchstw.adb, s-wwdenu.adb: New 490 calling sequence for String_To_Wide_[Wide_]String 491 492 * par-ch3.adb (P_Declarative_Items): Recognize use of Overriding in 493 Ada 95 mode 494 (P_Unknown_Discriminant_Part_Opt): Handle missing parens gracefully 495 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List 496 497 * par-ch6.adb (P_Subprogram): Recognize use of Overriding in Ada 95 mode 498 (P_Formal_Part): Use Skipping parameter in P_Pragma call 499 to improve error recovery 500 501 * par-util.adb (Next_Token_Is): New function 502 (Signal_Bad_Attribute): Use new Namet.Is_Bad_Spelling_Of function 503 504 * par-ch2.adb (Skip_Pragma_Semicolon): Do not resynchronize to 505 semicolon if missing 506 (P_Pragma): Implement new Skipping parameter 507 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List 508 Fix location of flag for unrecognized pragma message 509 510 * par-tchk.adb (U_Left_Paren): New procedure 511 (U_Right_Paren): New procedure 512 5132007-12-13 Geert Bosch <bosch@adacore.com> 514 515 * a-tifiio.adb: 516 (Put_Int64): Use Put_Digit to advance Pos. This fixes a case where 517 the second or later Scaled_Divide would omit leading zeroes, 518 resulting in too few digits produced and a Layout_Error as result. 519 (Put): Initialize Pos. 520 5212007-12-13 Robert Dewar <dewar@adacore.com> 522 523 atree.ads, atree.adb (Flag231..Flag247): New functions 524 (Set_Flag231..Set_Flag247): New procedures 525 (Basic_Set_Convention): Rename Set_Convention to be 526 Basic_Set_Convention 527 (Nkind_In): New functions 528 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List 529 530 * exp_ch6.adb (Expand_Call): Use new flag Has_Pragma_Inline_Always 531 instead 532 of obsolete function Is_Always_Inlined 533 (Register_Predefined_DT_Entry): Initialize slots of the second 534 secondary dispatch table. 535 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List 536 (Expand_N_Function_Call): Remove special provision for stack checking. 537 538 * exp_util.ads, exp_util.adb (Is_Predefined_Dispatching_Operation): 539 Include _Disp_Requeue in the list of predefined operations. 540 (Find_Interface_ADT): Modified to fulfill the new specification. 541 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List 542 543 * par-ch4.adb, nlists.ads, nlists.adb: 544 Remove Atree.Delete_Tree/Delete_Node and Nlist.Delete_List 545 546 * sinfo.ads, sinfo.adb: (Nkind_In): New functions 547 Fix location of flag for unrecognized pragma message 548 549 * sem_ch7.adb: Use Nkind_In 550 5512007-12-13 Vincent Celier <celier@adacore.com> 552 553 * opt.ads: 554 Indicate what flags are used by the Project Manager, gprbuild and 555 gprclean. 556 (Opt.Follow_Links_For_Dirs): New flag 557 (Warn_On_Assertion_Failure): New flag 558 (Wide_Character_Encoding_Method_Specified): New flag 559 (Suppress_All_Inlining): New switch set by -fno-inline 560 (Real_VMS_Target): New flag 561 New pragma Fast_Math 562 5632007-12-13 Robert Dewar <dewar@adacore.com> 564 565 * back_end.adb: Recognize -fno-inline 566 5672007-12-13 Robert Dewar <dewar@adacore.com> 568 569 * checks.adb: Fix optimization problem with short-circuited form 570 5712007-12-13 Bob Duff <duff@adacore.com> 572 573 * clean.adb (Usage): Add line for -aP 574 (Check_Version_And_Help): Change Check_Version_And_Help to be generic, 575 with a parameter "procedure Usage", instead of passing a pointer to a 576 procedure. This is to eliminate trampolines (since the Usage procedure 577 is often nested in a main procedure, and it would be inconvenient to 578 unnest it). 579 580 * g-comlin.adb (For_Each_Simple_Switch): Change For_Each_Simple_Switch 581 to be generic, with a parameter "procedure Callback (...)", instead of 582 passing a pointer to a procedure. This is to eliminate trampolines 583 (since the Callback procedure is usually nested). 584 585 * gnatfind.adb, switch.adb, switch.ads, gnatlink.adb, gnatls.adb, 586 gnatname.adb, gnatxref.adb, gnatchop.adb, gprep.adb, gnatbind.adb 587 (Check_Version_And_Help): Change Check_Version_And_Help to be generic. 588 589 * g-pehage.adb (Compute_Edges_And_Vertices, Build_Identical_Key_Sets): 590 Use the generic Heap_Sort_G instead of Heap_Sort_A. 591 5922007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 593 594 * einfo.ads, einfo.adb: Flag 232 is now Implemented_By_Entry. 595 (Implemented_By_Entry, Set_Implemented_By_Entry): New routines. 596 (Write_Entry_Flags): Add an entry for Implemented_By_Entry. 597 (Renamed_In_Spec): New flag 598 (Has_Pragma_Inline_Always): New flag 599 Add missing doc for pragma Obsolescent_Warning 600 Add missing doc for 17 additional unused flags (230-247) 601 (Is_Derived_Type): Remove condition "not Is_Generic_Type". 602 Alphabetize with clauses. 603 Separate Is_Thunk and Has_Thunks flags 604 (Write_Entity_Flags): Add forgotten entry for Has_Thunks 605 (Related_Interface): Renamed to Related_Type. 606 (Has_Thunks/Set_Has_Thunks): Subprograms of new attribute. 607 (Set_Is_Flag): Restrict the assertion. 608 6092007-12-13 Vincent Celier <celier@adacore.com> 610 611 * errout.adb (Output_Source_Line): Do not keep a trailing space after 612 the source line number if the source line is empty. 613 6142007-12-13 Geert Bosch <bosch@adacore.com> 615 616 * eval_fat.adb (Decompose_Int): Handle argument of zero. 617 (Compose): Remove special casing of zero. 618 (Exponent): Likewise. 619 (Fraction): Likewise. 620 (Machine): Likewise. 621 (Decompose): Update comment. 622 6232007-12-13 Ed Schonberg <schonberg@adacore.com> 624 625 * exp_aggr.adb (Build_Record_Aggr_Code): If there is an aggregate for a 626 limited ancestor part, initialize controllers of enclosing record 627 before expanding ancestor aggregate. 628 (Gen_Assign): If a component of the aggregate is box-initialized, add 629 code to call Initialize if the component is controlled, and explicit 630 assignment of null if the component is an access type. 631 632 Handle properly aggregates for limited types that appear in object 633 declarations when the aggregate contains controlled values such as 634 protected types. 635 When expanding limited aggregates into individual components, do not 636 call Adjust on controlled components that are limited. 637 6382007-12-13 Ed Schonberg <schonberg@adacore.com> 639 640 * expander.adb: Take into account N_Subprogram_Renaming_Declaration 641 6422007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 643 644 * exp_ch3.adb (Predefined_Primitive_Bodies): Generate the body of 645 predefined primitive _Disp_Requeue. 646 (Make_Predefined_Primitive_Specs): Create the spec for predefined 647 primitive _Disp_Requeue. 648 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): Set the 649 type of formal Renamed_Eq to Entity_Id (instead of Node_Id). 650 (Make_Predefined_Primitive_Specs): Spec of "=" needed if the parent is 651 an interface type. In case of limited interfaces we now declare all the 652 predefined primitives associated with synchronized interfaces as 653 abstract. 654 (Predef_Spec_Or_Body): For interface types generate abstract subprogram 655 declarations. 656 (Predefined_Primitive_Bodies): Add body of "=" if the parent of the 657 tagged type is an interface type and there is no user-defined equality 658 function. 659 Add also bodies of predefined primitives associated with synchronized 660 interfaces. 661 (Freeze_Record_Type): Do not build bodies of predefined primitives of 662 interface types because they are now defined abstract. 663 Add missing documentation. 664 (Expand_Record_Controller): Update occurrence of Related_Interface 665 to Related_Type. 666 (Build_Offset_To_Top_Functions): Do nothing in case of VM. 667 (Expand_N_Object_Declaration): Take into account VM_Target when handling 668 class wide interface object declaration. 669 (Expand_Previous_Access_Type): Do not create a duplicate master entity 670 if the access type already has one. 671 (Expand_N_Object_Declaration): Defend against attempt to validity check 672 generic types. Noticed for -gnatVcf specified with previous errors. 673 6742007-12-13 Arnaud Charlet <charlet@adacore.com> 675 676 * exp_ch4.adb (Expand_N_Attribute_Reference, Displace_Allocator_Pointer, 677 Expand_Allocator_Expression): Take into account VM_Target 678 679 * exp_ch5.adb (Expand_N_Extended_Return_Statement): Do not use 680 secondary stack when VM_Target /= No_VM 681 6822007-12-13 Javier Miranda <miranda@adacore.com> 683 Ed Schonberg <schonberg@adacore.com> 684 685 * exp_ch7.adb (Expand_N_Package_Body): Replace occurrence of attribute 686 Is_Complation_Unit by Is_Library_Level_Entity in the code 687 that decides if the static dispatch tables need to be built. 688 (Wrap_Transient_Declaration): Do not generate a finalization call if 689 this is a renaming declaration and the renamed object is a component 690 of a controlled type. 691 6922007-12-13 Gary Dismukes <dismukes@adacore.com> 693 694 * exp_ch8.ads, exp_ch8.adb (Expand_N_Subprogram_Renaming_Declaration): 695 In the case where the renamed subprogram is a dereference, call 696 Force_Evaluation on the prefix. 697 6982007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 699 Ed Schonberg <schonberg@adacore.com> 700 701 * exp_ch9.adb (Expand_N_Asynchronous_Select, 702 Expand_N_Conditional_Entry_Call, Expand_N_Timed_Entry_Call): Code and 703 comment reformatting. 704 (Set_Privals): Inherit aliased flag from formal. From code reading. 705 (Build_Simple_Entry_Call): Out parameters of an access type are passed 706 by copy and initialized from the actual. This includes entry parameters. 707 (Expand_N_Requeue_Statement): Reimplement in order to handle both Ada 95 708 and Ada 2005 models of requeue. 709 (Null_Statements): Still connsider do-end block null if it contains 710 Unreferenced and Warnings pragmas. 711 (Expand_N_Accept_Statement): Do not optimize away null do end if 712 dispatching policy is other than defaulted. 713 (Expand_N_Timed_Entry_Call): When the triggering statement is a 714 dispatching call, manually analyze the delay statement. 715 (Find_Parameter_Type): Move subprogram to Sem_Util. 716 7172007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 718 Javier Miranda <miranda@adacore.com> 719 720 * exp_disp.ads, exp_disp.adb (Default_Prim_Op_Position): Primitive 721 _Disp_Requeue occupies dispatch table slot number 15. Move 722 _Disp_Timed_Select to slot 16. 723 (Make_Disp_Requeue_Body, Make_Disp_Requeue_Spec): New routines which 724 generate the spec and body of _Disp_Reqeueue. 725 (Make_DT): Build and initialize the second dispatch table. 726 Handle initialization of RC_Offset when the parent 727 is a private type with variable size components. 728 (Make_Secondary_DT): Complete documentation. Add support to 729 initialize the second dispatch table. 730 (Make_Tags): Generate the tag of the second dispatch table. 731 (Register_Primitive): Add support to register primitives in the 732 second dispatch table. 733 7342007-12-13 Pascal Obry <obry@adacore.com> 735 736 * expect.c (__gnat_kill) [WIN32]: Implement the SIGINT signal on 737 Windows. This signal is used by gnatmake to kill child processes for 738 example. 739 7402007-12-13 Javier Miranda <miranda@adacore.com> 741 742 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing 743 support for generic dispatching constructor calls in which we need to 744 locate the tag of a secondary dispatch table associated with an 745 interface type to properly dispatch the call. 746 (Expand_N_Attribute_Reference [case Address], 747 Expand_Dispatching_Constructor_Call, Expand_Unc_Deallocation): Fix 748 handling of VM targets. 749 7502007-12-13 Robert Dewar <dewar@adacore.com> 751 Ed Schonberg <schonberg@adacore.com> 752 753 * exp_prag.adb (Expand_Pragma_Assert): Recognize new warning flag for 754 assert fail 755 756 * ug_words: Add entries for -gnatw.a -gnatw.A 757 758 * sem_res.adb (Set_String_Literal_Subtype): If the context of the 759 literal is a subtype with non-static constraints, use the base type of 760 the context as the base of the string subtype, to prevent type 761 mismatches in gigi. 762 (Resolve_Actuals): If the actual is an entity name, generate a 763 reference before the actual is resolved and expanded, to prevent 764 spurious warnings on formals of enclosing protected operations. 765 (Analyze_Overloaded_Selected_Component): If type of prefix if 766 class-wide, use visible components of base type. 767 (Resolve_Selected_Component): Ditto. 768 (Resolve_Short_Circuit): Detect case of pragma Assert argument 769 evaluating to False, and issue warning message. 770 771 * usage.adb: Add lines for -gnatw.a and -gnatw.A 772 7732007-12-13 Emmanuel Briot <briot@adacore.com> 774 775 * g-calend.ads (No_Time): New constant, to represent an uninitialized 776 time value 777 778 * g-catiio.ads, g-catiio.adb (Value): Added support for more date 779 formats. 780 (Month_Name_To_Number): New subprogram 781 782 * g-dirope.adb (Get_Current_Dir): On windows, normalize the drive 783 letter to upper-case. 784 7852007-12-13 Robert Dewar <dewar@adacore.com> 786 Ed Schonberg <schonberg@adacore.com> 787 788 * gnat1drv.adb (Gnat1drv): Properly set new flag Opt.Real_VMS_Target 789 790 * layout.adb (Resolve_Attribute, case 'Access): If designated type of 791 context is a limited view, use non-limited view when available. If the 792 non-limited view is an unconstrained array, this enforces consistency 793 requirements in 3.10.2 (27). 794 (Layout_Type): For an access type whose designated type is a limited 795 view, examine its declaration to determine if it is an unconstrained 796 array, and size the access type accordingly. 797 (Layout_Type): Do not force 32-bits for convention c subprogram 798 pointers in -gnatdm mode, only if real vms target. 799 800 * sem_attr.adb (Analyze_Access_Attribute): Use new flag 801 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined 802 (Analyze_Access_Attribute,Attribute_Address): Remove checks for 803 violations of the No_Implicit_Dynamic_Code restriction. 804 (Resolve_Attribute, case 'Access): If designated type of context is a 805 limited view, use non-limited view when available. If the non-limited 806 view is an unconstrained array, this enforces consistency requirements 807 in 3.10.2 (27). 808 (Layout_Type): For an access type whose designated type is a limited 809 view, examine its declaration to determine if it is an unconstrained 810 array, and size the access type accordingly. 811 8122007-12-13 Vincent Celier <celier@adacore.com> 813 814 * gnatcmd.adb (GNATCmd): Do not issue -d= switch to gnatmetric when 815 object directory of main project does not exist. 816 On VMS, correctly set then environment variable for the source 817 directories. 818 8192007-12-13 Vasiliy Fofanov <fofanov@adacore.com> 820 821 * g-regist.ads, g-regist.adb (Set_Value): new parameter Expand; when 822 set to True this procedure will create the value of type REG_EXPAND_SZ. 823 It was only possible to create REG_SZ values before. 824 8252007-12-13 Robert Dewar <dewar@adacore.com> 826 827 * g-spchge.ads, g-spchge.adb, g-u3spch.adb, g-u3spch.ads, 828 g-wispch.adb, g-wispch.ads, g-zspche.adb, g-zspche.ads, 829 namet-sp.adb, namet-sp.ads: New files. 830 831 * g-speche.adb: Use generic routine in g-spchge 832 833 * s-wchcnv.ads, s-wchcnv.adb: 834 Minor code cleanup (make formal type consistent with spec) 835 836 * namet.adb: Update comments. 837 838 * par-endh.adb (Evaluate_End_Entry): Use new 839 Namet.Sp.Is_Bad_Spelling_Of function 840 841 * par-load.adb (Load): Use new Namet.Sp.Is_Bad_Spelling_Of function 842 843 * sem_aggr.adb (Resolve_Record_Aggregate): If a component of an 844 ancestor is an access type initialized with a box, set its type 845 explicitly, for use in subsequent expansion. 846 (Check_Misspelled_Component): Use new Namet.Sp.Is_Bad_Spelling_Of 847 function 848 8492007-12-13 Robert Dewar <dewar@adacore.com> 850 851 * g-spipat.adb (Break): Fix accessibility error (vsn taking not null 852 access Vstring) 853 8542007-12-13 Robert Dewar <dewar@adacore.com> 855 856 * inline.adb (Back_End_Cannot_Inline): Use new flag 857 Has_Pragma_Inline_Always instead of obsolete function Is_Always_Inlined 858 859 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Use new flag 860 Has_Pragma_Inline_Always instead. 861 of obsolete function Is_Always_Inlined 862 (Build_Body_To_Inline): Same change 863 (Cannot_Inline): Same change 864 Do not give warning on exception raise in No_Return function 865 866 * sem_ch13.adb (Analyze_Record_Representation_Clause): If an inherited 867 component has two inconsistent component clauses in the same record 868 representation clause, favor the message that complains about 869 duplication rather than inconsistency. 870 Update comments. 871 (Record_Representation_Clause): Do not warn on missing component 872 clauses for inherited components of a type extension. 873 (Rep_Item_Too_Late): Do not attempt to link pragma into rep chain for 874 an overloadable item if it is a pragma that can apply to multiple 875 overloadable entities (e.g. Inline) because a pragma cannot be on 876 more than one chain at a time. 877 (Validate_Unchecked_Conversion): Add code to warn on unchecked 878 conversion where one of the operands is Ada.Calendar.Time. 879 (Analyze_Attribute_Definition_Clause): Fix typo in error message. 880 For now, ignore Component_Size clause on VM targets, as done for 881 pragma Pack. 882 8832007-12-13 Emmanuel Briot <briot@adacore.com> 884 Vincent Celier <celier@adacore.com> 885 886 * prj.ads, prj.adb (Is_A_Language): Now takes a Name_Id instead of a 887 string 888 (Must_Check_Configuration, Default_Language_Is_Ada): new flags in 889 prj.ads 890 (Hash): Move instantiation of System.HTable.Hash from spec to body 891 (prj-nmsc.adb): Optimize calls to Name_Find when on case sensitive 892 systems, since we do not need to recompute the Name_Id for the canonical 893 file name. 894 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id 895 as a parameter. This parameter is in fact always "ada" in all calls, and 896 we were doing 160560 extra calls to Name_Find to convert it to Name_Ada 897 while loading a project with 40000 files 898 899 * prj-attr.adb: Fix name of attribute Dependency_Driver 900 Change the kind of indexing for attribute Root 901 902 * prj-dect.adb (Parse_Declarative_Items): Allow redeclarations of 903 variables already declared, in case constructions. 904 905 * prj-env.adb (Initialize): Reset Current_Source_Path_File and 906 Current_Object_Path_File to No_Path. 907 908 * prj-ext.adb (Initialize_Project_Path): In multi language mode, use 909 ADA_PROJECT_PATH if value of GPR_PROJECT_PATH is empty. 910 911 * prj-makr.adb: new parameter Current_Dir 912 913 * prj-nmsc.ads, prj-nmsc.adb (Find_Explicit_Sources): Do not look for 914 Ada sources when language is not Ada. 915 Change Opt.Follow_Links to Opt.Follow_Links_For_Files. 916 (Find_Excluded_Sources, Find_Explicit_Sources): new subprograms 917 (Must_Check_Configuration, Default_Language_Is_Ada): new flags. 918 (Locate_Directory): Always resolve links when computing Canonical_Path 919 (Look_For_Sources): Make sure that Name_Buffer contains the file name 920 in Source_Files before checking for the presence of a directory 921 separator. 922 Optimize calls to Name_Find when on case sensitive systems. 923 (Body_Suffix_Id_Of, Spec_Suffix_Id_Of): new version that takes a name_id 924 as a parameter. 925 (Prj.Nmsc.Check): new parameter Current_Dir 926 (Check_Ada_Naming_Schemes): Restrictions on suffixes are relaxed. They 927 cannot be empty and the spec suffix cannot be the same as the body or 928 separate suffix. 929 (Get_Unit): When a file name can be of several unit kinds (spec, body or 930 subunit), always consider the longest suffix. 931 (Check_Configuration): Do not issue an error if there is no compiler 932 for a language. Just issue a warning and ignore the sources for the 933 language. 934 (Check_Library_Attributes): Only check Library_Dir if Library_Name is 935 not empty. 936 (Check_Naming_Schemes.Maked_Unit): Only output message if high verbosity 937 (Unit_Exceptions): New hash table 938 (Check_Naming_Schemes): Check if a file that could be a unit because of 939 the naming scheme is not in fact a source because there is an exception 940 for the unit. 941 (Look_For_Sources): Put the unit exceptions in hash table 942 Unit_Exceptions 943 (Get_Unit_Exceptions): Give initial value No_Source to local variable 944 Other_Part to avoid exception when code is compiled with validity 945 checking. 946 (Get_Sources_From_File): Check that there is no directory information 947 in the file names. 948 (Look_For_Sources): Check that there is no directory information in the 949 list of file names in Source_Files. 950 (Look_For_Sources): In multi-language mode, do not allow exception file 951 names that are excluded. 952 (Excluded_Sources_Htable): New hash table 953 (Search_Directories.Check_File): New procedure to simplify 954 Search_Directories. 955 (Search_Directories): Do not consider excluded sources 956 (Look_For_Sources): Populate Excluded_Sources_Htable before calling 957 Search_Directories. 958 (Get_Exceptions): Set component Lang_Kind of Source_Data 959 (Get_Unit_Exceptions): Ditto 960 (Search_Directories): Ditto 961 962 * prj-pars.adb: new parameter Current_Dir 963 964 * prj-part.ads, prj-part.adb: 965 Change Opt.Follow_Links to Opt.Follow_Links_For_Files. 966 (Opt.Follow_Links_For_Dirs): New flag 967 (Project_Path_Name_Of): Cache information returned by this routine as 968 Locate_Regular_File is a costly routine. The code to output a log 969 information and the effective call to Locate_Regular_File is now 970 factorized into a routine (code clean-up). 971 (Parse, Parse_Single_Project): new parameter Current_Dir 972 When main project file cannot be found, indicate in the error 973 message the project path that was used to do the search. 974 975 * prj-proc.ads, prj-proc.adb (Opt.Follow_Links_For_Dirs): New flag 976 (Prj.Proc.Process*): new parameter Current_Dir 977 978 * switch-m.adb: Change Opt.Follow_Links to Opt.Follow_Links_For_Files 979 9802007-12-13 Bob Duff <duff@adacore.com> 981 982 * restrict.ads, restrict.adb (Check_Implicit_Dynamic_Code_Allowed): New 983 procedure to be called from the back end to check the 984 No_Implicit_Dynamic_Code restriction. 985 9862007-12-13 Arnaud Charlet <charlet@adacore.com> 987 988 * rtsfind.adb (Check_CRT): Take into account RTE_Available_Call 989 Fixes another case where RTE_Available_Call was ignored instead of being 990 taken into account. 991 (Load_Fail): Ditto. 992 993 * rtsfind.ads: Add new entries. 994 9952007-12-13 Robert Dewar <dewar@adacore.com> 996 997 * g-byorma.adb, g-byorma.ads, g-decstr.adb, g-decstr.ads, 998 g-deutst.ads, g-encstr.adb, g-encstr.ads, g-enutst.ads: New files. 999 1000 * scn.adb: Implement BOM recognition 1001 10022007-12-13 Thomas Quinot <quinot@adacore.com> 1003 Ed Schonberg <schonberg@adacore.com> 1004 1005 * sem_ch10.adb (Check_Private_Child_Unit): A non-private library level 1006 subprogram body that acts as its own spec may not have a non-private 1007 WITH clause on a private sibling. 1008 (Build_Unit_Name): If the parent unit in the name in a with_clause on a 1009 child unit is a renaming, create an implicit with_clause on that 1010 parent, and not on the unit it renames, to prevent visibility errors 1011 in the current unit. 1012 10132007-12-13 Ed Schonberg <schonberg@adacore.com> 1014 1015 * sem_ch12.adb (Instantiate_Formal_Subprogram): In the subprogram 1016 renaming declaration, use the Slocs of the formal parameters from the 1017 declaration of the formal subprogram when creating the formal parameter 1018 entities in the renaming declaration. 1019 (Analyze_Formal_Type_Declaration): Change the placement of the error 1020 message concerning illegal known discriminants. It is now posted on the 1021 type rather than on the first discriminant. This change ensures early 1022 error report. 1023 (Freeze_Subprogram_Body): If the generic subprogram is nested within 1024 the package body that contains the instance, do not generate an 1025 out-of-place freeze node for the enclosing package. 1026 (Collect_Previous_Instantiations): Ignore internal instantiations 1027 generated for formal packages. 1028 (Validate_Derived_Type_Instance): Add a check that when a formal 1029 derived type is Known_To_Have_Preelab_Init then the actual type must 1030 have preelaborable initialization, and issue an error when this 1031 condition is violated. 1032 10332007-12-13 Robert Dewar <dewar@adacore.com> 1034 1035 * s-imenne.adb, s-imenne.ads: New files. 1036 1037 * s-imgboo.adb, s-imgboo.ads, s-imgcha.adb, s-imgcha.ads, s-imgdec.adb, 1038 s-imgdec.ads, s-imgenu.ads, s-imgint.adb, s-imgint.ads, s-imglld.adb, 1039 s-imglld.ads, s-imglli.adb, s-imglli.ads, s-imgllu.adb, s-imgllu.ads, 1040 s-imgrea.adb, s-imgrea.ads, s-imguns.adb, s-imguns.ads, s-imgwch.adb, 1041 s-imgwch.ads: New calling sequence for Image routines to avoid sec 1042 stack usage. 1043 10442007-12-13 Javier Miranda <miranda@adacore.com> 1045 Ed Schonberg <schonberg@adacore.com> 1046 1047 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Avoid 1048 generation of spurious error if parent is an interface type; caused 1049 because predefined primitive bodies will be generated later by 1050 Freeze_Record_Type. 1051 (Process_Subtype): The subtype inherits the Known_To_Have_Preelab_Init 1052 flag. 1053 (Derive_Subprograms): Handle derivations of predefined primitives 1054 after all the user-defined primitives to ensure that they are 1055 found in proper order in instantiations. 1056 (Add_Interface_Tag_Components, Inherit_Components): Update occurrences 1057 of Related_Interface to Related_Type. 1058 (Record_Type_Declaration): Minor reordering of calls to decorate the 1059 Tag component because the entity must have set its Ekind attribute 1060 before setting its Is_Tag attribute. 1061 (Analyze_Subtype_Declaration): In the case of subtypes with 1062 Private_Kind, inherit Known_To_Have_Preelab_Init from the parent. 1063 10642007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 1065 Ed Schonberg <schonberg@adacore.com> 1066 1067 * sem_ch4.adb (Analyze_Selected_Component): Include the requeue 1068 statement to the list of contexts where a selected component with a 1069 concurrent tagged type prefix should yield a primitive operation. 1070 (Find_Primitive_Operation): Handle case of class-wide types. 1071 (Analyze_Overloaded_Selected_Component): If type of prefix is 1072 class-wide, use visible components of base type. 1073 (Resolve_Selected_Component): Ditto. 1074 (Try_Primitive_Operation, Collect_Generic_Type_Ops): If the type is a 1075 formal of a generic subprogram. find candidate interpretations by 1076 scanning the list of generic formal declarations.: 1077 (Process_Implicit_Dereference_Prefix): If the prefix has an incomplete 1078 type from a limited_with_clause, and the full view is available, use it 1079 for subsequent semantic checks. 1080 (Check_Misspelled_Selector): Use Namet.Sp.Is_Bad_Spelling_Of function 1081 (Find_Primitive_Operation): New function. 1082 (Analyze_Overloaded_Selected_Component): insert explicit dereference 1083 only once if several interpretations of the prefix yield an access type. 1084 (Try_Object_Operation): Code and comment cleanup. 1085 (Analyze_Selected_Component): Reorder local variables. Minot comment and 1086 code reformatting. When the type of the prefix is tagged concurrent, a 1087 correct interpretation might be available in the primitive and 1088 class-wide operations of the type. 1089 10902007-12-13 Robert Dewar <dewar@adacore.com> 1091 Ed Schonberg <schonberg@adacore.com> 1092 1093 * sem_ch8.adb (Analyze_Subprogram_Renaming): Special error message for 1094 renaming entry as subprogram using rename-as-body if subprogram spec 1095 frozen. 1096 (Use_One_Type): The clause is legal on an access type whose designated 1097 type has a limited view. 1098 (Find_Direct_Name): Use Namet.Sp.Is_Bad_Spelling_Of function 1099 (Find_Expanded_Name): Use Namet.Sp.Is_Bad_Spelling_Of function 1100 (Analyze_Renamed_Primitive_Operation): new procedure to determine the 1101 operation denoted by a selected component. 1102 (Analyze_Renamed_Entry): Resolve the prefix of the entry name, because 1103 it can be an expression, possibly overloaded, that returns a task or 1104 an access to one. 1105 11062007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 1107 Gary Dismukes <dismukes@adacore.com> 1108 1109 * sem_ch9.adb (Analyze_Requeue): Add a local flag to capture whether a 1110 requeue statement is dispatching. Do not emit an error when the name is 1111 not an entry and the context is a dispatching select. Add code to 1112 perform subtype conformance between the formals of the current entry 1113 and those of the target interface primitive. 1114 (Analyze_Asynchronous_Select, Analyze_Conditional_Entry_Call, Analyze_ 1115 Timed_Entry_Call): Analyze the triggering statement as the first step of 1116 the processing. If this is a dispatching select, postpone the analysis 1117 of all select statements until the Expander transforms the select. This 1118 approach avoids generating duplicate identifiers after the Expander has 1119 replicated some of the select statements. In case the Expander is 1120 disabled, perform regular analysis. 1121 (Check_Triggering_Statement): New routine. 1122 (Analyze_Requeue): Exclude any interpretations that are not entries when 1123 checking overloaded names in a requeue. Also test type conformance for 1124 matching interpretations rather than requiring subtype conformance at 1125 that point to conform with the RM's resolution rule for requeues. 1126 11272007-12-13 Ed Schonberg <schonberg@adacore.com> 1128 1129 * sem_disp.adb (Check_Dispatching_Call): If an actual in a call to an 1130 inherited operation is a defaulted tag-indeterminate call, and there is 1131 a statically tagged actual, use the static tag as a controlling actual 1132 for the defaulted actual. 1133 11342007-12-13 Geert Bosch <bosch@adacore.com> 1135 1136 * sem_eval.adb (Eval_Real_Literal): N_Constant_Declaration is a static 1137 context, so do not call Check_Non_Static_Context. 1138 11392007-12-13 Hristian Kirtchev <kirtchev@adacore.com> 1140 1141 * sem_type.adb (Function_Interp_Has_Abstract_Op): Add guard to check 1142 whether formal E is an entity which may have parameters. 1143 11442007-12-13 Bob Duff <duff@adacore.com> 1145 Javier Miranda <miranda@adacore.com> 1146 Robert Dewar <dewar@adacore.com> 1147 1148 * sem_util.ads, sem_util.adb (Is_Concurrent_Interface): New routine. 1149 (Set_Convention): New procedure to set the Convention flag, and in 1150 addition make sure the Favor_Top_Level flag is kept in sync (all 1151 foreign-language conventions require Favor_Top_Level = True). 1152 (Collect_Abstract_Interfaces): Update occurrences of Related_Interface 1153 to Related_Type. 1154 (Collect_Interfaces_Info): Minor update to handle the two secondary 1155 dispatch tables. Update occurrence of Related_Interface to Related_Type. 1156 (Generate_Parent_Ref): Add parameter to specify entity to check 1157 (Is_Preelaborable_Expression): Allow the name of a discriminant to 1158 initialize a component of a type with preelaborable initialization. 1159 This includes the case of a discriminal used in such a context. 1160 (Is_Dependent_Component_Of_Mutable_Object): Take into account the 1161 latest Ada 2005 rules about renaming and 'Access of 1162 discriminant-dependent components. 1163 (Check_Nested_Access): Add handling when there are no enclosing 1164 subprograms (e.g. case of a package body). 1165 (Find_Parameter_Type): Factor routine from several other compiler files. 1166 Remove routine from Find_Overridden_Synchronized_Primitive. 1167 11682007-12-13 Thomas Quinot <quinot@adacore.com> 1169 1170 * sinput.adb (Get_Source_File_Index): Add assertion to guard against 1171 an invalid access to an uninitialized slot in the 1172 Source_File_Index_Table. 1173 11742007-12-13 Thomas Quinot <quinot@adacore.com> 1175 1176 * sinput-l.adb (Load_File): Disable style checks when preprocessing. 1177 11782007-12-13 Bob Duff <duff@adacore.com> 1179 1180 * s-soflin.ads: Apply new pragma Favor_Top_Level to all 1181 access-to-subprogram types in this package. 1182 11832007-12-13 Olivier Hainque <hainque@adacore.com> 1184 1185 * s-stausa.ads (Stack_Analyzer): Remove First_Is_Topmost, redundant 1186 with Stack_Grows_Down in System.Parameters. Rename Array_Address into 1187 Stack_Overlay_Address and document that we are using an internal 1188 abstraction. 1189 (Byte_Size, Unsigned_32_Size): Remove, now useless. 1190 (Pattern_Type, Bytes_Per_Pattern): New subtype and constant, to be used 1191 consistently throughout the various implementation pieces. 1192 1193 * s-stausa.adb (Stack_Slots): New type, abstraction for the stack 1194 overlay we are using to fill the stack area with patterns. 1195 (Top_Slot_Index_In, Bottom_Slot_Index_In): Operations on Stack_Slots. 1196 (Push_Index_Step_For, Pop_Index_Step_For): Likewise. 1197 (Fill_Stack, Compute_Result): Use the Stack_Slots abstraction. 1198 11992007-12-13 Robert Dewar <dewar@adacore.com> 1200 1201 * s-stoele.adb ("mod"): mod negative value raises Constraint_Error 1202 12032007-12-13 Arnaud Charlet <charlet@adacore.com> 1204 1205 * s-tassta.adb: 1206 (Create_Task): Take into account tasks created by foreign threads. 1207 Code clean up: use constants instead of hard coded values. 1208 12092007-12-13 Robert Dewar <dewar@adacore.com> 1210 1211 * styleg.adb (Check_Comment): More liberal rules for comment placement 1212 12132007-12-13 Olivier Hainque <hainque@adacore.com> 1214 1215 * tb-alvms.c (struct tb_entry_t, __gnat_backtrace): Revert back to use 1216 of Procedure Value instead of Frame Pointer as the invocation 1217 identifier associated with the instruction pointer in each traceback 1218 entry. 1219 1220 * g-trasym-vms-alpha.adb (Traceback_Entry, PV_For, FP_For, 1221 TB_Entry_For): Revert back to use of Procedure Value instead of Frame 1222 Pointer as the invocation identifier passed to tbk$symbolize. 1223 1224 * s-traent-vms.ads, s-traent-vms.adb 1225 (Traceback_Entry, PV_For, FP_For, TB_Entry_For): Revert back to use of 1226 Procedure Value instead of Frame Pointer as the invocation identifier 1227 passed to tbk$symbolize. 1228 12292007-12-13 Robert Dewar <dewar@adacore.com> 1230 1231 * tbuild.ads, tbuild.adb: 1232 Fix location of flag for unrecognized pragma message 1233 12342007-12-13 Robert Dewar <dewar@adacore.com> 1235 1236 * treepr.ads, treepr.adb: (pl): implement use of positive value 1237 shorthands 1238 12392007-12-13 Robert Dewar <dewar@adacore.com> 1240 1241 * xeinfo.adb: Remove warnings 1242 * xnmake.adb: Remove warnings 1243 * xsinfo.adb: Remove warnings 1244 * xtreeprs.adb: Remove warnings 1245 * xsnames.adb: Remove warnings 1246 1247 * a-ngcoar.adb: Fix typo. 1248 * s-interr.adb: Minor reformatting 1249 * env.c: Minor reformatting. 1250 * g-bytswa.adb: Minor reformatting. 1251 * g-rannum.ads: Minor documentation improvements 1252 * s-tasinf-mingw.adb: Minor header fix 1253 * a-clrefi.adb: Minor reformatting 1254 * g-sttsne.ads: Minor documentation improvement 1255 * g-sttsne-locking.ads: Minor documentation improvement 1256 * g-soliop-solaris.ads: Minor documentation improvement 1257 * g-soliop-mingw.ads: Minor documentation improvement 1258 * g-soliop.ads: Minor documentation improvement 1259 * exp_aggr.ads: Minor reformatting 1260 * debug.adb: Add documentation for the gprbuild debug flags 1261 * exp_ch2.adb: Use Nkind_In to simplify code throughout 1262 * exp_pakd.adb: Minor reformatting 1263 1264 * g-altive.ads, g-alleve.adb: Remove assertions. 1265 Add comment about minor differences between targets regarding 1266 floating-point operations. 1267 1268 * g-thread.adb: Remove pragma unreferenced. 1269 * lib.ads: Minor reformatting 1270 * par-ch9.adb: Minor reformatting of error messages 1271 * sem_case.adb: Minor reformatting 1272 * s-fileio.adb: Minor reformattinng 1273 * s-vmexta.ads: Minor typo 1274 * vxaddr2line.adb: 1275 Take into account 'Success' value as per new GNAT warning. 1276 12772007-12-13 Vincent Celier <celier@adacore.com> 1278 1279 * a-direct.adb (Create_Path): Always take '/' as a directory separator, 1280 even on Windows 1281 12822007-12-13 Robert Dewar <dewar@adacore.com> 1283 Bob Duff <duff@adacore.com> 1284 1285 * gnat_ugn.texi: Dcoument new rules for style check comment alignment 1286 Document that suffixes may be terminations of each others 1287 Add doc for -gnatw.a and -gnatw.A 1288 Document gnatbind -Wx switch 1289 Document BOM recognition 1290 Document pragma Implemented_By_Entry. 1291 Document new units. 1292 1293 * gnat_rm.texi: (Favor_Top_Level): Document new pragma. 1294 Add doc for pragma Unreferenced suppressing no entities referenced msg 1295 Add documentation of GNAT.Directory_Operations.Iteration 1296 Add documentation of GNAT.Random_Numbers 1297 Add documentation for pragma Shared. 1298 Correct documentation for Bit_Order 1299 Add documentation for the Pool_Address attribute. 1300 Fix and improve documentation of pragma machine_attribute. 1301 New pragma Fast_Math 1302 Document BOM recognition 1303 1304 * vms_data.ads: Add entries for -gnatw.a -gnatw.A 1305 Add /Wide_Character_Encoding for binder 1306 Add qualifier for the new gnatpp option --no-separate-loop-then 1307 13082007-12-13 Matthew Heaney <heaney@adacore.com> 1309 1310 * a-cohase.ads, a-cihama.ads, a-cihase.ads, a-cohama.ads: Document 1311 which generic formal operations are called for each operation. 1312 13132007-12-13 Olivier Hainque <hainque@adacore.com> 1314 1315 * tb-gcc.c (uw_data_t, trace_callback): Only define if not GCC-SJLJ eh. 1316 (__gnat_backtrace): Early return 0 if using GCC-SJLJ eh. 1317 13182007-12-13 Emmanuel Briot <briot@adacore.com> 1319 1320 * s-os_lib.ads, s-os_lib.adb (Normalize_Pathname): Do not compute 1321 Reference_Dir unless we actually need it. 1322 13232007-12-13 Vasiliy Fofanov <fofanov@adacore.com> 1324 Tristan Gingold <gingold@adacore.com> 1325 1326 * g-socthi-vms.ads (Fd_Set_Access): make it 32-bit. 1327 1328 * s-osprim-vms.adb, 1329 a-calend-vms.adb: Remove pragma warning off and add pragma 1330 unreferenced. 1331 13322007-12-13 Robert Dewar <dewar@adacore.com> 1333 1334 * impunit.adb: Add entries for missing units 1335 1336 * Makefile.rtl: Add new run-time units. 1337 1338 * Make-lang.in: Update dependencies. 1339 13402007-12-13 Bob Duff <duff@adacore.com> 1341 1342 * itypes.ads, itypes.adb (Create_Itype): For access-to-subprogram 1343 types, set Can_Use_Internal_Rep appropriately, based on 1344 Always_Compatible_Rep_On_Target. 1345 13462007-12-13 Gary Dismukes <dismukes@adacore.com> 1347 Arnaud Charlet <charlet@adacore.com> 1348 1349 * make.adb (Scan_Make_Arg): Add test for -aamp_target switch, passing 1350 it to the front end and setting the aamp_target environment variable 1351 to the switch's argument to ensure that gnaampbind and gnaamplink will 1352 take the specified library into account. 1353 (Make): Only set Check_Object_Consistency to False for JVM, not for CIL 1354 target, since the CIL compiler supports an "object" file (.il files). 1355 13562007-12-13 Vincent Celier <celier@adacore.com> 1357 1358 * symbols-processing-vms-ia64.adb (Process.Skip_Half): New procedure 1359 (Process.H): Remove variable. Replace Read_Half (H) with Skip_Half. 1360 13612007-12-13 Geert Bosch <bosch@adacore.com> 1362 1363 * s-parame-vxworks.adb: 1364 Update comments to reflect usage of this package by Nucleus. 1365 13662007-12-13 Arnaud Charlet <charlet@adacore.com> 1367 1368 * i-vxwork.ads: Kill new warning on Convention C, since changing the 1369 spec would break code. 1370 1371 * i-forbla-unimplemented.ads, vx_stack_info.c: New files. 1372 1373 * system-vxworks-alpha.ads: Removed. 1374 13752007-12-10 Eric Botcazou <ebotcazou@adacore.com> 1376 1377 * ada-tree.h (TYPE_RETURNS_BY_TARGET_PTR_P): Move around. 1378 13792007-12-09 Samuel Tardieu <sam@rfc1149.net> 1380 1381 PR ada/34366 1382 * sem_ch3.adb (Designates_T): New function. 1383 (Mentions_T): Factor reusable part of the logic into Designates_T. 1384 Consider non-access parameters and access and non-access result. 1385 (Check_Anonymous_Access_Components): Set ekind of anonymous access to 1386 E_Subprogram_Type to E_Anonymous_Access_Subprogram_Type. 1387 1388 * einfo.ads: Update comment for E_Anonymous_Access_Subprogram_Type. 1389 13902007-12-07 Ludovic Brenta <ludovic@ludovic-brenta.org> 1391 1392 PR ada/34361 1393 * mlib-tgt.adb, mlib-tgt.ads: Fix comments at the top to reflect 1394 the new implementation of target-specific calls. 1395 13962007-12-07 Olivier Hainque <hainque@adacore.com> 1397 1398 * decl.c (gnat_to_gnu_entity) <case E_Access_Type>: When computing 1399 the designated full view, only follow a second level Full_View link 1400 for Non_Limited_Views of from_limited_with references. 1401 14022007-12-07 Samuel Tardieu <sam@rfc1149.net> 1403 1404 PR ada/15805 1405 * sem_ch6.adb (Process_Formals): Prevent an access type formal 1406 to be initialized with an access to constant object. 1407 1408 * sem_ch3.adb (Analyze_Object_Declaration): Signal an error 1409 when an access to constant is used to initialize an access 1410 value. 1411 1412 PR ada/21346 1413 * a-direct.adb (Compose): Containing_Directory can be an empty string. 1414 14152007-12-07 Olivier Hainque <hainque@adacore.com> 1416 1417 PR ada/34173 1418 * decl.c (gnat_to_gnu_entity) <case E_Array_Type>: When setting 1419 the alignment on the GCC XUA array type, set TYPE_USER_ALIGN if 1420 this is from an alignment clause on the GNAT entity. 1421 * utils.c (create_field_decl): Rewrite the computation of DECL_ALIGN 1422 to distinguish the case where we set it from the type's alignment. 1423 When so, propagate TYPE_USER_ALIGN into DECL_USER_ALIGN to indicate 1424 whether this alignment was set from an explicit alignment clause. 1425 14262007-12-06 Eric Botcazou <ebotcazou@adacore.com> 1427 1428 * decl.c (make_packable_type): Revert last change. 1429 (gnat_to_gnu_field): Avoid setting size and position multiple times. 1430 * utils.c (finish_record_type): Retrieve the real name of the type. 1431 14322007-12-05 Eric Botcazou <ebotcazou@adacore.com> 1433 1434 * trans.c (lvalue_required_p): Take base node directly instead 1435 of its parent. Rename second parameter to 'gnu_type'. 1436 <N_Indexed_Component>: Return 0 if the node isn't the prefix. 1437 <N_Slice>: Likewise. 1438 (Identifier_to_gnu): Rename parent_requires_lvalue to require_lvalue. 1439 Adjust calls to lvalue_required_p. 1440 14412007-12-05 Samuel Tardieu <sam@rfc1149.net> 1442 1443 PR ada/21489 1444 * exp_ch9.adb (Build_Simple_Entry_Call): Initialize OUT access type 1445 parameters of an entry call. 1446 14472007-12-03 Robert Dewar <dewar@adacore.com> 1448 Samuel Tardieu <sam@rfc1149.net> 1449 1450 PR ada/34287 1451 * sem_util.adb (Safe_To_Capture_Value): Do not capture values 1452 of variables declared in a library-level package. 1453 14542007-12-02 Samuel Tardieu <sam@rfc1149.net> 1455 1456 * clean.adb (Clean_Library_Directory): Use Empty_String'Access intead 1457 of Empty_String'Unchecked_Access. 1458 1459 * Makefile.in: Add support for sh4-linux. 1460 1461 * system-linux-sh4.ads: New file. 1462 14632007-12-01 Kostik Belousov <kostikbel@ukr.net> 1464 1465 PR ada/33722 1466 * env.c (__gnat_setenv): FreeBSD 7 has a POSIX conformant putenv() 1467 and its argument must not be free()ed. 1468 14692007-11-29 Eric Botcazou <ebotcazou@adacore.com> 1470 1471 * decl.c (make_packable_type): Retrieve the real name of the type. 1472 (maybe_pad_type): Simplify similar code. 1473 14742007-11-28 Samuel Tardieu <sam@rfc1149.net> 1475 1476 PR ada/15804 1477 * par-ch3.adb (P_Variant_Part): Signal an error when anything other 1478 than an identifier is used after "case" in a variant_part. 1479 1480 PR ada/17318 1481 * par-ch4.adb (Is_Parameterless_Attribute): New map. 1482 (P_Name, Scan_Apostrophe block): Parse left parenthesis following 1483 attribute name or not depending on the new map. 1484 1485 * sem-attr.adb (Analyze_Attribute): Parameterless attributes 1486 returning a string or a type will not be called with improper 1487 arguments. 1488 1489 * sem-attr.ads (Attribute_Class_Array): Move to snames.ads. 1490 1491 * snames.ads (Attribute_Class_Array): Moved from sem-attr.ads. 1492 1493 PR ada/32792 1494 * sem_attr.adb (Analyze_Attribute, Attribute_Integer_Value clause): 1495 Signal an error when attribute argument is a fixed-point value of 1496 an unknown type. 1497 1498 PR ada/22559 1499 * sem_ch3.adb (Build_Derived_Numeric_Type): Do not set RM_Size on 1500 a derived ordinary fixed point type. 1501 1502 * sem_ch13.adb (Analyze_Attribute_Definition_Clause): Recompute 1503 RM_Size when a Small clause is found. 1504 15052007-11-26 Andreas Krebbel <krebbel1@de.ibm.com> 1506 1507 PR 34081/C++ 1508 * trans.c (Subprogram_Body_to_gnu, Compilation_Unit_to_gnu): 1509 Pass 'false' for the new allocate_struct_function parameter. 1510 * utils.c (build_function_stub): Likewise. 1511 15122007-11-25 Richard Guenther <rguenther@suse.de> 1513 1514 * utils.c (gnat_pushlevel): Use BLOCK_CHAIN. 1515 (gnat_poplevel): Likewise. 1516 15172007-11-25 Eric Botcazou <ebotcazou@adacore.com> 1518 1519 * decl.c (gnat_to_gnu_entity) <E_Record_Type>: If the type has 1520 strict alignment, no alignment clause and a known static size, cap 1521 the type alignment to the greatest power of 2 factor of the size. 1522 (gnat_to_gnu_field): If the field has a component clause, is aliased 1523 or of a type with strict alignment, require that its size be equal to 1524 that of the type. 1525 (validate_size): Use the type size as the minimum size for a type with 1526 strict alignment. 1527 15282007-11-23 Samuel Tardieu <sam@rfc1149.net> 1529 1530 * s-inmaop-posix.adb, s-intman-vxworks.adb, s-taprop-hpux-dce.adb, 1531 s-taprop-irix.adb, s-taprop-linux.adb, s-taprop-lynxos.adb, 1532 s-taprop-posix.adb, s-taprop-tru64.adb, s-taprop-vxworks.adb: 1533 Use 'Access instead of 'Unchecked_Access in second and third 1534 arguments of pthread_sigmask. 1535 15362007-11-23 Eric Botcazou <ebotcazou@adacore.com> 1537 1538 * decl.c (ceil_alignment): New function. 1539 (gnat_to_gnu_entity): Use it to set the alignment on atomic types. 1540 (make_packable_type): Likewise. 1541 15422007-11-22 Olivier Hainque <hainque@adacore.com> 1543 1544 * trans.c (gnat_to_gnu) <case N_Free_Statement>: Reformat lines 1545 to fit in 80 columns. 1546 15472007-11-21 Aurelien Jarno <aurelien@aurel32.net> 1548 1549 * s-osinte-kfreebsd-gnu.ads (To_Target_Priority): New function. 1550 * Makefile.in: Add EH_MECHANISM=-gcc to kfreebsd-gnu. Remove SYMLIB. 1551 15522007-11-19 Eric Botcazou <ebotcazou@adacore.com> 1553 1554 PR ada/34098 1555 * misc.c (gnat_adjust_rli): Delete. 1556 (gnat_init): Do not initialize the translation code here. 1557 Do not call set_lang_adjust_rli. 1558 * trans.c (init_code_table): Make static. 1559 (gnat_init_stmt_group): Delete. 1560 (gigi): Initialize the translation code entirely here. 1561 Emit debug info for the common types here instead of... 1562 * utils.c (gnat_init_decl_processing): ...here. 1563 * gigi.h (init_code_table): Delete. 1564 (gnat_init_stmt_group): Likewise. 1565 15662007-11-16 Olivier Hainque <hainque@adacore.com> 1567 1568 * utils2.c (build_call_alloc_dealloc) <if gnu_obj>: Move the code 1569 retrieving an allocator return value from a super-aligned address from 1570 here to ... 1571 * trans.c (gnat_to_gnu) <case N_Free_Statement>: ... here, and don't 1572 expect a super-aligned address for a fat or thin pointer. 1573 15742007-11-14 Eric Botcazou <ebotcazou@adacore.com> 1575 1576 * trans.c (call_to_gnu): Always set the source location on the call 1577 expression. If the function returns-by-target, also set it on the 1578 address expression. 1579 15802007-11-14 Samuel Tardieu <sam@rfc1149.net> 1581 1582 * adaint.c, init.c, initialize.c, link.c: Remove system-specific 1583 sections of non-supported Interix target. 1584 1585 * s-osinte-interix.ads: Removed. 1586 1587 * i-cstrin.ads (chars_ptr): Make it a C convention type. 1588 15892007-11-13 Samuel Tardieu <sam@rfc1149.net> 1590 1591 * a-tasatt.adb: Add a comment at the beginning of the package 1592 explaining why in general 'Unchecked_Access must be used instead 1593 of 'Access. 1594 1595 * sem_prag.adb (Process_Convention): Move the test for the 1596 entity on which the Convention pragma applies down to also 1597 forbid pragma Convention on enumeration literals reached 1598 through renamings. 1599 16002007-11-10 Samuel Tardieu <sam@rfc1149.net> 1601 1602 * a-tasatt.adb: Revert previous change for this file as it will 1603 generate an error when this package is instantiated from a 1604 local context. 1605 16062007-11-07 Samuel Tardieu <sam@rfc1149.net> 1607 1608 * a-tasatt.adb: Type Wrapper should be declared in comment instead 1609 of already declared type Node_Access. 1610 Use 'Access instead of 'Unchecked_Access when applicable. Local 1611 lifetime is the one of the package. 1612 (Set_Value): W is allocated on the heap. 1613 1614 * g-socket.adb: Use 'Access instead of 'Unchecked_Access when 1615 applicable. 1616 (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous 1617 access type. 1618 (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous 1619 access type. 1620 1621 * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when 1622 applicable. 1623 (elaboration code): Timer_Queue lifetime is the one of the 1624 package. 1625 1626 * tracebak.c (i386 alternative): Remove useless comparaison 1627 which is always false; LOWEST_ADDRESS is 0 and is never greater 1628 than an unsigned integer. 1629 1630 * sem_attr.adb (Analyze_Attribute): Remove duplicate identical 1631 embedded check for "Ada_Version >= Ada_05". 1632 16332007-11-07 Olivier Hainque <hainque@adacore.com> 1634 1635 * decl.c (make_aligning_type): Set the mode of the RECORD_TYPE we 1636 craft and expand comment. 1637 16382007-11-01 Eric Botcazou <ebotcazou@adacore.com> 1639 1640 * lang-specs.h: Move translation of -fRTS= after -gnatez switch. 1641 16422007-10-23 Eric Botcazou <ebotcazou@adacore.com> 1643 1644 * misc.c (gnat_handle_option): Replace call to abort with 1645 call to gcc_unreachable. 1646 (gnat_init): Likewise. 1647 (gnat_expand_expr): Likewise. 1648 (fp_prec_to_size): Likewise. 1649 (fp_size_to_prec): Likewise. 1650 16512007-10-23 Richard Guenther <rguenther@suse.de> 1652 1653 PR bootstrap/33608 1654 * tracebak.c: #undef abort after including system.h. 1655 16562007-10-20 Danny Smith <dannysmith@users.sourceforge.net> 1657 1658 * Makefile.in (LIBGNAT_TARGET_PAIRS) Add s-tasinf-mingw.adb, 1659 s-tasinf-mingw.ads, a-exetim-mingw.adb, a-exetim-mingw.ads 1660 for win32 targets. 1661 (EXTRA_GNATRTL_TASKING_OBJS): Add a-exetim.o for win32 targets. 1662 16632007-10-15 Eric Botcazou <ebotcazou@adacore.com> 1664 1665 * s-osinte-tru64.adb: (Hide_Yellow_Zone): Add On parameter. 1666 Set the protection status of the guard page based on the value of On. 1667 1668 * s-osinte-tru64.ads: (Hide_Yellow_Zone): Add On parameter. 1669 1670 * s-taprop-tru64.adb: (Enter_Task): Pass True to Hide_Yellow_Zone. 1671 (Exit_Task): Pass False to Hide_Yellow_Zone. 1672 16732007-10-15 Robert Dewar <dewar@adacore.com> 1674 1675 * s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 1676 s-taprop-vxworks.adb, s-taprop-posix.adb, a-calend-vms.adb, 1677 a-calend.adb, a-nuflra.adb, a-tigeau.adb, a-wtgeau.adb, 1678 checks.adb, bindgen.adb, eval_fat.adb, exp_fixd.adb, fmap.adb, 1679 freeze.adb, g-awk.adb, g-calend.adb, g-diopit.adb, g-expect.adb, 1680 gnatchop.adb, gnatlink.adb, g-spipat.adb, g-thread.adb, make.adb, 1681 mdll.adb, mlib.adb, mlib-prj.adb, osint.adb, par-ch3.adb, prj.adb, 1682 prj-makr.adb, sem_prag.adb, sem_type.adb, s-fatgen.adb, s-fileio.adb, 1683 sinfo.ads, sinput-d.adb, s-taasde.adb, s-tasdeb.ads, s-tasren.adb, 1684 s-tassta.adb, s-tpobop.adb, s-tposen.adb, stylesw.adb, types.ads, 1685 uintp.adb, validsw.adb, makegpr.adb, a-rbtgso.adb, a-crbtgo.adb, 1686 a-coorse.adb, a-convec.adb, a-coinve.adb, a-cohama.adb, a-ciorse.adb, 1687 a-cihama.adb, a-cidlli.adb, a-chtgop.adb, a-cdlili.adb, a-cdlili.adb, 1688 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cohase.adb, a-ciorma.adb, 1689 a-coorma.adb, a-ztgeau.adb, symbols-vms.adb, a-crdlli.adb, 1690 a-calari.adb, a-calfor.adb, s-os_lib.adb, s-regpat.adb, a-ngrear.adb: 1691 Minor reformatting. 1692 Add Unreferenced and Warnings (Off) pragmas for cases of 1693 variables modified calls where they are IN OUT or OUT parameters and 1694 the resulting values are not subsequently referenced. In a few cases, 1695 we also remove redundant code found by the new warnings. 1696 1697 * ug_words, vms_data.ads, usage.adb, sem_util.adb, sem_util.ads, 1698 sem_warn.adb, sem_warn.ads, sem_res.adb, sem_ch7.adb, sem_ch8.adb, 1699 sem_ch5.adb, opt.ads, lib-xref.adb, lib-xref.ads, exp_smem.adb, 1700 sem_ch11.adb, exp_ch6.adb, einfo.ads, einfo.adb: implement a new 1701 warning controlled by -gnatw.o that warns on cases of out parameter 1702 values being ignored. 1703 17042007-10-15 Geert Bosch <bosch@adacore.com> 1705 1706 * adaint.c, socket.c, cal.c: Initial port to arm-mentor-nucleus. 1707 1708 * expect.c: Initial port to arm-mentor-nucleus. 1709 Use kill for __gnat_kill() on VMS. 1710 17112007-10-15 Emmanuel Briot <briot@adacore.com> 1712 1713 * ali.ads, ali.adb (Scan_ALI): Initialize XE.Tref to a known default 1714 value. 1715 (Xref_Record): Change type for Line, since in the case of a reference to 1716 a predefined entity (as happens for array index types), the line is set 1717 to 0. 1718 Add support for parsing multiple array index types info, or 1719 multiple inherited interfaces info. This information cannot be stored 1720 in Xref_Entity_Record, which only supports a single instance of Tref_*, 1721 and is therefore stored in the list of references instead. It has a 1722 special treatement later on in tools that use this information. 1723 17242007-10-15 Tristan Gingold <gingold@adacore.com> 1725 1726 * debug.adb: Document use of -gnatd.a and -gnatd.I 1727 1728 * layout.adb: On OpenVMS -gnatd.a disables alignment optimization. 1729 17302007-10-15 Javier Miranda <miranda@adacore.com> 1731 1732 * exp_attr.adb (Expand_N_Attribute_Reference): Case Access, 1733 Unchecked_Access, and Unrestricted_Access. Cleanup code that takes 1734 care of access to class-wide interface types plus removal of bizarre 1735 conversion of tagged object to access type (reported by Gary 1736 Dismukes). After this patch there is no need to perform any 1737 additional management on these nodes in Expand_Interface_Actuals. 1738 1739 * exp_disp.adb (Expand_Interface_Actuals): Code cleanup. Remove code 1740 that handles use of 'Access and 'Unchecked_Access applied to 1741 actuals covering interface types. Such code is now 1742 centralized in Expand_N_Attribute_Reference. 1743 17442007-10-15 Ed Schonberg <schonberg@adacore.com> 1745 1746 * exp_ch3.adb (Build_Init_Procedure): Keep separate the initialization 1747 of tagged types whose ultimate ancestor is a CPP type. 1748 (Freeze_Array_Type): For a packed array type, generate an initialization 1749 procedure if the type is public, to handle properly a client that 1750 specifies Normalize_Scalars. 1751 17522007-10-15 Hristian Kirtchev <kirtchev@adacore.com> 1753 1754 * exp_ch9.adb (Actual_Index_Expression): When the expansion occurs 1755 inside a generic body, retrieve the full view of the entry family 1756 discrete subtype if available. 1757 17582007-10-15 Thomas Quinot <quinot@adacore.com> 1759 1760 * exp_dist.adb (Add_RACW_Primitive_Declarations_And_Bodies): Do not 1761 attempt to generate stubs for hidden primitive operations. 1762 17632007-10-15 Vincent Celier <celier@adacore.com> 1764 1765 * mlib-tgt-specific.adb (Support_For_Libraries): New function, 1766 returning None, used when there is no platform specific body for 1767 MLib.Tgt.Specific. 1768 17692007-10-15 Bob Duff <duff@adacore.com> 1770 1771 * sem_case.adb, sem_ch13.adb, lib-sort.adb: Replace use of Heap_Sort_A 1772 (passing'Unrestricted_Access of nested subprograms to Sort) with use of 1773 the generic Heap_Sort_G, in order to avoid trampolines. 1774 17752007-10-15 Vasiliy Fofanov <fofanov@adacore.com> 1776 Jose Ruiz <ruiz@adacore.com> 1777 1778 * vx_stack_info.c: New file. 1779 1780 * i-forbla-unimplemented.ads: New file. 1781 1782 * Makefile.in: i-forbla-unimplemented.ads: a variant of i-forbla.ads 1783 for unsupported configurations; use it on VMS targets instead of the 1784 real one. 1785 (EXTRA_LIBGNAT_SRCS,EXTRA_LIBGNAT_OBJS for VxWorks): Include 1786 vx_stack_info.{c,o} that contains the routine __gnat_get_stack_info 1787 used by VxWorks targets to have access to task-specific data and be 1788 able to extract the stack boundaries for stack checking. 1789 Use system-vms-ia64.ads on ivms. 1790 1791 * Make-lang.in: Update dependencies. 1792 1793 * sysdep.c (__gnat_get_stack_info): Move to a standalone file 1794 (vx_stack_info.c). 1795 17962007-10-15 Vincent Celier <celier@adacore.com> 1797 1798 * snames.adb, snames.ads: Add new standard name runtime_library_dir 1799 1800 * prj.ads (Language_Config): Add new component Runtime_Library_Dir 1801 1802 * prj-attr.adb: Add project level attribute Runtime_Library_Dir 1803 1804 * prj-env.adb (Create_Mapping_File): Do not put an entry if the path of 1805 the source is unknown. 1806 1807 * prj-ext.adb: Spelling error fix 1808 1809 * prj-nmsc.adb (Check_Ada_Name): Reject any unit that includes an Ada 1810 95 reserved word in its name. 1811 (Process_Project_Level_Array_Attributes): Process new attribute 1812 Runtime_Library_Dir. 1813 1814 * prj-part.adb (Parse_Single_Project): Do not check the name of the 1815 config project against the user project names. 1816 1817 * prj-proc.adb (Expression): In multi-language mode, indexes that do 1818 not include a dot are always case insensitive. 1819 (Process_Declarative_Items): Ditto 1820 (Process_Project_Tree_Phase_1): Set Success to False in case an error is 1821 detected. 1822 1823 * prj-util.adb (Value_Of (In_Array)): When Force_Lower_Case_Index is 1824 True, compare both indexes in lower case. 1825 18262007-10-15 Robert Dewar <dewar@adacore.com> 1827 1828 * rtsfind.adb: (Load_RTU): Turn off style checks for Load call 1829 18302007-10-15 Gary Dismukes <dismukes@adacore.com> 1831 1832 * sem_aggr.adb (Resolve_Record_Aggregate): In the case of a box 1833 association for an access component, add an association with null as 1834 the expression. Remove testing for array subtypes and the setting in 1835 that case of Ctyp to the array component type, which prevented proper 1836 inclusion of an association for null-initialized arrays. Collapse 1837 condition that tests for array subtypes into just a test of 1838 Is_Partially_Initialized_Type (which already covers arrays anyway). 1839 18402007-10-15 Hristian Kirtchev <kirtchev@adacore.com> 1841 1842 * sem_ch12.adb: Minor code reformatting. 1843 (Check_Generic_Child_Unit): Iterate over the homonym chain in order to 1844 find the parent package which may have been hidden by local 1845 declarations. 1846 18472007-10-15 Gary Dismukes <dismukes@adacore.com> 1848 1849 * sem_ch3.adb (Build_Derived_Concurrent_Type): Set the Is_Constrained 1850 flag of derived concurrent types, taking into account the flag setting 1851 on the parent subtype and any new set of discriminants. 1852 18532007-10-15 Hristian Kirtchev <kirtchev@adacore.com> 1854 1855 * sem_ch4.adb: Minor code and comment reformatting. 1856 (Analyze_Allocator): When the designated type of an unconstrained 1857 allocator is a record with unknown discriminants or an array with 1858 unknown range bounds, emit a detailed error message depending on the 1859 compilation mode and whether the designated type is limited. 1860 18612007-10-15 Tristan Gingold <gingold@adacore.com> 1862 1863 * system-vms-ia64.ads: New file. 1864 1865 * system-vms_64.ads: Minor comment fix. 1866 18672007-10-15 Ed Schonberg <schonberg@adacore.com> 1868 1869 * sem_ch6.adb (Find_Corresponding_Spec): If the previous entity is a 1870 body generated for a function with a controlling result that is a null 1871 extension, discard the generated body in favor of the current explicit 1872 one. 1873 18742007-10-15 Ed Schonberg <schonberg@adacore.com> 1875 1876 * sem_disp.adb (Find_Controlling_Arg): Examine the call node before 1877 examining its original form, to handle properly operator calls that 1878 have been rewritten. 1879 18802007-10-15 Olivier Hainque <hainque@adacore.com> 1881 1882 * tb-alvms.c (tb_entry_t, __gnat_backtrace): Store a frame pointer 1883 instead of a procedure value in each traceback entry. 1884 1885 * g-trasym-vms-alpha.adb (Symbolic_Traceback): Pass frame pointer 1886 instead of procedure value to TBK$SYMBOLIZE. 1887 1888 * s-traent-vms.adb (PV_For): Rename as FP_For and access the proper 1889 field. 1890 (TB_Entry_For): Account for the PV/FP renaming. 1891 1892 * s-traent-vms.ads (Traceback_Entry): Rename PV component into FP and 1893 add comment. 1894 (Null_TB_Entry): Account for change of component name. 1895 (PV_For): Rename as FP_For. 1896 18972007-10-15 Tristan Gingold <gingold@adacore.com> 1898 1899 * trans.c (gnat_to_gnu): Remove the padding structure more often. 1900 This optimize assignment to over-aligned record. 1901 19022007-10-15 Emmanuel Briot <briot@adacore.com> 1903 1904 * xref_lib.adb (Get_Full_Type): Add support for the 'h' entity type, ie 1905 interfaces. 1906 1907 * xr_tabls.adb (Add_Reference): Add support for the new 'R' reference 1908 type, for dispatching calls. 1909 19102007-10-15 Vincent Celier <celier@adacore.com> 1911 Robert Dewar <dewar@adacore.com> 1912 1913 * gnat_ugn.texi: Add documentation for switches --version and --help 1914 for the GNAT tools gnatbind, gnatlink, gnatmake, gnatchop, gnatname, 1915 gnatxref, gnatfind, gnatls, and gnatclean. 1916 Document -gnatw.o. 1917 Mention attribute Excluded_Source_Dirs 1918 Replace obsolescent attribute Locally_Removed_Files with attribute 1919 Excluded_Source_Files. 1920 Improve documentation of -u (gnatbind) 1921 Document how to do reliable stack checking for the environmental task 1922 on iVMS. 1923 1924 * gnat_rm.texi: Rewrite section about No_Implicit_Dynamic_Code. 1925 Document attribute Excluded_Source_Files and indicate that attribute 1926 Locally_Removed_Files is obsolescent. 1927 19282007-10-15 Thomas Quinot <quinot@adacore.com> 1929 1930 * g-soccon-vms.ads: Fix value of MSG_WAITALL. 1931 1932 * gen-soccon.c: 1933 Update documentation to note that OpenVMS 8.3 or later must be used 1934 to generate g-soccon-vms.ads. 1935 1936 * atree.adb: Add ??? comment 1937 1938 * exp_util.adb: Minor reformatting. 1939 Add ??? comment in Kill_Dead_Code. 1940 19412007-10-15 Robert Dewar <dewar@adacore.com> 1942 1943 * errout.ads: Comment clarification 1944 1945 * exp_ch4.adb (Expand_N_Allocator): Code cleanup. 1946 (Expand_N_Op_Eq): Improve handling of array equality with -gnatVa 1947 1948 * lib.ads: Comment update 1949 1950 * init.c: Minor reformatting. 1951 1952 * sem_attr.adb: Minor formatting 1953 1954 * osint-b.ads: Minor reformatting 1955 1956 * sem_ch9.adb: Implement -gnatd.I switch 1957 1958 * g-comlin.adb: (Start): Fix handling of empty command line. 1959 1960 * gnatcmd.adb (GNATCmd): Do not put the -rules in the -cargs section, 1961 even when -rules follows the -cargs section. 1962 19632007-10-08 Ollie Wild <aaw@google.com> 1964 1965 * misc.c (LANG_HOOKS_PUSHDECL): Replaced lhd_return_tree with 1966 gnat_return_tree. 1967 (gnat_init_gcc_eh): Replaced gnat_eh_runtime_type with 1968 gnat_return_tree. 1969 (gnat_eh_runtime_type): Removed. 1970 (gnat_return_tree): New function. 1971 19722007-10-08 Ben Elliston <bje@au.ibm.com> 1973 1974 PR ada/33454 1975 Revert: 1976 2007-08-31 Ben Elliston <bje@au.ibm.com> 1977 1978 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads 1979 when compiling for powerpc64-*-linux. 1980 * system-linux-ppc64.ads: New file. 1981 19822007-09-27 Eric Botcazou <ebotcazou@adacore.com> 1983 1984 Mapped location support 1985 * back_end.adb (Call_Back_End): Pass information about source 1986 files instead of units to gigi. 1987 * gigi.h (struct File_Info_Type): New. 1988 (gigi): Rename and change type of number_units parameter, change 1989 type of file_info_ptr parameter. 1990 * trans.c (number_files): New global variable. 1991 (gigi): Rename and change type of number_units parameter, change 1992 type of file_info_ptr parameter. 1993 If mapped location support is enabled, create the isomorphic mapping 1994 between source files and line maps. 1995 (Sloc_to_locus): If mapped location support is enabled, translate 1996 source location into mapped location. 1997 (annotate_with_node): Rename into set_expr_location_from_node. 1998 Call set_expr_location instead of annotate_with_locus. 1999 (Pragma_to_gnu): Adjust for above change. 2000 (Loop_Statement_to_gnu): Likewise. 2001 (call_to_gnu): Likewise. 2002 (Handled_Sequence_Of_Statements_to_gnu): Likewise. 2003 (gnat_to_gnu): Likewise. 2004 (add_stmt_with_node): Likewise. 2005 (add_cleanup): Likewise. 2006 * utils.c (gnat_init_decl_processing): Do not set input_line. 2007 20082007-09-26 Hristian Kirtchev <kirtchev@adacore.com> 2009 2010 * sem_ch8.adb (Analyze_Use_Type): Code cleanup. 2011 (Applicable_Use): Emit a warning when a package tries to use itself. 2012 (Use_One_Type): Add variable Is_Known_Used. Emit a warning when a type 2013 is already in use or the package where it is declared is in use or is 2014 declared in the current package. 2015 (Spec_Reloaded_For_Body): New subsidiary routine for Use_One_Type. 2016 2017 * a-tasatt.adb, s-osprim-vxworks.adb, g-socthi-mingw.adb, 2018 s-intman-vms.adb, g-socket.adb, g-thread.adb, s-tarest.adb, 2019 s-tassta.adb, s-tporft.adb: Remove redundant 'use type' clause. 2020 20212007-09-26 Hristian Kirtchev <kirtchev@adacore.com> 2022 2023 * a-calend-vms.adb, a-calend.adb: 2024 Add a section on leap seconds control along with two entities used to 2025 enable and disable leap seconds support. The array Leap_Second_Times is 2026 now constant and contains hard time values pre-generated. Remove 2027 all elaboration code used to populate the table of leap seconds. 2028 2029 * bindgen.adb: 2030 Add entity Leap_Seconds_Support to the list of global run-time variables 2031 along with a comment on its usage and values. 2032 (Gen_Adainit_Ada): Add code to generate the declaration and import of 2033 Integer variable Leap_Seconds_Support. Set its value to zero (disabled) 2034 or one (enabled) depending on the presence of binder switch "-y". 2035 (Gen_Adainit_C): Add code to generate the declaration of external int 2036 __gl_leap_seconds_support. Set is value to zero (disabled) or one 2037 (enabled) depending on the presence of binder switch "-y". 2038 2039 * init.c: Add __gl_leap_seconds_support to the list of global values 2040 computed by the binder. 2041 20422007-09-26 Jerome Guitton <guitton@adacore.com> 2043 2044 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 2045 s-taprop-hpux-dce.adb, s-taprop-linux.adb, s-taprop-dummy.adb, 2046 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 2047 s-taprop-posix.adb (Stop_Task): New function, dummy implementation. 2048 2049 * s-taprop.ads, s-taprop-vxworks.adb (Stop_Task): New function. 2050 2051 * s-tasdeb.adb (Stop_All_Tasks): New function, implementing a run-time 2052 function which can be called by the debugger to interrupt the tasks of 2053 an Ada application asynchronously, as needed on VxWorks. 2054 (Stop_All_Tasks_Handler): Renamed from Stop_All_Tasks. 2055 2056 * s-tasdeb.ads (Stop_All_Tasks_Handler): New function declaration, 2057 renamed from Stop_All_Tasks. Update comments. 2058 (Stop_All_tasks): New function declaration. 2059 20602007-09-26 Olivier Hainque <hainque@adacore.com> 2061 2062 * adaint.c (if defined (__Lynx__)): Wrap #def/#undef VMOS_DEV around 2063 #include <utime.h> and #define GCC_RESOURCE_H before 2064 #include <sys/wait.h>. 2065 Add more protections in __gnat_translate_vms. 2066 2067 * expect.c (if defined (__Lynx__)): #define GCC_RESOURCE_H before 2068 #include <sys/wait.h>. 2069 20702007-09-26 Thomas Quinot <quinot@adacore.com> 2071 Sergey Rybin <rybin@adacore.com> 2072 2073 * gnatvsn.ads (PCS_Version_Number, ASIS_Version_Number): Removed. 2074 2075 * exp_dist.ads (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, 2076 where it belongs. 2077 2078 * opt.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. 2079 2080 * rtsfind.adb (PCS_Version_Number): Move from Gnatvsn to Exp_Dist, 2081 where it belongs. 2082 2083 * sem_dist.ads: Minor comment fix 2084 2085 * tree_io.ads: Move ASIS_Version_Number from Gnatvsn into Tree_IO. 2086 20872007-09-26 Javier Miranda <miranda@adacore.com> 2088 Eric Botcazou <ebotcazou@adacore.com> 2089 2090 * a-tags.adb: 2091 (Get_HT_Link/Set_HT_Link): Updated to handle the additional level of 2092 indirection added to the HT_Link component of the TSD. This is required 2093 to statically allocate the TSD. 2094 2095 * a-tags.ads: 2096 Minor reordering of the declarations in the private part. Required to 2097 add a level of indirection to the contents of the TSD component HT_Link. 2098 This is required to statically allocate the TSD. 2099 2100 * decl.c (gnat_to_gnu_entity) <object>: Do not exclude objects with 2101 Is_Statically_Allocated set from constant objects. 2102 Do not make exported constants created by the compiler volatile. 2103 (gnat_to_gnu_param): Do not treat an IN parameter whose address is taken 2104 as read-only. 2105 2106 * trans.c (Identifier_to_gnu): For constants, unshare initializers 2107 before returning them. 2108 2109 * exp_disp.ads, exp_disp.adb (Building_Static_DT): Spec moved to the 2110 public part of the package. 2111 (Make_DT): Move HT_Link component out of the TSD record. For this 2112 purpose Make_DT now declares a separate object that stores the 2113 HT_Link value, and initializes the TSD component with the address 2114 of this new object. The addition of this level of indirection is 2115 required to statically allocate the TSD because the TSD cannot 2116 have variable components. 2117 (Expand_Interface_Conversion): Improve the expanded code. 2118 (Expand_Interface_Thunk): Set Is_Thunk in the thunk entity. 2119 2120 * sem_disp.adb (Check_Dispatching_Operation): In case of a body 2121 declaring a primitive operation ---allowed by RM 3.9.2 (13.e/2)---, 2122 if we are building static dispatch tables then we must not generate 2123 extra code to register the primitive because the dispatch table will 2124 be built at the end of the library package; otherwise we notify that 2125 we cannot build the static dispatch table. 2126 21272007-09-26 Robert Dewar <dewar@adacore.com> 2128 2129 * checks.adb, gnat1drv.adb, sem_util.ads: Improve warnings for address 2130 overlays. 2131 2132 * sem_ch13.ads, sem_ch13.adb: Improve warnings for address overlays 2133 (Analyze_Record_Representation_Clause): Suppress junk warning for 2134 missing component clause. 2135 (Analyze_Attribute_Definition_Clause, case Address): Apply the special 2136 tests for controlled type overlay to composites with controlled 2137 components. 2138 (Analyze_Record_Representation_Clause): Add reference for component name 2139 21402007-09-26 Javier Miranda <miranda@adacore.com> 2141 Gary Dismukes <dismukes@adacore.com> 2142 2143 * einfo.adb (Is_Thunk): New attribute applicable to subprograms. True 2144 for thunks associated with interface types. 2145 2146 * einfo.ads: Improve documentatation of Is_Internal 2147 (Is_Thunk): New attribute applicable to subprograms. True for thunks 2148 associated with interface types. 2149 Extensive comment fixes regarding flags that appear in all entities. The 2150 documentation is now consistent for all such flags (there were a number 2151 of errors in the documentation in this regard). 2152 2153 * exp_attr.adb (Expand_N_Attribute_Reference): Minor code cleanup. 2154 2155 * exp_ch6.adb (Make_Build_In_Place_Call_*): Return immediately if any 2156 of these procedures are passed a function call that already has 2157 build-in-place actuals (testing new flag 2158 Is_Expanded_Build_In_Place_Call). Set the flag on the function call in 2159 the case where processing continues. 2160 (Expand_Call): If the call is generated from a thunk body then we 2161 propagate the extra actuals associated with the accessibility 2162 level of the access type actuals. 2163 2164 * sem_ch6.adb (Analyze_Subprogram_Body): Set the Protected_Formal field 2165 of each extra formal of a protected operation to reference the 2166 corresponding extra formal of the subprogram denoted by the 2167 operation's Protected_Body_Subprogram. 2168 2169 * sinfo.ads, sinfo.adb (Is_Expanded_Build_In_Place_Call): New flag on 2170 N_Function_Call nodes. 2171 21722007-09-26 Robert Dewar <dewar@adacore.com> 2173 2174 * exp_ch5.adb: Activate memmove type processing if debug flag d.s is set 2175 2176 * debug.adb: Add d.s flag. 2177 21782007-09-26 Gary Dismukes <dismukes@adacore.com> 2179 2180 * exp_dbug.adb (Debug_Renaming_Declaration): Set Is_Internal on the 2181 debug variable so that it won't be initialized when pragma 2182 Initialize_Scalars is in effect. 2183 21842007-09-26 Gary Dismukes <dismukes@adacore.com> 2185 2186 * freeze.adb (Freeze_Entity): Remove check for preelaborable 2187 initialization of a full view. This is moved to 2188 Analyze_Package_Specification. 2189 2190 * sem_ch7.adb (Analyze_Package_Specification): Add check for 2191 preelaborable initialization of a full view in entity loop. 2192 (Uninstall_Declarations): If entity is a use-visible compilation unit, 2193 its child units are use-visible only if they are visible child units. 2194 2195 * sem_util.adb (Is_Preelaborable_Expression): New function to determine 2196 whether an expression can be used within a type declaration that 2197 requires preelaborable init. 2198 (Check_Components): Replace inline code that does partial checking for 2199 preelaborable default expressions with call to 2200 Is_Preelaborable_Expression. 2201 (Has_Preelaborable_Initialization): In the case of a generic actual 2202 subtype, (that is, Is_Generic_Actual is True), return the result of 2203 applying Has_Preelaborable_Initialization to the generic actual's base 2204 type. 2205 22062007-09-26 Hristian Kirtchev <kirtchev@adacore.com> 2207 2208 * g-calend.adb (Has_53_Weeks): Rename to Last_Year_Has_53_Weeks. Add a 2209 call to Jan_1_Day _Of_Week to optimize its performance. 2210 (Is_Leap): Move the routine to the scope of Week_In_Year. 2211 (Jan_1_Day_Of_Week): New routine in Week_In_Year which calculates the 2212 weekday on which January 1 falls of Year - 1 and Year + 1. This function 2213 avoids calling Time_Of and Split, thus making it more efficent. 2214 (Week_In_Year): Reimplemented in oder to follow ISO 8601. 2215 2216 * g-calend.ads (Week_In_Year): Change comment to reflect new 2217 implementation. 2218 22192007-09-26 Emmanuel Briot <briot@adacore.com> 2220 2221 * g-comlin.ads, g-comlin.adb (Command_Line_Configuration, 2222 Command_Line): New types 2223 (Define_Alias, Define_Prefix, Free): New subprograms. These provide 2224 support for defining how switches can be grouped on a command line (as 2225 is the case for -gnatw... for GNAT), and how simple switches can be 2226 used as aliases for more complex switches (-gnatwa is same as 2227 -gnatwbcef...) 2228 (Set_Command_Line, Add_Switch, Remove_Switch): New subprogram 2229 (Start, Current_*): New subprograms 2230 Added support for parsing an array of strings in addition to the real 2231 command line. 2232 (Opt_Parser, Opt_Parser_Data): New type. As a result, some types had to 2233 be moved from the body to the private part of the spec. 2234 (*): All subprograms now have an extra parameter with default value to 2235 specify which parser should be used. For backward compatibility, it 2236 defaults to parsing the command line of the application. They were also 2237 modified to properly handle cases where each of the argument does not 2238 start at index 1 (which is always true for Ada.Command_Line, but not 2239 when processing any Argument_List). 2240 (Free): New subprogram 2241 (Internal_Initialize_Option_Scan, Find_Longuest_Matching_Switch, 2242 Argument): New subprograms 2243 (Switch_Parameter_Type): New enum, which clarifies the code. The extra 2244 special characters like ':', '=',... are now handled in a single place, 2245 which makes the code more extensible eventually. 2246 (Getopt, Full_Switch): When the switch was returned as part of the 2247 special character '*', make sure it is prepended by the switch character 2248 ('-' in general), so that the application knows whether "foo" or "-foo" 2249 was specified on the command line. 2250 22512007-09-26 Florian Villoing <villoing@adacore.com> 2252 2253 * g-dirope.adb (Remove_Dir): In case we are removing directories 2254 recursively, make sure that if an exception is raised during the 2255 processing, the current working directory is reset to its initial 2256 value before propagating the exception. 2257 22582007-09-26 Vincent Celier <celier@adacore.com> 2259 2260 * gnatbind.adb: If there are several ALI files specified and there is 2261 a main program to bind, the first ALI is expected to contain the main 2262 subprogram and the names of the binder generated files will be derived 2263 from the first ALI file name. 2264 (Gnatbind): Fix insertion character in invocation of Error_Msg 2265 22662007-09-26 Vincent Celier <celier@adacore.com> 2267 2268 * gnatcmd.adb (Check_Files): Do not include sources that have been 2269 removed by attributes Exclude_Source_Files or Locally_Removed_Files. 2270 22712007-09-26 Ed Schonberg <schonberg@adacore.com> 2272 2273 * lib-xref.ads, lib-xref.adb: The entry for array types now carries 2274 information about each of its index types, following the type 2275 reference for its component type. 2276 22772007-09-26 Vincent Celier <celier@adacore.com> 2278 2279 * make.adb: (Kill): New procedure (__gnat_kill imported) 2280 (Running_Compile, Outstanding_Compiles): Global variables that 2281 were previously local to procedure Compile_Sources. 2282 (Sigint_Intercepted): Send signal SIGINT to all outstanding 2283 compilation processes. 2284 2285 (Gnatmake): If project files are used, create the mapping of all the 2286 sources, so that the correct paths will be found. 2287 2288 * prj-env.ads, prj-env.adb (Create_Mapping): New procedure 2289 22902007-09-26 Vincent Celier <celier@adacore.com> 2291 2292 * makeutl.ads (Main_Config_Project): Moved to gpr_util.ads 2293 2294 * prj.ads, prj.adb (Default_Language): Remove function, no longer used 2295 Replace components Compiler_Min_Options and Binder_Min_Options with 2296 Compiler_Required_Switches and Binder_Required_Switches in record 2297 Language_Config. 2298 Remove components Default_Language and Config in Project_Tree_Data, 2299 no longer used. 2300 2301 * prj-attr.adb: New attributes Required_Switches (<language>) in 2302 packages Compiler and Binder. 2303 2304 * prj-nmsc.adb: Major rewrite of the processing of configuration 2305 attributes for gprbuild. No impact on GNAT tools. 2306 2307 * prj-proc.ads, prj-proc.adb (Process_Project_Tree_Phase_2): No longer 2308 process configuration attributes: this is done in Prj.Nmsc.Check. 2309 (Recursive_Process): Make a full copy of packages inherited from project 2310 being extended, instead of a shallow copy. 2311 (Process_Project_Tree_Phase_1): New procedure 2312 (Process_Project_Tree_Phase_1): New procedure 2313 (Process): Implementation now uses the two new procedures 2314 2315 * prj-util.adb (Executable_Of): Get the suffix and the default suffix 2316 from the project config, not the tree config that no longer exists. 2317 23182007-09-26 Vincent Celier <celier@adacore.com> 2319 2320 * Make-lang.in: Update dependencies.. 2321 23222007-09-26 Vincent Celier <celier@adacore.com> 2323 2324 * osint.adb, osint.ads: Minor reformatting 2325 2326 * osint-b.adb, osint-b.ads (Set_Current_File_Name_Index): New procedure 2327 23282007-09-26 Gary Dismukes <dismukes@adacore.com> 2329 2330 * par-ch4.adb (P_Record_Or_Array_Component_Association): Change Ada 95 2331 message to cite use of <> in aggregate component associations rather 2332 than wrongly indicating use of limited aggregates. 2333 23342007-09-26 Robert Dewar <dewar@adacore.com> 2335 2336 * sem_attr.adb (Analyze_Access_Attribute): Fix missing set of 2337 Address_Taken. 2338 23392007-09-26 Ed Schonberg <schonberg@adacore.com> 2340 2341 * sem_ch3.adb (Derive_Subprograms): If the interface parent is a direct 2342 ancestor of the derived type, the operations are inherited from the 2343 primary dispatch table of the parent. 2344 (OK_For_Limited_Init_In_05): Remove old comment. Reject in-place calls 2345 when the context is an explicit type conversion. 2346 23472007-09-26 Ed Schonberg <schonberg@adacore.com> 2348 2349 * sem_ch4.adb (Analyze_Qualified_Expression): Apply name resolution 2350 rule for qualified expressions properly, to detect improper conversions 2351 and resolve some cases of overloading. 2352 23532007-09-26 Ed Schonberg <schonberg@adacore.com> 2354 2355 * sem_res.adb (Resolve_Call): If the call is dispatching, generate the 2356 proper kind of reference to the primitive operation, for better source 2357 navigation. 2358 (Valid_Conversion): A tagged conversion is legal if both operands are 2359 tagged. 2360 23612007-09-26 Robert Dewar <dewar@adacore.com> 2362 2363 * sem_warn.adb (Check_References): Catch more cases of unreferenced 2364 packages. 2365 23662007-09-26 Vincent Celier <celier@adacore.com> 2367 2368 * snames.adb, snames.ads: Change Include_Option to Include_Switches 2369 23702007-09-26 Robert Dewar <dewar@adacore.com> 2371 2372 * s-wchstw.adb: provide messages for run time unit exceptions 2373 2374 * a-witeio.adb: Minor reformatting 2375 2376 * exp_ch13.adb: Minor reformatting 2377 23782007-09-26 Sergey Rybin <rybin@adacore.com> 2379 2380 * vms_data.ads: Revise gnatmetric qualifiers. 2381 Add qualified for the new gnatbind option '-y' 2382 2383 * gnat_ugn.texi: Revise the gnatmetric section. 2384 Add entry for new gnatbind option '-y'. 2385 2386 * gnat_rm.texi: Minor spelling correction. 2387 Document restriction on overlaying controlled types 2388 23892007-09-26 Vincent Celier <celier@adacore.com> 2390 2391 * makegpr.adb (Link_Executables): Do not fail when the root project has 2392 no sources, but is an extending project. 2393 23942007-09-25 Eric Botcazou <ebotcazou@adacore.com> 2395 2396 * trans.c: Fix misplaced #define. 2397 23982007-09-22 Eric Botcazou <ebotcazou@adacore.com> 2399 2400 * utils2.c (build_unary_op) <ADDR_EXPR> [INDIRECT_REF]: Propagate 2401 the TYPE_REF_CAN_ALIAS_ALL flag to the result. 2402 24032007-09-21 Olivier Hainque <hainque@adacore.com> 2404 2405 * utils.c (type_for_nonaliased_component_p): Return false for 2406 all AGGREGATE_TYPEs. 2407 24082007-09-17 Eric Botcazou <ebotcazou@adacore.com> 2409 2410 * decl.c (gnat_to_gnu_entity) <object>: Make again the type of an 2411 object covered by 13.3(19) volatile. 2412 24132007-09-12 Eric Botcazou <ebotcazou@adacore.com> 2414 2415 PR ada/26797 2416 PR ada/32407 2417 * utils.c (unchecked_convert): Use a subtype as the intermediate type 2418 in the special VIEW_CONVERT_EXPR case. 2419 24202007-09-12 Robert Dewar <dewar@adacore.com> 2421 2422 * types.ads, a-charac.ads, freeze.adb: Minor reformatting. 2423 2424 * a-except.adb, g-hesora.adb, g-speche.adb, lib.adb, lib.ads, 2425 lib-load.adb, lib-writ.adb, s-assert.adb, s-carun8.adb, 2426 s-casuti.adb, s-crc32.adb, s-exctab.adb, s-htable.adb, s-imgenu.adb, 2427 s-mastop.adb, s-memory.adb, s-memory.ads, s-secsta.adb, s-soflin.adb, 2428 s-sopco3.adb, s-sopco4.adb, s-sopco5.adb, s-stache.adb, s-stalib.adb, 2429 s-stoele.adb, s-strcom.adb, s-strops.adb, s-traceb.adb, s-traent.adb, 2430 s-wchcnv.adb, s-wchcon.adb, s-wchjis.adb, s-addope.adb, s-except.adb, 2431 s-os_lib.adb, s-string.adb, s-utf_32.adb, a-elchha.adb, 2432 a-chlat1.ads, a-elchha.ads, a-except.ads, g-hesora.ads, g-htable.ads, 2433 g-speche.ads, par-prag.adb, restrict.adb, restrict.ads, s-assert.ads, 2434 s-carun8.ads, s-casuti.ads, s-crc32.ads, sem_ch11.adb, sem_prag.adb, 2435 s-exctab.ads, s-htable.ads, s-imgenu.ads, s-mastop.ads, snames.adb, 2436 snames.ads, snames.h, s-purexc.ads, s-secsta.ads, s-soflin.ads, 2437 s-sopco3.ads, s-sopco4.ads, s-sopco5.ads, s-stache.ads, s-stalib.ads, 2438 s-stoele.ads, s-strcom.ads, s-strops.ads, s-traceb.ads, s-traent.ads, 2439 s-unstyp.ads, s-wchcnv.ads, s-wchcon.ads, s-wchjis.ads, s-addope.ads, 2440 s-except.ads, s-os_lib.ads, s-string.ads, s-utf_32.ads: Implement 2441 pragma Compiler_Unit and adds it to relevant library units. 2442 24432007-09-12 Ed Schonberg <schonberg@adacore.com> 2444 2445 * sem_aggr.adb (Resolve_Record_Aggregate): An others association with 2446 a box need not correspond to any component. 2447 24482007-09-12 Robert Dewar <dewar@adacore.com> 2449 2450 * g-thread.ads: Document use of "with GNAT.Threads" to ensure loading 2451 the tasking version of the Ada run time when foreign threads are 2452 present and there are no explicit Ada tasks or tasking constructs. 2453 2454 * gnat_rm.texi: Clarify documentation of GNAT.Threads. 2455 24562007-09-12 Hristian Kirtchev <kirtchev@adacore.com> 2457 2458 * bindusg.adb (Display): Correct comment for switch -X. Add a line for 2459 the usage of switch -y. 2460 2461 * switch-b.adb (Scan_Binder_Switches): Set flag Leap_Seconds_Support 2462 when switch -y is present. 2463 2464 * opt.ads: Add binder flag Leap_Seconds_Support used to enable/disable 2465 leap seconds in Ada.Calendar and its children. 2466 24672007-09-12 Jose Ruiz <ruiz@adacore.com> 2468 2469 * a-extiti.ads (Timer): The discriminant is a "not null access 2470 constant" in the Reference Manual. 2471 (Cancel_Handler): Cancelled is an out parameter in the Reference Manual. 2472 24732007-09-12 Robert Dewar <dewar@adacore.com> 2474 2475 * a-swuwha.adb: Remove junk RM header 2476 24772007-09-12 Vincent Celier <celier@adacore.com> 2478 2479 * g-bytswa-x86.adb (Swap2, Swap4, Swap8): Remove explicit "in" mode 2480 indicator 2481 2482 * g-bytswa.ads: Minor reformatting 2483 24842007-09-12 Thomas Quinot <quinot@adacore.com> 2485 2486 * g-soccon-solaris-64.ads, g-soccon-hpux-ia64.ads: 2487 Add new constant Thread_Blocking_IO, always True by default, set False 2488 on a per-runtime basis. 2489 (Need_Netdb_Buffer): New constant. 2490 24912007-09-12 Arnaud Charlet <charlet@adacore.com> 2492 2493 * s-dsaser.ads (Get_Local_Partition_Id, Get_Passive_Partition_Id): 2494 Added renames for corresponding functions in System.Partition_Interface. 2495 24962007-09-12 Doug Rupp <rupp@adacore.com> 2497 2498 * Makefile.in: Remove VMS specific System.CRTL packages which are no 2499 longer needed. 2500 2501 * s-crtl-vms64.ads: Removed. 2502 25032007-09-12 Olivier Hainque <hainque@adacore.com> 2504 2505 * decl.c (gnat_to_gnu_entity) <E_Record_Subtype>: For a subtype 2506 with discriminant constraints, generalize the code for BIT_FIELDs 2507 to PACKED fields of constant size and propagate DECL_PACKED. 2508 25092007-09-11 Eric Botcazou <ebotcazou@adacore.com> 2510 2511 * decl.c (array_type_has_nonaliased_component): New predicate. 2512 (gnat_to_gnu_field) <E_Array_Type>: Invoke the above predicate to 2513 set the TYPE_NONALIASED_COMPONENT flag on the type. 2514 <E_Array_Subtype>: Likewise. 2515 * gigi.h (type_for_nonaliased_component_p): Declare. 2516 * utils.c (type_for_nonaliased_component_p): New predicate. 2517 (create_field_decl): Invoke the above predicate to set the 2518 DECL_NONADDRESSABLE_P flag on the field. 2519 25202007-09-11 Javier Miranda <miranda@adacore.com> 2521 2522 * einfo.ads, einfo.adb (Dispatch_Table_Wrapper): New attribute. Present 2523 in library level record type entities if we are generating statically 2524 allocated dispatch tables. 2525 2526 * exp_disp.adb (Make_Tags/Make_DT): Replace previous code 2527 importing/exporting the _tag declaration by new code 2528 importing/exporting the dispatch table wrapper. This change allows us 2529 to statically allocate of the TSD. 2530 (Make_DT.Export_DT): New procedure. 2531 (Build_Static_DT): New function. 2532 (Has_DT): New function. 2533 2534 * freeze.adb (Freeze_Static_Object): Code cleanup: Do not reset flags 2535 True_Constant and Current_Value. Required to statically 2536 allocate the dispatch tables. 2537 (Check_Allocator): Make function iterative instead of recursive. 2538 Also return inner allocator node, when present, so that we do not have 2539 to look for that node again in the caller. 2540 25412007-09-11 Jan Hubicka <jh@suse.cz> 2542 2543 * misc.c (gnat_expand_body): Kill. 2544 (LANG_HOOKS_CALLGRAPH_EXPAND_FUNCTION): Kill. 2545 25462007-09-10 Robert Dewar <dewar@adacore.com> 2547 2548 * exp_atag.ads, exp_atag.adb, mlib-tgt-tru64.adb, mlib-tgt-aix.adb, 2549 mlib-tgt-irix.adb, mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 2550 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 2551 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, ali.adb, ali.ads, 2552 ali-util.adb, ali-util.ads, atree.h, back_end.adb, back_end.ads, 2553 bcheck.adb, bcheck.ads, binde.adb, binde.ads, binderr.adb, binderr.ads, 2554 bindgen.adb, bindgen.ads, bindusg.adb, bindusg.ads, butil.adb, 2555 butil.ads, checks.adb, checks.ads, clean.adb, clean.ads, comperr.adb, 2556 comperr.ads, cstand.adb, cstand.ads, debug_a.adb, debug_a.ads, 2557 elists.h, errout.adb, erroutc.ads, errutil.adb, errutil.ads, 2558 err_vars.ads, eval_fat.adb, eval_fat.ads, exp_sel.ads, exp_sel.adb, 2559 exp_aggr.adb, exp_aggr.ads, expander.adb, expander.ads, exp_attr.ads, 2560 exp_ch10.ads, exp_ch11.adb, exp_ch12.adb, exp_ch12.ads, exp_ch13.adb, 2561 exp_ch13.ads, exp_ch2.adb, exp_ch2.ads, exp_ch3.ads, exp_ch4.adb, 2562 exp_ch4.ads, exp_ch5.adb, exp_ch5.ads, exp_ch6.adb, exp_ch6.ads, 2563 exp_ch7.adb, exp_ch7.ads, exp_ch8.adb, exp_ch8.ads, exp_ch9.adb, 2564 exp_ch9.ads, exp_code.adb, exp_code.ads, exp_dbug.adb, exp_dbug.ads, 2565 exp_disp.ads, exp_dist.adb, exp_dist.ads, exp_fixd.adb, exp_fixd.ads, 2566 exp_imgv.adb, exp_imgv.ads, exp_intr.adb, exp_intr.ads, exp_pakd.adb, 2567 exp_pakd.ads, exp_prag.adb, exp_prag.ads, exp_smem.adb, exp_strm.adb, 2568 exp_strm.ads, exp_tss.adb, exp_tss.ads, exp_util.adb, exp_util.ads, 2569 exp_vfpt.adb, exp_vfpt.ads, fmap.adb, fmap.ads, fname-sf.adb, 2570 fname-sf.ads, fname-uf.adb, fname-uf.ads, frontend.adb, frontend.ads, 2571 get_targ.adb, get_targ.ads, gnat1drv.adb, gnat1drv.ads, gnatbind.adb, 2572 gnatbind.ads, gnatbl.c, gnatchop.adb, gnatclean.adb, gnatcmd.adb, 2573 gnatcmd.ads, gnatdll.adb, gnatfind.adb, gnatkr.adb, gnatkr.ads, 2574 gnatlbr.adb, gnatlink.adb, gnatlink.ads, gnatls.adb, gnatls.ads, 2575 gnatmake.adb, gnatmake.ads, gnatmem.adb, gnatname.adb, gnatname.ads, 2576 gnatprep.adb, gnatprep.ads, gnatsym.adb, gnatxref.adb, 2577 gprep.adb, gprep.ads, hlo.adb, hlo.ads, impunit.adb, impunit.ads, 2578 inline.adb, inline.ads, itypes.adb, itypes.ads, layout.adb, layout.ads, 2579 lib-load.adb, lib-load.ads, lib-util.adb, lib-util.ads, lib-writ.adb, 2580 lib-writ.ads, lib-xref.adb, lib-xref.ads, live.adb, live.ads, 2581 make.adb, make.ads, makeutl.ads, makeutl.adb, makeusg.adb, makeusg.ads, 2582 mdll.adb, mdll.ads, mdll-fil.adb, mdll-fil.ads, mdll-utl.adb, 2583 mdll-utl.ads, memroot.adb, memroot.ads, mlib.adb, mlib.ads, 2584 mlib-fil.adb, mlib-fil.ads, mlib-prj.adb, mlib-prj.ads, mlib-tgt.adb, 2585 mlib-tgt.ads, mlib-utl.adb, mlib-utl.ads, namet.h, nmake.adt, 2586 osint.adb, osint.ads, osint-b.adb, osint-b.ads, osint-c.adb, 2587 osint-c.ads, osint-l.adb, osint-l.ads, osint-m.adb, osint-m.ads, 2588 par.adb, par.ads, par-ch10.adb, par-ch11.adb, par-ch12.adb, 2589 par-ch13.adb, par-ch2.adb, par-ch3.adb, par-ch4.adb, par-ch5.adb, 2590 par-ch6.adb, par-ch7.adb, par-ch8.adb, par-ch9.adb, par-endh.adb, 2591 par-labl.adb, par-load.adb, par-prag.adb, par-sync.adb, par-tchk.adb, 2592 par-util.adb, prep.adb, prep.ads, prepcomp.adb, prepcomp.ads, 2593 prj.adb, prj.ads, prj-attr.adb, prj-attr.ads, prj-com.ads, 2594 prj-dect.adb, prj-dect.ads, prj-err.adb, prj-err.ads, prj-ext.adb, 2595 prj-ext.ads, prj-makr.adb, prj-makr.ads, prj-nmsc.adb, prj-nmsc.ads, 2596 prj-pars.adb, prj-pars.ads, prj-part.adb, prj-part.ads, 2597 prj-pp.adb, prj-pp.ads, prj-proc.adb, prj-proc.ads, 2598 prj-strt.adb, prj-strt.ads, prj-tree.adb, prj-tree.ads, 2599 prj-util.adb, prj-util.ads, restrict.adb, restrict.ads, 2600 rtsfind.adb, rtsfind.ads, scn.adb, scn.ads, 2601 scng.adb, scng.ads, sdefault.ads, sem.ads, sem_aggr.ads, sem_attr.adb, 2602 sem_case.adb, sem_case.ads, sem_cat.adb, sem_cat.ads, sem_ch10.adb, 2603 sem_ch10.ads, sem_ch11.adb, sem_ch11.ads, sem_ch12.ads, sem_ch13.adb, 2604 sem_ch13.ads, sem_ch2.adb, sem_ch2.ads, sem_ch3.adb, sem_ch3.ads, 2605 sem_ch4.ads, sem_ch5.adb, sem_ch5.ads, sem_ch6.adb, sem_ch6.ads, 2606 sem_ch7.adb, sem_ch7.ads, sem_ch8.adb, sem_ch8.ads, sem_ch9.adb, 2607 sem_ch9.ads, sem_disp.adb, sem_disp.ads, sem_dist.adb, sem_dist.ads, 2608 sem_elab.adb, sem_elab.ads, sem_elim.adb, sem_elim.ads, sem_eval.adb, 2609 sem_eval.ads, sem_intr.adb, sem_intr.ads, sem_maps.adb, sem_maps.ads, 2610 sem_mech.adb, sem_mech.ads, sem_prag.adb, sem_prag.ads, sem_res.adb, 2611 sem_res.ads, sem_smem.adb, sem_smem.ads, sem_type.adb, sem_type.ads, 2612 sem_util.adb, sem_util.ads, sem_vfpt.adb, sem_vfpt.ads, sem_warn.adb, 2613 sem_warn.ads, sfn_scan.ads, sinfo-cn.adb, sinfo-cn.ads, sinput-c.adb, 2614 sinput-c.ads, sinput-d.adb, sinput-d.ads, sinput-l.adb, sinput-l.ads, 2615 sinput-p.adb, sinput-p.ads, snames.h, sprint.adb, sprint.ads, 2616 stringt.h, style.ads, styleg.adb, styleg.ads, styleg-c.adb, 2617 styleg-c.ads, stylesw.adb, stylesw.ads, switch.adb, switch.ads, 2618 switch-b.adb, switch-b.ads, switch-c.adb, switch-c.ads, switch-m.adb, 2619 switch-m.ads, symbols.adb, symbols.ads, targparm.adb, tbuild.adb, 2620 tbuild.ads, tempdir.adb, tempdir.ads, tree_gen.adb, tree_gen.ads, 2621 treepr.adb, treepr.ads, treeprs.adt, ttypef.ads, ttypes.ads, 2622 types.h, uintp.h, urealp.h, usage.adb, usage.ads, 2623 validsw.adb, validsw.ads, vxaddr2line.adb, xeinfo.adb, xnmake.adb, 2624 xref_lib.adb, xref_lib.ads, xr_tabls.adb, xr_tabls.ads, xsinfo.adb, 2625 xtreeprs.adb, xsnames.adb, vms_conv.ads, vms_conv.adb, xgnatugn.adb, 2626 gprmake.adb, makegpr.ads, makegpr.adb, prj-attr-pm.ads, prj-attr-pm.adb, 2627 mlib-tgt-lynxos.adb, mlib-tgt-darwin.adb, symbols-vms.adb, 2628 symbols-processing-vms-alpha.adb, symbols-processing-vms-ia64.adb, 2629 mlib-tgt-specific.adb, mlib-tgt-specific.ads, mlib-tgt-vms.adb, 2630 mlib-tgt-vms.ads: Replace headers with GPL v3 headers. 2631 26322007-09-10 Emmanuel Briot <briot@adacore.com> 2633 2634 * s-regpat.adb (Parse_Character_Class): Fix handling of empty character 2635 classes ("[]"). 2636 26372007-09-10 Vasiliy Fofanov <fofanov@adacore.com> 2638 2639 * adaint.c (__gnat_translate_vms): new function. 2640 26412007-09-10 Gary Dismukes <dismukes@adacore.com> 2642 Thomas Quinot <quinot@adacore.com> 2643 2644 * exp_ch3.adb (Predef_Spec_Or_Body): When the type is abstract, only 2645 create an abstract subprogram in the case of 'Input. For 'Output we now 2646 create a real spec/body when the type is abstract, since it can 2647 potentially be called. 2648 (Predefined_Primitive_Bodies): Now allow the creation of a predefined 2649 body for 'Output when the type is abstract (only the creation of the 2650 body for 'Input is excluded when the type is abstract). 2651 (Stream_Operation_OK): Add an additional condition in the return 2652 statement, so that False will be returned for TTS_Stream_Input if the 2653 associated tagged type is an abstract extension. Add comments for 2654 return statement. 2655 (Expand_N_Object_Declaration): For the case of a shared passive 2656 variable, insert init proc call only after the shared variable 2657 procedures have been processed, because the IP call needs to undergo 2658 shared passive variable reference expansion, which requires these 2659 procedures to be available (and elaborated). 2660 26612007-09-10 Vincent Celier <celier@adacore.com> 2662 2663 * prj-env.ads, prj-env.adb (Create_Mapping_File (Language)): Remove 2664 parameter Runtime_Project. 2665 26662007-09-10 Ed Schonberg <schonberg@adacore.com> 2667 2668 * sem_aggr.adb (Build_Record_Aggr_Code): If an aggregate component is 2669 given a box association, the type of the component is discriminated, 2670 and the value of the discriminant is the discriminant of the enclosing 2671 type, retrieve its value from the aggregate itself, where it must have 2672 been supplied. 2673 2674 * sem_ch4.adb (Analyze_One_Call): Further refinement to previous fix, 2675 to remove other spurious ambiguities on arithmetic operations involving 2676 literals and addresses, on systems where Address is a visible integer 2677 type, when the operator is called in functional notation. 2678 (Try_Primitive_Operation): Within an instance, a call in prefixed form 2679 is legal when the types match, even if the operation is currently 2680 hidden. 2681 26822007-09-10 Ed Schonberg <schonberg@adacore.com> 2683 2684 * sem_ch12.adb (Build_Local_Package): A formal package with no 2685 associations is legal if all formals have defaults. It is not 2686 equivalent to a formal declared with a box. 2687 26882007-09-10 Sergey Rybin <rybin@adacore.com> 2689 2690 * vms_data.ads: Add qualifier for the new gnatmetric '-lratio' option 2691 26922007-09-10 Sergey Rybin <rybin@adacore.com> 2693 2694 * gnat_ugn.texi: Add description of the new '-lratio' option 2695 Update 7.3.1 section about availability of the feature. 2696 26972007-09-10 Thomas Quinot <quinot@adacore.com> 2698 2699 * exp_smem.ads, exp_smem.adb (Make_Shared_Var_Procs): Return last 2700 inserted node. 2701 27022007-09-10 Olivier Hainque <hainque@adacore.com> 2703 2704 * Makefile.in: (mips-irix section): Activate build of libgmem. 2705 27062007-09-10 Eric Botcazou <ebotcazou@adacore.com> 2707 2708 * a-numaux-x86.adb (Logarithmic_Pow): Do not silently clobber 2709 x87 registers. 2710 27112007-09-10 Eric Botcazou <ebotcazou@adacore.com> 2712 2713 * decl.c (gnat_to_gnu_entity) <object>: Deal with variable built for 2714 a debug renaming declaration specially. 2715 27162007-09-08 Eric Botcazou <ebotcazou@adacore.com> 2717 2718 * decl.c (gnat_to_gnu_entity) <Object>: Simplify the condition under 2719 which a constant renaming is treated as a normal object declaration. 2720 * trans.c (lvalue_required_p) <N_Slice>: New case, extracted from 2721 the N_Indexed_Component case. 2722 <N_Indexed_Component>: Fall through to above case. 2723 <N_Object_Renaming_Declaration>: Return true for all composite types. 2724 27252007-09-08 Eric Botcazou <ebotcazou@adacore.com> 2726 2727 * decl.c (make_packable_type): If the new type has been given BLKmode, 2728 try again to get an integral mode for it. 2729 27302007-09-07 Eric Botcazou <ebotcazou@adacore.com> 2731 2732 Re-apply accidentally reverted change: 2733 2734 2007-02-07 Andreas Krebbel <krebbel1@de.ibm.com> 2735 2736 * raise-gcc.c (get_region_description_for, get_call_site_action_for, 2737 get_action_description_for): Replace _Unwind_Word with _uleb128_t 2738 and _Unwind_SWord with _sleb128_t. 2739 27402007-09-06 Eric Botcazou <ebotcazou@adacore.com> 2741 2742 * trans.c (convert_with_check): Update call to real_2expN. 2743 27442007-09-05 Sandra Loosemore <sandra@codesourcery.com> 2745 2746 * trans.c (Compilation_unit_to_gnu): Use set_cfun. 2747 * utils.c (end_subprog_body): Likewise. 2748 27492007-09-03 Nick Clifton <nickc@redhat.com> 2750 2751 * Make-lang.in: Change copyright header to refer to version 3 of 2752 the GNU General Public License and to point readers at the 2753 COPYING3 file and the FSF's license web page. 2754 * ada-tree.def, nmake.adt, nlists.h, snames.h, utils.c, 2755 Makefile.rtl, Makefile.in, config-lang.in, uintp.h, urealp.h, 2756 namet.h, decl.c, utils2.c, lang.opt, elists.h, atree.h, types.h, 2757 treeprs.adt, lang-specs.h, cuintp.c, stringt.h, gnatbl.c: 2758 Likewise. 2759 27602007-08-31 Vincent Celier <celier@adacore.com> 2761 2762 PR ada/4720 2763 2764 * gnatchop.adb, gnatfind.adb, gnatlink.adb, gnatls.adb, 2765 gnatname.adb, gnatxref.adb, gprep.adb, clean.adb gnatbind.adb 2766 (Check_Version_And_Help): New procedure in package Switch to process 2767 switches --version and --help. 2768 Use Check_Version_And_Help in GNAT tools 2769 2770 * make.adb: Ditto. 2771 (Compile_Sources): Make sure that sources that are "excluded" are not 2772 compiled. 2773 (Gnatmake): Do not issue -aO. to gnatbind and only issue -I- if a 2774 project file is used. 2775 (Version_Switch): Remove, moved to Switch 2776 (Help_Switch): Remove, moved to Switch 2777 (Display_Version): Remove, moved to Switch 2778 2779 * switch.ads, switch.adb (Check_Version_And_Help): New procedure in 2780 package Switch to process switches --version and --help. 2781 (Display_Version): New procedure 2782 2783 * gnatvsn.ads, gnatvsn.adb (Copyright_Holder): New function. 2784 27852007-08-31 Javier Miranda <miranda@adacore.com> 2786 2787 * a-tags.adb (Internal_Tag): Protect the run-time against wrong 2788 internal tags. 2789 27902007-08-31 Hristian Kirtchev <kirtchev@adacore.com> 2791 2792 * checks.adb (In_Declarative_Region_Of_Subprogram_Body): New routine. 2793 (Mark_Non_Null): If the node for which we just generated an access check 2794 is a reference to an *in* parameter and the reference appears in the 2795 declarative part of a subprogram body, mark the node as known non null. 2796 27972007-08-31 Hristian Kirtchev <kirtchev@adacore.com> 2798 2799 * einfo.ads, einfo.adb: New flag Is_Raised (Flag224). Update the 2800 structure of E_Exception to reflect the new flag. 2801 (Is_Raised, Set_Is_Raised): New inlined routines. 2802 Update the usage of available flag to reflect the addition of Is_Raised. 2803 (Is_Raised, Set_Is_Raised): Bodies of new routines. 2804 (Write_Entity_Flags): Write the status of flag Is_Raised. 2805 (Is_Descendent_Of_Address): New entity flag, to simplify handling of 2806 spurious ambiguities when integer literals appear in the context of an 2807 address type that is a visible integer type. 2808 2809 * sem_ch11.adb (Analyze_Exception_Handler): Add code to warn on local 2810 exceptions never being raised. 2811 (Analyze_Raise_Statement): When analyzing an exception, mark it as being 2812 explicitly raised. 2813 28142007-08-31 Javier Miranda <miranda@adacore.com> 2815 2816 * exp_ch11.adb (Expand_At_End_Handler): Avoid generation of raise 2817 statement when compiling under restriction No_Exceptions_Proparation. 2818 28192007-08-31 Ed Schonberg <schonberg@adacore.com> 2820 2821 * exp_ch3.adb (Build_Record_Init_Proc): If there is a static 2822 initialization aggregate for the type, generate itype references for 2823 thetypes of its (sub)components, to prevent out-of-scope errors in gigi. 2824 28252007-08-31 Gary Dismukes <dismukes@adacore.com> 2826 2827 * exp_ch8.adb (Expand_N_Package_Renaming_Declaration): In the case of a 2828 library-level package renaming, pass the declaration associated with 2829 the renaming's special debug variable to Qualify_Entity_Names to ensure 2830 that its encoded name is properly qualified. 2831 2832 * exp_dbug.adb (Qualify_All_Entity_Names): Check for a variable entity 2833 occurring in the list of entities to qualify, and do not attempt to 2834 traverse an entity list in that case. Variables associated with 2835` library-level package renamings can now occur in the table. 2836 2837 * exp_dbug.ads: Revise documentation of the encoding for renaming 2838 declarations. 2839 28402007-08-31 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2841 2842 * layout.adb (Layout_Type): Use Underlying_Type to determine whether an 2843 access type points to an unconstrained array. 2844 28452007-08-31 Hristian Kirtchev <kirtchev@adacore.com> 2846 2847 * restrict.adb, namet.adb, par-util.adb: Remove redundant type 2848 conversion. 2849 2850 * sem_res.adb (Resolve_Qualified_Expression): Add machinery to detect 2851 simple redundant qualifications. The check is performed whenever the 2852 expression is a non-overloaded identifier. 2853 (Resolve_Type_Conversion): Enchance the redundant type conversion check 2854 to include loop parameters. 2855 (Valid_Conversion): Avoid generation of spurious error message. 2856 28572007-08-31 Bob Duff <duff@adacore.com> 2858 2859 * par-ch4.adb (P_Simple_Expression): Fold long sequences of 2860 concatenations of string literals into a single literal, in order to 2861 avoid very deep recursion in the front end, which was causing stack 2862 overflow. 2863 2864 * sem_eval.adb (Eval_Concatenation): If the left operand is the empty 2865 string, and the right operand is a string literal (the case of "" & 2866 "..."), optimize by avoiding copying the right operand -- just use the 2867 value of the right operand directly. 2868 2869 * stringt.adb (Store_String_Chars): Optimize by growing the 2870 String_Chars table all at once, rather than appending characters one by 2871 one. 2872 (Write_String_Table_Entry): If the string to be printed is very long, 2873 just print the first few characters, followed by the length. Otherwise, 2874 doing "pn(n)" in the debugger can take an extremely long time. 2875 2876 * sem_prag.adb (Process_Interface_Name): Replace loop doing 2877 Store_String_Char with Store_String_Chars. 2878 28792007-08-31 Vincent Celier <celier@adacore.com> 2880 2881 * prj-attr.adb: Add new attribute Excluded_Source_Files 2882 2883 * prj-nmsc.adb: Use attribute Excluded_Source_Files before 2884 Locally_Removed_Files. 2885 2886 * snames.ads, snames.adb: New standard name Excluded_Source_Files 2887 28882007-08-31 Ed Schonberg <schonberg@adacore.com> 2889 2890 * sem_ch10.adb (Analyze_Subunit_Context): When analyzing context 2891 clauses of subunits, ignore limited_with_clauses that are illegal and 2892 have not been fully analyzed. 2893 28942007-08-31 Ed Schonberg <schonberg@adacore.com> 2895 2896 * sem_ch3.adb: The predicate Is_Descendent_Of_Address is now an entity 2897 flag, for effiency. It is called when analyzing arithmetic operators 2898 and also for actuals in calls that are universal_integers. The flag is 2899 set for the predefined type address, and for any type or subtype 2900 derived from it. 2901 2902 * sem_ch4.adb (Analyze_One_Call): Reject an actual that is a 2903 Universal_Integer, when the formal is a descendent of address and the 2904 call appears in user code. 2905 (Analyze_Selected_Component): if the prefix is a private extension, the 2906 tag component is visible. 2907 2908 * sem_util.ads, sem_util.adb: Remove Is_Descendent_Of_Address, now an 2909 entity flag. 2910 29112007-08-31 Robert Dewar <dewar@adacore.com> 2912 2913 * s-fileio.adb (Open): Normalize file name to lower case in non-case 2914 sensitive file name systems to avoid unexpected mismatch in Vista. 2915 29162007-08-31 Vincent Celier <celier@adacore.com> 2917 2918 * tempdir.adb: On VMS, take into account GNUTMPDIR before TMPDIR 2919 29202007-08-31 Vincent Celier <celier@adacore.com> 2921 2922 * symbols-vms.adb (Initialize): Read symbol files with continuation 2923 lines 2924 (Finalize): If symbol is long, split the line 2925 29262007-08-31 Vincent Celier <celier@adacore.com> 2927 2928 * fmap.ads: Minor comment updates 2929 29302007-08-31 GNAT Script <nobody@adacore.com> 2931 2932 * Make-lang.in: Makefile automatically updated 2933 29342007-08-31 Bob Duff <duff@adacore.com> 2935 2936 * sinfo.ads: Minor comment fix. 2937 29382007-08-31 Thomas Quinot <quinot@adacore.com> 2939 2940 * stand.ads: (Standard_Debug_Renaming_Type): Make comment consistent 2941 with implementation. 2942 Documentation cleanup only. 2943 29442007-08-31 Sergey Rybin <rybin@adacore.com> 2945 2946 * vms_data.ads: Add new qualifier /STMT_NAME_ON_NEW_LINE for the new 2947 gnatpp '--separate-stmt-name' option. 2948 Add new qualifier /USE_ON_NEW_LIN for the new gnatpp '--use-on-new-line' 2949 option. 2950 2951 * gnat_ugn.texi: Add description for the new gnatpp 2952 '--separate-stmt-name' and '--use-on-new-line' options. 2953 29542007-08-31 Ben Elliston <bje@au.ibm.com> 2955 2956 * Makefile.in (LIBGNAT_TARGET_PAIRS): Use system-linux-ppc64.ads 2957 when compiling for powerpc64-*-linux. 2958 * system-linux-ppc64.ads: New file. 2959 29602007-08-22 Krister Walfridsson <cato@df.lth.se> 2961 2962 * env.c ( __gnat_clearenv): Use the __gnat_unsetenv mechanism for 2963 NetBSD. 2964 29652007-08-16 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 2966 2967 * misc.c (gnat_type_max_size): Constify. 2968 29692007-08-16 Gary Dismukes <dismukes@adacore.com> 2970 2971 * cstand.adb (Create_Standard): Create an entity for a zero-sized type 2972 associated with Standard_Debug_Renaming_Type, to be used as the type of 2973 the special variables whose names provide debugger encodings for 2974 renaming declarations. 2975 2976 * einfo.ads, einfo.adb (Debug_Renaming_Link): Change to return Node25. 2977 (Set_Debug_Renaming_Link): Change to set Node25. 2978 (Write_Field13_Name): Remove case for E_Enumeration_Literal. 2979 (Write_Field25_Name): Add case for E_Variable to output 2980 "Debug_Renaming_Link". 2981 (Write_Field23_Name): Correct the output string for "Limited_View". 2982 2983 * exp_dbug.adb: Add with and use of Tbuild. 2984 (Debug_Renaming_Declaration): Replace creation of an enumeration type 2985 and literal with creation of a variable of type 2986 Standard_Debug_Renaming_Type whose name encodes both the renamed object 2987 and the entity of the renaming declaration. 2988 (Qualify_Entity_Name): Add the delayed qualification of the entity name 2989 part of the name of a variable that has a Debug_Renaming_Link. 2990 2991 * stand.ads (Standard_Debug_Renaming_Type): New Entity_Id denoting a 2992 special type to be associated with variables that provide debugger 2993 encodings for renaming declarations. 2994 29952007-08-16 Gary Dismukes <dismukes@adacore.com> 2996 Ed Schonberg <schonberg@adacore.com> 2997 Javier Miranda <miranda@adacore.com> 2998 2999 * exp_aggr.adb (Build_Record_Aggr_Code): Extend the test for an 3000 ancestor part given by an aggregate to test for an unchecked conversion, 3001 since this can occur in some cases when the ancestor part is a function 3002 call, and we don't want to fall into the recursive call to this 3003 procedure in that case. 3004 3005 * exp_ch3.adb (Stream_Operation_OK): Revise tests for availability of 3006 stream attributes on limited types to account for user-specified 3007 attributes as well as whether Input (resp. Output) becomes available 3008 due to Read (resp. Write) being available for the type. Change Boolean 3009 variable to the more accurate name 3010 Has_Predefined_Or_Specified_Stream_Attribute. Change convoluted 3011 double-"not" predicate at beginning of return statement to more 3012 understandable form. 3013 3014 * exp_ch5.adb (Expand_N_Extended_Return_Statement): If the extended 3015 return has an associated N_Handled_Sequence_Of_Statements, then wrap it 3016 in a block statement and use that as the first statement of the 3017 expanded return rather than incorrectly using the handled sequence as 3018 the first statement. 3019 3020 * exp_ch6.adb (Expand_N_Subprogram_Declaration): If this is a protected 3021 operation, generate an explicit freeze node for it rather than 3022 generating extra formals, to ensure that gigi has the proper order of 3023 elaboration for anonymous subtypes in the signature of the subprograms. 3024 (Build_In_Place_Formal): Move assertion to beginning of loop. 3025 (Is_Build_In_Place_Function_Call): Allow for an unchecked conversion 3026 applied to a function call (occurs for some cases of 'Input). 3027 (Make_Build_In_Place_Call_In_*): Allow for an unchecked conversion 3028 applied to a function call (occurs for some cases of 'Input). 3029 3030 * exp_strm.adb (Build_Record_Or_Elementary_Input_Function): For Ada 3031 2005, generate an extended return statement enclosing the result object 3032 and 'Read call. 3033 3034 * freeze.adb (Freeze_Record_Type): Extend the current management of 3035 components that are access type with an allocator as default value: add 3036 missing support to the use of qualified expressions of the 3037 allocator (which also cause freezing of the designated type!) 3038 (Freeze_Entity): Call Freeze_Subprogram in the case of a predefined 3039 dispatching operation, since extra formals may be needed by calls to 3040 build-in-place functions (such as stream 'Input). 3041 3042 * sem_ch6.adb (Create_Extra_Formals): Skip creation of the extra 3043 formals for 'Constrained and accessibility level in the case of a 3044 predefined dispatching operation. 3045 3046 * exp_util.adb (Insert_Actions): A protected body is a valid insertion 3047 point, no need to find the parent node. 3048 30492007-08-16 Javier Miranda <miranda@adacore.com> 3050 3051 * exp_attr.adb (Attribute_Priority): Add missing support for entries 3052 and entry barriers. 3053 30542007-08-16 Javier Miranda <miranda@adacore.com> 3055 3056 * exp_ch9.adb (Build_Protected_Entry): Undo previous change because it 3057 is not really required and can introduce regression with the debugger. 3058 The original problem is fixed with the patch written for checks.adb. 3059 30602007-08-16 Thomas Quinot <quinot@adacore.com> 3061 3062 * g-dyntab.adb, g-table.adb, table.adb: (Set_Item): Suppress 3063 Range_Check on Allocated_Table. 3064 30652007-08-16 Vincent Celier <celier@adacore.com> 3066 3067 * make.adb (Collect_Arguments): Call Test_If_Relative_Path with 3068 Including_Non_Switch set to False. 3069 (Gnatmake): For the compiler, call Test_If_Relative_Path with 3070 Including_Non_Switch set to False. 3071 3072 * makeutl.adb, makeutl.ads (Test_If_Relative_Path): New Boolean 3073 parameter Including_Non_Switch, defaulted to True. When 3074 Including_Non_Switch is False, options that are not switches and 3075 appear as relative path are not converted to absolute paths. 3076 30772007-08-16 Nicolas Roche <roche@adacore.com> 3078 3079 * Makefile.in (gnatlib): Propagate FORCE_DEBUG_ADAFLAGS value to sub 3080 makefiles 3081 3082 * Make-lang.in: Update dependencies 3083 30842007-08-16 Hristian Kirtchev <kirtchev@adacore.com> 3085 3086 * sem_ch10.adb (Has_With_Clause): If the name of the with clause 3087 currently inspected is a selected component, retrieve the entity of 3088 its selector. 3089 (Install_Limited_Withed_Unit): Call Has_Limited_With_Clause starting 3090 from the immediate ancestor of Main_Unit_Entity. 3091 (Install_Limited_Withed_Unit): Do not install the limited view of 3092 package P if P is reachable through an ancestor chain from package C 3093 and C also has a with clause for P in its body. 3094 (Has_Limited_With_Clause): New routine. 3095 (Has_With_Clause): New routine. 3096 30972007-08-16 Ed Schonberg <schonberg@adacore.com> 3098 3099 * sem_ch12.adb (Copy_Generic_Node): A reference to a child unit of the 3100 generic for an enclosing instance is a global reference, even though 3101 its scope is the enclosing instance. 3102 31032007-08-16 Gary Dismukes <dismukes@adacore.com> 3104 Javier Miranda <miranda@adacore.com> 3105 3106 * sem_ch3.adb (OK_For_Limited_Init_In_05): Allow calls to 'Input to 3107 initialize a limited object. 3108 (Build_Derived_Record_Type): Add missing check of rules ARM 3.9.4 3109 13/2 and 14/2. 3110 Make sure Has_Complex_Representation is inherited by derived type. 3111 31122007-08-16 Robert Dewar <dewar@adacore.com> 3113 3114 * sem_ch5.adb (Analyze_Assignment): Make sure we still note update in 3115 exception case 3116 31172007-08-16 Ed Schonberg <schonberg@adacore.com> 3118 3119 * sem_disp.adb (Check_Dispatching_Operation): If the operation 3120 implements an operation inherited from a progenitor interface, verify 3121 that they are subtype-conformant. 3122 31232007-08-16 Hristian Kirtchev <kirtchev@adacore.com> 3124 Bob Duff <duff@adacore.com> 3125 Nicolas Setton <setton@adacore.com> 3126 3127 * sem_res.adb (Comes_From_Predefined_Lib_Unit): New. 3128 (Resolve): Alphabetize local variables. Add new variable From_Lib. When 3129 the statement which is being resolved comes from a predefined library 3130 unit, all non-predefined library interpretations are skipped. 3131 (Resolve_Op_Concat): If string concatenation was folded in the parser, 3132 but the "&" is user defined, give an error, because the folding would 3133 be wrong. 3134 3135 * sinfo.ads, sinfo.adb (Is_Folded_In_Parser): New flag to indicate that 3136 the parser has folded a long sequence of concatenations of string 3137 literals. 3138 3139 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Mark "JMPBUF_SAVE" 3140 and "JMP_BUF" variables as artificial. 3141 (N_String_Literal): Do not use alloca for very long string literals. Use 3142 xmalloc/free instead. Otherwise the stack might overflow. 3143 3144 * utils.c (init_gigi_decls): Mark "JMPBUF_T" type as created by the 3145 compiler. 3146 31472007-08-16 Vincent Celier <celier@adacore.com> 3148 3149 * vms_conv.adb (Process_Argument): Ensure that project related options 3150 are not put in the -cargs section when using GNAT COMPILE. 3151 31522007-08-16 Robert Dewar <dewar@adacore.com> 3153 3154 * gnat_ugn.texi: Add note on preprocessing (output file not written) 3155 31562007-08-16 Thomas Quinot <quinot@adacore.com> 3157 3158 * a-tags.adb: Minor reformatting. 3159 31602007-08-16 Bob Duff <duff@adacore.com> 3161 3162 * sem_type.ads, sem_ch4.adb: Minor reformatting. 3163 31642007-08-14 Thomas Quinot <quinot@adacore.com> 3165 3166 * g-soccon-interix.ads, a-excpol-interix.adb, a-intnam-interix.ads, 3167 s-osinte-interix.ads, system-interix.ads: Removed. 3168 31692007-08-14 Hristian Kirtchev <kirtchev@adacore.com> 3170 3171 * a-calend-vms.adb, a-calend.adb ("+", "-", Add, Subtract): Remove 3172 calls to Check_Within_Time_Bounds. 3173 ("+", "-", Add, Subtract): Remove calls to Check_Within_Time_Bounds. 3174 (Difference): Account for possible rounding of the resulting difference 3175 31762007-08-14 Robert Dewar <dewar@adacore.com> 3177 3178 * uintp.adb, a-ztedit.adb, s-wchcon.adb, xnmake.adb, s-wchcon.adb, 3179 par-ch5.adb, par-ch10.adb, get_targ.adb, a-wtedit.adb, a-teioed.adb, 3180 s-osinte-solaris.adb, s-osinte-solaris.ads, 3181 s-osinte-freebsd.ads, s-osinte-freebsd.adb: Minor reformatting. 3182 3183 * styleg.adb, styleg.ads, stylesw.adb, stylesw.ads: implement style 3184 switch -gnatyS. Enable -gnatyS in GNAT style check mode 3185 31862007-08-14 Robert Dewar <dewar@adacore.com> 3187 Ed Schonberg <schonberg@adacore.com> 3188 3189 * inline.adb, types.ads, inline.ads, frontend.adb, alloc.ads: 3190 Suppress unmodified in-out parameter warning in some cases 3191 This patch is a also fairly significant change to the way suppressible 3192 checks are handled. 3193 3194 * checks.ads, checks.adb (Install_Null_Excluding_Check): No check 3195 needed for access to concurrent record types generated by the expander. 3196 (Generate_Range_Check): When generating a temporary to capture the 3197 value of a conversion that requires a range check, set the type of the 3198 temporary before rewriting the node, so that the type is always 3199 properly placed for back-end use. 3200 (Apply_Float_Conversion_Check): Handle case where the conversion is 3201 truncating. 3202 (Get_Discriminal): Code reformatting. Climb the scope stack looking 3203 for a protected type in order to examine its discriminants. 3204 32052007-08-14 Robert Dewar <dewar@adacore.com> 3206 Gary Dismukes <dismukes@adacore.com> 3207 Ed Schonberg <schonberg@adacore.com> 3208 Thomas Quinot <quinot@adacore.com> 3209 3210 * a-stzsup.adb, nlists.adb, lib-util.adb, treepr.adb, 3211 a-stwisu.adb, a-strsup.adb: Fix warnings for range 3212 tests optimized out. 3213 3214 * exp_ch4.adb (Expand_N_In): Add warnings for range tests optimized out. 3215 (Get_Allocator_Final_List): For the case of an anonymous access type 3216 that has a specified Associated_Final_Chain, do not go up to the 3217 enclosing scope. 3218 (Expand_N_Type_Conversion): Test for the case of renamings of access 3219 parameters when deciding whether to apply a run-time accessibility 3220 check. 3221 (Convert_Aggr_In_Allocator): Use Insert_Actions to place expanded 3222 aggregate code before allocator, and ahead of declaration for 3223 temporary, to prevent access before elaboration when the allocator is 3224 an actual for an access parameter. 3225 (Expand_N_Type_Conversion): On an access type conversion involving an 3226 access parameter, do not apply an accessibility check when the 3227 operand's original node was an attribute other than 'Access. We now 3228 create access conversions for the expansion of 'Unchecked_Access and 3229 'Unrestricted_Access in certain cases and clearly accessibility should 3230 not be checked for those. 3231 3232 * exp_ch6.ads, exp_ch6.adb (Add_Call_By_Copy_Code): For an actual that 3233 includes a type conversion of a packed component that has been expanded, 3234 recover the original expression for the object, and use this expression 3235 in the post-call assignment statement, so that the assignment is made 3236 to the object and not to a back-end temporary. 3237 (Freeze_Subprogram): In case of primitives of tagged types not defined 3238 at the library level force generation of code to register the primitive 3239 in the dispatch table. In addition some code reorganization has been 3240 done to leave the implementation clear. 3241 (Expand_Call): When expanding an inherited implicit conversion, 3242 preserve the type of the inherited function after the intrinsic 3243 operation has been expanded. 3244 3245 * exp_ch2.ads, exp_ch2.adb 3246 (Expand_Entry_Parameter.In_Assignment_Context): An implicit dereference 3247 of an entry formal appearing in an assignment statement does not assign 3248 to the formal. 3249 (Expand_Current_Value): Instead of calling a routine to determine 3250 whether the prefix of an attribute reference should be optimized or 3251 not, prevent the optimization of such prefixes all together. 3252 3253 * lib-xref.adb (Generate_Reference.Is_On_LHS): An indexed or selected 3254 component whose prefix is known to be of an access type is an implicit 3255 dereference and does not assign to the prefix. 3256 32572007-08-14 Ed Schonberg <schonberg@adacore.com> 3258 Robert Dewar <dewar@adacore.com> 3259 3260 * atree.ads, atree.adb (New_Copy_Tree): If hash table is being used and 3261 itype is visited, make an entry into table to link associated node and 3262 new itype. 3263 Add comments and correct harmless error in Build_NCT_Hash_Tables 3264 (Array_Aggr_Subtype): Associate each itype created for an index type to 3265 the corresponding range construct, and not to the aggregate itself. to 3266 maintain a one-to-one correspondence between itype and its associated 3267 node, to prevent errors when complex expression is copied. 3268 Fix mishandling of multiple levels of parens 3269 3270 * sem_aggr.adb: Create a limited view of an incomplete type, to make 3271 treatment of limited views uniform for all visible declarations in a 3272 limited_withed package. 3273 (New_Copy_Tree): If hash table is being used and itype is visited, 3274 make an entry into table to link associated node and new itype. 3275 (Resolve_Record_Aggregate): Do not add an others box association for a 3276 discriminated record component that has only discriminants, when there 3277 is a box association for the component itself. 3278 3279 * par-ch4.adb: Fix mishandling of multiple levels of parens 3280 32812007-08-14 Robert Dewar <dewar@adacore.com> 3282 3283 * comperr.adb: Fix problem with suppressing warning messages from gigi 3284 3285 * erroutc.ads, erroutc.adb, errout.ads, 3286 errout.adb (Write_Eol): Remove trailing spaces before writing the line 3287 (Write_Eol_Keep_Blanks): New procedure to write a line, including 3288 possible trailing spaces. 3289 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line 3290 Fix problem with suppressing warning messages from back end 3291 Improve handling of deleted warnings 3292 3293 * gnat1drv.adb: 3294 Fix problem with suppressing warning messages from back end 3295 Handle setting of Static_Dispatch_Tables flag. 3296 3297 * prepcomp.adb: 3298 Fix problem with suppressing warning messages from back end 3299 3300 * exp_intr.adb: Improve handling of deleted warnings 3301 33022007-08-14 Robert Dewar <dewar@adacore.com> 3303 3304 * debug.adb: Improve -gnatdI to cover all cases of serialization 3305 Add documentation of dZ, d.t 3306 3307 * sprint.ads, sprint.adb: Improve -gnatdI to cover all cases of 3308 serialization. 3309 (Sprint_Node_Actual): Generate new output associated with implicit 3310 importation and implicit exportation of object declarations. 3311 33122007-08-14 Ed Schonberg <schonberg@adacore.com> 3313 Robert Dewar <dewar@adacore.com> 3314 Javier Miranda <miranda@adacore.com> 3315 Gary Dismukes <dismukes@adacore.com> 3316 3317 * einfo.ads, einfo.adb: Create a limited view of an incomplete type, 3318 to make treatment of limited views uniform for all visible declarations 3319 in a limited_withed package. 3320 Improve warnings for in out parameters 3321 (Set_Related_Interaface/Related_Interface): Allow the use of this 3322 attribute with constants. 3323 (Write_Field26_Name): Handle attribute Related_Interface in constants. 3324 Warn on duplicate pragma Preelaborable_Initialialization 3325 3326 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Body): Force the 3327 generation of a freezing node to ensure proper management of null 3328 excluding access types in the backend. 3329 (Create_Extra_Formals): Test base type of the formal when checking for 3330 the need to add an extra accessibility-level formal. Pass the entity E 3331 on all calls to Add_Extra_Formal (rather than Scope (Formal) as was 3332 originally being done in a couple of cases), to ensure that the 3333 Extra_Formals list gets set on the entity E when the first entity is 3334 added. 3335 (Conforming_Types): Add missing calls to Base_Type to the code that 3336 handles anonymous access types. This is required to handle the 3337 general case because Process_Formals builds internal subtype entities 3338 to handle null-excluding access types. 3339 (Make_Controlling_Function_Wrappers): Create wrappers for constructor 3340 functions that need it, even when not marked Requires_Overriding. 3341 Improve warnings for in out parameters 3342 (Analyze_Function_Return): Warn for disallowed null return 3343 Warn on return from procedure with unset out parameter 3344 Ensure consistent use of # in error messages 3345 (Check_Overriding_Indicator): Add in parameter Is_Primitive. 3346 (Analyze_Function_Return): Move call to Apply_Constraint_Check before 3347 the implicit conversion of the expression done for anonymous access 3348 types. This is required to generate the code of the null excluding 3349 check (if required). 3350 3351 * sem_warn.ads, sem_warn.adb (Check_References.Publicly_Referenceable): 3352 A formal parameter is never publicly referenceable outside of its body. 3353 (Check_References): For an unreferenced formal parameter in an accept 3354 statement, use the same warning circuitry as for subprogram formal 3355 parameters. 3356 (Warn_On_Unreferenced_Entity): New subprogram, taken from 3357 Output_Unreferenced_Messages, containing the part of that routine that 3358 is now reused for entry formals as described above. 3359 (Goto_Spec_Entity): New function 3360 (Check_References): Do not give IN OUT warning for dispatching operation 3361 Improve warnings for in out parameters 3362 (Test_Ref): Check that the entity is not undefinite before calling 3363 Scope_Within, in order to avoid infinite loops. 3364 Warn on return from procedure with unset out parameter 3365 Improved warnings for unused variables 3366 33672007-08-14 Robert Dewar <dewar@adacore.com> 3368 Javier Miranda <miranda@adacore.com> 3369 Gary Dismukes <dismukes@adacore.com> 3370 3371 * exp_attr.adb (Expand_N_Attribute_Reference): Handle case of child unit 3372 (Expand_N_Attribute_Reference): Further unify the handling of the 3373 three forms of access attributes, using common code now for all three 3374 cases. Add a test for the case of applying an access attribute to 3375 an explicit dereference when the context is an access-to-interface 3376 type. In that case we need to apply the conversion to the prefix 3377 of the explicit dereference rather than the prefix of the attribute. 3378 (Attribute_Version, UET_Address): Set entity as internal to ensure 3379 proper dg output of implicit importation. 3380 (Expand_Access_To_Type): Removed. 3381 (Expand_N_Attribute_Reference): Merge the code from the three cases 3382 of access attributes, since the processing is largely identical for 3383 these cases. The substantive fix here is to process the case of a 3384 type name prefix (current instance case) before handling the case 3385 of interface prefixes. 3386 33872007-08-14 Thomas Quinot <quinot@adacore.com> 3388 Ed Schonberg <schonberg@adacore.com> 3389 Javier Miranda <miranda@adacore.com> 3390 Robert Dewar <dewar@adacore.com> 3391 3392 * exp_ch3.ads, exp_ch3.adb (Add_Final_Chain): New subprogram. 3393 (Freeze_Array_Type, Freeze_Record_Type): For the case of a component 3394 type that is an anonymous access to controlled object, establish 3395 an associated finalization chain to avoid corrupting the global 3396 finalization list when a dynamically allocated object designated 3397 by such a component is deallocated. 3398 (Make_Controlling_Function_Wrappers): Create wrappers for constructor 3399 functions that need it, even when not marked Requires_Overriding. 3400 (Initialize_Tag): Replace call to has_discriminants by call to 3401 Is_Variable_Size_Record in the circuitry that handles the 3402 initialization of secondary tags. 3403 (Is_Variable_Size_Record): New implementation. 3404 (Expand_N_Object_Declaration): Suppress call to init proc if there is a 3405 Suppress_Initialization pragma for a derived type. 3406 (Is_Variable_Size_Record): New subprogram. 3407 (Build_Offset_To_Top_Functions): New implementation that simplifies the 3408 initial version of this routine and also fixes problems causing 3409 incomplete initialization of the table of interfaces. 3410 (Build_Init_Procedure): Improve the generation of code to initialize the 3411 the tag components of secondary dispatch tables. 3412 (Init_Secondary_Tags): New implementation that simplifies the previous 3413 version of this routine. 3414 (Make_DT): Add parameter to indicate when type has been frozen by an 3415 object declaration, for diagnostic purposes. 3416 (Check_Premature_Freezing): New subsidiary procedure of Make_DT, to 3417 diagnose attemps to freeze a subprogram when some untagged type of its 3418 profile is a private type whose full view has not been analyzed yet. 3419 (Freeze_Array_Type): Generate init proc for packed array if either 3420 Initialize or Normalize_Scalars is set. 3421 (Make_Controlling_Function_Wrappers, Make_Null_Procedure_Specs): when 3422 constructing the new profile, copy the null_exclusion indicator for each 3423 parameter, to ensure full conformance of the new body with the spec. 3424 3425 * sem_type.ads, sem_type.adb (Make_Controlling_Function_Wrappers): 3426 Create wrappers for constructor functions that need it, even when not 3427 marked Requires_Overriding. 3428 (Covers): Handle properly designated types of anonymous access types, 3429 whose non-limited views are themselves incomplete types. 3430 (Add_Entry): Use an entity to store the abstract operation which hides 3431 an interpretation. 3432 (Binary_Op_May_Be_Hidden): Rename to Binary_Op_Interp_Has_Abstract_Op. 3433 (Collect_Interps): Use Empty as an actual for Abstract_Op in the 3434 initialization aggregate. 3435 (Function_Interp_May_Be_Hidden): Rename to 3436 Function_Interp_Has_Abstract_Op. 3437 (Has_Compatible_Type): Remove machinery that skips interpretations if 3438 they are labeled as potentially hidden by an abstract operator. 3439 (Has_Hidden_Interp): Rename to Has_Abstract_Op. 3440 (Set_May_Be_Hidden): Rename to Set_Abstract_Op. 3441 (Write_Overloads): Output the abstract operator if present. 3442 (Add_Entry): Before inserting a new entry into the interpretation table 3443 for a node, determine whether the entry will be disabled by an abstract 3444 operator. 3445 (Binary_Op_Interp_May_Be_Hidden): New routine. 3446 (Collect_Interps): Add value for flag May_Be_Hidden in initialization 3447 aggregate. 3448 (Function_Interp_May_Be_Hidden): New routine. 3449 (Has_Compatible_Type): Do not consider interpretations hidden by 3450 abstract operators when trying to determine whether two types are 3451 compatible. 3452 (Has_Hidden_Interp): New routine. 3453 (Set_May_Be_Hidden_Interp): New routine. 3454 (Write_Overloads): Write the status of flag May_Be_Hidden. 3455 34562007-08-14 Ed Schonberg <schonberg@adacore.com> 3457 Javier Miranda <miranda@adacore.com> 3458 3459 * exp_disp.ads, exp_disp.adb (Build_Dispatch_Tables): Handle tagged 3460 types declared in the declarative part of a nested package body or in 3461 the proper body of a stub. 3462 (Set_All_DT_Position): Add missing check to avoid wrong assignation 3463 of the same dispatch table slot to renamed primitives. 3464 (Make_Select_Specific_Data_Table): Handle private types. 3465 (Tagged_Kind): Handle private types. 3466 (Make_Tags, Make_DT): Set tag entity as internal to ensure proper dg 3467 output of implicit importation and exportation. 3468 (Expand_Interface_Thunk): Fix bug in the expansion assuming that the 3469 first formal of the thunk is always associated with the controlling 3470 type. In addition perform the following code cleanup: remove formal 3471 Thunk_Alias which is no longer required, cleanup evaluation of the 3472 the controlling type, and update the documentation. 3473 Replace occurrence of Default_Prim_Op_Count by 3474 Max_Predef_Prims. Addition of compile-time check to verify 3475 that the value of Max_Predef_Prims is correct. 3476 (Check_Premature_Freezing): Apply check in Ada95 mode as well. 3477 (Make_DT): Add parameter to indicate when type has been frozen by an 3478 object declaration, for diagnostic purposes. 3479 (Build_Static_Dispatch_Tables): New subprogram that takes care of the 3480 construction of statically allocated dispatch tables. 3481 (Make_DT): In case of library-level tagged types export the declaration 3482 of the primary tag. Remove generation of tags (now done by Make_Tags). 3483 Additional modifications to handle non-static generation of dispatch 3484 tables. Take care of building tables for asynchronous interface types 3485 (Make_Tags): New subprogram that generates the entities associated with 3486 the primary and secondary tags of Typ and fills the contents of Access_ 3487 Disp_Table. In case of library-level tagged types imports the forward 3488 declaration of the primary tag that will be declared later by Make_DT. 3489 (Expand_Interface_Conversion): In case of access types to interfaces 3490 replace an itype declaration by an explicit type declaration to avoid 3491 problems associated with the scope of such itype in transient blocks. 3492 34932007-08-14 Robert Dewar <dewar@adacore.com> 3494 Ed Schonberg <schonberg@adacore.com> 3495 Javier Miranda <miranda@adacore.com> 3496 3497 * exp_util.ads, exp_util.adb: 3498 This patch replaces a number of occurrences of explicit tests for N_Null 3499 with calls to Known_Null. This improves tracking of null values, since 3500 Known_Null also catches null constants, and variables currently known to 3501 be null, so we get better tracking. 3502 (Ensure_Defined): create an itype reference only in the scope of the 3503 itype. 3504 (Side_Effect_Free): A selected component of an access type that 3505 denotes a component with a rep clause must be treated as not 3506 side-effect free, because if it is part of a linked structure its 3507 value may be affected by a renaming. 3508 (Expand_Subtype_From_Expr): For limited objects initialized with build 3509 in place function calls, do nothing; otherwise we prematurely introduce 3510 an N_Reference node in the expression initializing the object, which 3511 breaks the circuitry that detects and adds the additional arguments to 3512 the called function. Bug found working in the new patch for statically 3513 allocated dispatch tables. 3514 (Is_Library_Level_Tagged_Type): New subprogram. 3515 (Remove_Side_Effects): If the expression of an elementary type is an 3516 operator treat as a function call. 3517 (Make_Literal_Range): If the index type of the array is not integer, use 3518 attributes properly to compute the constraint on the resulting aggregate 3519 which is a string. 3520 3521 * freeze.ads, freeze.adb (Freeze_Entity): If the entity is a 3522 class-wide type whose base type is an incomplete private type, leave 3523 class-wide type unfrozen so that freeze nodes can be generated 3524 properly at a later point. 3525 (Freeze_Entity, array case): Handle case of pragma Pack and component 3526 size attributre clause for same array. 3527 35282007-08-14 Vincent Celier <celier@adacore.com> 3529 3530 * prj.ads, prj.adb: Update Project Manager to new attribute names for 3531 gprbuild. 3532 Allow all valid declarations in configuration project files 3533 (Reset): Initialize all tables and hash tables in the project tree data 3534 Major update of the Project Manager and of the project aware tools, 3535 including gprmake, so that the same sources in the GNAT repository 3536 can be used by gprbuild. 3537 (Slash_Id): Change type to be Path_Name_Type 3538 (Slash): Return a Path_Name_Type instead of a File_Name_Type 3539 3540 * prj-attr.ads, prj-attr.adb: Remove attributes no longer used by 3541 gprbuild. 3542 Update Project Manager to new attribute names for ghprbuild 3543 Allow all valid declarations in configuration project files 3544 Major update of the Project Manager and of the project aware tools, 3545 including gprmake, so that the same sources in the GNAT repository 3546 can be used by gprbuild. 3547 3548 * prj-com.ads: 3549 Major update of the Project Manager and of the project aware tools, 3550 including gprmake, so that the same sources in the GNAT repository 3551 can be used by gprbuild. 3552 3553 * prj-dect.adb (Prj.Strt.Attribute_Reference): Set correctly the case 3554 insensitive flag for attributes with optional index. 3555 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative 3556 array attribute, put the index in lower case. 3557 Update Project Manager to new attribute names for ghprbuild 3558 Allow all valid declarations in configuration project files 3559 Major update of the Project Manager and of the project aware tools, 3560 including gprmake, so that the same sources in the GNAT repository 3561 can be used by gprbuild. 3562 3563 * prj-env.ads, prj-env.adb: 3564 Major update of the Project Manager and of the project aware tools, 3565 including gprmake, so that the same sources in the GNAT repository 3566 can be used by gprbuild. 3567 (Get_Reference): Change type of parameter Path to Path_Name_Type 3568 3569 * prj-ext.ads, prj-ext.adb (Initialize_Project_Path): Make sure, after 3570 removing '-' from the path to start with the first character of the 3571 next directory. 3572 Major update of the Project Manager and of the project aware tools, 3573 including gprmake, so that the same sources in the GNAT repository 3574 can be used by gprbuild. 3575 Major update of the Project Manager and of the project aware tools, 3576 including gprmake, so that the same sources in the GNAT repository 3577 can be used by gprbuild. 3578 3579 * prj-nmsc.ads, prj-nmsc.adb: 3580 Update Project Manager to new attribute names for ghprbuild 3581 Allow all valid declarations in configuration project files 3582 (Search_Directories): Detect subunits that are specified with an 3583 attribute Body in package Naming. Do not replace a source/unit in the 3584 same project when the order of the source dirs are known. Detect 3585 duplicate sources/units in the same project when the order of the 3586 source dirs are not known. 3587 (Check_Ada_Name): Allow all identifiers that are not reserved words 3588 in Ada 95. 3589 Major update of the Project Manager and of the project aware tools, 3590 including gprmake, so that the same sources in the GNAT repository 3591 can be used by gprbuild. 3592 (Look_For_Sources): If the list of sources is empty, set the object 3593 directory of non extending project to nil. 3594 Change type of path name variables to be Path_Name_Type 3595 (Locate_Directory): Make sure that on Windows '/' is converted to '\', 3596 otherwise creating missing directories will fail. 3597 3598 * prj-attr-pm.adb, prj-tree.ads, prj-proc.ads, prj-proc.adb, 3599 prj-part.ads, prj-part.adb: 3600 Major update of the Project Manager and of the project aware tools, 3601 including gprmake, so that the same sources in the GNAT repository 3602 can be used by gprbuild. 3603 3604 * prj-strt.adb (Prj.Strt.Attribute_Reference): Set correctly the case 3605 insensitive flag for attributes with optional index. 3606 (Prj.Dect.Parse_Attribute_Declaration): For case insensitive associative 3607 array attribute, put the index in lower case. 3608 (Parse_Variable_Reference): Allow the current project name to be used in 3609 the prefix of an attribute reference. 3610 3611 * prj-util.ads, prj-util.adb 3612 (Value_Of (for arrays)): New Boolean parameter Force_Lower_Case_Index, 3613 defaulted to False. When True, always check against indexes in lower 3614 case. 3615 3616 * snames.ads, snames.h, snames.adb: 3617 Update Project Manager to new attribute names for gprbuild 3618 Allow all valid declarations in configuration project files 3619 36202007-08-14 Robert Dewar <dewar@adacore.com> 3621 Ed Schonberg <schonberg@adacore.com> 3622 3623 * opt.ads: Warning for non-local exception propagation now off by 3624 default 3625 New switch -gnatI to disable representation clauses 3626 Implement new pragma Implicit_Packing 3627 3628 * usage.adb: 3629 Warning for non-local exception propagation now off by default 3630 Add warning for unchecked conversion of pointers wi different 3631 conventions. 3632 New switch -gnatI to disable representation clauses 3633 3634 * usage.adb: new switch -gnatyS 3635 3636 * gnat_ugn.texi: For the gnatcheck Non_Qualified_Aggregates rule add a 3637 note that aggregates of anonymous array types are not flagged. 3638 -gnatwc now includes membership tests optimized away 3639 -gnatw.x warnings are now off by default 3640 Added conditional compilation Appendix 3641 Add documentation of -gnatI 3642 Add documentation for new -gnatyS style check 3643 Update documentation about SAL and auto-init on Windows. 3644 3645 * gnat_rm.texi: 3646 Add documentation for pragma Check_Name and 'Enabled attribute 3647 Document that Eliminate on dispatching operation is ignored 3648 Document IDE attributes VCS_Repository_Root and VCS_Patch_Root. 3649 Document pragma Main 3650 Document pragma Implicit_Packing 3651 3652 * sem_ch13.adb: Add warning for unchecked conversion of pointers wi 3653 different conventions 3654 New switch -gnatI to disable representation clauses 3655 3656 * switch-c.adb (Scan_Front_End_Switches): When a -gnat switch is not 3657 recognized, report the invalid characters including "-gnat" instead of 3658 just the first character in the switch. 3659 New switch -gnatI to disable representation clauses 3660 Set Warn_On_Object_Renames_Function true for -gnatg 3661 3662 * vms_data.ads: Add doc for /IGNORE_REP_CLAUSES 3663 Add STATEMENTS_AFTER_THEN_ELSE as synonym for -gnatyS 3664 Add qualifier /ADD_PROJECT_SEARCH_DIR= for different tools, equivalent 3665 to switch -aP (add directory to project search dir). 3666 3667 * par-prag.adb: Implement new pragma Implicit_Packing 3668 3669 * sem_prag.adb (Analyze_Pragma, case Complex_Representation): Mark the 3670 type as having a non-standard representation, to force expansion on 3671 conversion to related types. 3672 (Analyze_Pragma): Warn on misspelled pragma 3673 (Analyze_Pragma, case Convention_Identifier): Fix checking of second arg 3674 Ensure consistent use of # in error messages 3675 Implement pragma Implicit_Packing 3676 36772007-08-14 Olivier Hainque <hainque@adacore.com> 3678 Eric Botcazou <ebotcazou@adacore.com> 3679 3680 * targtyps.c (get_target_maximum_default_alignment): New function. 3681 Maximum alignment 3682 that the compiler might choose by default for a type or object. 3683 (get_target_default_allocator_alignment): New function. Alignment known 3684 to be honored by the target default allocator. 3685 (get_target_maximum_allowed_alignment): New function. Maximum alignment 3686 we might accept for any type or object on the target. 3687 (get_target_maximum_alignment): Now synonym of maximum_default_alignment 3688 3689 * gigi.h (get_target_maximum_default_alignment): Declare new function. 3690 (get_target_default_allocator_alignment): Likewise. 3691 (get_target_maximum_allowed_alignment): Likewise. 3692 3693 PR ada/19037 3694 * decl.c (gnat_to_gnu_entity) <object>: Except for the renaming of the 3695 result of a function call, first try to use a stabilized reference for 3696 a constant renaming too. 3697 (validate_alignment): Use target_maximum_allowed_alignment instead of 3698 MAX_OFILE_ALIGNMENT as the upper bound to what we accept. 3699 (gnat_to_gnu_entity): Use common nodes directly. 3700 (gnat_to_gnu_entity) <object>: Pick the values of the type to annotate 3701 alignment and size for the object. 3702 (lvalue_required_p): Handle N_Parameter_Association like N_Function_Call 3703 and N_Procedure_Call_Statement. 3704 (takes_address): Rename to lvalue_required_p, add third parameter 3705 'aliased' and adjust recursive calls. 3706 <N_Indexed_Component>: Update 'aliased' from the array type. 3707 <N_Selected_Component>: New case. 3708 <N_Object_Renaming_Declaration>: New Likewise. 3709 (Identifier_to_gnu): Adjust for above changes. 3710 (maybe_stabilize_reference) <CONST_DECL>: New case. 3711 3712 * utils2.c (build_binary_op) <ARRAY_RANGE_REF>: Look through conversion 3713 between type variants. 3714 (build_simple_component_ref): Likewise. 3715 (build_call_alloc_dealloc): Use target_default_allocator_alignment 3716 instead of BIGGEST_ALIGNMENT as the threshold to trigger the super 3717 aligning type circuitry for allocations from the default storage pool. 3718 (build_allocator): Likewise. 3719 (build_simple_component_ref): Manually fold the reference for a 3720 constructor if the record type contains a template. 3721 3722 * utils.c (value_zerop): Delete. 3723 (gnat_init_decl_processing): Emit debug info for common types. 3724 (rest_of_record_type_compilation): If a union contains a field 3725 with a non-constant qualifier, treat it as variable-sized. 3726 (finish_record_type): Give the stub TYPE_DECL a name. 3727 (rest_of_record_type_compilation): Likewise. 3728 (convert) <CONSTRUCTOR>: New case. Build a new constructor if 3729 types are equivalent array types. 3730 (create_field_decl): Claim fields of any ARRAY_TYPE are addressable, 3731 even if the type is not passed by reference. 3732 (static_ctors, static_dtors): Delete. 3733 (end_subprog_body): Do not record constructors and destructors. 3734 (build_global_cdtor): Delete. 3735 (gnat_write_global_declarations): Do not call build_global_cdtor. 3736 3737 * lang-spARGET_VXWORKS_RTP is defined, append -mrtp when 3738 -fRTS=rtp is specified. 3739 If CONFIG_DUAL_EXCEPTIONS is 1, append -fsjlj when -fRTS=sjlj is 3740 specified. 3741 3742 * misc.c (gnat_init_gcc_eh): Use __gnat_eh_personality_sj for the name 3743 of the personality function with SJLJ exceptions. 3744 3745 * raise-gcc.c (PERSONALITY_FUNCTION): Use __gnat_eh_personality_sj for 3746 the name of the personality function with SJLJ exceptions. 3747 37482007-08-14 Robert Dewar <dewar@adacore.com> 3749 Ed Schonberg <schonberg@adacore.com> 3750 3751 * par.ads, par.adb: Improve handling of extra right parens. 3752 (Par): Remove flag From_Limited_With_Clause. 3753 3754 * par-util.adb, par-ch3.adb: Improve error recovery for bad constraint 3755 Improve handling of extra right parens. 3756 37572007-08-14 Robert Dewar <dewar@adacore.com> 3758 3759 * par-tchk.adb (TF_Semicolon): Improve error recovery 3760 37612007-08-14 Robert Dewar <dewar@adacore.com> 3762 Ed Schonberg <schonberg@adacore.com> 3763 3764 * sem_attr.ads, sem_attr.adb (Analyze_Attribute, case Value): For 3765 enumeration type, mark all literals as referenced. 3766 (Eval_Attribute, case 'Image): If the argument is an enumeration 3767 literal and names are available, constant-fold but mark nevertheless as 3768 non-static. 3769 Clean up function names. 3770 (Name_Modifies_Prefix): Rename to Name_Implies_Lvalue_Prefix. Clarify 3771 comment. 3772 (Requires_Simple_Name_Prefix): Removed. 3773 37742007-08-14 Robert Dewar <dewar@adacore.com> 3775 Ed Schonberg <schonberg@adacore.com> 3776 3777 * sem_ch11.adb: Improved warnings for unused variables 3778 3779 * sem_ch3.ads, sem_ch3.adb (Build_Derived_Record_Type): If the ancestor 3780 is a synchronized interface, the derived type is limited. 3781 (Analyze_Object_Declaration): Mark the potential coextensions in the 3782 definition and expression of an object declaration node. 3783 (Build_Derived_Type): For the completion of a private type declaration 3784 with a derived type declaration, chain the parent type's representation 3785 items to the last representation item of the derived type (not the 3786 first one) if they are not present already. 3787 (Analyze_Object_Declaration, Constant_Redeclaration): Allow incomplete 3788 object declaration of forward references to tags. 3789 (Access_Subprogram_Declaration): In Ada2005, anonymous access to 3790 subprogram types can appear as access discriminants of synchronized 3791 types. 3792 (OK_For_Limited_Init_In_05): The initialization is legal is it is a call 3793 given in prefixed form as a selected component. 3794 (Process_Discriminants): If not all discriminants have defaults, place 3795 error message on a default that is present. 3796 (Analyze_Private_Extension_Declaration): Diagnose properly an attempt to 3797 extend a synchronized tagged type. 3798 Improved warnings for unused variables 3799 (Is_Visible_Component): Fix a visibility hole on a component inherited 3800 by a private extension when parent is itself declared as a private 3801 extension, and the derivation is in a child unit. 3802 (Find_Hidden_Interface): Move spec from the package body. 3803 38042007-08-14 Robert Dewar <dewar@adacore.com> 3805 Ed Schonberg <schonberg@adacore.com> 3806 3807 * sem_ch5.adb: Improve warnings on redundant assignments 3808 3809 * sem_util.ads, sem_util.adb: (Is_Variable): Add defense against junk 3810 parameter 3811 (Is_Synchronized_Tagged_Type): New subprogram that returns true 3812 in case of synchronized tagged types (AARM 3.9.4 (6/2)). 3813 (Safe_To_Capture_Value): Can now return True for constants, even if Cond 3814 is set to False. Improves handling of Known_[Not_]Null. 3815 (Wrong_Type): Special case address arithmetic attempt 3816 (Collect_Abstract_Interfaces): Add new formal to allow collecting 3817 abstract interfaces just using the partial view of private types. 3818 (Has_Abstract_Interfaces): Add new formal to allow checking types 3819 covering interfaces using the partial view of private types. 3820 (Is_Fully_Initialized_Type): Special VM case for uTag component. This 3821 component still needs to be defined in this case, but is never 3822 initialized as VMs are using other dispatching mechanisms. 3823 (Abstract_Interface_List): For a protected type, use base type to get 3824 proper declaration. 3825 Improve warnings on redundant assignments 3826 (Is_Variable): Handle properly an implicit dereference of a prefixed 3827 function call. 3828 (Build_Actual_Subtype): If this is an actual subtype for an 3829 unconstrained formal parameter, use the sloc of the body for the new 3830 declaration, to prevent anomalises in the debugger. 3831 38322007-08-14 Robert Dewar <dewar@adacore.com> 3833 3834 * sem_elim.adb (Set_Eliminated): Ignore pragma Eliminate for 3835 dispatching operation 3836 38372007-08-14 Ed Schonberg <schonberg@adacore.com> 3838 Gary Dismukes <dismukes@adacore.com> 3839 3840 * exp_aggr.ads, 3841 exp_aggr.adb (Convert_Aggr_In_Allocator): Use Insert_Actions to place 3842 expanded aggregate code before allocator, and ahead of declaration for 3843 temporary, to prevent access before elaboration when the allocator is 3844 an actual for an access parameter. 3845 (Is_Static_Dispatch_Table_Aggregate): Handle aggregates initializing 3846 the TSD and the table of interfaces. 3847 (Convert_To_Assignments): Augment the test for delaying aggregate 3848 expansion for limited return statements to include the case of extended 3849 returns, to prevent creation of an unwanted transient scope. 3850 (Is_Static_Dispatch_Table_Aggregate): New subprogram. 3851 (Expand_Array_Aggregate): Handle aggregates associated with 3852 statically allocated dispatch tables. 3853 (Expand_Record_Aggregate): Handle aggregates associated with 3854 statically allocated dispatch tables. 3855 (Gen_Ctrl_Actions_For_Aggr): Generate a finalization list for allocators 3856 of anonymous access type. 3857 38582007-08-14 Ed Schonberg <schonberg@adacore.com> 3859 3860 * exp_ch5.adb (Expand_Assign_Array): If source or target of assignment 3861 is a variable that renames a slice, use the variable itself in the 3862 expannsion when the renamed expression itself may be modified between 3863 the declaration of the renaming and the array assignment. 3864 38652007-08-14 Jerome Guitton <guitton@adacore.com> 3866 3867 * s-taprop-lynxos.adb, s-taprop-tru64.adb, s-taprop-irix.adb, 3868 s-taprop-hpux-dce.adb, s-taprop-dummy.adb, s-taprop-solaris.adb, 3869 s-taprop-vms.adb, s-taprop-posix.adb (Continue_Task, Stop_All_Tasks): 3870 New functions; dummy implementations. 3871 3872 * s-osinte-vxworks.ads (Task_Stop, Task_Cont, Int_Lock, Int_Unlock): New 3873 functions, used to implement the multi-tasks mode routines on VxWorks. 3874 3875 * s-osinte-vxworks.adb, s-osinte-vxworks6.adb (Task_Cont, Task_Stop): 3876 New functions, thin 3877 binding to the VxWorks routines which have changed between VxWorks 5 3878 and 6. 3879 (Int_Lock, Int_Unlock): New function, thin binding to kernel routines 3880 which are not callable from a RTP. 3881 3882 * s-taprop-vxworks.adb (Stop_All_Tasks, Continue_Task): New functions, 3883 implemented for the multi-tasks mode on VxWorks 5 and 6. 3884 3885 * s-taprop.ads (Stop_All_Tasks, Continue_Task): New functions. 3886 3887 * s-tasdeb.ads, s-tasdeb.adb (Continue_All_Tasks, Stop_All_Tasks): New 3888 functions. 3889 38902007-08-14 Vincent Celier <celier@adacore.com> 3891 3892 * clean.adb, fmap.adb, sinput-p.adb, sinput-p.ads, gnatcmd.adb, 3893 gnatname.adb, makeutl.ads, makeutl.adb, makegpr.adb, mlib-tgt-vms.adb 3894 mlib-tgt-darwin.adb, mlib-tgt-lynxos.adb, mlib-prj.adb, mlib-tgt.adb, 3895 mlib-tgt.ads, mlib-tgt-irix.adb mlib-tgt-hpux.adb, mlib-tgt-linux.adb, 3896 mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, mlib-tgt-vms-ia64.adb, 3897 mlib-tgt-mingw.adb, mlib-tgt-vxworks.adb, mlib-tgt-aix.adb, 3898 mlib-tgt-tru64.adb, mlib.ads, mlib.adb (Create_Sym_Links): New 3899 procedure. 3900 (Major_Id_Name): New function. 3901 mlib-tgt.ads/mlib.tgt.adb: 3902 (Library_Major_Minor_Id_Supported): New function, default returns True 3903 Most mlib-tgt-*.adb that support shared libraries and symbolic links: 3904 (Build_Dynamic_Library): Add support for major/minor ids for shared libs 3905 Other mlib-tgt-*.adb (aix, mingw, vms, vxworks, xi): 3906 Implementation of Library_Major_Minor_Id_Supported returns False 3907 clean.adb: 3908 (Clean_Library_Directory): If major/minor ids are supported, clean all 3909 library files. 3910 Major update of the Project Manager and of the project aware tools, 3911 including gprmake, so that the same sources in the GNAT repository 3912 can be used by gprbuild. 3913 39142007-08-14 Olivier Hainque <hainque@adacore.com> 3915 3916 * system-solaris-x86.ads (ZCX_By_Default): Switch to True. 3917 (GCC_ZCX_Support): Switch to True. 3918 3919 * s-intman-solaris.adb (Notify_Exception): Call 3920 Adjust_Context_For_Raise before raising, as expected for signal 3921 handlers in general. 3922 3923 * s-intman-posix.adb (Notify_Exception): Remove declaration of 3924 Adjust_Context_For_Raise, moved to the spec of this unit to be visible 3925 to other implementation bodies. 3926 3927 * s-intman.ads (Adjust_Context_For_Raise): Declare and import here, to 3928 be visible by multiple implementation bodies. 3929 3930 * init.c [VMS section] (__gnat_handle_vms_condition): Adjust context 3931 only for conditions coming from hardware. 3932 [alpha-tru64 section] (__gnat_adjust_context_for_raise): Implement, 3933 adjustments to signal context prior to exception raise from signal 3934 handler. 3935 (__gnat_map_signal for VxWorks): Map SIGSEGV to Storage_Error in RTP 3936 mode. 3937 Solaris section: (__gnat_adjust_context_for_raise): New function. 3938 Implementation of the machine context adjustments to perform prior to 3939 raise from a signal handler. Version for both sparc and x86. 3940 (HAVE_GNAT_ADJUST_CONTEXT_FOR_RAISE): Define. 3941 (__gnat_error_handler): Expect a third argument, ucontext_t *. Adjust it 3942 prior to raising as expected for any handler, before possible nested 3943 faults to make sure all the contexts in a chain have been adjusted by 3944 the time we propagate. 3945 39462007-08-14 Pascal Obry <obry@adacore.com> 3947 3948 * s-osinte-mingw.ads: Add support for Ada.Execution_Time on Windows. 3949 (SYSTEM_INFO): New record. 3950 (SetThreadIdealProcessor): New imported routine needed for supporting 3951 task_info pragma on Windows. 3952 3953 * s-taprop-mingw.adb (Enter_Task): Check if CPU number given in task 3954 info can be applied to the current host. 3955 (Create_Task): Set the ideal processor if information is present. 3956 3957 * s-tasinf-mingw.adb, s-tasinf-mingw.ads, 3958 a-exetim-mingw.adb, a-exetim-mingw.ads: New files. 3959 39602007-08-14 Olivier Hainque <hainque@adacore.com> 3961 3962 * s-taprop-linux.adb (Get_Stack_Attributes): New subprogram. Fetch the 3963 stack size and initial stack pointer value for a given task. 3964 (Enter_Task): Get the stack attributes of the task we are entering and 3965 let the stack checking engine know about them. 3966 3967 * s-stchop.adb, s-stchop.ads (Notify_Stack_Attributes): New subprogram. 3968 Let the stack-checking engine know about the initial sp value and stack 3969 size associated with the current task. 3970 (Set_Stack_Info): If a stack base has been notified for the current 3971 task, honor it. Fallback to the previous less accurate method otherwise. 3972 3973 * s-stchop-vxworks.adb (Notify_Stack_Attributes): Dummy body. 3974 39752007-08-14 Ed Schonberg <schonberg@adacore.com> 3976 3977 * sem_ch10.adb: Create a limited view of an incomplete type, to make 3978 treatment of limited views uniform for all visible declarations in a 3979 limited_withed package. 3980 Set flag indicating that a subprogram body for a child unit has a 3981 generated spec. 3982 (Analyze_Compilation_Unit): If unit is a subprogram body that has no 3983 separate declaration, remove the unit name from visibility after 3984 compilation, so that environment is clean for subsequent compilations. 3985 (Install_Limited_Context_Clauses): Do not install a 3986 limited_private_with_clause unless the current unit is a body or a 3987 private child unit. 3988 (Analyze_Subunit, Install_Parents): Treat generic and non-generic units 3989 in the same fashion. 3990 (Install_Limited_Withed_Unit): Do not install a limited with clause if 3991 it applies to the declaration of the current package body. 3992 (Remove_Private_With_Clauses): If there is a regular with_clause for 3993 the unit, delete Private_With_Clause from context, to prevent improper 3994 hiding when processing subsequent nested packages and instantiations. 3995 39962007-08-14 Jose Ruiz <ruiz@adacore.com> 3997 3998 * adaint.c (__gnat_is_absolute_path): For VxWorks systems we accept 3999 dir/file, device:/dir/file, and device:drive_letter:/dir/file as 4000 representing absolute path names. 4001 __gnat_set_file_time_name [VMS]: Fix some 64/32 bit issues. 4002 4003 * cstreams.c (__gnat_full_name for VxWorks): Use 4004 __gnat_is_absolute_path to detect whether we need to add the current 4005 directory to normalize the path. 4006 40072007-08-14 Javier Miranda <miranda@adacore.com> 4008 4009 * a-tags.ads, 4010 a-tags.adb (Displace): Associate a message with the raised CE 4011 exception. 4012 (To_Addr_Ptr, To_Address, To_Dispatch_Table_Ptr, 4013 To_Object_Specific_Data_Ptr To_Predef_Prims_Ptr, 4014 To_Tag_Ptr, To_Type_Specific_Data_Ptr): Moved here from the package 4015 spec. 4016 (Default_Prim_Op_Count): Removed. 4017 (IW_Membership, Get_Entry_Index, Get_Offset_Index, Get_Prim_Op_Kind, 4018 Register_Tag, Set_Entry_Index, Set_Offset_To_Top, Set_Prim_Op_Kind): 4019 Remove pragma Inline_Always. 4020 4021 * rtsfind.ads (Default_Prim_Op_Count): Removed 4022 (Max_Predef_Prims): New entity 4023 (RE_Expanded_Name): Removed 4024 (RE_HT_Link): Removed 4025 (RE_Iface_Tag): Remmoved 4026 (RE_Ifaces_Table): Removed 4027 (RE_Interfaces_Array): Removed 4028 (RE_Interface_Data_Element): Removed 4029 (RE_Nb_Ifaces): Removed 4030 (RE_RC_Offset): Removed 4031 (RE_Static_Offset_To_Top): Removed 4032 4033 * exp_atag.ads, exp_atag.adb (Build_Inherit_Prims): Addition of a new 4034 formal. 4035 (Build_Inherit_Predefined_Prims): Replace occurrences of Default_ 4036 Prim_Op_Count by Max_Predef_Prims. 4037 40382007-08-14 Thomas Quinot <quinot@adacore.com> 4039 Vincent Celier <celier@adacore.com> 4040 4041 * binde.adb (Elab_All_Links): Remove unnecessary call to 4042 Generic_Separately_Compiled (if a unit satisfies this predicate, there 4043 won't be an associated Afile). 4044 (Elab_All_Links): Fail if a referenced unit cannot be found 4045 4046 * bindgen.adb: 4047 Fix comments in bindgen regarding consistency checks done in Bcheck: 4048 the checks are made across units within a partition, not across several 4049 partitions. 4050 Fix generation of C binder file for VxWorks. 4051 4052 * lib.ads, lib.adb (Generic_Separately_Compiled): Rename to 4053 Generic_May_Lack_ALI, more descriptive of the current use of the 4054 predicate, and update documentation. 4055 4056 * lib-writ.ads, lib-writ.adb (Write_With_Lines): Minor code 4057 reorganization and documentation update for the case of predefined 4058 library generics (for which we do not reference an Afile). 4059 40602007-08-14 Robert Dewar <dewar@adacore.com> 4061 4062 * s-intman-irix.adb, s-osinte-irix.adb, s-osinte-irix.ads, 4063 s-proinf-irix-athread.ads, s-osinte-hpux-dce.adb, s-osinte-hpux-dce.ads, 4064 s-parame-hpux.ads, s-intman-dummy.adb, s-tasinf-solaris.adb, 4065 s-tasinf-solaris.ads, s-asthan-vms-alpha.adb, s-inmaop-vms.adb, 4066 s-intman-vms.adb, s-intman-vms.ads, s-osprim-mingw.adb, 4067 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-intman-vxworks.ads, 4068 s-intman-vxworks.ads, s-intman-vxworks.adb, s-parame-vxworks.ads, 4069 s-tfsetr-vxworks.adb, s-interr.adb, s-interr.ads, a-tasatt.adb, 4070 exp_ch13.adb, s-htable.ads, s-imgboo.ads, s-imglli.ads, s-imgllu.ads, 4071 s-imguns.ads, g-eacodu.adb, par-ch12.adb, s-stache.ads, s-stausa.adb, 4072 s-poosiz.adb, s-parame.ads, s-mastop.ads, s-osinte-darwin.ads, 4073 a-chtgke.adb, s-asthan-vms-alpha.adb, s-parame-vms-alpha.ads, 4074 s-parame-vms-ia64.ads, s-parame-vxworks.adb, s-except.ads, 4075 g-altcon.adb: Minor reformatting 4076 4077 ada-tree.h: Delete empty line. 4078 4079 ali.ads: Minor reformatting 4080 Clarification of comments. 4081 Minor spelling correction 4082 4083 * exp_dbug.adb: Add Warnings Off to suppress new warning 4084 4085 * a-witeio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode 4086 formal 4087 4088 * a-strunb.adb (Set_Unbounded_String): Avoid memory leak by freeing old 4089 value 4090 4091 * a-textio.adb (Write): Remove an unnecessary IN OUT mode from 4092 4093 * a-textio.ads: Reorder the standard input/output/error declarations 4094 for consistency. 4095 4096 * g-dirope.adb, g-dirope.ads: Change Dir to mode IN for Open call 4097 4098 * par-ch2.adb: Recognize RM specially in errout 4099 Change 'R'M to RM in all error messages 4100 4101 * scng.adb: Recognize RM specially in errout 4102 4103 * sem.ads, sem.adb, exp_strm.adb, exp_ch5.ads, expander.adb: Rename 4104 N_Return node to be N_Simple_Return, to reflect Ada 2005 terminology. 4105 4106 * s-direio.adb: Add missing routine header box. 4107 4108 * sem_attr.ads: Add ??? comments 4109 4110 * sem_eval.adb: Recognize RM specially in errout 4111 Change 'R'M to RM in all error messages 4112 4113 * sem_maps.adb, sem_maps.ads: Remove some unnecessary IN OUT modes 4114 4115 * s-tasinf.ads: Fix minor comment typo. 4116 4117 * a-cihama.adb: Minor comment addition 4118 4119 * a-ztexio.adb (Write): Add Warnings (Off) for unneeded IN OUT mode 4120 formal 4121 4122 * s-tasinf-tru64.ads: Fix minor comment typo. 4123 4124 * itypes.ads: Comment update. 4125 4126 * ali-util.adb: Remove Generic_Separately_Compiled guard, not needed 4127 anymore. 4128 4129 * argv.c: Added protection against null gnat_argv and gnat_envp. 4130 4131 * bcheck.adb (Check_Consistency): Use correct markup character ({) in 4132 warning message when Tolerate_Consistency_Errors is True. 4133 4134 * cstand.adb (Create_Standard): Do not call Init_Size_Alignment for 4135 Any_Id, as this subprogram is only applicable to *type* entities (it 4136 sets RM_Size). Instead initialize just Esize and Alignment. 4137 41382007-08-14 Bob Duff <duff@adacore.com> 4139 4140 * a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 4141 a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 4142 a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 4143 a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads, 4144 a-coorse.ads (Next): Applied pragma Inline. 4145 Make all Containers packages Remote_Types (unless they are already 4146 Pure). 4147 (Previous): applied pragma Inline 4148 (Elements_Type): is now a record instead of an array 4149 41502007-08-14 Thomas Quinot <quinot@adacore.com> 4151 4152 * table.adb, g-table.adb, g-dyntab.adb (Append): Reimplement in terms 4153 of Set_Item. 4154 (Set_Item): When the new item is an element of the currently allocated 4155 table passed by reference, save a copy on the stack if we're going 4156 to reallocate. Also, in Table.Set_Item, make sure we test the proper 4157 variable to determine whether to call Set_Last. 4158 4159 * sinput-d.adb, sinput-l.adb, stringt.adb, switch-m.adb, 4160 symbols-vms.adb, symbols-processing-vms-alpha.adb, 4161 symbols-processing-vms-ia64.adb, sem_elab.adb, repinfo.adb: Replace 4162 some occurrences of the pattern 4163 T.Increment_Last; 4164 T.Table (T.Last) := Value; 4165 with a cleaner call to 4166 T.Append (Value); 4167 41682007-08-14 Ed Schonberg <schonberg@adacore.com> 4169 Gary Dismukes <dismukes@adacore.com> 4170 Thomas Quinot <quinot@adacore.com> 4171 4172 * sem_ch12.ads, sem_ch12.adb (Instantiate_Type): If the formal is a 4173 derived type with interface progenitors use the analyzed formal as the 4174 parent of the actual, to create renamings for all the inherited 4175 operations in Derive_Subprograms. 4176 (Collect_Previous_Instances): new procedure within of 4177 Load_Parent_Of_Generic, to instantiate all bodies in the compilation 4178 unit being loaded, to ensure that the generation of global symbols is 4179 consistent in different compilation modes. 4180 (Is_Tagged_Ancestor): New function testing the ancestor relation that 4181 takes progenitor types into account. 4182 (Validate_Derived_Type_Instance): Enforce the rule of 3.9.3(9) by 4183 traversing over the primitives of the formal and actual types to locate 4184 any abstract subprograms of the actual type that correspond to a 4185 nonabstract subprogram of the formal type's ancestor type(s), and issue 4186 an error if such is found. 4187 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation, 4188 Instantiate_Package_Body, Instantiate_Subprogram_Body): 4189 Remove bogus guard around calls to Inherit_Context. 4190 (Reset_Entity): If the entity is the selector of a selected component 4191 that denotes a named number, propagate constant-folding to the generic 4192 template only if the named number is global to the generic unit. 4193 (Set_Instance_Env): Only reset the compilation switches when compiling 4194 a predefined or internal unit. 4195 41962007-08-14 Ed Schonberg <schonberg@adacore.com> 4197 4198 * sem_ch4.adb (Try_Class_Wide_Operation): use base type of first 4199 parameter to determine whether operation applies to the prefix. 4200 (Complete_Object_Operation): If actual has an access type and 4201 controlling formal is not an in_parameter, reject the actual if it is 4202 an access_to_constant type. 4203 (Try_Primitive_Operation): If the type of the prefix is a formal tagged 4204 type, the candidate operations are found in the scope of declaration of 4205 the type, because the type has no primitive subprograms. 4206 (Analyze_Selected_Component): If prefix is class-wide, and root type is 4207 a private extension, only examine visible components before trying to 4208 analyze as a prefixed call. 4209 Change Entity_List to Type_To_Use, for better readability. 4210 (Has_Fixed_Op): Use base type when checking whether the type of an 4211 operator has a user-defined multiplication/division 4212 (Check_Arithmetic_Pair): Use Ada 2005 rules to remove ambiguities when 4213 user-defined operators are available for fixed-point types. 4214 42152007-08-14 Thomas Quinot <quinot@adacore.com> 4216 Ed Schonberg <schonberg@adacore.com> 4217 4218 * sem_cat.ads, sem_cat.adb (Has_Stream_Attribute_Definition): New 4219 formal At_Any_Place indicating, when True, that we want to test for 4220 availability of the stream attribute at any place (as opposed to the 4221 current visibility context only). 4222 (Missing_Read_Write_Attributes): A stream attribute is missing for the 4223 purpose of enforcing E.2.2(8) only if it is not available at any place. 4224 Take into account the Ada2005 pragma Has_Preelaborable_Initialization 4225 when checking the legality of an extension aggregate in a preelaborable 4226 package. Treat the literal null as a valid default expression in a 4227 component declaration for a type with preelaborable initialization. 4228 A limited interface is a legal progenitor for the designated type of a 4229 remote access to class-wide type. 4230 42312007-08-14 Thomas Quinot <quinot@adacore.com> 4232 Ed Schonberg <schonberg@adacore.com> 4233 4234 * sem_ch8.ads, sem_ch8.adb (Find_Type, case of a 'Base attribute 4235 reference): Use correct entity as denoted entity for the selector of 4236 the rewritten node. 4237 (Find_Direct_Name): Add comment about Generate_Reference incorrectly 4238 setting the Referenced_As_LHS flag for entities that are implicitly 4239 dereferenced. 4240 (Find_Type): If the type is an internally generated incomplete type, 4241 mark the full view as referenced, to prevent spurious warnings. 4242 (Find_Selected_Component, Has_Components): Handle properly non-limited 4243 views that are themselves incomplete types. 4244 Handle interfaces visible through limited-with clauses. 4245 (Analyze_Subprogram_Renaming): Disambiguate and set the entity of a 4246 subprogram generic actual for which we have generated a renaming. 4247 Warn when the renaming introduces a homonym of 4248 the renamed entity, and the renamed entity is directly visible. 4249 42502007-08-14 Ed Schonberg <schonberg@adacore.com> 4251 Hristian Kirtchev <kirtchev@adacore.com> 4252 4253 * sem_res.adb (Resolve_Allocator): Propagate any coextensions that 4254 appear in the subtree to the current allocator if it is not a static 4255 coextension. 4256 (Resolve_Allocator): Perform cleanup if resolution has determined that 4257 the allocator is not a coextension. 4258 (Resolve): Skip an interpretation hidden by an abstract operator only 4259 when the type of the interpretation matches that of the context. 4260 (Resolve): When looping through all possible interpretations of a node, 4261 do not consider those that are hidden by abstract operators. 4262 (Resolve_Actuals): When verifying that an access to class-wide object 4263 is an actual for a controlling formal, ignore anonymous access to 4264 subprograms whose return type is an access to class_wide type. 4265 (Resolve_Slice): If the prefix of the slice is a selected component 4266 whose type depends on discriminants, build its actual subtype before 4267 applying range checks on the bounds of the slice. 4268 (Valid_Conversion): In an instance or inlined body, compare root types, 4269 to prevent anomalies between private and public views. 4270 (Resolve): Improve error message for ambiguous fixed multiplication 4271 expressions that involve universal_fixed multiplying operations. 4272 42732007-08-14 Javier Miranda <miranda@adacore.com> 4274 Hristian Kirtchev <kirtchev@adacore.com> 4275 4276 * exp_ch9.adb (Build_Protected_Entry): Propagate the original source 4277 location to allow the correct generation of errors in case of 4278 restrictions applied to the expanded code. 4279 (Expand_Entry_Barrier): Remove all generated renamings for a barrier 4280 function if the condition does not reference them. 4281 (Expand_Entry_Body_Declarations): Mark the index constant as having a 4282 valid value. 4283 42842007-08-14 Thomas Quinot <quinot@adacore.com> 4285 Pablo Oliveira <oliveira@adacore.com> 4286 4287 * exp_dist.adb (PolyORB_Support.Build_TypeCode_Function): When creating 4288 typecode parameters for a union (in a variant record), remove 4289 extraneous layer of Any wrapping for member label. 4290 (Expand_Receiving_Stubs_Bodies): For an RCI package body that has 4291 elabration statements, register the package with the name server 4292 at the beginning, not at the end, of the elaboration statements so 4293 that they can create remote access to subprogram values that designate 4294 remote subprograms from the package. 4295 42962007-08-14 Hristian Kirtchev <kirtchev@adacore.com> 4297 4298 * g-catiio.adb (Image): For the case of %s, use Ada.Calendar.Time 4299 values to compute the number of seconds since the Unix Epoc in order to 4300 account for Daylight Savings Time. Perform special processing for dates 4301 that are earlier than the Unix Epoc to obtain a negative number. 4302 43032007-08-14 Emmanuel Briot <briot@adacore.com> 4304 4305 * g-comlin.adb (Getopt): Fix handling of "*" switch when not collapsing 4306 switches. 4307 43082007-08-14 Eric Botcazou <ebotcazou@adacore.com> 4309 4310 * gnatlink.adb (Gnatlink): Pass switches to the linker even if the 4311 binder-generated file is not in Ada. 4312 Pass -mrtp to the linker if it is GCC and --RTS=rtp has been 4313 recorded in the ALI file. 4314 Pass -fsjlj to the linker if it is GCC and --RTS=sjlj has been recorded. 4315 43162007-08-14 Vincent Celier <celier@adacore.com> 4317 4318 * gnatls.adb: (Corresponding_Sdep_Entry): Always return a value 4319 (Output_Source): Do nothing if parameter is No_Sdep_Id 4320 4321 * make.adb (Gnatmake): Do not rebuild an archive simply because a 4322 shared library it imports has a later time stamp. 4323 (Check): Resolve the symbolic links in the path name of the object 4324 directory. 4325 Check that the ALI file is in the correct object directory 4326 Check if a file name does not correspond to the mapping of units 4327 to file names. 4328 (Display_Version): New procedure 4329 (Initialize): Process switches --version and --help 4330 Use type Path_Name_Type for path name 4331 43322007-08-14 Paul Hilfinger <hilfinger@adacore.com> 4333 4334 * impunit.adb: Re-organize System.Random_Numbers and 4335 GNAT.Random_Numbers and add to builds. 4336 4337 * Makefile.rtl: Add s-rannum.ad* and g-rannum.ad*, a-assert* 4338 4339 * s-rannum.ads, s-rannum.adb, g-rannum.ads, g-rannum.adb: New files. 4340 4341 * a-assert.ads, a-assert.adb: New files. 4342 43432007-08-14 Gary Dismukes <dismukes@adacore.com> 4344 4345 * layout.adb (Layout_Type): In the case of access-to-subprogram types, 4346 if AAMP_On_Target is True, then the size of the type encompasses two 4347 addresses (a static link and a subprogram address), except in the case 4348 of library-level access types. 4349 43502007-08-14 Vincent Celier <celier@adacore.com> 4351 4352 * output.ads, output.adb (Write_Eol): Remove trailing spaces before 4353 writing the line. 4354 (Write_Eol_Keep_Blanks): New procedure to write a line, including 4355 possible trailing spaces. 4356 (Output_Source_Line): Call Write_Eol_Keep_Blanks to output a source line 4357 43582007-08-14 Javier Miranda <miranda@adacore.com> 4359 4360 * par-ch6.adb (P_Formal_Part): Fix wrong error message associated with 4361 null-excluding access types. 4362 43632007-08-14 Javier Miranda <miranda@adacore.com> 4364 4365 * sem_ch9.adb (Check_Interfaces): New subprogram that factorizes code 4366 that is common to Analyze_Protected_Type and Analyze_Task_Type. In case 4367 of private types add missing check on matching interfaces in the 4368 partial and full declarations. 4369 (Analyze_Protected_Type): Code cleanup. 4370 (Analyze_Task_Type): Code cleanup. 4371 43722007-08-14 Javier Miranda <miranda@adacore.com> 4373 4374 * sem_disp.adb (Check_Dispatching_Operation): Do not emit warning on a 4375 generated interface thunk. 4376 43772007-08-14 Ed Schonberg <schonberg@adacore.com> 4378 4379 * s-ficobl.ads: Declare AFCB as a tagged incomplete type, to prevent 4380 obsolescent warning on application of 'Class to an incomplete type. 4381 4382 * s-finroo.ads: Declare Root_Controlled as a tagged incomplete type, to 4383 prevent obsolescent warning on application of 'Class to an incomplete 4384 type. 4385 43862007-08-14 Pascal Obry <obry@adacore.com> 4387 4388 * s-fileio.adb (Is_Open): Add check for usability of the underlying 4389 file stream. 4390 43912007-08-14 Cyrille Comar <comar@adacore.com> 4392 4393 * s-finimp.adb (Detach_From_Final_List): make this procedure idempotent 4394 since it is potentially used in cases implying double finalization of 4395 the same object. 4396 43972007-08-14 Jose Ruiz <ruiz@adacore.com> 4398 4399 * s-tasini.adb (Get_Stack_Info): Move this function to 4400 System.Soft_Links.Tasking because it is common to the full and the 4401 restricted run times. 4402 (Init_RTS): Do not set the Get_Stack_Info soft link because it is done 4403 in SSL.Tasking.Init_Tasking_Soft_Links. 4404 4405 * s-solita.adb (Get_Stack_Info): Function moved from 4406 System.Tasking.Initialization because it is common to the full and the 4407 restricted run times. 4408 (Init_Tasking_Soft_Links): Set the tasking soft link for Get_Stack_Info. 4409 44102007-08-14 Arnaud Charlet <charlet@adacore.com> 4411 4412 * s-tpobop.ads, s-tpobop.adb, s-tasren.ads, s-tasren.adb, 4413 s-taskin.ads (Requeue_With_Abort): Rename field With_Abort. 4414 (PO_Do_Or_Queue, Task_Do_Or_Queue, Requeue_Call): Remove With_Abort 4415 parameter. 4416 4417 * s-tassta.adb (Task_Wrapper): Increased value of the small overflow 4418 guard to 12K. 4419 44202007-08-14 Gary Dismukes <dismukes@adacore.com> 4421 4422 * s-veboop.adb (SU): New named number initialized to 4423 System.Storage_Unit. 4424 (True_Val): The initialization expression is revised to use SU (= 4425 Storage_Unit) rather than assuming 8 for the component size of an 4426 unpacked Boolean array. 4427 44282007-08-14 Tristan Gingold <gingold@adacore.com> 4429 4430 * tracebak.c: Use tb-ivms.c on OpenVMS Itanium. 4431 4432 * tb-ivms.c: New file. 4433 4434 * g-trasym-vms-ia64.adb: Fixed for OpenVMS version 8.2 4435 44362007-08-14 Geert Bosch <bosch@adacore.com> 4437 4438 * i-forbla.ads, i-forbla.adb, a-ngcoar.adb, a-ngcoar.ads, i-forlap.ads, 4439 s-gearop.adb, s-gecobl.adb, s-gecobl.ads, s-gerela.adb, s-gerela.ads: 4440 Add required linker pragmas for automatically linking with the gnalasup 4441 linear algebra support library, and the systems math library. 4442 Rename cdot to cdotu and zdot to zdotu. 4443 Update header comment to describe purpose of package. 4444 44452007-08-14 Thomas Quinot <quinot@adacore.com> 4446 4447 * exp_ch7.adb (Find_Final_List): For an anonymous access type that has 4448 an explicitly specified Associated_Final_Chain, use that list. 4449 (Expand_N_Package_Body): Build dispatch tables of library level tagged 4450 types. 4451 (Expand_N_Package_Declaration): Build dispatch tables of library level 4452 tagged types. Minor code cleanup. 4453 44542007-08-14 Vincent Celier <celier@adacore.com> 4455 4456 * gnatchop.adb (Terminate_Program): Remove exception and use 4457 Types.Terminate_Program instead. 4458 4459 * osint.ads, osint.adb (Current_Exit_Status): New global variable 4460 (Find_Program_Name): Added protection against empty name. 4461 (OS_Exit_Through_Exception): New procedure 4462 4463 * s-os_lib.ads, s-os_lib.adb (OS_Exit): New procedure body 4464 (OS_Exit_Default): New procedure that contains the previous 4465 implementation of procedure OS_Exit. 4466 (Final_Value): Remove obsolete Interix stuff. 4467 44682007-08-14 Thomas Quinot <quinot@adacore.com> 4469 4470 * g-socket.ads: Reorganize example code so that it also works on 4471 Windows XP. 4472 44732007-08-14 Tristan Gingold <gingold@adacore.com> 4474 4475 * g-trasym.ads: AIX now supports symbolic backtraces. 4476 44772007-08-14 Ed Schonberg <schonberg@adacore.com> 4478 4479 * lib-load.adb (From_Limited_With_Chain): Always scan the stack of 4480 units being loaded to detect circularities. A circularity may be 4481 present even if the current chain of pending units to load starts from 4482 a limited_with_clause. 4483 4484 * lib-load.ads: Change profile of Load_Unit to use a with_clause 4485 rather than a boolean flag, in order to detect circularities in 4486 with_clauses. 4487 4488 * par-load.adb: Use current with_clause in calls to Load_Unit, rather 4489 than propagating the From_Limited_With flag, in order to handle 4490 properly circularities involving with_clauses. 4491 44922007-08-14 Nicolas Setton <setton@adacore.com> 4493 4494 * link.c (FreeBSD): Add "const" keyword where needed, to eliminate 4495 warnings. 4496 44972007-08-14 Arnaud Charlet <charlet@adacore.com> 4498 4499 * Makefile.in: GNATRTL_LINEARALGEBRA_OBJS: New variable holding objects 4500 to build for libgnala. 4501 libgnat: Add rules to build libgnala.a 4502 (LIBGNAT_TARGET_PAIRS for VxWorks): Remove s-osinte-vxworks.adb from 4503 target pairs of the VxWorks 6 kernel runtime, use it only for VxWorks 5. 4504 Add s-osinte-vxworks-kernel.adb to the target pairs of the 4505 kernel run-time lib for VxWorks 6, which would provide a different 4506 implementation for Task_Cont and Task_Stop than the VxWorks 5 version. 4507 x86-solaris section (EH_MECHANISM): Set to -gcc, as this port is now 4508 running ZCX by default. 4509 Add g-sttsne-locking to LynxOS version. 4510 Remove g-sttsne-vxworks.ads; use g-sttsne-locking.ads instead. 4511 On x86/darwin, use a-numaux-x86.ad? and system-darwin-x86.ads. 4512 4513 * system-darwin-x86.ads: New file. 4514 4515 * Make-lang.in: Delete files before copying onto them, so if they are 4516 read-only, the copy won't fail. 4517 Update dependencies 4518 45192007-08-14 Pascal Obry <obry@adacore.com> 4520 4521 * mdll-fil.adb, * mdll.adb: Implement a more consistent libraries 4522 naming scheme. 4523 45242007-08-14 Vincent Celier <celier@adacore.com> 4525 4526 * mlib-utl.adb (Gcc_Name): Change from constant String to String_Access 4527 (Gcc): Initialize Gcc_Name at the first call 4528 45292007-08-14 Ed Schonberg <schonberg@adacore.com> 4530 4531 * sem_ch7.adb (Analyze_Package_Specification): Do not install private 4532 with_clauses of the enclosing unit when analyzing the package 4533 specification of a nested instance. 4534 45352007-08-14 Hristian Kirtchev <kirtchev@adacore.com> 4536 4537 * sinfo.ads, sinfo.adb (Is_Coextension, Set_Is_Coextension): Removed. 4538 (Is_Dynamic_Coextension, Set_Is_Dynamic_Coextension): New routines. 4539 Remove flag Is_Coextension. Add flag Is_Dynamic_Coextension. Update the 4540 layout of N_Allocator. 4541 45422007-08-14 Thomas Quinot <quinot@adacore.com> 4543 4544 * rtsfind.adb (Check_RPC): Add PCS version check. 4545 4546 * gnatvsn.ads, gnatvsn.adb: Add PCS version. 4547 (Gnat_Free_Software): New function. 4548 4549 * sem_dist.ads, sem_dist.adb (Get_PCS_Version): New subprogram. Returns 4550 the PCS_Version value from s-parint, used to check that it is consistent 4551 with what exp_dist expects. 4552 4553 * s-parint.ads (PCS_Version): New entity for checking consistency 4554 between exp_dist and PCS. 4555 4556 * gen-soccon.c: (SO_REUSEPORT): New constant. 4557 45582007-08-14 Hristian Kirtchev <kirtchev@adacore.com> 4559 4560 * a-calfor.adb (Image (Duration; Boolean)): Change type of local 4561 variable Sub_Second to Duration in order to accomodate a larger range 4562 of arithmetic operations. 4563 45642007-08-14 Bob Duff <duff@adacore.com> 4565 4566 * g-sttsne-locking.ads: Move comments from spec to body. 4567 * g-sttsne-locking.adb: Move comments from spec to body. 4568 * g-sttsne-vxworks.ads: Removed. 4569 * g-sttsne-vxworks.adb: Removed. 4570 45712007-08-11 Ian Lance Taylor <iant@google.com> 4572 4573 * misc.c (gnat_get_alias_set): Change return type to 4574 alias_set_type. 4575 45762007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4577 4578 * decl.c, utils2.c: Fix whitespace in last change. 4579 45802007-08-11 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> 4581 4582 * decl.c (compare_field_bitpos): Constify. 4583 * utils2.c (compare_elmt_bitpos): Likewise. 4584 45852007-07-27 Aurelien Jarno <aurelien@aurel32.net> 4586 4587 * s-osinte-kfreebsd-gnu.ads ((sigset_t_ptr): Removed, replaced by 4588 anonymous access type. 4589 (pthread_sigmask): Now take an access sigset_t. 4590 45912007-07-05 Joel Sherrill <joel.sherrill@oarcorp.com> 4592 4593 * s-osinte-rtems.ads: Correct prototype of pthread_sigmask. 4594 45952007-06-21 Eric Botcazou <ebotcazou@adacore.com> 4596 4597 PR tree-optimization/25737 4598 * misc.c (gnat_post_options): Do not force flag_tree_salias to 0. 4599 46002007-06-15 Andrew Pinski <andrew_pinski@playstation.sony.com> 4601 4602 * trans.c (Attribute_to_gnu): When subtracting an 4603 offset from a pointer, use POINTER_PLUS_EXPR with 4604 NEGATE_EXPR instead of MINUS_EXPR. 4605 (gnat_to_gnu): Likewise. 4606 * utils.c (convert): When converting between 4607 thin pointers, use POINTER_PLUS_EXPR and sizetype 4608 for the offset. 4609 * utils2.c (known_alignment): POINTER_PLUS_EXPR 4610 have the same semantics as PLUS_EXPR for alignment. 4611 (build_binary_op): Add support for the semantics of 4612 POINTER_PLUS_EXPR's operands. 4613 When adding an offset to a pointer, use POINTER_PLUS_EXPR. 4614 46152007-06-11 Rafael Ávila de Espíndola <espindola@google.com> 4616 4617 * trans.c (Attribute_to_gnu): Use signed_or_unsigned_type_for instead 4618 of get_signed_or_unsigned_type. 4619 * misc.c (LANG_HOOKS_SIGNED_TYPE): Remove. 4620 46212007-06-11 Bob Duff <duff@adacore.com> 4622 Thomas Quinot <quinot@adacore.com> 4623 4624 * g-stsifd-sockets.adb (Create): Work around strange behavior of 4625 'bind' on windows that causes 'connect' to fail intermittently, by 4626 retrying the 'bind'. 4627 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. 4628 46292007-06-10 Duncan Sands <baldrick@free.fr> 4630 4631 * decl.c (gnat_to_gnu_entity): Use pointers to dummy nodes, rather 4632 than to void, for the fields when making a new fat pointer type. 4633 (gnat_substitute_in_type): Now substitute_in_type. 4634 * gigi.h (gnat_substitute_in_type): Likewise. Adjust recursive calls. 4635 * trans.c (gnat_gimplify_expr): Remove COMPONENT_REF kludge. 4636 * utils.c (update_pointer_to): Update fat pointers by updating the 4637 dummy node pointers used for the fields. 4638 46392007-06-06 Thomas Quinot <quinot@adacore.com> 4640 Bob Duff <duff@adacore.com> 4641 4642 * g-soccon-freebsd.ads, g-soccon-vxworks.ads:, 4643 g-soccon-aix.ads, g-soccon-irix.ads, g-soccon-hpux.ads, 4644 g-soccon-solaris.ads, g-soccon-vms.ads, g-soccon-tru64.ads: Add new 4645 constant Thread_Blocking_IO, always True by default, set False 4646 on a per-runtime basis. 4647 (Need_Netdb_Buffer): New constant. 4648 4649 * g-stheme.adb, g-sttsne.ads, g-sttsne-locking.ads, 4650 g-sttsne-locking.adb, g-sttsne-vxworks.ads, g-sttsne-vxworks.adb: New 4651 files. 4652 4653 * g-socthi-vxworks.ads, g-socthi-vxworks.adb, 4654 g-socthi-vms.ads, g-socthi-vms.adb (Safe_Gethostbyname, 4655 Safe_Gethostbyaddr, Safe_Getservbyname, Safe_Getservbyport): Use new 4656 child package Task_Safe_NetDB 4657 (Host_Error_Messages): Add stub body. 4658 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. 4659 4660 * g-soccon-mingw.ads: Add Windows-specific constants. 4661 (Need_Netdb_Buffer): New constant. 4662 (GNAT.Sockets.Thin.C_Inet_Addr, Windows version): Remove useless Ada 4663 wrapper and import inet_addr(3) from the standard sockets library 4664 directly instead. 4665 (In_Addr): Add alignment clause. 4666 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. 4667 46682007-06-06 Robert Dewar <dewar@adacore.com> 4669 4670 * a-taster.adb, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 4671 s-osinte-irix.ads, s-interr-sigaction.adb, s-mastop-irix.adb, 4672 s-osinte-hpux-dce.ads, s-osinte-interix.ads, s-osinte-solaris.ads, 4673 s-taspri-solaris.ads, s-inmaop-vms.adb, s-interr-vms.adb, 4674 s-mastop-vms.adb, s-osinte-vms.ads, s-tpopde-vms.adb, 4675 s-osinte-mingw.ads, s-interr-vxworks.adb, i-cstrea-vms.adb, 4676 a-diocst.adb, a-direio.adb, a-interr.adb, a-sequio.adb, a-siocst.adb, 4677 a-ssicst.adb, a-storio.adb, a-ststio.adb, a-stwima.adb, a-tasatt.adb, 4678 a-taside.adb, a-tiocst.adb, a-witeio.adb, a-wtcstr.adb, g-crc32.adb, 4679 g-dirope.adb, g-dyntab.adb, g-memdum.adb, g-regexp.adb, g-spipat.adb, 4680 g-spitbo.adb, g-string.adb, g-string.ads, g-table.adb, g-thread.adb, 4681 i-cobol.adb, i-cpoint.adb, i-cstrea.adb, i-cstrin.adb, i-pacdec.adb, 4682 s-addima.adb, s-arit64.adb, s-auxdec.adb, s-auxdec.ads, 4683 s-auxdec-vms_64.ads, s-carsi8.adb, s-carun8.adb, s-casi16.adb, 4684 s-casi32.adb, s-casi64.adb, s-caun16.adb, s-caun32.adb, s-caun64.adb, 4685 s-direio.adb, s-fileio.adb, s-finimp.ads, s-geveop.adb, s-imgenu.adb, 4686 s-pack03.adb, s-pack05.adb, s-pack06.adb, s-pack07.adb, s-pack09.adb, 4687 s-pack10.adb, s-pack11.adb, s-pack12.adb, s-pack13.adb, s-pack14.adb, 4688 s-pack15.adb, s-pack17.adb, s-pack18.adb, s-pack19.adb, s-pack20.adb, 4689 s-pack21.adb, s-pack22.adb, s-pack23.adb, s-pack24.adb, s-pack25.adb, 4690 s-pack26.adb, s-pack27.adb, s-pack28.adb, s-pack29.adb, s-pack30.adb, 4691 s-pack31.adb, s-pack33.adb, s-pack34.adb, s-pack35.adb, s-pack36.adb, 4692 s-pack37.adb, s-pack38.adb, s-pack39.adb, s-pack40.adb, s-pack41.adb, 4693 s-pack42.adb, s-pack43.adb, s-pack44.adb, s-pack45.adb, s-pack46.adb, 4694 s-pack47.adb, s-pack48.adb, s-pack49.adb, s-pack50.adb, s-pack51.adb, 4695 s-pack52.adb, s-pack53.adb, s-pack54.adb, s-pack55.adb, s-pack56.adb, 4696 s-pack57.adb, s-pack58.adb, s-pack59.adb, s-pack60.adb, s-pack61.adb, 4697 s-pack62.adb, s-pack63.adb, s-pooloc.adb, s-poosiz.adb, s-scaval.adb, 4698 s-sequio.adb, s-shasto.adb, s-stalib.ads, s-stratt.adb, s-strcom.adb, 4699 s-taasde.adb, s-tasdeb.adb, s-tasuti.ads, s-tataat.ads, s-tpoben.ads, 4700 s-valenu.adb, s-widenu.adb, s-wwdenu.adb, s-addope.adb, a-stzmap.adb, 4701 a-ztcstr.adb, a-ztexio.adb, s-osinte-linux-hppa.ads: Replace 4702 Unchecked_* by Ada.Unchecked_* 4703 47042007-06-06 Robert Dewar <dewar@adacore.com> 4705 4706 * g-string.adb, s-proinf-irix-athread.adb, s-gloloc-mingw.adb, 4707 s-tfsetr-default.adb, gnatfind.adb, gnatxref.adb, gprep.adb, 4708 g-regexp.adb, g-regexp.ads, g-regpat.ads, g-tasloc.adb, g-tasloc.ads, 4709 output.adb, switch-m.ads, tree_in.ads, tree_io.ads, indepsw.ads, 4710 g-utf_32.adb, g-utf_32.ads, a-wichun.adb, a-wichun.ads, a-zchuni.adb, 4711 a-zchuni.ads: Replace GNAT.xxx by System.xxx when appropriate. 4712 4713 * s-utf_32.adb, s-utf_32.ads, s-os_lib.adb, s-os_lib.ads, s-regexp.adb, 4714 s-regexp.ads, s-regpat.adb, s-regpat.ads, s-string.adb, s-string.ads, 4715 s-tasloc.adb, s-tasloc.ads: New files. 4716 47172007-06-06 Bob Duff <duff@adacore.com> 4718 4719 * g-expect-vms.adb: 4720 (Send_Signal, Close): Raise Invalid_Process if the process id is invalid. 4721 * g-expect.ads, g-expect.adb (Send): Avoid useless copy of the string. 4722 (Send_Signal, Close): Raise Invalid_Process if the process id is 4723 invalid. 4724 (Pattern_Matcher_Access): Is now a general access type to be able to 4725 use aliased string. 4726 47272007-06-06 Thomas Quinot <quinot@adacore.com> 4728 Arnaud Charlet <charlet@adacore.com> 4729 4730 * a-intnam-aix.ads: Adjust comment to account for SIGADAABORT change 4731 (SIGEMT is now used instead of SIGTERM on AIX). 4732 4733 * s-osinte-aix.ads (Linker_Options): Use -pthread instead of -lpthreads. 4734 (Time_Slice_Supported): Set to True. 4735 Use SIGEMT instead of SIGTERM as SIGADAABORT. 4736 47372007-06-06 Hristian Kirtchev <kirtchev@adacore.com> 4738 4739 * a-calend.ads, a-calend.adb, a-calend-vms.ads, a-calend-vms.adb ("-" 4740 (Time, Time)): Use To_Relative_Time rather than manual calculation to 4741 express the bounds of Duration as Time. Raise Time_Error when the 4742 result is greater or equal to the higher bound of Duration (on the 4743 margin case). 4744 ("+" (Time, Duration)): Reorder code. Remove the declaration of constant 4745 Ada_High_And_Leaps. 4746 ("-" (Time, Duration)): Reorder code. Remove the declaration of constant 4747 Ada_High_And_Leaps. 4748 ("-" (Time, Time)): Reorder code. 4749 (All_Leap_Seconds): Removed. 4750 (Arithmetic_Operations.Add): Remove sign related kludge. 4751 (Arithmetic_Operations.Difference): Control the leaps seconds processing 4752 with flag Leap_Support. 4753 (Arithmetic_Operations.Subtract): Remove sign related kludge. 4754 (Check_Within_Time_Bounds): New procedure. 4755 (Clock): Control the leap seconds processing with flag Leap_Support. 4756 (Cumulative_Leap_Seconds): Assert that the target supports leap seconds. 4757 (Formatting_Operations.Split): Control the leap seconds processing with 4758 flag Leap_Support. 4759 (Formatting_Operations.Time_Of): Control the leaps seconds processing 4760 with flag Leap_Support. Adjust the year, month and day (if applicable) 4761 when the value of day seconds designates a new day. 4762 (Split): Use parameter associations for better readability. Integrate 4763 flag Is_Ada_05. 4764 (Time_Of): Use parameter associations for better readability. Integrate 4765 flag Is_Ada_05. 4766 4767 * a-calfor.adb (Split): Use parameter associations for better 4768 readability. Integrate flag Is_Ada_05. 4769 (Time_Of): Remove flag Leap_Checks. Use parameter associations for 4770 better readability. Integrate flag Is_Ada_05. 4771 47722007-06-06 Arnaud Charlet <charlet@adacore.com> 4773 4774 * s-taprop-vms.adb, s-taprop-hpux-dce.adb, s-taprop-vxworks.adb, 4775 s-osprim-posix.adb, s-taprop-posix.adb, s-osprim-vxworks.adb, 4776 s-taprop-solaris.adb, s-osprim-solaris.adb, s-taprop-dummy.adb, 4777 s-osprim-unix.adb, s-osinte-freebsd.adb, s-osinte-freebsd.ads, 4778 s-osinte-lynxos.adb, s-osinte-lynxos.ads, s-taprop-tru64.adb, 4779 s-taprop-lynxos.adb, s-taprop-irix.adb, s-osinte-tru64.adb, 4780 s-osinte-tru64.ads, s-taprop-linux.adb, s-parame.ads, 4781 s-parame-vms-alpha.ads, s-parame-vms-ia64.ads, s-parame-hpux.ads, 4782 s-parame-vms-restrict.ads, s-parame-ae653.ads, s-parame-vxworks.ads, 4783 s-taprop-mingw.adb, s-osinte-lynxos-3.ads, s-osinte-lynxos-3.adb, 4784 s-osprim-mingw.adb (Timed_Delay, Timed_Sleep): Register the base 4785 time when entering this routine to detect a backward clock setting 4786 (manual setting or DST adjustment), to avoid waiting for a longer delay 4787 than needed. 4788 (Time_Duration, To_Timeval, struct_timeval): Removed when not relevant. 4789 Remove handling of deferred priority change, and replace by setting the 4790 task priority directly, as required by AI-188. 4791 Update comments. 4792 (Max_Task_Image_Length): New constant. 4793 Replace Warnings (Off) by Unreferenced pragma, cleaner. 4794 (Dynamic_Priority_Support): Removed, no longer needed. 4795 (Poll_Base_Priority_Change): Ditto. 4796 (Set_Ceiling): Add this procedure to change the ceiling priority 4797 associated to a lock. This is a dummy implementation because dynamic 4798 priority ceilings are not supported by the underlying system. 4799 4800 * a-dynpri.adb (Set_Priority): Take into account case where Target is 4801 accepting a RV with its priority boosted. 4802 Remove handling of deferred priority change, and replace by setting the 4803 task priority directly, as required by AI-188. 4804 4805 * s-taenca.adb (Try_To_Cancel_Entry_Call): Remove special case for 4806 Succeeded = True. 4807 Remove handling of deferred priority change, and replace by setting the 4808 task priority directly, as required by AI-188. 4809 (Wait_For_Completion, Wait_For_Call, Timed_Selective_Wait): Change state 4810 of Self_Id earlier. 4811 4812 * s-tasini.ads, s-tasini.adb (Wakeup_Entry_Caller): Relax assertion. 4813 (Poll_Base_Priority_Change): Removed. 4814 Code clean up: use SSL.Current_Target_Exception. 4815 4816 * s-tasren.adb (Task_Count): Call Yield to let a chance to other tasks 4817 to run as this is a potentially dispatching point. 4818 (Call_Synchronous): Use Local_Defer_Abort. 4819 (Callable): Relax assertion. 4820 (Selective_Wait): Relax assertion in case abort is not allowed. 4821 Remove handling of deferred priority change, and replace by setting the 4822 task priority directly, as required by AI-188. 4823 4824 * s-tasuti.adb (Make_Passive): Adjust assertions. 4825 Remove handling of deferred priority change, and replace by setting the 4826 task priority directly, as required by AI-188. 4827 48282007-06-06 Arnaud Charlet <charlet@adacore.com> 4829 4830 * system-vxworks-sparcv9.ads, system-solaris-x86.ads, 4831 system-irix-o32.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 4832 system-lynxos-x86.ads, system-vxworks-m68k.ads, system-linux-x86.ads, 4833 system-vxworks-mips.ads, system-vxworks-alpha.ads, 4834 system-vxworks-x86.ads, system-linux-ppc.ads, system-mingw.ads, 4835 system-vms-zcx.ads, system-darwin-ppc.ads, system-vxworks-ppc.ads, 4836 system-interix.ads, system-linux-hppa.ads, system-tru64.ads, 4837 system-hpux.ads, system-irix-n32.ads, system-solaris-sparc.ads, 4838 system-solaris-sparcv9.ads, system-vms.ads, system.ads, 4839 system-vms_64.ads, system-hpux-ia64.ads, system-linux-x86_64.ads, 4840 system-linux-ia64.ads: Document mapping between Ada and OS priorities. 4841 This patch changes the largest non-binary modulus from 2**31-1 to 4842 2**32-1. 4843 (Compiler_System_Version): Removed, no longer used. 4844 Clean up system files by removing flags only used on a single target. 4845 Also remove obsolete flags, only used during bootstrap from system.ads 4846 (Address): Add a pragma Preelaborable_Initialization. 4847 4848 * system-aix.ads: Ditto. 4849 (GCC_ZCX_Support): Set to true. 4850 Update priority range on AIX and map Ada priorities to target 4851 priorities appropriately for different scheduling policies. 4852 4853 * ttypes.ads: set largest non-binary modulus from 2**31-1 to 2**32-1 4854 48552007-06-06 Vincent Celier <celier@adacore.com> 4856 4857 * mlib-tgt-specific.adb, mlib-tgt-specific.ads, 4858 mlib-tgt-vms.adb, mlib-tgt-vms.ads: New files. 4859 4860 * mlib-tgt.adb, mlib-tgt.ads, mlib-tgt-darwin.adb, 4861 mlib-tgt-vxworks.adb, mlib-tgt-mingw.adb, mlib-tgt-lynxos.adb, 4862 mlib-tgt-linux.adb, mlib-tgt-solaris.adb, mlib-tgt-vms-alpha.adb, 4863 mlib-tgt-vms-ia64.adb, mlib-tgt-aix.adb, mlib-tgt-irix.adb, 4864 mlib-tgt-hpux.adb, mlib-tgt-tru64.adb: Make a common body for package 4865 MLib.Tgt, containing the default versions of the exported subprograms. 4866 For each platform, create a specific version of the body of new child 4867 package MLib.Tgt.Specific that contains only the body of subprograms 4868 that are different from the default. 4869 (Archive_Builder_Append_Options): New function. 4870 48712007-06-06 Matthew Gingell <gingell@adacore.com> 4872 4873 * s-osinte-aix.adb: Map Ada priorities to target priorities 4874 appropriately for different scheduling policies. 4875 48762007-06-06 Arnaud Charlet <charlet@adacore.com> 4877 4878 * s-osinte-linux.ads (sigset_t): Bump alignment to match more closely 4879 its C counterpart. 4880 Remove references to Unchecked_Conversion, and use Ada.xxx instead. 4881 Replace Unchecked_Conversion by Ada.Unchecked_Conversion. 4882 48832007-06-06 Vasiliy Fofanov <fofanov@adacore.com> 4884 4885 * s-osprim-vms.ads, s-osprim-vms.adb (Initialize): New procedure. 4886 Noop on VMS, added for interface commonality. 4887 48882007-06-06 Eric Botcazou <ebotcazou@adacore.com> 4889 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 4890 Olivier Hainque <hainque@adacore.com> 4891 4892 * decl.c (gnat_to_gnu_entity) <object>: Manually mark the top of the 4893 renamed expression of a full renaming at toplevel. 4894 (gnat_to_gnu_entity, case object): If not defining, do not look inside 4895 the values the constant is initialized to if it is an N_Allocator. 4896 (gnat_to_gnu_entity) <E_Array_Subtype>: Manually mark the top of the 4897 TYPE_SIZE_UNIT of inner types after the stride is elaborated. 4898 (make_aligning_type): Accept an extra ROOM argument for storage to be 4899 made available before the aligned field, and an extra BASE_ALIGN 4900 argument for callers to pass the alignment guaranteed to be honored for 4901 the whole aligning object. Avoid call to finish_record_type, which only 4902 interferes with the sizes we want to set. 4903 (gnat_to_gnu_entity) <E_Variable>: Pass the required extra arguments to 4904 make_aligning_type for super-aligned objects on stack. 4905 (components_to_record): Pass the adjusted size of the type when creating 4906 fields in the qualified union for the variant part. 4907 (gnat_substitute_in_type): Copy TYPE_USER_ALIGN. 4908 (gnat_to_gnu_entity, case E_Signed_Integer_Subtype): Likewise for 4909 packed array type. 4910 (maybe_pad_type): Set TYPE_USER_ALIGN. 4911 (make_aligning_type): Likewise. 4912 ALIGN argument is unsigned int. 4913 (gnat_to_gnu_entity, case E_Function): Back annotate return mechanism. 4914 (gnat_to_gnu_param): Likewise, for parameters. 4915 (gnat_to_gnu_entity) <object>: Always instantiate the renaming object 4916 if it is constant and stems from a function call. 4917 (gnat_to_gnu_entity) <E_Record_Type>: Set packed to -2 if the alignment 4918 of the record is specified. Adjust accordingly. 4919 (adjust_packed): New static function. 4920 (gnat_to_gnu_field): Use it to adjust the packedness setting. 4921 (components_to_record): Likewise. 4922 (gnat_to_gnu_entity) <object>: Do not test the renamed expression for 4923 side-effects if the object is deemed constant. 4924 (gnat_to_gnu_entity) <E_Array_Type>: Create a name for the fat pointer 4925 type instead of merely finalizing it. Tidy. 4926 <E_Access_Subprogram_Type>: Retrieve the type from the TYPE_DECL. 4927 <E_Access_Type>: Likewise. 4928 (defer_debug_incomplete_list): Rename to defer_finalize_list. 4929 (defer_debug_level): Delete. 4930 (gnat_to_gnu_entity) <debug_deferred>: Likewise 4931 <E_Array_Type>: Call rest_of_record_type_compilation on the fat pointer 4932 type. 4933 <E_Record_Type>: Do not explicitly defer finalizing the type. 4934 Adjust for write_record_type_debug_info renaming. 4935 <E_Subprogram_Type>: Likewise. 4936 Finalize deferred types right after deferred incomplete types are 4937 expanded. 4938 (rest_of_type_decl_compilation): New global function. 4939 (components_to_record): Rename defer_debug parameter to do_not_finalize. 4940 (components_to_record): Propagate the packedness to the fields of the 4941 qualified union type if there is a variant part. 4942 (gnat_to_gnu_entity) <E_Array_Type>: Use new function 4943 instead of inline code to adjust the XUT field offsets. 4944 (gnat_to_gnu_entity): Adjust for new prototype of finish_record_type. 4945 <E_Record_Subtype>: Do not let finish_record_type compute the sizes 4946 and write the debug info if the type derives from a discriminated one. 4947 (gnat_to_gnu_entity) <E_Array_Type>: Adjust call to create_index_type. 4948 <E_Array_Subtype>: Likewise. 4949 <E_String_Literal_Subtype>: Likewise. 4950 (gnat_to_gnu_entity): Set TYPE_USER_ALIGN on types only if they have 4951 an alignment clause. 4952 (maybe_pad_type): Update ORIG_SIZE to the minimum required to meet ALIGN 4953 before giving warning. 4954 (prepend_one_attribute_to): New function, helper to prepend an attribute 4955 to an attribute list. 4956 (gnat_to_gnu_entity) <E_Procedure>: Use it. 4957 (prepend_attributes): Likewise. 4958 (gnat_to_gnu_entity) <E_Variable>: Use constants of the proper type. 4959 <E_Array_Type>: Declare the padding type for the element type, if any. 4960 <E_Array_Subtype>: Likewise. 4961 (defer_limited_with): New variable. 4962 (Gigi_Equivalent_Type): New function. 4963 (gnat_to_gnu_entity): Use it at start and use result throughout. 4964 (gnat_to_gnu_entity, case E_Access_Type): Rework to use 4965 Gigi_Equivalent_Type, support Limited_With, allow two levels of 4966 indirection, precompute if unconstrained array to simplify logic, and 4967 use defer_limited_with to defer elaboration of some types from limited 4968 with. 4969 (finalize_from_with_types): New function. 4970 49712007-06-06 Gary Dismukes <dismukes@adacore.com> 4972 Eric Botcazou <ebotcazou@adacore.com> 4973 Tristan Gingold <gingold@adacore.com> 4974 Olivier Hainque <hainque@adacore.com> 4975 4976 * trans.c (Identifier_to_gnu): Change test for deferred constant by 4977 adding guard that the entity is an E_Constant before testing presence 4978 of Full_view (and remove unnecessary test that entity is not a type). 4979 For a CONST_DECL used by reference, manually retrieve 4980 the DECL_INITIAL. Do not invoke fold in the other DECL_P cases either. 4981 (struct language_function): Move from utils.c to here. 4982 (struct parm_attr): New structure. 4983 (parm_attr, parm_attr vector, parm_attr GC vector): New types. 4984 (f_parm_attr_cache): New macro. 4985 (Attribute_to_gnu) <Attr_Length>: When not optimizing, cache the 4986 expressions for the 'First, 'Last and 'Length attributes of the 4987 unconstrained array IN parameters. 4988 (Subprogram_Body_to_gnu): Use gnu_subprog_decl throughout. 4989 Allocate the information structure for the function earlier, as well 4990 as the language-specific part. 4991 If the parameter attributes cache has been populated, evaluate the 4992 cached expressions on entry. 4993 (takes_address): Add OPERAND_TYPE parameter. Handle N_Function_Call, 4994 N_Procedure_Call_Statement and N_Indexed_Component. 4995 (Pragma_to_gnu): Translate inspection_point to an asm statement 4996 containaing a comment and a reference to the object (either its address 4997 for BLKmode or its value). 4998 (Identifier_to_gnu): Use TREE_CONSTANT instead of CONST_DECL to decide 4999 to go to DECL_INITIAL. Together with the size constraint relaxation 5000 in create_var_decl, enlarges the set of situations in which an 5001 identifier may be used as an initializer without implying elaboration 5002 code. 5003 (Subprogram_Body_to_gnu): Do not fiddle with the debug interface but set 5004 DECL_IGNORED_P on the function if Needs_Debug_Info is not set on the 5005 node. 5006 (maybe_stabilize_reference): Remove lvalues_only parameter. 5007 (gnat_stabilize_reference): Adjust for above change. 5008 (gnat_to_gnu): Do not set location information on the result 5009 if it is a reference. 5010 (add_cleanup): Add gnat_node parameter and set the location of the 5011 cleanup to it. 5012 (Handled_Sequence_Of_Statements_to_gnu): Adjust calls to add_cleanup. 5013 (Exception_Handler_to_gnu_zcx): Likewise. 5014 (gigi): Remove the cgraph node if the elaboration procedure is empty. 5015 (Subprogram_Body_to_gnu): If a stub is attached to the subprogram, emit 5016 the former right after the latter. 5017 (start_stmt_group): Make global. 5018 (end_stmt_group): Likewise. 5019 (gnu_constraint_error_label_stack, gnu_storage_error_label_stack): New 5020 vars. 5021 (gnu_program_error_label_stack): Likewise. 5022 (gigi): Initialize them. 5023 (call_to_gnu, gnat_to_gnu, emit_check): Add new arg to build_call_raise. 5024 (gnat_to_gnu, N_{Push,Pop}_{Constraint,Storage,Program}_Error_Label): 5025 New cases. 5026 (push_exception_label_stack): New function. 5027 (takes_address): New function. 5028 5029 * utils.c (struct language_function): Move to trans.c from here. 5030 (unchecked_convert): Do not wrap up integer constants in 5031 VIEW_CONVERT_EXPRs. 5032 (create_var_decl_1): Decouple TREE_CONSTANT from CONST_DECL. Prevent 5033 the latter for aggregate types, unexpected by later passes, and relax an 5034 arbitrary size constraint on the former. 5035 (create_field_decl): Use tree_int_cst_equal instead of operand_equal_p 5036 to compare the sizes. 5037 (convert_vms_descriptor): When converting to a fat pointer type, be 5038 prepared for a S descriptor at runtime in spite of a SB specification. 5039 (shift_unc_components_for_thin_pointers): New function. 5040 (write_record_type_debug_info): For variable-sized fields, cap the 5041 alignment of the pointer to the computed alignment. 5042 (finish_record_type): Change HAS_REP parameter into REP_LEVEL. 5043 If REP_LEVEL is 2, do not compute the sizes. 5044 (build_vms_descriptor): Adjust for new prototype of finish_record_type. 5045 (build_unc_object_type): Likewise. 5046 (declare_debug_type): New function. 5047 5048 * ada-tree.def: USE_STMT: removed (not emitted anymore). 5049 5050 * misc.c (gnat_expand_expr): Call to gnat_expand_stmt removed because 5051 no statement is expandable anymore. 5052 (gnat_init_gcc_eh): Do not initialize the DWARF-2 CFI machinery twice. 5053 (gnat_handle_option): Only allow flag_eliminate_debug_types to be set 5054 when the user requested it explicitely. 5055 (gnat_post_options): By default, set flag_eliminate_unused_debug_types 5056 to 0 for Ada. 5057 (get_alias_set): Return alias set 0 for a type if 5058 TYPE_UNIVERSAL_ALIASING_P is set on its main variant. 5059 5060 * ada-tree.h: (TYPE_UNIVERSAL_ALIASING_P): New macro. 5061 (DECL_FUNCTION_STUB): New accessor macro. 5062 (SET_DECL_FUNCTION_STUB): New setter macro. 5063 5064 * lang.opt (feliminate-unused-debug-types): Intercept this flag for Ada. 5065 5066 * fe.h (Get_Local_Raise_Call_Entity, Get_RT_Exception_Entity): New 5067 declarations. 5068 50692007-06-06 Jose Ruiz <ruiz@adacore.com> 5070 5071 * s-intman-vxworks.ads, s-intman-vxworks.adb (Abort_Task_Signal): 5072 Rename to Abort_Task_Interrupt to be able to keep the same interface 5073 as the rest of the targets. 5074 5075 * s-osinte-vxworks.ads s-osinte-vxworks.adb 5076 (To_VxWorks_Priority): Remove explicit "in" mode indicator 5077 5078 * s-osinte-vxworks6.ads, s-vxwork-arm.ads, system-vxworks-arm.ads: 5079 New files. 5080 50812007-06-06 Robert Dewar <dewar@adacore.com> 5082 5083 * a-chahan.ads: Remove obsolescent pragmas 5084 5085 * a-chlat1.ads: Minor reformatting 5086 50872007-06-06 Robert Dewar <dewar@adacore.com> 5088 5089 * comperr.adb (Compiler_Abort): New Finalize/Output_Messages interface 5090 for Errout 5091 5092 * errout.adb: New Finalize/Compilation_Errors/Output_Messages 5093 implementation 5094 5095 * errout.ads (Finalize): Changed interface 5096 (Output_Messages): New procedure 5097 (Compilation_Errors): New Interface 5098 5099 * prepcomp.ads, prepcomp.adb (Parse_Preprocessing_Data_File): New 5100 Finalize/Output_Messages interface for Errout 5101 (Prepare_To_Preprocess): New Finalize/Output_Messages interface for 5102 Errout. 5103 51042007-06-06 Thomas Quinot <quinot@adacore.com> 5105 Olivier Hainque <hainque@adacore.com> 5106 Robert Dewar <dewar@adacore.com> 5107 5108 * a-except.ads, a-except.adb: (Rmsg_28): Fix description for E.4(18) 5109 check. 5110 (Raise_Current_Excep): Call Debug_Raise_Exception just before 5111 propagation starts, to let debuggers know about the event in a reliable 5112 fashion. 5113 (Local_Raise): Moved to System.Exceptions 5114 More convenient to have this as a separate unit 5115 5116 * s-except.adb, s-except.ads: New files. 5117 5118 * a-exextr.adb (Unhandled_Exception): Delete - replaced by 5119 Debug_Unhandled_Exception in System.Exceptions where it belongs 5120 together with a couple of other debug helpers. 5121 (Notify_Unhandled_Exception): Use Debug_Unhandled_Exception instead of 5122 the former Unhandled_Exception. 5123 5124 * exp_ch11.ads, exp_ch11.adb: (Possible_Local_Raise): New procedure 5125 (Warn_No_Exception_Propagation): New procedure 5126 (Warn_If_No_Propagation): Rewritten for new warning generation 5127 (Expand_Exception_Handlers): New warning generation 5128 (Expand_N_Raise_xxx_Error): Rewritten for new warnings 5129 (Add_Exception_Label): Use Special_Exception_Package_Used for test 5130 instead of Most_Recent_Exception_Used (accomodates Exception_Traces) 5131 (Expand_Local_Exception_Handlers): Unconditionally add extra block wrap 5132 even if restriction is set (makes life easier in Check_Returns) 5133 (Expand_Local_Exception_Handlers): Follow renamed entity chain when 5134 checking exception identities. 5135 (Expand_Local_Exception_Handlers): Do not optimize when all others case 5136 (Expand_Local_Exception_Handlers): Set Exception_Junk flag on generated 5137 block for handler (used by Check_Returns) 5138 (Expand_Local_Exception_Handlers): Local_Raise now takes an address 5139 (Expand_N_Handled_Sequence_Of_Statements): Properly handle -gnatd.x to 5140 remove all exception handlers when optimizing local raise statements. 5141 (Find_Local_Handler): Use Get_Renamed_Entity 5142 (Expand_N_Handled_Sequence_Of_Statements): If the handled sequence is 5143 marked analyzed after expanding exception handlers, do not generate 5144 redundant cleanup actions, because they have been constructed already. 5145 51462007-06-06 Thomas Quinot <quinot@adacore.com> 5147 5148 * a-finali.ads (Ada.Finalization): Add missing pragma Remote_Types. The 5149 presence of this categorization pragma is mandated by the language. 5150 (Limited_Controlled): Add missing pragma Preelaborable_Initialization 5151 for this type. 5152 51532007-06-06 Vincent Celier <celier@adacore.com> 5154 Robert Dewar <dewar@adacore.com> 5155 5156 * bcheck.adb, binde.adb, binderr.adb, binderr.ads, butil.adb, 5157 butil.ads, erroutc.adb, erroutc.ads, errutil.adb, errutil.ads, 5158 err_vars.ads, exp_tss.adb, exp_tss.ads, fmap.adb, fmap.ads, 5159 fname.adb, fname.ads, fname-sf.adb, fname-uf.adb, fname-uf.ads, 5160 lib-sort.adb, lib-util.adb, lib-util.ads, lib-xref.adb, makeutl.ads, 5161 makeutl.adb, nmake.adt, osint.adb, osint.ads, osint-b.adb, 5162 par-load.adb, prj-attr.adb, prj-dect.adb, prj-err.adb, prj-makr.adb, 5163 prj-part.adb, prj-pp.adb, prj-proc.adb, prj-tree.adb, prj-tree.ads, 5164 prj-util.adb, prj-util.ads, scans.adb, scans.ads, sem_ch2.adb, 5165 sinput-c.adb, styleg-c.adb, tempdir.adb, tempdir.ads, uname.adb, 5166 uname.ads, atree.h, atree.ads, atree.adb, ali-util.ads, ali-util.adb, 5167 ali.ads, ali.adb: 5168 Move Name_Id, File_Name_Type and Unit_Name_Type from package Types to 5169 package Namet. Make File_Name_Type and Unit_Name_Type types derived from 5170 Mame_Id. Add new type Path_Name_Type, also derived from Name_Id. 5171 Use variables of types File_Name_Type and Unit_Name_Type in error 5172 messages. 5173 (Get_Name): Add parameter Ignore_Special, and set it reading file name 5174 (New_Copy): When debugging the compiler, call New_Node_Debugging_Output 5175 here. 5176 Define flags Flag217-Flag230 with associated subprograms 5177 (Flag_Word5): New record type. 5178 (Flag_Word5_Ptr): New access type. 5179 (To_Flag_Word5): New unchecked conversion. 5180 (To_Flag_Word5_Ptr): Likewise. 5181 (Flag216): New function. 5182 (Set_Flag216): New procedure. 5183 51842007-06-06 Arnaud Charlet <charlet@adacore.com> 5185 5186 * a-stzunb.adb, a-stwiun.adb, a-strunb.adb: (Insert): Use 'Length 5187 instead of 'Size. 5188 5189 * a-stwifi.ads, a-stzfix.ads: Minor reformatting 5190 51912007-06-06 Javier Miranda <miranda@adacore.com> 5192 5193 * a-tags.ads, a-tags.adb (Tag_Size): This constant is now internal to 5194 the package. 5195 (Object_Specific_Data_Array): This is now internal to the package. 5196 (Object_Specific_Data): This is now internal to the package. 5197 (Select_Specific_Data_Element): This is now internal to the package. 5198 (Select_Specific_Data_Array): This is now internal to the package. 5199 (Select_Specific_Data): This is now internal to the package. 5200 (Offset_To_Top_Function_Ptr): This is now public. 5201 (To_Offset_To_Top_Function_Ptr): Removed. 5202 (Storage_Offset_Ptr,To_Storage_Offset_Ptr): These declarations are now 5203 local to subprogram Offset_To_Top. 5204 (Predefined_DT): Removed. 5205 (Typeinfo_Ptr): Removed. 5206 (OSD): This function is now internal to this package. 5207 (SSD): This function is now internal to this package. 5208 (DT): New function that displaces the pointer to the table of primitives 5209 to get access to the enclosing wrapper record. 5210 (IW_Membership): Code cleanup. 5211 (Offset_To_Top): Code cleanup. 5212 (Predefined_DT): Removed. 5213 (Register_Interface_Tag): Removed. 5214 (Set_Interface_Table): Removed. 5215 (Set_Offset_Index): Removed. 5216 (Set_Offset_To_Top): Code cleanup. 5217 (Set_OSD): Removed. 5218 (Set_Signature): Removed. 5219 (Set_SSD): Removed. 5220 (Set_Tagged_Kind): Removed. 5221 (Typeinfo_Ptr): Removed. 5222 (TSD): Removed. 5223 (Displace): Add missing check on null actual. 5224 5225 * exp_disp.ads, exp_disp.adb 5226 (Select_Expansion_Utilities): Removed. 5227 (Build_Common_Dispatching_Select_Statements): Moved to exp_atags. 5228 (Expand_Dispatching_Call): Update calls to Get_Prim_Op_Address because 5229 the interface requires a new parameter. 5230 (Make_Disp_Asynchronous_Select_Spec, Make_Disp_Conditional_Select_Spec, 5231 Make_Disp_Get_Prim_Op_Kind_Spec, Make_Disp_Timed_Select_Spec): Replace 5232 calls to subprograms Build_T, Build_S, etc. by the corresponding code. 5233 Done to remove package Select_Expansion_Utilities. 5234 (Make_DT): New implementation for statically allocated dispatch tables. 5235 (Make_Secondary_DT): Moved to the scope of Make_DT. 5236 (Register_Primitive): Code cleanup plus incoporate the use of the new 5237 function DT_Address_Attribute. 5238 (Expand_Interface_Thunk): The profile of this subprogram has been 5239 changed to return the Thunk_Id and the corresponding code. 5240 (Fill_DT_Entry): Removed. Its functionality is now provided by 5241 subprogram Register_Primitive. 5242 (Fill_Secondary_DT_Entry): Removed. Its functionality is now provided by 5243 subprogram Register_Primitive. 5244 (Register_Primitive): New subprogram that incorporates the previous 5245 functionalities of Fill_DT_Entry and Fill_Secondary_DT_Entry. 5246 (Build_Common_Dispatching_Select_Statements): Remove formal Typ. This 5247 was only required to call Make_DT_Access_Action, which is now removed. 5248 (Ada_Actions): Removed 5249 (Action_Is_Proc): Removed 5250 (Action_Nb_Arg): Removed 5251 Replace all the calls to Make_DT_Access_Action by direct calls to 5252 Make_Procedure_Call_Statement or Make_Function_Call. 5253 (Set_DTC_Entity_Value): New subprogram. 5254 (Set_All_DT_Position): Add call to new subprogram Set_DTC_Entity_Value. 5255 (Expand_Interface_Thunk): Add missing support for primitives that are 5256 functions with a controlling result (case in which there is no need 5257 to generate the thunk). 5258 5259 * exp_atag.ads, exp_atag.adb 5260 (Build_DT): New subprogram that displaces the pointer to reference the 5261 base of the wrapper record. 5262 (Build_Typeinfo_Offset): Removed. 5263 (RTE_Tag_Node): Removed. 5264 (Build_Common_Dispatching_Select_Statements): Moved here from exp_disp 5265 (Build_Get_RC_Offset): Removed. 5266 (Build_Inherit_Predefined_Prims): Removed. 5267 (Build_Inherit_TSD: Removed. 5268 (Build_New_TSD): Removed. 5269 (Build_Set_External_Tag): Removed. 5270 (Build_Set_Predefined_Prim_Op_Address): Add documentation. 5271 (Build_Set_Prim_Op_Address): Add documentation. 5272 (Build_Set_TSD): Removed. 5273 5274 * rtsfind.ads, rtsfind.adb 5275 (Load_Fail): If load fails and we are not in configurable run-time 5276 mode, then raise Unrecoverable_Error. 5277 (Text_IO_Kludge): Generate an error message if a run-time library is 5278 not available in a given run-time (ie. zfp run-time). 5279 (RTE_Record_Component): Add code to check that the component we search 5280 for is not found in two records in the given run-time package. 5281 (RE_DT_Offset_To_Top_Size, RE_DT_Predef_Prims_Size): Removed 5282 (RE_DT_Predef_Prims_Offset): New entity 5283 (RE_Static_Offset_To_Top): New entity 5284 (RE_HT_Link): New entity. 5285 (System_Address_Image): Addition of this run-time package. 5286 (RE_Address_Image): New entity. 5287 (RE_Abstract_Interface): Removed. 5288 (RE_Default_Prim_Op_Count): Removed. 5289 (RE_DT_Entry_Size): Removed. 5290 (RE_DT_Min_Prologue_Size): Removed. 5291 (RE_DT_Prologue_Size): Removed. 5292 (RE_Ifaces_Table_Ptr): Removed. 5293 (RE_Interface_Data_Ptr): Removed. 5294 (RE_Type_Specific_Data): Removed. 5295 (RE_Primary_DT): Removed. 5296 (RE_Register_Interface_Tag): Removed. 5297 (RE_Set_Offset_Index): Removed. 5298 (RE_Set_OSD): Removed. 5299 (RE_Set_SSD): Removed. 5300 (RE_Set_Signature): Removed. 5301 (RE_Set_Tagged_Kind): Removed. 5302 (RE_Address_Array): New entity. 5303 (RE_DT): New entity. 5304 (RE_Iface_Tag): New entity. 5305 (RE_Interfaces_Table): New entity. 5306 (RE_No_Dispatch_Table): New entity. 5307 (RE_NDT_Prims_Ptr): New entity. 5308 (RE_NDT_TSD): New entity. 5309 (RE_Num_Prims): New entity. 5310 (RE_Offset_To_Top_Function_Ptr): New entity. 5311 (RE_OSD_Table): New entity. 5312 (RE_OSD_Num_Prims): New entity. 5313 (RE_Predef_Prims): New entity 5314 (RE_Predef_Prims_Table_Ptr): New entity. 5315 (RE_Primary_DT): New entity. 5316 (RE_Signature): New entity. 5317 (RE_SSD): New entity. 5318 (RE_TSD): New entity. 5319 (RE_Type_Specific_Data): New entity. 5320 (RE_Tag_Kind): New entity. 5321 53222007-06-06 Thomas Quinot <quinot@adacore.com> 5323 5324 * a-textio.ads, a-textio.adb (Write): Add explicit size clause for the 5325 C imported variable. 5326 (Skip_Line): Do not reset Before_LM_PM immediately when Before_LM is set 5327 on entry. 5328 53292007-06-06 Robert Dewar <dewar@adacore.com> 5330 5331 * a-tienio.adb (Get): Adjust buffer size to accomodate one extra 5332 character 5333 53342007-06-06 Vincent Celier <celier@adacore.com> 5335 5336 * a-tifiio.adb (Put, internal): For negative numbers, check that there 5337 is room for at least one digit and the minus sign. 5338 (Put.Put_Character): Never put a character outside of the range of 5339 string To. 5340 53412007-06-06 Olivier Hainque <hainque@adacore.com> 5342 Eric Botcazou <ebotcazou@adacore.com> 5343 5344 * utils2.c (build_allocator): Provide the extra arguments to 5345 make_aligning_type for super-aligned objects allocated from the default 5346 pool. Leave enough room for a pointer before the aligning field, and 5347 store the system's allocator return value there. 5348 (build_call_alloc_dealloc): When releasing a super-aligned object, 5349 retrieve the system's allocator return value from where build_allocator 5350 has stored it, just ahead of the adjusted address we are passed. 5351 (build_call_raise): Handle properly the generation of line numbers when 5352 the node is marked No_Location. 5353 (compare_elmt_bitpos): Use tree_int_cst_compare. Stabilize the sort 5354 by using DECL_UID on ties. 5355 (build_binary_op) <EQ_EXPR>: Accept fat pointer types with the same 5356 main variant. 5357 (build_call_raise): Handle converting exception into goto; support new 5358 argument KIND. 5359 (build_component_ref): Add new arg to build_call_raise. 5360 53612007-06-06 Hristian Kirtchev <kirtchev@adacore.com> 5362 5363 * a-ztflau.adb, a-wtflau.adb, a-tiflau.adb (Load_Real): Do not parse 5364 "." in the case of nnn.xxx when nnn terminates with an underscore. 5365 Parse the remaining "#" or ":" in the case of nnn#.xxx# 5366 53672007-06-06 Robert Dewar <dewar@adacore.com> 5368 5369 * a-tigeau.ads, a-tigeau.adb: (Store_Char): Change Buf to IN OUT 5370 53712007-06-06 Arnaud Charlet <charlet@adacore.com> 5372 Vincent Celier <celier@adacore.com> 5373 Robert Dewar <dewar@adacore.com> 5374 5375 * bindgen.adb (Gen_Output_File_Ada): Generate pragma No_Run_Time when 5376 needed. 5377 (Gen_Output_File_Ada, Gen_Output_File_C): Never use __attribute 5378 ((destructor)) for adafinal, even when switch -a is used. 5379 Do not issue pragma Linker_Destructor for adafinal when switch -a is 5380 used. 5381 (Gen_Object_Files_Options): Add formatting of Linker Options, when 5382 Output_Linker_Option_List is set. Suppress this formatting when 5383 Zero_Formatting is set. 5384 Add case for CLI_Target. 5385 (System_Restrictions_Used): New flag, used to avoid generating with of 5386 System_Restrictions and initialization of the data unless there is 5387 some use of System.Restrictions in the partition. 5388 (Check_System_Restrictions_Used): New procedure 5389 5390 * s-stalib.adb: Remove with of System.Restrictions. No longer needed 5391 since we only with this unit in the binder file if it is used elsewhere 5392 in the partition. 5393 53942007-06-06 Vincent Celier <celier@adacore.com> 5395 5396 * bindusg.adb: Add line for @<response file> 5397 Add lines for new switches -R and -Z 5398 5399 * gnatbind.adb (Gnatbind): Do not include sources from the GNAT 5400 hierarchy in the list of files of the closure when -R is used 5401 (Gnatbind): Accept arguments starting with '@' to indicate response 5402 files and take the arguments from the response files. 5403 If List_Closure is set, display the referenced files 5404 54052007-06-06 Javier Miranda <miranda@adacore.com> 5406 Robert Dewar <dewar@adacore.com> 5407 Ed Schonberg <schonberg@adacore.com> 5408 5409 * checks.ads, checks.adb (Apply_Address_Clause_Check): Handle case in 5410 which the address-clause is applied to in-mode actuals (allowed by 5411 13.1(22)). 5412 (Apply_Discriminant_Check): Do not generate a check if the type is 5413 constrained by a current instance. 5414 (Activate_Division_Check): New procedure 5415 (Activate_Overflow_Check): New procedure 5416 (Activate_Range_Check): New procedure 5417 Call these new Activate procedures instead of setting flags directly 5418 (Apply_Array_Size_Check): Removed, no longer needed. 5419 Code clean up: remove obsolete code related to GCC 2. 5420 (Get_E_Length): Protect against bomb in case scope is standard 5421 (Selected_Range_Checks): If the node to be checked is a conversion to 5422 an unconstrained array type, and the expression is a slice, use the 5423 bounds of the slice to construct the required constraint checks. 5424 Improve NOT NULL error messages 5425 (Apply_Constraint_Check): If the context is a null-excluding access 5426 type, diagnose properly the literal null. 5427 54282007-06-06 Pascal Obry <obry@adacore.com> 5429 5430 * clean.adb (Clean_Archive): Use untouched casing for the archive name 5431 and the corresponding .deps file. 5432 (Clean_Interface_Copy_Directory): Use untouched casing for the library 5433 src directory. Minor code-clean-up. Use untouched casing for files 5434 read into the library src dir. 5435 (Clean_Library_Directory): Idem. 5436 (Parse_Cmd_Line): Accept new switch -aP 5437 54382007-06-06 Javier Miranda <miranda@adacore.com> 5439 Ed Schonberg <schonberg@adacore.com> 5440 Robert Dewar <dewar@adacore.com> 5441 Eric Botcazou <ebotcazou@adacore.com> 5442 Arnaud Charlet <charlet@adacore.com> 5443 5444 * einfo.ads, einfo.adb (Available_View): New synthesized attribute 5445 applicable to types that have the With_Type flag set. Returns the 5446 non-limited view of the type, if available, otherwise the type itself. 5447 For class-wide types, there is no direct link in the tree, so we have 5448 to retrieve the class-wide type of the non-limited view of the Etype. 5449 New attributes Static_Initialization and Static_Elaboration_Desired. 5450 Remove the pragma Thread_Body, and the associated flag 5451 Is_Thread_Body in entities, and all related code. 5452 (Suppress_Value_Tracking_On_Call): New flag 5453 E_Exception has Esize and Alignment fields 5454 (Universal_Aliasing): New function. 5455 (Set_Universal_Aliasing): New procedure. 5456 (Write_Entity_Flags): Deal with Universal_Aliasing flag. 5457 (Check_Nested_Access): New procedure. 5458 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. 5459 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. 5460 (Related_Interface): New attribute. Present in dispatch table pointer 5461 components of records. Set to point to the entity of the corresponding 5462 interface type. 5463 (Is_By_Reference_Type): Recurse on the full view of an incomplete type. 5464 (Original_Access_Type): Remove, not needed. 5465 (Root_Type): Handle properly subtypes of class-wide-types. 5466 Update comments. 5467 5468 * sem_ch4.adb (Analyze_Explicit_Dereference): Add support for 5469 class-wide types visible through limited-with clauses. 5470 (Try_Primitive_Operation): When examining all primitive operations of a 5471 tagged type, do not consider subprograms labeled as hidden unless they 5472 belong to a private generic type with a tagged parent. 5473 (Try_Object_Operation): Extensive rewriting, to handle properly various 5474 overloading cases, when several ancestors may have class-wide operations 5475 that are possible candidates, and when the overloaded functions return 5476 array types and have defaulted parameters so that the call may be 5477 interpreted as an indexing. 5478 (Analyze_Allocator): Remove Mark_Allocator and its invocation. 5479 (Process_Function_Call): use Next, rather than Next_Actual, to analyze 5480 successive actuals before analyzing the call itself. 5481 (Try_Primitive_Operation): A primitive operation is compatible with the 5482 prefix if the prefix has a synchronized type and the type of the formal 5483 is its corresponding record, as can be the case when the primitive 5484 operation is declared outside of the body of the type. 5485 (Traverse_Homonyms): New subprocedure of Try_Class_Wide_Operation, to 5486 perform homonym traversal, looking for class-wide operation matches 5487 (formerly done in statements of Try_Class_Wide_Operation). Matches on 5488 access parameters are now restricted to anonymous access types. 5489 (Mark_Allocator): An allocator with a discriminant association parent is 5490 a coextension. 5491 (Try_One_Prefix_Interpretation): If the type of the object is 5492 incomplete, as can be happen when it is a limited view obtained through 5493 a limited_with_clause, the selected component is not part of a prefixed 5494 call. 5495 (Complete_Object_Operation): Diagnose properly an object that is not 5496 aliased when the corresponding controlling formal is an access 5497 parameter. 5498 (Try_Primitive_Operation, Try_Class_Wide_Operation): Diagnose properly 5499 ambiguous calls in prefixed notation, where two primitives differ only 5500 in that the controlling argument of one is an access parameter. 5501 5502 * sem_ch6.adb (Has_Single_Return): Add guard in code that determines 5503 whether a function that returns an unconstrained type can be inlined. 5504 (Process_Formals): Diagnose properly the illegal use of an incomplete 5505 type in the profile of an access_to_subprogram declaration. 5506 (Check_Synchronized_Overriding): Nothing check for concurrent types, the 5507 operations are attached to the corresponding record. 5508 (Analyze_Subprogram_Specification): Add variables Formal and Formal_Typ. 5509 When processing a primitive of a concurrent type which implements an 5510 interface change the type of all controlling formals to that of the 5511 corresponding record type. 5512 (Check_Synchronized_Overriding): Relax the conditional logic when trying 5513 to determine the tagged type to which a primitive belongs. 5514 (Check_Conventions): Capture condition to ignore a primitive operation 5515 (which is shared between the loop in Check_Conventions and the one in 5516 Check_Convention) in a new local function Skip_Check. 5517 (Check_Convention): Rename Prim_Op to Second_Prim_Op to avoid possible 5518 confusion with Check_Conventions' own Prim_Op local variable. 5519 (Create_Extra_Formals): Test for a tagged result type rather than a 5520 controlling result when determining whether to add a BIP_Alloc_Form 5521 formal and a BIP_Final_List formal to the function. 5522 (Check_Conformance); For parameters that are anonymous access types, 5523 subtype conformance requires that the not null and the constant 5524 indicators must match 5525 (Check_Synchronized_Overriding): New parameter Formal_Typ. Add machinery 5526 to retrieve the appropriate type when processing a concurrent type 5527 declared within a generic. Minor comment reformatting. Change invocation 5528 of Overrides_Synchronized_Primitive to Find_Overridden_Synchronized_Pri- 5529 mitive. 5530 (Analyze_Subprogram_Body): If the return type of a function is an 5531 anonymous access to the limited view of a class-wide type, and the 5532 non-limited view of the type is available, update the type of the 5533 function so that code can be generated. 5534 (Process_Formals): In case of access-subtype itype whose designated 5535 type is also an itype (situation that happens now with access to 5536 subprograms) we mark the access-type itype with the Has_Delayed_Freeze 5537 attribute to avoid backend problems. 5538 (Check_Return_Subtype_Indication): Replace R_Type with R_Stm_Type in 5539 init of R_Stm_Type_Is_Anon_Access. Also check that base types of the 5540 anonymous types' designated types are same before testing 5541 Subtypes_Statically_Match. 5542 (Create_Extra_Formals): Test for a named access parameter that is a 5543 controlling formal as an additional condition for adding an 5544 accessibility level formal. This can occur in the subp type created for 5545 dispatching calls in Expand_Dispatching_Call, and allows calling 5546 Create_Extra_Formals from that procedure rather than special-casing the 5547 extra formals there. 5548 (Create_Extra_Formals): Add BIP_Alloc_Form and BIP_Final_List formals 5549 when the function has a controlling result. 5550 (Check_Returns): Add much more knowledge of the optimization of local 5551 raise statements to gotos, to retain proper warnings in this case. 5552 (Check_Statement_Sequence): Ignore N_Push_xxx_Label and N_Pop_xxx_Label 5553 nodes when looking for last statement. 5554 5555 * sem_type.ads, sem_type.adb (Specific_Type): Add support for 5556 class-wide types visible through limited with clauses. 5557 (Add_One_Interp): If the operands are anonymous access types, the 5558 predefined operator on universal_access is immediately visibles 5559 (Find_Unique_Type): Handle anonymous access to subprogram types just as 5560 other anonymous access types. 5561 (Disambiguate): Take into account CIL convention. 5562 (Interface_Present_In_Ancestor): Add support for class-wide interfaces. 5563 55642007-06-06 Robert Dewar <dewar@adacore.com> 5565 5566 * sinput.ads, sinput.adb, uintp.ads, urealp.adb, stringt.adb, 5567 sem_elim.adb, prj-strt.adb, repinfo.ads, repinfo.adb, namet.ads, 5568 elists.ads, elists.adb, lib.ads, lib.adb (Unlock): New procedure. 5569 Fix lower bound of tables. 5570 Add rep clauses. 5571 5572 * nlists.adb: Ditto. 5573 (Prev_Node, Next_Node): Change index type to Int so that it properly 5574 covers the range First_Node_Id - 1 up. 5575 55762007-06-06 Javier Miranda <miranda@adacore.com> 5577 Ed Schonberg <schonberg@adacore.com> 5578 Bob Duff <duff@adacore.com> 5579 Hristian Kirtchev <kirtchev@adacore.com> 5580 5581 * exp_aggr.ads, exp_aggr.adb: 5582 (Build_Record_Aggr_Code): Add missing initialization of secondary tags 5583 in extension aggregates. 5584 (Flatten): Other conditions being met, an aggregate is static if the 5585 low bound given by component associations is different from the low 5586 bound of the base index type. 5587 (Packed_Array_Aggregate_Handled): If the component type is itself a 5588 packed array or record, the front-end must expand into assignments. 5589 (Gen_Ctrl_Actions_For_Aggr): In call to Init_Controller, pass False to 5590 Init_Pr, instead of Ancestor_Is_Expression. 5591 (Gen_Ctrl_Actions_For_Aggr): When processing an aggregate of a 5592 coextension chain root, either generate a list controller or use the 5593 already existing one. 5594 (Static_Array_Aggregate): New procedure to construct a positional 5595 aggregate that can be handled by the backend, when all bounds and 5596 components are compile-time known constants. 5597 (Expand_Record_Aggregate): Force conversion of aggregates of tagged 5598 types covering interface types into assignments. 5599 (Replace_Type): move to Build_Record_Aggr_Code. 5600 (Expand_Record_Aggr_Code): if the target of the aggregate is an 5601 interface type, convert to the definite type of the aggregate itself, 5602 so that needed components are visible. 5603 (Convert_Aggr_In_Object_Decl): If the aggregate has controlled 5604 components and the context is an extended return statement do not 5605 create a transient block for it, to prevent premature finalization 5606 before the return is executed. 5607 (Gen_Assign): Do not generate a call to deep adjust routine if the 5608 component type is itself an array of controlled (sub)-components 5609 initialized with an inner aggregate. 5610 (Component_Check): New name for Static_Check. This name is now more 5611 appropriate, and documentation is added which was missing. 5612 (Component_Check): Add test for bit aligned component value 5613 (Component_Not_OK_For_Backend): Renames Has_Delayed_Nested_Aggregate_Or_ 5614 Tagged_Comps, name is more appropriate given added function below. 5615 (Component_Not_OK_For_Backend): Check for bit aligned component ref. 5616 56172007-06-06 Hristian Kirtchev <kirtchev@adacore.com> 5618 Javier Miranda <miranda@adacore.com> 5619 Robert Dewar <dewar@adacore.com> 5620 5621 * exp_attr.adb (Expand_N_Attribute_Reference): Case Callable and 5622 Terminated: Add unchecked type conversion from System.Address to 5623 System.Tasking.Task_Id when calling the predefined primitive 5624 _disp_get_task_id. 5625 Disable new Ada 05 accessibility check for JVM.NET targets, which 5626 cannot be implemented in a practical way. 5627 (Expand_N_Attribute_Reference: case Attribute_Tag): The use of 'Tag in 5628 the sources always references the tag of the actual object. Therefore, 5629 if 'Tag is applied in the sources to class-wide interface objects we 5630 generate code that displaces "this" to reference the base of the object. 5631 (Expand_N_Attribute_Reference, case Size): Return specified size if 5632 known to front end. 5633 (Expand_N_Attribute_Reference): The expansion of the 'Address attribute 5634 has code that displaces the pointer of the object to manage interface 5635 types. However this code must not be executed when the prefix is a 5636 subprogram. This bug caused the wrong expansion of the internally 5637 generated assignment that fills the dispatch table when the primitive 5638 is a function returning a class-wide interface type. 5639 (Expand_N_Attribute_Reference:Attribute_Valid): Remove incorrect call to 5640 Set_Attribute_Name for Name_Unaligned_Valid. 5641 56422007-06-06 Ed Schonberg <schonberg@adacore.com> 5643 Gary Dismukes <dismukes@adacore.com> 5644 5645 * exp_ch13.adb (Expand_N_Attribute_Definition_Clause, case 'Address): 5646 If the initialization is the equivalent aggregate of the initialization 5647 procedure of the type, do not remove it. 5648 (Expand_N_Attribute_Definition_Clause): Exclude access variables 5649 initialized to null from having their expression reset to empty and 5650 note this exception in the comment. 5651 56522007-06-06 Hristian Kirtchev <kirtchev@adacore.com> 5653 Robert Dewar <dewar@adacore.com> 5654 Ed Schonberg <schonberg@adacore.com> 5655 Gary Dismukes <dismukes@adacore.com> 5656 5657 * exp_ch2.adb: Remove "with" and "use" clauses for Namet and Snames. 5658 Add "with" and "use" clauses for Sem_Attr. 5659 (Expand_Current_Value): Do not replace occurences of attribute 5660 references where the prefix must be a simple name. 5661 5662 * sem_attr.ads, sem_attr.adb: Remove "with" and "use" clauses for 5663 Namet. Add new arrays Attribute_Name_Modifies_Prefix and 5664 Attribute_Requires_Simple_Name_Prefix. 5665 (Name_Modifies_Prefix): Body of new function. 5666 (Requires_Simple_Name_Prefix): Body of new function. 5667 (Resolve_Attribute, case Access): Improve error message for case of 5668 mismatched conventions. 5669 (Analyze_Attribute, case 'Tag): The prefix the attribute cannot be of an 5670 incomplete type. 5671 (Analyze_Attribute, case 'Access): If the type of the prefix is a 5672 constrained subtype for a nominal unconstrained type, use its base type 5673 to check for conformance with the context. 5674 (Resolve_Attribute): Remove test of the access type being associated 5675 with a return statement from condition for performing accessibility 5676 checks on access attributes, since this case is now captured by 5677 Is_Local_Anonymous_Access. 5678 (Analyze_Access_Attribute): Set Address_Taken on entity 5679 (Analyze_Attribute, case Address): Set Address_Taken on entity 5680 (OK_Self_Reference): Traverse tree to locate enclosing aggregate when 5681 validating an access attribute whose prefix is a current instance. 5682 (Resolve_Attribute): In case of attributes 'Code_Address and 'Address 5683 applied to dispatching operations, if freezing is required then we set 5684 the attribute Has_Delayed_Freeze in the prefix's entity. 5685 (Check_Local_Access): Set flag Suppress_Value_Tracking_On_Call in 5686 current scope if access of local subprogram taken 5687 (Analyze_Access_Attribute): Check legality of self-reference even if the 5688 expression comes from source, as when a single component association in 5689 an aggregate has a box association. 5690 (Resolve_Attribute, case 'Access): Do not apply accessibility checks to 5691 the prefix if it is a protected operation and the attribute is 5692 Unrestricted_Access. 5693 (Resolve_Attribute, case 'Access): Set the Etype of the attribute 5694 reference to the base type of the context, to force a constraint check 5695 when the context is an access subtype with an explicit constraint. 5696 (Analyze_Attribute, case 'Class): If the prefix is an interface and the 5697 node is rewritten as an interface conversion. leave unanalyzed after 5698 resolution, to ensure that type checking against the context will take 5699 place. 5700 57012007-06-06 Ed Schonberg <schonberg@adacore.com> 5702 Javier Miranda <miranda@adacore.com> 5703 Robert Dewar <dewar@adacore.com> 5704 5705 * exp_ch3.adb (Make_Controlling_Function_Wrappers): generate wrapper a 5706 wrapper when the full view of the controlling type of an inherited 5707 function that dispatches on result implements interfaces. 5708 (Expand_N_Object_Declaration): In cases where the type of the 5709 declaration is anonymous access, create finalization list for it. 5710 (Expand_N_Object_Declaration): Generate a persistent_bss directive only 5711 if the object has no explicit initialization, to match description of 5712 functionality of pragam Persistent_BSS. 5713 (Build_Equivalent_Array_Aggregate, Build_Equivalent_Record_Aggregate): 5714 new function to build static aggregates, to replace initialization call 5715 when static initialization is desired. 5716 (Freeze_Type): Generate a list controller for an access type whenever 5717 its designated type has controlled anonymous access discriminants. 5718 (Build_Equivalent_Aggregate): New procedure to compute a static 5719 aggregate to be used as default initialization for composite types, 5720 instead of a generating a call to the initialization procedure for the 5721 type. 5722 (Build_Initialization_Call): When available, replace a call to the 5723 initialization procedure with a copy of the equivalent static aggregate 5724 for the type. 5725 (Expand_N_Object_Declaration): Use New_Occurrence_Of in generated 5726 declarations for objects of a class-wide interface type, rather than 5727 just identifiers, to prevent visibility problems. 5728 (Expand_N_Object_Declaration): When expanding the declaration for an 5729 object of a class-wide interface type, preserve the homonym chain of 5730 the original entity before exchanging it with that of the generated 5731 renaming declaration. 5732 (Freeze_Enumeration_Type): Don't raise CE if No_Exception_Propagation 5733 active, because there is no way to handle the exception. 5734 (Freeze_Record_Type): In case of CPP_Class types add a call to Make_DT 5735 to do a minimum decoration of the Access_Disp_Table list. 5736 (Expand_Record_Controller): Avoid the addition of the controller between 5737 the component containing the tag of a secondary dispatch table and its 5738 adjacent component that stores the offset to the base of the object. 5739 This latter component is only generated when the parent type has 5740 discriminants ---documented in Add_Interface_Tag_Components). 5741 (Apply_Array_Size_Check): Removed, no longer needed. 5742 (Expand_N_Full_Type_Declaration): If the type has anonymous access 5743 components, create a Master_Entity for it only if it contains tasks. 5744 (Build_Init_Procedure): Suppress the tag assignment compiling under 5745 no run-time mode. 5746 (Freeze_Record_Type): Remove code associated with creation of dispatch 5747 table. 5748 (Init_Secondary_Tags): Update type of actuals when generating calls to 5749 Ada.Tags.Set_Offset_To_Top 5750 (Stream_Operation_OK): Disable use of streams compiling under no 5751 run-time mode 5752 (Expand_N_Object_Declaration): Don't do Initialize_Scalars initalization 5753 if Has_Init_Expression set. 5754 (Build_Init_Procedure): Replace call to Fill_DT_Entry by call to 5755 Register_Primitive, which provides the same functionality. 5756 (Requires_Init_Proc): Return false in case of interface types. 5757 (Add_Secondary_Tables): Use the new attribute Related_Interface to 5758 cleanup the code. 5759 (Predefined_Primitive_Freeze): Do not assume that an internal entity 5760 is always associated with a predefined primitive because the internal 5761 entities associated with interface types are not predefined primitives. 5762 Therefore, the call to Is_Internal is replaced by a call to the 5763 function Is_Predefined_Dispatching_Operation. 5764 (Make_Eq_If): When generating the list of comparisons for the 5765 components of a given variant, omit the controller component that is 5766 present if the variant has controlled components. 5767 57682007-06-06 Javier Miranda <miranda@adacore.com> 5769 Hristian Kirtchev <kirtchev@adacore.com> 5770 Bob Duff <duff@adacore.com> 5771 5772 * exp_ch4.adb (Complete_Coextension_Finalization): Add machinery to 5773 handle the creation of finalization lists and calls for nested 5774 coextensions when the root of the chains is part of a return statement. 5775 (Inside_A_Return_Statement): New function inside Complete_Coextension_ 5776 Finalization. 5777 (Expand_Record_Equality): Skip components that are interface types. 5778 (Displace_Allocator_Pointer): Add missing support for interface subtypes 5779 (Expand_N_Allocator): Replace invocation of Is_Local_Access_Discriminant 5780 with Rewrite_Coextension. Change the condition for detecting coextension 5781 root nodes. 5782 (Is_Local_Access_Discriminant): Removed. 5783 (Rewrite_Coextension): New routine which rewrites a static coextension 5784 as a temporary and uses its unrestricted access in the construction of 5785 the outer object. 5786 (Complete_Coextension_Finalization): New routine. Generate finalization 5787 attachment calls to all delayed coextensions. 5788 (Expand_N_Allocator): Call Complete_Coextension_Finalization whenever 5789 the allocator is not a coextension itself and has delayed coextensions. 5790 If the current allocator is controlled, but also a coextension, delay 5791 the generation of the finalization attachment call. 5792 Rename local variable "Node" to "Nod" in order to avoid confusion with 5793 "Elists.Node". 5794 (Expand_Allocator_Expression): Call Adjust for initialized allocators of 5795 limited types that are not inherently limited. Such an allocator is 5796 illegal, but is generated by the expander for a return statement, to 5797 copy the result onto the secondary stack. This is the only case where a 5798 limited object can be copied. Generate code to displace the pointer 5799 to the object if the qualified expression is a class-wide interface 5800 object. Such displacement was missing and hence the copy of the object 5801 was wrong. 5802 (Apply_Accessibility_Check): Handle allocated objects initialized in 5803 place. 5804 (Displace_Allocator_Pointer): Subsidiary procedure to Expand_N_Allocator 5805 and Expand_Allocator_Expression. Allocating class-wide interface objects 5806 this routine displaces the pointer to the allocated object to reference 5807 the component referencing the corresponding secondary dispatch table. 5808 Expand_Allocator_Expression): Add missing support to allocate class-wide 5809 interface objects initialized with a qualified expression. 5810 (Get_Allocator_Final_List): Test for an anonymous access type that is a 5811 function result type, and use the finalization list associated with the 5812 function scope in that case (such an anonymous type should not be 5813 treated like an access parameter's type). 5814 58152007-06-06 Ed Schonberg <schonberg@adacore.com> 5816 Gary Dismukes <dismukes@adacore.com> 5817 Javier Miranda <miranda@adacore.com> 5818 5819 * exp_ch5.adb (Expand_N_Assignment_Statement): For the assignment of a 5820 controlled type, use Make_Handler_For_Ctrl_Operation to construct the 5821 required exception handler. 5822 (Expand_Simple_Function_Return, Expand_N_Return_Statement): Handle 5823 properly the case of a function whose return type is a limited 5824 class-wide interface type. Modify the code of the accessibility 5825 check to handle class-wide interface objects. In this case we need to 5826 displace "this" to reference the primary dispatch table to get access 5827 to the TSD of the object (to evaluate its accessibility level). 5828 (Expand_N_Extended_Return_Statement): Test for a tagged result type 5829 rather than a controlling result as one of the conditions for 5830 generating tests of the implicit BIP_Alloc_Form formal. The 5831 initialization assignment is also handled according to whether the 5832 result is tagged instead of controlling. 5833 In the case where the init assignment is inserted in the "then" part of 5834 the allocation conditional, rewrite the target to be a dereference of 5835 the implicit BIP_Object_Access formal. 5836 If the returned value is unconstrained and created on the secondary 5837 stack, mark the enclosing block and function so that the secondary 5838 stack is not reclaimed on return. 5839 Treat returns from functions with controlling results similarly to 5840 returns from functions with unconstrained result subtypes. 5841 If the object returned is unconstrained, and an allocator must be 5842 created for it, analyze the allocator once the block for the extended 5843 return is installed, to ensure that finalizable components 5844 of the expression use the proper finalization list. Guard the call to 5845 Move_Final_List with a check that there is something to finalize. 5846 (Make_Tag_Ctrl_Assignment): Use "old" handling 5847 of controlled type assignment for virtual machines, since new code uses 5848 unsupported features (such as direct access to bytes in memory). 5849 58502007-06-06 Gary Dismukes <dismukes@adacore.com> 5851 Ed Schonberg <schonberg@adacore.com> 5852 5853 * exp_ch6.ads, exp_ch6.adb (Expand_Call): When adding an extra 5854 accessibility actual, check for the case of an aliased object that has 5855 been rewritten as an Access attribute, and assign Prev to Prev_Orig so 5856 we fall into processing for the attribute rather than the name of the 5857 object. 5858 (Expand_Inline_Call): If an actual is a literal, and the corresponding 5859 formal has its address taken in the body, create a temporary to capture 5860 value. If the return type is a limited interface, do not treat the 5861 return value as Controlled. 5862 (Is_In_Place_Function): If the return type is a limited interface, 5863 treat as returning in place. The actual returned object may not always 5864 be limited, but the caller has to assume that it is returned in place. 5865 (Add_Final_List_Actual_To_Build_In_Place_Call): If the call is the 5866 context of an allocator, use the correct finalization chain (that is, 5867 the chain belonging to the access type, rather than the chain belonging 5868 to the current scope). 5869 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Test for a tagged 5870 result type rather than a controlling result as a precondition for 5871 adding an allocation form actual to a build-in-place call. 5872 (Add_Final_List_Actual_To_Build_In_Place_Call): Ditto. 5873 (Freeze_Subprogram): Code cleanup. Remove all the code that register the 5874 primitive in the dispatch tables. This work is now done by Make_DT when 5875 the type is frozen. 5876 (Register_Predefined_DT_Entry): Removed. 5877 (Add_Return): If end label is not present, use sloc of last statement 5878 for generated return statement in procedure, for better gdb behavior 5879 on expanded code. 5880 (Add_Access_Actual_To_Build_In_Place_Call): Set parent fields of the 5881 object address nodes to ensure proper processing by routines like 5882 Insert_After*. 5883 (Expand_Call): Fix generation of validity check for parameter 5884 (Add_Alloc_Form_Actual_To_Build_In_Place_Call): Return without passing 5885 the allocation form parameter if the result subtype is constrained, 5886 except when the function has a controlling result. 5887 (Add_Final_List_Actual_To_Build_In_Place_Call): Test Controlled_Type 5888 rather than Is_Controlled and Has_Controlled_Component, since we want to 5889 include class-wide result types in this treatment. Also test for a 5890 controlling result, since that also requires passing a finalization 5891 list. 5892 (Make_Build_In_Place_Call_In_Allocator): Call Add_Alloc_Form_Actual_* 5893 even when the result subtype is constrained, to handle calls involving 5894 controlling results. 5895 (Make_Build_In_Place_Call_In_Anonymous_Context): Add_Alloc_Form_Actual_* 5896 is now called even when the result subtype is constrained, to handle 5897 calls involving controlling results. 5898 (Make_Build_In_Place_Call_In_Assignment): Remove test for Is_Constrained 5899 on call to Add_Alloc_Form_Actual_To_Build_In_Place_Call (that procedure 5900 now performs the test). 5901 (Make_Build_In_Place_Call_In_Object_Declaration): 5902 Add_Alloc_Form_Actual_* is now called even when the result subtype is 5903 constrained, to handle calls involving controlling results. 5904 (Add_Return): Accomodate rewritten pattern from local raise to goto 5905 transformation, so that we still recognize an transfer statement 5906 and do the right thing here in that case. 5907 (Expand_N_Subprogram_Body): Add dummy Push/Pop_xxx_Label nodes at start 5908 and end of subprogram code. 5909 (Register_Interface_DT_Entry, Register_Predefined_DT_Entry): Add missing 5910 support for primitives that are functions (without formals) with a 5911 controlling result. 5912 (Inherited_From_Formal): If the actual subtype has not generic parent 5913 type, it is not an actual for a formal derived type, and there is no 5914 operation to inherit from the formal. 5915 59162007-06-06 Ed Schonberg <schonberg@adacore.com> 5917 Thomas Quinot <quinot@adacore.com> 5918 5919 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): Set Sloc of 5920 inserted cleanup code appropriately for GDB use. 5921 (Make_Deep_Proc): Use Make_Handler_For_Ctrl_Operation to create 5922 exception handler for Deep_Adjust or Deep_Finalize. 5923 (Make_Handler_For_Ctrl_Operation): New subprogram. When runtime entity 5924 Raise_From_Controlled_Operation is available, use a call to that 5925 subprogram instead of a plain "raise Program_Error" node to raise 5926 Program_Error if an exception is propagated from an Adjust or Finalize 5927 operation. 5928 (Insert_Actions_In_Scope_Around): If the statement to be wrapped 5929 appears in the optional statement list of a triggering alternative, the 5930 scope actions can be inserted directly there, and not in the list that 5931 includes the asynchronous select itself. 5932 59332007-06-06 Ed Schonberg <schonberg@adacore.com> 5934 Robert Dewar <dewar@adacore.com> 5935 Hristian Kirtchev <kirtchev@adacore.com> 5936 5937 * exp_ch9.ads, exp_ch9.adb (Build_Protected_Entry): Set sloc of 5938 generated exception handler appropriately when debugging generated code. 5939 Deal properly with No_Exception_Propagation restriction mode. 5940 (Expand_N_Abort_Statement): Add an unchecked type conversion from 5941 System.Address to System.Tasking.Task_Id when processing the result of 5942 the predefined primitive _disp_get_task_id. 5943 (Expand_N_Asynchronous_Select): Clarify comment. 5944 (Expand_N_Protected_Type_Declaration): Minor code cleanup. 5945 (Find_Parameter_Type): New routine inside Type_Conformant_Parameters. 5946 (Type_Conformant_Parameters): New parameter Prim_Op_Typ. Code cleanup. 5947 (Add_Private_Declarations, Build_Protected_Body): Use proper slocs for 5948 privals and for generated call to Complete_Entry_Body, for better gdb 5949 behavior. 5950 (Copy_Result_Type): Utility to construct a parameter and result profile 5951 for protected functions whose return type is an anonymous access to 5952 subprogram. 5953 (Build_Protected_Sub_Spec and Expand_Access_Protected_Subprogram_Type): 5954 call the above. 5955 (Build_Task_Activation_Call): Insert Activate_Tasks call at proper 5956 point when the local-raise-to-goto transformation has taken place. 5957 59582007-06-06 Javier Miranda <miranda@adacore.com> 5959 Nicolas Setton <setton@adacore.com> 5960 5961 * exp_dbug.adb (Get_Encoded_Name): Modified to continue providing its 5962 functionality when the backend is generating code. 5963 Otherwise any serious error 5964 reported by the backend calling the frontend routine Error_Msg 5965 changes the Compilation_Mode to Check_Semantics, disables the 5966 functionality of this routine and causes the generation of 5967 spureous additional errors. 5968 5969 * exp_dbug.ads (Pointers to Unconstrained Arrays): Document the 5970 debugging information now generated by the compiler for fat-pointer 5971 types. 5972 Document the contents of DW_AT_producer in the GNAT Vendor extensions to 5973 DWARF2/3. 5974 Document GNAT Vendor extensions to DWARF 2/3 and the "-gdwarf+" switch. 5975 59762007-06-06 Thomas Quinot <quinot@adacore.com> 5977 5978 * exp_dist.ads, exp_dist.adb (Make_Transportable_Check): New subprogram 5979 (GARLIC_Support.Build_Subprogram_Receiving_Stubs, 5980 PolyORB_Support.Build_Subprogram_Receiving_Stubs): 5981 For a remote call to a function with a classwide return type, apply an 5982 E.4(18) check to the returned value. 5983 (Add_RACW_Primitive_Declarations_And_Bodies): Do not generate stubs for 5984 stream attributes of the designated type of an RACW, as they are not 5985 dispatching primitive operations. 5986 59872007-06-06 Geert Bosch <bosch@adacore.com> 5988 5989 * exp_fixd.adb (Integer_Literal): Add optional argument to construct a 5990 negative literal 5991 (Do_Divide_Fixed_Fixed): Add comments to indicate Frac is always 5992 positive 5993 (Do_Divide_Fixed_Universal): Handle case of negative Frac. 5994 (Do_Multiply_Fixed_Fixed): Add coments to indicate Frac is always 5995 positive 5996 (Do_Multiply_Fixed_Universal): Handle case of negative Frac. 5997 59982007-06-06 Javier Miranda <miranda@adacore.com> 5999 6000 * exp_imgv.adb (Expand_Value_Attribute): Disable compilation of this 6001 attribute compiling package Ada.Tags under No_Run_Time_Mode. 6002 60032007-06-06 Javier Miranda <miranda@adacore.com> 6004 6005 * exp_intr.adb (Expand_Unc_Deallocation): Add missing support for 6006 deallocation of class-wide interface objects. 6007 (Expand_Dispatching_Constructor_Call): Take into account that if the 6008 result of the dispatching constructor is an interface type, the 6009 function returns a class-wide interface type; otherwise the returned 6010 object would be actual. The frontend previously accepted returning 6011 interface types because Expand_Interface_Actuals silently performed 6012 the management of the returned type "as if" it were a class-wide 6013 interface type. 6014 (Expand_Dispatching_Constructor_Call): Replace call to 6015 Make_DT_Access_Action by direct call to Make_Function_Call. 6016 60172007-06-06 Robert Dewar <dewar@adacore.com> 6018 Ed Schonberg <schonberg@adacore.com> 6019 6020 * exp_pakd.adb (Expand_Packed_Not): Use RM_Size rather than ESize to 6021 compute masking constant, since we now set Esize properly to the 6022 underlying size. 6023 (Create_Packed_Array_Type): Set proper Esize value adjusted as required 6024 to match the alignment. 6025 (Create_Packed_Array_Type): Use Short_Short_Unsigned as base type for 6026 packed arrays of 8 bits or less. 6027 6028 * freeze.adb (Freeze_Entity): When freezing the formals of a 6029 subprogram, freeze the designated type of a parameter of an access type 6030 only if it is an access parameter. 6031 Increase size of C convention enumeration object 6032 (Freeze_Entity, array type case): Make sure Esize value is properly 6033 adjusted for the alignment if it is known. 6034 (Freeze_Entity, array type case): When checking bit packed arrays for 6035 the size being incorrect, check RM_Size, not Esize. 6036 (Freeze_Record_Type): Check for bad discriminated record convention 6037 (In_Exp_Body): Return true if the body is generated for a subprogram 6038 renaming, either an attribute renaming or a renaming as body. 6039 (Check_Itype): If the designated type of an anonymous access component 6040 is a non-protected subprogram type, indicate that it is frozen, to 6041 prevent out-of-scope freeze node at some subsequent call. 6042 (Freeze_Subprogram): On OpenVMS, reject descriptor passing mechanism 6043 only if the subprogram is neither imported nor exported, as well as the 6044 NCA descriptor class if the subprogram is exported. 6045 60462007-06-06 Ed Schonberg <schonberg@adacore.com> 6047 Arnaud Charlet <charlet@adacore.com> 6048 Robert Dewar <dewar@adacore.com> 6049 Gary Dismukes <dismukes@adacore.com> 6050 6051 * exp_prag.adb (Expand_Pragma_Import_Or_Interface): Remove properly a 6052 default initialization on an imported object, when there is no 6053 initialization call generated for it. 6054 (Expand_Pragma_Assert): Add handling of No_Exception_Propagation 6055 restriction 6056 6057 * snames.h, snames.ads, snames.adb, par-prag.adb: New pragma 6058 Static_Elaboration_Desired. 6059 Remove pragma Thread_Body. 6060 Implement a new pragma No_Body 6061 Removes the Explicit_Overriding pragma 6062 Remove Optional_Overriding pragma 6063 (Prag): Deal with Universal_Aliasing. 6064 (Name_CIL, Name_CIL_Constructor, Convention_CIL, 6065 Pragma_CIL_Constructor): New names. 6066 6067 * sem_cat.adb (Validate_Object_Declaration): An initialization that 6068 uses the equivalent aggregate of a type must be treated as an implicit 6069 initialization. 6070 (Get_Categorization): Check a unit for pragma Preelaborate only if it 6071 has none of the other categories. 6072 (Process_Import_Or_Interface_Pragma): Report an error for an attempt 6073 to apply Import to an object renaming declaration. 6074 6075 * sem_prag.adb (Process_Import_Or_Interface): Warn that a type imported 6076 from a C++ class should be declared as limited and that it will be 6077 considererd limited. 6078 (Analyze_Pragma): Warn that a type specified with pragma CPP_Class 6079 should be declared as limited and that it will be considererd limited. 6080 (Ada_2005_Pragma): New procedure, used to deal with Ada 2005 pragmas 6081 (Analyze_Pragma, case Export): Diagnose export of enumeration literal 6082 (Analyze_Pragma): Deal with Universal_Aliasing. 6083 (Sig_Flags): Likewise. 6084 (Set_Encoded_Interface_Name): Suppress encoding when compiling for AAMP. 6085 (Overflow_Checks_Unsuppressed): New flag. 6086 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. 6087 (Analyze_Pragma [case Pack]): Ignore pragma Pack and post warning in 6088 case of JVM or .NET targets, and compiling user code. 6089 Add debugging convenience routine rv 6090 60912007-06-06 Robert Dewar <dewar@adacore.com> 6092 6093 * exp_strm.adb (Make_Field_Attributes): Avoid _Parent components that 6094 are interface type. 6095 (Build_Elementary_Input_Call): For floating-point use right type in the 6096 absence of strange size or stream size clauses. 6097 (Build_Elementary_Write_Call): Same fix 6098 (Has_Stream_Standard_Rep): Returns False if Stream_Size attribute 6099 set to value that does not match base type size. 6100 61012007-06-06 Ed Schonberg <schonberg@adacore.com> 6102 6103 * exp_util.ads, exp_util.adb (Expand_Subtype_From_Expr): In Ada2005, an 6104 object of a limited type can be initialized with a call to a function 6105 that returns in place. If the limited type has unknown discriminants, 6106 and the underlying type is a constrained composite type, build an actual 6107 subtype from the function call, as is done for private types. 6108 (Side_Effect_Free): An expression that is the renaming of an object or 6109 whose prefix is the renaming of a object, is not side-effect free 6110 because it may be assigned through the renaming and its value must be 6111 captured in a temporary. 6112 (Has_Controlled_Coextensions): New routine. 6113 (Expand_Subtype_From_Expr): Do nothing if type is a limited interface, 6114 as is done for other limited types. 6115 (Non_Limited_Designated_Type): new predicate. 6116 (Make_CW_Equivalent_Type): Modified to handle class-wide interface 6117 objects. 6118 Remove all handling of with_type clauses. 6119 6120 * par-ch10.adb: Remove all handling of with_type clauses. 6121 6122 * lib-load.ads, lib-load.adb (Load_Main_Source): Do not get the 6123 checksum if the main source could not be parsed. 6124 (Loat_Unit): When processing a child unit, determine properly whether 6125 the parent unit is a renaming when the parent is itself a child unit. 6126 Remove handling of with_type clauses. 6127 6128 * sinfo.ads, sinfo.adb (Is_Static_Coextension): New function. 6129 (Set_Is_Static_Coextension): New procedure. 6130 (Has_Local_Raise): New function 6131 (Set_Has_Local_Raise): New procedure 6132 (Renaming_Exception): New field 6133 (Has_Init_Expression): New flag 6134 (Delay_Finalize_Attach): Remove because flag is obsolete. 6135 (Set_Delay_Finalize_Attach): Remove because flag is obsolete. 6136 Remove all handling of with_type clauses. 6137 (Exception_Junk): Can now be set in N_Block_Statement 6138 61392007-06-06 Vincent Celier <celier@adacore.com> 6140 Robert Dewar <dewar@adacore.com> 6141 6142 * frontend.adb (Frontend): Return immediately if the main source could 6143 not be parsed, because of preprocessing errors. 6144 6145 * gnat1drv.adb (gnat1drv): Handle RE_Not_Available gracefully. 6146 (Gnat1drv): Exit with errors if the main source could not be parsed, 6147 because of preprocessing errors. 6148 (Check_Rep_Info): New procedure 6149 61502007-06-06 Robert Dewar <dewar@adacore.com> 6151 6152 * g-hesorg.ads, g-heasor.ads, 6153 g-busorg.ads, g-bubsor.ads: Update documentation 6154 GNAT.Heap/Bubble_Sort_G is now pure 6155 61562007-06-06 Robert Dewar <dewar@adacore.com> 6157 6158 * g-catiio.ads, g-catiio.adb (Image): Check for null picture string 6159 61602007-06-06 Robert Dewar <dewar@adacore.com> 6161 Ed Schonberg <schonberg@adacore.com> 6162 6163 * g-comlin.ads, g-comlin.adb: 6164 Add new warning for renaming of function return objects 6165 6166 * opt.adb (Tree_Write, Tree_Read): Use proper expressions for size 6167 (Tree_Read): Use size of object instead of type'object_size, since the 6168 latter is incorrect for packed array types. 6169 (Tree_Write): Same fix 6170 6171 * opt.ads: Add new warning for renaming of function return objects 6172 (Generating_Code): New boolean variable used to indicate that the 6173 frontend as finished its work and has called the backend to process 6174 the tree and generate the object file. 6175 (GCC_Version): Is now private 6176 (Static_Dispatch_Tables): New constant declaration. 6177 (Overflow_Checks_Unsuppressed): New flag. 6178 (Process_Suppress_Unsuppress): Set Overflow_Checks_Unsuppressed. 6179 (List_Closure): New flag for gnatbind (-R) 6180 Zero_Formatting: New flag for gnatbind (-Z) 6181 (Special_Exception_Package_Used): New flag. 6182 (Warn_On_Unrepped_Components): New flag. 6183 6184 * sem_ch8.adb (Check_Library_Unit_Renaming): Check that the renamed 6185 unit is a compilation unit, rather than relying on its scope, so that 6186 Standard can be renamed. 6187 (Analyze_Object_Renaming): Add new warning for renaming of function 6188 return objects. 6189 Also reject attempt to rename function return object in Ada 83 mode. 6190 (Attribute_Renaming): In case of tagged types, add the body of the 6191 generated function to the freezing actions of the type. 6192 (Find_Type): A protected type is visible right after the reserved word 6193 "is" is encountered in its type declaration. Set the entity and type 6194 rather than emitting an error message. 6195 (New_Scope): Properly propagate Discard_Names to inner scopes 6196 (Check_Nested_Access): New procedure. 6197 (Has_Nested_Access, Set_Has_Nested_Access): New procedures. 6198 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. 6199 6200 * sem_warn.ads, sem_warn.adb: Improvements to infinite loop warning 6201 Add new warning for renaming of function return objects 6202 (Check_References): Suppress warnings for objects whose type or 6203 base type has Warnings suppressed. 6204 (Set_Dot_Warning_Switch): Add processing for -gnatw.c/C 6205 (Set_Warning_Switch): Include new -gnatwc in -gnatwa 6206 62072007-06-06 Vincent Celier <celier@adacore.com> 6208 Emmanuel Briot <briot@adacore.com> 6209 Olivier Hainque <hainque@adacore.com> 6210 6211 * g-debpoo.ads, g-debpoo.adb (Free_Physically.Free_Blocks): Use the 6212 absolute value of Header.Block_Size when displaying the freed physical 6213 memory in traces. 6214 (Allocate): Compute Storage_Address using Integer_Address, not 6215 Storage_Offset, because the range of Storage_Offset may not be large 6216 enough. 6217 (Configure): New parameter Low_Level_Traces 6218 (Allocate, Deallocation, Free_Physically): Added low-level traces 6219 (Configure): new parameter Errors_To_Stdout. 6220 (Output_File): new subprogram 6221 (Deallocate, Dereference): Send error messages to the proper stream 6222 (Print_Pool, Print_Info_Stdout): Make sure the output goes to stdout, as 6223 documented. Previous code would send it to the current output file 6224 defined in GNAT.IO, which might not be stdout 6225 (Is_Valid): Adjust comment to mention that a positive reply means that 6226 Header_Of may be used to retrieve the allocation header associated with 6227 the subprogram Storage address argument. Return False early if this 6228 address argument is misaligned. 6229 62302007-06-06 Vincent Celier <celier@adacore.com> 6231 6232 * gnatcmd.adb (GNATCmd): Accept switch -aP for commands that accept 6233 switch -P 6234 (ASIS_Main): New global variable 6235 (Get_Closure): New procedure 6236 (GNATCmd): Set ASIS_Main when -P and -U with a main is used for gnat 6237 check, metric or pretty. Call Get_Closure in this case. 6238 (Check_Files): For GNAT LIST, check all sources of all projects when 6239 All_Projects is True. 6240 (GNATCmd): Accept -U for GNAT LIST 6241 62422007-06-06 Vincent Celier <celier@adacore.com> 6243 6244 * gnatlink.adb (Gnatlink): Do not specify -static-libgcc when --LINK= 6245 has been specified 6246 Correct error message when invocation of the linker fails 6247 Add explicit size clause for the C imported variables 6248 Object_List_File_Supported and Using_GNU_Linker to emphasize that 6249 we expect char size. 6250 Read target parameters earlier, since this is needed to set 6251 Target_VM properly. Also do not use -static/shared-libgcc for non GCC 6252 targets. 6253 62542007-06-06 Vincent Celier <celier@adacore.com> 6255 6256 * gnatls.adb: 6257 Add 3 spaces before the default project directory when displaying 6258 the project search path. 6259 Add new command line switch '-l' to display license information. 6260 62612007-06-06 Vasiliy Fofanov <fofanov@adacore.com> 6262 6263 * gmem.c: Add support for timestamps on memory operations. 6264 6265 * memtrack.adb, gnatmem.adb: Add support for timestamps on memory 6266 operations (not used currently, just foundation for future 6267 enhancements). Add possibility to perform full dump of gmem.out file. 6268 (Print_Back_Traces): Declare accesses to root arrays constants since 6269 they aren't modified. 6270 (Print_Back_Traces): allocate root arrays on the heap rather than stack. 6271 62722007-06-06 Vincent Celier <celier@adacore.com> 6273 6274 * gnatsym.adb: Update Copyright notice 6275 (Parse_Cmd_Line): Accept new switch -D 6276 (Gnatsym): In Direct policy (switch -D) copy reference file to symbol 6277 file. 6278 6279 * prj.ads (Policy): New policy Direct 6280 (Yes_No_Unknown): New enumeration type 6281 (Project_Data): New component Libgnarl_Needed 6282 6283 * prj-nmsc.adb (Check_For_Source): When recording a source file make 6284 use the untouched pathname casing. 6285 (Get_Directories): Ensure that the Display_Exec_Directory is using the 6286 proper casing on non case-sensitive platforms like Windows. 6287 (Get_Unit): Accept file names x__... and x~... (where x = a, g, i or s) 6288 on all platforms, as it is not possible to know which one is allowed 6289 before processing the project files. 6290 (Check_Stand_Alone_Library): Check that Library_Reference_Symbol_File is 6291 specified when symbol policy is Direct. Check that when there is a 6292 symbol file defined (either by default or with attribute 6293 Library_Symbol_File) it is not the same as the reference symbol file. 6294 (Check_Stand_Alone_Library): Recognize new symbol policy Direct. 6295 (Look_For_Sources): Allow Locally_Removed_Files to be declare in non 6296 extending projects. 6297 (Record_Ada_Source): Record a source that has been locally removed in an 6298 imported project. 6299 6300 * symbols.ads (Policy): New policy Direct 6301 6302 * symbols-vms.adb (Initialize): Take new policy Direct in case 6303 statement 6304 63052007-06-06 Vincent Celier <celier@adacore.com> 6306 6307 * g-os_lib.ads, g-os_lib.adb (Normalize_Pathname.Get_Directory): 6308 Correct obvious bug (return Dir; instead of return Directory;). 6309 (Normalize_Pathname): Use Reference_Dir'Length, not Reference_Dir'Last 6310 63112007-06-06 Thomas Quinot <quinot@adacore.com> 6312 6313 * g-pehage.adb (Produce): Open output files in Binary mode, so that 6314 they have UNIX line endings (LF only) even on Windows, and thus pass 6315 all GNAT style checks. 6316 63172007-06-06 Emmanuel Briot <briot@adacore.com> 6318 6319 * g-regpat.adb (Quote): Fix improper quoting of '.' 6320 63212007-06-06 Thomas Quinot <quinot@adacore.com> 6322 6323 * g-soccon.ads: Add new constant Thread_Blocking_IO, always True by 6324 default, set False on a per-runtime basis. 6325 (Need_Netdb_Buffer): New constant. 6326 6327 * g-socket.ads, g-socket.adb: Import new package 6328 GNAT.Sockets.Thin.Task_Safe_NetDB. 6329 (Raise_Host_Error): Use Host_Error_Message from platform-specific thin 6330 binding to obtain proper message. 6331 (Close_Selector): Use GNAT.Sockets.Thin.Signalling_Fds.Close. 6332 Replace various occurrences of Arry (Arry'First)'Address with the 6333 equivalent Arry'Address (GNAT always follows implementation advice from 6334 13.3(14)). 6335 (Get_Host_By_Address, Get_Host_By_Name, 6336 Get_Service_By_Name, Get_Service_By_Port): Do not use GNAT.Task_Lock; 6337 instead, rely on platform-specific task safe netdb operations provided 6338 by g-socthi. 6339 6340 * g-socthi.ads, g-socthi.adb (Initialize): Remove obsolete formal 6341 parameter Process_Blocking_IO. 6342 (Host_Error_Messages): Add stub body. 6343 (GNAT.Sockets.Thin.Signalling_Fds): New procedure Close. 6344 (Safe_Gethostbyname, Safe_Gethostbyaddr, Safe_Getservbyname, 6345 Safe_Getservbyport): Move functions into new child package 6346 Task_Safe_NetDB. 6347 (Nonreentrant_Gethostbyname, Nonreentrant_Gethostbyaddr, 6348 Nonreentrant_Getservbyname, Nonreentrant_Getservbyport): New routines. 6349 (In_Addr): Add alignment clause. 6350 63512007-06-06 Robert Dewar <dewar@adacore.com> 6352 6353 * g-trasym.ads, g-traceb.ads: Update list of supported targets 6354 Add note about symbolic traceback 6355 63562007-06-06 Pascal Obry <obry@adacore.com> 6357 6358 * hostparm.ads (Normalized_CWD): Use the host directory separator 6359 instead of the hardcoded forward slash which is not the proper 6360 character on Windows for example. 6361 (Java_VM): Removed. 6362 63632007-06-06 Vincent Celier <celier@adacore.com> 6364 Arnaud Charlet <charlet@adacore.com> 6365 6366 * a-clrefi.adb, a-clrefi.ads: New files 6367 6368 * impunit.adb: Add s-os_lib in the list of user visible units. 6369 (Non_Imp_File_Names_95): Add a-clrefi to this list 6370 Remove obsolete run-time entries. 6371 (Non_Imp_File_Names_05): Add Ada 2005 entries for: 6372 "a-exetim" -- Ada.Execution_Time 6373 "a-extiti" -- Ada.Execution_Time.Timers 6374 6375 * mlib-prj.ads, mlib-prj.adb 6376 (Build_Library): Use untouched object dir and library dir. At the 6377 same time makes sure that the checks are done using the canonical 6378 form. Removes hard-coded directory separator and use the proper host 6379 one instead. 6380 (Process_Project): Do not look in object directory to check if libgnarl 6381 is needed for a library, if there is no object directory. 6382 (Build_Library): Scan the ALI files to decide if libgnarl is needed for 6383 linking. 6384 (Build_Library): When invoking gnatbind, use a response file if the 6385 total size of the arguments is too large. 6386 6387 * Makefile.rtl: (g-sttsne): New object file. 6388 Add entry for a-clrefi, s-utf_32, System.Exceptions 6389 6390 * Make-lang.in: Remove bogus dependency of s-memory.o on memtrack.o. 6391 (GNAT_ADA_OBJS, GNATBIND_OBJS): Add s-except.o. 6392 (GNATBIND_OBJS): Add new objects a-clrefi.o and a-comlin.o 6393 Change g-string to s-string, g-os_lib to s-os_lib 6394 Change all g-utf_32 references to s-utf_32 6395 63962007-06-06 Tristan Gingold <gingold@adacore.com> 6397 Olivier Hainque <hainque@adacore.com> 6398 6399 * init.c: Do not adjust IP of an imported VMS exception of ia64. 6400 LIB$STOP is called to raise an exception and the IP of the exception 6401 is the instruction right after the call. 6402 (__gnat_adjust_context_for_raise, AIX): Implement. 6403 (__gnat_error_handler, AIX): Accept SIGINFO related arguments and call 6404 adjust_context_for_raise before Raise_From_Signal_Hanler. 6405 (__gnat_install_handler, AIX): Add SA_SIGINFO to the sa_flags, to ensure 6406 siginfo is passed to the handler, necessary to let the zcx propagation 6407 engine unwind past it. 6408 64092007-06-06 Olivier Hainque <hainque@adacore.com> 6410 6411 * initialize.c (__gnat_initialize for vxworks): Update documentation 6412 on the ZCX support, using different sets of crtstuff objects than with 6413 GCC 3.4. 6414 64152007-06-06 Robert Dewar <dewar@adacore.com> 6416 6417 * layout.ads, layout.adb (Adjust_Esize_Alignment): Move spec to package 6418 spec from body 6419 (Layout_Type): Fix recomputation of size from alignment. 6420 64212007-06-06 Ed Schonberg <schonberg@adacore.com> 6422 Javier Miranda <miranda@adacore.com> 6423 6424 * sem_ch12.adb (Analyze_Associations): Diagnose use of an others 6425 association in an instance. 6426 (Copy_Generic_Node): If the node is a string literal, no need to copy 6427 its descendants. 6428 (Is_Generic_Formal): For a formal subprogram, the declaration is the 6429 grandparent of the entity. 6430 (Analyze_Formal_Interface_Type): Transform into a full type declaration, 6431 to simplify handling of formal interfaces that derive from other formal 6432 interfaces. 6433 (Instantiate_Subprogram_Body): The defining unit name of the body of 6434 the instance should be a defining identifier. 6435 (Install_Formal_Packages): make global to the package, for use in 6436 instantiations of child units. 6437 (Analyze_Package_Instantiation): Do not attempt to set information on an 6438 enclosing master of an entry when expansion is disabled. 6439 (Instantiate_Type): If the actual is a tagged synchronized type and the 6440 generic ancestor is an interface, create a generic actual for the 6441 corresponding record. 6442 (Analyze_Formal_Derived_Interface_Type): Rewrite as a derived type 6443 declaration, to ensure that the interface list is processed correctly. 6444 (Inline_Instance_Body): If enclosing scope is an instance body, remove 6445 its entities from visibiility as well. 6446 (Pre_Analyze_Actuals): if the actual is an allocator with constraints 6447 given with a named association, analyze the expression only, not the 6448 discriminant association itself. 6449 (Reset_Entity): If the analysis of a selected component is transformed 6450 into an expanded name in the prefix of a call with parameters, do not 6451 transform the original node into an expanded name, to prevent visibility 6452 errors in the case of nested generics. 6453 (Check_Private_View): For an array type, check whether the index types 6454 may need exchanging. 6455 64562007-06-06 Arnaud Charlet <charlet@adacore.com> 6457 Vincent Celier <celier@adacore.com> 6458 6459 * lib-writ.adb: Handle Convention_CIL in addition to Convention_Java, 6460 since both are separated. 6461 Add support for imported CIL packages. 6462 Add further special handling of "value_type" for CIL. 6463 Add special handling of pragma Import for CIL. 6464 6465 * make.ads, make.adb: When switch -eS is used, direct all outputs to 6466 standard output instead of standard error, except errors. 6467 (Absolute_Path): Use untouched casing for the parent directory. 6468 (Add_Library_Search_Dir): Use the untouched directory name. 6469 (Add_Source_Search_Dir): Idem. 6470 (Change_To_Object_Directory): Update output to use proper casing. 6471 (Create_Binder_Mapping_File): Use the untouched filename to set 6472 ALI_Name. 6473 (Gnatmake): Use untouched library and executable directory names. 6474 (Insert_Project_Sources): Use untouched filename for spec and body. 6475 (Is_In_Object_Directory): Use untouched object directory. 6476 (Mark_Directory): Idem. 6477 (Collect_Arguments_And_Compile): Ensure that Full_Source_File always 6478 contains the non-canonical filename in all cases. 6479 (Change_To_Object_Directory): In verbose mode, display the name of the 6480 object directory we're changing to. 6481 (Compile_Sources): Make sure, when a project file is used, to compile 6482 the body of the unit, when there is one, even when only the spec is 6483 recorded in an ALI file. 6484 (Gcc_Switches, Binder_Switches, Linker_Switches): Tables moved from the 6485 spec to the body. 6486 (Report_Compilation_Failed): New procedure 6487 (Bind, Display_Commands, Compile_Sources, Initialize, Scan_Make_Arg): 6488 procedures moved from the spec to the body. 6489 (Extract_Failure): Removed, not used 6490 Replace explicit raises of exception Bind_Failed and Link_Failed with 6491 calls to Make_Failed with the proper message. 6492 Replace explicit raises of exception Compilation_Failed with calls to 6493 procedure Report_Compilation_Failed. 6494 (Initialize): Create mapping files unconditionally when using project 6495 files. 6496 6497 * sem_mech.adb: (Name_CIL, Name_CIL_Constructor, Convention_CIL, 6498 Pragma_CIL_Constructor): New names. 6499 6500 * targparm.ads, targparm.adb 6501 (Compiler_System_Version): Removed, no longer used. 6502 (Get_Target_Parameters): Relax checks on system.ads validity. Add 6503 handling of two new system flags: JVM and CLI. 6504 65052007-06-06 Jose Ruiz <ruiz@adacore.com> 6506 Arnaud Charlet <charlet@adacore.com> 6507 6508 * Makefile.in (LIBGNAT_TARGET_PAIRS for VxWorks 6): For the RTP run 6509 time, use the default s-interr body that provides interrupt support 6510 based on signals. 6511 (LIBGNAT_TARGET_PAIRS for x86-linux): Use specialized versions of 6512 a-exetim.ad{s,b}, a-extiti.ad{s,b}, a-rttiev.ad{s,b}, s-osinte.ad{s,b}, 6513 g-soccon.ads, and s-taprop.adb for the marte run time. 6514 (EXTRA_GNATRTL_TASKING_OBJS for x86-linux): Execution time clocks and 6515 timers are supported on marte. 6516 (EH_MECHANISM for marte): Do not use ZCX. 6517 (THREADSLIB for marte): Use -lmarte. 6518 Add mlib-tgt-vms.o to the list of objects for gnatmake for VMS 6519 Add mlib-tgt-specific.o to gnatmake objects 6520 mlib-tgt-<platforms>.adb is now the body of MLib.Tgt.Specific, no 6521 longer of MLib.Tgt. 6522 (LIBGNAT_TARGET_PAIRS for vxworks): When building a run time for VxWorks 6523 6, either kernel or rtp, use a specialized version of s-osinte.ads. 6524 65252007-06-06 Pascal Obry <obry@adacore.com> 6526 6527 * mkdir.c (__gnat_mkdir): Add support for UTF-8. 6528 65292007-06-06 Vincent Celier <celier@adacore.com> 6530 6531 * mlib.ads, mlib.adb (Build_Library): Do not use hard-coded directory 6532 separator, use instead the proper host directory separator. 6533 (Copy_ALI_Files): Make sure that an already existing ALI file in the 6534 ALI copy dir is writable, before doing the copy. 6535 6536 * mlib-utl.ads, mlib-utl.adb: 6537 (Gcc): If length of command line is too long, put the list of object 6538 files in a response file, if this is supported by the platform. 6539 (Ar): If invocation of the archive builder is allowed to be done in 6540 chunks and building it in one shot would go above an OS dependent 6541 limit on the number of characters on the command line, build the archive 6542 in chunks. 6543 65442007-06-06 Vincent Celier <celier@adacore.com> 6545 6546 * osinte-c.ads, osint-c.adb (Set_Library_Info_Name): Fail if base name 6547 of specified object file is not equal to base name of source. 6548 65492007-06-06 Javier Miranda <miranda@adacore.com> 6550 Hristian Kirtchev <kirtchev@adacore.com> 6551 Ed Schonberg <schonberg@adacore.com> 6552 6553 * sem_ch3.adb (Process_Full_View): Propagate the CPP_Class attribute to 6554 the full type declaration. 6555 (Analyze_Component_Declaration): Add local variable E to capture the 6556 initialization expression of the declaration. Replace the occurences of 6557 Expression (N) with E. 6558 (OK_For_Limited_Init_In_05): Allow initialization of class-wide 6559 limited interface object with a function call. 6560 (Array_Type_Declaration): If the declaration lacks subtype marks for 6561 indices, create a simple index list to prevent cascaded errors. 6562 (Is_Null_Extension): Ignore internal components created for secondary 6563 tags when checking whether a record extension is a null extension. 6564 (Check_Abstract_Interfaces): Add missing support for interface subtypes 6565 and generic formals. 6566 (Derived_Type_Declaration): Add missing support for interface subtypes 6567 and generic formals. 6568 (Analyze_Object_Declaration): If an initialization expression is 6569 present, traverse its subtree and mark all allocators as static 6570 coextensions. 6571 (Add_Interface_Tag_Component): When looking for components that may be 6572 secondary tags, ignore pragmas that can appear within a record 6573 declaration. 6574 (Check_Abstract_Overriding): an inherited function that dispatches on 6575 result does not need to be overriden if the controlling type is a null 6576 extension. 6577 (Mentions_T): Handle properly a 'class attribute in an anonymous access 6578 component declaration, when the prefix is an expanded name. 6579 (Inherit_Component): If the derivation is for a private extension, 6580 inherited components remain visible and their ekind should not be set 6581 to Void. 6582 (Find_Type_Of_Object): In the case of an access definition, always set 6583 Is_Local_Anonymous_Access. We were previously not marking the anonymous 6584 access type of a return object as a local anonymous type. 6585 (Make_Index): Use Ambiguous_Character to report ambiguity on a discrete 6586 range with character literal bounds. 6587 (Constrain_Array): Initialize the Packed_Array_Type field to Empty. 6588 (Access_Subprogram_Declaration): Indicate that the type declaration 6589 depends on an incomplete type only if the incomplete type is declared 6590 in an open scope. 6591 (Analyze_Subtype_Declaration): Handle properly subtypes of 6592 synchronized types that are tagged, and that may appear as generic 6593 actuals. 6594 (Access_Subprogram_Declaration): An anonymous access to subprogram can 6595 appear as an access discriminant in a private type declaration. 6596 (Add_Interface_Tag_Components): Complete decoration of the component 6597 containing the tag of a secondary dispatch table and the component 6598 containing the offset to the base of the object (this latter component 6599 is only generated when the parent type has discriminants --as documented 6600 in this routine). 6601 (Inherit_Components): Use the new decoration of the tag components to 6602 improve the condition that avoids inheriting the components associated 6603 with secondary tags of the parent. 6604 (Build_Discriminanted_Subtype): Indicate to the backend that the 6605 size of record types associated with dispatch tables is known at 6606 compile time. 6607 (Analyze_Subtype_Declaration): Propagate Is_Interface flag when needed. 6608 (Analyze_Interface_Declaration): Change setting of Is_Limited_Interface 6609 to include task, protected, and synchronized interfaces as limited 6610 interfaces. 6611 (Process_Discriminants): Remove the setting of 6612 Is_Local_Anonymous_Access on the type of (anonymous) access 6613 discriminants of nonlimited types. 6614 (Analyze_Interface_Type_Declaration): Complete the decoration of the 6615 class-wide entity it is is already present. This situation occurs if 6616 the limited-view has been previously built. 6617 (Enumeration_Type_Declaration): Initialize properly the Enum_Pos_To_Rep 6618 field. 6619 (Add_Interface_Tag_Components.Add_Tag): Set the value of the attribute 6620 Related_Interface. 6621 66222007-06-06 Ed Schonberg <schonberg@adacore.com> 6623 6624 * sem_aggr.adb (Resolve_Record_Aggregate): Ignore internal components 6625 of the type that specify the position of interface tags when the type 6626 inherits discriminated array components from the parent type. 6627 If a component is initialized with a box, check for the presence of a 6628 default expression in its declaration before using its default 6629 initialization procedure. 6630 (Resolve_Record_Aggregate): If a component is box-initialized, and the 6631 component type has a discriminants, create a partial aggregate for it 6632 by copying the discriminants of the component subtype. 6633 Reject attempt to initialize a discriminant with a box. 6634 (Array_Aggr_Subtype): Indicate to the backend that the size of arrays 6635 associated with dispatch tables is known at compile time. 6636 (Get_Value): If an association in a record aggregate has a box 6637 association, and the corresponding record component has a default 6638 expression, always copy the default expression, even when the 6639 association has a single choice, in order to create a proper 6640 association for the expanded aggregate. 6641 66422007-06-06 Ed Schonberg <schonberg@adacore.com> 6643 Robert Dewar <dewar@adacore.com> 6644 6645 * par-ch12.adb (P_Generic_Associations): The source position of an 6646 Others association is that of the others keyword, not that of the token 6647 that follows the box. 6648 (P_Formal_Type_Definition): Handle formal access types that carry a 6649 not null indicator. 6650 6651 * par-ch3.adb (P_Known_Discriminant_Part_Opt, P_Component_Items): If 6652 multiple identifier are present, save Scan_State before scanning the 6653 colon, to ensure that separate trees are constructed for each 6654 declaration. 6655 (P_Identifier_Declarations): For object declaration, set new flag 6656 Has_Init_Expression if initialization expression present. 6657 (P_Null_Exclusion): Properly diagnose NOT NULL coming before NULL 6658 Improve NOT NULL error messages 6659 66602007-06-06 Robert Dewar <dewar@adacore.com> 6661 6662 * par-ch4.adb: (P_Name): Recover from literal used as name 6663 66642007-06-06 Vincent Celier <celier@adacore.com> 6665 6666 * prep.ads, prep.adb (Expression): New Boolean parameter Complemented, 6667 defaulted to False. 6668 In the "not" case, recursive call with Complemented set to True. 6669 Do not allow "or" or "and" operators when Complemented is True. 6670 66712007-06-06 Vincent Celier <celier@adacore.com> 6672 6673 * prj.adb (Project_Empty): Gives default value for new component 6674 Libgnarl_Needed 6675 6676 * prj-attr.ads: Minor reformatting 6677 6678 * prj-env.ads, prj-env.adb (For_All_Object_Dirs): Register object 6679 directory using the untouched casing. 6680 (For_All_Source_Dirs): Idem. 6681 6682 * prj-ext.ads, prj-ext.adb (Search_Directories): New table to record 6683 directories specified with switches -aP. 6684 (Add_Search_Project_Directory): New procedure 6685 (Initialize_Project_Path): Put the directories in table 6686 Search_Directories in the project search path. 6687 (Initialize_Project_Path): For VMS, transform into canonical form the 6688 project path. 6689 66902007-06-06 Arnaud Charlet <charlet@adacore.com> 6691 6692 * restrict.ads, restrict.adb (No_Exception_Handlers_Set): Only return 6693 true if configurable run-time or No_Run_Time is set. 6694 (Set_Restriction): Avoid setting restriction No_Elaboration_Code when 6695 processing an unit which is not the one being compiled. 6696 66972007-06-06 Arnaud Charlet <charlet@adacore.com> 6698 6699 * s-arit64.adb: Replace System.Pure_Exceptions by Ada 05 syntax. 6700 Replace UC by Ada.UC 6701 6702 * s-bitops.adb: Get rid of System.Pure_Exceptions. 6703 Replace UC by Ada.UC 6704 67052007-06-06 Robert Dewar <dewar@adacore.com> 6706 6707 * scng.adb: (Check_End_Of_Line): Deal with very long lines 6708 67092007-06-06 Robert Dewar <dewar@adacore.com> 6710 6711 * sem.ads, sem.adb (Semantics): Save and restore Global_Discard_Names 6712 Remove no longer used nodes. 6713 67142007-06-06 Javier Miranda <miranda@adacore.com> 6715 Ed Schonberg <schonberg@adacore.com> 6716 Robert Dewar <dewar@adacore.com> 6717 6718 * sem_ch10.ads, sem_ch10.adb (Analyze_Compilation_Unit): Disable check 6719 on obsolescent withed unit in case of limited-withed units. 6720 (Analyze_Compilation_Unit): Add guard to code that removed an 6721 instantiation from visibility, to prevent compiler aborts when 6722 instantiation is abandoned early on. 6723 (Install_Limited_Withed_Unit): Recognize a limited-with clause on the 6724 current unit being analyzed, and Distinguish local incomplete types 6725 from limited views of types declared elsewhere. 6726 (Build_Limited_Views.Decorate_Tagged_Type): Add documentation 6727 to state that the class-wide entity is shared by the limited-view 6728 and the full-view. 6729 (Analyze_With_Clause): Improve placement of flag for case of 6730 unimplemented unit. 6731 (Analyze_With_Clause): Recognize use of GNAT.Exception_Traces in a 6732 manner similar to GNAT.Current_Exception. This is a violation of 6733 restriction (No_Exception_Propagation), and also inhibits the 6734 optimization of local raise to goto. 6735 (Analyze_With_Clause): Check for Most_Recent_Exception being with'ed, 6736 and if so set Most_Recent_Exception_Used flag in Opt, and also check 6737 for violation of restriction No_Exception_Propagation. 6738 67392007-06-06 Javier Miranda <miranda@adacore.com> 6740 Hristian Kirtchev <kirtchev@adacore.com> 6741 Gary Dismukes <dismukes@adacore.com> 6742 6743 * sem_ch11.adb (Analyze_Exception_Handlers): Add barrier to avoid the 6744 use of entity Exception_Occurrence if it is not available in the 6745 target run-time. 6746 6747 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): When 6748 concurrent types are declared within an Ada 2005 generic, build their 6749 corresponding record types since they are needed for overriding-related 6750 semantic checks. 6751 (Analyze_Protected_Type): Rearrange and simplify code for testing that a 6752 protected type does not implement a task interface or a nonlimited 6753 interface. 6754 (Analyze_Task_Type): Rearrange and simplify code for testing that a task 6755 type does not implement a protected interface or a nonlimited interface. 6756 (Single_Task_Declaration, Single_Protected_Declaration): use original 6757 entity for variable declaration, to ensure that debugging information 6758 is correcty generated. 6759 (Analyze_Protected_Type, Analyze_Task_Type): Do not call expander 6760 routines if the expander is not active. 6761 (Analyze_Task_Body): Mark all handlers to stop optimization of local 6762 raise, since special things happen for task exception handlers. 6763 6764 * sem_disp.adb (Check_Controlling_Formals): Add type retrieval for 6765 concurrent types declared within a generic. 6766 (Check_Dispatching_Operation): Do not emit warning about late interface 6767 operations in the context of an instance. 6768 (Check_Dispatching_Call): Remove restriction against calling a 6769 dispatching operation with a limited controlling result. 6770 (Check_Dispatching_Operation): Replace calls to Fill_DT_Entry and 6771 Register_Interface_DT_Entry by calls to Register_Primitive. 6772 (Check_Dispatching_Formals): Handle properly a function with a 6773 controlling access result. 6774 67752007-06-06 Robert Dewar <dewar@adacore.com> 6776 Arnaud Charlet <charlet@adacore.com> 6777 6778 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Stream_Size): 6779 Check for restriction No_Implementation_Attributes if in Ada 95 mode. 6780 (Storage_Pool): Do not crash when RE_Stack_Bounded_Pool is not available 6781 (Analyze_Attribute_Definition_Clause [External_Tag]): Generate error 6782 message when using a VM, since this attribute is not supported. 6783 (Analyze_Record_Representation_Clause): Give unrepped component warnings 6784 6785 * usage.adb: Add new warning for renaming of function return objects 6786 Indicate that -gnatwp and -gnatwP concern front-end inlining 6787 Add line for -gnatyg 6788 Add usage information for -gnatw.c/C 6789 67902007-06-06 Robert Dewar <dewar@adacore.com> 6791 Ed Schonberg <schonberg@adacore.com> 6792 6793 * sem_ch5.adb 6794 (Find_Var): Do not consider function call in test for infinite loop 6795 warning if warnings set off for function entity. 6796 (One_Bound): Do not create a temporary for a loop bound if it is a 6797 character literal. 6798 (Analyze_Assignment): Traverse the right hand side of an assignment and 6799 mark all allocators as static coextensions. 6800 (Analyze_Assignment): Exempt assignments involving a dispatching call 6801 to a function with a controlling access result from the check requiring 6802 the target to be class-wide. 6803 68042007-06-06 Hristian Kirtchev <kirtchev@adacore.com> 6805 Ed Schonberg <schonberg@adacore.com> 6806 Robert Dewar <dewar@adacore.com> 6807 Javier Miranda <miranda@adacore.com> 6808 6809 * sem_res.ads, sem_res.adb (Process_Allocator): Do not propagate the 6810 chain of coextensions when an allocator serves as the root of such a 6811 chain. 6812 (Propagate_Coextensions): Remove the test for the root being an 6813 allocator. 6814 (Resolve_Allocator): Add condition to ensure that all future decoration 6815 occurs on an allocator node. Add processing and cleanup for static 6816 coextensions. 6817 (Valid_Conversion): If the operand type is the limited view of a 6818 class-wide type, use the non-limited view is available to determine 6819 legality of operation. 6820 (Ambiguous_Character): move to spec, for use elsewhere. 6821 (Ambiguous_Character): Handle Wide_Wide_Character in Ada 2005 mode 6822 (Resolve_Range): Diagnose properly an ambiguous range whose bounds are 6823 character literals. 6824 (Resolve_Arithmetic_Op): Call Activate_Division_Check instead of setting 6825 Do_Division_Check flag explicitly. 6826 (Resolve_Actuals): If the actual is of a synchronized type, and the 6827 formal is of the corresponding record type, this is a call to a 6828 primitive operation of the type, that is declared outside of the type; 6829 the actual must be unchecked-converted to the type of the actual 6830 (Resolve_Call): Kill all current values for any subprogram call if 6831 flag Suppress_Value_Tracking_On_Call is set. 6832 (Resolve_Type_Conversion): Generate error message the the operand 6833 or target of interface conversions come from a limited view. 6834 (Check_Infinite_Recursion): Ignore generated calls 6835 (Check_Allocator_Discrim_Accessibility): New procedure for checking 6836 that an expression that constrains an access discriminant in an 6837 allocator does not denote an object with a deeper level than the 6838 allocator's access type. 6839 (Resolve_Allocator): In the case of an allocator initialized by an 6840 aggregate of a discriminated type, check that associations for any 6841 access discriminants satisfy accessibility requirements by calling 6842 Check_Allocator_Discrim_Accessibility. 6843 (Resolve_Equality_Op): Handle comparisons of anonymous access to 6844 subprogram types in the same fashion as other anonymous access types. 6845 (Resolve_Concatenation_Arg): Remove initial character '\' in an error 6846 message that is not a continuation message. 6847 (Resolve_Type_Conversion): Add missing support for conversion to 6848 interface type. 6849 (Resolve_Actuals): Introduce a transient scope around the call if an 6850 actual is a call to a function returning a limited type, because the 6851 resulting value must be finalized after the call. 6852 (Resolve_Actuals): If the call was given in prefix notations, check 6853 whether an implicit 'Access reference or implicit dereference must be 6854 added to make the actual conform to the controlling formal. 6855 68562007-06-06 Robert Dewar <dewar@adacore.com> 6857 Javier Miranda <miranda@adacore.com> 6858 6859 * sem_ch7.adb (Check_Anonymous_Access_Types): Fix error for null body 6860 (Derive_Inherited_Private_Subprogram): Code cleanup. In case of explicit 6861 overriding of an inherited private subprogram now there is no need to 6862 inherit its dispatching slot and reduce the size of the dispatch table. 6863 Set_All_DT_Position now ensures that the same slot is now assigned to 6864 both entities. This is required to statically build the dispatch table. 6865 (Declare_Inherited_Private_Subprograms): Rewriten to avoid the need 6866 of calling Set_All_DT_Position to re-evaluate the position of the 6867 entries in the dispatch table. Such reevaluation is not desired if 6868 the tagged type is already frozen. 6869 68702007-06-06 Hristian Kirtchev <kirtchev@adacore.com> 6871 Gary Dismukes <dismukes@adacore.com> 6872 Robert Dewar <dewar@adacore.com> 6873 Javier Miranda <miranda@adacore.com> 6874 6875 * sem_util.ads, sem_util.adb (May_Be_Lvalue): A prefix of an attribute 6876 reference acts as an lvalue when the attribute name modifies the prefix 6877 (Is_Coextension_Root): New routine. 6878 (Mark_Static_Coextensions): New routine. 6879 (Type_Access_Level): Revise code for checking the level of the 6880 anonymous access type of a return object. 6881 (Safe_To_Capture_Value): Not safe to capture if Address_Taken 6882 (Matches_Prefixed_View_Profile): Remove the no longer necessary 6883 retrieval of the corresponding controlling record type. 6884 (Find_Overridden_Synchronized_Primitive): Code cleanup. Add handling of 6885 concurrent types declared within a generic as well as class wide types. 6886 Emit a mode incompatibility error whenever a protected entry or routine 6887 override an interface routine whose first parameter is not of mode 6888 "out", "in out" or access to variable. 6889 (Overrides_Synchronized_Primitive): Rename to 6890 Find_Overridden_Synchronized_Primitive. 6891 (Collect_Interface_Components): New subprogram that collects all the 6892 components of a tagged record containing tags of secondary dispatch 6893 tables. 6894 (Add_Global_Declaration): New procedure 6895 (Abstract_Interface_List): Handle properly the case of a subtype of a 6896 private extension. 6897 (Type_Access_Level): In the case of a type whose parent scope is a 6898 return statement, call Type_Access_Level recursively on the enclosing 6899 function's result type to determine the level of the return object's 6900 type. 6901 (Build_Elaboration_Entity): Build name of elaboration entity from the 6902 scope chain of the entity, rather than the unit name of the file name. 6903 (Check_Nested_Access): New procedure. 6904 (Has_Up_Level_Access, Set_Has_Up_Level_Access): New procedures. 6905 (Find_Direct_Name, Note_Possible_Modification): Use Check_Nested_Access. 6906 (Get_Renamed_Entity): Utility routine for performing common operation 6907 of chasing the Renamed_Entity field of an entity. 6908 69092007-06-06 Robert Dewar <dewar@adacore.com> 6910 6911 * sem_elab.adb (Check_A_Call): Specialize elaboration warnings on 6912 elaboration model 6913 (Check_A_Call): Add check for entry call which was causing blowup 6914 69152007-06-06 Olivier Hainque <hainque@adacore.com> 6916 6917 * raise-gcc.c (__gnat_eh_personality): Tweak the signature and add 6918 special code on ia64-vms to handle major incompatibilities between the 6919 GCC unwinding ABI and the VMS Condition Handling Facility, both calling 6920 this routine with a very different set of arguments and expectations on 6921 the return value. 6922 69232007-06-06 Thomas Quinot <quinot@adacore.com> 6924 6925 * socket.c (__gnat_close_signalling_fd): New function. 6926 (__gnat_safe_gethostbyaddr, __gnat_safe_gethostbyname, 6927 __gnat_safe_getservbyname, __gnat_safe_getservbyport): 6928 New supporting functions for task safe Netdb operations. 6929 69302007-06-06 Thomas Quinot <quinot@adacore.com> 6931 Olivier Hainque <hainque@adacore.com> 6932 6933 * a-except-2005.ads, a-except-2005.adb 6934 (Raise_From_Controlled_Operation): New procedure in 6935 (private part of) Ada.Exceptions (standard runtime version). Used to 6936 provide informational exception message when Program_Error is raised as 6937 a result of an Adjust or Finalize operation propagating an exception. 6938 (Rmsg_28): Fix description for E.4(18) check. 6939 (Raise_Current_Excep): Call Debug_Raise_Exception just before 6940 propagation starts, to let debuggers know about the event in a reliable 6941 fashion. 6942 Take the address of E and dereference to make sure it is homed on stack 6943 and prevent the stores from being deleted, necessary for proper 6944 debugger behavior on "break exception" hits. 6945 (Local_Raise): Moved to System.Exceptions 6946 6947 * s-finimp.adb (Raise_From_Finalize): Code to construct an appropriate 6948 exception message from the current occurrence and raise Program_Error 6949 has been moved to Ada.Exceptions.Raise_From_Controlled_Operation. 6950 69512007-06-06 Jose Ruiz <ruiz@adacore.com> 6952 Arnaud Charlet <charlet@adacore.com> 6953 6954 * s-taprob.adb (Unlock): Change the ceiling priority of the underlying 6955 lock, if needed. 6956 6957 * s-taprop.ads (Set_Ceiling): Add this procedure to change the ceiling 6958 priority associated to a lock. 6959 6960 * s-tpoben.adb ([Vulnerable_]Complete_Task, Lock_Entries): Relax 6961 assertion to take into account case of no abort restriction. 6962 (Initialize_Protection_Entries): Add initialization for the field 6963 New_Ceiling associated to the protected object. 6964 (Unlock_Entries): Change the ceiling priority of the underlying lock, if 6965 needed. 6966 6967 * s-solita.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, 6968 since this function needs to be set consistently with Update_Exception. 6969 6970 * s-tarest.adb (Get_Current_Excep): Moved back to s-tasini/s-tarest, 6971 since this function needs to be set consistently with Update_Exception. 6972 6973 * s-taskin.ads: Update comments on 6974 Interrupt_Server_Blocked_On_Event_Flag. 6975 (Unbind_Handler): Fix handling of server_task wakeup 6976 (Server_Task): Set self's state so that Unbind_Handler can take 6977 appropriate actions. 6978 (Common_ATCB): Now use a constant from System.Parameters to determine 6979 the max size of the Task_Image field. 6980 6981 * s-tassta.adb (Task_Wrapper): Now pass the overflow guard to the 6982 Initialize_Analyzer function. 6983 ([Vulnerable_]Complete_Task, Lock_Entries): Relax assertion to 6984 take into account case of no abort restriction. 6985 ([Vulnerable_]Complete_Master): Modify assertion. 6986 6987 * s-tataat.adb (Finalize): Use the nestable versions of 6988 Defer/Undefer_Abort. 6989 6990 * s-tpobop.adb (Protected_Entry_Call): Relax assertion. 6991 6992 * s-tpobop.ads: Update comments. 6993 6994 * s-tposen.adb (Protected_Single_Entry_Call): Call Lock_Entry instead 6995 of locking the object manually, to avoid inconsistencies between 6996 Lock/Unlock_Entry assertions. 6997 6998 * s-interr.ads, s-interr.adb (Server_Task): Fix race condition when 6999 terminating 7000 application and System.Parameters.No_Abort is True. 7001 Update comments on Interrupt_Server_Blocked_On_Event_Flag. 7002 (Unbind_Handler): Fix handling of server_task wakeup 7003 (Server_Task): Set self's state so that Unbind_Handler can take 7004 appropriate actions. 7005 70062007-06-06 Thomas Quinot <quinot@adacore.com> 7007 7008 * s-finroo.ads, s-finroo.adb (Read, Write): Use null procedure 7009 declarations instead of an explicit null body, for conciseness. 7010 70112007-06-06 Robert Dewar <dewar@adacore.com> 7012 7013 * sem_eval.adb (Eval_Relational_Op): nothing to do if an operand is an 7014 illegal aggregate and the type is still Any_Composite. 7015 (Subtypes_Statically_Match): Fix problem of empty discriminant list 7016 70172007-06-06 Ed Schonberg <schonberg@adacore.com> 7018 7019 * sem_smem.adb (Check_Shared_Var): Check explicitly for as task object, 7020 to prevent subsequent expansion. 7021 70222007-06-06 Robert Dewar <dewar@adacore.com> 7023 7024 * sinput-l.ads, sinput-l.adb: implement a new pragma No_Body 7025 70262007-06-06 Ed Schonberg <schonberg@adacore.com> 7027 Robert Dewar <dewar@adacore.com> 7028 7029 * sprint.ads, sprint.adb (Sprint_Node_Actual): Output aggregate for 7030 exceptions. 7031 (Write_Itype): Handle case of string literal subtype, which 7032 comes up in this context. 7033 (Update_Itype): when debugging expanded code, update sloc of itypes 7034 associated with defining_identifiers and ranges, for gdb use. 7035 (Sprint_Node_Actual): Add static keyword to object or exception 7036 declaration output if Is_Statically_Allocated is True. 7037 (Sprint_End_Label): Set entity of end marker for a subprogram, package, 7038 or task body, so that the tree carries the proper Sloc information for 7039 debugging use. 7040 (Write_Indent): In Dump_Source_Text mode, ignore implicit label nodes 7041 70422007-06-06 Arnaud Charlet <charlet@adacore.com> 7043 7044 * s-secsta.adb (Chunk): Ensure this object has a static size known at 7045 compile time, to avoid dynamic memory allocation 7046 (Elaboration code): Only use dynamic memory allocation when needed. 7047 70482007-06-06 Quentin Ochem <ochem@adacore.com> 7049 7050 * s-stausa.ads, s-stausa.adb (Initialize_Analyzer): Added parameter 7051 "Overflow_Guard". 7052 (Stack_Analyzer): Added field "Overflow_Guard" 7053 (Task_Result): Added field "Overflow_Guard". 7054 (Index_Str): New constant. 7055 (Task_Name_Str): New constant. 7056 (Actual_Size_Str): New constant. 7057 (Pattern_Array_Element_Size): New constant. 7058 (Get_Usage_Range): New subprogram. 7059 (Output_Result): Added parameter Max_Size_Len and Max_Actual_Use_Len. 7060 Now align the output. 7061 Added comments. 7062 (Initialize): Added value for Overflow_Guard. 7063 (Fill_Stack): Use constant Pattern_Array_Elem_Size when relevant. 7064 Update the value of the overflow guard according to the actual 7065 beginning of the pattern array. 7066 (Initialize_Analyzer): Added parameter Overflow_Guard. 7067 Take this parameter into accound when computing the max size. 7068 (Compute_Result): Use constant Pattern_Array_Elem_Size when relevant. 7069 (Report_Result): Removed extra useless procedure. 7070 Updated call to Output_Result. 7071 Moved full computation of the Task_Result here. 7072 70732007-06-06 Thomas Quinot <quinot@adacore.com> 7074 7075 * g-soccon-darwin.ads, gen-soccon.c: Add new constant 7076 Thread_Blocking_IO, always True by default, set False on a per-runtime 7077 basis. 7078 Add Windows-specific constants 7079 Add new constant Need_Netdb_Buffer. 7080 Add new macros to indicate whether getXXXbyYYY is thread safe and, if 7081 not, whether to use getXXXbyYYY_r. 7082 7083 * gsocket.h: Add new constant Need_Netdb_Buffer. 7084 Add new macros to indicate whether getXXXbyYYY is thread safe and, if 7085 not, whether to use getXXXbyYYY_r. 7086 70872007-06-06 Eric Botcazou <ebotcazou@adacore.com> 7088 7089 * s-stoele.ads, s-stoele.adb: Move inline_always subprograms earlier 7090 than their first call. 7091 Add type Dummy_Communication_Block used in the generation of the pre- 7092 defined dispatching primitive _disp_asynchronous_select. 7093 (Storage_Element): Put Pragma Universal_Aliasing on it. 7094 70952007-06-06 Vincent Celier <celier@adacore.com> 7096 7097 * a-dirval-vms.adb, a-dirval.ads, a-dirval.adb (Windows): New Boolean 7098 function. 7099 7100 * a-dirval-mingw.adb (Is_Valid_Path_Name): Forbid a path with a drive 7101 letter if it is not followed by a '/' or a '\'. 7102 (Windows): New Boolean function 7103 7104 * a-direct.ads, a-direct.adb: Remove unnecessary and misplaced pragma 7105 Ada 2005. 7106 (Containing_Directory): On Windows, keep at least one '/' or '\' after a 7107 drive letter. 7108 (Containing_Directory): Raise Use_Error when the directory is a root 7109 directory. 7110 (Extension): When returning the result, use a conversion to Result_Type, 7111 not a qualification. 7112 71132007-06-06 Robert Dewar <dewar@adacore.com> 7114 7115 * stylesw.ads, stylesw.adb (Set_GNAT_Style_Check): New procedure 7116 (Set_Style_Check_Options): Recognize new -gnatyg style switch 7117 7118 * switch-c.adb (Scan_Front_End_Switches, case -gnatg): Set 7119 Warn_On_Non_Local_Exception to False, to turn off warnings for 7120 No_Exception_Propagation in ZFP runtime. 7121 (Scan_Front_End_Switches): Fix handling of --RTS switch for non GCC 7122 back-ends. 7123 (Scan_Front_End_Switches): For 'g', call Set_GNAT_Style_Checks 7124 71252007-06-06 Vincent Celier <celier@adacore.com> 7126 7127 * switch-b.adb (Scan_Binder_Switches): Add processing for new 7128 switches -R and -Z 7129 7130 * switch-m.adb (Normalize_Compiler_Switches): Do not record switch -E 7131 (Scan_Make_Switches): Recognize new switch -aP 7132 71332007-06-06 Matthew Gingell <gingell@adacore.com> 7134 Jose Ruiz <ruiz@adacore.com> 7135 7136 * s-stchop-vxworks.adb (Set_Stack_Info): Instead of trying to map the 7137 VxWorks task descriptor in the Ada run time, call a C subprogram 7138 (__gnat_get_stack_info) that extracts the required information. 7139 7140 * sysdep.c: Back out temporary lynxos workaround. 7141 (__gnat_get_stack_info): Add this procedure that passes to the Ada run 7142 time the stack information associated to the currently executing task. 7143 Only VxWorks systems require this function. 7144 71452007-06-06 Eric Botcazou <ebotcazou@adacore.com> 7146 7147 * tracebak.c (FRAME_OFFSET): Add parameter FP. On SPARC/Solaris, do not 7148 add the stack bias if the offset is computed from a frame address. 7149 (__gnat_backtrace): Adjust for above change. 7150 71512007-06-06 Thomas Quinot <quinot@adacore.com> 7152 7153 * types.h, types.ads: Rename PE_Illegal_CW_Actual_E_4_18 to 7154 PE_Non_Transportable_Actual. 7155 (By_Descriptor_Last): New constant. 7156 (By_Copy_Return): Likewise. 7157 71582007-06-06 Vincent Celier <celier@adacore.com> 7159 7160 * vms_conv.adb (Process_Argument): Keep arguments starting with '+' as 7161 is. 7162 7163 * vms_data.ads: Add entries for -gnatw.x and -gnatw.X 7164 /STYLE_CHECKS=GNAT: Change meaning to -gnatyg 7165 /GNAT_INTERNAL: New compiler qualifier corresponding to -gnatg 7166 Add missing comment for /OPTIMIZE=SPACE 7167 Add entry for OPTIMIZE=SPACE 7168 Add new qualifier /ALL_PROJECTS (= -U) for GNAT LIST 7169 Add documentation for new qualifiers corresponding to -gnatw.c/.C 7170 71712007-06-06 Vincent Celier <celier@adacore.com> 7172 Robert Dewar <dewar@adacore.com> 7173 7174 * xgnatugn.adb: Allow dots to be used in ug_words (-gnatw.c and 7175 -gnatw.C) 7176 7177 * gnat_ugn.texi: Fix ordering of -g switch for gnatmake 7178 Document gnatbind switch -a 7179 (case Constructions): Document that variables declarations are allowed 7180 for previously declared variables. 7181 Fix external lib project example 7182 -gnatg: Indicate new VMS qualifier /GNAT_INTERNAL 7183 Indicate that "#if not X or Y then" is not allowed in input files to 7184 gnatprep. 7185 Document gnatw.x and gnatw.X warning flags 7186 Mention -Winline switch to activate warnings when back-end inlining is 7187 ineffective. 7188 Add gnatcheck rule descriptions 7189 Describe how to use the GNAT driver to call a tool on a closure. 7190 Describe how to run project-wide checks or metrics. 7191 Document gnatbind's -R option 7192 Updated to account for Ada 2005 support 7193 7194 * gnat_rm.texi (Case Construction): Allow variable declarations for 7195 previously declared variables. 7196 (Representation Clauses and Pragmas): Lift restriction on alignment 7197 clauses for record types. 7198 (Ada.Characters.*): Fix typo in reference to A.3.3(27). 7199 Document No_Exception_Propagation restriction 7200 Document No_Body pragma 7201 Updated to account for Ada 2005 support; corrected some typos 7202 (Implementation Defined Pragmas): Document pragma Universal_Aliasing. 7203 7204 * gnat-style.texi: Make it clear that we never use mode IN for 7205 procedures or functions 7206 7207 * ug_words: Add entries for -gnatw.x and -gnatw.X 7208 Add entries for -gnatw.c/.C 7209 72102007-06-06 Pascal Obry <obry@adacore.com> 7211 Vincent Celier <celier@adacore.com> 7212 7213 * makegpr.adb (Add_Archive_Path): Use untouched object and library 7214 dirs and library name. 7215 (Build_Global_Archive): Idem. Minor code clean-up. Removes duplicate 7216 comments. 7217 (Build_Library): Idem. 7218 (Compile_Individual_Sources): Idem. 7219 (Compile_Link_With_Gnatmake): Idem. 7220 (Compile_Sources): Idem. 7221 (Get_Imported_Directories): Idem. 7222 (Link_Executables): Idem. Same change for the executable dir. 7223 (Check_Compilation_Needed): C_Source_Path new variable containing 7224 the canonical form of Source_Path to check against the source names 7225 in the dependency file. 7226 (Build_Global_Archive, Compile_Individual_Sources, Compile_Sources): In 7227 verbose mode, display the name of the object directory we're changing 7228 to. 7229 (Saved_Switches): New name of table X_Switches 7230 (Scan_Arg): Recognize new switch -aP and save in table Saved_Switches 7231 (Usage): New line for switch -aP 7232 (Get_Imported_Directories.Add): Make sure that Add_Arg is True before 7233 testing if a directory should be added to the search path. 7234 72352007-06-06 Javier Miranda <miranda@adacore.com> 7236 7237 * a-cidlli.ads, a-cdlili.ads, a-cohama.ads, a-coinve.ads, 7238 a-convec.ads (Empty_Vector, Empty_Map, Empty_List): Move this object 7239 declaration after freezing point of all its associated tagged types; 7240 otherwise such types are frozen too early. 7241 72422007-06-06 Robert Dewar <dewar@adacore.com> 7243 7244 * a-reatim.adb: Documentation addition 7245 7246 * g-cgideb.adb: Minor code reorganization 7247 7248 * tree_io.adb, treepr.adb, cstand.adb, krunch.adb, par.adb, 7249 mdll-utl.adb, par-ch5.adb, par-tchk.adb, s-exctab.ads, s-memory.ads, 7250 s-osprim.ads, s-restri.ads, s-soflin.ads: Minor reformatting. 7251 7252 * debug.ads, debug.adb (Get_Debug_Flag_K): Remove unused obsolete 7253 function. Change name New_Scope to Push_Scope 7254 (Get_Debug_Flag_K): Remove unused obsolete function. 7255 7256 * exp_ch8.adb, inline.adb, sem_ch8.ads: Change name New_Scope to 7257 Push_Scope. 7258 7259 * makeusg.adb: Update Copyright notice 7260 Add line for switch -aP 7261 7262 * makeusg.adb: Fix wording of some usage messages 7263 7264 * s-assert.adb (Raise_Assert_Failure): Add call to 7265 Debug_Raise_Assert_Failure. 7266 7267 * s-unstyp.ads (type Packed_Bytes2): Change alignment to use 'Min 7268 (2, Standard'Alignment) for compatibility with AAMP (where alignment 7269 is restricted to 1). 7270 7271 * s-wchjis.adb: Remove use of System.Pure_Exceptions 7272 7273 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): Set the 7274 node location to No_Location when we're not debugging the expanded 7275 code. 7276 72772007-05-22 Alexandre Oliva <aoliva@redhat.com> 7278 7279 * misc.c (enumerate_modes): Consider log2_b to always be one. 7280 72812007-05-14 Rafael Ávila de Espíndola <espindola@google.com> 7282 7283 * misc.c (LANG_HOOKS_UNSIGNED_TYPE): Remove. 7284 72852007-05-02 Pascal Obry <obry@adacore.com> 7286 7287 * gnatchop.adb (Write_Source_Reference_Pragma): Change implementation 7288 to use Stream_IO.File_Type. This is needed to make use of the UTF-8 7289 encoding support of Stream_IO. 7290 (Write_Unit): Idem. 7291 7292 * adaint.h, adaint.c (__gnat_os_filename): New routine. Returns the 7293 filename and corresponding encoding to match the OS requirement. 7294 (__gnat_file_exists): Do not call __gnat_stat() on Windows as this 7295 routine will fail on specific devices like CON: AUX: ... 7296 7297 PR ada/29856: Add missing braces 7298 72992007-04-22 Andrew Pinski <andrew_pinski@playstation.sony.com> 7300 7301 PR ada/31660 7302 * ada-tree.h (lang_tree_node): Fix typo in chain_next. 7303 73042007-04-21 Jan Hubicka <jh@suse.cz> 7305 7306 * misc.c (gnat_expand_body): Don't call target for destructors, 7307 avoid redundant check on syntax errors. 7308 73092007-04-21 Andrew Pinski <andrew_pinski@playstation.sony.com> 7310 7311 * ada-tree.h (lang_tree_node): Use GENERIC_NEXT 7312 instead of checking GIMPLE_STMT_P in chain_next. 7313 73142007-04-17 Andreas Krebbel <krebbel1@de.ibm.com> 7315 7316 PR ada/31576 7317 * system-linux-alpha.ads: Disable constant condition warning for the 7318 Default_Bit_Order variable. 7319 * system-linux-s390.ads: Likewise. 7320 * system-linux-s390x.ads: Likewise. 7321 * system-linux-sparc.ads: Likewise. 7322 73232007-04-06 Javier Miranda <miranda@adacore.com> 7324 Matt Heaney <heaney@adacore.com> 7325 Robert Dewar <dewar@adacore.com> 7326 7327 a-coprnu.ads, a-cohata.ads, a-chtgop.ads, a-chtgop.adb, a-cgcaso.ads, 7328 a-cgarso.ads, a-secain.ads, a-slcain.ads, a-shcain.ads, a-chtgke.ads, 7329 a-chtgke.ads, a-coprnu.ads, a-contai.ads, a-chtgke.ads, a-chtgke.adb, 7330 a-stwiha.ads, a-strhas.ads, a-lfztio.ads, a-liztio.ads, a-llfzti.ads, 7331 a-llizti.ads, a-sfztio.ads, a-siztio.ads, a-ssizti.ads, a-stzfix.ads, 7332 a-stzhas.ads, a-szuzha.ads, a-tiunio.ads, a-wwunio.ads, a-ztcoio.ads, 7333 a-ztinio.ads, a-zttest.ads, a-zzunio.ads, a-astaco.ads, a-charac.ads, 7334 a-chlat1.ads, ada.ads, a-dynpri.ads, a-flteio.ads, a-fwteio.ads, 7335 a-inteio.ads, a-intnam.ads, a-ioexce.ads, a-iwteio.ads, a-lfteio.ads, 7336 a-lfwtio.ads, a-liteio.ads, a-liwtio.ads, a-llftio.ads, a-llfwti.ads, 7337 a-llitio.ads, a-lliwti.ads, a-ncelfu.ads, a-ngcefu.ads, a-ngelfu.ads, 7338 a-nlcefu.ads, a-nlcoty.ads, a-nlelfu.ads, a-nllcef.ads, a-nllcty.ads, 7339 a-nllefu.ads, a-nscefu.ads, a-nscoty.ads, a-nselfu.ads, a-nucoty.ads, 7340 a-nuelfu.ads, a-numeri.ads, a-sfteio.ads, a-sfwtio.ads, a-siteio.ads, 7341 a-siwtio.ads, a-ssitio.ads, a-ssiwti.ads, a-storio.ads, a-strfix.ads, 7342 a-string.ads, a-stwifi.ads, a-titest.ads, a-unccon.ads, a-uncdea.ads, 7343 a-wtcoio.ads, a-wtinio.ads, a-wttest.ads, calendar.ads, directio.ads, 7344 i-c.ads, ioexcept.ads, machcode.ads, sequenio.ads, text_io.ads, 7345 unchconv.ads, unchdeal.ads, a-widcha.ads, a-zchara.ads, a-stboha.ads, 7346 a-stfiha.ads, a-coteio.ads, a-envvar.ads, a-lcteio.ads, a-llctio.ads, 7347 a-scteio.ads, a-swbwha.ads, a-swfwha.ads, a-szbzha.ads, a-szfzha.ads, 7348 a-tiboio.ads, a-wwboio.ads, a-zzboio.ads, a-dispat.ads, a-tgdico.ads, 7349 expander.adb, g-socket.ads, par-labl.adb, sinput-c.adb, s-tarest.ads, 7350 s-stchop.ads, g-expect-vms.adb, s-taprop-lynxos.adb, 7351 s-taprop-tru64.adb, s-taprop-irix.adb, 7352 s-taprop-hpux-dce.adb, s-traceb-hpux.adb, 7353 s-taprop-linux.adb, s-taprop-dummy.adb, s-osprim-unix.adb, 7354 s-osprim-solaris.adb, s-taprop-solaris.adb, s-taprop-vms.adb, 7355 s-osprim-mingw.adb, s-taprop-mingw.adb, s-osprim-posix.adb, 7356 s-taprop-posix.adb, a-exexpr-gcc.adb, a-ststio.adb, a-ststio.ads, 7357 a-textio.adb, a-textio.ads, a-tideau.adb, a-tideau.ads, a-witeio.adb, 7358 a-witeio.ads, a-wtdeau.adb, a-wtdeau.ads, g-calend.adb, g-calend.ads, 7359 g-dirope.adb, g-expect.ads, gnatchop.adb, g-spipat.adb, g-spipat.ads, 7360 s-direio.adb, s-direio.ads, s-fatgen.adb, s-fatgen.ads, s-parint.adb, 7361 s-sequio.adb, s-sequio.ads, s-taprop.ads, s-valdec.adb, s-valdec.ads, 7362 s-valint.adb, s-valint.ads, s-vallld.adb, s-vallld.ads, s-vallli.adb, 7363 s-vallli.ads, s-valllu.adb, s-valllu.ads, s-valrea.adb, s-valrea.ads, 7364 s-valuns.adb, s-valuns.ads, s-valuti.adb, s-valuti.ads, xref_lib.adb, 7365 s-stchop.adb, i-vxwork-x86.ads, a-crbtgo.ads, a-crbtgo.adb, 7366 a-coorse.ads, a-coorse.adb, a-cohama.ads, a-cohama.adb, a-ciorse.ads, 7367 a-ciorse.adb, a-cihama.ads, a-cihama.adb, a-chtgop.ads, a-chtgop.ads, 7368 a-coormu.adb, a-ciormu.adb, a-cihase.adb, a-cihase.ads, a-cohase.adb, 7369 a-cohase.ads, a-swuwha.ads, a-ciormu.ads, a-coormu.ads, a-rbtgso.ads, 7370 a-stunha.ads, a-ciorma.adb, a-coorma.adb, a-ztdeau.adb, a-ztdeau.ads, 7371 a-ztexio.adb, a-ztexio.ads: Addition of null-exclusion to anonymous 7372 access types. 7373 Update documentation. 7374 Minor rewording. 7375 73762007-04-06 Robert Dewar <dewar@adacore.com> 7377 7378 * system-linux-ia64.ads, system-freebsd-x86.ads, system-lynxos-ppc.ads, 7379 system-lynxos-x86.ads, system-linux-x86_64.ads, system-tru64.ads, 7380 system-vxworks-sparcv9.ads, system-solaris-x86.ads, system-irix-o32.ads, 7381 system-irix-n32.ads, system-hpux.ads, system-vxworks-m68k.ads, 7382 system-linux-x86.ads, system-vxworks-mips.ads, system-interix.ads, 7383 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 7384 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 7385 system-vxworks-alpha.ads, system-vms_64.ads, system-darwin-ppc.ads, 7386 system-vxworks-x86.ads, system-linux-ppc.ads, system-linux-hppa.ads, 7387 system-hpux-ia64.ads, targparm.adb, 7388 targparm.ads (Functions_Return_By_DSP_On_Target): Removed 7389 7390 * system.ads: Move Functions_Return_By_DSP to obsolete section, 7391 kept for bootstrap purposes only. 7392 73932007-04-06 Arnaud Charlet <charlet@adacore.com> 7394 7395 * s-osinte-lynxos-3.ads, s-osinte-hpux.ads, s-osinte-solaris-posix.ads, 7396 s-osinte-freebsd.ads, s-osinte-aix.ads, s-osinte-darwin.ads, 7397 s-taprop-posix.adb (Create_Task): Fix handling of Task_Info. 7398 (PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM): New constants. 7399 74002007-04-06 Robert Dewar <dewar@adacore.com> 7401 7402 * a-except.adb, a-except.ads, a-except-2005.ads, a-except-2005.adb 7403 (Local_Raise): New dummy procedure called when a raise is converted 7404 to a local goto. Used for debugger to detect that the exception 7405 is raised. 7406 7407 * debug.adb: Document new d.g flag (expand local raise statements to 7408 gotos even if pragma Restriction (No_Exception_Propagation) is not set) 7409 7410 * exp_sel.adb: Use Make_Implicit_Exception_Handler 7411 7412 * exp_ch11.adb (Expand_Exception_Handlers): Use new flag -gnatw.x to 7413 suppress warnings for unused handlers. 7414 (Warn_If_No_Propagation): Use new flag -gnatw.x to suppress 7415 warnings for raise statements not handled locally. 7416 (Get_RT_Exception_Entity): New function 7417 (Get_Local_Call_Entity): New function 7418 (Find_Local_Handler): New function 7419 (Warn_If_No_Propagation): New procedure 7420 (Expand_At_End_Handler): Call Make_Implicit_Handler 7421 (Expand_Exception_Handlers): Major additions to deal with local handlers 7422 (Expand_N_Raise_Constraint_Error, Expand_N_Raise_Program_Error, 7423 Expand_N_Raise_Storage_Error, (Expand_N_Raise_Statement): Add handling 7424 for local raise 7425 7426 * exp_ch11.ads (Get_RT_Exception_Entity): New function 7427 (Get_Local_Call_Entity): New function 7428 7429 * gnatbind.adb (Restriction_List): Add No_Exception_Propagation to list 7430 of restrictions that the binder will never suggest adding. 7431 7432 * par-ch11.adb (P_Exception_Handler): Set Local_Raise_Statements field 7433 to No_Elist. 7434 7435 * restrict.adb (Check_Restricted_Unit): GNAT.Current_Exception may not 7436 be with'ed in the presence of pragma Restriction 7437 (No_Exception_Propagation). 7438 7439 * sem.adb (Analyze): Add entries for N_Push and N_Pop nodes 7440 7441 * sem_ch11.adb (Analyze_Exception_Handler): If there is a choice 7442 parameter, then the handler is not a suitable target for a local raise, 7443 and this is a violation of restriction No_Exception_Propagation. 7444 (Analyze_Handled_Statements): Analyze choice parameters in exception 7445 handlers before analyzing statement sequence (needed for proper 7446 detection of local raise statements). 7447 (Analyze_Raise_Statement): Reraise statement is a violation of the 7448 No_Exception_Propagation restriction. 7449 7450 * s-rident.ads: Add new restriction No_Exception_Propagation 7451 7452 * tbuild.ads, tbuild.adb (Make_Implicit_Exception_Handler): New 7453 function, like Make_Exception_Handler but sets Local_Raise_Statements 7454 to No_List. 7455 (Add_Unique_Serial_Number): Deal with case where this is called during 7456 processing of configuration pragmas. 7457 74582007-04-06 Thomas Quinot <quinot@adacore.com> 7459 Pat Rogers <rogers@adacore.com> 7460 Pascal Obry <obry@adacore.com> 7461 7462 * g-stsifd-sockets.adb: New file. 7463 7464 * g-socthi.ads, g-socket.adb, g-socthi-vxworks.adb, 7465 g-socthi-vxworks.ads, g-socthi-mingw.ads, g-socthi-vms.ads, 7466 g-socthi-vms.adb: Move signalling 7467 fd management to a nested package, so that they can conveniently be 7468 moved to a subunit that is shared across Windows, VMS, and VxWorks 7469 (Ada implementation) or completed with imported bodies from socket.c 7470 (UNIX case). 7471 (Read_Signalling_Fd, Write_Signalling_Fd, Create_Signalling_Fds): New 7472 subprograms. 7473 (Check_Selector): Use Read_Signalling_Fd to read and discard data from 7474 the signalling file descriptor. 7475 (Abort_Selector): Use Write_Signalling_Fd to write dummy data to the 7476 signalling file descriptor. 7477 (Create_Selector): Use new C-imported subprogram Create_Signalling_Fds 7478 instead of creating a pair of sockets for signalling here. 7479 7480 * g-socthi.adb: Ditto. 7481 Set the runtime process to ignore SIGPIPEs on platforms that support 7482 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality. 7483 7484 * g-socthi-mingw.adb: Ditto. 7485 (WS_Version): Use Windows 2.2. 7486 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API. 7487 7488 * g-soliop-mingw.ads: Link with ws2_32 for Windows 2.x support. 7489 Use Winsock 2.2 (instead of 1.1) for the GNAT.Socket API. 7490 7491 * Makefile.in: New libgnat pair g-stsifd.adb<g-stsifd-sockets.adb. 7492 added GNAT byte swapping facility 7493 Update FreeBSD THREADSLIB from -lc_r to -lpthread, for FreeBSD 6. 7494 7495 * g-bytswa.adb, g-bytswa-x86.adb, g-bytswa.ads: New files. 7496 7497 * socket.c (__gnat_read_signalling_fd, __gnat_write_controlling_fd): 7498 New subprograms. 7499 (__gnat_create_signalling_fds): New subprogram. 7500 Set the runtime process to ignore SIGPIPEs on platforms that support 7501 neither SO_NOSIGPIPE nor MSG_NOSIGNAL functionality. 7502 75032007-04-06 Hristian Kirtchev <kirtchev@adacore.com> 7504 Vincent Celier <celier@adacore.com> 7505 7506 * a-calend-vms.ads, a-calend.ads, a-calend.adb, a-calend-vms.adb: 7507 New version of Ada.Calendar which supports the new upper bound of Ada 7508 time (2399-12-31 86_399.999999999). 7509 The following modifications have been made to the package: 7510 - New representation of time as count of nanoseconds since the start of 7511 Ada time (1901-1-1 0.0). 7512 - Target independent Split and Time_Of routines which service both 7513 Ada 95 and Ada 2005 code. 7514 - Target independent interface to the Ada 2005 children of Calendar. 7515 - Integrated leap seconds into Ada 95 and Ada 2005 mode. 7516 - Handling of non-leap centenial years. 7517 - Updated clock function. 7518 - Updated arithmetic and comparison operators. 7519 7520 * a-caldel.adb (To_Duration): Add call to target independent routine in 7521 Ada.Calendar to handle the conversion of time to duration. 7522 7523 * sysdep.c (__gnat_localtime_tzoff): Test timezone before setting off 7524 (UTC Offset). 7525 If timezone is obviously incorrect (outside of -14 hours .. 14 hours), 7526 set off to 0. 7527 (__gnat_localtime_tzoff for Lynx and VxWorks): Even though these 7528 targets do not have a natural time zone, GMT is used as a default. 7529 (__gnat_get_task_options): New. 7530 7531 * a-direct.adb (Modification_Time): Add with and use clauses for 7532 Ada.Calendar and Ada. 7533 Calendar.Formatting. Remove with clause for Ada.Unchecked_Conversion 7534 since it is no longer needed. 7535 (Duration_To_Time): Removed. 7536 (OS_Time_To_Long_Integer): Removed. 7537 (Modification_Time): Rewritten to use Ada.Calendar and Ada.Calendar. 7538 Formatting Time_Of routines which automatically handle time zones, 7539 buffer periods and leap seconds. 7540 7541 * a-calari.ads, a-calari.adb ("+", "-", Difference): Add calls to 7542 target independent routines in Ada.Calendar. 7543 7544 * a-calfor.ads, a-calfor.adb: 7545 Code cleanup and addition of validity checks in various routines. 7546 (Day_Of_Week, Split, Time_Of): Add call to target independent routine in 7547 Ada.Calendar. 7548 7549 * a-catizo.ads, a-catizo.adb (UTC_Time_Offset): Add call to target 7550 independent routine in Ada.Calendar. 7551 75522007-04-06 Olivier Hainque <hainque@adacore.com> 7553 7554 * adaint.c: 7555 (convert_addresses): Adjust prototype and dummy definition to expect an 7556 extra file_name argument. 7557 7558 * gmem.c (__gnat_convert_addresses): Wrapper to convert_addresses, 7559 filling the now expected file_name argument with the appropriate 7560 argv[0] expansion. 7561 (__gnat_gmem_a2l_initialize, __gnat_gmem_read_next_frame): Use it. 7562 (tracebk): Array of void * instead of char *, corresponding to what 7563 convert_addresses expects. 7564 (exename): New static global, to hold the executable file name to be 7565 used in all convert_addresses invocations. 7566 (gmem_read_backtrace, __gnat_gmem_symbolic): Account for tracebk type 7567 change. 7568 (__gnat_gmem_a2l_initialize): Resolve exename. 7569 (__gnat_convert_addresses): Use exename as the convert_addresses 7570 file_name argument. 7571 7572 * g-trasym.adb (Symbolic_Traceback): Adjust signature of imported 7573 "convert_addresses", now expecting a filename argument. Import the 7574 necessary entities to compute the filename to use and pass it to 7575 convert_addresses. 7576 75772007-04-06 Matt Gingell <gingell@adacore.com> 7578 7579 * system-aix.ads: Back out previous change. 7580 (Functions_Return_By_DSP): Removed 7581 75822007-04-06 Pascal Obry <obry@adacore.com> 7583 7584 * s-osprim-mingw.adb (Timed_Delay): Use the right clock (standard one 7585 or the monotonic used by Ada.Real_Time) to compute the sleep duration 7586 on Windows. 7587 75882007-04-06 Jose Ruiz <ruiz@adacore.com> 7589 7590 * s-osinte-vxworks.ads, s-osinte-vxworks.adb (VX_FP_TASK): Remove this 7591 function. Its value changes in different VxWorks versions, and it is 7592 now handled by the function __gnat_get_task_options. 7593 7594 * s-taprop-vxworks.adb (Create_Task): Call the function 7595 __gnat_get_task_options to get the required options for creating a task. 7596 75972007-04-06 Pascal Obry <obry@adacore.com> 7598 Thomas Quinot <quinot@adacore.com> 7599 7600 * adaint.c: Replace all occurences of S2WS to S2WSU (Unicode) when 7601 dealing with filename. 7602 (__gnat_fopen): Call the proper macro (8bits or UTF8) to convert the 7603 filename from a standard string to a wide-string depending on the 7604 encoding value. 7605 (__gnat_freopen): Idem. 7606 (__gnat_current_time): New function (wrapper for time(3) standard C 7607 function). 7608 7609 * g-os_lib.ads (Current_Time): New function. Returns the current 7610 system time as an OS_Time value. 7611 7612 * s-osprim.ads (Clock): Add more precise definition of UNIX epoch. 7613 (Monotonic_Clock): Same. 7614 76152007-04-06 Quentin Ochem <ochem@adacore.com> 7616 7617 * ali.ads, ali.adb (Get_Nat): Raise an exception if the file cursor is 7618 not on a natural. 7619 (Scan_ALI): Cancel the xref line if there has been a reading ALI error. 7620 76212007-04-06 Jose Ruiz <ruiz@adacore.com> 7622 7623 * a-retide.adb: Add elaboration code to ensure that the tasking run 7624 time is initialized when using delay operations even when no task is 7625 created. 7626 76272007-04-06 Javier Miranda <miranda@adacore.com> 7628 7629 * a-tags.ads, a-tags.adb (Object_Specific_Data): Remove 7630 component Num_Prim_Ops. 7631 (Set_Num_Prim_Ops): Removed. 7632 Remove all the assertions because all the routines of this 7633 package are inline always. 7634 (Get_Offset_Index): Add support to primary dispatch tables. 7635 Move the documentation about the dispatch table to a-tags.ads 7636 (Set_External_Tag): Removed 7637 (Inherit_TSD): Removed. 7638 (Interface_Data_Element, Interfaces_Array, Interface_Data): Declarations 7639 moved to a-tags.ads 7640 (Displace, IW_Membership, Inherit_TSD, Interface_Ancestor_Tags, 7641 Register_Interface_Tag, Set_Offset_To_Top): Update all the occurrences 7642 of the TSD field "Table" because this field has been renamed to 7643 "Ifaces_Table". 7644 (Inherit_CPP_DT): Removed. 7645 (K_Typeinfo, K_Offset_To_Top, K_Tagged_Kind, K_Signature, 7646 Cstring, Tag_Table, Type_Specific_Data, Dispatch_Table): These 7647 declarations have been moved to a-tags.ads 7648 (Check_Size): Removed. 7649 (Expanded_Name): Updated to get access to the new field of TSD 7650 containing the address of the expanded name. 7651 (Get_Access_Level/Set_Access_Level): Removed. 7652 (Get_Predefined_Prim_Op_Address): Removed. 7653 (Set_Predefined_Prim_Op_Address): Removed. 7654 (Get_Prim_Op_Address/Set_Prim_Op_Address): Removed. 7655 (Get_Remotely_Callable/Set_Remotely_Callable): Removed. 7656 (Set_Expanded_Name): Removed. 7657 (Inherit_DT): Removed. 7658 (Inherit_CPP_DT): Removed. 7659 (Set_RC_Offset): Removed. 7660 (Set_TSD): Removed. 7661 (Base_Address): New function that displaces "this" to point to the base 7662 of the object (that is, to point to the primary tag of the object). 7663 76642007-04-06 Ed Schonberg <schonberg@adacore.com> 7665 Javier Miranda <miranda@adacore.com> 7666 7667 * exp_ch3.ads, exp_ch3.adb (Analyze_N_Full_Type_Declaration): For an 7668 anonymous access component, do not create a master_id if type already 7669 has one, as may happen if the type is a subcomponent of a packed array 7670 type. 7671 (Build_Init_Procedure, Component_Needs_Simple_Initialization, 7672 Initialize_Tag): Remove code associated with the old CPP pragmas. 7673 CPP_Virtual and CPP_Vtable are no longer supported. 7674 (Build_Offset_To_Top_Internal): Add support for concurrent record types 7675 (Build_Offset_To_Top_Functions): Add support for concurrent record types 7676 (Freeze_Record_Type): Remove call to 7677 Init_Predefined_Interface_Primitives. 7678 (Init_Secondary_Tags.Initialize_Tag): New subprogram containing all the 7679 code required to initialize the tags of the secondary dispatch tables. 7680 This leaves the algoritm more clear. 7681 (Init_Secondary_Tags): Add support for concurrent record types 7682 (Make_Predefined_Primitive_Specs): Code cleanup. 7683 (Predefined_Primitive_Bodies): Code cleanup. 7684 (Build_Master_Renaming): New local subprogram. 7685 (Expand_N_Full_Type_Declaration): Build the master_id associated with 7686 anonymous access to task type components. 7687 (Expand_N_Subtype_Indication): The bounds of a range constraint in a 7688 subtype indication are resolved during analysis, and must not be done 7689 here. 7690 (Stream_Operation_OK): Check Restriction_Active before RTE_Available. 7691 76922007-04-06 Geert Bosch <bosch@adacore.com> 7693 Ed Schonberg <schonberg@adacore.com> 7694 Javier Miranda <miranda@adacore.com> 7695 Bob Duff <duff@adacore.com> 7696 7697 * exp_ch4.adb (Expand_N_Type_Conversion): Remove special processing 7698 for conversion of a Float_Type'Truncation to integer. 7699 7700 * exp_attr.adb (Is_Inline_Floating_Point_Attribute): New function to 7701 check if a node is an attribute that can be handled directly by the 7702 back end. 7703 (Expand_N_Attribute_Reference): Suppress expansion of floating-point 7704 attributes that can be handled directly by the back end. 7705 (Expand_N_Attribute_Reference, case 'Access and 'Unchecked_Access): 7706 use new predicate Is_Access_Protected_Subprogram_Type. 7707 (Expand_N_Attribute_Reference, case 'Write): The reference is legal for 7708 and Unchecked_Union if it is generated as part of the default Output 7709 procedure for a type with default discriminants. 7710 (Expand_N_Attribute_Reference): Avoid the expansion of dispatching calls 7711 if we are compiling under restriction No_Dispatching_Calls. 7712 (Constrained): Use Underlying_Type, in case the type is private without 7713 discriminants, but the full type has discriminants. 7714 (Expand_N_Attribute_Reference): Replace call to Get_Access_Level by 7715 call to Build_Get_Access_Level. 7716 (Expand_N_Attribute_Reference): The use of 'Address with class-wide 7717 interface objects requires a call to the run-time subprogram that 7718 returns the base address of the object. 7719 (Valid_Conversion): Improve error message on illegal attempt to store 7720 an anonymous access to subprogram value into a record component. 7721 7722 * sem_res.adb (Resolve_Equality_Op): Detect ambiguity for "X'Access = 7723 null". 7724 (Simplify_Type_Conversion): New procedure that performs simplification 7725 of Int_Type (Float_Type'Truncation (X)). 7726 (Resolve_Type_Conversion): Call above procedure after resolving operand 7727 and before performing checks. This replaces the existing ineffective 7728 code in Exp_Ch4. 7729 (Set_String_Literal_Subtype): When creating the internal static lower 7730 bound subtype for a string literal, use a newly created copy of the 7731 subtree representing the lower bound. 7732 (Resolve_Call): Exclude build-in-place function calls from transient 7733 scope treatment. Update comments to describe this exception. 7734 (Resolve_Equality_Op): In case of dispatching call check violation of 7735 restriction No_Dispatching_Calls. 7736 (Resolve_Call): If the call returns an array, the context imposes the 7737 component type of the array, and the function has one non-defaulted 7738 parameter, rewrite the call as the indexing of a call with a single 7739 parameter, to handle an Ada 2005 syntactic ambiguity for calls written 7740 in prefix form. 7741 (Resolve_Actuals): If an actual is an allocator for an access parameter, 7742 the master of the created object is the innermost enclosing statement. 7743 (Remove_Conversions): For a binary operator, check if type of second 7744 formal is numeric, to check if an abstract interpretation is present 7745 in the case of exponentiation as well. 7746 77472007-04-06 Ed Schonberg <schonberg@adacore.com> 7748 Bob Duff <duff@adacore.com> 7749 7750 * atree.h, atree.ads, atree.adb (Copy_Node_With_Replacement): When 7751 copying a parameter list in a call, set properly the First_Named_Formal 7752 and Next_Named_Formal fields in the new list and in the enclosing call. 7753 (Watch_Node,New_Node_Breakpoint,New_Node_Debugging_Output): Shorten 7754 names, to ease typing in the debugger. Improve comments. 7755 (Watch_Node): New variable, intended to be set in the debugger. 7756 (New_Node_Breakpoint): New do-nothing procedure to set a breakpoint on, 7757 called when the watched node is created. 7758 (New_Node_Debugging_Output): Combined version of local procedures 7759 New_Node_Debugging_Output and New_Entity_Debugging_Output, now global, 7760 with a parameter so that conditional breakpoints like "if Node = 12345" 7761 work. 7762 (New_Node, New_Entity): Call the global New_Node_Debugging_Output. 7763 Add Elist1 function 7764 77652007-04-06 Thomas Quinot <quinot@adacore.com> 7766 Ed Schonberg <schonberg@adacore.com> 7767 Gary Dismukes <dismukes@adacore.com> 7768 7769 * checks.ads, checks.adb (Selected_Range_Checks): No range check is 7770 required for a conversion between two access-to-unconstrained-array 7771 types. 7772 (Expr_Known_Valid): Validity checks do not apply to discriminants, but 7773 to discriminant constraints on discriminant objects. This rule must 7774 apply as well to discriminants of protected types in private components. 7775 (Null_Exclusion_Static_Checks): If No_Initialization is set on an 7776 object of a null-excluding access type then don't require the 7777 the object declaration to have an expression and don't emit a 7778 run-time check. 7779 77802007-04-06 Arnaud Charlet <charlet@adacore.com> 7781 Eric Botcazou <botcazou@adacore.com> 7782 7783 * gnatvsn.ads, comperr.adb (Get_Gnat_build_Type): Renamed Build_Type 7784 and made constant. 7785 7786 * comperr.ads, comperr.adb (Compiler_Abort): Add third parameter 7787 Fallback_Loc. Use it as the sloc info when Current_Error_Node doesn't 7788 carry any. 7789 7790 * fe.h (Compiler_Abort): Add third parameter. 7791 7792 * misc.c (internal_error_function): Build third argument from current 7793 input location and pass it to Compiler_Abort. 7794 77952007-04-06 Gary Dismukes <dismukes@adacore.com> 7796 7797 * cstand.adb (Create_Standard): When the target's storage unit size is 7798 greater than a byte, set Has_Non_Standard_Rep and Has_Pragma_Pack on 7799 Standard_String. 7800 78012007-04-06 Nicolas Roche <roche@adacore.com> 7802 7803 * cstreams.c (__gnat_full_name): Fix issues on VxWorks 6.x for which 7804 absolute path can have the following form: device:/a/b. In this case 7805 '/' should be inserted between the path and the filename. 7806 78072007-04-06 Olivier Hainque <hainque@adacore.com> 7808 Eric Botcazou <botcazou@adacore.com> 7809 7810 * decl.c (gnat_to_gnu_entity) <E_Constant>: Associate an external 7811 VAR_DECL to a CONST_DECL we make for a public constant when we know the 7812 corresponding definition has created the so made visible variable. 7813 Handle anonymous access to protected subprogram. 7814 (gnat_to_gnu_entity) <E_Variable>: Do not make the underlying type of an 7815 object with an address clause volatile. Re-enable original fix. 7816 <E_Subprogram_Type>: Set TYPE_REF_CAN_ALIAS_ALL on the reference type 7817 too. 7818 (gnat_to_gnu_entity) <E_Class_Wide_Type>: Retrieve the TYPE_DECL 7819 associated with either the Equivalent or Root type, instead of the 7820 naked type node. 7821 (gnat_to_gnu_entity): Manually mark the top of the DECL_FIELD_OFFSET 7822 subtree for every field of a global record type. 7823 (gnat_to_gnu_entity) <E_Record_Subtype>: If the subtype has 7824 discriminants, invoke again variable_size on its newly computed sizes. 7825 78262007-04-06 Robert Dewar <dewar@adacore.com> 7827 Thomas Quinot <quinot@adacore.com> 7828 Ed Schonberg <schonberg@adacore.com> 7829 Bob Duff <duff@adacore.com> 7830 7831 * einfo.ads, einfo.adb: (First_Component_Or_Discriminant): New function 7832 (Next_Component_Or_Discriminant): New function and procedure 7833 (First_Index, First_Literal, Master_Id, 7834 Set_First_Index, Set_First_Literal, Set_Master_Id): 7835 Add missing Ekind assertions. 7836 (Is_Access_Protected_Subprogram_Type): New predicate. 7837 (Has_RACW): New entity flag, set on package entities to indicate that 7838 the package contains the declaration of a remote accecss-to-classwide 7839 type. 7840 (E_Return_Statement): This node type has the Finalization_Chain_Entity 7841 attribute, in case the result type has controlled parts. 7842 (Requires_Overriding): Add this new flag, because "requires 7843 overriding" is subtly different from "is abstract" (see AI-228). 7844 (Is_Abstract): Split Is_Abstract flag into Is_Abstract_Subprogram and 7845 Is_Abstract_Type. Make sure these are called only when appropriate. 7846 (Has_Pragma_Unreferenced_Objects): New flag 7847 7848 * exp_ch5.adb (Expand_N_Assignment_Statement): If the left-hand side is 7849 class-wide, the tag of the right-hand side must be an exact match, not 7850 an ancestor of that of the object on left-hand side. 7851 (Move_Activation_Chain): New procedure to create the call to 7852 System.Tasking.Stages.Move_Activation_Chain. 7853 (Expand_N_Extended_Return_Statement): Generate code to call 7854 System.Finalization_Implementation.Move_Final_List at the end of a 7855 return statement if the function's result type has controlled parts. 7856 Move asserts to Build_In_Place_Formal. 7857 (Move_Final_List): New function to create the call statement. 7858 (Expand_N_Assignment_Statement): In case of assignment to a class-wide 7859 tagged type, replace generation of call to the run-time subprogram 7860 CW_Membership by call to Build_CW_Membership. 7861 (Expand_N_Return_Statement): Replace generation of call to the run-time 7862 subprogram Get_Access_Level by call to Build_Get_Access_Level. 7863 (Expand_N_Simple_Function_Return): Replace generation of call to the 7864 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level. 7865 7866 * exp_ch6.ads, exp_ch6.adb (Expand_Call): Use new predicate 7867 Is_Access_Protected_Subprogram_Type, to handle both named and anonymous 7868 access to protected operations. 7869 (Add_Task_Actuals_To_Build_In_Place_Call): New procedure to add the 7870 master and chain actual parameters to a build-in-place function call 7871 involving tasks. 7872 (BIP_Formal_Suffix): Add new enumeration literals to complete the case 7873 statement. 7874 (Make_Build_In_Place_Call_In_Allocator, 7875 Make_Build_In_Place_Call_In_Anonymous_Context, 7876 Make_Build_In_Place_Call_In_Assignment, 7877 Make_Build_In_Place_Call_In_Object_Declaration): Call 7878 Add_Task_Actuals_To_Build_In_Place_Call with the appropriate master. 7879 (Expand_Inlined_Call): If the subprogram is a null procedure, or a 7880 stubbed procedure with a null body, replace the call with a null 7881 statement without using the full inlining machinery, for efficiency 7882 and to avoid invalid values in source file table entries. 7883 7884 * exp_ch8.adb (Expand_N_Object_Renaming_Declaration): Add support for 7885 renamings of calls to build-in-place functions. 7886 7887 * rtsfind.adb (RTE_Record_Component_Available): New subprogram that 7888 provides the functionality of RTE_Available to record components. 7889 (RTU_Entity): The function Entity has been renamed to RTU_Entity 7890 to avoid undesired overloading. 7891 (Entity): New subprogram that returns the entity for the referened 7892 unit. If this unit has not been loaded, it returns Empty. 7893 (RE_Activation_Chain_Access, RE_Move_Activation_Chain): New entities. 7894 Remove no longer used entities. 7895 (RE_Finalizable_Ptr_Ptr, RE_Move_Final_List): New entities. 7896 (RE_Type_Specific_Data): New entity. 7897 (RE_Move_Any_Value): New entity. 7898 (RE_TA_A, RE_Get_Any_Type): New entities. 7899 (RE_Access_Level, RE_Dispatch_Table, E_Default_Prim_Op_Count, 7900 RE_Prims_Ptr, RE_RC_Offset, RE_Remotely_Callable, 7901 RE_DT_Typeinfo_Ptr_Size, RE_Cstring_Ptr, RE_DT_Expanded_Name): Added. 7902 (Entity): New subprogram that returns the entity for the referened 7903 unit. If this unit has not been loaded, it returns Empty. 7904 (RTE): Addition of a new formal that extends the search to the scopes 7905 of the record types found in the chain of the package. 7906 7907 * sem_ch6.ads, sem_ch6.adb (Check_Overriding_Indicator): Print 7908 "abstract subprograms must be visible" message, whether or not the type 7909 is an interface; that is, remove the special case for interface types. 7910 (Analyze_Function_Return): Remove error message "return of task objects 7911 is not yet implemented" because this is now implemented. 7912 (Create_Extra_Formals): Add the extra master and activation chain 7913 formals in case the result type has tasks. 7914 Remove error message "return of limited controlled objects is not yet 7915 implemented". 7916 (Create_Extra_Formals): Add the extra caller's finalization list formal 7917 in case the result type has controlled parts. 7918 (Process_Formals): In case of access formal types there is no need 7919 to continue with the analysis of the formals if we already notified 7920 errors. 7921 (Check_Overriding_Indicator): Add code to check overriding of predefined 7922 operators. 7923 (Create_Extra_Formals): Prevent creation of useless Extra_Constrained 7924 flags for formals that do not require them,. 7925 (Enter_Overloaded_Entity): Do not give -gnatwh warning message unless 7926 hidden entity is use visible or directly visible. 7927 (Analyze_Abstract_Subprogram_Declaration,Analyze_Subprogram_Body, 7928 Analyze_Subprogram_Declaration,Analyze_Subprogram_Specification, 7929 Check_Conventions,Check_Delayed_Subprogram,Make_Inequality_Operator, 7930 New_Overloaded_Entity): Split Is_Abstract flag into 7931 Is_Abstract_Subprogram and Is_Abstract_Type. 7932 7933 * s-finimp.ads, s-finimp.adb (Move_Final_List): New procedure to move 7934 a return statement's finalization list to the caller's list, used for 7935 build-in-place functions with result type with controlled parts. 7936 Remove no longer used entities. 7937 7938 * s-taskin.ads (Activation_Chain): Remove pragma Volatile. It is no 7939 longer needed, because the full type is now limited, and therefore a 7940 pass-by-reference type. 7941 (Foreign_Task_Level): New constant. 7942 7943 * s-tassta.ads, s-tassta.adb (Move_Activation_Chain): New procedure to 7944 move tasks from the activation chain belonging to a return statement to 7945 the one passed in by the caller, and update the master to the one 7946 passed in by the caller. 7947 (Vulnerable_Complete_Master, Check_Unactivated_Tasks): Check the master 7948 of unactivated tasks, so we don't kill the ones that are being returned 7949 by a build-in-place function. 7950 (Create_Task): Ignore AI-280 for foreign threads. 7951 79522007-04-06 Ed Schonberg <schonberg@adacore.com> 7953 Robert Dewar <dewar@adacore.com> 7954 Bob Duff <duff@adacore.com> 7955 Gary Dismukes <dismukes@adacore.com> 7956 7957 * errout.adb (Unwind_Internal_Type): Use predicate 7958 Is_Access__Protected_Subprogram_Type. 7959 7960 * freeze.adb (Size_Known): Use First/Next_Component_Or_Discriminant 7961 (Freeze_Entity, packed array case): Do not override explicitly set 7962 alignment and size clauses. 7963 (Freeze_Entity): An entity declared in an outer scope can be frozen if 7964 the enclosing subprogram is a child unit body that acts as a spec. 7965 (Freeze_Entity): Use new predicate Is_Access_Protected_Subprogram_Type. 7966 (Freeze_Record_Type): New Ada 2005 processing for reverse bit order 7967 Remove all code for DSP option 7968 7969 * layout.adb (Layout_Record_Type): Use First/ 7970 Next_Component_Or_Discriminant 7971 (Layout_Type): Use new predicate Is_Access_Protected_Subprogram_Type, 7972 to handle properly the anonymous access case. 7973 7974 * sem_attr.adb (Build_Access_Object_Type): Use E_Access_Attribute_Type 7975 for all access attributes, because overload resolution should work the 7976 same for 'Access, 'Unchecked_Access, and 'Unrestricted_Access. This 7977 causes the error message for the ambiguous "X'Access = Y'Access" and 7978 "X'Unrestricted_Access = Y'Access" and so forth to match. 7979 (Resolve_Attribute, case 'Access): Remove use of Original_Access_Type, 7980 now that anonymous access to protected operations have their own kind. 7981 (Resolve_Attribute): In case of dispatching call check the violation of 7982 restriction No_Dispatching_Calls. 7983 (Check_Array_Type): Check new -gnatyA array index style option 7984 7985 * sem_ch3.ads, sem_ch3.adb (Derived_Type_Declaration): Reject an 7986 attempt to derive from a synchronized tagged type. 7987 (Analyze_Type_Declaration): If there is a incomplete tagged view of the 7988 type, inherit the class-wide type already created, because it may 7989 already have been used in a self-referential anonymous access component. 7990 (Mentions_T): Recognize self-referential anonymous access components 7991 that use (a subtype of) the class-wide type of the enclosing type. 7992 (Build_Derived_Record_Type): Add earlier setting of Is_Tagged_Type. Pass 7993 Derived_Type for Prev formal on call to 7994 Check_Anonymous_Access_Components rather than Empty. 7995 (Make_Incomplete_Type_Declaration): Add test for case where the type has 7996 a record extension in deciding whether to create a class-wide type, 7997 rather than just checking Tagged_Present. 7998 (Replace_Anonymous_Access_To_Protected_Subprogram): Procedure applies 7999 to stand-alone object declarations as well as component declarations. 8000 (Array_Type_Declaration): Initialize Packed_Array_Type to Empty, to 8001 prevent accidental overwriting when enclosing package appears in 8002 a limited_with_clause. 8003 (Array_Type_Declaration): If the component type is an anonymous access, 8004 the associated_node for the itype is the type declaration itself. 8005 (Add_Interface_Tag_Components): Modified to support concurrent 8006 types with abstract interfaces. 8007 (Check_Abstract_Interfaces): New subprogram that verifies the ARM 8008 rules 3.9.4 (15/2), 9.1 (9.d/2) and 9.4 (11.d/2). 8009 (Build_Derived_Record_Type): Add call to Analyze_Interface_Declaration 8010 to complete the decoration of synchronized interface types. Add also 8011 a call to Check_Abstract_Interfaces to verify the ARM rules. 8012 (Derive_Interface_Subprograms): Modified to support concurrent types 8013 with abstract interfaces. 8014 (Analyze_Subtype_Indication): Resolve the range with the given subtype 8015 mark, rather than delaying the full resolution depending on context. 8016 (Analyze_Component_Declaration,Analyze_Interface_Declaration, 8017 Analyze_Object_Declaration,Analyze_Subtype_Declaration, 8018 Array_Type_Declaration,Build_Derived_Record_Type, 8019 Build_Discriminated_Subtype,Check_Abstract_Overriding,Check_Completion, 8020 Derive_Interface_Subprograms,Derive_Subprogram,Make_Class_Wide_Type, 8021 Process_Full_View,Record_Type_Declaration): Split Is_Abstract flag into 8022 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are 8023 called only when appropriate. 8024 (Copy_And_Swap): Copy Has_Unreferenced_Objects flag from full type 8025 to private type. 8026 (Analyze_Subtype_Declaration): For an access subtype declaration, create 8027 an itype reference for the anonymous designated subtype, to prevent 8028 scope anonmalies in gigi. 8029 (Build_Itype_Reference): New utility, to simplify construction of such 8030 references. 8031 80322007-04-06 Vincent Celier <celier@adacore.com> 8033 8034 * errutil.adb (Initialize): Initialize warnings table, if all warnings 8035 are suppressed, supply an initial dummy entry covering all possible 8036 source locations. 8037 8038 * make.adb (Scan_Make_Arg): Reject options that should start with "--" 8039 and start with only one, such as "-RTS=none". 8040 (Collect_Arguments): Do not check for sources outside of projects. 8041 Do not collect arguments if project is externally built. 8042 (Compile_Sources): Do nothing, not even check if the source is up to 8043 date, if its project is externally built. 8044 (Compile): When compiling a predefined source, add -gnatpg 8045 as the second switch, after -c. 8046 (Compile_Sources): Allow compilation of Annex J renames without -a 8047 (Is_In_Object_Directory): Check if the ALI file is in the object 8048 even if there is no project extension. 8049 (Create_Binder_Mapping_File): Only put a unit in the mapping file for 8050 gnatbind if the ALI file effectively exists. 8051 (Initialize): Add the directory where gnatmake is invoked in front of 8052 the path if it is invoked from a bin directory, even without directory 8053 information, so that the correct GNAT tools will be used when spawned 8054 without directory information. 8055 8056 * makeusg.adb: Change switch -S to -eS 8057 Add lines for new switches -we, -wn and -ws 8058 Add line for new switch -p 8059 8060 * prj-proc.adb (Process): Set Success to False when Warning_Mode is 8061 Treat_As_Error and there are warnings. 8062 8063 * switch-m.ads, switch-m.adb (Normalize_Compiler_Switches): Do not skip 8064 -gnatww Change gnatmake switch -S to -eS 8065 (Scan_Make_Switches): Code reorganisation. Process separately multi 8066 character switches and single character switches. 8067 (Scan_Make_Switches): New Boolean out parameter Success. Set Success to 8068 False when switch is not recognized by gnatmake. 8069 (Scan_Make_Switches): Set Setup_Projects True when -p or 8070 --create-missing-dirs is specified. 8071 8072 * fname.adb (Is_Predefined_File_Name): Return True for annex J 8073 renamings Calendar, Machine_Code, Unchecked_Conversion and 8074 Unchecked_Deallocation only when Renamings_Included is True. 8075 8076 * par.adb: Allow library units Calendar, Machine_Code, 8077 Unchecked_Conversion and Unchecked_Deallocation to be recompiled even 8078 when -gnatg is not specified. 8079 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because 8080 there is no need to generate always a record_definition_node in case 8081 of synchronized interface types. 8082 (SIS_Entry_Active): Initialize global variable to False 8083 (P_Null_Exclusion): For AI-447: Add parameter Allow_Anonymous_In_95 to 8084 indicate cases where AI-447 says "not null" is legal. 8085 8086 * makeutl.ads, makeutil.adb (Executable_Prefix_Path): New function 8087 8088 * makegpr.adb (Check_Compilation_Needed): Take into account dependency 8089 files with with several lines starting with the object fileb name. 8090 (Scan_Arg): Set Setup_Projects True when -p or --create-missing-dirs 8091 is specified. 8092 (Initialize): Add the directory where gprmake is invoked in front of the 8093 path, if it is invoked from a bin directory or with directory 8094 information, so that the correct GNAT tools will be used when invoked 8095 directly. 8096 (Check_Compilation_Needed): Process correctly backslashes on Windows. 8097 8098 * vms_data.ads: Update switches/qualifiers 8099 81002007-04-06 Ed Schonberg <schonberg@adacore.com> 8101 Thomas Quinot <quinot@adacore.com> 8102 8103 * exp_aggr.adb: 8104 If the array component is a discriminated record, the array aggregate 8105 is non-static even if the component is given by an aggregate with 8106 static components. 8107 (Expand_Record_Aggregate): Use First/Next_Component_Or_Discriminant 8108 (Convert_Aggr_In_Allocator): If the allocator is for an access 8109 discriminant and the type is controlled. do not place on a finalization 8110 list at this point. The proper list will be determined from the 8111 enclosing object. 8112 (Build_Record_Aggr_Code): If aggregate has box-initialized components, 8113 initialize record controller if needed, before the components, to ensure 8114 that they are properly finalized. 8115 (Build_Record_Aggr_Code): For the case of an array component that has a 8116 corresponding array aggregate in the record aggregate, perform sliding 8117 if required. 8118 81192007-04-06 Javier Miranda <miranda@adacore.com> 8120 Gary Dismukes <dismukes@adacore.com> 8121 Ed Schonberg <schonberg@adacore.com> 8122 8123 * exp_ch13.adb (Expand_External_Tag_Definition): Replace call to the 8124 run-time subprogram Set_External_Tag by call to Build_Set_External_Tag. 8125 8126 * exp_ch4.adb (Expand_Allocator_Expression): Don't perform a run-time 8127 accessibility on class-wide allocators if the allocator occurs at the 8128 same scope level as the allocator's type. The check is guaranteed to 8129 succeed in that case, even when the expression originates from a 8130 parameter of the containing subprogram. 8131 (Expand_N_Op_Eq): Do nothing in case of dispatching call if compiling 8132 under No_Dispatching_Calls restriction. During the semantic analysis 8133 we already notified such violation. 8134 (Tagged_Membership): Constant folding. There is no need to check 8135 the tag at run-time if the type of the right operand is non 8136 class-wide abstract. 8137 Replace call to Is_Ancestor by call to Is_Parent 8138 to support concurrent types with interface types. 8139 (Expand_N_Allocator): Add an assertion associated with the generation 8140 of the master_id. 8141 (Expand_N_Slice): Do not enable range check to nodes associated 8142 with the frontend expansion of the dispatch table. 8143 (Is_Local_Access_Discriminant): Subsidiary function to 8144 Expand_N_Allocator. 8145 (Tagged_Membership): Replace generation of call to the run-time 8146 subprogram CW_Membership by call to Build_CW_Membership. 8147 (Expand_Allocator_Expression): Replace generation of call to the 8148 run-time subprogram Get_Access_Level by call to Build_Get_Access_Level. 8149 8150 * exp_disp.ads, exp_disp.adb (Make_DT): Code reorganization to 8151 initialize most the TSD components by means of an aggregate. 8152 Modify the declaration of the object containing the TSD 8153 because we now expand code that has a higher level of abstraction. 8154 The TSD has a discriminant containing the Inheritance Depth Level, 8155 value that is used in the membership test but also to fix the size 8156 of the table of ancestors. 8157 (Expand_Interface_Conversion): Insert function body at the closest place 8158 to the conversion expression, to prevent access-before-elaboration 8159 errors in the backend. 8160 Code improved to reduce the size of the dispatch table if 8161 compiling under restriction No_Dispatching_Calls plus code cleanup. 8162 Code reorganization plus removal of calls to Set_Num_Prim_Ops 8163 (Make_Secondary_DT): Remove call to Set_Num_Prim_Ops. 8164 (Expand_Dispatching_Call): Minor code reorganization plus addition of 8165 code to return immediately if compiling under No_Dispatching_Calls 8166 restriction. 8167 (Set_All_DT_Position): Remove code associated with the old CPP pragmas. 8168 CPP_Virtual and CPP_Vtable are no longer supported. 8169 (Expand_Interface_Conversion): Add missing support for interface type 8170 derivations. 8171 (Expand_Interface_Actuals): Replace calls to Is_Ancestor by calls to 8172 Is_Parent to support concurrent types with interfaces. 8173 (Init_Predefined_Interface_Primitives): Removed. 8174 (Make_Secondary_DT): Modified to support concurrent record types. 8175 (Set_All_DT_Position): Modified to support concurrent record types. 8176 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated 8177 with Get_External_Tag, Inherit_TSD, Set_External_Tag. 8178 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entry associated 8179 with CW_Membership. 8180 (Ada_Actions, Action_Is_Proc, Action_Nb_Arg): Remove entries associated 8181 with Get_Access_Level, Get_Predefined_Prim_Op_Address, 8182 Get_Prim_Op_Address Get_RC_Offset, Get_Remotely_Callable, Inherit_DT, 8183 Set_Access_Level, Set_Expanded_Name, Set_Predefined_Prim_Op_Address, 8184 Set_Prim_Op_Address, Set_RC_Offset, Set_Remotely_Callable, Set_TSD. 8185 (Expand_Dispatching_Call): Replace generation of call to the run-time 8186 subprograms Get_Predefined_Prim_Op_Address and Get_Prim_Op_Address by 8187 calls to Build_Get_Predefined_Prim_Op_Address, and Build_Get_Prim_Op_ 8188 Address. 8189 (Fill_DT_Entry, Fill_Secondary_DT_Entry): Replace generation of call to 8190 the run-time subprograms Set_Predefined_Prim_Op_Address and Set_Prim_ 8191 Op_Address by calls to Build_Set_Predefined_Prim_Op_Address, and 8192 Build_Set_Prim_Op_Address. 8193 (Get_Remotely_Callable): Subprogram removed. 8194 (Init_Predefined_Interface_Primitives): Replace generation of call to 8195 the run-time subprograms Inherit_DT by call to Build_Inherit_Predefined_ 8196 Prims. 8197 8198 * sem_elab.adb (Set_Elaboration_Constraint): Replace the call to 8199 First (Parameter_Associations ()) with the call to First_Actual that 8200 returns an actual parameter expression for both named and positional 8201 associations. 8202 8203 * sem_disp.adb (Check_Dispatching_Call): In case of dispatching call 8204 check violation of restriction No_Dispatching_Calls. 8205 (Check_Controlling_Type): A formal of a tagged incomplete type is a 8206 controlling argument. 8207 8208 * exp_util.ads, exp_util.adb (Type_May_Have_Bit_Aligned_Components): Use 8209 First/Next_Component_Or_Discriminant 8210 (Insert_Actions): Add entries for new N_Push and N_Pop nodes 8211 (Find_Implemented_Interface): Removed. All the calls to this subprogram 8212 specify Any_Limited_Interface, and this functionality is already 8213 provided by the function Has_Abstract_Interfaces. 8214 (Find_Interface, Find_Interface_Tag, Find_Interface_ADT): Modified to 8215 support concurrent types implementing interfaces. 8216 (Find_Implemented_Interface): Removed. All the calls to this subprogram 8217 specify kind Any_Limited_Interface, and this functionality is already 8218 provided by the function Has_Abstract_Interfaces. 8219 (Remove_Side_Effects): replace Controlled_Type by 8220 CW_Or_Controlled_Type whenever the issue is related to 8221 using or not the secondary stack. 8222 8223 * par-ch12.adb (P_Formal_Type_Definition): Update calls to 8224 P_Interface_Type_Definition to fulfill the new interface (the formal 8225 Is_Synchronized is no longer required). 8226 8227 * Make-lang.in (GNAT_ADA_OBJS): Addition of exp_atag.o 8228 Update dependencies. 8229 8230 * exp_atag.ads, exp_atag.adb: New file 8231 82322007-04-06 Ed Schonberg <schonberg@adacore.com> 8233 Bob Duff <duff@adacore.com> 8234 Cyrille Comar <comar@adacore.com> 8235 8236 * exp_ch7.ads, exp_ch7.adb (Find_Final_List): If the access type is 8237 anonymous, use finalization list of enclosing dynamic scope. 8238 (Expand_N_Package_Declaration): For a library package declaration 8239 without a corresponding body, generate RACW subprogram bodies in the 8240 spec (just as we do for the task activation call). 8241 (Convert_View): Split Is_Abstract flag into Is_Abstract_Subprogram and 8242 Is_Abstract_Type. Make sure these are called only when appropriate. 8243 Remove all code for DSP option 8244 (CW_Or_Controlled_Type): new subprogram. 8245 82462007-04-06 Eric Botcazou <botcazou@adacore.com> 8247 Ed Schonberg <schonberg@adacore.com> 8248 Gary Dismukes <dismukes@adacore.com> 8249 8250 * exp_ch9.ads, exp_ch9.adb (Family_Offset): Add new 'Cap' boolean 8251 parameter. If it is set to true, return a result capped according to 8252 the global upper bound for the index of an entry family. 8253 (Family_Size): Add new 'Cap' boolean parameter. Pass it to Family_Offset 8254 (Build_Find_Body_Index): Adjust for above change. 8255 (Entry_Index_Expression): Likewise. 8256 (Is_Potentially_Large_Family): New function extracted from... 8257 (Collect_Entry_Families): ...here. Call it to detect whether the family 8258 is potentially large. 8259 (Build_Entry_Count_Expression): If the family is potentially large, call 8260 Family_Size with 'Cap' set to true. 8261 (Expand_N_Protected_Type_Declaration, Expand_N_Protected_Body): Generate 8262 a protected version of an operation declared in the private part of 8263 a protected object, because they may be invoked through a callback. 8264 (Set_Privals): If the type of a private component is an anonymous access 8265 type, do not create a new itype for each protected body. 8266 If the body of a protected operation creates 8267 controlled types (including allocators for class-widetypes), the 8268 body of the corresponding protected subprogram must include a 8269 finalization list. 8270 (Build_Activation_Chain_Entity): Build the chain entity for extended 8271 return statements. 8272 (Type_Conformant_Parameters): Use common predicate Conforming_Types 8273 to determine whether operation overrides an inherited primitive. 8274 (Build_Wrapper_Spec): Add code to examine the parents while looking 8275 for a possible overriding candidate. 8276 (Build_Simple_Entry_Call): Set No_Initialization on the object used to 8277 hold an actual parameter value since its initialization is separated 8278 from the the declaration. Prevents errors on null-excluding access 8279 formals. 8280 82812007-04-06 Thomas Quinot <quinot@adacore.com> 8282 Pablo Oliveira <oliveira@adacore.com> 8283 8284 * exp_dist.ads, exp_dist.adb (Build_To_Any_Call, Build_From_Any_Call): 8285 Do an Unchecked_Conversion to handle the passage from the Underlying 8286 Type to the Base Type when calling Build_To_Any_Call and 8287 Build_From_Any_Call. 8288 (Build_Actual_Object_Declaration): Set Object's Ekind to E_Variable or 8289 E_Constant, depending upon Variable formal. 8290 (GARLIC_Support.Build_Subprogram_Receiving_Stubs, 8291 PolyORB_Support.Build_Subprogram_Receiving_Stubs): For a formal 8292 parameter that requires an extra constrained parameter, declare 8293 temporary for actual as a variable, not a constant. 8294 (Add_RACW_Primitive_Declarations_And_Bodies): Generate bodies only when 8295 the unit being compiled is the one that contains the stub type. 8296 Change primitive operation name for the RACW associated with a RAS 8297 from Call to _Call so it cannot clash with any legal identifier. 8298 (PolyORB_Support.Add_RACW_Write_Attribute): Remove unused constant 8299 Is_RAS. 8300 (Append_RACW_Bodies): New subprogram. 8301 (Expand_Receiving_Stubs_Bodies): Pass a 'Stmts' list to 8302 Add_Receiving_Stubs_To_Declarations functions. 8303 When expanding a package body, this list correspond to the 8304 statements in the HSS at the end of the pacakge. 8305 When expanding a package spec, this list correspond to the 8306 spec declarations. 8307 (Add_Receiving_Stubs_To_Declarations): Append the function 8308 registering the receiving stubs at the end of the 'Stmts' list. 8309 (RCI_Package_Locator): Pass the new Version generic formal when 8310 instantiating a RCI_Locator package. 8311 (Build_From_Any_Function): To compute the High bound for an 8312 unconstrained array actual, we add the Low bound with the length. 8313 Thus we must convert the low bound and the length to an appropriate 8314 type before doing the sum. 8315 (Build_Subprogram_Receiving_Stubs, PolyORB): 8316 * Retrieve the extra formals parameters at the 8317 end of the parameter stream. 8318 * Use Move_Any_Value to write back out parameters 8319 after executing the request as it is more efficient 8320 than Copy_Any_Value. 8321 * Build the any containing Extra Formals with the 8322 appropriate typecode. 8323 (PolyORB_Support.Helpers.Append_Record_Traversal): Nothing to do for an 8324 empty Component_List. 8325 (Build_Actual_Object_Declaration): New subprogram. Build and insert into 8326 the tree the declaration for an object that serves as actual parameter 8327 in server-side stubs. 8328 (GARLIC_Support.Build_Subprogram_Receiving_Stubs, 8329 PolyORB_Support.Build_Subprogram_Receiving_Stubs): 8330 Use Build_Actual_Object_Declaration to prepare the actuals. 8331 (Add_Parameter_To_NVList): Set the parameter mode to In for 8332 Extra Constrained Parameters. 8333 (Build_General_Calling_Stubs): Set the parameter type to boolean for 8334 Extra Constrained parameters. 8335 (Build_To_Any_Function, Build_From_Any_Function, 8336 Built_TypeCode_Function): When Typ is implicit, call the correct 8337 function with the first not implicit parent type. 8338 (TC_Rec_Add_Process_Element, FA_Rec_Add_Process_Element, 8339 (FA_Ary_Add_Process_Element): When Datum is an Any, we cannot infer the 8340 typecode from the Etype. Therefore we retrieve the correct typecode 8341 with a call to Get_Any_Type. 8342 (Copy_Specification): Do controlling formal type substitution based on 8343 Is_Controlling_Formal flag, instead of caller-provided object type. 8344 (Build_Subprogram_Calling_Stubs): When retrieveing the original spec for 8345 a RACW primitive operation, we might get a subprogram declaration for an 8346 ancestor of the RACW designated type (not for the designated type 8347 itself), in the case where this operation is inherited. In this case we 8348 have no easy means of determining the original tagged type for which 8349 the primitive was declared, so instead we now rely on 8350 Copy_Specification to use the Is_Controlling_Formal flag to determine 8351 which formals require type substitution. 8352 83532007-04-06 Robert Dewar <dewar@adacore.com> 8354 Ed Schonberg <schonberg@adacore.com> 8355 8356 * exp_intr.adb (Expand_Exception_Call): Calls to subprograms in 8357 GNAT.Current_Exception are not allowed if pragma Restrictions 8358 (No_Exception_Propagation) is set and in any case make the associated 8359 handler unsuitable as a target for a local raise statement. 8360 (Expand_Dispatching_Constructor_Call): Replace generation of call to the 8361 run-time subprogram CW_Membership by call to Build_CW_Membership. 8362 (Expand_Dispatching_Constructor_Call): If the dispatching tag is given 8363 by a function call, a temporary must be created before expanding the 8364 Constructor_Call itself, to prevent out-of-order elaboration in the 8365 back-end when stack checking is enabled.. 8366 83672007-04-06 Ed Schonberg <schonberg@adacore.com> 8368 8369 * exp_pakd.adb (Expand_Packed_Boolean_Operator): The bounds of the 8370 result are the bounds of the left operand, not the right. 8371 83722007-04-06 Ed Schonberg <schonberg@adacore.com> 8373 8374 * exp_strm.adb 8375 (Build_Mutable_Record_Write_Procedure): For an Unchecked_Union type, use 8376 discriminant defaults. 8377 (Build_Record_Or_Elementary_Output_Procedure): Ditto. 8378 (Make_Component_List_Attributes): Ditto. 8379 83802007-04-06 Ed Schonberg <schonberg@adacore.com> 8381 Bob Duff <duff@adacore.com> 8382 8383 * sem_aggr.adb (Resolve_Record_Aggregate): In semantics-only mode treat 8384 an association with a box as providing a value even though the 8385 initialization procedure for the type is not available. 8386 (Resolve_Record_Aggregate): Check that a choice of an association with a 8387 box corresponds to a component of the type. 8388 (Resolve_Record_Aggregate): Split Is_Abstract flag into 8389 Is_Abstract_Subprogram and Is_Abstract_Type. 8390 8391 * exp_tss.adb (Base_Init_Proc): Use Is_Type instead of Type_Kind for 8392 assert. 8393 8394 * inline.adb (Add_Inlined_Body): Split Is_Abstract flag into 8395 Is_Abstract_Subprogram and Is_Abstract_Type. Make sure these are 8396 called only when appropriate. 8397 83982007-04-06 Olivier Hainque <hainque@adacore.com> 8399 8400 * g-alleve.ads (Low Level Vector type definitions): Map each to the 8401 associated vector view instead of all to the unsigned char view. 8402 8403 * g-altcon.adb (Generic_Conversions): New internal generic package, 8404 offering facilities for all the Vector/View conversion routines 8405 implemented by this unit. 8406 (To_View/To_Vector - all versions): Reimplemented in a systematic 8407 manner, using the internal Generic_Conversions facilities. 8408 84092007-04-06 Pascal Obry <obry@adacore.com> 8410 8411 * g-arrspl.adb (Free) [Element_Access]: New routine to free the source 8412 string. 8413 (Create): Free the source string before storing the new one. 8414 84152007-04-06 Vincent Celier <celier@adacore.com> 8416 8417 * g-debpoo.adb (Validity): New package with a complete new 8418 implementation of subprograms Is_Valid and Set_Valid. 8419 (Is_Valid): Move to local package Validity 8420 (Set_Valid): Move to local package Validity 8421 84222007-04-06 Arnaud Charlet <charlet@adacore.com> 8423 Pablo Oliveira <oliveira@adacore.com> 8424 8425 * g-expect.adb (Get_Command_Output): When expanding the output buffer 8426 we must ensure that there is enough place for the new data we are going 8427 to copy in. 8428 84292007-04-06 Thomas Quinot <quinot@adacore.com> 8430 8431 * g-md5.ads, g-md5.adb (Digest): Fix off-by-one error in padding 8432 computation. 8433 84342007-04-06 Jose Ruiz <ruiz@adacore.com> 8435 Vincent Celier <celier@adacore.com> 8436 8437 * gnatcmd.adb (B_Start): Add prefix of binder generated file. 8438 (Stack_String): Add this String that contains the name of the Stack 8439 package in the project file. 8440 (Packages_To_Check_By_Stack): Add this list that contains the packages 8441 to be checked by gnatstack, which are the naming and the stack packages. 8442 (Check_Files): If no .ci files were specified for gnatstack we add all 8443 the .ci files belonging to the projects, including binder generated 8444 files. 8445 (Non_VMS_Usage): Document that gnatstack accept project file switches. 8446 (GNATCmd): Update the B_Start variable if we are in a VMS environment. 8447 Add gnatstack to the list of commands that use project file related 8448 switches, and get the single attribute Switches from the stack package 8449 in a project file when calling gnatstack. Parse the -U flag for 8450 processing files belonging to all projects in the project tree. 8451 Remove all processing for command Setup 8452 8453 * prj-attr.adb: Add new package Stack with single attribute Switches 8454 8455 * vms_conv.ads (Command_Type): Add command Stack. 8456 Move to body declarations that are only used in the body: types Item_Id, 8457 Translation_Type, Item_Ptr, Item and its subtypes. 8458 8459 * vms_conv.adb: (Initialize): Add data for new command Stack. 8460 Add declarations moved from the spec: types Item_Id, Translation_Type, 8461 Item_Ptr, Item and its subtypes. 8462 (Cargs_Buffer): New table 8463 (Cargs): New Boolean global variable 8464 (Process_Buffer): New procedure to create arguments 8465 (Place): Put character in table Buffer or Cargs_Buffer depending on the 8466 value of Cargs. 8467 (Process_Argument): Set Cargs when processing qualifiers for GNAT 8468 COMPILE 8469 (VMS_Conversion): Call Process_Buffer for table Buffer and, if it is not 8470 empty, for table Cargs_Buffer. 8471 (Initialize): Remove component Setup in Command_List 8472 84732007-04-06 Vincent Celier <celier@adacore.com> 8474 8475 * gprep.adb (Process_Files.Process_One_File): Use full file name when 8476 issuing pragma Source_Reference. 8477 84782007-04-06 Emmanuel Briot <briot@adacore.com> 8479 8480 * g-regpat.adb (Parse_Posix_Character_Class): Fix handling of 8481 [[:xdigit:]] character class. 8482 Also raise an exception when an invalid character class is used. 8483 84842007-04-06 Pascal Obry <obry@adacore.com> 8485 8486 * i-cstrea.ads: (fopen): Add encoding parameter. 8487 (freopen): Idem. 8488 Change reference from a-sysdep.c to sysdep.c in comment. 8489 Update copyright notice. 8490 This set of patch add support for the encoding form parameter. 8491 8492 * mingw32.h (S2WSU): New macro to convert from a string to a 8493 wide-string using the UTF-8 encoding. The S2WS macro supports now only 8494 standard 8bits encoding. 8495 (WS2SU): As above but converting from wide-sring to string. 8496 This is needed as it is necessary to have access to both versions in the 8497 runtime for the form parameter encoding support. 8498 This set of patch add support for the encoding form parameter. 8499 (S2WS): Improve implementation to handle cases where the filename is not 8500 UTF-8 encoded. In this case we default to using the current code page 8501 for the conversion. 8502 8503 * s-crtl-vms64.ads, s-crtl.ads (Filename_Encoding): New enumeration 8504 type (UTF8, ASCII_8bits). This enumeration has a rep clause to match 8505 the constants defined in adaint.h. 8506 (fopen): Add encoding parameter. 8507 (freopen): Idem. 8508 8509 * s-ficobl.ads (AFCB): Add Encoding field to record the filename 8510 encoding. This is needed for the Reset routine (freopen low level-call). 8511 8512 * s-fileio.adb (Open): Decode encoding form parameter and set the 8513 corresponding encoding value into AFCB structure. 8514 (Reset): Pass the encoding value to freopen. 8515 (Close): Move the call to Lock_Task to the beginning of the procedure. 8516 85172007-04-06 Geert Bosch <bosch@adacore.com> 8518 Robert Dewar <dewar@adacore.com> 8519 8520 * i-fortra.ads: Add Double_Complex type. 8521 8522 * impunit.adb: (Is_Known_Unit): New function 8523 Add Gnat.Byte_Swapping 8524 Add GNAT.SHA1 8525 Add new Ada 2005 units 8526 Ada.Numerics.Generic_Complex_Arrays, Ada.Numerics.Generic_Real_Arrays, 8527 Ada.Numerics.Complex_Arrays, Ada.Numerics.Real_Arrays, 8528 Ada.Numerics.Long_Complex_Arrays, Ada.Numerics.Long_Long_Complex_Arrays, 8529 Ada.Numerics.Long_Long_Real_Arrays and Ada.Numerics.Long_Real_Arrays 8530 8531 * impunit.ads (Is_Known_Unit): New function 8532 8533 * a-ngcoar.adb, a-ngcoar.ads, a-ngrear.adb, 8534 a-ngrear.ads, a-nlcoar.ads, a-nllcar.ads, a-nllrar.ads, a-nlrear.ads, 8535 a-nucoar.ads, a-nurear.ads, g-bytswa.adb, g-bytswa-x86.adb, 8536 g-bytswa.ads, g-sha1.adb, g-sha1.ads, i-forbla.ads, i-forlap.ads, 8537 s-gearop.adb, s-gearop.ads, s-gecobl.adb, s-gecobl.ads, s-gecola.adb, 8538 s-gecola.ads, s-gerebl.adb, s-gerebl.ads, s-gerela.adb, s-gerela.ads: 8539 New files. 8540 8541 * Makefile.rtl: Add g-bytswa, g-sha1, a-fzteio and a-izteio 8542 8543 * a-fzteio.ads, a-izteio.ads: New Ada 2005 run-time units. 8544 85452007-04-06 Eric Botcazou <botcazou@adacore.com> 8546 Arnaud Charlet <charlet@adacore.com> 8547 8548 * init.c: Reuse PA/HP-UX code for IA-64/HP-UX, except 8549 __gnat_adjust_context_for_raise. 8550 (__gnat_init_float): on x86 vxworks 5.x and 6.x, we use the same 8551 implementation of floating point operations as native x86 targets. 8552 So the FPU should be initialized in the same way using finit. Fix 8553 floating point operations accuracy issues. 8554 (__gnat_install_handler, case FreeBSD): Use proper type for sa_sigaction 8555 member in struct sigaction, so as to avoid warning for incompatible 8556 pointer types. 8557 85582007-04-06 Serguei Rybin <rybin@adacore.com> 8559 8560 * lib.ads, lib.adb (Tree_Read): Release the memory occupied by the 8561 switches from previously loaded tree 8562 85632007-04-06 Thomas Quinot <quinot@adacore.com> 8564 8565 * lib-writ.adb (Write_With_Lines): Factor duplicated code between the 8566 cases where a given dependency has a body or not. 8567 (Write_With_File_Names): New subprogram, common code for the two cases 8568 above. 8569 85702007-04-06 Ed Schonberg <schonberg@adacore.com> 8571 Javier Miranda <miranda@adacore.com> 8572 8573 * lib-xref.ads, lib-xref.adb: 8574 Modify the loop that collects type references, to include interface 8575 types that the type implements. List each of these interfaces when 8576 building the entry for the type. 8577 (Generate_Definition): Initialize component Def and Typ of new entry 8578 in table Xrefs, to avoid to have these components unitialized. 8579 (Output_References): Split Is_Abstract flag into 8580 Is_Abstract_Subprogram and Is_Abstract_Type. 8581 (Generate_Reference): Add barrier to do not generate the warning 8582 associated with Ada 2005 entities with entities generated by the 8583 expander. 8584 85852007-04-06 Robert Dewar <dewar@adacore.com> 8586 Arnaud Charlet <charlet@adacore.com> 8587 Vincent Celier <celier@adacore.com> 8588 8589 * gnat_rm.texi, gnat_ugn.texi: Add -gnatyl documentation 8590 Update 'Exception Handling Control' chapter which was outdated. 8591 Minor fix to documentation of -gnatwq 8592 Remove section "Adapting the Run Time to a New C++ Compiler" because 8593 it is now obsolete. 8594 Add passage on need of -nostart-files in some non-ada-main cases. 8595 Document new switch -eS (/STANDARD_OUTPUT_FOR_COMMANDS) for gnatmake 8596 Update documentation about Interfacing with C++ 8597 Add documentation for new gnatmake switch -p 8598 Add missing protocol part in URLs. 8599 Document -gnatyA 8600 Document pragma Compile_Time_Error 8601 Add documentation for Object_Size indicating that stand alone 8602 objects can have a larger size in some cases. 8603 Add node for GNAT.Byte_Swapping, GNAT.SHA1 8604 Update reference to the Ravenscar profile. 8605 Document pragma Unreferenced_Objects 8606 8607 * gnat-style.texi: Fix typo 8608 86092007-04-06 Vincent Celier <celier@adacore.com> 8610 8611 * mlib.adb (Building_Library): Only output "building a library..." in 8612 verbose mode 8613 8614 * mlib-prj.adb (Build_Library): Only output lists of object and ALI 8615 files in verbose mode. 8616 8617 * mlib-utl.adb (Ar): Only output the first object files when not in 8618 verbose mode. 8619 (Gcc): Do not display all the object files if not in verbose mode, only 8620 the first one. 8621 86222007-04-06 Robert Dewar <dewar@adacore.com> 8623 8624 * namet.ads, namet.adb (wn): Improve this debugging routine. Calling 8625 it no longer destroys the contents of Name_Buffer or Name_Len and 8626 non-standard and invalid names are handled better. 8627 (Get_Decoded_Name_String): Improve performance by using 8628 Name_Has_No_Encodings flag in the name table. 8629 (Is_Valid_Name): New function to determine whether a Name_Id is valid. 8630 Used for debugging printouts. 8631 86322007-04-06 Robert Dewar <dewar@adacore.com> 8633 Javier Miranda <miranda@adacore.com> 8634 Bob Duff <duff@adacore.com> 8635 8636 * par-ch3.adb: (P_Type_Declaration): Set Type_Token_Location 8637 (P_Interface_Type_Definition): Remove the formal Is_Synchronized because 8638 there is no need to generate always a record_definition_node in case 8639 of synchronized interface types. 8640 (P_Type_Declaration): Update calls to P_Interface_Type_Definition. 8641 (P_Null_Exclusion): For AI-447: Remove warnings about "not null" being 8642 illegal in Ada 95, in cases where it is legal. Change the warnings to 8643 errors in other cases. Don't give the error unless the "not null" 8644 parses properly. Correct the source position at which the error occurs. 8645 (P_Known_Discriminant_Part_Opt): Pass Allow_Anonymous_In_95 => True to 8646 P_Null_Exclusion, to suppress "not null" warnings. 8647 (P_Identifier_Declarations): Code cleanup. Removed unrequired label and 8648 associated goto statements. 8649 8650 * par-endh.adb (Pop_End_Context): Allow more flexibility in placement 8651 of END RECORD 8652 8653 * scans.ads (Type_Token_Location): New flag 8654 8655 * par-ch6.adb (P_Mode): Check specifically for case of IN ACCESS 8656 (P_Formal_Part): Pass Allow_Anonymous_In_95 => True to 8657 P_Null_Exclusion, to suppress "not null" warnings. 8658 86592007-04-06 Robert Dewar <dewar@adacore.com> 8660 Javier Miranda <miranda@adacore.com> 8661 Bob Duff <duff@adacore.com> 8662 Vincent Celier <celier@adacore.com> 8663 8664 * par-prag.adb (Prag): Add dummy entry for pragma Compile_Time_Error 8665 (Extensions_Allowed): No longer sets Ada_Version 8666 Entry for pragma Unreferenced_Objects 8667 8668 * sem_prag.adb (Analyze_Pragma, case Priority): Force with of 8669 system.tasking if pragma priority used in a procedure 8670 (Analyze_Pragma, case Warning): Handle dot warning switches 8671 (Process_Compile_Time_Warning_Or_Error): New procedure 8672 (Analyze_Pragma): Add processing for Compile_Time_Error 8673 Add support for extra arguments External_Name and Link_Name. 8674 Remove code associated with pragmas CPP_Virtual and CPP_Vtable. 8675 (Process_Import_Or_Interface): Add support for the use of pragma Import 8676 with tagged types. 8677 (Extensions_Allowed): No longer affects Ada_Version 8678 (Analyze_Pragma): Split Is_Abstract flag into Is_Abstract_Subprogram and 8679 Is_Abstract_Type. Make sure these are called only when appropriate. 8680 Add processing for pragma Unreferenced_Objects 8681 8682 * snames.h, snames.ads, snames.adb: Add entry for pragma 8683 Compile_Time_Error 8684 Add new standard name Minimum_Binder_Options for new gprmake 8685 Add new standard names for gprmake: Archive_Suffix, 8686 Library_Auto_Init_Supported, Library_Major_Minor_Id_Supported, 8687 Library_Support, Library_Version_Options, 8688 Shared_Library_Minimum_Options, 8689 Shared_Library_Prefix, Shared_Library_Suffix, Symbolic_Link_Supported. 8690 Change Name_Call to Name_uCall so that it cannot clash with a legal 8691 subprogram name. 8692 Add new standard names Mapping_Spec_Suffix and Mapping_Body_Suffix 8693 Append C_Plus_Plus to convention identifiers as synonym for CPP 8694 Add new standard names Stack and Builder_Switches 8695 Add new standard names: Compiler_Minimum_Options, Global_Config_File, 8696 Library_Builder, Local_Config_File, Objects_Path, Objects_Path_File, 8697 Run_Path_Option, Toolchain_Version. 8698 Entry for pragma Unreferenced_Objects 8699 8700 * switch-c.adb (Scan_Front_End_Switches): Store correct -gnateD 8701 switches, without repetition of "eD". Make sure that last character of 8702 -gnatep= switch is not taken as -gnat switch character. 8703 Complete rewrite of circuit for handling saving compilation options 8704 Occasioned by need to support dot switchs for -gnatw, but cleans up 8705 things in general. 8706 -gnatX does not affect Ada_Version 8707 Include -gnatyA in -gnatg style switches 8708 8709 * sem_warn.ads, sem_warn.adb (Output_Unreferenced_Messages): Exclude 8710 warnings on return objects. 8711 (Warn_On_Useless_Assignment): Exclude warnings on return objects 8712 (Set_Dot_Warning_Switch): New procedure 8713 (Check_References): Add missing case of test for 8714 Has_Pragma_Unreferenced_Objects 8715 (Output_Unreferenced_Messages): Implement effect of new pragma 8716 Unreferenced_Objects, remove special casing of limited controlled 8717 variables. 8718 87192007-04-06 Vincent Celier <celier@adacore.com> 8720 8721 * prj-ext.adb (Initialize_Project_Path): New procedure that initialize 8722 the default project path, initially done during elaboration of the 8723 package. 8724 If the prefix returned by Sdefault is null, get the prefix from a call 8725 to Executable_Prefix_Path. 8726 (Project_Path): Call Initialize_Project_Path if Current_Project_Path is 8727 null. 8728 8729 * prj-nmsc.adb (Get_Path_Names_And_Record_Sources): Use the non 8730 canonical directory name to open the directory from which files are 8731 retrieved. 8732 (Record_Other_Sources): Idem. 8733 (Locate_Directory): Add the possibility to create automatically missing 8734 directories when Setup_Projects is True. 8735 Call Locate_Directory so that the directory will be created when 8736 Setup_Projects is True, for object dir, library dir, library ALI dir, 8737 library source copy dir and exec dir. 8738 8739 * prj-pp.adb (Max_Line_Length): Set to 255 for compatibility with older 8740 versions of GNAT. 8741 87422007-04-06 Robert Dewar <dewar@adacore.com> 8743 8744 * sem_ch13.ads, sem_ch13.adb (Adjust_Record_For_Reverse_Bit_Order): 8745 Use First/Next_Component_Or_Discriminant 8746 (Analyze_Record_Representation_Clause): 8747 Use First/Next_Component_Or_Discriminant 8748 (Check_Component_Overlap): Use First/Next_Component_Or_Discriminant 8749 (Analyze_Attribute_Definition_Clause, case Value_Size): Reject 8750 definition if type is unconstrained. 8751 (Adjust_Record_For_Reverse_Bit_Order): New procedure 8752 (Analyze_Attribute_Definition_Clause): Split Is_Abstract flag into 8753 Is_Abstract_Subprogram and Is_Abstract_Type. 8754 (Adjust_Record_For_Reverse_Bit_Order): New procedure 8755 8756 * repinfo.adb (List_Record_Info): Use First/ 8757 Next_Component_Or_Discriminant. 8758 8759 * style.ads, styleg-c.adb, styleg-c.ads (Check_Array_Attribute_Index): 8760 New procedure. 8761 8762 * stylesw.ads, stylesw.adb: Recognize new -gnatyA style switch 8763 Include -gnatyA in default switches 8764 8765 * opt.ads: (Warn_On_Non_Local_Exception): New flag 8766 (Warn_On_Reverse_Bit_Order): New flag 8767 (Extensions_Allowed): Update the documentation. 8768 (Warn_On_Questionable_Missing_Parens): Now on by default 8769 8770 * usage.adb: Add documentation of -gnatw.x/X switches 8771 Document new -gnatyA style switch 8772 -gnatq warnings are on by default 8773 87742007-04-06 Ed Falis <falis@adacore.com> 8775 8776 * s-carun8.adb, s-carsi8.adb (Compare_Array_?8): modify so that last 8777 full word is no longer compared twice. 8778 87792007-04-06 Ed Schonberg <schonberg@adacore.com> 8780 8781 * sem_ch10.adb (Install_Limited_Context_Clauses. 8782 Expand_Limited_With_Clause): Use a new copy of selector name in the 8783 call to Make_With_Clause. This fixes the tree structure for ASIS 8784 purposes. Nothing is changed in the compiler behaviour. 8785 (Process_Body_Clauses): Handle properly use clauses whose prefix is 8786 a package renaming. 8787 (Install_Limited_With_Clauses): Do not install non-limited view when it 8788 is still incomplete. 8789 87902007-04-06 Ed Schonberg <schonberg@adacore.com> 8791 Gary Dismukes <dismukes@adacore.com> 8792 8793 * sem_ch12.adb (Check_Generic_Actuals): Use first subtype of actual 8794 when capturing size information, instead of base type, which for a 8795 formal array type will be the unconstrained type. 8796 (Analyze_Formal_Object_Declaration): Add check for illegal default 8797 expressions for a formal in object of a limited type. 8798 (Instantiate_Object): Ditto. 8799 (Check_Formal_Package_Instance): Skip entities that are formal objects, 8800 because they were defaulted in the formal package and no check applies 8801 to them. 8802 (Check_Formal_Package_Instance): Extend conformance check to other 8803 discrete types beyond Integer. 8804 (Process_Default): Copy directly the unmatched formal. A generic copy 8805 has already been performed in Analyze_Formal_Package. 8806 (Analyze_Associations): If a formal subprogram has no match, check for 8807 partial parametrization before looking for a default, to prevent 8808 spurious errors. 8809 (Analyze_Package_Instantiation, Analyze_Subprogram_Instantiation): Do 8810 not set the instantiation environment before analyzing the actuals. 8811 Fixes regression on 8515-003 with implementation of AI-133. 8812 Set_Instance_Env checks whether the generic unit is a predefined 8813 unit, in which case the instance must be analyzed with the latest Ada 8814 mode. This setting must take place after analysis of the actuals, 8815 because the actuals must be analyzed and frozen in the Ada mode extant 8816 outside of the current instantiation. 8817 (Save_Env, Restore_Env): Preserve and restore the configuration 8818 parameters so that predefined units can be compiled in the proper Ada 8819 mode. 8820 (Analyze_Formal_Object_Declaration,Analyze_Formal_Subprogram, 8821 Instantiate_Type): Split Is_Abstract flag into Is_Abstract_Subprogram 8822 and Is_Abstract_Type. 8823 (Analyze_Formal_Package): For better error recovery, Add exception 8824 handler to catch Instantion_Error, which can be raised in 8825 Analyze_Associations 8826 88272007-04-06 Ed Schonberg <schonberg@adacore.com> 8828 Bob Duff <duff@adacore.com> 8829 Gary Dismukes <dismukes@adacore.com> 8830 8831 * sem_ch4.adb (Try_Primitive_Operation): The call is legal if the 8832 prefix type is a discriminated subtype of the type of the formal. 8833 (Analyze_Allocator): Collect all coextensions regardless of the context. 8834 Whether they can be allocated statically is determined in exp_ch4. 8835 (Analyze_Selected_Component): If the prefix is a limited view and the 8836 non-limited view is available, use the non-limited one. 8837 (Operator_Check): For "X'Access = Y'Access" (which is ambiguous, and 8838 therefore illegal), suggest a qualified expression rather than a type 8839 conversion, because a type conversion would be illegal in this context. 8840 (Anayze_Allocator): Trace recursively all nested allocators so that all 8841 coextensions are on the corresponding list for the root. Do no mark 8842 coextensions if the root allocator is within a declaration for a stack- 8843 allocated object, because the access discriminants will be allocated on 8844 the stack as well. 8845 (Analyze_Call): Remove restriction on calls to limited functions for the 8846 cases of generic actuals for formal objects, defaults for formal objects 8847 and defaults for record components. 8848 (Analyze_Allocator): Before analysis, chain coextensions on the proper 8849 element list. Their expansion is delayed until the enclosing allocator 8850 is processed and its finalization list constructed. 8851 (Try_Primitive_Operation): If the prefix is a concurrent type, looks 8852 for an operation with the given name among the primitive operations of 8853 the corresponding record type. 8854 (Analyze_Selected_Component): If the prefix is a task type that 8855 implements an interface, and there is no entry with the given name, 8856 check whether there is another primitive operation (e.g. a function) 8857 with that name. 8858 (Try_Object_Operation, Analyze_One_Call, Try_Indexed_Call): Handle 8859 properly the indexing of a function call written in prefix form, where 8860 the function returns an array type, and all parameters of the function 8861 except the first have defaults. 8862 (Analyze_Equality_Op): If this is a call to an implicit inequality, keep 8863 the original operands, rather than relocating them, for efficiency and 8864 to work properly when an operand is overloaded. 8865 (Analyze_Allocator,Operator_Check,Remove_Abstract_Operations): Split 8866 Is_Abstract flag into Is_Abstract_Subprogram and Is_Abstract_Type. 8867 (Analyze_Selected_Component): If the prefix is a private extension, only 8868 scan the visible components, not those of the full view. 8869 (Try_Primitive_Operation): If the operation is a procedure, collect all 8870 possible interpretations, as for a function, because in the presence of 8871 classwide parameters several primitive operations of the type can match 8872 the given arguments. 8873 88742007-04-06 Ed Schonberg <schonberg@adacore.com> 8875 Robert Dewar <dewar@adacore.com> 8876 8877 * sem_ch5.adb (Analyze_Assignment): Reject a right-hand side that is a 8878 tag-indeterminate call to an abstract function, when the left-hand side 8879 is not classwide. 8880 (Analyze_Loop_Statement): Improve detection of infinite loops 8881 88822007-04-06 Ed Schonberg <schonberg@adacore.com> 8883 Thomas Quinot <quinot@adacore.com> 8884 8885 * sem_ch7.ads, sem_ch7.adb (Inspect_Deferred_Constant_Completion): Move 8886 out of Analyze_Package_Declaration, because processing must be applied 8887 to package bodies as well, for deferred constants completed by pragmas. 8888 (Analyze_Package_Declaration): When the package declaration being 8889 analyzed does not require an explicit body, call Check_Completion. 8890 (May_Need_Implicit_Body): An implicit body is required when a package 8891 spec contains the declaration of a remote access-to-classwide type. 8892 (Analyze_Package_Body): If the package contains RACWs, append the 8893 pending subprogram bodies generated by exp_dist at the end of the body. 8894 (New_Private_Type,Unit_Requires_Body): Split Is_Abstract flag into 8895 Is_Abstract_Subprogram and Is_Abstract_Type. 8896 (Preserve_Full_Attributes): The full entity list is not an attribute 8897 that must be preserved from full to partial view. 8898 8899 * sem_dist.adb (Add_RAS_Dereference_TSS): 8900 Change primitive name to _Call so it cannot clash with any legal 8901 identifier, and be special-cased in Check_Completion. 8902 Mark the full view of the designated type for the RACW associated with 8903 a RAS as Comes_From_Source to get proper view switching when installing 8904 private declarations. 8905 Provite a placeholder nested package body along with the nested spec 8906 to have a place for Append_RACW_Bodies to generate the calling stubs 8907 and stream attributes. 8908 89092007-04-06 Ed Schonberg <schonberg@adacore.com> 8910 Robert Dewar <dewar@adacore.com> 8911 8912 * sem_ch8.adb (Has_Components): If the argument is an incomplete type 8913 that is a limited view, check the non-limited view if available. 8914 (Undefined): Refine error message for missing with of Text_IO 8915 (Find_Expanded_Name): Use Is_Known_Unit for more accurate error message 8916 to distinguish real missing with cases. 8917 Fix format of all missing with messages 8918 (Analyze_Subprogram_Renaming): Emit proper error message on illegal 8919 renaming as body when renamed entity is abstract. 8920 89212007-04-06 Ed Schonberg <schonberg@adacore.com> 8922 Javier Miranda <miranda@adacore.com> 8923 8924 * sem_type.ads, sem_type.adb (Has_Abstract_Interpretation): Make 8925 predicate recursive, to handle complex expressions on literals whose 8926 spurious ambiguity comes from the abstract interpretation of some 8927 subexpression. 8928 (Interface_Present_In_Ancestor): Add support to concurrent record 8929 types. 8930 (Add_One_Interp,Disambiguate): Split Is_Abstract flag into 8931 Is_Abstract_Subprogram and Is_Abstract_Type. 8932 89332007-04-06 Ed Schonberg <schonberg@adacore.com> 8934 Javier Miranda <miranda@adacore.com> 8935 8936 * sem_util.ads, sem_util.adb (Object_Access_Level): If the object is a 8937 dereference of a local object R created as a reference to another 8938 object O, use the access level of O. 8939 (Matches_Prefixed_View_Profile): Use common predicate Conforming_Types, 8940 rather than local Same_Formal_Type, to check whether protected operation 8941 overrides an inherited one. 8942 (Same_Formal_Type): New predicate, used when matching signatures of 8943 overriding synchronized operations, to handle the case when a formal 8944 has a type that is a generic actual. 8945 (Is_Aliased_View): Replace check on E_Task_Type and E_Protected_Type by 8946 predicate Is_Concurrent_Type. This ensures supportin case of subtypes. 8947 (Needs_One_Actual): New predicate, for Ada 2005 use, to resolve 8948 syntactic ambiguities involving indexing of function calls that return 8949 arrays. 8950 (Abstract_Interface_List): New subprogram that returns the list of 8951 abstract interfaces associated with a concurrent type or a 8952 concurrent record type. 8953 (Interface_Present_In_Parent): New subprogram used to check if a 8954 given type or some of its parents implement a given interface. 8955 (Collect_Abstract_Interfaces): Add support for concurrent types 8956 with interface types. 8957 (Has_Abstract_Interfaces): Add support for concurrent types with 8958 interface types. 8959 (Is_Parent): New subprogram that determines whether E1 is a parent 8960 of E2. For a concurrent type its parent is the first element of its 8961 list of interface types; for other types this function provides the 8962 same result than Is_Ancestor. 8963 (Enclosing_Subprogram): Add test for N_Extended_Return_Statement. 8964 (Collect_Synchronized_Interfaces): Removed because the subprogram 8965 Collect_Abstract_Interfaces provides this functionality. 8966 (Collect_Abstract_Interfaces): Minor update to give support to 8967 concurrent types and thus avoid undesired code duplication. 8968 (Get_Subprogram_Entity): Handle entry calls. 8969 (May_Be_Lvalue): Include actuals that appear as in-out parameters in 8970 entry calls. 8971 (Enter_Name): Do not give -gnatwh hiding warning for record component 8972 entities, they never result in hiding. 8973 89742007-04-06 Ed Schonberg <schonberg@adacore.com> 8975 Robert Dewar <dewar@adacore.com> 8976 8977 * sinfo.ads, sinfo.adb (Coextensions): New element list for allocators, 8978 to chain nested components that are allocators for access discriminants 8979 of the enclosing object. 8980 Add N_Push and N_Pop nodes 8981 New field Exception_Label added 8982 (Local_Raise_Statements): New field in N_Exception_Handler_Node 8983 (Local_Raise_Not_OK): New flag in N_Exception_Handler_Node 8984 (Is_Coextension): New flag for allocators, to mark allocators that 8985 correspond to access discriminants of dynamically allocated objects. 8986 (N_Block_Statement): Document the fact that the corresponding entity 8987 can be an E_Return_Statement. 8988 (Is_Coextension): New flag for allocators. 8989 Remove all code for DSP option 8990 8991 * sprint.ads, sprint.adb: Display basic information for class_wide 8992 subtypes. Add handling of N_Push and N_Pop nodes 8993 89942007-04-06 Arnaud Charlet <charlet@adacore.com> 8995 8996 * s-tpobop.adb (Exceptional_Complete_Entry_Body): Undefer abortion 8997 before propagating exception. 8998 89992007-04-06 Olivier Hainque <hainque@adacore.com> 9000 9001 * tracebak.c (PC_ADJUST - ia64): -4 instead of -16, expected to yield 9002 an address always within the call instruction from a return address. 9003 90042007-04-06 Olivier Hainque <hainque@adacore.com> 9005 Eric Botcazou <botcazou@adacore.com> 9006 9007 * trans.c (call_to_gnu) <TYPE_RETURNS_BY_TARGET_PTR_P>: Return an 9008 expression with a COMPOUND_EXPR including the call instead of emitting 9009 the call directly here. 9010 (gnat_to_gnu) <N_Slice>: Do not return a non-constant low bound if the 9011 high bound is constant and the slice is empty. Tidy. 9012 (tree_transform, case N_Op_Not): Handle properly the case where the 9013 operation applies to a private type whose full view is a modular type. 9014 (Case_Statement_To_gnu): If an alternative is an E_Constant with an 9015 Address_Clause, use the associated Expression as the GNAT tree 9016 representing the choice value to ensure the corresponding GCC tree is 9017 of the proper kind. 9018 (maybe_stabilize_reference): Stabilize COMPOUND_EXPRs as a whole 9019 instead of just the operands, as the base GCC stabilize_reference does. 9020 <CALL_EXPR>: New case. Directly stabilize the call if an lvalue is not 9021 requested; otherwise fail. 9022 (addressable_p) <COMPONENT_REF>: Do not test DECL_NONADDRESSABLE_P. 9023 90242007-04-06 Thomas Quinot <quinot@adacore.com> 9025 9026 * uintp.ads, uintp.adb (UI_Div_Rem): New subprogram, extending previous 9027 implementation of UI_Div. 9028 (UI_Div): Reimplement as a call to UI_Div_Rem. 9029 (UI_Rem): Take advantage of the fact that UI_Div_Rem provides the 9030 remainder, avoiding the cost of a multiplication and a subtraction. 9031 (UI_Modular_Inverse): Take advantage of the fact that UI_Div_Rem 9032 provides both quotient and remainder in a single computation. 9033 (UI_Modular_Exponentiation, UI_Modular_Inverse): New modular arithmetic 9034 functions for uint. 9035 (UI_Modular_Inverse): Add a note that the behaviour of this subprogram 9036 is undefined if the given n is not inversible. 9037 90382007-04-06 Olivier Hainque <hainque@adacore.com> 9039 9040 * utils2.c (known_alignment): Handle COMPOUND_EXPR, COND_EXPR and 9041 BIT_AND_EXPR. Handle also VIEW_CONVERT_EXPR, as the other conversion 9042 opcodes. 9043 90442007-04-06 Eric Botcazou <botcazou@adacore.com> 9045 Olivier Hainque <hainque@adacore.com> 9046 9047 * utils.c (update_pointer_to): Make a copy of the couple of FIELD_DECLs 9048 when updating the contents of the old pointer to an unconstrained array. 9049 (end_subprog_body): Set error_gnat_node to Empty. 9050 (write_record_type_debug_info): Do not be unduly sparing with our bytes. 9051 (unchecked_convert): For subtype to base type conversions, require that 9052 the source be a subtype if it is an integer type. 9053 (builtin_decls): New global, vector of available builtin functions. 9054 (gnat_pushdecl): Add global builtin function declaration nodes to the 9055 builtin_decls list. 9056 (gnat_install_builtins): Adjust comments. 9057 (builtin_function): Set DECL_BUILTIN_CLASS and DECL_FUNCTION_CODE before 9058 calling gnat_pushdecl, so that it knows when it handed a builtin 9059 function declaration node. 9060 (builtin_decl_for): Search the builtin_decls list. 9061 90622007-04-06 Eric Botcazou <botcazou@adacore.com> 9063 9064 * s-stchop-vxworks.adb: 9065 (Stack_Check): Raise Storage_Error if the argument has wrapped around. 9066 90672007-04-06 Robert Dewar <dewar@adacore.com> 9068 Arnaud Charlet <charlet@adacore.com> 9069 9070 * a-diroro.ads: Inserted the pragma Unimplemented_Unit 9071 9072 * bindgen.adb (Gen_Output_File_Ada): Generate pragma Ada_95 at start 9073 of files 9074 Add mention of -Sev (set initialize_scalars option from environment 9075 variable at run time) in gnatbind usage message. 9076 9077 * elists.ads, elists.adb: (Append_Unique_Elmt): New procedure 9078 9079 * fname-uf.ads: Minor comment fix 9080 9081 * osint.ads: Change pragma Elaborate to Elaborate_All 9082 9083 * par-load.adb: Add documentation. 9084 9085 * sem_cat.ads, sem_cat.adb: Minor code reorganization 9086 9087 * s-parint.ads (RCI_Locator) : Add 'Version' generic formal 9088 9089 * s-secsta.ads: Extra comments 9090 9091 * s-soflin.ads: Minor comment fixes 9092 9093 * s-stratt.ads (Block_Stream_Ops_OK): Removed. 9094 9095 * s-wchcon.ads: Minor comment addition 9096 9097 * treepr.adb: Minor change in message 9098 (Print_Name,Print_Node): Make these debug printouts more robust: print 9099 "no such..." instead of crashing on bad input. 9100 91012007-03-30 Rafael Ávila de Espíndola <espindola@google.com> 9102 9103 * trans.c (Attribute_to_gnu): Use get_signed_or_unsigned_type 9104 instead of gnat_signed_or_unsigned_type. 9105 * utils.c (gnat_signed_or_unsigned_type): Remove. 9106 * misc.c (LANG_HOOKS_SIGNED_OR_UNSIGNED_TYPE): Remove 9107 * gigi.h (gnat_signed_or_unsigned_type): Remove 9108 91092007-03-09 Roger Sayle <roger@eyesopen.com> 9110 9111 * cuintp.c (UI_To_gnu): Use fold_buildN calls instead of calling 9112 fold with the result of buildN. 9113 * decl.c (gnat_to_gnu_entity): Likewise. 9114 * trans.c (Attribute_to_gnu, gnat_to_gnu, emit_check): Likewise. 9115 * utils.c (finish_record_type, merge_sizes, max_size, convert): 9116 Likewise. 9117 * utils2.c (gnat_truthvalue_conversion, compare_arrays, 9118 nonbinary_modular_operation, build_binary_op, build_unary_op, 9119 build_cond_expr): Likewise. 9120 9121 * utils.c (convert): Use fold_build1 when casting values to void. 9122 * utils2.c (gnat_truthvalue_conversion): Use build_int_cst and 9123 fold_convert instead of convert when appropriate. 9124 91252007-03-01 Brooks Moses <brooks.moses@codesourcery.com> 9126 9127 * Make-lang.in: Add install-pdf target as copied from 9128 automake v1.10 rules. 9129 91302007-02-28 Andreas Schwab <schwab@suse.de> 9131 9132 * Make-lang.in (doc/gnat_ugn_unw.texi): Depend on 9133 $(gcc_docdir)/include/gcc-common.texi and gcc-vers.texi. 9134 (doc/gnat-style.info): Likewise. 9135 91362007-02-26 Brooks Moses <brooks.moses@codesourcery.com> 9137 9138 * gnat-style.texi: Standardize title page. 9139 * gnat_rm.texi: Likewise. 9140 * gnat_ugn.texi: Likewise. 9141 91422007-02-25 Mark Mitchell <mark@codesourcery.com> 9143 9144 * decl.c (annotate_value): Adjust for refactoring of tree_map 9145 hierarchy. 9146 91472007-02-24 Mark Mitchell <mark@codesourcery.com> 9148 9149 * decl.c (annotate_value): Adjust for refactoring of tree_map 9150 hierarchy. 9151 91522007-02-21 Ed Schonberg <schonberg@adacore.com> 9153 9154 PR ada/18819 9155 * sem_ch3.adb (Create_Constrained_Components): for a subtype of an 9156 untagged derived type, add hidden components to keep discriminant 9157 layout consistent, when a given discriminant of the derived type 9158 constraints several discriminants of the parent type. 9159 91602007-02-16 Eric Botcazou <ebotcazou@adacore.com> 9161 Sandra Loosemore <sandra@codesourcery.com> 9162 9163 * trans.c (call_to_gnu): Use build_call_list instead of build3 to 9164 build the call expression. 9165 (gnat_stabilize_reference_1): Handle tcc_vl_exp. 9166 * utils.c (max_size) <tcc_exceptional>: Delete. 9167 <tcc_vl_exp>: New case. 9168 <tcc_expression>: Delete CALL_EXPR subcase. 9169 (build_global_cdtor): Use build_call_nary instead of build3. 9170 * utils2.c (build_call_1_expr): Likewise. 9171 (build_call_2_expr): Likewise. 9172 (build_call_0_expr): Likewise. 9173 (build_call_alloc_dealloc): Likewise. 9174 91752007-02-07 Andreas Krebbel <krebbel1@de.ibm.com> 9176 9177 * raise-gcc.c (get_region_description_for, get_call_site_action_for, 9178 get_action_description_for): Replace _Unwind_Word with _uleb128_t 9179 and _Unwind_SWord with _sleb128_t. 9180 91812007-02-06 Paolo Bonzini <bonzini@gnu.org> 9182 9183 * Make-lang.in (ada/decl.o): Add gt-ada-decl.h dependency. 9184 * decl.c: Include gt-ada-decl.h. 9185 (annotate_value_cache): New. 9186 (annotate_value): Use it instead of TREE_COMPLEXITY. 9187 91882007-02-03 Kazu Hirata <kazu@codesourcery.com> 9189 9190 * misc.c, utils2.c: Fix comment typos. 9191 91922007-01-24 Roger Sayle <roger@eyesopen.com> 9193 9194 * decl.c (gnat_to_gnu_entity): Use TREE_OVERFLOW instead of 9195 TREE_CONSTANT_OVERFLOW. 9196 (allocatable_size_p, annotate_value): Likewise. 9197 * trans.c (gnat_to_gnu): Likewise. 9198 * utils.c (unchecked_convert): Likewise. 9199 * utils2.c (build_simple_component_ref): Likewise. 9200 92012007-01-23 Richard Guenther <rguenther@suse.de> 9202 9203 PR bootstrap/30541 9204 * Make-lang.in: Replace invocations of gnatmake with $(GNATMAKE). 9205 (gnatboot2): Pass staged GNATMAKE instead of STAGE_PREFIX. 9206 (gnatboot3): Likewise. 9207 (GNATBIND): Do not define. 9208 * Makefile.in (GNATBIND): Do not define. 9209 92102007-01-08 Richard Guenther <rguenther@suse.de> 9211 9212 * cuintp.c (build_cst_from_int): Use built_int_cst_type. 9213 * trans.c (gnat_to_gnu): Likewise. 9214 9215 9216 9217Copyright (C) 2007 Free Software Foundation, Inc. 9218 9219Copying and distribution of this file, with or without modification, 9220are permitted in any medium without royalty provided the copyright 9221notice and this notice are preserved. 9222