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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-dev/] [or1k-gcc/] [gcc/] [ada/] [ChangeLog-2005] - Blame information for rev 728

Go to most recent revision | Details | Compare with Previous | View Log

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