12006-12-07 Geoffrey Keating <geoffk@apple.com> 2 3 * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE. 4 * adaint.c: Likewise. 5 62006-12-05 Aldy Hernandez <aldyh@redhat.com> 7 8 Merge from gimple-tuples-branch: 9 2006-11-02 Aldy Hernandez <aldyh@redhat.com> 10 11 * ada-tree.h (lang_tree_node): Handle gimple tuples. 12 * trans.c (gnat_gimplify_expr): Replace MODIFY_EXPR with 13 GIMPLE_MODIFY_STMT. 14 152006-12-02 Kazu Hirata <kazu@codesourcery.com> 16 17 * Makefile.in, mingw32.h, trans.c: Fix comment typos. 18 * gnat_rm.texi, gnat_ugn.texi: Follow spelling conventions. 19 Fix typos. 20 212006-11-17 Eric Botcazou <ebotcazou@adacore.com> 22 23 PR ada/27936 24 * trans.c (add_decl_expr): Do not dynamically elaborate padded objects 25 if the initializer takes into account the padding. 26 272006-11-11 Richard Guenther <rguenther@suse.de> 28 29 * trans.c (maybe_stabilize_reference): Remove handling of 30 FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR. 31 322006-11-05 Arnaud Charlet <charlet@adacore.com> 33 34 PR ada/29707 35 * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads 36 (To_Target_Priority): New function. 37 382006-10-31 Robert Dewar <dewar@adacore.com> 39 40 * a-taster.adb, s-traent-vms.adb, a-elchha.ads, a-elchha.adb, 41 a-exctra.adb, ali-util.adb, exp_disp.ads, s-stalib.ads, s-traent.adb, 42 s-addope.ads, s-addope.adb, a-rbtgso.adb, a-crbltr.ads, a-coprnu.adb, 43 a-cgcaso.adb, a-cgarso.adb, a-cgaaso.adb, a-coormu.adb, a-ciormu.adb, 44 a-rbtgso.ads, a-stunha.adb, a-stunha.adb, a-ciorma.adb, a-coorma.adb, 45 a-secain.adb, a-slcain.adb, a-shcain.adb, a-stwiha.adb, a-stwiha.adb, 46 a-strhas.adb, a-strhas.adb, a-stzhas.adb, a-stzhas.adb, a-szuzha.adb, 47 a-chacon.adb, a-chacon.adb, a-chacon.ads, a-stboha.adb, a-swbwha.adb, 48 a-szbzha.adb: Minor reformatting. Fix header. 49 50 * a-numaux-x86.adb: Add parentheses for use of unary minus 51 * a-ngcefu.adb: Supply missing parentheses for unary minus 52 * a-ngcoty.adb: Add parens for use of unary minus 53 * a-ngelfu.adb: Add missing parens for unary minus 54 * a-tifiio.adb: Add parentheses for uses of unary minus 55 562006-10-31 Robert Dewar <dewar@adacore.com> 57 Bob Duff <duff@adacore.com> 58 Ed Schonberg <schonberg@adacore.com> 59 60 * sem_res.adb (Resolve_Unary_Op): Add warning for use of unary minus 61 with multiplying operator. 62 (Expected_Type_Is_Any_Real): New function to determine from the Parent 63 pointer whether the context expects "any real type". 64 (Resolve_Arithmetic_Op): Do not give an error on calls to the 65 universal_fixed "*" and "/" operators when they are used in a context 66 that expects any real type. Also set the type of the node to 67 Universal_Real in this case, because downstream processing requires it 68 (mainly static expression evaluation). 69 Reword some continuation messages 70 Add some \\ sequences to continuation messages 71 (Resolve_Call): Refine infinite recursion case. The test has been 72 sharpened to eliminate some false positives. 73 Check for Current_Task usage now includes entry barrier, and is now a 74 warning, not an error. 75 (Resolve): If the call is ambiguous, indicate whether an interpretation 76 is an inherited operation. 77 (Check_Aggr): When resolving aggregates, skip associations with a box, 78 which are priori correct, and will be replaced by an actual default 79 expression in the course of expansion. 80 (Resolve_Type_Conversion): Add missing support for conversion from 81 a class-wide interface to a tagged type. Minor code cleanup. 82 (Valid_Tagged_Converion): Add support for abstact interface type 83 conversions. 84 (Resolve_Selected_Component): Call Generate_Reference here rather than 85 during analysis, and use May_Be_Lvalue to distinguish read/write. 86 (Valid_Array_Conversion): New procedure, abstracted from 87 Valid_Conversion, to incorporate accessibility checks for arrays of 88 anonymous access types. 89 (Valid_Conversion): For a conversion to a numeric type occurring in an 90 instance or inlined body, no need to check that the operand type is 91 numeric, since this has been checked during analysis of the template. 92 Remove legacy test for scope name Unchecked_Conversion. 93 94 * sem_res.ads: Minor reformatting 95 96 * a-except.adb, a-except-2005.adb: Turn off subprogram ordering 97 (PE_Current_Task_In_Entry_Body): New exception code 98 (SE_Restriction_Violation): Removed, not used 99 100 * a-except.ads: Update comments. 101 102 * types.h, types.ads: Add definition for Validity_Check 103 (PE_Current_Task_In_Entry_Body): New exception code 104 (SE_Restriction_Violation): Removed, not used 105 1062006-10-31 Thomas Quinot <quinot@adacore.com> 107 108 * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned 109 error status. 110 1112006-10-31 Hristian Kirtchev <kirtchev@adacore.com> 112 Jose Ruiz <ruiz@adacore.com> 113 114 * a-calend-vms.adb (Leap_Sec_Ops): Temp body for package in private 115 part of Ada.Calendar: all subprogram raise Unimplemented. 116 (Split_W_Offset): Temp function body, raising Unimplemented 117 118 * a-calend.ads, a-calend-vms.ads: 119 Add imported variable Invalid_TZ_Offset used to designate targets unable 120 to support time zones. 121 (Unimplemented): Temporary function raised by the body of new 122 subprograms below. 123 (Leap_Sec_Ops): New package in the private part of Ada.Calendar. This 124 unit provides handling of leap seconds and is used by the new Ada 2005 125 packages Ada.Calendar.Arithmetic and Ada.Calendar.Formatting. 126 (Split_W_Offset): Identical spec to that of Ada.Calendar.Split. This 127 version returns an extra value which is the offset to UTC. 128 129 * a-calend.adb (Split_W_Offset): Add call to localtime_tzoff. 130 (Leap_Sec_Ops): New body for package in private part of Ada.Calendar. 131 (Split_W_Offset): New function body. 132 (Time_Of): When a date is close to UNIX epoch, compute the time for 133 that date plus one day (that amount is later substracted after 134 executing mktime) so there are no problems with time zone adjustments. 135 136 * a-calend-mingw.adb: Remove Windows specific version no longer needed. 137 138 * a-calari.ads, a-calari.adb, a-calfor.ads, a-calfor.adb, 139 a-catizo.ads, a-catizo.adb: New files. 140 141 * impunit.adb: Add new Ada 2005 entries 142 143 * sysdep.c: Add external variable __gnat_invalid_tz_offset. 144 Rename all occurences of "__gnat_localtime_r" to 145 "__gnat_localtime_tzoff". 146 (__gnat_localtime_tzoff for Windows): Add logic to retrieve the time 147 zone data and calculate the GMT offset. 148 (__gnat_localtime_tzoff for Darwin, Free BSD, Linux, Lynx and Tru64): 149 Use the field "tm_gmtoff" to extract the GMT offset. 150 (__gnat_localtime_tzoff for AIX, HPUX, SGI Irix and Sun Solaris): Use 151 the external variable "timezone" to calculate the GMT offset. 152 1532006-10-31 Arnaud Charlet <charlet@adacore.com> 154 Jose Ruiz <ruiz@adacore.com> 155 156 * s-osinte-posix.adb, s-osinte-linux.ads, s-osinte-freebsd.adb, 157 s-osinte-freebsd.ads, s-osinte-solaris-posix.ads, s-osinte-hpux.ads, 158 s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-lynxos-3.ads, 159 s-osinte-lynxos-3.adb (To_Target_Priority): New function maps from 160 System.Any_Priority to a POSIX priority on the target. 161 162 * system-linux-ia64.ads: 163 Extend range of Priority types on Linux to use the whole range made 164 available by the system. 165 166 * s-osinte-aix.adb, s-osinte-aix.ads (To_Target_Priority): New 167 function maps from System.Any_Priority to a POSIX priority on the 168 target. 169 (PTHREAD_PRIO_PROTECT): Set real value. 170 (PTHREAD_PRIO_INHERIT): Now a function. 171 (SIGCPUFAIL): New signal. 172 (Reserved): Add SIGALRM1, SIGWAITING, SIGCPUFAIL, since these signals 173 are documented as reserved by the OS. 174 175 * system-aix.ads: Use the full range of priorities provided by the 176 system on AIX. 177 178 * s-taprop-posix.adb: Call new function To_Target_Priority. 179 (Set_Priority): Take into account Task_Dispatching_Policy and 180 Priority_Specific_Dispatching pragmas when determining if Round Robin 181 must be used for scheduling the task. 182 183 * system-linux-x86_64.ads, system-linux-x86.ads, 184 system-linux-ppc.ads: Extend range of Priority types on Linux to use 185 the whole range made available by the system. 186 187 * s-taprop-vms.adb, s-taprop-mingw.adb, s-taprop-irix.adb, 188 s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-hpux-dce.adb, 189 s-taprop-lynxos.adb (Finalize_TCB): invalidate the stack-check cache 190 when deallocating the TCB in order to avoid potential references to 191 deallocated data. 192 (Set_Priority): Take into account Task_Dispatching_Policy and 193 Priority_Specific_Dispatching pragmas when determining if Round Robin 194 or FIFO within priorities must be used for scheduling the task. 195 196 * s-taprop-vxworks.adb (Enter_Task): Store the user-level task id in 197 the Thread field (to be used internally by the run-time system) and the 198 kernel-level task id in the LWP field (to be used by the debugger). 199 (Create_Task): Reorganize to unify the calls to taskSpawn into a single 200 instance, and propagate the current task options to the spawned task. 201 (Set_Priority): Take into account Priority_Specific_Dispatching pragmas. 202 (Initialize): Set Round Robin dispatching when the corresponding pragma 203 is in effect. 204 2052006-10-31 Robert Dewar <dewar@adacore.com> 206 207 * system-vms_64.ads, system-darwin-ppc.ads, system-vxworks-x86.ads, 208 system-linux-hppa.ads, system-hpux-ia64.ads, 209 system-lynxos-ppc.ads, system-lynxos-x86.ads, system-tru64.ads, 210 system-vxworks-sparcv9.ads, system-solaris-x86.ads, 211 system-irix-o32.ads, system-irix-n32.ads, system-hpux.ads, 212 system-vxworks-m68k.ads, system-vxworks-mips.ads, system-interix.ads, 213 system-solaris-sparc.ads, system-solaris-sparcv9.ads, system-vms.ads, 214 system-mingw.ads, system-vms-zcx.ads, system-vxworks-ppc.ads, 215 system-vxworks-alpha.ads, system.ads: Add pragma Warnings(Off, 216 Default_Bit_Order) to kill constant condition warnings for references 217 to this switch. 218 2192006-10-31 Vincent Celier <celier@adacore.com> 220 Eric Botcazou <ebotcazou@adacore.com> 221 222 * mlib-tgt-lynxos.adb, mlib-tgt-mingw.adb, mlib-tgt-tru64.adb, 223 mlib-tgt-aix.adb, mlib-tgt-irix.adb, mlib-tgt-hpux.adb, 224 mlib-tgt-linux.adb, mlib-tgt-solaris.adb: Use Append_To, instead of 225 Ext_To, when building the library file name 226 227 * mlib-tgt-vxworks.adb: ditto. 228 (Get_Target_Suffix): Add support for x86 targets. 229 230 * mlib-fil.ads, mlib-fil.adb: (Append_To): New function 231 232 * mlib-tgt-darwin.adb: 233 Use Append_To, instead of Ext_To, when building the library file name 234 (Flat_Namespace): New global variable. 235 (No_Shared_Libgcc_Switch): Rename to No_Shared_Libgcc_Options. 236 (Shared_Libgcc_Switch): Rename to With_Shared_Libgcc_Options. 237 (Link_Shared_Libgcc): Delete. 238 (Build_Dynamic_Library): Adjust for above changes. 239 Use Opt package. 240 (Build_Dynamic_Library): Pass -shared-libgcc if GCC 4 or later. 241 2422006-10-31 Eric Botcazou <ebotcazou@adacore.com> 243 244 * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer. 245 (Initialize): Add type conversions required by above change. 246 2472006-10-31 Jose Ruiz <ruiz@adacore.com> 248 249 * s-osinte-vxworks.ads, s-osinte-vxworks.adb: 250 (getpid): New body for this function that uses the underlying taskIdSelf 251 function for VxWorks 5 and VxWorks 6 in kernel mode. 252 (unsigned_int): New type, modular to allow logical bit operations. 253 (taskOptionsGet): New imported function. 254 255 * s-taspri-vxworks.ads (Private_Data): Change the type for the LWP 256 field to be compliant with the type used by the corresponding operating 257 system primitive. 258 2592006-10-31 Pascal Obry <obry@adacore.com> 260 Eric Botcazou <ebotcazou@adacore.com> 261 Vincent Celier <celier@adacore.com> 262 263 * adaint.c (__gnat_get_libraries_from_registry): Call explicitly the 264 ASCII version of the registry API. This is needed as the GNAT runtime 265 is now UNICODE by default. 266 Include version.h. 267 (get_gcc_version): Do not hardcode the return value. 268 (__gnat_file_time_name): On Windows properly set the default returned 269 value to -1 which corresponds to Invalid_Time. 270 (__gnat_fopen): New routine. A simple wrapper on all plateforms 271 except on Windows where it does conversion for unicode support. 272 (__gnat_freopen): Idem. 273 (__gnat_locate_exec_on_path): If environment variable PATH does not 274 exist, return a NULL pointer 275 276 * adaint.h: (__gnat_fopen): Declare. 277 (__gnat_freopen): Likewise. 278 279 * mingw32.h (_tfreopen): Define this macro here for older MingW 280 version. 281 Activate the unicode support on platforms using a MingW runtime 282 version 3.9 or newer. 283 284 * s-crtl.ads (fopen): Is now an import to the wrapper __gnat_freopen. 285 This is needed for proper unicode support on Windows. 286 (freopen): Idem. 287 2882006-10-31 Eric Botcazou <ebotcazou@adacore.com> 289 Nicolas Setton <setton@adacore.com> 290 Olivier Hainque <hainque@adacore.com> 291 Gary Dismukes <dismukes@adacore.com> 292 293 * gigi.h: (tree_code_for_record_type): Declare. 294 (add_global_renaming_pointer): Rename to record_global_renaming_pointer. 295 (get_global_renaming_pointers): Rename to 296 invalidate_global_renaming_pointers. 297 (static_ctors): Delete. 298 (static_dtors): Likewise. 299 (gnat_write_global_declarations): Declare. 300 (create_var_decl): Adjust descriptive comment to indicate that the 301 subprogram may return a CONST_DECL node. 302 (create_true_var_decl): Declare new function, similar to 303 create_var_decl but forcing the creation of a VAR_DECL node. 304 (get_global_renaming_pointers): Declare. 305 (add_global_renaming_pointer): Likewise. 306 307 * ada-tree.h (DECL_READONLY_ONCE_ELAB): New macro. 308 309 * decl.c (gnat_to_gnu_entity) <case E_Function>: Don't copy the type 310 tree before setting TREE_ADDRESSABLE for by-reference return mechanism 311 processing. 312 (gnat_to_gnu_entity): Remove From_With_Type from computation for 313 imported_p. 314 <E_Access_Type>: Use the Non_Limited_View as the full view of the 315 designated type if the pointer comes from a limited_with clause. Make 316 incomplete designated type if it is in the main unit and has a freeze 317 node. 318 <E_Incomplete_Type>: Rework to treat Non_Limited_View, Full_View, and 319 Underlying_Full_View similarly. Return earlier if the full view already 320 has an associated tree. 321 (gnat_to_gnu_entity) <E_Record_Type>: Restore comment. 322 (gnat_to_gnu_entity) <E_Record_Type>: Do not use a dummy type. 323 (gnat_to_gnu_entity) <E_Variable>: Set TYPE_REF_CAN_ALIAS_ALL on the 324 reference type built for objects with an address clause. 325 Use create_true_var_decl with const_flag set for 326 DECL_CONST_CORRESPONDING_VARs, ensuring a VAR_DECL is created with 327 TREE_READONLY set. 328 (gnat_to_gnu_entity, case E_Enumeration_Type): Set TYPE_NAME 329 for Character and Wide_Character types. This info is read by the 330 dwarf-2 writer, and is needed to be able to use the command "ptype 331 character" in the debugger. 332 (gnat_to_gnu_entity): When generating a type representing 333 a Character or Wide_Character type, set the flag TYPE_STRING_FLAG, 334 so that debug writers can distinguish it from ordinary integers. 335 (elaborate_expression_1): Test the DECL_READONLY_ONCE_ELAB flag in 336 addition to TREE_READONLY to assert the constantness of variables for 337 elaboration purposes. 338 (gnat_to_gnu_entity, subprogram cases): Change loops on formal 339 parameters to call new Einfo function First_Formal_With_Extras. 340 (gnat_to_gnu_entity): In type_annotate mode, replace a discriminant of a 341 protected type with its corresponding discriminant, to obtain a usable 342 declaration 343 (gnat_to_gnu_entity) <E_Access_Protected_Subprogram_Type>: Be prepared 344 for a multiple elaboration of the "equivalent" type. 345 (gnat_to_gnu_entity): Adjust for renaming of add_global_renaming_pointer 346 into record_global_renaming_pointer. 347 (gnat_to_gnu_entity) <E_Array_Type>: Do not force 348 TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate. 349 <E_Array_Subtype>: Likewise. 350 (gnat_to_gnu_entity) <E_Incomplete_Subtype>: Add support for regular 351 incomplete subtypes and incomplete subtypes of incomplete types visible 352 through a limited with clause. 353 (gnat_to_gnu_entity) <E_Array_Subtype>: Take into account the bounds of 354 the base index type for the maximum size of the array only if they are 355 constant. 356 (gnat_to_gnu_entity, renaming object case): Do not wrap up the 357 expression into a SAVE_EXPR if stabilization failed. 358 359 * utils.c (create_subprog_decl): Turn TREE_ADDRESSABLE on the type of 360 a result decl into DECL_BY_REFERENCE on this decl, now what is expected 361 by lower level compilation passes. 362 (gnat_genericize): New function, lowering a function body to GENERIC. 363 Turn the type of RESULT_DECL into a real reference type if the decl 364 has been marked DECL_BY_REFERENCE, and adjust references to the latter 365 accordingly. 366 (gnat_genericize_r): New function. Tree walking callback for 367 gnat_genericize. 368 (convert_from_reference, is_byref_result): New functions. Helpers for 369 gnat_genericize_r. 370 (create_type_decl): Call gnat_pushdecl before calling 371 rest_of_decl_compilation, to make sure that field TYPE_NAME of 372 type_decl is properly set before calling the debug information writers. 373 (write_record_type_debug_info): The heuristics which compute the 374 alignment of a field in a variant record might not be accurate. Add a 375 safety test to make sure no alignment is set to a smaller value than 376 the alignment of the field type. 377 (make_dummy_type): Use the Non_Limited_View as the underlying type if 378 the type comes from a limited_with clause. Do not loop on the full view. 379 (GET_GNU_TREE, SET_GNU_TREE, PRESENT_GNU_TREE): New macros. 380 (dummy_node_table): New global variable, moved from decl.c. 381 (GET_DUMMY_NODE, SET_DUMMY_NODE, PRESENT_DUMMY_NODE): New macros. 382 (save_gnu_tree): Use above macros. 383 (get_gnu_tree): Likewise. 384 (present_gnu_tree): Likewise. 385 (init_dummy_type): New function, moved from decl.c. Use above macros. 386 (make_dummy_type): Likewise. 387 (tree_code_for_record_type): New function extracted from make_dummy_type 388 (init_gigi_decls): Set DECL_IS_MALLOC on gnat_malloc. 389 (static_ctors): Change it to a vector, make static. 390 (static_dtors): Likewise. 391 (end_subprog_body): Adjust for above change. 392 (build_global_cdtor): Moved from trans.c. 393 (gnat_write_global_declarations): Emit global constructor and 394 destructor, and call cgraph_optimize before emitting debug info for 395 global declarations. 396 (global_decls): New global variable. 397 (gnat_pushdecl): Store the global declarations in global_decls, for 398 later use. 399 (gnat_write_global_declarations): Emit debug information for global 400 declarations. 401 (create_var_decl_1): Former create_var_decl, with an extra argument to 402 state whether the creation of a CONST_DECL is allowed. 403 (create_var_decl): Behavior unchanged. Now a wrapper around 404 create_var_decl_1 allowing CONST_DECL creation. 405 (create_true_var_decl): New function, similar to create_var_decl but 406 forcing the creation of a VAR_DECL node (CONST_DECL not allowed). 407 (create_field_decl): Do not always mark the field as addressable 408 if its type is an aggregate. 409 (global_renaming_pointers): New static variable. 410 (add_global_renaming_pointer): New function. 411 (get_global_renaming_pointers): Likewise. 412 413 * misc.c (gnat_dwarf_name): New function. 414 (LANG_HOOKS_DWARF_NAME): Define to gnat_dwarf_name. 415 (gnat_post_options): Add comment about structural alias analysis. 416 (gnat_parse_file): Do not call cgraph_optimize here. 417 (LANG_HOOKS_WRITE_GLOBALS): Define to gnat_write_global_declarations. 418 419 * trans.c (process_freeze_entity): Don't abort if we already have a 420 non dummy GCC tree for a Concurrent_Record_Type, as it might 421 legitimately have been elaborated while processing the associated 422 Concurrent_Type prior to this explicit freeze node. 423 (Identifier_to_gnu): Do not make a variable referenced in a SJLJ 424 exception handler volatile if it is of variable size. 425 (process_type): Remove bypass for types coming from a limited_with 426 clause. 427 (call_to_gnu): When processing the copy-out of a N_Type_Conversion GNAT 428 actual, convert the corresponding gnu_actual to the real destination 429 type when necessary. 430 (add_decl_expr): Set the DECL_READONLY_ONCE_ELAB flag on variables 431 originally TREE_READONLY but whose elaboration cannot be performed 432 statically. 433 Part of fix for F504-021. 434 (tree_transform, subprogram cases): Change loops on formal parameters to 435 call new Einfo function First_Formal_With_Extras. 436 (gnat_to_gnu) <N_Op_Shift_Right_Arithmetic>: Ignore constant overflow 437 stemming from type conversion for the lhs. 438 (Attribute_to_gnu) <Attr_Alignment>: Also divide the alignment by the 439 number of bits per unit for components of records. 440 (gnat_to_gnu) <N_Code_Statement>: Mark operands addressable if needed. 441 (Handled_Sequence_Of_Statements_to_gnu): Register the cleanup associated 442 with At_End_Proc after the SJLJ EH cleanup. 443 (Compilation_Unit_to_gnu): Call elaborate_all_entities only on the main 444 compilation unit. 445 (elaborate_all_entities): Do not retest type_annotate_only. 446 (tree_transform) <N_Abstract_Subprogram_Declaration>: Process the 447 result type of an abstract subprogram, which may be an itype associated 448 with an anonymous access result (related to AI-318-02). 449 (build_global_cdtor): Move to utils.c. 450 (Case_Statement_to_gnu): Avoid adding the choice of a when statement if 451 this choice is not a null tree nor an integer constant. 452 (gigi): Run unshare_save_expr via walk_tree_without_duplicates 453 on the body of elaboration routines instead of mark_unvisited. 454 (add_stmt): Do not mark the tree. 455 (add_decl_expr): Tweak comment. 456 (mark_unvisited): Delete. 457 (unshare_save_expr): New static function. 458 (call_to_gnu): Issue an error when making a temporary around a 459 procedure call because of non-addressable actual parameter if the 460 type of the formal is by_reference. 461 (Compilation_Unit_to_gnu): Invalidate the global renaming pointers 462 after building the elaboration routine. 463 4642006-10-31 Bob Duff <duff@adacore.com> 465 466 * a-filico.adb (Finalize(List_Controller)): Mark the finalization list 467 as finalization-started, so we can raise Program_Error on 'new'. 468 469 * s-finimp.adb: Raise Program_Error on 'new' if finalization of the 470 collection has already started. 471 472 * s-finimp.ads (Collection_Finalization_Started): Added new special 473 flag value for indicating that a collection's finalization has started. 474 475 * s-tassta.adb (Create_Task): Raise Program_Error on an attempt to 476 create a task whose master has already waited for dependent tasks. 477 4782006-10-31 Robert Dewar <dewar@adacore.com> 479 480 * lib.adb, lib.ads: (In_Predefined_Unit): New functions 481 482 * a-finali.ads, a-ngcoty.ads, a-strbou.ads, a-stream.ads, a-strmap.ads, 483 a-strunb.ads, a-stwibo.ads, a-stwima.ads, a-stwiun.ads, a-taside.ads, 484 a-coorse.ads, a-convec.ads, a-coinve.ads, a-cohama.ads, a-ciorse.ads, 485 a-cihama.ads, a-cihase.ads, a-cohase.ads, a-ciorma.ads, a-coorma.ads, 486 a-ciormu.ads, a-coormu.ads, a-stzbou.ads, a-stzmap.ads, a-stzunb.ads, 487 a-except-2005.ads: Add pragma Preelaborable_Warning 488 4892006-10-31 Robert Dewar <dewar@adacore.com> 490 Jose Ruiz <ruiz@adacore.com> 491 492 * a-dispat.ads, a-dispat.adb, a-diroro.ads, a-diroro.adb: New files. 493 494 * ali.adb (Get_Name): Properly handle scanning of wide character names 495 encoded with brackets notation. 496 (Known_ALI_Lines): Add S lines to this list. 497 (Scan_ALI): Acquire S (priority specific dispatching) lines. 498 New flag Elaborate_All_Desirable in unit table 499 500 * ali.ads (Priority_Specific_Dispatching): Add this range of 501 identifiers to be used for Priority_Specific_Dispatching table entries. 502 (ALIs_Record): Add First_Specific_Dispatching and 503 Last_Specific_Dispatching that point to the first and last entries 504 respectively in the priority specific dispatching table for this unit. 505 (Specific_Dispatching): Add this table for storing each S (priority 506 specific dispatching) line encountered in the input ALI file. 507 New flag Elaborate_All_Desirable in unit table 508 509 * bcheck.adb: (Check_Configuration_Consistency): Add call to 510 Check_Consistent_Dispatching_Policy. 511 (Check_Consistent_Dispatching_Policy): Add this procedure in charge of 512 verifying that the use of Priority_Specific_Dispatching, 513 Task_Dispatching_Policy, and Locking_Policy is consistent across the 514 partition. 515 516 * bindgen.adb: (Public_Version_Warning): function removed. 517 (Set_PSD_Pragma_Table): Add this procedure in charge of getting the 518 required information from ALI files in order to initialize the table 519 containing the specific dispatching policy. 520 (Gen_Adainit_Ada): Generate the variables required for priority specific 521 dispatching entries (__gl_priority_specific_dispatching and 522 __gl_num_specific_dispatching). 523 (Gen_Adainit_C): Generate the variables required for priority specific 524 dispatching entries (__gl_priority_specific_dispatching and 525 __gl_num_specific_dispatching). 526 (Gen_Output_File): Acquire settings for Priority_Specific_Dispatching 527 pragma entries. 528 (Gen_Restrictions_String_1, Gen_Restrictions_String_2): Removed. 529 (Gen_Restrictions_Ada, Gen_Restrictions_C, Set_Boolean): New procedures. 530 (Tab_To): Removed. 531 (Gen_Output_File_Ada/_C): Set directly __gl_xxx variables instead of 532 a call to gnat_set_globals. 533 Generate a string containing settings from 534 Priority_Specific_Dispatching pragma entries. 535 (Gen_Object_Files_Options): Do not include the runtime libraries when 536 pragma No_Run_Time is specified. 537 538 * init.c (__gnat_install_handler, case FreeBSD): Use SA_SIGINFO, for 539 consistency with s-intman-posix.adb. 540 (__gnat_error_handler, case FreeBSD): Account for the fact that the 541 handler is installed with SA_SIGINFO. 542 (__gnat_adjust_context_for_raise, FreeBSD case): New function for 543 FreeBSD ZCX support, copied from Linux version. 544 Add MaRTE-specific definitions for the linux target. Redefine sigaction, 545 sigfillset, and sigemptyset so the routines defined by MaRTE. 546 (__gl_priority_specific_dispatching): Add this variable that stores the 547 string containing priority specific dispatching policies in the 548 partition. 549 (__gl_num_specific_dispatching): Add this variable that indicates the 550 highest priority for which a priority specific dispatching pragma 551 applies. 552 (__gnat_get_specific_dispatching): Add this routine that returns the 553 priority specific dispatching policy, as set by a 554 Priority_Specific_Dispatching pragma appearing anywhere in the current 555 partition. The input argument is the priority number, and the result 556 is the upper case first character of the policy name. 557 (__gnat_set_globals): Now a dummy function. 558 (__gnat_handle_vms_condition): Feed adjust_context_for_raise with 559 mechargs instead of sigargs, as the latter can be retrieved from the 560 former and sigargs is not what we want on ia64. 561 (__gnat_adjust_context_for_raise, alpha-vms): Fetch sigargs from the 562 mechargs argument. 563 (__gnat_adjust_context_for_raise, ia64-vms): New function. 564 (tasking_error): Remove unused symbol. 565 (_abort_signal): Move this symbol to the IRIX specific part since this 566 is the only target that uses this definition. 567 (Check_Abort_Status): Move this symbol to the IRIX specific part since 568 this is the only target that uses this definition. 569 (Lock_Task): Remove unused symbol. 570 (Unlock_Task): Remove unused symbol. 571 572 * lib-writ.adb (Write_ALI): Output new S lines for 573 Priority_Specific_Dispatching pragmas. 574 Implement new flag BD for elaborate body desirable 575 576 * lib-writ.ads: Document S lines for Priority Specific Dispatching. 577 (Specific_Dispatching): Add this table for storing the entries 578 corresponding to Priority_Specific_Dispatching pragmas. 579 Document new BD flag for elaborate body desirable 580 581 * par-prag.adb (Prag): Add Priority_Specific_Dispatching to the list 582 of known pragmas. 583 5842006-10-31 Javier Miranda <miranda@adacore.com> 585 586 * a-tags.ads, a-tags.adb: 587 (Predefined_DT): New function that improves readability of the code. 588 (Get_Predefined_Prim_Op_Address, Set_Predefined_Prim_Op_Address, 589 Inherit_DT): Use the new function Predefined_DT to improve code 590 readability. 591 (Register_Interface_Tag): Update assertion. 592 (Set_Interface_Table): Update assertion. 593 (Interface_Ancestor_Tags): New subprogram required to implement AI-405: 594 determining progenitor interfaces in Tags. 595 (Inherit_CPP_DT): New subprogram. 596 597 * exp_disp.adb (Expand_Interface_Thunk): Suppress checks during the 598 analysis of the thunk code. 599 (Expand_Interface_Conversion): Handle run-time conversion of 600 access to class wide types. 601 (Expand_Dispatching_Call): When generating the profile for the 602 subprogram itype for a dispatching operation, properly terminate the 603 formal parameters chaind list (set the Next_Entity of the last formal 604 to Empty). 605 (Collect_All_Interfaces): Removed. This routine has been moved to 606 sem_util and renamed as Collect_All_Abstract_Interfaces. 607 (Set_All_DT_Position): Hidden entities associated with abstract 608 interface primitives are not taken into account in the check for 609 3.9.3(10); this check is done with the aliased entity. 610 (Make_DT, Set_All_DT_Position): Enable full ABI compatibility for 611 interfacing with CPP by default. 612 (Expand_Interface_Conversion): Add missing support for static conversion 613 from an interface to a tagged type. 614 (Collect_All_Interfaces): Add new out formal containing the list of 615 abstract interface types to cleanup the subprogram Make_DT. 616 (Make_DT): Update the code to generate the table of interfaces in case 617 of abstract interface types. 618 (Is_Predefined_Dispatching_Alias): New function that returns true if 619 a primitive is not a predefined dispatching primitive but it is an 620 alias of a predefined dispatching primitive. 621 (Make_DT): If the ancestor of the type is a CPP_Class and we are 622 compiling under full ABI compatibility mode we avoid the generation of 623 calls to run-time services that fill the dispatch tables because under 624 this mode we currently inherit the dispatch tables in the IP subprogram. 625 (Write_DT): Emit an "is null" indication for a null procedure primitive. 626 (Expand_Interface_Conversion): Use an address as the type of the formal 627 of the internally built function that handles the case in which the 628 target type is an access type. 629 6302006-10-31 Robert Dewar <dewar@adacore.com> 631 632 * binde.adb (Better_Choice, Worse_Choice): Implement new preferences. 633 6342006-10-31 Robert Dewar <dewar@adacore.com> 635 636 * bindusg.ads, bindusg.adb: 637 Change to package and rename procedure as Display, which 638 now ensures that it only outputs usage information once. 639 6402006-10-31 Jose Ruiz <ruiz@adacore.com> 641 642 * cal.c: Use the header sys/time.h for VxWorks 6.2 or greater when 643 using RTPs. 644 645 * mkdir.c: Use a different version of mkdir for VxWorks 6.2 or greater 646 when using RTPs. 647 6482006-10-31 Robert Dewar <dewar@adacore.com> 649 Ed Schonberg <schonberg@adacore.com> 650 651 * treepr.adb: Use new subtype N_Membership_Test 652 653 * checks.ads, checks.adb: Add definition for Validity_Check 654 (Range_Or_Validity_Checks_Suppressed): New function 655 (Ensure_Valid): Test Validity_Check suppressed 656 (Insert_Valid_Check): Test Validity_Check suppressed 657 (Insert_Valid_Check): Preserve Do_Range_Check flag 658 (Validity_Check_Range): New procedure 659 (Expr_Known_Valid): Result of membership test is always valid 660 (Selected_Range_Checks): Range checks cannot be applied to discriminants 661 by themselves. Disabling those checks must also be done for task types, 662 where discriminants may be used for the bounds of entry families. 663 (Apply_Address_Clause_Check): Remove side-effects if address expression 664 is non-static and is not the name of a declared constant. 665 (Null_Exclusion_Static_Checks): Extend to handle Function_Specification. 666 Code cleanup and new error messages. 667 (Enable_Range_Check): Test for some cases of suppressed checks 668 (Generate_Index_Checks): Suppress index checks if index checks are 669 suppressed for array object or array type. 670 (Apply_Selected_Length_Checks): Give warning for compile-time detected 671 length check failure, even if checks are off. 672 (Ensure_Valid): Do not generate a check on an indexed component whose 673 prefix is a packed boolean array. 674 * checks.adb: (Alignment_Checks_Suppressed): New function 675 (Apply_Address_Clause_Check): New procedure, this is a completely 676 rewritten replacement for Apply_Alignment_Check 677 (Get_E_Length/Get_E_First_Or_Last): Add missing barrier to ensure that 678 we request a discriminal value only in case of discriminants. 679 (Apply_Discriminant_Check): For Ada_05, only call Get_Actual_Subtype for 680 assignments where the target subtype is unconstrained and the target 681 object is a parameter or dereference (other aliased cases are known 682 to be unconstrained). 683 6842006-10-31 Robert Dewar <dewar@adacore.com> 685 686 * clean.adb, gnatname.adb, gnatsym.adb, prep.adb, prep.ads, 687 prepcomp.adb, prj.ads, prj-strt.adb, sem_maps.ads, 688 vms_conv.adb: Fix bad table increment values (much too small) 689 690 * table.adb (Realloc): Make sure we get at least some new elements 691 Defends against silly small values for table increment 692 6932006-10-31 Robert Dewar <dewar@adacore.com> 694 Ed Schonberg <schonberg@adacore.com> 695 Bob Duff <duff@adacore.com> 696 697 * einfo.ads, einfo.adb (Obsolescent_Warning): Now defined on all 698 entities. Move other fields around to make this possible 699 (Is_Derived_Type): Add missing call to Is_Type. 700 (Extra_Formals): New function for subprograms, entries, subprogram 701 types. 702 (Set_Extra_Formals): New procedure for subprograms, entries, subp types. 703 (First_Formal_With_Extras): New function for subprogs, entries, subp 704 types. 705 (Write_Field28_Name): New procedure for node display of "Extra_Formals". 706 Add node information for E_Return_Statement. 707 (Elaborate_Body_Desirable): New flag 708 (Is_Return_By_Reference_Type): Rename Is_Return_By_Reference_Type 709 to be Is_Inherently_Limited_Type, because return-by-reference has 710 no meaning in Ada 2005. 711 (E_Return_Statement): New entity kind. 712 (Return_Applies_To): Field of E_Return_Statement. 713 (Is_Return_Object): New flag in object entities. 714 (Is_Dynamic_Scope): Make it True for E_Return_Statement. 715 (Must_Have_Preelab_Init): New flag 716 (Known_To_Have_Preelab_Init): New flag 717 (Is_Formal_Object): Move from Sem_Ch8 body to Einfo 718 (Is_Visible_Formal): New flag on entities in formal packages. 719 (Low_Bound_Known): New flag 720 (Non_Limited_View, Set_Non_Limited_View): Add membership test agains 721 Incomplete_Kind. 722 (Write_Field17_Name): Correct spelling of Non_Limited_View. Add name 723 output when Id is an incomplete subtype. 724 7252006-10-31 Robert Dewar <dewar@adacore.com> 726 727 * errout.ads, errout.adb (Finalize): Implement switch -gnatd.m 728 Avoid abbreviation Creat 729 (Finalize): List all sources in extended mail source if -gnatl 730 switch is active. 731 Suppress copyright notice to file in -gnatl=f mode if -gnatd7 set 732 (Finalize): Implement new -gnatl=xxx switch to output listing to file 733 (Set_Specific_Warning_On): New procedure 734 (Set_Specific_Warning_Off): New procedure 735 Add implementation of new insertion \\ 736 (Error_Msg_Internal): Add handling for Error_Msg_Line_Length 737 (Unwind_Internal_Type): Improve report on anonymous access_to_subprogram 738 types. 739 (Error_Msg_Internal): Make sure that we set Last_Killed to 740 True when a message from another package is suppressed. 741 Implement insertion character ~ (insert string) 742 (First_Node): Minor adjustments to get better placement. 743 744 * frontend.adb: 745 Implement new -gnatl=xxx switch to output listing to file 746 747 * gnat1drv.adb: 748 Implement new -gnatl=xxx switch to output listing to file 749 750 * opt.ads: (Warn_On_Questionable_Missing_Paren): New switch 751 (Commands_To_Stdout): New flag 752 Implement new -gnatl=xxx switch to output listing to file 753 New switch Dump_Source_Text 754 (Warn_On_Deleted_Code): New warning flag for -gnatwt 755 Define Error_Msg_Line_Length 756 (Warn_On_Assumed_Low_Bound): New switch 757 758 * osint.ads, osint.adb 759 (Normalize_Directory_Name): Fix bug. 760 Implement new -gnatl=xxx switch to output listing to file 761 (Concat): Removed, replaced by real concatenation 762 Make use of concatenation now allowed in compiler 763 (Executable_Prefix.Get_Install_Dir): First get the full path, so that 764 we find the 'lib' or 'bin' directory even when the tool has been 765 invoked with a relative path. 766 (Executable_Name): New function taking string parameters. 767 768 * osint-c.ads, osint-c.adb: 769 Implement new -gnatl=xxx switch to output listing to file 770 771 * sinput-d.adb: Change name Creat_Debug_File to Create_Debug_File 772 773 * switch-c.adb: 774 Implement new -gnatl=xxx switch to output listing to file 775 Recognize new -gnatL switch 776 (no longer keep in old warning about old style usage) 777 Use concatenation to simplify code 778 Recognize -gnatjnn switch 779 (Scan_Front_End_Switches): Clean up handling of -gnatW 780 (Scan_Front_End_Switches): Include Warn_On_Assumed_Low_Bound for -gnatg 781 7822006-10-31 Robert Dewar <dewar@adacore.com> 783 784 * erroutc.ads, erroutc.adb (Set_Specific_Warning_On): New procedure 785 (Set_Specific_Warning_Off): New procedure 786 (Warning_Specifically_Suppressed): New function 787 (Validate_Specific_Warnings): New procedure 788 (Output_Msg_Text): Complete rewrite to support -gnatjnn 789 790 * err_vars.ads: Implement insertion character ~ (insert string) 791 7922006-10-31 Bob Duff <duff@adacore.com> 793 Ed Schonberg <schonberg@adacore.com> 794 795 * exp_aggr.adb (Build_Record_Aggr_Code): For extension aggregates, if 796 the parent part is a build-in-place function call, generate assignments. 797 (Expand_Record_Aggregate): Call Convert_To_Assignments if any components 798 are build-in-place function calls. 799 (Replace_Self_Reference): New subsidiary of 800 Make_OK_Assignment_Statement, to replace an access attribute that is a 801 self-reference into an access to the appropriate component of the 802 target object. Generalizes previous mechanism to handle self-references 803 nested at any level. 804 (Is_Self_Referential_Init): Remove, not needed. 805 (Is_Self_Referential_Init): New predicate to simplify handling of self 806 referential components in record aggregates. 807 (Has_Default_Init_Comps, Make_OK_Assignment_Statement): Add guard to 808 check for presence of entity before checking for self-reference. 809 (Has_Default_Init_Comps): Return True if a component association is a 810 self-reference to the enclosing type, which can only come from a 811 default initialization. 812 (Make_OK_Assignment_Statement): If the expression is of the form 813 Typ'Acc, where Acc is an access attribute, the expression comes from a 814 default initialized self-referential component. 815 (Build_Record_Aggr_Code): If the type of the aggregate is a tagged type 816 that has been derived from several abstract interfaces we must also 817 initialize the tags of the secondary dispatch tables. 818 8192006-10-31 Ed Schonberg <schonberg@adacore.com> 820 Thomas Quinot <quinot@adacore.com> 821 Javier Miranda <miranda@adacore.com> 822 Robert Dewar <dewar@adacore.com> 823 824 * exp_attr.adb: 825 (Expand_Access_To_Protected_Op): If the context indicates that an access 826 to a local operation may be transfered outside of the object, create an 827 access to the wrapper operation that must be used in an external call. 828 (Expand_N_Attribute_Reference, case Attribute_Valid): For the AAMP 829 target, pass the Valid attribute applied to a floating-point prefix on 830 to the back end without expansion. 831 (Storage_Size): Use the new run-time function Storage_Size to retrieve 832 the allocated storage when it is specified by a per-object expression. 833 (Expand_N_Attribute_Reference): Add case for Attribute_Stub_Type. 834 Nothing to do here, the attribute has been rewritten during semantic 835 analysis. 836 (Expand_Attribute_Reference): Handle expansion of the new Priority 837 attribute 838 (Find_Fat_Info): Handle case of universal real 839 (Expand_Access_To_Protected_Op): Fix use of access to protected 840 subprogram from inside the body of a protected entry. 841 (Expand_Access_To_Protected_Op): Common procedure for the expansion of 842 'Access and 'Unrestricted_Access, to transform the attribute reference 843 into a fat pointer. 844 (Is_Constrained_Aliased_View): New predicate to help determine whether a 845 subcomponent's enclosing variable is aliased with a constrained subtype. 846 (Expand_N_Attribute_Reference, case Attribute_Constrained): For Ada_05, 847 test Is_Constrained_Aliased_View rather than Is_Aliased_View, because 848 an aliased prefix must be known to be constrained in order to use True 849 for the attribute value, and now it's possible for some aliased views 850 to be unconstrained. 851 8522006-10-31 Robert Dewar <dewar@adacore.com> 853 854 * exp_ch2.adb: Change Is_Lvalue to May_Be_Lvalue 855 (Expand_Entity_Reference): Correct error of not handling subprogram 856 formals in current_value processing. 857 8582006-10-31 Javier Miranda <miranda@adacore.com> 859 Robert Dewar <dewar@adacore.com> 860 Ed Schonberg <schonberg@adacore.com> 861 Gary Dismukes <dismukes@adacore.com> 862 863 * exp_ch3.ads, exp_ch3.adb (Expand_N_Object_Declaration): Do not 864 register in the final list objects containing class-wide interfaces; 865 otherwise we incorrectly register the tag of the interface in the final 866 list. 867 (Make_Controlling_Function_Wrappers): Add missing barrier to do not 868 generate the wrapper if the parent primitive is abstract. This is 869 required to report the correct error message. 870 (Expand_N_Subtype_Indication): Do validity checks on range 871 (Clean_Task_Names): If an initialization procedure includes a call to 872 initialize a task (sub)component, indicate that the procedure will use 873 the secondary stack. 874 (Build_Init_Procedure, Init_Secondary_Tags): Enable full ABI 875 compatibility for interfacing with CPP by default. 876 (Expand_N_Object_Declaration): Only build an Adjust call when the 877 object's type is a nonlimited controlled type. 878 * exp_ch3.adb: Add with and use of Exp_Ch6. 879 (Expand_N_Object_Declaration): Check for object initialization that is a 880 call to build-in-place function and apply Make_Build_In_Place_Call_In_ 881 Object_Declaration to the call. 882 (Freeze_Type): When the designated type of an RACW was not frozen at the 883 point where the RACW was declared, validate the primitive operations 884 with respect to E.2.2(14) when it finally is frozen. 885 (Build_Initialization_Call,Expand_Record_Controller): Rename 886 Is_Return_By_Reference_Type to be Is_Inherently_Limited_Type, because 887 return-by-reference has no meaning in Ada 2005. 888 (Init_Secondary_Tags): Add missing call to Set_Offset_To_Top 889 to register tag of the immediate ancestor interfaces in the 890 run-time structure. 891 (Init_Secondary_Tags): Moved to the specification to allow the 892 initialization of extension aggregates with abstract interfaces. 893 (Build_Master_Renaming): Make public, for use by function declarations 894 whose return type is an anonymous access type. 895 (Freeze_Record_Type): Replace call to Insert_List_Before by call to 896 Insert_List_Before_And_Analyze after the generation of the specs 897 associated with null procedures. 898 (Expand_Tagged_Root): Update documentation in its specification. 899 (Init_Secondary_Tags): Update documentation. 900 (Build_Init_Procedure): If we are compiling under CPP full ABI compa- 901 tibility mode and the immediate ancestor is a CPP_Pragma tagged type 902 then generate code to inherit the contents of the dispatch table 903 directly from the ancestor. 904 (Expand_Record_Controller): Insert controller component after tags of 905 implemented interfaces. 906 (Freeze_Record_Type): Call new procedure Make_Null_Procedure_Specs to 907 create null procedure overridings when null procedures are inherited 908 from interfaces. 909 (Make_Null_Procedure_Specs): New procedure to generate null procedure 910 declarations for overriding null primitives inherited from interfaces. 911 (Is_Null_Interface_Procedure): New function in 912 Make_Null_Procedure_Specs. 913 (Make_Predefined_Primitive_Specs/Predefined_Primitive_Bodies): If the 914 immediate ancestor of a tagged type is an abstract interface type we 915 must generate the specification of the predefined primitives associated 916 with controlled types (because the dispatch table of the ancestor is 917 null and hence these entries cannot be inherited). This is required to 918 elaborate well the dispatch table. 919 9202006-10-31 Javier Miranda <miranda@adacore.com> 921 Ed Schonberg <schonberg@adacore.com> 922 Bob Duff <duff@adacore.com> 923 Gary Dismukes <dismukes@adacore.com> 924 Robert Dewar <dewar@adacore.com> 925 926 * exp_ch4.adb (Expand_N_Type_Conversion): Handle missing interface type 927 conversion. 928 (Expand_N_In): Do validity checks on range 929 (Expand_Selected_Component): Use updated for of Denotes_Discriminant. 930 (Expand_N_Allocator): For "new T", if the object is constrained by 931 discriminant defaults, allocate the right amount of memory, rather than 932 the maximum for type T. 933 (Expand_Allocator_Expression): Suppress the call to Remove_Side_Effects 934 when the allocator is initialized by a build-in-place call, since the 935 allocator is already rewritten as a reference to the function result, 936 and this prevents an unwanted duplication of the function call. 937 Add with and use of Exp_Ch6. 938 (Expand_Allocator_Expresssion): Check for an allocator whose expression 939 is a call to build-in-place function and apply 940 Make_Build_In_Place_Call_In_Allocator to the call (for both tagged and 941 untagged designated types). 942 (Expand_N_Unchecked_Type_Conversion): Do not do integer literal 943 optimization if source or target is biased. 944 (Expand_N_Allocator): Add comments for case of an allocator within a 945 function that returns an anonymous access type designating tasks. 946 (Expand_N_Allocator): apply discriminant checks for access 947 discriminants of anonymous access types (AI-402, AI-416) 948 9492006-10-31 Bob Duff <duff@adacore.com> 950 Robert Dewar <dewar@adacore.com> 951 Gary Dismukes <dismukes@adacore.com> 952 Ed Schonberg <schonberg@adacore.com> 953 954 * exp_ch5.ads (Expand_N_Extended_Return_Statement): New procedure. 955 956 * exp_ch5.adb (Expand_N_Loop_Statement): Do validity checks on range 957 (Expand_N_Assignment_Statement): Call 958 Make_Build_In_Place_Call_In_Assignment if the right-hand side is a 959 build-in-place function call. Currently, this can happen only for 960 assignments that come from aggregates. 961 Add -gnatd.l --Use Ada 95 semantics for limited function returns, 962 in order to alleviate the upward compatibility introduced by AI-318. 963 (Expand_N_Extended_Return_Statement): Add support for handling the 964 return object as a build-in-place result. 965 (Expand_Non_Function_Return): Implement simple return statements nested 966 within an extended return. 967 (Enable_New_Return_Processing): Turn on the new processing of return 968 statements. 969 (Expand_Non_Function_Return): For a return within an extended return, 970 don't raise Program_Error, because Sem_Ch6 now gives a warning. 971 (Expand_N_Extended_Return_Statement): Implement AI-318 972 (Expand_Simple_Function_Return): Ditto. 973 (Expand_N_If_Statement): Handle new -gnatwt warning 974 (Expand_N_Case_Statement): Handle new -gnatwt warning 975 (Expand_N_Assignment): Handle assignment to the Priority attribute of 976 a protected object. 977 (Expand_N_Assignment_Statement): Implement -gnatVe/E to control 978 validity checking of assignments to elementary record components. 979 (Expand_N_Return_Statement): return Class Wide types on the secondary 980 stack independantly of their controlled status since with HIE runtimes, 981 class wide types are not potentially controlled anymore. 982 983 * expander.adb (Expand): Add case for new N_Extended_Return_Statement 984 node kind. 985 986 * exp_ch11.adb (Expand_N_Handled_Sequence_Of_Statements): Avoid 987 Expand_Cleanup_Actions in case of N_Extended_Return_Statement, because 988 it expects a block, procedure, or task. The return statement will get 989 turned into a block, and Expand_Cleanup_Actions will happen then. 990 9912006-10-31 Robert Dewar <dewar@adacore.com> 992 Ed Schonberg <schonberg@adacore.com> 993 Bob Duff <duff@adacore.com> 994 Gary Dismukes <dismukes@adacore.com> 995 996 * exp_ch6.ads, exp_ch6.adb: Use new Validity_Check suppression 997 capability. 998 (Expand_Inlined_Call): Tagged types are by-reference types, and 999 therefore should be replaced by a renaming declaration in the expanded 1000 body, as is done for limited types. 1001 (Expand_Call): If this is a call to a function with dispatching access 1002 result, propagate tag from context. 1003 (Freeze_Subprogram): Enable full ABI compatibility for interfacing with 1004 CPP by default. 1005 (Make_Build_In_Place_Call_In_Assignment): New procedure to do 1006 build-in-place when the right-hand side of an assignment is a 1007 build-in-place function call. 1008 (Make_Build_In_Place_Call_In_Allocator): Apply an unchecked conversion 1009 of the explicit dereference of the allocator to the result subtype of 1010 the build-in-place function. This is needed to satisfy type checking 1011 in cases where the caller's return object is created by an allocator for 1012 a class-wide access type and the type named in the allocator is a 1013 specific type. 1014 (Make_Build_In_Place_Call_In_Object_Declaration): Apply an unchecked 1015 conversion of the reference to the declared object to the result subtype 1016 of the build-in-place function. This is needed to satisfy type checking 1017 in cases where the declared object has a class-wide type. Also, in the 1018 class-wide case, change the type of the object entity to the specific 1019 result subtype of the function, to avoid passing a class-wide object 1020 without explicit initialization to the back end. 1021 (Register_Interface_DT_Entry): Moved outside the body of 1022 Freeze_Subprogram because this routine is now public; it is called from 1023 Check_Dispatching_Overriding to handle late overriding of abstract 1024 interface primitives. 1025 (Add_Access_Actual_To_Build_In_Place_Call): New utility procedure for 1026 adding an implicit access actual on a call to a build-in-place function. 1027 (Expand_Actuals): Test for an actual parameter that is a call to a 1028 build-in-place function and apply 1029 Make_Build_In_Place_Call_In_Anonymous_Context to the call. 1030 (Is_Build_In_Place_Function): New function to determine whether an 1031 entity is a function whose calls should be handled as build-in-place. 1032 (Is_Build_In_Place_Function_Call): New function to determine whether an 1033 expression is a function call that should handled as build-in-place. 1034 (Make_Build_In_Place_Call_In_Allocator): New procedure for handling 1035 calls to build-in-place functions as the initialization of an allocator. 1036 (Make_Build_In_Place_Call_In_Anonymous_Context): New procedure for 1037 handling calls to build-in-place functions in contexts that do not 1038 involve init of a separate object (for example, actuals of subprogram 1039 calls). 1040 (Make_Build_In_Place_Call_In_Object_Declaration): New procedure for 1041 handling calls to build-in-place functions as the initialization of an 1042 object declaration. 1043 (Detect_Infinite_Recursion): Add explicit parameter Process to 1044 instantiation of Traverse_Body to avoid unreferenced warning. 1045 (Check_Overriding_Inherited_Interfaces): Removed. 1046 (Register_Interface_DT_Entry): Code cleanup. 1047 (Register_Predefined_DT_Entry): Code cleanup. 1048 (Expand_Inlined_Call.Rewrite_Procedure_Call): Do not omit block around 1049 inlined statements if within a transient scope. 1050 (Expand_Inlined_Call.Process_Formals): When replacing occurrences of 1051 formal parameters with occurrences of actuals in inlined body, establish 1052 visibility on the proper view of the actual's subtype for the body's 1053 context. 1054 (Freeze_Subprogram): Do nothing if we are compiling under full ABI 1055 compatibility mode and we have an imported CPP subprogram because 1056 for now we assume that imported CPP primitives correspond with 1057 objects whose constructor is in the CPP side (and therefore we 1058 don't need to generate code to register them in the dispatch table). 1059 (Expand_Actuals): Introduce copy of actual, only if it might be a bit- 1060 aligned selected component. 1061 (Add_Call_By_Copy_Node): Add missing code to handle the case in which 1062 the actual of an in-mode parameter is a type conversion. 1063 (Expand_Actuals): If the call does not come from source and the actual 1064 is potentially misaligned, let gigi handle it rather than rejecting the 1065 (Expand_N_Subprogram_Body, Freeze_Subprogram): set subprograms returning 1066 Class Wide types as returning by reference independantly of their 1067 controlled status since with HIE runtimes class wide types are not 1068 potentially controlled anymore. 1069 10702006-10-31 Ed Schonberg <schonberg@adacore.com> 1071 1072 * exp_ch9.adb (Update_Prival_Types): Simplify code for entity 1073 references that are private components of the protected object. 1074 (Build_Barrier_Function): Set flag Is_Entry_Barrier_Function 1075 (Update_Prival_Subtypes): Add explicit Process argument to Traverse_Proc 1076 instantiation to deal with warnings. 1077 (Initialize_Protection): If expression for priority is non-static, use 1078 System_Priority as its expected type, in case the expression has not 1079 been analyzed yet. 1080 10812006-10-31 Robert Dewar <dewar@adacore.com> 1082 1083 * exp_dbug.ads, exp_dbug.adb (Get_External_Name): Add missing 1084 initialization of Homonym_Len. 1085 (Fully_Qualify_Name): Remove kludge to eliminate anonymous block 1086 names from fully qualified name. Fixes problem of duplicate 1087 external names differing only in the presence of such a block name. 1088 10892006-10-31 Thomas Quinot <quinot@adacore.com> 1090 Pablo Oliveira <oliveira@adacore.com> 1091 1092 * exp_dist.adb (Get_Subprogram_Ids): This function will no more assign 1093 subprogram Ids, even if they are not yet assigned. 1094 (Build_Subprogram_Id): It is now this function that will take care of 1095 calling Assign_Subprogram_Ids if necessary. 1096 (Add_Receiving_Stubs_To_Declarations): Checking the subprograms ids 1097 should be done only once they are assigned. 1098 (Build_From_Any_Function, case of tagged types): Add missing call to 1099 Allocate_Buffer. 1100 (Corresponding_Stub_Type): New subprogram. Returns the associated stub 1101 type for an RACW type. 1102 (Add_RACW_Features): When processing an RACW declaration for which the 1103 designated type is already frozen, enforce E.2.2(14) rules immediately. 1104 (GARLIC_Support.Build_Subprogram_Receiving_Stubs): Do not perform any 1105 special reordering of controlling formals. 1106 1107 * exp_dist.ads (Corresponding_Stub_Type): New subprogram. Returns the 1108 associated stub type for an RACW type. 1109 11102006-10-31 Ed Schonberg <schonberg@adacore.com> 1111 1112 * exp_fixd.adb (Rounded_Result_Set): For multiplication and division of 1113 fixed-point operations in an integer context, i.e. as operands of a 1114 conversion to an integer type, indicate that result must be rounded. 1115 11162006-10-31 Robert Dewar <dewar@adacore.com> 1117 1118 * exp_imgv.adb (Expand_Image_Attribute): For Wide_[Wide_]Character 1119 cases, pass the encoding method, since it is now required by the run 1120 time. 1121 1122 * s-valwch.ads, s-valwch.adb (Value_Wide_Wide_Character): Avoid 1123 assumption that Str'First = 1. 1124 (Value_Wide_Character): Takes EM (encoding method) parameter and passes 1125 it on to the Value_Wide_Wide_Character call. 1126 (Value_Wide_Wide_Character): Takes EM (encoding method) parameter and 1127 properly handles a string of the form quote-encoded_wide_char-quote. 1128 1129 * s-wchcnv.adb: Minor reformatting 1130 11312006-10-31 Javier Miranda <miranda@adacore.com> 1132 1133 * exp_intr.adb (Expand_Dispatching_Constructor_Call): Add missing 1134 run-time membership test to ensure that the constructed object 1135 implements the target abstract interface. 1136 11372006-10-31 Robert Dewar <dewar@adacore.com> 1138 1139 * exp_prag.adb (Expand_Pragma_Common_Object): Use a single 1140 Machine_Attribute pragma internally to implement the user pragma. 1141 Add processing for pragma Interface so that it is now completely 1142 equivalent to pragma Import. 1143 1144 * sem_prag.adb (Analyze_Pragma, case Obsolescent): Extend this pragma 1145 so that it can be applied to all entities, including record components 1146 and enumeration literals. 1147 (Analyze_Pragma, case Priority_Specific_Dispatching): Check whether 1148 priority ranges are correct, verify compatibility against task 1149 dispatching and locking policies, and if everything is correct an entry 1150 is added to the table containing priority specific dispatching entries 1151 for this compilation unit. 1152 (Delay_Config_Pragma_Analyze): Delay processing 1153 Priority_Specific_Dispatching pragmas because when processing the 1154 pragma we need to access run-time data, such as the range of 1155 System.Any_Priority. 1156 (Sig_Flags): Add Pragma_Priority_Specific_Dispatching. 1157 Allow pragma Unreferenced as a context item 1158 Add pragma Preelaborable_Initialization 1159 (Analyze_Pragma, case Interface): Interface is extended so that it is 1160 now syntactically and semantically equivalent to Import. 1161 (Analyze_Pragma, case Compile_Time_Warning): Fix error of blowups on 1162 insertion characters. 1163 Add handling for Pragma_Wide_Character_Encoding 1164 (Process_Restrictions_Restriction_Warnings): Ensure that a warning 1165 never supercedes a real restriction, and that a real restriction 1166 always supercedes a warning. 1167 (Analyze_Pragma, case Assert): Set Low_Bound_Known if assert is of 1168 appropriate form. 1169 11702006-10-31 Bob Duff <duff@adacore.com> 1171 Ed Schonberg <schonberg@adacore.com> 1172 Robert Dewar <dewar@adacore.com> 1173 1174 * exp_ch7.adb (Build_Array_Deep_Procs, Build_Record_Deep_Procs, 1175 Make_Deep_Record_Body): Rename Is_Return_By_Reference_Type to be 1176 Is_Inherently_Limited_Type, because return-by-reference has no meaning 1177 in Ada 2005. 1178 (Find_Node_To_Be_Wrapped): Use new method of determining the result 1179 type of the function containing a return statement, because the 1180 Return_Type field was removed. We now use the Return_Applies_To field. 1181 1182 * exp_util.ads, exp_util.adb: Use new subtype N_Membership_Test 1183 (Build_Task_Image_Decl): If procedure is not called from an 1184 initialization procedure, indicate that function that builds task name 1185 uses the sec. stack. Otherwise the enclosing initialization procedure 1186 will carry the indication. 1187 (Insert_Actions): Remove N_Return_Object_Declaration. We now use 1188 N_Object_Declaration instead. 1189 (Kill_Dead_Code): New interface to implement -gnatwt warning for 1190 conditional dead code killed, and change implementation accordingly. 1191 (Insert_Actions): Add N_Return_Object_Declaration case. 1192 Correct comment to mention N_Extension_Aggregate node. 1193 (Set_Current_Value_Condition): Call Safe_To_Capture_Value to avoid bad 1194 attempts to save information for global variables which cannot be 1195 safely tracked. 1196 (Get_Current_Value_Condition): Handle conditions the other way round 1197 (constant on left). Also handle right operand of AND and AND THEN 1198 (Set_Current_Value_Condition): Corresponding changes 1199 (Append_Freeze_Action): Remove unnecessary initialization of Fnode. 1200 (Get_Current_Value_Condition): Handle simple boolean operands 1201 (Get_Current_Value_Condition): Handle left operand of AND or AND THEN 1202 (Get_Current_Value_Condition): If the variable reference is within an 1203 if-statement, does not appear in the list of then_statments, and does 1204 not come from source, treat it as being at unknown location. 1205 (Get_Current_Value_Condition): Enhance to allow while statements to be 1206 processed as well as if statements. 1207 (New_Class_Wide_Subtype): The entity for a class-wide subtype does not 1208 come from source. 1209 (OK_To_Do_Constant_Replacement): Allow constant replacement within body 1210 of loop. This is safe now that we fixed Kill_Current_Values. 1211 (OK_To_Do_Constant_Replacement): Check whether current scope is 1212 Standard, before examining outer scopes. 1213 12142006-10-31 Vincent Celier <celier@adacore.com> 1215 1216 * krunch.ads, krunch.adb (Krunch): New Boolean parameter VMS_On_Target. 1217 When True, apply VMS treatment to children of packages A, G, I and S. 1218 For F320-016 1219 1220 * fname-uf.adb (Get_File_Name): Call Krunch with OpenVMS_On_Target 1221 12222006-10-31 Robert Dewar <dewar@adacore.com> 1223 Ed Schonberg <schonberg@adacore.com> 1224 1225 * freeze.adb: Add handling of Last_Assignment field 1226 (Warn_Overlay): Supply missing continuation marks in error msgs 1227 (Freeze_Entity): Add check for Preelaborable_Initialization 1228 1229 * g-comlin.adb: Add Warnings (Off) to prevent new warning 1230 1231 * g-expect.adb: Add Warnings (Off) to prevent new warning 1232 1233 * lib-xref.adb: Add handling of Last_Assignment field 1234 (Generate_Reference): Centralize handling of pragma Obsolescent here 1235 (Generate_Reference): Accept an implicit reference generated for a 1236 default in an instance. 1237 (Generate_Reference): Accept a reference for a node that is not in the 1238 main unit, if it is the generic body corresponding to an subprogram 1239 instantiation. 1240 1241 * xref_lib.adb: Add pragma Warnings (Off) to avoid new warnings 1242 1243 * sem_warn.ads, sem_warn.adb (Set_Warning_Switch): Add processing for 1244 -gnatwq/Q. 1245 (Warn_On_Useless_Assignment): Suppress warning if enclosing inner 1246 exception handler. 1247 (Output_Obsolescent_Entity_Warnings): Rewrite to avoid any messages on 1248 use clauses, to avoid messages on packages used to qualify, and also 1249 to avoid messages from obsolescent units. 1250 (Warn_On_Useless_Assignments): Don't generate messages for imported 1251 and exported variables. 1252 (Warn_On_Useless_Assignments): New procedure 1253 (Output_Obsolescent_Entity_Warnings): New procedure 1254 (Check_Code_Statement): New procedure 1255 1256 * einfo.ads, einfo.adb (Has_Static_Discriminants): New flag 1257 Change name Is_Ada_2005 to Is_Ada_2005_Only 1258 (Last_Assignment): New field for useless assignment warning 1259 12602006-10-31 Olivier Hainque <hainque@adacore.com> 1261 1262 * g-alleve.adb (lvx, stvx): Ceil-Round the Effective Address to the 1263 closest multiple of VECTOR_ALIGNMENT and not the closest multiple of 16. 1264 12652006-10-31 Bob Duff <duff@adacore.com> 1266 Robert Dewar <dewar@adacore.com> 1267 Ed Schonberg <schonberg@adacore.com> 1268 1269 * g-awk.adb (Default_Session, Current_Session): Compile this file in 1270 Ada 95 mode, because it violates the new rules for AI-318. 1271 1272 * g-awk.ads: Use overloaded subprograms in every case where we used to 1273 have a default of Current_Session. This makes the code closer to be 1274 correct for both Ada 95 and 2005. 1275 1276 * g-moreex.adb (Occurrence): Turn off warnings for illegal-in-Ada-2005 1277 code, relying on the fact that the compiler generates a warning 1278 instead of an error in -gnatg mode. 1279 1280 * lib-xref.ads (Xref_Entity_Letters): Add entry for new 1281 E_Return_Statement entity kind. 1282 Add an entry for E_Incomplete_Subtype in Xref_Entity_Letters. 1283 1284 * par.adb (P_Interface_Type_Definition): Addition of one formal to 1285 report an error if the reserved word abstract has been previously found. 1286 (SS_End_Type): Add E_Return for new extended_return_statement syntax. 1287 1288 * par-ch4.adb (P_Aggregate_Or_Paren_Expr): Improve message for 1289 parenthesized range attribute usage 1290 (P_Expression_No_Right_Paren): Add missing comment about error recovery. 1291 1292 * par-ch6.adb (P_Return_Object_Declaration): AI-318: Allow "constant" 1293 in the syntax for extended_return_statement. This is not in the latest 1294 RM, but the ARG is expected to issue an AI allowing this. 1295 (P_Return_Subtype_Indication,P_Return_Subtype_Indication): Remove 1296 N_Return_Object_Declaration. We now use N_Object_Declaration instead. 1297 (P_Return_Object_Declaration, P_Return_Subtype_Indication, 1298 P_Return_Statement): Parse the new syntax for extended_return_statement. 1299 1300 * par-endh.adb (Check_End, Output_End_Deleted, Output_End_Expected, 1301 Output_End_Missing): Add error-recovery code for the new 1302 extended_return_statement syntax; that is, the new E_Return entry on 1303 the scope stack. 1304 1305 * s-auxdec-vms_64.ads, s-auxdec.ads (AST_Handler): Change type from 1306 limited to nonlimited, because otherwise we violate the new Ada 2005 1307 rules about returning limited types in function Create_AST_Handler in 1308 s-asthan.adb. 1309 1310 * sem.adb (Analyze): Add cases for new node kinds 1311 N_Extended_Return_Statement and N_Return_Object_Declaration. 1312 1313 * sem_aggr.adb (Aggregate_Constraint_Checks): Verify that component 1314 type is in the same category as type of context before applying check, 1315 to prevent anomalies in instantiations. 1316 (Resolve_Aggregate): Remove test for limited components in aggregates. 1317 It's unnecessary in Ada 95, because if it has limited components, then 1318 it must be limited. It's wrong in Ada 2005, because limited aggregates 1319 are now allowed. 1320 (Resolve_Record_Aggregate): Move check for limited types later, because 1321 OK_For_Limited_Init requires its argument to have been resolved. 1322 (Get_Value): When copying the component default expression for a 1323 defaulted association in an aggregate, use the sloc of the aggregate 1324 and not that of the original expression, to prevent spurious 1325 elaboration errors, when the expression includes function calls. 1326 (Check_Non_Limited_Type): Correct code for AI-287, extension aggregates 1327 were missing. We also didn't handle qualified expressions. Now also 1328 allow function calls. Use new common routine OK_For_Limited_Init. 1329 (Resolve_Extension_Aggregate): Minor fix to bad error message (started 1330 with space can upper case letter). 1331 1332 * sem_ch3.ads, sem_ch3.adb (Create_Constrained_Components): Set 1333 Has_Static_Discriminants flag 1334 (Record_Type_Declaration): Diagnose an attempt to declare an interface 1335 type with discriminants. 1336 (Process_Range_Expr_In_Decl): Do validity checks on range 1337 (Build_Discriminant_Constraints): Use updated form of 1338 Denotes_Discriminant. 1339 (Process_Subtype): If the subtype is a private subtype whose full view 1340 is a concurrent subtype, introduce an itype reference to prevent scope 1341 anomalies in gigi. 1342 (Build_Derived_Record_Type, Collect_Interface_Primitives, 1343 Record_Type_Declaration): The functionality of the subprograms 1344 Collect_Abstract_Interfaces and Collect_All_Abstract_Interfaces 1345 is now performed by a single routine. 1346 (Build_Derived_Record_Type): If the type definition includes an explicit 1347 indication of limitedness, then the type must be marked as limited here 1348 to ensure that any access discriminants will not be treated as having 1349 a local anonymous access type. 1350 (Check_Abstract_Overriding): Issue a detailed error message when an 1351 abstract subprogram was not overridden due to incorrect mode of its 1352 first parameter. 1353 (Analyze_Private_Extension_Declaration): Add support for the analysis of 1354 synchronized private extension declarations. Verify that the ancestor is 1355 a limited or synchronized interface or in the generic case, the ancestor 1356 is a tagged limited type or synchronized interface and all progenitors 1357 are either limited or synchronized interfaces. 1358 Derived_Type_Declaration): Check for presence of private extension when 1359 dealing with synchronized formal derived types. 1360 Process_Full_View): Enchance the check done on the usage of "limited" by 1361 testing whether the private view is synchronized. 1362 Verify that a synchronized private view is completed by a protected or 1363 task type. 1364 (OK_For_Limited_Init_In_05): New function. 1365 (Analyze_Object_Declaration): Move check for limited types later, 1366 because OK_For_Limited_Init requires its argument to have been resolved. 1367 Add -gnatd.l --Use Ada 95 semantics for limited function returns, 1368 in order to alleviate the upward compatibility introduced by AI-318. 1369 (Constrain_Corresponding_Record): If the constraint is for a component 1370 subtype, mark the itype as frozen, to avoid out-of-scope references to 1371 discriminants in the back-end. 1372 (Collect_Implemented_Interfaces): Protect the recursive algorithm of 1373 this subprogram against wrong sources. 1374 (Get_Discr_Value, Is_Discriminant): Handle properly references to a 1375 discriminant of limited type completed with a protected type, when the 1376 discriminant is used to constrain a private component of the type, and 1377 expansion is disabled. 1378 (Find_Type_Of_Object): Do not treat a return subtype that is an 1379 anonymous subtype as a local_anonymous_type, because its accessibility 1380 level is the return type of the enclosing function. 1381 (Check_Initialization): In -gnatg mode, turn the error "cannot 1382 initialize entities of limited type" into a warning. 1383 (OK_For_Limited_Init): Return true for generated nodes, since it 1384 sometimes violates the legality rules. 1385 (Make_Incomplete_Declaration): If the type for which an incomplete 1386 declaration is created happens to be the currently visible entity, 1387 preserve the homonym chain when removing it from visibility. 1388 (Check_Conventions): Add support for Ada 2005 (AI-430): Conventions of 1389 inherited subprograms. 1390 (Access_Definition): If this is an access to function that is the return 1391 type of an access_to_function definition, context is a type declaration 1392 and the scope of the anonymous type is the current one. 1393 (Analyze_Subtype_Declaration): Add the defining identifier of a regular 1394 incomplete subtype to the set of private dependents of the original 1395 incomplete type. 1396 (Constrain_Discriminated_Type): Emit an error message whenever an 1397 incomplete subtype is being constrained. 1398 (Process_Incomplete_Dependents): Transform an incomplete subtype into a 1399 corresponding subtype of the full view of the original incomplete type. 1400 (Check_Incomplete): Properly detect invalid usage of incomplete types 1401 and subtypes. 1402 14032006-10-31 Hristian Kirtchev <kirtchev@adacore.com> 1404 1405 * g-catiio.ads, g-catiio.adb (Value): New function. 1406 Given an input String, try and parse a valid Time value. 1407 14082006-10-31 Vincent Celier <celier@adacore.com> 1409 1410 * g-debpoo.adb (Is_Valid): Correctly compute Offset using 1411 Integer_Address arithmetic, as in Set_Valid. 1412 14132006-10-31 Arnaud Charlet <charlet@adacore.com> 1414 Robert Dewar <dewar@adacore.com> 1415 1416 * gnatcmd.adb (Process_Link): Use Osint.Executable_Name instead of 1417 handling executable extension manually and duplicating code. 1418 1419 * make.adb: Implement new -S switch 1420 (Gnatmake): Use new function Osint.Executable_Name instead 1421 of handling executable extension manually. 1422 1423 * prj-util.adb (Executable_Of): Make sure that if an Executable_Suffix 1424 is specified, the executable name ends with this suffix. 1425 Take advantage of Osint.Executable_Name instead of duplicating code. 1426 1427 * switch-m.adb: Recognize new gnatmake -S switch 1428 1429 * targparm.ads, targparm.adb (Executable_Extension_On_Target): New 1430 variable. 1431 (Get_Target_Parameters): Set Executable_Extension_On_Target if 1432 available. 1433 1434 * makeusg.adb: Add line for gnatmake -S switch 1435 14362006-10-31 Vincent Celier <celier@adacore.com> 1437 1438 * gnatlink.adb (Gnatlink): If gcc is not called with -shared-libgcc, 1439 call it with -static-libgcc, as there are some platforms, such as 1440 Darwin, where one of these two switches is compulsory to link. 1441 14422006-10-31 Vincent Celier <celier@adacore.com> 1443 1444 * gnatls.adb: Take into account GPR_PROJECT_PATH, when it is defined, 1445 instead of ADA_PROJECT_PATH, for the project path. 1446 (Gnatls): When displaying the project path directories, use host dir 1447 specs. 1448 1449 * prj-ext.adb (Prj.Ext elaboration): On VMS, only expand relative path 1450 names in the project path, as absolute paths may correspond to 1451 multi-valued VMS logical names. 1452 14532006-10-31 Vincent Celier <celier@adacore.com> 1454 1455 * g-os_lib.ads, g-os_lib.adb (Locate_Exec_On_Path): Always return an 1456 absolute path name. 1457 (Locate_Regular_File): Ditto 1458 (Change_Dir): Remove, no longer used 1459 (Normalize_Pathname): Do not use Change_Dir to get the drive letter 1460 on Windows. Get it calling Get_Current_Dir. 1461 (OpenVMS): Remove imported boolean, no longer needed. 1462 (Normalize_Pathname)[VMS]: Do not resolve directory names. 1463 (Pid_To_Integer): New function to convert a Process_Id to Integer 1464 14652006-10-31 Thomas Quinot <quinot@adacore.com> 1466 1467 * g-socket.ads, g-socket.adb (Close_Selector): Once the signalling 1468 sockets are closed, reset the R_Sig_Socket and W_Sig_Socket components 1469 to No_Socket. 1470 (Selector_Type): Add default value of No_Socket for R_Sig_Socket and 1471 W_Sig_Socket. 1472 14732006-10-31 Robert Dewar <dewar@adacore.com> 1474 1475 * g-speche.ads, g-speche.adb: Add special case to recognize misspelling 1476 initial letter o as a zero. 1477 14782006-10-31 Robert Dewar <dewar@adacore.com> 1479 1480 * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First 1481 14822006-10-31 Robert Dewar <dewar@adacore.com> 1483 1484 * layout.adb (Layout_Record_Type): Deal with non-static subtypes of 1485 variant records 1486 (Layout_Variant_Record): Retrieve the discriminants from the entity 1487 rather than from the type definition, because in the case of a full 1488 type for a private type we need to take the discriminants from the 1489 partial view. 1490 (Layout_Component_List): When applying the Max operator to variants with 1491 a nonstatic size, check whether either operand is static and scale that 1492 operand from bits to storage units before applying Max. 1493 (Layout_Type): In VMS, if a C-convention access type has no explicit 1494 size clause (and does not inherit one in the case of a derived type), 1495 then the size is reset to 32 from 64. 1496 14972006-10-31 Vincent Celier <celier@adacore.com> 1498 1499 * lib-load.adb (Load_Unit): Skip the test for a unit not found when 1500 its file has already been loaded, according to the unit being loaded, 1501 not to the current value of Multiple_Unit_Index. 1502 15032006-10-31 Thomas Quinot <quinot@adacore.com> 1504 Eric Botcazou <ebotcazou@adacore.com> 1505 Arnaud Charlet <charlet@adacore.com> 1506 1507 * Makefile.in: Set EH mechanism to ZCX for FreeBSD. 1508 (NO_REORDER_ADAFLAGS): New var defined to -fno-toplevel-reorder if 1509 possible. 1510 (a-except.o): Pass it to the compiler. 1511 (gnatlib-shared-vms): Removed -nostartfiles switch in link step. 1512 (LIBGNAT_TARGET_PAIRS for Windows): Avoid the use of the specific 1513 a-calend-mingw.adb version. 1514 1515 * Makefile.rtl: Added s-dsaser. 1516 Add object entries for Ada.Calendar.[Arithmetic/Formatting/Time_Zones] 1517 (GNATRTL_TASKING_OBJS): Add Ada.Dispatching and 1518 Ada.Dispatching.Round_Robin. 1519 Added new unit Ada.Containers.Restricted_Bounded_Doubly_Linked_Lists 1520 1521 * Make-lang.in: Remove all references to gt-ada-decl.h. 1522 Add concatenation (s-strops/s-sopco3/s-sopco4/s-sopco5) to compiler 1523 sources. 1524 Add dependency on ada/s-restri.o for GNAT1 and GNATBIND objects. 1525 Update dependencies. 1526 1527 * system-freebsd-x86.ads: Make ZCX the default EH mechanism for FreeBSD 1528 15292006-10-31 Vincent Celier <celier@adacore.com> 1530 1531 * mlib-utl.adb (Initialized): Remove, no longer used 1532 (Initialize): Remove, no longer used 1533 (Ar): If Ar_Exec is null, get the location of the archive builder and, 1534 if there is one, the archive indexer. Fail if the archive builder cannot 1535 be found. 1536 (Gcc): If the driver path is unknown, get it. Fail if the driver cannot 1537 be found. 1538 15392006-10-31 Ed Schonberg <schonberg@adacore.com> 1540 1541 * sem_ch10.ads, sem_ch10.adb (Check_Redundant_Withs, 1542 Process_Body_Clauses): If the context of a body includes a use clause 1543 for P.Q then a with_clause for P in the same body is not redundant, 1544 even if the spec also has a with_clause on P. 1545 Add missing continuation mark to error msg 1546 (Build_Limited_Views): A limited view of a type is tagged if its 1547 declaration includes a record extension. 1548 (Analyze_Proper_Body): Set Corresponding_Stub field in N_Subunit 1549 node, even if the subunit has errors. This avoids malfunction by 1550 Lib.Check_Same_Extended_Unit in the presence of syntax errors. 1551 (Analyze_Compilation_Unit): Add circuit to make sure we get proper 1552 generation of obsolescent messages for with statements (cannot do 1553 this too early, or we cannot implement avoiding the messages in the 1554 case of obsolescent units withing obsolescent units). 1555 (Install_Siblings): If the with_clause is on a remote descendant of 1556 an ancestor of the current compilation unit, find whether there is 1557 a sibling child unit that is immediately visible. 1558 (Remove_Private_With_Clauses): New procedure, invoked after completing 1559 the analysis of the private part of a nested package, to remove from 1560 visibility the private with_clauses of the enclosing package 1561 declaration. 1562 (Analyze_With_Clause): Remove Check_Obsolescent call, this checking is 1563 now centralized in Generate_Reference. 1564 (Install_Limited_Context_Clauses): Remove superfluous error 1565 message associated with unlimited view visible through use 1566 and renamings. In addition, at the point in which the error 1567 is reported, we add the backslash to the text of the error 1568 to ensure that it is reported as a single error message. 1569 Use new // insertion for some continuation messages 1570 (Expand_Limited_With_Clause): Use copy of name rather than name itself, 1571 to create implicit with_clause for parent unit mentioned in original 1572 limited_with_clause. 1573 (Install_Limited_With_Unit): Set entity of parent identifiers if the 1574 unit is a child unit. For ASIS queries. 1575 (Analyze_Subunit): If the subunit appears within a child unit, make all 1576 ancestor child units directly visible again. 1577 15782006-10-31 Robert Dewar <dewar@adacore.com> 1579 1580 * par-ch10.adb (P_Context_Clause): Minor error message fix 1581 15822006-10-31 Hristian Kirtchev <kirtchev@adacore.com> 1583 Javier Miranda <miranda@adacore.com> 1584 1585 * par-ch12.adb: Grammar update and cleanup. 1586 (P_Formal_Type_Definition, P_Formal_Derived_Type_Definition): Add 1587 support for synchronized derived type definitions. 1588 Add the new actual Abstract_Present to every call to 1589 P_Interface_Type_Definition. 1590 (P_Formal_Object_Declarations): Update grammar rules. Handle parsing of 1591 a formal object declaration with an access definition or a subtype mark 1592 with a null exclusion. 1593 (P_Generic_Association): Handle association with box, and others_choice 1594 with box, to support Ada 2005 partially parametrized formal packages. 1595 15962006-10-31 Robert Dewar <dewar@adacore.com> 1597 Javier Miranda <miranda@adacore.com> 1598 1599 * par-ch3.adb (P_Range_Or_Subtype_Mark): Check for bad parentheses 1600 (P_Type_Declaration): Remove barrier against the reserved word "limited" 1601 after "abstract" to give support to the new syntax of AARM 3.4 (2/2). 1602 (P_Type_Declaration): Minor code cleanup. Add support for synchronized 1603 private extensions. 1604 (P_Type_Declaration): Add the new actual Abstract_Present to every call 1605 to P_Interface_Type_Definition. 1606 (P_Interface_Type_Definition): Addition of one formal to report an error 1607 if the reserved word abstract has been previously found. 1608 (P_Identifier_Declarations): Update grammar rules. Handle parsing of an 1609 object renaming declaration with an access definition or subtype mark 1610 with a possible null exclusion. 1611 1612 * par-ch9.adb: Minor error msg fix 1613 1614 * par-load.adb: Add missing continuation mark to error msg 1615 1616 * par-tchk.adb: (Wrong_Token): Code cleanup, use concatenation 1617 16182006-10-31 Vincent Celier <celier@adacore.com> 1619 1620 * prj-dect.adb (Parse_Attribute_Declaration): Do not issue warning for 1621 unknown attribute in unknown package or in package that does not need 1622 to be checked. 1623 (Parse_Package_Declaration): Do not issue warning for unknown package in 1624 quiet output. 1625 16262006-10-31 Vincent Celier <celier@adacore.com> 1627 1628 * prj-makr.adb (Packages_To_Check_By_Gnatname): New global constant 1629 (Make): Call Parse with Packages_To_Check_By_Gnatname for parameter 1630 Packages_To_Check. 1631 16322006-10-31 Vincent Celier <celier@adacore.com> 1633 1634 * prj-nmsc.adb (Check_Ada_Name): For children of package A, G, I and S 1635 on VMS, change "__" to '.' before checking the name. 1636 (Record_Ada_Source): Always add the source file name in the list of 1637 of sources, even if it is not the first time, as it is for another 1638 source index. 1639 (Get_Unit): Replace both '_' (after 'a', 'g', 'i' or 's') with a single 1640 dot, instead of replacing only the first '_'. 1641 1642 * prj-part.adb (Parse): Convert project file path to canonical form 1643 1644 * prj-proc.adb (Recursive_Process): Make sure that, when a project is 1645 extended, the project id of the project extending it is recorded in its 1646 data, even when it has already been processed as an imported project. 1647 16482006-10-31 Robert Dewar <dewar@adacore.com> 1649 1650 * repinfo.adb (List_Entities): Don't list entities from renaming 1651 declarations. 1652 16532006-10-31 Arnaud Charlet <charlet@adacore.com> 1654 Robert Dewar <dewar@adacore.com> 1655 1656 * restrict.ads, restrict.adb (Restriction_Active): Now returns False if 1657 only a restriction warning is active for the given restriction. This is 1658 desirable because we do not want to modify code in the case where only 1659 a warning is set. 1660 (Set_Profile_Restrictions): Make sure that a Profile_Warnings never 1661 causes overriding of real restrictions. 1662 Take advantage of new No_Restrictions constant. 1663 1664 * raise.h: (__gnat_set_globals): Change profile. 1665 16662006-10-31 Arnaud Charlet <charlet@adacore.com> 1667 1668 * rtsfind.adb: Remove s-polint from comment as it exists no more. 1669 1670 * rtsfind.ads: 1671 Move entity RE_Get_Active_Partition_Id to package System.DSA_Services. 1672 Move all the entities in obsolete package System.PolyORB_Interface to 1673 System.Partition_Interface. 1674 (RE_Storage_Size): New function in System.Tasking. 1675 (RE_Get_Ceiling): New entity. 1676 (RE_Set_Ceiling): New entity. 1677 (RO_PE_Get_Ceiling): New entity. 1678 (RO_RE_Set_Ceiling): New entity. 1679 (Inherit_CPP_DT): New entity 1680 16812006-10-31 Robert Dewar <dewar@adacore.com> 1682 1683 * scng.adb (Scan, case of numeric literal): Better msg for identifier 1684 starting with a digit. 1685 16862006-10-31 Ed Schonberg <schonberg@adacore.com> 1687 Thomas Quinot <quinot@adacore.com> 1688 Javier Miranda <miranda@adacore.com> 1689 Gary Dismukes <dismukes@adacore.com> 1690 1691 * sem_attr.ads, sem_attr.adb (Analyze_Access_Attribute): Diagnose 1692 properly an attempt to apply Unchecked_Access to a protected operation. 1693 (OK_Self_Reference): New subprogram to check the legality of an access 1694 attribute whose prefix is the type of an enclosing aggregate. 1695 Generalizes previous mechanism to handle attribute references nested 1696 arbitrarily deep within the aggregate. 1697 (Analyze_Access_Attribute): An access attribute whose prefix is a type 1698 can appear in an aggregate if this is a default-initialized aggregate 1699 for a self-referential type. 1700 (Resolve_Attribute, case Access): Ditto. 1701 Add support for new implementation defined attribute Stub_Type. 1702 (Eval_Attribute, case Attribute_Stub_Type): New case. 1703 (Analyze_Attribute, case Attribute_Stub_Type): New case. 1704 (Stream_Attribute_Available): Implement using new subprogram from 1705 sem_cat, Has_Stream_Attribute_Definition, instead of incorrect 1706 Has_Specified_Stream_Attribute flag. 1707 Disallow Storage_Size and Storage_Pool for access to subprogram 1708 (Resolve_Attribute, case 'Access et al): Take into account anonymous 1709 access types of return subtypes in extended return statements. Remove 1710 accessibility checks on anonymous access types when Unchecked_Access is 1711 used. 1712 (Analyze_Attribute): Add support for the use of 'Class to convert 1713 a class-wide interface to a tagged type. 1714 Add support for the attribute Priority. 1715 (Resolve_Attribute, case Attribute_Access): For Ada_05, add test for 1716 whether the designated type is discriminated with a constrained partial 1717 view and require static matching in that case. 1718 Add local variable Des_Btyp. The Designated_Type 1719 of an access to incomplete subtype is either its non-limited view if 1720 coming from a limited with or its etype if regular incomplete subtype. 1721 1722 * sem_cat.ads, sem_cat.adb (Validate_Remote_Access_To_Class_Wide_Type): 1723 Fix predicate to identify and allow cases of (expander-generated) 1724 references to tag of designated object of a RACW. 1725 (Validate_Static_Object_Name): In Ada 2005, a formal object is 1726 non-static, and therefore cannot appear as a primary in a preelaborable 1727 package. 1728 (Has_Stream_Attribute_Definition): New subprogram, abstracted from 1729 Has_Read_Write_Attributes. 1730 (Has_Read_Write_Attributes): Reimplement in termes of 1731 Has_Stream_Attribute_Definition. 1732 (Missing_Read_Write_Attributes): When checking component types in a 1733 record, unconditionally call Missing_Read_Write_Attributes recursively 1734 (remove guard checking for Is_Record_Type / Is_Access_Type). 1735 17362006-10-31 Robert Dewar <dewar@adacore.com> 1737 1738 * sem_ch11.adb (Analyze_Handled_Statements): Move final test for 1739 useless assignments here and conditionalize it on absence of exception 1740 handlers. 1741 (Analyze_Exception_Handlers): Small code reorganization of error 1742 detection code, for new handling of formal packages. 1743 17442006-10-31 Ed Schonberg <schonberg@adacore.com> 1745 Hristian Kirtchev <kirtchev@adacore.com> 1746 1747 * sem_ch12.ads, sem_ch12.adb (Save_References): If node is an operator 1748 that has been constant-folded, preserve information of original tree, 1749 for ASIS uses. 1750 (Analyze_Formal_Derived_Type): Set the limited present flag of the newly 1751 generated private extension declaration if the formal derived type is 1752 synchronized. Carry synchronized present over to the generated private 1753 extension. 1754 (Validate_Derived_Type_Instance): Ensure that the actual of a 1755 synchronized formal derived type is a synchronized tagged type. 1756 (Instantiate_Formal_Package): When creating the instantiation used to 1757 validate the actual package of a formal declared without a box, check 1758 whether the formal itself depends on a prior actual. 1759 (Instantiate_Formal_Subprogram): Create new entities for the defining 1760 identifiers of the formals in the renaming declaration, for ASIS use. 1761 (Instantiate_Formal_Subprogram, Instantiate_Formal_Type): When creating 1762 a renaming declaration or a subtype declaration for an actual in an 1763 instance, capture location information of declaration in generic, for 1764 ASIS use. 1765 (Instantiate_Formal_Package): Add comments on needed additional tests. 1766 AI-317 (partial parametrization) is fully implemented. 1767 (Validate_Private_Type_Instance): Add check for actual which 1768 must have preelaborable initialization 1769 Use new // insertion for some continuation messages 1770 (Analyze_Formal_Object_Declaration): Change usage of Expression to 1771 Default_Expression. Add type retrieval when the declaration has an 1772 access definition. Update premature usage of incomplete type check. 1773 (Check_Access_Definition): New subsidiary routine. Check whether the 1774 current compilation version is Ada 05 and the supplied node has an 1775 access definition. 1776 (Instantiate object): Alphabetize local variables. Handle the creation 1777 of new renaming declarations with respect to the kind of definition 1778 used - either an access definition or a subtype mark. Guard against 1779 unnecessary error message in the context of anonymous access types after 1780 they have been resolved. Add check for required null exclusion in a 1781 formal object declaration. 1782 (Switch_View): A private subtype of a non-private type needs to be 1783 switched (the base type can have been switched without its private 1784 dependents because of the last branch of Check_Private_View. 1785 (Check_Private_View): Do not recompute Base_Type (T), instead use cached 1786 value from BT. 1787 (Instantiate_Type): Emit an error message whenever a class-wide type of 1788 a tagged incomplete type is used as a generic actual. 1789 (Find_Actual_Type): Extend routine to handle a component type in a child 1790 unit that is imported from a formal package in a parent. 1791 (Validate_Derived_Type_Instance): Check that analyzed formal and actual 1792 agree on constrainedness, rather than checking against ultimate ancestor 1793 (Instantiate_Subprogram_Body): Create a cross-reference link to the 1794 generic body, for navigation purposes. 1795 17962006-10-31 Robert Dewar <dewar@adacore.com> 1797 Thomas Quinot <quinot@adacore.com> 1798 1799 * sem_ch13.adb: Storage pool cannot be given for access to subprogram 1800 type. 1801 (New_Stream_Subprogram): When processing an attribute definition clause 1802 for a stream-oriented subprogram, record an entity node occurring at 1803 the point of clause to use for checking the visibility of the clause, 1804 as defined by 8.3(23) as amended by AI-195. 1805 (New_Stream_Subprogram): New procedure, factoring behaviour from both 1806 New_Stream_Function and New_Stream_Procedure. 1807 (New_Stream_Function, New_Stream_Procedure): Removed. 1808 (Analyze_Attribute_Definition_Clause, case Address): Check new 1809 Alignment_Check check 1810 18112006-10-31 Ed Schonberg <schonberg@adacore.com> 1812 Javier Miranda <miranda@adacore.com> 1813 Robert Dewar <dewar@adacore.com> 1814 1815 * sem_ch4.adb (Try_Primitive_Operation): Code cleanup to ensure that we 1816 generate the same errors compiling under -gnatc. 1817 (Try_Object_Operation): If no candidate interpretation succeeds, but 1818 there is at least one primitive operation with the right name, report 1819 error in call rather than on a malformed selected component. 1820 (Analyze_Selected_Component): If the prefix is an incomplete type from 1821 a limited view, and the full view is available, use the full view to 1822 determine whether this is a prefixed call to a primitive operation. 1823 (Operator_Check): Verify that a candidate interpretation is a binary 1824 operation before checking the type of its second formal. 1825 (Analyze_Call): Add additional warnings for function call contexts not 1826 yet supported. 1827 (Analyze_Allocator): Move the check for "initialization not allowed for 1828 limited types" after analyzing the expression. This is necessary, 1829 because OK_For_Limited_Init looks at the structure of the expression. 1830 Before analysis, we don't necessarily know what sort of expression it 1831 is. For example, we don't know whether F(X) is a function call or an 1832 indexed component; the former is legal in Ada 2005; the latter is not. 1833 (Analyze_Allocator): Correct code for AI-287 -- extension aggregates 1834 were missing. We also didn't handle qualified expressions. Now also 1835 allow function calls. Use new common routine OK_For_Limited_Init. 1836 (Analyze_Type_Conversion): Do not perform some legality checks in an 1837 instance, because the error message will be redundant or spurious. 1838 (Analyze_Overloaded_Selected_Component): Do not do style check when 1839 setting an entity, since we do not know it is the right entity yet. 1840 (Analyze_Selected_Component): Move Generate_Reference call to Sem_Res 1841 (Analyze_Overloaded_Selected_Component): Same change 1842 (Analyze_Selected_Component): Remove unnecessary prefix type retrieval 1843 since regular incomplete subtypes are transformed into corresponding 1844 subtypes of their full views. 1845 (Complete_Object_Operation): Treat name of transformed subprogram call 1846 as coming from source, for browsing purposes. 1847 (Try_Primitive_Operation): If formal is an access parameter, compare 1848 with base type of object to determine whether it is a primitive 1849 operation. 1850 (Operator_Check): If no interpretation of the operator matches, check 1851 whether a use clause on any candidate might make the operation legal. 1852 (Try_Class_Wide_Operation): Check whether the first parameter is an 1853 access type whose designated type is class-wide. 1854 18552006-10-31 Robert Dewar <dewar@adacore.com> 1856 Ed Schonberg <schonberg@adacore.com> 1857 Gary Dismukes <dismukes@adacore.com> 1858 1859 * sem_ch5.ads, sem_ch5.adb (Analyze_Loop_Statement): Add circuit to 1860 warn on infinite loops. 1861 Add \\ to some continuation messages 1862 (Analyze_Assignment_Statement): Call Warn_On_Useless_Assignment 1863 (Process_Bounds): If the bounds are integer literals that result from 1864 constant-folding, and they carry a user-defined type, preserve that type 1865 rather than treating this as an integer range. 1866 (Analyze_Exit_Statement): Test for E_Return_Statement in legality check. 1867 (Analyze_Goto_Statement): Test for E_Return_Stateemnt in legality check. 1868 (Analyze_Assignment_Statement): Add call to Check_Elab_Assign for 1869 left hand side of assignment. 1870 (Analyze_Assignment): Add suport to manage assigments to the attribute 1871 priority of a protected object. 1872 (Check_Possible_Current_Value_Condition): Allow fully qualified names 1873 not just identifiers. 1874 (Check_Possible_Current_Value_Condition): Acquire left operand of AND 1875 or AND THEN for possible tracking. 1876 (Analyze_Iteration_Scheme): Check for setting Current_Value for the 1877 case of while loops so we can track values in the loop body. 1878 18792006-10-31 Ed Schonberg <schonberg@adacore.com> 1880 Hristian Kirtchev <kirtchev@adacore.com> 1881 Bob Duff <duff@adacore.com> 1882 1883 * sem_ch6.ads, sem_ch6.adb (Analyze_Subprogram_Declaration): A null 1884 procedure cannot be a protected operation (it is a basic_declaration, 1885 not a subprogram_declaration). 1886 (Check_Overriding_Indicator): Rename formal Does_Override to Overridden_ 1887 Subp. Add logic for entry processing. 1888 (Check_Synchronized_Overriding): New procedure in New_Overloaded_Entity. 1889 Determine whether an entry or subprogram of a protected or task type 1890 override an inherited primitive of an implemented interface. 1891 (New_Overloaded_Entity): Add calls to Check_Synchronized_Overriding. 1892 Update the actual used in calls to Check_Overriding_Indicator. 1893 (Analyze_Generic_Subprogram_Body): If the subprogram is a child unit, 1894 generate the proper reference to the parent unit, for cross-reference. 1895 (Analyze_Subprogram_Declaration): Protect Is_Controlling_Formal with 1896 Is_Formal. 1897 Add -gnatd.l --Use Ada 95 semantics for limited function returns, 1898 (Add_Extra_Formal): Revise procedure to allow passing in associated 1899 entity, scope, and name suffix, and handle setting of the new 1900 Extra_Formals field. 1901 (Create_Extra_Formals): Change existing calls to Add_Extra_Formal to 1902 pass new parameters. Add support for adding the new extra access formal 1903 for functions whose calls are treated as build-in-place. 1904 (Analyze_A_Return_Statement): Correct casing in error message. 1905 Move Pop_Scope to after Analyze_Function_Return, because an extended 1906 return statement really is a full-fledged scope. Otherwise, visibility 1907 doesn't work right. Correct use of "\" for continuation messages. 1908 (Analyze_Function_Return): Call Analyze on the Obj_Decl, rather than 1909 evilly trying to call Analyze_Object_Declaration directly. Otherwise, 1910 the node doesn't get properly marked as analyzed. 1911 (Analyze_Subprogram_Body): If subprogram is a function that returns 1912 an anonymous access type that denotes a task, build a Master Entity 1913 for it. 1914 (Analyze_Return_Type): Add call to Null_Exclusion_Static_Checks. Verify 1915 proper usage of null exclusion in a result definition. 1916 (Process_Formals): Code cleanup and new error message. 1917 (Process_Formals): Detect incorrect application of null exclusion to 1918 non-access types. 1919 (Conforming_Types): Handle conformance between [sub]types and itypes 1920 generated for entities that have null exclusions applied to them. 1921 (Maybe_Primitive_Operation): Add an additional type retrieval when the 1922 base type is an access subtype. This case arrises with null exclusions. 1923 (New_Overloaded_Entity): Do not remove the overriden entity from the 1924 homonym chain if it corresponds with an abstract interface primitive. 1925 (Process_Formals): Replace membership test agains Incomplete_Kind with a 1926 call to the synthesized predicate Is_Incomplete_Type. 1927 (Analyze_Subprogram_Body): Check wrong placement of abstract interface 1928 primitives. 1929 (Analyze_Subprogram_Declaration): Check that abstract interface 1930 primitives are abstract or null. 1931 (Analyze_Subprogram_Specification): Remove previous check for abstract 1932 interfaces because it was not complete. 1933 (Has_Interface_Formals): Removed. 1934 19352006-10-31 Ed Schonberg <schonberg@adacore.com> 1936 Javier Miranda <miranda@adacore.com> 1937 1938 * sem_ch7.adb (Check_Anonymous_Access_Types): New procedure, subsidiary 1939 of Analyze_Package_Body, to create Itype references for anonymous 1940 access types created in the package declaration, whose designated types 1941 may have only a limited view. 1942 (Analyze_Package_Specification): For the private part of a nested 1943 package, install private_with_clauses of enclosing compilation unit if 1944 we are in its visible part. 1945 (Declare_Inherited_Private_Subprograms): Complete barrier 1946 to ensure that the primitive operation has an alias to some parent 1947 primitive. This is now required because, after the changes done for the 1948 implementation of abstract interfaces, the contents of the list of 1949 primitives has entities whose alias attribute references entities of 1950 such list of primitives. 1951 (Analyze_Package_Specification): Simplify code that handles parent units 1952 of instances and formal packages. 1953 (Uninstall_Declarations): Check the convention consistency among 1954 primitive overriding operations of a tagged record type. 1955 19562006-10-31 Robert Dewar <dewar@adacore.com> 1957 Hristian Kirtchev <kirtchev@adacore.com> 1958 Javier Miranda <miranda@adacore.com> 1959 Ed Schonberg <schonberg@adacore.com> 1960 1961 * sem_ch8.adb: Minor error msg rewording 1962 (Undefined): When checking for misspellings, invert arguments (to get 1963 expected and found set right) 1964 (Analyze_Subprogram_Renaming): Propagate Is_Pure, Is_Preelaborated 1965 (Analyze_Generic_Renaming): Same fix 1966 (Use_One_Package): Do not take into account the internal entities of 1967 abstract interfaces during the analysis of entities that are marked 1968 as potentially use-visible. 1969 (Find_Type): Handle the case of an attribute reference for 1970 implementation defined attribute Stub_Type (simply let the analysis of 1971 the attribute reference rewrite it). 1972 (Use_One_Type, End_Use_Type): Reject a reference to a limited view of a 1973 type that appears in a Use_Type clause. 1974 (Analyze_Object_Renaming): Add support for renaming of the Priority 1975 attribute. 1976 (Find_Type): In Ada 2005, a task type can be used within its own body, 1977 when it appears in an access definition. 1978 (Analyze_Object_Renaming): Remove warning on null_exclusion. 1979 (Analyze_Object_Renaming): Introduce checks for required null exclusion 1980 in a formal object declaration or in a subtype declaration. 1981 (Analyze_Subprogram_Renaming): Add call to Check_Null_Exclusion. 1982 (Check_Null_Exclusion): New local routine to 1983 Analyze_Subprogram_Renaming. Check whether the formals and return 1984 profile of a renamed subprogram have required null exclusions when 1985 their counterparts of the renaming already impose them. 1986 (In_Generic_Scope): New local routine to Analyze_Object_Renaming. 1987 Determine whether an entity is inside a generic scope. 1988 (In_Open_Scope): First pass of documentation update. 1989 (Find_Expanded_Name): Add support for shadow entities associated with 1990 limited withed packages. This is required to handle nested packages. 1991 (Analyze_Package_Renaming): Remove the restriction imposed by AI-217 1992 that makes a renaming of a limited withed package illegal. 1993 19942006-10-31 Hristian Kirtchev <kirtchev@adacore.com> 1995 Ed Schonberg <schonberg@adacore.com> 1996 1997 * sem_ch9.adb (Analyze_Protected_Definition): Remove call to 1998 Check_Overriding_Indicator. 1999 (Analyze_Task_Definition): Ditto. 2000 (Analyze_Protected_Type, Analyze_Task_Type): Code cleanup. 2001 (Check_Overriding_Indicator): To find overridden interface operation, 2002 examine only homonyms that have an explicit subprogram declaration, not 2003 inherited operations created by an unrelated type derivation. 2004 (Check_Overriding_Indicator): When checking for the presence of "null" 2005 in a procedure, ensure that the queried node is a procedure 2006 specification. 2007 (Matches_Prefixed_View_Profile): Add mechanism to retrieve the parameter 2008 type when the formal is an access to variable. 2009 (Analyze_Protected_Type): Add check for Preelaborable_Initialization 2010 (Analyze_Task_Type): Same addition 2011 (Analyze_Entry_Declaration): Call Generate_Reference_To_Formals, to 2012 provide navigation capabilities for entries. 2013 20142006-10-31 Hristian Kirtchev <kirtchev@adacore.com> 2015 Ed Schonberg <schonberg@adacore.com> 2016 Javier Miranda <miranda@adacore.com> 2017 Gary Dismukes <dismukes@adacore.com> 2018 2019 * sem_disp.adb (Check_Dispatching_Operation): Do not flag subprograms 2020 inherited from an interface ancestor by another interface in the 2021 context of an instance as 'late'. 2022 (Is_Tag_Indeterminate, Propagate_Tag): Handle properly the dereference 2023 of a call to a function that dispatches on access result. 2024 (Check_Dispatching_Operation): In case of late overriding of a primitive 2025 that covers abstract interface subprograms we register it in all the 2026 secondary dispatch tables associated with abstract interfaces. 2027 (Check_Dispatching_Call): Add check that a dispatching call is not made 2028 to a function with a controlling result of a limited type. This is a 2029 current implementation restriction. 2030 (Check_Controlling_Formal): Remove bogus checks for E.2.2(14). 2031 (Check_Dispatching_Operation): Do no emit a warning if the controlling 2032 argument is an interface type that is a generic formal. 2033 (Is_Interface_Subprogram): Removed. 2034 (Check_Dispatching_Operation): If the subprogram is not a dispatching 2035 operation, check the formals to handle the case in which it is 2036 associated with an abstract interface type. 2037 20382006-10-31 Robert Dewar <dewar@adacore.com> 2039 Ed Schonberg <schonberg@adacore.com> 2040 2041 * sem_elab.ads, sem_elab.adb (Check_Elab_Assign): New procedure 2042 Add new calls to this procedure during traversal 2043 (Activate_Elaborate_All_Desirable): Do not set elaboration flag on 2044 another unit if expansion is disabled. 2045 20462006-10-31 Robert Dewar <dewar@adacore.com> 2047 2048 * sem_eval.adb (Compile_Time_Compare): Make use of information from 2049 Current_Value in the conditional case, to evaluate additional 2050 comparisons at compile time. 2051 20522006-10-31 Ed Schonberg <schonberg@adacore.com> 2053 Hristian Kirtchev <kirtchev@adacore.com> 2054 Javier Miranda <miranda@adacore.com> 2055 2056 * sem_type.adb (Add_One_Interp): If node is an indirect call, preserve 2057 subprogram type to provide better diagnostics in case of ambiguity. 2058 (Covers): Handle coverage of formal and actual anonymous access types in 2059 the context of generic instantiation. 2060 (Covers/Interface_Present_In_Ancestors): Use the base type to manage 2061 abstract interface types; this is required to handle concurrent types 2062 with discriminants and abstract interface types. 2063 (Covers): Include type coverage of both regular incomplete subtypes and 2064 incomplete subtypes of incomplete type visibles through a limited with 2065 clause. 2066 20672006-10-31 Robert Dewar <dewar@adacore.com> 2068 Hristian Kirtchev <kirtchev@adacore.com> 2069 Ed Schonberg <schonberg@adacore.com> 2070 2071 * sem_util.ads, sem_util.adb (Enter_Name): Exclude -gnatwh warning 2072 messages for entities in packages which are not used. 2073 (Collect_Synchronized_Interfaces): New procedure. 2074 (Overrides_Synchronized_Primitive): New function. 2075 (Denotes_Discriminant): Extend predicate to apply to task types. 2076 Add missing continuation marks in error msgs 2077 (Unqualify): New function for removing zero or more levels of 2078 qualification from an expression. There are numerous places where this 2079 ought to be used, but we currently only deal properly with zero or one 2080 level. 2081 (In_Instance); The analysis of the actuals in the instantiation of a 2082 child unit is not within an instantiation, even though the parent 2083 instance is on the scope stack. 2084 (Safe_To_Capture_Value): Exclude the case of variables that are 2085 renamings. 2086 (Check_Obsolescent): Removed 2087 (Is_Aliased_View): A reference to an enclosing instance in an aggregate 2088 is an aliased view, even when rewritten as a reference to the target 2089 object in an assignment. 2090 (Get_Subprogram_Entity): New function 2091 (Known_To_Be_Assigned): New function 2092 (Type_Access_Level): Compute properly the access level of a return 2093 subtype that is an anonymous access type. 2094 (Explain_Limited_Type): Correct use of "\" for continuation messages. 2095 (Is_Transfer): The new extended_return_statement causes a transfer of 2096 control. 2097 (Has_Preelaborable_Initialization): New function 2098 (Has_Null_Exclusion): New function. Given a node N, determine whether it 2099 has a null exclusion depending on its Nkind. 2100 Change Is_Lvalue to May_Be_Lvalue 2101 (May_Be_Lvalue): Extensive additional code to deal with subprogram 2102 arguments (IN parameters are not Lvalues, IN OUT parameters are). 2103 (Safe_To_Capture_Value): Extend functionality so it can be used for 2104 the current value condition case. 2105 (Has_Compatible_Alignment): New function 2106 (Is_Dependent_Component_Of_Mutable_Object): Revise the tests for mutable 2107 objects to handle the Ada 2005 case, where aliasedness no longer implies 2108 that the object is constrained. In particular, for dereferenced names, 2109 the designated object must be assumed to be unconstrained. 2110 (Kill_Current_Values): Properly deal with the case where we encounter 2111 a loop in the scope chain. 2112 (Safe_To_Capture_Value): Do not let a loop stop us from capturing 2113 a value. 2114 (Compile_Time_Constraint_Error): Improve error message in error case 2115 2116 * exp_ch13.adb (Expand_N_Freeze_Entity): Remove the freezing node 2117 associated with entities of abstract interface primitives. 2118 Call Apply_Address_Clause_Check instead of Apply_Alignment_Check 2119 21202006-10-31 Robert Dewar <dewar@adacore.com> 2121 2122 * s-osinte-tru64.adb: 2123 Mark Asm statements Volatile to prevent warnings (seems a 2124 reasonable change anyway) 2125 Fixes new warnings 2126 2127 * s-mastop-irix.adb: Add Volatile to Asm statements 2128 Suppresses warning, and seems appropriate in any case 2129 2130 * s-osinte-vms.adb: Add Volatile to Asm statement 2131 2132 * s-vaflop-vms-alpha.adb: Add Volatile to Asm statements 2133 2134 * exp_code.ads, exp_code.adb (Asm_Input_Value): Note that Error can be 2135 returned. 2136 Add call to Check_Code_Statement 2137 21382006-10-31 Robert Dewar <dewar@adacore.com> 2139 Ed Schonberg <schonberg@adacore.com> 2140 Bob Duff <duff@adacore.com> 2141 2142 * sinfo.ads, sinfo.adb (Set_Synchronized_Present, 2143 Synchronized_Present): Add Formal_Derived_Type_Definition and 2144 Private_Extension_Declaration to the list of assertions. 2145 (Is_Entry_Barrier_Function): New flag 2146 (Has_Self_Reference): New flag on aggregates, to indicate that they 2147 contain a reference to the enclosing type, inserted through a default 2148 initialization. 2149 (Next_Rep_Item): Move from Node4 to Node5. 2150 (Entity): Add this field for N_Attribute_Definition_Clause. 2151 (Comes_From_Extended_Return_Statement): New flag on N_Return_Statement 2152 (N_Return_Object_Declaration): Remove this node kind. We now use 2153 N_Object_Declaration instead. 2154 (Actual_Designated_Subtype): Move to a different place to make room in 2155 N_Extended_Return_Statement. 2156 (Procedure_To_Call): Move to a different place to make room in 2157 N_Extended_Return_Statement. 2158 (Return_Type): Removed this field to make room in return statements 2159 (both kinds). 2160 (Return_Statement_Entity): New field in return statements, in part to 2161 replace Return_Type, and in part to support the fact that return 2162 statements are now pushed on the scope stack during semantic analysis. 2163 (Return_Object_Declarations): New field to support extended return 2164 statements. 2165 (N_Extended_Return_Statement): New node for extended_return_statement 2166 nonterminal. 2167 (N_Return_Object_Declaration): New node for part of 2168 extended_return_statement nonterminal. Needed because all the necessary 2169 fields won't fit in N_Extended_Return_Statement. 2170 Generic_associations now carry the Box_Present flag, to indicate a 2171 default for an actual in a partially parametrized formal package. 2172 2173 * snames.h, snames.ads, snames.adb: Add definition for Validity_Check 2174 (Preset_Names): Add entries for Priority_Specific_Dispatching pragma 2175 and for the new predefined dispatching policies: EDF_Across_Priorities, 2176 Non_Preemptive_Within_Priorities, and Round_Robin_Within_Priorities. 2177 Introduce new name Stub_Type for implementation defined attribute. 2178 Add pragma Preelaborable_Initialization 2179 Add entry for Priority attribute. 2180 Add Pragma_Wide_Character_Encoding 2181 (Get_Convention_Name): Given a convention id, this function returns the 2182 corresponding name id from the names table. 2183 21842006-10-31 Ed Schonberg <schonberg@adacore.com> 2185 Robert Dewar <dewar@adacore.com> 2186 Bob Duff <duff@adacore.com> 2187 2188 * sprint.adb (Sprint_Node_Actual, case Parameter_Specification): Do not 2189 print null exclusion twice in the case of an access definition, 2190 Implement new -gnatL switch 2191 Remove N_Return_Object_Declaration. We now use 2192 N_Object_Declaration instead. Implement the case for 2193 N_Extended_Return_Statement. Alphabetize the cases. 2194 Add cases for new nodes N_Extended_Return_Statement and 2195 N_Return_Object_Declaration. The code is not yet written. 2196 Update the output for N_Formal_Object_Declaration 2197 and N_Object_Renaming_Declaration. 2198 (Write_Itype): Account for the case of a modular integer subtype whose 2199 base type is private. 2200 22012006-10-31 Arnaud Charlet <charlet@adacore.com> 2202 2203 * s-restri.ads, s-restri.adb: Mark this package as Preelaborate. 2204 Remove elaboration code, now done in the binder. 2205 2206 * s-rident.ads: Make this unit Preelaborate. 2207 (No_Restrictions): New constant used to clean up code and follow 2208 preelaborate constraints. 2209 2210 * s-stalib.adb: 2211 Add System.Restrictions dependence, referenced directly from the 2212 binder generated file. 2213 22142006-10-31 Gary Dismukes <dismukes@adacore.com> 2215 2216 * s-scaval.adb (Initialize): Add new Boolean flag AFloat that is set 2217 True when AAMP extended floating-point is in use (48-bit). Change type 2218 ByteLF to ByteLLF, add new array type ByteLF and condition the size of 2219 the two byte array types on AFloat. Change type of IV_Ilf overlay 2220 variable from Byte8 to ByteLF. Add appropriate initializations of 2221 floating-point overlays for AAMP cases. 2222 22232006-10-31 Javier Miranda <miranda@adacore.com> 2224 2225 * s-tpoben.ads, s-tpoben.adb, s-taprob.ads, s-taprob.adb 2226 (Get_Ceiling): New subprogram that returns 2227 the ceiling priority of the protected object. 2228 (Set_Ceiling): New subprogram that sets the new ceiling priority of 2229 the protected object. 2230 2231 * s-tarest.adb: (Create_Restricted_Task): Fix potential CE. 2232 2233 * s-taskin.ads, s-taskin.adb: (Storage_Size): New function. 2234 22352006-10-31 Jose Ruiz <ruiz@adacore.com> 2236 2237 * s-tpobop.adb (Requeue_Call): Introduce a dispatching point when 2238 requeuing to the same protected object to give higher priority tasks 2239 the opportunity to execute. 2240 22412006-10-31 Robert Dewar <dewar@adacore.com> 2242 2243 * widechar.adb (Is_Start_Of_Wide_Char): In case of brackets encoding, 2244 add more precise check for the character sequence that follows '[' to 2245 avoid possible confusion in case if '[' is the last character of a 2246 string literals. 2247 (Scan_Wide): Always allow brackets encoding 2248 22492006-10-31 Olivier Hainque <hainque@adacore.com> 2250 2251 * s-stchop.ads: make this unit preelaborate. This is desirable in 2252 general and made mandatory by the use of this unit by s-taprop which 2253 is itself preelaborate. 2254 2255 * s-stchop-vxworks.adb (Set_Stack_Info, Task_Descriptor type): Add 2256 Td_Events component. 2257 22582006-10-31 Vincent Celier <celier@adacore.com> 2259 2260 * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed 2261 in file names. 2262 22632006-10-31 Vincent Celier <celier@adacore.com> 2264 2265 * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005 2266 22672006-10-31 Vincent Celier <celier@adacore.com> 2268 2269 * makegpr.adb (Check_Compilation_Needed): Take into account path names 2270 with spaces. 2271 (Check_Compilation_Needed): When checking a C or C++ source, do not 2272 resolve symbolic links. 2273 (Display_Command): New Boolean parameter Ellipse, defaulted to False. 2274 When not in verbose mode and Ellipse is True, display "..." for the 2275 first argument with Display set to False. 2276 (Build_Global_Archive): Always set Display True for the first object 2277 file. Call Display_Command with Ellipse set to True. 2278 22792006-10-31 Matt Heaney <heaney@adacore.com> 2280 2281 * a-crbtgo.ads: Commented each subprogram 2282 2283 * a-crbtgo.adb: Added reference to book from which algorithms were 2284 adapted. 2285 2286 * a-crbtgk.ads, a-crbtgk.adb (Generic_Insert_Post): pass flag to 2287 indicate which child. 2288 (Generic_Conditional_Insert): changed parameter name from "Success" to 2289 "Inserted". 2290 (Generic_Unconditional_Insert_With_Hint): improved algorithm 2291 2292 * a-coorse.adb (Replace_Element): changed parameter name in call to 2293 conditional insert operation. 2294 2295 * a-convec.adb, a-coinve.adb (Insert): removed obsolete comment 2296 2297 * a-cohama.adb (Iterate): manipulate busy-bit here, instead of in 2298 Generic_Iteration 2299 2300 * a-ciorse.adb (Replace_Element): changed parameter name in call to 2301 conditional insert operation. 2302 2303 * a-cihama.adb (Iterate): manipulate busy-bit here, instead of in 2304 Generic_Iteration. 2305 2306 * a-cidlli.ads, a-cidlli.adb (Splice): Position param is now mode in 2307 instead of mode inout. 2308 2309 * a-chtgop.adb (Adjust): modified comments to reflect current AI-302 2310 draft 2311 (Generic_Read): preserve existing buckets array if possible 2312 (Generic_Write): don't send buckets array length anymore 2313 2314 * a-cdlili.ads, a-cdlili.adb (Splice): Position param is now mode in 2315 instead of mode inout. 2316 2317 * a-cihase.adb (Difference): iterate over smaller of Tgt and Src sets 2318 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration 2319 2320 * a-cohase.adb (Difference): iterate over smaller of Tgt and Src sets 2321 (Iterate): manipulate busy-bit here, instead of in Generic_Iteration 2322 (Replace_Element): local operation is now an instantiation 2323 2324 * a-chtgke.ads, a-chtgke.adb (Generic_Conditional_Insert): manually 2325 check current length. 2326 (Generic_Replace_Element): new operation 2327 23282006-10-31 Doug Rupp <rupp@adacore.com> 2329 2330 * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function. 2331 Call TBK$SYMBOLIZE without omitting parameters. 2332 23332006-10-31 Vincent Celier <celier@adacore.com> 2334 2335 * symbols-processing-vms-ia64.adb, 2336 symbols-processing-vms-alpha.adb (Process): Do not include symbols 2337 that come from generic instantiations in bodies. 2338 23392006-10-31 Pat Rogers <rogers@adacore.com> 2340 2341 * a-rttiev.ads, a-rttiev.adb: 2342 This is a significant redesign primarily for the sake of automatic 2343 timer task termination but also to fix a design flaw. 2344 Therefore we are now using an RTS lock, instead of a protected 2345 object, to provide mutual exclusion to the queue of pending events 2346 and the type Timing_Event is no longer a protected type. 2347 23482006-10-31 Robert Dewar <dewar@adacore.com> 2349 Cyrille Comar <comar@adacore.com> 2350 Ben Brosgol <brosgol@adacore.com> 2351 2352 * debug.adb: Update flags documentation 2353 2354 * gnat_ugn.texi: Add documentation for new -gnatwq switch 2355 Clean up documentation for several other warning switches 2356 Clarify how task stack size can be specified with various 2357 versions of Windows. 2358 Add note that -gnatVo includes ranges including loops 2359 Add documentation for -gnatL switch 2360 Add note on elaboration warning for initializing variables 2361 Add documentation for new -gnatwt warning switch 2362 Document new form of pragma Warnings (On|Off, string) 2363 Add comment on use of pragma Warnings to control warnings 2364 Add documentation for -gnatjnn switch 2365 Modify section on interfacing with C for VMS 64-bit. 2366 Add doc for -gnatVe/E 2367 Add documentation of new warning flags -gnatww/-gnatwW 2368 Add warnings about address clause overlays to list of warnings 2369 (Exception Handling Control): Document that the option --RTS must be 2370 used consistently for gcc and gnatbind. 2371 Clarify that inlining is not always possible 2372 Update documentation on pragma Unchecked_Union. 2373 2374 * gnat_rm.texi: 2375 Add documentation for new extended version of pragma Obsolescent 2376 Add documentation for implementation defined attribute 'Stub_Type. 2377 Add note on use of Volatile in asm statements 2378 Add documentation on use of pragma Unreferenced in context clause 2379 Document new form of pragma Warnings (On|Off, pattern) 2380 Document pragma Wide_Character_Encoding 2381 Add note that pragma Restrictions (No_Elaboration_Code) is only fully 2382 enforced if code generation is active. 2383 Add section on pragma Suppress to document GNAT specific check 2384 Alignment_Check 2385 Clarify difference between No_Dispatching_Calls & No_Dispatch. 2386 Add documentation for pragma Restrictions (No_Elaboration_Code) 2387 2388 * gnat-style.texi: 2389 Add comments on layout of subprogram local variables in the 2390 presence of nested subprograms. 2391 2392 * ug_words: Resync. 2393 2394 * elists.ads: Minor reformatting 2395 Node returns Node_Or_Entity_Id (doc change only) 2396 2397 * xgnatugn.adb: Replace ACADEMICEDITION with GPLEDITION 2398 2399 * g-arrspl.ads (Create): Update comments. 2400 2401 * sem.ads: Add details on the handling of the scope stack. 2402 2403 * usage.adb: Update documentation. 2404 2405 * validsw.ads, validsw.adb: 2406 Add definition of Validity_Check_Components and implement -gnatVe/E 2407 2408 * vms_data.ads: Add missing VMS qualifiers. 2409 2410 * s-addope.ads: Add documentation on overflow and divide by zero 2411 24122006-10-31 Robert Dewar <dewar@adacore.com> 2413 Thomas Quinot <quinot@adacore.com> 2414 Arnaud Charlet <charlet@adacore.com> 2415 2416 * fmap.adb: Put routines in alpha order 2417 2418 * g-boumai.ads: Remove redundant 'in' keywords 2419 2420 * g-cgi.adb: Minor reformatting 2421 2422 * g-cgi.ads: Remove redundant 'in' keywords 2423 2424 * get_targ.adb: Put routines in alpha order 2425 2426 * prj-attr.ads: Minor reformatting 2427 2428 * s-atacco.ads: Minor reformatting 2429 2430 * scn.adb: Put routines in alpha order 2431 2432 * sinput-l.adb: Minor comment fix 2433 2434 * sinput-p.adb: Minor comment fix 2435 2436 * s-maccod.ads: Minor reformatting 2437 2438 * s-memory.adb: Minor reformatting 2439 2440 * s-htable.adb: Fix typo in comment. 2441 2442 * s-secsta.adb: Minor comment update. 2443 2444 * s-soflin.adb: Minor reformatting 2445 2446 * s-stoele.ads: 2447 Add comment about odd qualification in Storage_Offset declaration 2448 2449 * s-strxdr.adb: 2450 Remove unnecessary 'in' keywords for formal parameters. 2451 2452 * treeprs.adt: Minor reformatting 2453 2454 * urealp.adb: Put routines in alpha order 2455 2456 * s-wchcon.ads, s-wchcon.adb (Get_WC_Encoding_Method): New version 2457 taking string. 2458 2459 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords 2460 2461 * g-trasym-vms-ia64.adb: Remove redundant 'in' keywords 2462 2463 * env.c (__gnat_unsetenv): Unsetenv is unavailable on LynxOS, so 2464 workaround as on other platforms. 2465 2466 * g-eacodu-vms.adb: Remove redundant 'in' keywords 2467 * g-expect-vms.adb: Remove redundant 'in' keywords 2468 2469 * gnatdll.adb (Add_Files_From_List): Handle Name_Error and report a 2470 clear error message if the list-of-files file cannot be opened. 2471 2472 * g-thread.adb (Unregister_Thread_Id): Add use type Thread_Id so the 2473 equality operator is always visible. 2474 2475 * lang.opt: Woverlength-strings: New option. 2476 2477 * nmake.adt: 2478 Update copyright, since nmake.ads and nmake.adb have changed. 2479 2480 * osint-b.ads, osint-b.adb (Time_From_Last_Bind): removed function . 2481 (Binder_Output_Time_Stamps_Set): removed. 2482 (Old_Binder_Output_Time_Stamp): idem. 2483 (New_Binder_Output_Time_Stamp): idem. 2484 (Recording_Time_From_Last_Bind): idem. 2485 (Recording_Time_From_Last_Bind): Make constant. 2486 2487 * output.ads, output.adb (Write_Str): Allow LF characters 2488 (Write_Spaces): New procedure 2489 2490 * prepcomp.adb (Preproc_Data_Table): Change Increment from 5% to 100% 2491 2492 * inline.adb: Minor reformatting 2493 2494 * s-asthan-vms-alpha.adb: Remove redundant 'in' keywords 2495 2496 * s-mastop-vms.adb: Remove redundant 'in' keywords 2497 2498 * s-osprim-vms.adb: Remove redundant 'in' keywords 2499 2500 * s-trafor-default.adb: Remove redundant 'in' keywords 2501 2502 * 9drpc.adb: Remove redundant 'in' keywords 2503 2504 * s-osinte-mingw.ads: Minor reformatting 2505 2506 * s-inmaop-posix.adb: Minor reformatting 2507 2508 * a-direio.ads: Remove quotes from Compile_Time_Warning message 2509 2510 * a-exexda.adb: Minor code reorganization 2511 2512 * a-filico.adb: Minor reformatting 2513 2514 * a-finali.adb: Minor reformatting 2515 2516 * a-nudira.ads: Remove quote from Compile_Time_Warning message 2517 2518 * a-numeri.ads: Minor reformatting 2519 2520 * a-sequio.ads: Remove quotes from Compile_Time_Warning message 2521 2522 * exp_pakd.ads: Fix obsolete comment 2523 2524 * a-ztenau.adb, a-ztenio.adb, a-wtenau.adb, a-tienau.adb, 2525 a-wtenio.adb (Put): Avoid assuming low bound of string is 1. 2526 Probably not a bug, but certainly neater and more efficient. 2527 2528 * a-tienio.adb: Minor reformatting 2529 2530 * comperr.adb (Compiler_Abort): Call Cancel_Special_Output at start 2531 Avoid assuming low bound of string is 1. 2532 2533 * gnatbind.adb: Change Bindusg to package and rename procedure as 2534 Display, which now ensures that it only outputs usage information once. 2535 (Scan_Bind_Arg): Avoid assuming low bound of string is 1. 2536 2537 * g-pehage.adb (Build_Identical_Keysets): Replace use of 1 by 2538 Table'First. 2539 2540 * g-regpat.adb (Insert_Operator): Add pragma Warnings (Off) to kill 2541 warning. 2542 (Match): Add pragma Assert to ensure that Matches'First is zero 2543 2544 * g-regpat.ads (Match): Document that Matches lower bound must be zero 2545 2546 * makeutl.adb (Is_External_Assignment): Add pragma Assert's to check 2547 documented preconditions (also kills warnings about bad indexes). 2548 2549 * mdll.adb (Build_Dynamic_Library): Avoid assumption that Afiles'First 2550 is 1. 2551 (Build_Import_Library): Ditto; 2552 2553 * mdll-utl.adb: (Gnatbind): Avoid assumption that Alis'First = 1 2554 2555 * rtsfind.adb (RTE_Error_Msg): Avoid assuming low bound of string is 1. 2556 2557 * sem_case.adb (Analyze_Choices): Add pragma Assert to check that 2558 lower bound of choice table is 1. 2559 2560 * sem_case.ads (Analyze_Choices): Document that lower bound of 2561 Choice_Table is 1. 2562 2563 * s-imgdec.adb (Set_Decimal_Digits): Avoid assuming low bound of 2564 string is 1. 2565 2566 * uintp.adb (Init_Operand): Document that low bound of Vec is always 1, 2567 and add appropriate Assert pragma to suppress warnings. 2568 2569 * atree.h, atree.ads, atree.adb 2570 Change Elist24 to Elist25 2571 Add definitions of Field28 and Node28 2572 (Traverse_Field): Use new syntactic parent table in sinfo. 2573 2574 * cstand.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only 2575 2576 * itypes.adb: Change name Is_Ada_2005 to Is_Ada_2005_Only 2577 2578 * exp_tss.adb: Put routines in alpha order 2579 2580 * fe.h: Remove redundant declarations. 2581 25822006-10-23 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2583 2584 * utils.c (builtin_function): Rename to gnat_builtin_function. 2585 Move common code to add_builtin_function. 2586 * misc.c (LANG_HOOKS_BUILTIN_FUNCTION): Define as 2587 gnat_builtin_function. 2588 * gigi.h (builtin_function): Rename to gnat_builtin_function. 2589 Change the signature. 2590 25912006-10-16 Brooks Moses <bmoses@stanford.edu> 2592 2593 * Makefile.in: Add TEXI2PDF definition. 2594 * Make-lang.in: Add "ada.pdf" target. 2595 25962006-10-03 Kazu Hirata <kazu@codesourcery.com> 2597 2598 * decl.c, utils.c: Fix comment typos. 2599 * utils.c: Fix a typo. 2600 26012006-09-28 Eric Botcazou <ebotcazou@adacore.com> 2602 2603 * decl.c (gnat_to_gnu_entity) <E_Procedure>: Do not set "const" flag 2604 on "pure" Ada subprograms if SJLJ exceptions are used. 2605 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Set TREE_NO_WARNING 2606 on the declaration node of JMPBUF_SAVE. 2607 * utils.c (init_gigi_decls): Set DECL_IS_PURE on the declaration nodes 2608 of Get_Jmpbuf_Address_Soft and Get_GNAT_Exception. 2609 * utils2.c (build_call_0_expr): Do not set TREE_SIDE_EFFECTS. 2610 26112006-08-20 Laurent Guerby <laurent@guerby.net> 2612 2613 PR ada/28716 2614 g-socket.adb (Bind_Socket): Call Set_Address. 2615 26162006-09-15 Eric Botcazou <ebotcazou@adacore.com> 2617 2618 PR ada/15802 2619 * decl.c (same_discriminant_p): New static function. 2620 (gnat_to_gnu_entity) <E_Record_Type>: When there is a parent 2621 subtype and we have discriminants, fix up the COMPONENT_REFs 2622 for the discriminants to make them reference the corresponding 2623 fields of the parent subtype after it has been built. 2624 26252006-09-15 Roger Sayle <roger@eyesopen.com> 2626 2627 PR ada/18817 2628 * utils.c (max_size): Perform constant folding of (A ? B : C) - D 2629 into A ? B - D : C - D when calculating the size of a MINUS_EXPR. 2630 26312006-09-13 Olivier Hainque <hainque@adacore.com> 2632 2633 PR ada/29025 2634 * trans.c (gnat_gimplify_expr) <ADDR_EXPR>: When taking the address 2635 of a SAVE_EXPR, just make the operand addressable/not-readonly and 2636 let the common gimplifier code make and propagate a temporary copy. 2637 (call_to_gnu): Clarify the use of SAVE_EXPR for not addressable 2638 out/in-out actuals and defer setting the addressable/readonly bits 2639 to the gimplifier. 2640 26412006-09-13 Eric Botcazou <ebotcazou@adacore.com> 2642 2643 PR ada/28591 2644 * decl.c (components_to_record): Defer emitting debug info for the 2645 record type associated with the variant until after we are sure to 2646 actually use it. 2647 26482006-09-13 Eric Botcazou <ebotcazou@adacore.com> 2649 2650 PR ada/21952 2651 * gigi.h (gnat_internal_attribute_table): Declare. 2652 * misc.c (LANG_HOOKS_ATTRIBUTE_TABLE): Define to above. 2653 * utils.c (gnat_internal_attribute_table): New global variable. 2654 (builtin_function): Always call decl_attributes on the builtin. 2655 (handle_const_attribute): New static function. 2656 (handle_nothrow_attribute): Likewise. 2657 26582006-07-28 Volker Reichelt <reichelt@igpm.rwth-aachen.de> 2659 2660 * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies. 2661 26622006-06-23 Olivier Hainque <hainque@adacore.com> 2663 2664 * misc.c (gnat_type_max_size): Look at TYPE_ADA_SIZE if we have 2665 not been able to get a constant upper bound from TYPE_SIZE_UNIT. 2666 26672006-06-20 James A. Morrison <phython@gcc.gnu.org> 2668 Eric Botcazou <ebotcazou@adacore.com> 2669 2670 PR ada/18692 2671 * Make-lang.in: Add check-gnat to lang_checks. Rename existing 2672 check-gnat into check-acats. 2673 26742006-06-17 Karl Berry <karl@gnu.org> 2675 2676 * gnat-style.texi (@dircategory): Use "Software development" 2677 instead of "Programming", following the Free Software Directory. 2678 26792006-06-12 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 2680 2681 PR ada/27944 2682 * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'. 2683 26842006-06-06 Laurent Guerby <laurent@guerby.net> 2685 2686 PR ada/27769 2687 mlib-utl.adb: Use Program_Name. 2688 26892006-05-28 Kazu Hirata <kazu@codesourcery.com> 2690 2691 * decl.c, env.c, gigi.h, init.c, initialize.c, raise-gcc.c, 2692 sem_ch13.adb, sysdep.c, targtyps.c, tb-alvxw.c, tracebak.c, 2693 trans.c, utils.c: Fix comment typos. Follow spelling 2694 conventions. 2695 * gnat_rm.texi, gnat_ugn.texi, : Fix typos. Follow spelling 2696 conventions. 2697 26982006-05-19 Nicolas Setton <setton@adacore.com> 2699 2700 * misc.c (gnat_dwarf_name): New function. 2701 (LANG_HOOKS_DWARF_NAME): Define to it. 2702 27032006-05-14 H.J. Lu <hongjiu.lu@intel.com> 2704 2705 * Make-lang.in (ada/decl.o): Replace target.h with $(TARGET_H). 2706 (ada/misc.o): Likewise. 2707 (ada/utils.o): Likewise. 2708 27092006-04-08 Aurelien Jarno <aurel32@debian.org> 2710 2711 * Makefile.in: Add Ada support for GNU/kFreeBSD. 2712 * s-osinte-kfreebsd-gnu.ads: New file. 2713 27142006-03-29 Carlos O'Donell <carlos@codesourcery.com> 2715 2716 * Make-lang.in: Rename docdir to gcc_docdir. 2717 27182006-03-04 Eric Botcazou <ebotcazou@adacore.com> 2719 2720 * gigi.h (get_ada_base_type): Delete. 2721 * utils2.c (get_ada_base_type): Likewise. 2722 * trans.c (convert_with_check): Operate in the real base type. 2723 27242006-03-03 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 2725 2726 * uintp.adb (Num_Bits): Handle Uint_Int_First specially. 2727 27282006-03-02 Richard Sandiford <richard@codesourcery.com> 2729 2730 * utils.c (create_var_decl): Use have_global_bss_p when deciding 2731 whether to make the decl common. 2732 27332006-02-20 Rafael Ávila de Espíndola <rafael.espindola@gmail.com> 2734 2735 * Make-lang.in (Ada): Remove. 2736 (.PHONY): Remove Ada 2737 27382006-02-17 Ed Schonberg <schonberg@adacore.com> 2739 2740 * sem_ch4.adb (Find_Boolean_Types): If one of the operands is an 2741 aggregate, check the interpretations of the other operand to find one 2742 that may be a boolean array. 2743 2744 (Analyze_Selected_Component): Fix flow-of-control typo in case where 2745 the prefix is a private extension. 2746 27472006-02-17 Eric Botcazou <botcazou@adacore.com> 2748 2749 PR ada/26315 2750 * utils2.c (find_common_type): If both input types are BLKmode and 2751 have the same constant size, keep using the first one. 2752 2753 * bindgen.adb: (Gen_Versions_Ada): Revert previous workaround. 2754 2755 * decl.c (gnat_to_gnu_entity): Only check TREE_OVERFLOW for a constant. 2756 2757 * misc.c (gnat_handle_option): New case for -Woverlength-strings. 2758 27592006-02-17 Jose Ruiz <ruiz@adacore.com> 2760 2761 * s-taprop-irix.adb, s-taprop-hpux-dce.adb, s-taprop-linux.adb, 2762 s-taprop-solaris.adb, s-taprop-vms.adb, s-taprop-mingw.adb, 2763 s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-lynxos.adb, 2764 s-taprop-tru64.adb (Set_False, Set_True, Suspend_Until_True): Add 2765 Abort_Defer/Undefer pairs to avoid the possibility of a task being 2766 aborted while owning a lock. 2767 27682006-02-17 Javier Miranda <miranda@adacore.com> 2769 Robert Dewar <dewar@adacore.com> 2770 2771 * exp_ch4.adb (Expand_N_Allocator): If the allocated object is accessed 2772 through an access to class-wide interface we force the displacement of 2773 the pointer to the allocated object to reference the corresponding 2774 secondary dispatch table. 2775 (Expand_N_Op_Divide): Allow 64 bit divisions by small power of 2, 2776 if Long_Shifts are supported on the target, even if 64 bit divides 2777 are not supported (configurable run time mode). 2778 (Expand_N_Type_Conversion): Do validity check if validity checks on 2779 operands are enabled. 2780 (Expand_N_Qualified_Expression): Do validity check if validity checks 2781 on operands are enabled. 2782 27832006-02-17 Ed Schonberg <schonberg@adacore.com> 2784 2785 * exp_dbug.adb (Debug_Renaming_Declaration): Indicate that the entity 2786 must be materialized when the renamed expression is an explicit 2787 dereference. 2788 27892006-02-17 Ed Schonberg <schonberg@adacore.com> 2790 2791 * freeze.adb (Statically_Discriminated_Components): Return false if 2792 the bounds of the type of the discriminant are not static expressions. 2793 2794 * sem_aggr.adb (Check_Static_Discriminated_Subtype): Return false if 2795 the bounds of the discriminant type are not static. 2796 27972006-02-17 Robert Dewar <dewar@adacore.com> 2798 2799 * g-os_lib.adb (Copy_File): Make sure that if From has an Invalid_FD, 2800 then we close To if it is valid. 2801 28022006-02-17 Vasiliy Fofanov <fofanov@adacore.com> 2803 2804 * init.c (facility_resignal_table): new array 2805 (__gnat_default_resignal_p): enhance default predicate to resignal if 2806 VMS condition has one of the predefined facility codes. 2807 28082006-02-17 Vasiliy Fofanov <fofanov@adacore.com> 2809 2810 * Makefile.in: Use VMS64 specialized versions of several units in 2811 Interfaces.C hierarchy to be compatible with HP C default size choices. 2812 Use the default version of Ada.Synchronous_Task_Control for VxWorks 653. 2813 28142006-02-17 Ed Schonberg <schonberg@adacore.com> 2815 2816 * sem_ch10.adb (Analyze_With_Clause): If the unit is a subprogram 2817 instantiation, the corresponding entity is the related_instance of the 2818 wrapper package created for the instance. 2819 28202006-02-17 Ed Schonberg <schonberg@adacore.com> 2821 2822 * sem_ch12.adb (Analyze_Package_Instantiation): Inline_Now is false if 2823 the current instance is nested within another instance in a child unit. 2824 28252006-02-17 Javier Miranda <miranda@adacore.com> 2826 Ed Schonberg <schonberg@adacore.com> 2827 2828 * sem_ch3.adb (Build_Discriminated_Subtype): In case of concurrent 2829 type we cannot inherit the primitive operations; we inherit the 2830 Corresponding_Record_Type (which has the list of primitive operations). 2831 (Check_Anonymous_Access_Types): When creating anonymous access types for 2832 access components, use Rewrite in order to preserve the tree structure, 2833 for ASIS use. 2834 (Analyze_Object_Declaration): For limited types with access 2835 discriminants with defaults initialized by an aggregate, obtain 2836 subtype from aggregate as for other mutable types. 2837 (Derived_Type_Declaration): If the derived type is a limited interface, 2838 set the corresponding flag (Is_Limited_Record is not sufficient). 2839 28402006-02-17 Ed Schonberg <schonberg@adacore.com> 2841 2842 * sem_ch6.adb (Build_Body_To_Inline): Enforce the rule that in order 2843 to inline a function that returns an unconstrained type, the return 2844 expression must be the first variable declared in the body of the 2845 function. 2846 28472006-02-17 Javier Miranda <miranda@adacore.com> 2848 2849 * sem_res.adb (Resolve_Type_Conversion): In case of conversion to an 2850 abstract interface type, the static analysis is not enough to know if 2851 the interface is implemented or not by the source tagged type. Hence 2852 we must pass the work to the expander to generate the required code to 2853 evaluate the conversion at run-time. 2854 (Resolve_Equality_Op): Do not apply previous 2855 transformation if expansion is disasbled, to prevent anomalies when 2856 locating global references in a generic unit. 2857 28582006-02-17 Vincent Celier <celier@adacore.com> 2859 2860 * snames.ads, snames.adb: New standard names for new project attributes: 2861 archive_builder, archive_indexer, compiler_pic_option, 2862 config_body_file_name, config_body_file_name_pattern, 2863 config_file_switches, config_file_unique, config_spec_file_name, 2864 config_spec_file_name_pattern, default_builder_switches, 2865 default_global_compiler_switches, default_language, 2866 dependency_file_kind, global_compiler_switches, include_path, 2867 include_path_file, language_kind, linker_executable_option, 2868 linker_lib_dir_option, linker_lib_name_option, mapping_file_switches, 2869 roots, runtime_project. 2870 28712006-02-17 Matthew Heaney <heaney@adacore.com> 2872 2873 * a-convec.ads, a-convec.adb: 2874 (operator "&"): handle potential overflow for large index types 2875 (Insert): removed Contraint_Error when using large index types 2876 (Insert_Space): removed Constraint_Error for large index types 2877 (Length): moved constraint check from Length to Insert 2878 2879 * a-coinve.ads, a-coinve.adb: Stream attribute procedures are declared 2880 as not null access. 2881 Explicit raise statements now include an exception message. 2882 (operator "&"): handle potential overflow for large index types 2883 (Insert): removed Contraint_Error when using large index types 2884 (Insert_Space): removed Constraint_Error for large index types 2885 (Length): moved constraint check from Length to Insert 2886 28872006-02-17 Robert Dewar <dewar@adacore.com> 2888 2889 * s-wchcnv.adb: Document handling of [ on output (we do not change 2890 this to ["5B"] and the new comments say why not. 2891 2892 * gnat_ugn.texi: 2893 Add note for -gnatVo that this now includes the cases of type 2894 conversions and qualified expressions. 2895 Add comments on handling of brackets encoding for Text_IO 2896 28972006-02-17 Ramon Fernandez <fernandez@adacore.com> 2898 Thomas Quinot <quinot@adacore.com> 2899 Robert Dewar <dewar@adacore.com> 2900 Javier Miranda <miranda@adacore.com> 2901 2902 * expander.adb: Fix typo in comment 2903 2904 * exp_pakd.adb: Fix typo 2905 Minor comment reformatting. 2906 2907 * g-dyntab.adb: Minor reformatting 2908 2909 * exp_ch6.adb (Register_Interface_DT_Entry): Traverse the list of 2910 aliased subprograms to look for the abstract interface subprogram. 2911 29122006-02-16 Eric Botcazou <ebotcazou@adacore.com> 2913 2914 * env.c (__gnat_setenv): Use size_t. 2915 (__gnat_unsetenv): Likewise. 2916 (__gnat_clearenv): Likewise. 2917 29182006-02-16 Arnaud Charlet <charlet@adacore.com> 2919 2920 * opt.ads (Ada_Version_Default): Set to Ada 2005 by default. 2921 29222006-02-13 Arnaud Charlet <charlet@adacore.com> 2923 2924 * a-intnam-os2.ads, a-intnam-unixware.ads, g-soccon-unixware.ads, 2925 g-soliop-unixware.ads, i-os2err.ads, i-os2lib.adb, i-os2lib.ads, 2926 i-os2syn.ads, i-os2thr.ads, s-intman-irix-athread.adb, 2927 s-osinte-aix-fsu.ads, s-osinte-fsu.adb, s-parame-os2.adb, 2928 s-osinte-irix-athread.ads, s-osinte-linux-fsu.ads, s-osinte-os2.adb, 2929 s-osinte-os2.ads, s-osinte-solaris-fsu.ads, s-osinte-unixware.adb, 2930 s-osinte-unixware.ads, s-osprim-os2.adb, s-taprop-irix-athread.adb, 2931 s-taprop-os2.adb, s-tasinf-irix-athread.adb, s-tasinf-irix-athread.ads, 2932 s-taspri-os2.ads, system-os2.ads, system-unixware.ads: Removed, 2933 no longer used. 2934 29352006-02-13 Jose Ruiz <ruiz@adacore.com> 2936 2937 * a-taster.adb (Current_Task_Fallback_Handler): Document why explicit 2938 protection against race conditions is not needed. 2939 (Set_Dependents_Fallback_Handler): Add mutual exclusive access to the 2940 fallback handler. 2941 (Set_Specific_Handler): Add mutual exclusive access to the specific 2942 handler. 2943 (Specific_Handler): Add mutual exclusive access for retrieving the 2944 specific handler. 2945 2946 * s-tarest.adb (Task_Wrapper): Add mutual exclusive access to the fall 2947 back handler. 2948 2949 * s-taskin.ads (Common_ATCB): Remove pragma Atomic for 2950 Fall_Back_Handler and Specific_Handler. 2951 2952 * s-tassta.adb (Task_Wrapper): Add mutual exclusive access to the task 2953 termination handlers. 2954 Set two different owerflow depending on the maximal stack size. 2955 2956 * s-solita.adb (Task_Termination_Handler_T): Document why explicit 2957 protection against race conditions is not needed when executing the 2958 task termination handler. 2959 29602006-02-13 Robert Dewar <dewar@adacore.com> 2961 2962 * s-gloloc-mingw.adb, a-cgaaso.ads, a-stzmap.adb, a-stzmap.adb, 2963 a-stzmap.ads, a-ztcoio.adb, a-ztedit.adb, a-ztedit.ads, a-ztenau.adb, 2964 a-ztenau.ads, a-colien.adb, a-colien.ads, a-colire.adb, a-colire.ads, 2965 a-comlin.adb, a-decima.adb, a-decima.ads, a-direio.adb, a-direio.adb, 2966 a-direio.adb, a-direio.ads, a-ngcoty.adb, a-ngcoty.ads, a-nuflra.adb, 2967 a-nuflra.ads, a-sequio.adb, a-sequio.ads, a-sequio.ads, a-storio.ads, 2968 a-stream.ads, a-ststio.adb, a-ststio.adb, a-ststio.ads, a-ststio.ads, 2969 a-stwima.adb, a-stwima.adb, a-stwima.ads, a-stwise.adb, a-teioed.adb, 2970 a-teioed.ads, a-ticoau.adb, a-ticoau.ads, a-ticoio.adb, a-tasatt.ads, 2971 a-tideau.adb, a-tideau.ads, a-tideio.adb, a-tideio.ads, a-tienau.adb, 2972 a-tienau.ads, a-tienio.adb, a-tienio.ads, a-tifiio.ads, a-tiflau.adb, 2973 a-tiflau.ads, a-tiflio.adb, a-tiflio.adb, a-tiflio.ads, a-tigeau.ads, 2974 a-tiinau.adb, a-tiinau.ads, a-tiinio.adb, a-tiinio.ads, a-timoio.adb, 2975 a-timoio.ads, a-titest.adb, a-titest.ads, a-wtcoio.adb, a-wtdeau.adb, 2976 a-wtdeau.ads, a-wtdeio.adb, a-wtdeio.ads, a-wtedit.adb, a-wtedit.adb, 2977 a-wtedit.ads, a-wtenau.adb, a-wtenau.ads, a-wtenau.ads, a-wtenio.adb, 2978 a-wtenio.ads, a-wtfiio.adb, a-wtfiio.ads, a-wtflau.adb, a-wtflau.ads, 2979 a-wtflio.adb, a-wtflio.adb, a-wtflio.ads, a-wtgeau.ads, a-wtinau.adb, 2980 a-wtinau.ads, a-wtinio.adb, a-wtinio.ads, a-wtmoau.adb, a-wtmoau.ads, 2981 a-wtmoio.adb, a-wtmoio.ads, xref_lib.adb, xref_lib.ads, xr_tabls.adb, 2982 g-boubuf.adb, g-boubuf.ads, g-cgideb.adb, g-io.adb, gnatdll.adb, 2983 g-pehage.adb, i-c.ads, g-spitbo.adb, g-spitbo.ads, mdll.adb, 2984 mlib-fil.adb, mlib-utl.adb, mlib-utl.ads, prj-env.adb, prj-tree.adb, 2985 prj-tree.ads, prj-util.adb, s-arit64.adb, s-asthan.ads, s-auxdec.adb, 2986 s-auxdec.ads, s-chepoo.ads, s-direio.adb, s-direio.ads, s-errrep.adb, 2987 s-errrep.ads, s-fileio.adb, s-fileio.ads, s-finroo.adb, s-finroo.ads, 2988 s-gloloc.adb, s-gloloc.ads, s-io.adb, s-io.ads, s-rpc.adb, 2989 s-rpc.ads, s-shasto.ads, s-sequio.adb, s-stopoo.ads, s-stratt.adb, 2990 s-stratt.ads, s-taasde.adb, s-taasde.ads, s-tadert.adb, s-sequio.ads, 2991 s-taskin.adb, s-tasque.adb, s-tasque.ads, s-wchjis.ads, makegpr.adb, 2992 a-coinve.adb, a-cidlli.adb, eval_fat.adb, exp_dist.ads, exp_smem.adb, 2993 fmap.adb, g-dyntab.ads, g-expect.adb, lib-xref.ads, osint.adb, 2994 par-load.adb, restrict.adb, sinput-c.ads, a-cdlili.adb, 2995 system-vms.ads, system-vms-zcx.ads, system-vms_64.ads: Minor 2996 reformatting. 2997 29982006-02-13 Hristian Kirtchev <kirtchev@adacore.com> 2999 3000 * a-tasatt.adb, s-osinte-lynxos-3.adb, s-osinte-lynxos.adb, 3001 s-osinte-aix.adb, s-interr-sigaction.adb, s-asthan-vms-alpha.adb, 3002 s-interr-vms.adb, s-intman-vms.adb, s-interr-vxworks.adb, 3003 s-intman-vxworks.adb, s-asthan-vms-alpha.adb, a-ztexio.adb, 3004 a-reatim.adb, a-taside.adb, a-textio.adb, a-witeio.adb, prj-attr.adb, 3005 s-intman-irix.adb, s-intman-solaris.adb, s-intman-posix.adb, 3006 a-dynpri.adb, a-interr.adb, g-dynhta.adb, s-asthan.adb, s-interr.adb, 3007 s-pooglo.adb, s-pooloc.adb, s-poosiz.adb, s-tasren.adb, s-tasuti.adb, 3008 s-tataat.adb, s-tpobop.adb: Remove redundant with clauses. 3009 30102006-02-13 Arnaud Charlet <charlet@adacore.com> 3011 3012 * s-osinte-darwin.adb, s-osinte-darwin.ads, s-osinte-vxworks.ads, 3013 s-osinte-solaris.ads, s-osinte-linux.ads, s-osinte-freebsd.ads, 3014 s-osinte-solaris-posix.ads, s-osinte-lynxos-3.ads, s-osinte-lynxos.ads, 3015 s-osinte-tru64.ads, s-osinte-aix.ads, s-osinte-irix.ads, 3016 s-osinte-hpux-dce.ads, s-osinte-linux-hppa.ads, 3017 s-osinte-linux-alpha.ads, s-inmaop-posix.adb (sigset_t_ptr): Removed, 3018 replaced by anonymous access type. 3019 (pthread_sigmask): Now take an access sigset_t 3020 3021 * s-osinte-hpux.ads: Ditto. 3022 (pthread_mutex_t, pthread_cond_t): Update definitions to support 3023 properly 32 and 64 bit ABIs. 3024 30252006-02-13 Pascal Obry <obry@adacore.com> 3026 3027 * s-taprop-posix.adb, s-taprop-vxworks.adb, s-taprop-tru64.adb, 3028 s-taprop-lynxos.adb, s-taprop-irix.adb, s-taprop-hpux-dce.adb, 3029 s-taprop-linux.adb, s-taprop-solaris.adb, 3030 s-taprop-vms.adb (Create_Task): Remove task adjustment code. This 3031 adjustement is already done when calling this routine. 3032 30332006-02-13 Pascal Obry <obry@adacore.com> 3034 3035 * system-mingw.ads (Underlying_Priorities): Update the priority mapping 3036 table to take advantage of the 16 priority levels available on Windows 3037 2000 and XP. On NT4 there are only 7 priority levels, this is properly 3038 supported by this new mapping. 3039 30402006-02-13 Nicolas Setton <setton@adacore.com> 3041 3042 * adadecode.h, adadecode.c: (__gnat_decode): Improve support of types. 3043 (get_encoding): New subprogram. Extracts the encodings from an encoded 3044 Ada name. 3045 30462006-02-13 Pascal Obry <obry@adacore.com> 3047 Nicolas Roche <roche@adacore.com> 3048 Arnaud Charlet <charlet@adacore.com> 3049 3050 * adaint.h, adaint.c (DIR_SEPARATOR): Use _T() macro for Unicode 3051 support. 3052 (__gnat_try_lock): Add unicode support by using a specific section on 3053 Windows. 3054 (__gnat_get_current_dir): Idem. 3055 (__gnat_open_read): Idem. 3056 (__gnat_open_rw): Idem. 3057 (__gnat_open_create): Idem. 3058 (__gnat_create_output_file): Idem. 3059 (__gnat_open_append): Idem. 3060 (__gnat_open_new): Idem. 3061 (__gnat_file_time_name): Idem. 3062 (__gnat_set_file_time_name): Idem. 3063 (__gnat_stat): Idem. 3064 (win32_no_block_spawn): Idem. 3065 (__gnat_locate_exec_on_path): Idem. 3066 (__gnat_opendir): New routine. 3067 (__gnat_closedir): Idem. 3068 (__gnat_readdir): Add new parameter length (pointer to int). Update 3069 implementation to use it and add specific Win32 code for Unicode 3070 support. 3071 (__gnat_get_env_value_ptr): Remove. Replaced by __gnat_getenv in env.c 3072 (__gnat_set_env_value): Remove. Replaced by __gnat_setenv in env.c 3073 (convert_addresses): Do not define this dummy routine on VMS. 3074 3075 * mingw32.h (GNAT_UNICODE_SUPPORT): New definition, if set the GNAT 3076 runtime Unicode support will be activated. 3077 (S2WS): String to Wide-String conversion. This version just copy a 3078 string in non Unicode version. 3079 (WS2S): Wide-String to String conversion. This version just copy a 3080 string in non Unicode version. 3081 3082 * g-dirope.adb: (Close): Now import __gnat_closedir from adaint.c. 3083 (Open): Now import __gnat_opendir from adaint.c. 3084 (Read): Change the implementation to support unicode characters. It is 3085 not possible to use strlen() on Windows as this version supports only 3086 standard ASCII characters. So the length of the directory entry is now 3087 returned from the imported __gnat_readdir routine. 3088 Update copyright notice. 3089 3090 * s-crtl-vms64.ads, s-crtl.ads: (closedir): Moved to adaint.c. 3091 (opendir): Moved to adaint.c. 3092 3093 * g-os_lib.adb (Copy_Time_Stamp): Fix off-by-one range computation. 3094 (Get_Directory): Fix wrong indexing. 3095 (Getenv): replace __gnat_get_env_value_ptr from adaint.c by 3096 __gnat_getenv from env.c 3097 (Setenv): replace __gnat_set_env_value from adaint.c by __gnat_setenv 3098 from env.c 3099 3100 * env.h, env.c: New file. 3101 3102 * s-scaval.adb (Initialize): Replace __gnat_get_env_value_ptr from 3103 adaint.c by __gnat_getenv from env.c 3104 3105 * s-shasto.adb (Initialize): replace __gnat_get_env_value_ptr from 3106 adaint.c by __gnat_getenv from env.c 3107 3108 * Make-lang.in: Add env.o in the list of C object needed by gnat1 3109 and gnatbind. 3110 Update dependencies. 3111 31122006-02-13 Richard Kenner <kenner@vlsi1.ultra.nyu.edu> 3113 Olivier Hainque <hainque@adacore.com> 3114 Eric Botcazou <ebotcazou@adacore.com> 3115 3116 * ada-tree.h: (TYPE_UNCHECKED_UNION_P): Deleted. 3117 3118 * gigi.h (value_factor_p): Add prototype and description, now public. 3119 3120 * decl.c (gnat_to_gnu_field): Don't attempt BLKmode to integral type 3121 promotion for field with rep clause if the associated size was proven 3122 to be in error. 3123 Expand comments describing attempts to use a packable type. 3124 (gnat_to_gnu_entity) <E_Signed_Integer_Subtype, 3125 E_Floating_Point_Subtype>: Inherit alias set of what we are making a 3126 subtype of to ensure conflicts amongst all subtypes in a hierarchy, 3127 necessary since these are not different types and pointers may 3128 actually designate any subtype in this hierarchy. 3129 (gnat_to_gnu_entity, case E_Record_Type): Always make fields for 3130 discriminants but put them into record only if not Unchecked_Union; 3131 pass flag to components_to_record showing Unchecked_Union. 3132 (make_dummy_type): Use UNION_TYPE only if Unchecked_Union and no 3133 components before variants; don't set TYPE_UNCHECKED_UNION_P. 3134 (components_to_record): New argument UNCHECKED_UNION. 3135 Remove special case code for Unchecked_Union and instead use main code 3136 with small changes. 3137 3138 PR ada/26096 3139 (gnat_to_gnu_entity) <E_Variable>: Do not initialize the aligning 3140 variable with the expression being built, only its inner field. 3141 3142 * trans.c (Handled_Sequence_Of_Statements_to_gnu): Remove call to 3143 emit_sequence_entry_statements. 3144 (emit_sequence_entry_statements, body_with_handlers_p): Delete. 3145 (establish_gnat_vms_condition_handler): Move before 3146 Subprogram_Body_to_gnu. 3147 (Subprogram_Body_to_gnu): On VMS, establish_gnat_vms_condition_handler 3148 for a subprogram if it has a foreign convention or is exported. 3149 (Identifier_to_gnu): Manually unshare the DECL_INITIAL tree when it is 3150 substituted for a CONST_DECL. 3151 (tree_transform, case N_Aggregate): Remove code for UNION_TYPE and pass 3152 Etype to assoc_to_constructor. 3153 (assoc_to_constructor): New argument, GNAT_ENTITY; use it to ignore 3154 discriminants of Unchecked_Union. 3155 (TARGET_ABI_OPEN_VMS): Define to 0 if not defined, so that later uses 3156 don't need cluttering preprocessor directives. 3157 (establish_gnat_vms_condition_handler): New function. Establish the GNAT 3158 condition handler as current in the compiled function. 3159 (body_with_handlers_p): New function. Tell whether a given sequence of 3160 statements node is attached to a package or subprogram body and involves 3161 exception handlers possibly nested within inner block statements. 3162 (emit_sequence_entry_statements): New function, to emit special 3163 statements on entry of sequences when necessary. Establish GNAT 3164 condition handler in the proper cases for VMS. 3165 (Handled_Sequence_Of_Statements_to_gnu): Start block code with 3166 emit_sequence_entry_statements. 3167 3168 * utils2.c (find_common_type): If both input types are BLKmode and 3169 have a constant size, use the smaller one. 3170 (build_simple_component_ref): Also match if FIELD and NEW_FIELD are 3171 the same. 3172 3173 * utils.c (value_factor_p): Make public, to allow uses from other gigi 3174 units. 3175 (create_type_decl): Do not set the flag DECL_IGNORED_P for dummy types. 3176 (convert, case UNION_TYPE): Remove special treatment for unchecked 3177 unions. 3178 3179 PR ada/18659 3180 (update_pointer_to): Update variants of pointer types to unconstrained 3181 arrays by attaching the list of fields of the main variant. 3182 31832006-02-13 Arnaud Charlet <charlet@adacore.com> 3184 Robert Dewar <dewar@adacore.com> 3185 3186 * a-exexpr.adb, a-exexpr-gcc.adb 3187 (Process_Raise_Exception): Removed, merged with Propagate_Exception. 3188 (Propagate_Exception): Now take extra From_Signal_Handler parameter. 3189 Remove code unused for exception propagation for the compiler itself 3190 from a-except.adb and update to still share separate packages. 3191 3192 * a-except.ads, a-except.adb: Ditto. 3193 Add comments that this version is now used only by the compiler and 3194 other basic tools. The full version that includes the Ada 2005 stuff 3195 is in separate files a-except-2005.ads/adb. The reason is that we do 3196 not want to cause bootstrap problems with compilers not recognizing 3197 Wide_Wide_String. 3198 Add exception reason code PE_Implicit_Return 3199 Add new exception reason code (Null Exception_Id) 3200 3201 * a-except-2005.adb, a-except-2005.ads: New files. 3202 3203 * s-wchcon.ads: (Get_WC_Encoding_Method): New function. 3204 3205 * s-wchcon.adb: New file. 3206 3207 * Makefile.in (LIBGNAT_SRCS): Add tb-gcc.c. 3208 (traceback.o deps): Likewise. 3209 (SPARC/Solaris): Accept sparc[64|v9]-sun-solaris. 3210 Activate build of GMEM instrumentation library on VMS targets. 3211 (gnatlib-sjlj, gnatlib-zcx): Pass EH_MECHANISM to make gnatlib. 3212 Use a-except-2005.ads/adb for all run-time library builds unless 3213 specified otherwise. 3214 [VMS] (LIBGNAT_TARGET_PAIRS_AUX1,2): Rename s-parame-vms.ads to 3215 s-parame-vms-alpha.ads and add s-parame-vms-ia64.ads. 3216 Use s-parame.adb on all native platforms. 3217 Use s-parame-vxworks.adb on all vxworks platforms. 3218 Add env.c env.h in LIBGNAT_SRCS 3219 Add env.o in LIBGNAT_OBJS 3220 (GNATMAKE_OBJS): Remove ctrl_c.o object. 3221 (LIBGNAT_TARGET_PAIRS for x86-vxworks): Use an specialized version of 3222 s-osinte.adb, s-tpopsp.adb, and system.ads for the run time that 3223 supports VxWorks 6 RTPs. 3224 (EXTRA_GNATRTL_NONTASKING_OBJS for x86-vxworks): Remove the use of 3225 i-vxworks and i-vxwoio from the run time that supports VxWorks 6 RTPs. 3226 3227 * types.h, types.ads (Terminate_Program): New exception 3228 Add comment on modifying multiple versions of a-except.adb when the 3229 table of exception reasons is modified. 3230 Add exception reason code PE_Implicit_Return 3231 Add new exception reason code (Null Exception_Id) 3232 3233 * clean.adb (Initialize): Get the target parameters before checking 3234 if target is OpenVMS. Move the OpenVMS specific code here from package 3235 body elaboration code. 3236 32372006-02-13 Thomas Quinot <quinot@adacore.com> 3238 Vincent Celier <celier@adacore.com> 3239 Robert Dewar <dewar@adacore.com> 3240 3241 * ali-util.adb (Get_File_Checksum): Update to account for change in 3242 profile of Initialize_Scanner. 3243 3244 * gprep.adb (Gnatprep): Update to account for change in profile of 3245 Initialize_Scanner. 3246 (Process_One_File): Same. 3247 3248 * lib.adb (Get_Code_Or_Source_Unit): New subprogram factoring the 3249 common code between Get_Code_Unit and Get_Source_Unit. Reimplement 3250 that behaviour using the new Unit information recorded in the source 3251 files table, rather than going through all units every time. 3252 (Get_Code_Unit): Reimplement in terms of Get_Code_Or_Source_Unit. 3253 (Get_Source_Unit): Same. 3254 3255 * prepcomp.adb (Parse_Preprocessing_Data_File): Update to account for 3256 change in profile of Initialize_Scanner. 3257 (Prepare_To_Preprocess): Same. 3258 3259 * lib.ads: Fix typo in comment (templace -> template). 3260 3261 * prj-part.adb (Parse_Single_Project): Update to account for change in 3262 profile of Initialize_Scanner. 3263 3264 * scn.adb (Initialize_Scanner): Account for change in profile of 3265 Scng.Initialize_Scanner: set Current_Source_Unit in Scn instead of Scng. 3266 Also record the association of the given Source_File_Index to the 3267 corresponding Unit_Number_Type. 3268 3269 * scng.ads, scng.adb (Initialize_Scanner.Set_Reserved): Remove 3270 procedure. 3271 (Initialize_Scanner): Call Scans.Initialize_Ada_Keywords. 3272 Remove Unit formal for generic scanner: this formal 3273 is only relevant to Scn (the scanner instance used to parse Ada source 3274 files), not to other instances. Update comment accordingly. 3275 (Scan): Use new function Snames.Is_Keyword_Name. 3276 3277 * sinfo-cn.adb: Fix typo in comment. 3278 3279 * sinput.adb (Unit, Set_Unit): Accessors for new source file attribute 3280 Unit. 3281 3282 * sinput.ads (Source_File_Record): New component Unit, used to capture 3283 the unit identifier (if any) associated to a source file. 3284 3285 * sinput-c.adb, sinput-l.adb (Load_File): Initialize new component 3286 Unit in Source_File_Record. 3287 3288 * sinput-p.adb (Source_File_Is_Subunit): Update to account for change 3289 in profile of Initialize_Scanner. 3290 3291 * scans.adb (Initialize_Ada_Keywords): New procedure 3292 3293 * scans.ads (Initialize_Ada_Keywords): New procedure to initialize the 3294 Ada keywords in the Namet table, without the need to call 3295 Initialize_Scanner. 3296 3297 * snames.adb: Add pragma Ada_2005 (synonym for Ada_05) 3298 (Is_Keyword_Name): New function 3299 3300 * snames.ads: Add subtype Configuration_Pragma_Names 3301 Add pragma Ada_2005 (synonym for Ada_05) 3302 (Is_Keyword_Name): New function 3303 3304 * snames.h: Add pragma Ada_2005 (synonym for Ada_05) 3305 33062006-02-13 Arnaud Charlet <charlet@adacore.com> 3307 3308 * a-stwisu.adb, a-strsup.adb, a-stzsup.adb (Super_Slice): Fix slice 3309 index. 3310 3311 * a-stwima.adb (To_Set): Add extra check when N = 0. 3312 3313 * g-regpat.adb: (Match_Simple_Operator): Avoid possible overflow. 3314 33152006-02-13 Arnaud Charlet <charlet@adacore.com> 3316 3317 * s-parame-mingw.adb, s-parame-linux.adb, 3318 s-parame-solaris.adb: Removed, replaced by s-parame.adb 3319 3320 * s-parame-vxworks.ads: Fix typo. 3321 3322 * s-parame-vxworks.adb: New file. 3323 3324 * s-parame.adb: Version now used by all native platforms. 3325 (Default_Stack_Size): Use 2 megs for default stack size and use 3326 __gl_default_stack_size when available. 3327 (Minimum_Stack_Size): Use 12K. 3328 3329 * s-taprop-mingw.adb: Set default stack size linker switch to 2megs. 3330 (Create_Task): Refine implementation taking advantage of the XP stack 3331 size support. On XP, we now create the thread using the flag 3332 STACK_SIZE_PARAM_IS_A_RESERVATION. 3333 3334 * s-osinte-mingw.ads (Stack_Size_Param_Is_A_Reservation): New constant. 3335 3336 * sysdep.c (__gnat_is_windows_xp): New routine, returns 1 on Windows 3337 XP and 0 on older Windows versions. 3338 3339 * interfac-vms.ads: Removed, no longer used. 3340 33412006-02-13 Matthew Heaney <heaney@adacore.com> 3342 3343 * a-rbtgso.adb, a-crbtgo.adb, a-crbtgk.adb, a-coorse.adb, 3344 a-cohama.adb, a-ciorse.adb, a-cihama.adb, a-cihase.adb, 3345 a-cohase.adb: All explicit raise statements now include an exception 3346 message. 3347 3348 * a-ciormu.ads, a-ciormu.adb, a-coormu.ads, a-coormu.adb 3349 (Update_Element_Preserving_Key): renamed op to just Update_Element. 3350 Explicit raise statements now include an exception message 3351 3352 * a-cihase.ads, a-cohase.ads: Removed comment. 3353 3354 * a-stboha.ads, a-stboha.adb, a-stfiha.ads, a-envvar.adb, 3355 a-envvar.ads, a-swbwha.ads, a-swbwha.adb, a-swfwha.ads, a-szbzha.ads, 3356 a-szbzha.adb, a-szfzha.ads: New files. 3357 33582006-02-13 Matthew Heaney <heaney@adacore.com> 3359 3360 * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of 3361 quicksort. 3362 33632006-02-13 Eric Botcazou <ebotcazou@adacore.com> 3364 3365 * lang.opt: Wvariadic-macros: New option. 3366 Wold-style-definition: Likewise. 3367 Wmissing-format-attribute: Likewise. 3368 3369 * misc.c (gnat_handle_option): New cases for -Wvariadic-macros, 3370 -Wold-style-definition and -Wmissing-format-attribute. 3371 33722006-02-13 Robert Dewar <dewar@adacore.com> 3373 3374 * a-ticoio.ads, a-ticoio.adb: Add use clause (moved here from spec) 3375 3376 * a-coteio.ads, a-lcteio.ads, a-llctio.ads, a-scteio.ads: New files. 3377 33782006-02-13 Nicolas Roche <roche@adacore.com> 3379 3380 * a-envvar.adb, a-envvar.ads: New files. 3381 33822006-02-13 Douglas Rupp <rupp@adacore.com> 3383 3384 * s-parame-vms.ads: Renamed to s-parame-vms-alpha.ads 3385 3386 * s-parame-vms-alpha.ads, s-parame-vms-ia64.ads: New files. 3387 33882006-02-13 Pat Rogers <rogers@adacore.com> 3389 3390 * a-rttiev.adb, a-rttiev.ads: New files. 3391 33922006-02-13 Hristian Kirtchev <kirtchev@adacore.com> 3393 3394 * a-tiboio.adb, a-tiboio.ads, a-wwboio.adb, 3395 a-wwboio.ads, a-zzboio.adb, a-zzboio.ads: New files. 3396 3397 * impunit.adb, Makefile.rtl: Added new Ada 2005 units. 3398 33992006-02-13 Robert Dewar <dewar@adacore.com> 3400 3401 * rtsfind.adb, exp_prag.adb, lib-writ.adb, par-labl.adb, 3402 sem_case.adb: Minor code reorganization (not Present should be No) 3403 34042006-02-13 Geert Bosch <bosch@adacore.com> 3405 Gary Dismukes <dismukes@adacore.com> 3406 3407 * a-tifiio.adb (Put_Digits): Test Last against To'First - 1 instead of 3408 0, since the lower bound of the actual string may be greater than one. 3409 3410 PR ada/20753 3411 * a-tifiio.adb (Put): Fix condition to raise Layout_Error when invalid 3412 layout is requested. 3413 34142006-02-13 Vincent Celier <celier@adacore.com> 3415 3416 * back_end.adb (Scan_Compiler_Arguments): Check if 3417 Search_Directory_Present is True and, if it is, add the argument in 3418 the source search directory path. 3419 3420 * switch-c.adb (Scan_Front_End_Switches): Accept switch "-I". Set 3421 Search_Directory_Present to True. 3422 34232006-02-13 Joel Brobecker <brobecke@adacore.com> 3424 3425 * bindgen.adb (Gen_Main_C): declare the ensure_reference variable as 3426 volatile, to tell the compiler to preserve this variable at any level 3427 of optimization. 3428 (Gen_Versions_Ada): Temporarily work around codegen bug. 3429 34302006-02-13 Vincent Celier <celier@adacore.com> 3431 3432 * gnatlink.adb (Process_Binder_File): If -shared is specified, invoke 3433 gcc to link with option -shared-libgcc. 3434 (Gnatlink): Remove duplicate switches -shared-libgcc 3435 34362006-02-13 Robert Dewar <dewar@adacore.com> 3437 3438 * gnatvsn.ads (Current_Year): New constant, used to easily update 3439 copyright on all GNAT tools. 3440 3441 * gnatls.adb, gnatname.adb, vms_conv.adb: Add 2006 to displayed 3442 copyright notice. 3443 34442006-02-13 Robert Dewar <dewar@adacore.com> 3445 3446 * erroutc.ads, erroutc.adb (Set_Message_Blank): Don't insert space 3447 after hyphen (small aesthetic change useful for a range of numbers 3448 using ^-^. 3449 Suppress range checks for a couple of assignments which otherwise 3450 cause validity checks with validity checking turned on. 3451 3452 * sem_ch13.adb (Analyze_Attribute_Definition_Clause, case Size): 3453 Improvement in error message for object. 3454 (Rep_Item_Too_Late): Remove '!' in warning message. 3455 34562006-02-13 Robert Dewar <dewar@adacore.com> 3457 Eric Botcazou <ebotcazou@adacore.com> 3458 3459 * err_vars.ads: Suppress range checks for a couple of assignments 3460 which otherwise cause validity checks with validity checking turned on. 3461 Update comments. 3462 3463 * errout.adb (Error_Msg_Internal): Do not suppress warning messages. 3464 Make message unconditional if it is a warning. 3465 (Error_Msg_NEL): Always output warning messages. 3466 Suppress range checks for a couple of assignments which otherwise 3467 cause validity checks with validity checking turned on. 3468 3469 * errout.ads (Message Insertion Characters): Document that '!' is 3470 implied by '?' in error messages. 3471 3472 * gnat1drv.adb: (Bad_Body): Remove '!' in warning message. 3473 (Gnat1drv): Use a goto to end of main subprogram instead of 3474 Exit_Program (E_Success) so that finalization can occur normally. 3475 34762006-02-13 Eric Botcazou <ebotcazou@adacore.com> 3477 3478 * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has 3479 wrapped around. 3480 34812006-02-13 Vincent Celier <celier@adacore.com> 3482 3483 * a-direct.adb (Duration_To_Time, OS_Time_To_Long_Integer): New 3484 Unchecked_Conversion functions. 3485 (Modification_Time): Use direct conversion of OS_Time to Calendar time 3486 when OpenVMS returns False. 3487 3488 * a-dirval-mingw.adb, a-dirval-vms.adb, a-dirval.ads, 3489 a-dirval.adb (OpenVMS): New Boolean function 3490 34912006-02-13 Ed Schonberg <schonberg@adacore.com> 3492 Thomas Quinot <quinot@adacore.com> 3493 3494 * checks.adb (Build_Discriminant_Checks): If the expression being 3495 checks is an aggregate retrieve the values of its discriminants to 3496 generate the check, rather than creating a temporary and a reference 3497 to it. 3498 (Apply_Access_Check): Rewritten to handle new Is_Known_Null flag 3499 (Install_Null_Excluding_Check): Ditto 3500 (Selected_Length_Checks): Build actual subtype for the original Ck_Node, 3501 not for the renamed object, so that the actual itype is attached in the 3502 proper context. 3503 35042006-02-13 Robert Dewar <dewar@adacore.com> 3505 Vincent Celier <celier@adacore.com> 3506 3507 * debug.adb: Eliminate numeric switches for binder/gnatmake 3508 3509 * switch-m.adb (Normalize_Compiler_Switches): Record numeric debug 3510 switches for the compiler. 3511 (Scan_Make_Switches): Do not allow numeric debug switches for gnatmake 3512 (Scan_Make_Switches): When failing with an illegal switch, output an 3513 error message with the full switch. 3514 Eliminate numeric switches for binder/gnatmake 3515 3516 * switch.ads, switch.adb (Bad_Switch): New procedure 3517 3518 * switch-b.adb (Scan_Binder_Switches): Do not accept combined switches. 3519 Remove 0-9 as debug flag character possibilities 3520 -d is now controlling the primary stack size when its value is a 3521 positive. Also add checks against invalid values, and support for kb, 3522 mb. Ditto for -D switch. 3523 35242006-02-13 Robert Dewar <dewar@adacore.com> 3525 Serguei Rybin <rybin@adacore.com> 3526 3527 * opt.ads opt.adb: Add Ada_Version_Explicit_Config along with 3528 save/restore routines. 3529 Properly handle Ada_Version_Explicit and Ada_Version_Config, which 3530 were not always properly handled previously. 3531 Since we are changing the tree format anyway, also get rid of the 3532 junk obsolete Immediate_Errors flag. 3533 (Tree_Read): Change the way of reading Tree_Version_String - now we 3534 read the version string from the tree even if its length is not the 3535 same as the length of the version string computed from Gnatvsn. 3536 (Search_Directory_Present): New Boolean flag for the compiler. 3537 Define Tree_Version_String as a dynamic string. 3538 (Default_Stack_Size): new variable, used to handle switch -d. 3539 3540 * par-prag.adb: 3541 For pragma Ada_2005, remove stuff about setting Ada_Version_Explicit 3542 only for main unit. 3543 Add pragma Ada_2005 (synonym for Ada_05) 3544 Properly handle Ada_Version_Explicit and Ada_Version_Config, which 3545 were not always properly handled previously. 3546 3547 * directio.ads, ioexcept.ads, sequenio.ads, text_io.ads: Change 3548 explicit Ada_95 to Ada_2005. 3549 35502006-02-13 Javier Miranda <miranda@adacore.com> 3551 Robert Dewar <dewar@adacore.com> 3552 Ed Schonberg <schonberg@adacore.com> 3553 3554 * einfo.ads, einfo.adb (First_Tag_Component): Protect the frontend 3555 against errors in the source program: a private types for which the 3556 corresponding full type declaration is missing and pragma CPP_Virtual 3557 is used. 3558 (Is_Unchecked_Union): Check flag on Implementation_Base_Type. 3559 (Is_Known_Null): New flag 3560 (Has_Pragma_Pure): New flag 3561 (No_Return): Present in all entities, set only for procedures 3562 (Is_Limited_Type): A type whose ancestor is an interface is limited if 3563 explicitly declared limited. 3564 (DT_Offset_To_Top_Func): New attribute that is present in E_Component 3565 entities. Only used for component marked Is_Tag. If present it stores 3566 the Offset_To_Top function used to provide this value in tagged types 3567 whose ancestor has discriminants. 3568 3569 * exp_ch2.adb: Update status of new Is_Known_Null flag 3570 3571 * sem_ch7.adb: Maintain status of new Is_Known_Null flag 3572 3573 * sem_cat.adb (Get_Categorization): Don't treat function as Pure in 3574 the categorization sense if Is_Pure was set by pragma Pure_Function. 3575 35762006-02-13 Quentin Ochem <ochem@adacore.com> 3577 Olivier Hainque <hainque@adacore.com> 3578 3579 * bindusg.adb: Updated documentation for -d and -D switches. 3580 3581 * raise.h (__gnat_set_globals): added new parameter for 3582 Default_Stack_Size. 3583 3584 * init.c (__gnat_adjust_context_for_raise) <alpha-vms case>: Implement. 3585 (__gnat_handle_vms_condition): Adjust context before raise. 3586 (__gnat_install_handler): Restore the global vector setup for GCC 3587 versions before 3.4, as the frame based circtuitry is not available 3588 in this case. 3589 (__gnat_set_globals): added a parameter default_stack_size 3590 (__gl_default_stack_size): new variable. 3591 35922006-02-13 Ed Schonberg <schonberg@adacore.com> 3593 3594 * exp_aggr.adb (Build_Array_Aggr_Code): Rename variable 3595 "Others_Mbox_Present" to "Others_Box_Present" because the mbox concept 3596 does not exist in the Ada RM. 3597 (Compatible_Int_Bounds): Determine whether two integer range bounds 3598 are of equal length and have the same start and end values. 3599 (Is_Int_Range_Bounds): Determine whether a node is an integer range. 3600 (Build_Record_Aggr_Code): Perform proper sliding of a nested array 3601 aggregate when it is part of an object declaration. 3602 (Build_Record_Aggr_Code) If the aggregate ttype is a derived type that 3603 constrains discriminants of its parent, add explicitly the discriminant 3604 constraints of the ancestor by retrieving them from the 3605 stored_constraint of the parent. 3606 36072006-02-13 Robert Dewar <dewar@adacore.com> 3608 3609 * exp_attr.adb (Expand_N_Attribute_Reference, case Mechanism_Code): If 3610 attribute Mechanism_Code is applied to renamed subprogram, modify 3611 prefix to point to base subprogram. 3612 Max/Min attributes now violate Restriction No_Implicit_Conditionals 3613 3614 * sinfo.ads: Document that Mechanism_Code cannot be applied to 3615 renamed subprograms so that the front-end must replace the prefix 3616 appropriately. 3617 36182006-02-13 Javier Miranda <miranda@adacore.com> 3619 Gary Dismukes <dismukes@adacore.com> 3620 3621 * exp_ch3.adb (Component_Needs_Simple_Initialization): Add check for 3622 availability of RE_Interface_Tag. 3623 (Build_Initialization_Call): Fix wrong access to the discriminant value. 3624 (Freeze_Record_Type): Do not generate the tables associated with 3625 timed and conditional dispatching calls through synchronized 3626 interfaces if compiling under No_Dispatching_Calls restriction. 3627 When compiling for Ada 2005, for a nonabstract 3628 type with a null extension, call Make_Controlling_Function_Wrappers 3629 and insert the wrapper function declarations and bodies (the latter 3630 being appended as freeze actions). 3631 (Predefined_Primitive_Bodies): Do not generate the bodies of the 3632 predefined primitives associated with timed and conditional 3633 dispatching calls through synchronized interfaces if we are 3634 compiling under No_Dispatching_Calls. 3635 (Build_Init_Procedure): Use RTE_Available to check if a run-time 3636 service is available before generating a call. 3637 (Make_Controlling_Function_Wrappers): New procedure. 3638 (Expand_N_Full_Type_Declaration): Create a class-wide master for 3639 access-to-limited-interfaces because they can be used to reference 3640 tasks that implement such limited interface. 3641 (Build_Offset_To_Top_Functions): Build the tree corresponding to the 3642 procedure spec and body of the Offset_To_Top function that is generated 3643 when the parent of a type with discriminants has secondary dispatch 3644 tables. 3645 (Init_Secondary_Tags): Handle the case in which the parent of the type 3646 containing secondary dispatch tables has discriminants to generate the 3647 correct arguments to call Set_Offset_To_Top. 3648 (Build_Record_Init_Proc): Add call to Build_Offset_To_Top_Functions. 3649 3650 * a-tags.ads, a-tags.adb: (Check_Index): Removed. 3651 Add Wide_[Wide_]Expanded_Name. 3652 (Get_Predefined_Prim_Op_Address): New subprogram that provides exactly 3653 the same functionality of Get_Prim_Op_Address but applied to predefined 3654 primitive operations because the pointers to the predefined primitives 3655 are now saved in a separate table. 3656 (Parent_Size): Modified to get access to the separate table of primitive 3657 operations or the parent type. 3658 (Set_Predefined_Prim_Op_Address): New subprogram that provides the same 3659 functionality of Set_Prim_Op_Address but applied to predefined primitive 3660 operations. 3661 (Set_Signature): New subprogram used to store the signature of a DT. 3662 (Displace): If the Offset_To_Top value is not static then call the 3663 function generated by the expander to get such value; otherwise use 3664 the value stored in the table of interfaces. 3665 (Offset_To_Top): The type of the actual has been changed to Address to 3666 give the correct support to tagged types with discriminants. In this 3667 case this value is stored just immediately after the tag field. 3668 (Set_Offset_To_Top): Two new formals have been added to indicate if the 3669 offset_to_top value is static and hence pass this value to the run-time 3670 to store it in the table of interfaces, or else if this value is dynamic 3671 and then pass to the run-time the address of a function that is 3672 generated by the expander to provide this value for each object of the 3673 type. 3674 3675 * rtsfind.ads (Default_Prin_Op_Count): Removed. 3676 (Default_Prim_Op_Count): New entity 3677 (Get_Predefined_Prim_Op_Address): New entity 3678 (Set_Predefined_Prim_Op_Address): New entity 3679 (RE_Set_Signature): New entity 3680 36812006-02-13 Thomas Quinot <quinot@adacore.com> 3682 Ed Schonberg <schonberg@adacore.com> 3683 3684 * exp_ch4.adb (Expand_Allocator_Expression): Pass Allocator => True to 3685 Make_Adjust_Call done for a newly-allocated object. 3686 3687 * exp_ch7.ads, exp_ch7.adb (Expand_Cleanup_Actions): If the statements 3688 in a subprogram are wrapped in a cleanup block, indicate that the 3689 subprogram contains an inner block with an exception handler. 3690 (Make_Adjust_Call): New Boolean formal Allocator indicating whether the 3691 Adjust call is for a newly-allocated object. In that case we must not 3692 assume that the finalization list chain pointers are correct (since they 3693 come from a bit-for-bit copy of the original object's pointers) so if 3694 the attach level would otherwise be zero (no change), we set it to 4 3695 instead to cause the pointers to be reset to null. 3696 3697 * s-finimp.adb (Attach_To_Final_List): New attach level: 4, meaning 3698 reset chain pointers to null. 3699 37002006-02-13 Ed Schonberg <schonberg@adacore.com> 3701 3702 * exp_ch5.adb (Expand_Assign_Array): If the right-hand side is a 3703 string, and the context requires a loop for the assignment (e.g. 3704 because the left-hand side is packed), generate a unique name for the 3705 temporary that holds the string, to prevent spurious name clashes. 3706 37072006-02-13 Ed Schonberg <schonberg@adacore.com> 3708 Javier Miranda <miranda@adacore.com> 3709 Robert Dewar <dewar@adacore.com> 3710 Gary Dismukes <dismukes@adacore.com> 3711 3712 * exp_ch6.adb (Expand_Inlined_Call): Handle calls to functions that 3713 return unconstrained arrays. 3714 Update comments. 3715 (Expand_Call): An indirect call through an access parameter of a 3716 protected operation is not a protected call. 3717 Add circuit to raise CE in Ada 2005 mode following call 3718 to Raise_Exception. 3719 (Register_DT_Entry): Do nothing if 3720 the run-time does not give support to abstract interfaces. 3721 (Freeze_Subprogram): In case of dispatching operations, do not generate 3722 code to register the operation in the dispatch table if the source 3723 is compiled with No_Dispatching_Calls. 3724 (Register_Predefined_DT_Entry): Generate code that calls the new 3725 run-time subprogram Set_Predefined_Prim_Op_Address instead of 3726 Set_Prim_Op_Address. 3727 3728 * sem_ch5.adb (Analyze_Assignment_Statement): Do not apply length checks 3729 on array assignments if the right-hand side is a function call that has 3730 been inlined. Check is performed on the assignment in the block. 3731 (Process_Bounds): If bounds and range are overloaded, apply preference 3732 rule for root operations to disambiguate, and diagnose true ambiguity. 3733 (Analyze_Assignment): Propagate the tag for a class-wide assignment with 3734 a tag-indeterminate right-hand side even when Expander_Active is True. 3735 Needed to ensure that dispatching calls to T'Input are allowed and 3736 get the tag of the target class-wide object. 3737 3738 * sem_ch6.adb (New_Overloaded_Entity): Handle entities that override 3739 an inherited primitive operation that already overrides several 3740 abstract interface primitives. For transitivity, the new entity must 3741 also override all the abstract interface primitives covered by the 3742 inherited overriden primitive. 3743 Emit warning if new entity differs from homograph in same scope only in 3744 that one has an access parameter and the other one has a parameter of 3745 a general access type with the same designated type, at the same 3746 position in the signature. 3747 (Make_Inequality_Operator): Use source locations of parameters and 3748 subtype marks from corresponding equality operator when creating the 3749 tree structure for the implicit declaration of "/=". This does not 3750 change anything in behaviour except that the decoration of the 3751 components of the subtree created for "/=" allows ASIS to get the 3752 string images of the corresponding identifiers. 3753 (Analyze_Return_Statement): Remove '!' in warning message. 3754 (Check_Statement_Sequence): Likewise. 3755 (Analyze_Subprogram_Body): For an access parameter whose designated type 3756 is an incomplete type imported through a limited_with clause, use the 3757 type of the corresponding formal in the body. 3758 (Check_Returns): Implicit return in No_Return procedure now raises 3759 Program_Error with a compile time warning, instead of beging illegal. 3760 (Has_Single_Return): Function returning unconstrained type cannot be 3761 inlined if expression in unique return statement is not an identifier. 3762 (Build_Body_To_Inline): It is possible to inline a function call that 3763 returns an unconstrained type if all return statements in the function 3764 return the same local variable. Subsidiary procedure Has_Single_Return 3765 verifies that the body conforms to this restriction. 3766 3767 * sem_res.adb (Resolve_Equality_Op): If the operands do not have the 3768 same type, and one of them is of an anonymous access type, convert 3769 the other operand to it, so that this is a valid binary operation for 3770 gigi. 3771 (Resolve_Type_Conversion): Handle subtypes of protected types and 3772 task types when accessing to the corresponding record type. 3773 (Resolve_Allocator): Add '\' in 2-line warning message. 3774 Remove '!' in warning message. 3775 (Resolve_Call): Add '\' in 2-line warning message. 3776 (Valid_Conversion): Likewise. 3777 (Resolve_Overloaded_Selected_Component): If disambiguation succeeds, the 3778 resulting type may be an access type with an implicit dereference. 3779 Obtain the proper component from the designated type. 3780 (Make_Call_Into_Operator): Handle properly a call to predefined equality 3781 given by an expanded name with prefix Standard, when the operands are 3782 of an anonymous access type. 3783 (Check_Fully_Declared_Prefix): New procedure, subsidiary of Resolve_ 3784 Explicit_Dereference and Resolve_Selected_Component, to verify that the 3785 prefix of the expression is not of an incomplete type. Allows full 3786 diagnoses of all semantic errors. 3787 (Resolve_Actuals): If the actual is an allocator whose directly 3788 designated type is a class-wide interface we build an anonymous 3789 access type to use it as the type of the allocator. Later, when 3790 the subprogram call is expanded, if the interface has a secondary 3791 dispatch table the expander will add a type conversion to force 3792 the displacement of the pointer. 3793 (Resolve_Call): If a function that returns an unconstrained type is 3794 marked Inlined_Always and inlined, the call will be inlined and does 3795 not require the creation of a transient scope. 3796 (Check_Direct_Boolean_Op): Removed 3797 (Resolve_Comparison_Op): Remove call to above 3798 (Resolve_Equality_Op): Remove call to above 3799 (Resolve_Logical_Op): Inline above, since this is only call. 3800 (Valid_Conversion): Handle properly conversions between arrays of 3801 convertible anonymous access types. 3802 3803 PR ada/25885 3804 (Set_Literal_String_Subtype): If the lower bound is not static, wrap 3805 the literal in an unchecked conversion, because GCC 4.x needs a static 3806 value for a string bound. 3807 38082006-02-13 Ed Schonberg <schonberg@adacore.com> 3809 Hristian Kirtchev <kirtchev@adacore.com> 3810 3811 * exp_ch9.adb (Expand_N_Protected_Type_Declaration): When creating the 3812 components of the corresponding record, take into account component 3813 definitions that are access definitions. 3814 (Expand_N_Asynchronous_Select): A delay unit statement rewritten as a 3815 procedure is not considered a dispatching call and will be expanded 3816 properly. 3817 38182006-02-13 Javier Miranda <miranda@adacore.com> 3819 3820 * exp_disp.ads, exp_disp.adb (Expand_Dispatching_Call): If the 3821 controlling argument of the dispatching call is an abstract interface 3822 class-wide type then we use it directly. 3823 Check No_Dispatching_Calls restriction. 3824 (Default_Prim_Op_Position): Remove the code that looks for the last 3825 entity in the list of aliased subprograms. This code was wrong in 3826 case of renamings. 3827 (Fill_DT_Entry): Add assertion to avoid the use of this subprogram 3828 when the source is compiled with the No_Dispatching_Calls restriction. 3829 (Init_Predefined_Interface_Primitives): No need to inherit primitives 3830 if we are compiling with restriction No_Dispatching_Calls. 3831 (Make_Disp_XXX): Addition of assertion to avoid the use of all these 3832 subprograms if we are compiling under No_Dispatching_Calls restriction. 3833 (Make_DT): Generate a dispatch table with a single dummy entry if 3834 we are compiling with the No_Dispatching_Calls restriction. In 3835 addition, in this case we don't generate code that calls to the 3836 following run-time subprograms: Set_Type_Kind, Inherit_DT. 3837 (Make_Select_Specific_Data_Table): Add assertion to avoid the use 3838 of this subprogram if compiling with the No_Dispatching_Calls 3839 restriction. 3840 (Expand_Type_Conversion): Instead of using the actual parameter, 3841 the argument passed as parameter to the conversion function was 3842 erroneously referenced by the expander. 3843 (Ada_Actions): Addition of Get_Predefined_Prim_Op_Address, 3844 Set_Predefined_Primitive_Op_Address and Set_Signature. 3845 (Expand_Dispatching_Call): Generate call to 3846 Get_Predefined_Prim_Op_Address for predefined primitives. 3847 (Fill_DT_Entry): Generate call to Set_Predefined_Prim_Op_Address for 3848 predefined primitives. 3849 (Make_DT, Make_Secondary_DT): If the tagged type has no user defined 3850 primitives we reserve one dummy entry to ensure that the tag does not 3851 point to some memory that is associated with some other object. In 3852 addition, remove all the old code that generated the assignments 3853 associated with the signature of the dispatch table and replace them 3854 by a call to the new subprogram Set_Signature. 3855 (Set_All_DT_Position): Change the algorithm because now we have a 3856 separate dispatch table associated with predefined primitive operations. 3857 (Expand_Interface_Conversion): In case of non-static offset_to_top 3858 add explicit dereference to get access to the object after the call 3859 to displace the pointer to the object. 3860 (Expand_Interface_Thunk): Modify the generation of the actual used 3861 in the calls to the run-time function Offset_To_Top to fulfil its 3862 new interface. 3863 (Make_DT): Add the new actuals required to call Set_Offset_To_Top. 3864 38652006-02-13 Ed Schonberg <schonberg@adacore.com> 3866 3867 * exp_dist.adb (Copy_Specification): For access parameters, copy 3868 Null_Exclusion flag, which will have been set for stream subprograms 3869 in Ada2005 mode. 3870 38712006-02-13 Pascal Obry <obry@adacore.com> 3872 3873 * expect.c (__gnat_expect_portable_execvp): New implementation. The 3874 previous implementation was using the C runtime spawnve routine but 3875 the corresponding wait was using directly the Win32 API. This was 3876 causing some times a lock when waiting for an event using 3877 WaitForSingleObject in __gnat_waitpid. This new implementation uses 3878 the Win32 CreateProcess routine. Avoiding mixing C runtime and Win32 3879 API fixes this problem. 3880 38812006-02-13 Robert Dewar <dewar@adacore.com> 3882 3883 * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze 3884 call. 3885 38862006-02-13 Thomas Quinot <quinot@adacore.com> 3887 3888 * exp_pakd.ads: Fix typos in comments. 3889 3890 * exp_pakd.adb (Convert_To_PAT_Type): For the case of a bit packed 3891 array reference that is an explicit dereference, mark the converted 3892 (packed) array reference as analyzed to prevent a forthcoming 3893 reanalysis from resetting its type to the original (non-packed) array 3894 type. 3895 38962006-02-13 Ed Schonberg <schonberg@adacore.com> 3897 Javier Miranda <miranda@adacore.com> 3898 Eric Botcazou <ebotcazou@adacore.com> 3899 3900 * exp_util.ads, exp_util.adb (Find_Prim_Op, 3901 Is_Predefined_Primitive_Operation): When 3902 searching for the predefined equality operator, verify that operands 3903 have the same type. 3904 (Is_Predefined_Dispatching_Operation): Remove the code that looks 3905 for the last entity in the list of aliased subprograms. This code 3906 was wrong in case of renamings. 3907 (Set_Renamed_Subprogram): New procedure 3908 (Remove_Side_Effects): Replace calls to Etype (Exp) with use of the 3909 Exp_Type constant computed when entering this subprogram. 3910 (Known_Null): New function 3911 (OK_To_Do_Constant_Replacement): New function 3912 (Known_Non_Null): Check scope before believing Is_Known_Non_Null flag 3913 (Side_Effect_Free): An attribute reference 'Input is not free of 3914 side effect, unlike other attributes that are functions. (from code 3915 reading). 3916 (Remove_Side_Effects): Expressions that involve packed arrays or records 3917 are copied at the point of reference, and therefore must be marked as 3918 renamings of objects. 3919 (Is_Predefined_Dispatching_Operation): Return false if the operation is 3920 not a dispatching operation. 3921 3922 PR ada/18819 3923 (Remove_Side_Effects): Lift enclosing type conversion nodes for 3924 elementary types in all cases. 3925 39262006-02-13 Javier Miranda <miranda@adacore.com> 3927 3928 * freeze.adb (Freeze_Entity): Handle subtypes of protected types and 3929 task types when accessing to the corresponding record type. 3930 Remove '!' in warning message. 3931 39322006-02-13 Olivier Hainque <hainque@adacore.com> 3933 3934 * g-altive.ads (VECTOR_ALIGNMENT): Set to Min (16, Max_Alignment), 3935 to avoid useless and space inefficient overalignments on targets where 3936 Max_Alignment is larger than 16. 3937 39382006-02-13 Pascal Obry <obry@adacore.com> 3939 3940 * g-catiio.adb (Sec_Number): New type used to compute the number of 3941 seconds since 1-1-1970. 3942 (Image) [Natural]: The parameter was an Integer, as we can't deal with 3943 negative numbers (years, months...) it is better to have a Natural here. 3944 Code clean-up. 3945 (Image) [Number]: Change parameter from Long_Integer to Number. 3946 (Image): Use Number type to compute the seconds since 1-1-1970 to fix an 3947 overflow for dates past year 2038. 3948 39492006-02-13 Matthew Heaney <heaney@adacore.com> 3950 3951 * g-dyntab.adb (Index_Of): conversion from Natural can no longer raise 3952 Constraint_Error. 3953 39542006-02-13 Arnaud Charlet <charlet@adacore.com> 3955 3956 * gnatbind.adb (Scan_Bind_Arg): Replace error by warning on -M and 3957 native platforms. 3958 (Gnatbind): Do not call Exit_Program (E_Success) at the end, so that 3959 finalization can occur normally. 3960 39612006-02-13 Vincent Celier <celier@adacore.com> 3962 3963 * gnatcmd.adb (Rules_Switches): New table 3964 (Add_To_Rules_Switches): New procedure 3965 (GNATCmd): For command CHECK, put all options following "-rules" in the 3966 Rules_Switches table. Append these -rules switches after the -cargs 3967 switches. 3968 39692006-02-13 Robert Dewar <dewar@adacore.com> 3970 3971 * g-spipat.adb (Image, case PC_Assign_Imm and case PC_Assign_OnM): 3972 These two cases were generating incorrect output, and if this unit 3973 was built with checks on, generated a discriminant mismatch constraint 3974 error. 3975 39762006-02-13 Ed Schonberg <schonberg@adacore.com> 3977 Robert Dewar <dewar@adacore.com> 3978 3979 * lib-xref.adb (Get_Type_Reference): For a private type whose full 3980 view is an array type, indicate the component type as well, for 3981 navigation purposes. 3982 (Generate_Reference): Don't consider array ref on LHS to be a case 3983 of violating pragma Unreferenced. 3984 Do not give Ada 2005 warning except on real reference. 3985 39862006-02-13 Vincent Celier <celier@adacore.com> 3987 3988 * make.adb (Collect_Arguments_And_Compile): For VMS, when compiling the 3989 main source, add switch -mdebug-main=_ada_ so that the executable can 3990 be debugged by the standard VMS debugger. 3991 (Gnatmake): Set No_Main_Subprogram to True when there is no main 3992 subprogram, to avoid issuing -mdebug-main=_ada_ for VMS uselessly. 3993 Exit the Multi_Main_Loop when Unique_Compile is True after compilation 3994 of the last source, as the binding and linking phases are never 3995 performed. 3996 Set all executable obsolete when rebuilding a library. 3997 3998 * makeutl.adb (Linker_Options_Switches): Do not process empty linker 3999 options. 4000 40012006-02-13 Javier Miranda <miranda@adacore.com> 4002 4003 PR ada/23973 4004 * par-ch3.adb (P_Derived_Type_Def_Or_Private_Ext_Decl): Reorganize the 4005 code to improve the error message reported when the program has 4006 declarations of abstract interface types and it is not compiled with 4007 the -gnat05 switch. 4008 (P_Access_Definition): Reorganize the code to improve the error 4009 message reported when the new Ada 2005 syntax for anonymous 4010 access types is used and the program is not compiled with the 4011 -gnat05 switch. 4012 40132006-02-13 Robert Dewar <dewar@adacore.com> 4014 4015 * par-ch6.adb, style.ads, styleg.adb, styleg.ads, stylesw.adb, 4016 stylesw.ads, usage.adb, vms_data.ads: Implement -gnatyI switch 4017 (MODE_IN) 4018 40192006-02-13 Javier Miranda <miranda@adacore.com> 4020 4021 * par-endh.adb (Explicit_Start_Label): Add code to protect the parser 4022 against source containing syntax errors. 4023 40242006-02-13 Vincent Celier <celier@adacore.com> 4025 4026 * prj.adb (Reset): Initialize the first element of table Namings with 4027 the standard naming data. 4028 40292006-02-13 Vincent Celier <celier@adacore.com> 4030 4031 * prj.ads (Error_Warning): New enumeration type 4032 4033 * prj-nmsc.ads, prj-nmsc.adb (Error_Msg): If location parameter is 4034 unknown, use the location of the project to report the error. 4035 (When_No_Sources): New global variable 4036 (Report_No_Ada_Sources): New procedure 4037 (Check): New parameter When_No_Sources. Set value of global variable 4038 When_No_Sources, 4039 (Find_Sources): Call Report_No_Ada_Sources when appropriate 4040 (Get_Sources_From_File): Ditto 4041 (Warn_If_Not_Sources): Better warning messages indicating the unit name 4042 and the file name. 4043 4044 * prj-pars.ads, prj-pars.adb (Parse): New parameter When_No_Sources. 4045 Call Prj.Proc.Process with parameter When_No_Sources. 4046 4047 * prj-proc.ads, prj-proc.adb (Check): New parameter When_No_Sources. 4048 Call Recursive_Check with parameter When_No_Sources. 4049 (Recursive_Check): New parameter When_No_Sources. Call itself and 4050 Prj.Nmsc.Check with parameter When_No_Sources. 4051 (Process): New parameter When_No_Sources. Call Check with parameter 4052 When_No_Sources. 4053 (Copy_Package_Declarations): New procedure to copy renamed parameters 4054 and setting the location of the declared attributes to the location 4055 of the renamed package. 4056 (Process_Declarative_Items): Call Copy_Package_Declarations for renamed 4057 packages. 4058 40592006-02-13 Vincent Celier <celier@adacore.com> 4060 4061 * prj-makr.adb (Make): Preserve the comments from the original project 4062 file. 4063 When removing nodes (attributes Source_Dirs, Source_Files, 4064 Source_List_File and package Naming), save the comments and attach the 4065 saved comments to the newly created nodes. 4066 Do not add a with clause for the naming package if one already exists. 4067 40682006-02-13 Javier Miranda <miranda@adacore.com> 4069 Gary Dismukes <dismukes@adacore.com> 4070 Robert Dewar <dewar@adacore.com> 4071 4072 * restrict.ads (No_Dispatching_Calls): New GNAT restriction. 4073 4074 * sem_disp.adb (Override_Dispatching_Operation): Traverse the list of 4075 aliased entities to look for the overriden abstract interface 4076 subprogram. 4077 (Is_Interface_Subprogram): Complete documentation. 4078 (Check_Dispatching_Operation): Do not generate code to register the 4079 operation in the dispatch table if the source is compiled with 4080 restriction No_Dispatching_Calls. 4081 (Override_Dispatching_Operation): Check for illegal attempt to override 4082 No_Return procedure with procedure that is not No_Return 4083 (Check_Dispatching_Call): Suppress the check for an abstract operation 4084 when the original node of an actual is a tag-indeterminate attribute 4085 call, since the attribute, which must be 'Input, can never be abstract. 4086 (Is_Tag_Indeterminate): Handle checking of tag indeterminacy of a 4087 call to the Input attribute (even when rewritten). 4088 (Propagate_Tag): Augment comment to indicate the possibility of a call 4089 to an Input attribute. 4090 4091 * sem_disp.ads (Override_Dispatching_Operation): Moved to spec to allow 4092 calling it from Exp_Ch3.Make_Controlling_Function_Wrappers. 4093 4094 * s-rident.ads: (No_Dispatching_Calls): New GNAT restriction. 4095 No_Wide_Characters is no longer partition-wide 4096 No_Implementation_Attributes/Pragmas are now Ada 2005 (AI-257) 4097 rather than GNAT 4098 40992006-02-13 Douglas Rupp <rupp@adacore.com> 4100 4101 * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type. 4102 41032006-02-13 Javier Miranda <miranda@adacore.com> 4104 4105 * sem_aggr.adb (Resolve_Record_Aggregate): Restructure the code that 4106 handles default-initialized components to keep separate the management 4107 of this feature but also avoid the unrequired resolution and 4108 expansion of components that do not have partially initialized 4109 values. 4110 (Collect_Aggr_Bounds): Add '\' in 2-line warning message. 4111 (Check_Bounds): Likewise. 4112 (Check_Length): Likewise. 4113 41142006-02-13 Javier Miranda <miranda@adacore.com> 4115 Ed Schonberg <schonberg@adacore.com> 4116 4117 * sem_attr.adb (Analyze_Attribute): In case of 'Class applied to an 4118 abstract interface type call analyze_and_resolve to expand the type 4119 conversion into the corresponding displacement of the 4120 reference to the base of the object. 4121 (Eval_Attribute, case Width): For systems where IEEE extended precision 4122 is supported, the maximum exponent occupies 4 decimal digits. 4123 (Accessibility_Message): Add '\' in 2-line warning message. 4124 (Resolve_Attribute): Likewise. 4125 (case Attribute_Access): Significantly revise checks 4126 for illegal access-to-subprogram Access attributes to properly enforce 4127 the rules of 3.10.2(32/2). 4128 Diagnose use of current instance with an illegal attribute. 4129 4130 * sem_util.ads, sem_util.adb (Enclosing_Generic_Body): Change formal 4131 to a Node_Id. 4132 (Enclosing_Generic_Unit): New function to return a node's innermost 4133 enclosing generic declaration node. 4134 (Compile_Time_Constraint_Error): Remove '!' in warning messages. 4135 (Type_Access_Level): The accessibility level of anonymous acccess types 4136 associated with discriminants is that of the current instance of the 4137 type, and that's deeper than the type itself (AARM 3.10.2 (12.3.21)). 4138 (Compile_Time_Constraint_Error): Handle case of conditional expression. 4139 (Kill_Current_Values_For_Entity): New function 4140 (Enter_Name): Change formal type to Entity_Id 4141 41422006-02-13 Hristian Kirtchev <kirtchev@adacore.com> 4143 Ed Schonberg <schonberg@adacore.com> 4144 Gary Dismukes <dismukes@adacore.com> 4145 4146 * sem_ch10.adb (Check_Redundant_Withs): New procedure in 4147 Analyze_Compilation_Unit. 4148 Detect and warn on redundant with clauses detected in a package spec 4149 and/or body when -gnatwr is used. 4150 (Analyze_Context): Analyze config pragmas before other items 4151 (Install_Context_Items): Don't analyze config pragmas here 4152 (Install_Limited_Withed_Unit): Set limited entity of package in 4153 with_clause so that cross-reference information or warning messages on 4154 unused packages can be properly generated 4155 (Is_Visible_Through_Renamings): Return false if the limited_with_clause 4156 has Error_Posted set. Prevent infinite loops in illegal programs. 4157 (Check_Private_Child_Unit): Move test for a nonprivate with clause down 4158 to the point of the error test requiring the current unit to be private. 4159 This ensures that private with clauses are not exempted from the basic 4160 checking for being a descendant of the same library unit parent as a 4161 withed private descendant unit. 4162 (Check_Private_Limited_Withed_Unit): Revise the checking algorithm to 4163 handle private with clauses properly, as well as to account for cases 4164 where the withed unit is a public descendant of a private ancestor 4165 (in which case the current unit must be a descendant of the private 4166 ancestor's parent). The spec comments were updated accordingly. Also, 4167 the old error message in this subprogram was replaced with error 4168 messages that mirror the errors tested and reported by 4169 Check_Private_Child_Unit. 4170 Parameter and variable names improved for readability. 4171 (Install_Limited_Context_Clauses): Remove test for a withed unit being 4172 private as the precondition for calling 4173 Check_Private_Limited_Withed_Unit since that subprogram has been 4174 revised to test public units as well as private units. 4175 41762006-02-13 Thomas Quinot <quinot@adacore.com> 4177 Robert Dewar <dewar@adacore.com> 4178 Ed Schonberg <schonberg@adacore.com> 4179 Javier Miranda <miranda@adacore.com> 4180 4181 * sem_ch12.adb (Inline_Instance_Body): Remove erroneous assumption 4182 that Scope_Stack.First = 1. 4183 Properly handle Ada_Version_Explicit and Ada_Version_Config, which 4184 were not always properly handled previously. 4185 (Formal_Entity): Complete rewrite, to handle properly some complex case 4186 with multiple levels of parametrization by formal packages. 4187 (Analyze_Formal_Derived_Type): Propagate Ada 2005 "limited" indicator 4188 to the corresponding derived type declaration for proper semantics. 4189 4190 * sem_prag.adb (Analyze_Pragma): Remove '!' in warning message. 4191 (Check_Component): Enforce restriction on components of 4192 unchecked_unions: a component in a variant cannot contain tasks or 4193 controlled types. 4194 (Unchecked_Union): Allow nested variants and multiple discriminants, to 4195 conform to AI-216. 4196 Add pragma Ada_2005 (synonym for Ada_05) 4197 Properly handle Ada_Version_Explicit and Ada_Version_Config, which 4198 were not always properly handled previously. 4199 Document that pragma Propagate_Exceptions has no effect 4200 (Analyze_Pragma, case Pure): Set new flag Has_Pragma_Pure 4201 (Set_Convention_From_Pragma): Check that if a convention is 4202 specified for a dispatching operation, then it must be 4203 consistent with the existing convention for the operation. 4204 (CPP_Class): Because of the C++ ABI compatibility, the programmer is no 4205 longer required to specify an vtable-ptr component in the record. For 4206 compatibility reasons we leave the support for the previous definition. 4207 (Analyze_Pragma, case No_Return): Allow multiple arguments 4208 4209 * sem_ch3.ads, sem_ch3.adb (Check_Abstract_Overriding): Flag a 4210 non-overrideen inherited operation with a controlling result as 4211 illegal only its implicit declaration comes from the derived type 4212 declaration of its result's type. 4213 (Check_Possible_Deferred_Completion): Relocate the object definition 4214 node of the subtype indication of a deferred constant completion rather 4215 than directly analyzing it. The analysis of the generated subtype will 4216 correctly decorate the GNAT tree. 4217 (Record_Type_Declaration): Check whether this is a declaration for a 4218 limited derived record before analyzing components. 4219 (Analyze_Component_Declaration): Diagnose record types not explicitly 4220 declared limited when a component has a limited type. 4221 (Build_Derived_Record_Type): Code reorganization to check if some of 4222 the inherited subprograms of a tagged type cover interface primitives. 4223 This check was missing in case of a full-type associated with a private 4224 type declaration. 4225 (Constant_Redeclaration): Check that the subtypes of the partial and the 4226 full view of a constrained deferred constant statically match. 4227 (Mentions_T): A reference to the current type in an anonymous access 4228 component declaration must be an entity name. 4229 (Make_Incomplete_Type_Declaration): If type is tagged, set type of 4230 class_wide type to refer to full type, not to the incomplete one. 4231 (Add_Interface_Tag_Components): Do nothing if RE_Interface_Tag is not 4232 available. Required to give support to the certified run-time. 4233 (Analyze_Component_Declaration): In case of anonymous access components 4234 perform missing checks for AARM 3.9.2(9) and 3.10.2 (12.2). 4235 (Process_Discriminants): For an access discriminant, use the 4236 discriminant specification as the associated_node_for_itype, to 4237 simplify accessibility checks. 4238 42392006-02-13 Ed Schonberg <schonberg@adacore.com> 4240 Javier Miranda <miranda@adacore.com> 4241 4242 * sem_ch4.adb (Remove_Abstract_Interpretations): Even if there are no 4243 abstract interpretations on an operator, remove interpretations that 4244 yield Address or a type derived from it, if one of the operands is an 4245 integer literal. 4246 (Try_Object_Operation.Try_Primitive_Operation, 4247 Try_Object_Operation.Try_Class_Wide_Operation): Set proper source 4248 location when creating the new reference to a primitive or class-wide 4249 operation as a part of rewriting a subprogram call. 4250 (Try_Primitive_Operations): If context requires a function, collect all 4251 interpretations after the first match, because there may be primitive 4252 operations of the same type with the same profile and different return 4253 types. From code reading. 4254 (Try_Primitive_Operation): Use the node kind to choose the proper 4255 operation when a function and a procedure have the same parameter 4256 profile. 4257 (Complete_Object_Operation): If formal is an access parameter and prefix 4258 is an object, rewrite as an Access reference, to match signature of 4259 primitive operation. 4260 (Find_Equality_Type, Find_One_Interp): Handle properly equality given 4261 by an expanded name with prefix Standard, when the operands are of an 4262 anonymous access type. 4263 (Remove_Abstract_Operations): If the operation is abstract because it is 4264 inherited by a user-defined type derived from Address, remove it as 4265 well from the set of candidate interpretations of an overloaded node. 4266 (Analyze_Membership_Op): Membership test not applicable to cpp-class 4267 types. 4268 42692006-02-13 Bob Duff <duff@adacore.com> 4270 4271 * sem_ch8.adb (Note_Redundant_Use): Suppress unhelpful warning about 4272 redundant use clauses. 4273 In particular, if the scope of two use clauses overlaps, but one is not 4274 entirely included in the other, we should not warn. This can happen 4275 with nested packages. 4276 (Analyze_Subprogram_Renaming): Protect the compiler against previously 4277 reported errors. The bug was reported when the compiler was built 4278 with assertions enabled. 4279 (Find_Type): If the node is a 'Class reference and the prefix is a 4280 synchronized type without a corresponding record, return the type 4281 itself. 4282 42832006-02-13 Javier Miranda <miranda@adacore.com> 4284 4285 * sem_ch9.adb (Analyze_Protected_Type, Analyze_Task_Type): Check that 4286 if this is the full-declaration associated with a private declaration 4287 that implement interfaces, then the private type declaration must be 4288 limited. 4289 (Analyze_Single_Protected, Analyze_Single_Task): Do not mark the object 4290 as aliased. The use of the 'access attribute is not available for such 4291 object (for this purpose the object should be explicitly marked as 4292 aliased, but being an anonymous type this is not possible). 4293 42942006-02-13 Ed Schonberg <schonberg@adacore.com> 4295 Robert Dewar <dewar@adacore.com> 4296 4297 * sem_elab.adb (Same_Elaboration_Scope): A package that is a 4298 compilation unit is an elaboration scope. 4299 (Add_Task_Proc): Add '\' in 2-line warning message. 4300 (Activate_All_Desirable): Deal with case of unit with'ed by parent 4301 43022006-02-13 Ed Schonberg <schonberg@adacore.com> 4303 Javier Miranda <miranda@adacore.com> 4304 4305 * sem_type.adb (Write_Overloads): Improve display of candidate 4306 interpretations. 4307 (Add_One_Interp): Do not add to the list of interpretations aliased 4308 entities corresponding with an abstract interface type that is an 4309 immediate ancestor of a tagged type; otherwise we have a dummy 4310 conflict between this entity and the aliased entity. 4311 (Disambiguate): The predefined equality on universal_access is not 4312 usable if there is a user-defined equality with the proper signature, 4313 declared in the same declarative part as the designated type. 4314 (Find_Unique_Type): The universal_access equality operator defined under 4315 AI-230 does not cover pool specific access types. 4316 (Covers): If one of the types is a generic actual subtype, check whether 4317 it matches the partial view of the other type. 4318 43192006-02-13 Thomas Quinot <quinot@adacore.com> 4320 4321 * sinput-d.adb (Write_Line): Update the Source_Index_Table after each 4322 line. This is necessary to allow In_Extended_Main_Unit to provide 4323 correct results for itypes while writing out expanded source. 4324 (Close_File): No need to update the source_index_table here since it's 4325 now done for each line. 4326 43272006-02-13 Ed Schonberg <schonberg@adacore.com> 4328 Robert Dewar <dewar@adacore.com> 4329 4330 * sprint.adb (Write_Itype): Preserve Sloc of declaration, if any, to 4331 preserve the source unit where the itype is declared, and prevent a 4332 backend abort. 4333 (Note_Implicit_Run_Time_Call): New procedure 4334 (Write_Itype): Handle missing cases (E_Class_Wide_Type and 4335 E_Subprogram_Type) 4336 4337 * sprint.ads: Document use of $ for implicit run time routine call 4338 43392006-02-13 Quentin Ochem <ochem@adacore.com> 4340 4341 * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of 4342 task name. 4343 43442006-02-13 Bob Duff <duff@adacore.com> 4345 4346 * s-valint.adb (Scan_Integer): Call Scan_Raw_Unsigned instead of 4347 Scan_Unsigned, so we do not scan leading blanks and sign twice. 4348 Integer'Value("- 5") and Integer'Value("-+5") now correctly 4349 raise Constraint_Error. 4350 4351 * s-vallli.adb (Scan_Long_Long_Integer): Call 4352 Scan_Raw_Long_Long_Unsigned instead of Scan_Long_Long_Unsigned, so we 4353 do not scan leading blanks and sign twice. 4354 Integer'Value("- 5") and Integer'Value("-+5") now correctly 4355 raise Constraint_Error. 4356 4357 * s-valllu.ads, s-valllu.adb (Scan_Raw_Long_Long_Unsigned, 4358 Scan_Long_Long_Unsigned): Split out most of the processing from 4359 Scan_Long_Long_Unsigned out into 4360 Scan_Raw_Long_Long_Unsigned, so that Val_LLI can call the Raw_ version. 4361 This prevents scanning leading blanks and sign twice. 4362 Also fixed a bug: Modular'Value("-0") should raise Constraint_Error 4363 See RM-3.5(44). 4364 4365 * s-valuns.ads, s-valuns.adb (Scan_Raw_Unsigned, Scan_Unsigned): Split 4366 out most of the processing from Scan_Unsigned out into 4367 Scan_Raw_Unsigned, so that Val_LLI can call the Raw_ version. 4368 This prevents scanning leading blanks and sign twice. 4369 4370 * s-valuti.ads, s-valuti.adb (Scan_Plus_Sign): Add Scan_Plus_Sign, for 4371 use with Modular'Value attribute. 4372 (Scan_Plus_Sign): Add Scan_Plus_Sign, for use with Modular'Value 4373 attribute. 4374 43752006-02-13 Robert Dewar <dewar@adacore.com> 4376 4377 * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value 4378 43792006-02-13 Eric Botcazou <ebotcazou@adacore.com> 4380 4381 * tracebak.c (PPC AIX/Darwin): Define FORCE_CALL to 1. 4382 (PPC VxWorks): Likewise. 4383 (Generic unwinder): Define FORCE_CALL to 0 if not already defined. 4384 (forced_callee): Make non-inlinable and non-pure. 4385 (__gnat_backtrace): Call forced_callee if FORCE_CALL is set to 1. 4386 43872006-02-13 Arnaud Charlet <charlet@adacore.com> 4388 Ben Brosgol <brosgol@adacore.com> 4389 Robert Dewar <dewar@adacore.com> 4390 4391 * gnat_rm.texi, gnat_ugn.texi: Remove limitations with sparc m64 4392 support. 4393 Document that gnatbind -M option is for cross environments only. 4394 Added description of using gnatmem to trace gnat rtl allocs and deallocs 4395 Add note on use of $ to label implicit run time calls 4396 Add documentation for -gnatyI (check mode IN) 4397 Updated chapter on compatibility with HP Ada 4398 VMS-oriented edits. 4399 Ran spell and corrected errors 4400 Add documentation for gnatbind -d and rework documentation of -D 4401 at the same time. 4402 Add subprogram/data elimination section. 4403 Minor editing of annex A. 4404 Add section for gnatcheck. 4405 Add documentation for restriction No_Dispatching_Calls 4406 Add documentation for pragma Ada_2005 4407 Remove mention of obsolete pragma Propagate_Exceptions 4408 Document that pragma Unreferenced can appear after DO in ACCEPT 4409 Clarify Pure_Function for library level units 4410 Mention Max/Min in connection with No_Implicit_Conditionals 4411 No_Wide_Characters restriction is no longer partition-wide 4412 Add a nice example for Universal_Literal_String attribute 4413 Document that pragma No_Return can take multiple arguments 4414 4415 * ug_words: Added entry for gnatcheck 4416 4417 * g-ctrl_c.ads (Install_Handler): Enhance comments 4418 4419 * g-os_lib.ads: Add comments to OS_Exit that it is abrupt termination 4420 4421 * g-trasym.ads: Add documentation on how to do off line symbolic 4422 traceback computation. 4423 4424 * s-fatgen.adb: Add comments for Unaligned_Valid 4425 4426 * stand.ads: Fix typo in comment 4427 44282006-02-09 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 4429 4430 * Make-lang.in (check-gnat): Run run_acats with $(SHELL). 4431 44322006-02-06 Roger Sayle <roger@eyesopen.com> 4433 4434 * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE. 4435 44362006-02-03 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4437 4438 PR target/25926 4439 * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target 4440 implementation that calls __main. 4441 44422006-01-25 Peter O'Gorman <peter@pogma.com> 4443 4444 PR bootstrap/25859 4445 * Makefile.in (GCC_LINK): Remove quotes. 4446 (tools targets): Link with either $(GNATLINK) --GCC="$(GCC_LINK)" 4447 or $(GCC_LINK). 4448 4449 (powerpc-darwin): Pass -shared-libgcc when building shared library. 4450 44512006-01-20 John David Anglin <dave.anglin@nrc-cnrc.gc.ca> 4452 4453 PR ada/24533 4454 * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8. 4455 4456 4457 4458Copyright (C) 2006 Free Software Foundation, Inc. 4459 4460Copying and distribution of this file, with or without modification, 4461are permitted in any medium without royalty provided the copyright 4462notice and this notice are preserved. 4463