OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-stable/] [gcc-4.5.1/] [gcc/] [ada/] [ChangeLog-2006] - Blame information for rev 826

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 281 jeremybenn
2006-12-07  Geoffrey Keating  
2
 
3
        * Makefile.in: Replace CROSS_COMPILE with CROSS_DIRECTORY_STRUCTURE.
4
        * adaint.c: Likewise.
5
 
6
2006-12-05  Aldy Hernandez  
7
 
8
        Merge from gimple-tuples-branch:
9
        2006-11-02  Aldy Hernandez  
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
 
15
2006-12-02  Kazu Hirata  
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
 
21
2006-11-17  Eric Botcazou  
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
 
27
2006-11-11  Richard Guenther  
28
 
29
        * trans.c (maybe_stabilize_reference): Remove handling of
30
        FIX_CEIL_EXPR, FIX_FLOOR_EXPR and FIX_ROUND_EXPR.
31
 
32
2006-11-05  Arnaud Charlet  
33
 
34
        PR ada/29707
35
        * s-osinte-linux-alpha.ads, s-osinte-linux-hppa.ads
36
        (To_Target_Priority): New function.
37
 
38
2006-10-31  Robert Dewar  
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
 
56
2006-10-31  Robert Dewar  
57
            Bob Duff  
58
            Ed Schonberg  
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
 
106
2006-10-31  Thomas Quinot  
107
 
108
        * g-socthi-vxworks.adb (C_Gethostbyname): Fix wrong test for returned
109
        error status.
110
 
111
2006-10-31  Hristian Kirtchev  
112
            Jose Ruiz  
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
 
153
2006-10-31  Arnaud Charlet  
154
            Jose Ruiz  
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
 
205
2006-10-31  Robert Dewar  
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
 
219
2006-10-31  Vincent Celier  
220
            Eric Botcazou  
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
 
242
2006-10-31  Eric Botcazou  
243
 
244
        * s-taprop-solaris.adb: (Time_Slice_Val): Change type to Integer.
245
        (Initialize): Add type conversions required by above change.
246
 
247
2006-10-31  Jose Ruiz  
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
 
259
2006-10-31  Pascal Obry  
260
            Eric Botcazou  
261
            Vincent Celier  
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
 
288
2006-10-31  Eric Botcazou  
289
            Nicolas Setton  
290
            Olivier Hainque  
291
            Gary Dismukes  
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) : 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
        : 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
        : 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) : Restore comment.
322
        (gnat_to_gnu_entity) : Do not use a dummy type.
323
        (gnat_to_gnu_entity) : 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) : 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) : Do not force
348
        TYPE_NONALIASED_COMPONENT to 0 if the element type is an aggregate.
349
        : Likewise.
350
        (gnat_to_gnu_entity) : 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) : 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) : Ignore constant overflow
437
        stemming from type conversion for the lhs.
438
        (Attribute_to_gnu) : Also divide the alignment by the
439
        number of bits per unit for components of records.
440
        (gnat_to_gnu) : 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) : 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
 
464
2006-10-31  Bob Duff  
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
 
478
2006-10-31  Robert Dewar  
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
 
489
2006-10-31  Robert Dewar  
490
            Jose Ruiz  
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
 
584
2006-10-31  Javier Miranda  
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
 
630
2006-10-31  Robert Dewar  
631
 
632
        * binde.adb (Better_Choice, Worse_Choice): Implement new preferences.
633
 
634
2006-10-31  Robert Dewar  
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
 
640
2006-10-31  Jose Ruiz  
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
 
648
2006-10-31  Robert Dewar  
649
            Ed Schonberg  
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
 
684
2006-10-31  Robert Dewar  
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
 
693
2006-10-31  Robert Dewar  
694
            Ed Schonberg  
695
            Bob Duff  
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
 
725
2006-10-31  Robert Dewar  
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
 
782
2006-10-31  Robert Dewar  
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
 
792
2006-10-31  Bob Duff  
793
            Ed Schonberg  
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
 
819
2006-10-31  Ed Schonberg  
820
            Thomas Quinot  
821
            Javier Miranda  
822
            Robert Dewar  
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
 
852
2006-10-31  Robert Dewar  
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
 
858
2006-10-31  Javier Miranda  
859
            Robert Dewar  
860
            Ed Schonberg  
861
            Gary Dismukes  
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
 
920
2006-10-31  Javier Miranda  
921
            Ed Schonberg  
922
            Bob Duff  
923
            Gary Dismukes  
924
            Robert Dewar  
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
 
949
2006-10-31  Bob Duff  
950
            Robert Dewar  
951
            Gary Dismukes  
952
            Ed Schonberg  
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
 
991
2006-10-31  Robert Dewar  
992
            Ed Schonberg  
993
            Bob Duff  
994
            Gary Dismukes  
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
 
1070
2006-10-31  Ed Schonberg  
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
 
1081
2006-10-31  Robert Dewar  
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
 
1089
2006-10-31  Thomas Quinot  
1090
            Pablo Oliveira  
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
 
1110
2006-10-31  Ed Schonberg  
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
 
1116
2006-10-31  Robert Dewar  
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
 
1131
2006-10-31  Javier Miranda  
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
 
1137
2006-10-31  Robert Dewar  
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
 
1170
2006-10-31  Bob Duff  
1171
            Ed Schonberg  
1172
            Robert Dewar  
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
 
1214
2006-10-31  Vincent Celier  
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
 
1222
2006-10-31  Robert Dewar  
1223
            Ed Schonberg  
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
 
1260
2006-10-31  Olivier Hainque  
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
 
1265
2006-10-31  Bob Duff  
1266
            Robert Dewar  
1267
            Ed Schonberg  
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
 
1403
2006-10-31  Hristian Kirtchev  
1404
 
1405
        * g-catiio.ads, g-catiio.adb (Value): New function.
1406
        Given an input String, try and parse a valid Time value.
1407
 
1408
2006-10-31  Vincent Celier  
1409
 
1410
        * g-debpoo.adb (Is_Valid): Correctly compute Offset using
1411
        Integer_Address arithmetic, as in Set_Valid.
1412
 
1413
2006-10-31  Arnaud Charlet  
1414
            Robert Dewar  
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
 
1436
2006-10-31  Vincent Celier  
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
 
1442
2006-10-31  Vincent Celier  
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
 
1453
2006-10-31  Vincent Celier  
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
 
1465
2006-10-31  Thomas Quinot  
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
 
1473
2006-10-31  Robert Dewar  
1474
 
1475
        * g-speche.ads, g-speche.adb: Add special case to recognize misspelling
1476
        initial letter o as a zero.
1477
 
1478
2006-10-31  Robert Dewar  
1479
 
1480
        * g-spipat.adb (S_To_PE): Remove incorrect use of 0 instead of Str'First
1481
 
1482
2006-10-31  Robert Dewar  
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
 
1497
2006-10-31  Vincent Celier  
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
 
1503
2006-10-31  Thomas Quinot  
1504
            Eric Botcazou  
1505
            Arnaud Charlet  
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
 
1529
2006-10-31  Vincent Celier  
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
 
1539
2006-10-31  Ed Schonberg  
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
 
1578
2006-10-31  Robert Dewar  
1579
 
1580
        * par-ch10.adb (P_Context_Clause): Minor error message fix
1581
 
1582
2006-10-31  Hristian Kirtchev  
1583
            Javier Miranda  
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
 
1596
2006-10-31  Robert Dewar  
1597
            Javier Miranda  
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
 
1618
2006-10-31  Vincent Celier  
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
 
1626
2006-10-31  Vincent Celier  
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
 
1632
2006-10-31  Vincent Celier  
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
 
1648
2006-10-31  Robert Dewar  
1649
 
1650
        * repinfo.adb (List_Entities): Don't list entities from renaming
1651
        declarations.
1652
 
1653
2006-10-31  Arnaud Charlet  
1654
            Robert Dewar  
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
 
1666
2006-10-31  Arnaud Charlet  
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
 
1681
2006-10-31  Robert Dewar  
1682
 
1683
        * scng.adb (Scan, case of numeric literal): Better msg for identifier
1684
        starting with a digit.
1685
 
1686
2006-10-31  Ed Schonberg  
1687
            Thomas Quinot  
1688
            Javier Miranda  
1689
            Gary Dismukes  
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
 
1736
2006-10-31  Robert Dewar  
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
 
1744
2006-10-31  Ed Schonberg  
1745
            Hristian Kirtchev  
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
 
1796
2006-10-31  Robert Dewar  
1797
            Thomas Quinot  
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
 
1811
2006-10-31  Ed Schonberg  
1812
            Javier Miranda  
1813
            Robert Dewar  
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
 
1855
2006-10-31  Robert Dewar  
1856
            Ed Schonberg  
1857
            Gary Dismukes  
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
 
1879
2006-10-31  Ed Schonberg  
1880
            Hristian Kirtchev  
1881
            Bob Duff  
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
 
1935
2006-10-31  Ed Schonberg  
1936
            Javier Miranda  
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
 
1956
2006-10-31  Robert Dewar  
1957
            Hristian Kirtchev  
1958
            Javier Miranda  
1959
            Ed Schonberg  
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
 
1994
2006-10-31  Hristian Kirtchev  
1995
            Ed Schonberg  
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
 
2014
2006-10-31  Hristian Kirtchev  
2015
            Ed Schonberg  
2016
            Javier Miranda  
2017
            Gary Dismukes  
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
 
2038
2006-10-31  Robert Dewar  
2039
            Ed Schonberg  
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
 
2046
2006-10-31  Robert Dewar  
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
 
2052
2006-10-31  Ed Schonberg  
2053
            Hristian Kirtchev  
2054
            Javier Miranda  
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
 
2067
2006-10-31  Robert Dewar  
2068
            Hristian Kirtchev  
2069
            Ed Schonberg  
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
 
2120
2006-10-31  Robert Dewar  
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
 
2138
2006-10-31  Robert Dewar  
2139
            Ed Schonberg  
2140
            Bob Duff  
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
 
2184
2006-10-31  Ed Schonberg  
2185
            Robert Dewar  
2186
            Bob Duff  
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
 
2201
2006-10-31  Arnaud Charlet  
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
 
2214
2006-10-31  Gary Dismukes  
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
 
2223
2006-10-31  Javier Miranda  
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
 
2235
2006-10-31  Jose Ruiz  
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
 
2241
2006-10-31  Robert Dewar  
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
 
2249
2006-10-31  Olivier Hainque  
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
 
2258
2006-10-31  Vincent Celier  
2259
 
2260
        * a-dirval-vms.adb (Invalid_Character): Specify that digits are allowed
2261
        in file names.
2262
 
2263
2006-10-31  Vincent Celier  
2264
 
2265
        * a-direct.ads, a-direct.adb (Search): New procedure in Ada 2005
2266
 
2267
2006-10-31  Vincent Celier  
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
 
2279
2006-10-31  Matt Heaney  
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
 
2328
2006-10-31  Doug Rupp  
2329
 
2330
        * g-trasym-vms-alpha.adb: Dummy_User_Act_Proc: New function.
2331
        Call TBK$SYMBOLIZE without omitting parameters.
2332
 
2333
2006-10-31  Vincent Celier  
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
 
2339
2006-10-31  Pat Rogers  
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
 
2348
2006-10-31  Robert Dewar  
2349
            Cyrille Comar  
2350
            Ben Brosgol  
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
 
2412
2006-10-31  Robert Dewar  
2413
            Thomas Quinot  
2414
            Arnaud Charlet  
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
 
2582
2006-10-23 Rafael Ávila de Espíndola  
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
 
2591
2006-10-16  Brooks Moses  
2592
 
2593
        * Makefile.in: Add TEXI2PDF definition.
2594
        * Make-lang.in: Add "ada.pdf" target.
2595
 
2596
2006-10-03  Kazu Hirata  
2597
 
2598
        * decl.c, utils.c: Fix comment typos.
2599
        * utils.c: Fix a typo.
2600
 
2601
2006-09-28  Eric Botcazou  
2602
 
2603
        * decl.c (gnat_to_gnu_entity) : 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
 
2611
2006-08-20  Laurent Guerby  
2612
 
2613
        PR ada/28716
2614
        g-socket.adb (Bind_Socket): Call Set_Address.
2615
 
2616
2006-09-15  Eric Botcazou  
2617
 
2618
        PR ada/15802
2619
        * decl.c (same_discriminant_p): New static function.
2620
        (gnat_to_gnu_entity) : 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
 
2625
2006-09-15  Roger Sayle  
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
 
2631
2006-09-13  Olivier Hainque  
2632
 
2633
        PR ada/29025
2634
        * trans.c (gnat_gimplify_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
 
2641
2006-09-13  Eric Botcazou  
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
 
2648
2006-09-13  Eric Botcazou  
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
 
2658
2006-07-28  Volker Reichelt  
2659
 
2660
        * Make-lang.in: Use $(HEADER_H) instead of header.h in dependencies.
2661
 
2662
2006-06-23  Olivier Hainque  
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
 
2667
2006-06-20  James A. Morrison  
2668
            Eric Botcazou  
2669
 
2670
        PR ada/18692
2671
        * Make-lang.in: Add check-gnat to lang_checks.  Rename existing
2672
        check-gnat into check-acats.
2673
 
2674
2006-06-17  Karl Berry  
2675
 
2676
        * gnat-style.texi (@dircategory): Use "Software development"
2677
        instead of "Programming", following the Free Software Directory.
2678
 
2679
2006-06-12  John David Anglin  
2680
 
2681
        PR ada/27944
2682
        * s-taprop-hpux-dce.adb: Delete redundant 'with System.Parameters'.
2683
 
2684
2006-06-06  Laurent Guerby  
2685
 
2686
        PR ada/27769
2687
        mlib-utl.adb: Use Program_Name.
2688
 
2689
2006-05-28  Kazu Hirata  
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
 
2698
2006-05-19  Nicolas Setton  
2699
 
2700
        * misc.c (gnat_dwarf_name): New function.
2701
        (LANG_HOOKS_DWARF_NAME): Define to it.
2702
 
2703
2006-05-14  H.J. Lu  
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
 
2709
2006-04-08  Aurelien Jarno  
2710
 
2711
        * Makefile.in: Add Ada support for GNU/kFreeBSD.
2712
        * s-osinte-kfreebsd-gnu.ads: New file.
2713
 
2714
2006-03-29  Carlos O'Donell  
2715
 
2716
        * Make-lang.in: Rename docdir to gcc_docdir.
2717
 
2718
2006-03-04  Eric Botcazou  
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
 
2724
2006-03-03  Richard Kenner  
2725
 
2726
        * uintp.adb (Num_Bits): Handle Uint_Int_First specially.
2727
 
2728
2006-03-02  Richard Sandiford  
2729
 
2730
        * utils.c (create_var_decl): Use have_global_bss_p when deciding
2731
        whether to make the decl common.
2732
 
2733
2006-02-20  Rafael Ávila de Espíndola  
2734
 
2735
        * Make-lang.in (Ada): Remove.
2736
        (.PHONY): Remove Ada
2737
 
2738
2006-02-17  Ed Schonberg  
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
 
2747
2006-02-17  Eric Botcazou  
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
 
2759
2006-02-17  Jose Ruiz  
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
 
2768
2006-02-17  Javier Miranda  
2769
            Robert Dewar  
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
 
2783
2006-02-17  Ed Schonberg  
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
 
2789
2006-02-17  Ed Schonberg  
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
 
2797
2006-02-17  Robert Dewar  
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
 
2802
2006-02-17  Vasiliy Fofanov  
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
 
2808
2006-02-17  Vasiliy Fofanov  
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
 
2814
2006-02-17  Ed Schonberg  
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
 
2820
2006-02-17  Ed Schonberg  
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
 
2825
2006-02-17  Javier Miranda  
2826
            Ed Schonberg  
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
 
2840
2006-02-17  Ed Schonberg  
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
 
2847
2006-02-17  Javier Miranda  
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
 
2858
2006-02-17  Vincent Celier  
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
 
2871
2006-02-17  Matthew Heaney  
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
 
2887
2006-02-17  Robert Dewar  
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
 
2897
2006-02-17  Ramon Fernandez  
2898
            Thomas Quinot  
2899
            Robert Dewar  
2900
            Javier Miranda  
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
 
2912
2006-02-16  Eric Botcazou  
2913
 
2914
        * env.c (__gnat_setenv): Use size_t.
2915
        (__gnat_unsetenv): Likewise.
2916
        (__gnat_clearenv): Likewise.
2917
 
2918
2006-02-16  Arnaud Charlet  
2919
 
2920
        * opt.ads (Ada_Version_Default): Set to Ada 2005 by default.
2921
 
2922
2006-02-13  Arnaud Charlet  
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
 
2935
2006-02-13  Jose Ruiz  
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
 
2960
2006-02-13  Robert Dewar  
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
 
2998
2006-02-13  Hristian Kirtchev  
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
 
3010
2006-02-13  Arnaud Charlet  
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
 
3025
2006-02-13  Pascal Obry  
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
 
3033
2006-02-13  Pascal Obry  
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
 
3040
2006-02-13  Nicolas Setton  
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
 
3046
2006-02-13  Pascal Obry  
3047
            Nicolas Roche  
3048
            Arnaud Charlet  
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
 
3112
2006-02-13  Richard Kenner  
3113
            Olivier Hainque  
3114
            Eric Botcazou  
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) 
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) : 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
 
3183
2006-02-13  Arnaud Charlet  
3184
            Robert Dewar  
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
 
3237
2006-02-13  Thomas Quinot  
3238
            Vincent Celier  
3239
            Robert Dewar  
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
 
3306
2006-02-13  Arnaud Charlet  
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
 
3315
2006-02-13  Arnaud Charlet  
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
 
3341
2006-02-13  Matthew Heaney  
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
 
3358
2006-02-13  Matthew Heaney  
3359
 
3360
        * a-cgcaso.adb, a-cgaaso.adb: Implemented using heapsort instead of
3361
        quicksort.
3362
 
3363
2006-02-13  Eric Botcazou  
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
 
3372
2006-02-13  Robert Dewar  
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
 
3378
2006-02-13  Nicolas Roche  
3379
 
3380
        * a-envvar.adb, a-envvar.ads: New files.
3381
 
3382
2006-02-13  Douglas Rupp  
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
 
3388
2006-02-13  Pat Rogers  
3389
 
3390
        * a-rttiev.adb, a-rttiev.ads: New files.
3391
 
3392
2006-02-13  Hristian Kirtchev  
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
 
3399
2006-02-13  Robert Dewar  
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
 
3404
2006-02-13  Geert Bosch  
3405
            Gary Dismukes  
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
 
3414
2006-02-13  Vincent Celier  
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
 
3423
2006-02-13  Joel Brobecker  
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
 
3430
2006-02-13  Vincent Celier  
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
 
3436
2006-02-13  Robert Dewar  
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
 
3444
2006-02-13  Robert Dewar  
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
 
3456
2006-02-13  Robert Dewar  
3457
            Eric Botcazou  
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
 
3476
2006-02-13  Eric Botcazou  
3477
 
3478
        * s-stchop.adb (Stack_Check): Raise Storage_Error if the argument has
3479
        wrapped around.
3480
 
3481
2006-02-13  Vincent Celier  
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
 
3491
2006-02-13  Ed Schonberg  
3492
            Thomas Quinot  
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
 
3504
2006-02-13  Robert Dewar  
3505
            Vincent Celier  
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
 
3524
2006-02-13  Robert Dewar  
3525
            Serguei Rybin  
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
 
3550
2006-02-13  Javier Miranda  
3551
            Robert Dewar  
3552
            Ed Schonberg  
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
 
3576
2006-02-13  Quentin Ochem  
3577
            Olivier Hainque  
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) : 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
 
3592
2006-02-13  Ed Schonberg  
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
 
3607
2006-02-13  Robert Dewar  
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
 
3618
2006-02-13  Javier Miranda  
3619
            Gary Dismukes  
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
 
3681
2006-02-13  Thomas Quinot  
3682
            Ed Schonberg  
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
 
3700
2006-02-13  Ed Schonberg  
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
 
3707
2006-02-13  Ed Schonberg  
3708
            Javier Miranda  
3709
            Robert Dewar  
3710
            Gary Dismukes  
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
 
3808
2006-02-13  Ed Schonberg  
3809
            Hristian Kirtchev  
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
 
3818
2006-02-13  Javier Miranda  
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
 
3865
2006-02-13  Ed Schonberg  
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
 
3871
2006-02-13  Pascal Obry  
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
 
3881
2006-02-13  Robert Dewar  
3882
 
3883
        * exp_intr.adb (Expand_Unc_Deallocation): Correct error of bad analyze
3884
        call.
3885
 
3886
2006-02-13  Thomas Quinot  
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
 
3896
2006-02-13  Ed Schonberg  
3897
            Javier Miranda  
3898
            Eric Botcazou  
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
 
3926
2006-02-13  Javier Miranda  
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
 
3932
2006-02-13  Olivier Hainque  
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
 
3938
2006-02-13  Pascal Obry  
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
 
3949
2006-02-13  Matthew Heaney  
3950
 
3951
        *  g-dyntab.adb (Index_Of): conversion from Natural can no longer raise
3952
        Constraint_Error.
3953
 
3954
2006-02-13  Arnaud Charlet  
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
 
3961
2006-02-13  Vincent Celier  
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
 
3969
2006-02-13  Robert Dewar  
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
 
3976
2006-02-13  Ed Schonberg  
3977
            Robert Dewar  
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
 
3986
2006-02-13  Vincent Celier  
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
 
4001
2006-02-13  Javier Miranda  
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
 
4013
2006-02-13  Robert Dewar  
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
 
4019
2006-02-13  Javier Miranda  
4020
 
4021
        * par-endh.adb (Explicit_Start_Label): Add code to protect the parser
4022
        against source containing syntax errors.
4023
 
4024
2006-02-13  Vincent Celier  
4025
 
4026
        * prj.adb (Reset): Initialize the first element of table Namings with
4027
        the standard naming data.
4028
 
4029
2006-02-13  Vincent Celier  
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
 
4059
2006-02-13  Vincent Celier  
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
 
4068
2006-02-13  Javier Miranda  
4069
            Gary Dismukes  
4070
            Robert Dewar  
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
 
4099
2006-02-13  Douglas Rupp  
4100
 
4101
        * s-auxdec-vms_64.ads (Short_Address): Wrap it in a type.
4102
 
4103
2006-02-13  Javier Miranda  
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
 
4114
2006-02-13  Javier Miranda  
4115
            Ed Schonberg  
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
 
4142
2006-02-13  Hristian Kirtchev  
4143
            Ed Schonberg  
4144
            Gary Dismukes  
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
 
4176
2006-02-13  Thomas Quinot  
4177
            Robert Dewar  
4178
            Ed Schonberg  
4179
            Javier Miranda  
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
 
4239
2006-02-13  Ed Schonberg  
4240
            Javier Miranda  
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
 
4269
2006-02-13  Bob Duff  
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
 
4283
2006-02-13  Javier Miranda  
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
 
4294
2006-02-13  Ed Schonberg  
4295
            Robert Dewar  
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
 
4302
2006-02-13  Ed Schonberg  
4303
            Javier Miranda  
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
 
4319
2006-02-13  Thomas Quinot  
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
 
4327
2006-02-13  Ed Schonberg  
4328
            Robert Dewar  
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
 
4339
2006-02-13  Quentin Ochem  
4340
 
4341
        * s-stausa.adb (Initialize_Analyzer): fixed error in assignment of
4342
        task name.
4343
 
4344
2006-02-13  Bob Duff  
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
 
4375
2006-02-13  Robert Dewar  
4376
 
4377
        * s-wchjis.adb (JIS_To_EUC): Raise Constraint_Error for invalid value
4378
 
4379
2006-02-13  Eric Botcazou  
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
 
4387
2006-02-13  Arnaud Charlet  
4388
            Ben Brosgol  
4389
            Robert Dewar  
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
 
4428
2006-02-09  Rainer Orth  
4429
 
4430
        * Make-lang.in (check-gnat): Run run_acats with $(SHELL).
4431
 
4432
2006-02-06  Roger Sayle  
4433
 
4434
        * decl.c (gnat_substitute_in_type): Don't handle CHAR_TYPE.
4435
 
4436
2006-02-03  John David Anglin  
4437
 
4438
        PR target/25926
4439
        * initialize.c (__gnat_initialize): Provide HP-UX 10 host and target
4440
        implementation that calls __main.
4441
 
4442
2006-01-25  Peter O'Gorman  
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
 
4451
2006-01-20  John David Anglin  
4452
 
4453
        PR ada/24533
4454
        * s-osinte-linux-hppa.ads: Reduce alignment of atomic_lock_t to 8.
4455
 
4456
 
4457
 
4458
Copyright (C) 2006 Free Software Foundation, Inc.
4459
 
4460
Copying and distribution of this file, with or without modification,
4461
are permitted in any medium without royalty provided the copyright
4462
notice and this notice are preserved.

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.